功能开发-sjx

liweidong
sunjianxi 16 hours ago
parent 8bb79e9c2f
commit 608926dd2f
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsPartEntity.java
  2. 14
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrder.java
  3. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/YieldOrderEnum.java
  4. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java
  5. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java
  6. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldOrderController.java
  7. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
  8. 176
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java
  9. 92
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  10. 3
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPacturnrecordMapper.xml
  11. 4
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkMapper.xml
  12. 4
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPurtosoMapper.xml
  13. 4
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSjsoMapper.xml
  14. 4
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSodelrecwxMapper.xml
  15. 4
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbSodelreczgMapper.xml
  16. 3
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.xml
  17. 4
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWxpromotionMapper.xml
  18. 77
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java

@ -179,7 +179,7 @@ public class DsPartEntity extends BaseEntity {
* 是否玻璃饼
*/
@Schema(description = "是否玻璃饼")
private String isClassCake;
private String isGlassCake;
/**
* 成型厚度
*/

@ -3,6 +3,8 @@ package org.springblade.desk.order.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
@ -466,4 +468,16 @@ public class YieldOrder extends BaseEntity {
@TableField(value = "craft_id")
private Long craftId;
@JsonSerialize(nullsUsing = NullSerializer.class)
private Double plateThickness1;
@JsonSerialize(nullsUsing = NullSerializer.class)
private Double plateThickness2;
@JsonSerialize(nullsUsing = NullSerializer.class)
private Double quota1;
@JsonSerialize(nullsUsing = NullSerializer.class)
private Double quota2;
}

@ -82,7 +82,8 @@ public enum YieldOrderEnum {
VALIDATION_RESULT_LESS_CRAFT("工艺缺失", 16003),
VALIDATION_RESULT_LESS_RESOURCE("资源缺失", 16004),
VALIDATION_RESULT_DELIVERY("交期冲突", 16005),
VALIDATION_RESULT_PASS("验证完成", 16006),
VALIDATION_RESULT_LESS_MATERIAL("物料需求异常", 16006),
VALIDATION_RESULT_PASS("验证完成", 16007),
;
final String name;
final int code;

@ -777,12 +777,14 @@ public class DsPartServiceImpl extends BaseServiceImpl<DsPartMapper, DsPartEntit
List<DsPartRelationEntity> partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId());
List<Long> validChildPartIds = partRelationEntityList.stream()
.map(DsPartRelationEntity::getChildPartId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
List<DsPartEntity> dsPartEntityList1 = this.selectDsPartByIds(validChildPartIds);
List<DsPartEntity> dsPartEntityList1 = new ArrayList<>();
if(!CollectionUtils.isEmpty(partRelationEntityList)){
List<Long> validChildPartIds = partRelationEntityList.stream()
.map(DsPartRelationEntity::getChildPartId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
dsPartEntityList1 = this.selectDsPartByIds(validChildPartIds);
}
return dsPartEntityList1;
}

@ -26,23 +26,26 @@
package org.springblade.desk.dashboard.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.desk.basic.service.ICraftAbilityService;
import org.springblade.desk.basic.service.impl.WorkCenterServiceImpl;
import org.springblade.desk.common.constant.BizTypeConstant;
import org.springblade.desk.common.service.IMesNotifyMessageService;
import org.springblade.desk.dashboard.constant.*;
import org.springblade.desk.dashboard.constant.DsPartConstant;
import org.springblade.desk.dashboard.constant.TaskingConstant;
import org.springblade.desk.dashboard.excel.DsTaskingExcel;
import org.springblade.desk.dashboard.mapper.DsTaskingMapper;
import org.springblade.desk.dashboard.pojo.dto.DsTaskingDTO;
import org.springblade.desk.dashboard.pojo.entity.*;
import org.springblade.desk.dashboard.pojo.vo.*;
import org.springblade.desk.dashboard.excel.DsTaskingExcel;
import org.springblade.desk.dashboard.mapper.DsTaskingMapper;
import org.springblade.desk.dashboard.service.*;
import org.springblade.desk.order.pojo.entity.MoldDemand;
import org.springblade.desk.order.pojo.entity.YieldOrder;
@ -54,7 +57,6 @@ import org.springblade.desk.quality.pojo.dto.PpmReportDetailDTO;
import org.springblade.desk.quality.pojo.request.ReviewSheetErpSearch;
import org.springblade.desk.quality.service.IReviewSheetService;
import org.springblade.erpdata.feign.IErpDataReworkTaskClient;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springblade.scheduling.pojo.entity.WorkOrderEntity;
import org.springblade.scheduling.pojo.entity.WorkPlanEntity;
import org.springblade.system.feign.IUserClient;
@ -64,9 +66,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@ -74,9 +73,9 @@ import org.springframework.util.StringUtils;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.*;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@ -2123,7 +2122,7 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
partBasics.setPartName(oldMesPart.getPartName());
partBasics.setProductType(oldMesPart.getProductType());
partBasics.setIsSintering(oldMesPart.getIsSintering());
partBasics.setIsClassCake(oldMesPart.getIsClassCake());
partBasics.setIsClassCake(oldMesPart.getIsGlassCake());
partBasics.setCreateTime(new Date());
partBasics.setUpdateTime(new Date());
partBasics.setStatus(1);

@ -286,4 +286,13 @@ public class YieldOrderController extends BladeController {
Boolean result = goodsRecordService.calculateCoatingMaterial(yieldOrder);
return R.status(result);
}
/**
* 根据零件号获取工装
*/
@GetMapping("/getToolByPartCode")
public R<List<String>> getToolByPartCode(@Parameter(description = "零件号", required = true) @RequestParam String partCode) {
List<String> list = yieldOrderService.getToolByPartCode(partCode);
return R.data(list);
}
}

@ -277,4 +277,6 @@ public interface IYieldOrderService extends BaseService<YieldOrder> {
* @param yieldOrderList
*/
void saveOrder(List<YieldOrder> yieldOrderList);
List<String> getToolByPartCode(String partCode);
}

@ -325,7 +325,11 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
}else{
demand = (s2*yieldOrder.getYpQty()*quota1 + (s1-s2)*yieldOrder.getYpQty()*quota2)*0.2829;
}
yieldOrder.setQuota1(quota1);
yieldOrder.setQuota2(quota2);
yieldOrder.setPlateThickness1(h1);
yieldOrder.setPlateThickness2(h2);
yieldOrder.setGoodsDemand(BigDecimal.valueOf(demand));
}else{
double quota = 0;
if(abilityName.contains("镀银")){
@ -366,177 +370,17 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
demand = singleArea*quota*0.2829;
}
}
yieldOrder.setQuota1(quota);
yieldOrder.setPlateThickness1(h1);
yieldOrder.setGoodsDemand(BigDecimal.valueOf(demand));
}
//构建镀层物料需求申报对象, 调用保存方法,保存镀层物料需求申报
PlateGoodsRecord plateGoodsRecord=new PlateGoodsRecord();
plateGoodsRecord.setGoodsCode(plateGoodsCode);
plateGoodsRecord.setGoodsName(plateGoodsCode.equals(PlateGoodsConst.GOLD_POTASSIUM)?"氢化亚金钾":"氢化银钾");
plateGoodsRecord.setGoodsDemand(BigDecimal.valueOf(demand));
plateGoodsRecord.setDeclaredStatus((long) PlateGoodsEnum.STATUS_WAITING.getCode());
plateGoodsRecord.setWcId(yieldOrder.getWorkCenterId());
List<PlateGoodsRecordDetail> detailList=new ArrayList<>();
PlateGoodsRecordDetail plateGoodsRecordDetail=new PlateGoodsRecordDetail();
plateGoodsRecordDetail.setYoId(yieldOrder.getId());
this.save(plateGoodsRecord, detailList);
yieldOrderMapper.updateById(yieldOrder);
}else{
return true;
}
return true;
}
/**
* 生成订单-计算镀层物料
* @param yieldOrder
* @return
*/
public boolean calculateCoatingMaterial1(YieldOrder yieldOrder){
//零件号
String partCode=yieldOrder.getPartCode();
//零件版本
String partVersion=yieldOrder.getPartVersion();
//生产标识/质量等级
String productIdent=yieldOrder.getProductIdent();
//根据零件号查询零件
DsPartEntity dsPart = dsPartService.selectDsPartByPatCodeAndVersion(partCode,partVersion);
if(null==dsPart){
return false;
}
//镀层物料编码
String plateGoodsCode=dsPart.getPlateGoodsCode();
//面积(㎡)
Double ypArea=yieldOrder.getYpArea();
//生产数量
Double ypQty=yieldOrder.getYpQty();
//计算单批面积(d㎡)
Double singleArea=ypArea*ypQty*100;
//大批量/小批量标志
int batchFlag=0;//大批量1;小批量0
//判断是否是大批量
if(singleArea>=30){
//是大批量
batchFlag=1;
}else{
//是小批量
batchFlag=0;
}
//金钾、银钾标志
int goldSilverFlag=0;//金钾1;银钾0
//判断是否有镀层物料编码
if(Func.isEmpty(plateGoodsCode)){
//查询不到镀层物料编码
return false;
}else{
//可以查询到镀层物料编码
//判断是否是金钾或银钾
if(plateGoodsCode.equals(PlateGoodsConst.GOLD_POTASSIUM)||plateGoodsCode.equals(PlateGoodsConst.SILVER_POTASSIUM)){
//是金钾或银钾
if(plateGoodsCode.equals(PlateGoodsConst.GOLD_POTASSIUM)){
goldSilverFlag=1;
}else{
goldSilverFlag=0;
}
//从零件号获取配置码
if(partCode.contains("-")){
String partCodeArr[]=partCode.split("-");
//配置码
String configCode=partCodeArr[partCodeArr.length-1];
//根据配置码查询镀种信息
BsPlatingEntity bsPlatingEntity =bsPlatingService.selectBsPlatingConfigNo(configCode);
//镀层代码
String matCode=bsPlatingEntity.getMatCode();
//根据零件号、镀层代码、质量等级,从镀层厚度对应表中查询镀层厚度
int start_f21e8=0;
if(partCode.startsWith("21E8-210")){
start_f21e8=1;
}
CoatingThickness CoatingThickness=coatingThicknessService.queryCoatingThickness(matCode,productIdent,start_f21e8);
//镀层厚度
BigDecimal thickness=CoatingThickness.getThickness();
//未找到镀层厚度
if(Func.isEmpty(thickness)){
//将订单状态标记为数据异常,记录异常原因,并退出
yieldOrder.setValidationMomo("未查询到镀层厚度信息");
this.updateYieldOrder(yieldOrder);
return false;
}else{
//todo(接口存在问题) 根据生产订单(YieldOrder)对象中的零件号和零件版本(与关系),查询DS_CRAFT表
DsCraftEntity dsCraftEntity = dsCraftService.selectDsCraftByPartCodeAndVersion(dsPart.getId(),partVersion);
//工艺表(DS_CRAFT)id
Long dsCraftId=dsCraftEntity.getId();
//查询生产工序列表
List<DsProcessEntity> dsProcessList=dsProcessService.selectDsProcessByCraftId(dsCraftId);
// 1. 空列表校验
if (CollectionUtils.isEmpty(dsProcessList)) {
//将订单状态标记为数据异常,记录异常原因,并退出
yieldOrder.setValidationMomo("未查询到生产工序信息");
this.updateYieldOrder(yieldOrder);
return false;
} else{
//取出工艺能力
for (DsProcessEntity process : dsProcessList) {
//DS_PROCESS表id
Long dsProcessId=process.getCaId();
//工艺能力编码
String craftCode=process.getCraftCode();
//根据镀层厚度、工艺能力,到物料定额表中查询定额
MaterialQuota materialQuota=materialQuotaService.queryMaterialQuota(thickness,dsProcessId);
if(null==materialQuota){
yieldOrder.setValidationMomo("为查询到物料定额");
this.updateYieldOrder(yieldOrder);
return false;
}
//定额
BigDecimal quotanew=materialQuota.getQuota();
double quota = quotanew.doubleValue();
//未找到定额
if(Func.isEmpty(quota)){
yieldOrder.setValidationMomo("未查询到物料定额");
this.updateYieldOrder(yieldOrder);
return false;
}else{
//计算物料需求
Double demand=0.0;
if(goldSilverFlag==0){
//银钾
demand=singleArea*quota*0.105;
}else{
//金钾
//小批量且工艺能力为(E379、E10120、E10060、E007、E9600、E12340)
if(batchFlag==0&&(craftCode.equals("E379")||craftCode.equals("E10120")||craftCode.equals("E10060")||craftCode.equals("E007")||craftCode.equals("E9600")||craftCode.equals("E12340"))){
demand=singleArea*quota*0.2829 * 1.2;
}else{
//金钾其他情况
demand=singleArea*quota*0.2829;
}
}
//构建镀层物料需求申报对象, 调用保存方法,保存镀层物料需求申报
PlateGoodsRecord plateGoodsRecord=new PlateGoodsRecord();
plateGoodsRecord.setGoodsCode(plateGoodsCode);
plateGoodsRecord.setGoodsName(plateGoodsCode.equals(PlateGoodsConst.GOLD_POTASSIUM)?"氢化亚金钾":"氢化银钾");
plateGoodsRecord.setGoodsDemand(BigDecimal.valueOf(demand));
plateGoodsRecord.setDeclaredStatus((long) PlateGoodsEnum.STATUS_WAITING.getCode());
plateGoodsRecord.setWcId(yieldOrder.getWorkCenterId());
List<PlateGoodsRecordDetail> detailList=new ArrayList<>();
PlateGoodsRecordDetail plateGoodsRecordDetail=new PlateGoodsRecordDetail();
plateGoodsRecordDetail.setYoId(yieldOrder.getId());
this.save(plateGoodsRecord, detailList);
}
}
}
}
}else{
//查询不到配置码
return false;
}
}else {
//不是金钾或银钾
return false;
}
}
//保存成功
return true;
}
/**
* 将订单状态标记为数据异常记录异常原因
@ -544,7 +388,7 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
*/
public void updateYieldOrder(YieldOrder yieldOrder){
yieldOrder.setStatus(YieldOrderEnum.STATUS_EXCEPTION.getCode());
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode());
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_MATERIAL.getCode());
yieldOrderMapper.updateById(yieldOrder);
}
}

