From 989319a6d35ea406d9ec6a503c9bad1b8a62809d Mon Sep 17 00:00:00 2001 From: houyi <1398559711@qq.com> Date: Sat, 11 Oct 2025 11:36:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=8E=A5=E5=8F=A3=E5=9B=BE=E5=8F=B7=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rule/approve/AfterSoSyncRuleGyMes.java | 48 ++++++++++++++++--- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleGyMes.java b/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleGyMes.java index f5d5f8ca..d215ff30 100644 --- a/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleGyMes.java +++ b/so/src/private/nc/bs/so/m30/rule/approve/AfterSoSyncRuleGyMes.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import nc.bs.dao.BaseDAO; import nc.bs.dao.DAOException; +import nc.bs.framework.common.NCLocator; import nc.bs.logging.Log; import nc.bs.trade.business.HYPubBO; import nc.bs.trade.business.HYSuperDMO; @@ -14,8 +15,11 @@ import nc.impl.pubapp.pattern.rule.IRule; import nc.jdbc.framework.processor.ColumnProcessor; import nc.jdbc.framework.processor.MapListProcessor; import nc.jdbc.framework.processor.MapProcessor; +import nc.pubitf.uapbd.IMaterialPubService; +import nc.util.mmf.framework.base.MMValueCheck; import nc.vo.bd.defdoc.DefdocVO; import nc.vo.bd.material.MaterialVO; +import nc.vo.bd.material.plan.MaterialPlanVO; import nc.vo.org.OrgVO; import nc.vo.pmpub.project.ProjectHeadVO; import nc.vo.pub.BusinessException; @@ -25,10 +29,8 @@ import nc.vo.so.m30.entity.SaleOrderHVO; import nc.vo.so.m30.entity.SaleOrderVO; import nccloud.baseapp.core.log.NCCForUAPLogger; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Stream; /** * 销售订单推送高压mes @@ -92,6 +94,15 @@ public class AfterSoSyncRuleGyMes implements IRule { baseDAO.executeUpdate(sql); for (SaleOrderBVO item : itemVOS) { + String cmaterialvid = item.getCmaterialvid(); + Map planMap = queryMaterialPlanInfoByPks(new String[]{cmaterialvid}, pkOrg, + new String[]{MaterialPlanVO.DEF1}); + String drawingNumber = ""; + if (MMValueCheck.isNotEmpty(planMap) && + MMValueCheck.isNotEmpty(planMap.get(cmaterialvid))) { + drawingNumber = planMap.get(cmaterialvid).getDef1(); + } + Object projectName = getDefName("zdy-001", vdef6); // Object projectName = hybo.findColValue(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_NAME, ProjectHeadVO.PK_PROJECT + " = '" + item.getCprojectid() + "' "); String wlsql = " select code,name,graphid from bd_material where dr = 0 and pk_material = '" + item.getCmaterialvid() + "' "; @@ -105,7 +116,8 @@ public class AfterSoSyncRuleGyMes implements IRule { itemObj.put("productQuantity", (int) item.getNastnum().doubleValue());// 数量 itemObj.put("materialCode", mrlMap.get("code"));// 物料编码 itemObj.put("materialName", mrlMap.get("name"));// 物料名称 - itemObj.put("drawingNumber", mrlMap.get("graphid"));// 图号 +// itemObj.put("drawingNumber", mrlMap.get("graphid"));// 图号 + itemObj.put("drawingNumber", drawingNumber);// 图号 itemObj.put("supplyDate", item.getDreceivedate().toString());// 供货日期-要求收货日期 itemObj.put("remark", item.getVrownote());// 备注 itemObj.put("bipCreateBy", createName);// 创建人 @@ -117,6 +129,15 @@ public class AfterSoSyncRuleGyMes implements IRule { } } else { for (SaleOrderBVO item : itemVOS) { + String cmaterialvid = item.getCmaterialvid(); + Map planMap = queryMaterialPlanInfoByPks(new String[]{cmaterialvid}, pkOrg, + new String[]{MaterialPlanVO.DEF1}); + String drawingNumber = ""; + if (MMValueCheck.isNotEmpty(planMap) && + MMValueCheck.isNotEmpty(planMap.get(cmaterialvid))) { + drawingNumber = planMap.get(cmaterialvid).getDef1(); + } + Object projectName = getDefName("zdy-001", vdef6); String wlsql = " select code,name,graphid from bd_material where dr = 0 and pk_material = '" + item.getCmaterialvid() + "' "; Map mrlMap = (Map) baseDAO.executeQuery(wlsql, new MapProcessor()); @@ -128,7 +149,8 @@ public class AfterSoSyncRuleGyMes implements IRule { itemObj.put("productQuantity", (int) item.getNastnum().doubleValue());// 数量 itemObj.put("materialCode", mrlMap.get("code"));// 物料编码 itemObj.put("materialName", mrlMap.get("name"));// 物料名称 - itemObj.put("drawingNumber", mrlMap.get("graphid"));// 图号 +// itemObj.put("drawingNumber", mrlMap.get("graphid"));// 图号 + itemObj.put("drawingNumber", drawingNumber);// 图号 itemObj.put("supplyDate", item.getDreceivedate().toString());// 供货日期-要求收货日期 itemObj.put("remark", item.getVrownote());// 备注 itemObj.put("bipUpdateBy", createName);// 修改人 @@ -253,6 +275,20 @@ public class AfterSoSyncRuleGyMes implements IRule { } + public static Map queryMaterialPlanInfoByPks(String[] pks, String pk_stockorg, + String[] fields) throws BusinessException { + Map map = null; + List vids = Stream.of(pks).filter(Objects::nonNull).distinct().toList(); + if (vids.isEmpty()) { + map = new HashMap<>(); + } else { + map = NCLocator.getInstance().lookup(IMaterialPubService.class) + .queryMaterialPlanInfoByPks(vids.toArray(new String[0]), pk_stockorg, fields); + } + + return map; + } + }