From 7c67cedd356744a102aac28aa7ce33b3f8af1ae0 Mon Sep 17 00:00:00 2001 From: mzr Date: Thu, 23 Oct 2025 14:53:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=B1=E5=8F=98-=E8=B4=A8=E6=A3=80=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E6=94=B6=E5=9B=9E=E6=A0=A1=E9=AA=8C=E5=90=AF=E6=BA=90?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=B7=B2=E5=9B=9E=E4=BC=A0=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../approve/action/ReportUnApproveAction.java | 128 ++++++++++++++++++ .../action/rule/CheckQMSUnApproveRule.java | 26 ++++ .../listener/MaterialToJmQmsListener.java | 2 +- 3 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 qc/src/private/nc/impl/qc/c003/approve/action/ReportUnApproveAction.java create mode 100644 qc/src/private/nc/impl/qc/c003/approve/action/rule/CheckQMSUnApproveRule.java diff --git a/qc/src/private/nc/impl/qc/c003/approve/action/ReportUnApproveAction.java b/qc/src/private/nc/impl/qc/c003/approve/action/ReportUnApproveAction.java new file mode 100644 index 00000000..58ca4706 --- /dev/null +++ b/qc/src/private/nc/impl/qc/c003/approve/action/ReportUnApproveAction.java @@ -0,0 +1,128 @@ +package nc.impl.qc.c003.approve.action; + +import nc.bs.pub.compiler.AbstractCompiler2; +import nc.bs.qc.c003.maintain.rule.DeleteReportMessageRule; +import nc.bs.qc.c003.maintain.rule.UnApproveEventAfterRule; +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.BillQuery; +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.vo.ml.NCLangRes4VoTransl; +import nc.vo.pub.lang.UFBoolean; +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.WriteMMWhenAuditRule; +import nc.vo.qc.pub.enumeration.QCBillStatusEnum; +import nc.vo.qc.pub.util.QCSagasUtils; +import nc.vo.qc.pub.util.QCVOUtil; +import nc.vo.scmpub.res.billtype.QCBillType; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + + +public class ReportUnApproveAction { + public ReportVO[] unApproveReport(ReportVO[] voArray, AbstractCompiler2 script) { + PfParameterUtil util = new PfParameterUtil((script == null) ? null : script.getPfParameterVO(), voArray); + ReportVO[] originBills = (ReportVO[]) util.getOrginBills(); + ReportVO[] clientBills = (ReportVO[]) util.getClientFullInfoBill(); + + CompareAroundProcesser processer = new CompareAroundProcesser(ReportBPPlugInPoint.ReportUnApprove); + + + addBeforeRule(processer); + processer.before(clientBills, null); + + + if (null != script) { + try { + script.procUnApproveFlow(script.getPfParameterVO()); + } catch (Exception e) { + ExceptionUtils.wrappException(e); + } + } + + if (script == null || (script.getPfParameterVO()).m_preValueVos == null) { + + String msg = NCLangRes4VoTransl.getNCLangRes().getStrByID("c010003_0", "0c010003-0063"); + + ExceptionUtils.wrappBusinessException(msg); + return null; + } + + ReportVO[] unappovedVos = (ReportVO[]) (script.getPfParameterVO()).m_preValueVos; + + for (ReportVO vo : unappovedVos) { + + + vo.getParentVO().setStatus(1); + } + BillUpdate update = new BillUpdate(); + clientBills = (ReportVO[]) update.update(unappovedVos, originBills); + + + QCSagasUtils.frozenAndAddSaga(voArray, QCBillType.ReportBill.getCode(), "1", null); + Map paramMap = new HashMap(); + paramMap.put("actionname", "unapprove_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, nc.itf.qc.c003.compensate.IReportSagasCompensate.class); + + + addAfterRule(processer, clientBills); + processer.after(clientBills, null); + + + BillQuery query = new BillQuery(ReportVO.class); + return (ReportVO[]) query.query(QCVOUtil.getPrimaryKeys(clientBills)); + } + + + private void addAfterRule(CompareAroundProcesser pc, ReportVO[] bills) { + Integer status = bills[0].getHVO().getFbillstatus(); + if (QCBillStatusEnum.FREE.value().equals(status)) { + pc.addAfterRule(new WriteC001WhenAuditRule(UFBoolean.FALSE)); + } + + pc.addAfterRule(new Write23WhenAuditRule(UFBoolean.FALSE)); + + pc.addAfterRule(new Write4331WhenAuditRule(UFBoolean.FALSE)); + + pc.addAfterRule(new WriteContinueBatchWhenAuditRule(UFBoolean.FALSE)); + + pc.addAfterRule(new WriteMMWhenAuditRule(UFBoolean.FALSE)); + + pc.addAfterRule(new WriteC005WhenAuditRule(UFBoolean.FALSE)); + + pc.addAfterRule(new WriteICBatchDocWhenAuditRule(UFBoolean.FALSE)); + + pc.addAfterRule(new Write55D2WhenAuditRule(UFBoolean.FALSE)); + + + pc.addAfterRule(new DeleteReportMessageRule()); + + pc.addAfterRule(new UnApproveEventAfterRule()); + + pc.addAfterRule(new UpdateSnDocRule(UFBoolean.FALSE)); + } + + + private void addBeforeRule(CompareAroundProcesser processer) { + processer.addBeforeRule(new VOSagaFrozenValidateRule(true)); + + processer.addBeforeRule(new ChkCanUnApproveRule()); + processer.addBeforeRule(new DeleteStockStateChangeBill()); + + processer.addBeforeRule(new DeleteNCCMessageRule()); + processer.addBeforeRule(new CheckQMSUnApproveRule()); + } +} \ No newline at end of file diff --git a/qc/src/private/nc/impl/qc/c003/approve/action/rule/CheckQMSUnApproveRule.java b/qc/src/private/nc/impl/qc/c003/approve/action/rule/CheckQMSUnApproveRule.java new file mode 100644 index 00000000..370f9fb8 --- /dev/null +++ b/qc/src/private/nc/impl/qc/c003/approve/action/rule/CheckQMSUnApproveRule.java @@ -0,0 +1,26 @@ +package nc.impl.qc.c003.approve.action.rule; + +import nc.impl.pubapp.pattern.rule.IRule; +import nc.vo.pubapp.pattern.exception.ExceptionUtils; +import nc.vo.qc.c003.entity.ReportHeaderVO; +import nc.vo.qc.c003.entity.ReportVO; + +/** + * 箱变-质检报告收回校验启源是否已回传检验结果 + * + * @author mzr + * @date 2025/08/27 + */ +public class CheckQMSUnApproveRule implements IRule { + public void process(ReportVO[] vos) { + if (vos == null) { + return; + } + for (ReportVO vo : vos) { + ReportHeaderVO hvo = vo.getHVO(); + if ("Y".equals(hvo.getVdef10())) { + ExceptionUtils.wrappBusinessException("QMS已回传检验结果请勿取消"); + } + } + } +} diff --git a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java index 1b070a86..7b942ce9 100644 --- a/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java +++ b/uapbd/src/private/nccloud/api/uapbd/material/listener/MaterialToJmQmsListener.java @@ -39,7 +39,7 @@ import java.util.stream.Stream; * @date 2025/08/27 */ public class MaterialToJmQmsListener implements IBusinessListener { - private static final String LOG_INFO_NAME = "qyMesLog"; + private static final String LOG_INFO_NAME = "jmqylog"; private static final Log logger = Log.getInstance(LOG_INFO_NAME); private static final String reqUrl = "/IF_QyErpApi.ashx?action=addwlxx"; private Map configParams;