From 34edc8c0d23926242bdc11810d5d4ba3323d730e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=AD=A3=40=E7=94=A8=E5=8F=8B?= Date: Tue, 13 May 2025 15:45:50 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E7=BA=B8=E8=B4=A8=E5=8F=91=E7=A5=A8(?= =?UTF-8?q?=E6=95=B0=E7=94=B5=E7=BA=B8=E8=B4=A8=E5=8F=91=E7=A5=A8)=20?= =?UTF-8?q?=E6=9C=BA=E5=8A=A8=E8=BD=A6=E9=94=80=E5=94=AE=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E5=8F=91=E7=A5=A8(=E4=BF=AE=E6=94=B9=E4=BA=A7=E5=9C=B0?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E8=A1=A5=E4=B8=81)=E9=80=82?= =?UTF-8?q?=E9=85=8D2312=5FV3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imag/taxfactory/apply/einvoice/ApplyRequest.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/imag/src/private/nc/impl/imag/taxfactory/apply/einvoice/ApplyRequest.java b/imag/src/private/nc/impl/imag/taxfactory/apply/einvoice/ApplyRequest.java index 529c37c..382980e 100644 --- a/imag/src/private/nc/impl/imag/taxfactory/apply/einvoice/ApplyRequest.java +++ b/imag/src/private/nc/impl/imag/taxfactory/apply/einvoice/ApplyRequest.java @@ -212,7 +212,7 @@ class ApplyRequest extends EInvoiceRequest implements IFactoryRequest { motor.setHGZH(psd.getHgzh()); motor.setFDJHM(psd.getFdjhm()); - motor.setDUWEI(psd.getDunwei()); + motor.setDUNWEI(psd.getDunwei()); // *********************************************************************** ad.setDetailMotor(motor); } @@ -1377,7 +1377,7 @@ class ApplyRequest extends EInvoiceRequest implements IFactoryRequest { //吨位 - private String DUWEI; + private String DUNWEI; public String getHGZH() { return HGZH; @@ -1395,12 +1395,12 @@ class ApplyRequest extends EInvoiceRequest implements IFactoryRequest { this.FDJHM = FDJHM; } - public String getDUWEI() { - return DUWEI; + public String getDUNWEI() { + return DUNWEI; } - public void setDUWEI(String DUWEI) { - this.DUWEI = DUWEI; + public void setDUNWEI(String DUNWEI) { + this.DUNWEI = DUNWEI; } From bd21c31e4e369ea8516df02fb0c199ff19101f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=AD=A3=40=E7=94=A8=E5=8F=8B?= Date: Tue, 13 May 2025 15:48:45 +0800 Subject: [PATCH 2/9] =?UTF-8?q?gaoningbom=E6=96=B0=E5=A2=9E=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=87=AA=E7=94=B1=E6=80=81=E6=B7=BB=E5=8A=A0=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=92=8C=E6=9C=89=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/impl/mmbd/bom/APIBomBusinessServiceImpl.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java b/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java index bd55ed5..5812af9 100644 --- a/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java +++ b/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java @@ -720,7 +720,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService { if (VersionTypeEnum.AVAILABLE.equalsValue(head.getHfversiontype()) && !head.getCbomid().equals(headvo.getCbomid())) { // sdlizheng --添加独立判断--plm三方越过此校验 - if ("gaoning".equals(userCode) || "dlkght".equals(userCode)) { + if ("gaoning".equals(userCode) || "dlkgsrm".equals(userCode)) { // AggBomVO afterVO = service.canceldefault(aggBomVO); } else { return UFBoolean.TRUE; @@ -774,12 +774,17 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService { agg.getParent().setAttributeValue("fbillstatus", Integer.valueOf(-1)); agg.getParent().setAttributeValue("hfbomsource", Integer.valueOf(1)); agg.getParent().setAttributeValue("hfbomcategory", Integer.valueOf(1)); - if ("gaoning".equals(userCode) || "dlkght".equals(userCode)) { + if ("gaoning".equals(userCode) || "dlkgsrm".equals(userCode)) { // sdlizheng // 1、对于之前不存在的BOM,新增时:如果是传自由态,不默认且无效,走标准逻辑,如果传的是审批态默认且有效。2025年4月11日16点28分 start if (fbillstatus != null && "1".equals(fbillstatus.toString())) { agg.getParent().setAttributeValue("hfversiontype", Integer.valueOf(1)); agg.getParent().setAttributeValue("hbdefault", UFBoolean.TRUE); + }else if(fbillstatus != null && "-1".equals(fbillstatus.toString())){ + if("gaoning".equals(userCode)){ + agg.getParent().setAttributeValue("hfversiontype", Integer.valueOf(1)); + agg.getParent().setAttributeValue("hbdefault", UFBoolean.TRUE); + } } // sdlizheng 1、对于之前不存在的BOM,新增时:如果是传自由态,不默认且无效,如果传的是审批态默认且有效。2025年4月11日16点28分 end } From 8f069cf3891af8eb897dc4ae0b74b0ea4046a53e Mon Sep 17 00:00:00 2001 From: lihao Date: Wed, 14 May 2025 14:30:49 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=87=E6=96=99=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bs/mmpac/pmo/pac0002/bp/PMOFinishBP.java | 7 +- .../mmpac/pmo/pac0002/bp/PMORowFinishBP.java | 18 ++- .../pac0002/rule/PMOToFinishPickMRule.java | 95 ++++++------- .../private/nc/bs/mmpac/wr/bp/WrInsertBP.java | 43 ++++-- .../wr/rule/serialno/PickMFinishRule.java | 128 +++++++++--------- 5 files changed, 156 insertions(+), 135 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOFinishBP.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOFinishBP.java index 92c1948..4861f42 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOFinishBP.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOFinishBP.java @@ -8,7 +8,6 @@ package nc.bs.mmpac.pmo.pac0002.bp; import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint; import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterBillStatusRule; import nc.bs.mmpac.pmo.pac0002.rule.PMOFinishAutoFinishPutPlanRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOToFinishPickMRule; import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillFinishValueRule; import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule; import nc.impl.pubapp.pattern.rule.IFilterRule; @@ -43,9 +42,9 @@ public class PMOFinishBP { private void addFinishAfterRule(CompareAroundProcesser processer) { IRule finishPutPlanRule = new PMOFinishAutoFinishPutPlanRule(); processer.addAfterRule(finishPutPlanRule); - /** 同步修改备料计划完成(生产订单强制完工时) */ - IRule pMOToFinishPickMRule = new PMOToFinishPickMRule(); - processer.addAfterRule(pMOToFinishPickMRule); +// /** 同步修改备料计划完成(生产订单强制完工时) */ +// IRule pMOToFinishPickMRule = new PMOToFinishPickMRule(); +// processer.addAfterRule(pMOToFinishPickMRule); } public PMOAggVO[] finishCancel(PMOAggVO[] fullBills, PMOAggVO[] originBills) { diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMORowFinishBP.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMORowFinishBP.java index ac9d2e4..db86648 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMORowFinishBP.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMORowFinishBP.java @@ -5,13 +5,16 @@ package nc.bs.mmpac.pmo.pac0002.bp; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import nc.bs.mmpac.pmo.pac0002.bp.service.PMOBPService; import nc.bs.mmpac.pmo.pac0002.bp.util.PMOBPUtil; import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint; import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterBillStatusRule; import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterRowStatusRule; import nc.bs.mmpac.pmo.pac0002.rule.PMOFinishAutoFinishPutPlanRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOToFinishPickMRule; import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillFinishValueRule; import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule; import nc.impl.pubapp.pattern.rule.IRule; @@ -28,11 +31,6 @@ import nc.vo.pub.BusinessException; import nc.vo.pub.CircularlyAccessibleValueObject; import nc.vo.pubapp.pattern.exception.ExceptionUtils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - public class PMORowFinishBP { public PMORowFinishBP() { } @@ -88,10 +86,10 @@ public class PMORowFinishBP { returnvos[0].setChildrenVO((CircularlyAccessibleValueObject[])newitemMap.values().toArray(new PMOItemVO[0])); processer.after(returnvos, returnvos); - /** 同步修改备料计划完成(生产订单强制完工时) */ - IRule pMOToFinishPickMRule = new PMOToFinishPickMRule(); - pMOToFinishPickMRule.process(newaggvos); - /** ******************** */ +// /** 同步修改备料计划完成(生产订单强制完工时) */ +// IRule pMOToFinishPickMRule = new PMOToFinishPickMRule(); +// pMOToFinishPickMRule.process(newaggvos); +// /** ******************** */ PMOAggVO newaggvo = PMOBPService.getIPMOQueryService().queryByPk(vos[0].getParentVO().getCpmohid()); return new PMOAggVO[]{newaggvo}; diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/PMOToFinishPickMRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/PMOToFinishPickMRule.java index 38129aa..fdead1b 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/PMOToFinishPickMRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/PMOToFinishPickMRule.java @@ -27,52 +27,53 @@ public class PMOToFinishPickMRule * 3.若为完工状态,则根据生产订单明细表中生产订单行查询备料计划 * 4.修改备料计划为完成状态(3) */ - for(int i = 0; i < vos.length; i++) { - PMOAggVO vo = vos[i]; - PMOItemVO[] items = vo.getChildrenVO(); - //循环生产订单明细 - for(int j = 0; j < items.length; j++) { - PMOItemVO item = items[j]; - //查看生产订单行状态是否为完工(2) - int fitemStatus = item.getFitemstatus(); - if(fitemStatus != 2) { - continue; - } - //根据生产订单行查询备料计划 - String cmoid = item.getCmoid(); - String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cmoid + "'"; - IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class); - // 根据主键查询得到aggvo - try { - @SuppressWarnings("unchecked") - ArrayList aggVOs = (ArrayList)aggvoQueryService.queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false); - if(aggVOs.size() <= 0) { - continue; - } - //数组转换 - AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()]; - boolean flag = false; - for(int z=0; z aggVOs = (ArrayList)aggvoQueryService.queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false); +// if(aggVOs.size() <= 0) { +// continue; +// } +// //数组转换 +// AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()]; +// boolean flag = false; +// for(int z=0; z snSaveRule = new WrSerialNoSaveRule(); processor.addAfterRule(snSaveRule); - /** 同步修改备料计划完成 */ - IRule pickMFinishRule = new PickMFinishRule(); - processor.addAfterRule(pickMFinishRule); - /** ******************** */ +// /** 同步修改备料计划完成 */ +// IRule pickMFinishRule = new PickMFinishRule(); +// processor.addAfterRule(pickMFinishRule); +// /** ******************** */ if (!this.isOnlyInsert) { processor.addAfterRule(new WrIsSaveAndApproveRule()); diff --git a/mmpac/src/private/nc/bs/mmpac/wr/rule/serialno/PickMFinishRule.java b/mmpac/src/private/nc/bs/mmpac/wr/rule/serialno/PickMFinishRule.java index 7a295c8..1dcd393 100644 --- a/mmpac/src/private/nc/bs/mmpac/wr/rule/serialno/PickMFinishRule.java +++ b/mmpac/src/private/nc/bs/mmpac/wr/rule/serialno/PickMFinishRule.java @@ -27,69 +27,69 @@ public class PickMFinishRule extends Object implements IRule { * 业务逻辑: 1.根据生产报告子表中生产订单行查看生产订单明细表 2.查看生产订单明细行的状态是否为完工(2) * 3.若为完工状态,则根据生成报告子表中生产订单行查询备料计划 4.修改备料计划为完成状态(3) */ - for (int i = 0; i < vos.length; i++) { - AggWrVO vo = vos[i]; - WrItemVO[] items = vo.getChildrenVO(); - // 循环生产报告子表 - for (int j = 0; j < items.length; j++) { - WrItemVO item = items[j]; - String cbmobid = item.getCbmobid(); - String[] keys = { cbmobid }; - // 生产订单行查询 - PMOItemVO[] pmoItemvos = (new PMOItemVOQueryBP()).getPMOItemVOsByids(keys); - // 查看生产订单行状态是否为完工(2) - if (pmoItemvos.length > 0) { - PMOItemVO pmoItem = pmoItemvos[0]; - int fitemStatus = pmoItem.getFitemstatus(); - if (fitemStatus != 2) { - continue; - } - // 根据生产订单行查询备料计划 -// BillQuery query = new BillQuery(AggPickmVO.class); -// AggPickmVO[] aggVOs = (AggPickmVO[])query.query(keys); - - String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cbmobid + "'"; - IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance() - .lookup(IMDPersistenceQueryService.class); - // 根据主键查询得到aggvo - try { - @SuppressWarnings("unchecked") - ArrayList aggVOs = (ArrayList) aggvoQueryService - .queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false); - if (aggVOs.size() <= 0) { - continue; - } - // 数组转换 - AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()]; - boolean flag = false; - for (int z = 0; z < aggVOs.size(); z++) { - AggPickmVO aggPickmVO = aggVOs.get(z); - PickmHeadVO pickmHeadVO = aggPickmVO.getParentVO(); - Integer fbillstatus = pickmHeadVO.getFbillstatus(); - if (fbillstatus != 2) { - aggVOsArr[z] = aggVOs.get(z); - flag = true; - } - - } - if (flag) { - // 备料计划完工 - IPickmMaintainService ipickmMaintainService = NCLocator.getInstance() - .lookup(IPickmMaintainService.class); - ipickmMaintainService.finishPickm(aggVOsArr); - } - } catch (BusinessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - - } - } - AggWrChangeVO[] aggChangeVOs = WrBusiVOToChangeVO.changeOnlySerialNoVO(vos); - - WrSerialNoDocInsertControl inSertControl = new WrSerialNoDocInsertControl(); - inSertControl.process(aggChangeVOs); +// for (int i = 0; i < vos.length; i++) { +// AggWrVO vo = vos[i]; +// WrItemVO[] items = vo.getChildrenVO(); +// // 循环生产报告子表 +// for (int j = 0; j < items.length; j++) { +// WrItemVO item = items[j]; +// String cbmobid = item.getCbmobid(); +// String[] keys = { cbmobid }; +// // 生产订单行查询 +// PMOItemVO[] pmoItemvos = (new PMOItemVOQueryBP()).getPMOItemVOsByids(keys); +// // 查看生产订单行状态是否为完工(2) +// if (pmoItemvos.length > 0) { +// PMOItemVO pmoItem = pmoItemvos[0]; +// int fitemStatus = pmoItem.getFitemstatus(); +// if (fitemStatus != 2) { +// continue; +// } +// // 根据生产订单行查询备料计划 +//// BillQuery query = new BillQuery(AggPickmVO.class); +//// AggPickmVO[] aggVOs = (AggPickmVO[])query.query(keys); +// +// String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cbmobid + "'"; +// IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance() +// .lookup(IMDPersistenceQueryService.class); +// // 根据主键查询得到aggvo +// try { +// @SuppressWarnings("unchecked") +// ArrayList aggVOs = (ArrayList) aggvoQueryService +// .queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false); +// if (aggVOs.size() <= 0) { +// continue; +// } +// // 数组转换 +// AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()]; +// boolean flag = false; +// for (int z = 0; z < aggVOs.size(); z++) { +// AggPickmVO aggPickmVO = aggVOs.get(z); +// PickmHeadVO pickmHeadVO = aggPickmVO.getParentVO(); +// Integer fbillstatus = pickmHeadVO.getFbillstatus(); +// if (fbillstatus != 2) { +// aggVOsArr[z] = aggVOs.get(z); +// flag = true; +// } +// +// } +// if (flag) { +// // 备料计划完工 +// IPickmMaintainService ipickmMaintainService = NCLocator.getInstance() +// .lookup(IPickmMaintainService.class); +// ipickmMaintainService.finishPickm(aggVOsArr); +// } +// } catch (BusinessException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// +// } +// +// } +// } +// AggWrChangeVO[] aggChangeVOs = WrBusiVOToChangeVO.changeOnlySerialNoVO(vos); +// +// WrSerialNoDocInsertControl inSertControl = new WrSerialNoDocInsertControl(); +// inSertControl.process(aggChangeVOs); } } From 1492a58adbd866035c1698e918cd5dd0deba54d5 Mon Sep 17 00:00:00 2001 From: lihao Date: Wed, 14 May 2025 14:32:45 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E5=8D=95=E4=BB=B7?= =?UTF-8?q?=E7=A8=8E=E5=90=88=E8=AE=A1=E4=BC=98=E5=8C=96=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/GatheringbillEditSaveBatchBSAction.java | 10 ++++++---- .../arap/actions/GatheringbillSaveBatchBSAction.java | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java b/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java index 0d816c3..0f5a5f6 100644 --- a/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java +++ b/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java @@ -71,23 +71,25 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction UFDouble changeMoney = money.sub(oriMoney); // 根据销售订单id去查询销售订单 BaseDAO dao = new BaseDAO(); - String sql = "select nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" + def3 + String sql = "select vbillcode,nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" + def3 + "'"; + Map saleMap = (Map) dao.executeQuery(sql, new MapProcessor()); // 销售订单价税合计 UFDouble ntotalorigmny = UFDouble.ZERO_DBL; // 销售订单实际收款金额 UFDouble nreceivedmny = UFDouble.ZERO_DBL; - if (saleMap != null) { + String vbillcode = ""; + if(saleMap != null) { nreceivedmny = new UFDouble( saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString()); ntotalorigmny = new UFDouble( saleMap.get("ntotalorigmny") == null ? "0" : saleMap.get("ntotalorigmny").toString()); + vbillcode = saleMap.get("vbillcode") == null ? "" : saleMap.get("vbillcode").toString(); } - if (money.compareTo(ntotalorigmny) > 0) { UFDouble moreMoney = money.sub(ntotalorigmny); - throw new BusinessException("【该笔收款已超销售订单" + moreMoney + "元,无法传输!请检查订单累计收款金额!】"); + throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcode + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】"); } } diff --git a/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java b/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java index 188c52d..7db1f56 100644 --- a/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java +++ b/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java @@ -82,20 +82,22 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction { //根据销售订单id去查询销售订单 BaseDAO dao = new BaseDAO(); - String sql = "select nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'"; + String sql = "select vbillcode,nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'"; Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor()); //销售订单价税合计 UFDouble ntotalorigmny = UFDouble.ZERO_DBL; //销售订单实际收款金额 UFDouble nreceivedmny = UFDouble.ZERO_DBL; + String vbillcode = ""; if(saleMap != null) { nreceivedmny = new UFDouble(saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString()); ntotalorigmny = new UFDouble(saleMap.get("ntotalorigmny") == null ? "0" : saleMap.get("ntotalorigmny").toString()); + vbillcode = saleMap.get("vbillcode") == null ? "" : saleMap.get("vbillcode").toString(); } if (money.compareTo(ntotalorigmny) > 0) { UFDouble moreMoney = money.sub(ntotalorigmny); - throw new BusinessException("【该笔收款已超销售订单" + moreMoney + "元,无法传输!请检查订单累计收款金额!】"); + throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcode + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】"); } } } From 803f6ba915ee652eb1d86f5aa46ad0bddb44f554 Mon Sep 17 00:00:00 2001 From: "zhangxinah@yonyou.com" Date: Wed, 14 May 2025 18:24:18 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E8=A7=A3=E5=86=B3MPR=E8=BF=90=E7=AE=97?= =?UTF-8?q?=E5=9B=9E=E5=86=99=E5=A4=87=E6=96=99=E8=AE=A1=E5=88=92=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E9=97=AE=E9=A2=98-=E5=BC=A0=E9=91=AB0514?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nc/rule/mmpps/plo/PloProdDeptRule.java | 240 +++++++++--------- 1 file changed, 117 insertions(+), 123 deletions(-) diff --git a/mmpps/src/public/nc/rule/mmpps/plo/PloProdDeptRule.java b/mmpps/src/public/nc/rule/mmpps/plo/PloProdDeptRule.java index 938c68b..d73cf44 100644 --- a/mmpps/src/public/nc/rule/mmpps/plo/PloProdDeptRule.java +++ b/mmpps/src/public/nc/rule/mmpps/plo/PloProdDeptRule.java @@ -32,129 +32,123 @@ import nc.vo.mmpac.pickm.entity.PickmItemVO; public class PloProdDeptRule implements IRule { - @Override - public void process(AggregatedPoVO[] vos) { - if (null == vos) { - return; - } - Map> map = new HashMap>(); - ArrayList vsrcbidList = new ArrayList<>(); - for (AggregatedPoVO agg : vos) { - PoVO plo = agg.getParentVO(); - String vid = plo.getCmaterialvid(); - String stockorgid = plo.getCstockorgid(); - String stockorgvid = plo.getCstockorgvid(); - String prodDeptid = plo.getCproddeptid(); - String prodDeptvid = plo.getCproddeptvid(); - Integer posource = plo.getFposource(); - if (PoSourceEnum.COMPUT == posource && MMValueCheck.isEmpty(prodDeptid) - && MMValueCheck.isEmpty(prodDeptvid) && MMValueCheck.isNotEmpty(stockorgid) - && MMValueCheck.isNotEmpty(stockorgvid)) { - List vids = map.get(stockorgid); - if (null == vids) { - List list = new ArrayList(); - list.add(vid); - map.put(stockorgid, list); - } - else { - vids.add(vid); - } - } - String vsrcbid = plo.getVsrcbid();//来源单据表体主键 - int fdemandbill = plo.getFdemandbill();//需求来源 - if (PoSourceEnum.COMPUT == posource && fdemandbill == 1) { - vsrcbidList.add(vsrcbid); - } - } - if (vsrcbidList != null && vsrcbidList.size() > 0) { - String[] vsrcbids = vsrcbidList.toArray(new String[vsrcbidList.size()]); - Map pickmVOMap; - try { - pickmVOMap = NCLocator.getInstance().lookup(IPickmPubQueryService.class) - .queryPickm4Issue(vsrcbids); - } catch (BusinessException e) { - throw new RuntimeException(e); - } - pickmVOMap.getClass(); - for (AggregatedPoVO agg : vos) { - PoVO plo = agg.getParentVO(); - String vsrcbid = plo.getVsrcbid();//来源单据表体主键 - AggPickmVO aggPickmVOData = pickmVOMap.get(vsrcbid); - if (aggPickmVOData != null) { - PickmItemVO[] children = (PickmItemVO[]) aggPickmVOData.getChildren(PickmItemVO.class); - String vbdef5 = "";//合同编号 - String vbdef6 = "";//合同销售订单号 - String vbdef7 = "";//标前项目号 - for (PickmItemVO pickmItemVO : children) { - if (pickmItemVO.getCpickm_bid().equals(vsrcbid)) { - vbdef5 = pickmItemVO.getVbdef5();//合同编号 - vbdef6 = pickmItemVO.getVbdef6();//合同销售订单号 - vbdef7 = pickmItemVO.getVbdef7();//标前项目号 - } - } - plo.setVdef2(vbdef5);//合同编号 - plo.setVdef3(vbdef6);//合同销售订单号 - plo.setVdef4(vbdef7);//标前项目号 - } - } - } - Set stockorgids = map.keySet(); - Iterator i = stockorgids.iterator(); - while (i.hasNext()) { - String key = i.next(); - List vids = map.get(key); - Map results = - MaterialPubService.queryMaterialProduceInfoByPks(vids.toArray(new String[0]), key, new String[] { - MaterialProdVO.PK_PRODEPTDOC - }); - for (AggregatedPoVO agg : vos) { - PoVO plo = agg.getParentVO(); - String vid = plo.getCmaterialvid(); - String stockorgid = plo.getCstockorgid(); - String stockorgvid = plo.getCstockorgvid(); - Integer posource = plo.getFposource(); - if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(stockorgid) - && MMValueCheck.isNotEmpty(stockorgvid)) { - if (null != results) { - MaterialProdVO prodvo = results.get(vid); - if (null != prodvo) { - plo.setCproddeptid(prodvo.getPk_prodeptdoc());// 生产部门ID - } - } - } - } - } - // 根据生产部门ID查询设置VID - List proddeptids = new ArrayList(); - for (AggregatedPoVO agg : vos) { - PoVO plo = agg.getParentVO(); - String prodDeptid = plo.getCproddeptid(); - Integer posource = plo.getFposource(); - if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) { - proddeptids.add(prodDeptid); - } - } - IDeptPubService deptPubService = this.getDeptPubService(); - try { - HashMap results = deptPubService.getLastVIDSByDeptIDS(proddeptids.toArray(new String[0])); - if (null != results) { - for (AggregatedPoVO agg : vos) { - PoVO plo = agg.getParentVO(); - String prodDeptid = plo.getCproddeptid(); - Integer posource = plo.getFposource(); - if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) { - plo.setCproddeptvid(results.get(prodDeptid)); - } - } - } - } - catch (BusinessException e) { - ExceptionUtils.wrappException(e); - } + @Override + public void process(AggregatedPoVO[] vos) { + if (null == vos) { + return; + } + Map> map = new HashMap>(); + ArrayList vsrcbidList = new ArrayList<>(); + for (AggregatedPoVO agg : vos) { + PoVO plo = agg.getParentVO(); + String vid = plo.getCmaterialvid(); + String stockorgid = plo.getCstockorgid(); + String stockorgvid = plo.getCstockorgvid(); + String prodDeptid = plo.getCproddeptid(); + String prodDeptvid = plo.getCproddeptvid(); + Integer posource = plo.getFposource(); + if (PoSourceEnum.COMPUT == posource && MMValueCheck.isEmpty(prodDeptid) && MMValueCheck.isEmpty(prodDeptvid) + && MMValueCheck.isNotEmpty(stockorgid) && MMValueCheck.isNotEmpty(stockorgvid)) { + List vids = map.get(stockorgid); + if (null == vids) { + List list = new ArrayList(); + list.add(vid); + map.put(stockorgid, list); + } else { + vids.add(vid); + } + } + String vsrcbid = plo.getVsrcbid();// 来源单据表体主键 + // 需求来源为备料计划的才回写 + if (PoSourceEnum.COMPUT == posource && plo.getFdemandbill() != null && plo.getFdemandbill() == 1) { + vsrcbidList.add(vsrcbid); + } + } + if (vsrcbidList != null && vsrcbidList.size() > 0) { + String[] vsrcbids = vsrcbidList.toArray(new String[vsrcbidList.size()]); + Map pickmVOMap; + try { + pickmVOMap = NCLocator.getInstance().lookup(IPickmPubQueryService.class).queryPickm4Issue(vsrcbids); + } catch (BusinessException e) { + throw new RuntimeException(e); + } + pickmVOMap.getClass(); + for (AggregatedPoVO agg : vos) { + PoVO plo = agg.getParentVO(); + String vsrcbid = plo.getVsrcbid();// 来源单据表体主键 + AggPickmVO aggPickmVOData = pickmVOMap.get(vsrcbid); + if (aggPickmVOData != null) { + PickmItemVO[] children = (PickmItemVO[]) aggPickmVOData.getChildren(PickmItemVO.class); + String vbdef5 = "";// 合同编号 + String vbdef6 = "";// 合同销售订单号 + String vbdef7 = "";// 标前项目号 + for (PickmItemVO pickmItemVO : children) { + if (pickmItemVO.getCpickm_bid().equals(vsrcbid)) { + vbdef5 = pickmItemVO.getVbdef5();// 合同编号 + vbdef6 = pickmItemVO.getVbdef6();// 合同销售订单号 + vbdef7 = pickmItemVO.getVbdef7();// 标前项目号 + } + } + plo.setVdef2(vbdef5);// 合同编号 + plo.setVdef3(vbdef6);// 合同销售订单号 + plo.setVdef4(vbdef7);// 标前项目号 + } + } + } + Set stockorgids = map.keySet(); + Iterator i = stockorgids.iterator(); + while (i.hasNext()) { + String key = i.next(); + List vids = map.get(key); + Map results = MaterialPubService.queryMaterialProduceInfoByPks( + vids.toArray(new String[0]), key, new String[] { MaterialProdVO.PK_PRODEPTDOC }); + for (AggregatedPoVO agg : vos) { + PoVO plo = agg.getParentVO(); + String vid = plo.getCmaterialvid(); + String stockorgid = plo.getCstockorgid(); + String stockorgvid = plo.getCstockorgvid(); + Integer posource = plo.getFposource(); + if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(stockorgid) + && MMValueCheck.isNotEmpty(stockorgvid)) { + if (null != results) { + MaterialProdVO prodvo = results.get(vid); + if (null != prodvo) { + plo.setCproddeptid(prodvo.getPk_prodeptdoc());// 生产部门ID + } + } + } + } + } + // 根据生产部门ID查询设置VID + List proddeptids = new ArrayList(); + for (AggregatedPoVO agg : vos) { + PoVO plo = agg.getParentVO(); + String prodDeptid = plo.getCproddeptid(); + Integer posource = plo.getFposource(); + if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) { + proddeptids.add(prodDeptid); + } + } + IDeptPubService deptPubService = this.getDeptPubService(); + try { + HashMap results = deptPubService.getLastVIDSByDeptIDS(proddeptids.toArray(new String[0])); + if (null != results) { + for (AggregatedPoVO agg : vos) { + PoVO plo = agg.getParentVO(); + String prodDeptid = plo.getCproddeptid(); + Integer posource = plo.getFposource(); + if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) { + plo.setCproddeptvid(results.get(prodDeptid)); + } + } + } + } catch (BusinessException e) { + ExceptionUtils.wrappException(e); + } - } + } - private IDeptPubService getDeptPubService() { - return NCLocator.getInstance().lookup(IDeptPubService.class); - } + private IDeptPubService getDeptPubService() { + return NCLocator.getInstance().lookup(IDeptPubService.class); + } } From 48f6b832feab3b0fe98acc3d84b27c14eb61621c Mon Sep 17 00:00:00 2001 From: "zhangxinah@yonyou.com" Date: Wed, 14 May 2025 18:24:40 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8F=91=E7=A5=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=8A=B6=E6=80=81=E6=8A=A5=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ivsale/util/InvoiceTypeToTspzUtil.java | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sscivm/src/public/nc/bs/sscivm/ivsale/util/InvoiceTypeToTspzUtil.java diff --git a/sscivm/src/public/nc/bs/sscivm/ivsale/util/InvoiceTypeToTspzUtil.java b/sscivm/src/public/nc/bs/sscivm/ivsale/util/InvoiceTypeToTspzUtil.java new file mode 100644 index 0000000..7c8f5f3 --- /dev/null +++ b/sscivm/src/public/nc/bs/sscivm/ivsale/util/InvoiceTypeToTspzUtil.java @@ -0,0 +1,89 @@ +package nc.bs.sscivm.ivsale.util; + +import nc.vo.sscivm.ivmpub.InvoiceTypeEnum; + +import java.util.HashMap; +import java.util.Map; + +/** + * 发票类型和特殊票种映射工具类 + * @author wangyl7 + * + */ +public class InvoiceTypeToTspzUtil { + private final static Map invoiceMap = new HashMap(); + private final static Map tspzMap = new HashMap(); + static { + invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_ZYFP_JDC.toIntValue(), "4"); + invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_DZPTFP_KCL.toIntValue(), "1"); + invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_DZZYFP_KCL.toIntValue(), "2"); + invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_PTFP_KCL.toIntValue(), "3"); + invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_ZYFP_KCL.toIntValue(), "4"); + invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_ESCTYFP.toIntValue(), "15");//二手车统一销售与机打重复 + invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_DZPTFP_NCP.toIntValue(), "1"); + invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_PTFP_NCP.toIntValue(), "3"); + + tspzMap.put(InvoiceTypeEnum.INVOICETYPE_ZYFP_JDC.toIntValue(), "12"); + tspzMap.put(InvoiceTypeEnum.INVOICETYPE_DZPTFP_KCL.toIntValue(), "16"); + tspzMap.put(InvoiceTypeEnum.INVOICETYPE_DZZYFP_KCL.toIntValue(), "16"); + tspzMap.put(InvoiceTypeEnum.INVOICETYPE_PTFP_KCL.toIntValue(), "16"); + tspzMap.put(InvoiceTypeEnum.INVOICETYPE_ZYFP_KCL.toIntValue(), "16"); + tspzMap.put(InvoiceTypeEnum.INVOICETYPE_DZPTFP_NCP.toIntValue(), "9"); + tspzMap.put(InvoiceTypeEnum.INVOICETYPE_PTFP_NCP.toIntValue(), "9"); + } + + /** + * 获取真实的发票类型 + * @param fplx 发票类型 + * @return 真实的发票类型 + */ + public static String getRealInvoicetype(Integer fplx){ + if (invoiceMap.containsKey(fplx)){ + return invoiceMap.get(fplx); + } + return String.valueOf(fplx); + } + + /** + * 获取特殊票种 + * @param fplx 发票类型 + * @return 特殊票种 + */ + public static String getTspz(Integer fplx){ + if (tspzMap.containsKey(fplx)){ + return tspzMap.get(fplx); + } + return null; + } + + /** + * 更具发票类型和特殊票种转发票类型 + * @param fplx + * @param tspz + * @return + */ + public static String getInvoicetypeByFplxAndTspz(String fplx, String tspz){ + //非特殊票种 + if (tspz == null || tspz.startsWith("E")){ + return fplx; + } + //全电发票不拼接 + if ("31".equals(fplx) || "32".equals(fplx) ||"33".equals(fplx) || "34".equals(fplx)){ + return fplx; + } + //增值税专用发票(机动车) + if ("412".equals(fplx + tspz)){ + return InvoiceTypeEnum.INVOICETYPE_ZYFP_JDC.toStringValue(); + } + //农产品收购 + if ("9".equals(tspz)) { + return fplx + "0" + tspz; + } + //数电纸质发票(机动车销售统一发票 + if ("36".equals(fplx)){ + return fplx; + } + //其他特殊票种发票 + return fplx + tspz; + } +} From 174210024262cbc36241f5e38b53e90b72d8098a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=AD=A3=40=E7=94=A8=E5=8F=8B?= Date: Wed, 14 May 2025 21:19:48 +0800 Subject: [PATCH 7/9] =?UTF-8?q?gaoningbom=E6=96=B0=E5=A2=9E=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=B7=BB=E5=8A=A0=E6=88=90=E5=A5=97=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E9=80=BB=E8=BE=91=5F=E4=B8=89=E6=96=B9=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E7=94=A8=E6=88=B7=E4=BC=9A=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/mmbd/bom/APIBomBusinessServiceImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java b/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java index 5812af9..b781f31 100644 --- a/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java +++ b/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java @@ -88,6 +88,8 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService { private static Map tsMap = new HashMap(); + private String orgCodeFlag =null; + private static Map voMap = new HashMap(); private static Map> idsMap = new HashMap(); @@ -112,7 +114,11 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService { list.add(agg); } AggBomVO[] aggVOs = (AggBomVO[]) list.toArray(new AggBomVO[list.size()]); - + if(aggVOs[0].getParentVO().getAttributeValue("pk_org")==null||aggVOs[0].getParentVO().getAttributeValue("pk_org")==""){ + ExceptionUtils.wrappBusinessException("请求参数pk_org为空,请检查!!!!"); + }else{ + this.orgCodeFlag=aggVOs[0].getParentVO().getAttributeValue("pk_org").toString(); + } BillFieldsCodeToPkUtil.doTranslateVOFields(aggVOs); IUifService iUifService = NCLocator.getInstance().lookup(IUifService.class); for (AggBomVO aggtwo : aggVOs) { @@ -170,7 +176,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService { result = service.insertBom((AggBomVO[]) addAggvoList.toArray(new AggBomVO[0])); } else if (!commitAggvoList.isEmpty() && addAggvoList.isEmpty()) { List newAggVOList = new ArrayList<>(); - if ("gaoning".equals(userCode)) { + if ("gaoning".equals(userCode)|| "C029".equals(orgCodeFlag)) { for (AggBomVO aggvo : commitAggvoList) { result = service.insertCommitBomWithParam(new AggBomVO[] { aggvo }, true, true); newAggVOList.add(result[0]); @@ -720,7 +726,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService { if (VersionTypeEnum.AVAILABLE.equalsValue(head.getHfversiontype()) && !head.getCbomid().equals(headvo.getCbomid())) { // sdlizheng --添加独立判断--plm三方越过此校验 - if ("gaoning".equals(userCode) || "dlkgsrm".equals(userCode)) { + if ("gaoning".equals(userCode) || "dlkgsrm".equals(userCode)|| "C029".equals(this.orgCodeFlag)) { // AggBomVO afterVO = service.canceldefault(aggBomVO); } else { return UFBoolean.TRUE; @@ -774,14 +780,14 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService { agg.getParent().setAttributeValue("fbillstatus", Integer.valueOf(-1)); agg.getParent().setAttributeValue("hfbomsource", Integer.valueOf(1)); agg.getParent().setAttributeValue("hfbomcategory", Integer.valueOf(1)); - if ("gaoning".equals(userCode) || "dlkgsrm".equals(userCode)) { + if ("gaoning".equals(userCode) || "dlkgsrm".equals(userCode)|| "C029".equals(this.orgCodeFlag)) { // sdlizheng // 1、对于之前不存在的BOM,新增时:如果是传自由态,不默认且无效,走标准逻辑,如果传的是审批态默认且有效。2025年4月11日16点28分 start if (fbillstatus != null && "1".equals(fbillstatus.toString())) { agg.getParent().setAttributeValue("hfversiontype", Integer.valueOf(1)); agg.getParent().setAttributeValue("hbdefault", UFBoolean.TRUE); }else if(fbillstatus != null && "-1".equals(fbillstatus.toString())){ - if("gaoning".equals(userCode)){ + if("gaoning".equals(userCode)|| "C029".equals(this.orgCodeFlag)){ agg.getParent().setAttributeValue("hfversiontype", Integer.valueOf(1)); agg.getParent().setAttributeValue("hbdefault", UFBoolean.TRUE); } From cc00d496fc1687444a8bf3de2bf00b9fe43f1c08 Mon Sep 17 00:00:00 2001 From: lihao Date: Thu, 15 May 2025 09:29:48 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/so/m30/APISaleOrderMaitainImpl.java | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java b/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java index bd063a9..ac51d40 100644 --- a/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java +++ b/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java @@ -551,6 +551,18 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain { if (vtrantypecode != null && !vtrantypecode.isEmpty()) { targetHVO.setVtrantypecode(vtrantypecode); } + //订单关联合同号 + + String vdef19 = sourceHVO.getVdef19(); + if (vdef19 != null && !vdef19.isEmpty()) { + targetHVO.setVdef19(vdef19); + } + + // 工程名称 + String vdef20 = sourceHVO.getVdef20(); + if (vdef20 != null && !vdef20.isEmpty()) { + targetHVO.setVdef20(vdef20); + } // 更新 SaleOrderBVO 字段 SaleOrderBVO[] targetBVOs = target.getChildrenVO(); @@ -692,12 +704,28 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain { defList.clear(); defList = getDefList("BIP-ddh"); targetBVO.setVbdef5(defList.getOrDefault(vbdef5, "")); - targetBVO.setVbdef10(sourceBVO.getVbdef10());// 项目名称 - targetBVO.setVbdef13(sourceBVO.getVbdef13());// 国网行项目号 + // 新增字段的setter方法 + targetBVO.setVbdef10(sourceBVO.getVbdef10()); // 项目名称 + targetBVO.setVbdef13(sourceBVO.getVbdef13()); // 国网行项目号 + + + targetBVO.setVbdef18(sourceBVO.getVbdef18()); // 是否定制 + targetBVO.setVbdef19(sourceBVO.getVbdef19()); // 计划开工日期 + targetBVO.setVbdef20(sourceBVO.getVbdef20()); // 计划完工日期 + +// 更新日志输出(按需添加字段) NCCForUAPLogger.debug(String.format( - "cmaterialvid = [%S], vbdef1 = [%S], vbdef5 = [%S], vbdef10 = [%S], vbdef13 = [%S]", - cmaterialvid, targetBVO.getVbdef1(), targetBVO.getVbdef5(), targetBVO.getVbdef10(), - targetBVO.getVbdef13())); + "cmaterialvid = [%S], vbdef1 = [%S], vbdef5 = [%S], vbdef10 = [%S], vbdef13 = [%S], " + + " vbdef18 = [%S], vbdef19 = [%S], vbdef20 = [%S]", + cmaterialvid, + targetBVO.getVbdef1(), + targetBVO.getVbdef5(), + targetBVO.getVbdef10(), + targetBVO.getVbdef13(), + targetBVO.getVbdef18(), // 是否定制 + targetBVO.getVbdef19(), // 计划开工日期 + targetBVO.getVbdef20() // 计划完工日期 + )); } } From 5da447c7d39052588b7ab4fc7e3eb36b16b6a38d Mon Sep 17 00:00:00 2001 From: mzr Date: Thu, 15 May 2025 11:01:49 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E9=87=91=E6=85=A7=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9BIP=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../openapi/so/m30/SaleOrderResource.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java b/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java index 5f6292e..e8d1085 100644 --- a/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java +++ b/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java @@ -7,6 +7,7 @@ import nc.bs.framework.common.InvocationInfoProxy; import nc.bs.framework.common.NCLocator; import nc.itf.bd.defdoc.IDefdocService; import nc.itf.pim.project.prv.IProject; +import nc.jdbc.framework.SQLParameter; import nc.jdbc.framework.processor.ColumnListProcessor; import nc.jdbc.framework.processor.ColumnProcessor; import nc.jdbc.framework.processor.MapProcessor; @@ -21,6 +22,8 @@ import nccloud.api.rest.utils.NCCRestUtils; import nccloud.api.rest.utils.ResultMessageUtil; import nccloud.api.so.m30.IAPISaleOrderMaitain; import nccloud.api.so.m30.IAPISaleOrderQuery; +import nccloud.baseapp.core.log.NCCForUAPLogger; +import nccloud.commons.lang.StringUtils; import nccloud.openapi.scmpub.pub.NCCPubRestResource; import nccloud.openapi.scmpub.pub.TransferCodeToPKTool; import nccloud.openapi.scmpub.pub.TransferMapToVOTool; @@ -483,4 +486,45 @@ public class SaleOrderResource extends NCCPubRestResource { return ResultMessageUtil.exceptionToJSON(e); } } + + /** + * 金慧软件修改BIP销售订单明细 + * + * @author mzr + * @date 2025/05/14 + */ + @POST + @Path("updateDef") + @Consumes({"application/json"}) + @Produces({"application/json"}) + public JSONString updateDef(Map paramMap) { + String csaleorderbid = (String) paramMap.get("csaleorderbid"); + if (StringUtils.isEmpty(csaleorderbid)) { + return ResultMessageUtil.exceptionToJSON("传入参数为空,请检查", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); + } + try { + StringBuilder sql = new StringBuilder("update so_saleorder_b set "); + SQLParameter parameter = new SQLParameter(); + for (Map.Entry entry : paramMap.entrySet()) { + if (!"csaleorderbid".equals(entry.getKey())) { + sql.append(entry.getKey()).append(" = ?, "); + parameter.addParam(entry.getValue()); + } + } + if (parameter.getCountParams() <= 0) { + return ResultMessageUtil.toJSON("传入参数为空,请检查", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); + } + // 删除最后的", " + sql.delete(sql.length() - 2, sql.length()); + sql.append(" where csaleorderbid = ?"); + NCCForUAPLogger.debug("updateDef-sql:" + sql); + parameter.addParam(csaleorderbid); + BaseDAO baseDAO = new BaseDAO(); + int num = baseDAO.executeUpdate(sql.toString(), parameter); + return ResultMessageUtil.toJSON(num, "销售订单修改成功"); + } catch (BusinessException e) { + return ResultMessageUtil.exceptionToJSON(e); + } + } + }