Merge branch 'version_performance_2.0' of http://gitlab.ldxinyong.com/enterpriseManagement/lz_management into version_performance_2.0
This commit is contained in:
commit
45ec4229bf
@ -4,6 +4,7 @@ import com.lz.common.emun.WorkMsgTypeEnum;
|
||||
import com.lz.common.utils.*;
|
||||
import com.lz.modules.app.dto.ApprovalDto;
|
||||
import com.lz.modules.app.dto.DepartmentsDto;
|
||||
import com.lz.modules.app.dto.RecordListDto;
|
||||
import com.lz.modules.app.dto.StaffDepartmentDto;
|
||||
import com.lz.modules.app.entity.DepartmentsStaffRelateEntity;
|
||||
import com.lz.modules.app.entity.StaffEntity;
|
||||
@ -650,10 +651,28 @@ public class ResultRecordController extends AbstractController {
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
// http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825
|
||||
@RequestMapping("/new/approval")
|
||||
public R approval(ApprovalDto approvalDto) {
|
||||
approvalDto.setLoginUserId(approvalDto.getLoginUserId());
|
||||
return resultRecordService.newApproval(approvalDto);
|
||||
try {
|
||||
approvalDto.setLoginUserId(approvalDto.getLoginUserId());
|
||||
return resultRecordService.newApproval(approvalDto);
|
||||
} catch (Exception e) {
|
||||
return R.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
// http://localhost:8080/lz_management/user/lzresultrecord/new/resultRecordList
|
||||
@RequestMapping("/new/resultRecordList")
|
||||
public R newResultRecordList(RecordListDto recordListDto) {
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -266,18 +266,5 @@ public class TestController {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
// http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1
|
||||
@RequestMapping("/new/approval")
|
||||
public R approval(Long resultRecordId,Integer status ) {
|
||||
ApprovalDto approvalDto = new ApprovalDto();
|
||||
approvalDto.setResultRecordId(resultRecordId);
|
||||
approvalDto.setStatus(status);
|
||||
return resultRecordService.newApproval(approvalDto);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -5,8 +5,10 @@ import lombok.Data;
|
||||
@Data
|
||||
public class ApprovalDto {
|
||||
private Long resultRecordId;
|
||||
private Integer status; //1 提交审批,审批通过,2 撤回,3 催办,5 驳回,6 申述,7 流程终止
|
||||
private Integer status; //1 提交审批,审批通过,2 撤回,3 催办,4 跳过,5 驳回,6 申述,7 流程终止,8 转交
|
||||
private Long loginUserId;
|
||||
private String menuName; //按钮名称
|
||||
private String comment;
|
||||
private Long transferStaffId; // 转交员工 id
|
||||
private Long currentStaffId; //当前用户 id
|
||||
}
|
||||
|
||||
8
src/main/java/com/lz/modules/app/dto/RecordListDto.java
Normal file
8
src/main/java/com/lz/modules/app/dto/RecordListDto.java
Normal file
@ -0,0 +1,8 @@
|
||||
package com.lz.modules.app.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RecordListDto {
|
||||
private Long loginUserId;
|
||||
}
|
||||
@ -5,7 +5,8 @@ public enum FlowRecordStatusEnums {
|
||||
UN_TO_STATUS(0, "流程未到"),
|
||||
FINISHED_STATUS(1, "流程已走"),
|
||||
CURRENT_FLOW_STATUS(2, "当前流程"),
|
||||
SKIP_STATUS(3, "跳过");
|
||||
OTHER_APPROVAL(3,"其他人己审批"),
|
||||
SKIP_STATUS(4, "跳过");
|
||||
|
||||
private Integer status;
|
||||
private String desc ;
|
||||
|
||||
@ -40,4 +40,6 @@ public interface FlowChartMapper extends BaseMapper<FlowChart> {
|
||||
List<FlowChartRoleDto> selectChartRoleByChartId(Long id);
|
||||
|
||||
List<FlowChartDto> selectFlowChartDtoByFlowManagerId(Long id);
|
||||
|
||||
List<FlowChart> selectFlowChartsByGroupId(Long groupId);
|
||||
}
|
||||
@ -64,4 +64,11 @@ public interface FlowRecordMapper extends BaseMapper<FlowRecord> {
|
||||
List<FlowRecord> selectFlowRecordByRecordIdStatus(@Param("resultRecordId") Long resultRecordId, @Param("status") Integer status);
|
||||
|
||||
FlowRecord selectFlowRecordByRecordIdAndFlowId(@Param("resultRecordId") Long resultRecordId, @Param("flowId") Long flowId);
|
||||
|
||||
List<FlowRecord> selectFlowRecordByRecordIdStatusFlowIndex(@Param("resultRecordId") Long resultRecordId, @Param("status") int status, @Param("flowIndex") int flowIndex);
|
||||
|
||||
|
||||
FlowRecord selectPreFlowRecordByRecordIdMaxIdStatus(@Param("resultRecordId") Long resultRecordId, @Param("id") Long id, @Param("status") int status);
|
||||
|
||||
List<FlowRecord> selectFlowRecordByRecordIdFlowIndex(@Param("resultRecordId") Long resultRecordId, @Param("flowIndex") Integer flowIndex);
|
||||
}
|
||||
@ -46,7 +46,7 @@ public class FlowApprovalRole implements java.io.Serializable {
|
||||
private Integer stepType;
|
||||
|
||||
//小结点的第几步,从0开始,如果是多人,步数相同
|
||||
@ApiModelProperty(value = "小结点的第几步,从0开始,如果是多人,步数相同", name = "stepIndex")
|
||||
@ApiModelProperty(value = "小结点的第几步,从0开始,如果是多人,步数相同,", name = "stepIndex")
|
||||
private Integer stepIndex;
|
||||
/**
|
||||
*
|
||||
|
||||
@ -53,7 +53,7 @@ public class FlowChartDetailRecord implements java.io.Serializable {
|
||||
@ApiModelProperty(value = "步骤类型0:依次,1或签(同时通知,一人通过或拒绝即可),2会签(同时通知,所有人同意才可以)", name = "stepType")
|
||||
private Integer stepType;
|
||||
//第几步从0开始,按照有小到排序
|
||||
@ApiModelProperty(value = "第几步从0开始,按照有小到排序", name = "stepIndex")
|
||||
@ApiModelProperty(value = "第几步从0开始,按照有小到排序,大节点中的排序", name = "stepIndex")
|
||||
private Integer stepIndex;
|
||||
//权重,评分时所占权重
|
||||
@ApiModelProperty(value = "权重,评分时所占权重", name = "weight")
|
||||
|
||||
@ -46,7 +46,7 @@ public class FlowRecord implements java.io.Serializable {
|
||||
private String flowStaffIdRole;
|
||||
//状态名称
|
||||
private String statusName;
|
||||
//类型 ,1 表示提交目标,2 表示提交结果
|
||||
//步骤类型0:依次,1:或签(同时通知,一人通过或拒绝即可),2会签(同时通知,所有人同意才可)
|
||||
private Integer type;
|
||||
/**
|
||||
*
|
||||
|
||||
@ -42,7 +42,7 @@ public class FlowChartDetailRecordDto {
|
||||
@ApiModelProperty(value = "步骤类型0:依次,1或签(同时通知,一人通过或拒绝即可),2会签(同时通知,所有人同意才可以)", name = "stepType")
|
||||
private Integer stepType;
|
||||
//第几步从0开始,按照有小到排序
|
||||
@ApiModelProperty(value = "第几步从0开始,按照有小到排序", name = "stepIndex")
|
||||
@ApiModelProperty(value = "第几步从0开始,按照有小到排序,大节点中的排序", name = "stepIndex")
|
||||
private Integer stepIndex;
|
||||
//权重,评分时所占权重
|
||||
@ApiModelProperty(value = "权重,评分时所占权重", name = "weight")
|
||||
|
||||
@ -62,7 +62,7 @@ public class FlowChartDetailRecordReq implements java.io.Serializable {
|
||||
@ApiModelProperty(value = "步骤类型0:依次,1或签(同时通知,一人通过或拒绝即可),2会签(同时通知,所有人同意才可以)", name = "stepType")
|
||||
private Integer stepType;
|
||||
//第几步从0开始,按照有小到排序
|
||||
@ApiModelProperty(value = "第几步从0开始,按照有小到排序", name = "stepIndex")
|
||||
@ApiModelProperty(value = "第几步从0开始,按照有小到排序,大节点中的排序", name = "stepIndex")
|
||||
private Integer stepIndex;
|
||||
//权重,评分时所占权重
|
||||
@ApiModelProperty(value = "权重,评分时所占权重", name = "weight")
|
||||
|
||||
@ -39,4 +39,6 @@ public interface FlowChartService extends IService<FlowChart> {
|
||||
List<FlowChartRoleDto> selectChartRoleByChartId(Long id);
|
||||
|
||||
List<FlowChartDto> selectFlowChartDtoByFlowManagerId(Long id);
|
||||
|
||||
List<FlowChart> selectFlowChartsByGroupId(Long groupId);
|
||||
}
|
||||
@ -63,4 +63,11 @@ public interface FlowRecordService extends IService<FlowRecord> {
|
||||
List<FlowRecord> selectFlowRecordByRecordIdStatus(Long resultRecordId,Integer status);
|
||||
|
||||
FlowRecord selectFlowRecordByRecordIdAndFlowId(Long resultRecordId, Long id);
|
||||
|
||||
List<FlowRecord> selectFlowRecordByRecordIdStatusFlowIndex(Long resultRecordId, int status, int flowIndex);
|
||||
|
||||
|
||||
FlowRecord selectPreFlowRecordByRecordIdMaxIdStatus(Long resultRecordId, Long id, int status);
|
||||
|
||||
List<FlowRecord> selectFlowRecordByRecordIdFlowIndex(Long resultRecordId, Integer flowIndex);
|
||||
}
|
||||
@ -77,6 +77,11 @@ public class FlowChartServiceImpl extends ServiceImpl<FlowChartMapper, FlowChart
|
||||
return flowChartMapper.selectFlowChartDtoByFlowManagerId(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FlowChart> selectFlowChartsByGroupId(Long groupId){
|
||||
return flowChartMapper.selectFlowChartsByGroupId(groupId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -173,4 +173,21 @@ public class FlowRecordServiceImpl extends ServiceImpl<FlowRecordMapper, FlowRec
|
||||
public FlowRecord selectFlowRecordByRecordIdAndFlowId(Long resultRecordId, Long flowId) {
|
||||
return flowRecordMapper.selectFlowRecordByRecordIdAndFlowId(resultRecordId,flowId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FlowRecord> selectFlowRecordByRecordIdStatusFlowIndex(Long resultRecordId, int status, int flowIndex) {
|
||||
return flowRecordMapper.selectFlowRecordByRecordIdStatusFlowIndex(resultRecordId,status,flowIndex);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FlowRecord selectPreFlowRecordByRecordIdMaxIdStatus(Long resultRecordId, Long id, int status) {
|
||||
return flowRecordMapper.selectPreFlowRecordByRecordIdMaxIdStatus(resultRecordId,id,status);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FlowRecord> selectFlowRecordByRecordIdFlowIndex(Long resultRecordId, Integer flowIndex) {
|
||||
return flowRecordMapper.selectFlowRecordByRecordIdFlowIndex(resultRecordId,flowIndex);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -84,6 +84,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public FlowStart selectFlowStartById(Long id){
|
||||
return flowStartMapper.selectFlowStartById(id);
|
||||
@ -150,7 +151,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
|
||||
}
|
||||
|
||||
|
||||
Map<Long, String> chartNameMaps = new HashedMap();//流程节点与流程名称对应map,下面多次循环,减少数据库查找
|
||||
|
||||
Map<String, List<StaffEntity>> staffManages = new HashedMap();//部门(id+几级)和部门几级管理对应关系,减少数据库查找
|
||||
//下面开始初始化流程
|
||||
List<Long> ids = Arrays.stream(flowStart.getGroupIds().split(",")).map(new Function<String, Long>() {
|
||||
@ -178,13 +179,25 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
|
||||
return R.error(evaluationGroup.getName() + "——没有设置考核模板");
|
||||
}
|
||||
|
||||
List<FlowChart> flowCharts = flowChartService.selectFlowChartsByGroupId(evaluationGroup.getId());
|
||||
if(flowCharts.size() == 0){
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
|
||||
return R.error(evaluationGroup.getName() + "——没有绩效流程节点");
|
||||
}
|
||||
List<FlowChartDetailRecord> flowChartDetailRecords = new ArrayList<>();
|
||||
for (FlowChart chart:flowCharts
|
||||
) {//按照节点顺序获取正确的流程
|
||||
List<FlowChartDetailRecord> flowChartDetailRecords1
|
||||
= flowChartDetailRecordService.selectFlowChartDetailRecordByGroupIdAndChartId(evaluationGroup.getId(), chart.getId());
|
||||
flowChartDetailRecords.addAll(flowChartDetailRecords1);
|
||||
}
|
||||
|
||||
List<FlowChartDetailRecord> flowChartDetailRecords
|
||||
= flowChartDetailRecordService.selectFlowChartDetailRecordByGroupId(evaluationGroup.getId());
|
||||
if(flowChartDetailRecords.size() == 0){
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
|
||||
return R.error(evaluationGroup.getName() + "——没有设置考核流程");
|
||||
}
|
||||
Map<Long, String> chartNameMaps =
|
||||
flowCharts.stream().collect(Collectors.toMap(FlowChart::getId, FlowChart::getName));//流程节点与流程名称对应map,下面多次循环,减少数据库查找
|
||||
|
||||
List<StaffEntity> staffManagers = null;
|
||||
if(!StringUtil.isEmpty(evaluationGroup.getManagerIds())){
|
||||
@ -255,34 +268,16 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
|
||||
flow.setOpt("+");
|
||||
flow.setStartId(flowStart.getId());
|
||||
flow.setChartId(flowChartDetailRecord.getChartId());
|
||||
String optName;
|
||||
if(chartNameMaps.containsKey(flowChartDetailRecord.getChartId())){//缓存
|
||||
optName = chartNameMaps.get(flowChartDetailRecord.getChartId());
|
||||
}else{//查找数据库
|
||||
FlowChart flowChart = flowChartService.selectFlowChartById(flowChartDetailRecord.getChartId());
|
||||
chartNameMaps.put(flowChart.getId(), flowChart.getName());
|
||||
optName = flowChart.getName();
|
||||
}
|
||||
flow.setOptDesc(optName);
|
||||
flowService.insertFlow(flow);
|
||||
flow.setOptDesc(chartNameMaps.get(flowChartDetailRecord.getChartId()));
|
||||
|
||||
flowService.insertFlow(flow);
|
||||
FlowApprovalRole flowApprovalRole = null;
|
||||
if(flowChartDetailRecord.getOptType().intValue() == ChartOptType.APPOINT.getCode()){//指定人员的
|
||||
String[] optIds = flowChartDetailRecord.getOptIds().split(",");
|
||||
for (String id:optIds
|
||||
) {
|
||||
/*String[] roleIds = flowChartDetailRecord.getRoleIds().split(",");
|
||||
for (String roleId:roleIds
|
||||
) {
|
||||
FlowApprovalRole flowApprovalRole = new FlowApprovalRole();
|
||||
flowApprovalRole.setFlowId(flow.getId());
|
||||
flowApprovalRole.setApprovalId(Long.parseLong(id));
|
||||
flowApprovalRole.setStepType(flowChartDetailRecord.getStepType());
|
||||
flowApprovalRole.setRoleId(roleId);
|
||||
flowApprovalRole.setType(flowChartDetailRecord.getOptType());
|
||||
flowApprovalRoles.add(flowApprovalRole);
|
||||
flowApprovalRole.setStepIndex(stepIndex);
|
||||
}*/
|
||||
FlowApprovalRole flowApprovalRole = new FlowApprovalRole();
|
||||
|
||||
flowApprovalRole = new FlowApprovalRole();
|
||||
flowApprovalRole.setFlowId(flow.getId());
|
||||
flowApprovalRole.setApprovalId(Long.parseLong(id));
|
||||
flowApprovalRole.setStepType(flowChartDetailRecord.getStepType());
|
||||
@ -290,29 +285,25 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
|
||||
flowApprovalRole.setType(flowChartDetailRecord.getOptType());
|
||||
flowApprovalRoles.add(flowApprovalRole);
|
||||
flowApprovalRole.setStepIndex(stepIndex);
|
||||
if(flowChartDetailRecord.getStepType().intValue() == 0){
|
||||
//依次
|
||||
stepIndex++;
|
||||
}
|
||||
}
|
||||
stepIndex++;
|
||||
//stepIndex++;
|
||||
if(flowApprovalRole != null){
|
||||
stepIndex = flowApprovalRole.getStepIndex() + 1;
|
||||
}
|
||||
|
||||
}else{
|
||||
FlowApprovalRole flowApprovalRole = new FlowApprovalRole();
|
||||
flowApprovalRole = new FlowApprovalRole();
|
||||
flowApprovalRole.setFlowId(flow.getId());
|
||||
flowApprovalRole.setStepType(flowChartDetailRecord.getStepType());
|
||||
flowApprovalRole.setRoleId(flowChartDetailRecord.getRoleIds());
|
||||
flowApprovalRole.setType(flowChartDetailRecord.getOptType());
|
||||
flowApprovalRoles.add(flowApprovalRole);
|
||||
flowApprovalRole.setStepIndex(stepIndex);
|
||||
/*String[] roleIds = flowChartDetailRecord.getRoleIds().split(",");
|
||||
for (String roleId:roleIds
|
||||
) {
|
||||
FlowApprovalRole flowApprovalRole = new FlowApprovalRole();
|
||||
flowApprovalRole.setFlowId(flow.getId());
|
||||
flowApprovalRole.setStepType(flowChartDetailRecord.getStepType());
|
||||
flowApprovalRole.setRoleId(roleId);
|
||||
flowApprovalRole.setType(flowChartDetailRecord.getOptType());
|
||||
flowApprovalRoles.add(flowApprovalRole);
|
||||
flowApprovalRole.setStepIndex(stepIndex);
|
||||
|
||||
|
||||
}*/
|
||||
stepIndex++;
|
||||
}
|
||||
|
||||
@ -445,6 +436,8 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
|
||||
roleJSON = roleJSON.replace(",]", "]");
|
||||
resultRecord.setFlowStaffIdRole(roleJSON);
|
||||
resultRecordService.insertResultRecord(resultRecord);
|
||||
//下面生成实际的考核流程
|
||||
resultRecordService.initFlowRecord(resultRecord.getId());
|
||||
//下面生成ResultDetail对象
|
||||
for (ResultModelDto modelDto:resultModelDtos
|
||||
) {
|
||||
|
||||
@ -193,7 +193,7 @@ public class FlowChartController {
|
||||
public R getDetailProc(@RequestParam @ApiParam("考核组id") Long groupId, @RequestParam @ApiParam("节点id") Long chartId) {
|
||||
|
||||
return R.ok().put("data", flowChartDetailRecordDtos);
|
||||
}*/
|
||||
}
|
||||
|
||||
private List<FlowChartDetailRecordDto> getChartDetailRecort(Long chartId, Long groupId){
|
||||
List<FlowChartDetailRecord> flowChartDetailRecords = flowChartDetailRecordService.selectFlowChartDetailRecordByGroupIdAndChartId(groupId, chartId);
|
||||
@ -219,7 +219,7 @@ public class FlowChartController {
|
||||
flowChartDetailRecordDtos.add(dto);
|
||||
}
|
||||
return flowChartDetailRecordDtos;
|
||||
}
|
||||
}*/
|
||||
|
||||
@RequestMapping("/delete")
|
||||
public R list(@RequestBody Long id) {
|
||||
|
||||
@ -110,6 +110,5 @@ public interface ResultRecordService extends IService<ResultRecord> {
|
||||
|
||||
R initFlowRecord(Long resultRecordId);
|
||||
|
||||
R newApproval(ApprovalDto approvalDto);
|
||||
|
||||
R newApproval(ApprovalDto approvalDto) throws Exception;
|
||||
}
|
||||
@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.lz.common.emun.WorkMsgTypeEnum;
|
||||
import com.lz.common.exception.RRException;
|
||||
import com.lz.common.utils.*;
|
||||
import com.lz.modules.app.dao.DepartmentsDao;
|
||||
import com.lz.modules.app.dao.DepartmentsStaffRelateDao;
|
||||
@ -27,7 +28,6 @@ import com.lz.modules.flow.enums.FlowRecordEnum;
|
||||
import com.lz.modules.flow.model.*;
|
||||
import com.lz.modules.flow.service.*;
|
||||
import com.lz.modules.job.business.DingtalkBusiness;
|
||||
import com.lz.modules.performance.req.AssessDetailReq;
|
||||
import com.lz.modules.performance.res.ChartStatistical;
|
||||
import com.lz.modules.sys.dao.app.ResultRecordMapper;
|
||||
import com.lz.modules.sys.entity.SysUserEntity;
|
||||
@ -68,6 +68,8 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
private ResultRecordMapper resultRecordMapper;
|
||||
|
||||
|
||||
|
||||
|
||||
private static EmployeesDto employeesDto;
|
||||
|
||||
@Autowired
|
||||
@ -764,47 +766,45 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
flowIds.add(flow.getId());
|
||||
}
|
||||
List<FlowApprovalRole> flowApprovalRoles =flowApprovalRoleService.selectFlowApprovalRoleList(flowIds);
|
||||
int i = 0 ;
|
||||
DepartmentsStaffRelateEntity relateEntity = departmentsStaffRelateService.selectLastDepartmentByStaffId(resultRecord.getStaffId());
|
||||
Map<String, String> map = departmentsService.selectUserAllDepartmentInFo(relateEntity.getDepartmentId());
|
||||
int i = 0;
|
||||
List<FlowRecord> flowRecords = new ArrayList<>();
|
||||
for(FlowApprovalRole flowApprovalRole:flowApprovalRoles){
|
||||
for (FlowApprovalRole flowApprovalRole : flowApprovalRoles) {
|
||||
FlowRecord flowRecord = new FlowRecord();
|
||||
flowRecord.setRecordId(resultRecord.getId());
|
||||
StaffEntity staffEntity = new StaffEntity();
|
||||
if(FlowApprovalRoleTypeEnums.ME.getType().equals(flowApprovalRole.getType())){
|
||||
staffEntity = staffService.selectStaffById(resultRecord.getStaffId());
|
||||
}else if(FlowApprovalRoleTypeEnums.STAFF.getType().equals(flowApprovalRole.getType())){
|
||||
if (FlowApprovalRoleTypeEnums.ME.getType().equals(flowApprovalRole.getType())) {
|
||||
staffEntity = staffService.selectStaffById(resultRecord.getStaffId());
|
||||
} else if (FlowApprovalRoleTypeEnums.STAFF.getType().equals(flowApprovalRole.getType())) {
|
||||
staffEntity = staffService.selectStaffById(flowApprovalRole.getApprovalId());
|
||||
}else if(FlowApprovalRoleTypeEnums.ONE_SUPPER.getType().equals(flowApprovalRole.getType())){
|
||||
staffEntity = getDepartmentStaff(map,1);
|
||||
}else if(FlowApprovalRoleTypeEnums.TWO_SUPPER.getType().equals(flowApprovalRole.getType())){
|
||||
staffEntity = getDepartmentStaff(map,2);
|
||||
}else if(FlowApprovalRoleTypeEnums.THREE_SUPPER.getType().equals(flowApprovalRole.getType())){
|
||||
staffEntity = getDepartmentStaff(map,3);
|
||||
}else if(FlowApprovalRoleTypeEnums.FOUR_SUPPER.getType().equals(flowApprovalRole.getType())){
|
||||
staffEntity = getDepartmentStaff(map,4);
|
||||
}else if(FlowApprovalRoleTypeEnums.FOUR_SUPPER.getType().equals(flowApprovalRole.getType())){
|
||||
staffEntity = getDepartmentStaff(map,5);
|
||||
} else if (FlowApprovalRoleTypeEnums.ONE_SUPPER.getType().equals(flowApprovalRole.getType())) {
|
||||
staffEntity = getDepartmentStaff(resultRecord.getStaffId(), 1);
|
||||
} else if (FlowApprovalRoleTypeEnums.TWO_SUPPER.getType().equals(flowApprovalRole.getType())) {
|
||||
staffEntity = getDepartmentStaff(resultRecord.getStaffId(), 2);
|
||||
} else if (FlowApprovalRoleTypeEnums.THREE_SUPPER.getType().equals(flowApprovalRole.getType())) {
|
||||
staffEntity = getDepartmentStaff(resultRecord.getStaffId(), 3);
|
||||
} else if (FlowApprovalRoleTypeEnums.FOUR_SUPPER.getType().equals(flowApprovalRole.getType())) {
|
||||
staffEntity = getDepartmentStaff(resultRecord.getStaffId(), 4);
|
||||
} else if (FlowApprovalRoleTypeEnums.FOUR_SUPPER.getType().equals(flowApprovalRole.getType())) {
|
||||
staffEntity = getDepartmentStaff(resultRecord.getStaffId(), 5);
|
||||
}
|
||||
flowRecord.setApprovalStaffName(staffEntity.getName());
|
||||
flowRecord.setApprovalStaffId(staffEntity.getId());
|
||||
flowRecord.setFlowName(getFlow(flows,flowApprovalRole.getFlowId()).getOptDesc());
|
||||
flowRecord.setFlowName(getFlow(flows, flowApprovalRole.getFlowId()).getOptDesc());
|
||||
flowRecord.setRecordStaffId(resultRecord.getStaffId());
|
||||
flowRecord.setFlowId(flowApprovalRole.getFlowId());
|
||||
String staffRole = StaffRoles.getStaffRole(staffEntity.getId(), StringUtil.strToLongs(flowApprovalRole.getRoleId()));
|
||||
if(i == 0 ){
|
||||
if (i == 0) {
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus());
|
||||
resultRecord.setFlowStaffIdRole(staffRole);
|
||||
FlowChart flowChart = flowService.selectFlowChartByChartId(flowRecord.getFlowId());
|
||||
resultRecord.setFlowProcess(flowChart.getFlowProcess());
|
||||
}else{
|
||||
} else {
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.UN_TO_STATUS.getStatus());
|
||||
}
|
||||
flowRecord.setFlowStaffIdRole(staffRole);
|
||||
flowRecord.setFlowIndex(flowApprovalRole.getStepIndex());
|
||||
flowRecord.setType(flowApprovalRole.getStepType()); //步骤类型0:依次,1:或签(同时通知,一人通过或拒绝即可),2会签(同时通知,所有人同意才可)
|
||||
i ++;
|
||||
i++;
|
||||
flowRecords.add(flowRecord);
|
||||
}
|
||||
flowRecordService.insertFlowRecords(flowRecords);
|
||||
@ -813,8 +813,17 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
}
|
||||
|
||||
@Override
|
||||
//1 提交审批,审批通过,2 撤回,3 催办,5 驳回,6 申述,7 流程终止
|
||||
public R newApproval(ApprovalDto approvalDto) {
|
||||
////1 提交审批,审批通过,2 撤回,3 催办,4 跳过,5 驳回,6 申述,7 流程终止,8 转交
|
||||
public R newApproval(ApprovalDto approvalDto) throws Exception{
|
||||
if(approvalDto.getResultRecordId() == null){
|
||||
throw new RRException("resultRecordId 不能为空");
|
||||
}
|
||||
if(approvalDto.getStatus() == null ){
|
||||
throw new RRException("status 不能为空");
|
||||
}
|
||||
if(StringUtil.isBlank(approvalDto.getMenuName())){
|
||||
throw new RRException("menuName 不能为空");
|
||||
}
|
||||
switch (approvalDto.getStatus()) {
|
||||
case 1: //1 提交审批,审批通过
|
||||
return newSubmit(approvalDto);
|
||||
@ -822,16 +831,28 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
return reSubmit(approvalDto);
|
||||
case 3: //3 催办
|
||||
return urge(approvalDto);
|
||||
case 5: //4 驳回
|
||||
case 5: //5 驳回
|
||||
return newReject(approvalDto);
|
||||
case 6: //6 申述
|
||||
return explain(approvalDto);
|
||||
case 8: //6 转交
|
||||
if (approvalDto.getTransferStaffId() == null) {
|
||||
throw new RRException("transferStaffId 不能为空");
|
||||
}
|
||||
if(approvalDto.getCurrentStaffId() == null){
|
||||
throw new RRException("currentStaffId 不能为空");
|
||||
}
|
||||
return transfer(approvalDto);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private R transfer(ApprovalDto approvalDto) {
|
||||
return null;
|
||||
}
|
||||
|
||||
private R reSubmit(ApprovalDto approvalDto) {
|
||||
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(), 1);
|
||||
if(flowRecords!=null && flowRecords.size()>0){
|
||||
@ -840,72 +861,128 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
return newReject(approvalDto);
|
||||
}
|
||||
|
||||
|
||||
public void comment (ApprovalDto approvalDto,FlowChart flowChart){
|
||||
ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId());
|
||||
StaffEntity staffEntity = staffService.selectStaffById(resultRecord.getCurrentApprovalStaffId());
|
||||
ResultComment resultComment = new ResultComment();
|
||||
resultComment.setComment(approvalDto.getComment());
|
||||
resultComment.setStaffName(staffEntity.getName());
|
||||
resultComment.setRecordId(approvalDto.getResultRecordId());
|
||||
resultComment.setOptDesc(approvalDto.getMenuName() + flowChart.getName());
|
||||
resultCommentService.insertResultComment(resultComment);
|
||||
StaffEntity staffEntity = staffService.selectStaffById(approvalDto.getLoginUserId());
|
||||
if(staffEntity !=null ){
|
||||
ResultComment resultComment = new ResultComment();
|
||||
resultComment.setComment(approvalDto.getComment());
|
||||
resultComment.setStaffName(staffEntity.getName());
|
||||
resultComment.setRecordId(approvalDto.getResultRecordId());
|
||||
resultComment.setOptDesc(approvalDto.getMenuName() + flowChart.getName());
|
||||
resultCommentService.insertResultComment(resultComment);
|
||||
}
|
||||
}
|
||||
|
||||
private R newSubmit(ApprovalDto approvalDto) {
|
||||
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordId(approvalDto.getResultRecordId());
|
||||
ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId());
|
||||
FlowRecord currentFlowRecord = null;
|
||||
for(FlowRecord flowRecord: flowRecords){
|
||||
if(flowRecord.getStatus().equals(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus())){
|
||||
log.info("flowRecordId:" + flowRecord.getId() + "更新为流程己走");
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());
|
||||
flowRecordService.updateFlowRecordById(flowRecord);
|
||||
} else if (flowRecord.getStatus().equals(FlowRecordStatusEnums.SKIP_STATUS.getStatus())){
|
||||
continue;
|
||||
} else if (flowRecord.getStatus().equals(FlowRecordStatusEnums.UN_TO_STATUS.getStatus())){
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus());
|
||||
log.info("flowRecordId:" + flowRecord.getId() + "更新为正在执行");
|
||||
currentFlowRecord = flowRecord;
|
||||
flowRecordService.updateFlowRecordById(flowRecord);
|
||||
break;
|
||||
if(approvalDto.getLoginUserId() == null){
|
||||
approvalDto.setLoginUserId(resultRecord.getCurrentApprovalStaffId());
|
||||
}
|
||||
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(),2);
|
||||
if(CollectionUtils.isEmpty(flowRecords)){
|
||||
log.info("流程己经结束");
|
||||
return R.ok("流程己经结束");
|
||||
}
|
||||
FlowRecord preFlowRecord = flowRecords.get(0);
|
||||
int stepType = preFlowRecord.getType();
|
||||
if (flowRecords != null && flowRecords.size() > 0) {
|
||||
if (stepType == 0 || stepType == 1) { //表示只要一个人通过就可以了
|
||||
for (FlowRecord flowRecord : flowRecords) {
|
||||
if (flowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId())) {
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());//当前审批己经完成
|
||||
} else {
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.OTHER_APPROVAL.getStatus()); //其他审批
|
||||
}
|
||||
flowRecordService.updateFlowRecordById(flowRecord);
|
||||
}
|
||||
} else {
|
||||
boolean flag = false;
|
||||
FlowRecord currentFlowRecord = null;
|
||||
for (FlowRecord flowRecord : flowRecords) {
|
||||
if (!flowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId())
|
||||
&& flowRecord.getStatus().equals(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus())) {
|
||||
flag = true;
|
||||
} else {
|
||||
currentFlowRecord = flowRecord;//当前流程 id
|
||||
}
|
||||
}
|
||||
currentFlowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());//当前审批己经完成
|
||||
flowRecordService.updateFlowRecordById(currentFlowRecord);
|
||||
if (flag) { //流程未向下走
|
||||
return R.ok("审批成功");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
preFlowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());//流程己走
|
||||
flowRecordService.updateFlowRecordById(preFlowRecord);
|
||||
FlowChart flowChart = flowService.selectFlowChartByChartId(preFlowRecord.getFlowId());
|
||||
comment(approvalDto, flowChart);
|
||||
}
|
||||
|
||||
List<FlowRecord> nextFlowRecords = flowRecordService.selectFlowRecordByRecordIdStatusFlowIndex(approvalDto.getResultRecordId(),0,preFlowRecord.getFlowIndex() + 1 );
|
||||
if(CollectionUtils.isEmpty(nextFlowRecords)){
|
||||
log.info("流程己经结束2");
|
||||
return R.ok("流程己经结束");
|
||||
}
|
||||
FlowRecord currentFlowRecord = nextFlowRecords.get(0);
|
||||
|
||||
for (FlowRecord flowRecord : nextFlowRecords) {
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus());
|
||||
flowRecordService.updateFlowRecordById(flowRecord);
|
||||
}
|
||||
FlowChart flowChart = flowService.selectFlowChartByChartId(currentFlowRecord.getFlowId());
|
||||
|
||||
resultRecord.setFlowProcess(flowChart.getFlowProcess());
|
||||
resultRecord.setFlowStaffIdRole(currentFlowRecord.getFlowStaffIdRole());
|
||||
resultRecord.setCurrentApprovalStaffId(currentFlowRecord.getApprovalStaffId());
|
||||
resultRecord.setCurrentApprovalStaffName(currentFlowRecord.getApprovalStaffName());
|
||||
resultRecordService.updateResultRecordById(resultRecord);
|
||||
comment(approvalDto,flowChart);
|
||||
resultRecord.setFlowStaffIdRole(nextFlowRecords.size() == 1 ? currentFlowRecord.getFlowStaffIdRole() : null);
|
||||
resultRecord.setCurrentApprovalStaffId(nextFlowRecords.size() == 1 ? currentFlowRecord.getApprovalStaffId() : null);
|
||||
resultRecord.setCurrentApprovalStaffName(nextFlowRecords.size() == 1 ? currentFlowRecord.getApprovalStaffName() : null);
|
||||
resultRecordService.updateCoverResultRecordById(resultRecord);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
private R newReject(ApprovalDto approvalDto) {
|
||||
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(),2);
|
||||
if(flowRecords !=null && flowRecords.size() > 0 ){
|
||||
FlowRecord currentFlowRecord = flowRecords.get(0);
|
||||
for(FlowRecord flowRecord : flowRecords){
|
||||
flowRecord.setStatus(0);
|
||||
List<FlowRecord> currentflowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(),FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus());
|
||||
if(currentflowRecords !=null && currentflowRecords.size() > 0 ){
|
||||
FlowRecord currentFlowRecord = currentflowRecords.get(0);
|
||||
// 更新当前数据
|
||||
// 获取当前审批结点组
|
||||
List<FlowRecord> currentFlowRecords = flowRecordService.selectFlowRecordByRecordIdFlowIndex(approvalDto.getResultRecordId(), currentFlowRecord.getFlowIndex());
|
||||
for(FlowRecord flowRecord : currentFlowRecords){
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.UN_TO_STATUS.getStatus());
|
||||
flowRecordService.updateFlowRecordById(flowRecord);
|
||||
}
|
||||
FlowRecord currentApprovalFlowRecord = currentFlowRecords.get(0);
|
||||
FlowChart currentflowChart = flowService.selectFlowChartByChartId(currentApprovalFlowRecord.getFlowId());
|
||||
comment(approvalDto, currentflowChart); //评论
|
||||
|
||||
FlowRecord lastFlowRecord = flowRecordService.selectFlowRecordByRecordIdAndFlowId(approvalDto.getResultRecordId(),currentFlowRecord.getId());
|
||||
lastFlowRecord.setStatus(2);
|
||||
flowRecordService.updateFlowRecordById(lastFlowRecord);
|
||||
// 恢复之前数据
|
||||
// 获取之前审批过的结点
|
||||
FlowRecord preFlowRecord = flowRecordService.selectPreFlowRecordByRecordIdMaxIdStatus(approvalDto.getResultRecordId(),
|
||||
currentFlowRecord.getId(),FlowRecordStatusEnums.FINISHED_STATUS.getStatus());
|
||||
if(preFlowRecord != null) {
|
||||
// 获取之前审批结点组
|
||||
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdFlowIndex(approvalDto.getResultRecordId(), preFlowRecord.getFlowIndex());
|
||||
for (FlowRecord flowRecord : flowRecords) {
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus());
|
||||
flowRecordService.updateFlowRecordById(flowRecord);
|
||||
}
|
||||
|
||||
ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId());
|
||||
resultRecord.setCurrentApprovalStaffId(lastFlowRecord.getApprovalStaffId());
|
||||
resultRecord.setCurrentApprovalStaffName(lastFlowRecord.getApprovalStaffName());
|
||||
resultRecord.setFlowStaffIdRole(lastFlowRecord.getFlowStaffIdRole());
|
||||
FlowChart flowChart = flowService.selectFlowChartByChartId(lastFlowRecord.getFlowId());
|
||||
resultRecord.setFlowProcess(flowChart.getFlowProcess());
|
||||
resultRecordService.updateResultRecordById(resultRecord);
|
||||
comment(approvalDto,flowChart);
|
||||
FlowRecord lastFlowRecord = flowRecords.get(0);
|
||||
ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId());
|
||||
resultRecord.setCurrentApprovalStaffId(flowRecords.size() == 1 ? lastFlowRecord.getApprovalStaffId():null);
|
||||
resultRecord.setCurrentApprovalStaffName(flowRecords.size() == 1 ?lastFlowRecord.getApprovalStaffName():null);
|
||||
resultRecord.setFlowStaffIdRole(flowRecords.size() == 1 ?lastFlowRecord.getFlowStaffIdRole():null);
|
||||
|
||||
FlowChart flowChart = flowService.selectFlowChartByChartId(lastFlowRecord.getFlowId());
|
||||
resultRecord.setFlowProcess(flowChart.getFlowProcess());
|
||||
resultRecordService.updateCoverResultRecordById(resultRecord);
|
||||
}
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
private R urge(ApprovalDto approvalDto) {
|
||||
ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId());
|
||||
if(!resultRecord.getCurrentApprovalStaffId().equals(approvalDto.getLoginUserId())){
|
||||
@ -922,21 +999,11 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public StaffEntity getDepartmentStaff(Map<String, String> map, int level) {
|
||||
for (int i = 1; i < 6; i++) {
|
||||
String deparment = map.get("dd" + i );
|
||||
if (StringUtil.isNotBlank(deparment)) {
|
||||
DepartmentsStaffRelateEntity departmentsStaffRelateEntity = departmentsStaffRelateService.selectDepartmentByDepartmentId(deparment);
|
||||
if (departmentsStaffRelateEntity != null) {
|
||||
StaffEntity staffEntity = staffService.selectStaffById(departmentsStaffRelateEntity.getStaffId());
|
||||
if (level == i) {
|
||||
return staffEntity;
|
||||
}
|
||||
}
|
||||
}
|
||||
public StaffEntity getDepartmentStaff(Long staffId, int level) {
|
||||
DepartManagers departManagers = staffService.findLeader( staffId, level);
|
||||
List<StaffEntity> staffEntities = departManagers.getManagers();
|
||||
if(CollectionUtils.isNotEmpty(staffEntities)){
|
||||
return staffEntities.get(0);
|
||||
}
|
||||
return new StaffEntity();
|
||||
|
||||
|
||||
@ -106,5 +106,13 @@
|
||||
select * from lz_flow_chart where process_id=#{id} and is_delete = 0 order by step_index asc
|
||||
</select>
|
||||
|
||||
<select id="selectFlowChartsByGroupId" resultType="com.lz.modules.flow.entity.FlowChart" >
|
||||
select * from lz_flow_chart where process_id=(
|
||||
select chart.process_id from lz_flow_chart as chart
|
||||
left JOIN lz_flow_chart_detail_record as record on record.chart_id=chart.id
|
||||
where record.evaluation_group_id=#{groupId} and record.is_delete=0 and chart.is_delete=0 limit 1
|
||||
) and is_delete=0 order by step_index asc
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
|
||||
@ -266,10 +266,25 @@
|
||||
<select id="selectFlowRecordByRecordIdStatus" resultType="com.lz.modules.flow.entity.FlowRecord">
|
||||
select * from lz_flow_record where is_delete = 0 and record_id = #{resultRecordId} and status = #{status}
|
||||
</select>
|
||||
|
||||
<select id="selectFlowRecordByRecordIdAndFlowId" resultType="com.lz.modules.flow.entity.FlowRecord">
|
||||
select * from lz_flow_record where is_delete = 0 and record_id = #{resultRecordId} and #{flowId} > id order by id desc limit 1
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectFlowRecordByRecordIdStatusFlowIndex" resultType="com.lz.modules.flow.entity.FlowRecord">
|
||||
select * from lz_flow_record where is_delete = 0 and record_id = #{resultRecordId} and status = #{status} and flow_index = #{flowIndex}
|
||||
</select>
|
||||
|
||||
<select id="selectPreFlowRecordByRecordIdMaxIdStatus" resultType="com.lz.modules.flow.entity.FlowRecord">
|
||||
select * from lz_flow_record where is_delete = 0 and record_id = #{resultRecordId} and #{id} > id and status = #{status} order by id desc limit 1
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectFlowRecordByRecordIdFlowIndex" resultType="com.lz.modules.flow.entity.FlowRecord">
|
||||
select * from lz_flow_record where is_delete = 0 and record_id = #{resultRecordId} and flow_index = #{flowIndex}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user