fix(ic): 借料入库-其它入库批次号校验-优化
This commit is contained in:
parent
a94b6c7170
commit
fd4acfa697
|
@ -11,6 +11,7 @@ import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import nc.bs.ic.pub.env.ICBSContext;
|
import nc.bs.ic.pub.env.ICBSContext;
|
||||||
import nc.impl.pubapp.env.BSContext;
|
import nc.impl.pubapp.env.BSContext;
|
||||||
import nc.itf.ic.batch.IBatchCheck;
|
import nc.itf.ic.batch.IBatchCheck;
|
||||||
|
@ -50,10 +51,10 @@ public class BatchCheckImpl implements IBatchCheck {
|
||||||
Set<String> keySet = new HashSet();
|
Set<String> keySet = new HashSet();
|
||||||
List<InvCalbodyKey> keys = new ArrayList();
|
List<InvCalbodyKey> keys = new ArrayList();
|
||||||
|
|
||||||
for(ICBillVO bill : bills) {
|
for (ICBillVO bill : bills) {
|
||||||
for(ICBillBodyVO body : bill.getBodys()) {
|
for (ICBillBodyVO body : bill.getBodys()) {
|
||||||
if (body.getDproducedate() != null && body.getDvalidate() != null && body.getDproducedate().compareTo(body.getDvalidate()) > 0) {
|
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();
|
String var10001 = bill.getHead().getPk_org();
|
||||||
|
@ -69,10 +70,10 @@ public class BatchCheckImpl implements IBatchCheck {
|
||||||
return;
|
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);
|
Map<String, InvCalBodyVO> cInvInfoMap = this.changeRet(invInfoMap);
|
||||||
|
|
||||||
for(ICBillVO bill : bills) {
|
for (ICBillVO bill : bills) {
|
||||||
StringBuilder errStr = new StringBuilder();
|
StringBuilder errStr = new StringBuilder();
|
||||||
List<String> errRowNos = new ArrayList();
|
List<String> errRowNos = new ArrayList();
|
||||||
this.checkBatchcode(bill, cInvInfoMap, errStr, errRowNos, true);
|
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) {
|
private Map<String, InvCalBodyVO> changeRet(Map<InvCalbodyKey, InvCalBodyVO> invInfoMap) {
|
||||||
Map<String, InvCalBodyVO> cInvInfoMap = new HashMap();
|
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);
|
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();
|
String pk_org = bill.getHead().getPk_org();
|
||||||
List<String> cmaterialVIDs = new ArrayList();
|
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) {
|
if (body.getStatus() != 3 && !cmaterialVIDs.contains(body.getCmaterialvid()) && body.getNnum() != null) {
|
||||||
cmaterialVIDs.add(body.getCmaterialvid());
|
cmaterialVIDs.add(body.getCmaterialvid());
|
||||||
}
|
}
|
||||||
|
@ -137,7 +138,7 @@ public class BatchCheckImpl implements IBatchCheck {
|
||||||
String pk_org = bill.getHead().getPk_org();
|
String pk_org = bill.getHead().getPk_org();
|
||||||
List<String> cmaterialVIDs = new ArrayList();
|
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())) {
|
if (body.getStatus() != 3 && !cmaterialVIDs.contains(body.getCmaterialvid()) && !NCBaseTypeUtils.isNullOrZero(body.getNnum())) {
|
||||||
cmaterialVIDs.add(body.getCmaterialvid());
|
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) {
|
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())) {
|
if (body.getStatus() != 3 && body.getNnum() != null && !StringUtil.isSEmptyOrNull(body.getCmaterialvid())) {
|
||||||
String var10001 = bill.getHead().getPk_org();
|
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());
|
AssertUtils.assertValue(materialVO != null, BatchRes.getMaterialStockErr());
|
||||||
ICBillHeadVO head = bill.getHead();
|
ICBillHeadVO head = bill.getHead();
|
||||||
boolean isError = this.checkWholeMngInv(materialVO, body, errStr, errRowNos, checkQualFlag, head);
|
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) {
|
private Map<String, InvCalBodyVO> fetchMaterialInfo(String pk_org, List<String> cmaterialVIDs) {
|
||||||
Map<String, InvCalBodyVO> retMap = new HashMap();
|
Map<String, InvCalBodyVO> retMap = new HashMap();
|
||||||
ICBSContext context = new ICBSContext();
|
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) {
|
if (stockVOs != null && stockVOs.length != 0) {
|
||||||
for(InvCalBodyVO vo : stockVOs) {
|
for (InvCalBodyVO vo : stockVOs) {
|
||||||
retMap.put(vo.getPk_org() + vo.getPk_material(), vo);
|
retMap.put(vo.getPk_org() + vo.getPk_material(), vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,10 +240,10 @@ public class BatchCheckImpl implements IBatchCheck {
|
||||||
if (errRowNos != null && errRowNos.size() != 0) {
|
if (errRowNos != null && errRowNos.size() != 0) {
|
||||||
List<String> cpickmbids = new ArrayList();
|
List<String> cpickmbids = new ArrayList();
|
||||||
|
|
||||||
for(String rowNo : errRowNos) {
|
for (String rowNo : errRowNos) {
|
||||||
for(ICBillBodyVO body : bill.getChildrenVO()) {
|
for (ICBillBodyVO body : bill.getChildrenVO()) {
|
||||||
if (rowNo.equals(body.getCrowno())) {
|
if (rowNo.equals(body.getCrowno())) {
|
||||||
String cpickmbid = (String)body.getAttributeValue("cpickmbid");
|
String cpickmbid = (String) body.getAttributeValue("cpickmbid");
|
||||||
cpickmbids.add(cpickmbid);
|
cpickmbids.add(cpickmbid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -259,15 +260,15 @@ public class BatchCheckImpl implements IBatchCheck {
|
||||||
int status = head.getStatus();
|
int status = head.getStatus();
|
||||||
if (status == VOStatus.UNCHANGED) {
|
if (status == VOStatus.UNCHANGED) {
|
||||||
// 借料类型的其它入库跳过批次号校验
|
// 借料类型的其它入库跳过批次号校验
|
||||||
String typeCode = "";
|
String typeCode = "";
|
||||||
try {
|
try {
|
||||||
typeCode = SysInitQuery.getParaString(head.getPk_org(), "ICIN_TYPE");
|
typeCode = SysInitQuery.getParaString(head.getPk_org(), "ICIN_TYPE");
|
||||||
} catch (BusinessException e) {
|
} catch (BusinessException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
if (!"".equals(typeCode) && typeCode.equals(head.getVtrantypecode())) {
|
if (typeCode != null && !"".equals(typeCode) && typeCode.equals(head.getVtrantypecode())) {
|
||||||
isBatchEmpty = false;
|
isBatchEmpty = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean isNumNotEmpty = body.getNnum() != null && !NCBaseTypeUtils.isNullOrZero(body.getNnum());
|
boolean isNumNotEmpty = body.getNnum() != null && !NCBaseTypeUtils.isNullOrZero(body.getNnum());
|
||||||
return isBatchEmpty && isNumNotEmpty;
|
return isBatchEmpty && isNumNotEmpty;
|
||||||
|
|
Loading…
Reference in New Issue