Browse Source

开票申请生成合同修改

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

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

@ -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);

Loading…
Cancel
Save