|
|
@@ -12,7 +12,7 @@ import com.sckw.core.web.response.HttpResult;
|
|
|
import com.sckw.excel.utils.DateUtil;
|
|
|
import com.sckw.mongo.model.SckwLogisticsOrder;
|
|
|
import com.sckw.mongo.model.TableTops;
|
|
|
-import com.sckw.report.service.param.ConsignOrderQuery;
|
|
|
+import com.sckw.report.service.param.AcceptCarriageOrderQuery;
|
|
|
import com.sckw.report.service.vo.AcceptCarriageOrderExcelVo;
|
|
|
import com.sckw.report.service.vo.AcceptCarriageOrderVo;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
@@ -27,7 +27,9 @@ import org.springframework.data.mongodb.core.query.Query;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -48,11 +50,12 @@ public class KwAcceptCarriageService {
|
|
|
|
|
|
/**
|
|
|
* 承运列表分页查询
|
|
|
+ *
|
|
|
* @param query
|
|
|
* @param unitType
|
|
|
* @return
|
|
|
*/
|
|
|
- public HttpResult acceptCarriageOrderList(ConsignOrderQuery query, String unitType) {
|
|
|
+ public HttpResult acceptCarriageOrderList(AcceptCarriageOrderQuery query, String unitType) {
|
|
|
//模糊匹配
|
|
|
//根据条件查询所有并排序,且分页
|
|
|
//设置模糊查询匹配规则 忽略大小写
|
|
|
@@ -60,11 +63,32 @@ public class KwAcceptCarriageService {
|
|
|
Criteria criteria = new Criteria();
|
|
|
// 1. 全等于
|
|
|
//判断承运还是托运企业
|
|
|
- if (unitType.equals(NumberConstant.ONE)){
|
|
|
+ if (unitType.equals(NumberConstant.ONE)) {
|
|
|
criteria.and("checkEntId").is(LoginUserHolder.getEntId());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
|
|
|
}
|
|
|
+ //装卸货地址
|
|
|
+ String loadCode = query.getLoadAddressCode();
|
|
|
+ if (StringUtils.isNotBlank(loadCode)) {
|
|
|
+ switch (query.getLoadAddressLevel()) {
|
|
|
+ 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.getUnloadAddressCode();
|
|
|
+ if (StringUtils.isNotBlank(unloadCode)) {
|
|
|
+ switch (query.getUnloadAddressLevel()) {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
if (StringUtils.isNotBlank(query.getLoadAddress())) {
|
|
|
criteria.and("loadDetailAddress").is(query.getLoadAddress());
|
|
|
}
|
|
|
@@ -79,6 +103,10 @@ public class KwAcceptCarriageService {
|
|
|
if (StringUtils.isNotEmpty(query.getStartDateTime()) && StringUtils.isNotEmpty(query.getEndDateTime())) {
|
|
|
criteria.andOperator(Criteria.where("createTime").gte(query.getStartDateTime()), Criteria.where("createTime")
|
|
|
.lte(query.getEndDateTime()));
|
|
|
+ } else if (StringUtils.isNotEmpty(query.getStartDateTime())) {
|
|
|
+ criteria.and("createTime").gte(query.getStartDateTime());
|
|
|
+ } else if (StringUtils.isNotEmpty(query.getEndDateTime())) {
|
|
|
+ criteria.and("createTime").lte(query.getStartDateTime());
|
|
|
}
|
|
|
//多条件模糊查询
|
|
|
Criteria c1 = new Criteria();
|
|
|
@@ -117,7 +145,8 @@ public class KwAcceptCarriageService {
|
|
|
PageResult build = PageResult.build(query.getPage(), query.getPageSize(), total, returnList);
|
|
|
return HttpResult.ok(build);
|
|
|
}
|
|
|
- public HttpResult statisticsAcceptCarriage(ConsignOrderQuery param, String unitType) {
|
|
|
+
|
|
|
+ public HttpResult statisticsAcceptCarriage(AcceptCarriageOrderQuery param, String unitType) {
|
|
|
//模糊匹配
|
|
|
//根据条件查询所有并排序,且分页
|
|
|
//设置模糊查询匹配规则 忽略大小写
|
|
|
@@ -125,11 +154,32 @@ public class KwAcceptCarriageService {
|
|
|
Criteria criteria = new Criteria();
|
|
|
// 1. 全等于
|
|
|
//判断承运还是托运企业
|
|
|
- if (unitType.equals(NumberConstant.ONE)){
|
|
|
+ if (unitType.equals(NumberConstant.ONE)) {
|
|
|
criteria.and("checkEntId").is(LoginUserHolder.getEntId());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
|
|
|
}
|
|
|
+ //装卸货地址
|
|
|
+ String loadCode = param.getLoadAddressCode();
|
|
|
+ if (StringUtils.isNotBlank(loadCode)) {
|
|
|
+ switch (param.getLoadAddressLevel()) {
|
|
|
+ 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 = param.getUnloadAddressCode();
|
|
|
+ if (StringUtils.isNotBlank(unloadCode)) {
|
|
|
+ switch (param.getUnloadAddressLevel()) {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
if (StringUtils.isNotBlank(param.getLoadAddress())) {
|
|
|
criteria.and("loadDetailAddress").is(param.getLoadAddress());
|
|
|
}
|
|
|
@@ -144,6 +194,10 @@ public class KwAcceptCarriageService {
|
|
|
if (StringUtils.isNotEmpty(param.getStartDateTime()) && StringUtils.isNotEmpty(param.getEndDateTime())) {
|
|
|
criteria.andOperator(Criteria.where("createTime").gte(param.getStartDateTime()), Criteria.where("createTime")
|
|
|
.lte(param.getEndDateTime()));
|
|
|
+ } else if (StringUtils.isNotEmpty(param.getStartDateTime())) {
|
|
|
+ criteria.and("createTime").gte(param.getStartDateTime());
|
|
|
+ } else if (StringUtils.isNotEmpty(param.getEndDateTime())) {
|
|
|
+ criteria.and("createTime").lte(param.getStartDateTime());
|
|
|
}
|
|
|
List<String> stringList = StringUtils.splitStrToList(param.getIds(), StringConstant.COMMA, String.class);
|
|
|
if (CollectionUtils.isNotEmpty(stringList)) {
|
|
|
@@ -176,10 +230,15 @@ public class KwAcceptCarriageService {
|
|
|
/**补全数据状态不齐的情况*/
|
|
|
packageReturnStatistics(mappedResults, arrayList);
|
|
|
// 查询结果
|
|
|
- return HttpResult.ok(arrayList);
|
|
|
+ Map<String, Object> map = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
+ map.put("tableTop", arrayList);
|
|
|
+ // 查询结果
|
|
|
+ return HttpResult.ok(map);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 组装承运订单列表数据
|
|
|
+ *
|
|
|
* @param list
|
|
|
* @param returnList
|
|
|
*/
|
|
|
@@ -231,7 +290,6 @@ public class KwAcceptCarriageService {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 组装返回数据
|
|
|
*
|
|
|
@@ -263,7 +321,7 @@ public class KwAcceptCarriageService {
|
|
|
arrayList.add(top);
|
|
|
}
|
|
|
}
|
|
|
- if (CollectionUtils.isNotEmpty(arrayList)){
|
|
|
+ if (CollectionUtils.isNotEmpty(arrayList)) {
|
|
|
/**补全统计【全部字段】*/
|
|
|
Integer sum = Math.toIntExact(arrayList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTotal())).collect(Collectors.summarizingInt(item -> item.getTotal())).getSum());
|
|
|
TableTops top = new TableTops();
|
|
|
@@ -276,22 +334,23 @@ public class KwAcceptCarriageService {
|
|
|
|
|
|
/**
|
|
|
* 承运分页详情导出
|
|
|
+ *
|
|
|
* @param query
|
|
|
* @param unitType
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<AcceptCarriageOrderExcelVo> exportAcceptCarriage(ConsignOrderQuery query, String unitType) {
|
|
|
+ public List<AcceptCarriageOrderExcelVo> exportAcceptCarriage(AcceptCarriageOrderQuery query, String unitType) {
|
|
|
//模糊匹配
|
|
|
//根据条件查询所有并排序,且分页
|
|
|
//设置模糊查询匹配规则 忽略大小写
|
|
|
// 创建条件对象
|
|
|
Criteria criteria = new Criteria();
|
|
|
// 1. 全等于
|
|
|
- Query query1 =new Query();
|
|
|
+ Query query1 = new Query();
|
|
|
//判断承运还是托运企业
|
|
|
- if (unitType.equals(NumberConstant.ONE)){
|
|
|
+ if (unitType.equals(NumberConstant.ONE)) {
|
|
|
criteria.and("checkEntId").is(LoginUserHolder.getEntId());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
|
|
|
}
|
|
|
criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
|
|
|
@@ -330,7 +389,7 @@ public class KwAcceptCarriageService {
|
|
|
if (CollectionUtils.isNotEmpty(stringList)) {
|
|
|
query1.addCriteria(Criteria.where("lOrderId").in(query.getIds()));
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
query1.addCriteria(criteria);
|
|
|
if (CollectionUtils.isNotEmpty(stringList)) {
|
|
|
query1.addCriteria(Criteria.where("lOrderId").in(query.getIds()));
|
|
|
@@ -344,6 +403,7 @@ public class KwAcceptCarriageService {
|
|
|
}
|
|
|
return returnList;
|
|
|
}
|
|
|
+
|
|
|
private void packageReturnList(List<SckwLogisticsOrder> list, List<AcceptCarriageOrderExcelVo> returnList) {
|
|
|
for (SckwLogisticsOrder logisticsOrder : list) {
|
|
|
AcceptCarriageOrderExcelVo vo = new AcceptCarriageOrderExcelVo();
|