Browse Source

优化

zhanglei
dimengzhe 1 year ago
parent
commit
523d1cb1f3
  1. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationQuery.java
  2. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  3. 2
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportListVo.java
  4. 1
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.xml
  5. 4
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java
  6. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ExcelFinVo.java
  7. 19
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ReturnExcelFinVo.java
  8. 191
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java
  9. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.java
  10. 8
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.xml
  11. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsService.java

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationQuery.java

@ -84,4 +84,6 @@ public class FinCollectionConfirmationQuery implements Query {
private String createEndDate; // 申请结束日期
@ApiModelProperty("收款金额")
private String collectionMoney; // 收款金额
@ApiModelProperty("收款账号")
private String finBillNo;
}

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

@ -230,6 +230,12 @@ 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.getFinBillNo())){
qw.like("billNo",query.getFinBillNo());
}
}
}
qw.orderByDesc("id");

2
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportListVo.java

@ -35,4 +35,6 @@ public class DailyReportListVo {
private String useOrgSid;
@ApiModelProperty("前三个月销售台数之和")
private String saleAllToThree;
private String stock_total;
}

1
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.xml

@ -212,6 +212,7 @@
sum(loan_not_amount) as loan_not_amount,
sum(buyout_day) as buyout_day,
sum(saleAllToThree) as saleAllToThree,
SUM(stock_total) as stock_total,
useOrgSid
from daily_report
<where>

4
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java

@ -616,7 +616,7 @@ public class DailyReportService extends MybatisBaseService<DailyReportMapper, Da
if ("0".equals(dailyReportListVo.getSaleAllToThree())) {
ratio = dailyReportListVo.getStock_subtotal() + ":1";
} else {
ratio = new BigDecimal(dailyReportListVo.getStock_subtotal()).divide((new BigDecimal(dailyReportListVo.getSaleAllToThree()).divide(new BigDecimal(3), 4, BigDecimal.ROUND_HALF_UP)), 0, BigDecimal.ROUND_HALF_UP).toString() + ":1";
ratio = new BigDecimal(dailyReportListVo.getStock_total()).divide((new BigDecimal(dailyReportListVo.getSaleAllToThree()).divide(new BigDecimal(3), 4, BigDecimal.ROUND_HALF_UP)), 0, BigDecimal.ROUND_HALF_UP).toString() + ":1";
}
}
dailyReportListVo.setSaleOfStockRatio(ratio);
@ -641,7 +641,7 @@ public class DailyReportService extends MybatisBaseService<DailyReportMapper, Da
if ("0".equals(reportVo.getSaleAllToThree())) {
ratio = reportVo.getStock_subtotal() + ":1";
} else {
ratio = new BigDecimal(reportVo.getStock_subtotal()).divide((new BigDecimal(reportVo.getSaleAllToThree()).divide(new BigDecimal(3), 4, BigDecimal.ROUND_HALF_UP)), 0, BigDecimal.ROUND_HALF_UP).toString() + ":1";
ratio = new BigDecimal(reportVo.getStock_total()).divide((new BigDecimal(reportVo.getSaleAllToThree()).divide(new BigDecimal(3), 4, BigDecimal.ROUND_HALF_UP)), 0, BigDecimal.ROUND_HALF_UP).toString() + ":1";
}
}
reportVo.setSaleOfStockRatio(ratio);

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ExcelFinVo.java

