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 | |
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<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<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 | } | ... | ... |