|
@@ -155,7 +155,6 @@ public class KwTransportService {
|
|
|
* @date 2023/07/21
|
|
* @date 2023/07/21
|
|
|
*/
|
|
*/
|
|
|
public HttpResult getWaybillOrders(WaybillOrderListSelect query) throws ParseException {
|
|
public HttpResult getWaybillOrders(WaybillOrderListSelect query) throws ParseException {
|
|
|
-// Criteria criteria = buildWaybillOrdersQuery(query);
|
|
|
|
|
Criteria criteria = newBuildWaybillOrdersQuery(query);
|
|
Criteria criteria = newBuildWaybillOrdersQuery(query);
|
|
|
Query queryFormat = new Query(criteria);
|
|
Query queryFormat = new Query(criteria);
|
|
|
// in查询
|
|
// in查询
|
|
@@ -163,6 +162,7 @@ public class KwTransportService {
|
|
|
if (CollectionUtils.isNotEmpty(wOrderIds)) {
|
|
if (CollectionUtils.isNotEmpty(wOrderIds)) {
|
|
|
queryFormat.addCriteria(Criteria.where("wOrderId").in(wOrderIds));
|
|
queryFormat.addCriteria(Criteria.where("wOrderId").in(wOrderIds));
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
// 总记录数
|
|
// 总记录数
|
|
|
long total = mongoTemplate.count(queryFormat, SckwWaybillOrder.class);
|
|
long total = mongoTemplate.count(queryFormat, SckwWaybillOrder.class);
|
|
|
queryFormat.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
|
|
queryFormat.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
|
|
@@ -177,102 +177,6 @@ public class KwTransportService {
|
|
|
return HttpResult.ok(build);
|
|
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("entId").is(LoginUserHolder.getEntId());
|
|
|
criteria.and("delFlag").is(NumberConstant.ZERO);
|
|
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
|
|
* @date 2023/07/21
|
|
|
*/
|
|
*/
|
|
|
public HttpResult getWayBillStatistics(WaybillOrderQuery query) {
|
|
public HttpResult getWayBillStatistics(WaybillOrderQuery query) {
|
|
|
-// Criteria criteria = buildWaybillOrdersQuery(query);
|
|
|
|
|
Criteria criteria = newBuildWaybillOrdersQuery(query);
|
|
Criteria criteria = newBuildWaybillOrdersQuery(query);
|
|
|
Aggregation aggregation = Aggregation.newAggregation(
|
|
Aggregation aggregation = Aggregation.newAggregation(
|
|
|
Aggregation.match(criteria),
|
|
Aggregation.match(criteria),
|
|
@@ -551,7 +458,7 @@ public class KwTransportService {
|
|
|
*/
|
|
*/
|
|
|
public HttpResult wayBillTotalCount(WaybillOrderQuery query) {
|
|
public HttpResult wayBillTotalCount(WaybillOrderQuery query) {
|
|
|
// 统计项字段
|
|
// 统计项字段
|
|
|
- Criteria criteria = buildWaybillOrdersQuery(query);
|
|
|
|
|
|
|
+ Criteria criteria = newBuildWaybillOrdersQuery(query);
|
|
|
Aggregation aggregation = Aggregation.newAggregation(
|
|
Aggregation aggregation = Aggregation.newAggregation(
|
|
|
Aggregation.match(criteria),
|
|
Aggregation.match(criteria),
|
|
|
Aggregation.group("id").count().as("countTotal")
|
|
Aggregation.group("id").count().as("countTotal")
|