From 3f3cf2adede03e22643acb877c92f2145595f1a7 Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Thu, 26 Sep 2024 10:37:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E4=B8=8D=E5=BF=85=E8=A6=81?= =?UTF-8?q?=E7=9A=84=E6=94=B6=E6=94=AF=E9=A1=B9=E7=9B=AE=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除了在SO销售和退货流程中不必要的收支项目查询,以优化性能和避免不必要的网络调用。之前,代码会查询BdInvcl和BdCostsubj实体,即使这些实体在当前的业务逻辑中并不需要。此更改简化了流程,移除了这些冗余查询,没有影响现有的功能。 --- .../sales/SoSaleOutPluginInitializerToB.java | 8 ++-- .../sales/SoSaleOutPluginInitializerToC.java | 11 ++--- .../SoSaleReturnPluginInitializerToB.java | 8 ++-- .../SoSaleReturnPluginInitializerToC.java | 8 ++-- ...fsOrderAfterSalesAmountAllocationUtil.java | 3 +- .../OfsOrderSaleAmountAllocationUtil.java | 2 +- .../OfsOrderSaleAmountAllocationUtilTest.java | 46 +++++++++++++++++++ 7 files changed, 65 insertions(+), 21 deletions(-) create mode 100644 buildpackage/src/test/java/com/hzya/frame/plugin/lets/util/OfsOrderSaleAmountAllocationUtilTest.java diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java index bb03dcad..f65464f0 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java @@ -1839,8 +1839,8 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { //查找来源销售订单明细行 SoSaleorderBEntity sourceDocumentsV2 = findSourceDocumentsV2(header, detailsDto, soSaleorderBEntityList, extIntegrationTaskLivingDetailsQueryVos); //查询收支项目 - BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); - BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); +// BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); +// BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); BigDecimal noriginalcurtaxprice = null;//含税单价 try { @@ -1880,8 +1880,8 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { // salesInvoiceBodyDto.setCsaleid("1009A2100000000004WK");//销售主表id // salesInvoiceBodyDto.setCunitid("0001A210000000000EYM");//主计量单位 // salesInvoiceBodyDto.setCupsourcebillbodyid("1009A2100000000004R3");//上层来源单据行 - salesInvoiceBodyDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 - salesInvoiceBodyDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); +// salesInvoiceBodyDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 +// salesInvoiceBodyDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); salesInvoiceBodyDtoList.add(salesInvoiceBodyDto); } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java index f81829eb..704961ea 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java @@ -104,17 +104,14 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { @Override public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { - Thread thread = new Thread(new Runnable() { @Override public void run() { long startMillis = System.currentTimeMillis(); logger.info("executeBusiness方法调用开始:" + getPluginName() + "-插件"); - // if (ProfilesActiveConstant.TYPE_DETAIL_ERROR.equals(requestJson.get("type"))) { // throw new BaseSystemException("TOC退货业务,无法按单行推送!需要根据天的维度推送"); // } - try { String param = String.valueOf(requestJson.get("param")); String sceneType = String.valueOf(requestJson.get("sceneType"));//sceneType:stock、tran @@ -1568,8 +1565,8 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { saleorderRequestDto.setChildrenvo(saleorderRequestChildrenDtoList); //查询收支项目 - BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); - BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); +// BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); +// BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString(); BigDecimal noriginalcurprice = null;//无税单价 @@ -1620,8 +1617,8 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { // saleorderRequestChildrenDto.setCreccalbodyid(bdCalbodyEntity1.getPkCalbody());//收货库存组织:2024年8月7日 16:21:48 和佳妮、道品一起测试,收货库存组织、收货仓库 是不需要传递的 // saleorderRequestChildrenDto.setCrecwareid(bdStordocEntity1.getPkStordoc());//收货仓库 - saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 - saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); +// saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 +// saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto); //销售订单单据推送到u8c diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java index 288f4be2..36d8ce55 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java @@ -742,8 +742,8 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString(); //查询收支项目 - BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); - BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); +// BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); +// BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); // 如果是海外的店铺,则税率为零 String exportVaue = ExportConstant.exportConstant.get(header.getStoreCode()); @@ -799,8 +799,8 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价 saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率 saleorderRequestChildrenDto.setVdef20(stockinB.getId());//原单明细主键 - saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 - saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); +// saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 +// saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto); } //记录成功 diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java index 86abf682..5d916aa9 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java @@ -626,8 +626,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { //根据存货基础档案编码,查询当前存货的税率 BdTaxitemsEntity bdTaxitemsEntity1 = oldValue.get(0).getBdTaxitemsEntity(); //查询收支项目 - BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); - BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); +// BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); +// BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString(); BigDecimal noriginalcurprice = null;//无税单价 @@ -674,8 +674,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税净价 saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价 saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率 - saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 - saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); +// saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 +// saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto); //销售订单单据推送到u8c diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OfsOrderAfterSalesAmountAllocationUtil.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OfsOrderAfterSalesAmountAllocationUtil.java index 2b1cf2fb..d8e3e83e 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OfsOrderAfterSalesAmountAllocationUtil.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OfsOrderAfterSalesAmountAllocationUtil.java @@ -44,7 +44,8 @@ public class OfsOrderAfterSalesAmountAllocationUtil { List detailsOld = rerturnGoodsOrderSearchData.getDetails(); //拷贝一份List集合,并移除没有实付金额的原始 - //TODO 暂时取零售价作为分类的标准,需要和万万确认一下 + //暂时取零售价作为分类的标准,需要和万万确认一下 + //已经和万万确认 List rerturnGoodsOrderSearchDetails = copyDetailsDto(detailsOld); rerturnGoodsOrderSearchDetails.removeIf(dto -> dto.getMsrPrice() == null || !"0".equals(new BigDecimal(dto.getMsrPrice()).stripTrailingZeros().toPlainString())); diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OfsOrderSaleAmountAllocationUtil.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OfsOrderSaleAmountAllocationUtil.java index c8912fdb..d197ef97 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OfsOrderSaleAmountAllocationUtil.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OfsOrderSaleAmountAllocationUtil.java @@ -42,7 +42,7 @@ public class OfsOrderSaleAmountAllocationUtil { //拷贝一份List集合,并移除没有实付金额的原始 List details = copyDetailsDto(detailsOld); - details.removeIf(dto -> dto.getTotalPayAmount() == null || !"0".equals(new BigDecimal(dto.getTotalPayAmount()).stripTrailingZeros().toPlainString())); + details.removeIf(dto -> dto.getTotalPayAmount() == null || "0".equals(new BigDecimal(dto.getTotalPayAmount()).stripTrailingZeros().toPlainString())); //计算分摊百分比 calculatePercentage(headerDetailsDto); diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/util/OfsOrderSaleAmountAllocationUtilTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/util/OfsOrderSaleAmountAllocationUtilTest.java new file mode 100644 index 00000000..92818035 --- /dev/null +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/util/OfsOrderSaleAmountAllocationUtilTest.java @@ -0,0 +1,46 @@ +package com.hzya.frame.plugin.lets.util; + +import com.hzya.frame.WebappApplication; +import com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto; +import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import java.util.List; + +import static org.junit.Assert.*; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.plugin.lets.util + * @Project:kangarooDataCenterV3 + * @name:OfsOrderSaleAmountAllocationUtilTest + * @Date:2024/9/25 18:31 + * @Filename:OfsOrderSaleAmountAllocationUtilTest + */ +@RunWith(SpringRunner.class) +@SpringBootTest(classes = WebappApplication.class) +public class OfsOrderSaleAmountAllocationUtilTest { + + @Autowired + private OfsOrderSaleAmountAllocationUtil ofsOrderSaleAmountAllocationUtil; + + @Autowired + private AfterSalesOrderUtil afterSalesOrderUtil; + + @Test + public void tocSalesAmountAllocation() { + try { + SaleOrderMessageDto ofsOrder = afterSalesOrderUtil.getOfsOrder("LETS-SO2024092500000020"); + List data = ofsOrder.getData(); + if (data.size() > 0) { + ofsOrderSaleAmountAllocationUtil.tocSalesAmountAllocation(data.get(0)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file