Commit 66c8eac75e4f6d2f3a1d0924739feb35b9dda3da
1 parent
0b985a1a
fix: 订单查询条件
Showing
2 changed files
with
176 additions
and
52 deletions
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<OrderBaseInfoMapper, O | @@ -97,6 +97,9 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<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<OrderBaseInfoMapper, O | @@ -749,21 +752,111 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<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 | } |