Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
yunuo970428 1 year ago
parent
commit
153579f147
  1. 6
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationRest.java
  2. 215
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java
  3. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/invoiceApply.ftl
  4. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java
  5. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java
  6. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincompanyinvoicing/FinCompanyInvoicingDetailsVo.java
  7. 17
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java
  8. 233
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  9. 69
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  10. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingService.java
  11. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyMapper.java
  12. 19
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyMapper.xml
  13. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyService.java
  14. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java
  15. 20
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml
  16. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java
  17. 1
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java
  18. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeign.java
  19. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeignFallback.java
  20. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java
  21. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  22. 200
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  23. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java
  24. 164
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
  25. 9
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/advanceInvoice/AdvanceInvoiceInfoVo.java
  26. 5
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/advanceInvoice/AppBusAdvanceGinvoiceapplyFeign.java
  27. 5
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/advanceInvoice/AppBusAdvanceGinvoiceapplyFeignFallback.java
  28. 5
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/advanceInvoice/AppBusAdvanceGinvoiceapplyRest.java
  29. 152
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/advanceInvoice/AppBusAdvanceGinvoiceapplyService.java
  30. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceitem/AsServiceItemVo.java
  31. 44
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/GoodsListVo.java
  32. 15
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/PackageGoodsQuery.java
  33. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/PackageItemVo.java
  34. 17
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/SubjectVo.java
  35. 7
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicepackage/AsServicePackageMapper.java
  36. 9
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicepackage/AsServicePackageMapper.xml
  37. 11
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicepackage/AsServicePackageRest.java
  38. 30
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicepackage/AsServicePackageService.java
  39. 15
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsgoods/WmsGoodsPackageQuery.java
  40. 34
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsgoods/WmsGoodsPackageVo.java

6
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationRest.java

@ -54,7 +54,11 @@ public class BusBillApplicationRest implements BusBillApplicationFeign {
@Override
public ResultBean save(@RequestBody BusBillApplicationDto dto) {
return busBillApplicationService.saveOrUpdateDto(dto);
ResultBean rb = ResultBean.fireFail();
ResultBean<DownloanVoUrl> resultBean = busBillApplicationService.saveOrUpdateDto(dto);
DownloanVoUrl downloanVoUrl = resultBean.getData();
return rb.success().setData(downloanVoUrl.getSid());
// return busBillApplicationService.saveOrUpdateDto(dto);
}
@Override

215
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java

@ -69,6 +69,7 @@ import com.yxt.anrui.fin.api.finbillapplication.FinBillApplication;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationDto;
import com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleDto;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleVo;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicing;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign;
@ -129,7 +130,8 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
@Autowired
private LoanNoGuaranteeCreditReviewFeign loanNoGuaranteeCreditReviewFeign;
public ResultBean<String> saveOrUpdateDto(BusBillApplicationDto dto) {
public ResultBean<DownloanVoUrl> saveOrUpdateDto(BusBillApplicationDto dto) {
DownloanVoUrl downloanVoUrl = new DownloanVoUrl();
ResultBean rb = ResultBean.fireFail();
String dtoSid = dto.getSid();
List<BusBillTrailerDto> busBillTrailers = dto.getFinBillTrailers();
@ -151,9 +153,11 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
BeanUtil.copyProperties(dto, busBillApplication, "sid");
busBillApplication.setNum(busBillVehicles.size());
busBillApplication.setArrearsMoney("0");
dto.setSid(busBillApplication.getSid());
String allDownloadUrl = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(allDownloadUrl);
downloanVoUrl.setSid(dto.getSid());
busBillApplication.setFileUrl(allDownloadUrl);
save(busBillApplication);
createContractNo(dto);
//主车开票信息
for (BusBillVehicleDto busBillVehicleDto : busBillVehicles) {
BusBillVehicle busBillVehicle = new BusBillVehicle();
@ -207,7 +211,7 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
busBillFileDto.setAttachType(BusAttachTypeEnum.ZJ.getAttachType());
busBillFileService.saveOrUpdateDto(busBillFileDto);
}
return rb.success().setMsg("保存成功").setData(busBillApplication.getSid());
return rb.success().setMsg("保存成功").setData(downloanVoUrl);
}
BusBillApplication busBillApplication = fetchBySid(dtoSid);
if (busBillApplication == null) {
@ -215,7 +219,12 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
}
dto.setArrearsMoney("0");
updateByDto(dto);
createContractNo(dto);
String allDownloadUrl = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(allDownloadUrl);
downloanVoUrl.setSid(dto.getSid());
busBillApplication = fetchBySid(dtoSid);
busBillApplication.setFileUrl(allDownloadUrl);
baseMapper.updateById(busBillApplication);
busBillFileService.deleteByBusAppSid(dtoSid);
//附件信息
if (carBuyContractImages != null) {
@ -279,7 +288,7 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
busBillTrailerService.save(busBillTrailer);
}
}
return rb.success().setMsg("修改成功").setData(dtoSid);
return rb.success().setMsg("修改成功").setData(downloanVoUrl);
}
public void updateByDto(BusBillApplicationDto dto) {
@ -362,6 +371,31 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
}
vo.setFinBillTrailers(busBillTrailerVos);
vo.setFinBillVehicles(busBillVehicleVos);
//生成的合同下载地址
int contractBtns = 0;
//根据合同号查询销售订单数据
BusSalesOrder busSalesOrder = baseMapper.selectByContract(busDeliveredApply.getContractNo());
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
contractBtns = 1;
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){
contractBtns = 2;
}
}
vo.setContractBtns(contractBtns);
//销售订单开票sid
if(StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())){
vo.setOrderInvoiceSid(busSalesOrder.getAffiliatedCompanySid());
}
if(busSalesOrderPrice != null){
if(busSalesOrderPrice.getSingleFinalPrice() != null){
vo.setOrderInvoicePrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
}
return vo;
}
String sid = busBillApplicationVo.getSid();
@ -1113,22 +1147,135 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
}
public String createContractNo(BusBillApplicationDto dto){
/* 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());
Future future1 = pool.submit(() -> {
String fileUrl = getFileUrl(dto);
});
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}*/
// String fileUrl = getFileUrlNew(dto);
String fileUrl = "";
return fileUrl;
String allDownloadUrl = "";
boolean showNotice = false;//是否需要生成合同
//根据合同号查询销售订单数据
BusSalesOrder busSalesOrder = baseMapper.selectByContract(dto.getContractNo());
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
int contractBts = 0;
if("1".equals(busSalesOrder.getPayTypeKey())){
contractBts = 1;
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){
contractBts = 2;
}
}
if(StringUtils.isBlank(dto.getSid())){//新增的,与销售订单数据作对比
switch (contractBts){
case 1:
//全款,与销售订单的价格不一样,就notice
if(StringUtils.isNotBlank(dto.getOneBillMoney()) && new BigDecimal(dto.getOneBillMoney()).compareTo(busSalesOrderPrice.getSingleFinalPrice()) !=0){
showNotice = true;
}else{
//与销售订单的价格一致,判断是否与销售订单的开票名称不一致的情况
List<BusBillVehicleDto> finBillVehicleDtoList = dto.getFinBillVehicles();
finBillVehicleDtoList = finBillVehicleDtoList.stream().filter(v->!v.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())).collect(Collectors.toList());
finBillVehicleDtoList.removeAll(Collections.singleton(null));
showNotice = finBillVehicleDtoList.size()>0;
}
break;
case 2:
showNotice = dto.getFinBillVehicles().size()>0;
break;
}
}else{//若是修改的话,且生成过合同的情况下,则与旧数据作对比
BusBillApplication finBillApplication = fetchBySid(dto.getSid());
if(StringUtils.isBlank(finBillApplication.getFileUrl())){
switch (contractBts){
case 1:
//全款,与销售订单的价格不一样,就notice
if(StringUtils.isNotBlank(dto.getOneBillMoney()) && new BigDecimal(dto.getOneBillMoney()).compareTo(busSalesOrderPrice.getSingleFinalPrice()) !=0){
showNotice = true;
}else{
//与销售订单的价格一致,判断是否与销售订单的开票名称不一致的情况
List<BusBillVehicleDto> finBillVehicleDtoList = dto.getFinBillVehicles();
finBillVehicleDtoList = finBillVehicleDtoList.stream().filter(v->!v.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())).collect(Collectors.toList());
finBillVehicleDtoList.removeAll(Collections.singleton(null));
showNotice = finBillVehicleDtoList.size()>0;
}
break;
case 2:
showNotice = dto.getFinBillVehicles().size()>0;
break;
}
}else{
//若有合同,则与旧数据作对比
boolean isTrue = false;
List<BusBillVehicleVo> finBillVehicleVos = busBillVehicleService.fetchByMainSid(dto.getSid());
List<BusBillVehicleDto> finBillVehicleVosNew = dto.getFinBillVehicles();
switch (contractBts){
case 1:
//全款,与销售订单的价格不一样,则与旧数据作对比
if(new BigDecimal(dto.getOneBillMoney()).compareTo(busSalesOrderPrice.getSingleFinalPrice()) != 0){
isTrue = true;
}else{
//与销售订单的价格一致,判断是否与销售订单的开票名称不一致的情况,若有不一致的情况,则与旧数据作对比
finBillVehicleVosNew = finBillVehicleVosNew.stream().filter(v->!v.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())).collect(Collectors.toList());
finBillVehicleVosNew.removeAll(Collections.singleton(null));
isTrue = finBillVehicleVosNew.size()>0;
}
if(isTrue){
if(new BigDecimal(dto.getOneBillMoney()).compareTo(finBillApplication.getOneBillMoney()) != 0){
showNotice = true;
}else{
//如果数量发生变化,则生成合同
if(finBillVehicleVos.size() != finBillVehicleVosNew.size()){
showNotice = true;
}else{//数量没发生变化,车辆发生变化,则生成合同
List<String> stringList1 = finBillVehicleVos.stream().map(BusBillVehicleVo::getVehSid).collect(Collectors.toList());
List<String> stringList2 = finBillVehicleVosNew.stream().map(BusBillVehicleDto::getVehSid).collect(Collectors.toList());
Set<String> stringSet3 = new HashSet<>();
stringSet3.addAll(stringList1);
stringSet3.addAll(stringList2);
if(stringSet3.size() != stringList1.size()){
showNotice = true;
}else{
//车辆没发生变化,查询开票信息是否发生变化
for (int i = 0; i < finBillVehicleVos.size(); i++) {
String vehSid = finBillVehicleVos.get(i).getVehSid();
String openTickSid = finBillVehicleVos.get(i).getOpenTickSid();
String openTickSidNew = finBillVehicleVosNew.stream().filter(vv->vehSid.equals(vv.getVehSid())).collect(Collectors.toList()).get(0).getOpenTickSid();
if(!openTickSid.equals(openTickSidNew)){
showNotice = true;
break;
}
}
}
}
}
}
break;
case 2:
//车辆数量发生变化,
if(finBillVehicleVos.size() != finBillVehicleVosNew.size()){
showNotice = true;
}else{
List<String> stringList1 = finBillVehicleVos.stream().map(BusBillVehicleVo::getVehSid).collect(Collectors.toList());
List<String> stringList2 = finBillVehicleVosNew.stream().map(BusBillVehicleDto::getVehSid).collect(Collectors.toList());
Set<String> stringSet3 = new HashSet<>();
stringSet3.addAll(stringList1);
stringSet3.addAll(stringList2);
if(stringSet3.size() != stringList1.size()){
showNotice = true;
}
}
break;
}
if(!showNotice && !isTrue){
allDownloadUrl = finBillApplication.getFileUrl();
}
}
}
if(showNotice){
// allDownloadUrl = getFileUrlNew(dto);
}
return allDownloadUrl;
}
public String getFileUrlNew(BusBillApplicationDto dto) {
@ -1357,12 +1504,14 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
List<BusBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
for (BusBillVehicleDto 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());
if(StringUtils.isNotBlank(busSalesOrderVehicle.getBorrowerSid())){
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分组
@ -1523,10 +1672,12 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfo2Pdf(BusBillApplicationDto dto) {
ResultBean<DownloanVoUrl> rb = ResultBean.fireFail();
DownloanVoUrl downloanVoUrl = new DownloanVoUrl();
ResultBean<String> resultBean = saveOrUpdateDto(dto);
String contractNo = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+contractNo);
downloanVoUrl.setSid(resultBean.getData());
ResultBean<DownloanVoUrl> resultBean = saveOrUpdateDto(dto);
String allDownloadUrl = resultBean.getData().getAllDownloadUrl();
if(StringUtils.isNotBlank(allDownloadUrl)){
downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+allDownloadUrl);
}
downloanVoUrl.setSid(resultBean.getData().getSid());
return rb.success().setData(downloanVoUrl);
}
}

