|
|
@@ -14,6 +14,8 @@ import com.sckw.mongo.model.TobleTop;
|
|
|
import com.sckw.report.dao.SckwLogisticsOrderRepository;
|
|
|
import com.sckw.report.enums.CarWaybillEnum;
|
|
|
import com.sckw.report.service.param.ConsignOrderQuery;
|
|
|
+import com.sckw.report.service.param.WaybillOrderQuery;
|
|
|
+import com.sckw.report.service.vo.CarWaybillVo;
|
|
|
import com.sckw.report.service.vo.ConsignOrderVo;
|
|
|
import com.sckw.transport.api.dubbo.TransportDubboService;
|
|
|
import com.sckw.transport.api.model.dto.vo.KwtLogisticsOrderVO;
|
|
|
@@ -323,4 +325,103 @@ public class KwTransportService {
|
|
|
List<KwtLogisticsOrderVO> acceptCarriageOrderDetail = transportDubboService.getAcceptCarriageOrderDetail(ids);
|
|
|
return acceptCarriageOrderDetail;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取运单列表
|
|
|
+ * @param query
|
|
|
+ * @return
|
|
|
+ * @throws ParseException
|
|
|
+ */
|
|
|
+ public HttpResult getWaybillOrders(WaybillOrderQuery query) throws ParseException {
|
|
|
+ // 模糊匹配
|
|
|
+ // 根据条件查询所有并排序,且分页
|
|
|
+ // 设置模糊查询匹配规则 忽略大小写
|
|
|
+ // 创建条件对象
|
|
|
+ Criteria criteria = new Criteria();
|
|
|
+ criteria.and("entId").is(LoginUserHolder.getEntId());
|
|
|
+ // 装载时间
|
|
|
+ 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.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
|
|
|
+ // 多条件模糊查询
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ Query queryFormat = new Query(criteria);
|
|
|
+ // in查询
|
|
|
+ if (CollectionUtils.isNotEmpty(query.getIds())) {
|
|
|
+ queryFormat.addCriteria(Criteria.where("wOrderId").in(query.getIds()));
|
|
|
+ }
|
|
|
+ // 总记录数
|
|
|
+ long total = mongoTemplate.count(queryFormat, SckwWaybillOrder.class);
|
|
|
+ queryFormat.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
|
|
|
+ Sort.by(Sort.Order.desc("createTime"))));
|
|
|
+ // 执行查询
|
|
|
+ List<SckwWaybillOrder> list = mongoTemplate.find(queryFormat, SckwWaybillOrder.class);
|
|
|
+ List<CarWaybillVo> returnList = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ packageWayBillReturnList(list, returnList);
|
|
|
+ }
|
|
|
+ PageResult build = PageResult.build(query.getPage(), query.getPageSize(), total, returnList);
|
|
|
+ return HttpResult.ok(build);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理运单查询结果
|
|
|
+ * @param list
|
|
|
+ * @param returnList
|
|
|
+ */
|
|
|
+ private void packageWayBillReturnList(List<SckwWaybillOrder> list, List<CarWaybillVo> returnList) {
|
|
|
+ for (SckwWaybillOrder waybillOrder : list) {
|
|
|
+ CarWaybillVo vo = new CarWaybillVo();
|
|
|
+ vo.setWOrderNo(waybillOrder.getWOrderNo() == null ?
|
|
|
+ null : String.valueOf(waybillOrder.getWOrderNo()));
|
|
|
+ vo.setFirmName(waybillOrder.getFirmName() == null ?
|
|
|
+ null : String.valueOf(waybillOrder.getFirmName()));
|
|
|
+ vo.setTruckNo(waybillOrder.getTruckNo());
|
|
|
+ vo.setDriverName(waybillOrder.getDriverName() == null ?
|
|
|
+ null : String.valueOf(waybillOrder.getDriverName()));
|
|
|
+ vo.setType(waybillOrder.getType());
|
|
|
+ vo.setSendCarTime(String.valueOf(waybillOrder.getSendCarTime()));
|
|
|
+ vo.setStartTime(String.valueOf(waybillOrder.getStartTime()));
|
|
|
+ vo.setEndTime(String.valueOf(waybillOrder.getEndTime()));
|
|
|
+ vo.setEntrustAmount(String.valueOf(waybillOrder.getEntrustAmount()));
|
|
|
+ vo.setLoadingAddress(waybillOrder.getLoadingAddress());
|
|
|
+ vo.setUnloadingAddress(waybillOrder.getUnloadingAddress());
|
|
|
+ vo.setLoadAmount(waybillOrder.getLoadAmount() == null ?
|
|
|
+ null : String.valueOf(waybillOrder.getLoadAmount()));
|
|
|
+ vo.setUnloadAmount(waybillOrder.getUnloadAmount() == null ?
|
|
|
+ null : String.valueOf(waybillOrder.getUnloadAmount()));
|
|
|
+ vo.setLoadTime(waybillOrder.getLoadTime() == null ?
|
|
|
+ null : String.valueOf(waybillOrder.getLoadTime()));
|
|
|
+ vo.setUnloadTime(waybillOrder.getUnloadTime() == null ?
|
|
|
+ null :String.valueOf(waybillOrder.getUnloadTime()));
|
|
|
+ returnList.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|