From 0d78eafcc676068a3eb9a76159e0ccd40b48c8d1 Mon Sep 17 00:00:00 2001 From: lihao Date: Wed, 29 Oct 2025 17:02:10 +0800 Subject: [PATCH] =?UTF-8?q?qms=E5=9B=9E=E4=BC=A0=E8=B4=A8=E6=A3=80?= =?UTF-8?q?=E6=8A=A5=E5=91=8A=E4=BC=98=E5=8C=96=E4=B8=BA=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qc/resource/QcconclusionRestResource.java | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/qc/src/public/nc/api/qc/resource/QcconclusionRestResource.java b/qc/src/public/nc/api/qc/resource/QcconclusionRestResource.java index 1d5d51ac..28c4eb48 100644 --- a/qc/src/public/nc/api/qc/resource/QcconclusionRestResource.java +++ b/qc/src/public/nc/api/qc/resource/QcconclusionRestResource.java @@ -9,6 +9,7 @@ import nc.vo.pub.BusinessException; import nc.vo.pub.VOStatus; import nc.vo.pub.lang.UFBoolean; import nc.vo.pub.lang.UFDouble; +import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill; import nc.vo.pubapp.pflow.PfUserObject; import nc.vo.qc.c003.entity.ReportHeaderVO; import nc.vo.qc.c003.entity.ReportItemVO; @@ -93,7 +94,14 @@ public class QcconclusionRestResource extends QcBaseRestResource { if (pkReportbill == null) { continue; } + ReportItemVO[] itemVO= vo.getBVO(); + UFDouble crowno=UFDouble.ZERO_DBL; + for (ReportItemVO itemVO1 : itemVO) { + if(new UFDouble(itemVO1.getCrowno()).compareTo(crowno) > 0) { + crowno = new UFDouble(itemVO1.getCrowno()); + } + } for (Map itemMap : itemMaps) { // 校验itemMap的id是否为必填(存在且不为null) if (itemMap == null || !itemMap.containsKey("id") || itemMap.get("id") == null) { @@ -247,11 +255,23 @@ public class QcconclusionRestResource extends QcBaseRestResource { ISCMPubSaveCommitService service = NCLocator.getInstance().lookup(ISCMPubSaveCommitService.class);; try { - SCMScriptResultDTO obj = service.saveCommit(vos, (PfUserObject)null, ReportVO.class, "SAVEBASE", "SAVE", QCBillType.ReportBill.getCode()); - resultVos = (ReportVO[]) obj.getSucessVOs(); + List reportVOList=new ArrayList<>(Arrays.asList(vos)); + for (ReportVO reportVO:vos){ + SCMScriptResultDTO obj = service.saveCommit(new ReportVO[]{reportVO}, (PfUserObject)null, ReportVO.class, "SAVEBASE", "SAVE", QCBillType.ReportBill.getCode()); + if(obj.getErrorMessage()!=null && !"".equals(obj.getErrorMessage())){ + throw new BusinessException(obj.getErrorMessage()); + } + if(obj!=null){ + reportVOList.add((ReportVO) obj.getSucessVOs()[0]); + } + } + resultVos = reportVOList.toArray(new ReportVO[0]); + // SCMScriptResultDTO obj = service.saveCommit(vos, (PfUserObject)null, ReportVO.class, "SAVEBASE", "SAVE", QCBillType.ReportBill.getCode()); + // resultVos =(ReportVO[]) obj.getSucessVOs(); // resultVos = reportMaintain.saveBase(vos, new Object(), updatevos); } catch (BusinessException e) { - return ResultMessageUtil.exceptionToJSON(e); + throw new BusinessException(e.getMessage()); + // return ResultMessageUtil.exceptionToJSON(e); } } else { for (ReportVO vo : vos) { @@ -270,7 +290,21 @@ public class QcconclusionRestResource extends QcBaseRestResource { IBatchRunScriptService iReportApprove = NCLocator.getInstance().lookup(IBatchRunScriptService.class); SCMScriptResultDTO obj = iReportApprove.runBacth(context, ReportVO.class); - resultVos=(ReportVO[]) obj.getSucessVOs(); + if(obj.getErrorMessage()!=null && !"".equals(obj.getErrorMessage()) ){ + // return ResultMessageUtil.exceptionToJSON(new BusinessException(obj.getErrorMessage())); + throw new BusinessException(obj.getErrorMessage()); + } + // 1. 先获取原始数组(明确类型为AbstractBill[]) + AbstractBill[] originalVOs = obj.getSucessVOs(); + +// 2. 创建同长度的ReportVO数组 + resultVos = new ReportVO[originalVOs.length]; + +// 3. 逐个元素转换(需确保每个元素实际是ReportVO类型,否则会抛ClassCastException) + for (int i = 0; i < originalVOs.length; i++) { + // 这里的转换需要确保originalVOs[i]确实是ReportVO实例 + resultVos[i] = (ReportVO) originalVOs[i]; + } }