feat(bom): 添加 BOM同步到艾普 MES 的功能
This commit is contained in:
		
							parent
							
								
									6d66c26bc6
								
							
						
					
					
						commit
						96120e7799
					
				| 
						 | 
					@ -252,6 +252,10 @@ public class BomInsertBP {
 | 
				
			||||||
        rule = new BomAddAfterEventRule();
 | 
					        rule = new BomAddAfterEventRule();
 | 
				
			||||||
        processer.addAfterRule(rule);
 | 
					        processer.addAfterRule(rule);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // BOMÍÆËͰ¬ÆÕMES
 | 
				
			||||||
 | 
					        IRule<AggBomVO> eventRrule = new BomSaveAfterEpicMesRule();
 | 
				
			||||||
 | 
					        processer.addAfterRule(eventRrule);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void setCheckEcn(boolean checkEcn) {
 | 
					    public void setCheckEcn(boolean checkEcn) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -340,8 +340,8 @@ public class BomUpdateBP {
 | 
				
			||||||
        ICompareRule<AggBomVO> updateBmrtRule = new BomUpdateBmrtVersionRule();
 | 
					        ICompareRule<AggBomVO> updateBmrtRule = new BomUpdateBmrtVersionRule();
 | 
				
			||||||
        processer.addBeforeRule(updateBmrtRule);
 | 
					        processer.addBeforeRule(updateBmrtRule);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 注册事件源
 | 
					        // BOMÍÆËͰ¬ÆÕMES
 | 
				
			||||||
        IRule<AggBomVO> eventRrule = new BomUpdateAfterEventRule();
 | 
					        IRule<AggBomVO> eventRrule = new BomSaveAfterEpicMesRule();
 | 
				
			||||||
        processer.addAfterRule(eventRrule);
 | 
					        processer.addAfterRule(eventRrule);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,12 +9,14 @@ 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.util.mmf.framework.base.MMValueCheck;
 | 
					import nc.util.mmf.framework.base.MMValueCheck;
 | 
				
			||||||
 | 
					import nc.vo.bc.pmpub.project.ProjectHeadVO;
 | 
				
			||||||
import nc.vo.bd.bom.bom0202.entity.AggBomVO;
 | 
					import nc.vo.bd.bom.bom0202.entity.AggBomVO;
 | 
				
			||||||
import nc.vo.bd.bom.bom0202.entity.BomItemVO;
 | 
					import nc.vo.bd.bom.bom0202.entity.BomItemVO;
 | 
				
			||||||
import nc.vo.bd.bom.bom0202.entity.BomVO;
 | 
					import nc.vo.bd.bom.bom0202.entity.BomVO;
 | 
				
			||||||
 | 
					import nc.vo.bd.material.MaterialVO;
 | 
				
			||||||
 | 
					import nc.vo.bd.material.marbasclass.MarBasClassVO;
 | 
				
			||||||
import nc.vo.org.OrgVO;
 | 
					import nc.vo.org.OrgVO;
 | 
				
			||||||
import nc.vo.pub.BusinessException;
 | 
					import nc.vo.pub.BusinessException;
 | 
				
			||||||
import nc.vo.pub.CircularlyAccessibleValueObject;
 | 
					 | 
				
			||||||
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
 | 
					import nc.vo.pubapp.pattern.exception.ExceptionUtils;
 | 
				
			||||||
import nccloud.baseapp.core.log.NCCForUAPLogger;
 | 
					import nccloud.baseapp.core.log.NCCForUAPLogger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,10 +28,10 @@ import java.util.Map;
 | 
				
			||||||
 * @author mzr
 | 
					 * @author mzr
 | 
				
			||||||
 * @date 2025/08/29
 | 
					 * @date 2025/08/29
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public class BomUpdateAfterEpicMesRule implements IRule<AggBomVO> {
 | 
					public class BomSaveAfterEpicMesRule implements IRule<AggBomVO> {
 | 
				
			||||||
    private static final String LOG_INFO_NAME = "dldzlog";
 | 
					    private static final String LOG_INFO_NAME = "dldzlog";
 | 
				
			||||||
    private static final Log logDl = Log.getInstance(LOG_INFO_NAME);
 | 
					    private static final Log logDl = Log.getInstance(LOG_INFO_NAME);
 | 
				
			||||||
    private static final String reqUrl = "";
 | 
					    private static final String reqUrl = "/prj-v5-web/ext/api/bom";
 | 
				
			||||||
    private Map<String, String> configParams;
 | 
					    private Map<String, String> configParams;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
| 
						 | 
					@ -62,17 +64,26 @@ public class BomUpdateAfterEpicMesRule implements IRule<AggBomVO> {
 | 
				
			||||||
            if (MMValueCheck.isEmpty(childrenVOs)) {
 | 
					            if (MMValueCheck.isEmpty(childrenVOs)) {
 | 
				
			||||||
                continue;
 | 
					                continue;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            String hcmaterialid = hvo.getHcmaterialid();// 物料编码
 | 
				
			||||||
            String hfmaterialid = hvo.getHfmaterialid();// 父项物料编码
 | 
					            String hfmaterialid = hvo.getHfmaterialid();// 父项物料编码
 | 
				
			||||||
            String hcprojectid = hvo.getHcprojectid();// 项目
 | 
					            String hcprojectid = hvo.getHcprojectid();// 项目
 | 
				
			||||||
            String hversion = hvo.getHversion();// BOM版本号
 | 
					            String hversion = hvo.getHversion();// BOM版本号
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            String mitm = MyHelper.getStrValByCondition(MaterialVO.getDefaultTableName(), MaterialVO.CODE,
 | 
				
			||||||
 | 
					                    MaterialVO.PK_MATERIAL + " = '" + hcmaterialid + "'");
 | 
				
			||||||
            for (BomItemVO childrenVO : childrenVOs) {
 | 
					            for (BomItemVO childrenVO : childrenVOs) {
 | 
				
			||||||
                String cmaterialid = childrenVO.getCmaterialid();
 | 
					                String cmaterialid = childrenVO.getCmaterialid();
 | 
				
			||||||
 | 
					                String cprojectid = childrenVO.getCprojectid();
 | 
				
			||||||
 | 
					                String sitm = MyHelper.getStrValByCondition(MaterialVO.getDefaultTableName(), MaterialVO.CODE,
 | 
				
			||||||
 | 
					                        MaterialVO.PK_MATERIAL + " = '" + cmaterialid + "'");
 | 
				
			||||||
 | 
					                String projectCode = MyHelper.getStrValByCondition(ProjectHeadVO.getDefaultTableName(), ProjectHeadVO.PROJECT_CODE,
 | 
				
			||||||
 | 
					                        ProjectHeadVO.PK_PROJECT + " = '" + cprojectid + "'");
 | 
				
			||||||
                // 组装数据
 | 
					                // 组装数据
 | 
				
			||||||
                JSONObject singleObj = new JSONObject();
 | 
					                JSONObject singleObj = new JSONObject();
 | 
				
			||||||
                singleObj.put("mitm", ""); // 制造物料编码(ERP父项物料编码)
 | 
					                singleObj.put("mitm", mitm); // 制造物料编码(ERP父项物料编码)
 | 
				
			||||||
                singleObj.put("sitm", ""); // 子物料编码
 | 
					                singleObj.put("sitm", sitm); // 子物料编码
 | 
				
			||||||
                singleObj.put("orderNum", ""); // 合同号(ERP项目)
 | 
					                singleObj.put("orderNum", projectCode); // 合同号(ERP项目)
 | 
				
			||||||
                singleObj.put("qana", childrenVO.getNassitemnum()); // 数量(ERP子项数量)
 | 
					                singleObj.put("qana", childrenVO.getNassitemnum().toString()); // 数量(ERP子项数量)
 | 
				
			||||||
                singleObj.put("ver", hversion); // BOM版本号
 | 
					                singleObj.put("ver", hversion); // BOM版本号
 | 
				
			||||||
                singleObj.put("remark", childrenVO.getVnote()); // 备注
 | 
					                singleObj.put("remark", childrenVO.getVnote()); // 备注
 | 
				
			||||||
                data.add(singleObj);
 | 
					                data.add(singleObj);
 | 
				
			||||||
| 
						 | 
					@ -104,14 +115,14 @@ public class BomUpdateAfterEpicMesRule implements IRule<AggBomVO> {
 | 
				
			||||||
                SerializerFeature.WriteNullStringAsEmpty
 | 
					                SerializerFeature.WriteNullStringAsEmpty
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
        logDl.error("EpicMes-BOM-param = " + jsonStr);
 | 
					        logDl.error("EpicMes-BOM-param = " + jsonStr);
 | 
				
			||||||
        NCCForUAPLogger.debug("EpicMes-BOM-param = " + jsonStr);
 | 
					        // NCCForUAPLogger.debug("EpicMes-BOM-param = " + jsonStr);
 | 
				
			||||||
        String baseUrl = configParams.get("epicMesUrl");
 | 
					        String baseUrl = configParams.get("epicMesUrl");
 | 
				
			||||||
        String requestUrl = baseUrl + reqUrl;
 | 
					        String requestUrl = baseUrl + reqUrl;
 | 
				
			||||||
        logDl.error("EpicMes-BOM-url = " + requestUrl);
 | 
					        logDl.error("EpicMes-BOM-url = " + requestUrl);
 | 
				
			||||||
        String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr);
 | 
					        String result = ThirdPartyPostRequestUtil.sendPostRequest(requestUrl, jsonStr);
 | 
				
			||||||
        JSONObject resultObj = JSONObject.parseObject(result);
 | 
					        JSONObject resultObj = JSONObject.parseObject(result);
 | 
				
			||||||
        logDl.error("EpicMes-BOM-res = " + result);
 | 
					        logDl.error("EpicMes-BOM-res = " + result);
 | 
				
			||||||
 | 
					        // NCCForUAPLogger.debug("EpicMes-BOM-result = " + result);
 | 
				
			||||||
        if (!"1".equals(resultObj.getString("flag"))) {
 | 
					        if (!"1".equals(resultObj.getString("flag"))) {
 | 
				
			||||||
            // throw new BusinessException("EpicMes-BOM-error:" + resultObj.getString("msg"));
 | 
					            // throw new BusinessException("EpicMes-BOM-error:" + resultObj.getString("msg"));
 | 
				
			||||||
            logDl.error("EpicMes-BOM-error,result[" + resultObj.toJSONString() + "]");
 | 
					            logDl.error("EpicMes-BOM-error,result[" + resultObj.toJSONString() + "]");
 | 
				
			||||||
		Loading…
	
		Reference in New Issue