注释同步修改备料计划

This commit is contained in:
lihao 2025-05-14 14:30:49 +08:00
parent bd21c31e4e
commit 8f069cf389
5 changed files with 156 additions and 135 deletions

View File

@ -8,7 +8,6 @@ package nc.bs.mmpac.pmo.pac0002.bp;
import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint; import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint;
import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterBillStatusRule; import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterBillStatusRule;
import nc.bs.mmpac.pmo.pac0002.rule.PMOFinishAutoFinishPutPlanRule; import nc.bs.mmpac.pmo.pac0002.rule.PMOFinishAutoFinishPutPlanRule;
import nc.bs.mmpac.pmo.pac0002.rule.PMOToFinishPickMRule;
import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillFinishValueRule; import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillFinishValueRule;
import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule; import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule;
import nc.impl.pubapp.pattern.rule.IFilterRule; import nc.impl.pubapp.pattern.rule.IFilterRule;
@ -43,9 +42,9 @@ public class PMOFinishBP {
private void addFinishAfterRule(CompareAroundProcesser<PMOAggVO> processer) { private void addFinishAfterRule(CompareAroundProcesser<PMOAggVO> processer) {
IRule<PMOAggVO> finishPutPlanRule = new PMOFinishAutoFinishPutPlanRule(); IRule<PMOAggVO> finishPutPlanRule = new PMOFinishAutoFinishPutPlanRule();
processer.addAfterRule(finishPutPlanRule); processer.addAfterRule(finishPutPlanRule);
/** 同步修改备料计划完成(生产订单强制完工时) */ // /** 同步修改备料计划完成(生产订单强制完工时) */
IRule<PMOAggVO> pMOToFinishPickMRule = new PMOToFinishPickMRule(); // IRule<PMOAggVO> pMOToFinishPickMRule = new PMOToFinishPickMRule();
processer.addAfterRule(pMOToFinishPickMRule); // processer.addAfterRule(pMOToFinishPickMRule);
} }
public PMOAggVO[] finishCancel(PMOAggVO[] fullBills, PMOAggVO[] originBills) { public PMOAggVO[] finishCancel(PMOAggVO[] fullBills, PMOAggVO[] originBills) {

View File

@ -5,13 +5,16 @@
package nc.bs.mmpac.pmo.pac0002.bp; package nc.bs.mmpac.pmo.pac0002.bp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import nc.bs.mmpac.pmo.pac0002.bp.service.PMOBPService; import nc.bs.mmpac.pmo.pac0002.bp.service.PMOBPService;
import nc.bs.mmpac.pmo.pac0002.bp.util.PMOBPUtil; import nc.bs.mmpac.pmo.pac0002.bp.util.PMOBPUtil;
import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint; import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint;
import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterBillStatusRule; import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterBillStatusRule;
import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterRowStatusRule; import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterRowStatusRule;
import nc.bs.mmpac.pmo.pac0002.rule.PMOFinishAutoFinishPutPlanRule; import nc.bs.mmpac.pmo.pac0002.rule.PMOFinishAutoFinishPutPlanRule;
import nc.bs.mmpac.pmo.pac0002.rule.PMOToFinishPickMRule;
import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillFinishValueRule; import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillFinishValueRule;
import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule; import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule;
import nc.impl.pubapp.pattern.rule.IRule; import nc.impl.pubapp.pattern.rule.IRule;
@ -28,11 +31,6 @@ import nc.vo.pub.BusinessException;
import nc.vo.pub.CircularlyAccessibleValueObject; import nc.vo.pub.CircularlyAccessibleValueObject;
import nc.vo.pubapp.pattern.exception.ExceptionUtils; import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class PMORowFinishBP { public class PMORowFinishBP {
public PMORowFinishBP() { public PMORowFinishBP() {
} }
@ -88,10 +86,10 @@ public class PMORowFinishBP {
returnvos[0].setChildrenVO((CircularlyAccessibleValueObject[])newitemMap.values().toArray(new PMOItemVO[0])); returnvos[0].setChildrenVO((CircularlyAccessibleValueObject[])newitemMap.values().toArray(new PMOItemVO[0]));
processer.after(returnvos, returnvos); processer.after(returnvos, returnvos);
/** 同步修改备料计划完成(生产订单强制完工时) */ // /** 同步修改备料计划完成(生产订单强制完工时) */
IRule<PMOAggVO> pMOToFinishPickMRule = new PMOToFinishPickMRule(); // IRule<PMOAggVO> pMOToFinishPickMRule = new PMOToFinishPickMRule();
pMOToFinishPickMRule.process(newaggvos); // pMOToFinishPickMRule.process(newaggvos);
/** ******************** */ // /** ******************** */
PMOAggVO newaggvo = PMOBPService.getIPMOQueryService().queryByPk(vos[0].getParentVO().getCpmohid()); PMOAggVO newaggvo = PMOBPService.getIPMOQueryService().queryByPk(vos[0].getParentVO().getCpmohid());
return new PMOAggVO[]{newaggvo}; return new PMOAggVO[]{newaggvo};

View File

@ -27,52 +27,53 @@ public class PMOToFinishPickMRule
* 3.若为完工状态则根据生产订单明细表中生产订单行查询备料计划 * 3.若为完工状态则根据生产订单明细表中生产订单行查询备料计划
* 4.修改备料计划为完成状态3 * 4.修改备料计划为完成状态3
*/ */
for(int i = 0; i < vos.length; i++) { //20250514弃用
PMOAggVO vo = vos[i]; // for(int i = 0; i < vos.length; i++) {
PMOItemVO[] items = vo.getChildrenVO(); // PMOAggVO vo = vos[i];
//循环生产订单明细 // PMOItemVO[] items = vo.getChildrenVO();
for(int j = 0; j < items.length; j++) { // //循环生产订单明细
PMOItemVO item = items[j]; // for(int j = 0; j < items.length; j++) {
//查看生产订单行状态是否为完工2 // PMOItemVO item = items[j];
int fitemStatus = item.getFitemstatus(); // //查看生产订单行状态是否为完工2
if(fitemStatus != 2) { // int fitemStatus = item.getFitemstatus();
continue; // if(fitemStatus != 2) {
} // continue;
//根据生产订单行查询备料计划 // }
String cmoid = item.getCmoid(); // //根据生产订单行查询备料计划
String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cmoid + "'"; // String cmoid = item.getCmoid();
IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class); // String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cmoid + "'";
// 根据主键查询得到aggvo // IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class);
try { // // 根据主键查询得到aggvo
@SuppressWarnings("unchecked") // try {
ArrayList<AggPickmVO> aggVOs = (ArrayList<AggPickmVO>)aggvoQueryService.queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false); // @SuppressWarnings("unchecked")
if(aggVOs.size() <= 0) { // ArrayList<AggPickmVO> aggVOs = (ArrayList<AggPickmVO>)aggvoQueryService.queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false);
continue; // if(aggVOs.size() <= 0) {
} // continue;
//数组转换 // }
AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()]; // //数组转换
boolean flag = false; // AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()];
for(int z=0; z<aggVOs.size(); z++) { // boolean flag = false;
AggPickmVO aggPickmVO = aggVOs.get(z); // for(int z=0; z<aggVOs.size(); z++) {
PickmHeadVO pickmHeadVO = aggPickmVO.getParentVO(); // AggPickmVO aggPickmVO = aggVOs.get(z);
Integer fbillstatus = pickmHeadVO.getFbillstatus(); // PickmHeadVO pickmHeadVO = aggPickmVO.getParentVO();
//已经位完工态的备料计划不修改 // Integer fbillstatus = pickmHeadVO.getFbillstatus();
if(fbillstatus != 2){ // //已经位完工态的备料计划不修改
aggVOsArr[z] =aggVOs.get(z); // if(fbillstatus != 2){
flag = true; // aggVOsArr[z] =aggVOs.get(z);
} // flag = true;
} // }
if(flag) { // }
//备料计划完工 // if(flag) {
IPickmMaintainService ipickmMaintainService = NCLocator.getInstance().lookup(IPickmMaintainService.class); // //备料计划完工
ipickmMaintainService.finishPickm(aggVOsArr); // IPickmMaintainService ipickmMaintainService = NCLocator.getInstance().lookup(IPickmMaintainService.class);
} // ipickmMaintainService.finishPickm(aggVOsArr);
}catch(BusinessException e) { // }
// TODO Auto-generated catch block // }catch(BusinessException e) {
e.printStackTrace(); // // TODO Auto-generated catch block
} // e.printStackTrace();
// }
} //
} // }
// }
} }
} }

