From 748b12b405bd5f8e9b6186ae57cd157f2dc9e685 Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Thu, 13 Feb 2025 18:23:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(buildpackage):=20=E6=B7=BB=E5=8A=A0=20BOM?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=B9=B6=E4=BC=98=E5=8C=96=E9=80=80=E8=B4=A7?= =?UTF-8?q?=E6=B1=87=E6=80=BB=E9=80=BB=E8=BE=91-=20=E5=9C=A8=20Consignmach?= =?UTF-8?q?iningInBodyDto=20=E4=B8=AD=E6=B7=BB=E5=8A=A0=20BOM=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=AD=97=E6=AE=B5=20-=20=E4=B8=8E=E5=A6=AE=E5=A7=90?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E5=90=8E=E8=AE=BE=E7=BD=AE=E6=A0=B8=E9=94=80?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E4=B8=BA"=E6=8C=89=20BOM=20=E6=A0=B8?= =?UTF-8?q?=E9=94=80"=20-=E4=BC=98=E5=8C=96=20groupSummary=20=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E6=94=AF=E6=8C=81=E6=8C=89=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E7=BB=B4=E5=BA=A6=E6=B1=87=E6=80=BB=20-=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E9=94=AE=E5=80=BC=E5=AF=B9?= =?UTF-8?q?=EF=BC=8C=E6=8F=90=E9=AB=98=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=95=88=E7=8E=87=20-=20=E6=9B=B4=E6=96=B0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BB=A5=E9=80=82=E5=BA=94=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../outsourc/ConsignmachiningInReturn.java | 4 ++ .../SoSaleReturnPluginInitializerToC.java | 42 +++++++++++++++++-- .../u8cdto/ConsignmachiningInBodyDto.java | 1 + .../SoSaleReturnPluginInitializerToCTest.java | 6 +-- .../frame/deletedata/DeleteU8cDataUtil.java | 1 + 5 files changed, 47 insertions(+), 7 deletions(-) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningInReturn.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningInReturn.java index a50e7119..80cd74b4 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningInReturn.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningInReturn.java @@ -467,8 +467,12 @@ public class ConsignmachiningInReturn extends PluginBaseEntity { consignmachiningInBodyDto.setVsourcerowno(u8cPoOrderDetail.getCrowno());//来源单据行号 // consignmachiningInBodyDto.setVsourcebillcode(scOrderEntity.getVordercode());//来源单据号 // consignmachiningInBodyDto.setWriteofftype("按备料发料核销");//核销方式,和妮姐已经确认,不用传递 + //2025年2月13日 17:36:28 和妮姐电话确认,核销方式永远为按BOM核销,问了2遍 + consignmachiningInBodyDto.setWriteofftype("按BOM核销");//核销方式,和妮姐已经确认,不用传递 consignmachiningInBodyDto.setDbizdate(generateBusinessDate);// 入库日期 // consignmachiningInBodyDto.setVdef16(bomVersion.get(0).getVersion());//BOM version + //2025年2月13日 17:35:45 和妮姐电话确认,bom版本永远为1.0,问了3遍 + consignmachiningInBodyDto.setBomversion("1.0");//BOM version consignmachiningInBodyDto.setCsourcebillbid(u8cPoOrderDetail.getCorderBid());//来源明细主键 consignmachiningInBodyDto.setCsourcebillhid(scOrderEntity.getCorderid());//来源表头主键 consignmachiningInBodyDtoArrayList.add(consignmachiningInBodyDto); 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 4ff594f1..236fb374 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 @@ -704,7 +704,9 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { String sceneType = "stock"; List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType); // 分组汇总 - Map<String, List<GoodsRertunSonDetailsDto>> summaryDimensionMap = groupSummary(goodsRertunSonDetailsDtos); + String dimension = null; +// dimension = "1001&dy-intoyou&B2CHA20240033&6973391733588&SALES&002"; + Map<String, List<GoodsRertunSonDetailsDto>> summaryDimensionMap = groupSummary(goodsRertunSonDetailsDtos, dimension); // 查询U8C业务流程 BdBusitypeEntity bdBusitypeEntity = u8cOperationFlow(); // 查询销售收发类别 @@ -989,7 +991,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { String sceneType = "tran"; List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType); // 分组汇总 - Map<String, List<GoodsRertunSonDetailsDto>> summaryDimensionMap = groupSummary(goodsRertunSonDetailsDtos); + String dimension = null; + Map<String, List<GoodsRertunSonDetailsDto>> summaryDimensionMap = groupSummary(goodsRertunSonDetailsDtos, dimension); // 查询U8C业务流程 BdBusitypeEntity bdBusitypeEntity = u8cOperationFlowV2(); //初始化所有存货管理档案对应的结存价+采购价 @@ -1608,7 +1611,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { * * @author liuyang */ - private Map<String, List<GoodsRertunSonDetailsDto>> groupSummary(List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos) { + private Map<String, List<GoodsRertunSonDetailsDto>> groupSummary(List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos, String dimension) { if (goodsRertunSonDetailsDtos != null && goodsRertunSonDetailsDtos.size() > 0) { for (int i = 0; i < goodsRertunSonDetailsDtos.size(); i++) { GoodsRertunSonDetailsDto goodsRertunSonDetailsDto = goodsRertunSonDetailsDtos.get(i); @@ -1683,12 +1686,43 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { goodsRertunSonDetailsDto.setSummaryDimensionStr(summaryDimensionStr.toString()); } logger.info("TOC:{} 个出库单对象需要汇总", goodsRertunSonDetailsDtos.size()); - return goodsRertunSonDetailsDtos.stream().collect(Collectors.groupingBy(GoodsRertunSonDetailsDto::getSummaryDimensionStr)); + if (dimension == null) { + return goodsRertunSonDetailsDtos.stream().collect(Collectors.groupingBy(GoodsRertunSonDetailsDto::getSummaryDimensionStr)); + } else { + Map<String, List<GoodsRertunSonDetailsDto>> collect = goodsRertunSonDetailsDtos.stream().collect(Collectors.groupingBy(GoodsRertunSonDetailsDto::getSummaryDimensionStr)); + keepOnlyNeededKeys(collect, dimension); + return collect; + } } logger.info("TOC:0个对象需要汇总"); return null; } + /** + * 移除不需要的键 + * + * @author liuyang + */ + private static void keepOnlyNeededKeys(Map<String, List<GoodsRertunSonDetailsDto>> map, String... neededKeys) { + Iterator<Map.Entry<String, List<GoodsRertunSonDetailsDto>>> iterator = map.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry<String, List<GoodsRertunSonDetailsDto>> entry = iterator.next(); + // 如果不是需要的键,则移除 + if (!contains(neededKeys, entry.getKey())) { + iterator.remove(); + } + } + } + + private static boolean contains(String[] array, String targetValue) { + for (String value : array) { + if (value.equals(targetValue)) { + return true; + } + } + return false; + } + /** * 2024年8月6日 10:59:03 查询U8C业务流程 * diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/ConsignmachiningInBodyDto.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/ConsignmachiningInBodyDto.java index d7a29940..5ec1b3e3 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/ConsignmachiningInBodyDto.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/ConsignmachiningInBodyDto.java @@ -19,6 +19,7 @@ public class ConsignmachiningInBodyDto { private String vsourcerowno; private String vsourcebillcode; private String writeofftype;//核销方式 + private String bomversion;//BOM版本 private String dbizdate; private String vdef16; private String csourcebillbid;//来源明细主键 diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java index 34862e1e..6c4c3068 100644 --- a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java @@ -50,7 +50,7 @@ public class SoSaleReturnPluginInitializerToCTest { // soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025010900002384", "tran"); -// soSaleReturnPluginInitializerToC.startImplementStockByTime("2024-12-24 16:02:17", "2024-12-24 16:02:17", "0"); + soSaleReturnPluginInitializerToC.startImplementStockByTime("2025-01-31 00:00:00", "2025-01-31 23:59:59", "1"); // JSONObject jsonObject = new JSONObject(); // soSaleReturnPluginInitializerToC.executeBusiness(jsonObject); @@ -82,7 +82,7 @@ public class SoSaleReturnPluginInitializerToCTest { // BdBusitypeEntity bdBusitypeEntity3 = queryBdBusitypeUtil.queryBdBusitype("TOC确认收入"); // System.out.println("TOC确认收入:" + bdBusitypeEntity3.getPkBusitype()); - BdBusitypeEntity bdBusitypeEntity4 = queryBdBusitypeUtil.queryBdBusitype("TOC售后完成"); - System.out.println("TOC售后完成:" + bdBusitypeEntity4.getPkBusitype()); +// BdBusitypeEntity bdBusitypeEntity4 = queryBdBusitypeUtil.queryBdBusitype("TOC售后完成"); +// System.out.println("TOC售后完成:" + bdBusitypeEntity4.getPkBusitype()); } } \ No newline at end of file diff --git a/service/src/main/java/com/hzya/frame/deletedata/DeleteU8cDataUtil.java b/service/src/main/java/com/hzya/frame/deletedata/DeleteU8cDataUtil.java index fffbba17..e43ba57e 100644 --- a/service/src/main/java/com/hzya/frame/deletedata/DeleteU8cDataUtil.java +++ b/service/src/main/java/com/hzya/frame/deletedata/DeleteU8cDataUtil.java @@ -104,6 +104,7 @@ public class DeleteU8cDataUtil { /** * 销售订单取消签字 + * 每1000条取消签字,需要236秒,平均0.2秒一条 */ public void cancelSignatureSoSaleV2() { try {