From 92438e9d16d143c1609abf64b7f69dda4c2213af Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Fri, 11 Apr 2025 17:17:19 +0800 Subject: [PATCH] =?UTF-8?q?demand:=20=E5=B7=B2=E4=BD=BF=E7=94=A8=E9=A2=9D?= =?UTF-8?q?=E5=BA=A6=E7=BB=86=E5=88=86=E4=B8=A4=E4=B8=AA=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=8C=E4=B8=80=E4=B8=AA=E6=98=AF=E8=B6=85=E6=9C=9F=E9=A2=9D?= =?UTF-8?q?=E5=BA=A6=EF=BC=8C=E4=B8=80=E4=B8=AA=E8=B4=A6=E6=9C=9F=E5=86=85?= =?UTF-8?q?=E9=A2=9D=E5=BA=A6=E3=80=82=E5=8F=8C=E5=87=BB=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=85=B7=E4=BD=93=E6=98=8E=E7=BB=86=E3=80=82?= =?UTF-8?q?=20committer:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/web/emis/EmisWaybillController.java | 8 ++ .../erp/emis/domain/EmisCreditSalesmen.java | 4 + .../xdadan/erp/emis/domain/EmisWaybill.java | 3 + .../emis/mapper/EmisSettleSubBillMapper.java | 1 + .../erp/emis/service/EmisBaseService.java | 82 ++++++++++++++++++- .../mapper/EmisCreditSalesmenMapper.xml | 12 ++- .../mapper/EmisSettleSubBillMapper.xml | 10 ++- 7 files changed, 115 insertions(+), 5 deletions(-) diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java index 10ffacc4e..47be17417 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java @@ -537,6 +537,14 @@ public class EmisWaybillController extends EmisBaseController list = emisWaybillService.selectEmisWaybillList(emisWaybill); } + if("1".equals(emisWaybill.getQueryQuotaType())){ + // 查询超期的运单列表 + list = emisBaseService.filterOverTermEmisWaybillList(list); + } + if("2".equals(emisWaybill.getQueryQuotaType())){ + // 查询未超期的账单列表 + list = emisBaseService.filterInTermEmisWaybillList(list); + } return getDataTable(list); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCreditSalesmen.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCreditSalesmen.java index 43eac088a..237f5ede2 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCreditSalesmen.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCreditSalesmen.java @@ -43,6 +43,10 @@ public class EmisCreditSalesmen extends BaseEntity private BigDecimal creditMoney; /* 使用额度 */ private BigDecimal useMoney; + /* 超期额度 */ + private BigDecimal overTermMoney; + /* 账期内额度 */ + private BigDecimal inTermMoney; /* 币种 */ private String currency; /* 运输方式 */ diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybill.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybill.java index 9197fad63..1f26d2625 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybill.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybill.java @@ -675,6 +675,9 @@ public class EmisWaybill extends BaseEntity private String customerNickName; @TableField(exist = false) private String customerAvatar; + // 查询现金客户额度属性; 1:查询超期额度,2:查询账期内额度 + @TableField(exist = false) + private String queryQuotaType; // transType - 运输类型 @TableField(exist = false) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java index ddf15d742..1a8a41202 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java @@ -156,4 +156,5 @@ public interface EmisSettleSubBillMapper extends BaseMapper public int deleteEmisSettleSubBillByBillCode(String billCode); + List querysSettleSubBillByBillCodeList(@Param("billCodeList") List billCodeList); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index b3674d5bf..909da88f6 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -44,6 +44,7 @@ package com.xdadan.erp.emis.service; import java.math.BigDecimal; import java.util.*; + import java.util.stream.Collectors; /** * 运单列表Service业务层处理 @@ -1503,7 +1504,18 @@ public class EmisBaseService { try { Map useMoneyMap=emisCreditSalesmenMapper.getUseMoneyMap(item); BigDecimal useMoney = (BigDecimal)useMoneyMap.get("useMoney"); - emisCreditSalesmenMapper.updateUseMoney(item.getId(),useMoney); + List emisWaybillList = getEmisWaybills(item); + // 账期内金额 + BigDecimal inTermMoney = getInTermMoney(emisWaybillList); + // 超期金额 + BigDecimal overTermMoney = BigDecimal.valueOf(useMoney.subtract(inTermMoney).stripTrailingZeros().longValue()); + EmisCreditSalesmen emisCreditSalesmen = new EmisCreditSalesmen(); + emisCreditSalesmen.setId(item.getId()); + emisCreditSalesmen.setUseMoney(useMoney); + emisCreditSalesmen.setOverTermMoney(overTermMoney); + emisCreditSalesmen.setInTermMoney(inTermMoney); + emisCreditSalesmenMapper.updateEmisCreditSalesmen(emisCreditSalesmen); + log.info("success.autoDoCredit , emisCreditSalesmen,{}", JSON.toJSONString(emisCreditSalesmen)); }catch (Exception ex){ ex.printStackTrace(); } @@ -1526,6 +1538,74 @@ public class EmisBaseService { } } + private BigDecimal getInTermMoney(List emisWaybillList) { + List inTermList = filterInTermEmisWaybillList(emisWaybillList); + List billCodeList = inTermList.stream().map(EmisWaybill::getBillCode).collect(Collectors.toList()); + log.info("cd getInTermMoney , billCodeList,{}", billCodeList); + if (CollectionUtil.isEmpty(billCodeList)) { + return BigDecimal.ZERO; + } + List emisSettleSubBillList = emisSettleSubBillMapper.querysSettleSubBillByBillCodeList(billCodeList); + if (CollectionUtil.isEmpty(emisSettleSubBillList)) { + return BigDecimal.ZERO; + } + log.info("query emisSettleSubBillList , emisSettleSubBillList,{}", emisSettleSubBillList); + BigDecimal inTermMoney = BigDecimal.valueOf(emisSettleSubBillList.stream() + .map(EmisSettleSubBill::getBillFee) + .filter(i -> i != null) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .stripTrailingZeros().longValue()); + log.info("success.getInTermMoney , inTermMoney,{}", inTermMoney); + return inTermMoney; + } + + public List filterOverTermEmisWaybillList(List list) { + log.info("cd filterOverTermEmisWaybillList , emisWaybillList,{}", list); + if (CollectionUtil.isEmpty(list)) { + return Collections.emptyList(); + } + List overTermList = list.stream() + .filter(item -> item.getOrderDate() != null) + .filter(item -> (System.currentTimeMillis() - item.getOrderDate().getTime()) > (10 * 1000 * 60 * 60 * 24)) + .collect(Collectors.toList()); + log.info("success.filterOverTermEmisWaybillList , overTermList,{}", overTermList); + return overTermList; + } + + public List filterInTermEmisWaybillList(List list) { + log.info("cd filterInTermEmisWaybillList , emisWaybillList,{}", list); + if (CollectionUtil.isEmpty(list)) { + return Collections.emptyList(); + } + List overTermList = filterOverTermEmisWaybillList(list); + if (CollectionUtil.isEmpty(overTermList)) { + return list; + } + List inTermList = list.stream() + .filter(item -> !overTermList.contains(item)) + .collect(Collectors.toList()); + log.info("success.filterInTermEmisWaybillList , inTermList,{}", inTermList); + return inTermList; + } + + private List getEmisWaybills(EmisCreditSalesmen item) { + EmisWaybill emisWaybill = new EmisWaybill(); + emisWaybill.setPaymentType("1,3"); + emisWaybill.setPayee(item.getSalesmen()); + emisWaybill.setPaymentStatus("0,2"); + emisWaybill.getParams().put("problemQueryType", "2"); + emisWaybill.getParams().put("problemQueryIds", "173,170,151"); + emisWaybill.getParams().put("queryTabType", "1"); + emisWaybill.getParams().put("querySendType", "1"); + emisWaybill.getParams().put("beginSendDate", + DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", item.getStartDate())); + emisWaybill.getParams().put("endSendDate", + DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", item.getEndDate())); + emisWaybill.setCarryType(item.getTransType()); + List emisWaybillList = emisWaybillMapper.selectEmisWaybillList(emisWaybill); + return emisWaybillList; + } + @Transactional public void redoGenerateBill(String billCode) throws EmisBizError{ diff --git a/emis-biz/src/main/resources/mapper/EmisCreditSalesmenMapper.xml b/emis-biz/src/main/resources/mapper/EmisCreditSalesmenMapper.xml index b8a542438..6dfa6dd9e 100644 --- a/emis-biz/src/main/resources/mapper/EmisCreditSalesmenMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisCreditSalesmenMapper.xml @@ -10,6 +10,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -22,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -120,6 +122,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" salesmen, credit_money, use_money, + over_term_money, + in_term_Money, currency, trans_type, start_date, @@ -140,6 +144,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{salesmen}, #{creditMoney}, #{useMoney}, + #{overTermMoney}, + #{inTermMoney}, #{currency}, #{transType}, #{startDate}, @@ -162,6 +168,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" credit_money = #{creditMoney}, use_money = #{useMoney}, + over_term_money = #{overTermMoney}, + in_term_Money = #{inTermMoney}, currency = #{currency}, trans_type = #{transType}, start_date = #{startDate}, diff --git a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml index 0d6260a94..0b2358c6c 100644 --- a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml @@ -627,8 +627,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where a.del_flag='0' and a.bill_code = #{billCode} - - +