新mes同步订单方法修改

master
liuqingkun 2 days ago
parent a51b21b7a6
commit c472c70a1b
  1. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderCraftService.java
  2. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java
  3. 96
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java

@ -30,6 +30,14 @@ public interface IYieldOrderCraftService extends BaseService<YieldOrderCraft> {
*/
List<YieldOrderCraft> listByYoId(Long yoId);
/**
* 根据生产订单ID删除工艺列表
*
* @param yoId
* @return
*/
int deleteByYoId(Long yoId);
/**
* 同步旧MES的待排产订单工艺数据
*/

@ -35,6 +35,14 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
return craftList;
}
@Override
public int deleteByYoId(Long yoId) {
LambdaQueryWrapper<YieldOrderCraft> deleteWrapper = Wrappers.lambdaQuery(YieldOrderCraft.class)
.eq(YieldOrderCraft::getYoId, yoId)
.eq(YieldOrderCraft::getIsDeleted, CommonConstant.DELETE_FALSE);
return baseMapper.delete(deleteWrapper);
}
@Override
public void syncYieldOrderCraftData() {

@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springblade.common.constant.CommonConstant;
import org.springblade.common.constant.YieldOrderConst;
import org.springblade.common.exception.BusinessException;
import org.springblade.common.utils.StringPrefixUtils;
@ -17,11 +18,14 @@ import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.desk.dashboard.constant.DsCraftConstant;
import org.springblade.desk.dashboard.constant.DsPartConst;
import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity;
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
import org.springblade.desk.dashboard.pojo.entity.DsProcessEntity;
import org.springblade.desk.dashboard.service.IDsCraftService;
import org.springblade.desk.dashboard.service.IDsPartService;
import org.springblade.desk.dashboard.service.IDsProcessService;
import org.springblade.desk.order.entity.YieldOrder;
import org.springblade.desk.order.entity.YieldOrderCraft;
import org.springblade.desk.order.mapper.YieldOrderMapper;
@ -29,6 +33,7 @@ import org.springblade.desk.order.service.IYieldOrderCraftService;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.MessageFormat;
import java.util.ArrayList;
@ -49,6 +54,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
private final IDsPartService dsPartService;
private final IDsCraftService dsCraftService;
private final IDsProcessService dsProcessService;
@Value("${business.oldMes.url}")
private String oldMesUrl;
@ -172,13 +178,97 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
return true;
}
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean verifyYieldOrderCraft(YieldOrder yieldOrder) {
//TODO 匹配工艺
if (StringUtils.isBlank(yieldOrder.getReworkCode())) {
// pjYieldCraftService.renewYieldCraft(yieldOrder);
if (StringUtils.isNotBlank(yieldOrder.getReworkCode())) {
return Boolean.TRUE;
}
return null;
String roamNo = yieldOrder.getRoamNo();
String productIdent = yieldOrder.getProductIdent();
String partCode = yieldOrder.getPartCode();
DsCraftEntity craft = null;
//石墨模零件不考虑B号匹配因素
// if (YieldOrderConst.YIELD_TYPE_6.equals(yieldOrder.getYieldType())) {
// craft = dsCraftService.getCraft(partCode, null, prodIdent, DsCraft.RANK_TWO);
// } else {
// Short rank = judgeRank(yieldOrder);
// if (rank == null) {
// craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, DsCraft.RANK_TWO);
// if (craft == null) {
// craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, DsCraft.RANK_ONE);
// }
// if (craft == null) {
// craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, DsCraft.RANK_THREE);
// }
// } else {
// craft = dsCraftService.getCraft(partCode, roamNo, prodIdent, rank);
// }
// }
if (ObjectUtil.isEmpty(craft)) {
String errMsg = StringUtils.isNotBlank(roamNo) ? "订单流转单号匹配失败,请联系工艺员!" : "未找到B号工艺,请核实订单是否存在B号!";
yieldOrder.setValidationResult(YieldOrderConst.VALIDATION_RESULT_LESS_CRAFT);
yieldOrder.setValidationTime(DateUtil.now());
yieldOrder.setValidationMomo(errMsg);
this.updateById(yieldOrder);
return Boolean.FALSE;
}
DsPartEntity part = dsPartService.getById(craft.getPartId());
//验证零件是否已经被删除
if (CommonConstant.DELETE_TRUE.equals(part.getIsDeleted())) {
yieldOrder.setValidationResult(YieldOrderConst.VALIDATION_RESULT_LESS_CRAFT);
yieldOrder.setValidationTime(DateUtil.now());
yieldOrder.setValidationMomo("零件信息已删除,工艺匹配失败,请联系工艺员!");
this.updateById(yieldOrder);
return Boolean.FALSE;
}
//石墨模不参与验证
if (!YieldOrderConst.YIELD_TYPE_2.equals(yieldOrder.getYieldType())
&& !YieldOrderConst.YIELD_TYPE_6.equals(yieldOrder.getYieldType())
&& ObjectUtil.isEmpty(part.getArea())) {
yieldOrder.setValidationResult(YieldOrderConst.VALIDATION_RESULT_LESS_CRAFT);
yieldOrder.setValidationTime(DateUtil.now());
yieldOrder.setValidationMomo("零件面积为空,工艺匹配失败,请联系工艺员!");
this.updateById(yieldOrder);
return Boolean.FALSE;
}
yieldOrder.setYpArea(part.getArea() == null ? 0D : part.getArea());
yieldOrder.setPlate(part.getPlate());
// yieldOrder.setCraftId(craft.getCraftId());
// yieldOrder.setPdmUrl(craft.getPdmUrl());
List<DsProcessEntity> dsProcessEntityList = dsProcessService.selectDsProcessByCraftId(craft.getId());
//删除之前的
yieldOrderCraftService.deleteByYoId(yieldOrder.getId());
List<YieldOrderCraft> yieldOrderCraftList = new ArrayList<>();
if (dsProcessEntityList != null && dsProcessEntityList.size() > 0) {
if (DsCraftConstant.PRIORITY_THIS_USE.equals(craft.getRank())) {
craft.setPrority(DsCraftConstant.PRIORITY_TEMPORARY);
}
for (DsProcessEntity processEntity : dsProcessEntityList) {
YieldOrderCraft yieldOrderCraft = new YieldOrderCraft();
yieldOrderCraft.setYoId(yieldOrder.getId());
yieldOrderCraft.setProcessNo(processEntity.getProcessNo());
yieldOrderCraft.setMakeMemo(processEntity.getRemarks());
yieldOrderCraft.setHourQuota(processEntity.getProHours());
// yieldOrderCraft.setPpsId(processEntity.getBsProcedureSet());
// yieldOrderCraft.setCraftNo(processEntity.getDsCraft().getCraftNo());
// yieldOrderCraft.setPid(processEntity.getPid());
// yieldOrderCraft.setCaId(processEntity.getBsCraftAbility());
yieldOrderCraftList.add(yieldOrderCraft);
}
yieldOrderCraftService.saveBatch(yieldOrderCraftList);
}
return Boolean.TRUE;
}
@Override

Loading…
Cancel
Save