流程生产订单: 优化生产订单制令号同步逻辑

- 使用 Objects.equals 优化字符串比较- 增加对 cprojectid 的处理,优先使用项目编号作为制令号
- 通过 transferCodeByPk 方法获取项目编号对应的编码
This commit is contained in:
maolei 2025-06-13 09:42:52 +08:00
parent 6225338437
commit cfc7feaaae
1 changed files with 9 additions and 3 deletions

View File

@ -8,6 +8,7 @@ import nc.bs.framework.common.NCLocator;
import nc.bs.logging.Log;
import nc.impl.pubapp.pattern.rule.IRule;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.vo.bc.pmpub.project.ProjectHeadVO;
import nc.vo.bd.bom.bom0202.entity.BomVO;
import nc.vo.bd.material.MaterialVO;
import nc.vo.bd.material.MaterialVersionVO;
@ -28,6 +29,7 @@ import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* 流程生产订单审批后推送MES
@ -72,7 +74,7 @@ public class AfterApproveRuleSyncMes implements IRule<PMOAggVO> {
for (PMOItemVO item : bodys) {
obmlog.debug("处理生产订单行 " + item.getVrowno());
obmlog.debug(item);
if (!item.getVsrctype().equals("55A2")) {
if (!Objects.equals(item.getVsrctype(),"55A2")) {
syncOrderItemToMes(head, item);
}else {
obmlog.warn("生产订单 " + head.getVbillcode() + "" + item.getVrowno() + " 跳过同步:不是成品");
@ -268,8 +270,12 @@ public class AfterApproveRuleSyncMes implements IRule<PMOAggVO> {
throw new BusinessException("生产订单 " + vbillcode + " 行 : MES系统要求" + itemRow + " 工厂信息不能为空。");
}
// productNum String ÖÆÁîºÅ vsalebillcode
data.put("productNum", item.getVsalebillcode());
// productNum String 制令号 vsalebillcode 2025年6月13日刘成&程猛:流程生产订单制令号取明细中的cprojectid的编码
if(!StringUtils.isEmpty(item.getCprojectid())){
data.put("productNum", transferCodeByPk(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_CODE, ProjectHeadVO.PK_PROJECT, item.getCprojectid()));
}
// saleOrderNo String 销售订单号 vsalebillcode
data.put("saleOrderNo", item.getVsalebillcode());