|
|
@@ -19,12 +19,14 @@ import com.sckw.transport.model.*;
|
|
|
import com.sckw.transport.model.dto.OperateWaybillDto;
|
|
|
import com.sckw.transport.model.dto.OperateSendCarDto;
|
|
|
import com.sckw.transport.model.dto.SendCarDto1;
|
|
|
+import com.sckw.transport.model.dto.WaybillOrderTicketDto;
|
|
|
import jakarta.annotation.Resource;
|
|
|
+import jakarta.validation.Valid;
|
|
|
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.web.bind.annotation.RequestBody;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
@@ -50,6 +52,8 @@ public class KwtWaybillOrderService {
|
|
|
@Autowired
|
|
|
KwtWaybillOrderTrackMapper waybillOrderTrackDao;
|
|
|
@Autowired
|
|
|
+ KwtWaybillOrderTicketMapper waybillOrderTicketDao;
|
|
|
+ @Autowired
|
|
|
KwtLogisticsOrderUnitMapper logisticsOrderUnitDao;
|
|
|
@Autowired
|
|
|
KwtLogisticsOrderGoodsMapper logisticsOrderGoodsDao;
|
|
|
@@ -818,18 +822,11 @@ public class KwtWaybillOrderService {
|
|
|
/**2Mongodb数据更新**/
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(circulate.getId());
|
|
|
- wOrder.setStatus(CarWaybillEnum.REJECT_ORDER.getCode());
|
|
|
- wOrder.setUpdateTime(circulate.getUpdateTime());
|
|
|
- wOrder.setUpdateBy(circulate.getUpdateBy());
|
|
|
- //rabbitMq业务汇总数据发送/消费对象
|
|
|
- SckwBusSum busSum = new SckwBusSum();
|
|
|
- //业务汇总类型
|
|
|
- busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
|
|
|
- //操作对象(1新增/2修改/3替换数据)
|
|
|
- busSum.setMethod(2);
|
|
|
- //业务汇总数据对象
|
|
|
- busSum.setObject(wOrder);
|
|
|
- streamBridge.send("sckw-busSum", busSum);
|
|
|
+ KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.REJECT_ORDER.getCode());
|
|
|
+ waybillOrder.setUpdateTime(circulate.getUpdateTime());
|
|
|
+ waybillOrder.setUpdateBy(circulate.getUpdateBy());
|
|
|
+ editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
/**3发送消息**/
|
|
|
}
|
|
|
@@ -922,5 +919,205 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.ok("拒绝出车成功!");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param params {}
|
|
|
+ * @desc 到达装货地点
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/7/26
|
|
|
+ **/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public HttpResult arriveLoadLocation(OperateWaybillDto params){
|
|
|
+ /**数据校验**/
|
|
|
+ KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
+ if (waybillOrder == null) {
|
|
|
+ return HttpResult.error("车辆运单不存在!");
|
|
|
+ }
|
|
|
+ //已出车车辆运单才能到达装货地点
|
|
|
+ if (waybillOrder.getStatus() != CarWaybillEnum.EXIT_COMPLETED.getCode()) {
|
|
|
+ return HttpResult.error("车辆运单当前状态已不能到达装货地点!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**业务处理**/
|
|
|
+ /**1更新车辆运单**/
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.WAIT_LOADING.getCode());
|
|
|
+ waybillOrderDao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /**2新增运单状态记录**/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+
|
|
|
+ /**3Mongodb数据更新**/
|
|
|
+ //1车辆运单
|
|
|
+ SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
+ wOrder.set_id(waybillOrder.getId());
|
|
|
+ editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
+
|
|
|
+ /**4发送消息**/
|
|
|
+
|
|
|
+ return HttpResult.ok("到达装货地点成功!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param params {}
|
|
|
+ * @desc 装货
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/7/26
|
|
|
+ **/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public HttpResult loading(WaybillOrderTicketDto params){
|
|
|
+ /**数据校验**/
|
|
|
+ KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
+ if (waybillOrder == null) {
|
|
|
+ return HttpResult.error("车辆运单不存在!");
|
|
|
+ }
|
|
|
+ //到达装货地车辆运单才能装货
|
|
|
+ if (waybillOrder.getStatus() != CarWaybillEnum.WAIT_LOADING.getCode()) {
|
|
|
+ return HttpResult.error("车辆运单当前状态已不能装货!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**业务处理**/
|
|
|
+ /**1更新车辆运单**/
|
|
|
+ waybillOrder.setLoadAmount(params.getAmount());
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.COMPLETION_LOADING.getCode());
|
|
|
+ waybillOrderDao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /**2新增运单状态记录**/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+
|
|
|
+ /**3新增装卸货榜单信息**/
|
|
|
+ KwtWaybillOrderTicket ticket = new KwtWaybillOrderTicket();
|
|
|
+ ticket.setWOrderId(waybillOrder.getId());
|
|
|
+ ticket.setType(Global.NUMERICAL_ONE);
|
|
|
+ ticket.setAmount(waybillOrder.getLoadAmount());
|
|
|
+ ticket.setUrls(params.getUrls());
|
|
|
+ waybillOrderTicketDao.insert(ticket);
|
|
|
+
|
|
|
+ /**4更新承运订单entrustAmount**/
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
|
|
|
+ //承运订单已委派量=承运订单原委派量+当前车辆运单委派量
|
|
|
+ BigDecimal loadAmount = logisticsOrder.getLoadAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getLoadAmount();
|
|
|
+ logisticsOrder.setLoadAmount(loadAmount.add(waybillOrder.getLoadAmount()));
|
|
|
+ logisticsOrder.setLoadTime(waybillOrder.getUpdateTime());
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);
|
|
|
+
|
|
|
+ /**5Mongodb数据更新**/
|
|
|
+ //1车辆运单
|
|
|
+ SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
+ wOrder.set_id(waybillOrder.getId());
|
|
|
+ wOrder.setLoadAmount(waybillOrder.getLoadAmount());
|
|
|
+ wOrder.setLoadUrls(params.getUrls());
|
|
|
+ wOrder.setLoadTime(waybillOrder.getUpdateTime());
|
|
|
+ editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
+
|
|
|
+ //2承运订单
|
|
|
+ SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
+ lOrder.setLoadTime(logisticsOrder.getLoadTime());
|
|
|
+ lOrder.setLoadAmount(logisticsOrder.getLoadAmount());
|
|
|
+ editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
+
|
|
|
+ /**6发送消息**/
|
|
|
+
|
|
|
+ return HttpResult.ok("装货成功!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param params {}
|
|
|
+ * @desc 到达卸货地点
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/7/26
|
|
|
+ **/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public HttpResult arriveUnloadLocation(OperateWaybillDto params){
|
|
|
+ /**数据校验**/
|
|
|
+ KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
+ if (waybillOrder == null) {
|
|
|
+ return HttpResult.error("车辆运单不存在!");
|
|
|
+ }
|
|
|
+ //已装货车辆运单才能到达卸货地点
|
|
|
+ if (waybillOrder.getStatus() != CarWaybillEnum.COMPLETION_LOADING.getCode()) {
|
|
|
+ return HttpResult.error("车辆运单当前状态已不能到达卸货地点!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**业务处理**/
|
|
|
+ /**1更新车辆运单**/
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.WAIT_UNLOADING.getCode());
|
|
|
+ waybillOrderDao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /**2新增运单状态记录**/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+
|
|
|
+ /**3Mongodb数据更新**/
|
|
|
+ //1车辆运单
|
|
|
+ SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
+ wOrder.set_id(waybillOrder.getId());
|
|
|
+ editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
+
|
|
|
+ /**4发送消息**/
|
|
|
+
|
|
|
+ return HttpResult.ok("到达卸货地点成功!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param params {}
|
|
|
+ * @desc 卸货
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/7/26
|
|
|
+ **/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public HttpResult unloading(@RequestBody @Valid WaybillOrderTicketDto params){
|
|
|
+ /**数据校验**/
|
|
|
+ KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
+ if (waybillOrder == null) {
|
|
|
+ return HttpResult.error("车辆运单不存在!");
|
|
|
+ }
|
|
|
+ //到达卸货地车辆运单才能卸货
|
|
|
+ if (waybillOrder.getStatus() != CarWaybillEnum.WAIT_UNLOADING.getCode()) {
|
|
|
+ return HttpResult.error("车辆运单当前状态已不能装货!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**业务处理**/
|
|
|
+ /**1更新车辆运单**/
|
|
|
+ waybillOrder.setUnloadAmount(params.getAmount());
|
|
|
+ waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
|
|
|
+ waybillOrderDao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /**2新增运单状态记录**/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+
|
|
|
+ /**3新增装卸货榜单信息**/
|
|
|
+ KwtWaybillOrderTicket ticket = new KwtWaybillOrderTicket();
|
|
|
+ ticket.setWOrderId(waybillOrder.getId());
|
|
|
+ ticket.setType(Global.NUMERICAL_TWO);
|
|
|
+ ticket.setAmount(waybillOrder.getUnloadAmount());
|
|
|
+ ticket.setUrls(params.getUrls());
|
|
|
+ waybillOrderTicketDao.insert(ticket);
|
|
|
+
|
|
|
+ /**4更新承运订单entrustAmount**/
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
|
|
|
+ //承运订单已委派量=承运订单原委派量+当前车辆运单委派量
|
|
|
+ BigDecimal loadAmount = logisticsOrder.getLoadAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getLoadAmount();
|
|
|
+ logisticsOrder.setLoadAmount(loadAmount.add(waybillOrder.getLoadAmount()));
|
|
|
+ logisticsOrder.setLoadTime(waybillOrder.getUpdateTime());
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);
|
|
|
+
|
|
|
+ /**5Mongodb数据更新**/
|
|
|
+ //1车辆运单
|
|
|
+ SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
+ wOrder.set_id(waybillOrder.getId());
|
|
|
+ wOrder.setLoadAmount(waybillOrder.getLoadAmount());
|
|
|
+ wOrder.setLoadUrls(params.getUrls());
|
|
|
+ wOrder.setLoadTime(waybillOrder.getUpdateTime());
|
|
|
+ editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
+
|
|
|
+ //2承运订单
|
|
|
+ SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
+ lOrder.setLoadTime(logisticsOrder.getLoadTime());
|
|
|
+ lOrder.setLoadAmount(logisticsOrder.getLoadAmount());
|
|
|
+ editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
+
|
|
|
+ /**6发送消息**/
|
|
|
+
|
|
|
+ return HttpResult.ok("装货成功!");
|
|
|
+ }
|
|
|
|
|
|
}
|