|
|
@@ -79,6 +79,8 @@ public class KwtWaybillOrderV1Service {
|
|
|
@Autowired
|
|
|
KwtLogisticsOrderGoodsMapper logisticsOrderGoodsDao;
|
|
|
@Autowired
|
|
|
+ KwtLogisticsOrderUnitMapper logisticsOrderUnitDao;
|
|
|
+ @Autowired
|
|
|
KwtWaybillOrderTicketService waybillOrderTicketService;
|
|
|
@Autowired
|
|
|
KwtLogisticsOrderGoodsService kwtLogisticsOrderGoodsService;
|
|
|
@@ -145,11 +147,17 @@ public class KwtWaybillOrderV1Service {
|
|
|
PageHelper.startPage(params.getPage(), params.getPageSize());
|
|
|
params.setQueryWstatus(CarWaybillTableTopEnum.getValue(params.getStatus()));
|
|
|
List<WaybillOrderSelectVo> list = waybillOrderV1Dao.findListPage(params);
|
|
|
+
|
|
|
+ //单位
|
|
|
+ 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);
|
|
|
+
|
|
|
+ //数据处理
|
|
|
for (WaybillOrderSelectVo waybillOrder:list) {
|
|
|
+ findListPageHandle(waybillOrder, unitMap);
|
|
|
waybillOrder.setStatusLabel(CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
|
}
|
|
|
- PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(list));
|
|
|
- return pageResult;
|
|
|
+ return PageHelperUtil.getPageResult(new PageInfo<>(list));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -167,8 +175,157 @@ public class KwtWaybillOrderV1Service {
|
|
|
for (WaybillOrderSelectVo waybillOrder:list) {
|
|
|
waybillOrder.setStatusLabel(CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
|
}
|
|
|
- PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(list));
|
|
|
- return pageResult;
|
|
|
+ return PageHelperUtil.getPageResult(new PageInfo<>(list));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param wOrderId 运单ID
|
|
|
+ * @desc 运单详情
|
|
|
+ * @author zk
|
|
|
+ * @date 2024/3/13
|
|
|
+ **/
|
|
|
+ public HttpResult waybillDetail(Long wOrderId) {
|
|
|
+ //运单信息
|
|
|
+ KwtWaybillOrderV1 waybillOrder = waybillOrderV1Dao.selectById(wOrderId);
|
|
|
+ if (waybillOrder == null) {
|
|
|
+ return HttpResult.error("运单" + wOrderId + "不存在,请确认!");
|
|
|
+ }
|
|
|
+
|
|
|
+ //子单
|
|
|
+ List<KwtWaybillOrderSubtask> subtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
|
|
|
+ //运单状态记录
|
|
|
+ List<KwtWaybillOrderTrack> tracks = waybillOrderTrackDao.findTrack(wOrderId, null, null, null);
|
|
|
+ //用户信息
|
|
|
+ List<Long> userIds = tracks.stream().map(KwtWaybillOrderTrack::getCreateBy).toList();
|
|
|
+ List<Long> userIdList = new ArrayList<>(NumberConstant.SIXTEEN){{add(waybillOrder.getCreateBy());}};
|
|
|
+ userIdList.addAll(userIds);
|
|
|
+ List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIdList);
|
|
|
+ Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
+ users.forEach(e -> usersMap.put(e.getId(), e));
|
|
|
+ //单位
|
|
|
+ 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);
|
|
|
+
|
|
|
+ //返回信息
|
|
|
+ WaybillDetailV1Vo waybillDetail = new WaybillDetailV1Vo();
|
|
|
+ //地址信息
|
|
|
+ List<KwtWaybillOrderAddress> addresses = waybillOrderAddressDao.findByAddresses(wOrderId, null);
|
|
|
+ //地址数据处理
|
|
|
+ List<Map<String, Object>> addressList = new ArrayList<>(NumberConstant.SIXTEEN);
|
|
|
+ for (KwtWaybillOrderAddress address:addresses) {
|
|
|
+ //运单子单
|
|
|
+ KwtWaybillOrderSubtask subtask = waybillOrderSubtaskDao.selectById(address.getWSubtaskId());
|
|
|
+ //物流订单商品信息
|
|
|
+ KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(subtask != null ? subtask.getLOrderId() : null);
|
|
|
+ //榜单信息
|
|
|
+ KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
|
|
|
+ Map<String, Object> addressData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
+ addressData.put("addressType", address.getAddressType());
|
|
|
+ addressData.put("addressName", address.getName());
|
|
|
+ addressData.put("addressCityName", address.getCityName());
|
|
|
+ addressData.put("addressDetail", address.getDetailAddress());
|
|
|
+ addressData.put("planTime", DateUtils.format(address.getPlanTime(), DateUtils.FORMAT12));
|
|
|
+ addressData.put("entrustAmount", address.getEntrustAmount());
|
|
|
+ addressData.put("goodsName", goods != null ? goods.getGoodsName() : null);
|
|
|
+ addressData.put("unit", subtask.getUnit());
|
|
|
+ addressData.put("unitName", unitMap.get(subtask.getUnit()));
|
|
|
+ addressData.put("amount", ticket != null ? ticket.getAmount() : null);
|
|
|
+ addressData.put("urls", ticket != null ? ticket.getUrls() : null);
|
|
|
+ addressData.put("operateTime", ticket != null ? DateUtils.format(address.getPlanTime(), DateUtils.FORMAT11) : null);
|
|
|
+ addressList.add(addressData);
|
|
|
+ }
|
|
|
+
|
|
|
+ //状态数据处理
|
|
|
+ List<Map<String, Object>> trackList = new ArrayList<>(NumberConstant.SIXTEEN);
|
|
|
+ for (KwtWaybillOrderTrack track:tracks) {
|
|
|
+ Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
+ trackData.put("status", track.getStatus());
|
|
|
+ trackData.put("statusName", CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
|
+ trackData.put("remark", track.getRemark());
|
|
|
+ trackData.put("operateTime", track.getOperateTime());
|
|
|
+ trackData.put("createTime", track.getCreateTime());
|
|
|
+ trackData.put("createByName", usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getName() : null);
|
|
|
+ trackData.put("createByPhone", usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getPhone() : null);
|
|
|
+ trackList.add(trackData);
|
|
|
+ }
|
|
|
+
|
|
|
+ for (KwtWaybillOrderSubtask subtask:subtasks) {
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
+ waybillDetail.setLOrderNo((StringUtils.isBlank(waybillDetail.getLOrderNo()) ? Global.EMPTY_STRING : Global.COMMA) + logisticsOrder.getLOrderNo());
|
|
|
+ }
|
|
|
+
|
|
|
+ BeanUtils.copyProperties(waybillOrder, waybillDetail);
|
|
|
+ waybillDetail.setWOrderId(waybillOrder.getId());
|
|
|
+ waybillDetail.setStatusName(CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
|
+ 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.setTracks(trackList);
|
|
|
+ waybillDetail.setAddresses(addressList);
|
|
|
+ return HttpResult.ok(waybillDetail);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param waybillOrder 运单信息
|
|
|
+ * @param unitMap 字段
|
|
|
+ * @desc 分页查询
|
|
|
+ * @author zk
|
|
|
+ * @date 2024/3/13
|
|
|
+ **/
|
|
|
+ public void findListPageHandle(WaybillOrderSelectVo waybillOrder, Map<String, String> unitMap){
|
|
|
+ //子运单
|
|
|
+ List<KwtWaybillOrderSubtask> subtasks = waybillOrderSubtaskDao.findByWOrderId(waybillOrder.getWOrderId());
|
|
|
+ //子运单
|
|
|
+ List<KwtWaybillOrderAddress> loadAddresses = waybillOrderAddressDao.findByAddresses(waybillOrder.getWOrderId(), AddressDefaultTypeEnum.SHIPMENT.getCode());
|
|
|
+ //子运单
|
|
|
+ List<KwtWaybillOrderAddress> unloadAddresses = waybillOrderAddressDao.findByAddresses(waybillOrder.getWOrderId(), AddressDefaultTypeEnum.TAKE.getCode());
|
|
|
+ //装货时间
|
|
|
+ Optional<KwtWaybillOrderSubtask> unloadDate = subtasks.stream().max(Comparator.comparing(KwtWaybillOrderSubtask::getUnloadTime));
|
|
|
+ //卸货时间
|
|
|
+ Optional<KwtWaybillOrderSubtask> loadDate = subtasks.stream().min(Comparator.comparing(KwtWaybillOrderSubtask::getLoadTime));
|
|
|
+ //装货地点名称
|
|
|
+ String loadName = loadAddresses.stream().map(KwtWaybillOrderAddress::getCityName).collect(Collectors.joining(", "));
|
|
|
+ //装货地点
|
|
|
+ String loadAddress = loadAddresses.stream().map(KwtWaybillOrderAddress::getDetailAddress).collect(Collectors.joining(", "));
|
|
|
+ //卸货地点点名称
|
|
|
+ String unloadName = unloadAddresses.stream().map(KwtWaybillOrderAddress::getCityName).collect(Collectors.joining(", "));
|
|
|
+ //卸货地点
|
|
|
+ String unloadAddress = unloadAddresses.stream().map(KwtWaybillOrderAddress::getDetailAddress).collect(Collectors.joining(", "));
|
|
|
+
|
|
|
+ //数据处理
|
|
|
+ for (KwtWaybillOrderSubtask subtask:subtasks) {
|
|
|
+ //物流订单
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
+ //托运企业
|
|
|
+ KwtLogisticsOrderUnit procure = logisticsOrderUnitDao.findByUnit(subtask.getLOrderId(), NumberConstant.ONE);
|
|
|
+ //承运企业
|
|
|
+ KwtLogisticsOrderUnit supply = logisticsOrderUnitDao.findByUnit(subtask.getLOrderId(), NumberConstant.TWO);
|
|
|
+ //派单量
|
|
|
+ String entrustAmount = subtask.getEntrustAmount() + unitMap.get(subtask.getUnit());
|
|
|
+ //实装量
|
|
|
+ String loadAmount = subtask.getLoadAmount() != null ? subtask.getLoadAmount() + unitMap.get(subtask.getUnit()) : null;
|
|
|
+ //实卸量
|
|
|
+ String unloadAmount = subtask.getUnloadAmount() != null ? subtask.getUnloadAmount() + unitMap.get(subtask.getUnit()) : null;
|
|
|
+ //实卸量
|
|
|
+ String deficitAmount = subtask.getDeficitAmount() != null ? subtask.getDeficitAmount() + unitMap.get(subtask.getUnit()) : null;
|
|
|
+ //亏吨重量
|
|
|
+ String deficitRealAmount = deficitPrice(BigDecimal.valueOf(NumberUtils.parseDouble(subtask.getLoadAmount())),
|
|
|
+ BigDecimal.valueOf(NumberUtils.parseDouble(subtask.getDeficitAmount())), logisticsOrder.getLoss(),
|
|
|
+ logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice()) + unitMap.get(subtask.getUnit());
|
|
|
+ waybillOrder.setEntrustAmount((StringUtils.isBlank(waybillOrder.getEntrustAmount()) ? Global.EMPTY_STRING : Global.COMMA) + entrustAmount);
|
|
|
+ waybillOrder.setLoadAmount((StringUtils.isBlank(waybillOrder.getLoadAmount()) ? Global.EMPTY_STRING : Global.COMMA) + loadAmount);
|
|
|
+ waybillOrder.setUnloadAmount((StringUtils.isBlank(waybillOrder.getUnloadAmount()) ? Global.EMPTY_STRING : Global.COMMA) + unloadAmount);
|
|
|
+ waybillOrder.setDeficitAmount((StringUtils.isBlank(waybillOrder.getDeficitAmount()) ? Global.EMPTY_STRING : Global.COMMA) + deficitAmount);
|
|
|
+ waybillOrder.setDeficitRealAmount((StringUtils.isBlank(waybillOrder.getDeficitRealAmount()) ? Global.EMPTY_STRING : Global.COMMA) + deficitRealAmount);
|
|
|
+ waybillOrder.setLOrderNo((StringUtils.isBlank(waybillOrder.getLOrderNo()) ? Global.EMPTY_STRING : Global.COMMA) + logisticsOrder.getLOrderNo());
|
|
|
+ waybillOrder.setProcureFirmName(procure.getFirmName());
|
|
|
+ waybillOrder.setSupplyFirmName(supply.getFirmName());
|
|
|
+ }
|
|
|
+ waybillOrder.setStartTime(loadDate.get().getLoadTime());
|
|
|
+ waybillOrder.setEndTime(unloadDate.get().getUnloadTime());
|
|
|
+ waybillOrder.setLoadName(loadName);
|
|
|
+ waybillOrder.setLoadAddress(loadAddress);
|
|
|
+ waybillOrder.setUnloadName(unloadName);
|
|
|
+ waybillOrder.setUnloadAddress(unloadAddress);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -205,6 +362,9 @@ public class KwtWaybillOrderV1Service {
|
|
|
//企业ID
|
|
|
List<Long> entIds = waybillOrders.stream().map(KwtWaybillOrderV1::getEntId).toList();
|
|
|
Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
|
|
|
+ //单位
|
|
|
+ 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);
|
|
|
|
|
|
//数据处理
|
|
|
List<JSONObject> list = new ArrayList<>();
|
|
|
@@ -227,6 +387,8 @@ public class KwtWaybillOrderV1Service {
|
|
|
addressJson.put("planTime", DateUtils.format(address.getPlanTime(), DateUtils.FORMAT12));
|
|
|
addressJson.put("entrustAmount", address.getEntrustAmount());
|
|
|
addressJson.put("goodsName", goods != null ? goods.getGoodsName() : null);
|
|
|
+ addressJson.put("unit", subtask.getUnit());
|
|
|
+ addressJson.put("unitName", unitMap.get(subtask.getUnit()));
|
|
|
addressJson.put("amount", ticket != null ? ticket.getAmount() : null);
|
|
|
addressJson.put("urls", ticket != null ? ticket.getUrls() : null);
|
|
|
addressJson.put("operateTime", ticket != null ? DateUtils.format(address.getPlanTime(), DateUtils.FORMAT11) : null);
|
|
|
@@ -237,16 +399,12 @@ public class KwtWaybillOrderV1Service {
|
|
|
JSONObject order = JSON.parseObject(JSON.toJSONString(waybillOrder));
|
|
|
order.put("statusName", CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
|
order.put("carrierFirmName", ents.get(waybillOrder.getEntId()) != null ? ents.get(waybillOrder.getEntId()).getFirmName() : null);
|
|
|
- order.put("addressList", addressList);
|
|
|
+ order.put("addresses", addressList);
|
|
|
list.add(order);
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* @param params 派车参数
|
|
|
* @desc 派车-多装多卸
|
|
|
@@ -1617,6 +1775,9 @@ public class KwtWaybillOrderV1Service {
|
|
|
List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
|
|
|
Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
users.forEach(e -> usersMap.put(e.getId(), e));
|
|
|
+ //单位
|
|
|
+ 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);
|
|
|
|
|
|
/*数据处理*/
|
|
|
List<Map<String, Object>> addressList = new ArrayList<>();
|
|
|
@@ -1639,14 +1800,19 @@ public class KwtWaybillOrderV1Service {
|
|
|
trackData.put("wOrderId", ticket != null ? ticket.getWOrderId() : null);
|
|
|
trackData.put("wSubtaskId", subtask.getId());
|
|
|
trackData.put("wAddressId", address.getId());
|
|
|
+ trackData.put("addressType", address.getAddressType());
|
|
|
trackData.put("urls", ticket != null ? FileUtils.spliceBatch(ticket.getUrls()) : null);
|
|
|
trackData.put("operateTime", ticket != null ? DateUtil.dateTimeFormatter(ticket.getOperateTime()) : null);
|
|
|
trackData.put("createTime", ticket != null ? DateUtil.dateTimeFormatter(ticket.getCreateTime()) : null);
|
|
|
trackData.put("approvalStatus", ticket != null ? ticket.getStatus() : null);
|
|
|
trackData.put("createByName", ticket != null ? usersMap.get(ticket.getCreateBy()) == null ? waybillOrder.getDriverName() : usersMap.get(ticket.getCreateBy()).getName() : null);
|
|
|
- trackData.put("cityName", address.getCityName());
|
|
|
- trackData.put("detailAddress", address.getDetailAddress());
|
|
|
+ trackData.put("addressName", address.getName());
|
|
|
+ trackData.put("addressCityName", address.getCityName());
|
|
|
+ trackData.put("addressDetail", address.getDetailAddress());
|
|
|
trackData.put("goodsName", goods != null ? goods.getGoodsName() : null);
|
|
|
+ trackData.put("unit", subtask.getUnit());
|
|
|
+ trackData.put("unitName", unitMap.get(subtask.getUnit()));
|
|
|
+ trackData.put("entrustAmount", address.getEntrustAmount());
|
|
|
trackData.put("loading", loading);
|
|
|
addressList.add(trackData);
|
|
|
}
|
|
|
@@ -1662,7 +1828,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
result.put("driverPhone", waybillOrder.getDriverPhone());
|
|
|
result.put("driverIdcard", waybillOrder.getDriverIdcard());
|
|
|
result.put("createTime", waybillOrder.getCreateTime());
|
|
|
- result.put("addressList", addressList);
|
|
|
+ result.put("addresses", addressList);
|
|
|
return HttpResult.ok(result);
|
|
|
}
|
|
|
|
|
|
@@ -1691,6 +1857,9 @@ public class KwtWaybillOrderV1Service {
|
|
|
List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
|
|
|
Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
users.forEach(e -> usersMap.put(e.getId(), e));
|
|
|
+ //单位
|
|
|
+ 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);
|
|
|
|
|
|
//子单信息
|
|
|
KwtWaybillOrderSubtask subtask = waybillOrderSubtaskDao.selectById(address.getWSubtaskId());
|
|
|
@@ -1700,6 +1869,8 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
|
|
|
//辅助单位
|
|
|
List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, address.getAddressType());
|
|
|
+ //辅助单位
|
|
|
+ List<GoodsUnitVo> assistUnit = kwtLogisticsOrderGoodsService.assistUnit(subtask.getLOrderId());
|
|
|
|
|
|
Map<String, Object> result = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
result.put("wOrderId", wOrderId);
|
|
|
@@ -1719,10 +1890,16 @@ public class KwtWaybillOrderV1Service {
|
|
|
result.put("approvalStatus", ticket != null ? ticket.getStatus() : null);
|
|
|
result.put("createByName", ticket != null ? usersMap.get(ticket.getCreateBy()) == null ? waybillOrder.getDriverName() : usersMap.get(ticket.getCreateBy()).getName() : null);
|
|
|
result.put("createTime", ticket != null ? ticket.getCreateTime() : null);
|
|
|
- result.put("cityName", address.getCityName());
|
|
|
- result.put("detailAddress", address.getDetailAddress());
|
|
|
+ result.put("addressName", address.getName());
|
|
|
+ result.put("addressCityName", address.getCityName());
|
|
|
+ result.put("addressDetail", address.getDetailAddress());
|
|
|
result.put("goodsName", goods != null ? goods.getGoodsName() : null);
|
|
|
+ result.put("unit", subtask.getUnit());
|
|
|
+ result.put("unitName", unitMap.get(subtask.getUnit()));
|
|
|
+ result.put("amount", ticket != null ? ticket.getAmount() : null);
|
|
|
+ result.put("entrustAmount", address.getEntrustAmount());
|
|
|
result.put("loading", loading);
|
|
|
+ result.put("assistUnit", assistUnit);
|
|
|
return HttpResult.ok(result);
|
|
|
}
|
|
|
|
|
|
@@ -1745,6 +1922,10 @@ public class KwtWaybillOrderV1Service {
|
|
|
List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
|
|
|
Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
users.forEach(e -> usersMap.put(e.getId(), e));
|
|
|
+ //单位
|
|
|
+ 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);
|
|
|
+
|
|
|
|
|
|
/*数据处理*/
|
|
|
List<Map<String, Object>> trackList = new ArrayList<>();
|
|
|
@@ -1754,7 +1935,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrack(wOrderId, null, null, status);
|
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
trackData.put("id", track != null ? track.getId() : null);
|
|
|
- trackData.put("wOrderId", track != null ? track.getWOrderId() : null);
|
|
|
+ trackData.put("wOrderId", wOrderId);
|
|
|
trackData.put("wSubtaskId", track != null ? track.getWSubtaskId() : null);
|
|
|
trackData.put("wAddressId", track != null ? track.getWAddressId() : null);
|
|
|
trackData.put("operateTime", track != null ? DateUtils.format(track.getOperateTime(), DateUtils.FORMAT11) : null);
|
|
|
@@ -1780,12 +1961,17 @@ public class KwtWaybillOrderV1Service {
|
|
|
//物流订单商品信息
|
|
|
KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(subtask != null ? subtask.getLOrderId() : null);
|
|
|
for (Integer status:statusList) {
|
|
|
+ //状态记录
|
|
|
KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrack(wOrderId, null, null, status);
|
|
|
+ //辅助单位
|
|
|
+ List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, address.getAddressType());
|
|
|
+ //辅助单位
|
|
|
+ List<GoodsUnitVo> assistUnit = kwtLogisticsOrderGoodsService.assistUnit(subtask.getLOrderId());
|
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
trackData.put("id", track != null ? track.getId() : null);
|
|
|
- trackData.put("wOrderId", track != null ? track.getWOrderId() : null);
|
|
|
- trackData.put("wSubtaskId", track != null ? track.getWSubtaskId() : null);
|
|
|
- trackData.put("wAddressId", track != null ? track.getWAddressId() : null);
|
|
|
+ trackData.put("wOrderId", address.getWOrderId());
|
|
|
+ trackData.put("wSubtaskId", address.getWSubtaskId());
|
|
|
+ trackData.put("wAddressId", address.getId());
|
|
|
trackData.put("operateTime", track != null ? DateUtils.format(track.getOperateTime(), DateUtils.FORMAT11) : null);
|
|
|
trackData.put("operateStatus", track != null);
|
|
|
trackData.put("createTime", track != null ? track.getCreateTime() : null);
|
|
|
@@ -1794,32 +1980,18 @@ public class KwtWaybillOrderV1Service {
|
|
|
trackData.put("statusName", CarWaybillEnum.getName(status));
|
|
|
trackData.put("planTime", track != null ? address.getPlanTime() : null);
|
|
|
trackData.put("entrustAmount", track != null ? address.getEntrustAmount() : null);
|
|
|
+ trackData.put("unit", subtask.getUnit());
|
|
|
+ trackData.put("unitName", unitMap.get(subtask.getUnit()));
|
|
|
trackData.put("goodsName", goods != null ? goods.getGoodsName() : null);
|
|
|
trackData.put("addressName", address.getName());
|
|
|
trackData.put("addressCityName", address.getCityName());
|
|
|
trackData.put("addressDetail", address.getDetailAddress());
|
|
|
+ trackData.put("loading", loading);
|
|
|
+ trackData.put("assistUnit", assistUnit);
|
|
|
trackList.add(trackData);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //数据处理
|
|
|
- /*int index = 0;
|
|
|
- boolean operateStatus = true;
|
|
|
- for (Map<String, Object> track:trackList) {
|
|
|
- index ++;
|
|
|
- if(index == trackList.size()) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- //下一个状态
|
|
|
- Map<String, Object> backTrack = trackList.get(index);
|
|
|
- //状态
|
|
|
- int status = NumberUtils.parseInt(track.get("status"));
|
|
|
- //操作状态
|
|
|
- operateStatus = !waybillOrder.getStatus().equals(status) && operateStatus;
|
|
|
- track.put("operateTime", backTrack.get("operateTime"));
|
|
|
- track.put("operateStatus", operateStatus);
|
|
|
- }*/
|
|
|
-
|
|
|
Map<String, Object> result = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
result.put("wOrderId", wOrderId);
|
|
|
result.put("wOrderNo", waybillOrder.getWOrderNo());
|
|
|
@@ -2026,7 +2198,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
public static BigDecimal deficitPrice(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss,
|
|
|
String lossUnit, BigDecimal goodsPrice) {
|
|
|
//亏吨<=0
|
|
|
- if (deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {
|
|
|
+ if (deficitAmount == null && deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {
|
|
|
return new BigDecimal(Global.AMOUNT);
|
|
|
}
|
|
|
//承运订单亏吨扣款=(承运订单亏吨量 -(承运订单装货量 * 承运订单合理损耗))* 扣亏货值
|