丽知:1、toc仅退款修改时间,交易成功时间 > 退款完成时间 则取U8C交易成功时间。

2、toc仅退款查找销售订单时,没有交易成功时间的过滤掉。
3、tob、toc仅退款zyx18新增汇总维度。
This commit is contained in:
zhengyf 2025-04-16 16:47:30 +08:00
parent 710588d140
commit 3afd0c1095
3 changed files with 27 additions and 2 deletions

View File

@ -471,6 +471,8 @@ public class RefundOnlyPluginInitializerToB extends PluginBaseEntity {
parentvo.setZyx3("SALES"); parentvo.setZyx3("SALES");
//zyx16 单据红字标识 1Y 2N //zyx16 单据红字标识 1Y 2N
parentvo.setZyx16("1"); parentvo.setZyx16("1");
//zyx18 汇总逻辑 [0]公司 [1]店铺 [2]部门 [3]单据日期
parentvo.setZyx18(split[0] + "+" + split[1] + "+" + split[2] + "+" + split[3]);
//子表,需要通过多个主表的id找到多个子表,且退货金额==0的不要 //子表,需要通过多个主表的id找到多个子表,且退货金额==0的不要

View File

@ -373,6 +373,10 @@ public class RefundOnlyPluginInitializerToC extends PluginBaseEntity {
* 公司+店铺+仓库+SKU+收发类别+部门 分组 * 公司+店铺+仓库+SKU+收发类别+部门 分组
* <p> * <p>
* 因为优惠金额在表头先按单据便利一变具体分摊金额拆到每行在去汇总 * 因为优惠金额在表头先按单据便利一变具体分摊金额拆到每行在去汇总
* <p>
* add by zyd 2025-04-16 1销售订单没有交易成功时间的过滤掉
* 2交易成功时间 > 退款完成时间 则取U8C交易成功时间
* 交易成功时间 < 退款完成时间 则取U8C退款完成时间
*/ */
public void implement(List<RerturnGoodsOrderSearchData> filterReturnGoodsOrders) throws Exception { public void implement(List<RerturnGoodsOrderSearchData> filterReturnGoodsOrders) throws Exception {
@ -387,18 +391,34 @@ public class RefundOnlyPluginInitializerToC extends PluginBaseEntity {
String refOrderCode = filterReturnGoodsOrder.getHeader().getRefOrderCode(); String refOrderCode = filterReturnGoodsOrder.getHeader().getRefOrderCode();
SaleOrderMessageDto ofsSaleOrder = getOfsOrder(refOrderCode); SaleOrderMessageDto ofsSaleOrder = getOfsOrder(refOrderCode);
String deptCode = "002"; String deptCode = "002";
String tradeSuccessAt = null;
if (ofsSaleOrder != null) { if (ofsSaleOrder != null) {
// Assert.state(false,"根据仅退款:{},查询销售订单:{},失败!未查询到对应销售订单",filterReturnGoodsOrder.getHeader().getCode(),refOrderCode); // Assert.state(false,"根据仅退款:{},查询销售订单:{},失败!未查询到对应销售订单",filterReturnGoodsOrder.getHeader().getCode(),refOrderCode);
if (ofsSaleOrder.getData().get(0).getHeader().getDepartmentType() != null && !"".equals((ofsSaleOrder.getData().get(0).getHeader().getDepartmentType()))) { if (ofsSaleOrder.getData().get(0).getHeader().getDepartmentType() != null && !"".equals((ofsSaleOrder.getData().get(0).getHeader().getDepartmentType()))) {
deptCode = 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().setSaleDeptCode(deptCode);
filterReturnGoodsOrder.getHeader().setSaleTradeSuccessAt(tradeSuccessAt);
allHeader.add(filterReturnGoodsOrder.getHeader()); allHeader.add(filterReturnGoodsOrder.getHeader());
allDetail.addAll(filterReturnGoodsOrder.getDetails()); allDetail.addAll(filterReturnGoodsOrder.getDetails());
} }
//整合时间
//交易成功时间 > 退款完成时间 则取U8C交易成功时间
//交易成功时间 < 退款完成时间 则取U8C退款完成时间
for (RerturnGoodsOrderSearchHeader rerturnGoodsOrderSearchHeader : allHeader) {
if (rerturnGoodsOrderSearchHeader.getSaleTradeSuccessAt().compareTo(rerturnGoodsOrderSearchHeader.getRefundedAt()) > 0) {
rerturnGoodsOrderSearchHeader.setRefundedAt(rerturnGoodsOrderSearchHeader.getSaleTradeSuccessAt());
}
}
//分组公司+店铺+部门+单据日期(退款日期),仅退款没有仓库固不去 //分组公司+店铺+部门+单据日期(退款日期),仅退款没有仓库固不去
Map<String, List<RerturnGoodsOrderSearchHeader>> collect = allHeader.stream().collect(Collectors.groupingBy(index -> index.getCompanyCode() + ",#" + index.getStoreCode() + ",#" + index.getSaleDeptCode() + ",#" + index.getRefundedAt().substring(0, 10))); Map<String, List<RerturnGoodsOrderSearchHeader>> 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"); parentvo.setZyx3("SALES");
//zyx16 单据红字标识 1Y 2N //zyx16 单据红字标识 1Y 2N
parentvo.setZyx16("1"); parentvo.setZyx16("1");
//zyx18 汇总逻辑 [0]公司 [1]店铺 [2]部门 [3]单据日期
parentvo.setZyx18(split[0] + "+" + split[1] + "+" + split[2] + "+" + split[3]);
//子表,需要通过多个主表的id找到多个子表,且退货金额==0的不要 //子表,需要通过多个主表的id找到多个子表,且退货金额==0的不要
List<RerturnGoodsOrderSearchDetails> ofsDetails = new ArrayList<>(); List<RerturnGoodsOrderSearchDetails> ofsDetails = new ArrayList<>();
@ -634,7 +656,7 @@ public class RefundOnlyPluginInitializerToC extends PluginBaseEntity {
continue; continue;
} }
if(sum_jfbbje.compareTo(BigDecimal.ZERO) != 0){ if (sum_jfbbje.compareTo(BigDecimal.ZERO) != 0) {
childrenn.setJfbbje("-" + sum_jfbbje); childrenn.setJfbbje("-" + sum_jfbbje);
childrenn.setJfybje("-" + sum_jfbbje); childrenn.setJfybje("-" + sum_jfbbje);
childrenn.setJfbbsj("-" + sum_jfbbsj); childrenn.setJfbbsj("-" + sum_jfbbsj);

View File

@ -76,5 +76,6 @@ public class RerturnGoodsOrderSearchHeader {
//部门-来自销售订单 //部门-来自销售订单
private String saleDeptCode; private String saleDeptCode;
private String saleDeptDame; private String saleDeptName;
private String saleTradeSuccessAt;//销售订单交易成功时间
} }