物料页签修改后推送高压MES

This commit is contained in:
houyi 2025-10-14 11:04:22 +08:00
parent 3b92d6f854
commit 6e114fe2d8
1 changed files with 55 additions and 5 deletions

View File

@ -6,22 +6,32 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import nc.bs.bd.assignservice.multiorg.MultiOrgAssignVO;
import nc.bs.bd.baseservice.ArrayClassConvertUtil;
import nc.bs.bd.cache.CacheProxy;
import nc.bs.businessevent.IBusinessEvent;
import nc.bs.businessevent.IBusinessListener;
import nc.bs.businessevent.bd.BDCommonEvent;
import nc.bs.businessevent.bd.BDCommonEventUtil;
import nc.bs.dao.BaseDAO;
import nc.bs.dao.DAOException;
import nc.bs.framework.common.NCLocator;
import nc.bs.logging.Log;
import nc.bs.logging.Logger;
import nc.bs.trade.business.HYPubBO;
import nc.bs.uapbd.util.MyHelper;
import nc.bs.uapbd.util.ThirdPartyPostRequestUtil;
import nc.impl.bd.material.baseinfo.MaterialAsstFrame1ChangedListener;
import nc.jdbc.framework.SQLParameter;
import nc.jdbc.framework.processor.ColumnListProcessor;
import nc.jdbc.framework.processor.MapProcessor;
import nc.pubitf.uapbd.IMaterialPubService;
import nc.util.mmf.framework.base.MMValueCheck;
import nc.vo.am.common.util.StringUtils;
import nc.vo.bd.material.MaterialVO;
import nc.vo.bd.material.marassistant.MarAssistantVO;
import nc.vo.bd.material.marbasclass.MarBasClassVO;
import nc.vo.bd.material.plan.MaterialPlanVO;
import nc.vo.bd.material.prod.MaterialProdVO;
import nc.vo.bd.material.stock.MaterialStockVO;
import nc.vo.org.OrgVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFBoolean;
@ -42,17 +52,57 @@ public class MaterialToGyMesListener implements IBusinessListener {
private static final String addUrl = "/bip/order/materialAdd";
private static final String updateUrl = "/bip/order/materialUpdate";
private Map<String, String> configParams;
private BaseDAO baseDAO = new BaseDAO();
@Override
public void doAction(IBusinessEvent event) throws BusinessException {
BDCommonEvent e = (BDCommonEvent) event;
String eventType = event.getEventType();
Object[] objs = e.getObjs();
// EventType是事件编码 1002-新增后 1004-修改后 1071-状态由停用变为启用后 1069-状态由启用变为停用后
if ("1004".equals(eventType)) {
MaterialVO[] useVOs = ArrayClassConvertUtil.convert(objs, MaterialVO.class);
MaterialVO[] useVOs = null;
if ("13636fc1-0215-4102-a11e-af4be73a05ab".equals(e.getSourceID())) {//库存信息修改后
HYPubBO hyPub = new HYPubBO();
List<MaterialVO> list = new ArrayList<>();
for (int i = 0; i < e.getNewObjs().length; ++i) {
MaterialStockVO newVO = (MaterialStockVO) e.getNewObjs()[i];
String pk_material = newVO.getPk_material();
if (pk_material == null) {
continue;
}
MaterialVO materialVO = (MaterialVO) hyPub.queryByPrimaryKey(MaterialVO.class, pk_material);
list.add(materialVO);
}
useVOs = list.toArray(new MaterialVO[0]);
} else if ("8b7d49ab-7a65-4885-bcf1-7df89b84df4b".equals(e.getSourceID())) {//计划信息修改后
HYPubBO hyPub = new HYPubBO();
List<MaterialVO> list = new ArrayList<>();
for (int i = 0; i < e.getNewObjs().length; ++i) {
MaterialPlanVO newVO = (MaterialPlanVO) e.getNewObjs()[i];
String pk_material = newVO.getPk_material();
if (pk_material == null) {
continue;
}
MaterialVO materialVO = (MaterialVO) hyPub.queryByPrimaryKey(MaterialVO.class, pk_material);
list.add(materialVO);
}
useVOs = list.toArray(new MaterialVO[0]);
} else if ("a3133495-8c94-47b4-83d4-0d32bd08ac82".equals(e.getSourceID())) {//生产信息修改后
HYPubBO hyPub = new HYPubBO();
List<MaterialVO> list = new ArrayList<>();
for (int i = 0; i < e.getNewObjs().length; ++i) {
MaterialProdVO newVO = (MaterialProdVO) e.getNewObjs()[i];
String pk_material = newVO.getPk_material();
if (pk_material == null) {
continue;
}
MaterialVO materialVO = (MaterialVO) hyPub.queryByPrimaryKey(MaterialVO.class, pk_material);
list.add(materialVO);
}
useVOs = list.toArray(new MaterialVO[0]);
} else {
useVOs = ArrayClassConvertUtil.convert(objs, MaterialVO.class);//物料修改后
}
configParams = MyHelper.getConfigParams("gy-config", null);
if (configParams.isEmpty()) {
throw new BusinessException("高压的gymes接口缺少配置");
@ -99,7 +149,7 @@ public class MaterialToGyMesListener implements IBusinessListener {
private void buildSyncData(MaterialVO[] useVOs, String eventType) throws BusinessException {
// String orgId = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.PK_ORG, OrgVO.CODE, "C046");
String pkOrg = MyHelper.getStrValByCondition("ORG_ORGS", OrgVO.PK_ORG, OrgVO.CODE + " = '" + "C046" + "'"+ " and ISBUSINESSUNIT = '" + "Y" +"'");
String pkOrg = MyHelper.getStrValByCondition("ORG_ORGS", OrgVO.PK_ORG, OrgVO.CODE + " = '" + "C046" + "'" + " and ISBUSINESSUNIT = '" + "Y" + "'");
JSONArray dataArr = new JSONArray();
for (MaterialVO vo : useVOs) {
String pkMaterial = vo.getPk_material();
@ -142,7 +192,7 @@ public class MaterialToGyMesListener implements IBusinessListener {
singleObj.put("materialCategory", pk_marbasclass); // 物料分类
singleObj.put("specification", vo.getMaterialspec()); // 规格
singleObj.put("model", vo.getMaterialtype()); // 型号文字
singleObj.put("intervalModel",vo.getMaterialtype()); // 产品类型 例如35-KV-断路器物料自定义字段
singleObj.put("intervalModel", vo.getMaterialtype()); // 产品类型 例如35-KV-断路器物料自定义字段
singleObj.put("primaryUnit", unitMap.get("measrate").toString().split("/")[0]);
// 主单位
singleObj.put("materialUnit", unitMap.get("measrate").toString().split("/")[1]); // 单位