|
|
|
@ -644,51 +644,51 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService {
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
//编码规则
|
|
|
|
|
String[] serialNoArray = numberRuleExt.getNumberRule().split("}\\{");
|
|
|
|
|
//规则属性长度拼接
|
|
|
|
|
String[] ruleLengthSpiltArray = numberRuleExt.getRuleLengthSpilt().split(",");
|
|
|
|
|
String serialNoStr = "serialno";
|
|
|
|
|
int serialNoIndex = -1;
|
|
|
|
|
for (int index = 0; index < serialNoArray.length; index++) {
|
|
|
|
|
if(serialNoArray[index].contains(serialNoStr)) serialNoIndex = index;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int ruleLengthTotal = 0;
|
|
|
|
|
if(serialNoIndex != -1){
|
|
|
|
|
for (int index = 0; index < serialNoIndex; index++) {
|
|
|
|
|
ruleLengthTotal += Integer.parseInt(ruleLengthSpiltArray[index]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
int finalRuleLengthTotal = ruleLengthTotal;
|
|
|
|
|
int finalSerialNoIndex = serialNoIndex;
|
|
|
|
|
|
|
|
|
|
packageExtDbList = packageExtDbList.stream().sorted(Comparator.comparing(MesPackageExt::getPackageNo)).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
Integer lastSerialNo = null;
|
|
|
|
|
String lastProductSn = null;
|
|
|
|
|
|
|
|
|
|
for (MesPackageExt packageExt : packageExtDbList) {
|
|
|
|
|
|
|
|
|
|
int curSerialNo = Integer.parseInt(packageExt.getSerialNumber().substring(finalRuleLengthTotal, finalRuleLengthTotal + Integer.parseInt(ruleLengthSpiltArray[finalSerialNoIndex])));
|
|
|
|
|
|
|
|
|
|
if (lastSerialNo == null) {
|
|
|
|
|
|
|
|
|
|
lastSerialNo = curSerialNo;
|
|
|
|
|
lastProductSn = packageExt.getPackageNo();
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (curSerialNo - lastSerialNo !=1 ) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
|
|
|
|
|
.setErrorDetail("上一个包装条码[%s]与包装条码[%s]流水号存在跳号", lastProductSn, packageExt.getPackageNo())
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lastProductSn = packageExt.getPackageNo();
|
|
|
|
|
lastSerialNo = curSerialNo;
|
|
|
|
|
}
|
|
|
|
|
//String[] serialNoArray = numberRuleExt.getNumberRule().split("}\\{");
|
|
|
|
|
////规则属性长度拼接
|
|
|
|
|
//String[] ruleLengthSpiltArray = numberRuleExt.getRuleLengthSpilt().split(",");
|
|
|
|
|
//String serialNoStr = "serialno";
|
|
|
|
|
//int serialNoIndex = -1;
|
|
|
|
|
//for (int index = 0; index < serialNoArray.length; index++) {
|
|
|
|
|
// if(serialNoArray[index].contains(serialNoStr)) serialNoIndex = index;
|
|
|
|
|
//}
|
|
|
|
|
//
|
|
|
|
|
//int ruleLengthTotal = 0;
|
|
|
|
|
//if(serialNoIndex != -1){
|
|
|
|
|
// for (int index = 0; index < serialNoIndex; index++) {
|
|
|
|
|
// ruleLengthTotal += Integer.parseInt(ruleLengthSpiltArray[index]);
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
//int finalRuleLengthTotal = ruleLengthTotal;
|
|
|
|
|
//int finalSerialNoIndex = serialNoIndex;
|
|
|
|
|
//
|
|
|
|
|
//packageExtDbList = packageExtDbList.stream().sorted(Comparator.comparing(MesPackageExt::getPackageNo)).collect(Collectors.toList());
|
|
|
|
|
//
|
|
|
|
|
//Integer lastSerialNo = null;
|
|
|
|
|
//String lastProductSn = null;
|
|
|
|
|
//
|
|
|
|
|
//for (MesPackageExt packageExt : packageExtDbList) {
|
|
|
|
|
//
|
|
|
|
|
// int curSerialNo = Integer.parseInt(packageExt.getSerialNumber().substring(finalRuleLengthTotal, finalRuleLengthTotal + Integer.parseInt(ruleLengthSpiltArray[finalSerialNoIndex])));
|
|
|
|
|
//
|
|
|
|
|
// if (lastSerialNo == null) {
|
|
|
|
|
//
|
|
|
|
|
// lastSerialNo = curSerialNo;
|
|
|
|
|
// lastProductSn = packageExt.getPackageNo();
|
|
|
|
|
// continue;
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// if (curSerialNo - lastSerialNo !=1 ) {
|
|
|
|
|
// throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
// .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
|
|
|
|
|
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
|
|
|
|
|
// .setErrorDetail("上一个包装条码[%s]与包装条码[%s]流水号存在跳号", lastProductSn, packageExt.getPackageNo())
|
|
|
|
|
// .build();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// lastProductSn = packageExt.getPackageNo();
|
|
|
|
|
// lastSerialNo = curSerialNo;
|
|
|
|
|
//}
|
|
|
|
|
return packageExtDbList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|