Browse Source

合同

master
dimengzhe 1 year ago
parent
commit
ddb91a9b82
  1. 348
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java

348
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java

@ -688,210 +688,208 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
//根据合同号查询销售订单数据 //根据合同号查询销售订单数据
BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo); BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData(); SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles(); if("1".equals(busSalesOrder.getPayTypeKey()) || ("2".equals(busSalesOrder.getPayTypeKey()) && StringUtils.isNotBlank(loanSolutions.getTypeKey()))) {
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid()); List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid()); BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(dto.getOpenTickSid()); BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if (!dto.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())) { FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(dto.getOpenTickSid());
//生成开票申请书 if (!dto.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())) {
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) { //生成开票申请书
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
if (invoicingDetailsVoResultBean.getData() != null) { ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName()); if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
} }
} map.put("contractNo", busSalesOrder.getContractNo());
map.put("contractNo", busSalesOrder.getContractNo()); List<BillFileVo> list = new ArrayList<>();
List<BillFileVo> list = new ArrayList<>();
BillFileVo billFileVo = new BillFileVo(); BillFileVo billFileVo = new BillFileVo();
if (busSalesOrderModel != null) { if (busSalesOrderModel != null) {
billFileVo.setCarName(busSalesOrderModel.getModelName()); billFileVo.setCarName(busSalesOrderModel.getModelName());
billFileVo.setNum(String.valueOf(finBillVehicles.size())); billFileVo.setNum(String.valueOf(finBillVehicles.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
} }
} if (loanSolutions != null) {
billFileVo.setType(busSalesOrder.getBillingType()); if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
list.add(billFileVo); billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers(); }
finBillTrailers.removeAll(Collections.singleton(null)); }
Map<String, Object> carNameMap = new HashMap<>(); billFileVo.setType(busSalesOrder.getBillingType());
if (!finBillTrailers.isEmpty()) { list.add(billFileVo);
for (int i = 0; i < finBillTrailers.size(); i++) { List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
FinBillTrailerDto finBillTrailerDto = finBillTrailers.get(i); finBillTrailers.removeAll(Collections.singleton(null));
billFileVo = new BillFileVo(); Map<String, Object> carNameMap = new HashMap<>();
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo()); if (!finBillTrailers.isEmpty()) {
if (baseTrailer != null) { for (int i = 0; i < finBillTrailers.size(); i++) {
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid()); FinBillTrailerDto finBillTrailerDto = finBillTrailers.get(i);
if (baseTrailerModel != null) { billFileVo = new BillFileVo();
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue(); BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo());
if (carNameMap.containsKey(carName)) { if (baseTrailer != null) {
carNameMap.put(carName, Integer.parseInt(carNameMap.get(carName).toString()) + 1); BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid());
continue; if (baseTrailerModel != null) {
} else { String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue();
billFileVo.setType(busSalesOrder.getBillingType()); if (carNameMap.containsKey(carName)) {
if (loanSolutions != null) { carNameMap.put(carName, Integer.parseInt(carNameMap.get(carName).toString()) + 1);
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) { continue;
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount()); } else {
billFileVo.setType(busSalesOrder.getBillingType());
if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
}
} }
billFileVo.setCarName(carName);
if (busSalesOrderModel != null) {
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
carNameMap.put(carName, 1);
list.add(billFileVo);
} }
billFileVo.setCarName(carName);
if (busSalesOrderModel != null) {
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
carNameMap.put(carName, 1);
list.add(billFileVo);
} }
} }
} }
} }
} if (!list.isEmpty()) {
if (!list.isEmpty()) { for (int i = 0; i < list.size(); i++) {
for (int i = 0; i < list.size(); i++) { BillFileVo billFileVo1 = list.get(i);
BillFileVo billFileVo1 = list.get(i); String carName = billFileVo1.getCarName();
String carName = billFileVo1.getCarName(); if (carNameMap.containsKey(carName)) {
if (carNameMap.containsKey(carName)) { billFileVo1.setNum(carNameMap.get(carName).toString());
billFileVo1.setNum(carNameMap.get(carName).toString());
}
}
}
map.put("list", list);
map.put("name",busSalesOrder.getAffiliatedCompany());
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
map.put("year", year);
map.put("month", month);
map.put("day", day);
if (!"02".equals(dto.getOpenTickTypeKey())) {
if (finCompanyInvoicingDetailsVo != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
carMap.put("Yf", busSalesOrder.getCustomerName());
carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
}
carMap.put("contractNo", "D" + map.get("contractNo"));
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
} }
} }
carMap.put("date", date);
List<CarContractListVo> carContractListVos = new ArrayList<>();
for (FinBillVehicleDto salesOrderVehicle : finBillVehicles) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid());
carContractListVo.setBrand(baseVehicle.getModelName());
carContractListVo.setVinNo(baseVehicle.getVinNo());
carContractListVo.setEnginNo(baseVehicle.getEngineNo());
carContractListVos.add(carContractListVo);
}
carMap.put("carLists", carContractListVos);
} }
} map.put("list", list);
} map.put("name", busSalesOrder.getAffiliatedCompany());
if (loanSolutions != null) {
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) {
String remarks = "";
String date = DateUtil.today(); String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-")); List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0); String year = dateString.get(0);
String month = dateString.get(1); String month = dateString.get(1);
String day = dateString.get(2); String day = dateString.get(2);
filemap.put("year", year); map.put("year", year);
filemap.put("month", month); map.put("month", month);
filemap.put("day", day); map.put("day", day);
if (finCompanyInvoicingDetailsVo != null) { if (!"02".equals(dto.getOpenTickTypeKey())) {
filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称 if (finCompanyInvoicingDetailsVo != null) {
filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//开票名称 //生成车辆登记合同
filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号 if (busSalesOrder != null) {
filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号 carMap.put("Yf", busSalesOrder.getCustomerName());
filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址 carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
}else{ }
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid()); carMap.put("contractNo", "D" + map.get("contractNo"));
if (crmCustomerTemp != null) { if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称 ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
filemap.put("customerName", crmCustomerTemp.getName());//开票名称 if (invoicingDetailsVoResultBean.getData() != null) {
filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号 carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
filemap.put("idNo", crmCustomerTemp.getIDNumber());//纳税人识别号 }
filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址 }
carMap.put("date", date);
List<CarContractListVo> carContractListVos = new ArrayList<>();
for (FinBillVehicleDto salesOrderVehicle : finBillVehicles) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid());
carContractListVo.setBrand(baseVehicle.getModelName());
carContractListVo.setVinNo(baseVehicle.getVinNo());
carContractListVo.setEnginNo(baseVehicle.getEngineNo());
carContractListVos.add(carContractListVo);
}
carMap.put("carLists", carContractListVos);
} }
} }
filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型 }
remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。";
filemap.put("remarks", remarks); if (loanSolutions != null) {
filemap.put("busSid",busSalesOrder.getSid()); if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) {
ResultBean<Map<String,Object>> mapResultBean = commonContractFeign.getModelMap(filemap); String remarks = "";
checkMap = mapResultBean.getData(); String date = DateUtil.today();
//生成新车空白合同 List<String> dateString = Arrays.asList(date.split("-"));
checkMap.put("totalPrice", ""); String year = dateString.get(0);
checkMap.put("priceRemarks", ""); String month = dateString.get(1);
checkMap.put("depositTotal", ""); String day = dateString.get(2);
checkMap.put("createOrgName", ""); filemap.put("year", year);
filemap.put("month", month);
filemap.put("day", day);
if (finCompanyInvoicingDetailsVo != null) {
filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//开票名称
filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号
filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号
filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址
} else {
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid());
if (crmCustomerTemp != null) {
filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称
filemap.put("customerName", crmCustomerTemp.getName());//开票名称
filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号
filemap.put("idNo", crmCustomerTemp.getIDNumber());//纳税人识别号
filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址
}
}
filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型
remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。";
filemap.put("remarks", remarks);
filemap.put("busSid", busSalesOrder.getSid());
ResultBean<Map<String, Object>> mapResultBean = commonContractFeign.getModelMap(filemap);
checkMap = mapResultBean.getData();
//生成新车空白合同
checkMap.put("totalPrice", "");
checkMap.put("priceRemarks", "");
checkMap.put("depositTotal", "");
checkMap.put("createOrgName", "");
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
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);
});
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
} }
} }
if(!carMap.isEmpty()){ try {
Future<String> future2 = pool.submit(() -> { ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
return getCarFile(carMap); .setNameFormat("demo-pool-%d").build();
}); ExecutorService pool = new ThreadPoolExecutor(1, 2,
if (StringUtils.isNotBlank(future2.get())) { 1000, TimeUnit.MILLISECONDS,
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get()); new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
filesList.add(file); List<File> filesList = new ArrayList<>();
if (!map.isEmpty()) {
Future<String> future1 = pool.submit(() -> {
return getInvoiceApplyFile(map);
});
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
} }
} if (!carMap.isEmpty()) {
Map<String, Object> finalCheckMap = checkMap; Future<String> future2 = pool.submit(() -> {
if(!finalCheckMap.isEmpty()){ return getCarFile(carMap);
Future<String> future3 = pool.submit(() -> { });
return blackFile(finalCheckMap); if (StringUtils.isNotBlank(future2.get())) {
}); File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get());
if (StringUtils.isNotBlank(future3.get())) { filesList.add(file);
File file = new File(docPdfComponent.getUploadTemplateUrl() + future3.get()); }
filesList.add(file); }
Map<String, Object> finalCheckMap = checkMap;
if (!finalCheckMap.isEmpty()) {
Future<String> future3 = pool.submit(() -> {
return blackFile(finalCheckMap);
});
if (StringUtils.isNotBlank(future3.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future3.get());
filesList.add(file);
}
} }
}
if (filesList.size() > 0) {
String typeName = contractNo + "开票附件.pdf";
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName);
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
if (filesList.size() > 0) { } catch (Exception e) {
String typeName = contractNo + "开票附件.pdf"; e.printStackTrace();
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName); log.error("生成文件失败:==========================" + e.getMessage());
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl =typeName;
} }
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
} }
return fileUrl; return fileUrl;

Loading…
Cancel
Save