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

Merge remote-tracking branch 'origin/dev' into dev

czh 2 лет назад
Родитель
Сommit
6421af2b6d

+ 13 - 4
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwOrderController.java

@@ -5,10 +5,7 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.easyexcel.RequestHolder;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.report.service.KwOrderService;
-import com.sckw.report.service.param.TradeOrderListExport;
-import com.sckw.report.service.param.TradeOrderListExportParam;
-import com.sckw.report.service.param.TradeOrderListSelectParam;
-import com.sckw.report.service.param.TradeOrderListStatisticParam;
+import com.sckw.report.service.param.*;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.AllArgsConstructor;
 import org.springframework.http.MediaType;
@@ -83,4 +80,16 @@ public class KwOrderController {
         return HttpResult.error("没有可导出的数据");
     }
 
+    /**
+     * @desc: 贸易订单对账单分页列表查询
+     * @author: yzc
+     * @date: 2023-07-20 15:03
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/tradeOrderStatementList", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult select(@RequestBody @Validated TradeOrderStatementList params) {
+        return HttpResult.ok(orderService.tradeOrderStatementList(params));
+    }
+
 }

+ 96 - 42
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -55,7 +55,6 @@ public class KwOrderService {
         criteria.andOperator(Criteria.where("_id").is(id).and("delFlag").is(0));
         criteria.orOperator(Criteria.where("procureTopEntId").is(entId), Criteria.where("supplyTopEntId").is(entId));
         query.addCriteria(criteria);
-        SckwTradeOrder tradeOrder = mongoTemplate.findOne(query, SckwTradeOrder.class);
         return mongoTemplate.findOne(query, SckwTradeOrder.class);
     }
 
@@ -68,9 +67,22 @@ public class KwOrderService {
      */
     public PageResult tradeOrderSelect(TradeOrderListSelectParam params) {
         Query query = getQuery(params);
+        return getResult(query, params.getPage(), params.getPageSize());
+    }
+
+    /**
+     * @desc: 获取分页结果
+     * @author: yzc
+     * @date: 2023-07-20 15:02
+     * @Param query:
+     * @Param page:
+     * @Param pageSize:
+     * @return: com.sckw.core.model.page.PageResult
+     */
+    private PageResult getResult(Query query, int page, int pageSize) {
         long count = mongoTemplate.count(query, SckwTradeOrder.class);
         Sort sort = Sort.by(Sort.Direction.DESC, "createTime");
-        SpringDataPageAble pageAble = new SpringDataPageAble(params.getPage(), params.getPageSize(), sort);
+        SpringDataPageAble pageAble = new SpringDataPageAble(page, pageSize, sort);
         query.with(pageAble);
         List<SckwTradeOrder> list = mongoTemplate.find(query, SckwTradeOrder.class);
         List<OrderListRes> result = new ArrayList<>();
@@ -80,11 +92,11 @@ public class KwOrderService {
                     .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
                     .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
                     .setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
-                    .setConsignmentStatus(Objects.isNull(e.getEntrustAmount()) || e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
+                    .setConsignmentStatus(e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
                     .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
             result.add(order);
         });
-        return PageResult.build(params.getPage(), params.getPageSize(), count, result);
+        return PageResult.build(page, pageSize, count, result);
     }
 
     /**
@@ -99,21 +111,37 @@ public class KwOrderService {
         Query query = new Query();
         Criteria criteria = new Criteria();
         criteria.and("delFlag").is(0);
-        //销售订单
-        if (Objects.equals(params.getOrderType(), 2)) {
-            criteria.and("supplyTopEntId").is(entId);
-        } else {
+        if (Objects.equals(params.getOrderType(), 1)) {
             //采购订单
             criteria.and("procureTopEntId").is(entId);
+        } else {
+            //销售订单
+            criteria.and("supplyTopEntId").is(entId);
         }
-        //交易方式
-        if (StringUtils.isNotBlank(params.getTrading())) {
-            criteria.and("trading").is(params.getTrading());
+        //日期范围
+        if (Objects.nonNull(params.getStartCreateTime())) {
+            criteria.and("createTime").gte(params.getStartCreateTime());
+        }
+        if (Objects.nonNull(params.getEndCreateTime())) {
+            criteria.and("createTime").lte(params.getEndCreateTime());
+        }
+        //装卸货地址
+        if (StringUtils.isNotBlank(params.getShippingAddressCode())) {
+            Pattern pattern = Pattern.compile("^" + params.getShippingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
+            criteria.and("loadCityCode").regex(pattern);
+        }
+        if (StringUtils.isNotBlank(params.getUnloadingAddressCode())) {
+            Pattern pattern = Pattern.compile("^" + params.getUnloadingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
+            criteria.and("unloadCityCode").regex(pattern);
         }
         //提货方式
         if (StringUtils.isNotBlank(params.getPickupType())) {
             criteria.and("pickupType").is(params.getPickupType());
         }
+        //交易方式
+        if (StringUtils.isNotBlank(params.getTrading())) {
+            criteria.and("trading").is(params.getTrading());
+        }
         //交付类型
         if (StringUtils.isNotBlank(params.getDeliveryType())) {
             criteria.and("deliveryType").is(params.getDeliveryType());
@@ -122,28 +150,19 @@ public class KwOrderService {
         if (StringUtils.isNotBlank(params.getSource())) {
             criteria.and("source").is(params.getSource());
         }
-        //采购企业
-        if (Objects.nonNull(params.getProcureEntId())) {
-            criteria.and("procureEntId").is(params.getProcureEntId());
-        }
-        //商品税率
-        if (Objects.nonNull(params.getGoodsTaxRate())) {
-            criteria.and("goodsTaxRate").is(params.getGoodsTaxRate());
-        }
-        //日期范围
-        if (Objects.nonNull(params.getStartCreateTime()) && Objects.nonNull(params.getEndCreateTime())) {
-            criteria.andOperator(Criteria.where("createTime").gte(params.getStartCreateTime()), Criteria.where("createTime")
-                    .lte(params.getEndCreateTime()));
-        } else if (Objects.nonNull(params.getStartCreateTime())) {
-            criteria.and("createTime").gte(params.getStartCreateTime());
-        } else if (Objects.nonNull(params.getEndCreateTime())) {
-            criteria.and("createTime").lte(params.getEndCreateTime());
-        }
         List<Criteria> orCriteriaList = new ArrayList<>();
-        //商品名称
-        if (StringUtils.isNotBlank(params.getGoodsName())) {
-            Pattern pattern = Pattern.compile("^.*" + params.getGoodsName() + ".*$", Pattern.CASE_INSENSITIVE);
-            orCriteriaList.add(Criteria.where("goodsName").regex(pattern));
+        //订单状态
+        if (Objects.nonNull(params.getStatus())) {
+            criteria.and("status").is(params.getStatus());
+            if (Objects.equals(params.getStatus(), Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()))) {
+                //草稿状态只能创建订单的企业能看
+                criteria.and("entId").is(entId);
+            }
+        } else {
+            //非草稿状态
+            criteria.and("status").ne(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()));
+            //or草稿状态且是当前企业
+            orCriteriaList.add(Criteria.where("status").is(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue())).and("entId").is(entId));
         }
         //关键字模糊匹配
         if (StringUtils.isNotBlank(params.getKeywords())) {
@@ -153,15 +172,6 @@ public class KwOrderService {
             orCriteriaList.add(Criteria.where("supplyFirmName").regex(pattern));
             orCriteriaList.add(Criteria.where("goodsName").regex(pattern));
         }
-        //装卸货地址
-        if (StringUtils.isNotBlank(params.getShippingAddressCode())) {
-            Pattern pattern = Pattern.compile("^" + params.getShippingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
-            orCriteriaList.add(Criteria.where("loadCityCode").regex(pattern));
-        }
-        if (StringUtils.isNotBlank(params.getUnloadingAddressCode())) {
-            Pattern pattern = Pattern.compile("^" + params.getUnloadingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
-            orCriteriaList.add(Criteria.where("unloadCityCode").regex(pattern));
-        }
         if (CollectionUtils.isNotEmpty(orCriteriaList)) {
             criteria.orOperator(orCriteriaList);
         }
@@ -210,7 +220,6 @@ public class KwOrderService {
             Long entId = LoginUserHolder.getEntId();
             Criteria criteria = new Criteria();
             criteria.and("tOrderId").in(params.getIds()).and("delFlag").is(0);
-            query.addCriteria(criteria);
             //销售订单
             if (Objects.equals(params.getOrderType(), 2)) {
                 criteria.and("supplyTopEntId").is(entId);
@@ -218,6 +227,7 @@ public class KwOrderService {
                 //采购订单
                 criteria.and("procureTopEntId").is(entId);
             }
+            query.addCriteria(criteria);
         } else {
             query = getQuery(params);
         }
@@ -242,4 +252,48 @@ public class KwOrderService {
         });
         return list;
     }
+
+    /**
+     * @desc: 贸易订单对账单分页列表查询
+     * @author: yzc
+     * @date: 2023-07-20 15:03
+     * @Param params:
+     * @return: com.sckw.core.model.page.PageResult
+     */
+    public PageResult tradeOrderStatementList(TradeOrderStatementList params) {
+        Query query = new Query();
+        Long entId = LoginUserHolder.getEntId();
+        Criteria criteria = new Criteria();
+        criteria.and("status").is(DictEnum.TORDER_STATUS_5.getValue()).and("delFlag").is(0);
+        if (Objects.equals(params.getOrderType(), 1)) {
+            //采购订单
+            criteria.and("procureTopEntId").is(entId);
+        } else {
+            //销售订单
+            criteria.and("supplyTopEntId").is(entId);
+        }
+        //采购企业
+        if (Objects.nonNull(params.getProcureEntId())) {
+            criteria.and("procureEntId").is(params.getProcureEntId());
+        }
+        //计划开始时间
+        if (Objects.nonNull(params.getStartTime())) {
+            criteria.and("startTime").gte(params.getStartTime());
+        }
+        //计划结束时间
+        if (Objects.nonNull(params.getEndTime())) {
+            criteria.and("endTime").lte(params.getEndTime());
+        }
+        //商品税率
+        if (Objects.nonNull(params.getGoodsTaxRate())) {
+            criteria.and("goodsTaxRate").is(params.getGoodsTaxRate());
+        }
+        //商品名称
+        if (StringUtils.isNotBlank(params.getGoodsName())) {
+            Pattern pattern = Pattern.compile("^.*" + params.getGoodsName() + ".*$", Pattern.CASE_INSENSITIVE);
+            criteria.and("goodsName").regex(pattern);
+        }
+        query.addCriteria(criteria);
+        return getResult(query, params.getPage(), params.getPageSize());
+    }
 }

