| | |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.system.service.ISystemDataNoService; |
| | | import com.ruoyi.tms.domain.*; |
| | | import com.ruoyi.tms.domain.vo.DpDriverDispatchVo; |
| | | import com.ruoyi.tms.domain.vo.DriverDispatchVo; |
| | | import com.ruoyi.tms.mapper.TmsFinanceMapper; |
| | | import com.ruoyi.tms.mapper.TmsQuoteDetailMapper; |
| | | import com.ruoyi.tms.mapper.TmsQuotePlanMapper; |
| | | import com.ruoyi.tms.domain.vo.ServiceProviderVo; |
| | | import com.ruoyi.tms.mapper.*; |
| | | import com.ruoyi.tms.service.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | import com.ruoyi.common.enums.DataSourceType; |
| | | import com.ruoyi.common.core.service.BaseService; |
| | | |
| | | import com.ruoyi.tms.mapper.TmsDispatchOrderMapper; |
| | | import com.ruoyi.common.core.text.Convert; |
| | | |
| | | /** |
| | |
| | | private ITmsReceivableFeeService tmsReceivableFeeService; |
| | | @Autowired |
| | | private ITmsReceivableFeeItemService tmsReceivableFeeItemService; |
| | | @Autowired |
| | | private TmsDriverDispatchServiceImpl tmsDriverDispatchServiceImpl; |
| | | @Resource |
| | | private TmsLoadingServiceProviderMapper tmsLoadingServiceProviderMapper; |
| | | @Resource |
| | | private TmsServiceProviderMapper tmsServiceProviderMapper; |
| | | @Resource |
| | | private TmsCustomsServiceProviderMapper tmsCustomsServiceProviderMapper; |
| | | |
| | | /** |
| | | * 查询调度单管理 |
| | |
| | | // 客户ID |
| | | Integer customerId = tmsDispatchOrder.getCustomerId(); |
| | | // 1、是否是自营 0 = 是 1 = 否 获取运费 |
| | | if(tmsDispatchOrder.getOperationMode().equals(1)){ |
| | | //if(tmsDispatchOrder.getOperationMode().equals(1)){ |
| | | // 非自营需要有运费 |
| | | // 车辆服务商 |
| | | // 实际车型 |
| | |
| | | // 出发路线 44,4404,440402,440402102 |
| | | String shipperRegionCode = tmsDispatchOrder.getStartRegionCode(); |
| | | // 目的地路线 81,8100,810000 |
| | | String receiverRegionCode = tmsDispatchOrder.getReceiverRegionCode(); |
| | | String receiverRegionCode = tmsDispatchOrder.getEndRegionCode(); |
| | | |
| | | // 查询应收规则 |
| | | TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>() |
| | |
| | | throw new RuntimeException("调度单"+tmsDispatchOrder.getDispatchNo()+"未维护应收运费报价,请维护数据后再重新生成"); |
| | | } |
| | | |
| | | if (tmsQuoteDetail.getIsSegmentedInvoice() == 0){ |
| | | if (tmsQuoteDetail.getIsSegmentedInvoice() == 1){ |
| | | TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem(); |
| | | tmsReceivableFeeItem.setFeeType(0); |
| | | tmsReceivableFeeItem.setFeeName("运费"); |
| | |
| | | tmsReceivableFeeItems.add(tmsReceivableFeeItemTwo); |
| | | |
| | | } |
| | | } |
| | | //} |
| | | // 2、 获取实报实销费用 |
| | | List<TmsFinanceDetail> tmsFinanceDetails = tmsFinanceDetailService.selectTmsFinanceDetailList(new TmsFinanceDetail() {{ |
| | | setDispatchOrderId(tmsDispatchOrder.getId()); |
| | |
| | | // 出发路线 44,4404,440402,440402102 |
| | | String shipperRegionCode = tmsDispatchOrder.getStartRegionCode(); |
| | | // 目的地路线 81,8100,810000 |
| | | String receiverRegionCode = tmsDispatchOrder.getReceiverRegionCode(); |
| | | String receiverRegionCode = tmsDispatchOrder.getEndRegionCode(); |
| | | |
| | | // 查询应收规则 |
| | | TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>() |
| | | .eq(TmsQuoteDetail::getVehicleProviderId, vehicleProviderId) |
| | | .eq(TmsQuoteDetail::getVehicleType, actualVehicleType) |
| | | .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode) |
| | | .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode) |
| | | .eq(TmsQuoteDetail::getPlanType, 1) |
| | | .last("limit 1") |
| | | ); |
| | | TmsQuoteDetail tmsQuoteDetail = |
| | | tmsQuoteDetailMapper.selectOne( |
| | | new LambdaQueryWrapper<TmsQuoteDetail>() |
| | | .eq(TmsQuoteDetail::getVehicleType, actualVehicleType) |
| | | .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode) |
| | | .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode) |
| | | .eq(TmsQuoteDetail::getPlanType, 1) |
| | | .exists( |
| | | "SELECT 1 " + |
| | | "FROM tms_quote_plan tqp " + |
| | | "WHERE tqp.id = tms_quote_detail.quote_plan_id " + |
| | | "AND tqp.provider_id = {0} " + |
| | | "AND tqp.plan_type = 1 " + |
| | | "AND tqp.provider_type = 0", |
| | | vehicleProviderId |
| | | ) |
| | | .last("LIMIT 1") |
| | | ); |
| | | |
| | | |
| | | |
| | | |
| | |
| | | |
| | | |
| | | BigDecimal totalHkbAmount = tmsReceivableFeeItems.stream() |
| | | .filter(cItem -> "HKB".equals(cItem.getCurrency())) |
| | | .filter(cItem -> "HKD".equals(cItem.getCurrency())) |
| | | .map(TmsReceivableFeeItem::getRegisterAmount) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | tmsReceivableFee.setReceivableHKBAmount(totalHkbAmount); |
| | |
| | | |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public AjaxResult getServiceProvider(Integer id) { |
| | | |
| | | TmsDispatchOrder tmsDispatchOrder = tmsDispatchOrderMapper. |
| | | selectTmsDispatchOrderById(id); |
| | | List<ServiceProviderVo> serviceProviderVos = new ArrayList<>(); |
| | | if (tmsDispatchOrder != null){ |
| | | |
| | | if (tmsDispatchOrder.getLoadingServiceProviderId() != null){ |
| | | serviceProviderVos.add(new ServiceProviderVo(tmsDispatchOrder.getLoadingServiceProviderId(), |
| | | tmsDispatchOrder.getLoadingServiceProviderName(), |
| | | "2")); |
| | | } |
| | | if (tmsDispatchOrder.getCustomsServiceProviderId() != null){ |
| | | serviceProviderVos.add(new ServiceProviderVo(tmsDispatchOrder.getCustomsServiceProviderId(), |
| | | tmsDispatchOrder.getCustomsServiceProviderName(), |
| | | "1")); |
| | | } |
| | | if (tmsDispatchOrder.getVehicleProviderId() != null){ |
| | | serviceProviderVos.add(new ServiceProviderVo(tmsDispatchOrder.getVehicleProviderId(), |
| | | tmsDispatchOrder.getVehicleProviderName(), |
| | | "0")); |
| | | } |
| | | // 查询 |
| | | List<TmsQuoteFee> tmsQuoteFees = tmsQuoteFeeService.selectTmsQuoteFeeList(new TmsQuoteFee() {{ |
| | | setDispatchId(id); |
| | | }}); |
| | | if (tmsQuoteFees != null && !tmsQuoteFees.isEmpty()){ |
| | | List<ServiceProviderVo> collect = tmsQuoteFees.stream() |
| | | .collect(Collectors.collectingAndThen( |
| | | Collectors.toMap( |
| | | item -> item.getServiceProviderId() + "_" + item.getServiceProviderType(), |
| | | item -> new ServiceProviderVo( |
| | | item.getServiceProviderId(), |
| | | null, |
| | | item.getServiceProviderType() |
| | | ), |
| | | (a, b) -> a |
| | | ), |
| | | m -> new ArrayList<>(m.values()) |
| | | )); |
| | | |
| | | collect.forEach(item -> { |
| | | if ("0".equals(item.getServiceProviderType())){ |
| | | TmsServiceProvider tmsServiceProvider = tmsServiceProviderMapper.selectTmsServiceProviderById(item.getServiceProviderId()); |
| | | item.setServiceProviderName(tmsServiceProvider.getServiceName()); |
| | | } else if ("1".equals(item.getServiceProviderType())){ |
| | | TmsCustomsServiceProvider tmsCustomsServiceProvider = tmsCustomsServiceProviderMapper.selectTmsCustomsServiceProviderById(item.getServiceProviderId()); |
| | | item.setServiceProviderName(tmsCustomsServiceProvider.getServiceName()); |
| | | } else if ("2".equals(item.getServiceProviderType())){ |
| | | TmsLoadingServiceProvider tmsLoadingServiceProvider = tmsLoadingServiceProviderMapper.selectTmsLoadingServiceProviderById(item.getServiceProviderId()); |
| | | item.setServiceProviderName(tmsLoadingServiceProvider.getServiceName()); |
| | | } |
| | | serviceProviderVos.add(item); |
| | | }); |
| | | ArrayList<ServiceProviderVo> collect1 = serviceProviderVos.stream().collect(Collectors.collectingAndThen( |
| | | Collectors.toMap( |
| | | item -> item.getServiceProviderId() + "_" + item.getServiceProviderType(), |
| | | item -> new ServiceProviderVo( |
| | | item.getServiceProviderId(), |
| | | item.getServiceProviderName(), |
| | | item.getServiceProviderType() |
| | | ), |
| | | (a, b) -> a |
| | | ), |
| | | m -> new ArrayList<>(m.values()) |
| | | )); |
| | | return AjaxResult.success(collect1); |
| | | } |
| | | }else{ |
| | | return AjaxResult.error("调度单不存在"); |
| | | } |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | @Override |
| | | public List<DpDriverDispatchVo> selectDpData() { |
| | | return tmsDispatchOrderMapper.selectselectDpData(); |
| | | } |
| | | } |