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
64efab57b9
@ -709,7 +709,9 @@ public class ResultRecordController extends AbstractController {
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
// http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825&comment=xxx&menuName=bbb
|
||||
// 审批:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825&comment=xxx&menuName=bbb
|
||||
// 跳过:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=4&menuName=bbb&flowRecordId=360
|
||||
// 转交:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=8&menuName=bbb&flowRecordId=360&transferStaffId=294
|
||||
@RequestMapping("/new/approval")
|
||||
public R approval(ApprovalDto approvalDto) {
|
||||
try {
|
||||
|
||||
@ -10,5 +10,5 @@ public class ApprovalDto {
|
||||
private String menuName; //按钮名称
|
||||
private String comment;
|
||||
private Long transferStaffId; // 转交员工 id
|
||||
private Long currentStaffId; //当前用户 id
|
||||
private Long flowRecordId;// 流程 id
|
||||
}
|
||||
|
||||
@ -6,4 +6,5 @@ import lombok.Data;
|
||||
public class FlowDetailResp {
|
||||
private Long currentStaffId;
|
||||
private String staffName;
|
||||
private Long flowRecordId;
|
||||
}
|
||||
|
||||
@ -40,4 +40,7 @@ public interface EvaluationGroupMapper extends BaseMapper<EvaluationGroup> {
|
||||
List<EvaluationGroup> selectEvaluationGroupByIds(@Param("ids") List<Long> ids);
|
||||
|
||||
EvaluationGroup selectEvaluationGroupByName(@Param("name") String name);
|
||||
|
||||
void deleteByIds(@Param("ids") List<Long> ids);
|
||||
|
||||
}
|
||||
@ -46,4 +46,6 @@ public interface EvaluationGroupService extends IService<EvaluationGroup> {
|
||||
EvaluationGroup selectEvaluationGroupByName(String name);
|
||||
//获取考核组里面所有参与的人员信息,去除重复,去除离职
|
||||
List<StaffSimpleInfo> selectAllStaffSimpleInfoByGroupId(EvaluationGroup evaluationGroup);
|
||||
|
||||
void deleteByIds(List<Long> ids);
|
||||
}
|
||||
@ -1,7 +1,9 @@
|
||||
package com.lz.modules.flow.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.lz.modules.app.dto.ApprovalDto;
|
||||
import com.lz.modules.flow.entity.FlowChange;
|
||||
import com.lz.modules.flow.entity.FlowRecord;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@ -30,4 +32,5 @@ public interface FlowChangeService extends IService<FlowChange> {
|
||||
int deleteFlowChangeById(Long id);
|
||||
|
||||
|
||||
void saveChange(ApprovalDto approvalDto, FlowRecord flowRecord, int i);
|
||||
}
|
||||
@ -213,4 +213,10 @@ public class EvaluationGroupServiceImpl extends ServiceImpl<EvaluationGroupMappe
|
||||
|
||||
return staffSimpleInfos;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void deleteByIds(List<Long> ids) {
|
||||
evaluationGroupMapper.deleteByIds(ids);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,13 @@
|
||||
package com.lz.modules.flow.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.lz.modules.app.dto.ApprovalDto;
|
||||
import com.lz.modules.flow.dao.FlowChangeMapper;
|
||||
import com.lz.modules.flow.entity.FlowChange;
|
||||
import com.lz.modules.flow.entity.FlowRecord;
|
||||
import com.lz.modules.flow.service.FlowChangeService;
|
||||
import com.lz.modules.sys.entity.app.ResultRecord;
|
||||
import com.lz.modules.sys.service.app.ResultRecordService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -24,6 +28,9 @@ public class FlowChangeServiceImpl extends ServiceImpl<FlowChangeMapper, FlowCha
|
||||
private FlowChangeMapper flowChangeMapper;
|
||||
|
||||
|
||||
@Autowired
|
||||
private ResultRecordService resultRecordService;
|
||||
|
||||
|
||||
@Override
|
||||
public FlowChange selectFlowChangeById(Long id){
|
||||
@ -58,6 +65,19 @@ public class FlowChangeServiceImpl extends ServiceImpl<FlowChangeMapper, FlowCha
|
||||
return flowChangeMapper.deleteFlowChangeById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveChange(ApprovalDto approvalDto, FlowRecord flowRecord, int type) {
|
||||
FlowChange flowChange = new FlowChange();
|
||||
flowChange.setApprovalId(flowRecord.getApprovalStaffId());
|
||||
flowChange.setToApprovalId(approvalDto.getTransferStaffId());
|
||||
flowChange.setOptId(approvalDto.getLoginUserId());
|
||||
flowChange.setFlowRecordId(approvalDto.getFlowRecordId());
|
||||
flowChange.setFlowRecordId(flowRecord.getRecordId());
|
||||
ResultRecord resultRecord = resultRecordService.selectResultRecordById(flowRecord.getRecordId());
|
||||
flowChange.setStaffId(resultRecord.getStaffId());
|
||||
flowChange.setType(type);
|
||||
flowChangeMapper.insertFlowChange(flowChange);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import com.lz.common.utils.PageUtils;
|
||||
import com.lz.common.utils.R;
|
||||
import com.lz.modules.flow.dao.FlowStartMapper;
|
||||
import com.lz.modules.flow.entity.FlowStart;
|
||||
import com.lz.modules.performance.req.AssessChangeReq;
|
||||
import com.lz.modules.performance.req.AssessListReq;
|
||||
import com.lz.modules.performance.req.AssessDetailReq;
|
||||
import com.lz.modules.performance.res.AssessManagerDetailRes;
|
||||
@ -75,6 +76,29 @@ public class AssessManagerController {
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("assess/manager/change")
|
||||
@ApiOperation("考核管理组管理变更")
|
||||
@ApiResponses({@ApiResponse(code = 200,message = "成功")})
|
||||
public R assessChange(@RequestBody AssessChangeReq req){
|
||||
if(req.getStartId()==null){
|
||||
return R.error("考核id不能为空");
|
||||
}
|
||||
if(req.getChangeType()==null){
|
||||
return R.error("变动类型无效");
|
||||
}
|
||||
FlowStart flowStart = flowStartMapper.selectFlowStartById(req.getStartId());
|
||||
if(flowStart == null){
|
||||
return R.error("暂无此考核组信息");
|
||||
}
|
||||
flowStart.getGroupIds();
|
||||
assessManagerService.assessChange(req);
|
||||
return R.ok();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@GetMapping("assess/manager/delete")
|
||||
@ApiOperation("删除考核任务")
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
package com.lz.modules.performance.req;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: djc
|
||||
* @Desc:
|
||||
* @Date: 2020/10/27 14:49
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("考核管理变动实体")
|
||||
public class AssessChangeReq {
|
||||
@ApiModelProperty(value = "考核id",name = "startId")
|
||||
private Long startId;
|
||||
|
||||
@ApiModelProperty(value = "变更类型 0 :添加 1:删除",name = "changeType")
|
||||
private Integer changeType;
|
||||
|
||||
@ApiModelProperty(value = "变动人员ids",name = "staffIds")
|
||||
private List<String> staffIds;
|
||||
|
||||
}
|
||||
@ -17,8 +17,8 @@ import java.util.List;
|
||||
@ApiModel("获取考核详情实体")
|
||||
public class AssessDetailReq extends BasePage{
|
||||
//考勤组id
|
||||
@ApiModelProperty(value = "考勤组ids",name = "evaluationIds")
|
||||
private List<Long> evaluationIds;
|
||||
@ApiModelProperty(value = "考勤组ids ,逗号隔开",name = "evaluationIds")
|
||||
private String evaluationIds;
|
||||
//发起考核的id
|
||||
@ApiModelProperty(value = "发起考核的id",name = "startId")
|
||||
private Long startId;
|
||||
@ -26,8 +26,8 @@ public class AssessDetailReq extends BasePage{
|
||||
@ApiModelProperty(value = "员工名称",name = "staffName")
|
||||
private String staffName;
|
||||
//人员id数组
|
||||
@ApiModelProperty(value = "人员id数组",name = "staffIds")
|
||||
private List<Long> staffIds;
|
||||
@ApiModelProperty(value = "人员ids,逗号隔开",name = "staffIds")
|
||||
private String staffIds;
|
||||
//状态 确认 执行 结果录入。。。
|
||||
@ApiModelProperty(value = "状态 确认 执行 结果录入。。。",name = "flowProcess")
|
||||
private Integer flowProcess;
|
||||
|
||||
@ -2,6 +2,7 @@ package com.lz.modules.performance.service;
|
||||
|
||||
import com.lz.common.utils.PageUtils;
|
||||
import com.lz.modules.flow.entity.FlowStart;
|
||||
import com.lz.modules.performance.req.AssessChangeReq;
|
||||
import com.lz.modules.performance.req.AssessDetailReq;
|
||||
import com.lz.modules.performance.req.AssessListReq;
|
||||
|
||||
@ -18,4 +19,6 @@ public interface AssessManagerService {
|
||||
PageUtils assessDetail(AssessDetailReq req);
|
||||
|
||||
void accessDelete(FlowStart flowStart);
|
||||
|
||||
void assessChange(AssessChangeReq req);
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import com.lz.modules.flow.entity.EvaluationGroup;
|
||||
import com.lz.modules.flow.entity.FlowStart;
|
||||
import com.lz.modules.flow.service.EvaluationGroupService;
|
||||
import com.lz.modules.flow.service.EvaluationStartStaffService;
|
||||
import com.lz.modules.performance.req.AssessChangeReq;
|
||||
import com.lz.modules.performance.req.AssessDetailReq;
|
||||
import com.lz.modules.performance.req.AssessListReq;
|
||||
import com.lz.modules.performance.res.AssessManagerDetailRes;
|
||||
@ -21,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -83,7 +85,28 @@ public class AssessManagerServiceImpl implements AssessManagerService {
|
||||
public void accessDelete(FlowStart flowStart) {
|
||||
flowStart.setIsDelete(1);
|
||||
flowStartMapper.updateFlowStartById(flowStart);
|
||||
String groupIds = flowStart.getGroupIds();
|
||||
if(StringUtil.isNotBlank(groupIds)){
|
||||
String[] split = groupIds.split(",");
|
||||
List<String> ids = Arrays.asList(split);
|
||||
List<Long> collect = ids.stream().map(s -> Long.valueOf(s)).collect(Collectors.toList());
|
||||
evaluationGroupService.deleteByIds(collect);
|
||||
}
|
||||
resultRecordMapper.batchDeleteByStartId(flowStart.getId());
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void assessChange(AssessChangeReq req) {
|
||||
|
||||
if(req.getChangeType() == 0){
|
||||
|
||||
|
||||
}
|
||||
if(req.getChangeType() == 1){
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.lz.common.utils.PageUtils;
|
||||
import com.lz.common.utils.StringUtil;
|
||||
import com.lz.modules.app.entity.DepartmentsEntity;
|
||||
import com.lz.modules.app.entity.DepartmentsStaffRelateEntity;
|
||||
import com.lz.modules.app.service.DepartmentsService;
|
||||
import com.lz.modules.app.service.DepartmentsStaffRelateService;
|
||||
import com.lz.modules.app.service.StaffService;
|
||||
import com.lz.modules.flow.dao.FlowStartMapper;
|
||||
@ -50,6 +52,8 @@ public class ChartResultServiceImpl implements ChartResultService {
|
||||
private FlowStartService flowStartService;
|
||||
@Autowired
|
||||
private FlowStartMapper flowStartMapper;
|
||||
@Autowired
|
||||
private DepartmentsService departmentsService;
|
||||
|
||||
|
||||
@Override
|
||||
@ -78,11 +82,18 @@ public class ChartResultServiceImpl implements ChartResultService {
|
||||
}
|
||||
data.add(res);
|
||||
|
||||
List<String> strings = evaluationGroupService.selectAllStaffIdsByGroupId(3L);
|
||||
List<ChartStatistical> depstaff = this.countDepartmentAndStaffNum(strings);
|
||||
FlowStart flowStart = flowStartMapper.selectFlowStartById(startId);
|
||||
String[] split = flowStart.getGroupIds().split(",");
|
||||
Set<String> staffIds = new HashSet<>();
|
||||
for(String s:split){
|
||||
List<String> strings = evaluationGroupService.selectAllStaffIdsByGroupId(Long.valueOf(s));
|
||||
staffIds.addAll(strings);
|
||||
}
|
||||
List<String> all = new ArrayList<>(staffIds);
|
||||
List<ChartStatistical> depstaff = this.countDepartmentAndStaffNum(all);
|
||||
res = new ChartStatisticalRes();
|
||||
res.setType(2);
|
||||
res.setStatisticals(depstaff);
|
||||
res.setStatisticals(buildDepStaffs(depstaff));
|
||||
res.setDefaultTime(defaultTime);
|
||||
if(StringUtil.isNotBlank(defaultTime)){
|
||||
res.setDefaultId(startId);
|
||||
@ -191,4 +202,15 @@ public class ChartResultServiceImpl implements ChartResultService {
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
private List<ChartStatistical> buildDepStaffs(List<ChartStatistical> depStaffs){
|
||||
depStaffs.stream().forEach(chartStatistical -> {
|
||||
String desc = chartStatistical.getDesc();
|
||||
DepartmentsEntity departmentsEntity = departmentsService.selectByDepartmentId(desc);
|
||||
if(departmentsEntity!=null && StringUtil.isNotBlank(departmentsEntity.getDepartmentName())){
|
||||
chartStatistical.setDesc(departmentsEntity.getDepartmentName());
|
||||
}
|
||||
});
|
||||
return depStaffs;
|
||||
}
|
||||
}
|
||||
|
||||
@ -130,6 +130,9 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
@Autowired
|
||||
private FlowChartService flowChartService;
|
||||
|
||||
@Autowired
|
||||
private FlowChangeService flowChangeService;
|
||||
|
||||
@Value("${dingtalk.appid}")
|
||||
private String appid;
|
||||
|
||||
@ -838,11 +841,16 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
|
||||
switch (approvalDto.getStatus()) {
|
||||
case 1: //1 提交审批,审批通过
|
||||
return newSubmit(approvalDto);
|
||||
return newSubmit(approvalDto,null);
|
||||
case 2: //2 撤回
|
||||
return reSubmit(approvalDto);
|
||||
case 3: //3 催办
|
||||
return urge(approvalDto);
|
||||
case 4: //4 跳过
|
||||
if(approvalDto.getFlowRecordId() == null){
|
||||
throw new RRException("currentStaffId 不能为空");
|
||||
}
|
||||
return skip(approvalDto);
|
||||
case 5: //5 驳回
|
||||
return newReject(approvalDto);
|
||||
case 6: //6 申述
|
||||
@ -851,7 +859,7 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
if (approvalDto.getTransferStaffId() == null) {
|
||||
throw new RRException("transferStaffId 不能为空");
|
||||
}
|
||||
if(approvalDto.getCurrentStaffId() == null){
|
||||
if(approvalDto.getFlowRecordId() == null){
|
||||
throw new RRException("currentStaffId 不能为空");
|
||||
}
|
||||
return transfer(approvalDto);
|
||||
@ -861,6 +869,180 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
return null;
|
||||
}
|
||||
|
||||
private R skip(ApprovalDto approvalDto) {
|
||||
FlowRecord flowRecord = flowRecordService.selectFlowRecordById(approvalDto.getFlowRecordId());
|
||||
if(flowRecord.getStatus().equals(FlowRecordStatusEnums.FINISHED_STATUS.getStatus())
|
||||
|| flowRecord.getStatus().equals(FlowRecordStatusEnums.OTHER_APPROVAL.getStatus())){
|
||||
return R.ok("流程己经走了,无法跳过 " );
|
||||
}
|
||||
|
||||
if(flowRecord.getStatus().equals(FlowRecordStatusEnums.UN_TO_STATUS.getStatus())){ // 如果当前没有审批
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.SKIP_STATUS.getStatus());
|
||||
flowRecordService.updateFlowRecordById(flowRecord);
|
||||
}else if (flowRecord.getStatus().equals(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus())){ //如果当前正在审批中
|
||||
approvalDto.setLoginUserId(flowRecord.getApprovalStaffId());
|
||||
newSubmit(approvalDto,FlowRecordStatusEnums.SKIP_STATUS.getStatus());
|
||||
}
|
||||
flowChangeService.saveChange(approvalDto, flowRecord, 0);
|
||||
return R.ok("恭喜您,跳过成功。");
|
||||
}
|
||||
|
||||
private R transfer(ApprovalDto approvalDto) {
|
||||
FlowRecord flowRecord = flowRecordService.selectFlowRecordById(approvalDto.getFlowRecordId());
|
||||
flowChangeService.saveChange(approvalDto, flowRecord, 1);
|
||||
StaffEntity staffEntity = staffService.selectStaffById(approvalDto.getTransferStaffId());
|
||||
flowRecord.setApprovalStaffId(staffEntity.getId());
|
||||
flowRecord.setApprovalStaffName(staffEntity.getName());
|
||||
flowRecordService.updateFlowRecordById(flowRecord);
|
||||
return R.ok("转交成功");
|
||||
}
|
||||
|
||||
|
||||
private R reSubmit(ApprovalDto approvalDto) {
|
||||
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(), 1);
|
||||
if(flowRecords!=null && flowRecords.size()>0){
|
||||
return R.error("领导己经审批,不能撤回");
|
||||
}
|
||||
return newReject(approvalDto);
|
||||
}
|
||||
|
||||
public void comment(ApprovalDto approvalDto, FlowChart flowChart) {
|
||||
StaffEntity staffEntity = staffService.selectStaffById(approvalDto.getLoginUserId());
|
||||
if (staffEntity != null) {
|
||||
ResultComment resultComment = new ResultComment();
|
||||
resultComment.setComment(approvalDto.getComment());
|
||||
resultComment.setStaffName(staffEntity.getName());
|
||||
resultComment.setStaffId(staffEntity.getId());
|
||||
resultComment.setRecordId(approvalDto.getResultRecordId());
|
||||
resultComment.setOptDesc(approvalDto.getMenuName() + flowChart.getName());
|
||||
resultCommentService.insertResultComment(resultComment);
|
||||
}
|
||||
}
|
||||
|
||||
private R newSubmit(ApprovalDto approvalDto,Integer finishedStatus) {
|
||||
ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId());
|
||||
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("流程己经结束");
|
||||
}
|
||||
if(finishedStatus == null){
|
||||
finishedStatus = FlowRecordStatusEnums.FINISHED_STATUS.getStatus();
|
||||
}
|
||||
FlowRecord preFlowRecord = flowRecords.get(0);
|
||||
int stepType = preFlowRecord.getType();
|
||||
if (flowRecords.size() > 1) {
|
||||
if (stepType == 0 || stepType == 1) { //表示只要一个人通过就可以了
|
||||
for (FlowRecord flowRecord : flowRecords) {
|
||||
if (flowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId())) {
|
||||
flowRecord.setStatus(finishedStatus);//当前审批己经完成
|
||||
} 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(finishedStatus);//当前审批己经完成
|
||||
flowRecordService.updateFlowRecordById(currentFlowRecord);
|
||||
if (flag) { //流程未向下走
|
||||
return R.ok("恭喜您,审批成功");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
preFlowRecord.setStatus(finishedStatus);//流程己走
|
||||
flowRecordService.updateFlowRecordById(preFlowRecord);
|
||||
}
|
||||
// 找到当前下一个节点为0的 flowIndex
|
||||
FlowRecord nextFlowRecord = flowRecordService.selectFlowRecordByRecordIdMinIdStatus(approvalDto.getResultRecordId(),preFlowRecord.getId(), 0);
|
||||
if(nextFlowRecord == null){
|
||||
log.info("流程己经结束2");
|
||||
return R.ok("流程己经结束");
|
||||
}
|
||||
List<FlowRecord> nextFlowRecords = flowRecordService.selectFlowRecordByRecordIdStatusFlowIndex(approvalDto.getResultRecordId(), 0, nextFlowRecord.getFlowIndex());
|
||||
if (CollectionUtils.isEmpty(nextFlowRecords)) {
|
||||
log.info("流程己经结束3");
|
||||
return R.ok("流程己经结束");
|
||||
}
|
||||
FlowRecord currentFlowRecord = nextFlowRecords.get(0);
|
||||
for (FlowRecord flowRecord : nextFlowRecords) {
|
||||
flowRecord.setStatus(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus());
|
||||
flowRecordService.updateFlowRecordById(flowRecord);
|
||||
}
|
||||
FlowChart currentFlowChart = flowService.selectFlowChartByChartId(currentFlowRecord.getFlowId());
|
||||
resultRecord.setFlowProcess(currentFlowChart.getFlowProcess());
|
||||
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> 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 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);
|
||||
}
|
||||
|
||||
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())){
|
||||
log.info("催办" + resultRecord.getCurrentApprovalStaffId());
|
||||
StaffEntity mySelf = staffService.selectStaffById(resultRecord.getStaffId());
|
||||
StaffEntity toSelf = staffService.selectStaffById(resultRecord.getCurrentApprovalStaffId());
|
||||
resultRecordService.sendWorkMSG(mySelf, toSelf, WorkMsgTypeEnum.URGING, 0L, 2);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
private R explain(ApprovalDto approvalDto) {
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@Override
|
||||
public R newResultRecordList(RecordDetailDto recordDetailDto) {
|
||||
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByResultRecordId(recordDetailDto.getResultRecordId());
|
||||
@ -937,154 +1119,14 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
return R.ok().put("data", map);
|
||||
}
|
||||
|
||||
|
||||
public void mySetFlowDetailRespList(List<FlowDetailResp> flowDetailRespList ,FlowRecord flowRecord){
|
||||
FlowDetailResp flowDetailResp = new FlowDetailResp();
|
||||
flowDetailResp.setCurrentStaffId(flowRecord.getApprovalStaffId());
|
||||
flowDetailResp.setStaffName(flowRecord.getApprovalStaffName());
|
||||
flowDetailResp.setFlowRecordId(flowRecord.getId());
|
||||
flowDetailRespList.add(flowDetailResp);
|
||||
}
|
||||
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){
|
||||
return R.error("领导己经审批,不能撤回");
|
||||
}
|
||||
return newReject(approvalDto);
|
||||
}
|
||||
|
||||
public void comment(ApprovalDto approvalDto, FlowChart flowChart) {
|
||||
StaffEntity staffEntity = staffService.selectStaffById(approvalDto.getLoginUserId());
|
||||
if (staffEntity != null) {
|
||||
ResultComment resultComment = new ResultComment();
|
||||
resultComment.setComment(approvalDto.getComment());
|
||||
resultComment.setStaffName(staffEntity.getName());
|
||||
resultComment.setStaffId(staffEntity.getId());
|
||||
resultComment.setRecordId(approvalDto.getResultRecordId());
|
||||
resultComment.setOptDesc(approvalDto.getMenuName() + flowChart.getName());
|
||||
resultCommentService.insertResultComment(resultComment);
|
||||
}
|
||||
}
|
||||
|
||||
private R newSubmit(ApprovalDto approvalDto) {
|
||||
ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId());
|
||||
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);
|
||||
}
|
||||
// 找到当前下一个节点为0的 flowIndex
|
||||
FlowRecord nextFlowRecord = flowRecordService.selectFlowRecordByRecordIdMinIdStatus(approvalDto.getResultRecordId(),preFlowRecord.getId(), 0);
|
||||
List<FlowRecord> nextFlowRecords = flowRecordService.selectFlowRecordByRecordIdStatusFlowIndex(approvalDto.getResultRecordId(), 0, nextFlowRecord.getFlowIndex());
|
||||
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 currentFlowChart = flowService.selectFlowChartByChartId(currentFlowRecord.getFlowId());
|
||||
resultRecord.setFlowProcess(currentFlowChart.getFlowProcess());
|
||||
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> 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 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);
|
||||
}
|
||||
|
||||
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())){
|
||||
log.info("催办" + resultRecord.getCurrentApprovalStaffId());
|
||||
StaffEntity mySelf = staffService.selectStaffById(resultRecord.getStaffId());
|
||||
StaffEntity toSelf = staffService.selectStaffById(resultRecord.getCurrentApprovalStaffId());
|
||||
resultRecordService.sendWorkMSG(mySelf, toSelf, WorkMsgTypeEnum.URGING, 0L, 2);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
private R explain(ApprovalDto approvalDto) {
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
public StaffEntity getDepartmentStaff(Long staffId, int level) {
|
||||
DepartManagers departManagers = staffService.findLeader( staffId, level);
|
||||
|
||||
@ -388,9 +388,9 @@
|
||||
ON r.start_id = s.start_id and r.staff_id = s.staff_id
|
||||
where r.is_delete = 0 and s.is_delete = 0
|
||||
and r.start_id = #{req.startId}
|
||||
<if test="req.evaluationIds !=null and req.evaluationIds.size()!=0">
|
||||
<if test="req.evaluationIds !=null and req.evaluationIds.size()!=''">
|
||||
and r.evaluation_id in(
|
||||
<foreach collection="req.evaluationIds" item="evaluation_id" separator=",">
|
||||
<foreach collection="req.evaluationIds.split(',')" item="evaluation_id" open="(" separator="," close=")">
|
||||
#{evaluation_id}
|
||||
</foreach>
|
||||
)
|
||||
@ -399,11 +399,11 @@
|
||||
and r.flow_process = #{req.flowProcess}
|
||||
</if>
|
||||
<if test="req.staffName !=null and req.staffName!=''">
|
||||
and r.staff_name = #{req.staffName}
|
||||
and r.staff_name LIKE CONCAT('%',#{req.staffName},'%')
|
||||
</if>
|
||||
<if test="req.staffIds !=null and req.staffIds.size() !=0">
|
||||
<if test="req.staffIds !=null and req.staffIds.size() !=''">
|
||||
and r.staff_id in(
|
||||
<foreach collection="req.staffIds" item="staff_id" separator=",">
|
||||
<foreach collection="req.staffIds.split(',')" item="staff_id" open="(" separator="," close=")">
|
||||
#{staff_id}
|
||||
</foreach>
|
||||
)
|
||||
@ -414,22 +414,22 @@
|
||||
SELECT count(flow_process) num,flow_process as 'desc' from lz_result_record
|
||||
where is_delete=0
|
||||
and start_id =#{req.startId}
|
||||
<if test="req.evaluationIds !=null and req.evaluationIds.size()!=0">
|
||||
and evaluation_id in(
|
||||
<foreach collection="req.evaluationIds" item="evaluation_id" separator=",">
|
||||
<if test="req.evaluationIds !=null and req.evaluationIds.size()!=''">
|
||||
and r.evaluation_id in(
|
||||
<foreach collection="req.evaluationIds.split(',')" item="evaluation_id" open="(" separator="," close=")">
|
||||
#{evaluation_id}
|
||||
</foreach>
|
||||
)
|
||||
</if>
|
||||
<if test="req.flowProcess !=null">
|
||||
and flow_process = #{req.flowProcess}
|
||||
and r.flow_process = #{req.flowProcess}
|
||||
</if>
|
||||
<if test="req.staffName !=null and req.staffName!=''">
|
||||
and staff_name = #{req.staffName}
|
||||
and r.staff_name LIKE CONCAT('%',#{req.staffName},'%')
|
||||
</if>
|
||||
<if test="req.staffIds !=null and req.staffIds.size() !=0">
|
||||
and staff_id in(
|
||||
<foreach collection="req.staffIds" item="staff_id" separator=",">
|
||||
<if test="req.staffIds !=null and req.staffIds.size() !=''">
|
||||
and r.staff_id in(
|
||||
<foreach collection="req.staffIds.split(',')" item="staff_id" open="(" separator="," close=")">
|
||||
#{staff_id}
|
||||
</foreach>
|
||||
)
|
||||
|
||||
@ -113,5 +113,13 @@
|
||||
select * from lz_evaluation_group where name=#{name} and is_delete = 0 limit 1
|
||||
</select>
|
||||
|
||||
<update id="deleteByIds">
|
||||
update lz_evaluation_group set is_delete = 1 where is_delete=0
|
||||
and id in (
|
||||
<foreach collection="ids" item="id" separator=",">
|
||||
#{id}
|
||||
</foreach>
|
||||
)
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user