|
|
@@ -54,7 +54,7 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author zk
|
|
|
- * @desc TODO
|
|
|
+ * @desc 车辆运单
|
|
|
* @date 2023/7/19 0019
|
|
|
*/
|
|
|
@Slf4j
|
|
|
@@ -144,24 +144,21 @@ public class KwtWaybillOrderService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**数据组装**/
|
|
|
+ /**数据配置**/
|
|
|
List<Long> entIds = new ArrayList<>();
|
|
|
- List<String> dictKey = new ArrayList<>();
|
|
|
for (WaybillOrderDriverVo waybillOrder : waybillOrders) {
|
|
|
entIds.add(waybillOrder.getCarrierEntId());
|
|
|
- dictKey.add(DictTypeEnum.UNIT_TYPE.getType() + Global.POUND + waybillOrder.getUnit());
|
|
|
}
|
|
|
-
|
|
|
//企业数据集
|
|
|
entIds = entIds.stream().distinct().collect(Collectors.toList());
|
|
|
- dictKey = dictKey.stream().distinct().collect(Collectors.toList());
|
|
|
Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
|
|
|
- Map<String, SysDictResDto> dicts = remoteSystemService.queryDictMapByTypeValues(String.join(Global.COMMA, dictKey));
|
|
|
+
|
|
|
+ //数据组装
|
|
|
for (WaybillOrderDriverVo waybillOrder : waybillOrders) {
|
|
|
EntCacheResDto ent = ents == null ? null : ents.get(waybillOrder.getCarrierEntId());
|
|
|
- SysDictResDto unit = dicts == null ? null : dicts.get(DictTypeEnum.UNIT_TYPE.getType() + Global.POUND + waybillOrder.getUnit());
|
|
|
+ String value = getDictValue(DictTypeEnum.UNIT_TYPE.getType(), waybillOrder.getUnit());
|
|
|
waybillOrder.setCarrierFirmName(ent != null ? ent.getFirmName() : null);
|
|
|
- waybillOrder.setUnit(unit != null ? unit.getLabel() : null);
|
|
|
+ waybillOrder.setUnit(value);
|
|
|
}
|
|
|
return waybillOrders;
|
|
|
}
|
|
|
@@ -239,7 +236,7 @@ public class KwtWaybillOrderService {
|
|
|
changeWaybillOrderCirculate(circulate.getId(), params, null);
|
|
|
wOrder.set_id(circulate.getId());
|
|
|
} else {
|
|
|
- circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(), waybillOrder.getTruckId(), waybillOrder.getDriverId(), Global.NO);
|
|
|
+ circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(), waybillOrder.getTruckId(), waybillOrder.getDriverId());
|
|
|
changeWaybillOrderCirculate(circulate.getId(), params, null);
|
|
|
}
|
|
|
}
|
|
|
@@ -286,7 +283,7 @@ public class KwtWaybillOrderService {
|
|
|
changeWaybillOrderCirculate(circulate.getId(), null, params);
|
|
|
wOrder.set_id(circulate.getId());
|
|
|
} else {
|
|
|
- circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(), waybillOrder.getTruckId(), waybillOrder.getDriverId(), Global.NO);
|
|
|
+ circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(), waybillOrder.getTruckId(), waybillOrder.getDriverId());
|
|
|
changeWaybillOrderCirculate(circulate.getId(), null, params);
|
|
|
}
|
|
|
}
|
|
|
@@ -494,12 +491,14 @@ public class KwtWaybillOrderService {
|
|
|
List<SckwWaybillOrder> sckwWaybillOrders = new ArrayList();
|
|
|
for (SendCarDto1 sendCarDto : params) {
|
|
|
/**KwtWaybillOrder数据组装**/
|
|
|
- String wOrderNo = getRedisGenerateWaybillOrderNo(RedisOrderGenerateEnum.WAYBILL_ORDER, OrderRuleEnum.WAYBILL_ORDER, logisticsOrder.getLOrderNo());
|
|
|
- KwtWaybillOrder waybillOrder = this.setKwtWaybillOrder(sendCarDto, wOrderNo);
|
|
|
+ KwtWaybillOrder waybillOrder = this.setKwtWaybillOrder(sendCarDto);
|
|
|
/**数据存储**/
|
|
|
if (sendCarDto.getType() == Global.NUMERICAL_ONE) {
|
|
|
for (int i = 0; i < sendCarDto.getCount(); i++) {
|
|
|
//车辆运单存储
|
|
|
+ String wOrderNo = getRedisGenerateWaybillOrderNo(RedisOrderGenerateEnum.WAYBILL_ORDER, OrderRuleEnum.WAYBILL_ORDER, logisticsOrder.getLOrderNo());
|
|
|
+ waybillOrder.setId(null);
|
|
|
+ waybillOrder.setWOrderNo(wOrderNo);
|
|
|
ranksSave(waybillOrder, loadAddress, unloadAddress);
|
|
|
|
|
|
/**SckwWaybillOrder数据组装**/
|
|
|
@@ -537,7 +536,6 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.ok(sckwWaybillOrders);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 获取生成车辆运单单据号最大值处理
|
|
|
*/
|
|
|
@@ -599,7 +597,7 @@ public class KwtWaybillOrderService {
|
|
|
public KwtLogisticsOrderCirculate circulateSave(KwtWaybillOrder waybillOrder) {
|
|
|
//循环派车信息
|
|
|
KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(),
|
|
|
- waybillOrder.getTruckId(), waybillOrder.getDriverId(), 0);
|
|
|
+ waybillOrder.getTruckId(), waybillOrder.getDriverId());
|
|
|
if (circulate == null) {
|
|
|
circulate = new KwtLogisticsOrderCirculate();
|
|
|
BeanUtils.copyProperties(waybillOrder, circulate);
|
|
|
@@ -607,8 +605,13 @@ public class KwtWaybillOrderService {
|
|
|
circulate.setStatus(0);
|
|
|
int count = logisticsOrderCirculateDao.insert(circulate);
|
|
|
return count > 0 ? circulate : null;
|
|
|
+ } else {
|
|
|
+ BeanUtils.copyProperties(waybillOrder, circulate);
|
|
|
+ circulate.setWOrderId(null);
|
|
|
+ circulate.setStatus(0);
|
|
|
+ int count = logisticsOrderCirculateDao.updateById(circulate);
|
|
|
+ return count > 0 ? circulate : null;
|
|
|
}
|
|
|
- return circulate;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -664,11 +667,10 @@ public class KwtWaybillOrderService {
|
|
|
* @author zk
|
|
|
* @date 2023/7/20
|
|
|
**/
|
|
|
- public KwtWaybillOrder setKwtWaybillOrder(SendCarDto1 sendCarDto, String wOrderNo) {
|
|
|
+ public KwtWaybillOrder setKwtWaybillOrder(SendCarDto1 sendCarDto) {
|
|
|
KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
|
|
|
waybillOrder.setEntId(LoginUserHolder.getEntId());
|
|
|
waybillOrder.setLOrderId(sendCarDto.getLOrderId());
|
|
|
- waybillOrder.setWOrderNo(wOrderNo);
|
|
|
waybillOrder.setType(sendCarDto.getType());
|
|
|
waybillOrder.setStartTime(sendCarDto.getLoadDateTime());
|
|
|
waybillOrder.setEndTime(sendCarDto.getUnloadDateTime());
|
|
|
@@ -1203,6 +1205,7 @@ public class KwtWaybillOrderService {
|
|
|
/**5Mongodb数据更新**/
|
|
|
//1车辆订单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
+ wOrder.setWOrderNo(waybillOrder.getWOrderNo());
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
//2承运订单
|
|
|
@@ -1348,6 +1351,15 @@ public class KwtWaybillOrderService {
|
|
|
if (waybillOrder.getStatus() != CarWaybillEnum.PENDING_VEHICLE.getCode()) {
|
|
|
return HttpResult.error("车辆运单当前状态已不能出车!");
|
|
|
}
|
|
|
+ //车辆任务中校验
|
|
|
+ Map<String, Object> queryParams = new HashMap<>(Global.NUMERICAL_SIXTEEN){{
|
|
|
+ put("truckNo", waybillOrder.getTruckNo());
|
|
|
+ put("busStatus", 3);
|
|
|
+ }};
|
|
|
+ List<KwtWaybillOrder> waybillOrders = waybillOrderDao.findWaybillOrder(queryParams);
|
|
|
+ if (!CollectionUtils.isEmpty(waybillOrders)) {
|
|
|
+ return HttpResult.error("车辆正在任务中,不能出车!");
|
|
|
+ }
|
|
|
|
|
|
/**2更新车辆运单**/
|
|
|
waybillOrder.setStatus(CarWaybillEnum.EXIT_COMPLETED.getCode());
|
|
|
@@ -1396,7 +1408,7 @@ public class KwtWaybillOrderService {
|
|
|
if (waybillOrder.getType() == Global.NUMERICAL_TWO) {
|
|
|
//循环派车信息
|
|
|
KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(),
|
|
|
- waybillOrder.getTruckId(), waybillOrder.getDriverId(), 0);
|
|
|
+ waybillOrder.getTruckId(), waybillOrder.getDriverId());
|
|
|
circulate.setStatus(Global.NUMERICAL_ONE);
|
|
|
logisticsOrderCirculateDao.updateById(circulate);
|
|
|
}
|
|
|
@@ -1618,7 +1630,7 @@ public class KwtWaybillOrderService {
|
|
|
if (waybillOrder.getType() == Global.NUMERICAL_TWO) {
|
|
|
//循环派车信息
|
|
|
KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(),
|
|
|
- waybillOrder.getTruckId(), waybillOrder.getDriverId(), 0);
|
|
|
+ waybillOrder.getTruckId(), waybillOrder.getDriverId());
|
|
|
/*circulate.setWOrderId(null);
|
|
|
logisticsOrderCirculateDao.updateById(circulate);*/
|
|
|
Long newId = new IdWorker(Global.NUMERICAL_ONE).nextId();
|
|
|
@@ -2493,4 +2505,23 @@ public class KwtWaybillOrderService {
|
|
|
map.put("loop", loopMap);
|
|
|
return HttpResult.ok(map);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param type 字典类型
|
|
|
+ * @param value 字典值
|
|
|
+ * @desc 获取数据字典值
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/8/30
|
|
|
+ **/
|
|
|
+ public String getDictValue(String type, String value) {
|
|
|
+ if (StringUtils.isBlank(type) || StringUtils.isBlank(value)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ List<String> dictKey = new ArrayList<>(){{
|
|
|
+ add(type + Global.POUND + value);
|
|
|
+ }};
|
|
|
+ Map<String, SysDictResDto> dicts = remoteSystemService.queryDictMapByTypeValues(String.join(Global.COMMA, dictKey));
|
|
|
+ SysDictResDto dict = dicts == null ? null : dicts.get(DictTypeEnum.APPROVED_DRIVING.getType() + Global.POUND + value);
|
|
|
+ return dict != null ? dict.getLabel() : null;
|
|
|
+ }
|
|
|
}
|