|
|
@@ -328,9 +328,11 @@ public class KwTransportService {
|
|
|
|
|
|
/**
|
|
|
* 获取运单列表
|
|
|
+ *
|
|
|
* @param query
|
|
|
- * @return
|
|
|
- * @throws ParseException
|
|
|
+ * @return {@link HttpResult }
|
|
|
+ * @author jc
|
|
|
+ * @date 2023/07/21
|
|
|
*/
|
|
|
public HttpResult getWaybillOrders(WaybillOrderQuery query) throws ParseException {
|
|
|
// 模糊匹配
|
|
|
@@ -339,6 +341,7 @@ public class KwTransportService {
|
|
|
// 创建条件对象
|
|
|
Criteria criteria = new Criteria();
|
|
|
criteria.and("entId").is(LoginUserHolder.getEntId());
|
|
|
+ criteria.and("delFlag").is(NumberConstant.ZERO);
|
|
|
// 装载时间
|
|
|
if (StringUtils.isNotBlank(query.getStartLoadTime()) && StringUtils.isNotEmpty(query.getEndLoadTime())) {
|
|
|
criteria.andOperator(Criteria.where("loadTime").gte(query.getStartLoadTime()), Criteria.where("loadTime")
|
|
|
@@ -354,7 +357,6 @@ public class KwTransportService {
|
|
|
criteria.andOperator(Criteria.where("unloadTime").gte(query.getStartUnloadTime()), Criteria.where("unloadTime")
|
|
|
.lte(query.getEndUnloadTime()));
|
|
|
}
|
|
|
- criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
|
|
|
// 多条件模糊查询
|
|
|
Criteria c1 = new Criteria();
|
|
|
Criteria c2 = new Criteria();
|
|
|
@@ -391,6 +393,164 @@ public class KwTransportService {
|
|
|
return HttpResult.ok(build);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 运单管理-运单列表 top 统计
|
|
|
+ *
|
|
|
+ * @param query 查询
|
|
|
+ * @return {@link HttpResult }
|
|
|
+ * @author jc
|
|
|
+ * @date 2023/07/21
|
|
|
+ */
|
|
|
+ public HttpResult getWayBillStatistics(WaybillOrderQuery query){
|
|
|
+ //模糊匹配
|
|
|
+ //根据条件查询所有并排序,且分页
|
|
|
+ //设置模糊查询匹配规则 忽略大小写
|
|
|
+ // 创建条件对象
|
|
|
+ Criteria criteria = new Criteria();
|
|
|
+ criteria.and("entId").is(LoginUserHolder.getEntId());
|
|
|
+ criteria.and("delFlag").is(NumberConstant.ZERO);
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(query.getStatus())) {
|
|
|
+ criteria.and("status").is(query.getStatus());
|
|
|
+ }
|
|
|
+ // 装载时间
|
|
|
+ if (StringUtils.isNotBlank(query.getStartLoadTime()) && StringUtils.isNotEmpty(query.getEndLoadTime())) {
|
|
|
+ criteria.andOperator(Criteria.where("loadTime").gte(query.getStartLoadTime()), Criteria.where("loadTime")
|
|
|
+ .lte(query.getEndLoadTime()));
|
|
|
+ }
|
|
|
+ // 派车时间
|
|
|
+ if (StringUtils.isNotBlank(query.getStartSendCarTime()) && StringUtils.isNotEmpty(query.getEndSendCarTime())) {
|
|
|
+ criteria.andOperator(Criteria.where("sendCarTime").gte(query.getStartSendCarTime()), Criteria.where("sendCarTime")
|
|
|
+ .lte(query.getEndSendCarTime()));
|
|
|
+ }
|
|
|
+ // 卸货时间
|
|
|
+ if (StringUtils.isNotBlank(query.getStartUnloadTime()) && StringUtils.isNotEmpty(query.getEndUnloadTime())) {
|
|
|
+ criteria.andOperator(Criteria.where("unloadTime").gte(query.getStartUnloadTime()), Criteria.where("unloadTime")
|
|
|
+ .lte(query.getEndUnloadTime()));
|
|
|
+ }
|
|
|
+ // 多条件模糊查询
|
|
|
+ Criteria c1 = new Criteria();
|
|
|
+ Criteria c2 = new Criteria();
|
|
|
+ Criteria c3 = new Criteria();
|
|
|
+ Criteria c4 = new Criteria();
|
|
|
+ Criteria c5 = new Criteria();
|
|
|
+ Criteria c6 = new Criteria();
|
|
|
+ if (StringUtils.isNotBlank(query.getKeywords())) {
|
|
|
+ Pattern pattern = Pattern.compile("^.*" + query.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
+ c1 = Criteria.where("wOrderNo").regex(pattern);
|
|
|
+ c2 = Criteria.where("truckNo").regex(pattern);
|
|
|
+ c3 = Criteria.where("driverName").regex(pattern);
|
|
|
+ c4 = Criteria.where("firmName").regex(pattern);
|
|
|
+ c5 = Criteria.where("loadAddress").regex(pattern);
|
|
|
+ c6 = Criteria.where("unloadAddress").regex(pattern);
|
|
|
+ criteria.orOperator(c1, c2, c3, c4, c5, c6);
|
|
|
+ }
|
|
|
+ Aggregation aggregation = Aggregation.newAggregation(
|
|
|
+ Aggregation.match(criteria),
|
|
|
+ Aggregation.group("status").count().as("total"),
|
|
|
+ Aggregation.project("total").and("value").previousOperation()
|
|
|
+ );
|
|
|
+ AggregationResults<TobleTop> outputTypeCount = mongoTemplate.aggregate(aggregation, SckwWaybillOrder.class, TobleTop.class);
|
|
|
+ List<TobleTop> results = outputTypeCount.getMappedResults();
|
|
|
+ // 填充默认值
|
|
|
+ List<TobleTop> list = new ArrayList<>();
|
|
|
+ for (CarWaybillEnum status:CarWaybillEnum.values()) {
|
|
|
+ TobleTop top = new TobleTop();
|
|
|
+ top.setName(status.getDestination());
|
|
|
+ top.setValue(String.valueOf(status.getCode()));
|
|
|
+ top.setTotal(0);
|
|
|
+ if(CollectionUtils.isNotEmpty(results)) {
|
|
|
+ for (TobleTop result:results) {
|
|
|
+ if(StringUtils.isNotEmpty(result.getValue()) && String.valueOf(result.getValue()).equals(String.valueOf(status.getCode()))) {
|
|
|
+ top.setTotal(result.getTotal());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ list.add(top);
|
|
|
+ }
|
|
|
+ // 查询结果
|
|
|
+ return HttpResult.ok(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 运单管理-运单列表 列表统计数据项
|
|
|
+ *
|
|
|
+ * @param query 查询
|
|
|
+ * @return {@link HttpResult }
|
|
|
+ * @author jc
|
|
|
+ * @date 2023/07/21
|
|
|
+ */
|
|
|
+ public HttpResult wayBillTotalCount(WaybillOrderQuery query){
|
|
|
+ // 统计项字段
|
|
|
+ Criteria criteria = new Criteria();
|
|
|
+ criteria.and("entId").is(LoginUserHolder.getEntId());
|
|
|
+ criteria.and("delFlag").is(NumberConstant.ZERO);
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(query.getStatus())) {
|
|
|
+ criteria.and("status").is(query.getStatus());
|
|
|
+ }
|
|
|
+ // 装载时间
|
|
|
+ if (StringUtils.isNotBlank(query.getStartLoadTime()) && StringUtils.isNotEmpty(query.getEndLoadTime())) {
|
|
|
+ criteria.andOperator(Criteria.where("loadTime").gte(query.getStartLoadTime()), Criteria.where("loadTime")
|
|
|
+ .lte(query.getEndLoadTime()));
|
|
|
+ }
|
|
|
+ // 派车时间
|
|
|
+ if (StringUtils.isNotBlank(query.getStartSendCarTime()) && StringUtils.isNotEmpty(query.getEndSendCarTime())) {
|
|
|
+ criteria.andOperator(Criteria.where("sendCarTime").gte(query.getStartSendCarTime()), Criteria.where("sendCarTime")
|
|
|
+ .lte(query.getEndSendCarTime()));
|
|
|
+ }
|
|
|
+ // 卸货时间
|
|
|
+ if (StringUtils.isNotBlank(query.getStartUnloadTime()) && StringUtils.isNotEmpty(query.getEndUnloadTime())) {
|
|
|
+ criteria.andOperator(Criteria.where("unloadTime").gte(query.getStartUnloadTime()), Criteria.where("unloadTime")
|
|
|
+ .lte(query.getEndUnloadTime()));
|
|
|
+ }
|
|
|
+ // 多条件模糊查询
|
|
|
+ Criteria c1 = new Criteria();
|
|
|
+ Criteria c2 = new Criteria();
|
|
|
+ Criteria c3 = new Criteria();
|
|
|
+ Criteria c4 = new Criteria();
|
|
|
+ Criteria c5 = new Criteria();
|
|
|
+ Criteria c6 = new Criteria();
|
|
|
+ if (StringUtils.isNotBlank(query.getKeywords())) {
|
|
|
+ Pattern pattern = Pattern.compile("^.*" + query.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
+ c1 = Criteria.where("wOrderNo").regex(pattern);
|
|
|
+ c2 = Criteria.where("truckNo").regex(pattern);
|
|
|
+ c3 = Criteria.where("driverName").regex(pattern);
|
|
|
+ c4 = Criteria.where("firmName").regex(pattern);
|
|
|
+ c5 = Criteria.where("loadAddress").regex(pattern);
|
|
|
+ c6 = Criteria.where("unloadAddress").regex(pattern);
|
|
|
+ criteria.orOperator(c1, c2, c3, c4, c5, c6);
|
|
|
+ }
|
|
|
+ Aggregation aggregation = Aggregation.newAggregation(
|
|
|
+ Aggregation.match(criteria),
|
|
|
+ Aggregation.group("status").count().as("total"),
|
|
|
+ Aggregation.project("total").and("value").previousOperation()
|
|
|
+ );
|
|
|
+ AggregationResults<TobleTop> outputTypeCount = mongoTemplate.aggregate(aggregation, SckwWaybillOrder.class, TobleTop.class);
|
|
|
+ List<TobleTop> results = outputTypeCount.getMappedResults();
|
|
|
+ // 填充默认值
|
|
|
+ List<TobleTop> list = new ArrayList<>();
|
|
|
+ for (CarWaybillEnum status:CarWaybillEnum.values()) {
|
|
|
+ TobleTop top = new TobleTop();
|
|
|
+ top.setName(status.getDestination());
|
|
|
+ top.setValue(String.valueOf(status.getCode()));
|
|
|
+ top.setTotal(0);
|
|
|
+ if(CollectionUtils.isNotEmpty(results)) {
|
|
|
+ for (TobleTop result:results) {
|
|
|
+ if(StringUtils.isNotEmpty(result.getValue()) && String.valueOf(result.getValue()).equals(String.valueOf(status.getCode()))) {
|
|
|
+ top.setTotal(result.getTotal());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ list.add(top);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询结果
|
|
|
+ return HttpResult.ok(list);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 处理运单查询结果
|
|
|
* @param list
|
|
|
@@ -407,9 +567,12 @@ public class KwTransportService {
|
|
|
vo.setDriverName(waybillOrder.getDriverName() == null ?
|
|
|
null : String.valueOf(waybillOrder.getDriverName()));
|
|
|
vo.setType(String.valueOf(waybillOrder.getType()));
|
|
|
- vo.setSendCarTime(String.valueOf(waybillOrder.getCreateTime()));
|
|
|
- vo.setStartTime(String.valueOf(waybillOrder.getStartTime()));
|
|
|
- vo.setEndTime(String.valueOf(waybillOrder.getEndTime()));
|
|
|
+ vo.setSendCarTime(waybillOrder.getCreateTime() == null ?
|
|
|
+ null : DateUtil.getDateTime(waybillOrder.getCreateTime()));
|
|
|
+ vo.setStartTime(waybillOrder.getStartTime() == null ?
|
|
|
+ null : DateUtil.getDateTime(waybillOrder.getStartTime()));
|
|
|
+ vo.setEndTime(waybillOrder.getEndTime() == null ?
|
|
|
+ null : DateUtil.getDateTime(waybillOrder.getEndTime()));
|
|
|
vo.setEntrustAmount(String.valueOf(waybillOrder.getEntrustAmount()));
|
|
|
vo.setLoadingAddress(waybillOrder.getLoadDetailAddress());
|
|
|
vo.setUnloadingAddress(waybillOrder.getUnloadDetailAddress());
|
|
|
@@ -418,9 +581,9 @@ public class KwTransportService {
|
|
|
vo.setUnloadAmount(waybillOrder.getUnloadAmount() == null ?
|
|
|
null : String.valueOf(waybillOrder.getUnloadAmount()));
|
|
|
vo.setLoadTime(waybillOrder.getLoadTime() == null ?
|
|
|
- null : String.valueOf(waybillOrder.getLoadTime()));
|
|
|
+ null : DateUtil.getDateTime(waybillOrder.getLoadTime()));
|
|
|
vo.setUnloadTime(waybillOrder.getUnloadTime() == null ?
|
|
|
- null :String.valueOf(waybillOrder.getUnloadTime()));
|
|
|
+ null :DateUtil.getDateTime(waybillOrder.getUnloadTime()));
|
|
|
returnList.add(vo);
|
|
|
}
|
|
|
}
|