| | |
| | | package com.ruoyi.tms.service.impl; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.util.IdUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.ruoyi.common.core.domain.AjaxResult; |
| | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.system.service.ISysDictDataService; |
| | | 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.service.ITmsDriverDispatchService; |
| | | import com.ruoyi.tms.service.ITmsFinanceService; |
| | | 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 org.springframework.stereotype.Service; |
| | |
| | | import com.ruoyi.common.enums.DataSourceType; |
| | | import com.ruoyi.common.core.service.BaseService; |
| | | |
| | | import com.ruoyi.tms.mapper.TmsDispatchOrderMapper; |
| | | import com.ruoyi.tms.service.ITmsDispatchOrderService; |
| | | import com.ruoyi.common.core.text.Convert; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | ITmsFinanceService tmsFinanceService; |
| | | @Autowired |
| | | private ITmsFinanceDetailService tmsFinanceDetailService; |
| | | @Autowired |
| | | private ITmsQuoteFeeService tmsQuoteFeeService; |
| | | |
| | | @Autowired |
| | | ISysDictDataService sysDictDataService; |
| | | |
| | | @Autowired |
| | | private ITmsReceivableFeeService tmsReceivableFeeService; |
| | | @Autowired |
| | | private ITmsReceivableFeeItemService tmsReceivableFeeItemService; |
| | | @Autowired |
| | | private TmsDriverDispatchServiceImpl tmsDriverDispatchServiceImpl; |
| | | @Resource |
| | | private TmsLoadingServiceProviderMapper tmsLoadingServiceProviderMapper; |
| | | @Resource |
| | | private TmsServiceProviderMapper tmsServiceProviderMapper; |
| | | @Resource |
| | | private TmsCustomsServiceProviderMapper tmsCustomsServiceProviderMapper; |
| | | |
| | | /** |
| | | * 查询调度单管理 |
| | | * |
| | |
| | | driverDispatch.setStatus(2); |
| | | tmsDriverDispatchService.insertTmsDriverDispatch(driverDispatch); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public int customsOrder(TmsDispatchOrder tmsDispatchOrder) { |
| | | return tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>() |
| | | .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId()) |
| | | .set(TmsDispatchOrder::getCustomsServiceProviderId, tmsDispatchOrder.getCustomsServiceProviderId()) |
| | | .set(TmsDispatchOrder::getCustomsServiceProviderName, tmsDispatchOrder.getCustomsServiceProviderName()) |
| | | ); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public int loadingOrder(TmsDispatchOrder tmsDispatchOrder) { |
| | | return tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>() |
| | | .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId()) |
| | | .set(TmsDispatchOrder::getLoadingServiceProviderId, tmsDispatchOrder.getLoadingServiceProviderId()) |
| | | .set(TmsDispatchOrder::getLoadingServiceProviderName, tmsDispatchOrder.getLoadingServiceProviderName()) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | |
| | | List<TmsDispatchOrder> tmsDispatchOrders = tmsDispatchOrderMapper.selectBatchIds(ids); |
| | | if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){ |
| | | tmsDispatchOrders.forEach(tmsDispatchOrder -> { |
| | | |
| | | // 1、是否是外协 |
| | | // tmsDispatchOrder.is |
| | | |
| | | // 客户ID |
| | | Integer customerId = tmsDispatchOrder.getCustomerId(); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<TmsDispatchOrder> initYSGenerate(List<Integer> ids) { |
| | | List<TmsDispatchOrder> tmsDispatchOrders = tmsDispatchOrderMapper.selectBatchIds(ids); |
| | | if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){ |
| | | tmsDispatchOrders.forEach(tmsDispatchOrder -> { |
| | | List<TmsReceivableFeeItem> tmsReceivableFeeItems = new ArrayList<>(); |
| | | if (tmsDispatchOrder.getAccountsReceivableStatus() != null && |
| | | tmsDispatchOrder.getAccountsReceivableStatus() == 1){ |
| | | throw new RuntimeException(tmsDispatchOrder.getDispatchNo()+"应收账单已生成,请先作废"); |
| | | } |
| | | // 客户ID |
| | | Integer customerId = tmsDispatchOrder.getCustomerId(); |
| | | // 1、是否是自营 0 = 是 1 = 否 获取运费 |
| | | //if(tmsDispatchOrder.getOperationMode().equals(1)){ |
| | | // 非自营需要有运费 |
| | | // 车辆服务商 |
| | | // 实际车型 |
| | | String actualVehicleType = tmsDispatchOrder.getActualVehicleType(); |
| | | // 出发路线 44,4404,440402,440402102 |
| | | String shipperRegionCode = tmsDispatchOrder.getStartRegionCode(); |
| | | // 目的地路线 81,8100,810000 |
| | | String receiverRegionCode = tmsDispatchOrder.getEndRegionCode(); |
| | | |
| | | // 查询应收规则 |
| | | TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>() |
| | | .eq(TmsQuoteDetail::getCustomerId, customerId) |
| | | .eq(TmsQuoteDetail::getVehicleType, actualVehicleType) |
| | | .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode) |
| | | .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode) |
| | | .eq(TmsQuoteDetail::getPlanType, 0) |
| | | .last("limit 1") |
| | | ); |
| | | |
| | | |
| | | |
| | | if (tmsQuoteDetail == null){ |
| | | throw new RuntimeException("调度单"+tmsDispatchOrder.getDispatchNo()+"未维护应收运费报价,请维护数据后再重新生成"); |
| | | } |
| | | |
| | | if (tmsQuoteDetail.getIsSegmentedInvoice() == 1){ |
| | | 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); |
| | | }else{ |
| | | TmsReceivableFeeItem tmsReceivableFeeItemOne = new TmsReceivableFeeItem(); |
| | | tmsReceivableFeeItemOne.setFeeType(0); |
| | | tmsReceivableFeeItemOne.setFeeName("一段运费"); |
| | | tmsReceivableFeeItemOne.setTypeId(tmsQuoteDetail.getId()); |
| | | tmsReceivableFeeItemOne.setRegisterAmount(tmsQuoteDetail.getSegment1FreightQuote()); |
| | | tmsReceivableFeeItemOne.setRegisterTime(tmsDispatchOrder.getConfirmTime()); |
| | | tmsReceivableFeeItemOne.setCurrency(tmsQuoteDetail.getSegment1Currency()); |
| | | |
| | | tmsReceivableFeeItemOne.setRowKey(IdUtil.objectId()); |
| | | |
| | | tmsReceivableFeeItems.add(tmsReceivableFeeItemOne); |
| | | |
| | | |
| | | TmsReceivableFeeItem tmsReceivableFeeItemTwo = new TmsReceivableFeeItem(); |
| | | tmsReceivableFeeItemTwo.setFeeType(0); |
| | | tmsReceivableFeeItemTwo.setFeeName("二段运费"); |
| | | tmsReceivableFeeItemTwo.setTypeId(tmsQuoteDetail.getId()); |
| | | tmsReceivableFeeItemTwo.setRegisterAmount(tmsQuoteDetail.getSegment2FreightQuote()); |
| | | tmsReceivableFeeItemTwo.setRegisterTime(tmsDispatchOrder.getConfirmTime()); |
| | | tmsReceivableFeeItemTwo.setCurrency(tmsQuoteDetail.getSegment2Currency()); |
| | | tmsReceivableFeeItemTwo.setRowKey(IdUtil.objectId()); |
| | | |
| | | tmsReceivableFeeItems.add(tmsReceivableFeeItemTwo); |
| | | |
| | | } |
| | | //} |
| | | // 2、 获取实报实销费用 |
| | | List<TmsFinanceDetail> tmsFinanceDetails = tmsFinanceDetailService.selectTmsFinanceDetailList(new TmsFinanceDetail() {{ |
| | | setDispatchOrderId(tmsDispatchOrder.getId()); |
| | | }}); |
| | | |
| | | if (tmsFinanceDetails != null && !tmsFinanceDetails.isEmpty()){ |
| | | tmsFinanceDetails.forEach(tmsFinanceDetail -> { |
| | | TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem(); |
| | | tmsReceivableFeeItem.setFeeType(2); |
| | | |
| | | String feeName = sysDictDataService.selectDictLabel("fee_type", tmsFinanceDetail.getFeeType()); |
| | | tmsReceivableFeeItem.setFeeName(feeName); |
| | | tmsReceivableFeeItem.setTypeId(tmsFinanceDetail.getId()); |
| | | tmsReceivableFeeItem.setRegisterAmount(tmsFinanceDetail.getActualFeeAmount()); |
| | | tmsReceivableFeeItem.setRegisterTime(tmsFinanceDetail.getUpdateTime()); |
| | | tmsReceivableFeeItem.setCurrency(tmsFinanceDetail.getCurrency()); |
| | | tmsReceivableFeeItem.setRowKey(IdUtil.objectId()); |
| | | |
| | | tmsReceivableFeeItems.add(tmsReceivableFeeItem); |
| | | }); |
| | | } |
| | | |
| | | |
| | | // 3、 获取报价费用 |
| | | // tmsDispatchOrder.is |
| | | List<TmsQuoteFee> tmsQuoteFees = tmsQuoteFeeService.selectTmsQuoteFeeList(new TmsQuoteFee() {{ |
| | | setDispatchId(tmsDispatchOrder.getId()); |
| | | }}); |
| | | |
| | | 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.getSum()); |
| | | tmsReceivableFeeItem.setRegisterTime(item.getCreateTime()); |
| | | tmsReceivableFeeItem.setCurrency(item.getCurrency()); |
| | | tmsReceivableFeeItem.setRowKey(IdUtil.objectId()); |
| | | |
| | | tmsReceivableFeeItems.add(tmsReceivableFeeItem); |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | tmsDispatchOrder.setTmsReceivableFeeItems(tmsReceivableFeeItems); |
| | | }); |
| | | } |
| | | return tmsDispatchOrders; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<TmsDispatchOrder> initYFGenerate(List<Integer> ids) { |
| | | List<TmsDispatchOrder> tmsDispatchOrders = tmsDispatchOrderMapper.selectBatchIds(ids); |
| | | if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){ |
| | | tmsDispatchOrders.forEach(tmsDispatchOrder -> { |
| | | List<TmsReceivableFeeItem> tmsReceivableFeeItems = new ArrayList<>(); |
| | | if (tmsDispatchOrder.getAccountsPayableStatus() != null && |
| | | tmsDispatchOrder.getAccountsPayableStatus() == 1){ |
| | | throw new RuntimeException(tmsDispatchOrder.getDispatchNo()+"应付账单已生成,请先作废"); |
| | | } |
| | | // 客户ID |
| | | Integer customerId = tmsDispatchOrder.getCustomerId(); |
| | | // 1、是否是自营 0 = 是 1 = 否 获取运费 |
| | | if(tmsDispatchOrder.getOperationMode().equals(1)){ |
| | | // 非自营需要有运费 |
| | | // 车辆服务商 |
| | | Integer vehicleProviderId = tmsDispatchOrder.getVehicleProviderId(); |
| | | // 实际车型 |
| | | String actualVehicleType = tmsDispatchOrder.getActualVehicleType(); |
| | | // 出发路线 44,4404,440402,440402102 |
| | | String shipperRegionCode = tmsDispatchOrder.getStartRegionCode(); |
| | | // 目的地路线 81,8100,810000 |
| | | String receiverRegionCode = tmsDispatchOrder.getEndRegionCode(); |
| | | |
| | | // 查询应收规则 |
| | | 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") |
| | | ); |
| | | |
| | | |
| | | |
| | | |
| | | if (tmsQuoteDetail == null){ |
| | | throw new RuntimeException("调度单"+tmsDispatchOrder.getDispatchNo()+"未维护应付运费报价,请维护数据后再重新生成"); |
| | | } |
| | | |
| | | 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); |
| | | |
| | | } |
| | | // 2、 获取实报实销费用 |
| | | List<TmsFinanceDetail> tmsFinanceDetails = tmsFinanceDetailService.selectTmsFinanceDetailList(new TmsFinanceDetail() {{ |
| | | setDispatchOrderId(tmsDispatchOrder.getId()); |
| | | setIsYF(1); |
| | | }}); |
| | | |
| | | if (tmsFinanceDetails != null && !tmsFinanceDetails.isEmpty()){ |
| | | tmsFinanceDetails.forEach(tmsFinanceDetail -> { |
| | | TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem(); |
| | | tmsReceivableFeeItem.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); |
| | | }); |
| | | } |
| | | |
| | | |
| | | // 3、 获取报价费用 |
| | | // tmsDispatchOrder.is |
| | | List<TmsQuoteFee> tmsQuoteFees = tmsQuoteFeeService.selectTmsQuoteFeeList(new TmsQuoteFee() {{ |
| | | setDispatchId(tmsDispatchOrder.getId()); |
| | | setIsYF(1); |
| | | }}); |
| | | |
| | | 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()); |
| | | |
| | | tmsReceivableFeeItems.add(tmsReceivableFeeItem); |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | tmsDispatchOrder.setTmsReceivableFeeItems(tmsReceivableFeeItems); |
| | | }); |
| | | } |
| | | return tmsDispatchOrders; |
| | | } |
| | | |
| | | @Override |
| | | public AjaxResult ysGenerateTmsDispatchOrder(List<Integer> ids) { |
| | | List<TmsDispatchOrder> tmsDispatchOrders = initYSGenerate(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<TmsDispatchOrder> collect = tmsDispatchOrders.stream().map(item -> { |
| | | TmsDispatchOrder tmsDispatchOrder = new TmsDispatchOrder(); |
| | | tmsDispatchOrder.setId(item.getId()); |
| | | tmsDispatchOrder.setAccountsReceivableStatus(1); |
| | | tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername()); |
| | | return tmsDispatchOrder; |
| | | }).collect(Collectors.toList()); |
| | | // 1、修改调度 |
| | | tmsDispatchOrderMapper.updateTmsDispatchOrderBatch(collect); |
| | | |
| | | // 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 -> "HKD".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); |
| | | }); |
| | | return AjaxResult.success(); |
| | | } |
| | | @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<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()); |
| | | // 1、修改调度 |
| | | tmsDispatchOrderMapper.updateTmsDispatchOrderBatch(collect); |
| | | |
| | | // 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); |
| | | // }); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | @Override |
| | | public AjaxResult generateTmsDispatchOrder(List<Integer> ids) { |
| | | List<TmsDispatchOrder> tmsDispatchOrders = initGenerate(ids); |
| | | List<TmsDispatchOrder> collect1 = tmsDispatchOrders.stream().filter(item -> item.getIsCustoms() == 0 && item.getCustomsServiceProviderId() == null).collect(Collectors.toList()); |
| | | if (!collect1.isEmpty()){ |
| | | String disNos = collect1.stream().map(TmsDispatchOrder::getDispatchNo).collect(Collectors.joining(",")); |
| | | return AjaxResult.error("调度单"+disNos+"未补充委托报关信息"); |
| | | } |
| | | List<TmsDispatchOrder> collect2 = tmsDispatchOrders.stream().filter(item -> item.getIsLoad() == 0 && item.getLoadingServiceProviderId() == null).collect(Collectors.toList()); |
| | | if (!collect2.isEmpty()){ |
| | | String disNos = collect2.stream().map(TmsDispatchOrder::getDispatchNo).collect(Collectors.joining(",")); |
| | | return AjaxResult.error("调度单"+disNos+"未补充装卸货信息"); |
| | | } |
| | | List<TmsDispatchOrder> receivableList = tmsDispatchOrders.stream().filter(item -> item.getAccountsReceivableStatus() == 0).collect(Collectors.toList()); |
| | | if (!receivableList.isEmpty()){ |
| | | List<TmsDispatchOrder> collect = receivableList.stream().map(item -> { |
| | |
| | | |
| | | 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(); |
| | | } |
| | | } |