高压-字段推送构建数据

This commit is contained in:
houyi 2025-09-23 14:24:00 +08:00
parent d82a1060db
commit a20f86c0c3
1 changed files with 41 additions and 17 deletions

View File

@ -52,21 +52,21 @@ public class MaterialToGyMesListener implements IBusinessListener {
// EventType是事件编码 1002-新增后 1004-修改后 1071-状态由停用变为启用后 1069-状态由启用变为停用后 // EventType是事件编码 1002-新增后 1004-修改后 1071-状态由停用变为启用后 1069-状态由启用变为停用后
if ("1004".equals(eventType)) { if ("1004".equals(eventType)) {
MaterialVO[] useVOs = ArrayClassConvertUtil.convert(objs, MaterialVO.class); MaterialVO[] useVOs = ArrayClassConvertUtil.convert(objs, MaterialVO.class);
configParams = MyHelper.getConfigParams("jm-config", null); configParams = MyHelper.getConfigParams("gy-config", null);
if (configParams.isEmpty()) { if (configParams.isEmpty()) {
throw new BusinessException("高压的gymes接口缺少配置"); throw new BusinessException("高压的gymes接口缺少配置");
} }
buildSyncData(useVOs, eventType); buildSyncData(useVOs, eventType);
} else if ("1071".equals(eventType) || "1069".equals(eventType)) { } else if ("1071".equals(eventType) || "1069".equals(eventType)) {
MaterialVO[] useVOs = ArrayClassConvertUtil.convert(objs, MaterialVO.class); MaterialVO[] useVOs = ArrayClassConvertUtil.convert(objs, MaterialVO.class);
configParams = MyHelper.getConfigParams("jm-config", null); configParams = MyHelper.getConfigParams("gy-config", null);
if (configParams.isEmpty()) { if (configParams.isEmpty()) {
throw new BusinessException("高压的gymes接口缺少配置"); throw new BusinessException("高压的gymes接口缺少配置");
} }
buildSyncData(useVOs, eventType); buildSyncData(useVOs, eventType);
} else if ("1009".equals(eventType)) { } else if ("1009".equals(eventType)) {
// 物料可见性范围-分配后 1009 // 物料可见性范围-分配后 1009
configParams = MyHelper.getConfigParams("jm-config", null); configParams = MyHelper.getConfigParams("gy-config", null);
if (configParams.isEmpty()) { if (configParams.isEmpty()) {
throw new BusinessException("高压的gymes接口缺少配置"); throw new BusinessException("高压的gymes接口缺少配置");
} }
@ -119,6 +119,10 @@ public class MaterialToGyMesListener implements IBusinessListener {
MMValueCheck.isNotEmpty(planMap.get(pkMaterial))) { MMValueCheck.isNotEmpty(planMap.get(pkMaterial))) {
isvirtual = planMap.get(pkMaterial).getIsvirtual(); isvirtual = planMap.get(pkMaterial).getIsvirtual();
} }
// 库存
Map stockMap = getStockInfo(pkMaterial);
// 生产报告
Map prodMap = getProdInfo(pkMaterial);
// creator 创建人 // creator 创建人
String creator = vo.getCreator(); String creator = vo.getCreator();
String creatorName = MyHelper.getStrValByCondition("sm_user", UserVO.USER_NAME, String creatorName = MyHelper.getStrValByCondition("sm_user", UserVO.USER_NAME,
@ -130,24 +134,25 @@ public class MaterialToGyMesListener implements IBusinessListener {
singleObj.put("materialCode", vo.getCode()); // 物料编码 singleObj.put("materialCode", vo.getCode()); // 物料编码
singleObj.put("bipMaterialId", pkMaterial); // 物料主键 singleObj.put("bipMaterialId", pkMaterial); // 物料主键
singleObj.put("materialName", vo.getName()); // 物料名称 singleObj.put("materialName", vo.getName()); // 物料名称
singleObj.put("materialCategory", ""); // 物料分类 singleObj.put("materialCategory", pk_marbasclass); // 物料分类
singleObj.put("specification", vo.getMaterialspec()); // 规格 singleObj.put("specification", vo.getMaterialspec()); // 规格
singleObj.put("intervalModel", ""); // 产品类型 例如35-KV-断路器物料自定义字段 singleObj.put("model", vo.getMaterialtype()); // 型号文字
// singleObj.put("intervalModel", ""); // 产品类型 例如35-KV-断路器物料自定义字段
singleObj.put("primaryUnit", unitMap.get("unitname")); // 主单位 singleObj.put("primaryUnit", unitMap.get("unitname")); // 主单位
singleObj.put("materialUnit", unitMap.get("deputy_unitname")); // 单位 // singleObj.put("materialUnit", unitMap.get("deputy_unitname")); // 单位
singleObj.put("drawingNumber", vo.getGraphid()); // 图号编码 singleObj.put("drawingNumber", vo.getGraphid()); // 图号编码
singleObj.put("enableStatus", enablestate - 1); // 启用状态 0 未启动 1 已启动 2 已停用 singleObj.put("enableStatus", enablestate - 1); // 启用状态 0 未启动 1 已启动 2 已停用
singleObj.put("materialType", ""); // 物料类型编码 singleObj.put("materialType", stockMap.get("martype")); // 物料类型编码
singleObj.put("batchManagement", ""); // 批次管理 singleObj.put("batchManagement", stockMap.get("wholemanaflag")); // 批次管理
singleObj.put("outboundPriority", ""); // 出库优先级 singleObj.put("outboundPriority", stockMap.get("outpriority")); // 出库优先级
singleObj.put("mainWarehouse", ""); // 主仓库 singleObj.put("mainWarehouse", stockMap.get("pk_stordoc")); // 主仓库
singleObj.put("reservation", ""); // 预留 singleObj.put("reservation", stockMap.get("remain")); // 预留
singleObj.put("virtualItem", isvirtual.toString()); // 虚项 singleObj.put("virtualItem", isvirtual.toString()); // 虚项
singleObj.put("productionDepartment", ""); // 生产部门编码 singleObj.put("productionDepartment", prodMap.get("deptCode")); // 生产部门编码
singleObj.put("matchingComponents", ""); // 配套子件 singleObj.put("matchingComponents", prodMap.get("iscreatesonprodorder")); // 配套子件
singleObj.put("issuance", ""); // 发料 singleObj.put("issuance", prodMap.get("issend")); // 发料
singleObj.put("backflushMethod", ""); // 倒冲方式 singleObj.put("backflushMethod", prodMap.get("conversemethod")); // 倒冲方式
singleObj.put("postCompletionProcessing", ""); // 完工后续处理 singleObj.put("postCompletionProcessing", prodMap.get("wghxcl")); // 完工后续处理
singleObj.put("bipCreateBy", creatorName); // 创建人 singleObj.put("bipCreateBy", creatorName); // 创建人
dataArr.add(singleObj); dataArr.add(singleObj);
/** /**
@ -223,8 +228,27 @@ public class MaterialToGyMesListener implements IBusinessListener {
return map; return map;
} }
private Map getStockInfo(String pkMaterial) throws BusinessException {
String sql = " select martype, wholemanaflag, outpriority, pk_stordoc, remain" +
"from bd_materialstock" +
"where pk_material = '" + pkMaterial + "' ";
Map map = (Map) new BaseDAO().executeQuery(sql, new MapProcessor());
return map;
}
private Map getProdInfo(String pkMaterial) throws BusinessException {
String sql = "SELECT b.code deptCode, a.iscreatesonprodorder, a.issend, a.conversemethod, a.converstime, a.wghxcl" +
" pk_materialprod " +
"FROM " +
" bd_materialprod a" +
"left join org_dept b on a.pk_prodeptdoc = b.pk_dept " +
"where a.pk_material = '" + pkMaterial + "' ";
Map map = (Map) new BaseDAO().executeQuery(sql, new MapProcessor());
return map;
}
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("jmOrg"); String targetCode = configParams.get("mesBaseUrl");
if (targetCode == null || StringUtils.isEmpty(targetCode)) { if (targetCode == null || StringUtils.isEmpty(targetCode)) {
throw new BusinessException("未配置组织参数"); throw new BusinessException("未配置组织参数");
} }