高压MES-销售订单推送调整
This commit is contained in:
parent
148379c693
commit
3f515edb8f
|
|
@ -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)) {
|
||||||
|
|
|
||||||
|
|
@ -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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue