高压MES-销售订单推送调整

This commit is contained in:
mzr 2025-12-01 11:49:09 +08:00
parent 148379c693
commit 3f515edb8f
2 changed files with 23 additions and 122 deletions

View File

@ -13,12 +13,8 @@ import nc.bs.uapbd.util.MyHelper;
import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
import nc.impl.pubapp.pattern.rule.IRule; import nc.impl.pubapp.pattern.rule.IRule;
import nc.jdbc.framework.processor.ColumnProcessor; 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.pubitf.uapbd.IMaterialPubService;
import nc.util.mmf.framework.base.MMValueCheck;
import nc.vo.bd.defdoc.DefdocVO; import nc.vo.bd.defdoc.DefdocVO;
import nc.vo.bd.material.MaterialVO;
import nc.vo.bd.material.plan.MaterialPlanVO; import nc.vo.bd.material.plan.MaterialPlanVO;
import nc.vo.org.OrgVO; import nc.vo.org.OrgVO;
import nc.vo.pmpub.project.ProjectHeadVO; import nc.vo.pmpub.project.ProjectHeadVO;
@ -29,7 +25,10 @@ import nc.vo.so.m30.entity.SaleOrderHVO;
import nc.vo.so.m30.entity.SaleOrderVO; import nc.vo.so.m30.entity.SaleOrderVO;
import nccloud.baseapp.core.log.NCCForUAPLogger; import nccloud.baseapp.core.log.NCCForUAPLogger;
import java.util.*; import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Stream; import java.util.stream.Stream;
/** /**
@ -87,99 +86,26 @@ public class AfterSoSyncRuleGyMes implements IRule<SaleOrderVO> {
// ´´½¨ÈË // ´´½¨ÈË
String userSql = " select user_name from sm_user where dr = 0 and cuserid = '" + hvo.getBillmaker() + "' "; String userSql = " select user_name from sm_user where dr = 0 and cuserid = '" + hvo.getBillmaker() + "' ";
String createName = (String) baseDAO.executeQuery(userSql, new ColumnProcessor()); String createName = (String) baseDAO.executeQuery(userSql, new ColumnProcessor());
// 合同编号
String vdef6 = hvo.getVdef6();
String contractNum = getDefCode("zdy-001", vdef6);
//自定义项26是Y时调用修改口若不是则调用新增口
String saleDef = hvo.getVdef26()== null ? "" : hvo.getVdef26();
if (!saleDef.equals("Y")) {
// 更新自定义项26为Y
String sql = "update so_saleorder set vdef26 = 'Y' where csaleorderid = '" + hvo.getCsaleorderid() + "'";
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 = hybo.findColValue("bd_project", "project_name", " pk_project = '" + item.getCprojectid() + "' ");
// itemObj.put("entryName", pk_project); // 项目名称
// 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() + "' ";
Map<String, Object> mrlMap = (Map<String, Object>) baseDAO.executeQuery(wlsql, new MapProcessor());
JSONObject itemObj = new JSONObject();
// itemObj.put("contractNum", contractNum);// 合同编码
// 获取项目编码
String cprojectid = item.getCprojectid();// 项目id
String projectCode = MyHelper.getStrValByCondition(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_CODE,
ProjectHeadVO.PK_PROJECT + " = '" + cprojectid + "'");
itemObj.put("contractNum", projectCode);// 项目编码
itemObj.put("bipOrderId", hvo.getVbillcode());// 销售订单号
itemObj.put("bipId", item.getCsaleorderbid());// 主键ID
itemObj.put("entryName", projectName);// 项目名称
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", drawingNumber);// 图号
itemObj.put("supplyDate", item.getDreceivedate().toString());// 供货日期-要求收货日期
itemObj.put("remark", item.getVrownote());// 备注
itemObj.put("bipCreateBy", createName);// 创建人
itemObj.put("customers", customerName);// 客户
if (itemObj != null && !itemObj.isEmpty()) {
pushData(itemObj);
}
}
} 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 = hybo.findColValue("bd_project", "project_name", " pk_project = '" + item.getCprojectid() + "' ");
// 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());
JSONObject itemObj = new JSONObject();
// itemObj.put("contractNum", contractNum);// 合同编码
// 获取项目编码
String cprojectid = item.getCprojectid();// 项目id
String projectCode = MyHelper.getStrValByCondition(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_CODE,
ProjectHeadVO.PK_PROJECT + " = '" + cprojectid + "'");
itemObj.put("contractNum", projectCode);// 项目编码
itemObj.put("bipOrderId", hvo.getVbillcode());// 销售订单号
itemObj.put("entryName", projectName);// 项目名称
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", drawingNumber);// 图号
itemObj.put("supplyDate", item.getDreceivedate().toString());// 供货日期-要求收货日期
itemObj.put("remark", item.getVrownote());// 备注
itemObj.put("bipUpdateBy", createName);// 修改人
itemObj.put("customers", customerName);// 客户
if (itemObj != null && !itemObj.isEmpty()) {
pushData_Update(itemObj);
}
}
}
SaleOrderBVO itemVO = itemVOS[0];
// 获取项目编码
String cprojectid = itemVO.getCprojectid();// 项目id
Map<String, Object> projectMap = MyHelper.getMapValByCondition(ProjectHeadVO.getDefaultTableName(), "project_code,project_name",
ProjectHeadVO.PK_PROJECT + " = '" + cprojectid + "'");
JSONObject obj = new JSONObject();
obj.put("contractNum", projectMap.get("project_code"));// 项目编码
obj.put("bipOrderId", hvo.getVbillcode());// 销售订单号
obj.put("bipId", hvo.getCsaleorderid());// 主键ID
obj.put("entryName", projectMap.get("project_name"));// 项目名称
obj.put("productQuantity", 0);// 数量
obj.put("materialCode", "");// 物料编码
obj.put("materialName", "");// 物料名称
obj.put("drawingNumber", "");// 图号
obj.put("supplyDate", "");// 供货日期-要求收货日期
obj.put("remark", hvo.getVnote());// 备注
obj.put("bipCreateBy", createName);// 创建人
obj.put("customers", customerName);// 客户
pushData(obj);
/** /**
* { * {
* "contractNum": "TZF2520201225 ºÏͬ±àÂë", * "contractNum": "TZF2520201225 ºÏͬ±àÂë",
@ -221,28 +147,6 @@ public class AfterSoSyncRuleGyMes implements IRule<SaleOrderVO> {
} }
} }
/**
* 推送同步数据_修改口
*/
private void pushData_Update(JSONObject param) throws BusinessException {
// String jsonString = param.toJSONString();
// 转json字符串的时候保留null值
String jsonStr = JSON.toJSONString(param, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
logger.error("gyMes-SaleOrder-param = " + jsonStr);
NCCForUAPLogger.debug("gyMes-SaleOrder-param = " + jsonStr);
String baseUrl = configParams.get("mesBaseUrl");
String requestUrl = baseUrl + reqUrl_update;
logger.error("gyMes-SaleOrder-url = " + requestUrl);
String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr);
JSONObject resultObj = JSONObject.parseObject(result);
logger.error("gyMes-SaleOrder-res = " + result);
if (!"200".equals(resultObj.getString("code"))) {
logger.error("gyMes-SaleOrder-error,result[" + resultObj.toJSONString() + "]");
throw new BusinessException("销售订单推送高压MES错误:" + resultObj.getString("msg"));
}
}
private boolean checkIfOrg(String code, Map<String, String> configParams) throws BusinessException { private boolean checkIfOrg(String code, Map<String, String> configParams) throws BusinessException {
String targetCode = configParams.get("gyOrg"); String targetCode = configParams.get("gyOrg");
if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) { if (targetCode == null || nc.vo.am.common.util.StringUtils.isEmpty(targetCode)) {

View File

@ -2,7 +2,6 @@ package nc.impl.so.m30.action.main;
import nc.bs.so.m30.maintain.UpdateSaleOrderBP; import nc.bs.so.m30.maintain.UpdateSaleOrderBP;
import nc.bs.so.m30.plugin.Action30PlugInPoint; import nc.bs.so.m30.plugin.Action30PlugInPoint;
import nc.bs.so.m30.rule.approve.AfterSoSyncRuleGyMes;
import nc.bs.so.m30.rule.maintainprocess.CompareDimensionModifyRule; import nc.bs.so.m30.rule.maintainprocess.CompareDimensionModifyRule;
import nc.bs.so.m30.rule.maintainprocess.FillupDataWhenUpdateRule; import nc.bs.so.m30.rule.maintainprocess.FillupDataWhenUpdateRule;
import nc.bs.so.m30.rule.maintainprocess.NullRule; import nc.bs.so.m30.rule.maintainprocess.NullRule;
@ -41,8 +40,6 @@ public class UpdateSaleOrderAction {
private void addAfterRule(CompareAroundProcesser<SaleOrderVO> processer) { private void addAfterRule(CompareAroundProcesser<SaleOrderVO> processer) {
processer.addAfterRule(new NullRule()); processer.addAfterRule(new NullRule());
processer.addAfterRule(new CompareDimensionModifyRule()); processer.addAfterRule(new CompareDimensionModifyRule());
// 在变更后推送到高压MES
processer.addAfterRule(new AfterSoSyncRuleGyMes());
} }