4
anrui-buscenter/anrui-buscenter-biz/src/main/resources/ftl/invoiceApply.ftl

@ -998,7 +998,7 @@
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:t>数量</w:t>
<w:t>车架号</w:t>
</w:r>
</w:p>
</w:tc>
@ -1194,7 +1194,7 @@
<w:kern w:val="0"/>
<w:sz-cs w:val="21"/>
</w:rPr>
<w:t>${car.num!}</w:t>
<w:t>${car.vinNo!}</w:t>
</w:r>
</w:p>
</w:tc>

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java

@ -279,4 +279,9 @@ public interface FinBillApplicationFeign {
@PostMapping("/saveInvoicedApplyInfoPdf")
@ResponseBody
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdf(@RequestBody FinBillApplicationDto dto);
@ApiOperation("欠款点击生成附件")
@PostMapping("/saveInvoicedApplyInfoPdfQk")
@ResponseBody
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdfQk(@RequestBody FinBillApplicationDto dto);
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java

@ -291,4 +291,9 @@ public class FinBillApplicationFeignFallback implements FinBillApplicationFeign
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) {
return null;
}
@Override
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdfQk(FinBillApplicationDto dto) {
return null;
}
}

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincompanyinvoicing/FinCompanyInvoicingDetailsVo.java

@ -54,6 +54,8 @@ public class FinCompanyInvoicingDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("1个人 2企业")
private String customTypeKey;
@ApiModelProperty("银行账号")
private String bankAccount; // 银行账号
@ApiModelProperty("开户行")

17
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java

@ -106,12 +106,20 @@ public class FinBillApplicationRest implements FinBillApplicationFeign {
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody FinBillApplicationDto dto) {
return finBillApplicationService.saveOrUpdateDto(dto);
ResultBean rb = ResultBean.fireFail();
ResultBean<DownloanVoUrl> resultBean = finBillApplicationService.saveOrUpdateDto(dto);
DownloanVoUrl downloanVoUrl = resultBean.getData();
return rb.success().setData(downloanVoUrl.getSid());
// return finBillApplicationService.saveOrUpdateDto(dto);
}
@Override
public ResultBean saveQK(FinBillApplicationDto dto) {
return finBillApplicationService.saveOrUpdateDtoQK(dto);
ResultBean rb = ResultBean.fireFail();
ResultBean<DownloanVoUrl> resultBean = finBillApplicationService.saveOrUpdateDtoQK(dto);
DownloanVoUrl downloanVoUrl = resultBean.getData();
return rb.success().setData(downloanVoUrl.getSid());
// return finBillApplicationService.saveOrUpdateDtoQK(dto);
}
@Override
@ -350,4 +358,9 @@ public class FinBillApplicationRest implements FinBillApplicationFeign {
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) {
return finBillApplicationService.saveInvoicedApplyInfoPdf(dto);
}
@Override
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdfQk(FinBillApplicationDto dto) {
return finBillApplicationService.saveInvoicedApplyInfoPdfQk(dto);
}
}

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

