演示 问题修复

uat-temp-wj-shenshanorder
王杰 3 months ago
parent b8ad4d5a8b
commit cc84bd5b50

@ -135,6 +135,10 @@ public class MesFunctionPackageProgressService extends BaseSwsService implements
return packResultMap(reqBean, resultBean, resultMap, String.format("生产线[%s]工位[%s]包装条码[%s]修改数量操作无效,请刷新重试!",
reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), packageDataContext.getPackageNo()));
}
if (MathOperation.compareTo(packageDataContext.getQty(), packageDataContext.getPackSpecQty()) > 0) {
return packResultMap(reqBean, resultBean, resultMap, String.format("生产线[%s]工位[%s]包装条码[%s]修改数量[%s]不能超过包装规格数量[%s],请刷新重试!",
reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), packageDataContext.getPackageNo(), packageDataContext.getQty(), packageDataContext.getPackSpecQty()));
}
//修改包装信息的数量
packageNoGenerateStepService.savePackageData(reqBean, packageDb, packageDataContext.getQty());
//打包数据更新数量(判断是增加还是减少数量)

@ -302,9 +302,11 @@ public class MesPackageNoGenerateStepService extends BaseStepService implements
Integer cachedQty = CollectionUtils.isEmpty(packageDataContextList) ? MesPcnExtConstWords.ZERO : packageDataContextList.size();
//当前满足标包的差额数量
Integer needQty = packageRuleContext.getPackSpecQty().intValue() - cachedQty;
//如果缓存中的个数超过标包, needQty则为负数, 下面去截取条码的时候会下标越界, 所以此场景下将 needQty改为0
if (needQty < 0) needQty = MesPcnExtConstWords.ZERO;
//当前满足标包的差额条码
List<String> productSnList2Cur;
List<String> productSnList2Cur = null;
//除去当前满足标包的差额条码后的剩余条码
List<String> productSnList2Remain = null;
@ -312,12 +314,18 @@ public class MesPackageNoGenerateStepService extends BaseStepService implements
if (productSnList.size() <= needQty) {
productSnList2Cur = productSnList;
} else {
productSnList2Cur = productSnList.subList(0, needQty);
productSnList2Remain = productSnList.subList(needQty, productSnList.size());
//缓存中的个数已经等于或者超过标包,则不需要截取条码
if (needQty.compareTo(MesPcnExtConstWords.ZERO) == 0) {
productSnList2Remain = productSnList;
} else {
//根据需要的个数进行截取条码
productSnList2Cur = productSnList.subList(0, needQty);
productSnList2Remain = productSnList.subList(needQty, productSnList.size());
}
}
//当前的实际打包数量 = 缓存的包装条码明细数量 + 当前满足标包的差额条码的个数
Integer curQty = cachedQty + productSnList2Cur.size();
Integer curQty = cachedQty + (CollectionUtils.isEmpty(productSnList2Cur) ? MesPcnExtConstWords.ZERO : productSnList2Cur.size());
MesPackage packageDb = null;
//判断是否存在缓存的包装条码明细信息,如果进行递归则已无包装条码, 则重新生成信息的包装条码

Loading…
Cancel
Save