@ -432,17 +432,25 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
if(CollectionUtils.isNotEmpty(subPartList)){
for(DsPartEntity subPart : subPartList){
if(DsPartConstant.SIN_TER_TYPE_SMM == subPart.getSinTerType() && subPart.getQuota() != 0){
MoldDemand moldDemand = new MoldDemand();
moldDemand.setMoCode(null);
moldDemand.setPartCode(subPart.getPartCode());
moldDemand.setPartName(subPart.getPartName());
moldDemand.setDemandNum(subPart.getQuota() * yieldOrder.getYpQty());
moldDemand.setLinkOrderIds(yieldOrder.getId().toString());
moldDemand.setStatus(MoldDemandEnum.STATUS_WAITING.getCode());
moldDemand.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode());
moldDemand.setNeedDate(yieldOrder.getDemandDate());
moldDemand.setQuaLevel(yieldOrder.getProductIdent());
moldDemandMapper.insert(moldDemand);
MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>lambdaQuery().eq(MoldDemand::getPartCode,subPart.getPartCode()).eq(MoldDemand::getMafStatus,MoldDemandEnum.MAF_STATUS_CREATE.getCode()));
if(moldDemand == null){
moldDemand = new MoldDemand();
moldDemand.setMoCode(null);
moldDemand.setPartCode(subPart.getPartCode());
moldDemand.setPartName(subPart.getPartName());
moldDemand.setDemandNum(subPart.getQuota() * yieldOrder.getYpQty());
moldDemand.setLinkOrderIds(yieldOrder.getId().toString());
moldDemand.setStatus(MoldDemandEnum.STATUS_WAITING.getCode());
moldDemand.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode());
moldDemand.setNeedDate(yieldOrder.getDemandDate());
moldDemand.setQuaLevel(yieldOrder.getProductIdent());
moldDemandMapper.insert(moldDemand);
}else{
moldDemand.setDemandNum(moldDemand.getDemandNum() + subPart.getQuota() * yieldOrder.getYpQty());
moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString()));
moldDemandMapper.updateById(moldDemand);
}
}
}
@ -450,19 +458,27 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
}else if(YieldOrderEnum.YIELD_TYPE_3.getCode() == yieldOrder.getYieldType()){
List<DsProcessMoldToolEntity> processMoldToolList = dsPartService.getClassCakeWork(yieldOrder.getPartCode(),yieldOrder.getRoamNo(),yieldOrder.getPartVersion());
if(CollectionUtils.isNotEmpty(processMoldToolList)){
MoldDemand moldDemand = new MoldDemand();
moldDemand.setMoCode(null);
moldDemand.setPartCode(yieldOrder.getPartCode());
moldDemand.setPartName(yieldOrder.getPartName());
moldDemand.setDemandNum(yieldOrder.getYpQty());
moldDemand.setToolCode(processMoldToolList.get(0).getMoldCode());
moldDemand.setToolName(processMoldToolList.get(0).getMoldName());
moldDemand.setLinkOrderIds(yieldOrder.getId().toString());
moldDemand.setStatus(MoldDemandEnum.STATUS_WAITING.getCode());
moldDemand.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode());
moldDemand.setNeedDate(yieldOrder.getDemandDate());
moldDemand.setQuaLevel(yieldOrder.getProductIdent());
moldDemandMapper.insert(moldDemand);
MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>lambdaQuery().eq(MoldDemand::getPartCode,yieldOrder.getPartCode()).eq(MoldDemand::getMafStatus,MoldDemandEnum.MAF_STATUS_CREATE.getCode()));
if(moldDemand == null){
moldDemand = new MoldDemand();
moldDemand.setMoCode(null);
moldDemand.setPartCode(yieldOrder.getPartCode());
moldDemand.setPartName(yieldOrder.getPartName());
moldDemand.setDemandNum(yieldOrder.getYpQty());
moldDemand.setToolCode(processMoldToolList.get(0).getMoldCode());
moldDemand.setToolName(processMoldToolList.get(0).getMoldName());
moldDemand.setLinkOrderIds(yieldOrder.getId().toString());
moldDemand.setStatus(MoldDemandEnum.STATUS_WAITING.getCode());
moldDemand.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode());
moldDemand.setNeedDate(yieldOrder.getDemandDate());
moldDemand.setQuaLevel(yieldOrder.getProductIdent());
moldDemandMapper.insert(moldDemand);
}else{
moldDemand.setDemandNum(moldDemand.getDemandNum() + yieldOrder.getYpQty());
moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString()));
moldDemandMapper.updateById(moldDemand);
}
}
}
return Boolean.TRUE;
@ -481,8 +497,10 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
this.updateById(yieldOrder);
return Boolean.FALSE;
}
yieldOrder.setStatus(YieldOrderEnum.STATUS_APS.getCode());
this.updateById(yieldOrder);
if(yieldOrder.getYieldType() != YieldOrderEnum.YIELD_TYPE_2.getCode()){
yieldOrder.setStatus(YieldOrderEnum.STATUS_APS.getCode());
this.updateById(yieldOrder);
}
return Boolean.TRUE;
}
@ -977,6 +995,28 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
});
this.saveBatch(yieldOrderList);
}
@Override
public List<String> getToolByPartCode(String partCode) {
List<String> list = new ArrayList<>();
DsPartEntity part = dsPartService.selectDsPartByPatCodeAndVersion(partCode, null);
if("1".equals(part.getIsSintering()) && "0".equals(part.getIsGlassCake())){
List<DsPartEntity> subPartList = dsPartService.getPartSubList(partCode,null);
list = subPartList.stream().filter(item -> DsPartConstant.SIN_TER_TYPE_SMM.equals(item.getSinTerType())).map(DsPartEntity::getPartCode).collect(Collectors.toList());
}
if(DsPartConstant.SIN_TER_TYPE_SMM.equals(part.getSinTerType())){
List<DsPartEntity> subPartList = dsPartService.getPartSubList(partCode,null);
list = subPartList.stream().map(DsPartEntity::getPartCode).collect(Collectors.toList());
}
if(DsPartConstant.SIN_TER_TYPE_BLB.equals(part.getSinTerType())){
List<DsProcessMoldToolEntity> processMoldToolList = dsPartService.getClassCakeWork(partCode,null,null);
if(CollectionUtils.isNotEmpty(processMoldToolList)){
list = processMoldToolList.stream().map(DsProcessMoldToolEntity::getMoldCode).collect(Collectors.toList());
}
}
return list;
}
/**
* 验证零件子件信息
*

@ -30,13 +30,14 @@
dba_mgr.v_mes_rb_pacturnrecord a
<where>
<if test="newlevdateMax != null">
AND a.cdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS') - INTERVAL '10' MINUTE
AND a.cdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS')
</if>
AND a.wono IS NOT NULL
AND a.prtlotno IS NOT NULL
AND a.rouclp IS NOT NULL
AND a.splcode IS NOT NULL
</where>
order by a.cdate desc
</select>
<select id = "getNewlevdateMax" resultType = "java.lang.String">
SELECT

@ -42,10 +42,10 @@
<where>
1=1
<if test="newlevdateMax != null">
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS') - INTERVAL '10'
MINUTE
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS')
</if>
</where>
order by a.newlevdate desc
/* WHERE
a.newlevdate > v_select_time*/
</select>

