From 3afd0c1095c74d9aac1c7adbe400b3dd0c4c8eb9 Mon Sep 17 00:00:00 2001 From: zhengyf Date: Wed, 16 Apr 2025 16:47:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BD=E7=9F=A5=EF=BC=9A1=E3=80=81toc?= =?UTF-8?q?=E4=BB=85=E9=80=80=E6=AC=BE=E4=BF=AE=E6=94=B9=E6=97=B6=E9=97=B4?= =?UTF-8?q?=EF=BC=8C=E4=BA=A4=E6=98=93=E6=88=90=E5=8A=9F=E6=97=B6=E9=97=B4?= =?UTF-8?q?=20>=20=E9=80=80=E6=AC=BE=E5=AE=8C=E6=88=90=E6=97=B6=E9=97=B4?= =?UTF-8?q?=20=E5=88=99=E5=8F=96U8C=E4=BA=A4=E6=98=93=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E3=80=82=202=E3=80=81toc=E4=BB=85=E9=80=80?= =?UTF-8?q?=E6=AC=BE=E6=9F=A5=E6=89=BE=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E6=B2=A1=E6=9C=89=E4=BA=A4=E6=98=93=E6=88=90?= =?UTF-8?q?=E5=8A=9F=E6=97=B6=E9=97=B4=E7=9A=84=E8=BF=87=E6=BB=A4=E6=8E=89?= =?UTF-8?q?=E3=80=82=203=E3=80=81tob=E3=80=81toc=E4=BB=85=E9=80=80?= =?UTF-8?q?=E6=AC=BEzyx18=E6=96=B0=E5=A2=9E=E6=B1=87=E6=80=BB=E7=BB=B4?= =?UTF-8?q?=E5=BA=A6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sales/RefundOnlyPluginInitializerToB.java | 2 ++ .../sales/RefundOnlyPluginInitializerToC.java | 24 ++++++++++++++++++- .../RerturnGoodsOrderSearchHeader.java | 3 ++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/RefundOnlyPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/RefundOnlyPluginInitializerToB.java index c8788da3..a2c22a6b 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/RefundOnlyPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/RefundOnlyPluginInitializerToB.java @@ -471,6 +471,8 @@ public class RefundOnlyPluginInitializerToB extends PluginBaseEntity { parentvo.setZyx3("SALES"); //zyx16 单据红字标识 1Y 2N parentvo.setZyx16("1"); + //zyx18 汇总逻辑 [0]公司 [1]店铺 [2]部门 [3]单据日期 + parentvo.setZyx18(split[0] + "+" + split[1] + "+" + split[2] + "+" + split[3]); //子表,需要通过多个主表的id找到多个子表,且退货金额==0的不要 diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/RefundOnlyPluginInitializerToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/RefundOnlyPluginInitializerToC.java index a59ba10b..4b48dba2 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/RefundOnlyPluginInitializerToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/RefundOnlyPluginInitializerToC.java @@ -373,6 +373,10 @@ public class RefundOnlyPluginInitializerToC extends PluginBaseEntity { * 公司+店铺+仓库+SKU+收发类别+部门 分组 *

* 因为优惠金额在表头,先按单据便利一变,具体分摊金额拆到每行,在去汇总 + *

+ * add by zyd 2025-04-16 1、销售订单没有交易成功时间的过滤掉。 + * 2、交易成功时间 > 退款完成时间 则取U8C交易成功时间 + * 交易成功时间 < 退款完成时间 则取U8C退款完成时间 */ public void implement(List filterReturnGoodsOrders) throws Exception { @@ -387,18 +391,34 @@ public class RefundOnlyPluginInitializerToC extends PluginBaseEntity { String refOrderCode = filterReturnGoodsOrder.getHeader().getRefOrderCode(); SaleOrderMessageDto ofsSaleOrder = getOfsOrder(refOrderCode); String deptCode = "002"; + String tradeSuccessAt = null; if (ofsSaleOrder != null) { // Assert.state(false,"根据仅退款:{},查询销售订单:{},失败!未查询到对应销售订单",filterReturnGoodsOrder.getHeader().getCode(),refOrderCode); if (ofsSaleOrder.getData().get(0).getHeader().getDepartmentType() != null && !"".equals((ofsSaleOrder.getData().get(0).getHeader().getDepartmentType()))) { deptCode = ofsSaleOrder.getData().get(0).getHeader().getDepartmentType(); + tradeSuccessAt = ofsSaleOrder.getData().get(0).getHeader().getTradeSuccessAt(); } } + if (tradeSuccessAt == null) { + continue; + } filterReturnGoodsOrder.getHeader().setSaleDeptCode(deptCode); + filterReturnGoodsOrder.getHeader().setSaleTradeSuccessAt(tradeSuccessAt); allHeader.add(filterReturnGoodsOrder.getHeader()); allDetail.addAll(filterReturnGoodsOrder.getDetails()); } + //整合时间 + //交易成功时间 > 退款完成时间 则取U8C交易成功时间 + //交易成功时间 < 退款完成时间 则取U8C退款完成时间 + for (RerturnGoodsOrderSearchHeader rerturnGoodsOrderSearchHeader : allHeader) { + if (rerturnGoodsOrderSearchHeader.getSaleTradeSuccessAt().compareTo(rerturnGoodsOrderSearchHeader.getRefundedAt()) > 0) { + rerturnGoodsOrderSearchHeader.setRefundedAt(rerturnGoodsOrderSearchHeader.getSaleTradeSuccessAt()); + } + } + + //分组:公司+店铺+部门+单据日期(退款日期),仅退款没有仓库,固不去 Map> collect = allHeader.stream().collect(Collectors.groupingBy(index -> index.getCompanyCode() + ",#" + index.getStoreCode() + ",#" + index.getSaleDeptCode() + ",#" + index.getRefundedAt().substring(0, 10))); @@ -474,6 +494,8 @@ public class RefundOnlyPluginInitializerToC extends PluginBaseEntity { parentvo.setZyx3("SALES"); //zyx16 单据红字标识 1Y 2N parentvo.setZyx16("1"); + //zyx18 汇总逻辑 [0]公司 [1]店铺 [2]部门 [3]单据日期 + parentvo.setZyx18(split[0] + "+" + split[1] + "+" + split[2] + "+" + split[3]); //子表,需要通过多个主表的id找到多个子表,且退货金额==0的不要 List ofsDetails = new ArrayList<>(); @@ -634,7 +656,7 @@ public class RefundOnlyPluginInitializerToC extends PluginBaseEntity { continue; } - if(sum_jfbbje.compareTo(BigDecimal.ZERO) != 0){ + if (sum_jfbbje.compareTo(BigDecimal.ZERO) != 0) { childrenn.setJfbbje("-" + sum_jfbbje); childrenn.setJfybje("-" + sum_jfbbje); childrenn.setJfbbsj("-" + sum_jfbbsj); diff --git a/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchHeader.java b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchHeader.java index 1a74cf30..3980842e 100755 --- a/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchHeader.java +++ b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchHeader.java @@ -76,5 +76,6 @@ public class RerturnGoodsOrderSearchHeader { //部门-来自销售订单 private String saleDeptCode; - private String saleDeptDame; + private String saleDeptName; + private String saleTradeSuccessAt;//销售订单交易成功时间 } \ No newline at end of file