|
|
@ -31,12 +31,12 @@ import com.alibaba.fastjson.JSON; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
import com.yxt.anrui.base.api.basedistributor.BaseDistributor; |
|
|
|
import com.yxt.anrui.base.api.basedistributor.BaseDistributorFeign; |
|
|
|
import com.yxt.anrui.base.api.baseinternalpurchase.flow.GetNodeVo; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.BaseTrailerDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.BaseTrailerFeign; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.TrailerVo; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.TraliveredVo; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.*; |
|
|
|
import com.yxt.anrui.base.api.basetrailermodel.BaseTrailerModel; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicle; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; |
|
|
|
import com.yxt.anrui.base.api.basevehicleappendix.BaseVehicleAppendixFeign; |
|
|
|
import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificateFeign; |
|
|
@ -45,12 +45,13 @@ import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleState; |
|
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto; |
|
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum; |
|
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAppendix; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum; |
|
|
|
import com.yxt.anrui.base.api.commoncontract.CommonContract; |
|
|
|
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign; |
|
|
|
import com.yxt.anrui.base.api.commoncontract.*; |
|
|
|
import com.yxt.anrui.base.common.enums.BillTypeEnum; |
|
|
|
import com.yxt.anrui.base.common.enums.CommonContractEnum; |
|
|
|
import com.yxt.anrui.base.common.utils.Rule; |
|
|
|
import com.yxt.anrui.base.common.utils.domain.BillNo; |
|
|
|
import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyFeign; |
|
|
@ -58,11 +59,17 @@ import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVe |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderDetailsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderContractNoDto; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderModelInfoVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderPriceInfoVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.app.vin.VinListsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; |
|
|
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto; |
|
|
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingFeign; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; |
|
|
|
import com.yxt.anrui.fin.api.finbillapplication.*; |
|
|
@ -104,12 +111,13 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.*; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterFeign; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; |
|
|
|
import com.yxt.common.base.config.component.DocPdfComponent; |
|
|
|
import com.yxt.common.base.config.component.FileUploadComponent; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.*; |
|
|
|
import com.yxt.common.base.utils.Base64; |
|
|
|
import com.yxt.common.base.utils.ConstantUtils; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.base.utils.WordUtils; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
@ -121,14 +129,12 @@ import org.apache.tomcat.util.threads.ThreadPoolExecutor; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.io.ByteArrayOutputStream; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.UnsupportedEncodingException; |
|
|
|
import java.io.*; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.net.HttpURLConnection; |
|
|
|
import java.net.URL; |
|
|
|
import java.net.URLEncoder; |
|
|
|
import java.text.MessageFormat; |
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
@ -213,6 +219,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
private BusValcustFilingFeign busValcustFilingFeign; |
|
|
|
@Autowired |
|
|
|
private SysParameterFeign sysParameterFeign; |
|
|
|
@Autowired |
|
|
|
private LoanSolutionsFeign loanSolutionsFeign; |
|
|
|
@Autowired |
|
|
|
private DocPdfComponent docPdfComponent; |
|
|
|
|
|
|
|
private QueryWrapper<FinBillApplication> createQueryWrapper(FinBillApplicationQuery query) { |
|
|
|
// todo: 这里根据具体业务调整查询条件
|
|
|
@ -483,6 +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)){ |
|
|
|
finBillApplication.setFileUrl(fileUrl); |
|
|
|
} |
|
|
|
save(finBillApplication); |
|
|
|
//主车开票信息
|
|
|
|
for (FinBillVehicleDto finBillVehicleDto : finBillVehicles) { |
|
|
@ -664,6 +678,285 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica |
|
|
|
return rb.success().setMsg("修改成功").setData(dtoSid); |
|
|
|
} |
|
|
|
|
|
|
|
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(); |
|
|
|
//根据合同号查询销售订单数据
|
|
|
|
BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo); |
|
|
|
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData(); |
|
|
|
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())) { |
|
|
|
//生成开票申请书
|
|
|
|
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) { |
|
|
|
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); |
|
|
|
if (invoicingDetailsVoResultBean.getData() != null) { |
|
|
|
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName()); |
|
|
|
} |
|
|
|
} |
|
|
|
map.put("contractNo", busSalesOrder.getContractNo()); |
|
|
|
List<BillFileVo> list = new ArrayList<>(); |
|
|
|
|
|
|
|
BillFileVo billFileVo = new BillFileVo(); |
|
|
|
if (busSalesOrderModel != null) { |
|
|
|
billFileVo.setCarName(busSalesOrderModel.getModelName()); |
|
|
|
billFileVo.setNum(String.valueOf(finBillVehicles.size())); |
|
|
|
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); |
|
|
|
} |
|
|
|
if (loanSolutions != null) { |
|
|
|
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) { |
|
|
|
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount()); |
|
|
|
} |
|
|
|
} |
|
|
|
billFileVo.setType(busSalesOrder.getBillingType()); |
|
|
|
list.add(billFileVo); |
|
|
|
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers(); |
|
|
|
finBillTrailers.removeAll(Collections.singleton(null)); |
|
|
|
Map<String, Object> carNameMap = new HashMap<>(); |
|
|
|
if (!finBillTrailers.isEmpty()) { |
|
|
|
for (int i = 0; i < finBillTrailers.size(); i++) { |
|
|
|
FinBillTrailerDto finBillTrailerDto = finBillTrailers.get(i); |
|
|
|
billFileVo = new BillFileVo(); |
|
|
|
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo()); |
|
|
|
if (baseTrailer != null) { |
|
|
|
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid()); |
|
|
|
if (baseTrailerModel != null) { |
|
|
|
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue(); |
|
|
|
if (carNameMap.containsKey(carName)) { |
|
|
|
carNameMap.put(carName, Integer.parseInt(carNameMap.get(carName).toString()) + 1); |
|
|
|
continue; |
|
|
|
} 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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (!list.isEmpty()) { |
|
|
|
for (int i = 0; i < list.size(); i++) { |
|
|
|
BillFileVo billFileVo1 = list.get(i); |
|
|
|
String carName = billFileVo1.getCarName(); |
|
|
|
if (carNameMap.containsKey(carName)) { |
|
|
|
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); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (loanSolutions != null) { |
|
|
|
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) { |
|
|
|
//生成新车空白合同
|
|
|
|
filemap.put("totalPrice", ""); |
|
|
|
filemap.put("priceRemarks", ""); |
|
|
|
filemap.put("depositTotal", ""); |
|
|
|
String remarks = ""; |
|
|
|
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); |
|
|
|
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());//开票类型
|
|
|
|
filemap.put("createOrgName", ""); |
|
|
|
remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。"; |
|
|
|
filemap.put("remarks", remarks); |
|
|
|
filemap.put("busSid",busSalesOrder.getSid()); |
|
|
|
ResultBean<Map<String,Object>> mapResultBean = commonContractFeign.getModelMap(filemap); |
|
|
|
checkMap = mapResultBean.getData(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
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()){ |
|
|
|
Future<String> future2 = pool.submit(() -> { |
|
|
|
return getCarFile(carMap); |
|
|
|
}); |
|
|
|
if (StringUtils.isNotBlank(future2.get())) { |
|
|
|
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.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; |
|
|
|
} |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
log.error("生成文件失败:==========================" + e.getMessage()); |
|
|
|
} |
|
|
|
|
|
|
|
return fileUrl; |
|
|
|
} |
|
|
|
|
|
|
|
public String blackFile(Map<String, Object> map) { |
|
|
|
String ftl = "dai_existingvehicles_black"; |
|
|
|
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + ftl + ".ftl"); |
|
|
|
//生成word文件名
|
|
|
|
String targetPath = docPdfComponent.getUploadTemplateUrl(); |
|
|
|
String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); |
|
|
|
long seconds = System.currentTimeMillis(); |
|
|
|
String typeName = dateStr + seconds + ".doc"; |
|
|
|
File file = new File(targetPath + ftl + seconds + ".ftl"); |
|
|
|
File dir = new File(targetPath); |
|
|
|
WordConvertUtils.inputStreamToFile(inputStream, file); |
|
|
|
WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); |
|
|
|
//新生成的word路径
|
|
|
|
String wordPath = targetPath + typeName; |
|
|
|
//生成合同文件名
|
|
|
|
String pdfName = map.get("contractNo").toString() + "贷款新车买卖空白合同_" + dateStr + seconds + ".pdf"; |
|
|
|
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); |
|
|
|
return pdfName; |
|
|
|
} |
|
|
|
|
|
|
|
public String getInvoiceApplyFile(Map<String, Object> map) { |
|
|
|
String ftl = "invoiceApply"; |
|
|
|
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + ftl + ".ftl"); |
|
|
|
//生成word文件名
|
|
|
|
String targetPath = docPdfComponent.getUploadTemplateUrl(); |
|
|
|
String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); |
|
|
|
long seconds = System.currentTimeMillis(); |
|
|
|
String typeName = dateStr + seconds + ".doc"; |
|
|
|
File file = new File(targetPath + ftl + seconds + ".ftl"); |
|
|
|
File dir = new File(targetPath); |
|
|
|
WordConvertUtils.inputStreamToFile(inputStream, file); |
|
|
|
WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); |
|
|
|
//新生成的word路径
|
|
|
|
String wordPath = targetPath + typeName; |
|
|
|
//生成文件名
|
|
|
|
String pdfName = map.get("contractNo").toString() + "开票申请书_" + dateStr + seconds + ".pdf"; |
|
|
|
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); |
|
|
|
return pdfName; |
|
|
|
} |
|
|
|
|
|
|
|
public String getCarFile(Map<String, Object> map) { |
|
|
|
String ftl = "carContract"; |
|
|
|
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + ftl + ".ftl"); |
|
|
|
//生成word文件名
|
|
|
|
String targetPath = docPdfComponent.getUploadTemplateUrl(); |
|
|
|
String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); |
|
|
|
long seconds = System.currentTimeMillis(); |
|
|
|
String typeName = dateStr + seconds + ".doc"; |
|
|
|
File file = new File(targetPath + ftl + seconds + ".ftl"); |
|
|
|
File dir = new File(targetPath); |
|
|
|
WordConvertUtils.inputStreamToFile(inputStream, file); |
|
|
|
WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir); |
|
|
|
//新生成的word路径
|
|
|
|
String wordPath = targetPath + typeName; |
|
|
|
//生成合同文件名
|
|
|
|
String pdfName = map.get("contractNo").toString() + "车辆登记合同_" + dateStr + seconds + ".pdf"; |
|
|
|
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); |
|
|
|
return pdfName; |
|
|
|
} |
|
|
|
|
|
|
|
public void insertByDto(FinBillApplicationDto dto) { |
|
|
|
FinBillApplication entity = new FinBillApplication(); |
|
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
@ -677,6 +970,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)){ |
|
|
|
entity.setFileUrl(fileUrl); |
|
|
|
} |
|
|
|
baseMapper.updateById(entity); |
|
|
|
} |
|
|
|
|
|
|
@ -2001,6 +2298,10 @@ 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)){ |
|
|
|
finBillApplication.setFileUrl(fileUrl); |
|
|
|
} |
|
|
|
save(finBillApplication); |
|
|
|
//主车开票信息
|
|
|
|
for (FinBillVehicleDto finBillVehicleDto : finBillVehicles) { |
|
|
|