Browse Source

update 增加运单导出接口

chenlin 2 years ago
parent
commit
23eadac39d

+ 20 - 4
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java

@@ -1,5 +1,7 @@
 package com.sckw.report.controller;
 
+import com.sckw.core.exception.BusinessException;
+import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.config.easyexcel.RequestHolder;
@@ -7,10 +9,7 @@ import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.report.service.KwAcceptCarriageService;
 import com.sckw.report.service.KwConsignService;
 import com.sckw.report.service.KwTransportService;
-import com.sckw.report.service.param.AcceptCarriageOrderQuery;
-import com.sckw.report.service.param.ConsignOrderQuery;
-import com.sckw.report.service.param.ContractParam;
-import com.sckw.report.service.param.WaybillOrderQuery;
+import com.sckw.report.service.param.*;
 import com.sckw.report.service.vo.AcceptCarriageOrderExcelVo;
 import com.sckw.report.service.vo.ConsignOrderExcelVo;
 import jakarta.servlet.http.HttpServletResponse;
@@ -19,6 +18,7 @@ import jakarta.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -249,4 +249,20 @@ public class KwTransportController {
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
+
+    /**
+     * @desc: 运单列表导出
+     * @author: jc
+     * @date: 2023-08-09 20:16:22
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/wBillOrderExport", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void wBillOrderExport(@RequestBody @Validated WaybillOrderQuery query, HttpServletResponse response) {
+        List<WaybillOrderListExport> list = transportService.wBillOrderExport(query);
+        if (CollectionUtils.isEmpty(list)) {
+            throw new BusinessException("导出数据为空!");
+        }
+        ExcelUtil.downData(response, WaybillOrderListExport.class, list);
+    }
 }

+ 32 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -1,10 +1,12 @@
 package com.sckw.report.service;
 
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
+import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
@@ -16,6 +18,8 @@ import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.mongo.model.TableTops;
 import com.sckw.report.dao.SckwLogisticsOrderRepository;
 import com.sckw.report.service.param.ContractParam;
+import com.sckw.report.service.param.TradeOrderListExport;
+import com.sckw.report.service.param.WaybillOrderListExport;
 import com.sckw.report.service.param.WaybillOrderQuery;
 import com.sckw.report.service.vo.CarWaybillVo;
 import com.sckw.report.service.vo.WaybillsCountVo;
@@ -41,6 +45,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
@@ -565,4 +570,31 @@ public class KwTransportService {
         }
         return HttpResult.ok(areaTreeFrontResDtos);
     }
+
+    /**
+     *  运单列表导出
+     * @param query
+     * @return
+     */
+    public List<WaybillOrderListExport> wBillOrderExport(WaybillOrderQuery query) {
+        Criteria criteria = buildWaybillOrdersQuery(query);
+        Query queryFormat = new Query(criteria);
+        // in查询
+        List<Long> wOrderIds = StringUtils.splitStrToList(query.getIds(), ",", Long.class);
+        if (CollectionUtils.isNotEmpty(wOrderIds)) {
+            queryFormat.addCriteria(Criteria.where("wOrderId").in(wOrderIds));
+        }
+        List<SckwWaybillOrder> worders = mongoTemplate.find(queryFormat, SckwWaybillOrder.class);
+        List<WaybillOrderListExport> list = new ArrayList<>();
+        AtomicInteger i = new AtomicInteger(1);
+        worders.forEach(e -> {
+            WaybillOrderListExport export = BeanUtils.copyProperties(e, WaybillOrderListExport.class);
+            export.setSerialNumber(String.valueOf(i.getAndIncrement()))
+                    .setStatus(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
+                    .setWOrderNo(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getWOrderNo()));
+
+            list.add(export);
+        });
+        return list;
+    }
 }

+ 46 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/WaybillOrderListExport.java

@@ -0,0 +1,46 @@
+package com.sckw.report.service.param;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.sckw.core.model.page.PageRequest;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author JC
+ * @version 1.0
+ * @desc TODO
+ * @date 2023/{07}/19 10:20:44
+ **/
+@Data
+@Accessors(chain = true)
+@ExcelContext(fileName = "运单列表信息", sheetName = "运单列表信息")
+public class WaybillOrderListExport extends PageRequest implements Serializable {
+    @Serial
+    private static final long serialVersionUID = -2111424783071112237L;
+
+    @ExcelProperty(value = "序号" )
+    private String serialNumber;
+
+    @ExcelProperty(value = "运单" )
+    private String status;
+
+    @ExcelProperty(value = "运单号" )
+    private String wOrderNo;
+
+    @ExcelProperty(value = "车辆车牌" )
+    private String truckNo;
+
+    @ExcelProperty(value = "车辆司机" )
+    private String driverName;
+
+    @ExcelProperty(value = "运单类型")
+    private String type;
+
+    @ExcelProperty(value = "派车时间")
+    private String sendCarTime;
+
+}

+ 24 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WayBillDetailDTO.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.model.dto;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
 /**
@@ -9,79 +10,101 @@ import lombok.Data;
  * @date 2023/07/20 11:32:36
  **/
 @Data
-public class WayBillDetailDTO {
+public class WayBillDetailDTO{
     /**
      * 运单ID
      */
+    @JsonProperty("wOrderId")
     private Long wOrderId;
+
     /**
      * 运单号
      */
+    @JsonProperty("wOrderNo")
     private String wOrderNo;
+
     /**
      * 承运单号
      */
+    @JsonProperty("lOrderNo")
     private String lOrderNo;
+
     /**
      * 车辆ID
      */
     private Long truckId;
+
     /**
      * 车牌号
      */
     private String truckNo;
+
     /**
      * 司机ID
      */
     private Long driverId;
+
     /**
      * 司机姓名
      */
     private String driverName;
+
     /**
      * 司机电话
      */
     private String driverPhone;
+
     /**
      * 司机身份证
      */
     private String driverIdcard;
+
     /**
      * 运单ID
      */
+    @JsonProperty("lOrderId")
     private Long lOrderId;
+
     /**
      * 分配任务量
      */
     private String entrustAmount;
+
     /**
      * 运单类型
      */
     private String type;
+
     /**
      * 计划开始时间
      */
     private String startTime;
+
     /**
      * 计划结束时间
      */
     private String endTime;
+
     /**
      * 创建人
      */
     private String createBy;
+
     /**
      * 计费方式
      */
     private String priceType;
+
     /**
      * 商品名
      */
     private String goodsName;
+
     /**
      * 装载地址
      */
     private String loadDetailAddress;
+
     /**
      * 卸货地址
      */

+ 1 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

@@ -275,6 +275,7 @@ public class WaybillManagementService {
      */
     public  List<Integer> initWaybillIndexStatus() {
         List<Integer> statuses = new ArrayList<>();
+        statuses.add(CarWaybillEnum.PENDING_ORDER.getCode());
         statuses.add(CarWaybillEnum.PENDING_VEHICLE.getCode());
         statuses.add(CarWaybillEnum.EXIT_COMPLETED.getCode());
         statuses.add(CarWaybillEnum.WAIT_LOADING.getCode());