Explorar el Código

Merge remote-tracking branch 'origin/master'

颜琼丽 hace 2 días
padre
commit
931b443f25
Se han modificado 31 ficheros con 462 adiciones y 117 borrados
  1. 14 0
      jd-logistics-api/jd-logistics-api-system/src/main/java/com/ruoyi/system/api/RemoteMonthSummaryService.java
  2. 11 0
      jd-logistics-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/BaseEntity.java
  3. 2 1
      jd-logistics-modules/jd-logistics-job/pom.xml
  4. 53 0
      jd-logistics-modules/jd-logistics-job/src/main/java/com/ruoyi/job/task/FinancialMonthSummaryTask.java
  5. 1 0
      jd-logistics-modules/jd-logistics-system/pom.xml
  6. 9 3
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/JDPushOrderFeeCallback.java
  7. 12 7
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/JDPushOrderStatausCallback.java
  8. 2 2
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/SfRoutingPushCallback.java
  9. 4 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/constant/SysConfigConstants.java
  10. 16 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizBannerController.java
  11. 1 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizFinancialAdjustmentRecordController.java
  12. 1 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizFinancialFeeItemsController.java
  13. 1 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizWaybillCostDetailsController.java
  14. 11 2
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizWaybillOrderController.java
  15. 13 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/RptFinancialMonthSummaryController.java
  16. 1 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/SysCityController.java
  17. 13 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/RptFinancialMonthSummary.java
  18. 34 37
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/dto/JDOrderStatusRequestDTO.java
  19. 3 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/mapper/BizWaybillOrderMapper.java
  20. 7 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/mapper/RptFinancialMonthSummaryMapper.java
  21. 3 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/IBizWaybillOrderService.java
  22. 8 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/IRptFinancialMonthSummaryService.java
  23. 3 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizAddressBookServiceImpl.java
  24. 23 16
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizWaybillOrderServiceImpl.java
  25. 54 18
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/JDLogisticsService.java
  26. 41 8
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/RptFinancialMonthSummaryServiceImpl.java
  27. 4 2
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/SFLogisticsService.java
  28. 4 1
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizAddressBookMapper.xml
  29. 1 1
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizFinancialFeeItemsMapper.xml
  30. 65 1
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizWaybillOrderMapper.xml
  31. 47 11
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/RptFinancialMonthSummaryMapper.xml

+ 14 - 0
jd-logistics-api/jd-logistics-api-system/src/main/java/com/ruoyi/system/api/RemoteMonthSummaryService.java

@@ -0,0 +1,14 @@
+package com.ruoyi.system.api;
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+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 java.util.Map;
+
+@FeignClient(contextId = "remoteMonthSummaryService", value = ServiceNameConstants.SYSTEM_SERVICE)
+public interface RemoteMonthSummaryService {
+    @PostMapping("/monthSummary/creatMontSummary")
+    public AjaxResult creatMontSummary(@RequestBody Map param);
+}

+ 11 - 0
jd-logistics-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/BaseEntity.java

@@ -38,6 +38,9 @@ public class BaseEntity implements Serializable
     /** 备注 */
     private String remark;
 
+    /** 搜索关键字 */
+    private String searchKeyword;
+
     /** 请求参数 */
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
     private Map<String, Object> params;
@@ -115,4 +118,12 @@ public class BaseEntity implements Serializable
     {
         this.params = params;
     }
+
+    public String getSearchKeyword() {
+        return searchKeyword;
+    }
+
+    public void setSearchKeyword(String searchKeyword) {
+        this.searchKeyword = searchKeyword;
+    }
 }

+ 2 - 1
jd-logistics-modules/jd-logistics-job/pom.xml

@@ -70,7 +70,8 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
-        
+
+
     </dependencies>
 
     <build>

+ 53 - 0
jd-logistics-modules/jd-logistics-job/src/main/java/com/ruoyi/job/task/FinancialMonthSummaryTask.java

@@ -0,0 +1,53 @@
+package com.ruoyi.job.task;
+
+
+
+import com.ruoyi.system.api.RemoteMonthSummaryService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 月度汇总定时任务
+ *
+ * @author lydgt
+ */
+@Component("financialMonthSummaryTask")
+public class FinancialMonthSummaryTask {
+
+    private static final Logger logger = LoggerFactory.getLogger(FinancialMonthSummaryTask.class);
+
+
+    @Autowired
+    RemoteMonthSummaryService remoteMonthSummaryService;
+
+    /**
+     * 每个月月初 执行生成上个月的月度账单
+     * @author zxf
+     */
+    public void doTask() {
+        logger.info("月度汇总上单定时任务开始");
+        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("monthCode",formattedDate);
+        remoteMonthSummaryService.creatMontSummary(param);
+    }
+    /**
+     * 每次调账时  都会重新生成该供应商的月度账单
+     *  这里的定时任务  作为方便测试
+     * @author zxf
+     */
+    public void doTask(Integer deptName, String month) {
+        System.out.println("月度汇总定时任务,部门ID:" + deptName + ", 月份:" + month);
+    }
+}

+ 1 - 0
jd-logistics-modules/jd-logistics-system/pom.xml

@@ -85,6 +85,7 @@
             <version>2.1.7</version>
         </dependency>
 
+
         <dependency>
             <groupId>com.jd</groupId>
             <artifactId>lop-opensdk-support</artifactId>