+ 2 - 13
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListStatisticParam.java

@@ -8,7 +8,6 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
-import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -75,18 +74,8 @@ public class TradeOrderListStatisticParam {
     private String source;
 
     /**
-     * 采购单位id
+     * 订单状态
      */
-    private Long procureEntId;
-
-    /**
-     * 商品税率
-     */
-    private BigDecimal goodsTaxRate;
-
-    /**
-     * 商品名称
-     */
-    private String goodsName;
+    private Integer status;
 
 }

+ 64 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderStatementList.java

@@ -0,0 +1,64 @@
+package com.sckw.report.service.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sckw.core.model.page.PageRequest;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * @desc: 贸易订单对账单列表请求参数
+ * @author: yzc
+ * @date: 2023-07-20 14:43
+ */
+@Getter
+@Setter
+@ToString
+public class TradeOrderStatementList extends PageRequest {
+
+    /**
+     * 订单类型(1采购订单2销售订单)
+     */
+    @Min(value = 1, message = "非法订单类型")
+    @Max(value = 2, message = "非法订单类型")
+    @NotNull(message = "订单类型不能为空")
+    private Integer orderType;
+
+    /**
+     * 采购单位id
+     */
+    private Long procureEntId;
+
+    /**
+     * 计划开始时间(yyyy-MM-dd)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate startTime;
+
+    /**
+     * 计划结束时间(yyyy-MM-dd)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endTime;
+
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+
+    /**
+     * 商品税率
+     */
+    private BigDecimal goodsTaxRate;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+}