|
|
@ -493,10 +493,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
finBillApplication.setBillNo(billNo); |
|
|
|
finBillApplication.setNum(finBillVehicles.size()); |
|
|
|
finBillApplication.setArrearsMoney("0"); |
|
|
|
String fileUrl = getFileUrl(dto); |
|
|
|
if(StringUtils.isNotBlank(fileUrl)){ |
|
|
|
/* String fileUrl = getFileUrl(dto); |
|
|
|
if (StringUtils.isNotBlank(fileUrl)) { |
|
|
|
finBillApplication.setFileUrl(fileUrl); |
|
|
|
} |
|
|
|
}*/ |
|
|
|
save(finBillApplication); |
|
|
|
//主车开票信息
|
|
|
|
for (FinBillVehicleDto finBillVehicleDto : finBillVehicles) { |
|
|
@ -679,21 +679,28 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
} |
|
|
|
|
|
|
|
public String getFileUrl(FinBillApplicationDto dto) { |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
Map<String, Object> carMap = new HashMap<>(); |
|
|
|
Map<String, Object> filemap = new HashMap<>(); |
|
|
|
Map<String,Object> checkMap = new HashMap<>(); |
|
|
|
String fileUrl = ""; |
|
|
|
String contractNo = dto.getContractNo(); |
|
|
|
List<File> filesList = new ArrayList<>(); |
|
|
|
//根据合同号查询销售订单数据
|
|
|
|
BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo); |
|
|
|
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData(); |
|
|
|
if("1".equals(busSalesOrder.getPayTypeKey()) || ("2".equals(busSalesOrder.getPayTypeKey()) && StringUtils.isNotBlank(loanSolutions.getTypeKey()))) { |
|
|
|
if ("1".equals(busSalesOrder.getPayTypeKey()) || ("2".equals(busSalesOrder.getPayTypeKey()) && StringUtils.isNotBlank(loanSolutions.getTypeKey()))) { |
|
|
|
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles(); |
|
|
|
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid()); |
|
|
|
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid()); |
|
|
|
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(dto.getOpenTickSid()); |
|
|
|
if (!dto.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())) { |
|
|
|
//按开票名称sid分组
|
|
|
|
Map<String, List<FinBillVehicleDto>> groupedByOpenTickSid = finBillVehicles.stream() |
|
|
|
.collect(Collectors.groupingBy(FinBillVehicleDto::getOpenTickSid)); |
|
|
|
//遍历分组并组装每组的数据
|
|
|
|
groupedByOpenTickSid.forEach((openTickSid, sameOpenTickSidList) -> { |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
Map<String, Object> carMap = new HashMap<>(); |
|
|
|
Map<String, Object> filemap = new HashMap<>(); |
|
|
|
Map<String, Object> checkMap = new HashMap<>(); |
|
|
|
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(openTickSid); |
|
|
|
if (!openTickSid.equals(busSalesOrder.getAffiliatedCompanySid())) { |
|
|
|
FinBillVehicleDto finBillVehicleDto = sameOpenTickSidList.get(0); |
|
|
|
//生成开票申请书
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) { |
|
|
|
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); |
|
|
@ -707,7 +714,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
BillFileVo billFileVo = new BillFileVo(); |
|
|
|
if (busSalesOrderModel != null) { |
|
|
|
billFileVo.setCarName(busSalesOrderModel.getModelName()); |
|
|
|
billFileVo.setNum(String.valueOf(finBillVehicles.size())); |
|
|
|
billFileVo.setNum(String.valueOf(sameOpenTickSidList.size())); |
|
|
|
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); |
|
|
|
} |
|
|
|
if (loanSolutions != null) { |
|
|
@ -715,14 +722,20 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount()); |
|
|
|
} |
|
|
|
} |
|
|
|
billFileVo.setType(busSalesOrder.getBillingType()); |
|
|
|
billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型
|
|
|
|
list.add(billFileVo); |
|
|
|
|
|
|
|
List<FinBillTrailerDto> lllList = new ArrayList<>(); |
|
|
|
sameOpenTickSidList.forEach(v -> { |
|
|
|
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers(); |
|
|
|
finBillTrailers.removeAll(Collections.singleton(null)); |
|
|
|
finBillTrailers = finBillTrailers.stream().filter(vv -> vv.getVinNo().contains(v.getVinNo())).collect(Collectors.toList()); |
|
|
|
lllList.addAll(finBillTrailers); |
|
|
|
}); |
|
|
|
Map<String, Object> carNameMap = new HashMap<>(); |
|
|
|
if (!finBillTrailers.isEmpty()) { |
|
|
|
for (int i = 0; i < finBillTrailers.size(); i++) { |
|
|
|
FinBillTrailerDto finBillTrailerDto = finBillTrailers.get(i); |
|
|
|
if (!lllList.isEmpty()) { |
|
|
|
for (int i = 0; i < lllList.size(); i++) { |
|
|
|
FinBillTrailerDto finBillTrailerDto = lllList.get(i); |
|
|
|
billFileVo = new BillFileVo(); |
|
|
|
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo()); |
|
|
|
if (baseTrailer != null) { |
|
|
@ -760,7 +773,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
} |
|
|
|
} |
|
|
|
map.put("list", list); |
|
|
|
map.put("name", busSalesOrder.getAffiliatedCompany()); |
|
|
|
map.put("name", finBillVehicleDto.getOpenTickName()); |
|
|
|
String date = DateUtil.today(); |
|
|
|
List<String> dateString = Arrays.asList(date.split("-")); |
|
|
|
String year = dateString.get(0); |
|
|
@ -769,7 +782,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
map.put("year", year); |
|
|
|
map.put("month", month); |
|
|
|
map.put("day", day); |
|
|
|
if (!"02".equals(dto.getOpenTickTypeKey())) { |
|
|
|
if (!"02".equals(finBillVehicleDto.getBillTypeKey())) { |
|
|
|
if (finCompanyInvoicingDetailsVo != null) { |
|
|
|
//生成车辆登记合同
|
|
|
|
if (busSalesOrder != null) { |
|
|
@ -785,8 +798,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
} |
|
|
|
carMap.put("date", date); |
|
|
|
List<CarContractListVo> carContractListVos = new ArrayList<>(); |
|
|
|
|
|
|
|
for (FinBillVehicleDto salesOrderVehicle : finBillVehicles) { |
|
|
|
for (FinBillVehicleDto salesOrderVehicle : sameOpenTickSidList) { |
|
|
|
CarContractListVo carContractListVo = new CarContractListVo(); |
|
|
|
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid()); |
|
|
|
carContractListVo.setBrand(baseVehicle.getModelName()); |
|
|
@ -795,11 +807,9 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
carContractListVos.add(carContractListVo); |
|
|
|
} |
|
|
|
carMap.put("carLists", carContractListVos); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (loanSolutions != null) { |
|
|
|
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) { |
|
|
|
String remarks = ""; |
|
|
@ -839,8 +849,6 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
checkMap.put("depositTotal", ""); |
|
|
|
checkMap.put("createOrgName", ""); |
|
|
|
checkMap.put("payTypeKey", busSalesOrder.getPayTypeKey()); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
try { |
|
|
@ -849,7 +857,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
ExecutorService pool = new ThreadPoolExecutor(1, 2, |
|
|
|
1000, TimeUnit.MILLISECONDS, |
|
|
|
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); |
|
|
|
List<File> filesList = new ArrayList<>(); |
|
|
|
|
|
|
|
if (!map.isEmpty()) { |
|
|
|
Future<String> future1 = pool.submit(() -> { |
|
|
|
return getInvoiceApplyFile(map); |
|
|
@ -868,6 +876,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
filesList.add(file); |
|
|
|
} |
|
|
|
} |
|
|
|
if("1".equals(busSalesOrder.getPayTypeKey())){ |
|
|
|
Map<String, Object> finalCheckMap = checkMap; |
|
|
|
if (!finalCheckMap.isEmpty()) { |
|
|
|
Future<String> future3 = pool.submit(() -> { |
|
|
@ -878,18 +887,24 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
filesList.add(file); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
log.error("生成文件失败:==========================" + e.getMessage()); |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
if (filesList.size() > 0) { |
|
|
|
String typeName = contractNo + "开票附件.pdf"; |
|
|
|
try { |
|
|
|
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName); |
|
|
|
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName); |
|
|
|
fileUrl = typeName; |
|
|
|
} |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
log.error("生成文件失败:==========================" + e.getMessage()); |
|
|
|
} |
|
|
|
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName); |
|
|
|
fileUrl = typeName; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -899,10 +914,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
public String blackFile(Map<String, Object> map) { |
|
|
|
String ftl = ""; |
|
|
|
String name = ""; |
|
|
|
if("1".equals(map.get("payTypeKey").toString())){ |
|
|
|
if ("1".equals(map.get("payTypeKey").toString())) { |
|
|
|
ftl = "existingvehicles_black"; |
|
|
|
name = "全款新车买卖空白合同_"; |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
ftl = "dai_existingvehicles_black"; |
|
|
|
name = "贷款新车买卖空白合同_"; |
|
|
|
} |
|
|
@ -977,10 +992,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
} |
|
|
|
FinBillApplication entity = fetchBySid(dtoSid); |
|
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
|
String fileUrl = getFileUrl(dto); |
|
|
|
if(StringUtils.isNotBlank(fileUrl)){ |
|
|
|
/* String fileUrl = getFileUrl(dto); |
|
|
|
if (StringUtils.isNotBlank(fileUrl)) { |
|
|
|
entity.setFileUrl(fileUrl); |
|
|
|
} |
|
|
|
}*/ |
|
|
|
baseMapper.updateById(entity); |
|
|
|
} |
|
|
|
|
|
|
@ -2306,7 +2321,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
BigDecimal totalBillMoney = oneBillMoney.multiply(new BigDecimal(finBillVehicles.size())); |
|
|
|
finBillApplication.setTotalBillMoney(totalBillMoney); |
|
|
|
String fileUrl = getFileUrl(dto); |
|
|
|
if(StringUtils.isNotBlank(fileUrl)){ |
|
|
|
if (StringUtils.isNotBlank(fileUrl)) { |
|
|
|
finBillApplication.setFileUrl(fileUrl); |
|
|
|
} |
|
|
|
save(finBillApplication); |
|
|
|