Browse Source

Merge remote-tracking branch 'origin/master'

颜琼丽 14 giờ trước cách đây
mục cha
commit
6f8b8770cd
18 tập tin đã thay đổi với 470 bổ sung135 xóa
  1. 18 0
      jd-logistics-api/jd-logistics-api-system/src/main/java/com/ruoyi/system/api/RemoteMonthQRCodeConsumeService.java
  2. 17 0
      jd-logistics-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
  3. 24 0
      jd-logistics-modules/jd-logistics-job/src/main/java/com/ruoyi/job/task/MonthQRCodeConsumeTask.java
  4. 1 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/Kd100Controller.java
  5. 8 14
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/MonthQRCodeController.java
  6. 75 2
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizWaybillCostDetailsController.java
  7. 30 34
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/BizFinancialAdjustmentRecord.java
  8. 25 4
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/BizWaybillCostDetails.java
  9. 33 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/dto/MonthQRCodeDTO.java
  10. 2 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/mapper/BizWaybillCostDetailsMapper.java
  11. 9 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/IBizWaybillCostDetailsService.java
  12. 1 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/LogisticsOrderService.java
  13. 72 7
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizWaybillCostDetailsServiceImpl.java
  14. 1 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/InvoiceServiceImpl.java
  15. 104 50
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/MonthQRCodeTaskServiceImpl.java
  16. 2 11
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/RptFinancialMonthSummaryServiceImpl.java
  17. 47 11
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizWaybillCostDetailsMapper.xml
  18. 1 1
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/RptFinancialMonthSummaryMapper.xml

+ 18 - 0
jd-logistics-api/jd-logistics-api-system/src/main/java/com/ruoyi/system/api/RemoteMonthQRCodeConsumeService.java

@@ -0,0 +1,18 @@
+package com.ruoyi.system.api;
+import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+
+import java.util.Map;
+
+@FeignClient(contextId = "remoteMonthQRCodeConsumeService", value = ServiceNameConstants.SYSTEM_SERVICE)
+public interface RemoteMonthQRCodeConsumeService {
+
+    @PostMapping("/front/qrcode/consume")
+    public R<String> consume(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+}

+ 17 - 0
jd-logistics-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java

@@ -188,4 +188,21 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
         return Date.from(zdt.toInstant());
     }
+
+    /**
+     * 计算开始时间和结束时间相差的分钟数
+     * 
+     * @param startDate 开始时间
+     * @param endDate 结束时间
+     * @return 相差的分钟数
+     */
+    public static long differentMinutes(Date startDate, Date endDate)
+    {
+        if (startDate == null || endDate == null)
+        {
+            throw new IllegalArgumentException("开始时间和结束时间不能为空");
+        }
+        long diffInMillis = Math.abs(endDate.getTime() - startDate.getTime());
+        return diffInMillis / (1000 * 60);
+    }
 }

+ 24 - 0
jd-logistics-modules/jd-logistics-job/src/main/java/com/ruoyi/job/task/MonthQRCodeConsumeTask.java

@@ -0,0 +1,24 @@
+package com.ruoyi.job.task;
+
+import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.system.api.RemoteMonthQRCodeConsumeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 二维码消费查询定时任务
+ */
+@Slf4j
+@Component("monthQRCodeConsumeTask")
+public class MonthQRCodeConsumeTask {
+
+    @Autowired
+    private RemoteMonthQRCodeConsumeService remoteMonthQRCodeConsumeService;
+
+    public void doTask() {
+        log.info("二维码消费查询定时任务开始");
+        remoteMonthQRCodeConsumeService.consume(SecurityConstants.INNER);
+        log.info("二维码消费查询定时任务结束");
+    }
+}

+ 1 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/Kd100Controller.java

