|
|
@@ -1,6 +1,7 @@
|
|
|
package com.sckw.report.service;
|
|
|
|
|
|
import com.sckw.core.common.enums.NumberConstant;
|
|
|
+import com.sckw.core.model.enums.LogisticsOrderEnum;
|
|
|
import com.sckw.core.model.page.PageResult;
|
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
|
import com.sckw.core.utils.StringUtils;
|
|
|
@@ -35,6 +36,7 @@ import java.text.ParseException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.regex.Pattern;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author zk
|
|
|
@@ -53,6 +55,7 @@ public class KwTransportService {
|
|
|
|
|
|
@DubboReference(version = "2.0.0", group = "design", check = false)
|
|
|
TransportDubboService transportDubboService;
|
|
|
+
|
|
|
public HttpResult list(ConsignOrderQuery query) throws ParseException {
|
|
|
//模糊匹配
|
|
|
//根据条件查询所有并排序,且分页
|
|
|
@@ -160,9 +163,56 @@ public class KwTransportService {
|
|
|
Aggregation.project("total").and("value").previousOperation()
|
|
|
);
|
|
|
AggregationResults<TobleTop> outputTypeCount = mongoTemplate.aggregate(aggregation, SckwLogisticsOrder.class, TobleTop.class);
|
|
|
- List<TobleTop> results = (List<TobleTop>) outputTypeCount.getRawResults().get("results");
|
|
|
+ List<TobleTop> mappedResults = outputTypeCount.getMappedResults();
|
|
|
+ List<TobleTop> arrayList = new ArrayList<>();
|
|
|
+ arrayList.addAll(mappedResults);
|
|
|
+ /**补全数据状态不齐的情况*/
|
|
|
+ packageReturnStatistics(mappedResults, arrayList);
|
|
|
// 查询结果
|
|
|
- return HttpResult.ok(results);
|
|
|
+ return HttpResult.ok(arrayList);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装返回数据
|
|
|
+ *
|
|
|
+ * @param mappedResults
|
|
|
+ * @param arrayList
|
|
|
+ */
|
|
|
+ private void packageReturnStatistics(List<TobleTop> mappedResults, List<TobleTop> arrayList) {
|
|
|
+ List<String> codeList = LogisticsOrderEnum.getCodeStringList();
|
|
|
+ List<String> collect = mappedResults.stream().map(e -> e.getValue()).collect(Collectors.toList());
|
|
|
+ List<String> diffrentList = getDiffrentList(collect, codeList);
|
|
|
+ if (CollectionUtils.isNotEmpty(mappedResults)) {
|
|
|
+ if (CollectionUtils.isNotEmpty(diffrentList)) {
|
|
|
+ for (String s : diffrentList) {
|
|
|
+ TobleTop top = new TobleTop();
|
|
|
+ top.setValue(s);
|
|
|
+ top.setTotal(NumberConstant.ZERO);
|
|
|
+ arrayList.add(top);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (TobleTop top : arrayList) {
|
|
|
+ top.setName(LogisticsOrderEnum.getName(Integer.valueOf(top.getValue())));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (LogisticsOrderEnum logisticsOrderEnum : LogisticsOrderEnum.values()) {
|
|
|
+ TobleTop top = new TobleTop();
|
|
|
+ top.setName(logisticsOrderEnum.getDestination());
|
|
|
+ top.setValue(logisticsOrderEnum.getStatus());
|
|
|
+ top.setTotal(NumberConstant.ZERO);
|
|
|
+ arrayList.add(top);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param sourceList 源数据 [1,2,3]
|
|
|
+ * @param targetList 目标数据 [1]
|
|
|
+ * @Description: 获取targetList中在sourceList中不存在的项
|
|
|
+ * @return: List<String> [2,3]
|
|
|
+ */
|
|
|
+ public static List<String> getDiffrentList(List<String> sourceList, List<String> targetList) {
|
|
|
+ return targetList.stream().filter(item -> sourceList.stream().allMatch(each -> !item.equals(each))).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
public List<ConsignOrderVo> export(ConsignOrderQuery query) {
|
|
|
@@ -172,44 +222,51 @@ public class KwTransportService {
|
|
|
// 创建条件对象
|
|
|
Criteria criteria = new Criteria();
|
|
|
// 1. 全等于
|
|
|
+ Query query1 =new Query();
|
|
|
criteria.and("entId").is(LoginUserHolder.getEntId());
|
|
|
- if (StringUtils.isNotBlank(query.getLoadAddress())) {
|
|
|
- criteria.and("loadDetailAddress").is(query.getLoadAddress());
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(query.getUnloadAddress())) {
|
|
|
- criteria.and("unloadDetailAddress").is(query.getUnloadAddress());
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(query.getStatus())) {
|
|
|
- criteria.and("status").is(query.getStatus());
|
|
|
- }
|
|
|
criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
|
|
|
- // 4. 日期范围
|
|
|
- if (StringUtils.isNotEmpty(query.getStartDateTime()) && StringUtils.isNotEmpty(query.getEndDateTime())) {
|
|
|
- criteria.andOperator(Criteria.where("createTime").gte(query.getStartDateTime()), Criteria.where("createTime")
|
|
|
- .lte(query.getEndDateTime()));
|
|
|
- }
|
|
|
- //多条件模糊查询
|
|
|
- Criteria c1 = new Criteria();
|
|
|
- Criteria c2 = new Criteria();
|
|
|
- Criteria c3 = new Criteria();
|
|
|
- Criteria c4 = new Criteria();
|
|
|
- Criteria c5 = new Criteria();
|
|
|
- if (StringUtils.isNotBlank(query.getKeywords())) {
|
|
|
- Pattern pattern = Pattern.compile("^.*" + query.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
- c1 = Criteria.where("firmName").regex(pattern);
|
|
|
- c2 = Criteria.where("carrierFirmName").regex(pattern);
|
|
|
- c3 = Criteria.where("checkFirmName").regex(pattern);
|
|
|
- c4 = Criteria.where("tOrderNo").regex(pattern);
|
|
|
- c5 = Criteria.where("lOrderNo").regex(pattern);
|
|
|
- criteria.orOperator(c1, c2, c3, c4, c5);
|
|
|
- }
|
|
|
- Query query1 = new Query(criteria);
|
|
|
- if (CollectionUtils.isNotEmpty(query.getIds())) {
|
|
|
- query1.addCriteria(Criteria.where("lOrderId").in(query.getIds()));
|
|
|
+ if (CollectionUtils.isEmpty(query.getIds())) {
|
|
|
+ if (StringUtils.isNotBlank(query.getLoadAddress())) {
|
|
|
+ criteria.and("loadDetailAddress").is(query.getLoadAddress());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(query.getUnloadAddress())) {
|
|
|
+ criteria.and("unloadDetailAddress").is(query.getUnloadAddress());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(query.getStatus())) {
|
|
|
+ criteria.and("status").is(query.getStatus());
|
|
|
+ }
|
|
|
+ // 4. 日期范围
|
|
|
+ if (StringUtils.isNotEmpty(query.getStartDateTime()) && StringUtils.isNotEmpty(query.getEndDateTime())) {
|
|
|
+ criteria.andOperator(Criteria.where("createTime").gte(query.getStartDateTime()), Criteria.where("createTime")
|
|
|
+ .lte(query.getEndDateTime()));
|
|
|
+ }
|
|
|
+ //多条件模糊查询
|
|
|
+ Criteria c1 = new Criteria();
|
|
|
+ Criteria c2 = new Criteria();
|
|
|
+ Criteria c3 = new Criteria();
|
|
|
+ Criteria c4 = new Criteria();
|
|
|
+ Criteria c5 = new Criteria();
|
|
|
+ if (StringUtils.isNotBlank(query.getKeywords())) {
|
|
|
+ Pattern pattern = Pattern.compile("^.*" + query.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
|
|
|
+ c1 = Criteria.where("firmName").regex(pattern);
|
|
|
+ c2 = Criteria.where("carrierFirmName").regex(pattern);
|
|
|
+ c3 = Criteria.where("checkFirmName").regex(pattern);
|
|
|
+ c4 = Criteria.where("tOrderNo").regex(pattern);
|
|
|
+ c5 = Criteria.where("lOrderNo").regex(pattern);
|
|
|
+ criteria.orOperator(c1, c2, c3, c4, c5);
|
|
|
+ }
|
|
|
+ query1.addCriteria(criteria);
|
|
|
+ if (CollectionUtils.isNotEmpty(query.getIds())) {
|
|
|
+ query1.addCriteria(Criteria.where("lOrderId").in(query.getIds()));
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ query1.addCriteria(criteria);
|
|
|
+ if (CollectionUtils.isNotEmpty(query.getIds())) {
|
|
|
+ query1.addCriteria(Criteria.where("lOrderId").in(query.getIds()));
|
|
|
+ }
|
|
|
}
|
|
|
// 执行查询
|
|
|
List<SckwLogisticsOrder> list = mongoTemplate.find(query1, SckwLogisticsOrder.class);
|
|
|
-// PageResult build = PageResult.build(query.getPage(), query.getPageSize(), total, list);
|
|
|
List<ConsignOrderVo> returnList = new ArrayList<>();
|
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
|
packageReturnList(list, returnList);
|
|
|
@@ -278,6 +335,7 @@ public class KwTransportService {
|
|
|
|
|
|
/**
|
|
|
* 司机端 运单详情页面-【作废】
|
|
|
+ *
|
|
|
* @param id
|
|
|
* @param type
|
|
|
* @return
|
|
|
@@ -401,7 +459,7 @@ public class KwTransportService {
|
|
|
* @author jc
|
|
|
* @date 2023/07/21
|
|
|
*/
|
|
|
- public HttpResult getWayBillStatistics(WaybillOrderQuery query){
|
|
|
+ public HttpResult getWayBillStatistics(WaybillOrderQuery query) {
|
|
|
//模糊匹配
|
|
|
//根据条件查询所有并排序,且分页
|
|
|
//设置模糊查询匹配规则 忽略大小写
|
|
|
@@ -454,14 +512,14 @@ public class KwTransportService {
|
|
|
List<TobleTop> results = outputTypeCount.getMappedResults();
|
|
|
// 填充默认值
|
|
|
List<TobleTop> list = new ArrayList<>();
|
|
|
- for (CarWaybillEnum status:CarWaybillEnum.values()) {
|
|
|
+ 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()))) {
|
|
|
+ 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;
|
|
|
}
|
|
|
@@ -481,7 +539,7 @@ public class KwTransportService {
|
|
|
* @author jc
|
|
|
* @date 2023/07/21
|
|
|
*/
|
|
|
- public HttpResult wayBillTotalCount(WaybillOrderQuery query){
|
|
|
+ public HttpResult wayBillTotalCount(WaybillOrderQuery query) {
|
|
|
// 统计项字段
|
|
|
Criteria criteria = new Criteria();
|
|
|
criteria.and("entId").is(LoginUserHolder.getEntId());
|
|
|
@@ -531,14 +589,14 @@ public class KwTransportService {
|
|
|
List<TobleTop> results = outputTypeCount.getMappedResults();
|
|
|
// 填充默认值
|
|
|
List<TobleTop> list = new ArrayList<>();
|
|
|
- for (CarWaybillEnum status:CarWaybillEnum.values()) {
|
|
|
+ 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()))) {
|
|
|
+ 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;
|
|
|
}
|
|
|
@@ -553,6 +611,7 @@ public class KwTransportService {
|
|
|
|
|
|
/**
|
|
|
* 处理运单查询结果
|
|
|
+ *
|
|
|
* @param list
|
|
|
* @param returnList
|
|
|
*/
|
|
|
@@ -583,13 +642,14 @@ public class KwTransportService {
|
|
|
vo.setLoadTime(waybillOrder.getLoadTime() == null ?
|
|
|
null : DateUtil.getDateTime(waybillOrder.getLoadTime()));
|
|
|
vo.setUnloadTime(waybillOrder.getUnloadTime() == null ?
|
|
|
- null :DateUtil.getDateTime(waybillOrder.getUnloadTime()));
|
|
|
+ null : DateUtil.getDateTime(waybillOrder.getUnloadTime()));
|
|
|
returnList.add(vo);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 承运订单-分包托运列表数据展示
|
|
|
+ *
|
|
|
* @param lOrderId
|
|
|
* @param page
|
|
|
* @param pageSize
|