|
|
@@ -453,9 +453,9 @@ public class KwtWaybillOrderService {
|
|
|
public HttpResult setWaybillOrder(List<SendCarDto1> params, KwtLogisticsOrder logisticsOrder) {
|
|
|
/**获取基础信息**/
|
|
|
//装货地址
|
|
|
- KwtWaybillOrderAddress loadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_ONE);
|
|
|
+ KwtWaybillOrderAddress loadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_ONE, Global.NUMERICAL_ONE);
|
|
|
//卸货地址
|
|
|
- KwtWaybillOrderAddress unloadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_TWO);
|
|
|
+ KwtWaybillOrderAddress unloadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_TWO, Global.NUMERICAL_ONE);
|
|
|
//托运企业
|
|
|
KwtLogisticsOrderUnit checkEnt = logisticsOrderUnitDao.findByUnit(logisticsOrder.getId(), Global.NUMERICAL_ONE);
|
|
|
//承运企业
|
|
|
@@ -561,19 +561,26 @@ public class KwtWaybillOrderService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @param lOrderId 物流订单ID
|
|
|
+ * @param orderId 订单ID
|
|
|
* @param addressType 地址类型(1装货地址、2卸货地址)
|
|
|
- * @desc 获取物流订单地址信息
|
|
|
+ * @param type 订单类型(1物流订单、2车辆运单)
|
|
|
+ * @desc 获取订单地址信息
|
|
|
* @author zk
|
|
|
* @date 2023/7/20
|
|
|
**/
|
|
|
- public KwtWaybillOrderAddress getAddress(Long lOrderId, int addressType) {
|
|
|
+ public KwtWaybillOrderAddress getAddress(Long orderId, int addressType, int type) {
|
|
|
/**查询数据**/
|
|
|
- KwtWaybillOrderAddress orderAddress = waybillOrderAddressDao.findByAddress(lOrderId, addressType);
|
|
|
+ KwtWaybillOrderAddress address = new KwtWaybillOrderAddress();
|
|
|
+ if (type == Global.NUMERICAL_ONE) {
|
|
|
+ KwtLogisticsOrderAddress orderAddress = logisticsOrderAddressDao.findByAddress(orderId, addressType);
|
|
|
+ BeanUtils.copyProperties(orderAddress, address);
|
|
|
+ }
|
|
|
+ if (type == Global.NUMERICAL_TWO) {
|
|
|
+ KwtWaybillOrderAddress orderAddress = waybillOrderAddressDao.findByAddress(orderId, addressType);
|
|
|
+ BeanUtils.copyProperties(orderAddress, address);
|
|
|
+ }
|
|
|
|
|
|
/**组装数据**/
|
|
|
- KwtWaybillOrderAddress address = new KwtWaybillOrderAddress();
|
|
|
- BeanUtils.copyProperties(orderAddress, address);
|
|
|
address.setId(null);
|
|
|
address.setCreateBy(null);
|
|
|
address.setCreateTime(null);
|
|
|
@@ -1057,9 +1064,9 @@ public class KwtWaybillOrderService {
|
|
|
|
|
|
/**2获取基础信息**/
|
|
|
//装货地址
|
|
|
- KwtWaybillOrderAddress loadAddress = this.getAddress(circulate.getLOrderId(), Global.NUMERICAL_ONE);
|
|
|
+ KwtWaybillOrderAddress loadAddress = this.getAddress(circulate.getLOrderId(), Global.NUMERICAL_ONE, Global.NUMERICAL_ONE);
|
|
|
//卸货地址
|
|
|
- KwtWaybillOrderAddress unloadAddress = this.getAddress(circulate.getLOrderId(), Global.NUMERICAL_TWO);
|
|
|
+ KwtWaybillOrderAddress unloadAddress = this.getAddress(circulate.getLOrderId(), Global.NUMERICAL_TWO, Global.NUMERICAL_ONE);
|
|
|
//KwtWaybillOrder数据组装
|
|
|
KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
|
|
|
waybillOrder.setEntId(LoginUserHolder.getEntId());
|
|
|
@@ -1613,6 +1620,8 @@ public class KwtWaybillOrderService {
|
|
|
waybillOrder.setUpdateBy(circulate.getUpdateBy());
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);
|
|
|
}
|
|
|
|
|
|
/**1-6更新贸易订单总量**/
|
|
|
@@ -1769,9 +1778,9 @@ public class KwtWaybillOrderService {
|
|
|
//卸货榜单
|
|
|
KwtWaybillOrderTicket unloadTicket = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, Global.NUMERICAL_TWO);
|
|
|
//装货地址
|
|
|
- KwtWaybillOrderAddress loadAddress = this.getAddress(waybillOrder.getId(), Global.NUMERICAL_ONE);
|
|
|
+ KwtWaybillOrderAddress loadAddress = this.getAddress(waybillOrder.getId(), Global.NUMERICAL_ONE, Global.NUMERICAL_TWO);
|
|
|
//卸货地址
|
|
|
- KwtWaybillOrderAddress unloadAddress = this.getAddress(waybillOrder.getId(), Global.NUMERICAL_TWO);
|
|
|
+ KwtWaybillOrderAddress unloadAddress = this.getAddress(waybillOrder.getId(), Global.NUMERICAL_TWO, Global.NUMERICAL_TWO);
|
|
|
//商品信息
|
|
|
KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(waybillOrder.getLOrderId());
|
|
|
//用户数据集
|
|
|
@@ -1851,13 +1860,16 @@ public class KwtWaybillOrderService {
|
|
|
editTruck(waybillOrder.getTruckId());
|
|
|
|
|
|
/**5更新承运订单信息**/
|
|
|
+ //更新卸货量/卸货时间/亏吨/亏吨扣款
|
|
|
Map queryParams = new HashMap();
|
|
|
queryParams.put("lOrderId", waybillOrder.getLOrderId());
|
|
|
queryParams.put("passStatus", Global.NUMERICAL_ONE);
|
|
|
WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
|
|
|
|
|
|
- //更新卸货量/卸货时间/亏吨/亏吨扣款
|
|
|
+ //委派未运量=承运委派量-装货量
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
|
|
|
+ BigDecimal residue = waybillOrder.getEntrustAmount().subtract(waybillOrder.getLoadAmount());
|
|
|
+ logisticsOrder.setEntrustAmount(logisticsOrder.getEntrustAmount().subtract(residue));
|
|
|
logisticsOrder.setLoadAmount(waybillCount.getLoadAmount());
|
|
|
logisticsOrder.setLoadTime(waybillCount.getLoadTime());
|
|
|
logisticsOrder.setUnloadAmount(waybillCount.getUnloadAmount());
|
|
|
@@ -1894,6 +1906,116 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.ok("车辆运单审核完成!");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param params {}
|
|
|
+ * @desc 单证审核(编辑单证)
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/7/26
|
|
|
+ **/
|
|
|
+ public HttpResult approvalEditTicket(WaybillOrderTicketApprovalDto params) {
|
|
|
+ /**1数据校验**/
|
|
|
+ KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
+ if (waybillOrder == null) {
|
|
|
+ return HttpResult.error("车辆运单不存在!");
|
|
|
+ }
|
|
|
+ //已卸货/审批不通过车辆运单才能审核
|
|
|
+ if (waybillOrder.getStatus() != CarWaybillEnum.COMPLETION_UNLOADING.getCode()
|
|
|
+ && waybillOrder.getStatus() != CarWaybillEnum.APPROVAL_NO_PASS.getCode()) {
|
|
|
+ return HttpResult.error("车辆运单当前状态已不能审核!");
|
|
|
+ }
|
|
|
+ //已卸货/审批不通过车辆运单只能审批通过或审批不通过
|
|
|
+ if (params.getStatus() != Global.NO && params.getStatus() != Global.YES) {
|
|
|
+ return HttpResult.error("车辆运单当前状态只能审批通过或审批不通过!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**2更新车辆运单**/
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
|
|
|
+ int status = params.getStatus() == Global.NO ? CarWaybillEnum.APPROVAL_PASS.getCode() : CarWaybillEnum.APPROVAL_NO_PASS.getCode();
|
|
|
+ waybillOrder.setLoadAmount(params.getLoadAmount());
|
|
|
+ waybillOrder.setUnloadAmount(params.getUnloadAmount());
|
|
|
+ waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
|
|
|
+ BigDecimal deficitPrice = deficitPrice(waybillOrder.getLoadAmount(), waybillOrder.getDeficitAmount(),
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
+ waybillOrder.setDeficitPrice(deficitPrice);
|
|
|
+ waybillOrder.setStatus(status);
|
|
|
+ waybillOrderDao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /**3更新榜单信息**/
|
|
|
+ KwtWaybillOrderTicket loadTicket = waybillOrderTicketDao.findWaybillOrderTicket(params.getWOrderId(), Global.NUMERICAL_ONE);
|
|
|
+ loadTicket.setAmount(params.getLoadAmount());
|
|
|
+ loadTicket.setUrls(params.getLoadUrls());
|
|
|
+ loadTicket.setOperateTime(params.getLoadOperateTime());
|
|
|
+ waybillOrderTicketDao.updateById(loadTicket);
|
|
|
+ KwtWaybillOrderTicket unloadTicket = waybillOrderTicketDao.findWaybillOrderTicket(params.getWOrderId(), Global.NUMERICAL_TWO);
|
|
|
+ unloadTicket.setAmount(params.getUnloadAmount());
|
|
|
+ unloadTicket.setUrls(params.getUnloadUrls());
|
|
|
+ unloadTicket.setOperateTime(params.getUnloadOperateTime());
|
|
|
+ waybillOrderTicketDao.updateById(unloadTicket);
|
|
|
+
|
|
|
+ /**4新增运单状态记录**/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getUpdateTime(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+
|
|
|
+ if (waybillOrder.getStatus() == CarWaybillEnum.APPROVAL_PASS.getCode()) {
|
|
|
+ /**5跟新司机/车辆数据**/
|
|
|
+ //更新司机信息
|
|
|
+ editDriver(waybillOrder.getDriverId());
|
|
|
+ //更新车辆信息
|
|
|
+ editTruck(waybillOrder.getTruckId());
|
|
|
+
|
|
|
+ /**6更新承运订单信息**/
|
|
|
+ //更新卸货量/卸货时间/亏吨/亏吨扣款
|
|
|
+ Map queryParams = new HashMap();
|
|
|
+ queryParams.put("lOrderId", waybillOrder.getLOrderId());
|
|
|
+ queryParams.put("passStatus", Global.NUMERICAL_ONE);
|
|
|
+ WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
|
|
|
+
|
|
|
+ //委派未运量=承运委派量-装货量
|
|
|
+ BigDecimal residue = waybillOrder.getEntrustAmount().subtract(waybillOrder.getLoadAmount());
|
|
|
+ logisticsOrder.setEntrustAmount(logisticsOrder.getEntrustAmount().subtract(residue));
|
|
|
+ logisticsOrder.setLoadAmount(waybillCount.getLoadAmount());
|
|
|
+ logisticsOrder.setLoadTime(waybillCount.getLoadTime());
|
|
|
+ logisticsOrder.setUnloadAmount(waybillCount.getUnloadAmount());
|
|
|
+ logisticsOrder.setUnloadTime(waybillCount.getUnloadTime());
|
|
|
+ logisticsOrder.setDeficitAmount(waybillCount.getDeficitAmount());
|
|
|
+ deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
+ logisticsOrder.setDeficitPrice(deficitPrice);
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);
|
|
|
+
|
|
|
+ /**7Mongodb数据更新**/
|
|
|
+ //2承运订单
|
|
|
+ SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
+ lOrder.setLoadAmount(logisticsOrder.getLoadAmount());
|
|
|
+ lOrder.setLoadTime(logisticsOrder.getLoadTime());
|
|
|
+ lOrder.setUnloadAmount(logisticsOrder.getUnloadAmount());
|
|
|
+ lOrder.setUnloadTime(logisticsOrder.getUnloadTime());
|
|
|
+ lOrder.setDeficitAmount(logisticsOrder.getDeficitAmount());
|
|
|
+ lOrder.setDeficitPrice(logisticsOrder.getDeficitPrice());
|
|
|
+ editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
+
|
|
|
+ /**8校验当前承运订单是否运输完成(修改状态+统计量)**/
|
|
|
+ checkLogisticsByStatus(waybillOrder.getLOrderId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**9Mongodb数据更新**/
|
|
|
+ //1车辆运单
|
|
|
+ SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
+ wOrder.set_id(waybillOrder.getId());
|
|
|
+ wOrder.setLoadAmount(waybillOrder.getLoadAmount());
|
|
|
+ wOrder.setLoadTime(params.getLoadOperateTime());
|
|
|
+ wOrder.setLoadUrls(params.getLoadUrls());
|
|
|
+ wOrder.setUnloadAmount(waybillOrder.getUnloadAmount());
|
|
|
+ wOrder.setUnloadTime(params.getUnloadOperateTime());
|
|
|
+ wOrder.setUnloadUrls(params.getUnloadUrls());
|
|
|
+ wOrder.setDeficitAmount(waybillOrder.getDeficitAmount());
|
|
|
+ wOrder.setDeficitPrice(waybillOrder.getDeficitPrice());
|
|
|
+ editSckwWaybillOrder(wOrder, waybillOrder, Global.NUMERICAL_TWO);
|
|
|
+
|
|
|
+ /**8发送消息**/
|
|
|
+
|
|
|
+ return HttpResult.ok("车辆运单审核完成!");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param driverId 司机档案ID
|
|
|
* @desc 更新司机信息
|