请购单和流程生产订单删除后回写备料计划
This commit is contained in:
parent
3c12653d77
commit
b884d6077f
|
@ -9,14 +9,20 @@ import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import nc.bs.dao.BaseDAO;
|
||||||
import nc.bs.framework.common.InvocationInfoProxy;
|
import nc.bs.framework.common.InvocationInfoProxy;
|
||||||
import nc.itf.mmpac.pickm.IPickmBusinessService;
|
import nc.itf.mmpac.pickm.IPickmBusinessService;
|
||||||
|
import nc.jdbc.framework.processor.ColumnProcessor;
|
||||||
|
import nc.jdbc.framework.processor.MapProcessor;
|
||||||
import nc.pubitf.mmpac.pickm.mo.IPickmQueryServiceForMO;
|
import nc.pubitf.mmpac.pickm.mo.IPickmQueryServiceForMO;
|
||||||
import nc.util.mmf.framework.base.MMValueCheck;
|
import nc.util.mmf.framework.base.MMValueCheck;
|
||||||
import nc.vo.ml.NCLangRes4VoTransl;
|
import nc.vo.ml.NCLangRes4VoTransl;
|
||||||
import nc.vo.mmpac.pickm.entity.AggPickmVO;
|
import nc.vo.mmpac.pickm.entity.AggPickmVO;
|
||||||
import nc.vo.mmpac.pickm.entity.PickmItemVO;
|
import nc.vo.mmpac.pickm.entity.PickmItemVO;
|
||||||
import nc.vo.mmpac.pickm.param.PickmTransParam;
|
import nc.vo.mmpac.pickm.param.PickmTransParam;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pub.lang.UFDate;
|
||||||
import nc.vo.pubapp.res.NCModule;
|
import nc.vo.pubapp.res.NCModule;
|
||||||
import nccloud.dto.mmpac.pickm.pub.entity.PickmQueryInfoDTO;
|
import nccloud.dto.mmpac.pickm.pub.entity.PickmQueryInfoDTO;
|
||||||
import nccloud.framework.core.exception.ExceptionUtils;
|
import nccloud.framework.core.exception.ExceptionUtils;
|
||||||
|
@ -89,6 +95,22 @@ public class PickmDeliverAction implements ICommonAction {
|
||||||
|
|
||||||
for(AggPickmVO agg : aggVOs) {
|
for(AggPickmVO agg : aggVOs) {
|
||||||
for(PickmItemVO item : (PickmItemVO[])agg.getChildrenVO()) {
|
for(PickmItemVO item : (PickmItemVO[])agg.getChildrenVO()) {
|
||||||
|
// 流程生产订单明细表
|
||||||
|
String id=agg.getParentVO().getVfirstmorowid();
|
||||||
|
if(null != id &&!id.isEmpty()){
|
||||||
|
String sql = "SELECT m.twillendtime from mm_mo m "+
|
||||||
|
"WHERE\n" +
|
||||||
|
"\tm.cmoid = '"+id+"' ";
|
||||||
|
BaseDAO dao = new BaseDAO();
|
||||||
|
String data =(String) dao.executeQuery(sql, new ColumnProcessor());
|
||||||
|
|
||||||
|
UFDate now=new UFDate();
|
||||||
|
// 领料校验 当前时间必须在计划结束时间前七天
|
||||||
|
if(null!=data && (now.compareTo(new UFDate(data)) >0 || now.getDateAfter(7).compareTo(new UFDate(data)) >0)){
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
pks.add(item.getCpickm_bid());
|
pks.add(item.getCpickm_bid());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -102,6 +124,9 @@ public class PickmDeliverAction implements ICommonAction {
|
||||||
deliverAppcode = "400802808";
|
deliverAppcode = "400802808";
|
||||||
deliverPagecode = "5008010501";
|
deliverPagecode = "5008010501";
|
||||||
}
|
}
|
||||||
|
if(pks.isEmpty()){
|
||||||
|
pks.add("");
|
||||||
|
}
|
||||||
|
|
||||||
Map<String, Object> returnMap = new HashMap();
|
Map<String, Object> returnMap = new HashMap();
|
||||||
returnMap.put("pks", pks.toArray(new String[0]));
|
returnMap.put("pks", pks.toArray(new String[0]));
|
||||||
|
|
|
@ -0,0 +1,102 @@
|
||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package nc.bs.mmpac.pmo.pac0002.bp;
|
||||||
|
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.bp.rule.WithUpdatePickmRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.PMOATPUpdateWithParaRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.PMODeleteAutoDeleteMosRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.PMODeleteAutoDeletePutPlanRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.PMODeleteBatchCodeRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.PMODeletePickmRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.PMODeleteSNRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.PMOMarkWrSNWhenDeleteRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckDeleteHaveSubRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckDeleteStatusRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckSnBindRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckTurnedDeleteRule;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteDeleteNum4INVP;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteDeleteNum4MPS;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteDeleteNum4PMO;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteDeleteNum4PSCRecive;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteDeleteNum4PSM;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteDeleteNum4Renovate;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteDeleteNum4SFC;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteDeleteNum4SO;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteDeleteNum4TO;
|
||||||
|
import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule;
|
||||||
|
import nc.bs.pubapp.pub.rule.ReturnBillCodeRule;
|
||||||
|
import nc.impl.pubapp.pattern.rule.IRule;
|
||||||
|
import nc.impl.pubapp.pattern.rule.processer.AroundProcesser;
|
||||||
|
import nc.util.mmf.framework.gc.GCDeleteBPTemplate;
|
||||||
|
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
||||||
|
import nc.vo.mmpac.pmo.pac0002.util.PmoSagaUtil;
|
||||||
|
|
||||||
|
public class PMODeleteBP {
|
||||||
|
public PMODeleteBP() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void delete(PMOAggVO[] bills) {
|
||||||
|
GCDeleteBPTemplate<PMOAggVO> bp = new GCDeleteBPTemplate(PMOPluginPoint.DELETE);
|
||||||
|
IRule<PMOAggVO> checkFrozenRule = new MMVOSagaFrozenValidateRule(true);
|
||||||
|
checkFrozenRule.process(bills);
|
||||||
|
PmoSagaUtil.addSagaAndCompensate4Delete(bills);
|
||||||
|
this.addBeforeRule(bp.getAroundProcesser());
|
||||||
|
this.addAfterRule(bp.getAroundProcesser());
|
||||||
|
bp.delete(bills);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addBeforeRule(AroundProcesser<PMOAggVO> processer) {
|
||||||
|
IRule<PMOAggVO> statusRule = new PMOCheckDeleteStatusRule();
|
||||||
|
processer.addBeforeRule(statusRule);
|
||||||
|
IRule<PMOAggVO> checkturnrule = new PMOCheckTurnedDeleteRule();
|
||||||
|
processer.addBeforeRule(checkturnrule);
|
||||||
|
IRule<PMOAggVO> snBindRule = new PMOCheckSnBindRule();
|
||||||
|
processer.addBeforeRule(snBindRule);
|
||||||
|
IRule<PMOAggVO> checkFactoryrule = new PMOATPUpdateWithParaRule(true, "55A2");
|
||||||
|
processer.addBeforeRule(checkFactoryrule);
|
||||||
|
IRule<PMOAggVO> rewritePSCRecive = new RewriteDeleteNum4PSCRecive();
|
||||||
|
processer.addBeforeRule(rewritePSCRecive);
|
||||||
|
IRule<PMOAggVO> rewritewr = new RewriteDeleteNum4Renovate();
|
||||||
|
processer.addBeforeRule(rewritewr);
|
||||||
|
IRule<PMOAggVO> rewriteso = new RewriteDeleteNum4SO();
|
||||||
|
processer.addBeforeRule(rewriteso);
|
||||||
|
IRule<PMOAggVO> rewritepsm = new RewriteDeleteNum4PSM();
|
||||||
|
processer.addBeforeRule(rewritepsm);
|
||||||
|
IRule<PMOAggVO> rewritepo = new RewriteDeleteNum4MPS();
|
||||||
|
processer.addBeforeRule(rewritepo);
|
||||||
|
IRule<PMOAggVO> rewriteinvp = new RewriteDeleteNum4INVP();
|
||||||
|
processer.addBeforeRule(rewriteinvp);
|
||||||
|
IRule<PMOAggVO> rewriteto = new RewriteDeleteNum4TO();
|
||||||
|
processer.addBeforeRule(rewriteto);
|
||||||
|
IRule<PMOAggVO> rewritesfc = new RewriteDeleteNum4SFC();
|
||||||
|
processer.addBeforeRule(rewritesfc);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addAfterRule(AroundProcesser<PMOAggVO> processer) {
|
||||||
|
IRule<PMOAggVO> checksubbill = new PMOCheckDeleteHaveSubRule();
|
||||||
|
processer.addAfterRule(checksubbill);
|
||||||
|
IRule<PMOAggVO> pmorule = new RewriteDeleteNum4PMO();
|
||||||
|
processer.addAfterRule(pmorule);
|
||||||
|
IRule<PMOAggVO> deletePickmRule = new PMODeletePickmRule();
|
||||||
|
processer.addAfterRule(deletePickmRule);
|
||||||
|
IRule<PMOAggVO> deletebatchbill = new PMODeleteBatchCodeRule();
|
||||||
|
processer.addAfterRule(deletebatchbill);
|
||||||
|
IRule<PMOAggVO> autoDeletePutPlan = new PMODeleteAutoDeletePutPlanRule();
|
||||||
|
processer.addAfterRule(autoDeletePutPlan);
|
||||||
|
IRule<PMOAggVO> autoDeleteMos = new PMODeleteAutoDeleteMosRule();
|
||||||
|
processer.addAfterRule(autoDeleteMos);
|
||||||
|
IRule<PMOAggVO> snDeleteRule = new PMODeleteSNRule();
|
||||||
|
processer.addAfterRule(snDeleteRule);
|
||||||
|
IRule<PMOAggVO> wrMarkRule = new PMOMarkWrSNWhenDeleteRule();
|
||||||
|
processer.addAfterRule(wrMarkRule);
|
||||||
|
IRule<PMOAggVO> checkFactoryrule = new PMOATPUpdateWithParaRule(false, "55A2");
|
||||||
|
processer.addAfterRule(checkFactoryrule);
|
||||||
|
IRule<PMOAggVO> billcoderule = new ReturnBillCodeRule("55A2", "vbillcode", "pk_group", "pk_org");
|
||||||
|
processer.addAfterRule(billcoderule);
|
||||||
|
processer.addAfterRule(new WithUpdatePickmRule());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package nc.bs.mmpac.pmo.pac0002.bp.rule;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import nc.bs.dao.BaseDAO;
|
||||||
|
import nc.bs.dao.DAOException;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.bp.service.PMOSNServiceAdapter;
|
||||||
|
import nc.bs.mmpac.pmo.pac0002.bp.util.PMOBPSNUtil;
|
||||||
|
import nc.impl.pubapp.pattern.rule.IRule;
|
||||||
|
import nc.util.mmf.framework.base.MMValueCheck;
|
||||||
|
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
||||||
|
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
|
||||||
|
import nc.vo.mmpac.wr.param.WrSerialCodeMarkParamForMO;
|
||||||
|
import nc.vo.pu.m20.entity.PraybillItemVO;
|
||||||
|
import nc.vo.pu.m20.entity.PraybillVO;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
|
||||||
|
import nccloud.commons.lang.ArrayUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流程生成订单删除时回写备料计划是否下达字段
|
||||||
|
*/
|
||||||
|
public class WithUpdatePickmRule implements IRule<PMOAggVO> {
|
||||||
|
public WithUpdatePickmRule() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void process(PMOAggVO[] vos) {
|
||||||
|
if (!ArrayUtils.isEmpty(vos)) {
|
||||||
|
try {
|
||||||
|
List<String> pk= new ArrayList<String>();
|
||||||
|
for (PMOAggVO vo : vos) {
|
||||||
|
PMOItemVO[] praybillItemVOS=vo.getChildrenVO();
|
||||||
|
for (PMOItemVO praybillItemVO : praybillItemVOS) {
|
||||||
|
if("55A3".equals(praybillItemVO.getVsrctype())){
|
||||||
|
pk.add(praybillItemVO.getVsrcbid());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!pk.isEmpty()){
|
||||||
|
//回写是否下方为是
|
||||||
|
updetaPmo(pk);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
ExceptionUtils.wrappException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void updetaPmo(List<String> arrayList) throws DAOException {
|
||||||
|
String result = "";
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
if (arrayList.size() > 1) {
|
||||||
|
for (int i = 0; i < arrayList.size(); i++) {
|
||||||
|
|
||||||
|
|
||||||
|
sb.append("'").append(arrayList.get(i)).append("'");
|
||||||
|
if (i < arrayList.size() - 1) {
|
||||||
|
sb.append(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result = sb.toString();
|
||||||
|
} else {
|
||||||
|
result = "'" + (String) arrayList.get(0) + "'";
|
||||||
|
}
|
||||||
|
String sql = " update mm_pickm_b set vbdef13='N' where mm_pickm_b.cpickm_bid in(" + result + ")";
|
||||||
|
|
||||||
|
BaseDAO dao = new BaseDAO();
|
||||||
|
dao.executeUpdate(sql);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package nc.bs.pu.m20.maintain;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import nc.bs.pu.m20.maintain.rule.ATPAfterUpdateRule;
|
||||||
|
import nc.bs.pu.m20.maintain.rule.ATPBeforeUpdateRule;
|
||||||
|
import nc.bs.pu.m20.maintain.rule.ReturnBillCodeRule;
|
||||||
|
import nc.bs.pu.m20.maintain.rule.delete.*;
|
||||||
|
import nc.bs.pu.m20.plugin.PraybillPluginPoint;
|
||||||
|
import nc.bs.scmpub.rule.VOSagaFrozenValidateRule;
|
||||||
|
import nc.impl.pubapp.pattern.data.bill.BillDelete;
|
||||||
|
import nc.impl.pubapp.pattern.rule.processer.CompareAroundProcesser;
|
||||||
|
import nc.itf.pu.m20.compenstate.IBuyingreqM4A08SagasCompensate;
|
||||||
|
import nc.vo.pu.m20.entity.PraybillItemVO;
|
||||||
|
import nc.vo.pu.m20.entity.PraybillVO;
|
||||||
|
import nc.vo.pu.m20.enumeration.EnumOperate;
|
||||||
|
import nc.vo.pu.pub.rule.WriteBack422xRule;
|
||||||
|
import nc.vo.pu.pub.rule.WriteBackPIMRule;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
|
||||||
|
import nc.vo.scmpub.res.billtype.POBillType;
|
||||||
|
import nccloud.commons.lang.ArrayUtils;
|
||||||
|
import nccloud.pubitf.pu.pub.util.PuSagasUtil;
|
||||||
|
|
||||||
|
public class PraybillDeleteBP {
|
||||||
|
public PraybillDeleteBP() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void delete(PraybillVO[] vos) {
|
||||||
|
CompareAroundProcesser<PraybillVO> processer = new CompareAroundProcesser(PraybillPluginPoint.DELETE);
|
||||||
|
this.addBeforeRule(processer);
|
||||||
|
this.addAfterRule(processer);
|
||||||
|
processer.before(vos, vos);
|
||||||
|
this.addSagaAndCompensate(vos);
|
||||||
|
BillDelete<PraybillVO> bo = new BillDelete();
|
||||||
|
bo.delete(vos);
|
||||||
|
processer.after(vos, vos);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addAfterRule(CompareAroundProcesser<PraybillVO> processer) {
|
||||||
|
processer.addAfterRule(new DelOldVersionRule());
|
||||||
|
processer.addAfterRule(new PraybillWriteBackSourceRule(EnumOperate.DELETE));
|
||||||
|
processer.addAfterRule(new ATPAfterUpdateRule());
|
||||||
|
processer.addAfterRule(new ReturnBillCodeRule());
|
||||||
|
processer.addAfterRule(new WriteBackPIMRule(POBillType.PrayBill.getCode()));
|
||||||
|
processer.addAfterRule(new WriteBack422xRule(POBillType.PrayBill.getCode()));
|
||||||
|
processer.addAfterRule(new DeleteAfterEventRule());
|
||||||
|
|
||||||
|
processer.addAfterRule(new UpdatePickmRule());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addBeforeRule(CompareAroundProcesser<PraybillVO> processer) {
|
||||||
|
processer.addBeforeRule(new VOSagaFrozenValidateRule(true));
|
||||||
|
processer.addBeforeFinalRule(new BillStatusRule());
|
||||||
|
processer.addBeforeFinalRule(new CheckSrcRule());
|
||||||
|
processer.addBeforeRule(new ATPBeforeUpdateRule());
|
||||||
|
processer.addBeforeRule(new DeleteBeforeEventRule());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addSagaAndCompensate(PraybillVO[] vos) {
|
||||||
|
try {
|
||||||
|
PuSagasUtil.frozenAndAddSaga(vos, POBillType.PrayBill.getCode());
|
||||||
|
List<String> hList = new ArrayList();
|
||||||
|
List<String> bList = new ArrayList();
|
||||||
|
|
||||||
|
for(PraybillVO praybillVO : vos) {
|
||||||
|
PraybillItemVO[] praybillItemVOs = praybillVO.getBVO();
|
||||||
|
if (!ArrayUtils.isEmpty(praybillItemVOs)) {
|
||||||
|
hList.add(praybillVO.getHVO().getPk_praybill());
|
||||||
|
|
||||||
|
for(PraybillItemVO praybillItemVO : praybillItemVOs) {
|
||||||
|
bList.add(praybillItemVO.getPk_praybill_b());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Serializable> map = new HashMap();
|
||||||
|
map.put("opertaion", "praybillDelete");
|
||||||
|
map.put("pk_praybill_b", bList.toArray(new String[bList.size()]));
|
||||||
|
map.put("pk_praybill", hList.toArray(new String[hList.size()]));
|
||||||
|
PuSagasUtil.compensate(IBuyingreqM4A08SagasCompensate.class, map);
|
||||||
|
} catch (BusinessException e) {
|
||||||
|
ExceptionUtils.wrappException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package nc.bs.pu.m20.maintain.rule.delete;
|
||||||
|
|
||||||
|
import nc.bs.businessevent.BusinessEvent;
|
||||||
|
import nc.bs.businessevent.EventDispatcher;
|
||||||
|
import nc.bs.dao.BaseDAO;
|
||||||
|
import nc.bs.dao.DAOException;
|
||||||
|
import nc.impl.pubapp.pattern.rule.IRule;
|
||||||
|
import nc.vo.pu.m20.entity.PraybillItemVO;
|
||||||
|
import nc.vo.pu.m20.entity.PraybillVO;
|
||||||
|
import nc.vo.pu.pub.constant.PUMDValue;
|
||||||
|
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
|
||||||
|
import nccloud.commons.lang.ArrayUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 请购单删除时回写备料计划是否下达字段
|
||||||
|
*/
|
||||||
|
public class UpdatePickmRule implements IRule<PraybillVO> {
|
||||||
|
public UpdatePickmRule() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void process(PraybillVO[] vos) {
|
||||||
|
if (!ArrayUtils.isEmpty(vos)) {
|
||||||
|
try {
|
||||||
|
List<String> pk= new ArrayList<String>();
|
||||||
|
for (PraybillVO vo : vos) {
|
||||||
|
PraybillItemVO[] praybillItemVOS=vo.getBVO();
|
||||||
|
for (PraybillItemVO praybillItemVO : praybillItemVOS) {
|
||||||
|
if("55A3".equals(praybillItemVO.getCsourcetypecode())){
|
||||||
|
pk.add(praybillItemVO.getCsourcebid());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!pk.isEmpty()){
|
||||||
|
//回写是否下方为是
|
||||||
|
updetaPmo(pk);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
ExceptionUtils.wrappException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void updetaPmo(List<String> arrayList) throws DAOException {
|
||||||
|
String result = "";
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
if (arrayList.size() > 1) {
|
||||||
|
for (int i = 0; i < arrayList.size(); i++) {
|
||||||
|
|
||||||
|
|
||||||
|
sb.append("'").append(arrayList.get(i)).append("'");
|
||||||
|
if (i < arrayList.size() - 1) {
|
||||||
|
sb.append(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result = sb.toString();
|
||||||
|
} else {
|
||||||
|
result = "'" + (String) arrayList.get(0) + "'";
|
||||||
|
}
|
||||||
|
String sql = " update mm_pickm_b set vbdef13='N' where mm_pickm_b.cpickm_bid in(" + result + ")";
|
||||||
|
|
||||||
|
BaseDAO dao = new BaseDAO();
|
||||||
|
dao.executeUpdate(sql);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue