Commit 66c8eac75e4f6d2f3a1d0924739feb35b9dda3da

Authored by 谢茂盛
1 parent 0b985a1a

fix: 订单查询条件

src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoQueryVO.java
@@ -6,6 +6,7 @@ import lombok.experimental.SuperBuilder; @@ -6,6 +6,7 @@ import lombok.experimental.SuperBuilder;
6 6
7 import java.io.Serializable; 7 import java.io.Serializable;
8 import java.util.List; 8 import java.util.List;
  9 +import java.util.Set;
9 10
10 /** 11 /**
11 * 订单基础信息表(OrderBaseInfo)实体类 12 * 订单基础信息表(OrderBaseInfo)实体类
@@ -24,85 +25,115 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { @@ -24,85 +25,115 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable {
24 25
25 private List<Long> ids; 26 private List<Long> ids;
26 27
  28 + private Set<Long> orderIds;
  29 +
27 30
28 private Long id; 31 private Long id;
  32 +
29 /** 33 /**
30 - * 客户编码 34 + * 生成开始时间
31 */ 35 */
32 - private String customerCode; 36 + private String createStartTime;
  37 +
33 /** 38 /**
34 - * 项目号 39 + * 生成结束时间
35 */ 40 */
36 - private String projectNo; 41 + private String createEndTime;
  42 +
37 /** 43 /**
38 - * 生产科 44 + * 单据状态
39 */ 45 */
40 - private String productionDepartment; 46 + private String orderStatus;
  47 +
41 /** 48 /**
42 - * 内部编号 49 + * 提交人名称
43 */ 50 */
44 - private String innerNo; 51 + private String commitUserName;
  52 +
45 /** 53 /**
46 - * 客户po号 54 + * 提交人手机号码
47 */ 55 */
48 - private String customerPo; 56 + private String commitUserPhone;
  57 +
49 /** 58 /**
50 - * 客户STYLE# 59 + * 客户编码
51 */ 60 */
52 - private String customerStyle; 61 + private String customerCode;
  62 +
53 /** 63 /**
54 - * Modelo(REFERENCE) 64 + * 项目号
55 */ 65 */
56 - private String modeleLo; 66 + private String projectNo;
  67 +
57 /** 68 /**
58 - * COLLECTION (style description) 69 + * 生产科
59 */ 70 */
60 - private String collection; 71 + private String productionDepartment;
  72 +
61 /** 73 /**
62 - * PO COLOR 74 + * 生成科拖货开始时间
63 */ 75 */
64 - private String poColor; 76 + private String productionDepartmentConsignStartTime;
  77 +
65 /** 78 /**
66 - * 颜色中文 79 + * 生成科拖货结束时间
67 */ 80 */
68 - private String cnColor; 81 + private String productionDepartmentConsignEndTime;
  82 +
69 /** 83 /**
70 - * pic图片地址 84 + * 订单上HOD开始时间
71 */ 85 */
72 - private String picUrl; 86 + private String orderHodStartTime;
  87 +
  88 + /**
  89 + * 订单上HOD结束时间
  90 + */
  91 + private String orderHodEndTime;
  92 +
73 /** 93 /**
74 - * 生产要求 94 + * 最小利润率
75 */ 95 */
76 - private String productionComment; 96 + private Double profitRateLqt;
  97 +
77 /** 98 /**
78 - * 数量 99 + * 最大利润率
79 */ 100 */
80 - private Integer orderCount; 101 + private Double profitRateGqt;
  102 +
81 /** 103 /**
82 - * 订单成分 104 + * 想法来源
83 */ 105 */
84 - private String orderComposition; 106 + private String ideaSource;
  107 +
85 /** 108 /**
86 - * 款式类 109 + * 手工初
87 */ 110 */
88 - private String productStyle; 111 + private String manualPreform;
  112 +
89 /** 113 /**
90 - * 生成科拖货时间 114 + * pp样品确认意见
91 */ 115 */
92 - private String productionDepartmentConsignTime; 116 + private String ppConfirmResult;
  117 +
93 /** 118 /**
94 - * 订单上HOD时间 119 + * 自测通过开始时间
95 */ 120 */
96 - private String orderHodTime; 121 + private String selfTestPassStartTime;
  122 +
97 /** 123 /**
98 - * 出库类型 124 + * 自测通过结束时间
99 */ 125 */
100 - private String outboundType; 126 + private String selfTestPassEndTime;
  127 +
101 /** 128 /**
102 - * 包装类型 129 + * 中期验货结果PASS / FAIL
103 */ 130 */
104 - private String packetType; 131 + private String midCheckResult;
105 132
  133 + /**
  134 + * 尾期验货结果PASS / FAIL
  135 + */
  136 + private String endCheckResult;
106 137
107 } 138 }
108 139
src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java
@@ -2,6 +2,7 @@ package com.order.erp.service.order.impl; @@ -2,6 +2,7 @@ package com.order.erp.service.order.impl;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.collection.CollUtil; 4 import cn.hutool.core.collection.CollUtil;
  5 +import cn.hutool.core.collection.CollectionUtil;
5 import com.alibaba.fastjson.JSONObject; 6 import com.alibaba.fastjson.JSONObject;
6 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 7 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
7 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 8 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -22,10 +23,12 @@ import com.order.erp.common.utils.ProfitUtils; @@ -22,10 +23,12 @@ import com.order.erp.common.utils.ProfitUtils;
22 import com.order.erp.config.DataScope; 23 import com.order.erp.config.DataScope;
23 import com.order.erp.domain.*; 24 import com.order.erp.domain.*;
24 import com.order.erp.domain.dto.BaseDO; 25 import com.order.erp.domain.dto.BaseDO;
  26 +import com.order.erp.domain.dto.admin.AdminUserDO;
25 import com.order.erp.domain.dto.order.*; 27 import com.order.erp.domain.dto.order.*;
26 import com.order.erp.domain.excel.OrderExcelVO; 28 import com.order.erp.domain.excel.OrderExcelVO;
27 import com.order.erp.domain.vo.order.*; 29 import com.order.erp.domain.vo.order.*;
28 import com.order.erp.mapper.order.OrderBaseInfoMapper; 30 import com.order.erp.mapper.order.OrderBaseInfoMapper;
  31 +import com.order.erp.service.admin.AdminUserService;
29 import com.order.erp.service.order.*; 32 import com.order.erp.service.order.*;
30 import lombok.extern.slf4j.Slf4j; 33 import lombok.extern.slf4j.Slf4j;
31 import org.springframework.beans.BeanUtils; 34 import org.springframework.beans.BeanUtils;
@@ -38,10 +41,7 @@ import javax.servlet.http.HttpServletResponse; @@ -38,10 +41,7 @@ import javax.servlet.http.HttpServletResponse;
38 import java.io.File; 41 import java.io.File;
39 import java.io.IOException; 42 import java.io.IOException;
40 import java.math.BigDecimal; 43 import java.math.BigDecimal;
41 -import java.util.List;  
42 -import java.util.Map;  
43 -import java.util.Objects;  
44 -import java.util.Set; 44 +import java.util.*;
45 import java.util.function.Function; 45 import java.util.function.Function;
46 import java.util.stream.Collectors; 46 import java.util.stream.Collectors;
47 47
@@ -97,6 +97,9 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -97,6 +97,9 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
97 @Resource 97 @Resource
98 private DataScope dataScope; 98 private DataScope dataScope;
99 99
  100 + @Resource
  101 + private AdminUserService userService;
  102 +
100 /** 103 /**
101 * 通过ID查询单条数据 104 * 通过ID查询单条数据
102 * <p> 105 * <p>
@@ -749,21 +752,111 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O @@ -749,21 +752,111 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
749 * @return 752 * @return
750 */ 753 */
751 private LambdaQueryWrapper<OrderBaseInfoDO> buildQueryByParam(OrderBaseInfoQueryVO queryVO) { 754 private LambdaQueryWrapper<OrderBaseInfoDO> buildQueryByParam(OrderBaseInfoQueryVO queryVO) {
  755 + if (StringUtils.isNotBlank(queryVO.getCommitUserPhone())) {
  756 + AdminUserDO userDO = userService.getOne(new LambdaQueryWrapper<AdminUserDO>()
  757 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  758 + .eq(AdminUserDO::getPhone, queryVO.getCommitUserPhone()).last("limit 1"));
  759 + queryVO.setCommitUserName(userDO.getUserName());
  760 + }
  761 + Set<Long> orderIds = new HashSet<>();
  762 + if (Objects.nonNull(queryVO.getProfitRateGqt()) || Objects.nonNull(queryVO.getProfitRateLqt())) {
  763 + List<OrderProfitAnalysisDO> profitAnalysisDOS = profitAnalysisService.list(new LambdaQueryWrapper<OrderProfitAnalysisDO>()
  764 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  765 + .ge(Objects.nonNull(queryVO.getProfitRateLqt()), OrderProfitAnalysisDO::getProfitRate, queryVO.getProfitRateLqt())
  766 + .le(Objects.nonNull(queryVO.getProfitRateGqt()), OrderProfitAnalysisDO::getProfitRate, queryVO.getProfitRateGqt()));
  767 + if (CollectionUtils.isNotEmpty(profitAnalysisDOS)) {
  768 + orderIds.addAll(profitAnalysisDOS.stream().map(OrderProfitAnalysisDO::getOrderId).collect(Collectors.toSet()));
  769 + } else {
  770 + orderIds.add(-1L);
  771 + }
  772 + }
  773 +
  774 + if (StringUtils.isNotBlank(queryVO.getIdeaSource()) || StringUtils.isNotBlank(queryVO.getManualPreform())) {
  775 + List<OrderCompletionReportDO> reportDOS = reportService.list(new LambdaQueryWrapper<OrderCompletionReportDO>()
  776 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  777 + .eq(StringUtils.isNotBlank(queryVO.getIdeaSource()), OrderCompletionReportDO::getIdeaSource, queryVO.getIdeaSource())
  778 + .eq(StringUtils.isNotBlank(queryVO.getManualPreform()), OrderCompletionReportDO::getManualPreform, queryVO.getManualPreform()));
  779 + if (CollectionUtils.isNotEmpty(reportDOS)) {
  780 + Set<Long> reportOrderIds = reportDOS.stream().map(OrderCompletionReportDO::getOrderId).collect(Collectors.toSet());
  781 + if (CollectionUtils.isNotEmpty(orderIds)) {
  782 + Collection<Long> set = CollectionUtil.intersection(orderIds, reportOrderIds);
  783 + if (CollectionUtils.isEmpty(set)) {
  784 + orderIds.add(-1L);
  785 + } else {
  786 + orderIds.addAll(set);
  787 + }
  788 + } else {
  789 + orderIds.addAll(reportOrderIds);
  790 + }
  791 + } else {
  792 + orderIds.add(-1L);
  793 + }
  794 + }
  795 +
  796 + if (StringUtils.isNotBlank(queryVO.getPpConfirmResult()) || StringUtils.isNotBlank(queryVO.getSelfTestPassStartTime()) || StringUtils.isNotBlank(queryVO.getSelfTestPassEndTime())) {
  797 + List<OrderTrackStageDO> trackStageDOS = trackStageService.list(new LambdaQueryWrapper<OrderTrackStageDO>()
  798 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  799 + .eq(StringUtils.isNotBlank(queryVO.getPpConfirmResult()), OrderTrackStageDO::getPpConfirmResult, queryVO.getPpConfirmResult())
  800 + .eq(StringUtils.isNotBlank(queryVO.getSelfTestPassStartTime()), OrderTrackStageDO::getSelfTestPassTime, queryVO.getSelfTestPassStartTime())
  801 + .eq(StringUtils.isNotBlank(queryVO.getSelfTestPassEndTime()), OrderTrackStageDO::getSelfTestPassTime, queryVO.getSelfTestPassEndTime())
  802 + );
  803 + if (CollectionUtils.isNotEmpty(trackStageDOS)) {
  804 + Set<Long> trackOrderIds = trackStageDOS.stream().map(OrderTrackStageDO::getOrderId).collect(Collectors.toSet());
  805 + if (CollectionUtils.isNotEmpty(orderIds)) {
  806 + Collection<Long> set = CollectionUtil.intersection(orderIds, trackOrderIds);
  807 + if (CollectionUtils.isEmpty(set)) {
  808 + orderIds.add(-1L);
  809 + } else {
  810 + orderIds.addAll(set);
  811 + }
  812 + } else {
  813 + orderIds.addAll(trackOrderIds);
  814 + }
  815 + } else {
  816 + orderIds.add(-1L);
  817 + }
  818 + }
  819 +
  820 + if (StringUtils.isNotBlank(queryVO.getMidCheckResult()) || StringUtils.isNotBlank(queryVO.getEndCheckResult())) {
  821 + List<OrderInspectionStageDO> inspectionStageDOS = inspectionStageService.list(new LambdaQueryWrapper<OrderInspectionStageDO>()
  822 + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
  823 + .eq(StringUtils.isNotBlank(queryVO.getMidCheckResult()), OrderInspectionStageDO::getMidCheckResult, queryVO.getMidCheckResult())
  824 + .eq(StringUtils.isNotBlank(queryVO.getEndCheckResult()), OrderInspectionStageDO::getEndCheckResult, queryVO.getEndCheckResult())
  825 + );
  826 + if (CollectionUtils.isNotEmpty(inspectionStageDOS)) {
  827 + Set<Long> inspectOrderIds = inspectionStageDOS.stream().map(OrderInspectionStageDO::getOrderId).collect(Collectors.toSet());
  828 + if (CollectionUtils.isNotEmpty(orderIds)) {
  829 + Collection<Long> set = CollectionUtil.intersection(orderIds, inspectOrderIds);
  830 + if (CollectionUtils.isEmpty(set)) {
  831 + orderIds.add(-1L);
  832 + } else {
  833 + orderIds.addAll(set);
  834 + }
  835 + } else {
  836 + orderIds.addAll(inspectOrderIds);
  837 + }
  838 + } else {
  839 + orderIds.add(-1L);
  840 + }
  841 + }
  842 + if (CollectionUtils.isNotEmpty(orderIds)) {
  843 + queryVO.setOrderIds(orderIds);
  844 + }
752 return new LambdaQueryWrapper<OrderBaseInfoDO>() 845 return new LambdaQueryWrapper<OrderBaseInfoDO>()
753 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) 846 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
754 .eq(StringUtils.isNotBlank(queryVO.getCustomerCode()), OrderBaseInfoDO::getCustomerCode, queryVO.getCustomerCode()) 847 .eq(StringUtils.isNotBlank(queryVO.getCustomerCode()), OrderBaseInfoDO::getCustomerCode, queryVO.getCustomerCode())
  848 + .eq(StringUtils.isNotBlank(queryVO.getCommitUserName()), OrderBaseInfoDO::getCreateBy, queryVO.getCommitUserName())
  849 + .ge(StringUtils.isNotBlank(queryVO.getCreateStartTime()), OrderBaseInfoDO::getCreateTime, queryVO.getCreateStartTime())
  850 + .le(StringUtils.isNotBlank(queryVO.getCreateEndTime()), OrderBaseInfoDO::getCreateTime, queryVO.getCreateEndTime())
  851 + .eq(StringUtils.isNotBlank(queryVO.getOrderStatus()), OrderBaseInfoDO::getOrderStatus, queryVO.getOrderStatus())
  852 + .eq(StringUtils.isNotBlank(queryVO.getCustomerCode()), OrderBaseInfoDO::getCustomerCode, queryVO.getCustomerCode())
755 .eq(StringUtils.isNotBlank(queryVO.getProjectNo()), OrderBaseInfoDO::getProjectNo, queryVO.getProjectNo()) 853 .eq(StringUtils.isNotBlank(queryVO.getProjectNo()), OrderBaseInfoDO::getProjectNo, queryVO.getProjectNo())
756 .eq(StringUtils.isNotBlank(queryVO.getProductionDepartment()), OrderBaseInfoDO::getProductionDepartment, queryVO.getProductionDepartment()) 854 .eq(StringUtils.isNotBlank(queryVO.getProductionDepartment()), OrderBaseInfoDO::getProductionDepartment, queryVO.getProductionDepartment())
757 - .eq(StringUtils.isNotBlank(queryVO.getInnerNo()), OrderBaseInfoDO::getInnerNo, queryVO.getInnerNo())  
758 - .eq(StringUtils.isNotBlank(queryVO.getCustomerPo()), OrderBaseInfoDO::getCustomerPo, queryVO.getCustomerPo())  
759 - .eq(StringUtils.isNotBlank(queryVO.getCustomerStyle()), OrderBaseInfoDO::getCustomerStyle, queryVO.getCustomerStyle())  
760 - .eq(StringUtils.isNotBlank(queryVO.getModeleLo()), OrderBaseInfoDO::getModeleLo, queryVO.getModeleLo())  
761 - .eq(StringUtils.isNotBlank(queryVO.getCollection()), OrderBaseInfoDO::getCollection, queryVO.getCollection())  
762 - .eq(StringUtils.isNotBlank(queryVO.getPoColor()), OrderBaseInfoDO::getPoColor, queryVO.getPoColor())  
763 - .eq(StringUtils.isNotBlank(queryVO.getCnColor()), OrderBaseInfoDO::getCnColor, queryVO.getCnColor())  
764 - .eq(StringUtils.isNotBlank(queryVO.getProductStyle()), OrderBaseInfoDO::getProductStyle, queryVO.getProductStyle())  
765 - .eq(StringUtils.isNotBlank(queryVO.getOutboundType()), OrderBaseInfoDO::getOutboundType, queryVO.getOutboundType())  
766 - .eq(StringUtils.isNotBlank(queryVO.getPacketType()), OrderBaseInfoDO::getPacketType, queryVO.getPacketType()) 855 + .ge(StringUtils.isNotBlank(queryVO.getProductionDepartmentConsignStartTime()), OrderBaseInfoDO::getProductionDepartmentConsignTime, queryVO.getProductionDepartmentConsignStartTime())
  856 + .le(StringUtils.isNotBlank(queryVO.getProductionDepartmentConsignEndTime()), OrderBaseInfoDO::getProductionDepartmentConsignTime, queryVO.getProductionDepartmentConsignEndTime())
  857 + .ge(StringUtils.isNotBlank(queryVO.getOrderHodStartTime()), OrderBaseInfoDO::getOrderHodTime, queryVO.getOrderHodStartTime())
  858 + .le(StringUtils.isNotBlank(queryVO.getOrderHodEndTime()), OrderBaseInfoDO::getOrderHodTime, queryVO.getOrderHodEndTime())
  859 + .in(CollectionUtils.isNotEmpty(queryVO.getOrderIds()), OrderBaseInfoDO::getId, queryVO.getOrderIds())
767 .orderByDesc(OrderBaseInfoDO::getId) 860 .orderByDesc(OrderBaseInfoDO::getId)
768 ; 861 ;
769 } 862 }