|
@@ -22,6 +22,9 @@ import com.sckw.fleet.api.model.vo.RDriverVo;
|
|
|
import com.sckw.fleet.api.model.vo.RTruckVo;
|
|
import com.sckw.fleet.api.model.vo.RTruckVo;
|
|
|
import com.sckw.mongo.model.SckwWaybillOrder;
|
|
import com.sckw.mongo.model.SckwWaybillOrder;
|
|
|
import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
|
|
|
+import com.sckw.stream.enums.MessageEnum;
|
|
|
|
|
+import com.sckw.stream.model.SckwMessage;
|
|
|
|
|
+import com.sckw.stream.model.UserInfo;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
|
|
import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
|
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
@@ -222,9 +225,14 @@ public class KwtWaybillOrderV1Service {
|
|
|
List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIdList);
|
|
List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIdList);
|
|
|
Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
users.forEach(e -> usersMap.put(e.getId(), e));
|
|
users.forEach(e -> usersMap.put(e.getId(), e));
|
|
|
|
|
+ //企业ID
|
|
|
|
|
+ List<Long> entIds = new ArrayList<>(){{add(waybillOrder.getEntId());}};
|
|
|
|
|
+ Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
|
|
|
//单位
|
|
//单位
|
|
|
Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.UNIT_TYPE.getType()));
|
|
Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.UNIT_TYPE.getType()));
|
|
|
Map<String, String> unitMap = CollectionUtils.isNotEmpty(dict) ? dict.get(DictTypeEnum.UNIT_TYPE.getType()) : new HashMap<>(NumberConstant.SIXTEEN);
|
|
Map<String, String> unitMap = CollectionUtils.isNotEmpty(dict) ? dict.get(DictTypeEnum.UNIT_TYPE.getType()) : new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
|
|
+ //车辆信息
|
|
|
|
|
+ RTruckVo truck = remoteFleetService.findTruck(waybillOrder.getTruckId());
|
|
|
|
|
|
|
|
//返回信息
|
|
//返回信息
|
|
|
WaybillDetailVo waybillDetail = new WaybillDetailVo();
|
|
WaybillDetailVo waybillDetail = new WaybillDetailVo();
|
|
@@ -250,7 +258,8 @@ public class KwtWaybillOrderV1Service {
|
|
|
addressData.put("unit", subtask.getUnit());
|
|
addressData.put("unit", subtask.getUnit());
|
|
|
addressData.put("unitName", unitMap.get(subtask.getUnit()));
|
|
addressData.put("unitName", unitMap.get(subtask.getUnit()));
|
|
|
addressData.put("amount", ticket != null ? ticket.getAmount() : null);
|
|
addressData.put("amount", ticket != null ? ticket.getAmount() : null);
|
|
|
- addressData.put("urls", ticket != null ? ticket.getUrls() : null);
|
|
|
|
|
|
|
+ addressData.put("urls", ticket != null ? FileUtils.spliceBatch(ticket.getUrls()) : null);
|
|
|
|
|
+ addressData.put("operateStatus", ticket != null);
|
|
|
addressData.put("operateTime", ticket != null ? DateUtils.format(address.getPlanTime(), DateUtils.FORMAT11) : null);
|
|
addressData.put("operateTime", ticket != null ? DateUtils.format(address.getPlanTime(), DateUtils.FORMAT11) : null);
|
|
|
addressList.add(addressData);
|
|
addressList.add(addressData);
|
|
|
}
|
|
}
|
|
@@ -260,7 +269,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
for (KwtWaybillOrderTrack track:tracks) {
|
|
for (KwtWaybillOrderTrack track:tracks) {
|
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
trackData.put("status", track.getStatus());
|
|
trackData.put("status", track.getStatus());
|
|
|
- trackData.put("statusName", CarWaybillEnum.getAlias(waybillOrder.getStatus()));
|
|
|
|
|
|
|
+ trackData.put("statusName", CarWaybillEnum.getAlias(track.getStatus()));
|
|
|
trackData.put("remark", track.getRemark());
|
|
trackData.put("remark", track.getRemark());
|
|
|
trackData.put("operateTime", track.getOperateTime());
|
|
trackData.put("operateTime", track.getOperateTime());
|
|
|
trackData.put("createTime", track.getCreateTime());
|
|
trackData.put("createTime", track.getCreateTime());
|
|
@@ -283,6 +292,9 @@ public class KwtWaybillOrderV1Service {
|
|
|
waybillDetail.setStatusName(CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
waybillDetail.setStatusName(CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
|
waybillDetail.setCreateByName(usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getName() : null);
|
|
waybillDetail.setCreateByName(usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getName() : null);
|
|
|
waybillDetail.setCreateByPhone(usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getPhone() : null);
|
|
waybillDetail.setCreateByPhone(usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getPhone() : null);
|
|
|
|
|
+ waybillDetail.setTrailerNo(truck != null ? truck.getTrailerNo() : null);
|
|
|
|
|
+ waybillDetail.setTruckType(truck != null ? truck.getTruckType() : null);
|
|
|
|
|
+ waybillDetail.setFirmName(ents.get(waybillOrder.getEntId()) != null ? ents.get(waybillOrder.getEntId()).getFirmName() : null);
|
|
|
waybillDetail.setTracks(trackList);
|
|
waybillDetail.setTracks(trackList);
|
|
|
waybillDetail.setAddresses(addressList);
|
|
waybillDetail.setAddresses(addressList);
|
|
|
waybillDetail.setTrajectory(trajectory);
|
|
waybillDetail.setTrajectory(trajectory);
|
|
@@ -451,13 +463,13 @@ public class KwtWaybillOrderV1Service {
|
|
|
//卸货时间
|
|
//卸货时间
|
|
|
Optional<KwtWaybillOrderSubtask> loadDate = subtasks.stream().min(Comparator.comparing(KwtWaybillOrderSubtask::getLoadTime));
|
|
Optional<KwtWaybillOrderSubtask> loadDate = subtasks.stream().min(Comparator.comparing(KwtWaybillOrderSubtask::getLoadTime));
|
|
|
//装货地点名称
|
|
//装货地点名称
|
|
|
- String loadName = loadAddresses.stream().map(KwtWaybillOrderAddress::getCityName).collect(Collectors.joining(", "));
|
|
|
|
|
|
|
+ List<String> loadName = loadAddresses.stream().map(KwtWaybillOrderAddress::getCityName).toList();
|
|
|
//装货地点
|
|
//装货地点
|
|
|
- String loadAddress = loadAddresses.stream().map(KwtWaybillOrderAddress::getDetailAddress).collect(Collectors.joining(", "));
|
|
|
|
|
|
|
+ List<String> loadAddress = loadAddresses.stream().map(KwtWaybillOrderAddress::getDetailAddress).toList();
|
|
|
//卸货地点点名称
|
|
//卸货地点点名称
|
|
|
- String unloadName = unloadAddresses.stream().map(KwtWaybillOrderAddress::getCityName).collect(Collectors.joining(", "));
|
|
|
|
|
|
|
+ List<String> unloadName = unloadAddresses.stream().map(KwtWaybillOrderAddress::getCityName).toList();
|
|
|
//卸货地点
|
|
//卸货地点
|
|
|
- String unloadAddress = unloadAddresses.stream().map(KwtWaybillOrderAddress::getDetailAddress).collect(Collectors.joining(", "));
|
|
|
|
|
|
|
+ List<String> unloadAddress = unloadAddresses.stream().map(KwtWaybillOrderAddress::getDetailAddress).toList();
|
|
|
|
|
|
|
|
//数据处理
|
|
//数据处理
|
|
|
for (KwtWaybillOrderSubtask subtask:subtasks) {
|
|
for (KwtWaybillOrderSubtask subtask:subtasks) {
|
|
@@ -597,7 +609,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//审核状态
|
|
//审核状态
|
|
|
- KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrackV1(wOrderId, CarWaybillDetailEnum.IN_TRANSIT.getValue());
|
|
|
|
|
|
|
+ KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrackV1(wOrderId, CarWaybillDetailEnum.WAIT_APPROVAL.getValue());
|
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
trackData.put("operateTime", track != null ? DateUtils.format(track.getOperateTime(), DateUtils.FORMAT11) : null);
|
|
trackData.put("operateTime", track != null ? DateUtils.format(track.getOperateTime(), DateUtils.FORMAT11) : null);
|
|
|
trackData.put("operateStatus", track != null);
|
|
trackData.put("operateStatus", track != null);
|
|
@@ -661,6 +673,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
|
|
KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
|
|
|
//数据组装
|
|
//数据组装
|
|
|
JSONObject addressJson = new JSONObject();
|
|
JSONObject addressJson = new JSONObject();
|
|
|
|
|
+ addressJson.put("addressType", address.getAddressType());
|
|
|
addressJson.put("addressName", address.getName());
|
|
addressJson.put("addressName", address.getName());
|
|
|
addressJson.put("addressCityName", address.getCityName());
|
|
addressJson.put("addressCityName", address.getCityName());
|
|
|
addressJson.put("addressDetail", address.getDetailAddress());
|
|
addressJson.put("addressDetail", address.getDetailAddress());
|
|
@@ -677,6 +690,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
JSONObject order = JSON.parseObject(JSON.toJSONString(waybillOrder));
|
|
JSONObject order = JSON.parseObject(JSON.toJSONString(waybillOrder));
|
|
|
|
|
+ order.put("typeName", waybillOrder.getType() == NumberConstant.ONE ? "趟次" : "循环");
|
|
|
order.put("statusName", CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
order.put("statusName", CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
|
order.put("carrierFirmName", ents.get(waybillOrder.getEntId()) != null ? ents.get(waybillOrder.getEntId()).getFirmName() : null);
|
|
order.put("carrierFirmName", ents.get(waybillOrder.getEntId()) != null ? ents.get(waybillOrder.getEntId()).getFirmName() : null);
|
|
|
order.put("addresses", addressList);
|
|
order.put("addresses", addressList);
|
|
@@ -1267,6 +1281,26 @@ public class KwtWaybillOrderV1Service {
|
|
|
logisticsOrder.setEntrustAmount(entrustAmount.subtract(BigDecimal.valueOf(subtask.getEntrustAmount())));
|
|
logisticsOrder.setEntrustAmount(entrustAmount.subtract(BigDecimal.valueOf(subtask.getEntrustAmount())));
|
|
|
logisticsOrderDao.updateById(logisticsOrder);
|
|
logisticsOrderDao.updateById(logisticsOrder);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /*6发送消息**/
|
|
|
|
|
+ List<UserInfo> users = new ArrayList<>() {{
|
|
|
|
|
+ add(new UserInfo(waybillOrder.getCreateBy(), waybillOrder.getEntId()));
|
|
|
|
|
+ }};
|
|
|
|
|
+ Map<String, Object> msgParams = new HashMap<>() {{
|
|
|
|
|
+ put("orderNo", waybillOrder.getWOrderNo());
|
|
|
|
|
+ put("driverName", waybillOrder.getDriverName());
|
|
|
|
|
+ }};
|
|
|
|
|
+ SckwMessage msg = new SckwMessage();
|
|
|
|
|
+ msg.setRequestId(UUIDUtils.get32UUID());
|
|
|
|
|
+ msg.setMessageEnum(MessageEnum.WAYBILL_REFUSE_SENDCAR_TRIP);
|
|
|
|
|
+ msg.setParams(msgParams);
|
|
|
|
|
+ msg.setMsgUrls(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
|
|
|
|
|
+ put("app", refuseSendCarAppUrl);
|
|
|
|
|
+ put("pc", refuseSendCarPcUrl);
|
|
|
|
|
+ }});
|
|
|
|
|
+ msg.setUserInfos(users);
|
|
|
|
|
+ msg.setCreateBy(LoginUserHolder.getUserId());
|
|
|
|
|
+ streamBridge.send("sckw-message", JSON.toJSONString(msg));
|
|
|
return HttpResult.ok();
|
|
return HttpResult.ok();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1375,6 +1409,26 @@ public class KwtWaybillOrderV1Service {
|
|
|
logisticsOrder.setEntrustAmount(entrustAmount.subtract(BigDecimal.valueOf(subtask.getEntrustAmount())));
|
|
logisticsOrder.setEntrustAmount(entrustAmount.subtract(BigDecimal.valueOf(subtask.getEntrustAmount())));
|
|
|
logisticsOrderDao.updateById(logisticsOrder);
|
|
logisticsOrderDao.updateById(logisticsOrder);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /*6、发送消息**/
|
|
|
|
|
+ List<UserInfo> users = new ArrayList<>() {{
|
|
|
|
|
+ add(new UserInfo(waybillOrder.getCreateBy(), waybillOrder.getEntId()));
|
|
|
|
|
+ }};
|
|
|
|
|
+ Map<String, Object> msgParams = new HashMap<>() {{
|
|
|
|
|
+ put("orderNo", waybillOrder.getWOrderNo());
|
|
|
|
|
+ put("driverName", waybillOrder.getDriverName());
|
|
|
|
|
+ }};
|
|
|
|
|
+ SckwMessage msg = new SckwMessage();
|
|
|
|
|
+ msg.setRequestId(UUIDUtils.get32UUID());
|
|
|
|
|
+ msg.setMessageEnum(MessageEnum.WAYBIL_CONFIRM_DEPARTURE);
|
|
|
|
|
+ msg.setParams(msgParams);
|
|
|
|
|
+ msg.setMsgUrls(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
|
|
|
|
|
+ put("app", refuseSendCarAppUrl);
|
|
|
|
|
+ put("pc", refuseSendCarPcUrl);
|
|
|
|
|
+ }});
|
|
|
|
|
+ msg.setUserInfos(users);
|
|
|
|
|
+ msg.setCreateBy(LoginUserHolder.getUserId());
|
|
|
|
|
+ streamBridge.send("sckw-message", JSON.toJSONString(msg));
|
|
|
return HttpResult.ok();
|
|
return HttpResult.ok();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2094,7 +2148,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
//榜单信息
|
|
//榜单信息
|
|
|
KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
|
|
KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
|
|
|
//辅助单位
|
|
//辅助单位
|
|
|
- List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, type);
|
|
|
|
|
|
|
+ List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, address.getId());
|
|
|
|
|
|
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
trackData.put("wTicketId", ticket != null ? ticket.getId() : null);
|
|
trackData.put("wTicketId", ticket != null ? ticket.getId() : null);
|
|
@@ -2169,7 +2223,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
//榜单信息
|
|
//榜单信息
|
|
|
KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
|
|
KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
|
|
|
//辅助单位
|
|
//辅助单位
|
|
|
- List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, address.getAddressType());
|
|
|
|
|
|
|
+ List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, address.getId());
|
|
|
//辅助单位
|
|
//辅助单位
|
|
|
List<GoodsUnitVo> assistUnit = kwtLogisticsOrderGoodsService.assistUnit(subtask.getLOrderId());
|
|
List<GoodsUnitVo> assistUnit = kwtLogisticsOrderGoodsService.assistUnit(subtask.getLOrderId());
|
|
|
|
|
|
|
@@ -2262,9 +2316,9 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(subtask != null ? subtask.getLOrderId() : null);
|
|
KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(subtask != null ? subtask.getLOrderId() : null);
|
|
|
for (Integer status:statusList) {
|
|
for (Integer status:statusList) {
|
|
|
//状态记录
|
|
//状态记录
|
|
|
- KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrack(wOrderId, null, null, status);
|
|
|
|
|
|
|
+ KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrack(wOrderId, subtask.getId(), address.getId(), status);
|
|
|
//辅助单位
|
|
//辅助单位
|
|
|
- List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, address.getAddressType());
|
|
|
|
|
|
|
+ List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, track.getWAddressId());
|
|
|
//辅助单位
|
|
//辅助单位
|
|
|
List<GoodsUnitVo> assistUnit = kwtLogisticsOrderGoodsService.assistUnit(subtask.getLOrderId());
|
|
List<GoodsUnitVo> assistUnit = kwtLogisticsOrderGoodsService.assistUnit(subtask.getLOrderId());
|
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|