|
|
@@ -187,7 +187,9 @@ public class AcceptCarriageOrderService {
|
|
|
.eq(KwtLogisticsOrder::getDelFlag, NumberConstant.ZERO)
|
|
|
.apply(logisticsOrder.getId() != null, "FIND_IN_SET ('" + bo.getLOrderId() + "', pids)").ne(KwtLogisticsOrder::getId, bo.getLOrderId()))
|
|
|
.stream().count();
|
|
|
- String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, logisticsOrder.getType(), String.valueOf(level), String.valueOf(number));
|
|
|
+ String pidOrderNo = logisticsOrder.getLOrderNo();
|
|
|
+ String substring = pidOrderNo.substring(0, 11);
|
|
|
+ String lOrderNo = substring + logisticsOrder.getType() + String.valueOf(level) + String.valueOf(number + 1);
|
|
|
Long orderId = new IdWorker(NumberConstant.ONE).nextId();
|
|
|
/**分包托运需要判断处于哪一级分包托运
|
|
|
* 需要记录当前分包数据-分包上游数据
|
|
|
@@ -235,7 +237,7 @@ public class AcceptCarriageOrderService {
|
|
|
}
|
|
|
insertSubcontractLogisticsGoods(bo, lOrderNo, orderId);
|
|
|
insertSubcontractLogisticsOrder(bo, lOrderNo, order, orderId, pids, orderStatus, logisticsOrder);
|
|
|
- insertSubcontractLogisticsOrderContract(bo, orderId);
|
|
|
+ insertSubcontractLogisticsOrderContract(bo, orderId, infoResDto);
|
|
|
insertSubcontractLogisticsOrderUnit(bo, orderId);
|
|
|
insertSubcontractLogisticsOrderAddress(bo, orderId, logisticsOrder);
|
|
|
insertLogisticsOrderTrack(bo, orderId, orderStatus);
|
|
|
@@ -284,7 +286,7 @@ public class AcceptCarriageOrderService {
|
|
|
logisticsOrder.setLOrderNo(lOrderNo);
|
|
|
logisticsOrder.setLOrderPid(Long.parseLong(bo.getLOrderId()));
|
|
|
logisticsOrder.setSettlementCycle(bo.getSettlementCycle());
|
|
|
- logisticsOrder.setPrice(new BigDecimal(bo.getPrice()));
|
|
|
+ logisticsOrder.setPrice(bo.getPrice());
|
|
|
logisticsOrder.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()) == null ?
|
|
|
null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()).getValue()));
|
|
|
if (!bo.getIsFullDose()) {
|
|
|
@@ -301,7 +303,7 @@ public class AcceptCarriageOrderService {
|
|
|
}
|
|
|
logisticsOrder.setLoss(bo.getLoss() == null ? null : bo.getLoss());
|
|
|
logisticsOrder.setLossUnit(bo.getLossUnit());
|
|
|
- logisticsOrder.setGoodsPrice(bo.getGoodsPrice() == null ? null : new BigDecimal(bo.getGoodsPrice()));
|
|
|
+ logisticsOrder.setGoodsPrice(bo.getGoodsPrice());
|
|
|
BigDecimal decimal = new BigDecimal(NumberConstant.ZERO);
|
|
|
logisticsOrder.setSubcontractAmount(decimal);
|
|
|
logisticsOrder.setEntrustAmount(decimal);
|
|
|
@@ -509,11 +511,14 @@ public class AcceptCarriageOrderService {
|
|
|
* @param bo
|
|
|
* @param orderId
|
|
|
*/
|
|
|
- private void insertSubcontractLogisticsOrderContract(SubcontractConsignmentDTO bo, Long orderId) {
|
|
|
+ private void insertSubcontractLogisticsOrderContract(SubcontractConsignmentDTO bo, Long orderId, ContractCommonInfoResDto infoResDto) {
|
|
|
KwtLogisticsOrderContract kwtLogisticsOrderContract = new KwtLogisticsOrderContract();
|
|
|
kwtLogisticsOrderContract.setId(new IdWorker(NumberConstant.ONE).nextId());
|
|
|
kwtLogisticsOrderContract.setLOrderId(orderId);
|
|
|
kwtLogisticsOrderContract.setContractId(Long.parseLong(bo.getContractId()));
|
|
|
+ kwtLogisticsOrderContract.setContractName(bo.getContractName() == null ? infoResDto.getContactName() : bo.getContractName());
|
|
|
+ kwtLogisticsOrderContract.setContractNo(bo.getContractNo() == null ? infoResDto.getContractCode() : bo.getContractNo());
|
|
|
+ kwtLogisticsOrderContract.setSigningWay(infoResDto.getSigningWay() != null ? String.valueOf(infoResDto.getSigningWay()) : null);
|
|
|
kwtLogisticsOrderContract.setRemark(bo.getRemark());
|
|
|
kwtLogisticsOrderContract.setCreateBy(LoginUserHolder.getUserId());
|
|
|
kwtLogisticsOrderContract.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
@@ -547,7 +552,7 @@ public class AcceptCarriageOrderService {
|
|
|
//存放所有的分包的父级id
|
|
|
order.setPids(pids);
|
|
|
order.setSettlementCycle(bo.getSettlementCycle());
|
|
|
- order.setPrice(new BigDecimal(bo.getPrice()));
|
|
|
+ order.setPrice(bo.getPrice());
|
|
|
order.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()) == null ?
|
|
|
null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()).getValue()));
|
|
|
order.setAmount(bo.getCarryingCapacity());
|
|
|
@@ -556,7 +561,7 @@ public class AcceptCarriageOrderService {
|
|
|
// order.setLossUnit(bo.getLossUnit());
|
|
|
order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()) == null ?
|
|
|
null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()).getValue());
|
|
|
- order.setGoodsPrice(bo.getGoodsPrice() == null ? null : new BigDecimal(bo.getGoodsPrice()));
|
|
|
+ order.setGoodsPrice(bo.getGoodsPrice() == null ? null : bo.getGoodsPrice());
|
|
|
order.setGoodsPriceUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getGoodsPriceUnit()) == null ?
|
|
|
null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getGoodsPriceUnit()).getValue());
|
|
|
// order.setGoodsPriceUnit(bo.getGoodsPriceUnit());
|
|
|
@@ -620,6 +625,7 @@ public class AcceptCarriageOrderService {
|
|
|
HttpResult httpResult = ValidUtil.serviceValid(orderDTO);
|
|
|
if (!String.valueOf(httpResult.getCode()).equals(String.valueOf(HttpStatus.SUCCESS_CODE))) {
|
|
|
result.setMsg(httpResult.getMsg());
|
|
|
+ result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
|
|
|
return result;
|
|
|
}
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
|
@@ -634,11 +640,13 @@ public class AcceptCarriageOrderService {
|
|
|
}
|
|
|
if (!LogisticsOrderEnum.PENDING_ORDER.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))) {
|
|
|
result.setMsg("该【" + orderDTO.getLOrderNo() + "】单号并不是待接单状态!");
|
|
|
+ result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
|
|
|
return result;
|
|
|
}
|
|
|
KwtLogisticsOrderContract contract = kwtLogisticsOrderContractMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderContract>()
|
|
|
.eq(KwtLogisticsOrderContract::getLOrderId, orderDTO.getLOrderId()));
|
|
|
if (contract == null) {
|
|
|
+ result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
|
|
|
result.setMsg("该订单并未存在合同信息!");
|
|
|
return result;
|
|
|
}
|
|
|
@@ -689,8 +697,7 @@ public class AcceptCarriageOrderService {
|
|
|
.set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId()));
|
|
|
} else {
|
|
|
orderStatus = LogisticsOrderEnum.REJECT_ORDER.getCode();
|
|
|
- //todo 当前为删除订单 后续要改为拒绝接单 数据统计在页面已退回状态中
|
|
|
- //删除订单
|
|
|
+ //todo 改为拒绝接单 数据统计在页面已退回状态中
|
|
|
logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
|
|
|
.eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
|
|
|
.eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
|
|
|
@@ -698,18 +705,45 @@ public class AcceptCarriageOrderService {
|
|
|
.set(KwtLogisticsOrder::getUpdateTime, new Date())
|
|
|
.set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId()));
|
|
|
|
|
|
- /**数据回退至贸易订单*/
|
|
|
- if (logisticsOrder.getTOrderId() != null) {
|
|
|
- /**将生成的分配量->贸易订单*/
|
|
|
- CreateOrCancelLogisticsOrderParam param = new CreateOrCancelLogisticsOrderParam();
|
|
|
- param.setTOrderId(Long.valueOf(logisticsOrder.getTOrderId()));
|
|
|
- param.setEntrustAmount(logisticsOrder.getAmount().negate());
|
|
|
- param.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
- param.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
- HttpResult result1 = tradeOrderInfoService.createOrCancelLogisticsOrder(param);
|
|
|
- if (result1.getCode() != HttpStatus.SUCCESS_CODE) {
|
|
|
- log.info("{}拒绝接单->贸易订单失败!,返回信息:{}", "id:" + logisticsOrder.getTOrderId() + "orderNo" + logisticsOrder.getTOrderNo(), JSONObject.toJSONString(result1));
|
|
|
- throw new BusinessException("{" + logisticsOrder.getTOrderNo() + "} 拒绝接单->贸易订单失败!");
|
|
|
+ /**数据回退至贸易订单/上级物流订单*/
|
|
|
+ if (logisticsOrder.getPid() != null) {
|
|
|
+ KwtLogisticsOrder kwtLogisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
|
+ .eq(KwtLogisticsOrder::getId, logisticsOrder.getPid())
|
|
|
+ );
|
|
|
+ if (kwtLogisticsOrder != null) {
|
|
|
+ kwtLogisticsOrder.setEntrustAmount(kwtLogisticsOrder.getEntrustAmount().subtract(logisticsOrder.getAmount()));
|
|
|
+ kwtLogisticsOrder.setSubcontractAmount(kwtLogisticsOrder.getSubcontractAmount().subtract(logisticsOrder.getAmount()));
|
|
|
+ kwtLogisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ kwtLogisticsOrder.setUpdateTime(new Date());
|
|
|
+ logisticsOrderMapper.updateById(kwtLogisticsOrder);
|
|
|
+ /**数据回归mongodb*/
|
|
|
+ SckwLogisticsOrder order = new SckwLogisticsOrder();
|
|
|
+ order.set_id(kwtLogisticsOrder.getId());
|
|
|
+ order.setLOrderId(kwtLogisticsOrder.getId());
|
|
|
+ order.setEntrustAmount(kwtLogisticsOrder.getEntrustAmount());
|
|
|
+ order.setSubcontractAmount(kwtLogisticsOrder.getSubcontractAmount());
|
|
|
+ order.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ order.setUpdateTime(new Date());
|
|
|
+ order.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
+ SckwBusSum busSum = new SckwBusSum();
|
|
|
+ busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
|
|
|
+ busSum.setMethod(NumberConstant.TWO);
|
|
|
+ busSum.setObject(order);
|
|
|
+ streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (logisticsOrder.getTOrderId() != null) {
|
|
|
+ /**将生成的分配量->贸易订单*/
|
|
|
+ CreateOrCancelLogisticsOrderParam param = new CreateOrCancelLogisticsOrderParam();
|
|
|
+ param.setTOrderId(Long.valueOf(logisticsOrder.getTOrderId()));
|
|
|
+ param.setEntrustAmount(logisticsOrder.getAmount().negate());
|
|
|
+ param.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ param.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
+ HttpResult result1 = tradeOrderInfoService.createOrCancelLogisticsOrder(param);
|
|
|
+ if (result1.getCode() != HttpStatus.SUCCESS_CODE) {
|
|
|
+ log.info("{}拒绝接单->贸易订单失败!,返回信息:{}", "id:" + logisticsOrder.getTOrderId() + "orderNo" + logisticsOrder.getTOrderNo(), JSONObject.toJSONString(result1));
|
|
|
+ throw new BusinessException("{" + logisticsOrder.getTOrderNo() + "} 拒绝接单->贸易订单失败!");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -807,14 +841,32 @@ public class AcceptCarriageOrderService {
|
|
|
//联查数据
|
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
|
for (SubcontractConsignmentVO subcontractConsignmentVO : list) {
|
|
|
- subcontractConsignmentVO.setStatusLabel(CarWaybillEnum.getWaybillOrderDestination(subcontractConsignmentVO.getStatus()));
|
|
|
- subcontractConsignmentVO.setPriceType(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getPriceType()));
|
|
|
- subcontractConsignmentVO.setLossUnit(weightDictData == null ? null : weightDictData.get(subcontractConsignmentVO.getLossUnit()));
|
|
|
- subcontractConsignmentVO.setGoodsPriceUnit(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getGoodsPriceUnit()));
|
|
|
+ subcontractConsignmentVO.setStatusLabel(LogisticsOrderEnum.getDestination(subcontractConsignmentVO.getStatus()));
|
|
|
+ if (subcontractConsignmentVO.getPriceType() != null) {
|
|
|
+ subcontractConsignmentVO.setPriceTypeLabel(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getPriceType()));
|
|
|
+ }
|
|
|
+ if (subcontractConsignmentVO.getLossUnit() != null) {
|
|
|
+ subcontractConsignmentVO.setLossUnitLabel(weightDictData == null ? null : weightDictData.get(subcontractConsignmentVO.getLossUnit()));
|
|
|
+ }
|
|
|
+ if (subcontractConsignmentVO.getGoodsPriceUnit() != null) {
|
|
|
+ subcontractConsignmentVO.setGoodsPriceUnitLabel(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getGoodsPriceUnit()));
|
|
|
+ }
|
|
|
//分包托运不需要展示签约方式
|
|
|
// subcontractConsignmentVO.setContractSigningWay(singDictData == null ? null : singDictData.get(subcontractConsignmentVO.getContractSigningWay()));
|
|
|
- subcontractConsignmentVO.setBillingMode(chargingDictData == null ? null : chargingDictData.get(subcontractConsignmentVO.getBillingMode()));
|
|
|
- subcontractConsignmentVO.setSettlementCycle(settlementDictData == null ? null : settlementDictData.get(subcontractConsignmentVO.getSettlementCycle()));
|
|
|
+ if (subcontractConsignmentVO.getBillingMode() != null) {
|
|
|
+ subcontractConsignmentVO.setBillingModeLabel(chargingDictData == null ? null : chargingDictData.get(subcontractConsignmentVO.getBillingMode()));
|
|
|
+ }
|
|
|
+ if (subcontractConsignmentVO.getSettlementCycle() != null) {
|
|
|
+ subcontractConsignmentVO.setSettlementCycleLabel(settlementDictData == null ? null : settlementDictData.get(subcontractConsignmentVO.getSettlementCycle()));
|
|
|
+ }
|
|
|
+ if (subcontractConsignmentVO.getCreateBy() != null) {
|
|
|
+ UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(Long.parseLong(subcontractConsignmentVO.getCreateBy()));
|
|
|
+ if (userCacheResDto != null) {
|
|
|
+ subcontractConsignmentVO.setCreateName(userCacheResDto.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ subcontractConsignmentVO.setLoadAddressDetail(subcontractConsignmentVO.getLoadCityName() + subcontractConsignmentVO.getLoadAddress());
|
|
|
+ subcontractConsignmentVO.setUnloadAddressDetail(subcontractConsignmentVO.getUnloadCityName() + subcontractConsignmentVO.getUnloadAddress());
|
|
|
}
|
|
|
allList.addAll(list);
|
|
|
}
|
|
|
@@ -1592,7 +1644,7 @@ public class AcceptCarriageOrderService {
|
|
|
/**保存新建数据*/
|
|
|
Long lOrderId = new IdWorker(NumberConstant.ONE).nextId();
|
|
|
/**生成订单编号*/
|
|
|
- String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, "2", "0", "1");
|
|
|
+ String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, "2", "0", "0");
|
|
|
/**根据合同计算当前单据状态*/
|
|
|
/**判断生成物流订单应生成哪一种单据状态*/
|
|
|
List<Long> contractList = new ArrayList<>();
|