流程生产订单审批后推送高压MES-代码优化
This commit is contained in:
parent
28db4793d0
commit
281f8846ab
|
@ -7,7 +7,6 @@ import com.alibaba.fastjson.JSONObject;
|
||||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||||
import nc.bs.dao.BaseDAO;
|
import nc.bs.dao.BaseDAO;
|
||||||
import nc.bs.logging.Log;
|
import nc.bs.logging.Log;
|
||||||
import nc.bs.mmpac.pmo.pac0002.bp.rule.util.SyncEpicMesUtil;
|
|
||||||
import nc.bs.trade.business.HYPubBO;
|
import nc.bs.trade.business.HYPubBO;
|
||||||
import nc.bs.uapbd.util.MyHelper;
|
import nc.bs.uapbd.util.MyHelper;
|
||||||
import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
|
import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
|
||||||
|
@ -21,11 +20,8 @@ import nc.vo.org.OrgVO;
|
||||||
import nc.vo.pub.BusinessException;
|
import nc.vo.pub.BusinessException;
|
||||||
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
|
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
|
||||||
import nc.vo.scmpub.util.ArrayUtil;
|
import nc.vo.scmpub.util.ArrayUtil;
|
||||||
import nccloud.baseapp.core.log.NCCForUAPLogger;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程生产订单审批后推送高压MES
|
* 流程生产订单审批后推送高压MES
|
||||||
|
@ -35,25 +31,24 @@ import java.util.stream.Collectors;
|
||||||
*/
|
*/
|
||||||
public class AfterApproveSyncHighpressureMesRule implements IRule<PMOAggVO> {
|
public class AfterApproveSyncHighpressureMesRule implements IRule<PMOAggVO> {
|
||||||
|
|
||||||
private static final String LOG_INFO_NAME = "dldzlog";
|
private static final String LOG_INFO_NAME = "gymeslog";
|
||||||
|
private static final Log logger = Log.getInstance(LOG_INFO_NAME);
|
||||||
private static final Log logDl = Log.getInstance(LOG_INFO_NAME);
|
|
||||||
private Map<String, String> configParams;
|
private Map<String, String> configParams;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(PMOAggVO[] pmoAggVOS) {
|
public void process(PMOAggVO[] pmoAggVOS) {
|
||||||
if (ArrayUtil.isEmpty(pmoAggVOS)) {
|
if (ArrayUtil.isEmpty(pmoAggVOS)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
configParams = MyHelper.getConfigParams("gy-config", null);
|
configParams = MyHelper.getConfigParams("gy-config", null);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
buildSyncData(pmoAggVOS);
|
buildSyncData(pmoAggVOS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logDl.error("同步生产订单到高压MES系统失败: " + e.getMessage(), e);
|
logger.error("同步生产订单到高压MES系统失败: " + e.getMessage(), e);
|
||||||
ExceptionUtils.wrappException(e);
|
ExceptionUtils.wrappException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建同步数据
|
* 构建同步数据
|
||||||
*/
|
*/
|
||||||
|
@ -62,24 +57,23 @@ public class AfterApproveSyncHighpressureMesRule implements IRule<PMOAggVO> {
|
||||||
|
|
||||||
HYPubBO hybo = new HYPubBO();
|
HYPubBO hybo = new HYPubBO();
|
||||||
for (PMOAggVO vo : useVOs) {
|
for (PMOAggVO vo : useVOs) {
|
||||||
// 判断物料的业务单元是否是箱变公司,不是则跳过
|
|
||||||
String pkOrg = vo.getParentVO().getPk_org();
|
|
||||||
String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg);
|
|
||||||
// if (checkIfOrg(orgCode, configParams)) {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
JSONObject singleObj = new JSONObject();
|
|
||||||
PMOHeadVO pmoHeadVO = vo.getParentVO();
|
PMOHeadVO pmoHeadVO = vo.getParentVO();
|
||||||
PMOItemVO[] itemVOS = vo.getChildrenVO();
|
PMOItemVO[] itemVOS = vo.getChildrenVO();
|
||||||
|
// 判断物料的业务单元是否是箱变公司,不是则跳过
|
||||||
|
String pkOrg = pmoHeadVO.getPk_org();
|
||||||
|
String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg);
|
||||||
|
if (checkIfOrg(orgCode, configParams)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
JSONObject singleObj = new JSONObject();
|
||||||
singleObj.put("bipProcessProductionOrderId", pmoHeadVO.getVbillcode());
|
singleObj.put("bipProcessProductionOrderId", pmoHeadVO.getVbillcode());
|
||||||
singleObj.put("bipId", pmoHeadVO.getCpmohid());// 主键ID
|
singleObj.put("bipId", pmoHeadVO.getCpmohid());// 主键ID
|
||||||
// singleObj.put("orderQuantity", pmoHeadVO.getPlanQuantity()); // 订单数量(计划数量)
|
// singleObj.put("orderQuantity", pmoHeadVO.getPlanQuantity()); // 订单数量(计划数量)
|
||||||
singleObj.put("billDate", pmoHeadVO.getDbilldate().toString()); // 单据日期
|
singleObj.put("billDate", pmoHeadVO.getDbilldate().toString()); // 单据日期
|
||||||
singleObj.put("orderVersion", pmoHeadVO.getVersion()); // 版本号
|
singleObj.put("orderVersion", pmoHeadVO.getVersion()); // 版本号
|
||||||
singleObj.put("orderTranType", pmoHeadVO.getVtrantypecode()); // 订单交易类型
|
singleObj.put("orderTranType", pmoHeadVO.getVtrantypecode()); // 订单交易类型
|
||||||
String sql1 = " select user_code from sm_user where cuserid = '" + pmoHeadVO.getCreator() + "' ";
|
String sql1 = " select user_name from sm_user where cuserid = '" + pmoHeadVO.getCreator() + "' ";
|
||||||
String bipCreateBy= (String) baseDAO.executeQuery(sql1, new ColumnProcessor());
|
String bipCreateBy = (String) baseDAO.executeQuery(sql1, new ColumnProcessor());
|
||||||
|
|
||||||
singleObj.put("bipCreateBy", bipCreateBy); // 创建人ID
|
singleObj.put("bipCreateBy", bipCreateBy); // 创建人ID
|
||||||
|
|
||||||
|
@ -102,9 +96,7 @@ public class AfterApproveSyncHighpressureMesRule implements IRule<PMOAggVO> {
|
||||||
itemObj.put("bipChildId", item.getCmoid()); // 子项主键ID
|
itemObj.put("bipChildId", item.getCmoid()); // 子项主键ID
|
||||||
|
|
||||||
// 部门信息
|
// 部门信息
|
||||||
|
String deptsql = " select code,name from org_dept where pk_dept='" + item.getCdeptid() + "' and dr=0 ";
|
||||||
|
|
||||||
String deptsql = " select code,name from org_dept where pk_dept='"+item.getCdeptid()+"' and dr=0 ";
|
|
||||||
Map<String, Object> tr = (Map<String, Object>) baseDAO.executeQuery(deptsql, new MapProcessor());
|
Map<String, Object> tr = (Map<String, Object>) baseDAO.executeQuery(deptsql, new MapProcessor());
|
||||||
itemObj.put("bipDeptName", tr.get("name")); // 生产部门名称
|
itemObj.put("bipDeptName", tr.get("name")); // 生产部门名称
|
||||||
itemObj.put("bipDeptId", tr.get("code")); // 生产部门编码
|
itemObj.put("bipDeptId", tr.get("code")); // 生产部门编码
|
||||||
|
@ -117,14 +109,14 @@ public class AfterApproveSyncHighpressureMesRule implements IRule<PMOAggVO> {
|
||||||
itemObj.put("bipOriginProcessProductionOrderId", item.getVsrccode());
|
itemObj.put("bipOriginProcessProductionOrderId", item.getVsrccode());
|
||||||
itemObj.put("bipOriginProcessProductionOrderRowNum", item.getVsrcrowno());
|
itemObj.put("bipOriginProcessProductionOrderRowNum", item.getVsrcrowno());
|
||||||
|
|
||||||
// 物料信息
|
// 物料信息
|
||||||
String mrlsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + item.getCmaterialvid() + "' ";
|
String mrlsql = "select code,name,graphid,pk_measdoc,materialspec from bd_material where pk_material = '" + item.getCmaterialvid() + "' ";
|
||||||
Map<String, Object> mrl = (Map<String, Object>) baseDAO.executeQuery(mrlsql, new MapProcessor());
|
Map<String, Object> mrl = (Map<String, Object>) baseDAO.executeQuery(mrlsql, new MapProcessor());
|
||||||
itemObj.put("materialCode", mrl.get("code")); // 物料编码
|
itemObj.put("materialCode", mrl.get("code")); // 物料编码
|
||||||
itemObj.put("materialName",mrl.get("name")); // 物料名称
|
itemObj.put("materialName", mrl.get("name")); // 物料名称
|
||||||
itemObj.put("drawingNumber",mrl.get("graphid")); // 图号编码 graphid
|
itemObj.put("drawingNumber", mrl.get("graphid")); // 图号编码 graphid
|
||||||
|
|
||||||
Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" +mrl.get("pk_measdoc") + "' ");
|
Object unit = hybo.findColValue("bd_measdoc", "code", " pk_measdoc = '" + mrl.get("pk_measdoc") + "' ");
|
||||||
|
|
||||||
itemObj.put("unit", unit); // 单位 pk_measdoc
|
itemObj.put("unit", unit); // 单位 pk_measdoc
|
||||||
|
|
||||||
|
@ -148,49 +140,6 @@ public class AfterApproveSyncHighpressureMesRule implements IRule<PMOAggVO> {
|
||||||
|
|
||||||
singleObj.put("itemList", contentArray); // 将子项数组添加到主对象
|
singleObj.put("itemList", contentArray); // 将子项数组添加到主对象
|
||||||
|
|
||||||
/*
|
|
||||||
{
|
|
||||||
"list": [
|
|
||||||
{
|
|
||||||
"bipProcessProductionOrderId": "流程生产订单号",
|
|
||||||
"bipId": "主键ID",
|
|
||||||
"orderQuantity": "订单数量(计划数量)",
|
|
||||||
"billDate": "单据日期 按Bip格式",
|
|
||||||
"orderVersion": "版本",
|
|
||||||
"orderTranType": "订单交易类型 按BIP状态",
|
|
||||||
"bipCreateBy": "创建人ID",
|
|
||||||
"itemList": [
|
|
||||||
{
|
|
||||||
"contractNum": "TGYZF2520201225",
|
|
||||||
"entryName": "大唐河北故城50MW风电项目",
|
|
||||||
"bipChildId": "子项主键ID",
|
|
||||||
"bipDeptName": "生产部门 名称",
|
|
||||||
"bipDeptId": "生产部门编码",
|
|
||||||
"requiredDate": "需用日期",
|
|
||||||
"bipParentProcessProductionOrderId": "上级单据号",
|
|
||||||
"bipParentProcessProductionOrderRowNum": "上级单据行号",
|
|
||||||
"bipOriginProcessProductionOrderId": "顶级来源单据号",
|
|
||||||
"bipOriginProcessProductionOrderRowNum": "顶级来源单据行号",
|
|
||||||
"materialCode": "物料编码",
|
|
||||||
"materialName": "物料名称",
|
|
||||||
"drawingNumber": "图号编码",
|
|
||||||
"unit": "单位 例如件",
|
|
||||||
"intervalModel": "产品类型 例如35-KV-断路器(物料自定义字段)",
|
|
||||||
"processCode": "产品编码的工序(物料的自定义字段)",
|
|
||||||
"lineNumber": "行号需要 例如 10 20",
|
|
||||||
"demandInventoryOrganization": "需求库存组织",
|
|
||||||
"plannedInputQuantity": "计划投入主数量 1",
|
|
||||||
"plannedOutputQuantity": "计划产出主数量 1",
|
|
||||||
"plannedStartTime": "计划开工时间 2025-08-01",
|
|
||||||
"plannedCompletionTime": "计划完工时间 2026-08-01",
|
|
||||||
"customerMaterialCode": "客户物料编码",
|
|
||||||
"productionBatch": "生产批次 按BIP格式",
|
|
||||||
"productionBatchNumber": "生产批次号 按BIP格式"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
} */
|
|
||||||
pushData(singleObj);
|
pushData(singleObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -199,24 +148,22 @@ public class AfterApproveSyncHighpressureMesRule implements IRule<PMOAggVO> {
|
||||||
* 推送同步数据
|
* 推送同步数据
|
||||||
*/
|
*/
|
||||||
private void pushData(JSONObject param) throws BusinessException {
|
private void pushData(JSONObject param) throws BusinessException {
|
||||||
// String jsonString = param.toJSONString();
|
|
||||||
// 转json字符串的时候保留null值
|
// 转json字符串的时候保留null值
|
||||||
String jsonStr = JSON.toJSONString(param,
|
String jsonStr = JSON.toJSONString(param,
|
||||||
SerializerFeature.WriteMapNullValue,
|
SerializerFeature.WriteMapNullValue,
|
||||||
SerializerFeature.WriteNullStringAsEmpty
|
SerializerFeature.WriteNullStringAsEmpty
|
||||||
);
|
);
|
||||||
// logDl.error("QMS-Material-param = " + jsonStr);
|
logger.error("gyMes-PMO-param = " + jsonStr);
|
||||||
String baseUrl = configParams.get("mesBaseUrl");
|
String baseUrl = configParams.get("mesBaseUrl");
|
||||||
String requestUrl = baseUrl + configParams.get("productionOrderAdd");
|
String requestUrl = baseUrl + configParams.get("productionOrderAdd");
|
||||||
// logDl.error("QMS-Material-url = " + requestUrl);
|
logger.error("gyMes-PMO-url = " + requestUrl);
|
||||||
// String requestUrl ="/bip/order/productionOrderAdd";
|
|
||||||
String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr);
|
String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr);
|
||||||
JSONObject resultObj = JSONObject.parseObject(result);
|
JSONObject resultObj = JSONObject.parseObject(result);
|
||||||
logDl.error("QMS-Material-res = " + result);
|
logger.error("gyMes-PMO-res = " + result);
|
||||||
|
|
||||||
if (!"success".equals(resultObj.getString("success"))) {
|
if (!"200".equals(resultObj.getString("code"))) {
|
||||||
// throw new BusinessException("QMS-Material-error:" + resultObj.getString("msg"));
|
logger.error("gyMes-PMO-error,result[" + resultObj.toJSONString() + "]");
|
||||||
logDl.error("QMS-Material-error,result[" + resultObj.toJSONString() + "]");
|
throw new BusinessException("流程生产订单推送高压MES错误:" + resultObj.getString("msg"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue