备料计划转库存的其它入库

This commit is contained in:
mzr 2025-07-08 09:51:21 +08:00
parent f516e44a62
commit a951536045
1 changed files with 14 additions and 23 deletions

View File

@ -71,12 +71,12 @@ public class PickmToGeneralInAction implements ICommonAction {
ExceptionUtils.wrapBusinessException(nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("5008100_0", "05008100-0009")); ExceptionUtils.wrapBusinessException(nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID("5008100_0", "05008100-0009"));
} }
// 过滤 // 过滤
AggPickmVO[] filterVOs = this.filterAggPickmVOForDirectTrans(aggVOs); /*AggPickmVO[] filterVOs = this.filterAggPickmVO(aggVOs);
if (MMValueCheck.isEmpty(filterVOs)) { if (MMValueCheck.isEmpty(filterVOs)) {
ExceptionUtils.wrapBusinessException(PickmLangConsts.getErrNoDataToReqPickm()); ExceptionUtils.wrapBusinessException(PickmLangConsts.getErrNoDataToReqPickm());
} }*/
// 转换数据 // 转换数据
GeneralInVO[] inVOS = convertToGeneralInVO(filterVOs, null); GeneralInVO[] inVOS = convertToGeneralInVO(aggVOs, null);
// 其它入库新增 // 其它入库新增
IGeneralInMaintain generalInMaintain = ServiceLocator.find(IGeneralInMaintain.class); IGeneralInMaintain generalInMaintain = ServiceLocator.find(IGeneralInMaintain.class);
GeneralInVO[] insertVos = generalInMaintain.insert(inVOS); GeneralInVO[] insertVos = generalInMaintain.insert(inVOS);
@ -113,24 +113,25 @@ public class PickmToGeneralInAction implements ICommonAction {
for (GeneralInVO inVO : inVOS) { for (GeneralInVO inVO : inVOS) {
// 其它入库单的仓库交易类型取自业务参数设置的默认值 // 其它入库单的仓库交易类型取自业务参数设置的默认值
GeneralInHeadVO head = inVO.getHead(); GeneralInHeadVO head = inVO.getHead();
head.setCtrantypeid("01"); head.setCtrantypeid("");
head.setVtrantypecode("01"); head.setVtrantypecode("");
head.setCwarehouseid("");
} }
return inVOS; return inVOS;
} }
/* /*
* 过滤备料计划 完成态非生产来源生产订单完工或关闭表体非发料非备料可执行量<0 * 过滤备料计划 审批通过=1上游生产订单行是投放状态
*/ */
private AggPickmVO[] filterAggPickmVOForDirectTrans(AggPickmVO[] aggvos) throws BusinessException { private AggPickmVO[] filterAggPickmVO(AggPickmVO[] aggvos) throws BusinessException {
if (aggvos == null) { if (aggvos == null) {
return null; return null;
} }
List<AggPickmVO> resultVO = new ArrayList<AggPickmVO>(); List<AggPickmVO> resultVO = new ArrayList<>();
// 查询生产订单参数 // 查询生产订单参数
List<MoQueryParam4Pickm> moParams = new ArrayList<MoQueryParam4Pickm>(); List<MoQueryParam4Pickm> moParams = new ArrayList<>();
MapList<Integer, String> moidMap = new MapList<Integer, String>(); MapList<Integer, String> moidMap = new MapList<>();
List<String> transTypeIds = new ArrayList<String>(); List<String> transTypeIds = new ArrayList<>();
for (AggPickmVO aggvo : aggvos) { for (AggPickmVO aggvo : aggvos) {
PickmHeadVO head = aggvo.getParentVO(); PickmHeadVO head = aggvo.getParentVO();
// 完成态 // 完成态
@ -154,12 +155,6 @@ public class PickmToGeneralInAction implements ICommonAction {
if (!FitemsourceEnum.PREPARE.equalsValue(item.getFitemsource())) { if (!FitemsourceEnum.PREPARE.equalsValue(item.getFitemsource())) {
continue; continue;
} }
// 2需求主数量>0
// 需求主数量=计划出库数量-累计出库数量-累计委外数量-累计待转数量-累计入库数量-预留
if (!MMNumberUtil.isGtZero(MMNumberUtil.sub(item.getNplanoutnum(), item.getNaccoutnum(),
item.getNatpnum(), item.getNpscnum(), item.getNtransnum(), item.getNtransinnum()))) {
continue;
}
itemList.add(item); itemList.add(item);
} }
if (MMValueCheck.isEmpty(itemList)) { if (MMValueCheck.isEmpty(itemList)) {
@ -192,7 +187,7 @@ public class PickmToGeneralInAction implements ICommonAction {
Map<String, Boolean> isWWPickm = Map<String, Boolean> isWWPickm =
wwService.isWWPickmTransType(transTypeIds.toArray(new String[0])); wwService.isWWPickmTransType(transTypeIds.toArray(new String[0]));
// 查询来源生产订单是否为完工或关闭态 // 查询来源生产订单是否为完工或关闭态
Map<String, UFBoolean> ismoFinisOrClose = new HashMap<String, UFBoolean>(); Map<String, UFBoolean> ismoFinisOrClose = new HashMap<>();
// 来源生产订单信息为空 // 来源生产订单信息为空
if (!MMMapUtil.isEmpty(moidMap)) { if (!MMMapUtil.isEmpty(moidMap)) {
// 构造查询生产订单参数 // 构造查询生产订单参数
@ -209,7 +204,7 @@ public class PickmToGeneralInAction implements ICommonAction {
} }
// 循环上一轮结果过滤来源生产订单为关闭或完工的备料 计划 // 循环上一轮结果过滤来源生产订单为关闭或完工的备料 计划
List<AggPickmVO> resultMoVO = new ArrayList<AggPickmVO>(); List<AggPickmVO> resultMoVO = new ArrayList<>();
for (AggPickmVO aggvo : resultVO) { for (AggPickmVO aggvo : resultVO) {
PickmHeadVO head = aggvo.getParentVO(); PickmHeadVO head = aggvo.getParentVO();
// 交易类型非生产 // 交易类型非生产
@ -227,10 +222,6 @@ public class PickmToGeneralInAction implements ICommonAction {
if (MaterialProdModeEnum.PRODMODE_PROD.equalsValue(head.getFprodmode())) { if (MaterialProdModeEnum.PRODMODE_PROD.equalsValue(head.getFprodmode())) {
moid = head.getCsourcebillrowid(); moid = head.getCsourcebillrowid();
} }
// 离散
if (MaterialProdModeEnum.PRODMODE_SEPPROD.equalsValue(head.getFprodmode())) {
moid = head.getCsourcebillid();
}
// 来源生产订单为完工或关闭态 // 来源生产订单为完工或关闭态
if (MMValueCheck.isNotEmpty(ismoFinisOrClose) && ismoFinisOrClose.containsKey(moid) if (MMValueCheck.isNotEmpty(ismoFinisOrClose) && ismoFinisOrClose.containsKey(moid)
&& MMValueCheck.isTrue(ismoFinisOrClose.get(moid))) { && MMValueCheck.isTrue(ismoFinisOrClose.get(moid))) {