|
|
@@ -1,5 +1,6 @@
|
|
|
package com.sckw.transport.service;
|
|
|
|
|
|
+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;
|
|
|
@@ -8,11 +9,16 @@ import com.github.pagehelper.PageInfo;
|
|
|
import com.sckw.core.common.enums.NumberConstant;
|
|
|
import com.sckw.core.model.page.PageHelperUtil;
|
|
|
import com.sckw.core.model.page.PageResult;
|
|
|
+import com.sckw.core.utils.CollectionUtils;
|
|
|
import com.sckw.core.utils.IdWorker;
|
|
|
import com.sckw.core.utils.StringUtils;
|
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
import com.sckw.core.web.response.HttpResult;
|
|
|
+import com.sckw.mongo.enums.BusinessTypeEnum;
|
|
|
+import com.sckw.mongo.model.SckwWaybillOrder;
|
|
|
+import com.sckw.stream.model.SckwBusSum;
|
|
|
+import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.transport.common.enums.CarWaybillEnum;
|
|
|
import com.sckw.transport.common.enums.LogisticsOrderEnum;
|
|
|
import com.sckw.transport.dao.*;
|
|
|
@@ -20,17 +26,20 @@ import com.sckw.transport.model.KwtLogisticsOrder;
|
|
|
import com.sckw.transport.model.KwtLogisticsOrderTrack;
|
|
|
import com.sckw.transport.model.KwtWaybillOrder;
|
|
|
import com.sckw.transport.model.KwtWaybillOrderTrack;
|
|
|
+import com.sckw.transport.model.dto.CarListDTO;
|
|
|
import com.sckw.transport.model.dto.OrderDTO;
|
|
|
import com.sckw.transport.model.dto.OrderTakingDTO;
|
|
|
-import com.sckw.transport.model.dto.CarListDTO;
|
|
|
import com.sckw.transport.model.dto.SendCarDTO;
|
|
|
import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
|
|
|
import com.sckw.transport.model.param.LogisticsConsignmentParam;
|
|
|
import com.sckw.transport.model.vo.AcceptCarriageOrderVO;
|
|
|
import com.sckw.transport.model.vo.CarWaybillVO;
|
|
|
import com.sckw.transport.model.vo.ConsignmentVO;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.cloud.stream.function.StreamBridge;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
@@ -49,6 +58,12 @@ import java.util.List;
|
|
|
@Service
|
|
|
public class AcceptCarriageOrderService {
|
|
|
|
|
|
+ @DubboReference(version = "2.0.0", group = "design", check = false)
|
|
|
+ RemoteSystemService remoteSystemService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private StreamBridge streamBridge;
|
|
|
+
|
|
|
@Autowired
|
|
|
private KwtLogisticsOrderMapper logisticsOrderMapper;
|
|
|
|
|
|
@@ -156,6 +171,7 @@ public class AcceptCarriageOrderService {
|
|
|
result.setMsg("单据不存在!");
|
|
|
return result;
|
|
|
}
|
|
|
+ List<SckwWaybillOrder> list = new ArrayList<>();
|
|
|
if (String.valueOf(NumberConstant.ZERO).equals(sendCarDTO.getType())) {
|
|
|
for (CarListDTO car : sendCarDTO.getCarList()) {
|
|
|
if (ObjectUtils.isEmpty(car.getCount())) {
|
|
|
@@ -165,11 +181,12 @@ public class AcceptCarriageOrderService {
|
|
|
Long wOrderId = new IdWorker(NumberConstant.ONE).nextId();
|
|
|
String wOrderNo = com.sckw.transport.utils.StringUtils.getWaybillNoUtil() + i;
|
|
|
KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
|
|
|
- waybillOrder.setType(String.valueOf(NumberConstant.ZERO));
|
|
|
+ String type = String.valueOf(NumberConstant.ZERO);
|
|
|
+ waybillOrder.setType(type);
|
|
|
waybillOrder.setEntrustAmount(new BigDecimal(car.getLoadAmount()));
|
|
|
- insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO);
|
|
|
+ insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO, list, type);
|
|
|
//insertWaybillOrderTicket(id,wOrderNo,logisticsOrder,sendCarDTO);
|
|
|
- insertWaybillOrderTrack(wOrderId);
|
|
|
+// insertWaybillOrderTrack(wOrderId);
|
|
|
}
|
|
|
}
|
|
|
} else if (String.valueOf(NumberConstant.ONE).equals(sendCarDTO.getType())) {
|
|
|
@@ -181,10 +198,11 @@ public class AcceptCarriageOrderService {
|
|
|
Long wOrderId = new IdWorker(NumberConstant.ONE).nextId();
|
|
|
String wOrderNo = com.sckw.transport.utils.StringUtils.getWaybillNoUtil() + i;
|
|
|
KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
|
|
|
- waybillOrder.setType(String.valueOf(NumberConstant.ONE));
|
|
|
+ String type = String.valueOf(NumberConstant.ONE);
|
|
|
+ waybillOrder.setType(type);
|
|
|
waybillOrder.setEntrustAmount(new BigDecimal(sendCarDTO.getWaitingVolume()));
|
|
|
- insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO);
|
|
|
- insertWaybillOrderTrack(wOrderId);
|
|
|
+ insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO, list, type);
|
|
|
+// insertWaybillOrderTrack(wOrderId);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
@@ -192,6 +210,20 @@ public class AcceptCarriageOrderService {
|
|
|
result.setMsg("派车类型错误!");
|
|
|
return result;
|
|
|
}
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ for (SckwWaybillOrder sckwWaybillOrder : list) {
|
|
|
+ //rabbitMq业务汇总数据发送/消费对象
|
|
|
+ SckwBusSum busSum = new SckwBusSum();
|
|
|
+ //业务汇总类型
|
|
|
+ busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
|
|
|
+// busSum.setBusSumType("waybillOrderCar");
|
|
|
+ //操作对象(1新增/2修改)
|
|
|
+ busSum.setMethod(1);
|
|
|
+ //业务汇总数据对象
|
|
|
+ busSum.setObject(sckwWaybillOrder);
|
|
|
+ streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
|
|
|
+ }
|
|
|
+ }
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
@@ -232,8 +264,10 @@ public class AcceptCarriageOrderService {
|
|
|
* @param carListDTO
|
|
|
* @param sendCarDTO
|
|
|
*/
|
|
|
- private void insertWaybillOrder(KwtWaybillOrder waybillOrder, Long wOrderId, String wOrderNo, KwtLogisticsOrder logisticsOrder, CarListDTO carListDTO, SendCarDTO sendCarDTO) {
|
|
|
- waybillOrder.setId(wOrderId);
|
|
|
+ private void insertWaybillOrder(KwtWaybillOrder waybillOrder, Long id, String wOrderNo,
|
|
|
+ KwtLogisticsOrder logisticsOrder, CarListDTO carListDTO, SendCarDTO sendCarDTO,
|
|
|
+ List<SckwWaybillOrder> list, String type) {
|
|
|
+ waybillOrder.setId(id);
|
|
|
waybillOrder.setEntId(logisticsOrder.getEntId());
|
|
|
waybillOrder.setLOrderId(Long.parseLong(sendCarDTO.getLOrderId()));
|
|
|
waybillOrder.setWOrderNo(wOrderNo);
|
|
|
@@ -244,9 +278,60 @@ public class AcceptCarriageOrderService {
|
|
|
waybillOrder.setRemark(sendCarDTO.getRemark());
|
|
|
waybillOrder.setStatus(NumberConstant.ZERO);
|
|
|
waybillOrder.setCreateBy(LoginUserHolder.getUserId());
|
|
|
- waybillOrder.setCreateTime(new Date());
|
|
|
+ Date createTime = new Date();
|
|
|
+ waybillOrder.setCreateTime(createTime);
|
|
|
waybillOrder.setUpdateTime(new Date());
|
|
|
waybillOrder.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
waybillOrderMapper.insert(waybillOrder);
|
|
|
+
|
|
|
+ //状态表保存
|
|
|
+ KwtWaybillOrderTrack track = new KwtWaybillOrderTrack();
|
|
|
+ track.setId(new IdWorker(NumberConstant.ONE).nextId());
|
|
|
+ track.setWOrderId(id);
|
|
|
+ track.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
|
|
|
+ track.setCreateTime(new Date());
|
|
|
+ track.setUpdateTime(new Date());
|
|
|
+ track.setCreateBy(LoginUserHolder.getUserId());
|
|
|
+ track.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ waybillOrderTrackMapper.insert(track);
|
|
|
+
|
|
|
+ //放入mongodb实体
|
|
|
+ SckwWaybillOrder waybillCarDTO = new SckwWaybillOrder();
|
|
|
+ waybillCarDTO.setStatus(CarWaybillEnum.PENDING_ORDER.getCode().toString());
|
|
|
+ waybillCarDTO.setType(type);
|
|
|
+ waybillCarDTO.setWOrderId(id);
|
|
|
+ waybillCarDTO.setWOrderNo(wOrderNo);
|
|
|
+ waybillCarDTO.setLOrderId(StringUtils.isBlank(sendCarDTO.getLOrderId()) ? null : Long.parseLong(sendCarDTO.getLOrderId()));
|
|
|
+ waybillCarDTO.setLOrderNo(sendCarDTO.getLOrderNo());
|
|
|
+ waybillCarDTO.setTOrderId(logisticsOrder.getTOrderId());
|
|
|
+ waybillCarDTO.setTOrderNo(logisticsOrder.getTOrderNo());
|
|
|
+ waybillCarDTO.setEntId(logisticsOrder.getEntId());
|
|
|
+ waybillCarDTO.setFirmName(remoteSystemService.queryEntCacheById(logisticsOrder.getEntId()).getFirmName());
|
|
|
+ waybillCarDTO.setTruckNo(carListDTO.getTruckNo());
|
|
|
+// waybillCarDTO.setTruckType();
|
|
|
+// waybillCarDTO.setTruckEnergyType();
|
|
|
+// waybillCarDTO.setTruckColor()
|
|
|
+// waybillCarDTO.setTruckTrailerNo();
|
|
|
+// waybillCarDTO.setTruckFleetName();
|
|
|
+ waybillCarDTO.setDriverId(StringUtils.isBlank(carListDTO.getDriverId()) ? null : Long.parseLong(carListDTO.getDriverId()));
|
|
|
+// waybillCarDTO.setDriverPhone();
|
|
|
+// waybillCarDTO.setDriverIdcard();
|
|
|
+ waybillCarDTO.setDriverName(carListDTO.getDriverName());
|
|
|
+ waybillCarDTO.setSendCarTime(createTime);
|
|
|
+ waybillCarDTO.setStartTime(sendCarDTO.getLoadDateTime());
|
|
|
+ waybillCarDTO.setEndTime(sendCarDTO.getUnloadDateTime());
|
|
|
+ waybillCarDTO.setFleetId(carListDTO.getFleetId());
|
|
|
+ waybillCarDTO.setFleetName(carListDTO.getFleetName());
|
|
|
+ waybillCarDTO.setGoodsName(sendCarDTO.getGoodsName());
|
|
|
+ waybillCarDTO.setGoodsId(StringUtils.isBlank(sendCarDTO.getGoodsId()) ? null : Integer.valueOf(sendCarDTO.getGoodsId()));
|
|
|
+ waybillCarDTO.setEntrustAmount(waybillOrder.getEntrustAmount());
|
|
|
+ waybillCarDTO.setLoadingCity(sendCarDTO.getLoadCity());
|
|
|
+ waybillCarDTO.setLoadTime(sendCarDTO.getLoadDateTime());
|
|
|
+ waybillCarDTO.setLoadingAddress(sendCarDTO.getLoadAddress());
|
|
|
+ waybillCarDTO.setUnloadingCity(sendCarDTO.getUnloadCity());
|
|
|
+ waybillCarDTO.setUnloadTime(sendCarDTO.getUnloadDateTime());
|
|
|
+ waybillCarDTO.setUnloadingAddress(sendCarDTO.getUnloadAddress());
|
|
|
+ waybillCarDTO.setDelFlag(Integer.valueOf(NumberConstant.ZERO));
|
|
|
+ list.add(waybillCarDTO);
|
|
|
}
|
|
|
}
|