|
@@ -28,13 +28,10 @@ import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
|
import com.sckw.product.api.model.KwpGoods;
|
|
import com.sckw.product.api.model.KwpGoods;
|
|
|
import com.sckw.stream.model.SckwBusSum;
|
|
import com.sckw.stream.model.SckwBusSum;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
-import com.sckw.transport.common.enums.CarWaybillEnum;
|
|
|
|
|
import com.sckw.transport.common.enums.LogisticsOrderEnum;
|
|
import com.sckw.transport.common.enums.LogisticsOrderEnum;
|
|
|
import com.sckw.transport.dao.*;
|
|
import com.sckw.transport.dao.*;
|
|
|
import com.sckw.transport.model.*;
|
|
import com.sckw.transport.model.*;
|
|
|
-import com.sckw.transport.model.dto.CarListDTO;
|
|
|
|
|
import com.sckw.transport.model.dto.OrderTakingDTO;
|
|
import com.sckw.transport.model.dto.OrderTakingDTO;
|
|
|
-import com.sckw.transport.model.dto.SendCarDTO;
|
|
|
|
|
import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
|
|
import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
|
|
|
import com.sckw.transport.model.param.LogisticsConsignmentParam;
|
|
import com.sckw.transport.model.param.LogisticsConsignmentParam;
|
|
|
import com.sckw.transport.model.vo.AcceptCarriageOrderVO;
|
|
import com.sckw.transport.model.vo.AcceptCarriageOrderVO;
|
|
@@ -50,7 +47,6 @@ import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
import org.springframework.util.ObjectUtils;
|
|
|
-
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
@@ -553,236 +549,6 @@ public class AcceptCarriageOrderService {
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * 派车
|
|
|
|
|
- *
|
|
|
|
|
- * @param sendCarDTO
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
- public HttpResult commitSendCar(SendCarDTO sendCarDTO) {
|
|
|
|
|
- log.info("承运订单提交派车信息详情:{}", JSONObject.toJSONString(sendCarDTO));
|
|
|
|
|
- HttpResult result = new HttpResult();
|
|
|
|
|
- KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
|
|
|
- .eq(StringUtils.isNotBlank(sendCarDTO.getLOrderId()), KwtLogisticsOrder::getId, sendCarDTO.getLOrderId()));
|
|
|
|
|
- if (logisticsOrder == null) {
|
|
|
|
|
- result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
|
|
|
|
|
- result.setMsg("单据不存在!");
|
|
|
|
|
- return result;
|
|
|
|
|
- }
|
|
|
|
|
- List<SckwWaybillOrder> list = new ArrayList<>();
|
|
|
|
|
- if (String.valueOf(NumberConstant.ONE).equals(sendCarDTO.getType())) {
|
|
|
|
|
- for (CarListDTO car : sendCarDTO.getCarList()) {
|
|
|
|
|
- if (ObjectUtils.isEmpty(car.getCount())) {
|
|
|
|
|
- throw new RuntimeException("趟次派车时,趟次次数不能为空");
|
|
|
|
|
- }
|
|
|
|
|
- for (int i = 0; i < car.getCount(); i++) {
|
|
|
|
|
- Long wOrderId = new IdWorker(NumberConstant.ONE).nextId();
|
|
|
|
|
- String wOrderNo = com.sckw.transport.utils.StringUtils.getWaybillNoUtil() + i;
|
|
|
|
|
- KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
|
|
|
|
|
- String type = String.valueOf(NumberConstant.ZERO);
|
|
|
|
|
- waybillOrder.setType(type);
|
|
|
|
|
- waybillOrder.setEntrustAmount(new BigDecimal(car.getLoadAmount()));
|
|
|
|
|
- insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO, list, type);
|
|
|
|
|
- //insertWaybillOrderTicket(id,wOrderNo,logisticsOrder,sendCarDTO);
|
|
|
|
|
-// insertWaybillOrderTrack(wOrderId);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- } else if (String.valueOf(NumberConstant.TWO).equals(sendCarDTO.getType())) {
|
|
|
|
|
- for (CarListDTO car : sendCarDTO.getCarList()) {
|
|
|
|
|
- if (ObjectUtils.isEmpty(sendCarDTO.getWaitingVolume())) {
|
|
|
|
|
- throw new RuntimeException("循环派车时,剩余可运量不能为空");
|
|
|
|
|
- }
|
|
|
|
|
- for (int i = 0; i < car.getCount(); i++) {
|
|
|
|
|
- KwtLogisticsOrderCirculate circulate = new KwtLogisticsOrderCirculate();
|
|
|
|
|
- circulate.setId(new IdWorker(NumberConstant.ONE).nextId());
|
|
|
|
|
- circulate.setEntId(logisticsOrder.getEntId());
|
|
|
|
|
- circulate.setLOrderId(Long.parseLong(sendCarDTO.getLOrderId()));
|
|
|
|
|
- circulate.setTruckNo(car.getTruckNo());
|
|
|
|
|
- circulate.setDriverId(Long.parseLong(car.getDriverId()));
|
|
|
|
|
- circulate.setActualAmount(new BigDecimal(car.getLoadAmount()));
|
|
|
|
|
- circulate.setEntrustAmount(new BigDecimal(sendCarDTO.getWaitingVolume()));
|
|
|
|
|
- circulate.setEntrustDate(new Date());
|
|
|
|
|
- circulate.setCreateBy(LoginUserHolder.getUserId());
|
|
|
|
|
- circulate.setCreateTime(new Date());
|
|
|
|
|
- circulate.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
|
|
- circulate.setUpdateTime(new Date());
|
|
|
|
|
- circulate.setType(String.valueOf(NumberConstant.ONE));
|
|
|
|
|
- logisticsOrderCirculateMapper.insert(circulate);
|
|
|
|
|
- sendMongoDbData(list, logisticsOrder, car, sendCarDTO, String.valueOf(NumberConstant.ONE));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
|
|
|
|
|
- result.setMsg("派车类型错误!");
|
|
|
|
|
- return result;
|
|
|
|
|
- }
|
|
|
|
|
- if (CollectionUtils.isNotEmpty(list)) {
|
|
|
|
|
- for (SckwWaybillOrder sckwWaybillOrder : list) {
|
|
|
|
|
- //rabbitMq业务汇总数据发送/消费对象
|
|
|
|
|
- SckwBusSum busSum = new SckwBusSum();
|
|
|
|
|
- //业务汇总类型
|
|
|
|
|
- busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
|
|
|
|
|
- //操作对象(1新增/2修改)
|
|
|
|
|
- busSum.setMethod(1);
|
|
|
|
|
- //业务汇总数据对象
|
|
|
|
|
- busSum.setObject(sckwWaybillOrder);
|
|
|
|
|
- streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- return result;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private void sendMongoDbData(List<SckwWaybillOrder> list, KwtLogisticsOrder logisticsOrder
|
|
|
|
|
- , CarListDTO carListDTO, SendCarDTO sendCarDTO, String type) {
|
|
|
|
|
- //放入mongodb实体
|
|
|
|
|
- SckwWaybillOrder waybillCarDTO = new SckwWaybillOrder();
|
|
|
|
|
- waybillCarDTO.set_id(new IdWorker(NumberConstant.ONE).nextId());
|
|
|
|
|
- waybillCarDTO.setStatus(CarWaybillEnum.PENDING_ORDER.getCode().toString());
|
|
|
|
|
- waybillCarDTO.setType(type);
|
|
|
|
|
- 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());
|
|
|
|
|
- //todo 司机dubbo查询
|
|
|
|
|
-// 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.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.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);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 保存车辆运单状态信息
|
|
|
|
|
- *
|
|
|
|
|
- * @param wOrderId
|
|
|
|
|
- */
|
|
|
|
|
- private void insertWaybillOrderTrack(Long wOrderId) {
|
|
|
|
|
- KwtWaybillOrderTrack track = new KwtWaybillOrderTrack();
|
|
|
|
|
- track.setId(new IdWorker(NumberConstant.ONE).nextId());
|
|
|
|
|
- track.setWOrderId(wOrderId);
|
|
|
|
|
- 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);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 保存车辆装卸单信息
|
|
|
|
|
- *
|
|
|
|
|
- * @param id
|
|
|
|
|
- * @param wOrderNo
|
|
|
|
|
- * @param logisticsOrder
|
|
|
|
|
- * @param carListDTO
|
|
|
|
|
- */
|
|
|
|
|
- private void insertWaybillOrderTicket(Long id, String wOrderNo, KwtLogisticsOrder logisticsOrder, CarListDTO carListDTO) {
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 派车主体保存
|
|
|
|
|
- *
|
|
|
|
|
- * @param wOrderNo
|
|
|
|
|
- * @param logisticsOrder
|
|
|
|
|
- * @param carListDTO
|
|
|
|
|
- * @param sendCarDTO
|
|
|
|
|
- */
|
|
|
|
|
- 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);
|
|
|
|
|
- waybillOrder.setStartTime(sendCarDTO.getLoadDateTime());
|
|
|
|
|
- waybillOrder.setEndTime(sendCarDTO.getUnloadDateTime());
|
|
|
|
|
- waybillOrder.setDriverId(Long.parseLong(carListDTO.getDriverId()));
|
|
|
|
|
- waybillOrder.setTruckNo(carListDTO.getTruckNo());
|
|
|
|
|
- waybillOrder.setRemark(sendCarDTO.getRemark());
|
|
|
|
|
- waybillOrder.setStatus(NumberConstant.ZERO);
|
|
|
|
|
- waybillOrder.setCreateBy(LoginUserHolder.getUserId());
|
|
|
|
|
- Date createTime = new Date();
|
|
|
|
|
- waybillOrder.setCreateTime(createTime);
|
|
|
|
|
- waybillOrder.setUpdateTime(new Date());
|
|
|
|
|
- waybillOrder.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
|
|
- waybillOrder.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
|
|
|
|
|
- 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());
|
|
|
|
|
- //todo 司机dubbo查询
|
|
|
|
|
-// 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);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* 承运订单-获取运单详情
|
|
* 承运订单-获取运单详情
|
|
|
* @param wOrderId
|
|
* @param wOrderId
|
|
@@ -792,7 +558,7 @@ public class AcceptCarriageOrderService {
|
|
|
SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(Long.parseLong(wOrderId), SckwWaybillOrder.class);
|
|
SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(Long.parseLong(wOrderId), SckwWaybillOrder.class);
|
|
|
WaybillDetailVO vo = new WaybillDetailVO();
|
|
WaybillDetailVO vo = new WaybillDetailVO();
|
|
|
if (!ObjectUtils.isEmpty(sckwWaybillOrder)) {
|
|
if (!ObjectUtils.isEmpty(sckwWaybillOrder)) {
|
|
|
- vo.setFleetName(sckwWaybillOrder.getFleetName());
|
|
|
|
|
|
|
+ //vo.setFleetName(sckwWaybillOrder.getFleetName());
|
|
|
vo.setTruckNo(sckwWaybillOrder.getTruckNo());
|
|
vo.setTruckNo(sckwWaybillOrder.getTruckNo());
|
|
|
vo.setDriverName(sckwWaybillOrder.getDriverName());
|
|
vo.setDriverName(sckwWaybillOrder.getDriverName());
|
|
|
vo.setSendCarWeigh(sckwWaybillOrder.getEntrustAmount());
|
|
vo.setSendCarWeigh(sckwWaybillOrder.getEntrustAmount());
|