|
|
@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.github.pagehelper.PageHelper;
|
|
|
+import com.github.pagehelper.PageInfo;
|
|
|
import com.sckw.core.common.enums.NumberConstant;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.exception.BusinessException;
|
|
|
@@ -14,6 +16,7 @@ import com.sckw.core.model.enums.CarWaybillEnum;
|
|
|
import com.sckw.core.model.enums.LogisticsOrderEnum;
|
|
|
import com.sckw.core.model.enums.OrderRuleEnum;
|
|
|
import com.sckw.core.model.enums.RedisOrderGenerateEnum;
|
|
|
+import com.sckw.core.model.page.PageRes;
|
|
|
import com.sckw.core.model.page.PageResult;
|
|
|
import com.sckw.core.utils.*;
|
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
|
@@ -246,9 +249,9 @@ public class LogisticsConsignmentService {
|
|
|
|
|
|
// commonService.initIatingLogisticsConsignment(checkUnit, carriageUnit, lOrderNo, LoginUserHolder.getUserId(), LoginUserHolder.getEntId());
|
|
|
commonService.newSendLogisticsOrderToMessage(checkUnit, carriageUnit, lOrderNo, LoginUserHolder.getUserId(), LoginUserHolder.getEntId(),
|
|
|
- messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(),messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
|
|
|
- messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(),messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
|
|
|
- MessageEnum.INITIATING_LOGISTICS_CONSIGNMENT,MessageEnum.NEW_CARRIAGE_ORDER,"1");
|
|
|
+ messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(), messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
|
|
|
+ messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(), messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
|
|
|
+ MessageEnum.INITIATING_LOGISTICS_CONSIGNMENT, MessageEnum.NEW_CARRIAGE_ORDER, "1");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -679,6 +682,8 @@ public class LogisticsConsignmentService {
|
|
|
}
|
|
|
List<LogisticsOrderDTO> returnList = new ArrayList<>();
|
|
|
stringList = stringList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
|
|
|
+ /**后期分页优化,可以使用此方法*/
|
|
|
+// PageRes<LogisticsOrderDTO> logisticsOrderListByTradeOrderIds = getLogisticsOrderListByTradeOrderIds(stringList, page, pageSize, type);
|
|
|
for (String id : stringList) {
|
|
|
OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(id));
|
|
|
if (orderDetailRes == null) {
|
|
|
@@ -732,6 +737,64 @@ public class LogisticsConsignmentService {
|
|
|
return HttpResult.ok(build);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 贸易订单或者物流订单分页优化代码
|
|
|
+ * @param stringList 贸易订单id集合
|
|
|
+ * @param page 分页数据
|
|
|
+ * @param pageSize 分页条数
|
|
|
+ * @param type 数据类型 1 采购2销售
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public PageRes<LogisticsOrderDTO> getLogisticsOrderListByTradeOrderIds(List<String> stringList, Integer page, Integer pageSize, String type) {
|
|
|
+ PageHelper.startPage(page,pageSize);
|
|
|
+ List<Long> returnIds = new ArrayList<>();
|
|
|
+ for (String id : stringList) {
|
|
|
+ OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(id));
|
|
|
+ if (orderDetailRes == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 0销售展示是供应配送 1采购展示是采购自提
|
|
|
+ * 根据提货方式(0供应配送/1采购自提)
|
|
|
+ * 决定托运数据是否展示
|
|
|
+ *
|
|
|
+ */
|
|
|
+ /**销售订单-供应配送的才能看*/
|
|
|
+ /**采购订单-采方自提的才能看*/
|
|
|
+ boolean flag = false;
|
|
|
+ if (String.valueOf(NumberConstant.ZERO).equals(orderDetailRes.getPickupType())) {
|
|
|
+ flag = true;
|
|
|
+ returnIds.add(Long.parseLong(id));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<LogisticsOrderDTO> orderDTOList = kwtLogisticsOrderMapper.selectOrderListNotPageByIds(returnIds, type);
|
|
|
+ PageInfo<LogisticsOrderDTO> info = new PageInfo<>(orderDTOList);
|
|
|
+ if (CollectionUtils.isEmpty(orderDTOList)){
|
|
|
+ PageRes<LogisticsOrderDTO> pageRes = new PageRes<>();
|
|
|
+ pageRes.setPage(page);
|
|
|
+ pageRes.setPageSize(pageSize);
|
|
|
+ return pageRes;
|
|
|
+ }
|
|
|
+ /**计量单位*/
|
|
|
+ Map<String, String> unitTypeDictData = commonService.getDictData(DictTypeEnum.UNIT_TYPE.getType());
|
|
|
+ /**运价方式*/
|
|
|
+ Map<String, String> priceDictData = commonService.getDictData(DictTypeEnum.PRICE_TYPE.getType());
|
|
|
+ /**合理损耗*/
|
|
|
+ Map<String, String> taxRateTypeDictData = commonService.getDictData(DictTypeEnum.TAX_RATE_TYPE.getType());
|
|
|
+ for (LogisticsOrderDTO logisticsOrderDTO : orderDTOList) {
|
|
|
+ logisticsOrderDTO.setStatusLabel(LogisticsOrderEnum.getDestination(logisticsOrderDTO.getStatus()));
|
|
|
+ String createName = StringUtils.isBlank(logisticsOrderDTO.getCreateBy()) ? null :
|
|
|
+ (remoteSystemService.queryUserCacheById(Long.parseLong(logisticsOrderDTO.getCreateBy())) == null ? null :
|
|
|
+ remoteSystemService.queryUserCacheById(Long.parseLong(logisticsOrderDTO.getCreateBy())).getName());
|
|
|
+ logisticsOrderDTO.setCreateName(createName);
|
|
|
+ logisticsOrderDTO.setPriceLabel(priceDictData.get(logisticsOrderDTO.getPriceType()));
|
|
|
+ logisticsOrderDTO.setLossUnitLabel(taxRateTypeDictData.get(logisticsOrderDTO.getLossUnit()));
|
|
|
+ logisticsOrderDTO.setGoodsPriceUnitLabel(priceDictData.get(logisticsOrderDTO.getGoodsPriceUnit()));
|
|
|
+ logisticsOrderDTO.setUnitLabel(unitTypeDictData.get(logisticsOrderDTO.getUnit()));
|
|
|
+ }
|
|
|
+ return PageRes.build(info,orderDTOList);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 采购订单/销售订单-托运订单列表-下方数据统计
|
|
|
*
|
|
|
@@ -883,39 +946,60 @@ public class LogisticsConsignmentService {
|
|
|
* @param pageSize
|
|
|
* @return
|
|
|
*/
|
|
|
- public HttpResult purchaseLogisticsCar(String ids, Integer page, Integer pageSize) {
|
|
|
+ public PageRes<OrderCarDTO> purchaseLogisticsCar(String ids, Integer page, Integer pageSize) {
|
|
|
+ PageHelper.startPage(page,pageSize);
|
|
|
List<String> stringList = StringUtils.splitStrToList(ids, String.class);
|
|
|
if (CollectionUtils.isEmpty(stringList)) {
|
|
|
- return HttpResult.ok();
|
|
|
+ PageRes<OrderCarDTO> pageRes = new PageRes<>();
|
|
|
+ pageRes.setPages(page);
|
|
|
+ pageRes.setPageSize(pageSize);
|
|
|
+ return pageRes;
|
|
|
}
|
|
|
- List<OrderCarDTO> returnList = new ArrayList<>();
|
|
|
- stringList = stringList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
|
|
|
- for (String id : stringList) {
|
|
|
- List<OrderCarDTO> list = waybillOrderMapper.selectWaybillOrderCarListNotPage(id);
|
|
|
- List<String> collect = list.stream().map(OrderCarDTO::getTruckNo).distinct().collect(Collectors.toList());
|
|
|
- if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
- Map<String, RTruckVo> truck = remoteFleetService.findTruck(collect);
|
|
|
- for (OrderCarDTO orderCarDTO : list) {
|
|
|
-// orderCarDTO.setDriverId(String.valueOf(orderCarDTO.getDriverId()));
|
|
|
-// orderCarDTO.setDriverName(orderCarDTO.getDriverName());
|
|
|
-// orderCarDTO.setDriverPhone(orderCarDTO.getDriverPhone());
|
|
|
-// orderCarDTO.setDriverCard(orderCarDTO.getDriverCard());
|
|
|
- orderCarDTO.setStatusLabel(CarWaybillEnum.getName(orderCarDTO.getStatus()));
|
|
|
- orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
|
|
|
- null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
|
|
|
- null : (String.valueOf(truck.get(orderCarDTO.getTruckNo()).getActualWeight()))));
|
|
|
- }
|
|
|
- }
|
|
|
- if (CollectionUtils.isNotEmpty(list)) {
|
|
|
- returnList.addAll(list);
|
|
|
- }
|
|
|
+ List<Long> idsList = StringUtils.splitStrToList(ids, Long.class);
|
|
|
+ List<OrderCarDTO> orderCarList = waybillOrderMapper.selectWaybillOrderCarListByTradeOrderId(idsList);
|
|
|
+ PageInfo<OrderCarDTO> info = new PageInfo<>(orderCarList);
|
|
|
+ if (CollectionUtils.isEmpty(orderCarList)){
|
|
|
+ PageRes<OrderCarDTO> pageRes = new PageRes<>();
|
|
|
+ pageRes.setPage(page);
|
|
|
+ pageRes.setPageSize(pageSize);
|
|
|
+ return pageRes;
|
|
|
}
|
|
|
- List<OrderCarDTO> subList = new ArrayList<>();
|
|
|
- if (CollectionUtils.isNotEmpty(returnList)) {
|
|
|
- subList = returnList.stream().skip((page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
|
|
+ List<String> collected = orderCarList.stream().map(OrderCarDTO::getTruckNo).distinct().collect(Collectors.toList());
|
|
|
+ for (OrderCarDTO orderCarDTO : orderCarList) {
|
|
|
+ if (CollectionUtils.isNotEmpty(collected)){
|
|
|
+ Map<String, RTruckVo> truck = remoteFleetService.findTruck(collected);
|
|
|
+ orderCarDTO.setStatusLabel(CarWaybillEnum.getName(orderCarDTO.getStatus()));
|
|
|
+ orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
|
|
|
+ null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
|
|
|
+ null : (String.valueOf(truck.get(orderCarDTO.getTruckNo()).getActualWeight()))));
|
|
|
+ }
|
|
|
}
|
|
|
- PageResult build = PageResult.build(page, pageSize, returnList.stream().count(), subList);
|
|
|
- return HttpResult.ok(build);
|
|
|
+ List<OrderCarDTO> returnList = new ArrayList<>();
|
|
|
+ returnList.addAll(orderCarList);
|
|
|
+ return PageRes.build(info,returnList);
|
|
|
+// stringList = stringList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
|
|
|
+// for (String id : stringList) {
|
|
|
+// List<OrderCarDTO> list = waybillOrderMapper.selectWaybillOrderCarListNotPage(id);
|
|
|
+// List<String> collect = list.stream().map(OrderCarDTO::getTruckNo).distinct().collect(Collectors.toList());
|
|
|
+// if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
+// Map<String, RTruckVo> truck = remoteFleetService.findTruck(collect);
|
|
|
+// for (OrderCarDTO orderCarDTO : list) {
|
|
|
+// orderCarDTO.setStatusLabel(CarWaybillEnum.getName(orderCarDTO.getStatus()));
|
|
|
+// orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
|
|
|
+// null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
|
|
|
+// null : (String.valueOf(truck.get(orderCarDTO.getTruckNo()).getActualWeight()))));
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+// returnList.addAll(list);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// List<OrderCarDTO> subList = new ArrayList<>();
|
|
|
+// if (CollectionUtils.isNotEmpty(returnList)) {
|
|
|
+// subList = returnList.stream().skip((page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
|
|
+// }
|
|
|
+// PageResult build = PageResult.build(page, pageSize, returnList.stream().count(), subList);
|
|
|
+// return HttpResult.ok(build);
|
|
|
}
|
|
|
|
|
|
// /**
|
|
|
@@ -955,10 +1039,6 @@ public class LogisticsConsignmentService {
|
|
|
if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
Map<String, RTruckVo> truck = remoteFleetService.findTruck(collect);
|
|
|
for (OrderCarDTO orderCarDTO : list) {
|
|
|
-// orderCarDTO.setDriverId(String.valueOf(orderCarDTO.getDriverId()));
|
|
|
-// orderCarDTO.setDriverName(orderCarDTO.getDriverName());
|
|
|
-// orderCarDTO.setDriverPhone(orderCarDTO.getDriverPhone());
|
|
|
-// orderCarDTO.setDriverCard(orderCarDTO.getDriverCard());
|
|
|
orderCarDTO.setStatusLabel(CarWaybillEnum.getName(orderCarDTO.getStatus()));
|
|
|
orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
|
|
|
null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
|
|
|
@@ -1111,8 +1191,8 @@ public class LogisticsConsignmentService {
|
|
|
// kwtLogisticsOrder.getEntId(), MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS);
|
|
|
commonService.newSendLogisticsOrderToMessage(consignUnit, carriageUnit, kwtLogisticsOrder.getLOrderNo(), kwtLogisticsOrder.getCreateBy(),
|
|
|
kwtLogisticsOrder.getEntId(),
|
|
|
- messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(),messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
|
|
|
- messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(),messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
|
|
|
+ messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(), messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
|
|
|
+ messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(), messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
|
|
|
MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS,
|
|
|
"1");
|
|
|
} else {
|
|
|
@@ -1211,9 +1291,9 @@ public class LogisticsConsignmentService {
|
|
|
// kwtLogisticsOrder.getEntId(), MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS);
|
|
|
commonService.newSendLogisticsOrderToMessage(consignUnit, carriageUnit, kwtLogisticsOrder.getLOrderNo(), kwtLogisticsOrder.getCreateBy(),
|
|
|
kwtLogisticsOrder.getEntId(),
|
|
|
- messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(),messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
|
|
|
- messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(),messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
|
|
|
- MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS,"1");
|
|
|
+ messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(), messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
|
|
|
+ messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(), messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
|
|
|
+ MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS, "1");
|
|
|
} else {
|
|
|
result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
|
|
|
result.setMsg("操作失败:" + httpResult.getMsg());
|
|
|
@@ -1364,7 +1444,7 @@ public class LogisticsConsignmentService {
|
|
|
HttpResult result1 = tradeOrderInfoService.createOrCancelLogisticsOrder(param);
|
|
|
if (result1.getCode() != HttpStatus.SUCCESS_CODE) {
|
|
|
log.info("采购订单/销售订单完结订单,返回信息:{}", "id:" + logisticsOrder.getTOrderId() + "orderNo" + logisticsOrder.getTOrderNo(), JSONObject.toJSONString(result1));
|
|
|
- throw new BusinessException("{" + logisticsOrder.getTOrderNo() + "} 采购订单/销售订单完结订单失败!"+result1.getMsg());
|
|
|
+ throw new BusinessException("{" + logisticsOrder.getTOrderNo() + "} 采购订单/销售订单完结订单失败!" + result1.getMsg());
|
|
|
}
|
|
|
transportCommonService.closeHandle(logisticsOrder.getId());
|
|
|
waybillOrderService.cancelSendCar(logisticsOrder.getId());
|