|
@@ -5,6 +5,7 @@ import com.ruoyi.common.utils.DateUtils;
|
|
import com.ruoyi.system.domain.loan.LoanApplication;
|
|
import com.ruoyi.system.domain.loan.LoanApplication;
|
|
import com.ruoyi.system.mapper.LoanApplicationMapper;
|
|
import com.ruoyi.system.mapper.LoanApplicationMapper;
|
|
import com.ruoyi.system.service.statistics.IStatisticsService;
|
|
import com.ruoyi.system.service.statistics.IStatisticsService;
|
|
|
|
+import org.apache.commons.lang3.time.DateFormatUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -230,6 +231,118 @@ public class StatisticsServiceImpl implements IStatisticsService {
|
|
return AjaxResult.success(map);
|
|
return AjaxResult.success(map);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 季度数据
|
|
|
|
+ *
|
|
|
|
+ * @param loanApplication
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public AjaxResult loanQuarter(LoanApplication loanApplication) {
|
|
|
|
+ Map<String, Object> map = new HashMap<>(5);
|
|
|
|
+ Map<String, Object> params = loanApplication.getParams();
|
|
|
|
+ params.put("beginTime", DateUtils.getYear());
|
|
|
|
+ //查询本年度所有数据
|
|
|
|
+ loanApplication.setType(ONE);
|
|
|
|
+ loanApplication.setParams(params);
|
|
|
|
+ List<LoanApplication> loanApplications = loanApplicationMapper.selectLoanApplicationListStatistics(loanApplication);
|
|
|
|
+ List<Double> allList = new ArrayList();
|
|
|
|
+ allList.add(0D);
|
|
|
|
+ allList.add(0D);
|
|
|
|
+
|
|
|
|
+ List<Double> oneList = new ArrayList();
|
|
|
|
+ oneList.add(0D);
|
|
|
|
+ oneList.add(0D);
|
|
|
|
+
|
|
|
|
+ List<Double> twoList = new ArrayList();
|
|
|
|
+ twoList.add(0D);
|
|
|
|
+ twoList.add(0D);
|
|
|
|
+
|
|
|
|
+ List<Double> thrList = new ArrayList();
|
|
|
|
+ thrList.add(0D);
|
|
|
|
+ thrList.add(0D);
|
|
|
|
+
|
|
|
|
+ List<Double> forList = new ArrayList();
|
|
|
|
+ forList.add(0D);
|
|
|
|
+ forList.add(0D);
|
|
|
|
+
|
|
|
|
+ //获取每个季度对应的数据
|
|
|
|
+ if (loanApplications != null && loanApplications.size() > 0) {
|
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("MM");
|
|
|
|
+ //根据贷款申请状态先进行分组
|
|
|
|
+ Map<String, List<LoanApplication>> loanApplicationType = loanApplications.stream().collect(Collectors.groupingBy(LoanApplication::getLoanApplicationType));
|
|
|
|
+ List<LoanApplication> loanApplicationsTwo = loanApplicationType.get(TWO);
|
|
|
|
+ if (loanApplicationsTwo != null && loanApplicationsTwo.size() > 0) {
|
|
|
|
+ //总申请贷款金额
|
|
|
|
+ double sumDFK = loanApplicationsTwo.stream().mapToDouble(LoanApplication::getApplicationAmount).sum();
|
|
|
|
+ allList.add(0, sumDFK);
|
|
|
|
+ Map<Integer, List<LoanApplication>> collectMap = loanApplicationsTwo.stream().collect(Collectors.groupingBy(e -> (Integer.parseInt(sdf.format(e.getApplicationTime())) - 1) / 3 + 1));
|
|
|
|
+ if (collectMap != null && collectMap.size() > 0) {
|
|
|
|
+ for (int i = 1; i < 5; i++) {
|
|
|
|
+ List<LoanApplication> loanApplicationsI = collectMap.get(i);
|
|
|
|
+ if (loanApplicationsI != null && loanApplicationsI.size() > 0) {
|
|
|
|
+ double sum = loanApplicationsI.stream().mapToDouble(LoanApplication::getApplicationAmount).sum();
|
|
|
|
+ switch (i) {
|
|
|
|
+ case 1:
|
|
|
|
+ oneList.add(0, sum);
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ twoList.add(0, sum);
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ thrList.add(0, sum);
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ forList.add(0, sum);
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ List<LoanApplication> loanApplicationsFor = loanApplicationType.get(FOR);
|
|
|
|
+ if (loanApplicationsFor != null && loanApplicationsFor.size() > 0) {
|
|
|
|
+ //放贷金额
|
|
|
|
+ double sumYFK = loanApplicationsFor.stream().mapToDouble(LoanApplication::getApplicationAmount).sum();
|
|
|
|
+ allList.add(1, sumYFK);
|
|
|
|
+ Map<Integer, List<LoanApplication>> collectMap = loanApplicationsFor.stream().collect(Collectors.groupingBy(e -> (Integer.parseInt(sdf.format(e.getApplicationTime())) - 1) / 3 + 1));
|
|
|
|
+ if (collectMap != null && collectMap.size() > 0) {
|
|
|
|
+ for (int i = 1; i < 5; i++) {
|
|
|
|
+ List<LoanApplication> loanApplicationsI = collectMap.get(i);
|
|
|
|
+ if (loanApplicationsI != null && loanApplicationsI.size() > 0) {
|
|
|
|
+ double sum = loanApplicationsI.stream().mapToDouble(LoanApplication::getApplicationAmount).sum();
|
|
|
|
+ switch (i) {
|
|
|
|
+ case 1:
|
|
|
|
+ oneList.add(1, sum);
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ twoList.add(1, sum);
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ thrList.add(1, sum);
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ forList.add(1, sum);
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ map.put("all", allList);
|
|
|
|
+ map.put("one", oneList);
|
|
|
|
+ map.put("two", twoList);
|
|
|
|
+ map.put("thr", thrList);
|
|
|
|
+ map.put("for", forList);
|
|
|
|
+ return AjaxResult.success(map);
|
|
|
|
+ }
|
|
|
|
+
|
|
//计算两个数的百分比和是上升还是下降
|
|
//计算两个数的百分比和是上升还是下降
|
|
public static Map<String, String> getNumPt(double a, double b, DecimalFormat df) {
|
|
public static Map<String, String> getNumPt(double a, double b, DecimalFormat df) {
|
|
Map<String, String> map = new HashMap<>(2);
|
|
Map<String, String> map = new HashMap<>(2);
|