diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncHighpressureMesRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncHighpressureMesRule.java index d469bc89..fdad176e 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncHighpressureMesRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncHighpressureMesRule.java @@ -111,7 +111,7 @@ public class AfterApproveSyncHighpressureMesRule implements IRule { String sql = " select pk_defdoclist from bd_defdoclist where code='zdy-001' and dr=0 "; String o = (String) baseDAO.executeQuery(sql, new ColumnProcessor()); -// Object contractNum = hybo.findColValue("bd_defdoc", "code", " (pk_defdoclist = '" + o + "' and pk_defdoc='" + item.getVdef1() + "') "); + Object contractNum = hybo.findColValue("bd_defdoc", "code", " (pk_defdoclist = '" + o + "' and pk_defdoc='" + item.getVdef1() + "') "); itemObj.put("contractNum", item.getVdef2()); // 销售订单号 @@ -174,9 +174,9 @@ public class AfterApproveSyncHighpressureMesRule implements IRule { String sql = " select pk_defdoclist from bd_defdoclist where code='zdy-001' and dr=0 "; String o = (String) baseDAO.executeQuery(sql, new ColumnProcessor()); - Object contractNum = hybo.findColValue("bd_defdoc", "code", " (pk_defdoclist = '" + o + "' and pk_defdoc='" + item.getVdef1() + "') "); + // Object contractNum = hybo.findColValue("bd_defdoc", "code", " (pk_defdoclist = '" + o + "' and pk_defdoc='" + item.getVdef1() + "') "); - itemObj.put("contractNum", contractNum); // 合同编号 + itemObj.put("contractNum", item.getVdef2()); // 合同编号 // itemObj.put("cwarehouseid", item.getAttributeValue("vbdef35")); // 仓库编号 Object pk_project = hybo.findColValue("bd_project", "project_name", " pk_project = '" + item.getCprojectid() + "' "); 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; + } + } diff --git a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToGyMesListener.java b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToGyMesListener.java index cc48ba96..f0385c45 100644 --- a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToGyMesListener.java +++ b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToGyMesListener.java @@ -222,8 +222,8 @@ public class MaterialToGyMesListener implements IBusinessListener { logger.error("gymes-Material-res = " + result); if (!"200".equals(resultObj.getString("code"))) { - // throw new BusinessException("gymes-Material-error:" + resultObj.getString("msg")); logger.error("gymes-Material-error,result[" + resultObj.toJSONString() + "]"); + throw new BusinessException("gymes-Material-error:" + resultObj.getString("msg")); } } diff --git a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java index e9fcde23..77f146c2 100644 --- a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java +++ b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java @@ -291,7 +291,7 @@ public class MaterialToJmQmsListener implements IBusinessListener { res = defdocVOs[0].getName().trim(); } } catch (DAOException e) { - logger.error("gyMes-SaleOrder-error,getDefName[" + e.getMessage() + "]"); + logger.error("JM-error,getDefName[" + e.getMessage() + "]"); } return res; }