fix(ic): 借料入库-其它入库批次号校验-优化

This commit is contained in:
mzr 2025-09-05 18:41:12 +08:00
parent a94b6c7170
commit fd4acfa697
1 changed files with 25 additions and 24 deletions

View File

@ -11,6 +11,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import nc.bs.ic.pub.env.ICBSContext;
import nc.impl.pubapp.env.BSContext;
import nc.itf.ic.batch.IBatchCheck;
@ -50,10 +51,10 @@ public class BatchCheckImpl implements IBatchCheck {
Set<String> keySet = new HashSet();
List<InvCalbodyKey> keys = new ArrayList();
for(ICBillVO bill : bills) {
for(ICBillBodyVO body : bill.getBodys()) {
for (ICBillVO bill : bills) {
for (ICBillBodyVO body : bill.getBodys()) {
if (body.getDproducedate() != null && body.getDvalidate() != null && body.getDproducedate().compareTo(body.getDvalidate()) > 0) {
ExceptionUtils.wrappException(new BusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4008028_0", "04008028-0067", (String)null, new String[]{"" + body.getVbatchcode()})));
ExceptionUtils.wrappException(new BusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4008028_0", "04008028-0067", (String) null, new String[]{"" + body.getVbatchcode()})));
}
String var10001 = bill.getHead().getPk_org();
@ -69,10 +70,10 @@ public class BatchCheckImpl implements IBatchCheck {
return;
}
Map<InvCalbodyKey, InvCalBodyVO> invInfoMap = (new ICBSContext()).getInvInfo().getInvCalBodyVOs((InvCalbodyKey[])keys.toArray(new InvCalbodyKey[keys.size()]));
Map<InvCalbodyKey, InvCalBodyVO> invInfoMap = (new ICBSContext()).getInvInfo().getInvCalBodyVOs((InvCalbodyKey[]) keys.toArray(new InvCalbodyKey[keys.size()]));
Map<String, InvCalBodyVO> cInvInfoMap = this.changeRet(invInfoMap);
for(ICBillVO bill : bills) {
for (ICBillVO bill : bills) {
StringBuilder errStr = new StringBuilder();
List<String> errRowNos = new ArrayList();
this.checkBatchcode(bill, cInvInfoMap, errStr, errRowNos, true);
@ -91,7 +92,7 @@ public class BatchCheckImpl implements IBatchCheck {
private Map<String, InvCalBodyVO> changeRet(Map<InvCalbodyKey, InvCalBodyVO> invInfoMap) {
Map<String, InvCalBodyVO> cInvInfoMap = new HashMap();
for(InvCalBodyVO vo : invInfoMap.values()) {
for (InvCalBodyVO vo : invInfoMap.values()) {
cInvInfoMap.put(vo.getPk_org() + vo.getPk_material(), vo);
}
@ -107,7 +108,7 @@ public class BatchCheckImpl implements IBatchCheck {
String pk_org = bill.getHead().getPk_org();
List<String> cmaterialVIDs = new ArrayList();
for(ICBillBodyVO body : bill.getBodys()) {
for (ICBillBodyVO body : bill.getBodys()) {
if (body.getStatus() != 3 && !cmaterialVIDs.contains(body.getCmaterialvid()) && body.getNnum() != null) {
cmaterialVIDs.add(body.getCmaterialvid());
}
@ -137,7 +138,7 @@ public class BatchCheckImpl implements IBatchCheck {
String pk_org = bill.getHead().getPk_org();
List<String> cmaterialVIDs = new ArrayList();
for(ICBillBodyVO body : bill.getBodys()) {
for (ICBillBodyVO body : bill.getBodys()) {
if (body.getStatus() != 3 && !cmaterialVIDs.contains(body.getCmaterialvid()) && !NCBaseTypeUtils.isNullOrZero(body.getNnum())) {
cmaterialVIDs.add(body.getCmaterialvid());
}
@ -159,10 +160,10 @@ public class BatchCheckImpl implements IBatchCheck {
}
private void checkBatchcode(ICBillVO bill, Map<String, InvCalBodyVO> materialVOs, StringBuilder errStr, List<String> errRowNos, boolean checkQualFlag) {
for(ICBillBodyVO body : bill.getBodys()) {
for (ICBillBodyVO body : bill.getBodys()) {
if (body.getStatus() != 3 && body.getNnum() != null && !StringUtil.isSEmptyOrNull(body.getCmaterialvid())) {
String var10001 = bill.getHead().getPk_org();
InvCalBodyVO materialVO = (InvCalBodyVO)materialVOs.get(var10001 + body.getCmaterialvid());
InvCalBodyVO materialVO = (InvCalBodyVO) materialVOs.get(var10001 + body.getCmaterialvid());
AssertUtils.assertValue(materialVO != null, BatchRes.getMaterialStockErr());
ICBillHeadVO head = bill.getHead();
boolean isError = this.checkWholeMngInv(materialVO, body, errStr, errRowNos, checkQualFlag, head);
@ -223,9 +224,9 @@ public class BatchCheckImpl implements IBatchCheck {
private Map<String, InvCalBodyVO> fetchMaterialInfo(String pk_org, List<String> cmaterialVIDs) {
Map<String, InvCalBodyVO> retMap = new HashMap();
ICBSContext context = new ICBSContext();
InvCalBodyVO[] stockVOs = context.getInvInfo().getInvCalBodyVO(pk_org, (String[])cmaterialVIDs.toArray(new String[cmaterialVIDs.size()]));
InvCalBodyVO[] stockVOs = context.getInvInfo().getInvCalBodyVO(pk_org, (String[]) cmaterialVIDs.toArray(new String[cmaterialVIDs.size()]));
if (stockVOs != null && stockVOs.length != 0) {
for(InvCalBodyVO vo : stockVOs) {
for (InvCalBodyVO vo : stockVOs) {
retMap.put(vo.getPk_org() + vo.getPk_material(), vo);
}
@ -239,10 +240,10 @@ public class BatchCheckImpl implements IBatchCheck {
if (errRowNos != null && errRowNos.size() != 0) {
List<String> cpickmbids = new ArrayList();
for(String rowNo : errRowNos) {
for(ICBillBodyVO body : bill.getChildrenVO()) {
for (String rowNo : errRowNos) {
for (ICBillBodyVO body : bill.getChildrenVO()) {
if (rowNo.equals(body.getCrowno())) {
String cpickmbid = (String)body.getAttributeValue("cpickmbid");
String cpickmbid = (String) body.getAttributeValue("cpickmbid");
cpickmbids.add(cpickmbid);
}
}
@ -259,15 +260,15 @@ public class BatchCheckImpl implements IBatchCheck {
int status = head.getStatus();
if (status == VOStatus.UNCHANGED) {
// 借料类型的其它入库跳过批次号校验
String typeCode = "";
try {
typeCode = SysInitQuery.getParaString(head.getPk_org(), "ICIN_TYPE");
} catch (BusinessException e) {
throw new RuntimeException(e);
}
if (!"".equals(typeCode) && typeCode.equals(head.getVtrantypecode())) {
isBatchEmpty = false;
}
String typeCode = "";
try {
typeCode = SysInitQuery.getParaString(head.getPk_org(), "ICIN_TYPE");
} catch (BusinessException e) {
throw new RuntimeException(e);
}
if (typeCode != null && !"".equals(typeCode) && typeCode.equals(head.getVtrantypecode())) {
isBatchEmpty = false;
}
}
boolean isNumNotEmpty = body.getNnum() != null && !NCBaseTypeUtils.isNullOrZero(body.getNnum());
return isBatchEmpty && isNumNotEmpty;