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  
7 7 import java.io.Serializable;
8 8 import java.util.List;
  9 +import java.util.Set;
9 10  
10 11 /**
11 12 * 订单基础信息表(OrderBaseInfo)实体类
... ... @@ -24,85 +25,115 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable {
24 25  
25 26 private List<Long> ids;
26 27  
  28 + private Set<Long> orderIds;
  29 +
27 30  
28 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 2  
3 3 import cn.hutool.core.bean.BeanUtil;
4 4 import cn.hutool.core.collection.CollUtil;
  5 +import cn.hutool.core.collection.CollectionUtil;
5 6 import com.alibaba.fastjson.JSONObject;
6 7 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
7 8 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
... ... @@ -22,10 +23,12 @@ import com.order.erp.common.utils.ProfitUtils;
22 23 import com.order.erp.config.DataScope;
23 24 import com.order.erp.domain.*;
24 25 import com.order.erp.domain.dto.BaseDO;
  26 +import com.order.erp.domain.dto.admin.AdminUserDO;
25 27 import com.order.erp.domain.dto.order.*;
26 28 import com.order.erp.domain.excel.OrderExcelVO;
27 29 import com.order.erp.domain.vo.order.*;
28 30 import com.order.erp.mapper.order.OrderBaseInfoMapper;
  31 +import com.order.erp.service.admin.AdminUserService;
29 32 import com.order.erp.service.order.*;
30 33 import lombok.extern.slf4j.Slf4j;
31 34 import org.springframework.beans.BeanUtils;
... ... @@ -38,10 +41,7 @@ import javax.servlet.http.HttpServletResponse;
38 41 import java.io.File;
39 42 import java.io.IOException;
40 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 45 import java.util.function.Function;
46 46 import java.util.stream.Collectors;
47 47  
... ... @@ -97,6 +97,9 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
97 97 @Resource
98 98 private DataScope dataScope;
99 99  
  100 + @Resource
  101 + private AdminUserService userService;
  102 +
100 103 /**
101 104 * 通过ID查询单条数据
102 105 * <p>
... ... @@ -749,21 +752,111 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl&lt;OrderBaseInfoMapper, O
749 752 * @return
750 753 */
751 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 845 return new LambdaQueryWrapper<OrderBaseInfoDO>()
753 846 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
754 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 853 .eq(StringUtils.isNotBlank(queryVO.getProjectNo()), OrderBaseInfoDO::getProjectNo, queryVO.getProjectNo())
756 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 860 .orderByDesc(OrderBaseInfoDO::getId)
768 861 ;
769 862 }
... ...