Просмотр исходного кода

承运合同/托运合同-订单列表

lengfaqiang 2 лет назад
Родитель
Сommit
a91494e17d

+ 17 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/DateUtil.java

@@ -40,6 +40,11 @@ public class DateUtil {
         return LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern));
     }
 
+    /**
+     * 2023-07-14T09:43:40.511+00:00 -> 2023-07-14 09:13:40
+     * @param date
+     * @return
+     */
     public static String getDateTime(Date date) {
         Instant instant = date.toInstant();
         ZoneId zoneId = ZoneId.systemDefault();
@@ -47,6 +52,18 @@ public class DateUtil {
         return localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
     }
 
+    /**
+     * data
+     * @param date  Date 时间
+     * @return
+     * @throws ParseException
+     */
+    public static String dateTimeFormatter(Date date){
+        String format = new SimpleDateFormat(DEFAULT_DATE_PATTERN).format(date);
+        return format;
+    }
+
+
     public static String dateToStr(LocalDate date) {
         return dateToStr(date, "yyyy-MM-dd");
     }

+ 6 - 1
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java

@@ -1,12 +1,13 @@
 package com.sckw.mongo.model;
 
-import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -397,6 +398,8 @@ public class SckwLogisticsOrder {
     /**
      * 创建时间
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -412,6 +415,8 @@ public class SckwLogisticsOrder {
     /**
      * 更新时间
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
     /**

+ 7 - 11
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java

@@ -9,6 +9,7 @@ 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.vo.AcceptCarriageOrderExcelVo;
 import com.sckw.report.service.vo.ConsignOrderExcelVo;
@@ -220,21 +221,16 @@ public class KwTransportController {
     }
 
     /**
-     * 托运合同-根据合同id获取托运订单列表
-     *
-     * @param contractId 合同id
-     * @param page  当前页
-     * @param pageSize  每页条数
+     * 承运合同/托运合同-根据合同id获取托运订单列表
+     * @param contractParam 请求参数
      * @return
      */
-    @RequestMapping(value = "/getLogisticsOrderContract", method = RequestMethod.GET)
-    public HttpResult getLogisticsOrderContract(@RequestParam("contractId") @NotBlank(message = "合同id不能为空") String contractId,
-                                                @RequestParam("page") @NotBlank(message = "分页不能为空") int page,
-                                                @RequestParam("pageSize") @NotBlank(message = "分页条数不能为空") int pageSize) {
+    @RequestMapping(value = "/getLogisticsOrderContract", method = RequestMethod.POST)
+    public HttpResult getLogisticsOrderContract(@Validated @RequestBody ContractParam contractParam) {
         try {
-            return transportService.getLogisticsOrderByContractId(contractId, page, pageSize);
+            return transportService.getLogisticsOrderByContractId(contractParam);
         } catch (Exception e) {
-            log.error("托运合同-根据合同id获取托运订单列表 error:{}", e.getMessage(), e);
+            log.error("承运合同/托运合同-根据合同id获取托运订单列表 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }

+ 46 - 15
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -1,7 +1,6 @@
 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;
@@ -16,6 +15,7 @@ import com.sckw.mongo.model.SckwLogisticsOrder;
 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.WaybillOrderQuery;
 import com.sckw.report.service.vo.CarWaybillVo;
 import com.sckw.report.service.vo.WaybillsCountVo;
@@ -447,27 +447,47 @@ public class KwTransportService {
     }
 
     /**
-     * 托运合同-根据合同id获取托运订单列表
+     * 承运合同/托运合同-根据合同id获取托运订单列表
      *
-     * @param contractId 合同id
-     * @param page       当前页
-     * @param pageSize   每页条数
+     * @param contractParam
      * @return
      */
-    public HttpResult getLogisticsOrderByContractId(String contractId, int page, int pageSize) {
+    public HttpResult getLogisticsOrderByContractId(ContractParam contractParam) {
+        HttpResult result = new HttpResult();
+        if (String.valueOf(NumberConstant.ONE).equals(contractParam.getContractType())) {
+            result = getLogisticsOrderContract(contractParam);
+        } else if (String.valueOf(NumberConstant.ONE).equals(contractParam.getContractType())) {
+            result = getLogisticsOrderContract(contractParam);
+        } else {
+            return HttpResult.error("合同类型错误");
+        }
+        return result;
+    }
+
+    private HttpResult getLogisticsOrderContract(ContractParam contractParam) {
+        String contractIds = contractParam.getContractIds();
+        int page = contractParam.getPage();
+        int pageSize = contractParam.getPageSize();
         //模糊匹配
         //根据条件查询所有并排序,且分页
         //设置模糊查询匹配规则  忽略大小写
         // 创建条件对象
         Criteria criteria = new Criteria();
-        // 1. 全等于
-        if (StringUtils.isBlank(contractId)) {
-            return HttpResult.error("合同id为空");
-        } else {
-            criteria.and("contractId").is(contractId);
-        }
+        List<String> stringList = StringUtils.splitStrToList(contractIds, String.class);
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         Query query1 = new Query(criteria);
+        // 1. 模糊查询
+        if (CollectionUtils.isNotEmpty(stringList)) {
+            query1.addCriteria(Criteria.where("contractId").in(stringList));
+        } else {
+            PageResult build = PageResult.build(page, pageSize, 0L, null);
+            return HttpResult.ok(build);
+        }
+//        if (StringUtils.isBlank(contractIds)) {
+//            return HttpResult.error("合同id为空");
+//        } else {
+//            criteria.and("contractId").is(contractIds);
+//        }
         // 12. 总记录数
         long total = mongoTemplate.count(query1, SckwLogisticsOrder.class);
         // 10. 分页
@@ -491,13 +511,24 @@ public class KwTransportService {
                 logisticsOrder.setBillingModeLabel(sysDictResDto1.getLabel());
             }
             logisticsOrder.setStatusLabel(LogisticsOrderEnum.getDestination(logisticsOrder.getStatus()));
+//            logisticsOrder.setCreateTime(DateUtil.offsetDay(logisticsOrder.getCreateTime()))
         }
-        PageResult build = PageResult.build(page, pageSize, total, list);
+//        Map<String, List<SckwLogisticsOrder>> atomMap = list.stream().collect(Collectors.groupingBy(SckwLogisticsOrder::getContractId,Collectors.(
+//                        Comparator.comparing(SckwLogisticsOrder::getContractId).reversed())));
+
+        Map<String, List<SckwLogisticsOrder>> collect = list.stream().collect(Collectors.groupingBy(SckwLogisticsOrder::getContractId, Collectors.toList()));
+        List<SckwLogisticsOrder> returnList = new ArrayList<>();
+        for (List<SckwLogisticsOrder> value : collect.values()) {
+            returnList.addAll(value);
+        }
+//        PageResult build = PageResult.build(page, pageSize, total, list);
+        PageResult build = PageResult.build(page, pageSize, total, returnList);
         return HttpResult.ok(build);
     }
 
     /**
      * 运单管理-运单列表 运单地址查询接口
+     *
      * @param type
      * @return
      */
@@ -507,12 +538,12 @@ public class KwTransportService {
         criteria.and("delFlag").is(NumberConstant.ZERO);
         Query query = new Query(criteria);
         String field;
-        if(type == NumberConstant.ONE) {
+        if (type == NumberConstant.ONE) {
             field = "loadCityCode";
         } else {
             field = "unloadCityCode";
         }
-        List<Integer> list  = mongoTemplate.findDistinct(query, field ,SckwWaybillOrder.class, Integer.class);
+        List<Integer> list = mongoTemplate.findDistinct(query, field, SckwWaybillOrder.class, Integer.class);
         List<AreaTreeFrontResDto> areaTreeFrontResDtos = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(list)) {
             areaTreeFrontResDtos = remoteSystemService.queryAreaTreeFrontByCodeList(list);

+ 26 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/ContractParam.java

@@ -0,0 +1,26 @@
+package com.sckw.report.service.param;
+
+import com.sckw.core.model.page.PageRequest;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 合同查询列表param
+ * @date 2023-08-03 13:08:51
+ */
+@Data
+public class ContractParam extends PageRequest {
+
+    /**
+     * 合同id  “,”隔开
+     */
+    @NotBlank(message = "合同ids不能为空")
+    private String contractIds;
+    /**
+     * 类型 1 托运合同 2 承运合同
+     */
+    @NotBlank(message = "托运合同不能为空")
+    private String contractType;
+
+}