@ -12,6 +12,8 @@ import lombok.Data;
@Data
public class ExcelFinVo {
@ApiModelProperty("财务中客户编码")
private String customerNo;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("车架号")

19
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/ReturnExcelFinVo.java

@ -0,0 +1,19 @@
package com.yxt.anrui.riskcenter.api.loanoverduefin;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.BePadsincereExcelInfo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/1/11
**/
@Data
public class ReturnExcelFinVo {
private String checkInfo;
private List<ExcelFinVo> infos = new ArrayList<>();
}

191
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java

@ -22,11 +22,13 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.ReturnExcelInfo;
import com.yxt.anrui.riskcenter.api.loanoverduefin.*;
import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeQuery;
import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeVo;
import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyTaskQuery;
import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetailsDto;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo;
import com.yxt.anrui.riskcenter.biz.loanoverduefindetails.LoanOverdueFinDetailsService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
@ -38,12 +40,21 @@ import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@ -603,7 +614,7 @@ public class LoanOverdueFinService extends MybatisBaseService<LoanOverdueFinMapp
public List<LoanOverdueFinDetailsDto> detailsList(String useOrgSid, String stopDate) {
QueryWrapper qw = new QueryWrapper();
qw.eq("1",1);
qw.eq("1", 1);
qw.groupBy("a1.vinNo");
qw.groupBy("a1.busVinSid");
List<LoanOverdueFinDetailsDto> detailsDtoList = baseMapper.detailsList(useOrgSid, qw, stopDate);
@ -611,7 +622,181 @@ public class LoanOverdueFinService extends MybatisBaseService<LoanOverdueFinMapp
return detailsDtoList;
}
public ResultBean<List<ExcelFinVo>> getExcelInfo(MultipartFile file, HttpServletRequest request) {
return null;
public ResultBean<List<ExcelFinVo>> getExcelInfo(MultipartFile file, HttpServletRequest request) throws IOException {
ResultBean rb = ResultBean.fireFail();
String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录
File tempFile = new File(temp);
if (!tempFile.exists()) {
tempFile.mkdirs();
}
String fileName = file.getOriginalFilename();
if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) {
return rb.fail().setMsg("上传文件不正确");
}
int[] resultCell = new int[]{0, 1, 2, 3};
List<ExcelFinVo> list = new ArrayList<>();
List<ExcelFinVo> list2 = new ArrayList<>();
boolean isExcel2003 = true;
if (fileName.matches("^.+\\.(?i)(xlsx)$")) {
isExcel2003 = false;
}
InputStream is = file.getInputStream();
Workbook wb = null;
if (isExcel2003) {
wb = new HSSFWorkbook(is);
} else {
wb = new XSSFWorkbook(is);
}
Sheet sheet = wb.getSheetAt(0);
ReturnExcelFinVo importReturn = getSheetVal(sheet, resultCell);
list = importReturn.getInfos();
for (ExcelFinVo excelFinVo : list) {
String customerName = excelFinVo.getCustomerName();
customerName = customerName.substring(0, customerName.length() - 8);
excelFinVo.setCustomerName(customerName);
list2.add(excelFinVo);
}
if (StringUtils.isNotBlank(importReturn.getCheckInfo())) {
return rb.setMsg(importReturn.getCheckInfo());
} else {
return rb.success().setData(list2).setMsg("成功导入数据,请点击确定按钮");
}
}
private ReturnExcelFinVo getSheetVal(Sheet sheet, int[] resultCell) {
ReturnExcelFinVo returnExcelFinVo = new ReturnExcelFinVo();
List<ExcelFinVo> importVoList = new ArrayList<>();
Set<String> checkWord = new HashSet<>();
for (int r = 0; r < sheet.getLastRowNum(); r++) {
Row row = sheet.getRow(r);
if (row == null) {
continue;
}
ExcelFinVo excelFinVo = new ExcelFinVo();
for (int i = 0; i < row.getPhysicalNumberOfCells(); i++) {
String trim = new String();
try {
trim = getCellVal(row.getCell(i)).toString().trim();
if (StringUtils.isBlank(trim)) {
NullPointerException nullPointerException = new NullPointerException();
}
String temp = getCellVal(row.getCell(i)).toString().trim();
temp = temp.replace(".0", "");
for (int j = 0; j < temp.length(); j++) {
if (i == resultCell[j]) {
switch (i) {
case 0:
excelFinVo.setCustomerNo(temp);
break;
case 1:
excelFinVo.setCustomerName(temp);
break;
case 2:
excelFinVo.setVinNo(temp);
break;
case 3:
excelFinVo.setTiredDeficiency(temp);
break;
default:
break;
}
} else {
continue;
}
}
} catch (Exception e) {
if (StringUtils.isBlank(trim)) {
String word = new String();
switch (i) {
case 0:
word = "客户编码";
break;
case 1:
word = "客户名称";
break;
case 2:
word = "车架号";
break;
case 3:
word = "财务累欠金额";
default:
break;
}
continue;
}
}
}
importVoList.add(excelFinVo);
}
if (!importVoList.isEmpty()) {
for (ExcelFinVo excelFinVo : importVoList) {
if (StringUtils.isBlank(excelFinVo.getCustomerNo())) {
checkWord.add("客户编码不能为空");
}
if (StringUtils.isBlank(excelFinVo.getCustomerName())) {
checkWord.add("客户名称不能为空");
}
if (StringUtils.isBlank(excelFinVo.getVinNo())) {
checkWord.add("车架号不能为空");
}
if (StringUtils.isBlank(excelFinVo.getTiredDeficiency())) {
checkWord.add("财务累欠金额不能为空");
}
List<LoanRepaymentScheduleDetailsVo> loanRepaymentScheduleDetailsVos = loanOverdueFinDetailsService.selectByCustomerNo(excelFinVo.getCustomerNo());
loanRepaymentScheduleDetailsVos.removeAll(Collections.singleton(null));
if (loanRepaymentScheduleDetailsVos.isEmpty()) {
if (StringUtils.isNotBlank(excelFinVo.getCustomerNo())) {
checkWord.add("客户编码" + excelFinVo.getCustomerNo() + "在还款计划表中不存在");
break;
}
}
}
}
StringBuffer sbcheck1 = new StringBuffer();
if (!checkWord.isEmpty()) {
for (String s : checkWord) {
if (StringUtils.isBlank(s)) {
continue;
}
sbcheck1.append(s).append(";");
}
}
if (sbcheck1.length() > 0) {
sbcheck1.delete(sbcheck1.length() - 1, sbcheck1.length());
returnExcelFinVo.setCheckInfo(sbcheck1.toString());
returnExcelFinVo.setInfos(new ArrayList<>());
return returnExcelFinVo;
}
returnExcelFinVo.setInfos(importVoList);
return returnExcelFinVo;
}
public Object getCellVal(Cell cell) {
Object obj = null;
if (cell != null) {
switch (cell.getCellTypeEnum()) {
case BOOLEAN:
obj = cell.getBooleanCellValue();
break;
case ERROR:
obj = cell.getErrorCellValue();
break;
case NUMERIC:
obj = cell.getNumericCellValue();
break;
case STRING:
obj = cell.getStringCellValue();
break;
default:
break;
}
}
return obj;
}
}

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.java

