| | |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.system.service.ISystemDataNoService; |
| | | import com.ruoyi.tms.domain.*; |
| | | import com.ruoyi.tms.domain.vo.DpDriverDispatchItemVo; |
| | | import com.ruoyi.tms.domain.vo.DpDriverDispatchVo; |
| | | import com.ruoyi.tms.domain.vo.DriverDispatchVo; |
| | | import com.ruoyi.tms.domain.vo.ServiceProviderVo; |
| | | import com.ruoyi.tms.domain.vo.*; |
| | | import com.ruoyi.tms.mapper.*; |
| | | import com.ruoyi.tms.service.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | private TmsCustomsServiceProviderMapper tmsCustomsServiceProviderMapper; |
| | | @Resource |
| | | private TmsTripMapper tmsTripMapper; |
| | | |
| | | @Resource |
| | | private TmsPayableFeeMapper tmsPayableFeeMapper; |
| | | @Resource |
| | | private TmsPayableFeeItemMapper tmsPayableFeeItemMapper; |
| | | /** |
| | | * 查询调度单管理 |
| | | * |
| | |
| | | return tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder); |
| | | } |
| | | |
| | | @Override |
| | | public int printDispatchOrder(TmsDispatchOrder tmsDispatchOrder) |
| | | { |
| | | return tmsDispatchOrderMapper.update(null,new LambdaUpdateWrapper<TmsDispatchOrder>() |
| | | .eq(TmsDispatchOrder::getId,tmsDispatchOrder.getId()) |
| | | .set(TmsDispatchOrder::getIsPrint,0) |
| | | .setSql("print_count = IFNULL(print_count, 0) + 1") |
| | | .set(TmsDispatchOrder::getPrintTime,new Date()) |
| | | .set(TmsDispatchOrder::getPrintBy,SecurityUtils.getUsername()) |
| | | .set(TmsDispatchOrder::getSixLinkNo,tmsDispatchOrder.getSixLinkNo()) |
| | | .set(TmsDispatchOrder::getPortName,tmsDispatchOrder.getPortName()) |
| | | .set(TmsDispatchOrder::getBillNo,tmsDispatchOrder.getBillNo()) |
| | | .set(TmsDispatchOrder::getTerminalName,tmsDispatchOrder.getTerminalName()) |
| | | .set(TmsDispatchOrder::getCargoName,tmsDispatchOrder.getCargoName()) |
| | | .set(TmsDispatchOrder::getPieceCount,tmsDispatchOrder.getPieceCount()) |
| | | .set(TmsDispatchOrder::getWeight,tmsDispatchOrder.getWeight()) |
| | | .set(TmsDispatchOrder::getContactName,tmsDispatchOrder.getContactName()) |
| | | .set(TmsDispatchOrder::getContactPhone,tmsDispatchOrder.getContactPhone()) |
| | | ); |
| | | } |
| | | |
| | | /** |
| | | * 修改调度单管理[批量] |
| | | * |
| | |
| | | // 非自营需要有运费 |
| | | // 车辆服务商 |
| | | // 实际车型 |
| | | String actualVehicleType = tmsDispatchOrder.getActualVehicleType(); |
| | | String actualVehicleType = tmsDispatchOrder.getRequiredVehicleTypes(); |
| | | // 出发路线 44,4404,440402,440402102 |
| | | String shipperRegionCode = tmsDispatchOrder.getStartRegionCode(); |
| | | // 目的地路线 81,8100,810000 |
| | |
| | | |
| | | |
| | | @Override |
| | | public List<TmsDispatchOrder> initYFGenerate(List<Integer> ids) { |
| | | public List<TmsPayableFee> initYFGenerate(List<Integer> ids) { |
| | | List<TmsDispatchOrder> tmsDispatchOrders = tmsDispatchOrderMapper.selectBatchIds(ids); |
| | | if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){ |
| | | tmsDispatchOrders.forEach(tmsDispatchOrder -> { |
| | | List<TmsReceivableFeeItem> tmsReceivableFeeItems = new ArrayList<>(); |
| | | List<TmsPayableFeeItem> tmsPayableFeeItems = new ArrayList<>(); |
| | | if (tmsDispatchOrder.getAccountsPayableStatus() != null && |
| | | tmsDispatchOrder.getAccountsPayableStatus() == 1){ |
| | | throw new RuntimeException(tmsDispatchOrder.getDispatchNo()+"应付账单已生成,请先作废"); |
| | |
| | | tmsQuoteDetailMapper.selectOne( |
| | | new LambdaQueryWrapper<TmsQuoteDetail>() |
| | | .eq(TmsQuoteDetail::getVehicleType, actualVehicleType) |
| | | .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode) |
| | | .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode) |
| | | .likeRight(TmsQuoteDetail::getStartRegionCode, shipperRegionCode) |
| | | .likeRight(TmsQuoteDetail::getEndRegionCode, receiverRegionCode) |
| | | .eq(TmsQuoteDetail::getPlanType, 1) |
| | | .exists( |
| | | "SELECT 1 " + |
| | |
| | | if (tmsQuoteDetail == null){ |
| | | throw new RuntimeException("调度单"+tmsDispatchOrder.getDispatchNo()+"未维护应付运费报价,请维护数据后再重新生成"); |
| | | } |
| | | TmsPayableFeeItem tmsPayableFeeItem = new TmsPayableFeeItem(); |
| | | tmsPayableFeeItem.setFeeType(0); |
| | | tmsPayableFeeItem.setFeeName("运费"); |
| | | tmsPayableFeeItem.setTypeId(tmsQuoteDetail.getId()); |
| | | tmsPayableFeeItem.setRegisterAmount(tmsQuoteDetail.getFreightPrice()); |
| | | tmsPayableFeeItem.setRegisterTime(tmsDispatchOrder.getConfirmTime()); |
| | | tmsPayableFeeItem.setCurrency(tmsQuoteDetail.getCurrency()); |
| | | tmsPayableFeeItem.setRowKey(IdUtil.objectId()); |
| | | |
| | | TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem(); |
| | | tmsReceivableFeeItem.setFeeType(0); |
| | | tmsReceivableFeeItem.setFeeName("运费"); |
| | | tmsReceivableFeeItem.setTypeId(tmsQuoteDetail.getId()); |
| | | tmsReceivableFeeItem.setRegisterAmount(tmsQuoteDetail.getFreightPrice()); |
| | | tmsReceivableFeeItem.setRegisterTime(tmsDispatchOrder.getConfirmTime()); |
| | | tmsReceivableFeeItem.setCurrency(tmsQuoteDetail.getCurrency()); |
| | | tmsReceivableFeeItem.setRowKey(IdUtil.objectId()); |
| | | tmsReceivableFeeItems.add(tmsReceivableFeeItem); |
| | | tmsPayableFeeItem.setServiceProviderId(vehicleProviderId); |
| | | tmsPayableFeeItem.setServiceProviderName(tmsDispatchOrder.getVehicleProviderName()); |
| | | tmsPayableFeeItem.setServiceProviderType("0"); |
| | | |
| | | tmsPayableFeeItems.add(tmsPayableFeeItem); |
| | | |
| | | } |
| | | // 2、 获取实报实销费用 |
| | |
| | | |
| | | if (tmsFinanceDetails != null && !tmsFinanceDetails.isEmpty()){ |
| | | tmsFinanceDetails.forEach(tmsFinanceDetail -> { |
| | | TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem(); |
| | | tmsReceivableFeeItem.setFeeType(2); |
| | | TmsPayableFeeItem tmsPayableFeeItem = new TmsPayableFeeItem(); |
| | | tmsPayableFeeItem.setFeeType(2); |
| | | |
| | | String feeName = sysDictDataService.selectDictLabel("fee_type", tmsFinanceDetail.getFeeType()); |
| | | tmsReceivableFeeItem.setFeeName(feeName); |
| | | tmsReceivableFeeItem.setTypeId(tmsFinanceDetail.getId()); |
| | | tmsReceivableFeeItem.setRegisterAmount(tmsFinanceDetail.getYfPrice()); |
| | | tmsReceivableFeeItem.setRegisterTime(tmsFinanceDetail.getUpdateTime()); |
| | | tmsReceivableFeeItem.setCurrency(tmsFinanceDetail.getYfCurrency()); |
| | | tmsReceivableFeeItem.setRowKey(IdUtil.objectId()); |
| | | |
| | | tmsReceivableFeeItems.add(tmsReceivableFeeItem); |
| | | tmsPayableFeeItem.setFeeName(feeName); |
| | | tmsPayableFeeItem.setTypeId(tmsFinanceDetail.getId()); |
| | | tmsPayableFeeItem.setRegisterAmount(tmsFinanceDetail.getYfPrice()); |
| | | tmsPayableFeeItem.setRegisterTime(tmsFinanceDetail.getUpdateTime()); |
| | | tmsPayableFeeItem.setCurrency(tmsFinanceDetail.getYfCurrency()); |
| | | tmsPayableFeeItem.setRowKey(IdUtil.objectId()); |
| | | tmsPayableFeeItem.setServiceProviderId(tmsFinanceDetail.getYfServiceProviderId()); |
| | | tmsPayableFeeItem.setServiceProviderName(tmsFinanceDetail.getYfServiceProviderName()); |
| | | tmsPayableFeeItem.setServiceProviderType(tmsFinanceDetail.getYfServiceProviderType()); |
| | | tmsPayableFeeItems.add(tmsPayableFeeItem); |
| | | }); |
| | | } |
| | | |
| | |
| | | |
| | | if (tmsQuoteFees != null && !tmsQuoteFees.isEmpty()){ |
| | | tmsQuoteFees.forEach(item -> { |
| | | TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem(); |
| | | tmsReceivableFeeItem.setFeeType(1); |
| | | tmsReceivableFeeItem.setFeeName(item.getFreeName()); |
| | | tmsReceivableFeeItem.setTypeId(item.getId()); |
| | | tmsReceivableFeeItem.setRegisterAmount(item.getYfSum()); |
| | | tmsReceivableFeeItem.setRegisterTime(item.getCreateTime()); |
| | | tmsReceivableFeeItem.setCurrency(item.getYfCurrency()); |
| | | tmsReceivableFeeItem.setRowKey(IdUtil.objectId()); |
| | | TmsPayableFeeItem tmsPayableFeeItem = new TmsPayableFeeItem(); |
| | | tmsPayableFeeItem.setFeeType(1); |
| | | tmsPayableFeeItem.setFeeName(item.getFreeName()); |
| | | tmsPayableFeeItem.setTypeId(item.getId()); |
| | | tmsPayableFeeItem.setRegisterAmount(item.getYfSum()); |
| | | tmsPayableFeeItem.setRegisterTime(item.getCreateTime()); |
| | | tmsPayableFeeItem.setCurrency(item.getYfCurrency()); |
| | | tmsPayableFeeItem.setRowKey(IdUtil.objectId()); |
| | | |
| | | tmsReceivableFeeItems.add(tmsReceivableFeeItem); |
| | | tmsPayableFeeItem.setServiceProviderId(item.getServiceProviderId()); |
| | | tmsPayableFeeItem.setServiceProviderName(getServiceProviderName(item.getServiceProviderType(),item.getServiceProviderId())); |
| | | tmsPayableFeeItem.setServiceProviderType(item.getServiceProviderType()); |
| | | |
| | | tmsPayableFeeItems.add(tmsPayableFeeItem); |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | tmsDispatchOrder.setTmsReceivableFeeItems(tmsReceivableFeeItems); |
| | | tmsDispatchOrder.setTmsPayableFeeItems(tmsPayableFeeItems); |
| | | }); |
| | | } |
| | | return tmsDispatchOrders; |
| | | List<TmsPayableFee> tmsPayableFeeList = new ArrayList<>(); |
| | | if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){ |
| | | tmsDispatchOrders.forEach(item -> { |
| | | |
| | | |
| | | List<TmsPayableFeeItem> tmsPayableFeeItems = item.getTmsPayableFeeItems(); |
| | | Map<String, List<TmsPayableFeeItem>> map = |
| | | tmsPayableFeeItems.stream() |
| | | .collect(Collectors.groupingBy(cItem -> |
| | | cItem.getServiceProviderId() + "_" + cItem.getServiceProviderType() |
| | | )); |
| | | map.forEach((customerId, customerItems) -> { |
| | | |
| | | TmsPayableFeeItem tmsPayableFeeItem = customerItems.get(0); |
| | | TmsPayableFee tmsPayableFee = new TmsPayableFee(); |
| | | |
| | | tmsPayableFee.setDispatchId(item.getId()); |
| | | tmsPayableFee.setDispatchNo(item.getDispatchNo()); |
| | | |
| | | tmsPayableFee.setServiceProviderId(tmsPayableFeeItem.getServiceProviderId()); |
| | | tmsPayableFee.setServiceProviderName(tmsPayableFeeItem.getServiceProviderName()); |
| | | tmsPayableFee.setServiceProviderType(tmsPayableFeeItem.getServiceProviderType()); |
| | | |
| | | tmsPayableFee.setProjectId(item.getProjectId()); |
| | | tmsPayableFee.setProjectName(item.getProjectName()); |
| | | |
| | | BigDecimal totalRmbAmount = customerItems.stream() |
| | | .filter(cItem -> "RMB".equals(cItem.getCurrency())) |
| | | .map(TmsPayableFeeItem::getRegisterAmount) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | tmsPayableFee.setPayableRmbAmount(totalRmbAmount); |
| | | |
| | | |
| | | BigDecimal totalHkbAmount = customerItems.stream() |
| | | .filter(cItem -> "HKD".equals(cItem.getCurrency())) |
| | | .map(TmsPayableFeeItem::getRegisterAmount) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | tmsPayableFee.setPayableHkbAmount(totalHkbAmount); |
| | | tmsPayableFee.setDispatchConfirmTime(item.getConfirmTime()); |
| | | tmsPayableFee.setStatus(0); |
| | | tmsPayableFee.setPayableFeeItems(customerItems); |
| | | tmsPayableFeeList.add(tmsPayableFee); |
| | | }); |
| | | |
| | | |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | return tmsPayableFeeList; |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | @Override |
| | | public AjaxResult yfGenerateTmsDispatchOrder(List<Integer> ids) { |
| | | List<TmsDispatchOrder> tmsDispatchOrders = initYFGenerate(ids); |
| | | List<TmsDispatchOrder> collect1 = tmsDispatchOrders.stream().filter(item -> item.getTmsReceivableFeeItems() == null || item.getTmsReceivableFeeItems().isEmpty()).collect(Collectors.toList()); |
| | | if (!collect1.isEmpty()){ |
| | | String disNos = collect1.stream().map(TmsDispatchOrder::getDispatchNo).collect(Collectors.joining(",")); |
| | | return AjaxResult.error("调度单"+disNos+"未有应付信息"); |
| | | } |
| | | List<TmsPayableFee> tmsPayableFeeList = initYFGenerate(ids); |
| | | |
| | | |
| | | |
| | | |
| | | List<TmsDispatchOrder> collect = tmsDispatchOrders.stream().map(item -> { |
| | | TmsDispatchOrder tmsDispatchOrder = new TmsDispatchOrder(); |
| | | tmsDispatchOrder.setId(item.getId()); |
| | | tmsDispatchOrder.setAccountsPayableStatus(1); |
| | | tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername()); |
| | | return tmsDispatchOrder; |
| | | }).collect(Collectors.toList()); |
| | | Set<Integer> dispatchIds = tmsPayableFeeList.stream().map(TmsPayableFee::getDispatchId).collect(Collectors.toSet()); |
| | | // 1、修改调度 |
| | | tmsDispatchOrderMapper.updateTmsDispatchOrderBatch(collect); |
| | | |
| | | tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>() |
| | | .in(TmsDispatchOrder::getId, dispatchIds) |
| | | .set(TmsDispatchOrder::getAccountsPayableStatus, 1) |
| | | .set(TmsDispatchOrder::getUpdateBy, SecurityUtils.getUsername()) |
| | | .set(TmsDispatchOrder::getUpdateTime, DateUtils.getNowDate()) |
| | | ); |
| | | // 2、生成应收单 |
| | | |
| | | // tmsDispatchOrders.stream().forEach(item -> { |
| | | // TmsReceivableFee tmsReceivableFee = new TmsReceivableFee(); |
| | | // String noByKey = systemDataNoService.getNoByKey(SystemDataNoEnum.YSFY); |
| | | // |
| | | // tmsReceivableFee.setSystemNo(noByKey); |
| | | // tmsReceivableFee.setDispatchId(item.getId()); |
| | | // tmsReceivableFee.setDispatchNo(item.getDispatchNo()); |
| | | // tmsReceivableFee.setCustomerId(item.getCustomerId()); |
| | | // tmsReceivableFee.setCustomerName(item.getCustomerName()); |
| | | // tmsReceivableFee.setProjectId(item.getProjectId()); |
| | | // tmsReceivableFee.setProjectName(item.getProjectName()); |
| | | // |
| | | // List<TmsReceivableFeeItem> tmsReceivableFeeItems = item.getTmsReceivableFeeItems(); |
| | | // |
| | | // |
| | | // BigDecimal totalRmbAmount = tmsReceivableFeeItems.stream() |
| | | // .filter(cItem -> "RMB".equals(cItem.getCurrency())) |
| | | // .map(TmsReceivableFeeItem::getRegisterAmount) |
| | | // .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | // tmsReceivableFee.setReceivableRMBAmount(totalRmbAmount); |
| | | // |
| | | // |
| | | // BigDecimal totalHkbAmount = tmsReceivableFeeItems.stream() |
| | | // .filter(cItem -> "HKB".equals(cItem.getCurrency())) |
| | | // .map(TmsReceivableFeeItem::getRegisterAmount) |
| | | // .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | // tmsReceivableFee.setReceivableHKBAmount(totalHkbAmount); |
| | | // |
| | | // |
| | | // tmsReceivableFee.setDispatchConfirmTime(item.getConfirmTime()); |
| | | // tmsReceivableFee.setCostGenerateTime(new Date()); |
| | | // tmsReceivableFee.setStatus(0); |
| | | // tmsReceivableFee.setCreateBy(SecurityUtils.getUsername()); |
| | | // tmsReceivableFeeService.insertTmsReceivableFee(tmsReceivableFee); |
| | | // |
| | | // |
| | | // tmsReceivableFeeItems.forEach(kItem -> { |
| | | // kItem.setHeadId(tmsReceivableFee.getId()); |
| | | // }); |
| | | // tmsReceivableFeeItemService.insertTmsReceivableFeeItemBatch(tmsReceivableFeeItems); |
| | | // }); |
| | | tmsPayableFeeList.forEach(tmsPayableFee ->{ |
| | | String noByKey = systemDataNoService.getNoByKey(SystemDataNoEnum.YFFY); |
| | | tmsPayableFee.setSystemNo(noByKey); |
| | | tmsPayableFee.setCostGenerateTime(new Date()); |
| | | tmsPayableFee.setCreateBy(SecurityUtils.getUsername()); |
| | | tmsPayableFeeMapper.insertTmsPayableFee(tmsPayableFee); |
| | | List<TmsPayableFeeItem> customerItems = tmsPayableFee.getPayableFeeItems(); |
| | | customerItems.forEach(kItem -> { |
| | | kItem.setHeadId(tmsPayableFee.getId()); |
| | | }); |
| | | tmsPayableFeeItemMapper.insertTmsPayableFeeItemBatch(customerItems); |
| | | }); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | public String getServiceProviderName(String serviceProviderType,Integer serviceProviderId){ |
| | | if ("0".equals(serviceProviderType)){ |
| | | TmsServiceProvider tmsServiceProvider = tmsServiceProviderMapper.selectTmsServiceProviderById(serviceProviderId); |
| | | return tmsServiceProvider.getServiceName(); |
| | | } else if ("1".equals(serviceProviderType)){ |
| | | TmsCustomsServiceProvider tmsCustomsServiceProvider = tmsCustomsServiceProviderMapper.selectTmsCustomsServiceProviderById(serviceProviderId); |
| | | return tmsCustomsServiceProvider.getServiceName(); |
| | | } else if ("2".equals(serviceProviderType)){ |
| | | TmsLoadingServiceProvider tmsLoadingServiceProvider = tmsLoadingServiceProviderMapper.selectTmsLoadingServiceProviderById(serviceProviderId); |
| | | return tmsLoadingServiceProvider.getServiceName(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<DpDriverDispatchVo> selectDpData() { |
| | | return tmsDispatchOrderMapper.selectselectDpData(); |
| | |
| | | public DpDriverDispatchItemVo selectDataByNo(String no) { |
| | | return tmsDispatchOrderMapper.selectDataByNo(no); |
| | | } |
| | | |
| | | @Override |
| | | public List<DpItineraryLogVo> selectItineraryLog() { |
| | | return tmsDispatchOrderMapper.selectItineraryLog(); |
| | | } |
| | | } |