@ -566,8 +566,9 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return p;
}
public ResultBean<String> saveOrUpdateDto(FinBillApplicationDto dto) {
public ResultBean<DownloanVoUrl> saveOrUpdateDto(FinBillApplicationDto dto) {
ResultBean rb = ResultBean.fireFail();
DownloanVoUrl downloanVoUrl = new DownloanVoUrl();
String dtoSid = dto.getSid();
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
List<FinBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
@ -593,9 +594,11 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finBillApplication.setBillNo(billNo);
finBillApplication.setNum(finBillVehicles.size());
finBillApplication.setArrearsMoney("0");
dto.setSid(finBillApplication.getSid());
String allDownloadUrl = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(allDownloadUrl);
downloanVoUrl.setSid(dto.getSid());
finBillApplication.setFileUrl(allDownloadUrl);
save(finBillApplication);
createContractNo(dto);
//主车开票信息
for (FinBillVehicleDto finBillVehicleDto : finBillVehicles) {
FinBillVehicle finBillVehicle = new FinBillVehicle();
@ -680,7 +683,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finBillFileService.saveOrUpdateDto(finBillFileDto);
}
return rb.success().setMsg("保存成功").setData(finBillApplication.getSid());
return rb.success().setMsg("保存成功").setData(downloanVoUrl);
}
FinBillApplication finBillApplication = fetchBySid(dtoSid);
if (finBillApplication == null) {
@ -688,7 +691,12 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
dto.setArrearsMoney("0");
updateByDto(dto);
createContractNo(dto);
String allDownloadUrl = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(allDownloadUrl);
downloanVoUrl.setSid(dto.getSid());
finBillApplication = fetchBySid(dtoSid);
finBillApplication.setFileUrl(allDownloadUrl);
baseMapper.updateById(finBillApplication);
finBillFileService.deleteByFinAppSid(dtoSid);
//附件信息
if (carBuyContractImages != null) {
@ -775,7 +783,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finBillTrailerService.save(finBillTrailer);
}
}
return rb.success().setMsg("修改成功").setData(dtoSid);
return rb.success().setMsg("修改成功").setData(downloanVoUrl);
}
public String getFileUrl(FinBillApplicationDto dto) {
@ -1421,11 +1429,6 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
}
if(StringUtils.isNotBlank(fileUrl)){
FinBillApplication finBillApplication = fetchBySid(dto.getSid());
finBillApplication.setFileUrl(fileUrl);
baseMapper.updateById(finBillApplication);
}
return fileUrl;
}
@ -1535,7 +1538,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
if (oneBillMoney != null) {
vo.setTotalBillMoney(entity.getOneBillMoney().multiply(new BigDecimal(finBillVehicleVos.size())).toString());
vo.setNoEditInvoiceTypeAndName(false);
vo.setNoEditInvoiceMoney(true);
vo.setNoEditInvoiceMoney(false);
}
}
vo.setBusSalesOrderSid(busSalesOrder.getSid());
@ -2367,11 +2370,11 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return rb.setMsg("操作失败!提交的数据不一致");
}
//新增修改保存
ResultBean<String> resultBean = saveOrUpdateDto(dto);
ResultBean<DownloanVoUrl> resultBean = saveOrUpdateDto(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
String businessSid = resultBean.getData().getSid();
finBillApplication = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
@ -2892,7 +2895,8 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return billNo;
}
public ResultBean saveOrUpdateDtoQK(FinBillApplicationDto dto) {
public ResultBean<DownloanVoUrl> saveOrUpdateDtoQK(FinBillApplicationDto dto) {
DownloanVoUrl downloanVoUrl = new DownloanVoUrl();
ResultBean rb = ResultBean.fireFail();
String dtoSid = dto.getSid();
List<FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
@ -2955,9 +2959,11 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
//计算开票金额合计
BigDecimal totalBillMoney = oneBillMoney.multiply(new BigDecimal(finBillVehicles.size()));
finBillApplication.setTotalBillMoney(totalBillMoney);
dto.setSid(finBillApplication.getSid());
String allDownloadUrl = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(allDownloadUrl);
downloanVoUrl.setSid(dto.getSid());
finBillApplication.setFileUrl(allDownloadUrl);
save(finBillApplication);
createContractNo(dto);
//主车开票信息
for (FinBillVehicleDto finBillVehicleDto : finBillVehicles) {
FinBillVehicle finBillVehicle = new FinBillVehicle();
@ -3079,7 +3085,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finBillFileService.saveOrUpdateDto(finBillFileDto);
}
}
return rb.success().setMsg("保存成功").setData(finBillApplication.getSid());
return rb.success().setMsg("保存成功").setData(downloanVoUrl);
}
FinBillApplication finBillApplication = fetchBySid(dtoSid);
if (finBillApplication == null) {
@ -3088,7 +3094,12 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
dto.setBillStateKey("003");
dto.setBillStateValue("欠款开票");
updateByDto(dto);
createContractNo(dto);
String allDownloadUrl = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(allDownloadUrl);
downloanVoUrl.setSid(dto.getSid());
finBillApplication = fetchBySid(dtoSid);
finBillApplication.setFileUrl(allDownloadUrl);
baseMapper.updateById(finBillApplication);
finBillFileService.deleteByFinAppSid(dtoSid);
//附件信息
if (khkpsqsApplicationAppendxs.size() > 0) {
@ -3211,7 +3222,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finBillTrailerService.save(finBillTrailer);
}
}
return rb.success().setMsg("修改成功").setData(dtoSid);
return rb.success().setMsg("修改成功").setData(downloanVoUrl);
}
public ResultBean<String> saveQKLP(FinBillApplicationDto dto) {
@ -3479,11 +3490,11 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
return rb.setMsg("操作失败!提交的数据不一致");
}
//新增修改保存
ResultBean<String> resultBean = saveOrUpdateDtoQK(dto);
ResultBean<DownloanVoUrl> resultBean = saveOrUpdateDtoQK(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
String businessSid = resultBean.getData().getSid();
finBillApplication = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
@ -4653,6 +4664,30 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
finBillApplicationDetailsVo.setCustomerName(commonContract.getPartyB());
finBillApplicationDetailsVo.setModelSid(commonContract.getModelSid());
finBillApplicationDetailsVo.setModelName(commonContract.getModelName());
//生成的合同下载地址
int contractBtns = 0;
//根据合同号查询销售订单数据
busSalesOrder = baseMapper.selectByContract(query.getContractNo());
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
contractBtns = 1;
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){
contractBtns = 2;
}
}
finBillApplicationDetailsVo.setContractBtns(contractBtns);
//销售订单开票sid
if(StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())){
finBillApplicationDetailsVo.setOrderInvoiceSid(busSalesOrder.getAffiliatedCompanySid());
}
if(busSalesOrderPrice != null){
if(busSalesOrderPrice.getSingleFinalPrice() != null){
finBillApplicationDetailsVo.setOrderInvoicePrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
}
} else {
finBillApplicationDetailsVo = fetchDetailsVoBySid(sid);
}
@ -5879,9 +5914,135 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}*/
String fileUrl = getFileUrlNew(dto);
// String fileUrl = "";
return fileUrl;
String allDownloadUrl = "";
boolean showNotice = false;//是否需要生成合同
//根据合同号查询销售订单数据
BusSalesOrder busSalesOrder = baseMapper.selectByContract(dto.getContractNo());
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
int contractBts = 0;
if("1".equals(busSalesOrder.getPayTypeKey())){
contractBts = 1;
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){
contractBts = 2;
}
}
if(StringUtils.isBlank(dto.getSid())){//新增的,与销售订单数据作对比
switch (contractBts){
case 1:
//全款,与销售订单的价格不一样,就notice
if(StringUtils.isNotBlank(dto.getOneBillMoney()) && new BigDecimal(dto.getOneBillMoney()).compareTo(busSalesOrderPrice.getSingleFinalPrice()) !=0){
showNotice = true;
}else{
//与销售订单的价格一致,判断是否与销售订单的开票名称不一致的情况
List<FinBillVehicleDto> finBillVehicleDtoList = dto.getFinBillVehicles();
finBillVehicleDtoList = finBillVehicleDtoList.stream().filter(v->!v.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())).collect(Collectors.toList());
finBillVehicleDtoList.removeAll(Collections.singleton(null));
showNotice = finBillVehicleDtoList.size()>0;
}
break;
case 2:
showNotice = dto.getFinBillVehicles().size()>0;
break;
}
}else{//若是修改的话,且生成过合同的情况下,则与旧数据作对比
FinBillApplication finBillApplication = fetchBySid(dto.getSid());
if(StringUtils.isBlank(finBillApplication.getFileUrl())){
switch (contractBts){
case 1:
//全款,与销售订单的价格不一样,就notice
if(StringUtils.isNotBlank(dto.getOneBillMoney()) && new BigDecimal(dto.getOneBillMoney()).compareTo(busSalesOrderPrice.getSingleFinalPrice()) !=0){
showNotice = true;
}else{
//与销售订单的价格一致,判断是否与销售订单的开票名称不一致的情况
List<FinBillVehicleDto> finBillVehicleDtoList = dto.getFinBillVehicles();
finBillVehicleDtoList = finBillVehicleDtoList.stream().filter(v->!v.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())).collect(Collectors.toList());
finBillVehicleDtoList.removeAll(Collections.singleton(null));
showNotice = finBillVehicleDtoList.size()>0;
}
break;
case 2:
showNotice = dto.getFinBillVehicles().size()>0;
break;
}
}else{
//若有合同,则与旧数据作对比
boolean isTrue = false;
List<FinBillVehicleVo> finBillVehicleVos = finBillVehicleService.fetchByMainSid(dto.getSid());
List<FinBillVehicleDto> finBillVehicleVosNew = dto.getFinBillVehicles();
switch (contractBts){
case 1:
//全款,与销售订单的价格不一样,则与旧数据作对比
if(new BigDecimal(dto.getOneBillMoney()).compareTo(busSalesOrderPrice.getSingleFinalPrice()) != 0){
isTrue = true;
}else{
//与销售订单的价格一致,判断是否与销售订单的开票名称不一致的情况,若有不一致的情况,则与旧数据作对比
finBillVehicleVosNew = finBillVehicleVosNew.stream().filter(v->!v.getOpenTickSid().equals(busSalesOrder.getAffiliatedCompanySid())).collect(Collectors.toList());
finBillVehicleVosNew.removeAll(Collections.singleton(null));
isTrue = finBillVehicleVosNew.size()>0;
}
if(isTrue){
if(new BigDecimal(dto.getOneBillMoney()).compareTo(finBillApplication.getOneBillMoney()) != 0){
showNotice = true;
}else{
//如果数量发生变化,则生成合同
if(finBillVehicleVos.size() != finBillVehicleVosNew.size()){
showNotice = true;
}else{//数量没发生变化,车辆发生变化,则生成合同
List<String> stringList1 = finBillVehicleVos.stream().map(FinBillVehicleVo::getVehSid).collect(Collectors.toList());
List<String> stringList2 = finBillVehicleVosNew.stream().map(FinBillVehicleDto::getVehSid).collect(Collectors.toList());
Set<String> stringSet3 = new HashSet<>();
stringSet3.addAll(stringList1);
stringSet3.addAll(stringList2);
if(stringSet3.size() != stringList1.size()){
showNotice = true;
}else{
//车辆没发生变化,查询开票信息是否发生变化
for (int i = 0; i < finBillVehicleVos.size(); i++) {
String vehSid = finBillVehicleVos.get(i).getVehSid();
String openTickSid = finBillVehicleVos.get(i).getOpenTickSid();
String openTickSidNew = finBillVehicleVosNew.stream().filter(vv->vehSid.equals(vv.getVehSid())).collect(Collectors.toList()).get(0).getOpenTickSid();
if(!openTickSid.equals(openTickSidNew)){
showNotice = true;
break;
}
}
}
}
}
}
break;
case 2:
//车辆数量发生变化,
if(finBillVehicleVos.size() != finBillVehicleVosNew.size()){
showNotice = true;
}else{
List<String> stringList1 = finBillVehicleVos.stream().map(FinBillVehicleVo::getVehSid).collect(Collectors.toList());
List<String> stringList2 = finBillVehicleVosNew.stream().map(FinBillVehicleDto::getVehSid).collect(Collectors.toList());
Set<String> stringSet3 = new HashSet<>();
stringSet3.addAll(stringList1);
stringSet3.addAll(stringList2);
if(stringSet3.size() != stringList1.size()){
showNotice = true;
}
}
break;
}
if(!showNotice && !isTrue){
allDownloadUrl = finBillApplication.getFileUrl();
}
}
}
if(showNotice){
allDownloadUrl = getFileUrlNew(dto);
}
return allDownloadUrl;
}
public List<String> castList(Object obj, Class<String> clazz){
@ -5898,10 +6059,24 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) {
ResultBean<DownloanVoUrl> rb = ResultBean.fireFail();
DownloanVoUrl downloanVoUrl = new DownloanVoUrl();
ResultBean<String> resultBean = saveOrUpdateDto(dto);
String contractNo = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+contractNo);
downloanVoUrl.setSid(resultBean.getData());
ResultBean<DownloanVoUrl> resultBean = saveOrUpdateDto(dto);
String allDownloadUrl = resultBean.getData().getAllDownloadUrl();
if(StringUtils.isNotBlank(allDownloadUrl)){
downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+allDownloadUrl);
}
downloanVoUrl.setSid(resultBean.getData().getSid());
return rb.success().setData(downloanVoUrl);
}
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfoPdfQk(FinBillApplicationDto dto) {
ResultBean<DownloanVoUrl> rb = ResultBean.fireFail();
DownloanVoUrl downloanVoUrl = new DownloanVoUrl();
ResultBean<DownloanVoUrl> resultBean = saveOrUpdateDtoQK(dto);
String allDownloadUrl = resultBean.getData().getAllDownloadUrl();
if(StringUtils.isNotBlank(allDownloadUrl)){
downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+allDownloadUrl);
}
downloanVoUrl.setSid(resultBean.getData().getSid());
return rb.success().setData(downloanVoUrl);
}
}

