From 1b2f6d5d9cb3d9a195b983635609ac33c28e872d Mon Sep 17 00:00:00 2001 From: mzr <1562242162@qq.com> Date: Fri, 7 Mar 2025 10:57:18 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2-=E6=98=AF=E5=90=A6=E8=B5=A0=E5=93=81=E5=8F=96?= =?UTF-8?q?=E5=80=BC=E8=B0=83=E6=95=B4=E5=92=8C=E5=A2=9E=E8=A1=8C=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/so/m30/APISaleOrderMaitainImpl.java | 298 ++++++++++-------- .../openapi/so/m30/SaleOrderResource.java | 12 +- 2 files changed, 165 insertions(+), 145 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 9cfa93f..bc2f5cd 100644 --- a/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java +++ b/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java @@ -282,16 +282,18 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain { String primaryKey = hvo.getCsaleorderid(); SaleOrderVO bipVo = vosMap.get(primaryKey); // 创建一个Set来存储vos中多的csaleorderbid - Set delBids = findOtherBids(bipVo.getChildrenVO(), vo.getChildrenVO()); + // Set delBids = findOtherBids(bipVo.getChildrenVO(), vo.getChildrenVO()); // 设置单据状态 hvo.setStatus(VOStatus.UPDATED); // 比较combinBillVOs中的BVO和vos中的BVO for (SaleOrderBVO bvo : vo.getChildrenVO()) { bvo.setStatus(VOStatus.UPDATED); // 设置删除的物料行的状态 - if (!delBids.isEmpty() && delBids.contains(bvo.getCsaleorderbid())) { - bvo.setStatus(VOStatus.DELETED); - NCCForUAPLogger.debug("findDeletedBids:" + VOStatus.DELETED + ",csaleorderbid = " + bvo.getCsaleorderbid()); + for (SaleOrderBVO bipBVO : bipVo.getChildrenVO()) { + if (bvo.getCsaleorderbid().equals(bipBVO.getCsaleorderbid()) && (1 == bipBVO.getDr())) { + bvo.setStatus(VOStatus.DELETED); + NCCForUAPLogger.debug("findDeletedBids:" + VOStatus.DELETED + ",csaleorderbid = " + bvo.getCsaleorderbid()); + } } } // 更新 combinBillVO 中的字段为 vos 中的值 @@ -434,6 +436,8 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain { // 价税合计 targetBVO.setNorigtaxmny(sourceBVO.getNorigtaxmny()); targetBVO.setCmaterialvid(sourceBVO.getCmaterialvid()); + // 是否赠品 + targetBVO.setBlargessflag(sourceBVO.getBlargessflag()); // 折本汇率 UFDouble nexchangerate = getUFDouble_NullAsOne(sourceBVO.getNexchangerate()); targetBVO.setNexchangerate(nexchangerate); @@ -553,7 +557,10 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain { private Set findOtherBids(SaleOrderBVO[] bipBVOs, SaleOrderBVO[] nccBVOs) { Set bipBids = new HashSet<>(); for (SaleOrderBVO bvo : bipBVOs) { - bipBids.add(bvo.getCsaleorderbid()); + String csaleorderbid = bvo.getCsaleorderbid(); + if (csaleorderbid != null && !csaleorderbid.isEmpty()) { + bipBids.add(csaleorderbid); + } } Set deletedBids = new HashSet<>(); @@ -574,169 +581,184 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain { for (int i = 0; i < oldVOs.length; i++) { copyVOs[i] = (SaleOrderVO) oldVOs[i].clone(); } + // 将 vos 中的元素按主键存储在 Map 中 + Map vosMap = new HashMap<>(); for (SaleOrderVO vo : copyVOs) { + vosMap.put(vo.getParentVO().getCsaleorderid(), vo); + } + for (Map objectMap : paramList) { + Map headdata = (Map) objectMap.get("so_saleorder"); + String primaryKey = headdata.getOrDefault("csaleorderid", "") + ""; + SaleOrderVO vo = vosMap.get(primaryKey); SaleOrderHVO hvo = vo.getParentVO(); - SaleOrderBVO[] bvos = vo.getChildrenVO(); - List bvoList = new ArrayList<>(Arrays.asList(bvos)); String csaleorderid = hvo.getCsaleorderid(); String ybpk = hvo.getCorigcurrencyid(); - Map objectMap = Collections.emptyMap(); - for (Map map : paramList) { - objectMap = (Map) map.get(csaleorderid); - } - if (objectMap != null && !objectMap.isEmpty()) { - List bodyArr = (List) objectMap.get("so_saleorder_b"); - for (Object body : bodyArr) { - Map bodydata = (Map) body; - if ("add".equals(bodydata.get("status"))) { - String pkOrgV = hvo.getPk_org_v(); - String pkOrg = hvo.getPk_org(); - String pk_group = AppContext.getInstance().getPkGroup(); - // 新数据的实体 - // SaleOrderBVO newBvo = (SaleOrderBVO) bvos[0].clone(); - SaleOrderBVO newBvo = new SaleOrderBVO(); - newBvo.setStatus(VOStatus.NEW); - newBvo.setAttributeValue("pk_group", pk_group); - newBvo.setAttributeValue("cprojectid", bodydata.get("cprojectid")); - // newBvo.setAttributeValue("ctrafficorgvid", pkOrg); - // newBvo.setAttributeValue("csendstockorgvid", pkOrg); - // newBvo.setAttributeValue("csendstordocid", pkOrg); - // newBvo.setAttributeValue("csendstockorgid", pkOrg); - // newBvo.setAttributeValue("carorgid", pkOrg); - // newBvo.setAttributeValue("carorgvid", pkOrg); - // newBvo.setAttributeValue("csettleorgid", pkOrg); - // newBvo.setAttributeValue("csettleorgvid", pkOrg); + SaleOrderBVO[] bvos = vo.getChildrenVO(); + List bvoList = new ArrayList<>(Arrays.asList(bvos)); - newBvo.setAttributeValue("ctaxcountryid", "CN"); - newBvo.setAttributeValue("crececountryid", "CN"); - newBvo.setAttributeValue("csendcountryid", "CN"); + List bodyArr = (List) objectMap.get("so_saleorder_b"); + for (Object body : bodyArr) { + Map bodydata = (Map) body; + if ("add".equals(bodydata.get("status"))) { + String pkOrgV = hvo.getPk_org_v(); + String pkOrg = hvo.getPk_org(); + String pk_group = AppContext.getInstance().getPkGroup(); + // 新数据的实体 + // SaleOrderBVO newBvo = (SaleOrderBVO) bvos[0].clone(); + SaleOrderBVO newBvo = new SaleOrderBVO(); + newBvo.setStatus(VOStatus.NEW); + newBvo.setAttributeValue("pk_group", pk_group); + newBvo.setAttributeValue("cprojectid", bodydata.get("cprojectid")); + // newBvo.setAttributeValue("ctrafficorgvid", pkOrg); + // newBvo.setAttributeValue("csendstockorgvid", pkOrg); + // newBvo.setAttributeValue("csendstordocid", pkOrg); + // newBvo.setAttributeValue("csendstockorgid", pkOrg); + // newBvo.setAttributeValue("carorgid", pkOrg); + // newBvo.setAttributeValue("carorgvid", pkOrg); + // newBvo.setAttributeValue("csettleorgid", pkOrg); + // newBvo.setAttributeValue("csettleorgvid", pkOrg); - newBvo.setAttributeValue("fbuysellflag", 1); - UFDouble nexchangerateBip = getUFDouble_NullAsOne(bodydata.get("nexchangerate")); - newBvo.setNexchangerate(nexchangerateBip); - // 设置物料的关联字段的值 - newBvo.setCmaterialvid(bodydata.get("cmaterialvid") + ""); - UFDouble ntaxrate = BFPubTools.getUFDouble_NullAsZero(bodydata.get("ntaxrate")); - UFDouble nnum = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nnum")); - newBvo.setAttributeValue("ntaxrate", ntaxrate); - newBvo.setAttributeValue("nnum", nnum); - newBvo.setVbdef11(bodydata.getOrDefault("vbdef11", "") + ""); + newBvo.setAttributeValue("ctaxcountryid", "CN"); + newBvo.setAttributeValue("crececountryid", "CN"); + newBvo.setAttributeValue("csendcountryid", "CN"); - UFDouble norigtaxprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("norigtaxprice")); - newBvo.setAttributeValue("norigtaxprice", norigtaxprice); - UFDouble norigprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("norigprice")); - newBvo.setAttributeValue("norigprice", norigprice); - setMaterl(newBvo); - newBvo.setCsaleorderbid(null); + newBvo.setAttributeValue("fbuysellflag", 1); + UFDouble nexchangerateBip = getUFDouble_NullAsOne(bodydata.get("nexchangerate")); + newBvo.setNexchangerate(nexchangerateBip); + // 设置物料的关联字段的值 + newBvo.setCmaterialvid(bodydata.get("cmaterialvid") + ""); + UFDouble ntaxrate = BFPubTools.getUFDouble_NullAsZero(bodydata.get("ntaxrate")); + UFDouble nnum = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nnum")); + newBvo.setAttributeValue("ntaxrate", ntaxrate); + newBvo.setAttributeValue("nnum", nnum); + newBvo.setVbdef11(bodydata.getOrDefault("vbdef11", "") + ""); - newBvo.setCcurrencyid(ybpk); - String zbbz = newBvo.getCcurrencyid(); + UFDouble norigtaxprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("norigtaxprice")); + newBvo.setAttributeValue("norigtaxprice", norigtaxprice); + UFDouble norigprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("norigprice")); + newBvo.setAttributeValue("norigprice", norigprice); + setMaterl(newBvo); + newBvo.setCsaleorderbid(null); - newBvo.setFtaxtypeflag(1); + newBvo.setCcurrencyid(ybpk); + String zbbz = newBvo.getCcurrencyid(); - // 折本汇率 - UFDouble nexchangerate = newBvo.getNexchangerate(); - // 含税单价 - UFDouble nqtorigtaxprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice")); - newBvo.setAttributeValue("nqtorigtaxprice", nqtorigtaxprice); - // 无税单价 - UFDouble nqtorigprice = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100))); - // 价税合计 - UFDouble norigtaxmny = nqtorigtaxprice.multiply(newBvo.getNqtunitnum()).setScale(2, 4); - newBvo.setNorigtaxmny(norigtaxmny); - // 无税金额 - UFDouble norigmny = nqtorigprice.multiply(newBvo.getNqtunitnum()); + newBvo.setFtaxtypeflag(1); - newBvo.setNorigmny(Currency.getFormaUfValue(ybpk, norigmny)); - // 税额 - newBvo.setNqtorigprice(nqtorigprice.setScale(4, 4)); + // 折本汇率 + UFDouble nexchangerate = newBvo.getNexchangerate(); + // 含税单价 + UFDouble nqtorigtaxprice = BFPubTools.getUFDouble_NullAsZero(bodydata.get("nqtorigtaxprice")); + newBvo.setAttributeValue("nqtorigtaxprice", nqtorigtaxprice); + // 无税单价 + UFDouble nqtorigprice = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100))); + // 价税合计 + UFDouble norigtaxmny = nqtorigtaxprice.multiply(newBvo.getNqtunitnum()).setScale(2, 4); + newBvo.setNorigtaxmny(norigtaxmny); + // 无税金额 + UFDouble norigmny = nqtorigprice.multiply(newBvo.getNqtunitnum()); - // 无税本币金额单价 - UFDouble taxspric = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100))); + newBvo.setNorigmny(Currency.getFormaUfValue(ybpk, norigmny)); + // 税额 + newBvo.setNqtorigprice(nqtorigprice.setScale(4, 4)); + + // 无税本币金额单价 + UFDouble taxspric = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100))); - nqtorigprice = nqtorigprice.setScale(4, 4); - // nqtorigtaxnetprc--含税净价 - newBvo.setNqtorigtaxnetprc(nqtorigtaxprice); - //,nqtorignetprice --无税净价 - newBvo.setNqtorignetprice(nqtorigprice); - String Vqtunitrate = newBvo.getVqtunitrate(); - UFDouble dVqtunitrate = UFDouble.ONE_DBL; - if (Vqtunitrate != null) { - dVqtunitrate = BFPubTools.getUFDouble_NullAsZero(Vqtunitrate.split("/")[0]); - } - //,norigtaxprice --主含税单价 - - UFDouble wsje = taxspric.multiply(nexchangerate).multiply(newBvo.getNqtunitnum()); - if (ybpk.equals(zbbz) && BFPubTools.getString_TrimAsNull(newBvo.getCqtunitid()).equals(BFPubTools.getString_TrimAsNull(newBvo.getCastunitid()))) { - wsje = taxspric.multiply(nexchangerate).multiply(newBvo.getNqtunitnum()); - } - - - wsje = Currency.getFormaUfValue(zbbz, wsje); - // 本币无税金额 - newBvo.setNorigtaxprice(nqtorigtaxprice.div(dVqtunitrate).setScale(4, 4)); - //,norigprice --主无税单价 - newBvo.setNorigprice(nqtorigprice.div(dVqtunitrate).setScale(4, 4)); - //,norigtaxnetprice --主含税净价 - newBvo.setNorigtaxnetprice(newBvo.getNorigtaxprice()); - //,norignetprice --主无税净价 - newBvo.setNorignetprice(newBvo.getNorigprice()); - // ncaltaxmny --计税金额 - - // ,nqttaxprice --本币含税单价 - newBvo.setNqttaxprice(nqtorigtaxprice.multiply(nexchangerate)); - //,nqtprice --本币无税单价 - UFDouble bbwsd = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100))).multiply(nexchangerate); - newBvo.setNqtprice(bbwsd.setScale(4, 4)); - //, nqttaxnetprice --本币含税净价 - newBvo.setNqttaxnetprice(nqtorigtaxprice.multiply(nexchangerate)); - //,nqtnetprice --本币无税净价 - UFDouble Nqtnetprice = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100))).multiply(nexchangerate); - newBvo.setNqtnetprice(Nqtnetprice.setScale(4, 4)); - //,ntaxprice --主本币含税单价 , nprice --主本币无税单价 - newBvo.setNtaxprice(nqtorigtaxprice.div(dVqtunitrate).multiply(nexchangerate).setScale(4, 4)); - UFDouble Nprice = nqtorigtaxprice.div(dVqtunitrate).div(UFDouble.ONE_DBL.add(ntaxrate.div(100))).multiply(nexchangerate); - newBvo.setNprice(Nprice.setScale(4, 4)); - //,ntaxnetprice --主本币含税净价 - newBvo.setNtaxnetprice(nqtorigtaxprice.div(dVqtunitrate).multiply(nexchangerate).setScale(4, 4)); - //,nnetprice --主本币无税净价 - UFDouble nnetprice = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100))).div(dVqtunitrate); - nnetprice = nnetprice.multiply(nexchangerate).setScale(4, 4); - newBvo.setNnetprice(nnetprice); - // nmny --本币无税金额 - // ntaxmny-- 本币价税合计 - newBvo.setNmny(Currency.getFormaUfValue(zbbz, norigmny.multiply(nexchangerate))); - newBvo.setNtaxmny(nqtorigtaxprice.multiply(nexchangerate).multiply(newBvo.getNqtunitnum()).setScale(2, 4)); - newBvo.setNcaltaxmny(wsje); - UFDouble ntax = norigtaxmny.multiply(nexchangerate).sub(wsje); - newBvo.setNtax(ntax.setScale(2, 4)); - newBvo.setCrowno(bodydata.get("crowno") + ""); - bvoList.add(newBvo); + nqtorigprice = nqtorigprice.setScale(4, 4); + // nqtorigtaxnetprc--含税净价 + newBvo.setNqtorigtaxnetprc(nqtorigtaxprice); + //,nqtorignetprice --无税净价 + newBvo.setNqtorignetprice(nqtorigprice); + String Vqtunitrate = newBvo.getVqtunitrate(); + UFDouble dVqtunitrate = UFDouble.ONE_DBL; + if (Vqtunitrate != null) { + dVqtunitrate = BFPubTools.getUFDouble_NullAsZero(Vqtunitrate.split("/")[0]); } + //,norigtaxprice --主含税单价 + + UFDouble wsje = taxspric.multiply(nexchangerate).multiply(newBvo.getNqtunitnum()); + if (ybpk.equals(zbbz) && BFPubTools.getString_TrimAsNull(newBvo.getCqtunitid()).equals(BFPubTools.getString_TrimAsNull(newBvo.getCastunitid()))) { + wsje = taxspric.multiply(nexchangerate).multiply(newBvo.getNqtunitnum()); + } + + + wsje = Currency.getFormaUfValue(zbbz, wsje); + // 本币无税金额 + newBvo.setNorigtaxprice(nqtorigtaxprice.div(dVqtunitrate).setScale(4, 4)); + //,norigprice --主无税单价 + newBvo.setNorigprice(nqtorigprice.div(dVqtunitrate).setScale(4, 4)); + //,norigtaxnetprice --主含税净价 + newBvo.setNorigtaxnetprice(newBvo.getNorigtaxprice()); + //,norignetprice --主无税净价 + newBvo.setNorignetprice(newBvo.getNorigprice()); + // ncaltaxmny --计税金额 + + // ,nqttaxprice --本币含税单价 + newBvo.setNqttaxprice(nqtorigtaxprice.multiply(nexchangerate)); + //,nqtprice --本币无税单价 + UFDouble bbwsd = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100))).multiply(nexchangerate); + newBvo.setNqtprice(bbwsd.setScale(4, 4)); + //, nqttaxnetprice --本币含税净价 + newBvo.setNqttaxnetprice(nqtorigtaxprice.multiply(nexchangerate)); + //,nqtnetprice --本币无税净价 + UFDouble Nqtnetprice = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100))).multiply(nexchangerate); + newBvo.setNqtnetprice(Nqtnetprice.setScale(4, 4)); + //,ntaxprice --主本币含税单价 , nprice --主本币无税单价 + newBvo.setNtaxprice(nqtorigtaxprice.div(dVqtunitrate).multiply(nexchangerate).setScale(4, 4)); + UFDouble Nprice = nqtorigtaxprice.div(dVqtunitrate).div(UFDouble.ONE_DBL.add(ntaxrate.div(100))).multiply(nexchangerate); + newBvo.setNprice(Nprice.setScale(4, 4)); + //,ntaxnetprice --主本币含税净价 + newBvo.setNtaxnetprice(nqtorigtaxprice.div(dVqtunitrate).multiply(nexchangerate).setScale(4, 4)); + //,nnetprice --主本币无税净价 + UFDouble nnetprice = nqtorigtaxprice.div(UFDouble.ONE_DBL.add(ntaxrate.div(100))).div(dVqtunitrate); + nnetprice = nnetprice.multiply(nexchangerate).setScale(4, 4); + newBvo.setNnetprice(nnetprice); + // nmny --本币无税金额 + // ntaxmny-- 本币价税合计 + newBvo.setNmny(Currency.getFormaUfValue(zbbz, norigmny.multiply(nexchangerate))); + newBvo.setNtaxmny(nqtorigtaxprice.multiply(nexchangerate).multiply(newBvo.getNqtunitnum()).setScale(2, 4)); + newBvo.setNcaltaxmny(wsje); + UFDouble ntax = norigtaxmny.multiply(nexchangerate).sub(wsje); + newBvo.setNtax(ntax.setScale(2, 4)); + newBvo.setCrowno(bodydata.get("crowno") + ""); + // 是否赠品 + String blargessflag = bodydata.getOrDefault("blargessflag", "N") + ""; + newBvo.setBlargessflag(UFBoolean.valueOf(blargessflag)); + bvoList.add(newBvo); } } + SaleOrderBVO[] array = bvoList.toArray(new SaleOrderBVO[0]); vo.setChildrenVO(array); } // 填充默认值 new SaleOrderSaveFillValue().setDefValue(copyVOs); - SaleOrderBVO newBvo = null; + Map> listMap = new HashMap<>(); for (SaleOrderVO copyVO : copyVOs) { + List newBvoList = new ArrayList<>(); for (SaleOrderBVO saleOrderBVO : copyVO.getChildrenVO()) { if (VOStatus.NEW == saleOrderBVO.getStatus()) { - newBvo = (SaleOrderBVO) saleOrderBVO.clone(); + SaleOrderBVO newBvo = (SaleOrderBVO) saleOrderBVO.clone(); + newBvoList.add(newBvo); } } + listMap.put(copyVO.getParentVO().getCsaleorderid(), newBvoList); } - if (newBvo != null) { + if (!listMap.isEmpty()) { for (SaleOrderVO oldVO : oldVOs) { - SaleOrderBVO[] bvos = oldVO.getChildrenVO(); - List bvoList = new ArrayList<>(Arrays.asList(bvos)); - bvoList.add(newBvo); - SaleOrderBVO[] array = bvoList.toArray(new SaleOrderBVO[0]); - oldVO.setChildrenVO(array); + String csaleorderid = oldVO.getParentVO().getCsaleorderid(); + List newBvoList = listMap.get(csaleorderid); + if (newBvoList != null && !newBvoList.isEmpty()) { + SaleOrderBVO[] bvos = oldVO.getChildrenVO(); + List bvoList = new ArrayList<>(Arrays.asList(bvos)); + bvoList.addAll(newBvoList); + SaleOrderBVO[] array = bvoList.toArray(new SaleOrderBVO[0]); + oldVO.setChildrenVO(array); + } + } } /*for (SaleOrderVO combinBillVO : copyVOs) { diff --git a/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java b/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java index d1adc92..cb9001e 100644 --- a/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java +++ b/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java @@ -32,6 +32,7 @@ import nc.vo.so.m30.revise.entity.SaleOrderHistoryVO; import nccloud.api.rest.utils.NCCRestUtils; import nccloud.api.so.m30.IAPISaleOrderMaitain; import nccloud.api.so.m30.IAPISaleOrderQuery; +import nccloud.baseapp.core.log.NCCForUAPLogger; import nccloud.framework.core.exception.ExceptionUtils; import nccloud.openapi.scmpub.pub.NCCPubRestResource; import nccloud.openapi.scmpub.pub.TransferMapToVOTool; @@ -378,7 +379,6 @@ public class SaleOrderResource extends NCCPubRestResource { TransferMapToVOTool.transferMapToAggVO(paramList, SaleOrderVO.class, true); SaleOrderVO[] vos = vosList.toArray(new SaleOrderVO[vosList.size()]); - List> addMapList = new ArrayList>(); for (Map objectMap : paramList) { Map headdata = (Map) objectMap.get(HEADTABLE); List bodyArr = (List) objectMap.get(BODYTABLE); @@ -386,30 +386,28 @@ public class SaleOrderResource extends NCCPubRestResource { Map bodydata = (Map) body; if (!(bodydata.getOrDefault("vbdef11", "") + "").isEmpty()) { String vbdef11 = bodydata.get("vbdef11") + ""; + String dr = bodydata.getOrDefault("dr", "0") + ""; String csaleorderid = bodydata.get("csaleorderid") + ""; String countSql = "SELECT count(1) FROM so_saleorder_b" + " WHERE nvl(dr,0) = 0 and csaleorderid = '[csaleorderid]' and vbdef11 = '[vbdef11]' "; countSql = countSql.replace("[csaleorderid]", csaleorderid); countSql = countSql.replace("[vbdef11]", vbdef11); Integer num = (Integer) new BaseDAO().executeQuery(countSql, new ColumnProcessor()); - if (num <= 0) { + if ("0".equals(dr) && num <= 0) { bodydata.put("status", "add"); - Map map = new HashMap(); - map.put(headdata.get("csaleorderid"), objectMap); - addMapList.add(map); } - } } } // 调用接口保存 IAPISaleOrderMaitain service = NCLocator.getInstance().lookup(IAPISaleOrderMaitain.class); - SaleOrderVO[] results = service.update(vos, addMapList); + SaleOrderVO[] results = service.update(vos, paramList); // 包装返回信息 return NCCRestUtils.toJSONString(CallReturnBuildUtil.buildSuccessResult( results, "销售订单修改成功")); } catch (Exception e) { + NCCForUAPLogger.debug("update:" + e.getMessage()); return NCCRestUtils.toJSONString(CallReturnBuildUtil.buildFailResult( null, "销售订单修改异常:" + e.getMessage())); }