View File

@ -5,8 +5,25 @@
package nc.bs.mmpac.wr.bp; package nc.bs.mmpac.wr.bp;
import java.util.HashMap;
import java.util.Map;
import nc.bs.mmpac.wr.plugin.WrPluginPoint; import nc.bs.mmpac.wr.plugin.WrPluginPoint;
import nc.bs.mmpac.wr.rule.*; import nc.bs.mmpac.wr.rule.WrAuditAndApplyCheckRule;
import nc.bs.mmpac.wr.rule.WrAuditAndProdInRule;
import nc.bs.mmpac.wr.rule.WrCheckMaterialPermissionRule;
import nc.bs.mmpac.wr.rule.WrCheckMoIsCloseRule;
import nc.bs.mmpac.wr.rule.WrCheckTranstypeCodeRule;
import nc.bs.mmpac.wr.rule.WrClearNullBodyRule;
import nc.bs.mmpac.wr.rule.WrFillInsertDataRule;
import nc.bs.mmpac.wr.rule.WrHeadNotNullRule;
import nc.bs.mmpac.wr.rule.WrIsSaveAndApproveRule;
import nc.bs.mmpac.wr.rule.WrNoneMainProductBomCheckRule;
import nc.bs.mmpac.wr.rule.WrPickFilterRule;
import nc.bs.mmpac.wr.rule.WrQualityFilterRule;
import nc.bs.mmpac.wr.rule.WrRowNoRule;
import nc.bs.mmpac.wr.rule.WrSetDefaultValueWhenInsertRule;
import nc.bs.mmpac.wr.rule.WrSetItemDefaultValueRule;
import nc.bs.mmpac.wr.rule.WrSetQualityVODefaultValueRule;
import nc.bs.mmpac.wr.rule.batch.WrCreateBatProdRule; import nc.bs.mmpac.wr.rule.batch.WrCreateBatProdRule;
import nc.bs.mmpac.wr.rule.batch.WrCreateBatchCodeRule; import nc.bs.mmpac.wr.rule.batch.WrCreateBatchCodeRule;
import nc.bs.mmpac.wr.rule.check.WrNullRule; import nc.bs.mmpac.wr.rule.check.WrNullRule;
@ -17,7 +34,12 @@ import nc.bs.mmpac.wr.rule.mo.WrMORewriteRule;
import nc.bs.mmpac.wr.rule.output.WrOutputNotNullRule; import nc.bs.mmpac.wr.rule.output.WrOutputNotNullRule;
import nc.bs.mmpac.wr.rule.pick.WrPickNotNullRule; import nc.bs.mmpac.wr.rule.pick.WrPickNotNullRule;
import nc.bs.mmpac.wr.rule.putplan.WrInsertRewriteWrNumForPutPlanRule; import nc.bs.mmpac.wr.rule.putplan.WrInsertRewriteWrNumForPutPlanRule;
import nc.bs.mmpac.wr.rule.serialno.*; import nc.bs.mmpac.wr.rule.serialno.WrMoSerialNoMarkIRule;
import nc.bs.mmpac.wr.rule.serialno.WrSerialNoAutoCreateBeforeRule;
import nc.bs.mmpac.wr.rule.serialno.WrSerialNoCheckCodeRepeat;
import nc.bs.mmpac.wr.rule.serialno.WrSerialNoCheckRule;
import nc.bs.mmpac.wr.rule.serialno.WrSerialNoSaveRule;
import nc.bs.mmpac.wr.rule.serialno.WrSnSynToQualtiyRule;
import nc.bs.mmpub.rule.MMATOMaterialCheckRule; import nc.bs.mmpub.rule.MMATOMaterialCheckRule;
import nc.bs.mmpub.rule.MMAutoMaterialAssignRule; import nc.bs.mmpub.rule.MMAutoMaterialAssignRule;
import nc.bs.pubapp.pub.rule.FieldLengthCheckRule; import nc.bs.pubapp.pub.rule.FieldLengthCheckRule;
@ -30,10 +52,11 @@ import nc.util.mmf.busi.rule.MMBillCodeCheckAndTrantypeRule;
import nc.util.mmf.busi.rule.MMCheckMaterialVirtualRule; import nc.util.mmf.busi.rule.MMCheckMaterialVirtualRule;
import nc.util.mmf.busi.rule.MMCreateBillcodeAndTrantypecodeRule; import nc.util.mmf.busi.rule.MMCreateBillcodeAndTrantypecodeRule;
import nc.util.mmf.framework.gc.GCInsertBPTemplate; import nc.util.mmf.framework.gc.GCInsertBPTemplate;
import nc.vo.mmpac.wr.entity.*; import nc.vo.mmpac.wr.entity.AggWrVO;
import nc.vo.mmpac.wr.entity.WrItemVO;
import java.util.HashMap; import nc.vo.mmpac.wr.entity.WrPickVO;
import java.util.Map; import nc.vo.mmpac.wr.entity.WrQualityVO;
import nc.vo.mmpac.wr.entity.WrVO;
public class WrInsertBP { public class WrInsertBP {
private boolean isOnlyInsert = false; private boolean isOnlyInsert = false;
@ -130,10 +153,10 @@ public class WrInsertBP {
processor.addAfterRule(moDiscadNumRewriteRule); processor.addAfterRule(moDiscadNumRewriteRule);
IRule<AggWrVO> snSaveRule = new WrSerialNoSaveRule(); IRule<AggWrVO> snSaveRule = new WrSerialNoSaveRule();
processor.addAfterRule(snSaveRule); processor.addAfterRule(snSaveRule);
/** 同步修改备料计划完成 */ // /** ͬ²½Ð޸ı¸Áϼƻ®Íê³É */
IRule<AggWrVO> pickMFinishRule = new PickMFinishRule(); // IRule<AggWrVO> pickMFinishRule = new PickMFinishRule();
processor.addAfterRule(pickMFinishRule); // processor.addAfterRule(pickMFinishRule);
/** ******************** */ // /** ******************** */
if (!this.isOnlyInsert) { if (!this.isOnlyInsert) {
processor.addAfterRule(new WrIsSaveAndApproveRule()); processor.addAfterRule(new WrIsSaveAndApproveRule());

View File

@ -27,69 +27,69 @@ public class PickMFinishRule extends Object implements IRule<AggWrVO> {
* 业务逻辑 1.根据生产报告子表中生产订单行查看生产订单明细表 2.查看生产订单明细行的状态是否为完工2 * 业务逻辑 1.根据生产报告子表中生产订单行查看生产订单明细表 2.查看生产订单明细行的状态是否为完工2
* 3.若为完工状态则根据生成报告子表中生产订单行查询备料计划 4.修改备料计划为完成状态3 * 3.若为完工状态则根据生成报告子表中生产订单行查询备料计划 4.修改备料计划为完成状态3
*/ */
for (int i = 0; i < vos.length; i++) { // for (int i = 0; i < vos.length; i++) {
AggWrVO vo = vos[i]; // AggWrVO vo = vos[i];
WrItemVO[] items = vo.getChildrenVO(); // WrItemVO[] items = vo.getChildrenVO();
// 循环生产报告子表 // // 循环生产报告子表
for (int j = 0; j < items.length; j++) { // for (int j = 0; j < items.length; j++) {
WrItemVO item = items[j]; // WrItemVO item = items[j];
String cbmobid = item.getCbmobid(); // String cbmobid = item.getCbmobid();
String[] keys = { cbmobid }; // String[] keys = { cbmobid };
// 生产订单行查询 // // 生产订单行查询
PMOItemVO[] pmoItemvos = (new PMOItemVOQueryBP()).getPMOItemVOsByids(keys); // PMOItemVO[] pmoItemvos = (new PMOItemVOQueryBP()).getPMOItemVOsByids(keys);
// 查看生产订单行状态是否为完工2 // // 查看生产订单行状态是否为完工2
if (pmoItemvos.length > 0) { // if (pmoItemvos.length > 0) {
PMOItemVO pmoItem = pmoItemvos[0]; // PMOItemVO pmoItem = pmoItemvos[0];
int fitemStatus = pmoItem.getFitemstatus(); // int fitemStatus = pmoItem.getFitemstatus();
if (fitemStatus != 2) { // if (fitemStatus != 2) {
continue; // continue;
} // }
// 根据生产订单行查询备料计划 // // 根据生产订单行查询备料计划
// BillQuery<AggPickmVO> query = new BillQuery<AggPickmVO>(AggPickmVO.class); //// BillQuery<AggPickmVO> query = new BillQuery<AggPickmVO>(AggPickmVO.class);
// AggPickmVO[] aggVOs = (AggPickmVO[])query.query(keys); //// AggPickmVO[] aggVOs = (AggPickmVO[])query.query(keys);
//
String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cbmobid + "'"; // String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cbmobid + "'";
IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance() // IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance()
.lookup(IMDPersistenceQueryService.class); // .lookup(IMDPersistenceQueryService.class);
// 根据主键查询得到aggvo // // 根据主键查询得到aggvo
try { // try {
@SuppressWarnings("unchecked") // @SuppressWarnings("unchecked")
ArrayList<AggPickmVO> aggVOs = (ArrayList<AggPickmVO>) aggvoQueryService // ArrayList<AggPickmVO> aggVOs = (ArrayList<AggPickmVO>) aggvoQueryService
.queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false); // .queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false);
if (aggVOs.size() <= 0) { // if (aggVOs.size() <= 0) {
continue; // continue;
} // }
// 数组转换 // // 数组转换
AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()]; // AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()];
boolean flag = false; // boolean flag = false;
for (int z = 0; z < aggVOs.size(); z++) { // for (int z = 0; z < aggVOs.size(); z++) {
AggPickmVO aggPickmVO = aggVOs.get(z); // AggPickmVO aggPickmVO = aggVOs.get(z);
PickmHeadVO pickmHeadVO = aggPickmVO.getParentVO(); // PickmHeadVO pickmHeadVO = aggPickmVO.getParentVO();
Integer fbillstatus = pickmHeadVO.getFbillstatus(); // Integer fbillstatus = pickmHeadVO.getFbillstatus();
if (fbillstatus != 2) { // if (fbillstatus != 2) {
aggVOsArr[z] = aggVOs.get(z); // aggVOsArr[z] = aggVOs.get(z);
flag = true; // flag = true;
} // }
//
} // }
if (flag) { // if (flag) {
// 备料计划完工 // // 备料计划完工
IPickmMaintainService ipickmMaintainService = NCLocator.getInstance() // IPickmMaintainService ipickmMaintainService = NCLocator.getInstance()
.lookup(IPickmMaintainService.class); // .lookup(IPickmMaintainService.class);
ipickmMaintainService.finishPickm(aggVOsArr); // ipickmMaintainService.finishPickm(aggVOsArr);
} // }
} catch (BusinessException e) { // } catch (BusinessException e) {
// TODO Auto-generated catch block // // TODO Auto-generated catch block
e.printStackTrace(); // e.printStackTrace();
} // }
//
} // }
//
} // }
} // }
AggWrChangeVO[] aggChangeVOs = WrBusiVOToChangeVO.changeOnlySerialNoVO(vos); // AggWrChangeVO[] aggChangeVOs = WrBusiVOToChangeVO.changeOnlySerialNoVO(vos);
//
WrSerialNoDocInsertControl inSertControl = new WrSerialNoDocInsertControl(); // WrSerialNoDocInsertControl inSertControl = new WrSerialNoDocInsertControl();
inSertControl.process(aggChangeVOs); // inSertControl.process(aggChangeVOs);
} }
} }