69
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -236,11 +236,11 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (StringUtils.isNotBlank(query.getAuditState())) {
qw.eq("auditState", query.getAuditState());
}
if(StringUtils.isNotBlank(query.getPayerName())){
qw.like("payerName",query.getPayerName());
if (StringUtils.isNotBlank(query.getPayerName())) {
qw.like("payerName", query.getPayerName());
}
if(StringUtils.isNotBlank(query.getFinBillNo())){
qw.like("billNo",query.getFinBillNo());
if (StringUtils.isNotBlank(query.getFinBillNo())) {
qw.like("billNo", query.getFinBillNo());
}
}
}
@ -1624,12 +1624,14 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
//该合同编号下的该车架号的所有认款金额
if ("2".equals(finUncollectedReceivablesDetailed.getPayTypeKey())) {
List<FinSelectedReceivablesDetailedVo> voList = finSelectedReceivablesDetailedService.selectListByVin1(v.getContractNo(), finUncollectedReceivablesDetailed.getBusVinSid(), 3);
List<FinSelectedReceivablesDetailedVo> voListD = finSelectedReceivablesDetailedService.selectListByVinD(v.getContractNo(), finUncollectedReceivablesDetailed.getBusVinSid(), 3);
BigDecimal bigDecimalVinAll = voList.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal bigDecimalVinAllD = voListD.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
List<FinUncollectedReceivablesDetailed> unList = finUncollectedReceivablesDetailedService.selectListByBusVinSid1(finUncollectedReceivablesDetailed.getBusVinSid());
BigDecimal unDecimalVinAll = unList.stream().map(FinUncollectedReceivablesDetailed::getReveivableMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
//查询该合同编号下的销售订单的单车成交价
BigDecimal leftAll = unDecimalVinAll;
BigDecimal rightAll = bigDecimalVinAll;
BigDecimal rightAll = bigDecimalVinAll.add(bigDecimalVinAllD);
if (leftAll.compareTo(rightAll) <= 0) {
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey());
@ -3586,7 +3588,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (StringUtils.isNotBlank(data.getVinNo()) && StringUtils.isNotBlank(data.getVehMark())) {
rsk.setVinNo(data.getVinNo() + "/" + data.getVehMark());
}
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid,v.getReceivablesSid());
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid, v.getReceivablesSid());
if (StringUtils.isNotBlank(noReturnMoney)) {
rsk.setNoReceivableMoney(noReturnMoney);
}
@ -3889,17 +3891,6 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
//认资金占用费消减平台资金占用费
if (v.getReceivablesName().equals("资金占用费")) {
// FinUncollectedReceivablesDetailedJR jr = finUncollectedReceivablesDetailedJRService.fetchBySid(v.getReceivablesSid());
// LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(jr.getBusSid()).getData();
// if (planDetails != null) {
// if (planDetails.getFund() != null) {
// BigDecimal fund = planDetails.getFund();
// String subscriptionMoney = v.getSubscriptionMoney();
// BigDecimal subtract = fund.subtract(new BigDecimal(subscriptionMoney));
// planDetails.setFund(subtract);
// loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
// }
// }
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@ -3907,6 +3898,10 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy());
//推送资金占用费收款凭证
Future future1 = pool.submit(() -> {
pushFundVoucher(v, sid);
});
//推送资金占用费收款凭证
Future future = pool.submit(() -> {
pushFeeVoucher(v, sid);
});
@ -3915,22 +3910,22 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
log.error("推送数据失败=========================" + e.getMessage());
}
}
if("月还".equals(v.getReceivablesName())
if ("月还".equals(v.getReceivablesName())
|| "垫资方逾期利息".equals(v.getReceivablesName())
||"资金占用费".equals(v.getReceivablesName())
|| "资金占用费".equals(v.getReceivablesName())
|| "结清时资方逾期利息".equals(v.getReceivablesName())
||"资方逾期利息".equals(v.getReceivablesName())
||"名义价".equals(v.getReceivablesName())
||"合同违约金".equals(v.getReceivablesName())
|| "资方逾期利息".equals(v.getReceivablesName())
|| "名义价".equals(v.getReceivablesName())
|| "合同违约金".equals(v.getReceivablesName())
|| "其他费用".equals(v.getReceivablesName())
){
) {
BigDecimal unall = BigDecimal.ZERO;//应收
String busVinSid = "";
BigDecimal yAll = BigDecimal.ZERO;
FinUncollectedReceivablesDetailedJR finUncollectedReceivablesDetailedJR = finUncollectedReceivablesDetailedJRService.fetchBySid(v.getReceivablesSid());
if(finUncollectedReceivablesDetailedJR == null){
if (finUncollectedReceivablesDetailedJR == null) {
LoanRepaymentPlanDetails loanRepaymentPlanDetails = baseMapper.selectByBss(v.getReceivablesSid());
if(loanRepaymentPlanDetails != null){
if (loanRepaymentPlanDetails != null) {
busVinSid = loanRepaymentPlanDetails.getBusVinSid();
BigDecimal a1 = baseMapper.selectA1(busVinSid);
// BigDecimal a2 = baseMapper.selectA2(busVinSid);
@ -3944,9 +3939,9 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
yAll = yAll.add(a4).add(a5);
}
}else{
} else {
LoanRepaymentPlanDetails loanRepaymentPlanDetails = baseMapper.selectByBss(finUncollectedReceivablesDetailedJR.getBusSid());
if(loanRepaymentPlanDetails != null){
if (loanRepaymentPlanDetails != null) {
busVinSid = loanRepaymentPlanDetails.getBusVinSid();
List<String> stringList = baseMapper.selectBys(loanRepaymentPlanDetails.getBusVinSid());
BigDecimal a3 = baseMapper.selectA3(stringList);
@ -3959,7 +3954,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
yAll = yAll.add(a4).add(a5);
}
}
if(yAll.compareTo(unall)>=0){
if (yAll.compareTo(unall) >= 0) {
LoanSettleApply loanSettleApply = baseMapper.selectApply(busVinSid);
LoanSettleBankCost loanSettleBankCost = baseMapper.selectMainSid(loanSettleApply.getSid());
LoanFinBank loanFinBank = baseMapper.selectByBanks(loanSettleApply.getSaleOrderSid());
@ -3994,8 +3989,6 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
}
});
//查询该申请已认款金额总数
@ -4016,6 +4009,18 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
return rb.success().setMsg("款项确认成功");
}
private void pushFundVoucher(FinSelectedReceivablesDetailedVo v, String sid) {
String planSid = "";
FinCollectionConfirmation finCollectionConfirmation = fetchBySid(sid);
if (null != finCollectionConfirmation) {
FinUncollectedReceivablesDetailedJR jr = finUncollectedReceivablesDetailedJRService.fetchBySid(v.getReceivablesSid());
if (jr != null) {
planSid = jr.getBusSid();
loanRepaymentPlanDetailsFeign.pushFund(planSid);
}
}
}
private void pushFeeVoucher(FinSelectedReceivablesDetailedVo v, String sid) {
String planSid = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@ -4639,7 +4644,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
rsk.setVin(data.getVinNo());
}
}
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid,v.getReceivablesSid());
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid, v.getReceivablesSid());
if (StringUtils.isNotBlank(noReturnMoney)) {
rsk.setNoReceivable(new BigDecimal(noReturnMoney));
}
@ -4877,7 +4882,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
rsk.setVin(data.getVinNo());
}
}
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid,v.getReceivablesSid());
String noReturnMoney = finUncollectedReceivablesDetailedJRService.selNoReturnMoneyJR(busSid, v.getReceivablesSid());
if (StringUtils.isNotBlank(noReturnMoney)) {
rsk.setResidueMoney(new BigDecimal(noReturnMoney));
}

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

@ -510,6 +510,7 @@ public class FinCompanyInvoicingService extends MybatisBaseService<FinCompanyInv
ResultBean rb = ResultBean.fireFail();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = fetchDetailsVoBySid(sid);
if (finCompanyInvoicingDetailsVo != null && StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getSid())) {
finCompanyInvoicingDetailsVo.setCustomTypeKey("2");
return rb.success().setData(finCompanyInvoicingDetailsVo);
}
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(sid).getData();
@ -523,6 +524,7 @@ public class FinCompanyInvoicingService extends MybatisBaseService<FinCompanyInv
finCompanyInvoicingDetailsVo.setStaffSid(crmCustomerTempVo.getStaffSid());
finCompanyInvoicingDetailsVo.setCreateBySid(crmCustomerTempVo.getCreateBySid());
finCompanyInvoicingDetailsVo.setStaffSid(crmCustomerTempVo.getStaffSid());
finCompanyInvoicingDetailsVo.setCustomTypeKey("1");
return rb.success().setData(finCompanyInvoicingDetailsVo);
}

1
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyMapper.java

@ -79,4 +79,5 @@ public interface FinFundsCarriedForwardApplyMapper extends BaseMapper<FinFundsCa
String selectByBusSid(String busSid);
String selectByBusSid1(String busSid);
String selectByBusSid1D(String busSid);
}

19
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyMapper.xml

@ -105,4 +105,23 @@
and ff.busVinSid = #{busVinSid} and ff.receivablesName = '首付款及费用'
GROUP BY d.`sid`) d
</select>
<select id="selectByBusSid1D" resultType="java.lang.String">
select ifnull(sum(dbalance), 0) as subscriptionMoney
from (SELECT
cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0) ) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
left join fin_uncollected_receivables_detailed ff on ff.sid = d.receivablesSid
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.auditState = 3
and ff.busVinSid = #{busVinSid} and ff.receivablesName = '订金'
GROUP BY d.`sid`) d
</select>
</mapper>

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finfundscarriedforwardapply/FinFundsCarriedForwardApplyService.java

