master
chen 4 years ago
parent 1eedb4e26b
commit 397c39ec69
  1. 66
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgEfficiencyController.java
  2. 12
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/PersonalEfficiencyListResponse.java
  3. 4
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgEfficiencyService.java
  4. 413
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgEfficiencyServiceImpl.java
  5. 31
      dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/po/StatusPO.java

@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSONObject;
import com.daqing.financial.guarantee.feign.HrmsFeignService; import com.daqing.financial.guarantee.feign.HrmsFeignService;
import com.daqing.financial.guarantee.model.request.DgEfficiencyTeamRequest; import com.daqing.financial.guarantee.model.request.DgEfficiencyTeamRequest;
import com.daqing.financial.guarantee.model.request.PersonalEfficiencyListRequest; import com.daqing.financial.guarantee.model.request.PersonalEfficiencyListRequest;
import com.daqing.financial.guarantee.model.response.NumResponse;
import com.daqing.financial.guarantee.model.response.PersonalEfficiencyListResponse; import com.daqing.financial.guarantee.model.response.PersonalEfficiencyListResponse;
import com.daqing.financial.guarantee.service.IDgEfficiencyService; import com.daqing.financial.guarantee.service.IDgEfficiencyService;
import com.daqing.financial.guarantee.util.DateUtils; import com.daqing.financial.guarantee.util.DateUtils;
import com.daqing.financial.guarantee.util.R;
import com.daqing.financial.guarantee.util.TaskNodeUtil; import com.daqing.financial.guarantee.util.TaskNodeUtil;
import com.daqing.framework.model.StatusCode; import com.daqing.framework.model.StatusCode;
import com.daqing.framework.model.response.ResponseResult; import com.daqing.framework.model.response.ResponseResult;
@ -62,7 +64,7 @@ public class DgEfficiencyController {
@ApiOperation(value = "个人效率记录列表") @ApiOperation(value = "个人效率记录列表")
@PostMapping("/personalEfficiencyList") @PostMapping("/personalEfficiencyList")
public ResponseResult personalEfficiencyList( public R personalEfficiencyList(
@ApiParam(name = "personalEfficiencyListRequest", value = "个人效率列表查询对象") @ApiParam(name = "personalEfficiencyListRequest", value = "个人效率列表查询对象")
@RequestBody PersonalEfficiencyListRequest personalEfficiencyListRequest){ @RequestBody PersonalEfficiencyListRequest personalEfficiencyListRequest){
List<PersonalEfficiencyListResponse> responseList = dgEfficiencyService.queryPersonalEfficiencyList(); List<PersonalEfficiencyListResponse> responseList = dgEfficiencyService.queryPersonalEfficiencyList();
@ -87,23 +89,54 @@ public class DgEfficiencyController {
} }
} }
} }
NumResponse numResponse = new NumResponse();
//转换任务节点,并统计操作状态个数
responseList.forEach(personalEfficiencyListResponse -> {
String taskNode = personalEfficiencyListResponse.getTaskNode();
if (taskNode!=null){
String converter = TaskNodeUtil.converter(taskNode);
personalEfficiencyListResponse.setTaskNode(converter);
}
if (personalEfficiencyListResponse.getOperatingStatus()!=null){
switch (personalEfficiencyListResponse.getOperatingStatus()){
case 0:
numResponse.setInitiateNum(numResponse.getInitiateNum()+1);
break;
case 1:
numResponse.setPendingNum(numResponse.getPendingNum()+1);
break;
case 2:
numResponse.setProcessedNum(numResponse.getProcessedNum()+1);
break;
default:
numResponse.setInitiateNum(0);
numResponse.setPendingNum(0);
numResponse.setProcessedNum(0);
break;
}
}
});
//根据条件筛选数据 //根据条件筛选数据
//迭代器进行筛选
if (personalEfficiencyListRequest.getOperatingStatus()!=null){ if (personalEfficiencyListRequest.getOperatingStatus()!=null){
// 已发起 // 已发起
if (personalEfficiencyListRequest.getOperatingStatus().equals(StatusCode.CZ_LAUNCH)){ if (personalEfficiencyListRequest.getOperatingStatus().equals(StatusCode.CZ_LAUNCH)){
responseList = responseList.stream().filter(p -> p.getOperatingStatus().equals(StatusCode.CZ_LAUNCH)).collect(Collectors.toList()); responseList.removeIf(next -> !next.getOperatingStatus().equals(StatusCode.CZ_LAUNCH));
// responseList = responseList.stream().filter(p -> !p.getOperatingStatus().equals(StatusCode.CZ_LAUNCH)).collect(Collectors.toList());
// 待处理 // 待处理
}else if (personalEfficiencyListRequest.getOperatingStatus().equals(StatusCode.CZ_ON_HAND)){ }else if (personalEfficiencyListRequest.getOperatingStatus().equals(StatusCode.CZ_ON_HAND)){
responseList = responseList.stream().filter(p -> p.getOperatingStatus().equals(StatusCode.CZ_ON_HAND)).collect(Collectors.toList()); responseList.removeIf(next -> !next.getOperatingStatus().equals(StatusCode.CZ_ON_HAND));
// responseList = responseList.stream().filter(p -> !p.getOperatingStatus().equals(StatusCode.CZ_ON_HAND)).collect(Collectors.toList());
// 已处理 // 已处理
}else if (personalEfficiencyListRequest.getOperatingStatus().equals(StatusCode.CZ_PROCESSED)){ }else if (personalEfficiencyListRequest.getOperatingStatus().equals(StatusCode.CZ_PROCESSED)){
responseList = responseList.stream().filter(p -> p.getOperatingStatus().equals(StatusCode.CZ_PROCESSED)).collect(Collectors.toList()); responseList.removeIf(next -> !next.getOperatingStatus().equals(StatusCode.CZ_PROCESSED));
// responseList = responseList.stream().filter(p -> !p.getOperatingStatus().equals(StatusCode.CZ_PROCESSED)).collect(Collectors.toList());
} }
} }
// 时间筛选(固定时间) // 时间筛选(固定时间)
if (personalEfficiencyListRequest.getCreateFixedTime() != null && personalEfficiencyListRequest.getStartTime() == null && personalEfficiencyListRequest.getEndTime() == null) { if (personalEfficiencyListRequest.getCreateFixedTime() != null && personalEfficiencyListRequest.getStartTime() == null && personalEfficiencyListRequest.getEndTime() == null) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
switch (personalEfficiencyListRequest.getCreateFixedTime()) { switch (personalEfficiencyListRequest.getCreateFixedTime()) {
case 0: case 0:
personalEfficiencyListRequest.setStartTime(dateFormat.format(DateUtils.getDayBegin())); personalEfficiencyListRequest.setStartTime(dateFormat.format(DateUtils.getDayBegin()));
@ -144,26 +177,7 @@ public class DgEfficiencyController {
} }
} }
} }
//转换任务节点,并统计操作状态个数 return R.ok().data("responseList",responseList).data("statistics",numResponse);
responseList.forEach(personalEfficiencyListResponse -> {
String taskNode = personalEfficiencyListResponse.getTaskNode();
if (taskNode!=null){
String converter = TaskNodeUtil.converter(taskNode);
personalEfficiencyListResponse.setTaskNode(converter);
}
if (personalEfficiencyListResponse.getOperatingStatus()!=null){
switch (personalEfficiencyListResponse.getOperatingStatus()){
case 0:
personalEfficiencyListResponse.setInitiateNum(personalEfficiencyListResponse.getInitiateNum()+1);
case 1:
personalEfficiencyListResponse.setPendingNum(personalEfficiencyListResponse.getPendingNum()+1);
case 2:
personalEfficiencyListResponse.setProcessedNum(personalEfficiencyListResponse.getProcessedNum()+1);
}
}
});
return ResponseResult.SUCCESS(responseList);
} }
public static long getLongDate(String stringDate){ public static long getLongDate(String stringDate){

@ -6,12 +6,9 @@ import com.daqing.framework.utils.excel.ApprovalStatusConverter;
import com.daqing.framework.utils.excel.BusinessStatusConverter; import com.daqing.framework.utils.excel.BusinessStatusConverter;
import com.daqing.framework.utils.excel.OperatingStatusConverter; import com.daqing.framework.utils.excel.OperatingStatusConverter;
import com.daqing.framework.utils.excel.TaskNodeConverter; import com.daqing.framework.utils.excel.TaskNodeConverter;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date;
/** /**
* @Author chen * @Author chen
* @DATE 2020/12/28 16:31 * @DATE 2020/12/28 16:31
@ -21,7 +18,7 @@ import java.util.Date;
public class PersonalEfficiencyListResponse { public class PersonalEfficiencyListResponse {
@ExcelIgnore @ExcelIgnore
@ApiModelProperty(value = " 业务id") @ApiModelProperty(value = "业务id")
private Integer businessId; private Integer businessId;
@ExcelIgnore @ExcelIgnore
@ -38,8 +35,7 @@ public class PersonalEfficiencyListResponse {
@ApiModelProperty("申请日期") @ApiModelProperty("申请日期")
@ExcelProperty(value = "申请日期",index = 3) @ExcelProperty(value = "申请日期",index = 3)
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String applicationDate;
private Date applicationDate;
@ApiModelProperty("累计耗时") @ApiModelProperty("累计耗时")
@ExcelProperty(value = "累计耗时",index = 4) @ExcelProperty(value = "累计耗时",index = 4)
@ -50,8 +46,8 @@ public class PersonalEfficiencyListResponse {
private String completeTime; private String completeTime;
@ApiModelProperty("任务节点") @ApiModelProperty("任务节点")
@ExcelProperty(value = "任务节点",index = 6) @ExcelProperty(value = "任务节点",index = 6,converter = TaskNodeConverter.class)
private Double taskNode; private String taskNode;
@ApiModelProperty("审批状态") @ApiModelProperty("审批状态")
@ExcelProperty(value = "审批状态",index = 7,converter = ApprovalStatusConverter.class) @ExcelProperty(value = "审批状态",index = 7,converter = ApprovalStatusConverter.class)

@ -2,10 +2,12 @@ package com.daqing.financial.guarantee.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.daqing.financial.guarantee.model.request.DgEfficiencyTeamRequest; import com.daqing.financial.guarantee.model.request.DgEfficiencyTeamRequest;
import com.daqing.financial.guarantee.model.response.PersonalEfficiencyListResponse;
import com.daqing.framework.domain.guarantee.DgApplyAmountInfo; import com.daqing.framework.domain.guarantee.DgApplyAmountInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -19,4 +21,6 @@ public interface IDgEfficiencyService extends IService<DgApplyAmountInfo> {
HashMap<Integer, HashMap<Integer, String>> queryList(DgEfficiencyTeamRequest dgEfficiencyTeamRequest); HashMap<Integer, HashMap<Integer, String>> queryList(DgEfficiencyTeamRequest dgEfficiencyTeamRequest);
Map<String, Integer> getBusinessCount(); Map<String, Integer> getBusinessCount();
List<PersonalEfficiencyListResponse> queryPersonalEfficiencyList();
} }

@ -1,14 +1,24 @@
package com.daqing.financial.guarantee.service.impl; package com.daqing.financial.guarantee.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.daqing.financial.guarantee.controller.DgApplyAmountInfoController; import com.daqing.financial.guarantee.controller.DgApplyAmountInfoController;
import com.daqing.financial.guarantee.mapper.DgAuditProcessMapper; import com.daqing.financial.guarantee.mapper.*;
import com.daqing.financial.guarantee.mapper.DgEfficiencyMapper; import com.daqing.financial.guarantee.model.request.DgComplianceInvestigationRequest;
import com.daqing.financial.guarantee.model.request.DgEfficiencyTeamRequest; import com.daqing.financial.guarantee.model.request.DgEfficiencyTeamRequest;
import com.daqing.financial.guarantee.model.response.EfficiencyApprovalResponse; import com.daqing.financial.guarantee.model.response.*;
import com.daqing.financial.guarantee.service.IDgEfficiencyService; import com.daqing.financial.guarantee.service.IDgEfficiencyService;
import com.daqing.financial.guarantee.util.DateUtils; import com.daqing.financial.guarantee.util.DateUtils;
import com.daqing.framework.domain.guarantee.DgApplyAmountInfo; import com.daqing.framework.domain.guarantee.DgApplyAmountInfo;
import com.daqing.framework.domain.guarantee.DgAuditProcess;
import com.daqing.framework.domain.guarantee.po.DgWorkConferencePO;
import com.daqing.framework.domain.guarantee.po.StatusPO;
import com.daqing.framework.model.response.PromptSuccess;
import com.daqing.framework.util.RedisUtil;
import com.google.common.collect.Maps;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -19,7 +29,10 @@ import java.util.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
/** /**
@ -32,9 +45,42 @@ public class DgEfficiencyServiceImpl extends ServiceImpl<DgEfficiencyMapper, DgA
@Autowired @Autowired
private DgApplyAmountInfoController dgApplyAmountInfoController; private DgApplyAmountInfoController dgApplyAmountInfoController;
@Autowired
private DgApplyAmountInfoMapper applyAmountInfoMapper;
@Autowired @Autowired
private DgAuditProcessMapper dgAuditProcessMapper; private DgAuditProcessMapper dgAuditProcessMapper;
@Autowired
private DgApplyAmountListMapper applyAmountListMapper;
@Autowired
private DgGuaranteeAssignUserMapper guaranteeAssignUserMapper;
@Autowired
private DgAssetsInvestigationMapper assetsInvestigationMapper;
@Autowired
private DgMessageInvestigationMapper messageInvestigationMapper;
@Autowired
private DgComplianceInvestigationMapper complianceInvestigationMapper;
@Autowired
private DgWorkConferenceConsiderMapper workConferenceConsiderMapper;
@Autowired
private DgLoanCommitteeConsiderMapper loanCommitteeConsiderMapper;
@Autowired
private DgGuaranteeLetterAssignUserMapper guaranteeLetterAssignUserMapper;
@Autowired
private DgPaymentConfirmationConsiderMapper paymentConfirmationConsiderMapper;
@Autowired
private DgLoanNoticeMapper loanNoticeMapper;
/** /**
* 团队效率 * 团队效率
*/ */
@ -165,4 +211,365 @@ public class DgEfficiencyServiceImpl extends ServiceImpl<DgEfficiencyMapper, DgA
map.put("approvalNumArr", approvalList); map.put("approvalNumArr", approvalList);
return map; return map;
} }
@Override
public List<PersonalEfficiencyListResponse> queryPersonalEfficiencyList() {
int size = 100;
List<PersonalEfficiencyListResponse> efficiencyList = new ArrayList<>();
//获取当前登录用户id
int currentUser = Integer.parseInt(this.getUserId());
//获取当前用户拥有的角色ids
String roleIds = RedisUtil.get("dq:userRole:" + currentUser);
//字符串格式
List<String> roleIdList = new ArrayList<>();
if (roleIds != null) {
String[] ids = roleIds.split(",");
roleIdList = Arrays.asList(ids);
}
//数字格式
List<Integer> roleList = new ArrayList<>();
if (roleIds != null) {
String[] roleId = roleIds.split(",");
for (String id : roleId) {
roleList.add(Integer.parseInt(id));
}
}
//查询用户处理过的业务
QueryWrapper<DgAuditProcess> wrapper = new QueryWrapper<>();
wrapper.eq("user_id", currentUser).groupBy("business_id").select("business_id");
List<DgAuditProcess> auditProcessList = dgAuditProcessMapper.selectList(wrapper);
if (auditProcessList != null && auditProcessList.size() != 0) {
List<Integer> businessIdList = new ArrayList<>();
auditProcessList.forEach(dgAuditProcess -> {
businessIdList.add(dgAuditProcess.getBusinessId());
});
//根据业务id查询业务流程,统计耗时,完成时间
businessIdList.forEach(businessId -> {
//new返回对象
PersonalEfficiencyListResponse efficiencyListResponse = new PersonalEfficiencyListResponse();
efficiencyListResponse.setBusinessId(businessId);
//根据业务id查询业务
DgApplyAmountInfo dgApplyAmountInfo = applyAmountInfoMapper.selectById(businessId);
//业务申请日期
Date createTime = dgApplyAmountInfo.getCreateTime();
//客户公司id
Integer companyId = dgApplyAmountInfo.getCompanyId();
//提单人id
Integer presenterId = dgApplyAmountInfo.getPresenterId();
efficiencyListResponse.setApplicantId(presenterId);
efficiencyListResponse.setApplicationDate(new SimpleDateFormat("yyyy-MM-dd").format(createTime));
efficiencyListResponse.setClientName(String.valueOf(companyId));
//获取累计耗时,完成时间,任务节点
HashMap<String, Object> hashMap = getTime(businessId, currentUser);
Object countTime = hashMap.get("countTime");
Object endTime = hashMap.get("endTime");
efficiencyListResponse.setTimeConsuming(String.valueOf(countTime));
efficiencyListResponse.setCompleteTime(String.valueOf(endTime));
efficiencyList.add(efficiencyListResponse);
});
//获取每个业务id的三种状态
HashMap<Integer, Object> hashMap = Maps.newHashMap();
//角色不为空
//担保业务员角色、担保经理角色
if (roleIdList.contains(String.valueOf(PromptSuccess.DB_YWY_ID)) | roleIdList.contains(String.valueOf(PromptSuccess.DB_JL_ID))) {
//业务申请列表查询
IPage<BusinessApplicationListResponse> positionVO = applyAmountListMapper.pageByCondition(new Page(1, size), "", roleIdList, this.getUserId());
List<BusinessApplicationListResponse> records = positionVO.getRecords();
if (records!=null && records.size()!=0){
records.forEach(businessApplicationListResponse -> {
StatusPO statusPO = new StatusPO();
Integer businessId = businessApplicationListResponse.getBusinessId();
String name = businessApplicationListResponse.getName();
Integer status = businessApplicationListResponse.getStatus();
Integer operatingStatus = businessApplicationListResponse.getOperatingStatus();
Integer businessStatus = businessApplicationListResponse.getBusinessStatus();
statusPO.setBusinessStatus(businessStatus);
statusPO.setName(name);
statusPO.setOperatingStatus(operatingStatus);
statusPO.setProcessId(1);
statusPO.setStatus(status);
hashMap.put(businessId, statusPO);
});
}
}
//担保经理角色、担保A角角色、担保B角角色、担保领导角色
if (roleIdList.contains(String.valueOf(PromptSuccess.DB_JL_ID)) | roleIdList.contains(String.valueOf(PromptSuccess.DB_A_ID)) | roleIdList.contains(String.valueOf(PromptSuccess.DB_B_ID)) | roleIdList.contains(String.valueOf(PromptSuccess.DB_LD_ID))) {
// 担保部调查列表
IPage<GuaranteeListResponse> positionVO = guaranteeAssignUserMapper.pageByCondition(new Page(1, size), "", roleIdList, this.getUserId(), null);
List<GuaranteeListResponse> records = positionVO.getRecords();
if (records!=null && records.size()!=0) {
records.forEach(guaranteeListResponse -> {
StatusPO statusPO = new StatusPO();
Integer businessId = guaranteeListResponse.getBusinessId();
Integer status = guaranteeListResponse.getStatus();
String name = guaranteeListResponse.getName();
Integer operatingStatus = guaranteeListResponse.getOperatingStatus();
Integer businessStatus = guaranteeListResponse.getBusinessStatus();
statusPO.setBusinessStatus(businessStatus);
statusPO.setOperatingStatus(operatingStatus);
statusPO.setProcessId(2);
statusPO.setName(name);
statusPO.setStatus(status);
hashMap.put(businessId, statusPO);
});
}
}
//资产经理角色、资产专员角色、资产领导角色
if (roleIdList.contains(String.valueOf(PromptSuccess.ZC_JL_ID)) | roleIdList.contains(String.valueOf(PromptSuccess.ZC_ZY_ID)) | roleIdList.contains(String.valueOf(PromptSuccess.ZC_LD_ID))) {
// 资产部调查列表
IPage<AssetsInvestigationListResponse> positionVO = assetsInvestigationMapper.pageByCondition(new Page(1, size), "", roleIdList, this.getUserId(), null);
List<AssetsInvestigationListResponse> records = positionVO.getRecords();
if (records!=null && records.size()!=0) {
records.forEach(assetsInvestigationListResponse -> {
StatusPO statusPO = new StatusPO();
Integer businessId = assetsInvestigationListResponse.getBusinessId();
Integer status = assetsInvestigationListResponse.getStatus();
String name = assetsInvestigationListResponse.getName();
Integer operatingStatus = assetsInvestigationListResponse.getOperatingStatus();
Integer businessStatus = assetsInvestigationListResponse.getBusinessStatus();
statusPO.setBusinessStatus(businessStatus);
statusPO.setOperatingStatus(operatingStatus);
statusPO.setProcessId(3);
statusPO.setName(name);
statusPO.setStatus(status);
hashMap.put(businessId, statusPO);
});
}
}
//信息经理角色、信息专员角色、信息领导角色
if (roleIdList.contains(String.valueOf(PromptSuccess.XX_JL_ID)) | roleIdList.contains(String.valueOf(PromptSuccess.XX_ZY_ID)) | roleIdList.contains(String.valueOf(PromptSuccess.XX_LD_ID))) {
// 信息部调查列表
IPage<MessageInvestigationListResponse> positionVO = messageInvestigationMapper.pageByCondition(new Page(1, size), "", roleIdList, this.getUserId(), null);
List<MessageInvestigationListResponse> records = positionVO.getRecords();
if (records!=null && records.size()!=0) {
records.forEach(messageInvestigationListResponse -> {
StatusPO statusPO = new StatusPO();
Integer businessId = messageInvestigationListResponse.getBusinessId();
Integer status = messageInvestigationListResponse.getStatus();
String name = messageInvestigationListResponse.getName();
Integer operatingStatus = messageInvestigationListResponse.getOperatingStatus();
Integer businessStatus = messageInvestigationListResponse.getBusinessStatus();
statusPO.setBusinessStatus(businessStatus);
statusPO.setOperatingStatus(operatingStatus);
statusPO.setProcessId(4);
statusPO.setName(name);
statusPO.setStatus(status);
hashMap.put(businessId, statusPO);
});
}
}
//担保部A/B角、法规经理角色、法规部C角、法规部分管领导
if (roleIdList.contains(String.valueOf(PromptSuccess.DB_A_ID))|roleIdList.contains(String.valueOf(PromptSuccess.DB_B_ID))|roleIdList.contains(String.valueOf(PromptSuccess.FG_JL_ID))|roleIdList.contains(String.valueOf(PromptSuccess.FG_C_ID))|roleIdList.contains(String.valueOf(PromptSuccess.FG_LD_ID))) {
// 合规调查列表
DgComplianceInvestigationRequest dgComplianceInvestigationRequest = new DgComplianceInvestigationRequest();
IPage<DgComplianceInvestigationResponse> list = complianceInvestigationMapper.list(new Page(1, size), dgComplianceInvestigationRequest, roleList, currentUser);
List<DgComplianceInvestigationResponse> records = list.getRecords();
if (records!=null && records.size()!=0) {
records.forEach(dgComplianceInvestigationResponse -> {
StatusPO statusPO = new StatusPO();
Integer businessId = dgComplianceInvestigationResponse.getBusinessId();
String name = dgComplianceInvestigationResponse.getName();
Integer status = dgComplianceInvestigationResponse.getAuditStatus();
Integer operatingStatus = dgComplianceInvestigationResponse.getOperationStatus();
Integer businessStatus = dgComplianceInvestigationResponse.getBusinessStatus();
statusPO.setBusinessStatus(businessStatus);
statusPO.setOperatingStatus(operatingStatus);
statusPO.setProcessId(5);
statusPO.setName(name);
statusPO.setStatus(status);
hashMap.put(businessId, statusPO);
});
}
}
//工作会
if (roleIdList.contains(String.valueOf(PromptSuccess.GZU_ID))) {
IPage<DgWorkConferencePO> list = workConferenceConsiderMapper.list(new Page(1, size), "", roleList, currentUser);
List<DgWorkConferencePO> records = list.getRecords();
if (records!=null && records.size()!=0) {
records.forEach(dgWorkConferencePO -> {
StatusPO statusPO = new StatusPO();
Integer businessId = dgWorkConferencePO.getBusinessId();
String name = dgWorkConferencePO.getName();
Integer status = dgWorkConferencePO.getAuditStatus();
Integer operatingStatus = dgWorkConferencePO.getOperationStatus();
Integer businessStatus = dgWorkConferencePO.getBusinessStatus();
statusPO.setBusinessStatus(businessStatus);
statusPO.setOperatingStatus(operatingStatus);
statusPO.setProcessId(6);
statusPO.setName(name);
statusPO.setStatus(status);
hashMap.put(businessId, statusPO);
});
}
}
//担保部A/B角、贷审会
if (roleIdList.contains(String.valueOf(PromptSuccess.DB_A_ID))|roleIdList.contains(String.valueOf(PromptSuccess.DB_B_ID))|roleIdList.contains(String.valueOf(PromptSuccess.DSH_ID))) {
IPage<DgLoanCommitteeConsiderResponse> list = loanCommitteeConsiderMapper.list(new Page(1, size), "", roleList, currentUser);
List<DgLoanCommitteeConsiderResponse> records = list.getRecords();
if (records!=null && records.size()!=0) {
records.forEach(dgLoanCommitteeConsiderResponse -> {
StatusPO statusPO = new StatusPO();
Integer businessId = dgLoanCommitteeConsiderResponse.getBusinessId();
Integer status = dgLoanCommitteeConsiderResponse.getStatus();
String name = dgLoanCommitteeConsiderResponse.getName();
Integer operatingStatus = dgLoanCommitteeConsiderResponse.getOperatingStatus();
Integer businessStatus = dgLoanCommitteeConsiderResponse.getBusinessStatus();
statusPO.setBusinessStatus(businessStatus);
statusPO.setOperatingStatus(operatingStatus);
statusPO.setProcessId(7);
statusPO.setName(name);
statusPO.setStatus(status);
hashMap.put(businessId, statusPO);
});
}
}
//法规经理、担保部A/B角、资产部经理
if (roleIdList.contains(String.valueOf(PromptSuccess.FG_JL_ID))|roleIdList.contains(String.valueOf(PromptSuccess.DB_A_ID))|roleIdList.contains(String.valueOf(PromptSuccess.DB_B_ID))|roleIdList.contains(String.valueOf(PromptSuccess.ZC_JL_ID)) ) {
//担保函
IPage<GuaranteeLetterListResponse> iPage = guaranteeLetterAssignUserMapper.pageByCondition(new Page(1, size), currentUser, roleIdList, null, null);
List<GuaranteeLetterListResponse> records = iPage.getRecords();
if (records!=null && records.size()!=0) {
records.forEach(guaranteeLetterListResponse -> {
StatusPO statusPO = new StatusPO();
String name = guaranteeLetterListResponse.getName();
Integer businessId = guaranteeLetterListResponse.getBusinessId();
Integer status = guaranteeLetterListResponse.getStatus();
Integer operatingStatus = guaranteeLetterListResponse.getOperatingStatus();
Integer businessStatus = guaranteeLetterListResponse.getBusinessStatus();
statusPO.setBusinessStatus(businessStatus);
statusPO.setOperatingStatus(operatingStatus);
statusPO.setProcessId(8);
statusPO.setName(name);
statusPO.setStatus(status);
hashMap.put(businessId, statusPO);
});
}
}
//财务部、法规经理
if (roleIdList.contains(String.valueOf(PromptSuccess.CWB_ID))|roleIdList.contains(String.valueOf(PromptSuccess.FG_JL_ID))) {
//回款确认
IPage<PaymentConfirmationListResponse> iPage = paymentConfirmationConsiderMapper.pageByCondition(new Page(1, size), roleIdList, currentUser, null, null);
List<PaymentConfirmationListResponse> records = iPage.getRecords();
if (records!=null && records.size()!=0) {
records.forEach(paymentConfirmationListResponse -> {
StatusPO statusPO = new StatusPO();
String name = paymentConfirmationListResponse.getName();
Integer businessId = paymentConfirmationListResponse.getBusinessId();
Integer status = paymentConfirmationListResponse.getStatus();
Integer operatingStatus = paymentConfirmationListResponse.getOperatingStatus();
Integer businessStatus = paymentConfirmationListResponse.getBusinessStatus();
statusPO.setBusinessStatus(businessStatus);
statusPO.setOperatingStatus(operatingStatus);
statusPO.setProcessId(9);
statusPO.setName(name);
statusPO.setStatus(status);
hashMap.put(businessId, statusPO);
});
}
}
//法规经理
if (roleIdList.contains(String.valueOf(PromptSuccess.FG_JL_ID))) {
//放款通知
IPage<LoanNoticeListResponse> iPage = loanNoticeMapper.pageByCondition(new Page(1, size), roleIdList, currentUser, null, null);
List<LoanNoticeListResponse> records = iPage.getRecords();
if (records!=null && records.size()!=0) {
records.forEach(loanNoticeListResponse -> {
StatusPO statusPO = new StatusPO();
String name = loanNoticeListResponse.getName();
Integer businessId = loanNoticeListResponse.getBusinessId();
Integer status = loanNoticeListResponse.getStatus();
Integer operatingStatus = loanNoticeListResponse.getOperatingStatus();
Integer businessStatus = loanNoticeListResponse.getBusinessStatus();
statusPO.setBusinessStatus(businessStatus);
statusPO.setOperatingStatus(operatingStatus);
statusPO.setProcessId(10);
statusPO.setName(name);
statusPO.setStatus(status);
hashMap.put(businessId, statusPO);
});
}
}
//再次循环,拼接数据
efficiencyList.forEach(personalEfficiencyListResponse -> {
Integer businessId = personalEfficiencyListResponse.getBusinessId();
Object o = hashMap.get(businessId);
//有数据
if (ObjectUtil.isNotNull(o)){
//强制转换
if (o instanceof StatusPO){
StatusPO statusPO = (StatusPO)o;
String name = statusPO.getName();
Integer operatingStatus = statusPO.getOperatingStatus();
Integer processId = statusPO.getProcessId();
Integer status = statusPO.getStatus();
Integer businessStatus = statusPO.getBusinessStatus();
personalEfficiencyListResponse.setTaskNode(String.valueOf(processId));
personalEfficiencyListResponse.setBusinessStatus(businessStatus);
personalEfficiencyListResponse.setOperatingStatus(operatingStatus);
personalEfficiencyListResponse.setApproveStatus(status);
personalEfficiencyListResponse.setClientName(name);
}
}
String timeConsuming = personalEfficiencyListResponse.getTimeConsuming();
String totalTimeConsuming = countTime(timeConsuming);
personalEfficiencyListResponse.setTimeConsuming(totalTimeConsuming);
});
}
return efficiencyList;
}
//根据业务id和用户id统计耗时
private HashMap<String, Object> getTime(Integer businessId, Integer userId) {
HashMap<String, Object> hashMap = Maps.newHashMap();
//根据业务id查询业务流程表
QueryWrapper<DgAuditProcess> wrapper = new QueryWrapper<>();
wrapper.eq("business_id", businessId).orderByAsc("create_time");
List<DgAuditProcess> auditProcessList = dgAuditProcessMapper.selectList(wrapper);
long countTime = 0L;
if (auditProcessList.size()>1){
//遍历业务流程数据,统计该用户的耗时
for (int i = 1; i <= auditProcessList.size() - 1; i++) {
//从第二条数据开始,获取该数据
DgAuditProcess auditProcess = auditProcessList.get(i);
//该数据是当前用户处理的
if (auditProcess.getUserId().equals(userId)) {
//获取上一流程的时间节点
DgAuditProcess previousProcess = auditProcessList.get(i - 1);
Date previousTime = previousProcess.getCreateTime();
Date currentTime = auditProcess.getCreateTime();
long currentTimeTime = currentTime.getTime();
long previousTimeTime = previousTime.getTime();
//累计耗时,毫秒
countTime = currentTimeTime - previousTimeTime;
}
}
}
//查询结束时间
QueryWrapper<DgAuditProcess> wrapperTime = new QueryWrapper<>();
wrapperTime.eq("business_id", businessId).eq("user_id", userId).orderByDesc("create_time").last("limit 1");
DgAuditProcess auditProcess = dgAuditProcessMapper.selectOne(wrapperTime);
Date endTime = auditProcess.getCreateTime();
hashMap.put("countTime", countTime);
hashMap.put("endTime", new SimpleDateFormat("yyyy-MM-dd").format(endTime));
return hashMap;
}
public static String countTime(String totalTime) {
long time = Long.parseLong(totalTime);
long days = time/ (1000 * 60 * 60 * 24);
long hours = (time% (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
long minutes = (time% (1000 * 60 * 60)) / (1000 * 60);
long seconds = (time% (1000 * 60)) / 1000;
return days + "天" + hours + "小时"+ minutes +"分钟";
}
/**
* 获取当前登录用户信息
*/
private String getUserId() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader("token");
return RedisUtil.get("dq:token:" + token);
}
} }

@ -0,0 +1,31 @@
package com.daqing.framework.domain.guarantee.po;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
* @Author chen
* @DATE 2020/12/30 9:45
* @Version 1.0
*/
@Data
@ToString
public class StatusPO {
@ApiModelProperty("客户名称")
private String name;
@ApiModelProperty("进程id")
private Integer processId;
@ApiModelProperty("审核状态")
private Integer status;
@ApiModelProperty("业务状态")
private Integer businessStatus;
@ApiModelProperty("操作状态")
private Integer operatingStatus;
}
Loading…
Cancel
Save