质检报告审核增加校验
This commit is contained in:
parent
fb999d54b5
commit
2c040f55fe
|
|
@ -0,0 +1,109 @@
|
||||||
|
package nc.impl.qc.c003.approve.action;
|
||||||
|
|
||||||
|
import com.yonyou.cloud.ncc.plugin.entity.OperationInfo;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import nc.bs.pub.compiler.AbstractCompiler2;
|
||||||
|
import nc.bs.qc.c003.maintain.rule.ApproveEventAfterRule;
|
||||||
|
import nc.bs.qc.c003.maintain.rule.ApproveEventBeforeRule;
|
||||||
|
import nc.bs.qc.c003.maintain.rule.ReportSendMessageWithPlatTemplateRule;
|
||||||
|
import nc.bs.qc.c003.maintain.rule.ReportSendNCCMessageRule;
|
||||||
|
import nc.bs.qc.c003.maintain.rule.UpdateSnDocRule;
|
||||||
|
import nc.bs.qc.c003.plugin.ReportBPPlugInPoint;
|
||||||
|
import nc.bs.scmpub.pf.PfParameterUtil;
|
||||||
|
import nc.bs.scmpub.rule.VOSagaFrozenValidateRule;
|
||||||
|
import nc.impl.pubapp.pattern.data.bill.BillUpdate;
|
||||||
|
import nc.impl.pubapp.pattern.rule.processer.CompareAroundProcesser;
|
||||||
|
import nc.impl.qc.c003.approve.action.rule.*;
|
||||||
|
import nc.itf.qc.c003.compensate.IReportSagasCompensate;
|
||||||
|
import nc.vo.ml.NCLangRes4VoTransl;
|
||||||
|
import nc.vo.pub.lang.UFBoolean;
|
||||||
|
import nc.vo.pubapp.AppContext;
|
||||||
|
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
|
||||||
|
import nc.vo.qc.c003.entity.ReportVO;
|
||||||
|
import nc.vo.qc.c003.rule.Write23WhenAuditRule;
|
||||||
|
import nc.vo.qc.c003.rule.Write4331WhenAuditRule;
|
||||||
|
import nc.vo.qc.c003.rule.Write4ZRuleWhenAuditRule;
|
||||||
|
import nc.vo.qc.c003.rule.WriteMMWhenAuditRule;
|
||||||
|
import nc.vo.qc.pub.enumeration.QCBillStatusEnum;
|
||||||
|
import nc.vo.qc.pub.util.QCSagasUtils;
|
||||||
|
import nc.vo.scmpub.res.billtype.QCBillType;
|
||||||
|
|
||||||
|
public class ReportApproveAction {
|
||||||
|
public ReportApproveAction() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReportVO[] approveReport(ReportVO[] voArray, AbstractCompiler2 script) {
|
||||||
|
PfParameterUtil<ReportVO> util = new PfParameterUtil(script == null ? null : script.getPfParameterVO(), voArray);
|
||||||
|
ReportVO[] originBills = (ReportVO[])util.getOrginBills();
|
||||||
|
ReportVO[] clientBills = (ReportVO[])util.getClientFullInfoBill();
|
||||||
|
CompareAroundProcesser<ReportVO> processer = new CompareAroundProcesser(ReportBPPlugInPoint.ReportApprove);
|
||||||
|
this.addBeforeRule(processer);
|
||||||
|
processer.before(clientBills, null);
|
||||||
|
if (null != script) {
|
||||||
|
try {
|
||||||
|
script.procFlowBacth(script.getPfParameterVO());
|
||||||
|
} catch (Exception e) {
|
||||||
|
ExceptionUtils.wrappException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (script != null && script.getPfParameterVO().m_preValueVos != null) {
|
||||||
|
ReportVO[] appovedVos = (ReportVO[])script.getPfParameterVO().m_preValueVos;
|
||||||
|
|
||||||
|
for(ReportVO vo : appovedVos) {
|
||||||
|
vo.getHVO().setApprover(AppContext.getInstance().getPkUser());
|
||||||
|
vo.getHVO().setTaudittime(AppContext.getInstance().getBusiDate());
|
||||||
|
vo.getParentVO().setStatus(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
BillUpdate<ReportVO> update = new BillUpdate();
|
||||||
|
clientBills = (ReportVO[])update.update(appovedVos, originBills);
|
||||||
|
QCSagasUtils.frozenAndAddSaga(voArray, QCBillType.ReportBill.getCode(), "1", (OperationInfo)null);
|
||||||
|
Map<String, Serializable> paramMap = new HashMap();
|
||||||
|
paramMap.put("actionname", "approve_C003_mmsfc");
|
||||||
|
paramMap.put("hid", originBills[0].getHVO().getPrimaryKey());
|
||||||
|
paramMap.put("reportapprover", originBills[0].getHVO().getApprover());
|
||||||
|
paramMap.put("reporttaudittime", originBills[0].getHVO().getTaudittime());
|
||||||
|
paramMap.put("reportfbillstatus", originBills[0].getHVO().getFbillstatus());
|
||||||
|
QCSagasUtils.compensate(paramMap, IReportSagasCompensate.class);
|
||||||
|
this.addAfterRule(processer, clientBills);
|
||||||
|
processer.after(clientBills, null);
|
||||||
|
return clientBills;
|
||||||
|
} else {
|
||||||
|
String msg = NCLangRes4VoTransl.getNCLangRes().getStrByID("c010003_0", "0c010003-0062");
|
||||||
|
ExceptionUtils.wrappBusinessException(msg);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addAfterRule(CompareAroundProcesser<ReportVO> pc, ReportVO[] bills) {
|
||||||
|
pc.addAfterRule(new WriteC001WhenAuditRule(UFBoolean.TRUE));
|
||||||
|
Integer status = bills[0].getHVO().getFbillstatus();
|
||||||
|
if (QCBillStatusEnum.APPROVE.value().equals(status)) {
|
||||||
|
pc.addAfterRule(new Write23WhenAuditRule(UFBoolean.TRUE));
|
||||||
|
pc.addAfterRule(new Write4331WhenAuditRule(UFBoolean.TRUE));
|
||||||
|
pc.addAfterRule(new Write4ZRuleWhenAuditRule(UFBoolean.TRUE));
|
||||||
|
pc.addAfterRule(new WriteMMWhenAuditRule(UFBoolean.TRUE));
|
||||||
|
pc.addAfterRule(new WriteC005WhenAuditRule(UFBoolean.TRUE));
|
||||||
|
pc.addAfterRule(new WriteContinueBatchWhenAuditRule(UFBoolean.TRUE));
|
||||||
|
pc.addAfterRule(new WriteICBatchDocWhenAuditRule(UFBoolean.TRUE));
|
||||||
|
pc.addAfterRule(new Write55D2WhenAuditRule(UFBoolean.TRUE));
|
||||||
|
pc.addAfterRule(new ReportSendMessageWithPlatTemplateRule());
|
||||||
|
pc.addAfterRule(new ReportSendNCCMessageRule());
|
||||||
|
pc.addAfterRule(new UpdateSnDocRule(UFBoolean.TRUE));
|
||||||
|
pc.addAfterRule(new ApproveEventAfterRule());
|
||||||
|
pc.addAfterRule(new CreateStockStateChangeBill());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addBeforeRule(CompareAroundProcesser<ReportVO> pc) {
|
||||||
|
pc.addBeforeRule(new VOSagaFrozenValidateRule(true));
|
||||||
|
pc.addBeforeRule(new ChkCanApproveRule());
|
||||||
|
pc.addBeforeRule(new ApproveEventBeforeRule());
|
||||||
|
|
||||||
|
pc.addBeforeRule(new CheckQMSApproveRule());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package nc.impl.qc.c003.approve.action.rule;
|
||||||
|
|
||||||
|
|
||||||
|
import nc.bs.dao.BaseDAO;
|
||||||
|
import nc.bs.dao.DAOException;
|
||||||
|
import nc.impl.pubapp.pattern.rule.ICompareRule;
|
||||||
|
import nc.jdbc.framework.processor.ColumnProcessor;
|
||||||
|
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
|
||||||
|
import nc.vo.qc.c003.entity.ReportHeaderVO;
|
||||||
|
import nc.vo.qc.c003.entity.ReportItemVO;
|
||||||
|
import nc.vo.qc.c003.entity.ReportVO;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class CheckQMSApproveRule implements ICompareRule<ReportVO> {
|
||||||
|
|
||||||
|
public CheckQMSApproveRule() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void process(ReportVO[] vos, ReportVO[] originVOs) {
|
||||||
|
if (vos == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (ReportVO vo : vos) {
|
||||||
|
|
||||||
|
ReportHeaderVO hvo = vo.getHVO();
|
||||||
|
for (ReportItemVO itemVO : vo.getBVO()) {
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
String countSql = "SELECT vbdef32 from po_arriveorder_b WHERE pk_arriveorder_b= '" + itemVO.getCfirstbid() + "'";
|
||||||
|
String vbdef32 = (String) new BaseDAO().executeQuery(countSql, new ColumnProcessor());
|
||||||
|
if (null !=vbdef32 && "Y".equals(vbdef32)) {
|
||||||
|
if (!"Y".equals(hvo.getVdef10())) {
|
||||||
|
ExceptionUtils.wrappBusinessException("QMSδ»Ø´«¼ìÑé½á¹ûÇëÎðÌá½»");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (DAOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue