Jelajahi Sumber

update 增加运单权限用户查询条件

chenlin 2 tahun lalu
induk
melakukan
f5faf06452

+ 6 - 99
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -155,7 +155,6 @@ public class KwTransportService {
      * @date 2023/07/21
      */
     public HttpResult getWaybillOrders(WaybillOrderListSelect query) throws ParseException {
-//        Criteria criteria = buildWaybillOrdersQuery(query);
         Criteria criteria = newBuildWaybillOrdersQuery(query);
         Query queryFormat = new Query(criteria);
         // in查询
@@ -163,6 +162,7 @@ public class KwTransportService {
         if (CollectionUtils.isNotEmpty(wOrderIds)) {
             queryFormat.addCriteria(Criteria.where("wOrderId").in(wOrderIds));
         }
+
         // 总记录数
         long total = mongoTemplate.count(queryFormat, SckwWaybillOrder.class);
         queryFormat.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
@@ -177,102 +177,6 @@ public class KwTransportService {
         return HttpResult.ok(build);
     }
 
-    /**
-     * 构造运单关联查询条件
-     *
-     * @param query
-     * @return
-     */
-    public Criteria buildWaybillOrdersQuery(WaybillOrderQuery query) {
-        // 模糊匹配
-        // 根据条件查询所有并排序,且分页
-        // 设置模糊查询匹配规则  忽略大小写
-        // 创建条件对象
-        Criteria criteria = new Criteria();
-        criteria.and("entId").is(LoginUserHolder.getEntId());
-        criteria.and("delFlag").is(NumberConstant.ZERO);
-
-        if (StringUtils.isNotBlank(query.getStatus())) {
-            // TODO 此处需要修改
-            if (query.getStatus().equals(String.valueOf(NumberConstant.ONE_ZERO_ZERO))) {
-                List<Long> statuses = new ArrayList<>();
-                statuses.add(CarWaybillEnum.REJECT_ORDER.getCode().longValue());
-                statuses.add(CarWaybillEnum.REFUSE_TRAFFIC.getCode().longValue());
-                statuses.add(CarWaybillEnum.REVOKED.getCode().longValue());
-//                statuses.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode().longValue());
-                criteria.and("status").in(statuses);
-            } else if (query.getStatus().equals(String.valueOf(CarWaybillEnum.COMPLETION_UNLOADING.getCode()))) {
-                List<Long> statuses = new ArrayList<>();
-                statuses.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode().longValue());
-                statuses.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode().longValue());
-                criteria.and("status").in(statuses);
-            } else if (!query.getStatus().equals("all")
-                    && (!query.getStatus().equals(String.valueOf(CarWaybillEnum.COMPLETION_UNLOADING.getCode())))
-                    && (!query.getStatus().equals(String.valueOf(NumberConstant.ONE_ZERO_ZERO)))
-            ) {
-                criteria.and("status").is(Integer.valueOf(query.getStatus()));
-            }
-        }
-        // 装载时间
-        if (Objects.nonNull(query.getStartLoadTime()) && Objects.nonNull(query.getEndLoadTime())) {
-            criteria.and("loadTime").gte(query.getStartLoadTime()).lte(DateUtil.offsetDay(query.getEndLoadTime(), 1));
-        } else if (Objects.nonNull(query.getStartLoadTime())) {
-            criteria.and("loadTime").gte(query.getStartLoadTime());
-        } else if (Objects.nonNull(query.getEndLoadTime())) {
-            criteria.and("loadTime").lte(DateUtil.offsetDay(query.getEndLoadTime(), 1));
-        }
-        // 派车时间
-        if (Objects.nonNull(query.getStartSendCarTime()) && Objects.nonNull(query.getEndSendCarTime())) {
-            criteria.and("sendCarTime").gte(query.getStartSendCarTime()).lte(DateUtil.offsetDay(query.getEndSendCarTime(), 1));
-        } else if (Objects.nonNull(query.getStartSendCarTime())) {
-            criteria.and("sendCarTime").gte(query.getStartSendCarTime());
-        } else if (Objects.nonNull(query.getEndSendCarTime())) {
-            criteria.and("sendCarTime").lte(DateUtil.offsetDay(query.getEndSendCarTime(), 1));
-        }
-        // 卸货时间
-        if (Objects.nonNull(query.getStartUnloadTime()) && Objects.nonNull(query.getEndUnloadTime())) {
-            criteria.and("unloadTime").gte(query.getStartUnloadTime()).lte(DateUtil.offsetDay(query.getEndUnloadTime(), 1));
-        } else if (Objects.nonNull(query.getStartUnloadTime())) {
-            criteria.and("unloadTime").gte(query.getStartUnloadTime());
-        } else if (Objects.nonNull(query.getEndUnloadTime())) {
-            criteria.and("unloadTime").lte(DateUtil.offsetDay(query.getEndUnloadTime(), 1));
-        }
-        // 装货地址
-        String loadCode = query.getLoadCityCode();
-        if (StringUtils.isNotBlank(loadCode)) {
-            switch (query.getLoadCityCodeLevel()) {
-                case 1 -> criteria.and("loadCityCode")
-                        .regex(Pattern.compile("^" + loadCode.substring(0, 2) + ".*$", Pattern.CASE_INSENSITIVE));
-                case 2 -> criteria.and("loadCityCode")
-                        .regex(Pattern.compile("^" + loadCode.substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE));
-                case 3 -> criteria.and("loadCityCode").is(loadCode);
-            }
-        }
-        // 卸货地址
-        String unloadCode = query.getUnloadCityCode();
-        if (StringUtils.isNotBlank(unloadCode)) {
-            switch (query.getUnloadCityCodeLevel()) {
-                case 1 -> criteria.and("unloadCityCode")
-                        .regex(Pattern.compile("^" + unloadCode.substring(0, 2) + ".*$", Pattern.CASE_INSENSITIVE));
-                case 2 -> criteria.and("unloadCityCode")
-                        .regex(Pattern.compile("^" + unloadCode.substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE));
-                case 3 -> criteria.and("unloadCityCode").is(unloadCode);
-            }
-        }
-        // 多条件模糊查询
-        List<Criteria> orCriteria = new ArrayList<>();
-        if (StringUtils.isNotBlank(query.getKeywords())) {
-            Pattern pattern = Pattern.compile("^.*" + query.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
-            orCriteria.add(Criteria.where("wOrderNo").regex(pattern));
-            orCriteria.add(Criteria.where("truckNo").regex(pattern));
-            orCriteria.add(Criteria.where("driverName").regex(pattern));
-            orCriteria.add(Criteria.where("firmName").regex(pattern));
-            criteria.orOperator(orCriteria);
-        }
-        return criteria;
-    }
-
-
     /**
      * 构造运单关联查询条件
      *
@@ -288,6 +192,10 @@ public class KwTransportService {
         criteria.and("entId").is(LoginUserHolder.getEntId());
         criteria.and("delFlag").is(NumberConstant.ZERO);
 
+        // 运单创建人或有关授权用户
+        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
+        criteria.and("createBy").in(userIds);
+
         /**
          * 【拒绝接单】、【拒绝出车】、【已撤销】状态在列表页的表头,都归类到【已作废】状态中;
          *
@@ -378,7 +286,6 @@ public class KwTransportService {
      * @date 2023/07/21
      */
     public HttpResult getWayBillStatistics(WaybillOrderQuery query) {
-//        Criteria criteria = buildWaybillOrdersQuery(query);
         Criteria criteria = newBuildWaybillOrdersQuery(query);
         Aggregation aggregation = Aggregation.newAggregation(
                 Aggregation.match(criteria),
@@ -551,7 +458,7 @@ public class KwTransportService {
      */
     public HttpResult wayBillTotalCount(WaybillOrderQuery query) {
         // 统计项字段
-        Criteria criteria = buildWaybillOrdersQuery(query);
+        Criteria criteria = newBuildWaybillOrdersQuery(query);
         Aggregation aggregation = Aggregation.newAggregation(
                 Aggregation.match(criteria),
                 Aggregation.group("id").count().as("countTotal")

+ 4 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

@@ -462,6 +462,10 @@ public class WaybillManagementService {
         criteria.and("entId").is(LoginUserHolder.getEntId());
         criteria.and("delFlag").is(NumberConstant.ZERO);
 
+        // 运单创建人或有关授权用户
+        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
+        criteria.and("createBy").in(userIds);
+
         List<Long> wOrderIds = StringUtils.splitStrToList(query.getIds(), ",", Long.class);
         if (CollectionUtils.isNotEmpty(wOrderIds)) {
             Criteria.where("wOrderId").in(wOrderIds);