diff --git a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java index 0449cc61..85f111b8 100644 --- a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java +++ b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java @@ -170,12 +170,7 @@ public class MaterialToJmQmsListener implements IBusinessListener { contentObj.put("zhxs", unitMap.getOrDefault("convertRate", "1.00")); // 转换系数 contentObj.put("flag_fq", statusCode); // 1/0 传递1代表物料废弃 contentObj.put("bz", vo.getMemo()); // 备注信息 - contentObj.put("djzl", vo.getDef28()); // 单台重量(净重) - contentObj.put("djzl_mz", vo.getDef27()); // 单件重量(毛重) - contentObj.put("jmkzl_bkhs", vo.getDef32()); // 不可回收浇冒口重量 - contentObj.put("jmkzl_khs", vo.getDef33()); // 可回收浇冒口重量 - contentObj.put("lxzl", vo.getDef31()); // 铝屑重量 - contentObj.put("cz", vo.getDef5()); // 材质 + setDefVal(vo, contentObj); JSONArray contentArr = new JSONArray(); contentArr.add(contentObj); singleObj.put("Content", contentArr); @@ -183,6 +178,55 @@ public class MaterialToJmQmsListener implements IBusinessListener { } } + /** + * 设置自定义字段的值 + * + * @param vo + * @param contentObj + */ + private void setDefVal(MaterialVO vo, JSONObject contentObj) { + Map defParams = MyHelper.getConfigParams("jmqy-def", null); + Set numFields = new HashSet<>(Arrays.asList( + "djzl", // 单台重量(净重) + "djzl_mz",// 单件重量(毛重) + "jmkzl_bkhs",// 不可回收浇冒口重量 + "jmkzl_khs", // 可回收浇冒口重量 + "lxzl"// 铝屑重量 + )); + Set strFields = new HashSet<>(Arrays.asList( + "cz"// 材质 + )); + // 处理数值型字段 + for (String field : numFields) { + String defField = defParams.get("ma_" + field); + if (MMValueCheck.isEmpty(defField)) { + contentObj.put(field, 0); + continue; + } + Object value = vo.getAttributeValue(defField); + if (value == null || value.toString().trim().isEmpty()) { + contentObj.put(field, 0); + } else { + contentObj.put(field, value); + } + } + + // 处理字符串型字段 + for (String field : strFields) { + String defField = defParams.get("ma_" + field); + if (MMValueCheck.isEmpty(defField)) { + contentObj.put(field, ""); + continue; + } + Object value = vo.getAttributeValue(defField); + if (value == null) { + contentObj.put(field, ""); + } else { + contentObj.put(field, value.toString().trim()); + } + } + } + /** * 推送同步数据 */ @@ -204,7 +248,7 @@ public class MaterialToJmQmsListener implements IBusinessListener { if (!"true".equals(resultObj.getString("success"))) { logger.error("QMS-Material-error,result[" + resultObj.toJSONString() + "]"); - throw new BusinessException("QMS-Material-error:" + resultObj.getString("message")); + throw new BusinessException("精密传启源物料错误:" + resultObj.getString("message")); } }