Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
master
dimengzhe 1 year ago
parent
commit
e3c5c1a867
  1. 378
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  2. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingMapper.java
  3. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingService.java

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

@ -63,11 +63,12 @@ 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.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
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.bussalesvehicle.BusSalesVehicleFeign;
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto;
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
@ -228,6 +229,8 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
@Autowired
private LoanNoGuaranteeCreditReviewFeign loanNoGuaranteeCreditReviewFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private BaseVehicleStateFeign baseVehicleStateFeign;
@ -463,25 +466,71 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(record.getBusSalesOrderSid()).getData();
SolutionsDetailsVo solutionsDetailsVo = loanSolutionsFeign.selectDetails(record.getBusSalesOrderSid()).getData();
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.selectByNoAndVinSid(record.getContractId(), record.getVinSid()).getData();
if ("2".equals(record.getSaleTypeKey())) {
if (StringUtils.isBlank(solutionsDetailsVo.getTypeKey())) {//担保
if ("2".equals(record.getSaleTypeKey())){
if (StringUtils.isBlank(solutionsDetailsVo.getTypeKey())){//担保
String jfkcSid = loanHomevisitInvestigateFeign.selSaleOrderSidAndBorrSid(record.getBusSalesOrderSid(), busSalesOrderVehicle.getBorrowerSid()).getData();
LoanHomevisitInvestigateCustomerDetailsVo loanHomevisitInvestigateCustomerDetailsVo = loanHomevisitInvestigateCustomerFeign.selectByMainSid(jfkcSid).getData();
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(loanHomevisitInvestigateCustomerDetailsVo.getBorrowerSid()).getData();
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData();
record.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
record.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())) {
if ("1".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())){
record.setInvoiceName(loanHomevisitInvestigateCustomerDetailsVo.getBorrowerName());
} else if ("2".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())) {
record.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
record.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())){
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.selectInvoingByTaxpayerNo(loanHomevisitInvestigateCustomerDetailsVo.getAccCompRegistNum()).getData();
record.setInvoiceName(loanHomevisitInvestigateCustomerDetailsVo.getAccCompName());
record.setOpenTickSid(finCompanyInvoicingDetailsVo.getSid());
String openTickRemarks = "";
if (com.yxt.common.base.utils.StringUtils.isNotBlank(openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getAddress())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getAddress() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getPhone())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getPhone() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankName())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankName() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankAccount() + ";";
}
record.setInvoiceInfo(openTickRemarks);
}
} else if ("01".equals(solutionsDetailsVo.getTypeKey())) {//非担保
}else if ("01".equals(solutionsDetailsVo.getTypeKey())){//非担保
LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData();
record.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
record.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())) {
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName());
} else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())) {
record.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
record.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.selectInvoingByName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany()).getData();
record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
record.setOpenTickSid(finCompanyInvoicingDetailsVo.getSid());
String openTickRemarks = "";
if (com.yxt.common.base.utils.StringUtils.isNotBlank(openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getAddress())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getAddress() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getPhone())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getPhone() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankName())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankName() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankAccount() + ";";
}
record.setInvoiceInfo(openTickRemarks);
}
}
}
@ -523,10 +572,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
for (FinBillVehicleDto finBillVehicle : finBillVehicles) {
if ("02".equals(finBillVehicle.getBillTypeKey())) {
if ("02".equals(finBillVehicle.getBillTypeKey())){
String openTickSid = finBillVehicle.getOpenTickSid();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(openTickSid);
if (finCompanyInvoicingDetailsVo == null) {
if (finCompanyInvoicingDetailsVo == null){
return rb.setMsg("个人不能开具增值税专用发票");
}
}
@ -881,7 +930,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
}
if ("1".equals(busSalesOrder.getPayTypeKey())) {
if("1".equals(busSalesOrder.getPayTypeKey())){
if (loanSolutions != null) {
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) {
String remarks = "";
@ -949,7 +998,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
filesList.add(file);
}
}
if ("1".equals(busSalesOrder.getPayTypeKey())) {
if("1".equals(busSalesOrder.getPayTypeKey())){
Map<String, Object> finalCheckMap = checkMap;
if (!finalCheckMap.isEmpty()) {
Future<String> future3 = pool.submit(() -> {
@ -980,7 +1029,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
fileUrl = typeName;
}
}
if (StringUtils.isNotBlank(fileUrl)) {
if(StringUtils.isNotBlank(fileUrl)){
FinBillApplication finBillApplication = fetchBySid(dto.getSid());
finBillApplication.setFileUrl(fileUrl);
baseMapper.updateById(finBillApplication);
@ -995,10 +1044,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
//根据合同号查询销售订单数据
BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
//按开票名称sid分组
Map<String, List<FinBillVehicleDto>> groupedByOpenTickSid = finBillVehicles.stream()
.collect(Collectors.groupingBy(FinBillVehicleDto::getOpenTickSid));
@ -1027,7 +1076,11 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
billFileVo.setNum(String.valueOf(sameOpenTickSidList.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
/* if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) {
billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount());
}
}*/
billFileVo.setOpenPrice(dto.getOneBillMoney());
billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型
List<String> vinNoString = new ArrayList<>();
@ -1036,13 +1089,15 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
sameOpenTickSidList.forEach(v -> {
//车架号
BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid());
if(baseVehicle != null){
finalBillFileVo.setVinNo(baseVehicle.getVinNo());
}
/* if(baseVehicle != null){
vinNoString.add(baseVehicle.getVinNo());
}*/
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);
/* String vinNo = String.join(",",vinNoString);
billFileVo.setVinNo(vinNo);*/
list.add(finalBillFileVo);
});
@ -1058,7 +1113,19 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
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, Arrays.asList(carNameMap.get(carName).toString()).add(baseTrailer.getVinNo()));
continue;
} else {
billFileVo.setType(busSalesOrder.getBillingType());
billFileVo.setCarName(carName);
if (busSalesOrderModel != null) {
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
trailerVinString.add(baseTrailer.getVinNo());
carNameMap.put(carName,trailerVinString);
list.add(billFileVo);
}*/
billFileVo.setCarName(carName);
billFileVo.setVinNo(baseTrailer.getVinNo());
billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney());
@ -1069,6 +1136,19 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
}
}
/*if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
BillFileVo billFileVo1 = list.get(i);
String carName = billFileVo1.getCarName();
if (carNameMap.containsKey(carName)) {
List<String> ssList = castList(carNameMap.get(carName),String.class);
String trailerVinNo = String.join(",",ssList);
billFileVo1.setOpenPrice(Arrays.asList(carName.split("#")).get(1));
billFileVo1.setCarName(Arrays.asList(carName.split("#")).get(0));
billFileVo1.setVinNo(trailerVinNo);
}
}
}*/
map.put("list", list);
map.put("name", finBillVehicleDto.getOpenTickName());
String date = DateUtil.today();
@ -1109,7 +1189,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
}
if ("1".equals(busSalesOrder.getPayTypeKey())) {
if("1".equals(busSalesOrder.getPayTypeKey())){
if (loanSolutions != null) {
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) {
String remarks = "";
@ -1177,7 +1257,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
filesList.add(file);
}
}
if ("1".equals(busSalesOrder.getPayTypeKey())) {
if("1".equals(busSalesOrder.getPayTypeKey())){
Map<String, Object> finalCheckMap = checkMap;
if (!finalCheckMap.isEmpty()) {
Future<String> future3 = pool.submit(() -> {
@ -1207,167 +1287,21 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
} else {
if (StringUtils.isNotBlank(loanSolutions.getTypeKey())) {//非担保、生成开票申请书和车辆登记合同
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
for (FinBillVehicleDto v : finBillVehicles) {
BusSalesOrderVehicle busSalesOrderVehicle = baseMapper.selectByBorrowSid(dto.getContractNo(), v.getVehSid());
LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())) {//登记在挂靠公司
v.setOpenTickSid(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompanySid());
v.setOpenTickName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
v.setBillTypeKey(busSalesOrder.getBillingTypeKey());
v.setBillTypeValue(busSalesOrder.getBillingType());
}
}
//按开票名称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<>();
FinBillVehicleDto finBillVehicleDto = sameOpenTickSidList.get(0);
//生成开票申请书
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(sameOpenTickSidList.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
billFileVo.setOpenPrice(dto.getOneBillMoney());
billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型
List<String> vinNoString = new ArrayList<>();
List<FinBillTrailerDto> lllList = new ArrayList<>();
BillFileVo finalBillFileVo = billFileVo;
sameOpenTickSidList.forEach(v -> {
//车架号
BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid());
if(baseVehicle != null){
finalBillFileVo.setVinNo(baseVehicle.getVinNo());
}
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);
list.add(finalBillFileVo);
});
//==========================主车结束
Map<String, Object> carNameMap = new HashMap<>();
if (!lllList.isEmpty()) {
for (int i = 0; i < lllList.size(); i++) {
List<String> trailerVinString = new ArrayList<>();
FinBillTrailerDto finBillTrailerDto = lllList.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();
billFileVo.setCarName(carName);
billFileVo.setVinNo(baseTrailer.getVinNo());
billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney());
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
billFileVo.setType(finBillTrailerDto.getBillTypeValue());
list.add(billFileVo);
}
}
}
}
map.put("list", list);
map.put("name", finBillVehicleDto.getOpenTickName());
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);
FinCompanyInvoicing finCompanyInvoicing = finCompanyInvoicingService.fetchBySid(openTickSid);
if (!"02".equals(finBillVehicleDto.getBillTypeKey()) && finCompanyInvoicing != null) {//机动车
if (finCompanyInvoicing != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
carMap.put("Yf", busSalesOrder.getCustomerName());
carMap.put("invoiceName", finCompanyInvoicing.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 : sameOpenTickSidList) {
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);
}
}
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());
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);
}
}
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){//非担保、生成开票申请书和车辆登记合同
/*LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
record.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
record.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName());
}else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
}*/
} 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);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
}
}
if (StringUtils.isNotBlank(fileUrl)) {
if(StringUtils.isNotBlank(fileUrl)){
FinBillApplication finBillApplication = fetchBySid(dto.getSid());
finBillApplication.setFileUrl(fileUrl);
baseMapper.updateById(finBillApplication);
@ -2769,10 +2703,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
for (FinBillVehicleDto finBillVehicle : finBillVehicles) {
if ("02".equals(finBillVehicle.getBillTypeKey())) {
if ("02".equals(finBillVehicle.getBillTypeKey())){
String openTickSid = finBillVehicle.getOpenTickSid();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(openTickSid);
if (finCompanyInvoicingDetailsVo == null) {
if (finCompanyInvoicingDetailsVo == null){
return rb.setMsg("个人不能开具增值税专用发票");
}
}
@ -3091,10 +3025,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
for (FinBillVehicleDto finBillVehicle : finBillVehicles) {
if ("02".equals(finBillVehicle.getBillTypeKey())) {
if ("02".equals(finBillVehicle.getBillTypeKey())){
String openTickSid = finBillVehicle.getOpenTickSid();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(openTickSid);
if (finCompanyInvoicingDetailsVo == null) {
if (finCompanyInvoicingDetailsVo == null){
return rb.setMsg("个人不能开具增值税专用发票");
}
}
@ -5576,20 +5510,20 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
SolutionsDetailsVo solutionsDetailsVo = loanSolutionsFeign.selectDetails(busSalesOrder.getSid()).getData();
billApplicationIInfoVoss = baseMapper.selectByContractNos(contractId);
BigDecimal oneBillMoney;
if ("2".equals(busSalesOrder.getPayTypeKey())) {
if ("2".equals(busSalesOrder.getPayTypeKey())){
oneBillMoney = new BigDecimal(solutionsDetailsVo.getMainVehicleAmount());
billApplicationIInfoVoss.setInvoiceMoney(oneBillMoney.toString());
billApplicationIInfoVoss.setInvoiceTotal(oneBillMoney.multiply(new BigDecimal(vins.size())).toString());
billApplicationIInfoVoss.setNoEditInvoiceTypeAndName(true);
billApplicationIInfoVoss.setNoEditInvoiceMoney(true);
} else {
}else {
oneBillMoney = busSalesOrder.getOneBillMoney();
if (oneBillMoney != null) {
billApplicationIInfoVoss.setInvoiceMoney(oneBillMoney.toString());
billApplicationIInfoVoss.setInvoiceTotal(oneBillMoney.multiply(new BigDecimal(vins.size())).toString());
billApplicationIInfoVoss.setNoEditInvoiceTypeAndName(false);
billApplicationIInfoVoss.setNoEditInvoiceMoney(true);
} else {
}else {
billApplicationIInfoVoss.setNoEditInvoiceTypeAndName(false);
billApplicationIInfoVoss.setNoEditInvoiceMoney(false);
}
@ -5630,25 +5564,71 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
//贷款主车初始化开票名称、开票类型
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.selectByNoAndVinSid(contractId, vins.get(i)).getData();
if ("2".equals(busSalesOrder.getPayTypeKey())) {
if (StringUtils.isBlank(solutionsDetailsVo.getTypeKey())) {//担保
if ("2".equals(busSalesOrder.getPayTypeKey())){
if (StringUtils.isBlank(solutionsDetailsVo.getTypeKey())){//担保
String jfkcSid = loanHomevisitInvestigateFeign.selSaleOrderSidAndBorrSid(busSalesOrder.getSid(), busSalesOrderVehicle.getBorrowerSid()).getData();
LoanHomevisitInvestigateCustomerDetailsVo loanHomevisitInvestigateCustomerDetailsVo = loanHomevisitInvestigateCustomerFeign.selectByMainSid(jfkcSid).getData();
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData();
vinListVos1.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
vinListVos1.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())) {
if ("1".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())){
vinListVos1.setInvoiceName(loanHomevisitInvestigateCustomerDetailsVo.getBorrowerName());
} else if ("2".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())) {
vinListVos1.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
vinListVos1.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())){
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.selectInvoingByTaxpayerNo(loanHomevisitInvestigateCustomerDetailsVo.getAccCompRegistNum()).getData();
vinListVos1.setInvoiceName(loanHomevisitInvestigateCustomerDetailsVo.getAccCompName());
vinListVos1.setOpenTickSid(finCompanyInvoicingDetailsVo.getSid());
String openTickRemarks = "";
if (com.yxt.common.base.utils.StringUtils.isNotBlank(openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getAddress())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getAddress() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getPhone())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getPhone() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankName())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankName() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankAccount() + ";";
}
vinListVos1.setInvoiceInfo(openTickRemarks);
}
} else if ("01".equals(solutionsDetailsVo.getTypeKey())) {//非担保
}else if ("01".equals(solutionsDetailsVo.getTypeKey())){//非担保
LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData();
vinListVos1.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
vinListVos1.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())) {
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
vinListVos1.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName());
} else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())) {
vinListVos1.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
vinListVos1.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.selectInvoingByName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany()).getData();
vinListVos1.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
vinListVos1.setOpenTickSid(finCompanyInvoicingDetailsVo.getSid());
String openTickRemarks = "";
if (com.yxt.common.base.utils.StringUtils.isNotBlank(openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getAddress())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getAddress() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getPhone())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getPhone() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankName())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankName() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankAccount() + ";";
}
vinListVos1.setInvoiceInfo(openTickRemarks);
}
}
}
@ -5665,7 +5645,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return rb.success().setData(finBillApplicationDetailsVo);
}
public String createContractNo(FinBillApplicationDto dto) {
public String createContractNo(FinBillApplicationDto dto){
/* try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@ -5685,10 +5665,10 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return fileUrl;
}
public List<String> castList(Object obj, Class<String> clazz) {
public List<String> castList(Object obj, Class<String> clazz){
List<String> result = new ArrayList<>();
if (obj instanceof List<?>) {
for (Object o : (List<?>) obj) {
if(obj instanceof List<?>){
for (Object o : (List<?>) obj){
result.add(clazz.cast(o));
}
return result;
@ -5701,7 +5681,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
DownloanVoUrl downloanVoUrl = new DownloanVoUrl();
ResultBean<String> resultBean = saveOrUpdateDto(dto);
String contractNo = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl() + contractNo);
downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+contractNo);
return rb.success().setData(downloanVoUrl);
}
}

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingMapper.java

@ -87,4 +87,7 @@ public interface FinCompanyInvoicingMapper extends BaseMapper<FinCompanyInvoicin
List<FinCompanyInvoicingDetailsVo> selectInvoingByOrgPath(String userOrgSid);
FinCompanyInvoicingDetailsVo selByTaxpayerNoAndUseOrgSid(@Param("taxpayerNo") String taxpayerNo, @Param("useOrgSid") String useOrgSid);
@Select("select * from fin_company_invoicing where name = #{affiliatedCompany}")
FinCompanyInvoicingDetailsVo selectInvoingByName(String affiliatedCompany);
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingService.java

@ -569,4 +569,10 @@ public class FinCompanyInvoicingService extends MybatisBaseService<FinCompanyInv
FinCompanyInvoicingDetailsVo vo = baseMapper.selByTaxpayerNoAndUseOrgSid(taxpayerNo,useOrgSid);
return rb.success().setData(vo);
}
public ResultBean<FinCompanyInvoicingDetailsVo> selectInvoingByName(String affiliatedCompany) {
ResultBean<FinCompanyInvoicingDetailsVo> rb = ResultBean.fireFail();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = baseMapper.selectInvoingByName(affiliatedCompany);
return rb.success().setData(finCompanyInvoicingDetailsVo);
}
}
Loading…
Cancel
Save