@ -26,10 +26,10 @@
<where>
1=1
<if test="newlevdateMax != null">
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS') - INTERVAL '10'
MINUTE
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS')
</if>
</where>
order by a.newlevdate desc
</select>
</mapper>

@ -31,10 +31,10 @@
<where>
1=1
<if test="newlevdateMax != null">
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS') - INTERVAL '10'
MINUTE
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS')
</if>
</where>
order by a.newlevdate desc
/* WHERE
a.newlevdate > v_select_time*/
</select>

@ -41,10 +41,10 @@
<where>
1=1
<if test="newlevdateMax != null">
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS') - INTERVAL '10'
MINUTE
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS')
</if>
</where>
order by a.newlevdate desc
/*WHERE
a.newlevdate > v_select_time - 1 / 24 / 6;*/
</select>

@ -41,10 +41,10 @@
<where>
1=1
<if test="newlevdateMax != null">
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS') - INTERVAL '10'
MINUTE;
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS')
</if>
</where>
order by a.newlevdate desc
/*WHERE
a.newlevdate > v_select_time-1 / 24 / 6 ;*/
</select>

@ -23,8 +23,9 @@
a.prodline
FROM dba_mgr.v_mes_rb_wo a
<where>
a.wopordat <![CDATA[ >= ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS') - INTERVAL '10' MINUTE
a.wopordat <![CDATA[ >= ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS')
</where>
order by a.wopordat desc
</select>

@ -30,10 +30,10 @@
<where>
1=1
<if test="newlevdateMax != null">
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS') - INTERVAL '10'
MINUTE
AND a.newlevdate <![CDATA[ > ]]> TO_DATE(#{newlevdateMax}, 'YYYY-MM-DD HH24:MI:SS')
</if>
</where>
order by a.newlevdate desc
/*WHERE
a.newlevdate > v_select_time-1 / 24 / 6*/
</select>

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springblade.core.tool.api.R;
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
@ -19,6 +20,7 @@ import org.springblade.erpdata.pojo.dto.view.*;
import org.springblade.erpdata.service.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.text.ParseException;
import java.util.ArrayList;
@ -146,9 +148,13 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
//用字典的code查更新日期
String selectTime = apsOrderClient.getSelectTime("SYCN_MESRBWO_TIME");
//从ERP视图查询最大日期
String newlevdateMax = mesRbWoMapper.getNewlevdateMax(selectTime);
apsOrderClient.upByDateMax(newlevdateMax, "SYCN_MESRBWO_TIME");
List<MesRbWo> mesRbWoList = mesRbWoMapper.getYieldPlanErpList(newlevdateMax);
//String newlevdateMax = mesRbWoMapper.getNewlevdateMax(selectTime);
List<MesRbWo> mesRbWoList = mesRbWoMapper.getYieldPlanErpList(selectTime);
if(!CollectionUtils.isEmpty(mesRbWoList)){
apsOrderClient.upByDateMax(DateFormatUtils.format(mesRbWoList.get(0).getWopordat(),"yyyy-MM-dd HH:mm:ss"), "SYCN_MESRBWO_TIME");
}
Gson gson = new Gson();
String jsonString = gson.toJson(mesRbWoList);
log.info("qyl:同步生产计划 data: {}", jsonString);
@ -262,9 +268,12 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
//用字典的code查更新日期
String selectTime=apsOrderClient.getSelectTime("SYCN_TRANSFERCG_TIME1");
//从ERP视图查询最大日期
String newlevdateMax=mesRbPurtosoService.getNewlevdateMax(selectTime);
apsOrderClient.upByDateMax(newlevdateMax, "SYCN_TRANSFERCG_TIME1");
List<MesRbPurtoso> purtosoList=mesRbPurtosoService.getMesRbPurtosoList(newlevdateMax);
// String newlevdateMax=mesRbPurtosoService.getNewlevdateMax(selectTime);
// apsOrderClient.upByDateMax(newlevdateMax, "SYCN_TRANSFERCG_TIME1");
List<MesRbPurtoso> purtosoList=mesRbPurtosoService.getMesRbPurtosoList(selectTime);
if(!CollectionUtils.isEmpty(purtosoList)){
apsOrderClient.upByDateMax(DateFormatUtils.format(purtosoList.get(0).getNewlevdate(),"yyyy-MM-dd HH:mm:ss"), "SYCN_TRANSFERCG_TIME1");
}
Gson gson = new Gson();
String jsonString = gson.toJson(purtosoList);
log.info("qyl:同步物资转车间协作加工 data: {}", jsonString);
@ -328,9 +337,12 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
//用字典的code查更新日期
String selectTime=apsOrderClient.getSelectTime("SYCN_PACTURNRECORD_TIME");
//从ERP视图查询最大日期
String newlevdateMax=mesRbPacturnrecordService.getNewlevdateMax(selectTime);
apsOrderClient.upByDateMax(newlevdateMax, "SYCN_PACTURNRECORD_TIME");
List<MesRbPacturnrecord> pacturnrecordList=mesRbPacturnrecordService.getMesRbPacturnrecordList(newlevdateMax);
// String newlevdateMax=mesRbPacturnrecordService.getNewlevdateMax(selectTime);
// apsOrderClient.upByDateMax(newlevdateMax, "SYCN_PACTURNRECORD_TIME");
List<MesRbPacturnrecord> pacturnrecordList=mesRbPacturnrecordService.getMesRbPacturnrecordList(selectTime);
if(!CollectionUtils.isEmpty(pacturnrecordList)){
apsOrderClient.upByDateMax(pacturnrecordList.get(0).getCdate(), "SYCN_PACTURNRECORD_TIME");
}
Gson gson = new Gson();
String jsonString = gson.toJson(pacturnrecordList);
log.info("qyl:同步临时工单 data: {}", jsonString);
@ -389,9 +401,12 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
//用字典的code查更新日期
String selectTime=apsOrderClient.getSelectTime("SYCN_TRANSFERSJ_TIME");
//从ERP视图查询最大日期
String newlevdateMax=mesRbSjsoService.getNewlevdateMax(selectTime);
apsOrderClient.upByDateMax(newlevdateMax, "SYCN_TRANSFERSJ_TIME");
List<MesRbSjso> rbtosoList=mesRbSjsoService.getMesRbSjsoList(newlevdateMax);
// String newlevdateMax=mesRbSjsoService.getNewlevdateMax(selectTime);
// apsOrderClient.upByDateMax(newlevdateMax, "SYCN_TRANSFERSJ_TIME");
List<MesRbSjso> rbtosoList=mesRbSjsoService.getMesRbSjsoList(selectTime);
if(!CollectionUtils.isEmpty(rbtosoList)){
apsOrderClient.upByDateMax(DateFormatUtils.format(rbtosoList.get(0).getNewlevdate(),"yyyy-MM-dd HH:mm:ss"), "SYCN_TRANSFERSJ_TIME");
}
Gson gson = new Gson();
String jsonString = gson.toJson(rbtosoList);
log.info("qyl:同步烧结数据 data: {}", jsonString);
@ -443,9 +458,12 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
//用字典的code查更新日期
String selectTime=apsOrderClient.getSelectTime("SYCN_BUYTRANSFER_TIME");
//从ERP视图查询最大日期
String dateMax=mesRbWxpromotionService.getNewlevdateMax(selectTime);
apsOrderClient.upByDateMax(dateMax,"SYCN_BUYTRANSFER_TIME");
List<MesRbWxpromotion> wxpromotionList=mesRbWxpromotionService.getMesRbWxpromotionList(dateMax);
// String dateMax=mesRbWxpromotionService.getNewlevdateMax(selectTime);
// apsOrderClient.upByDateMax(dateMax,"SYCN_BUYTRANSFER_TIME");
List<MesRbWxpromotion> wxpromotionList=mesRbWxpromotionService.getMesRbWxpromotionList(selectTime);
if(!CollectionUtils.isEmpty(wxpromotionList)){
apsOrderClient.upByDateMax(DateFormatUtils.format(wxpromotionList.get(0).getNewlevdate(),"yyyy-MM-dd HH:mm:ss"),"SYCN_BUYTRANSFER_TIME");
}
Gson gson = new Gson();
String jsonString = gson.toJson(wxpromotionList);
log.info("qyl:同步采购LOTTJ data: {}", jsonString);
@ -507,9 +525,12 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
//用字典的code查更新日期
String selectTime=apsOrderClient.getSelectTime("SYCN_TRANSFERWX_TIME");
//从ERP视图查询最大日期
String dateMax=erpMesRbSodelrecwxService.getNewlevdateMax(selectTime);
apsOrderClient.upByDateMax(dateMax,"SYCN_TRANSFERWX_TIME");
List<MesRbSodelrecwx> mesRbSodelrecwxList=erpMesRbSodelrecwxService.getMesRbSodelrecwxList(dateMax);
// String dateMax=erpMesRbSodelrecwxService.getNewlevdateMax(selectTime);
// apsOrderClient.upByDateMax(dateMax,"SYCN_TRANSFERWX_TIME");
List<MesRbSodelrecwx> mesRbSodelrecwxList=erpMesRbSodelrecwxService.getMesRbSodelrecwxList(selectTime);
if(!CollectionUtils.isEmpty(mesRbSodelrecwxList)){
apsOrderClient.upByDateMax(DateFormatUtils.format(mesRbSodelrecwxList.get(0).getNewlevdate(),"yyyy-MM-dd HH:mm:ss"),"SYCN_TRANSFERWX_TIME");
}
Gson gson = new Gson();
String jsonString = gson.toJson(mesRbSodelrecwxList);
log.info("qyl:同步外协工单 data: {}", jsonString);
@ -570,10 +591,13 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
//用字典的code查更新日期
String selectTime=apsOrderClient.getSelectTime("SYCN_TRANSFERZG_TIME1");
//从ERP视图查询最大日期
String dateMax=erpMesRbSodelreczgService.getNewlevdateMax(selectTime);
//更新配置表的基准时间
apsOrderClient.upByDateMax(dateMax,"SYCN_TRANSFERZG_TIME1");
List<MesRbSodelreczg> mesRbSodelreczgList=erpMesRbSodelreczgService.getMesRbSodelreczgList(dateMax);
// String dateMax=erpMesRbSodelreczgService.getNewlevdateMax(selectTime);
// //更新配置表的基准时间
// apsOrderClient.upByDateMax(dateMax,"SYCN_TRANSFERZG_TIME1");
List<MesRbSodelreczg> mesRbSodelreczgList=erpMesRbSodelreczgService.getMesRbSodelreczgList(selectTime);
if(!CollectionUtils.isEmpty(mesRbSodelreczgList)){
apsOrderClient.upByDateMax(DateFormatUtils.format(mesRbSodelreczgList.get(0).getNewlevdate(),"yyyy-MM-dd HH:mm:ss"),"SYCN_TRANSFERZG_TIME1");
}
Gson gson = new Gson();
String jsonString = gson.toJson(mesRbSodelreczgList);
log.info("qyl:同步工艺工单 data: {}", jsonString);
@ -643,9 +667,12 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
//用字典的code查更新日期
String selectTime=apsOrderClient.getSelectTime("SYCN_TRANSFERPK_TIME");
//从ERP视图查询最大日期
String dateMax=erpMesRbPkService.getNewlevdateMax(selectTime);
apsOrderClient.upByDateMax(dateMax,"SYCN_TRANSFERPK_TIME");
List<MesRbPk> mesRbPkList=erpMesRbPkService.getMesRbPkList(dateMax);
// String dateMax=erpMesRbPkService.getNewlevdateMax(selectTime);
// apsOrderClient.upByDateMax(dateMax,"SYCN_TRANSFERPK_TIME");
List<MesRbPk> mesRbPkList=erpMesRbPkService.getMesRbPkList(selectTime);
if(!CollectionUtils.isEmpty(mesRbPkList)){
apsOrderClient.upByDateMax(DateFormatUtils.format(mesRbPkList.get(0).getNewlevdate(),"yyyy-MM-dd HH:mm:ss"),"SYCN_TRANSFERPK_TIME");
}
Gson gson = new Gson();
String jsonString = gson.toJson(mesRbPkList);
log.info("qyl:同步配套工单 data: {}", jsonString);

Loading…
Cancel
Save