Merge remote-tracking branch 'origin/main'

# Conflicts:
#	mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveSyncHighpressureMesRule.java
This commit is contained in:
lihao 2025-10-11 13:40:08 +08:00
commit 3d15beb342
4 changed files with 47 additions and 11 deletions

View File

@ -111,7 +111,7 @@ public class AfterApproveSyncHighpressureMesRule implements IRule<PMOAggVO> {
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<PMOAggVO> {
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() + "' ");

View File

@ -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<SaleOrderVO> {
baseDAO.executeUpdate(sql);
for (SaleOrderBVO item : itemVOS) {
String cmaterialvid = item.getCmaterialvid();
Map<String, MaterialPlanVO> 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<SaleOrderVO> {
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<SaleOrderVO> {
}
} else {
for (SaleOrderBVO item : itemVOS) {
String cmaterialvid = item.getCmaterialvid();
Map<String, MaterialPlanVO> 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<String, Object> mrlMap = (Map<String, Object>) baseDAO.executeQuery(wlsql, new MapProcessor());
@ -128,7 +149,8 @@ public class AfterSoSyncRuleGyMes implements IRule<SaleOrderVO> {
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<SaleOrderVO> {
}
public static Map<String, MaterialPlanVO> queryMaterialPlanInfoByPks(String[] pks, String pk_stockorg,
String[] fields) throws BusinessException {
Map<String, MaterialPlanVO> map = null;
List<String> 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;
}
}

View File

@ -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"));
}
}

View File

@ -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;
}