增加物料各车间编码校验

This commit is contained in:
lihao 2026-02-03 16:47:22 +08:00
parent 4704de6ffc
commit af89bf29b6
1 changed files with 56 additions and 0 deletions

View File

@ -14,12 +14,15 @@ 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.busi.service.MaterialPubService;
import nc.util.mmf.framework.base.MMValueCheck;
import nc.vo.bd.defdoc.DefdocVO;
import nc.vo.bd.material.MaterialVO;
import nc.vo.bd.material.plan.MaterialPlanVO;
import nc.vo.bd.material.prod.MaterialProdVO;
import nc.vo.bd.material.stock.MaterialStockVO;
import nc.vo.bd.stordoc.StordocVO;
import nc.vo.org.DeptVO;
import nc.vo.org.OrgVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDouble;
@ -79,6 +82,7 @@ public class MaterialJmPushToQyMesAction implements ICommonAction {
}
useVOs.add(materialVO);
}
checkMaterialVO(useVOs);
buildSyncData(useVOs);
return ResultMessageUtil.toJSON(true, "ÍÆËͳɹ¦");
} catch (Exception ex) {
@ -86,6 +90,58 @@ public class MaterialJmPushToQyMesAction implements ICommonAction {
}
}
private void checkMaterialVO(List<MaterialVO> useVOs) throws BusinessException {
// 定义各车间编码常量便于维护
String PROCESS_DEPT_CODE = "C038D0019"; // 加工车间
String CAST_DEPT_CODE = "C038D0017"; // 铸造车间
String HENGMU_DEPT_CODE = "C038D0023"; // 横目事业部
for (MaterialVO materialVO : useVOs) {
// 助记码
String materialmnecode =materialVO.getMaterialmnecode();
if(null == materialmnecode || materialmnecode.equals("")){
continue;
}
// 查询物料生产信息
Set<String> marSet =new HashSet<>();
marSet.add(materialVO.getPk_material());
Map<String, MaterialProdVO> resultMap = MaterialPubService.queryMaterialProduceInfoByPks((String[])marSet.toArray(new String[0]), pkOrg1, new String[]{"pk_prodeptdoc"});
MaterialProdVO materialProdVO = resultMap.get(materialVO.getPk_material());
// 部门编码
String deptCode= null !=materialProdVO.getPk_prodeptdoc() ? MyHelper.getStrValByCondition(DeptVO.getDefaultTableName(), DeptVO.CODE,
DeptVO.PK_DEPT + " = '" + materialProdVO.getPk_prodeptdoc() + "' and dr = 0"):"";
// 助记码匹配判断与生产部门校验
boolean isDeptValid = false;
String expectedDeptCode = "";
String materialPk = materialVO.getPk_material();
// 1. 助记码以0501开头 - 加工车间(C03800019)
if (materialmnecode.startsWith("0501")) {
expectedDeptCode = PROCESS_DEPT_CODE;
isDeptValid = deptCode.equals(expectedDeptCode);
}
// 2. 助记码以0502/0503/0504开头 - 铸造车间(C038D0017)
else if (materialmnecode.startsWith("0502")
|| materialmnecode.startsWith("0503")
|| materialmnecode.startsWith("0504")) {
expectedDeptCode = CAST_DEPT_CODE;
isDeptValid = deptCode.equals(expectedDeptCode);
}
// 3. 助记码以04/06开头 - 横目事业部(C038D0023)
else if (materialmnecode.startsWith("04") || materialmnecode.startsWith("06")) {
expectedDeptCode = HENGMU_DEPT_CODE;
isDeptValid = deptCode.equals(expectedDeptCode);
}
// 校验不通过则抛出异常
if (!isDeptValid) {
throw new BusinessException("该物料对应的生产部门错误,请先修改生产部门后,再传启源");
}
}
}
private JSONObject getParamJson(IRequest iRequest) {
String json = iRequest.getJson();
JSONObject jsonObject = JSONObject.parseObject(json);