|
|
@@ -22,7 +22,11 @@ import com.sckw.fleet.api.model.vo.RDriverVo;
|
|
|
import com.sckw.fleet.api.model.vo.RTruckVo;
|
|
|
import com.sckw.mongo.model.SckwWaybillOrder;
|
|
|
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.RemoteUserService;
|
|
|
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.SysDictResDto;
|
|
|
@@ -96,6 +100,8 @@ public class KwtWaybillOrderV1Service {
|
|
|
private StreamBridge streamBridge;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false)
|
|
|
private RemoteSystemService remoteSystemService;
|
|
|
+ @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
|
|
|
+ private RemoteUserService remoteUserService;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false)
|
|
|
private RemoteFleetService remoteFleetService;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false)
|
|
|
@@ -145,12 +151,12 @@ public class KwtWaybillOrderV1Service {
|
|
|
* @author zk
|
|
|
* @date 2024/3/8
|
|
|
**/
|
|
|
- public PageResult findListPage(WaybillOrderQueryDto params){
|
|
|
- params.setEntId(LoginUserHolder.getEntId());
|
|
|
- // 设置分页参数
|
|
|
- PageHelper.startPage(params.getPage(), params.getPageSize());
|
|
|
+ public List<WaybillOrderSelectVo> findListPage(WaybillOrderQueryDto params){
|
|
|
params.setQueryWstatus(CarWaybillTableTopEnum.getValue(params.getStatus()));
|
|
|
List<WaybillOrderSelectVo> list = waybillOrderV1Dao.findListPage(params);
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ return list;
|
|
|
+ }
|
|
|
|
|
|
//单位
|
|
|
Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.UNIT_TYPE.getType()));
|
|
|
@@ -161,7 +167,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
findListPageHandle(waybillOrder, unitMap);
|
|
|
waybillOrder.setStatusLabel(CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
|
}
|
|
|
- return PageHelperUtil.getPageResult(new PageInfo<>(list));
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -198,6 +204,41 @@ public class KwtWaybillOrderV1Service {
|
|
|
return PageHelperUtil.getPageResult(new PageInfo<>(data));
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param params {page:页数、pageSize:每页条数、。。。}
|
|
|
+ * @desc 分页查询-运营端
|
|
|
+ * @author zk
|
|
|
+ * @date 2024/3/8
|
|
|
+ **/
|
|
|
+ public List<WaybillOrderSelectVo> findListPageManagement(WaybillOrderQueryDto params) {
|
|
|
+ //客户经理权限过滤
|
|
|
+ List<Long> authEntIdList = LoginUserHolder.getAuthEntIdList();
|
|
|
+ if (CollectionUtils.isEmpty(authEntIdList)) {
|
|
|
+ List<Long> ids = remoteUserService.findEnterpriseIdsByUserIdIsMain(LoginUserHolder.getUserId());
|
|
|
+ if (CollectionUtils.isEmpty(ids)){
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ authEntIdList.addAll(ids);
|
|
|
+ }
|
|
|
+ params.setEntIds(authEntIdList);
|
|
|
+ params.setQueryWstatus(CarWaybillTableTopEnum.getValue(params.getStatus()));
|
|
|
+ List<WaybillOrderSelectVo> list = waybillOrderV1Dao.findListPage(params);
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ //单位
|
|
|
+ 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()));
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param wOrderId 运单ID
|
|
|
* @desc 运单详情
|
|
|
@@ -222,9 +263,14 @@ public class KwtWaybillOrderV1Service {
|
|
|
List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIdList);
|
|
|
Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
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, 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();
|
|
|
@@ -250,7 +296,8 @@ public class KwtWaybillOrderV1Service {
|
|
|
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("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);
|
|
|
addressList.add(addressData);
|
|
|
}
|
|
|
@@ -260,7 +307,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
for (KwtWaybillOrderTrack track:tracks) {
|
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
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("operateTime", track.getOperateTime());
|
|
|
trackData.put("createTime", track.getCreateTime());
|
|
|
@@ -283,6 +330,9 @@ public class KwtWaybillOrderV1Service {
|
|
|
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.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.setAddresses(addressList);
|
|
|
waybillDetail.setTrajectory(trajectory);
|
|
|
@@ -375,6 +425,9 @@ public class KwtWaybillOrderV1Service {
|
|
|
//单位
|
|
|
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, Map<String, String>> dictLoss = remoteSystemService.queryDictByType(List.of(DictTypeEnum.TAX_RATE_TYPE.getType()));
|
|
|
+ Map<String, String> lossMap = CollectionUtils.isNotEmpty(dictLoss) ? dictLoss.get(DictTypeEnum.TAX_RATE_TYPE.getType()) : new HashMap<>(NumberConstant.SIXTEEN);
|
|
|
|
|
|
//物流订单
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
@@ -406,6 +459,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
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);
|
|
|
+ addressData.put("operateStatus", ticket != null);
|
|
|
addressList.add(addressData);
|
|
|
}
|
|
|
|
|
|
@@ -415,6 +469,8 @@ public class KwtWaybillOrderV1Service {
|
|
|
BeanUtils.copyPropertiesValue(subtask, waybillDetail);
|
|
|
waybillDetail.setWOrderId(waybillOrder.getId());
|
|
|
waybillDetail.setLOrderNo(logisticsOrder.getLOrderNo());
|
|
|
+ waybillDetail.setLoss(logisticsOrder.getLoss());
|
|
|
+ waybillDetail.setLossUnitLabe(lossMap.get(waybillDetail.getUnit()));
|
|
|
waybillDetail.setWSubtaskId(subtask.getId());
|
|
|
waybillDetail.setStatusLabel(CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
|
waybillDetail.setUnitLabel(unitMap.get(waybillDetail.getUnit()));
|
|
|
@@ -445,13 +501,13 @@ public class KwtWaybillOrderV1Service {
|
|
|
//卸货时间
|
|
|
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) {
|
|
|
@@ -584,12 +640,14 @@ public class KwtWaybillOrderV1Service {
|
|
|
trackData.put("addressName", address.getName());
|
|
|
trackData.put("addressCityName", address.getCityName());
|
|
|
trackData.put("addressDetail", address.getDetailAddress());
|
|
|
+ trackData.put("lat", address.getLat());
|
|
|
+ trackData.put("lng", address.getLng());
|
|
|
trackList.add(trackData);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//审核状态
|
|
|
- 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);
|
|
|
trackData.put("operateTime", track != null ? DateUtils.format(track.getOperateTime(), DateUtils.FORMAT11) : null);
|
|
|
trackData.put("operateStatus", track != null);
|
|
|
@@ -653,6 +711,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
|
|
|
//数据组装
|
|
|
JSONObject addressJson = new JSONObject();
|
|
|
+ addressJson.put("addressType", address.getAddressType());
|
|
|
addressJson.put("addressName", address.getName());
|
|
|
addressJson.put("addressCityName", address.getCityName());
|
|
|
addressJson.put("addressDetail", address.getDetailAddress());
|
|
|
@@ -669,6 +728,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
}
|
|
|
|
|
|
JSONObject order = JSON.parseObject(JSON.toJSONString(waybillOrder));
|
|
|
+ order.put("typeName", waybillOrder.getType() == NumberConstant.ONE ? "趟次" : "循环");
|
|
|
order.put("statusName", CarWaybillEnum.getName(waybillOrder.getStatus()));
|
|
|
order.put("carrierFirmName", ents.get(waybillOrder.getEntId()) != null ? ents.get(waybillOrder.getEntId()).getFirmName() : null);
|
|
|
order.put("addresses", addressList);
|
|
|
@@ -1120,7 +1180,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
//承运订单已委派量=承运订单原委派量-当前车辆运单委派量
|
|
|
BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? NumberConstant.ZERO_TWO : logisticsOrder.getEntrustAmount();
|
|
|
- logisticsOrder.setEntrustAmount(entrustAmount.subtract(BigDecimal.valueOf(subtask.getEntrustAmount())));
|
|
|
+ logisticsOrder.setEntrustAmount(entrustAmount.subtract(subtask.getEntrustAmount()));
|
|
|
logisticsOrderDao.updateById(logisticsOrder);
|
|
|
}
|
|
|
}
|
|
|
@@ -1191,7 +1251,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
//承运订单已委派量=承运订单原委派量+当前车辆运单委派量
|
|
|
BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? NumberConstant.ZERO_TWO : logisticsOrder.getEntrustAmount();
|
|
|
- logisticsOrder.setEntrustAmount(entrustAmount.add(BigDecimal.valueOf(subtask.getEntrustAmount())));
|
|
|
+ logisticsOrder.setEntrustAmount(entrustAmount.add(subtask.getEntrustAmount()));
|
|
|
logisticsOrderDao.updateById(logisticsOrder);
|
|
|
}
|
|
|
return HttpResult.ok();
|
|
|
@@ -1256,9 +1316,29 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
//承运订单已委派量=承运订单原委派量-当前车辆运单委派量
|
|
|
BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? NumberConstant.ZERO_TWO : logisticsOrder.getEntrustAmount();
|
|
|
- logisticsOrder.setEntrustAmount(entrustAmount.subtract(BigDecimal.valueOf(subtask.getEntrustAmount())));
|
|
|
+ logisticsOrder.setEntrustAmount(entrustAmount.subtract(subtask.getEntrustAmount()));
|
|
|
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();
|
|
|
}
|
|
|
|
|
|
@@ -1364,9 +1444,29 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
|
|
|
//承运订单已委派量=承运订单原委派量-当前车辆运单委派量
|
|
|
BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? NumberConstant.ZERO_TWO : logisticsOrder.getEntrustAmount();
|
|
|
- logisticsOrder.setEntrustAmount(entrustAmount.subtract(BigDecimal.valueOf(subtask.getEntrustAmount())));
|
|
|
+ logisticsOrder.setEntrustAmount(entrustAmount.subtract(subtask.getEntrustAmount()));
|
|
|
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();
|
|
|
}
|
|
|
|
|
|
@@ -1435,7 +1535,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtWaybillOrderSubtask orderSubtask = waybillOrderSubtaskDao.selectById(params.getWSubtaskId());
|
|
|
//榜单信息
|
|
|
List<WaybillOrderTicketLoadingDto> loading = params.getLoading();
|
|
|
- orderSubtask.setLoadAmount(waybillOrderTicketService.countAmount(loading, orderSubtask.getUnit(), BigDecimal.valueOf(orderSubtask.getLoadAmount())).doubleValue());
|
|
|
+ orderSubtask.setLoadAmount(waybillOrderTicketService.countAmount(loading, orderSubtask.getUnit(), orderSubtask.getLoadAmount()));
|
|
|
orderSubtask.setStatus(waybillOrder.getStatus());
|
|
|
waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
|
|
|
@@ -1514,11 +1614,11 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(orderSubtask.getLOrderId());
|
|
|
//榜单信息
|
|
|
List<WaybillOrderTicketLoadingDto> loading = params.getLoading();
|
|
|
- orderSubtask.setUnloadAmount(waybillOrderTicketService.countAmount(loading, orderSubtask.getUnit(), BigDecimal.valueOf(orderSubtask.getUnloadAmount())).doubleValue());
|
|
|
- orderSubtask.setDeficitAmount(BigDecimal.valueOf(orderSubtask.getLoadAmount()).subtract(BigDecimal.valueOf(orderSubtask.getUnloadAmount())).doubleValue());
|
|
|
- BigDecimal deficitPrice = deficitPrice(BigDecimal.valueOf(orderSubtask.getLoadAmount()), BigDecimal.valueOf(orderSubtask.getDeficitAmount()),
|
|
|
+ orderSubtask.setUnloadAmount(waybillOrderTicketService.countAmount(loading, orderSubtask.getUnit(), orderSubtask.getUnloadAmount()));
|
|
|
+ orderSubtask.setDeficitAmount(orderSubtask.getLoadAmount().subtract(orderSubtask.getUnloadAmount()));
|
|
|
+ BigDecimal deficitPrice = deficitPrice(orderSubtask.getLoadAmount(), orderSubtask.getDeficitAmount(),
|
|
|
logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
- orderSubtask.setDeficitPrice(deficitPrice.doubleValue());
|
|
|
+ orderSubtask.setDeficitPrice(deficitPrice);
|
|
|
orderSubtask.setStatus(waybillOrder.getStatus());
|
|
|
waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
|
|
|
@@ -1599,10 +1699,10 @@ public class KwtWaybillOrderV1Service {
|
|
|
subtaskNew.setId(null);
|
|
|
subtaskNew.setWOrderId(waybillOrderNew.getId());
|
|
|
subtaskNew.setWOrderNo(waybillOrderNew.getWOrderNo());
|
|
|
- subtaskNew.setLoadAmount(NumberConstant.ZERO_TWO.doubleValue());
|
|
|
- subtaskNew.setUnloadAmount(NumberConstant.ZERO_TWO.doubleValue());
|
|
|
- subtaskNew.setDeficitAmount(NumberConstant.ZERO_TWO.doubleValue());
|
|
|
- subtaskNew.setDeficitPrice(NumberConstant.ZERO_TWO.doubleValue());
|
|
|
+ subtaskNew.setLoadAmount(NumberConstant.ZERO_TWO);
|
|
|
+ subtaskNew.setUnloadAmount(NumberConstant.ZERO_TWO);
|
|
|
+ subtaskNew.setDeficitAmount(NumberConstant.ZERO_TWO);
|
|
|
+ subtaskNew.setDeficitPrice(NumberConstant.ZERO_TWO);
|
|
|
subtaskNew.setStatus(waybillOrderNew.getStatus());
|
|
|
subtaskNew.setCreateTime(null);
|
|
|
subtaskNew.setUpdateTime(null);
|
|
|
@@ -1675,12 +1775,12 @@ public class KwtWaybillOrderV1Service {
|
|
|
BigDecimal loadAmount = loadTickets.stream().map(KwtWaybillOrderTicket::getAmount ).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
//卸货-总量
|
|
|
BigDecimal unloadAmount = unloadTickets.stream().map(KwtWaybillOrderTicket::getAmount ).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- orderSubtask.setLoadAmount(loadAmount.doubleValue());
|
|
|
- orderSubtask.setUnloadAmount(unloadAmount.doubleValue());
|
|
|
- orderSubtask.setDeficitAmount(BigDecimal.valueOf(orderSubtask.getLoadAmount()).subtract(BigDecimal.valueOf(orderSubtask.getUnloadAmount())).doubleValue());
|
|
|
- BigDecimal deficitPrice = deficitPrice(BigDecimal.valueOf(orderSubtask.getLoadAmount()), BigDecimal.valueOf(orderSubtask.getDeficitAmount()),
|
|
|
+ orderSubtask.setLoadAmount(loadAmount);
|
|
|
+ orderSubtask.setUnloadAmount(unloadAmount);
|
|
|
+ orderSubtask.setDeficitAmount(orderSubtask.getLoadAmount().subtract(orderSubtask.getUnloadAmount()));
|
|
|
+ BigDecimal deficitPrice = deficitPrice(orderSubtask.getLoadAmount(), orderSubtask.getDeficitAmount(),
|
|
|
logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
- orderSubtask.setDeficitPrice(deficitPrice.doubleValue());
|
|
|
+ orderSubtask.setDeficitPrice(deficitPrice);
|
|
|
waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
|
|
|
/*4、更新车辆运单子单状态*/
|
|
|
@@ -1888,12 +1988,12 @@ public class KwtWaybillOrderV1Service {
|
|
|
BigDecimal loadAmount = loadTickets.stream().map(KwtWaybillOrderTicket::getAmount ).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
//卸货-总量
|
|
|
BigDecimal unloadAmount = unloadTickets.stream().map(KwtWaybillOrderTicket::getAmount ).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- orderSubtask.setLoadAmount(loadAmount.doubleValue());
|
|
|
- orderSubtask.setUnloadAmount(unloadAmount.doubleValue());
|
|
|
- orderSubtask.setDeficitAmount(BigDecimal.valueOf(orderSubtask.getLoadAmount()).subtract(BigDecimal.valueOf(orderSubtask.getUnloadAmount())).doubleValue());
|
|
|
- BigDecimal deficitPrice = deficitPrice(BigDecimal.valueOf(orderSubtask.getLoadAmount()), BigDecimal.valueOf(orderSubtask.getDeficitAmount()),
|
|
|
+ orderSubtask.setLoadAmount(loadAmount);
|
|
|
+ orderSubtask.setUnloadAmount(unloadAmount);
|
|
|
+ orderSubtask.setDeficitAmount(orderSubtask.getLoadAmount().subtract(orderSubtask.getUnloadAmount()));
|
|
|
+ BigDecimal deficitPrice = deficitPrice(orderSubtask.getLoadAmount(), orderSubtask.getDeficitAmount(),
|
|
|
logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
|
|
|
- orderSubtask.setDeficitPrice(deficitPrice.doubleValue());
|
|
|
+ orderSubtask.setDeficitPrice(deficitPrice);
|
|
|
waybillOrderSubtaskDao.updateById(orderSubtask);
|
|
|
}
|
|
|
}
|
|
|
@@ -1922,7 +2022,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
WaybillCountVo unloadCount = waybillOrderV1Dao.findTicketCountByAddress(queryParams);
|
|
|
|
|
|
//委派量多退少补entrustAmount(委派未运量=运单子单承运委派量-运单子单装货量)
|
|
|
- BigDecimal residue = BigDecimal.valueOf(subtask.getEntrustAmount()).subtract(BigDecimal.valueOf(subtask.getLoadAmount()));
|
|
|
+ BigDecimal residue = subtask.getEntrustAmount().subtract(subtask.getLoadAmount());
|
|
|
logisticsOrder.setEntrustAmount(logisticsOrder.getEntrustAmount().subtract(residue));
|
|
|
logisticsOrder.setLoadAmount(loadCount.getAmount());
|
|
|
logisticsOrder.setLoadTime(loadCount.getLoadTime());
|
|
|
@@ -2086,7 +2186,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
//榜单信息
|
|
|
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);
|
|
|
trackData.put("wTicketId", ticket != null ? ticket.getId() : null);
|
|
|
@@ -2161,7 +2261,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
//榜单信息
|
|
|
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());
|
|
|
|
|
|
@@ -2174,7 +2274,6 @@ public class KwtWaybillOrderV1Service {
|
|
|
result.put("driverName", waybillOrder.getDriverName());
|
|
|
result.put("driverPhone", waybillOrder.getDriverPhone());
|
|
|
result.put("driverIdcard", waybillOrder.getDriverIdcard());
|
|
|
-
|
|
|
result.put("wTicketId", ticket != null ? ticket.getId() : null);
|
|
|
result.put("wSubtaskId", subtask.getId());
|
|
|
result.put("wAddressId", address.getId());
|
|
|
@@ -2219,7 +2318,6 @@ public class KwtWaybillOrderV1Service {
|
|
|
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<>();
|
|
|
//运单状态(待接单、待出车、出车)
|
|
|
@@ -2255,9 +2353,9 @@ public class KwtWaybillOrderV1Service {
|
|
|
KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(subtask != null ? subtask.getLOrderId() : null);
|
|
|
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 = track != null ? waybillOrderTicketService.agreementV1(subtask, track.getWAddressId()) : null;
|
|
|
//辅助单位
|
|
|
List<GoodsUnitVo> assistUnit = kwtLogisticsOrderGoodsService.assistUnit(subtask.getLOrderId());
|
|
|
Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
|