@ -3,6 +3,7 @@ package com.yxt.anrui.riskcenter.biz.loanoverduefindetails;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetails;
import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetailsDto;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -17,4 +18,6 @@ public interface LoanOverdueFinDetailsMapper extends BaseMapper<LoanOverdueFinDe
int deleteByMainSid(String sid);
List<LoanOverdueFinDetailsDto> selectByMainSid(String sid);
List<LoanRepaymentScheduleDetailsVo> selectByCustomerNo(String customerNo);
}

8
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsMapper.xml

@ -22,4 +22,12 @@
from loan_overdue_fin_details
where mainSid = #{sid}
</select>
<select id="selectByCustomerNo"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo">
select ld.* from anrui_riskcenter.loan_repayment_plan_details ld
left join anrui_buscenter.bus_sales_order_vehicle bv on bv.sid = ld.busVinSid
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
where concat(bo.contractNo,RIGHT(bv.linkNo,8)) = #{customerNo}
</select>
</mapper>

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefindetails/LoanOverdueFinDetailsService.java

@ -3,6 +3,7 @@ package com.yxt.anrui.riskcenter.biz.loanoverduefindetails;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetails;
import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetailsDto;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
@ -33,4 +34,8 @@ public class LoanOverdueFinDetailsService extends MybatisBaseService<LoanOverdue
public int deleteByMainSid(String s) {
return baseMapper.deleteByMainSid(s);
}
public List<LoanRepaymentScheduleDetailsVo> selectByCustomerNo(String customerNo) {
return baseMapper.selectByCustomerNo(customerNo);
}
}

Loading…
Cancel
Save