@ -1576,8 +1576,10 @@ public class FinFundsCarriedForwardApplyService extends MybatisBaseService<FinFu
//查询该车是否是贷款
if("2".equals(finUncollectedReceivablesDetailed.getPayTypeKey())){
String subscribute = baseMapper.selectByBusSid1(finUncollectedReceivablesDetailed.getBusVinSid());
String subscributeD = baseMapper.selectByBusSid1D(finUncollectedReceivablesDetailed.getBusVinSid());
String receiableMoney = finUncollectedReceivablesDetailedService.selectByBusVinSid1(finUncollectedReceivablesDetailed.getBusVinSid());
if (new BigDecimal(subscribute).compareTo(new BigDecimal(receiableMoney)) >= 0) {
BigDecimal subscributeAll = new BigDecimal(subscribute).add(new BigDecimal(subscributeD));
if (subscributeAll.compareTo(new BigDecimal(receiableMoney)) >= 0) {
//已认款完成
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto();
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.FIN_RQ.getTypeKey());

1
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.java

@ -98,6 +98,7 @@ public interface FinSelectedReceivablesDetailedMapper extends BaseMapper<FinSele
List<FinSelectedReceivablesDetailedVo> selectListByVin(@Param("contractNo") String contractNo, @Param("busVinSid") String busVinSid, @Param("state") int state);
List<FinSelectedReceivablesDetailedVo> selectListByVin1(@Param("contractNo") String contractNo, @Param("busVinSid") String busVinSid, @Param("state") int state);
List<FinSelectedReceivablesDetailedVo> selectListByVinD(@Param("contractNo") String contractNo, @Param("busVinSid") String busVinSid, @Param("state") int state);
List<FinSelectedReceivablesDetailedVo> selectListByVin2(@Param("contractNo") String contractNo, @Param("busVinSid") String busVinSid, @Param("state") int state);
List<FinSelectedReceivablesDetailed> getList(@Param("list") List<String> sidsList);

20
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml

@ -209,6 +209,26 @@
and ff.receivablesName = '首付款及费用'
GROUP BY d.`sid`) d
</select>
<select id="selectListByVinD"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo">
select ifnull(sum(dbalance), 0) as subscriptionMoney
from (SELECT cast((
d.`subscriptionMoney` - COALESCE(SUM(f.`thisUseMoney`), 0)) AS DECIMAL(10, 2)) AS dbalance
FROM fin_selected_receivables_detailed d
left join fin_uncollected_receivables_detailed ff on ff.sid = d.receivablesSid
LEFT JOIN (
SELECT f.busSid,
f.thisUseMoney
FROM fin_funds_carried_forward_veh f
JOIN `fin_funds_carried_forward_apply` fa ON f.mainSid = fa.sid
WHERE fa.`nodeState` != '终止'
) f ON f.`busSid` = d.`sid`
WHERE d.auditState = #{state}
and ff.busVinSid = #{busVinSid}
and d.contractNo = #{contractNo}
and ff.receivablesName = '订金'
GROUP BY d.`sid`) d
</select>
<select id="selectListByVin2"
resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo">

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java

@ -285,6 +285,10 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
return baseMapper.selectListByVin1(contractNo, busVinSid, state);
}
public List<FinSelectedReceivablesDetailedVo> selectListByVinD(String contractNo, String busVinSid, int state) {
return baseMapper.selectListByVinD(contractNo, busVinSid, state);
}
public List<FinSelectedReceivablesDetailedVo> selectListByVin2(String contractNo, String busVinSid, int state) {
return baseMapper.selectListByVin2(contractNo, busVinSid, state);
}

1
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java

@ -11,6 +11,7 @@ import java.math.BigDecimal;
*/
@Data
public class LoanPlanDetailsVoForFundVoucher {
private String sid;
private String busVinSid;
private String useOrgName;
private BigDecimal duePushMoney;

6
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeign.java

@ -62,4 +62,10 @@ public interface LoanRepaymentPlanDetailsFeign {
@PostMapping("/updateVehSidAndPeriod")
@ResponseBody
ResultBean updateVehSidAndPeriod(@RequestParam("busVinSid") String busVinSid,@RequestParam("period") String period,@RequestParam("paymentMoney") String paymentMoney,@RequestParam("paymentInterest") String paymentInterest);
@ApiOperation("推送资金占用费计提凭证")
@PostMapping("/pushFund")
@ResponseBody
public ResultBean pushFund(@RequestParam("sid") String sid);
}

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeignFallback.java

@ -56,4 +56,9 @@ public class LoanRepaymentPlanDetailsFeignFallback implements LoanRepaymentPlanD
public ResultBean updateVehSidAndPeriod(String busVinSid, String period, String paymentMoney, String paymentInterest) {
return null;
}
@Override
public ResultBean pushFund(String sid) {
return null;
}
}

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java

@ -112,6 +112,7 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
@ -467,9 +468,9 @@ public class LoanBePadsincereApplyService extends MybatisBaseService<LoanBePadsi
sysBeMoney = "0";
}
loanBePadsincereVehDetailsVo.setSysBeMoney(sysBeMoney);
loanBePadsincereVehDetailsVo.setBankBeMoney(String.valueOf(Double.parseDouble(bePadsincereExcelInfo.getBePrincipal()) / loanRepaymentScheduleDetailsVos.size()));
loanBePadsincereVehDetailsVo.setBankBeInter(String.valueOf(Double.parseDouble(bePadsincereExcelInfo.getBeDefInter()) / loanRepaymentScheduleDetailsVos.size()));
loanBePadsincereVehDetailsVo.setPadMoney(String.valueOf(Double.parseDouble(loanBePadsincereVehDetailsVo.getBankBeMoney()) + Double.parseDouble(loanBePadsincereVehDetailsVo.getBankBeInter())));
loanBePadsincereVehDetailsVo.setBankBeMoney(String.valueOf(new BigDecimal(bePadsincereExcelInfo.getBePrincipal()).divide(new BigDecimal(loanRepaymentScheduleDetailsVos.size()),2,BigDecimal.ROUND_HALF_UP)));
loanBePadsincereVehDetailsVo.setBankBeInter(String.valueOf(new BigDecimal(bePadsincereExcelInfo.getBeDefInter()).divide(new BigDecimal(loanRepaymentScheduleDetailsVos.size()),2,BigDecimal.ROUND_HALF_UP)));
loanBePadsincereVehDetailsVo.setPadMoney(String.valueOf(new BigDecimal(loanBePadsincereVehDetailsVo.getBankBeMoney()).add(new BigDecimal(loanBePadsincereVehDetailsVo.getBankBeInter()))));
loanBePadsincereVehDetailsVo.setPaymentAccount(bePadsincereExcelInfo.getPaymentAccount());
loanBePadsincereVehDetailsVo.setPaymentNum(bePadsincereExcelInfo.getPaymentNum());
loanBePadsincereVehDetailsVo.setBankCollectionAcc(bePadsincereExcelInfo.getBankCollectionAcc());

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java

@ -73,4 +73,6 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper<LoanRepayment
LoanRepaymentPlanDetails selOneByBankNoAndBusVinSid(@Param("bankContractNo") String bankContractNo,@Param("saleVehSid") String saleVehSid);
CheckPayStateVo checkPayState(@Param("pSid") String pSid);
LoanPlanDetailsVoForFundVoucher pushFund(@Param("sid") String sid);
}

200
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml

@ -151,7 +151,7 @@
FROM (SELECT j.busSid, j.sid, j.reveivableMoney
FROM anrui_fin.fin_uncollected_receivables_detailed_jr as j
WHERE j.payCostTitleKey = '006') as fj) as fjj
WHERE fjj.busSid = a.sid),0) as fund
WHERE fjj.busSid = a.sid), 0) as fund
FROM (
SELECT pd.dueDate,
pd.useOrgSid,
@ -279,7 +279,7 @@
FROM (SELECT j.busSid, j.sid, j.reveivableMoney
FROM anrui_fin.fin_uncollected_receivables_detailed_jr as j
WHERE j.payCostTitleKey = '006') as fj) as fjj
WHERE fjj.busSid = a.sid),0) as fund
WHERE fjj.busSid = a.sid), 0) as fund
FROM (
SELECT pd.loanContractNo,
pd.oweState,
@ -366,7 +366,7 @@
FROM (SELECT j.busSid, j.sid, j.reveivableMoney
FROM anrui_fin.fin_uncollected_receivables_detailed_jr as j
WHERE j.payCostTitleKey = '006') as fj) as fjj
WHERE fjj.busSid = a.sid),0) as fund
WHERE fjj.busSid = a.sid), 0) as fund
FROM (
SELECT pd.paymentMoney,
pd.oweState,
@ -466,7 +466,7 @@
FROM (SELECT j.busSid, j.sid, j.reveivableMoney
FROM anrui_fin.fin_uncollected_receivables_detailed_jr as j
WHERE j.payCostTitleKey = '006') as fj) as fjj
WHERE fjj.busSid = a.sid),0) as fund
WHERE fjj.busSid = a.sid), 0) as fund
FROM (
SELECT pd.paymentMoney,
pd.oweState,
@ -580,99 +580,105 @@
</select>
<select id="checkPayState"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.CheckPayStateVo">
SELECT
b.repaidMoney AS actualMoney,
CASE
SELECT b.repaidMoney AS actualMoney,
CASE
WHEN ( b.outstandingMoney + b.bankBeInter + b.fund ) > 0 THEN
'0'
WHEN ( b.outstandingMoney + b.bankBeInter + b.fund ) &lt;= 0 THEN
'1'
END AS checkState
FROM
(
SELECT
a.*,
IFNULL((
SELECT
( fjj.reveivableMoney - fjj.m )
FROM
(
SELECT
IFNULL((
SELECT
SUM( subscriptionMoney )
FROM
anrui_fin.fin_selected_receivables_detailed AS s
WHERE
s.auditState = '3'
AND s.receivablesSid = fj.sid
),
0
) AS m,
fj.*
FROM
( SELECT j.busSid, j.sid, j.reveivableMoney FROM anrui_fin.fin_uncollected_receivables_detailed_jr AS j WHERE j.payCostTitleKey = '006' ) AS fj
) AS fjj
WHERE
fjj.busSid = a.sid
),
0
) AS fund
FROM
(
SELECT
pd.dueDate,
pd.useOrgSid,
pd.sid,
pd.dueMoney,
pd.overdue,
t.repaidMoney,
t.outstandingMoney,
IFNULL( pd.paymentInterest, 0 ) AS bankBeInter,
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
FROM
loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
LEFT JOIN (
SELECT
p.sid,
IFNULL((
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS repaidMoney,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS outstandingMoney
FROM
loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
) AS a
WHERE
a.dueDate &lt;= a.updateDate
AND a.sid = #{pSid}
) AS b
WHEN (b.outstandingMoney + b.bankBeInter + b.fund) > 0 THEN
'0'
WHEN (b.outstandingMoney + b.bankBeInter + b.fund) &lt;= 0 THEN
'1'
END AS checkState
FROM (
SELECT a.*,
IFNULL((
SELECT (fjj.reveivableMoney - fjj.m)
FROM (
SELECT IFNULL((
SELECT SUM(subscriptionMoney)
FROM anrui_fin.fin_selected_receivables_detailed AS s
WHERE s.auditState = '3'
AND s.receivablesSid = fj.sid
),
0
) AS m,
fj.*
FROM (SELECT j.busSid, j.sid, j.reveivableMoney
FROM anrui_fin.fin_uncollected_receivables_detailed_jr AS j
WHERE j.payCostTitleKey = '006') AS fj
) AS fjj
WHERE fjj.busSid = a.sid
),
0
) AS fund
FROM (
SELECT pd.dueDate,
pd.useOrgSid,
pd.sid,
pd.dueMoney,
pd.overdue,
t.repaidMoney,
t.outstandingMoney,
IFNULL(pd.paymentInterest, 0) AS bankBeInter,
pd.overdue AS dueOverdue,
pd.updateTime AS updateDate
FROM loan_repayment_plan_details AS pd
LEFT JOIN anrui_buscenter.bus_sales_order AS s ON s.sid = pd.salesOrderSid
LEFT JOIN (
SELECT p.sid,
IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS repaidMoney,
IFNULL(
(
p.dueMoney - IFNULL((
SELECT SUM(
IFNULL(h.actualMoney, 0))
FROM loan_repayment_history AS h
WHERE h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
)),
0
) AS outstandingMoney
FROM loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
) AS a
WHERE a.dueDate &lt;= a.updateDate
AND a.sid = #{pSid}
) AS b
</select>
<select id="pushFund"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher">
SELECT c.*,
(c.reveivableMoney - c.fund) AS duePushMoney
FROM (
SELECT b.*
FROM (
SELECT a.*,
IFNULL((SELECT SUM(fund)
FROM loan_push_fund_history AS ph
WHERE ph.busVinSid = a.busVinSid), 0) AS fund
FROM (
SELECT p.sid,
p.busVinSid,
p.useOrgSid,
p.useOrgName,
SUM(j.reveivableMoney) AS reveivableMoney
FROM anrui_fin.fin_uncollected_receivables_detailed_jr AS j
LEFT JOIN loan_repayment_plan_details AS p ON j.busSid = p.sid
WHERE j.payCostTitleKey = '006'
GROUP BY p.busVinSid
) AS a
) AS b
WHERE b.reveivableMoney - b.fund > 0
AND b.sid = #{sid}
) c
</select>
</mapper>

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java

@ -70,4 +70,9 @@ public class LoanRepaymentPlanDetailsRest implements LoanRepaymentPlanDetailsFei
loanRepaymentPlanDetailsService.updateVehSidAndPeriod(busVinSid, period, paymentMoney, paymentInterest);
return rb.success();
}
@Override
public ResultBean pushFund(String sid) {
return loanRepaymentPlanDetailsService.pushFund(sid);
}
}

164
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java

@ -1,62 +1,39 @@
package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import cn.hutool.core.date.DateTime;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.DifferenceVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.HistoryOverDueVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryDto;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.*;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation;
import com.yxt.anrui.riskcenter.biz.loanpushfundhistory.LoanPushFundHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentschedule.LoanRepaymentScheduleService;
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService;
import com.yxt.anrui.riskcenter.biz.loansolutionsotherpolicy.LoanSolutionsOtherpolicyService;
import com.yxt.anrui.riskcenter.biz.loanwarrantinformation.LoanWarrantInformationService;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.MsgWs;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.base.utils.WordConvertUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessagePushTransferDto;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
@ -67,11 +44,25 @@ import java.util.stream.Collectors;
@Service
public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepaymentPlanDetailsMapper, LoanRepaymentPlanDetails> {
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private LoanRepaymentHistoryService loanRepaymentHistoryService;
@Autowired
private LoanRepaymentScheduleService loanRepaymentScheduleService;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private LoanPushFundHistoryService loanPushFundHistoryService;
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> savePlanDetails(LoanRepaymentPlanDetailsDto dto) {
@ -194,7 +185,7 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
}
public List<String> selUseOrgSidListForFundVoucher() {
return baseMapper.selUseOrgSidListForFundVoucher();
return baseMapper.selUseOrgSidListForFundVoucher();
}
public List<LoanPlanDetailsVoForFundVoucher> getFundForVoucher(String u) {
@ -206,10 +197,105 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
}
public LoanRepaymentPlanDetails selOneByBankNoAndBusVinSid(String bankContractNo, String saleVehSid) {
return baseMapper.selOneByBankNoAndBusVinSid(bankContractNo,saleVehSid);
return baseMapper.selOneByBankNoAndBusVinSid(bankContractNo, saleVehSid);
}
public CheckPayStateVo checkPayState(String pSid) {
return baseMapper.checkPayState(pSid);
}
public ResultBean pushFund(String sid) {
ResultBean rb = ResultBean.fireFail();
LoanPlanDetailsVoForFundVoucher v = baseMapper.pushFund(sid);
if (null != v) {
List<LoanPushFundHistory> fundHistoryList = new ArrayList<>();
LoanRepaymentPlanDetails planDetails = fetchBySid(sid);
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(planDetails.getUseOrgSid()).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail1.setSceneCode("贷方");
voucherDetail1.setDataTime(new DateTime());
voucherDetail1.setAmount(v.getDuePushMoney());
List<SysOrganizationVo> deptVo = sysOrganizationFeign.selectChildrenListBySid(planDetails.getUseOrgSid()).getData();
if (!deptVo.isEmpty()) {
deptVo.stream().forEach(d -> {
if (d.getName().equals("金融服务部")) {
voucherDetail1.setDeptCode(d.getOrgCode());
}
});
}
voucherDetails.add(voucherDetail1);
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(v.getBusVinSid()).getData();
if (null != busSalesOrderVehicle) {
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData();
String deptSid = salesOrder.getOrgSid();
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("借方");
voucherDetail.setDataTime(new DateTime());
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData();
if (null != organizationDeptVo) {
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode());
}
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
voucherDetail.setCustomerCode(customerNumber);
}
}
voucherDetail.setAmount(v.getDuePushMoney());
voucherDetails.add(voucherDetail);
}
LoanPushFundHistory loanPushFundHistory = new LoanPushFundHistory();
BeanUtil.copyProperties(v, loanPushFundHistory, "id", "sid", "fund");
if (null != v.getDuePushMoney()) {
loanPushFundHistory.setFund(v.getDuePushMoney());
}
fundHistoryList.add(loanPushFundHistory);
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveFundVoucher(generalVoucher);
// 生成推送资金占用费历史记录
if (!fundHistoryList.isEmpty()) {
loanPushFundHistoryService.saveLists(fundHistoryList);
}
}
return rb.success();
}
}

9
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/advanceInvoice/AdvanceInvoiceInfoVo.java

@ -112,4 +112,13 @@ public class AdvanceInvoiceInfoVo implements Vo {
private String saleSid;
@ApiModelProperty("是否显示价值客户")
private Boolean showValueCustomer;
// 下载地址
private String allDownloadUrl;
// 显示生成合同 下载合同按钮 全款/非耽误为true
private int contractBtns;
// 销售订单开票名称
private String orderInvoiceSid;
// 销售订单开票价格
private String orderInvoicePrice;
}

5
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/advanceInvoice/AppBusAdvanceGinvoiceapplyFeign.java

@ -91,6 +91,11 @@ public interface AppBusAdvanceGinvoiceapplyFeign {
@ResponseBody
public ResultBean saveAdvanceInvoice(@Valid @RequestBody AdvanceInvoiceDto dto);
@ApiOperation("移动端-欠款开票点击生成附件合同")
@PostMapping("/saveAdvanceInvoicePdf")
@ResponseBody
public ResultBean saveAdvanceInvoicePdf(@Valid @RequestBody AdvanceInvoiceDto dto);
@ApiOperation("移动端-保存欠款领票申请")
@PostMapping("/saveAdvanceInvoiceLP")
@ResponseBody

5
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/advanceInvoice/AppBusAdvanceGinvoiceapplyFeignFallback.java

@ -78,6 +78,11 @@ public class AppBusAdvanceGinvoiceapplyFeignFallback implements AppBusAdvanceGin
return null;
}
@Override
public ResultBean saveAdvanceInvoicePdf(AdvanceInvoiceDto dto) {
return null;
}
@Override
public ResultBean saveAdvanceInvoiceLP(AdvanceInvoiceDto dto) {
return null;

5
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/advanceInvoice/AppBusAdvanceGinvoiceapplyRest.java

@ -85,6 +85,11 @@ public class AppBusAdvanceGinvoiceapplyRest implements AppBusAdvanceGinvoiceappl
return appBusAdvanceGinvoiceapplyService.saveAdvanceInvoice(dto);
}
@Override
public ResultBean saveAdvanceInvoicePdf(AdvanceInvoiceDto dto) {
return appBusAdvanceGinvoiceapplyService.saveAdvanceInvoicePdf(dto);
}
@Override
public ResultBean saveAdvanceInvoiceLP(AdvanceInvoiceDto dto) {
return appBusAdvanceGinvoiceapplyService.saveAdvanceInvoiceLP(dto);

152
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/advanceInvoice/AppBusAdvanceGinvoiceapplyService.java

@ -1707,4 +1707,156 @@ public class AppBusAdvanceGinvoiceapplyService {
}
return rb;
}
public ResultBean saveAdvanceInvoicePdf(AdvanceInvoiceDto dto) {
//开票车辆信息
List<AppCarListDto> vinList = dto.getVinList();
if (vinList.isEmpty()) {
return new ResultBean().fail().setMsg("请选择车辆信息");
}
FinBillApplicationDto finBillApplicationDto = new FinBillApplicationDto();
BeanUtil.copyProperties(dto, finBillApplicationDto, "arrearsCollectionAppendxs");
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
finBillApplicationDto.setUseOrgSid(useOrgSid);
finBillApplicationDto.setCreateBySid(dto.getUserSid());
finBillApplicationDto.setArrearsMoney(dto.getInvoiceTotal());
finBillApplicationDto.setReturnedMoneyDate(dto.getCollectionDate());
finBillApplicationDto.setArrearsOpenYYKey(dto.getReasonKey());
finBillApplicationDto.setArrearsOpenYYValue(dto.getReasonValue());
finBillApplicationDto.setIsLQOrigInvoice(dto.getGetOriginalValue());
finBillApplicationDto.setOrgSidPath(dto.getOrgPath());
finBillApplicationDto.setSaleTypeValue(dto.getSaleType());
finBillApplicationDto.setSaleDeptName(dto.getSellerName());
finBillApplicationDto.setStaffName(dto.getSellerName());
finBillApplicationDto.setOpenTickUnitName(dto.getInvoicingUnit());
finBillApplicationDto.setCustomerName(dto.getName());
finBillApplicationDto.setOneBillMoney(dto.getInvoiceMoney());
finBillApplicationDto.setOpenTickName(dto.getOpenTickName());
finBillApplicationDto.setContractNo(dto.getContractId());
finBillApplicationDto.setApplyDate(dto.getDate());
finBillApplicationDto.setCreateBySid(dto.getUserSid());
finBillApplicationDto.setNodeState(dto.getNodeState());
finBillApplicationDto.setBillNo(dto.getBillNo());
finBillApplicationDto.setModelSid(dto.getModelSid());
finBillApplicationDto.setModelName(dto.getModelName());
finBillApplicationDto.setOpenTickTypeKey(dto.getOpenTickTypeKey());
finBillApplicationDto.setOpenTickTypeValue(dto.getOpenTickTypeValue());
String publishInfo = dto.getPublishInfo();
String[] split = publishInfo.split("-");
finBillApplicationDto.setDeptName(split[0]);
finBillApplicationDto.setCreateByName(split[1]);
//开票车辆信息
List<FinBillVehicleDto> finBillVehicleDtos = new ArrayList<>();
for (AppCarListDto vinListDto : vinList) {
if (StringUtils.isBlank(vinListDto.getInvoiceInfo())){
return new ResultBean().fail().setMsg("开票信息不能为空");
}
FinBillVehicleDto finBillVehicleDto = new FinBillVehicleDto();
finBillVehicleDto.setVinNo(vinListDto.getVin());
finBillVehicleDto.setVehSid(vinListDto.getVinSid());
finBillVehicleDto.setCertificateStateKey(vinListDto.getCertificateStateKey());
finBillVehicleDto.setCertificateStateValue(vinListDto.getCertificateState());
finBillVehicleDto.setBillTypeKey(vinListDto.getInvoiceTypeKey());
finBillVehicleDto.setBillTypeValue(vinListDto.getInvoiceType());
finBillVehicleDto.setOpenTickSid(vinListDto.getOpenTickSid());
finBillVehicleDto.setOpenTickName(vinListDto.getInvoiceName());
finBillVehicleDto.setOpenTickRemarks(vinListDto.getInvoiceInfo());
finBillVehicleDtos.add(finBillVehicleDto);
}
finBillApplicationDto.setFinBillVehicles(finBillVehicleDtos);
//开票挂车信息
List<com.yxt.anrui.terminal.api.autoservice.advanceInvoice.FinBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
List<com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto> finBillTrailerDtos = new ArrayList<>();
if (finBillTrailers != null && finBillTrailers.size() > 0) {
for (com.yxt.anrui.terminal.api.autoservice.advanceInvoice.FinBillTrailerDto finBillTrailer : finBillTrailers) {
com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto finBillTrailerDto = new com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto();
BeanUtil.copyProperties(finBillTrailer, finBillTrailerDto);
finBillTrailerDtos.add(finBillTrailerDto);
}
}
finBillApplicationDto.setFinBillTrailers(finBillTrailerDtos);
//附件信息
List<String> customerInvoiceApplyImages = dto.getCustomerInvoiceApplyImages();//客户开票申请书
List<String> invoiceApplyConfirmImages = dto.getInvoiceApplyConfirmImages();//开票信息确认书
List<String> registerContractImages = dto.getRegisterContractImages();//车辆登记合同
List<String> idCardImages = dto.getIdCardImages();//证件
List<String> arrearsCollectionAppendxs = dto.getArrearsCollectionAppendxs();
List<String> gsgdhdwdbjy = dto.getGsgdhdwdbjy();
List<String> zrrdbcns = dto.getZrrdbcns();
List<String> zfxsjt = dto.getZfxsjt();
List<FinBillFileDto> khkpsqsApplicationAppendxs = new ArrayList<>(); // 客户开票申请书附件信息
List<FinBillFileDto> kpxxqrsApplicationAppendxs = new ArrayList<>(); // 开票信息确认书附件信息
List<FinBillFileDto> cldjhtApplicationAppendxs = new ArrayList<>(); // 车辆登记合同附件信息
List<FinBillFileDto> idCardImagesPC = new ArrayList<>();//证件
List<FinBillFileDto> qklpfjImages = new ArrayList<>();
List<FinBillFileDto> pcgsgdhdwdbjy = new ArrayList<>();
List<FinBillFileDto> pczrrdbcns = new ArrayList<>();
List<FinBillFileDto> pczfxsjt = new ArrayList<>();
if (customerInvoiceApplyImages != null) {
for (String customerInvoiceApplyImage : customerInvoiceApplyImages) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(customerInvoiceApplyImage);
khkpsqsApplicationAppendxs.add(finBillFileDto);
}
}
if (invoiceApplyConfirmImages != null) {
for (String invoiceApplyConfirmImage : invoiceApplyConfirmImages) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(invoiceApplyConfirmImage);
kpxxqrsApplicationAppendxs.add(finBillFileDto);
}
}
if (registerContractImages != null) {
for (String registerContractImage : registerContractImages) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(registerContractImage);
cldjhtApplicationAppendxs.add(finBillFileDto);
}
}
if (idCardImages != null) {
for (String idCardImage : idCardImages) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(idCardImage);
idCardImagesPC.add(finBillFileDto);
}
}
if (arrearsCollectionAppendxs != null) {
for (String arrearsCollectionAppendx : arrearsCollectionAppendxs) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(arrearsCollectionAppendx);
qklpfjImages.add(finBillFileDto);
}
}
if (gsgdhdwdbjy != null) {
for (String gsgdhdwdb : gsgdhdwdbjy) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(gsgdhdwdb);
pcgsgdhdwdbjy.add(finBillFileDto);
}
}
if (zrrdbcns != null) {
for (String zrrdbcn : zrrdbcns) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(zrrdbcn);
pczrrdbcns.add(finBillFileDto);
}
}
if (zfxsjt != null) {
for (String zfxs : zfxsjt) {
FinBillFileDto finBillFileDto = new FinBillFileDto();
finBillFileDto.setFileUrl(zfxs);
pczfxsjt.add(finBillFileDto);
}
}
finBillApplicationDto.setKhkpsqsApplicationAppendxs(khkpsqsApplicationAppendxs);
finBillApplicationDto.setKpxxqrsApplicationAppendxs(kpxxqrsApplicationAppendxs);
finBillApplicationDto.setCldjhtApplicationAppendxs(cldjhtApplicationAppendxs);
finBillApplicationDto.setZjApplicationAppendxs(idCardImagesPC);
finBillApplicationDto.setArrearsCollectionAppendxs(qklpfjImages);
finBillApplicationDto.setPcgsgdhdwdbjy(pcgsgdhdwdbjy);
finBillApplicationDto.setPczrrdbcns(pczrrdbcns);
finBillApplicationDto.setPczfxsjt(pczfxsjt);
ResultBean resultBean = finBillApplicationFeign.saveInvoicedApplyInfoPdfQk(finBillApplicationDto);
return resultBean;
}
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asserviceitem/AsServiceItemVo.java