+ 9 - 3
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/JDPushOrderFeeCallback.java

@@ -1,7 +1,7 @@
 package com.ruoyi.logistics.callback;
 
+import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.core.web.domain.AjaxResult;
-import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.logistics.domain.BizFinancialFeeItems;
 import com.ruoyi.logistics.domain.BizWaybillCostDetails;
 import com.ruoyi.logistics.domain.BizWaybillOrder;
@@ -11,7 +11,9 @@ import com.ruoyi.logistics.service.IBizWaybillCostDetailsService;
 import com.ruoyi.logistics.service.IBizWaybillOrderService;
 import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.service.ISysDeptService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -20,6 +22,7 @@ import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
+@Slf4j
 @RestController
 @RequestMapping("/callback/jd")
 public class JDPushOrderFeeCallback {
@@ -36,8 +39,11 @@ public class JDPushOrderFeeCallback {
     @Autowired
     private FeeItemsCacheService feeItemsCacheService;
 
-    @RequestMapping("/fee")
-    public AjaxResult fee(@RequestBody JDOrderFeeRequestDTO request) {
+    @RequestMapping(value = "/fee", consumes = MediaType.TEXT_PLAIN_VALUE)
+    public AjaxResult fee(@RequestBody String requestBody) {
+        log.info("京东物流运单费用回调,参数:{}", requestBody);
+
+        JDOrderFeeRequestDTO request = JSON.parseObject(requestBody, JDOrderFeeRequestDTO.class);
 
         // 根据运单号查询订单
         BizWaybillOrder query = new BizWaybillOrder();

+ 12 - 7
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/JDPushOrderStatausCallback.java

@@ -1,5 +1,6 @@
 package com.ruoyi.logistics.callback;
 
+import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.logistics.domain.BizWaybillOrder;
@@ -8,6 +9,7 @@ import com.ruoyi.logistics.enums.OrderStatusEnum;
 import com.ruoyi.logistics.service.IBizWaybillOrderService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -21,29 +23,32 @@ public class JDPushOrderStatausCallback {
     @Autowired
     private IBizWaybillOrderService bizWaybillOrderService;
 
-    @PostMapping("/orderStatus")
-    public AjaxResult orderStatus(@RequestBody JDOrderStatusRequestDTO request) {
-        log.info("京东物流运单状态回调,参数:{}", request.toString());
+    @PostMapping(value = "/orderStatus", consumes = MediaType.TEXT_PLAIN_VALUE)
+    public AjaxResult orderStatus(@RequestBody String requestBody) {
+        log.info("京东物流运单状态回调,参数:{}", requestBody);
+
+        JDOrderStatusRequestDTO request = JSON.parseObject(requestBody, JDOrderStatusRequestDTO.class);
 
         // 根据运单号查询订单
         BizWaybillOrder query = new BizWaybillOrder();
-        query.setWaybillNo(request.getOrderId());
-        query.setExternalWaybillNo(request.getWaybillCode());
+        query.setWaybillNo(request.getCustomerOrderNo());
+        query.setExternalWaybillNo(request.getWaybillNo());
         BizWaybillOrder bizWaybillOrder = bizWaybillOrderService.selectBizWaybillOrderByQuery(query);
         if (bizWaybillOrder == null) {
             return AjaxResult.error("订单不存在");
         }
         Boolean update = Boolean.FALSE;
-        switch (request.getState()) {
+        switch (request.getOperationCode()) {
             case "200001"://揽收
                 bizWaybillOrder.setOrderStatus(OrderStatusEnum.ORDER_STATUS_1.getCode());
                 bizWaybillOrder.setPickupTime(DateUtils.getNowDate());
                 update = Boolean.TRUE;
                 break;
-            case "200075"://运输
+            case "10054"://运输
                 bizWaybillOrder.setOrderStatus(OrderStatusEnum.ORDER_STATUS_3.getCode());
                 update = Boolean.TRUE;
                 break;
+            case "200056"://派送
             case "11000"://派送
                 bizWaybillOrder.setOrderStatus(OrderStatusEnum.ORDER_STATUS_4.getCode());
                 bizWaybillOrder.setDeliveryTime(DateUtils.getNowDate());

+ 2 - 2
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/SfRoutingPushCallback.java

@@ -106,13 +106,13 @@ public class SfRoutingPushCallback {
                 bizWaybillOrderService.updateBizWaybillOrderState( bizWaybillOrder);
                 break;
             case "44": // 派送中
-                bizWaybillOrder.setOrderStatus(5);
+                bizWaybillOrder.setOrderStatus(4);
                 bizWaybillOrder.setExternalWaybillNo(mailno);
                 bizWaybillOrder.setDeliveryTime(new Date());
                 bizWaybillOrderService.updateBizWaybillOrderState( bizWaybillOrder);
                 break;
             case "80": // 已签收
-                bizWaybillOrder.setOrderStatus(6);
+                bizWaybillOrder.setOrderStatus(5);
                 bizWaybillOrder.setExternalWaybillNo(mailno);
                 bizWaybillOrder.setSignTime(new Date());
                 bizWaybillOrderService.updateBizWaybillOrderState( bizWaybillOrder);

+ 4 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/constant/SysConfigConstants.java

@@ -6,4 +6,8 @@ public class SysConfigConstants {
      * 京东客户编码
      */
     public static final String JD_LOGISTICS_CUSTOMERCODE = "jd.logistics.customercode";
+    /**
+     * 京东事业部编码
+     */
+    public static final String JD_LOGISTICS_BUSINESSUNITCODE = "jd.logistics.businessunitcode";
 }

+ 16 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizBannerController.java

@@ -23,7 +23,7 @@ import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.page.TableDataInfo;
 
 /**
- * 轮播图Controller
+ * PC-轮播图
  * 
  * @author RuiJing
  * @date 2026-02-05
@@ -102,4 +102,19 @@ public class BizBannerController extends BaseController
     {
         return toAjax(bizBannerService.deleteBizBannerByBannerIds(bannerIds));
     }
+
+
+    /**
+     * 首页-轮播图列表
+     */
+    @RequiresPermissions("system:banner:list")
+    @GetMapping("/listByType")
+    public AjaxResult listByType()
+    {
+        BizBanner bizBanner = new BizBanner();
+        bizBanner.setSysType("0");
+        bizBanner.setIsActive("0");
+        List<BizBanner> list = bizBannerService.selectBizBannerList(bizBanner);
+        return success(list);
+    }
 }

+ 1 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizFinancialAdjustmentRecordController.java

@@ -23,7 +23,7 @@ import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.page.TableDataInfo;
 
 /**
- * 调账流水记录Controller
+ * PC-调账流水记录
  * 
  * @author RuiJing
  * @date 2026-01-29

+ 1 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizFinancialFeeItemsController.java

@@ -22,7 +22,7 @@ import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.page.TableDataInfo;
 
 /**
- * 费用类型管理Controller
+ * PC-费用类型管理
  * 
  * @author RuiJing
  * @date 2026-01-29

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

@@ -23,7 +23,7 @@ import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.page.TableDataInfo;
 
 /**
- * 运单明细Controller
+ * PC-运单明细
  * 
  * @author RuiJing
  * @date 2026-01-29

+ 11 - 2
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizWaybillOrderController.java

@@ -101,14 +101,23 @@ public class BizWaybillOrderController extends BaseController
 
 
     /**
-     * 修改运单管理
+     * 取消运单
      */
     @RequiresPermissions("system:order:edit")
     @Log(title = "运单管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody BizWaybillOrder bizWaybillOrder)
     {
-        return toAjax(bizWaybillOrderService.updateBizWaybillOrder(bizWaybillOrder));
+
+        try{
+            bizWaybillOrderService.canceleBizWaybillOrder(bizWaybillOrder);
+            return AjaxResult.success("运单取消成功!");
+        }
+        catch(ServiceException e){
+            return AjaxResult.error("取消运单失败! 原因:"+e.getMessage());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
     }
 
     /**

+ 13 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/RptFinancialMonthSummaryController.java

@@ -2,6 +2,7 @@ package com.ruoyi.logistics.controller;
 
 import java.util.List;
 import java.io.IOException;
+import java.util.Map;
 import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -23,7 +24,7 @@ import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.page.TableDataInfo;
 
 /**
- * 财务月度汇总Controller
+ * PC-财务月度汇总
  * 
  * @author RuiJing
  * @date 2026-01-29
@@ -81,6 +82,17 @@ public class RptFinancialMonthSummaryController extends BaseController
         return toAjax(rptFinancialMonthSummaryService.insertRptFinancialMonthSummary(rptFinancialMonthSummary));
     }
 
+    /**
+     * 月度账单汇总生成
+     */
+
+    @PostMapping("/creatMontSummary")
+    public AjaxResult creatMontSummary(@RequestBody Map param)
+    {
+        return toAjax(rptFinancialMonthSummaryService.creatMontSummary(param));
+    }
+
+
     /**
      * 修改财务月度汇总
      */

+ 1 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/SysCityController.java

@@ -23,7 +23,7 @@ import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.page.TableDataInfo;
 
 /**
- * 城市管理Controller
+ * PC-城市管理
  * 
  * @author RuiJing
  * @date 2026-01-29

+ 13 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/RptFinancialMonthSummary.java

@@ -41,6 +41,10 @@ public class RptFinancialMonthSummary extends BaseEntity
     @Excel(name = "部门ID")
     private Long deptId;
 
+    /** 供应商名称 */
+    @Excel(name = "供应商名称")
+    private String deptName;
+
     /** 用户id */
     @Excel(name = "用户id")
     private Long userId;
@@ -181,10 +185,19 @@ public class RptFinancialMonthSummary extends BaseEntity
         return bwDzfpXmlUrl;
     }
 
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
             .append("summaryId", getSummaryId())
+                .append("deptName", getDeptName())
             .append("summaryMonth", getSummaryMonth())
             .append("payableAmount", getPayableAmount())
             .append("transactionCount", getTransactionCount())

+ 34 - 37
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/dto/JDOrderStatusRequestDTO.java

@@ -3,48 +3,45 @@ package com.ruoyi.logistics.dto;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.Map;
 
 @Data
 public class JDOrderStatusRequestDTO {
 
-    // 节点名称
-    private String operationTitle;
-    // 一级分类编码
-    private Integer category;
-    // 一级分类名称
-    private String categoryName;
-    // 签收类型
-    private String signTypeName;
-    // 节点编码
-    private String state;
-    // 路由详细地址
-    private String routeAddress;
-    // 路由 省
-    private String routeProvinceName;
-    // 路由 市
-    private String routeCityName;
-    // 路由 区
-    private String routeDistrictName;
-    // 路由 县
-    private String routeStreetName;
-    // 小哥名称
-    private String operatorName;
-    // 小哥电话
-    private String operatorPhone;
+    // 京东物流订单号
+    private String orderNo;
+    // 三方平台订单号
+    private String customerOrderNo;
     // 京东物流运单号
-    private String waybillCode;
-    // 商家订单号
-    private String orderId;
+    private String waybillNo;
+    // 话术
+    private String remark;
+    // 操作人名称
+    private String operatorName;
     // 操作时间
-    private Date operationTime;
-    // 节点描述
-    private String operationRemark;
-    // 机构编码
-    private String operateSiteId;
-    // 机构编码名称
+    private String operationTime;
+    // 操作节点阶段
+    private String operationType;
+    // 操作节点状态
+    private String operationCode;
+    // 操作站点
     private String operateSite;
-    // 京东换单新运单号
-    private String newWaybillCode;
-    // 取消原因
-    private String cancelReason;
+    // 操作站点id
+    private String operateSiteId;
+    // 路区地址信息
+    private OperateLocation operateLocation;
+    // 扩展参数
+    private Map<String, String> extend;
+
+    @Data
+    public class OperateLocation {
+        // 路由 省
+        private String routeProvinceName;
+        // 路由 市
+        private String routeCityName;
+        // 路由 区
+        private String routeDistrictName;
+        // 路由 县
+        private String routeStreetName;
+    }
 }

+ 3 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/mapper/BizWaybillOrderMapper.java

@@ -67,4 +67,7 @@ public interface BizWaybillOrderMapper
     public BizWaybillOrder selectBizWaybillOrderByQuery(BizWaybillOrder query);
 
     void updateBizWaybillOrderState(BizWaybillOrder bizWaybillOrder);
+
+
+    int canceleBizWaybillOrder(BizWaybillOrder bizWaybillOrder);
 }

+ 7 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/mapper/RptFinancialMonthSummaryMapper.java

@@ -1,7 +1,10 @@
 package com.ruoyi.logistics.mapper;
 
 import java.util.List;
+import java.util.Map;
+
 import com.ruoyi.logistics.domain.RptFinancialMonthSummary;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 财务月度汇总Mapper接口
@@ -58,4 +61,8 @@ public interface RptFinancialMonthSummaryMapper
      * @return 结果
      */
     public int deleteRptFinancialMonthSummaryBySummaryIds(Long[] summaryIds);
+
+    List<Map<String, Object>> selectMonthSummaryList( Map param);
+
+    int insertBachRptFinancialMonthSummary(List<Map<String, Object>> monthSummaryList);
 }

+ 3 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/IBizWaybillOrderService.java

@@ -44,7 +44,7 @@ public interface IBizWaybillOrderService
      * @param bizWaybillOrder 运单管理
      * @return 结果
      */
-    public int updateBizWaybillOrder(BizWaybillOrder bizWaybillOrder);
+    public int updateBizWaybillOrder(BizWaybillOrder bizWaybillOrder) ;
 
     /**
      * 批量删除运单管理
@@ -70,4 +70,6 @@ public interface IBizWaybillOrderService
     public BizWaybillOrder selectBizWaybillOrderByQuery(BizWaybillOrder query);
 
     void updateBizWaybillOrderState(BizWaybillOrder bizWaybillOrder);
+
+    int canceleBizWaybillOrder(BizWaybillOrder bizWaybillOrder) throws UnsupportedEncodingException;
 }

+ 8 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/IRptFinancialMonthSummaryService.java

@@ -1,7 +1,12 @@
 package com.ruoyi.logistics.service;
 
 import java.util.List;
+import java.util.Map;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.logistics.domain.RptFinancialMonthSummary;
+import com.ruoyi.system.api.factory.RemoteFileFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
 
 /**
  * 财务月度汇总Service接口
@@ -9,6 +14,7 @@ import com.ruoyi.logistics.domain.RptFinancialMonthSummary;
  * @author RuiJing
  * @date 2026-01-29
  */
+
 public interface IRptFinancialMonthSummaryService 
 {
     /**
@@ -58,4 +64,6 @@ public interface IRptFinancialMonthSummaryService
      * @return 结果
      */
     public int deleteRptFinancialMonthSummaryBySummaryId(Long summaryId);
+
+    int creatMontSummary(Map param);
 }

+ 3 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizAddressBookServiceImpl.java

@@ -61,6 +61,7 @@ public class BizAddressBookServiceImpl implements IBizAddressBookService
         bizAddressBook.setUserId(loginUser.getUserid());
         bizAddressBook.setDeptId(loginUser.getSysUser().getDeptId());
         bizAddressBook.setCreateTime(DateUtils.getNowDate());
+        bizAddressBook.setCreateBy(loginUser.getUsername());
 
         if ("1".equals(bizAddressBook.getDefaultFlag())) {
             bizAddressBookMapper.updateBizAddressBookDefault(loginUser.getUserid());
@@ -78,6 +79,8 @@ public class BizAddressBookServiceImpl implements IBizAddressBookService
     @Override
     public int updateBizAddressBook(BizAddressBook bizAddressBook)
     {
+        bizAddressBook.setCreateTime(DateUtils.getNowDate());
+        bizAddressBook.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
         bizAddressBook.setUpdateTime(DateUtils.getNowDate());
         return bizAddressBookMapper.updateBizAddressBook(bizAddressBook);
     }

+ 23 - 16
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizWaybillOrderServiceImpl.java

@@ -85,17 +85,16 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
         if(!orderObject.getBooleanValue("success")){
             throw new ServiceException("下单失败! 原因:"+orderObject.getString("msg"));
         }
-        if("1".equals(bizWaybillOrder.getOrderType())){
-            bizWaybillOrder.setExternalWaybillNo(orderObject.getString("data"));
-        }
-        //顺丰物流返回的运单号
-        JSONArray waybillNoArray=orderObject.getJSONArray("data");
-        for (int i = 0; i < waybillNoArray.size(); i++) {
-            JSONObject waybillNoJSONObject = waybillNoArray.getJSONObject(i);
-            int waybillType = waybillNoJSONObject.getIntValue("waybillType");
-            String  waybillNo = waybillNoJSONObject.getString("waybillNo");
-            if(waybillType==1){
-                bizWaybillOrder.setExternalWaybillNo(waybillNo) ;
+        if(2==bizWaybillOrder.getOrderType()){
+            //顺丰物流返回的运单号
+            JSONArray waybillNoArray=orderObject.getJSONArray("data");
+            for (int i = 0; i < waybillNoArray.size(); i++) {
+                JSONObject waybillNoJSONObject = waybillNoArray.getJSONObject(i);
+                int waybillType = waybillNoJSONObject.getIntValue("waybillType");
+                String  waybillNo = waybillNoJSONObject.getString("waybillNo");
+                if(waybillType==1){
+                    bizWaybillOrder.setExternalWaybillNo(waybillNo) ;
+                }
             }
         }
         bizWaybillOrder.setCreateTime(DateUtils.getNowDate());
@@ -111,12 +110,9 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
      * @return 结果
      */
     @Override
-    public int updateBizWaybillOrder(BizWaybillOrder bizWaybillOrder)
-    {
+    public int updateBizWaybillOrder(BizWaybillOrder bizWaybillOrder){
         bizWaybillOrder.setUpdateTime(DateUtils.getNowDate());
-
-
-        return bizWaybillOrderMapper.updateBizWaybillOrder(bizWaybillOrder);
+        return  bizWaybillOrderMapper.updateBizWaybillOrder(bizWaybillOrder);
     }
 
     /**
@@ -153,4 +149,15 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
          bizWaybillOrderMapper.updateBizWaybillOrderState(bizWaybillOrder);
 
     }
+
+    @Override
+    public int canceleBizWaybillOrder(BizWaybillOrder bizWaybillOrder) throws UnsupportedEncodingException {
+        JSONObject orderObject= logisticsOrderService.cancelOrder(bizWaybillOrder);
+        if(!orderObject.getBooleanValue("success")){
+            throw new ServiceException(orderObject.getString("msg"));
+        }
+        bizWaybillOrder.setOrderStatus(6);
+        return bizWaybillOrderMapper.canceleBizWaybillOrder(bizWaybillOrder);
+
+    }
 }

+ 54 - 18
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/JDLogisticsService.java

@@ -64,17 +64,23 @@ public class JDLogisticsService  implements LogisticsService {
             senderContact.setName(bizWaybillOrder.getSenderName());
             senderContact.setMobile(bizWaybillOrder.getSenderPhone());
             senderContact.setFullAddress(bizWaybillOrder.getSenderProvince() + bizWaybillOrder.getSenderCity() + bizWaybillOrder.getSenderCounty() + bizWaybillOrder.getSenderAddress());
+//            senderContact.setFullAddress("北京市大兴区亦庄经济开发区abc");
 
             //收货人
             Contact receiverContact = new Contact();
             receiverContact.setName(bizWaybillOrder.getReceiverName());
             receiverContact.setMobile(bizWaybillOrder.getReceiverPhone());
             receiverContact.setFullAddress(bizWaybillOrder.getReceiverProvince() + bizWaybillOrder.getReceiverCity() + bizWaybillOrder.getReceiverCounty() + bizWaybillOrder.getReceiverAddress());
+//            receiverContact.setFullAddress("河南省洛阳市西工区正大国际西区");
 
             //订单信息
             CommonCreateOrderRequest requestDTO = new  CommonCreateOrderRequest();
             requestDTO.setOrderOrigin(getOrderOrigin(bizWaybillOrder.getProductCode()));
-            requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
+            if (requestDTO.getOrderOrigin() == 1) {
+                requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
+            } else {
+                requestDTO.setBusinessUnitCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_BUSINESSUNITCODE));
+            }
             requestDTO.setPickupStartTime(bizWaybillOrder.getSendStartTime().getTime());
             requestDTO.setPickupEndTime(bizWaybillOrder.getSendEndTime().getTime());
 
@@ -128,17 +134,27 @@ public class JDLogisticsService  implements LogisticsService {
 
             //发货人
             com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact senderContact  = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact();
+            senderContact.setName(bizWaybillOrder.getSenderName());
+            senderContact.setMobile(bizWaybillOrder.getSenderPhone());
             senderContact.setFullAddress(bizWaybillOrder.getSenderProvince() + bizWaybillOrder.getSenderCity() + bizWaybillOrder.getSenderCounty() + bizWaybillOrder.getSenderAddress());
+//            senderContact.setFullAddress("北京市大兴区亦庄经济开发区abc");
 
             //收货人
             com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact receiverContact = new com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.Contact();
+            receiverContact.setName(bizWaybillOrder.getReceiverName());
+            receiverContact.setMobile(bizWaybillOrder.getReceiverPhone());
             receiverContact.setFullAddress(bizWaybillOrder.getReceiverProvince() + bizWaybillOrder.getReceiverCity() + bizWaybillOrder.getReceiverCounty() + bizWaybillOrder.getReceiverAddress());
+//            receiverContact.setFullAddress("河南省洛阳市西工区正大国际西区");
 
             //订单信息
             com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonCreateOrderRequest requestDTO = new  com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonCreateOrderRequest();
             requestDTO.setOrderId(bizWaybillOrder.getWaybillNo());
             requestDTO.setOrderOrigin(getOrderOrigin(bizWaybillOrder.getProductCode()));
-            requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
+            if (requestDTO.getOrderOrigin() == 1) {
+                requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
+            } else {
+                requestDTO.setBusinessUnitCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_BUSINESSUNITCODE));
+            }
             requestDTO.setSettleType(3);
             requestDTO.setPickupStartTime(bizWaybillOrder.getSendStartTime().getTime());
             requestDTO.setPickupEndTime(bizWaybillOrder.getSendEndTime().getTime());
@@ -159,6 +175,12 @@ public class JDLogisticsService  implements LogisticsService {
             cargoInfo.setVolume(bizWaybillOrder.getGoodsVolume());
             cargoes.add(cargoInfo);
 
+            //扩展信息
+            Map<String, String> extendProps = new HashMap<>();
+            extendProps.put("autoSubscribe", "1");
+            extendProps.put("universalFeePush", "1");
+
+            requestDTO.setExtendProps(extendProps);
             requestDTO.setCargoes(cargoes);
             requestDTO.setProductsReq(productInfo);
             requestDTO.setReceiverContact(receiverContact);
@@ -178,6 +200,7 @@ public class JDLogisticsService  implements LogisticsService {
                 if (response.getResult().getCode() == 0) {
                     result.put("success", true);
                     // 返回京东物流单号
+                    bizWaybillOrder.setExternalWaybillNo(response.getResult().getData().getWaybillCode());
                     result.put("data", response.getResult().getData().getWaybillCode());
                     result.put("msg", "");
                 } else {
@@ -208,16 +231,20 @@ public class JDLogisticsService  implements LogisticsService {
             EcapV1OrdersCancelLopRequest request = new EcapV1OrdersCancelLopRequest();
 
             //取消订单入参对象
-            CommonOrderCancelRequest commonOrderCancelRequest = new CommonOrderCancelRequest();
-            commonOrderCancelRequest.setWaybillCode(bizWaybillOrder.getExternalWaybillNo());
-            commonOrderCancelRequest.setCustomerOrderId(bizWaybillOrder.getWaybillNo());
-            commonOrderCancelRequest.setOrderOrigin(1);
-            commonOrderCancelRequest.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
-            commonOrderCancelRequest.setCancelReason("取消原因");
-            commonOrderCancelRequest.setCancelReasonCode("1");
-            commonOrderCancelRequest.setCancelType(1);
+            CommonOrderCancelRequest requestDTO = new CommonOrderCancelRequest();
+            requestDTO.setWaybillCode(bizWaybillOrder.getExternalWaybillNo());
+            requestDTO.setCustomerOrderId(bizWaybillOrder.getWaybillNo());
+            requestDTO.setOrderOrigin(getOrderOrigin(bizWaybillOrder.getProductCode()));
+            if (requestDTO.getOrderOrigin() == 1) {
+                requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
+            } else {
+                requestDTO.setBusinessUnitCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_BUSINESSUNITCODE));
+            }
+            requestDTO.setCancelReason(bizWaybillOrder.getCancelReason());
+            requestDTO.setCancelReasonCode("1");
+            requestDTO.setCancelType(1);
 
-            request.setRequest(commonOrderCancelRequest);
+            request.setRequest(requestDTO);
 
             //设置插件,必须的操作,不同类型的应用入参不同,请看入参注释,公共参数按顺序分别为AppKey、AppSecret、AccessToken
             //使用开放平台ISV/自研商家应用调用接口
@@ -345,16 +372,16 @@ public class JDLogisticsService  implements LogisticsService {
     static {
         // 订单来源为1的配置
         Map<String, ProductConfig> origin1Config = new HashMap<>();
-        origin1Config.put("isPack", new ProductConfig("ed-a-0002", true));
-        origin1Config.put("guaranteeMoney", new ProductConfig("ed-a-0010", true));
-        origin1Config.put("isReceiptCollect", new ProductConfig("ed-a-0011", false));
+        origin1Config.put("isPack", new ProductConfig("ed-a-0011", false, true));
+        origin1Config.put("guaranteeMoney", new ProductConfig("ed-a-0002", true, false));
+        origin1Config.put("isReceiptCollect", new ProductConfig("ed-a-0010", true, true));
         SERVICE_CONFIG_MAP.put(1, origin1Config);
         
         // 订单来源为4的配置
         Map<String, ProductConfig> origin4Config = new HashMap<>();
-        origin4Config.put("isPack", new ProductConfig("fr-a-0002", true));
-        origin4Config.put("guaranteeMoney", new ProductConfig("fr-a-0007", true));
-        origin4Config.put("isReceiptCollect", new ProductConfig("fr-a-0005", false));
+        origin4Config.put("isPack", new ProductConfig("fr-a-0005", false, true));
+        origin4Config.put("guaranteeMoney", new ProductConfig("fr-a-0002", true, false));
+        origin4Config.put("isReceiptCollect", new ProductConfig("fr-a-0007", true, true));
         SERVICE_CONFIG_MAP.put(4, origin4Config);
     }
     
@@ -364,10 +391,12 @@ public class JDLogisticsService  implements LogisticsService {
     private static class ProductConfig {
         private final String productCode;
         private final boolean hasAttrs;
+        private final boolean valueType;
         
-        public ProductConfig(String productCode, boolean hasAttrs) {
+        public ProductConfig(String productCode, boolean hasAttrs, boolean valueType) {
             this.productCode = productCode;
             this.hasAttrs = hasAttrs;
+            this.valueType = valueType;
         }
         
         public String getProductCode() {
@@ -377,6 +406,10 @@ public class JDLogisticsService  implements LogisticsService {
         public boolean isHasAttrs() {
             return hasAttrs;
         }
+
+        public boolean getValueType() {
+            return valueType;
+        }
     }
     
     /**
@@ -403,6 +436,9 @@ public class JDLogisticsService  implements LogisticsService {
         for (Map.Entry<String, ProductConfig> entry : configMap.entrySet()) {
             String serviceKey = entry.getKey();
             ProductConfig config = entry.getValue();
+            if (StringUtils.isBlank(addedJson.getString(serviceKey))) {
+                continue;
+            }
             
             // 检查JSON中是否包含该增值服务
             if (addedJson.containsKey(serviceKey)) {

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

@@ -1,7 +1,13 @@
 package com.ruoyi.logistics.service.impl;
 
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+
 import com.ruoyi.common.core.utils.DateUtils;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.logistics.mapper.RptFinancialMonthSummaryMapper;
@@ -44,17 +50,22 @@ public class RptFinancialMonthSummaryServiceImpl implements IRptFinancialMonthSu
         return rptFinancialMonthSummaryMapper.selectRptFinancialMonthSummaryList(rptFinancialMonthSummary);
     }
 
-    /**
-     * 新增财务月度汇总
-     * 
-     * @param rptFinancialMonthSummary 财务月度汇总
-     * @return 结果
-     */
+
     @Override
     public int insertRptFinancialMonthSummary(RptFinancialMonthSummary rptFinancialMonthSummary)
     {
-        rptFinancialMonthSummary.setCreateTime(DateUtils.getNowDate());
-        return rptFinancialMonthSummaryMapper.insertRptFinancialMonthSummary(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);
+
     }
 
     /**
@@ -93,4 +104,26 @@ public class RptFinancialMonthSummaryServiceImpl implements IRptFinancialMonthSu
     {
         return rptFinancialMonthSummaryMapper.deleteRptFinancialMonthSummaryBySummaryId(summaryId);
     }
+
+
+
+    /**
+     * 新增财务月度汇总
+     * 1.定时任务执行所有供应商生成财务月度汇总    传值汇总月份  monthCode
+     * 2.每次调整流水后需要对供应商进行重新生成汇总覆盖   传值部门id    deptId
+     *  部门Id和 账单月份必传其一  分别代表以上两种情况
+     */
+    @Override
+    public int creatMontSummary(@NotNull Map param) {
+        LocalDate today = LocalDate.now();
+        LocalDate lastMonth = today.minusMonths(1);
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM");
+        // 格式化上个月日期为字符串
+        String formattedDate = lastMonth.format(formatter);
+        //按照传值条件查询统计账单情况
+
+        param.put("monthCode",formattedDate);
+        List<Map<String,Object>> monthSummaryList=rptFinancialMonthSummaryMapper.selectMonthSummaryList(param);
+        return rptFinancialMonthSummaryMapper.insertBachRptFinancialMonthSummary(monthSummaryList);
+    }
 }

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

@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.UnsupportedEncodingException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 
@@ -116,6 +117,9 @@ public class SFLogisticsService implements LogisticsService {
         //预下单 已返回订单id
         orderData.put("orderId",bizWaybillOrder.getWaybillNo());
         orderData.put("monthlyCard",sfExpressConfig.getMonthlyCord());//月结账户
+        //上门取件时间
+        // 定义日期格式
+        orderData.put("sendStartTm",bizWaybillOrder.getSendStartTime());
         //包裹数
         orderData.put("parcelQty",bizWaybillOrder.getGoodsQty());
         //产品类别
@@ -243,9 +247,7 @@ public class SFLogisticsService implements LogisticsService {
         JSONObject jsonObject = JSON.parseObject(result).getJSONObject("apiResultData");
         JSONObject resultInfo = new JSONObject();
             if (jsonObject != null && jsonObject.containsKey("success") && jsonObject.getBooleanValue("success")) {
-
                 resultInfo.put("success", true);
-                resultInfo.put("data", bizWaybillOrder);
                 resultInfo.put("msg", "订单取消成功!");
                 return resultInfo;
             } else {

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

@@ -41,8 +41,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="defaultFlag != null  and defaultFlag != ''"> and default_flag = #{defaultFlag}</if>
             <if test="deptId != null "> and dept_id = #{deptId}</if>
             <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="searchKeyword != null and searchKeyword != ''"> and (contact_name like concat('%', #{searchKeyword}, '%') or
+                                                                            contact_phone like concat('%', #{searchKeyword}, '%') or
+                                                                            detailed_address like concat('%', #{searchKeyword}, '%'))</if>
         </where>
-        order by default_flag desc
+        order by default_flag desc, create_time desc
     </select>
     
     <select id="selectBizAddressBookByAddressId" parameterType="Long" resultMap="BizAddressBookResult">

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

@@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null "> and dept_id = #{deptId}</if>
             <if test="userId != null "> and user_id = #{userId}</if>
         </where>
-        or order by create_time desc
+         order by create_time desc
     </select>
     
     <select id="selectBizFinancialFeeItemsByFeeItemId" parameterType="Long" resultMap="BizFinancialFeeItemsResult">

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 65 - 1
jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizWaybillOrderMapper.xml


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

@@ -17,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createBy"    column="create_by"    />
         <result property="updateBy"    column="update_by"    />
         <result property="deptId"    column="dept_id"    />
+        <result property="deptName"    column="dept_name"    />
         <result property="userId"    column="user_id"    />
         <result property="bwDjbh"    column="bw_djbh"    />
         <result property="bwDzfpPdfUrl"    column="bw_dzfp_pdf_url"    />
@@ -29,18 +30,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
 
     <select id="selectRptFinancialMonthSummaryList" parameterType="com.ruoyi.logistics.domain.RptFinancialMonthSummary" resultMap="RptFinancialMonthSummaryResult">
-        <include refid="selectRptFinancialMonthSummaryVo"/>
+        select a.summary_id, a.summary_month, a.payable_amount, a.transaction_count, a.status, a.create_time,
+        a.update_time, a.remark, a.del_flag, a.create_by, a.update_by, a.dept_id, a.user_id, a.bw_djbh,
+        a.bw_dzfp_pdf_url, a.bw_dzfp_ofd_url, a.bw_dzfp_xml_url,b.dept_name from rpt_financial_month_summary a
+               left join  sys_dept b on  a.dept_id=b.dept_id
         <where>  
-            <if test="summaryMonth != null  and summaryMonth != ''"> and summary_month = #{summaryMonth}</if>
-            <if test="payableAmount != null  and payableAmount != ''"> and payable_amount = #{payableAmount}</if>
-            <if test="transactionCount != null  and transactionCount != ''"> and transaction_count = #{transactionCount}</if>
-            <if test="status != null  and status != ''"> and status = #{status}</if>
-            <if test="deptId != null "> and dept_id = #{deptId}</if>
-            <if test="userId != null "> and user_id = #{userId}</if>
-            <if test="bwDjbh != null  and bwDjbh != ''"> and bw_djbh = #{bwDjbh}</if>
-            <if test="bwDzfpPdfUrl != null  and bwDzfpPdfUrl != ''"> and bw_dzfp_pdf_url = #{bwDzfpPdfUrl}</if>
-            <if test="bwDzfpOfdUrl != null  and bwDzfpOfdUrl != ''"> and bw_dzfp_ofd_url = #{bwDzfpOfdUrl}</if>
-            <if test="bwDzfpXmlUrl != null  and bwDzfpXmlUrl != ''"> and bw_dzfp_xml_url = #{bwDzfpXmlUrl}</if>
+            <if test="summaryMonth != null  and summaryMonth != ''"> and a.summary_month = #{summaryMonth}</if>
+            <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="deptId != null "> and a.dept_id = #{deptId}</if>
+            <if test="deptName != null "> and b.dept_name = #{deptName}</if>
+            <if test="userId != null "> and a.user_id = #{userId}</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>
+            <if test="bwDzfpXmlUrl != null  and bwDzfpXmlUrl != ''"> and a.bw_dzfp_xml_url = #{bwDzfpXmlUrl}</if>
         </where>
     </select>
     
@@ -122,4 +127,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{summaryId}
         </foreach>
     </delete>
+
+
+
+
+    <select id="selectMonthSummaryList"  parameterType="java.util.Map" resultType="java.util.HashMap"  >
+        SELECT
+           #{monthCode} summary_month,
+            a.dept_id,
+            count( DISTINCT a.external_waybill_no ) transaction_count,
+            sum(
+                    ifnull(adjust_amount, rate_amount  )) payable_amount
+        FROM
+            ( SELECT * FROM biz_waybill_order WHERE order_status = 6 AND DATE_FORMAT( sign_time, '%Y.%m' )= #{monthCode}  ) a
+                INNER JOIN biz_waybill_cost_details b ON a.external_waybill_no = b.external_waybill_no
+        WHERE
+            1 = 1
+        GROUP BY
+            a.dept_id
+    </select>
+
+    <insert id="insertBachRptFinancialMonthSummary" parameterType="java.util.List"  >
+        INSERT INTO rpt_financial_month_summary (summary_month, payable_amount, transaction_count,dept_id,status,create_time) VALUES
+        <foreach collection="list" item="item" separator=",">
+            (#{item.summary_month}, #{item.payable_amount}, #{item.transaction_count}, #{item.dept_id},'1',now())
+        </foreach>
+        ON DUPLICATE KEY UPDATE
+        payable_amount = VALUES(payable_amount),
+        transaction_count = VALUES(transaction_count),
+        dept_id = VALUES(dept_id),
+        update_time = NOW()
+    </insert>
 </mapper>