解决冲突
This commit is contained in:
commit
c8c492e9ad
@ -4,7 +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.RecordDetailDto;
|
||||
import com.lz.modules.app.dto.StaffDepartmentDto;
|
||||
import com.lz.modules.app.entity.DepartmentsStaffRelateEntity;
|
||||
import com.lz.modules.app.entity.StaffEntity;
|
||||
@ -16,9 +16,7 @@ import com.lz.modules.app.service.DepartmentsStaffRelateService;
|
||||
import com.lz.modules.app.service.StaffService;
|
||||
import com.lz.modules.flow.entity.*;
|
||||
import com.lz.modules.flow.model.Auth;
|
||||
import com.lz.modules.flow.model.FlowModel;
|
||||
import com.lz.modules.flow.model.ResultRecordDetailDto;
|
||||
import com.lz.modules.flow.model.ResultRecordDto;
|
||||
import com.lz.modules.flow.req.ResultDetailReq;
|
||||
import com.lz.modules.flow.service.*;
|
||||
import com.lz.modules.sys.controller.AbstractController;
|
||||
@ -674,28 +672,30 @@ public class ResultRecordController extends AbstractController {
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
// http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825
|
||||
// http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825&comment=xxx&menuName=bbb
|
||||
@RequestMapping("/new/approval")
|
||||
public R approval(ApprovalDto approvalDto) {
|
||||
try {
|
||||
approvalDto.setLoginUserId(approvalDto.getLoginUserId());
|
||||
if (getUser() != null) {
|
||||
approvalDto.setLoginUserId(getUserId());
|
||||
}
|
||||
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) {
|
||||
// http://localhost:8080/lz_management/user/lzresultrecord/new/resultRecordDetail?resultRecordId=215
|
||||
@RequestMapping("/new/resultRecordDetail")
|
||||
public R newResultRecordList(RecordDetailDto recordDetailDto) {
|
||||
if(recordDetailDto.getLoginUserId() ==null && getUser() !=null ){
|
||||
recordDetailDto.setLoginUserId(getUserId());
|
||||
}
|
||||
return resultRecordService.newResultRecordList(recordDetailDto);
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ package com.lz.modules.app.dto;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RecordListDto {
|
||||
public class RecordDetailDto {
|
||||
private Long loginUserId;
|
||||
private Long resultRecordId;
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
package com.lz.modules.app.resp;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FlowDetailResp {
|
||||
private Long currentStaffId;
|
||||
private String staffName;
|
||||
}
|
||||
18
src/main/java/com/lz/modules/app/resp/FlowRecordResp.java
Normal file
18
src/main/java/com/lz/modules/app/resp/FlowRecordResp.java
Normal file
@ -0,0 +1,18 @@
|
||||
package com.lz.modules.app.resp;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class FlowRecordResp {
|
||||
|
||||
private String flowName;
|
||||
|
||||
private String staffName;
|
||||
|
||||
private int status;
|
||||
|
||||
private List<FlowDetailResp> flowDetailRespList;
|
||||
|
||||
}
|
||||
@ -71,4 +71,8 @@ public interface FlowRecordMapper extends BaseMapper<FlowRecord> {
|
||||
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);
|
||||
|
||||
List<FlowRecord> selectFlowRecordByResultRecordId(@Param("resultRecordId") Long resultRecordId);
|
||||
|
||||
FlowRecord selectFlowRecordByRecordIdMinIdStatus(@Param("resultRecordId") Long resultRecordId, @Param("id") Long id, @Param("status") int status);
|
||||
}
|
||||
@ -70,4 +70,8 @@ public interface FlowRecordService extends IService<FlowRecord> {
|
||||
FlowRecord selectPreFlowRecordByRecordIdMaxIdStatus(Long resultRecordId, Long id, int status);
|
||||
|
||||
List<FlowRecord> selectFlowRecordByRecordIdFlowIndex(Long resultRecordId, Integer flowIndex);
|
||||
|
||||
List<FlowRecord> selectFlowRecordByResultRecordId(Long resultRecordId);
|
||||
|
||||
FlowRecord selectFlowRecordByRecordIdMinIdStatus(Long resultRecordId, Long id, int i);
|
||||
}
|
||||
@ -189,5 +189,16 @@ public class FlowRecordServiceImpl extends ServiceImpl<FlowRecordMapper, FlowRec
|
||||
return flowRecordMapper.selectFlowRecordByRecordIdFlowIndex(resultRecordId,flowIndex);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FlowRecord> selectFlowRecordByResultRecordId(Long resultRecordId) {
|
||||
|
||||
return flowRecordMapper.selectFlowRecordByResultRecordId(resultRecordId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FlowRecord selectFlowRecordByRecordIdMinIdStatus(Long resultRecordId, Long id, int status) {
|
||||
return flowRecordMapper.selectFlowRecordByRecordIdMinIdStatus(resultRecordId,id,status);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ public class AssessManagerServiceImpl implements AssessManagerService {
|
||||
}
|
||||
int i = resultRecordMapper.countStartAndGroupNum(flowStart.getId());
|
||||
ResultRecord resultRecord = resultRecordMapper.selectOneByStartId(flowStart.getId());
|
||||
res.setJoinNum(resultRecord == null? StringUtil.EMPTY : resultRecord.getStaffName() + i + "人");
|
||||
res.setJoinNum(resultRecord == null? StringUtil.EMPTY : resultRecord.getStaffName() + i + "等人");
|
||||
data.add(res);
|
||||
});
|
||||
PageUtils pages = new PageUtils();
|
||||
|
||||
@ -5,6 +5,7 @@ import com.lz.common.emun.WorkMsgTypeEnum;
|
||||
import com.lz.common.utils.R;
|
||||
import com.lz.modules.app.dto.ApprovalDto;
|
||||
import com.lz.modules.app.dto.GraphicsStatisticalDto;
|
||||
import com.lz.modules.app.dto.RecordDetailDto;
|
||||
import com.lz.modules.app.entity.DepartmentsEntity;
|
||||
import com.lz.modules.app.entity.DepartmentsStaffRelateEntity;
|
||||
import com.lz.modules.app.entity.StaffEntity;
|
||||
@ -111,4 +112,6 @@ public interface ResultRecordService extends IService<ResultRecord> {
|
||||
R initFlowRecord(Long resultRecordId);
|
||||
|
||||
R newApproval(ApprovalDto approvalDto) throws Exception;
|
||||
|
||||
R newResultRecordList(RecordDetailDto recordDetailDto);
|
||||
}
|
||||
@ -11,12 +11,15 @@ import com.lz.modules.app.dao.DepartmentsStaffRelateDao;
|
||||
import com.lz.modules.app.dto.ApprovalDto;
|
||||
import com.lz.modules.app.dto.EmployeesDto;
|
||||
import com.lz.modules.app.dto.GraphicsStatisticalDto;
|
||||
import com.lz.modules.app.dto.RecordDetailDto;
|
||||
import com.lz.modules.app.entity.DepartmentsEntity;
|
||||
import com.lz.modules.app.entity.DepartmentsStaffRelateEntity;
|
||||
import com.lz.modules.app.entity.StaffEntity;
|
||||
import com.lz.modules.app.enums.FlowApprovalRoleTypeEnums;
|
||||
import com.lz.modules.app.enums.FlowRecordStatusEnums;
|
||||
import com.lz.modules.app.req.ResultRecordReq;
|
||||
import com.lz.modules.app.resp.FlowDetailResp;
|
||||
import com.lz.modules.app.resp.FlowRecordResp;
|
||||
import com.lz.modules.app.resp.OwnResultResp;
|
||||
import com.lz.modules.app.resp.ResultRecordResp;
|
||||
import com.lz.modules.app.service.DepartmentsService;
|
||||
@ -824,6 +827,15 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
if(StringUtil.isBlank(approvalDto.getMenuName())){
|
||||
throw new RRException("menuName 不能为空");
|
||||
}
|
||||
|
||||
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(),2);
|
||||
if(CollectionUtils.isNotEmpty(flowRecords)){
|
||||
FlowRecord preFlowRecord = flowRecords.get(0);
|
||||
// 评论内容
|
||||
FlowChart flowChart = flowService.selectFlowChartByChartId(preFlowRecord.getFlowId());
|
||||
comment(approvalDto, flowChart);
|
||||
}
|
||||
|
||||
switch (approvalDto.getStatus()) {
|
||||
case 1: //1 提交审批,审批通过
|
||||
return newSubmit(approvalDto);
|
||||
@ -849,6 +861,88 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R newResultRecordList(RecordDetailDto recordDetailDto) {
|
||||
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByResultRecordId(recordDetailDto.getResultRecordId());
|
||||
List<FlowRecordResp> flowRecordList = new ArrayList<>();
|
||||
int flowIndex = -1;
|
||||
for (FlowRecord flowRecord : flowRecords) {
|
||||
if (flowRecord.getFlowIndex().equals(flowIndex)) { //表示有重复数据
|
||||
FlowRecordResp lastResp = flowRecordList.get(flowRecordList.size() - 1);
|
||||
List<FlowRecord> mulFlowRecord = flowRecordService.selectFlowRecordByRecordIdFlowIndex(recordDetailDto.getResultRecordId(), flowIndex);
|
||||
FlowRecord fisrt = mulFlowRecord.get(0);
|
||||
int stepIndex = fisrt.getType();
|
||||
boolean flag0 = false;
|
||||
boolean flag1 = false;
|
||||
boolean flag2 = false;
|
||||
boolean flag4 = false;
|
||||
List<FlowDetailResp> flowDetailRespList = lastResp.getFlowDetailRespList();
|
||||
mySetFlowDetailRespList(flowDetailRespList, flowRecord);
|
||||
for (FlowRecord mul : mulFlowRecord) {
|
||||
if (mul.getStatus().equals(FlowRecordStatusEnums.UN_TO_STATUS.getStatus())) {
|
||||
flag0 = true;
|
||||
} else if (mul.getStatus().equals(FlowRecordStatusEnums.FINISHED_STATUS.getStatus())) {
|
||||
flag1 = true;
|
||||
} else if (mul.getStatus().equals(FlowRecordStatusEnums.CURRENT_FLOW_STATUS.getStatus())) {
|
||||
flag2 = true;
|
||||
} else if (mul.getStatus().equals(FlowRecordStatusEnums.SKIP_STATUS.getStatus())) {
|
||||
flag4 = true;
|
||||
}
|
||||
if(mul.getApprovalStaffId().equals(recordDetailDto.getLoginUserId())){
|
||||
lastResp.setStaffName(mul.getApprovalStaffName());
|
||||
}
|
||||
}
|
||||
if (stepIndex == 0 || stepIndex == 1) { // 依次
|
||||
if(flag0){
|
||||
lastResp.setStatus(0);
|
||||
}else if(flag1){
|
||||
lastResp.setStatus(1);
|
||||
}else if(flag2){
|
||||
lastResp.setStatus(1);
|
||||
}else if (flag4){
|
||||
lastResp.setStatus(4);
|
||||
}
|
||||
} else { //所有
|
||||
if(flag0){ //只要有 0 表示当前节点所有的为0
|
||||
lastResp.setStatus(0);
|
||||
}else if(flag2){ // 只要有 2 表示所有的结点停留在当前
|
||||
lastResp.setStatus(1);
|
||||
}else if(flag1){
|
||||
lastResp.setStatus(1); // 当前步骤中只存在1和4 ,那么当前结点肯定通过了
|
||||
}else if (flag4){
|
||||
lastResp.setStatus(4); // 当前步骤中所有的结点都跳过了
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
FlowRecordResp resp = new FlowRecordResp();
|
||||
resp.setFlowName(flowRecord.getFlowName());
|
||||
resp.setStaffName(flowRecord.getApprovalStaffName());
|
||||
resp.setStatus(flowRecord.getStatus());
|
||||
|
||||
List<FlowDetailResp> flowDetailRespList = new ArrayList<>();
|
||||
mySetFlowDetailRespList(flowDetailRespList,flowRecord);
|
||||
|
||||
resp.setFlowDetailRespList(flowDetailRespList);
|
||||
flowRecordList.add(resp);
|
||||
flowIndex = flowRecord.getFlowIndex();
|
||||
}
|
||||
FlowRecordResp end = new FlowRecordResp();
|
||||
end.setFlowName("线束");
|
||||
flowRecordList.add(end);
|
||||
List<ResultComment> resultCommentList = resultCommentService.selectByRecordId(recordDetailDto.getResultRecordId());
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("flowRecordList", flowRecordList);
|
||||
map.put("resultCommentList", resultCommentList);
|
||||
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());
|
||||
flowDetailRespList.add(flowDetailResp);
|
||||
}
|
||||
private R transfer(ApprovalDto approvalDto) {
|
||||
return null;
|
||||
}
|
||||
@ -861,15 +955,15 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
return newReject(approvalDto);
|
||||
}
|
||||
|
||||
|
||||
public void comment (ApprovalDto approvalDto,FlowChart flowChart){
|
||||
public void comment(ApprovalDto approvalDto, FlowChart flowChart) {
|
||||
StaffEntity staffEntity = staffService.selectStaffById(approvalDto.getLoginUserId());
|
||||
if(staffEntity !=null ){
|
||||
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());
|
||||
resultComment.setOptDesc(approvalDto.getMenuName() + flowChart.getName());
|
||||
resultCommentService.insertResultComment(resultComment);
|
||||
}
|
||||
}
|
||||
@ -916,24 +1010,21 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
} 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)){
|
||||
// 找到当前下一个节点为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 flowChart = flowService.selectFlowChartByChartId(currentFlowRecord.getFlowId());
|
||||
|
||||
resultRecord.setFlowProcess(flowChart.getFlowProcess());
|
||||
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);
|
||||
@ -953,10 +1044,6 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
||||
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 preFlowRecord = flowRecordService.selectPreFlowRecordByRecordIdMaxIdStatus(approvalDto.getResultRecordId(),
|
||||
|
||||
@ -284,6 +284,13 @@
|
||||
<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>
|
||||
<select id="selectFlowRecordByResultRecordId" resultType="com.lz.modules.flow.entity.FlowRecord">
|
||||
select * from lz_flow_record where is_delete = 0 and record_id = #{resultRecordId}
|
||||
</select>
|
||||
|
||||
<select id="selectFlowRecordByRecordIdMinIdStatus" 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 asc limit 1
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user