refactor(uapbd): 精密-启源物料的启源物料编码赋值调整

- 新增方法 queryMaterialPlanInfoByPks 查询物料计划信息
- 在同步物料信息时,添加启源物料编码字段
This commit is contained in:
mzr 2025-09-01 12:47:27 +08:00
parent 2ddbae4c16
commit 6d66c26bc6
1 changed files with 30 additions and 5 deletions

View File

@ -10,19 +10,23 @@ import nc.bs.businessevent.IBusinessEvent;
import nc.bs.businessevent.IBusinessListener;
import nc.bs.businessevent.bd.BDCommonEvent;
import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.NCLocator;
import nc.bs.logging.Log;
import nc.bs.trade.business.HYPubBO;
import nc.bs.uapbd.util.MyHelper;
import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
import nc.jdbc.framework.processor.MapProcessor;
import nc.pubitf.uapbd.IMaterialPubService;
import nc.util.mmf.framework.base.MMValueCheck;
import nc.vo.bd.material.MaterialVO;
import nc.vo.bd.material.marbasclass.MarBasClassVO;
import nc.vo.bd.material.plan.MaterialPlanVO;
import nc.vo.org.OrgVO;
import nc.vo.pub.BusinessException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 精密-物料新增修改后同步启源的物料
@ -103,7 +107,13 @@ public class MaterialToJmQmsListener implements IBusinessListener {
// 计量单位
String pkMaterial = vo.getPk_material();
Map unitMap = getGoodsInfo(pkMaterial);
Map<String, MaterialPlanVO> planMap = queryMaterialPlanInfoByPks(new String[]{pkMaterial}, pkOrg,
new String[]{MaterialPlanVO.DEF2});
String qyCode = "";
if (MMValueCheck.isNotEmpty(planMap) &&
MMValueCheck.isNotEmpty(planMap.get(pkMaterial))) {
qyCode = planMap.get(pkMaterial).getDef2();
}
// 1=未启用;2=已启用;3=已停用;
Integer enablestate = vo.getEnablestate();
String statusCode = (3 == enablestate) ? "1" : "0";
@ -113,7 +123,8 @@ public class MaterialToJmQmsListener implements IBusinessListener {
long cts = System.currentTimeMillis();
singleObj.put("batchid", cts);
JSONObject contentObj = new JSONObject();
contentObj.put("meswlbh", vo.getCode()); // ÆôÔ´ÎïÁϱàÂë
// 计划信息自定义项2原系统编码BIP传启源物料档案的物料编码BIP中物料编码传启源自定义字段BIP物料编码
contentObj.put("meswlbh", qyCode); // 启源物料编码
contentObj.put("bipwlbh", vo.getCode()); // BIP物料编码
contentObj.put("wlmc", vo.getName()); // 物料名称
contentObj.put("wlxhgg", vo.getMaterialtype() + vo.getMaterialspec()); // 物料型号规格
@ -200,4 +211,18 @@ public class MaterialToJmQmsListener implements IBusinessListener {
return true;
}
public static Map<String, MaterialPlanVO> queryMaterialPlanInfoByPks(String[] pks, String pk_stockorg,
String[] fields) throws BusinessException {
Map<String, MaterialPlanVO> map = null;
List<String> vids = Stream.of(pks).filter(Objects::nonNull).distinct().toList();
if (vids.isEmpty()) {
map = new HashMap<>();
} else {
map = NCLocator.getInstance().lookup(IMaterialPubService.class)
.queryMaterialPlanInfoByPks(vids.toArray(new String[0]), pk_stockorg, fields);
}
return map;
}
}