@@ -39,6 +39,7 @@ public class Kd100Controller {
     public AjaxResult queryExpres(@RequestBody Map param)  {
         try {
             logger.info("调用快递100查询实时快递接口  运单号: {}", param.get("number"));
+            param.put("resultv2","1");
             Object  redisResult= redisTemplate.opsForValue().get(param.get("number"));
             if(redisResult==null){
                 String   result = kuaidi100Service.queryExpress(param);

+ 8 - 14
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/MonthQRCodeController.java

@@ -1,19 +1,18 @@
 package com.ruoyi.front.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetOrderByMonthSettleQRV1.CommonMonthSettleQRQueryResponse;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.web.controller.BaseController;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.security.annotation.InnerAuth;
-import com.ruoyi.logistics.domain.BizWaybillOrder;
-import com.ruoyi.logistics.response.CommonOrderInfoResponse;
 import com.ruoyi.logistics.service.IMonthQRCodeTaskService;
 import com.ruoyi.logistics.service.LogisticsOrderService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * WX-月结二维码生成
@@ -22,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
  * @date 2026-02-04
  */
 @RestController
-@RequestMapping("/callback/qrcode")
+@RequestMapping("/front/qrcode")
 public class MonthQRCodeController extends BaseController {
 
     @Autowired
@@ -32,16 +31,11 @@ public class MonthQRCodeController extends BaseController {
     private IMonthQRCodeTaskService monthQRCodeService;
 
     @RequestMapping
-    public AjaxResult qrcode(@RequestParam("source") Integer source, @RequestParam("waybillCode") String waybillCode) {
+    public AjaxResult qrcode(@RequestParam("source") Integer source) {
         try{
-//            JSONObject jsonObject = logisticsOrderService.getQRCode(source);
-//            JSONObject jsonObject = logisticsOrderService.queryOrderDetailByWaybillCode(source, waybillCode);
-            JSONObject jsonObject = logisticsOrderService.queryOrderByQRCode(source, waybillCode);
-
-
-            CommonMonthSettleQRQueryResponse response = (CommonMonthSettleQRQueryResponse) jsonObject.get("msg");
+            JSONObject jsonObject = logisticsOrderService.getQRCode(source);
             // 返回完整的二维码信息,包括图片数据
-            return AjaxResult.success(response);
+            return AjaxResult.success(jsonObject);
         } catch (ServiceException e) {
             return AjaxResult.error("获取二维码失败! 原因:"+e.getMessage());
         } catch (Exception e) {

+ 75 - 2
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizWaybillCostDetailsController.java

@@ -1,8 +1,9 @@
 package com.ruoyi.logistics.controller;
 
 import java.util.List;
-import java.io.IOException;
 import javax.servlet.http.HttpServletResponse;
+import com.ruoyi.logistics.domain.RptFinancialMonthSummary;
+import com.ruoyi.logistics.service.IRptFinancialMonthSummaryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -34,6 +35,10 @@ public class BizWaybillCostDetailsController extends BaseController
 {
     @Autowired
     private IBizWaybillCostDetailsService bizWaybillCostDetailsService;
+    @Autowired
+    private IRptFinancialMonthSummaryService rptFinancialMonthSummaryService;
+
+
 
     /**
      * 查询运单明细列表
@@ -50,6 +55,75 @@ public class BizWaybillCostDetailsController extends BaseController
         return getDataTable(list);
     }
 
+
+
+
+    /**
+     * 运单明细详情查询
+     * 参数:  详情id
+     *
+     */
+
+    @RequiresPermissions("system:costDetails:edit")
+    @Log(title = "运单明细调整", businessType = BusinessType.UPDATE)
+    @PutMapping("/getAccountAdjustment")
+    public AjaxResult getAccountAdjustment(@RequestBody BizWaybillCostDetails bizWaybillCostDetails)
+    {
+        try {
+            RptFinancialMonthSummary rptFinancialMonthSummary = new RptFinancialMonthSummary();
+            rptFinancialMonthSummary.setSummaryMonth(bizWaybillCostDetails.getSummaryMonth());
+            rptFinancialMonthSummary.setStatus("1");
+            rptFinancialMonthSummary.setDeptId(bizWaybillCostDetails.getDeptId());
+            List<RptFinancialMonthSummary> list = rptFinancialMonthSummaryService.selectRptFinancialMonthSummaryList(rptFinancialMonthSummary);
+            if (list.size() != 1) {
+                return AjaxResult.success("月度汇总状态发生变化 无法进行调账!");
+            }
+            //拿着部门id和月份进行查询当前月度账单状态是否允许进行调账
+            return AjaxResult.success(bizWaybillCostDetailsService.getAccountAdjustmentById(bizWaybillCostDetails));
+        } catch (Exception e) {
+            return AjaxResult.error("系统发生错误!");
+        }
+    }
+
+
+
+
+    /**
+     * 修改运单明细  也叫调账
+     * 参数:  月份--月度账单中的月份 格式2026.01
+     *      *        供应商--也叫部门id
+     */
+
+    @RequiresPermissions("system:costDetails:edit")
+    @Log(title = "运单明细调整", businessType = BusinessType.UPDATE)
+    @PutMapping("/accountAdjustment")
+    public AjaxResult accountAdjustment(@RequestBody BizWaybillCostDetails bizWaybillCostDetails)
+    {
+        try {
+
+            RptFinancialMonthSummary rptFinancialMonthSummary = new RptFinancialMonthSummary();
+            rptFinancialMonthSummary.setSummaryMonth(bizWaybillCostDetails.getSummaryMonth());
+            rptFinancialMonthSummary.setStatus("1");
+            rptFinancialMonthSummary.setDeptId(bizWaybillCostDetails.getDeptId());
+            List<RptFinancialMonthSummary> list = rptFinancialMonthSummaryService.selectRptFinancialMonthSummaryList(rptFinancialMonthSummary);
+            if (list.size() != 1) {
+                return AjaxResult.success("月度汇总状态发生变化 无法进行调账!");
+            }
+            //拿着部门id和月份进行查询当前月度账单状态是否允许进行调账
+            return toAjax(bizWaybillCostDetailsService.accountAdjustment(bizWaybillCostDetails));
+        } catch (Exception e) {
+            return AjaxResult.error("系统发生错误!");
+        }
+    }
+
+
+
+
+
+
+
+
+
     /**
      * 导出运单明细列表
      */
@@ -85,7 +159,6 @@ public class BizWaybillCostDetailsController extends BaseController
     }
 
     /**
-     * 这个只有部分人有修改运费明细的权限
      *
      * 修改运单明细
      */

+ 30 - 34
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/BizFinancialAdjustmentRecord.java

@@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.core.annotation.Excel;
 import com.ruoyi.common.core.web.domain.BaseEntity;
 
+import java.math.BigDecimal;
+
 /**
  * 调账流水记录对象 biz_financial_adjustment_record
  * 
@@ -32,15 +34,15 @@ public class BizFinancialAdjustmentRecord extends BaseEntity
 
     /** 原金额 */
     @Excel(name = "原金额")
-    private Long originalAmount;
+    private BigDecimal originalAmount;
 
     /** 调整后金额 */
     @Excel(name = "调整后金额")
-    private Long adjustedAmount;
+    private BigDecimal adjustedAmount;
 
     /** 调整金额 */
     @Excel(name = "调整金额")
-    private Long adjustmentAmount;
+    private BigDecimal adjustmentAmount;
 
     /** 调账原因 */
     @Excel(name = "调账原因")
@@ -57,7 +59,31 @@ public class BizFinancialAdjustmentRecord extends BaseEntity
     /** 删除标志 */
     private String delFlag;
 
-    public void setFinancialAdjustId(Long financialAdjustId) 
+    public void setOriginalAmount(BigDecimal originalAmount) {
+        this.originalAmount = originalAmount;
+    }
+
+    public void setAdjustedAmount(BigDecimal adjustedAmount) {
+        this.adjustedAmount = adjustedAmount;
+    }
+
+    public void setAdjustmentAmount(BigDecimal adjustmentAmount) {
+        this.adjustmentAmount = adjustmentAmount;
+    }
+
+    public BigDecimal getOriginalAmount() {
+        return originalAmount;
+    }
+
+    public BigDecimal getAdjustedAmount() {
+        return adjustedAmount;
+    }
+
+    public BigDecimal getAdjustmentAmount() {
+        return adjustmentAmount;
+    }
+
+    public void setFinancialAdjustId(Long financialAdjustId)
     {
         this.financialAdjustId = financialAdjustId;
     }
@@ -97,36 +123,6 @@ public class BizFinancialAdjustmentRecord extends BaseEntity
         return adjustmentType;
     }
 
-    public void setOriginalAmount(Long originalAmount) 
-    {
-        this.originalAmount = originalAmount;
-    }
-
-    public Long getOriginalAmount() 
-    {
-        return originalAmount;
-    }
-
-    public void setAdjustedAmount(Long adjustedAmount) 
-    {
-        this.adjustedAmount = adjustedAmount;
-    }
-
-    public Long getAdjustedAmount() 
-    {
-        return adjustedAmount;
-    }
-
-    public void setAdjustmentAmount(Long adjustmentAmount) 
-    {
-        this.adjustmentAmount = adjustmentAmount;
-    }
-
-    public Long getAdjustmentAmount() 
-    {
-        return adjustmentAmount;
-    }
-
     public void setAdjustmentReason(String adjustmentReason) 
     {
         this.adjustmentReason = adjustmentReason;

+ 25 - 4
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/BizWaybillCostDetails.java

@@ -86,14 +86,37 @@ public class BizWaybillCostDetails extends BaseEntity
     private String productCode;
     /** 经手人 */
     @Excel(name = "经手人")
-    private Long userName;
+    private String userName;
 
+    @Excel(name = "调账类型")
+    private String adjustmentType;
 
+    @Excel(name = "账单月份")//
+    private String summaryMonth;
 
+    public String getUserName() {
+        return userName;
+    }
 
+    public String getSummaryMonth() {
+        return summaryMonth;
+    }
 
+    public void setSummaryMonth(String summaryMonth) {
+        this.summaryMonth = summaryMonth;
+    }
 
+    public String getAdjustmentType() {
+        return adjustmentType;
+    }
 
+    public void setAdjustmentType(String adjustmentType) {
+        this.adjustmentType = adjustmentType;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
 
     /** 删除标志 (0代表存在 2代表删除) */
     private String delFlag;
@@ -146,9 +169,7 @@ public class BizWaybillCostDetails extends BaseEntity
         return productCode;
     }
 
-    public Long getUserName() {
-        return userName;
-    }
+
 
     public void setWaybillDetailId(Long waybillDetailId)
     {

+ 33 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/dto/MonthQRCodeDTO.java

@@ -2,16 +2,49 @@ package com.ruoyi.logistics.dto;
 
 import lombok.Data;
 
+import java.util.Date;
+import java.util.List;
+
 @Data
 public class MonthQRCodeDTO {
 
+    /**
+     * 二维码ID
+     */
     private Long qrcodeId;
 
+    /**
+     * 二维码内容
+     */
     private String qrCodeContent;
 
+    /**
+     * 用户ID
+     */
     private Long userId;
 
+    /**
+     * 供应商ID
+     */
     private Long deptId;
 
+    /**
+     * 二维码来源
+     */
     private Integer source;
+
+    /**
+     * 已处理运单号
+     */
+    private List<String> processWaybillCodes;
+
+    /**
+     * 二维码处理次数
+     */
+    private Integer processNum;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
 }

+ 2 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/mapper/BizWaybillCostDetailsMapper.java

@@ -60,4 +60,6 @@ public interface BizWaybillCostDetailsMapper
     public int deleteBizWaybillCostDetailsByWaybillDetailIds(Long[] waybillDetailIds);
 
     List<BizWaybillCostDetails> selectBizWaybillCostDetailsListByWx(BizWaybillCostDetails bizWaybillCostDetails);
+
+    BizWaybillCostDetails getAccountAdjustmentById(BizWaybillCostDetails bizWaybillCostDetails);
 }

+ 9 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/IBizWaybillCostDetailsService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.logistics.service;
 
 import java.util.List;
+import java.util.Map;
+
 import com.ruoyi.logistics.domain.BizWaybillCostDetails;
 
 /**
@@ -60,4 +62,11 @@ public interface IBizWaybillCostDetailsService
     public int deleteBizWaybillCostDetailsByWaybillDetailId(Long waybillDetailId);
 
     List<BizWaybillCostDetails> selectBizWaybillCostDetailsListByWx(BizWaybillCostDetails bizWaybillCostDetails);
+
+    /**
+     * 运单明细调整
+     */
+    int accountAdjustment(BizWaybillCostDetails bizWaybillCostDetails);
+
+    BizWaybillCostDetails getAccountAdjustmentById(BizWaybillCostDetails bizWaybillCostDetails);
 }

+ 1 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/LogisticsOrderService.java

@@ -80,6 +80,7 @@ public class LogisticsOrderService {
         monthQRCodeDTO.setUserId(SecurityUtils.getUserId());
         monthQRCodeDTO.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
         monthQRCodeDTO.setSource(source);
+        monthQRCodeDTO.setCreateTime(bizMonthQrcodeRecord.getCreateTime());
 
         redisService.setCacheObject(RedisCacheConstants.MONTH_QRCODE_CACHE_KEY + bizMonthQrcodeRecord.getQrcodeId(), monthQRCodeDTO, 660L, TimeUnit.SECONDS);
 

+ 72 - 7
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizWaybillCostDetailsServiceImpl.java

@@ -1,14 +1,20 @@
 package com.ruoyi.logistics.service.impl;
 
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
+
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.datascope.annotation.DataScope;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.logistics.domain.BizFinancialAdjustmentRecord;
+import com.ruoyi.logistics.mapper.BizFinancialAdjustmentRecordMapper;
+import com.ruoyi.logistics.service.IRptFinancialMonthSummaryService;
+import com.ruoyi.system.api.model.LoginUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.logistics.mapper.BizWaybillCostDetailsMapper;
 import com.ruoyi.logistics.domain.BizWaybillCostDetails;
 import com.ruoyi.logistics.service.IBizWaybillCostDetailsService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 运单明细Service业务层处理
@@ -21,6 +27,10 @@ public class BizWaybillCostDetailsServiceImpl implements IBizWaybillCostDetailsS
 {
     @Autowired
     private BizWaybillCostDetailsMapper bizWaybillCostDetailsMapper;
+    @Autowired
+    private BizFinancialAdjustmentRecordMapper bizFinancialAdjustmentRecordMapper;
+    @Autowired
+    private IRptFinancialMonthSummaryService rptFinancialMonthSummaryService;
 
     /**
      * 查询运单明细
@@ -69,11 +79,6 @@ public class BizWaybillCostDetailsServiceImpl implements IBizWaybillCostDetailsS
     @Override
     public int updateBizWaybillCostDetails(BizWaybillCostDetails bizWaybillCostDetails)
     {
-        //修改运费明细后  会向修改记录插入数据
-
-
-
-
         bizWaybillCostDetails.setUpdateTime(DateUtils.getNowDate());
         return bizWaybillCostDetailsMapper.updateBizWaybillCostDetails(bizWaybillCostDetails);
     }
@@ -106,4 +111,64 @@ public class BizWaybillCostDetailsServiceImpl implements IBizWaybillCostDetailsS
     public List<BizWaybillCostDetails> selectBizWaybillCostDetailsListByWx(BizWaybillCostDetails bizWaybillCostDetails) {
         return bizWaybillCostDetailsMapper.selectBizWaybillCostDetailsListByWx(bizWaybillCostDetails);
     }
+
+
+    /**
+     * 调账功能
+     * 调账+调账记录生成
+     * 参数:BizWaybillCostDetails
+     *  1.供应商id   费用清单明细的deptId
+     *  2.账单月份   月度报表的月份
+     *  3.原金额     rateAmount
+     *  4.调账金额   adjustAmount
+     *  5.调账原因  字典获取value值
+     *  6.运单号    费用明细的运单号
+     *  7.费用明细id
+     *  8.
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int accountAdjustment(BizWaybillCostDetails bizWaybillCostDetails) {
+
+    try {
+
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+    //调账流水记录
+    BizFinancialAdjustmentRecord bizFinancialAdjustmentRecord = new BizFinancialAdjustmentRecord();
+    bizFinancialAdjustmentRecord.setWaybillNo(bizWaybillCostDetails.getExternalWaybillNo());
+    bizFinancialAdjustmentRecord.setWaybillCostDetailId(bizWaybillCostDetails.getWaybillDetailId());
+    bizFinancialAdjustmentRecord.setAdjustmentType(bizWaybillCostDetails.getAdjustmentType());
+    bizFinancialAdjustmentRecord.setOriginalAmount(bizWaybillCostDetails.getRateAmount());
+    bizFinancialAdjustmentRecord.setAdjustedAmount(bizWaybillCostDetails.getAdjustAmount());
+    //调整金额 由调整后金额-原金额 subtract
+    bizFinancialAdjustmentRecord.setAdjustmentAmount(bizWaybillCostDetails.getAdjustAmount().subtract(bizWaybillCostDetails.getRateAmount()));
+    bizFinancialAdjustmentRecord.setAdjustmentReason(bizWaybillCostDetails.getRemark());
+    bizFinancialAdjustmentRecord.setCreateTime(new Date());
+    bizFinancialAdjustmentRecord.setCreateBy(loginUser.getSysUser().getNickName());
+    bizFinancialAdjustmentRecord.setUserId(loginUser.getUserid());
+    bizFinancialAdjustmentRecord.setDeptId(loginUser.getSysUser().getDeptId());
+    bizFinancialAdjustmentRecordMapper.insertBizFinancialAdjustmentRecord(bizFinancialAdjustmentRecord);
+    bizWaybillCostDetails.setUpdateTime(DateUtils.getNowDate());
+    bizWaybillCostDetails.setUpdateBy(loginUser.getSysUser().getNickName());
+    bizWaybillCostDetails.setRateAmount(null);
+    bizWaybillCostDetailsMapper.updateBizWaybillCostDetails(bizWaybillCostDetails);
+    //还要重新生成该供应商的月度账单报表
+        Map param= new HashMap();
+        param.put("deptId",bizWaybillCostDetails.getDeptId());
+        param.put("monthCode",bizWaybillCostDetails.getSummaryMonth());
+        rptFinancialMonthSummaryService.creatMontSummary(param);
+        return 0;
+
+    }
+catch(Exception e)
+          {
+    throw new RuntimeException("调账失败!", e);
+      }
+
+    }
+
+    @Override
+    public BizWaybillCostDetails getAccountAdjustmentById(BizWaybillCostDetails bizWaybillCostDetails) {
+        return bizWaybillCostDetailsMapper.getAccountAdjustmentById(bizWaybillCostDetails);
+    }
 }

+ 1 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/InvoiceServiceImpl.java

@@ -82,7 +82,7 @@ public class InvoiceServiceImpl implements InvoiceService {
         goodsItem.put("tax", 0.06); // 税率13%
         goodsItem.put("se", result[1]); // 商品税额
         content.put("mxxx", new JSONObject[]{goodsItem});
-       logger.info("开票参数组装完成  参数{}",content);
+        logger.info("开票参数组装完成  参数{}",content);
         String contentBase64 = Base64Util.encode(content.toJSONString());
         // 3. 构建签名参数,生成签名值
         Map<String, String> signParams = new HashMap<>();

+ 104 - 50
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/MonthQRCodeTaskServiceImpl.java

@@ -5,22 +5,28 @@ import com.alibaba.fastjson.JSONObject;
 import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetActualFeeInfoV1.CommonActualFeeInfoDetailResponse;
 import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetActualFeeInfoV1.CommonActualFeeResponse;
 import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetOrderByMonthSettleQRV1.CommonMonthSettleQRQueryResponse;
+import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetOrderByMonthSettleQRV1.WaybillQRVerifyInfo;
 import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetOrderInfoV1.addedProducts;
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.redis.service.RedisIdGenerator;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.logistics.constant.RedisCacheConstants;
 import com.ruoyi.logistics.domain.BizFinancialFeeItems;
+import com.ruoyi.logistics.domain.BizMonthQrcodeRecord;
 import com.ruoyi.logistics.domain.BizWaybillCostDetails;
 import com.ruoyi.logistics.domain.BizWaybillOrder;
 import com.ruoyi.logistics.dto.MonthQRCodeDTO;
+import com.ruoyi.logistics.mapper.BizMonthQrcodeRecordMapper;
 import com.ruoyi.logistics.mapper.BizWaybillCostDetailsMapper;
 import com.ruoyi.logistics.mapper.BizWaybillOrderMapper;
 import com.ruoyi.logistics.response.CommonOrderInfoResponse;
 import com.ruoyi.logistics.service.*;
 import com.ruoyi.system.api.domain.SysDept;
+import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.mapper.SysDeptMapper;
+import com.ruoyi.system.mapper.SysUserMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -52,81 +58,129 @@ public class MonthQRCodeTaskServiceImpl implements IMonthQRCodeTaskService {
     @Autowired
     private SysDeptMapper sysDeptMapper;
 
+    @Autowired
+    private SysUserMapper sysUserMapper;
 
     @Autowired
     private RedisIdGenerator redisIdGenerator;
 
+    @Autowired
+    private BizMonthQrcodeRecordMapper bizMonthQrcodeRecordMapper;
+
     @Override
     public void consumeQRCode() {
         Collection<String> keys = redisService.keys(RedisCacheConstants.MONTH_QRCODE_CACHE_KEY + "*");
+        if (keys == null || keys.size() == 0) {
+            return;
+        }
 
-        keys.forEach(key -> {
+        for (String key : keys) {
             MonthQRCodeDTO monthQRCodeDTO = redisService.getCacheObject(key);
 
-            SysDept sysDept = sysDeptMapper.selectDeptById(monthQRCodeDTO.getDeptId());
-
-            JSONObject waybillCode = logisticsOrderService.queryOrderByQRCode(1, monthQRCodeDTO.getQrCodeContent());
-
-            CommonMonthSettleQRQueryResponse response = JSON.parseObject(waybillCode.getString("msg"), CommonMonthSettleQRQueryResponse.class);
-
-            if (response.getWaybillQRVerifyInfoList() != null && response.getWaybillQRVerifyInfoList().size() > 0) {
-                log.info("用户:{} 扫描了二维码:{}", monthQRCodeDTO.getUserId(), monthQRCodeDTO.getQrCodeContent());
+            // 判断二维码是否在5分钟内生成的,如果是则给第三方处理数据缓冲时间,避免数据处理
+            if (DateUtils.differentMinutes(monthQRCodeDTO.getCreateTime(), DateUtils.getNowDate()) < 5) {
+                continue;
+            }
 
-                response.getWaybillQRVerifyInfoList().forEach(waybillQRVerifyInfo -> {
-                    JSONObject orderDetail = logisticsOrderService.queryOrderDetailByWaybillCode(1, waybillQRVerifyInfo.getWaybillCode());
-                    JSONObject orderFeeInfo = logisticsOrderService.queryOrderFeeInfoByWaybillCode(1, waybillQRVerifyInfo.getWaybillCode());
+            SysUser sysUser = sysUserMapper.selectUserById(monthQRCodeDTO.getUserId());
+            SysDept sysDept = sysDeptMapper.selectDeptById(monthQRCodeDTO.getDeptId());
 
-                    CommonOrderInfoResponse orderInfo = (CommonOrderInfoResponse) orderDetail.get("msg");
-                    CommonActualFeeResponse actualFee = JSON.parseObject(orderFeeInfo.getString("msg"), CommonActualFeeResponse.class);
+            if (1 == monthQRCodeDTO.getSource()) {
+                this.jdQRCodeConsume(monthQRCodeDTO, sysUser, sysDept, key);
+            }
+        }
+    }
 
-                    BizWaybillOrder bizWaybillOrder = new BizWaybillOrder();
-                    bizWaybillOrder.setWaybillNo(redisIdGenerator.generateUniqueId("RJSD"));
-                    bizWaybillOrder.setExternalWaybillNo(orderInfo.getWaybillCode());
-                    bizWaybillOrder.setOrderType(1);
+    private void jdQRCodeConsume(MonthQRCodeDTO monthQRCodeDTO, SysUser sysUser, SysDept sysDept, String key) {
+        JSONObject waybillCode = logisticsOrderService.queryOrderByQRCode(1, monthQRCodeDTO.getQrCodeContent());
+        if(!waybillCode.getBooleanValue("success")){
+            log.info("根据二维码查询运单号失败{}", waybillCode.getString("msg"));
+            return;
+        }
+
+        CommonMonthSettleQRQueryResponse response = waybillCode.getObject("msg", CommonMonthSettleQRQueryResponse.class);
+
+        if (response.getWaybillQRVerifyInfoList() != null && response.getWaybillQRVerifyInfoList().size() > 0) {
+
+            for (WaybillQRVerifyInfo waybillQRVerifyInfo : response.getWaybillQRVerifyInfoList()) {
+                // 判断订单是否已经处理过
+                if (monthQRCodeDTO.getProcessWaybillCodes().contains(waybillQRVerifyInfo.getWaybillCode())) {
+                    continue;
+                }
+                monthQRCodeDTO.getProcessWaybillCodes().add(waybillQRVerifyInfo.getWaybillCode());
+
+                JSONObject orderDetail = logisticsOrderService.queryOrderDetailByWaybillCode(1, waybillQRVerifyInfo.getWaybillCode());
+                if(!waybillCode.getBooleanValue("success")){
+                    log.info("根据运单号查询运单详情失败{}", waybillCode.getString("msg"));
+                    continue;
+                }
+                JSONObject orderFeeInfo = logisticsOrderService.queryOrderFeeInfoByWaybillCode(1, waybillQRVerifyInfo.getWaybillCode());
+                if(!waybillCode.getBooleanValue("success")){
+                    log.info("根据运单号查询运单费用失败{}", waybillCode.getString("msg"));
+                    continue;
+                }
+
+                CommonOrderInfoResponse orderInfo = orderDetail.getObject("msg", CommonOrderInfoResponse.class);
+                CommonActualFeeResponse actualFee = orderFeeInfo.getObject("msg", CommonActualFeeResponse.class);
+
+                BizWaybillOrder bizWaybillOrder = new BizWaybillOrder();
+                bizWaybillOrder.setWaybillNo(redisIdGenerator.generateUniqueId("RJSD"));
+                bizWaybillOrder.setExternalWaybillNo(orderInfo.getWaybillCode());
+                bizWaybillOrder.setOrderType(1);
 //                    bizWaybillOrder.setSenderName(orderInfo.gets());
 //                    bizWaybillOrder.setSenderPhone(orderInfo.getSenderPhone());
-                    bizWaybillOrder.setSenderProvince(orderInfo.getSenderContact().getProvince());
-                    bizWaybillOrder.setSenderCity(orderInfo.getSenderContact().getCity());
-                    bizWaybillOrder.setSenderCounty(orderInfo.getSenderContact().getCounty());
-                    bizWaybillOrder.setSenderAddress(orderInfo.getSenderContact().getTown());
-//                    bizWaybillOrder.setReceiverName(orderInfo.getReceiverName());
-//                    bizWaybillOrder.setReceiverPhone(orderInfo.getReceiverPhone());
-                    bizWaybillOrder.setReceiverProvince(orderInfo.getReceiverContact().getProvince());
-                    bizWaybillOrder.setReceiverCity(orderInfo.getReceiverContact().getCity());
-                    bizWaybillOrder.setReceiverCounty(orderInfo.getReceiverContact().getCounty());
-                    bizWaybillOrder.setReceiverAddress(orderInfo.getReceiverContact().getTown());
-                    bizWaybillOrder.setGoodsName(orderInfo.getCargoes().get(0).getName());
-                    bizWaybillOrder.setGoodsWeight(new BigDecimal(orderInfo.getCargoes().get(0).getWeight()));
-                    bizWaybillOrder.setGoodsVolume(new BigDecimal(orderInfo.getCargoes().get(0).getVolume()));
-                    bizWaybillOrder.setGoodsQty(orderInfo.getCargoes().get(0).getQuantity().longValue());
-                    bizWaybillOrder.setOrderStatus(1);
-                    bizWaybillOrder.setPickupType(1);
-                    bizWaybillOrder.setSendStartTime(new Date(orderInfo.getShipmentInfo().getPickupStartTime()));
-                    bizWaybillOrder.setSendEndTime(new Date(orderInfo.getShipmentInfo().getPickupEndTime()));
+                bizWaybillOrder.setSenderProvince(orderInfo.getSenderContact().getProvince());
+                bizWaybillOrder.setSenderCity(orderInfo.getSenderContact().getCity());
+                bizWaybillOrder.setSenderCounty(orderInfo.getSenderContact().getCounty());
+                bizWaybillOrder.setSenderAddress(orderInfo.getSenderContact().getTown());
+                bizWaybillOrder.setReceiverName(sysUser.getNickName());
+                bizWaybillOrder.setReceiverPhone(sysUser.getPhonenumber());
+                bizWaybillOrder.setReceiverProvince(orderInfo.getReceiverContact().getProvince());
+                bizWaybillOrder.setReceiverCity(orderInfo.getReceiverContact().getCity());
+                bizWaybillOrder.setReceiverCounty(orderInfo.getReceiverContact().getCounty());
+                bizWaybillOrder.setReceiverAddress(orderInfo.getReceiverContact().getTown());
+                bizWaybillOrder.setGoodsName(orderInfo.getCargoes().get(0).getName());
+                bizWaybillOrder.setGoodsWeight(new BigDecimal(orderInfo.getCargoes().get(0).getWeight()));
+                bizWaybillOrder.setGoodsVolume(new BigDecimal(orderInfo.getCargoes().get(0).getVolume()));
+                bizWaybillOrder.setGoodsQty(orderInfo.getCargoes().get(0).getQuantity().longValue());
+                bizWaybillOrder.setOrderStatus(6);
+                bizWaybillOrder.setPickupType(orderInfo.getShipmentInfo().getPickupType());
+                bizWaybillOrder.setSendStartTime(new Date(orderInfo.getShipmentInfo().getPickupStartTime()));
+                bizWaybillOrder.setSendEndTime(new Date(orderInfo.getShipmentInfo().getPickupEndTime()));
 //                    bizWaybillOrder.setPickupTime(new Date(orderInfo.getShipmentInfo().geta()));
 //                    bizWaybillOrder.setDeliveryTime(waybillQRVerifyInfo.getDeliveryTime());
 //                    bizWaybillOrder.setSignTime(waybillQRVerifyInfo.getSignTime());
-                    bizWaybillOrder.setProductCode(orderInfo.getProducts().getProductCode());
-                    bizWaybillOrder.setAddedService(assembleAddedService(orderInfo.getProducts().getAddedProducts()));
-                    bizWaybillOrder.setCreateTime(DateUtils.getNowDate());
-                    bizWaybillOrder.setUserId(monthQRCodeDTO.getUserId());
-                    bizWaybillOrder.setDeptId(monthQRCodeDTO.getDeptId());
+                bizWaybillOrder.setProductCode(orderInfo.getProducts().getProductCode());
+                bizWaybillOrder.setAddedService(assembleJDAddedService(orderInfo.getProducts().getAddedProducts()));
+                bizWaybillOrder.setCreateTime(DateUtils.getNowDate());
+                bizWaybillOrder.setUserId(monthQRCodeDTO.getUserId());
+                bizWaybillOrder.setDeptId(monthQRCodeDTO.getDeptId());
 
-                    bizWaybillOrderMapper.insertBizWaybillOrder(bizWaybillOrder);
+                bizWaybillOrderMapper.insertBizWaybillOrder(bizWaybillOrder);
 
-                    List<BizWaybillCostDetails> details = assembleCostDetails(sysDept, bizWaybillOrder, actualFee.getCommonActualFeeInfoDetails());
+                List<BizWaybillCostDetails> details = assembleJDCostDetails(sysDept, bizWaybillOrder, actualFee.getCommonActualFeeInfoDetails());
 
-                    details.forEach(detail -> {
-                        bizWaybillCostDetailsMapper.insertBizWaybillCostDetails(detail);
-                    });
+                details.forEach(detail -> {
+                    bizWaybillCostDetailsMapper.insertBizWaybillCostDetails(detail);
                 });
+            }
 
-
+            // 记录二维码处理次数
+            monthQRCodeDTO.setProcessNum(monthQRCodeDTO.getProcessNum() + 1);
+            redisService.setCacheObject(key, monthQRCodeDTO);
+
+            // 二维码处理次数大于等于5次,且已处理订单等于二维码包含订单数,则修改二维码状态为已处理
+            if (monthQRCodeDTO.getProcessNum() >= 5 && monthQRCodeDTO.getProcessWaybillCodes().size() == response.getWaybillQRVerifyInfoList().size()) {
+                BizMonthQrcodeRecord record = new BizMonthQrcodeRecord();
+                record.setQrcodeId(monthQRCodeDTO.getQrcodeId());
+                record.setIsVerify(1);
+                record.setUpdateTime(DateUtils.getNowDate());
+                bizMonthQrcodeRecordMapper.updateBizMonthQrcodeRecord(record);
             }
-        });
+        }
     }
 
-    private List<BizWaybillCostDetails> assembleCostDetails(SysDept sysDept, BizWaybillOrder bizWaybillOrder, List<CommonActualFeeInfoDetailResponse> commonActualFeeInfoDetails) {
+    private List<BizWaybillCostDetails> assembleJDCostDetails(SysDept sysDept, BizWaybillOrder bizWaybillOrder, List<CommonActualFeeInfoDetailResponse> commonActualFeeInfoDetails) {
         List<BizWaybillCostDetails> details = new ArrayList<>();
         commonActualFeeInfoDetails.forEach(item -> {
             BizWaybillCostDetails costDetail = new BizWaybillCostDetails();
@@ -150,7 +204,7 @@ public class MonthQRCodeTaskServiceImpl implements IMonthQRCodeTaskService {
         return details;
     }
 
-    private String assembleAddedService(List<addedProducts> addedProducts) {
+    private String assembleJDAddedService(List<addedProducts> addedProducts) {
         JSONObject addedService = new JSONObject();
 
         addedService.put("isPack", null);

+ 2 - 11
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/RptFinancialMonthSummaryServiceImpl.java

@@ -56,17 +56,8 @@ public class RptFinancialMonthSummaryServiceImpl implements IRptFinancialMonthSu
     @Override
     public int insertRptFinancialMonthSummary(RptFinancialMonthSummary rptFinancialMonthSummary)
     {
-        LocalDate today = LocalDate.now();
-        LocalDate lastMonth = today.minusMonths(1);
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM");
-        // 格式化上个月日期为字符串
-        String formattedDate = lastMonth.format(formatter);
-        //按照传值条件查询统计账单情况
-        Map param = new HashMap<>();
-        param.put("deptId",rptFinancialMonthSummary.getDeptId());
-        param.put("monthCode",rptFinancialMonthSummary.getSummaryMonth()!=null?rptFinancialMonthSummary.getSummaryMonth():formattedDate);
-        List<Map<String,Object>> monthSummaryList=rptFinancialMonthSummaryMapper.selectMonthSummaryList(param);
-        return rptFinancialMonthSummaryMapper.insertBachRptFinancialMonthSummary(monthSummaryList);
+
+        return rptFinancialMonthSummaryMapper.insertRptFinancialMonthSummary(rptFinancialMonthSummary);
 
     }
 

+ 47 - 11
jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizWaybillCostDetailsMapper.xml

@@ -22,8 +22,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="delFlag"    column="del_flag"    />
         <result property="createBy"    column="create_by"    />
         <result property="updateBy"    column="update_by"    />
-
-
         <result property="orderType"    column="order_type"    />
         <result property="senderCity"    column="sender_city"    />
         <result property="receiverCity"    column="receiver_city"    />
@@ -31,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="goodsWeight"    column="goods_weight"    />
         <result property="productCode"    column="product_code"    />
         <result property="userName"    column="user_name"    />
-
+        <result property="summaryMonth"    column="summaryMonth"    />
 
 
 
@@ -54,14 +52,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             a.fee_item_code,
             a.fee_item_name,
             ifnull( a.adjust_amount, a.rate_amount ) rate_amount,
-            a.adjust_amount,
+            DATE_FORMAT( b.sign_time, '%Y.%m' )  summaryMonth,
             a.remark,
             a.create_time,
             a.update_time,
             a.dept_id,
             a.del_flag,
             a.create_by,
-            a.update_by
+            a.update_by,u.nick_name  user_name
         FROM
             biz_waybill_cost_details a
                 LEFT JOIN biz_waybill_order b ON a.waybill_id = b.waybill_id
@@ -73,15 +71,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectBizWaybillCostDetailsVo"/>
         <where>
             b.order_status = 6
-            <if test="monthCode != null "> AND DATE_FORMAT( b.sign_time, '%Y.%m' ) = #{monthCode}</if>
+            <if test="summaryMonth != null "> AND DATE_FORMAT( b.sign_time, '%Y.%m' ) = #{summaryMonth}</if>
             <if test="deptId != null "> AND a.dept_id = #{deptId}</if>
+            <if test="externalWaybillNo != null  and externalWaybillNo != ''"> and a.external_waybill_no = #{externalWaybillNo}</if>
 
-
-            <!-- 数据范围过滤 -->
-            ${params.dataScope}
+   <!--         &lt;!&ndash; 数据范围过滤 &ndash;&gt;
+            ${params.dataScope}-->
 
            <!-- <if test="waybillId != null "> and waybill_id = #{waybillId}</if>
-            <if test="externalWaybillNo != null  and externalWaybillNo != ''"> and external_waybill_no = #{externalWaybillNo}</if>
+
             <if test="feeItemCode != null  and feeItemCode != ''"> and fee_item_code = #{feeItemCode}</if>
             <if test="feeItemName != null  and feeItemName != ''"> and fee_item_name like concat('%', #{feeItemName}, '%')</if>
             <if test="feeName != null  and feeName != ''"> and fee_name like concat('%', #{feeName}, '%')</if>
@@ -112,7 +110,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
          <if test="userId != null "> and user_id = #{userId}</if>-->
     </where>
     </select>
-    
+
+
+
+
+    <select id="getAccountAdjustmentById" parameterType="com.ruoyi.logistics.domain.BizWaybillCostDetails" resultMap="BizWaybillCostDetailsResult">
+        SELECT
+        a.waybill_detail_id,
+        b.sign_time,
+        b.external_waybill_no,
+        b.sender_city,
+        b.receiver_city,
+        b.goods_weight,
+        b.order_type,
+        b.product_code,
+        a.waybill_id,
+        a.external_waybill_no,
+        a.fee_item_code,
+        a.fee_item_name,
+        ifnull( a.adjust_amount, a.rate_amount ) rate_amount,
+        DATE_FORMAT( b.sign_time, '%Y.%m' )  summaryMonth,
+        a.remark,
+        a.create_time,
+        a.update_time,
+        a.dept_id,
+        a.update_by,u.nick_name  user_name
+        FROM
+        biz_waybill_cost_details a
+        LEFT JOIN biz_waybill_order b ON a.waybill_id = b.waybill_id
+        LEFT JOIN sys_user u ON b.user_id = u.user_id
+        LEFT JOIN sys_dept d ON a.dept_id = d.dept_id
+
+    <where>
+
+        <if test="waybillId != null "> and waybill_detail_id = #{waybillDetailId}</if>
+
+    </where>
+    </select>
+
+
     <select id="selectBizWaybillCostDetailsByWaybillDetailId" parameterType="Long" resultMap="BizWaybillCostDetailsResult">
         <include refid="selectBizWaybillCostDetailsVo"/>
         where a.waybill_detail_id = #{waybillDetailId}

+ 1 - 1
jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/RptFinancialMonthSummaryMapper.xml

@@ -39,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="payableAmount != null  and payableAmount != ''"> and a.payable_amount = #{payableAmount}</if>
             <if test="transactionCount != null  and transactionCount != ''"> a.and transaction_count = #{transactionCount}</if>
             <if test="status != null  and status != ''"> and a.status = #{status}</if>
-            <if test="deptName != null "> and b.dept_name = #{deptName}</if>
+            <if test="deptName != null "> and d.dept_name  like concat('%', #{deptName}, '%')</if>
             <if test="bwDjbh != null  and bwDjbh != ''"> and a.bw_djbh = #{bwDjbh}</if>
             <if test="bwDzfpPdfUrl != null  and bwDzfpPdfUrl != ''"> and a.bw_dzfp_pdf_url = #{bwDzfpPdfUrl}</if>
             <if test="bwDzfpOfdUrl != null  and bwDzfpOfdUrl != ''"> and a.bw_dzfp_ofd_url = #{bwDzfpOfdUrl}</if>