提交修改
This commit is contained in:
parent
162c01b73b
commit
0836ce27be
@ -6,4 +6,5 @@ import lombok.Data;
|
|||||||
public class FlowDetailResp {
|
public class FlowDetailResp {
|
||||||
private Long currentStaffId;
|
private Long currentStaffId;
|
||||||
private String staffName;
|
private String staffName;
|
||||||
|
private Long flowRecordId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -838,11 +838,16 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
|||||||
|
|
||||||
switch (approvalDto.getStatus()) {
|
switch (approvalDto.getStatus()) {
|
||||||
case 1: //1 提交审批,审批通过
|
case 1: //1 提交审批,审批通过
|
||||||
return newSubmit(approvalDto);
|
return newSubmit(approvalDto,null);
|
||||||
case 2: //2 撤回
|
case 2: //2 撤回
|
||||||
return reSubmit(approvalDto);
|
return reSubmit(approvalDto);
|
||||||
case 3: //3 催办
|
case 3: //3 催办
|
||||||
return urge(approvalDto);
|
return urge(approvalDto);
|
||||||
|
case 4: //4 跳过
|
||||||
|
if(approvalDto.getCurrentStaffId() == null){
|
||||||
|
throw new RRException("currentStaffId 不能为空");
|
||||||
|
}
|
||||||
|
return skip(approvalDto);
|
||||||
case 5: //5 驳回
|
case 5: //5 驳回
|
||||||
return newReject(approvalDto);
|
return newReject(approvalDto);
|
||||||
case 6: //6 申述
|
case 6: //6 申述
|
||||||
@ -861,89 +866,13 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private R skip(ApprovalDto approvalDto) {
|
||||||
public R newResultRecordList(RecordDetailDto recordDetailDto) {
|
approvalDto.setLoginUserId(approvalDto.getCurrentStaffId());
|
||||||
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByResultRecordId(recordDetailDto.getResultRecordId());
|
return newSubmit(approvalDto,FlowRecordStatusEnums.SKIP_STATUS.getStatus());
|
||||||
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) {
|
private R transfer(ApprovalDto approvalDto) {
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -968,7 +897,7 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private R newSubmit(ApprovalDto approvalDto) {
|
private R newSubmit(ApprovalDto approvalDto,Integer finishedStatus) {
|
||||||
ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId());
|
ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId());
|
||||||
if(approvalDto.getLoginUserId() == null){
|
if(approvalDto.getLoginUserId() == null){
|
||||||
approvalDto.setLoginUserId(resultRecord.getCurrentApprovalStaffId());
|
approvalDto.setLoginUserId(resultRecord.getCurrentApprovalStaffId());
|
||||||
@ -978,13 +907,16 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
|||||||
log.info("流程己经结束");
|
log.info("流程己经结束");
|
||||||
return R.ok("流程己经结束");
|
return R.ok("流程己经结束");
|
||||||
}
|
}
|
||||||
|
if(finishedStatus == null){
|
||||||
|
finishedStatus = FlowRecordStatusEnums.FINISHED_STATUS.getStatus();
|
||||||
|
}
|
||||||
FlowRecord preFlowRecord = flowRecords.get(0);
|
FlowRecord preFlowRecord = flowRecords.get(0);
|
||||||
int stepType = preFlowRecord.getType();
|
int stepType = preFlowRecord.getType();
|
||||||
if (flowRecords != null && flowRecords.size() > 0) {
|
if (flowRecords != null && flowRecords.size() > 0) {
|
||||||
if (stepType == 0 || stepType == 1) { //表示只要一个人通过就可以了
|
if (stepType == 0 || stepType == 1) { //表示只要一个人通过就可以了
|
||||||
for (FlowRecord flowRecord : flowRecords) {
|
for (FlowRecord flowRecord : flowRecords) {
|
||||||
if (flowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId())) {
|
if (flowRecord.getApprovalStaffId().equals(approvalDto.getLoginUserId())) {
|
||||||
flowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());//当前审批己经完成
|
flowRecord.setStatus(finishedStatus);//当前审批己经完成
|
||||||
} else {
|
} else {
|
||||||
flowRecord.setStatus(FlowRecordStatusEnums.OTHER_APPROVAL.getStatus()); //其他审批
|
flowRecord.setStatus(FlowRecordStatusEnums.OTHER_APPROVAL.getStatus()); //其他审批
|
||||||
}
|
}
|
||||||
@ -1001,14 +933,14 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
|||||||
currentFlowRecord = flowRecord;//当前流程 id
|
currentFlowRecord = flowRecord;//当前流程 id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
currentFlowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());//当前审批己经完成
|
currentFlowRecord.setStatus(finishedStatus);//当前审批己经完成
|
||||||
flowRecordService.updateFlowRecordById(currentFlowRecord);
|
flowRecordService.updateFlowRecordById(currentFlowRecord);
|
||||||
if (flag) { //流程未向下走
|
if (flag) { //流程未向下走
|
||||||
return R.ok("审批成功");
|
return R.ok("恭喜您,审批成功");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
preFlowRecord.setStatus(FlowRecordStatusEnums.FINISHED_STATUS.getStatus());//流程己走
|
preFlowRecord.setStatus(finishedStatus);//流程己走
|
||||||
flowRecordService.updateFlowRecordById(preFlowRecord);
|
flowRecordService.updateFlowRecordById(preFlowRecord);
|
||||||
}
|
}
|
||||||
// 找到当前下一个节点为0的 flowIndex
|
// 找到当前下一个节点为0的 flowIndex
|
||||||
@ -1086,6 +1018,92 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
|
|||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@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());
|
||||||
|
flowDetailResp.setFlowRecordId(flowRecord.getId());
|
||||||
|
flowDetailRespList.add(flowDetailResp);
|
||||||
|
}
|
||||||
|
|
||||||
public StaffEntity getDepartmentStaff(Long staffId, int level) {
|
public StaffEntity getDepartmentStaff(Long staffId, int level) {
|
||||||
DepartManagers departManagers = staffService.findLeader( staffId, level);
|
DepartManagers departManagers = staffService.findLeader( staffId, level);
|
||||||
List<StaffEntity> staffEntities = departManagers.getManagers();
|
List<StaffEntity> staffEntities = departManagers.getManagers();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user