物料启用停用,分配取消分配更新ims

This commit is contained in:
lihao 2025-09-28 18:23:55 +08:00
parent f7c81f9585
commit 5fc4bd1a6e
1 changed files with 65 additions and 18 deletions

View File

@ -79,29 +79,73 @@ public class MaterialToGyImsListener implements IBusinessListener {
} else if ("1012".equals(eventType)) {
configParams = MyHelper.getConfigParams("gy-config", null);
if (configParams.isEmpty()) {
throw new BusinessException("高压的gymes接口缺少配置");
}
MaterialStockVO[] materialStockVOS = ArrayClassConvertUtil.convert(objs, MaterialStockVO.class);
for (MaterialStockVO materialStockVO : materialStockVOS) {
String pkOrg = materialStockVO.getPk_org();
String[] orgItem = configParams.get("imsOrg").split(",");
String orgCode = MyHelper.transferField(OrgVO.getDefaultTableName(), OrgVO.CODE, OrgVO.PK_ORG, pkOrg);
// Integer num = MyHelper.checkIfOrg1(configParams, materialStockVO.getPk_materialstock(), "imsOrg");
if (!contains(orgItem, orgCode)) {
continue;
}else {
updateStatus(materialStockVO.getPk_material(),"D");
}
}
}else if ("1004".equals(eventType) || "1069".equals(eventType) ) {
MaterialVO[] useVOs = ArrayClassConvertUtil.convert(objs, MaterialVO.class);
// 更新启用状态
// updateEnableStatus(useVOs);
}
}
public static boolean contains(String[] orgItem, String target) {
// 数组为null时直接返回false
if (orgItem == null) {
return false;
}
// 数组转List调用contains()
List<String> list = Arrays.asList(orgItem);
return list.contains(target);
}
private void updateEnableStatus(MaterialVO[] useVOs) throws BusinessException {
// Ö´Ðе¥ÌõSQL²åÈë
BaseDAO gyimsDao = new BaseDAO("gyims");
gyimsDao.setAddTimeStamp(false);
List<String> code=new ArrayList<>();
for (MaterialVO materialVO : useVOs) {
Integer num = MyHelper.checkIfOrg(configParams,materialVO.getPk_material(), "imsOrg");
if(num<=0){
continue;
}else{
code.add(materialVO.getPk_material());
}
}
if(code.isEmpty()){
if (useVOs == null || useVOs.length == 0) {
return;
}
Integer enableStatus = useVOs[0].getEnablestate();
String sql="update BIPItemTab set enableStatus=" + enableStatus + " where pk_material='" + code + "'";
gyimsDao.executeUpdate(sql);
BaseDAO gyimsDao = new BaseDAO("gyims");
gyimsDao.setAddTimeStamp(false);
List<String> materialCodes = new ArrayList<>();
for (MaterialVO materialVO : useVOs) {
Integer orgCheckResult = MyHelper.checkIfOrg(configParams, materialVO.getPk_material(), "imsOrg");
if (orgCheckResult != null && orgCheckResult > 0) {
materialCodes.add(materialVO.getPk_material());
}
}
if (materialCodes.isEmpty()) {
return;
}
Integer enableStatus = useVOs[0].getEnablestate();
if (enableStatus == null) {
throw new BusinessException("启用状态不能为空");
}
String codeInClause = String.join("','", materialCodes);
String sql = "update BIPItemTab set enablestate = " + enableStatus + " where pk_material in ('" + codeInClause + "')";
gyimsDao.executeUpdate(sql);
}
private void pushIms(MaterialVO[] useVOs) throws BusinessException {
@ -140,10 +184,10 @@ public class MaterialToGyImsListener implements IBusinessListener {
StringBuilder values = new StringBuilder();
for (int i = 0; i < remain.size(); i++) {
Map<String, Object> data = remain.get(i);
String selectSql="SELECT count(1) from BIPItemTab where pk_material=¡®" +data.get("pk_material")+ "'";
String selectSql="SELECT count(1) from BIPItemTab where pk_material='" +data.get("pk_material")+ "'";
int num = (int) gyimsDao.executeQuery(selectSql,new ColumnProcessor());
if(num>0){
updateStatus((String) data.get("pk_material"),"D");
updateStatus((String) data.get("pk_material"),"C");
continue;
}
@ -174,6 +218,9 @@ public class MaterialToGyImsListener implements IBusinessListener {
values.append(", ");
}
}
if(values.isEmpty()){
return;
}
// ÍêÕû²åÈëSQL
String updateSql = "INSERT INTO BIPItemTab (" + fieldNames.toString() + ") VALUES " + values.toString();