@ -57,6 +57,8 @@ public class AsServiceItemVo implements Vo {
private String sitemCode;
@ApiModelProperty("工种(分类)")
private String serviceType;
@ApiModelProperty("工种sid(分类)")
private String serviceTypeSid;
@ApiModelProperty("车型")
private String goodsModel;
@ApiModelProperty("备注")

44
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/GoodsListVo.java

@ -0,0 +1,44 @@
package com.yxt.anrui.as.api.asservicepackage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/3/13 10:55
*/
@Data
public class GoodsListVo {
@ApiModelProperty("商品sid")
private String goodsSid; // 商品sid
@ApiModelProperty("商品名称")
private String goodsName; // 商品名称
@ApiModelProperty("商品编码(图号)")
private String goodsCode; // 商品编码(图号)
@ApiModelProperty("车型sid")
private String goodsModelSid; // 车型sid
@ApiModelProperty("车型")
private String goodsModel; // 车型
@ApiModelProperty("单位")
private String unit; // 单位
@ApiModelProperty("规格")
private String specification; // 规格
@ApiModelProperty("数量")
private String count; // 数量
@ApiModelProperty("销售价")
private String price; // 销售价
@ApiModelProperty("仓库名称")
private String warehouse; // 仓库名称
@ApiModelProperty("仓库sid")
private String warehouseSid; // 仓库sid
@ApiModelProperty("货位")
private String warehouseArea;
@ApiModelProperty("备注")
private String remarks; // 备注
@ApiModelProperty("三包价")
private String freePrice; // 三包价
@ApiModelProperty("商品分类")
private String goodsTypeName;
}

15
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/PackageGoodsQuery.java

@ -1,6 +1,7 @@
package com.yxt.anrui.as.api.asservicepackage;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -11,5 +12,17 @@ import lombok.Data;
@Data
public class PackageGoodsQuery implements Query {
private String orgPath;
private String goodsName;
@ApiModelProperty("商品名称")
private String goodsName; // 商品名称
@ApiModelProperty("零件号")
private String goodsCode; // 商品编码(图号)
@ApiModelProperty("库存")
private String kuCun;
@ApiModelProperty("仓库名称")
private String warehouse; // 仓库名称
@ApiModelProperty("货位")
private String warehouseArea;
@ApiModelProperty("商品分类")
private String goodsTypeName;
private String name;
}

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/PackageItemVo.java

@ -30,8 +30,8 @@ public class PackageItemVo {
private String price;
@ApiModelProperty("科目sid")
private String subjectSid;
@ApiModelProperty("科目名称")
private String subjectName;
@ApiModelProperty("科目")
private String subject; // 科目
@ApiModelProperty("折扣(0-10,0免费,10不打折)")
private String discount; // 折扣(0-10,0免费,10不打折)
@ApiModelProperty("优惠金额(=销售价*(折扣*0.1))")

17
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicepackage/SubjectVo.java

@ -0,0 +1,17 @@
package com.yxt.anrui.as.api.asservicepackage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/3/13 14:31
*/
@Data
public class SubjectVo {
@ApiModelProperty("科目sid")
private String subjectSid;
@ApiModelProperty("科目")
private String subject; // 科目
}

7
yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicepackage/AsServicePackageMapper.java

@ -29,13 +29,10 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.as.api.asservicepackage.PackageAttachItemVo;
import com.yxt.anrui.as.api.asservicepackage.PackageItemVo;
import com.yxt.anrui.as.api.asservicepackage.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.as.api.asservicepackage.AsServicePackage;
import com.yxt.anrui.as.api.asservicepackage.AsServicePackageVo;
import java.util.List;
@ -68,4 +65,6 @@ public interface AsServicePackageMapper extends BaseMapper<AsServicePackage> {
List<PackageItemVo> selItemInfo(@Param("useOrgSid") String useOrgSid);
List<PackageAttachItemVo> selAttItemInfo(@Param("useOrgSid") String useOrgSid);
List<SubjectVo> selSubjectInfo(@Param("useOrgSid") String useOrgSid);
}

9
yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicepackage/AsServicePackageMapper.xml

@ -31,4 +31,13 @@
FROM as_service_attachitem
WHERE createOrgSid = #{useOrgSid}
</select>
<select id="selSubjectInfo" resultType="com.yxt.anrui.as.api.asservicepackage.SubjectVo">
SELECT
sid subjectSid,
subjectName as subject
FROM
as_service_subject
WHERE
useOrgSid = #{useOrgSid}
</select>
</mapper>

11
yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicepackage/AsServicePackageRest.java

@ -107,11 +107,18 @@ public class AsServicePackageRest {
List<PackageAttachItemVo> voList = asServicePackageService.selAttItemInfo(orgPath);
return rb.success().setData(voList);
}
@ApiOperation("查询分公司科目")
@GetMapping("/selSubjectInfo")
public ResultBean<List<SubjectVo>> selSubjectInfo(@RequestParam("orgPath") String orgPath){
ResultBean rb = ResultBean.fireFail();
List<SubjectVo> voList = asServicePackageService.selSubjectInfo(orgPath);
return rb.success().setData(voList);
}
@ApiOperation("查询分公司商品信息")
@PostMapping("/selGoodsInfo")
public ResultBean<PagerVo<PackageGoodsVo>> selGoodsInfo(@RequestBody PagerQuery<AsServicePackageQuery> pq){
public ResultBean<PagerVo<GoodsListVo>> selGoodsInfo(@RequestBody PagerQuery<PackageGoodsQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<PackageGoodsVo> pagerVo = asServicePackageService.selGoodsInfo(pq);
PagerVo<GoodsListVo> pagerVo = asServicePackageService.selGoodsInfo(pq);
return rb.success().setData(pagerVo);
}
}

30
yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicepackage/AsServicePackageService.java

@ -193,8 +193,8 @@ public class AsServicePackageService extends MybatisBaseService<AsServicePackage
if (!goodsVos.isEmpty()) {
for (PackageGoodsVo goodsVo : goodsVos) {
AsServicePackageGoods goods = new AsServicePackageGoods();
goods.setPackageSid(sid);
BeanUtil.copyProperties(goodsVo, goods, "id", "sid");
goods.setPackageSid(sid);
asServicePackageGoodsService.insert(goods);
}
}
@ -281,22 +281,32 @@ public class AsServicePackageService extends MybatisBaseService<AsServicePackage
return list;
}
public PagerVo<PackageGoodsVo> selGoodsInfo(PagerQuery<AsServicePackageQuery> pq) {
public PagerVo<GoodsListVo> selGoodsInfo(PagerQuery<PackageGoodsQuery> pq) {
PagerQuery<WmsGoodsPackageQuery> query = new PagerQuery<>();
BeanUtil.copyProperties(pq, query);
AsServicePackageQuery params = pq.getParams();
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(params.getOrgPath());
if (orgSidByPath.getSuccess()) {
String useOrgSid = orgSidByPath.getData();
WmsGoodsPackageQuery queryParams = query.getParams();
queryParams.setUseOrgSid(useOrgSid);
}
PackageGoodsQuery params = pq.getParams();
// ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(params.getOrgPath());
// if (orgSidByPath.getSuccess()) {
// String useOrgSid = orgSidByPath.getData();
// WmsGoodsPackageQuery queryParams = query.getParams();
// queryParams.setUseOrgSid(useOrgSid);
// }
ResultBean<PagerVo<WmsGoodsPackageVo>> voResultBean = wmsGoodsFeign.getPackageGoodsVo(query);
PagerVo<PackageGoodsVo> vo = new PagerVo<>();
PagerVo<GoodsListVo> vo = new PagerVo<>();
if (voResultBean.getSuccess()) {
PagerVo<WmsGoodsPackageVo> data = voResultBean.getData();
BeanUtil.copyProperties(data, vo);
}
return vo;
}
public List<SubjectVo> selSubjectInfo(String orgPath) {
List<SubjectVo> list = new ArrayList<>();
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(orgPath);
if (orgSidByPath.getSuccess()) {
String useOrgSid = orgSidByPath.getData();
list = baseMapper.selSubjectInfo(useOrgSid);
}
return list;
}
}

15
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsgoods/WmsGoodsPackageQuery.java

@ -1,6 +1,7 @@
package com.yxt.anrui.as.feign.wms.wmsgoods;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -11,5 +12,17 @@ import lombok.Data;
@Data
public class WmsGoodsPackageQuery implements Query {
private String useOrgSid;
private String goodsName;
@ApiModelProperty("商品名称")
private String goodsName; // 商品名称
@ApiModelProperty("零件号")
private String goodsCode; // 商品编码(图号)
@ApiModelProperty("库存")
private String kuCun;
@ApiModelProperty("仓库名称")
private String warehouse; // 仓库名称
@ApiModelProperty("货位")
private String warehouseArea;
@ApiModelProperty("商品分类")
private String goodsTypeName;
private String name;
}

34
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsgoods/WmsGoodsPackageVo.java

@ -25,24 +25,22 @@ public class WmsGoodsPackageVo {
private String goodsModel; // 车型
@ApiModelProperty("单位")
private String unit; // 单位
// @ApiModelProperty("仓库sid")
// private String warehouseSid; // 仓库sid
// @ApiModelProperty("仓库名称")
// private String warehouse; // 仓库名称
// @ApiModelProperty("科目sid")
// private String subjectSid; // 科目sid
// @ApiModelProperty("科目")
// private String subject; // 科目
// @ApiModelProperty("销售价")
// private String price; // 销售价
// @ApiModelProperty("数量")
// private String count; // 数量
// @ApiModelProperty("折扣(0-10,0免费,10不打折)")
// private String discount; // 折扣(0-10,0免费,10不打折)
// @ApiModelProperty("优惠金额(=销售价*(折扣*0.1))")
// private String discountAmount; // 优惠金额(=销售价*(折扣*0.1))
// @ApiModelProperty("金额(销售价-优惠金额)")
// private String amount; // 金额(销售价-优惠金额)
@ApiModelProperty("规格")
private String specification; // 规格
@ApiModelProperty("数量")
private String count; // 数量
@ApiModelProperty("销售价")
private String price; // 销售价
@ApiModelProperty("仓库名称")
private String warehouse; // 仓库名称
@ApiModelProperty("仓库sid")
private String warehouseSid; // 仓库sid
@ApiModelProperty("货位")
private String warehouseArea;
@ApiModelProperty("备注")
private String remarks; // 备注
@ApiModelProperty("三包价")
private String freePrice; // 三包价
@ApiModelProperty("商品分类")
private String goodsTypeName;
}

Loading…
Cancel
Save