From 2ac973c348f03d2bb0d17617a97e02d4de8ac171 Mon Sep 17 00:00:00 2001 From: mzr <1562242162@qq.com> Date: Mon, 21 Oct 2024 12:42:58 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=94=9F=E6=88=90=E4=B8=8D=E5=90=88?= =?UTF-8?q?=E6=A0=BC=E5=AE=A1=E6=89=B9=E5=8D=95=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dhjydmaster/DhjydMasterVOServiceImpl.java | 94 ++++++++++++------- 1 file changed, 58 insertions(+), 36 deletions(-) diff --git a/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java b/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java index a5315b2..e1e450e 100644 --- a/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java +++ b/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java @@ -20,6 +20,7 @@ import org.apache.commons.lang3.StringUtils; import com.informix.util.stringUtil; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.NumberUtil; import org.apache.commons.beanutils.PropertyUtils; @@ -575,13 +576,14 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa AggDhjydMasterVO vo = dao.findByPk(AggDhjydMasterVO.class, pk, false); DhjydMasterVO mainVO = vo.getParentVO(); // SuperVO mainVO = getMainVO(vo); + String oldCode = mainVO.getCode(); mainVO.setPrimaryKey(null); mainVO.setStatus(VOStatus.NEW); mainVO.setAttributeValue("srcbilltype", null); // 来源单据主键改成当前传递的检验单的主键 mainVO.setAttributeValue("srcbillid", pk); - mainVO.setAttributeValue("vsourcecode", mainVO.getCode()); + mainVO.setAttributeValue("vsourcecode", oldCode); mainVO.setAttributeValue("code", null); // mainVO.setAttributeValue("", null); @@ -612,29 +614,30 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa "pk_billtypecode = 'DHJY-Cxx-02' "); mainVO.setAttributeValue("transtypepk", billtypeid); mainVO.setAttributeValue("transtype", "DHJY-Cxx-02"); - // mainVO.setAttributeValue("vmemo", "mzr"); // 获取子表的数据 DhjydSlave0VO[] dhjydSlave0VOs = (DhjydSlave0VO[]) vo.getChildren(DhjydSlave0VO.class); DhjydSlave0VO[] newVOs = new DhjydSlave0VO[3]; if (dhjydSlave0VOs != null && dhjydSlave0VOs.length > 0) { - DhjydSlave0VO subvo = dhjydSlave0VOs[0]; + DhjydSlave0VO oldVo = dhjydSlave0VOs[0]; // 检查结果 合格、回用、不合格 - String def1 = subvo.getDef1(); - Object def1Code = null; - try { - def1Code = new HYPubBO().findColValue("bd_defdoc", "code", " dr = 0 and pk_defdoc='" + def1 + "' "); - } catch (UifException e) { - e.printStackTrace(); - } - subvo.setPrimaryKey(null); - subvo.setStatus(VOStatus.NEW); - subvo.setAttributeValue("pk_chekbill_b", null); - subvo.setAttributeValue("srcbilltype", null); - subvo.setAttributeValue("srcbillid", null); - subvo.setAttributeValue("rowno", null); - subvo.setAttributeValue("srcrowno", null); + String def1 = oldVo.getDef1(); + String getTestResCodeSql = "SELECT a.code,a.pk_defdoc " + + "FROM bd_defdoc a LEFT JOIN bd_defdoclist b ON a.pk_defdoclist = b.pk_defdoclist " + + "WHERE a.dr = 0 AND a.pk_defdoc = '[def1]' AND b.code = 'checkresult'"; + getTestResCodeSql = getTestResCodeSql.replace("[def1]", def1); + HashMap headMap = (HashMap)getBaseDAO().executeQuery(getTestResCodeSql, new MapProcessor()); + String def1Code = headMap.getOrDefault("code", ""); + oldVo.setPrimaryKey(null); + oldVo.setStatus(VOStatus.NEW); + oldVo.setAttributeValue("pk_chekbill_b", null); + oldVo.setAttributeValue("srcbilltype", null); + oldVo.setAttributeValue("srcbillid", null); + oldVo.setAttributeValue("rowno", null); + oldVo.setAttributeValue("srcrowno", null); // 根据自定义档案的编码查询对应的主键 - String getTestResSql = "select code,pk_defdoc from bd_defdoc where dr = 0 and code in ('01','02','03')"; + String getTestResSql = "SELECT a.code,a.pk_defdoc " + + "FROM bd_defdoc a LEFT JOIN bd_defdoclist b ON a.pk_defdoclist = b.pk_defdoclist " + + "WHERE a.dr = 0 AND a.code IN ('01','02','03') AND b.code = 'checkresult'"; List> testResList = (List>) getBaseDAO().executeQuery(getTestResSql, new MapListProcessor()); Map testResMap = new HashMap<>(); @@ -643,38 +646,57 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa testResMap.put(map.getOrDefault("code", "") + "", map.getOrDefault("pk_defdoc", "") + ""); } } + DhjydSlave0VO vo0 = new DhjydSlave0VO(); + DhjydSlave0VO vo1 = new DhjydSlave0VO(); + DhjydSlave0VO vo2 = new DhjydSlave0VO(); + BeanUtil.copyProperties(oldVo, vo0); + BeanUtil.copyProperties(oldVo, vo1); + BeanUtil.copyProperties(oldVo, vo2); // 第1行 合格 第2行 回用 第3行 不合格 if ("01".equals(def1Code)) { + mainVO.setAttributeValue("vmemo", def1Code + new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime())); // 合格 - newVOs[0] = subvo; + vo0.setNunqualifiednum(UFDouble.ZERO_DBL); + newVOs[0] = vo0; + + // 回用 + // 设置检验结果的值 + vo1.setAttributeValue("def1", testResMap.get("02")); + newVOs[1] = vo1; + // 不合格 - DhjydSlave0VO vo2 = new DhjydSlave0VO(); - vo2 = subvo; vo2.setNunqualifiednum(UFDouble.ZERO_DBL); // 设置检验结果的值 - vo2.setAttributeValue("def1", testResMap.get("02")); - newVOs[1] = vo2; vo2.setAttributeValue("def1", testResMap.get("03")); newVOs[2] = vo2; } else if ("02".equals(def1Code)) { - // 回用 - newVOs[1] = subvo; - newVOs[0] = subvo; - subvo.setAttributeValue("def1", testResMap.get("01")); - newVOs[2] = subvo; - subvo.setAttributeValue("def1", testResMap.get("03")); - } else if ("03".equals(def1Code)) { - // 不合格 - newVOs[2] = subvo; + mainVO.setAttributeValue("vmemo", def1Code + new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime())); + // 合格 + vo0.setNunqualifiednum(UFDouble.ZERO_DBL); + vo0.setAttributeValue("def1", testResMap.get("01")); + newVOs[0] = vo0; + + // 回用 + newVOs[1] = vo1; + + // 不合格 + vo0.setAttributeValue("def1", testResMap.get("03")); + newVOs[2] = vo2; + } else if ("03".equals(def1Code)) { + mainVO.setAttributeValue("vmemo", def1Code + new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime())); // 合格 - DhjydSlave0VO vo0 = new DhjydSlave0VO(); - vo0 = subvo; vo0.setQualifiednum(UFDouble.ZERO_DBL); // 设置检验结果的值 vo0.setAttributeValue("def1", testResMap.get("01")); newVOs[0] = vo0; - vo0.setAttributeValue("def1", testResMap.get("02")); - newVOs[1] = vo0; + + // 回用 + // 设置检验结果的值 + vo1.setAttributeValue("def1", testResMap.get("02")); + newVOs[1] = vo1; + + // 不合格 + newVOs[2] = vo2; } } From e4556cb0d93697262e443f716ac7aa2752500514 Mon Sep 17 00:00:00 2001 From: mzr <1562242162@qq.com> Date: Mon, 21 Oct 2024 16:06:51 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=94=9F=E6=88=90=E4=B8=8D=E5=90=88?= =?UTF-8?q?=E6=A0=BC=E5=AE=A1=E6=89=B9=E5=8D=95=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dhjydmaster/DhjydMasterVOServiceImpl.java | 53 +++++++++++-------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java b/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java index e1e450e..1ff25a1 100644 --- a/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java +++ b/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java @@ -621,11 +621,12 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa DhjydSlave0VO oldVo = dhjydSlave0VOs[0]; // 检查结果 合格、回用、不合格 String def1 = oldVo.getDef1(); - String getTestResCodeSql = "SELECT a.code,a.pk_defdoc " + - "FROM bd_defdoc a LEFT JOIN bd_defdoclist b ON a.pk_defdoclist = b.pk_defdoclist " + - "WHERE a.dr = 0 AND a.pk_defdoc = '[def1]' AND b.code = 'checkresult'"; + String getTestResCodeSql = "SELECT a.code,a.pk_defdoc " + + "FROM bd_defdoc a LEFT JOIN bd_defdoclist b ON a.pk_defdoclist = b.pk_defdoclist " + + "WHERE a.dr = 0 AND a.pk_defdoc = '[def1]' AND b.code = 'checkresult'"; getTestResCodeSql = getTestResCodeSql.replace("[def1]", def1); - HashMap headMap = (HashMap)getBaseDAO().executeQuery(getTestResCodeSql, new MapProcessor()); + HashMap headMap = (HashMap) getBaseDAO().executeQuery(getTestResCodeSql, + new MapProcessor()); String def1Code = headMap.getOrDefault("code", ""); oldVo.setPrimaryKey(null); oldVo.setStatus(VOStatus.NEW); @@ -635,9 +636,9 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa oldVo.setAttributeValue("rowno", null); oldVo.setAttributeValue("srcrowno", null); // 根据自定义档案的编码查询对应的主键 - String getTestResSql = "SELECT a.code,a.pk_defdoc " + - "FROM bd_defdoc a LEFT JOIN bd_defdoclist b ON a.pk_defdoclist = b.pk_defdoclist " + - "WHERE a.dr = 0 AND a.code IN ('01','02','03') AND b.code = 'checkresult'"; + String getTestResSql = "SELECT a.code,a.pk_defdoc " + + "FROM bd_defdoc a LEFT JOIN bd_defdoclist b ON a.pk_defdoclist = b.pk_defdoclist " + + "WHERE a.dr = 0 AND a.code IN ('01','02','03') AND b.code = 'checkresult'"; List> testResList = (List>) getBaseDAO().executeQuery(getTestResSql, new MapListProcessor()); Map testResMap = new HashMap<>(); @@ -646,6 +647,11 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa testResMap.put(map.getOrDefault("code", "") + "", map.getOrDefault("pk_defdoc", "") + ""); } } + UFDouble qualifiednum = oldVo.getQualifiednum(); + UFDouble nunqualifiednum = oldVo.getNunqualifiednum(); + String vbatch = (oldVo.getVbatch() != null) ? oldVo.getVbatch() : "";// 批次号 + oldVo.setQualifiednum(UFDouble.ZERO_DBL); + oldVo.setNunqualifiednum(UFDouble.ZERO_DBL); DhjydSlave0VO vo0 = new DhjydSlave0VO(); DhjydSlave0VO vo1 = new DhjydSlave0VO(); DhjydSlave0VO vo2 = new DhjydSlave0VO(); @@ -654,49 +660,54 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa BeanUtil.copyProperties(oldVo, vo2); // 第1行 合格 第2行 回用 第3行 不合格 if ("01".equals(def1Code)) { - mainVO.setAttributeValue("vmemo", def1Code + new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime())); // 合格 - vo0.setNunqualifiednum(UFDouble.ZERO_DBL); + vo0.setQualifiednum(qualifiednum); newVOs[0] = vo0; - + // 回用 // 设置检验结果的值 vo1.setAttributeValue("def1", testResMap.get("02")); + vo1.setVbatch(vbatch + "回用"); newVOs[1] = vo1; - + // 不合格 - vo2.setNunqualifiednum(UFDouble.ZERO_DBL); // 设置检验结果的值 vo2.setAttributeValue("def1", testResMap.get("03")); + vo2.setVbatch(vbatch + "不合格"); newVOs[2] = vo2; + mainVO.setNnum(qualifiednum); } else if ("02".equals(def1Code)) { - mainVO.setAttributeValue("vmemo", def1Code + new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime())); // 合格 - vo0.setNunqualifiednum(UFDouble.ZERO_DBL); vo0.setAttributeValue("def1", testResMap.get("01")); newVOs[0] = vo0; - + // 回用 + vo1.setQualifiednum(qualifiednum); + vo1.setVbatch(vbatch + "回用"); newVOs[1] = vo1; - + // 不合格 - vo0.setAttributeValue("def1", testResMap.get("03")); + vo2.setAttributeValue("def1", testResMap.get("03")); + vo2.setVbatch(vbatch + "不合格"); newVOs[2] = vo2; + mainVO.setNnum(qualifiednum); } else if ("03".equals(def1Code)) { - mainVO.setAttributeValue("vmemo", def1Code + new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime())); // 合格 - vo0.setQualifiednum(UFDouble.ZERO_DBL); // 设置检验结果的值 vo0.setAttributeValue("def1", testResMap.get("01")); newVOs[0] = vo0; - + // 回用 // 设置检验结果的值 vo1.setAttributeValue("def1", testResMap.get("02")); + vo1.setVbatch(vbatch + "回用"); newVOs[1] = vo1; - + // 不合格 + vo2.setNunqualifiednum(nunqualifiednum); + vo2.setVbatch(vbatch + "不合格"); newVOs[2] = vo2; + mainVO.setNnum(nunqualifiednum); } } From d4528962b0871723a8430fa454184bca3f4d8e0d Mon Sep 17 00:00:00 2001 From: mzr <1562242162@qq.com> Date: Tue, 22 Oct 2024 12:44:10 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=88=B0=E8=B4=A7=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E5=8D=95=E6=8F=90=E4=BA=A4=E5=A2=9E=E5=8A=A0=E4=B8=8B=E6=B8=B8?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E6=A0=A1=E9=AA=8C=E3=80=81=E4=B8=8D=E5=90=88?= =?UTF-8?q?=E6=A0=BC=E6=A3=80=E9=AA=8C=E5=8D=95=E5=BC=83=E5=AE=A1=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E6=A3=80=E9=AA=8C=E5=8D=95=E7=9A=84=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E3=80=81=E4=B8=8D=E5=90=88=E6=A0=BC=E6=A3=80=E9=AA=8C=E5=8D=95?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E9=80=9A=E8=BF=87=E5=90=8E=E5=9B=9E=E5=86=99?= =?UTF-8?q?=E6=A3=80=E9=AA=8C=E5=8D=95-=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/AddUnPassDhjydMasterVOAction.java | 26 ++- .../dhjydmaster/DhjydMasterVOServiceImpl.java | 159 +++++++++++------- .../nc/bs/pub/action/N_DHJY_APPROVE.java | 63 +++---- .../dhjydmaster/IDhjydMasterVOService.java | 8 +- 4 files changed, 152 insertions(+), 104 deletions(-) diff --git a/pu/src/client/nccloud/web/pu/dhjyd/dhjydmaster/action/AddUnPassDhjydMasterVOAction.java b/pu/src/client/nccloud/web/pu/dhjyd/dhjydmaster/action/AddUnPassDhjydMasterVOAction.java index 151fdcf..a24e48a 100644 --- a/pu/src/client/nccloud/web/pu/dhjyd/dhjydmaster/action/AddUnPassDhjydMasterVOAction.java +++ b/pu/src/client/nccloud/web/pu/dhjyd/dhjydmaster/action/AddUnPassDhjydMasterVOAction.java @@ -1,33 +1,29 @@ package nccloud.web.pu.dhjyd.dhjydmaster.action; -import java.util.HashMap; -import java.util.Map; -import nc.pub.billcode.vo.BillCodeContext; -import nccloud.web.codeplatform.framework.action.base.BaseAction; -import nccloud.web.codeplatform.framework.action.base.RequstParamWapper; -import nccloud.web.codeplatform.framework.action.base.RequestDTO; -import nccloud.web.codeplatform.framework.action.base.VOTransform; +import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService; +import nc.vo.pu.dhjyd.AggDhjydMasterVO; import nccloud.framework.service.ServiceLocator; import nccloud.framework.web.container.IRequest; -import nc.vo.pu.dhjyd.AggDhjydMasterVO; -import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService; +import nccloud.web.codeplatform.framework.action.base.BaseAction; +import nccloud.web.codeplatform.framework.action.base.RequestDTO; +import nccloud.web.codeplatform.framework.action.base.RequstParamWapper; +import nccloud.web.codeplatform.framework.action.base.VOTransform; public class AddUnPassDhjydMasterVOAction extends BaseAction { @Override public Object doAction(IRequest request, RequstParamWapper paramWapper) throws Throwable { - // json数据转换 + // json数据转换 RequestDTO param = VOTransform.toVO(paramWapper.requestString, RequestDTO.class); // 获取参数 String pk = param.getPk(); IDhjydMasterVOService service = ServiceLocator.find(IDhjydMasterVOService.class); - AggDhjydMasterVO[] vos = service.addUnPassDhjydMasterVO(pk); - - if (vos == null) { - return false; + AggDhjydMasterVO aggDhjydMasterVO = service.addUnPassDhjydMasterVO(pk); + if (aggDhjydMasterVO == null) { + return null; } - return true; + return buildResult(param, true, null, aggDhjydMasterVO); } } \ No newline at end of file diff --git a/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java b/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java index 1ff25a1..881e686 100644 --- a/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java +++ b/pu/src/private/nc/impl/pu/dhjyd/dhjydmaster/DhjydMasterVOServiceImpl.java @@ -1,51 +1,38 @@ package nc.impl.pu.dhjyd.dhjydmaster; -import java.util.Map; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; -import java.util.Iterator; import java.util.List; -import java.util.ArrayList; +import java.util.Map; import java.util.stream.Collectors; -import java.util.UUID; -import java.lang.String; import java.util.stream.Stream; -import nc.vo.pub.lang.UFDateTime; -import nc.vo.pub.lang.UFDouble; -import nc.uap.utils.InSQLCreator; -import nc.uif.pub.exception.UifException; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; -import com.informix.util.stringUtil; - import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.util.NumberUtil; - -import org.apache.commons.beanutils.PropertyUtils; - -import nc.vo.pub.BusinessException; -import nc.vo.pub.BusinessRuntimeException; -import nc.vo.pub.ISuperVO; -import nc.vo.pub.SuperVO; -import nc.vo.pub.VOStatus; +import nc.bs.dao.BaseDAO; +import nc.bs.framework.common.InvocationInfoProxy; +import nc.bs.pub.common.PfServiceScmUtil; +import nc.bs.trade.business.HYPubBO; import nc.codeplatform.framework.service.ServiceSupport; - -import nc.pub.billcode.vo.BillCodeContext; - -import nc.vo.pu.dhjyd.DhjydMasterVO; -import nc.vo.pu.dhjyd.DhjydSlave0VO; -import nc.vo.pu.dhjyd.AggDhjydMasterVO; import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService; import nc.jdbc.framework.processor.ColumnProcessor; import nc.jdbc.framework.processor.MapListProcessor; import nc.jdbc.framework.processor.MapProcessor; +import nc.pub.billcode.vo.BillCodeContext; +import nc.vo.pu.dhjyd.AggDhjydMasterVO; +import nc.vo.pu.dhjyd.DhjydMasterVO; +import nc.vo.pu.dhjyd.DhjydSlave0VO; +import nc.vo.pub.BusinessException; +import nc.vo.pub.ISuperVO; +import nc.vo.pub.SuperVO; +import nc.vo.pub.VOStatus; +import nc.vo.pub.lang.UFDateTime; +import nc.vo.pub.lang.UFDouble; import nc.vo.pub.pf.BillStatusEnum; import nc.vo.pubapp.pattern.pub.MathTool; -import nc.bs.dao.BaseDAO; -import nc.bs.framework.common.InvocationInfoProxy; -import nc.bs.trade.business.HYPubBO; import nccloud.framework.core.exception.ExceptionUtils; public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMasterVOService { @@ -449,11 +436,20 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa String errors = ""; for (AggDhjydMasterVO vo : vos) { DhjydMasterVO jydMasterVO = vo.getParentVO(); + String code = jydMasterVO.getAttributeValue("code") + ""; // 如果不合格检验数量>0,则给出提示 UFDouble brecheck = (UFDouble) jydMasterVO.getAttributeValue("brecheck"); // System.out.println("brecheck = " + brecheck); if (MathTool.compareTo(brecheck, UFDouble.ZERO_DBL) > 0) { - errors += "单据号:[" + jydMasterVO.getAttributeValue("code") + "]提交失败,失败原因:含有不合格数量,请检查。\n"; + errors += "单据号:[" + code + "]提交失败,失败原因:含有不合格数量,请检查。\n"; + } + // 存在下游的不合格检验单,不能审核 + String getBillSql = "select code from hfdl_chekbill_h where srcbillid = '[otherId]'"; + getBillSql = getBillSql.replace("[otherId]", jydMasterVO.getPk_chekbill_h()); + HashMap headMap = (HashMap) getBaseDAO().executeQuery(getBillSql, + new MapProcessor()); + if (!headMap.isEmpty() && !StringUtils.isEmpty(headMap.get("code"))) { + errors += "单据号:[" + code + "]提交失败,失败原因:存在关联的不合格检验单,请检查。\n"; } } if (!"".equals(errors)) { @@ -508,12 +504,26 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa if ("".equals(otherId) || "null".equals(otherId)) { continue; } - // 查询采购入库单是否存在该id - String countSql = "select count(1) from IC_PURCHASEIN_B where csourcebillhid = '[otherId]';"; - countSql = countSql.replace("[otherId]", otherId); - Integer num = (Integer) getBaseDAO().executeQuery(countSql, new ColumnProcessor()); - if (num > 0) { - errors += "单据号:[" + jydMasterVO.getAttributeValue("code") + "]收回失败,失败原因:到货单已入库,请勿收回。\n"; + String transtype = jydMasterVO.getTranstype(); + if ("DHJY-Cxx-02".equals(transtype)) { + // 不合格检验单的校验 如果上游的检验单已经审核通过则不能弃审 + String getBillSql = "select approvestatus from hfdl_chekbill_h where pk_chekbill_h = '[otherId]'"; + getBillSql = getBillSql.replace("[otherId]", otherId); + HashMap headMap = (HashMap) getBaseDAO().executeQuery(getBillSql, + new MapProcessor()); + Integer status = headMap.getOrDefault("approvestatus", BillStatusEnum.FREE.toIntValue()); + if (status == BillStatusEnum.APPROVED.toIntValue()) { + errors += "单据号:[" + jydMasterVO.getAttributeValue("code") + "]收回失败,失败原因:到货检验单已审核通过,请勿收回。\n"; + } + } else { + // 到货检验单的校验 + // 查询采购入库单是否存在该id + String countSql = "select count(1) from IC_PURCHASEIN_B where csourcebillhid = '[otherId]';"; + countSql = countSql.replace("[otherId]", otherId); + Integer num = (Integer) getBaseDAO().executeQuery(countSql, new ColumnProcessor()); + if (num > 0) { + errors += "单据号:[" + jydMasterVO.getAttributeValue("code") + "]收回失败,失败原因:到货单已入库,请勿收回。\n"; + } } } if (!"".equals(errors)) { @@ -571,9 +581,16 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa } @Override - public AggDhjydMasterVO[] addUnPassDhjydMasterVO(String pk) throws BusinessException { - - AggDhjydMasterVO vo = dao.findByPk(AggDhjydMasterVO.class, pk, false); + public AggDhjydMasterVO addUnPassDhjydMasterVO(String pk) throws BusinessException { + AggDhjydMasterVO vo = null; + String whereSql = "srcbillid = 'pk'"; + whereSql.replace("pk", pk); + AggDhjydMasterVO[] unPassVOs = dao.listByCondition(AggDhjydMasterVO.class, whereSql); + if (unPassVOs != null && unPassVOs.length > 0) { + return unPassVOs[0]; + } else { + vo = dao.findByPk(AggDhjydMasterVO.class, pk, false); + } DhjydMasterVO mainVO = vo.getParentVO(); // SuperVO mainVO = getMainVO(vo); String oldCode = mainVO.getCode(); @@ -647,73 +664,101 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa testResMap.put(map.getOrDefault("code", "") + "", map.getOrDefault("pk_defdoc", "") + ""); } } - UFDouble qualifiednum = oldVo.getQualifiednum(); - UFDouble nunqualifiednum = oldVo.getNunqualifiednum(); + // UFDouble qualifiednum = oldVo.getQualifiednum(); + // UFDouble nunqualifiednum = oldVo.getNunqualifiednum(); String vbatch = (oldVo.getVbatch() != null) ? oldVo.getVbatch() : "";// 批次号 - oldVo.setQualifiednum(UFDouble.ZERO_DBL); - oldVo.setNunqualifiednum(UFDouble.ZERO_DBL); + // oldVo.setQualifiednum(UFDouble.ZERO_DBL); + // oldVo.setNunqualifiednum(UFDouble.ZERO_DBL); DhjydSlave0VO vo0 = new DhjydSlave0VO(); DhjydSlave0VO vo1 = new DhjydSlave0VO(); DhjydSlave0VO vo2 = new DhjydSlave0VO(); BeanUtil.copyProperties(oldVo, vo0); BeanUtil.copyProperties(oldVo, vo1); BeanUtil.copyProperties(oldVo, vo2); + String[] vbatchStr = { "-合格", "-回用", "-不合格" }; // 第1行 合格 第2行 回用 第3行 不合格 if ("01".equals(def1Code)) { // 合格 - vo0.setQualifiednum(qualifiednum); + // vo0.setQualifiednum(qualifiednum); + vo0.setVbatch(vbatch + vbatchStr[0]); newVOs[0] = vo0; // 回用 // 设置检验结果的值 vo1.setAttributeValue("def1", testResMap.get("02")); - vo1.setVbatch(vbatch + "回用"); + vo1.setVbatch(vbatch + vbatchStr[1]); newVOs[1] = vo1; // 不合格 // 设置检验结果的值 vo2.setAttributeValue("def1", testResMap.get("03")); - vo2.setVbatch(vbatch + "不合格"); + vo2.setVbatch(vbatch + vbatchStr[2]); newVOs[2] = vo2; - mainVO.setNnum(qualifiednum); + // mainVO.setNnum(qualifiednum); } else if ("02".equals(def1Code)) { // 合格 vo0.setAttributeValue("def1", testResMap.get("01")); + vo0.setVbatch(vbatch + vbatchStr[0]); newVOs[0] = vo0; // 回用 - vo1.setQualifiednum(qualifiednum); - vo1.setVbatch(vbatch + "回用"); + // vo1.setQualifiednum(qualifiednum); + vo1.setVbatch(vbatch + vbatchStr[1]); newVOs[1] = vo1; // 不合格 vo2.setAttributeValue("def1", testResMap.get("03")); - vo2.setVbatch(vbatch + "不合格"); + vo2.setVbatch(vbatch + vbatchStr[2]); newVOs[2] = vo2; - mainVO.setNnum(qualifiednum); + // mainVO.setNnum(qualifiednum); } else if ("03".equals(def1Code)) { // 合格 // 设置检验结果的值 vo0.setAttributeValue("def1", testResMap.get("01")); + vo0.setVbatch(vbatch + vbatchStr[0]); newVOs[0] = vo0; // 回用 // 设置检验结果的值 vo1.setAttributeValue("def1", testResMap.get("02")); - vo1.setVbatch(vbatch + "回用"); + vo1.setVbatch(vbatch + vbatchStr[1]); newVOs[1] = vo1; // 不合格 - vo2.setNunqualifiednum(nunqualifiednum); - vo2.setVbatch(vbatch + "不合格"); + // vo2.setNunqualifiednum(nunqualifiednum); + vo2.setVbatch(vbatch + vbatchStr[2]); newVOs[2] = vo2; - mainVO.setNnum(nunqualifiednum); + // mainVO.setNnum(nunqualifiednum); } } vo.setChildren(DhjydSlave0VO.class, newVOs); - AggDhjydMasterVO[] saveAggDhjydMasterVO = this.saveAggDhjydMasterVO(vo); - return saveAggDhjydMasterVO; + // AggDhjydMasterVO[] saveAggDhjydMasterVO = this.saveAggDhjydMasterVO(vo); + return vo; + } + + @Override + public void afterAuditUnPass(AggDhjydMasterVO[] vos) throws BusinessException { + if (ArrayUtils.isEmpty(vos)) { + return; + } + for (int i = 0; i < vos.length; i++) { + AggDhjydMasterVO vo = vos[i]; + ISuperVO mainVo = vo.getParent(); + Object srcbillid = mainVo.getAttributeValue("srcbillid"); + if (srcbillid != null && "".equals(srcbillid)) { + String[] pks = { srcbillid + "" }; + AggDhjydMasterVO[] listByPk = dao.listByPk(AggDhjydMasterVO.class, pks); + if(listByPk != null) { + + } + // 不合格检验单审核通过后同步修改上游的到货检验单的表体 + + // 不合格检验单审核通过后触发上游的到货检验单审核通过 + PfServiceScmUtil.processBatch("APPROVE", "DHJY", vos, null, null); + } + + } } @Override diff --git a/pu/src/public/nc/bs/pub/action/N_DHJY_APPROVE.java b/pu/src/public/nc/bs/pub/action/N_DHJY_APPROVE.java index 240dba4..f1cbafa 100644 --- a/pu/src/public/nc/bs/pub/action/N_DHJY_APPROVE.java +++ b/pu/src/public/nc/bs/pub/action/N_DHJY_APPROVE.java @@ -4,57 +4,58 @@ import java.util.Arrays; import nc.bs.framework.common.NCLocator; import nc.bs.pub.compiler.IWorkFlowRet; -import nc.vo.pub.BusinessException; -import nc.vo.pub.compiler.PfParameterVO; -import nc.vo.pub.VOStatus; -import nc.vo.uap.pf.PFBusinessException; -import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill; -import nc.vo.pubapp.pattern.model.meta.entity.bill.IBillMeta; -import nc.vo.pub.CircularlyAccessibleValueObject; -import nccloud.commons.lang.StringUtils; import nc.codeplatform.framework.service.AbstractPfScriptAction; -import nc.vo.pu.dhjyd.AggDhjydMasterVO; import nc.itf.pu.dhjyd.dhjydmaster.IArriveToDhjyd; import nc.itf.pu.dhjyd.dhjydmaster.IDhjydMasterVOService; +import nc.vo.pu.dhjyd.AggDhjydMasterVO; +import nc.vo.pub.BusinessException; +import nc.vo.pub.VOStatus; +import nc.vo.pub.compiler.PfParameterVO; +import nc.vo.uap.pf.PFBusinessException; +import nccloud.commons.lang.StringUtils; -public class N_DHJY_APPROVE extends AbstractPfScriptAction{ - - public N_DHJY_APPROVE(){ +public class N_DHJY_APPROVE extends AbstractPfScriptAction { + + public N_DHJY_APPROVE() { super(); } - + @Override protected Object process(PfParameterVO paraVO) throws BusinessException { try { IDhjydMasterVOService service = NCLocator.getInstance().lookup(IDhjydMasterVOService.class); - AggDhjydMasterVO[] vos = (AggDhjydMasterVO[])this.getVos(); - Arrays.stream(vos).forEach(v-> v.getParent().setStatus(VOStatus.UPDATED)); - - IWorkFlowRet workFlowRet = (IWorkFlowRet)this.procActionFlow(paraVO); - + AggDhjydMasterVO[] vos = (AggDhjydMasterVO[]) this.getVos(); + Arrays.stream(vos).forEach(v -> v.getParent().setStatus(VOStatus.UPDATED)); + + IWorkFlowRet workFlowRet = (IWorkFlowRet) this.procActionFlow(paraVO); + vos = service.callbackAPPROVE(vos); - - return workFlowRet==null?vos:workFlowRet; - }catch(Exception ex) { + + return workFlowRet == null ? vos : workFlowRet; + } catch (Exception ex) { if (ex instanceof BusinessException) { - throw (BusinessException) ex; - } - throw new PFBusinessException(ex.getMessage(), ex); + throw (BusinessException) ex; + } + throw new PFBusinessException(ex.getMessage(), ex); } } - - protected void before(PfParameterVO paraVO) throws BusinessException{ - AggDhjydMasterVO vo = (AggDhjydMasterVO)this.getVo(); - if(StringUtils.isEmpty(vo.getPrimaryKey())){ + + protected void before(PfParameterVO paraVO) throws BusinessException { + AggDhjydMasterVO vo = (AggDhjydMasterVO) this.getVo(); + if (StringUtils.isEmpty(vo.getPrimaryKey())) { throw new BusinessException("当前单据未执行保存动作脚本,如果配置了业务流程定义,请检查动作驱动配置!"); } } - + protected void after(PfParameterVO paraVO) throws BusinessException { - AggDhjydMasterVO[] vos = (AggDhjydMasterVO[])this.getVos(); + AggDhjydMasterVO[] vos = (AggDhjydMasterVO[]) this.getVos(); IArriveToDhjyd service = NCLocator.getInstance().lookup(IArriveToDhjyd.class); - for(int i = 0; i < vos.length; i++) { + for (int i = 0; i < vos.length; i++) { service.writeBackQc(vos[i]); } + // IDhjydMasterVOService dhjydMasterVOService = + // NCLocator.getInstance().lookup(IDhjydMasterVOService.class); + // dhjydMasterVOService.afterAuditUnPass(vos); } + } \ No newline at end of file diff --git a/pu/src/public/nc/itf/pu/dhjyd/dhjydmaster/IDhjydMasterVOService.java b/pu/src/public/nc/itf/pu/dhjyd/dhjydmaster/IDhjydMasterVOService.java index d4e31ef..aa5223a 100644 --- a/pu/src/public/nc/itf/pu/dhjyd/dhjydmaster/IDhjydMasterVOService.java +++ b/pu/src/public/nc/itf/pu/dhjyd/dhjydmaster/IDhjydMasterVOService.java @@ -287,6 +287,12 @@ public interface IDhjydMasterVOService { * 生成不合格审批单 * */ - public AggDhjydMasterVO[] addUnPassDhjydMasterVO(String pk) throws BusinessException; + public AggDhjydMasterVO addUnPassDhjydMasterVO(String pk) throws BusinessException; + + /** + * 不合格检验单审批通过之后同步调整关联的到货检验单 + * + */ + public void afterAuditUnPass(AggDhjydMasterVO[] vos) throws BusinessException; } \ No newline at end of file