|
|
@@ -23,10 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* @author zk
|
|
|
@@ -473,26 +470,26 @@ public class KwtWaybillOrderService {
|
|
|
//int level = checkLogisticsLevel(logisticsOrder);
|
|
|
String pids = logisticsOrder.getPids();
|
|
|
if (StringUtils.isNotBlank(pids)) {
|
|
|
- String [] idArray = pids.split(",");
|
|
|
+ String [] idArray = pids.split(Global.COMMA);
|
|
|
for (String id : idArray) {
|
|
|
KwtLogisticsOrder order = logisticsOrderDao.selectById(id);
|
|
|
//承运订单-待派车
|
|
|
if (logisticsOrder.getStatus() == LogisticsOrderEnum.WAIT_DELIVERY.getCode()) {
|
|
|
//承运订单不存在分包:更新当前承运订单状态及委派量entrustAmount
|
|
|
- if (order.getId() == logisticsOrder.getId()) {
|
|
|
+ //if (order.getId() == logisticsOrder.getId()) {
|
|
|
//承运订单已委派量
|
|
|
BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
|
|
|
logisticsOrder.setEntrustAmount(entrustAmount.add(ranksAmount));
|
|
|
- }
|
|
|
+ //}
|
|
|
/**承运订单:待派车->运输中**/
|
|
|
logisticsOrder.setStatus(LogisticsOrderEnum.IN_TRANSIT.getCode());
|
|
|
- logisticsOrderDao.updateById(order);
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);
|
|
|
|
|
|
/**承运订单状态记录**/
|
|
|
KwtLogisticsOrderTrack orderTrack = new KwtLogisticsOrderTrack();
|
|
|
- orderTrack.setLOrderId(order.getId());
|
|
|
- orderTrack.setStatus(order.getStatus());
|
|
|
- orderTrack.setRemark(LogisticsOrderEnum.getName(order.getStatus()));
|
|
|
+ orderTrack.setLOrderId(logisticsOrder.getId());
|
|
|
+ orderTrack.setStatus(logisticsOrder.getStatus());
|
|
|
+ orderTrack.setRemark(LogisticsOrderEnum.getName(logisticsOrder.getStatus()));
|
|
|
logisticsOrderTrackDao.insert(orderTrack);
|
|
|
|
|
|
/**Mongodb数据更新**/
|
|
|
@@ -992,6 +989,7 @@ public class KwtWaybillOrderService {
|
|
|
ticket.setType(Global.NUMERICAL_ONE);
|
|
|
ticket.setAmount(waybillOrder.getLoadAmount());
|
|
|
ticket.setUrls(params.getUrls());
|
|
|
+ ticket.setTime(params.getTime());
|
|
|
waybillOrderTicketDao.insert(ticket);
|
|
|
|
|
|
/**4更新承运订单entrustAmount**/
|
|
|
@@ -1096,6 +1094,7 @@ public class KwtWaybillOrderService {
|
|
|
ticket.setType(Global.NUMERICAL_TWO);
|
|
|
ticket.setAmount(waybillOrder.getUnloadAmount());
|
|
|
ticket.setUrls(params.getUrls());
|
|
|
+ ticket.setTime(params.getTime());
|
|
|
waybillOrderTicketDao.insert(ticket);
|
|
|
|
|
|
/**4更新承运订单entrustAmount**/
|
|
|
@@ -1134,7 +1133,7 @@ public class KwtWaybillOrderService {
|
|
|
|
|
|
/**6发送消息**/
|
|
|
|
|
|
- return HttpResult.ok("装货成功!");
|
|
|
+ return HttpResult.ok("卸货成功!");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1257,6 +1256,7 @@ public class KwtWaybillOrderService {
|
|
|
if (!LogisticsOrderEnum.transportCompleted(logisticsOrder.getStatus())
|
|
|
&& logisticsOrder.getAmount().subtract(subcontractAmount).compareTo(waybillCount.getLoadAmount()) <= 0
|
|
|
&& subcontractBool) {
|
|
|
+ //---------------------------------------------zk 2023-08-01 全量可运
|
|
|
/**1-2下级分包承运订单运输完成**/
|
|
|
logisticsOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
|
|
|
logisticsOrderDao.updateById(logisticsOrder);
|
|
|
@@ -1272,8 +1272,12 @@ public class KwtWaybillOrderService {
|
|
|
//车辆运单统计
|
|
|
/**1-4Mongodb数据更新**/
|
|
|
//车辆运单统计
|
|
|
- waybillCount = waybillOrderDao.findWaybillOrderCount( new HashMap(){{put("lOrderId", logisticsOrder.getId());
|
|
|
- put("unloadCountStatus", 1); put("upperlOrderId", logisticsOrder.getId()); }});
|
|
|
+ Map queryParams = new HashMap();
|
|
|
+ queryParams.put("lOrderId", logisticsOrder.getId());
|
|
|
+ queryParams.put("unloadCountStatus", 1);
|
|
|
+ queryParams.put("upperlOrderId", logisticsOrder.getId());
|
|
|
+ waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
|
|
|
+
|
|
|
//2承运订单
|
|
|
SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
lOrder.setLoadTime(waybillCount.getLoadTime());
|
|
|
@@ -1290,12 +1294,13 @@ public class KwtWaybillOrderService {
|
|
|
//获取所有上级物流订单ID(当前物流订单ID除外)
|
|
|
String pids = logisticsOrder.getPids();
|
|
|
if (StringUtils.isNotBlank(pids)) {
|
|
|
- List<Long> idArray = (List)Arrays.asList(pids);
|
|
|
- for (Long id : idArray) {
|
|
|
+ String [] idArray = pids.split(Global.COMMA);
|
|
|
+ for (String id : idArray) {
|
|
|
+ Long pid = Long.parseLong(id);
|
|
|
//当前物流订单ID除外
|
|
|
- if (id != lOrderId) {
|
|
|
+ if (!pid.equals(lOrderId)) {
|
|
|
/**校验当前承运订单是否运输完成**/
|
|
|
- checkLogisticsByStatusV1(id);
|
|
|
+ checkLogisticsByStatusV1(pid);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1308,7 +1313,7 @@ public class KwtWaybillOrderService {
|
|
|
* @date 2023/7/26
|
|
|
**/
|
|
|
public HttpResult editTicket(WaybillOrderTicketDto params) {
|
|
|
- /**校验**/
|
|
|
+ /**1校验**/
|
|
|
KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
if (waybillOrder == null) {
|
|
|
return HttpResult.error("车辆运单信息不存在!");
|
|
|
@@ -1318,17 +1323,35 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("车辆运单榜单信息不存在!");
|
|
|
}
|
|
|
|
|
|
- /**更新车辆运单信息**/
|
|
|
+ /**2更新车辆运单信息**/
|
|
|
waybillOrder.setLoadAmount(params.getType() == 1 ? params.getAmount() : waybillOrder.getLoadAmount());
|
|
|
waybillOrder.setUnloadAmount(params.getType() == 2 ? params.getAmount() : waybillOrder.getUnloadAmount());
|
|
|
waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**更新榜单信息**/
|
|
|
+ /**3更新榜单信息**/
|
|
|
BeanUtils.copyProperties(params, ticket);
|
|
|
waybillOrderTicketDao.updateById(ticket);
|
|
|
|
|
|
- /**更新承运订单装卸货量**/
|
|
|
+ /**4更新承运订单信息**/
|
|
|
+ Map queryParams = new HashMap();
|
|
|
+ queryParams.put("lOrderId", waybillOrder.getLOrderId());
|
|
|
+ queryParams.put("loadCountStatus", params.getType() == 1 ? 1 : null);
|
|
|
+ queryParams.put("unloadCountStatus", params.getType() == 2 ? 1 : null);
|
|
|
+ WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
|
|
|
+
|
|
|
+ //更新卸货量/卸货时间/亏吨/亏吨扣款
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
|
|
|
+ logisticsOrder.setLoadAmount(waybillCount.getLoadAmount());
|
|
|
+ logisticsOrder.setLoadTime(waybillCount.getLoadTime());
|
|
|
+ logisticsOrder.setUnloadAmount(waybillCount.getUnloadAmount());
|
|
|
+ logisticsOrder.setUnloadTime(waybillCount.getUnloadTime());
|
|
|
+ logisticsOrder.setDeficitAmount(waybillCount.getDeficitAmount());
|
|
|
+ BigDecimal deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
+ logisticsOrder.setDeficitPrice(deficitPrice);
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);
|
|
|
+
|
|
|
//有更新装卸货量才会更新物流订单量
|
|
|
if (waybillOrder.getLoadAmount().compareTo(params.getAmount()) != 0
|
|
|
|| waybillOrder.getUnloadAmount().compareTo(params.getAmount()) != 0) {
|
|
|
@@ -1336,6 +1359,28 @@ public class KwtWaybillOrderService {
|
|
|
checkLogisticsByStatusV1(waybillOrder.getLOrderId());
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**5Mongodb数据更新**/
|
|
|
+ //1车辆运单
|
|
|
+ SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
+ wOrder.set_id(waybillOrder.getId());
|
|
|
+ wOrder.setLoadAmount(waybillOrder.getLoadAmount());
|
|
|
+ wOrder.setLoadTime(params.getType() == 1 ? params.getTime() : null);
|
|
|
+ wOrder.setUnloadUrls(params.getType() == 1 ? params.getUrls() : null);
|
|
|
+ wOrder.setUnloadAmount(waybillOrder.getUnloadAmount());
|
|
|
+ wOrder.setUnloadTime(params.getType() == 2 ? params.getTime() : null);
|
|
|
+ wOrder.setLoadUrls(params.getType() == 2 ? params.getUrls() : null);
|
|
|
+ wOrder.setDeficitAmount(waybillOrder.getDeficitAmount());
|
|
|
+ editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
+
|
|
|
+ //2承运订单
|
|
|
+ SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
+ lOrder.setUnloadTime(logisticsOrder.getUnloadTime());
|
|
|
+ lOrder.setUnloadAmount(logisticsOrder.getUnloadAmount());
|
|
|
+ lOrder.setDeficitAmount(logisticsOrder.getDeficitAmount());
|
|
|
+ lOrder.setDeficitPrice(logisticsOrder.getDeficitPrice());
|
|
|
+ editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
+
|
|
|
return HttpResult.ok("修改单证成功!");
|
|
|
}
|
|
|
|