123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- package com.ruoyi.system.service.impl;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.core.domain.entity.SysDept;
- import com.ruoyi.common.core.domain.entity.SysRole;
- import com.ruoyi.common.utils.DateUtils;
- import com.ruoyi.common.utils.SecurityUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.system.domain.Dksq;
- import com.ruoyi.system.domain.DksqLcjl;
- import com.ruoyi.system.mapper.DksqLcjlMapper;
- import com.ruoyi.system.mapper.DksqMapper;
- import com.ruoyi.system.mapper.SysDeptMapper;
- import com.ruoyi.system.service.IDkCommonServerce;
- import org.apache.poi.ss.usermodel.DateUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.text.NumberFormat;
- import java.util.*;
- import java.util.stream.Collectors;
- import static com.ruoyi.common.constant.Constants.*;
- /**
- * @Author: tjf
- * @Date: 2023/6/15 15:32
- * @Describe:
- */
- @Service
- public class DkCommonServerceImpl implements IDkCommonServerce {
- @Autowired
- private DksqMapper dksqMapper;
- @Autowired
- private DksqLcjlMapper dksqLcjlMapper;
- @Autowired
- private SysDeptMapper sysDeptMapper;
- /**
- * 劳动局审核
- *
- * @param dksq
- * @return
- */
- @Override
- public AjaxResult shenHe(Dksq dksq) {
- if (!ONE.equals(dksq.getType())) {
- return AjaxResult.error("请勿重复审核");
- }
- //通过不通过都设置为2
- dksq.setType(TWO);
- dksqMapper.updateDksq(dksq);
- //插入流程记录表
- DksqLcjl dksqLcjl = new DksqLcjl();
- dksqLcjl.setDksqId(dksq.getId());
- dksqLcjl.setType(TWO);
- dksqLcjl.setResult(dksq.getResult());
- dksqLcjl.setCreateBy(SecurityUtils.getUsername());
- dksqLcjlMapper.insertDksqLcjl(dksqLcjl);
- return AjaxResult.success();
- }
- /**
- * 劳动局指派银行
- *
- * @param dksq
- * @return
- */
- @Override
- public AjaxResult zhiPai(Dksq dksq) {
- if (!TWO.equals(dksq.getType()) && !TWO.equals(dksq.getResult())) {
- return AjaxResult.error("审核未通过,请勿指派下一阶段");
- }
- //设置为等待银行评估
- dksq.setType(THR);
- dksq.setResult(ONE);
- dksqMapper.updateDksq(dksq);
- //插入流程记录表
- DksqLcjl dksqLcjl = new DksqLcjl();
- dksqLcjl.setDksqId(dksq.getId());
- dksqLcjl.setType(THR);
- dksqLcjl.setResult(ONE);
- dksqLcjl.setCreateBy(SecurityUtils.getUsername());
- dksqLcjlMapper.insertDksqLcjl(dksqLcjl);
- return AjaxResult.success();
- }
- /**
- * 银行评估
- *
- * @param dksq
- * @return
- */
- @Override
- public AjaxResult pingGu(Dksq dksq) {
- if (!THR.equals(dksq.getType()) && !ONE.equals(dksq.getResult())) {
- return AjaxResult.error("当前状态异常");
- }
- //根据评估结果来设置状态
- String result = dksq.getResult();
- DksqLcjl dksqLcjl = new DksqLcjl();
- //流程记录
- dksqLcjl.setType(THR);
- dksqLcjl.setResult(result);
- //不通过
- if (THR.equals(result)){
- //回到人社局审核通过
- dksq.setType(TWO);
- dksq.setResult(TWO);
- dksq.setFdBank(null);
- dksq.setFdBankId(-1L);
- }else if(TWO.equals(result)){
- //通过进去到等待放贷
- dksq.setType(FOR);
- dksq.setResult(ONE);
- }
- dksqMapper.updateDksq(dksq);
- //插入流程记录表
- dksqLcjl.setDksqId(dksq.getId());
- dksqLcjl.setCreateBy(SecurityUtils.getUsername());
- dksqLcjlMapper.insertDksqLcjl(dksqLcjl);
- return AjaxResult.success();
- }
- /**
- * 银行放贷
- * @param dksq
- * @return
- */
- @Override
- public AjaxResult fangDai(Dksq dksq) {
- if (!FOR.equals(dksq.getType()) && !ONE.equals(dksq.getResult())) {
- return AjaxResult.error("当前状态异常");
- }
- //默认放贷成功
- //流程记录
- dksq.setResult(TWO);
- dksq.setFdTime(DateUtils.parseDate(DateUtils.getDate()));
- dksqMapper.updateDksq(dksq);
- //插入流程记录表
- DksqLcjl dksqLcjl = new DksqLcjl();
- dksqLcjl.setType(FOR);
- dksqLcjl.setResult(TWO);
- dksqLcjl.setDksqId(dksq.getId());
- dksqLcjl.setCreateBy(SecurityUtils.getUsername());
- dksqLcjlMapper.insertDksqLcjl(dksqLcjl);
- return AjaxResult.success();
- }
- /**
- * 首页统计
- * @return
- */
- @Override
- public AjaxResult index() {
- Dksq dksq = new Dksq();
- //定义返回值
- Map<String,Object> indexMap = new HashMap<>();
- Map<String,Object> up = new HashMap<>();
- up.put("sqCount",0);
- up.put("sqMoney",0);
- up.put("dbr",0);
- up.put("fc",0);
- up.put("dbrPer","00.0%");
- up.put("fcPer","00.0%");
- Map<String,Double> right = new HashMap<>();
- //获取所有银行名称
- SysDept sysDept = new SysDept();
- sysDept.setParentId(110L);
- List<SysDept> sysDepts = sysDeptMapper.selectDeptList(sysDept);
- if (sysDepts != null && sysDepts.size() > 0){
- for (SysDept dept : sysDepts) {
- right.put(dept.getDeptName(),0D);
- }
- }
- //判断用户角色 如果是银行角色
- List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
- if (roles != null && roles.size() > 0){
- for (SysRole role : roles) {
- if ("bank".equals(role.getRoleKey())){
- //查询指派给自己的
- dksq.setFdBankId(SecurityUtils.getLoginUser().getDeptId());
- break;
- }
- }
- }
- //所有的贷款信息
- dksq.setCreateTime(DateUtils.parseDate(DateUtils.getDate()));
- List<Dksq> dksqs = dksqMapper.selectDksqList(dksq);
- if (dksqs != null && dksqs.size() > 0){
- //申请人数
- up.put("sqCount",dksqs.size());
- double sqMoney = dksqs.stream().mapToDouble(Dksq::getSqMoney).sum();
- up.put("sqMoney",sqMoney);
- //担保人担保
- double dbr = dksqs.stream().filter(s -> ONE.equals(s.getDbType())).count();
- //房产担保
- double fc = dksqs.stream().filter(s -> TWO.equals(s.getDbType())).count();
- up.put("dbr",dbr);
- up.put("fc",fc);
- Map<String, Double> collect = dksqs.stream().filter(s -> StringUtils.isNotBlank(s.getFdBank())).collect(Collectors.groupingBy(Dksq::getFdBank, Collectors.summingDouble(Dksq::getFdMoney)));
- for (String deptName : collect.keySet()) {
- right.put(deptName,collect.get(deptName));
- }
- NumberFormat nf = NumberFormat.getPercentInstance();
- nf.setMinimumFractionDigits( 1 );
- up.put("dbrPer",nf.format(dbr / (double) dksqs.size()));
- up.put("fcPer",nf.format(fc / (double)dksqs.size()));
- }
- indexMap.put("up",up);
- indexMap.put("right",right);
- return AjaxResult.success(indexMap);
- }
- /**
- * 首页eCharts
- * 每个月无担保 贷款金额和有担保贷款金额
- * @param dksq
- * @return
- */
- @Override
- public AjaxResult eCharts(Dksq dksq) {
- Object beginTime = dksq.getParams().get("beginTime");
- //把查询时间设置为20230101
- dksq.getParams().put("beginTime",beginTime+"0101");
- dksq.setType(FOR);
- dksq.setResult(TWO);
- Map<String,Object> indexMap = new HashMap<>();
- List<Object> months = new ArrayList<>();
- List<Object> y1 = new ArrayList<>();
- List<Object> y2 = new ArrayList<>();
- for (int i = 1; i <= 12; i++) {
- months.add(i+"");
- }
- indexMap.put("x",months);
- List<Dksq> dksqs = dksqMapper.selectDksqList(dksq);
- if (dksqs != null && dksqs.size() > 0){
- //放贷统计
- Map<String, Double> collectY1 = dksqs.stream().filter(s -> ONE.equals(s.getDbGrade())).collect(Collectors.groupingBy(o -> DateUtils.format(o.getFdTime(), "M"), Collectors.summingDouble(Dksq::getFdMoney)));
- for (Object month : months) {
- Double aDouble = collectY1.get(month);
- if (aDouble == null){
- y1.add(0);
- }else {
- y1.add(aDouble);
- }
- }
- //放贷统计
- Map<String, Double> collectY2 = dksqs.stream().filter(s -> !ONE.equals(s.getDbGrade())).collect(Collectors.groupingBy(o -> DateUtils.format(o.getFdTime(), "M"), Collectors.summingDouble(Dksq::getFdMoney)));
- for (Object month : months) {
- Double aDouble = collectY2.get(month);
- if (aDouble == null){
- y2.add(0);
- }else {
- y2.add(aDouble);
- }
- }
- }
- indexMap.put("y1",y1);
- indexMap.put("y2",y2);
- return AjaxResult.success(indexMap);
- }
- }
|