Browse Source

feat: 添加审批回退

master_tdsql
hxh 9 months ago
parent
commit
b284e6e16c
  1. 3
      shuili-system/src/main/java/com/kms/yxgh/common/ApprovalStatusEnum.java
  2. 6
      shuili-system/src/main/java/com/kms/yxgh/common/controller/ApprovalAbstractController.java
  3. 8
      shuili-system/src/main/java/com/kms/yxgh/common/service/ApprovalBusinessService.java
  4. 75
      shuili-system/src/main/java/com/kms/yxgh/common/service/ApprovalService.java
  5. 12
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java
  6. 13
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java
  7. 14
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhPlanService.java
  8. 12
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhRecordService.java

3
shuili-system/src/main/java/com/kms/yxgh/common/ApprovalStatusEnum.java

@ -8,7 +8,8 @@ public enum ApprovalStatusEnum {
SUBMITTING("提交中", "0"),
WAITING("待审批", "1"),
PASS("审批通过", "2"),
REJECT("审批驳回", "3");
REJECT("审批驳回", "3"),
CANCEL("已撤回", "4");
private final String name;

6
shuili-system/src/main/java/com/kms/yxgh/common/controller/ApprovalAbstractController.java

@ -49,6 +49,12 @@ public abstract class ApprovalAbstractController<S, T> {
}
}
@PostMapping("/approval/return/{formId}")
@ApiOperation("退回")
public void returnApproval(@PathVariable("formId") String formId, @RequestBody ApprovalDetailDto<T> dto) {
approvalService.returnApproval(formId, getApprovalType(), dto);
}
@PostMapping("/approval/{formId}")
@ApiOperation("提交审批")
public void submit(@PathVariable("formId") String formId) {

8
shuili-system/src/main/java/com/kms/yxgh/common/service/ApprovalBusinessService.java

@ -35,5 +35,11 @@ public interface ApprovalBusinessService<S, V> {
*/
void updateApprovalStatus(String formId, ApprovalStatusEnum status);
/**
* 获取表单状态
*
* @param formId 表单id
* @return 表单状态
*/
String formStatus(String formId);
}

75
shuili-system/src/main/java/com/kms/yxgh/common/service/ApprovalService.java

@ -36,6 +36,12 @@ public class ApprovalService {
public void submit(String formId, ApprovalTypeEnum approvalType) {
ApprovalBusinessService service = approvalType.getService();
if (service != null) {
String status = service.formStatus(formId);
if (!ApprovalStatusEnum.SUBMITTING.getValue().equals(status)) {
throw new RuntimeException("不能重复提交审批");
}
service.updateApprovalStatus(formId, ApprovalStatusEnum.WAITING);
ApprovalTask approvalTask = new ApprovalTask();
approvalTask.setFormId(formId);
approvalTask.setBusinessType(approvalType.getValue());
@ -55,23 +61,25 @@ public class ApprovalService {
approvalOperatorService.saveBatch(approvalOperators);
}
}
service.updateApprovalStatus(formId, ApprovalStatusEnum.WAITING);
}
}
@Transactional(rollbackFor = Exception.class)
public <T> void rejected(String id, ApprovalTypeEnum approvalType, ApprovalDetailDto<T> dto) {
ApprovalTask approvalTask = approvalTaskService.getById(id);
if (approvalTask != null) {
approvalTask.setStatus(ApprovalStatusEnum.REJECT.getValue());
approvalTask.setComment(dto.getComment());
approvalTask.setDoc(JSON.toJSONString(dto.getDoc()));
approvalTask.setOperator(getOperatorDto());
approvalTask.setApprovalTime(new Date());
approvalTaskService.updateById(approvalTask);
ApprovalBusinessService service = approvalType.getService();
if (service != null) {
ApprovalBusinessService service = approvalType.getService();
if (service != null) {
String status = service.formStatus(id);
if (!ApprovalStatusEnum.WAITING.getValue().equals(status)) {
throw new RuntimeException("不能重复审批");
}
ApprovalTask approvalTask = approvalTaskService.getById(id);
if (approvalTask != null) {
approvalTask.setStatus(ApprovalStatusEnum.REJECT.getValue());
approvalTask.setComment(dto.getComment());
approvalTask.setDoc(JSON.toJSONString(dto.getDoc()));
approvalTask.setOperator(getOperatorDto());
approvalTask.setApprovalTime(new Date());
approvalTaskService.updateById(approvalTask);
service.updateApprovalStatus(approvalTask.getFormId(), ApprovalStatusEnum.REJECT);
}
}
@ -79,16 +87,20 @@ public class ApprovalService {
@Transactional(rollbackFor = Exception.class)
public <T> void passed(String id, ApprovalTypeEnum approvalType, ApprovalDetailDto<T> dto) {
ApprovalTask approvalTask = approvalTaskService.getById(id);
if (approvalTask != null) {
approvalTask.setStatus(ApprovalStatusEnum.PASS.getValue());
approvalTask.setComment(dto.getComment());
approvalTask.setDoc(JSON.toJSONString(dto.getDoc()));
approvalTask.setOperator(getOperatorDto());
approvalTask.setApprovalTime(new Date());
approvalTaskService.updateById(approvalTask);
ApprovalBusinessService service = approvalType.getService();
if (service != null) {
ApprovalBusinessService service = approvalType.getService();
if (service != null) {
String status = service.formStatus(id);
if (!ApprovalStatusEnum.WAITING.getValue().equals(status)) {
throw new RuntimeException("不能重复审批");
}
ApprovalTask approvalTask = approvalTaskService.getById(id);
if (approvalTask != null) {
approvalTask.setStatus(ApprovalStatusEnum.PASS.getValue());
approvalTask.setComment(dto.getComment());
approvalTask.setDoc(JSON.toJSONString(dto.getDoc()));
approvalTask.setOperator(getOperatorDto());
approvalTask.setApprovalTime(new Date());
approvalTaskService.updateById(approvalTask);
service.updateApprovalStatus(approvalTask.getFormId(), ApprovalStatusEnum.PASS);
}
}
@ -126,4 +138,23 @@ public class ApprovalService {
.collect(Collectors.toList());
return Response.ok(commentDtoList);
}
@Transactional(rollbackFor = Exception.class)
public <T> void returnApproval(String formId, ApprovalTypeEnum approvalType, ApprovalDetailDto<T> dto) {
ApprovalBusinessService service = approvalType.getService();
if (service != null) {
String status = service.formStatus(formId);
if (!ApprovalStatusEnum.WAITING.getValue().equals(status)) {
throw new RuntimeException("不能回退审批");
}
approvalTaskService.update(Wrappers.<ApprovalTask>lambdaUpdate()
.eq(ApprovalTask::getFormId, formId)
.eq(ApprovalTask::getBusinessType, approvalType.getValue())
.eq(ApprovalTask::getStatus, ApprovalStatusEnum.WAITING.getValue())
.set(ApprovalTask::getStatus, ApprovalStatusEnum.CANCEL.getValue())
.set(ApprovalTask::getApprovalTime, new Date())
);
service.updateApprovalStatus(formId, ApprovalStatusEnum.SUBMITTING);
}
}
}

12
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java

@ -143,5 +143,17 @@ public class DfYhPlanService extends BaseService<DfYhPlanMapper, DfYhPlan> imple
getBaseMapper().update(null, wp);
}
@Override
public String formStatus(String formId) {
Wrapper<DfYhPlan> wp = Wrappers.<DfYhPlan>lambdaQuery()
.eq(DfYhPlan::getId, formId)
.select(DfYhPlan::getStatus);
DfYhPlan dfPlan = this.getBaseMapper().selectOne(wp);
if (dfPlan != null) {
return dfPlan.getStatus();
}
return "";
}
}

13
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java

@ -12,7 +12,6 @@ import com.kms.yxgh.common.ApprovalStatusEnum;
import com.kms.yxgh.common.dto.*;
import com.kms.yxgh.common.service.ApprovalBusinessService;
import com.kms.yxgh.df.domain.DfYhRecord;
import com.kms.yxgh.df.dto.DfYhPlanSearchDto;
import com.kms.yxgh.df.dto.DfYhRecordApprovalDto;
import com.kms.yxgh.df.dto.DfYhRecordDetailDto;
import com.kms.yxgh.df.dto.DfYhRecordSearchDto;
@ -150,5 +149,17 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord>
getBaseMapper().update(null, wp);
}
@Override
public String formStatus(String formId) {
Wrapper<DfYhRecord> wp = Wrappers.<DfYhRecord>lambdaQuery()
.eq(DfYhRecord::getId, formId)
.select(DfYhRecord::getStatus);
DfYhRecord record = this.getBaseMapper().selectOne(wp);
if (record != null) {
return record.getStatus();
}
return "";
}
}

14
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhPlanService.java

@ -6,14 +6,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.system.service.SysUserService;
import com.kms.yg.sz.domain.BsSgcSzSafeJbxx;
import com.kms.yg.sz.service.BsSgcSzSafeJbxxService;
import com.kms.yxgh.base.DfException;
import com.kms.yxgh.base.SzException;
import com.kms.yxgh.common.ApprovalStatusEnum;
import com.kms.yxgh.common.dto.*;
import com.kms.yxgh.common.service.ApprovalBusinessService;
import com.kms.yxgh.df.domain.DfYhPlan;
import com.kms.yxgh.sz.domain.SzYhPlan;
import com.kms.yxgh.sz.dto.SzYhPlanDetailDto;
import com.kms.yxgh.sz.dto.SzYhPlanSearchDto;
@ -144,4 +142,16 @@ public class SzYhPlanService extends BaseService<SzYhPlanMapper, SzYhPlan> imple
.set(SzYhPlan::getStatus, status.getValue());
getBaseMapper().update(null, wp);
}
@Override
public String formStatus(String formId) {
Wrapper<SzYhPlan> wp = Wrappers.<SzYhPlan>lambdaQuery()
.eq(SzYhPlan::getId, formId)
.select(SzYhPlan::getStatus);
SzYhPlan szYhPlan = getBaseMapper().selectOne(wp);
if (szYhPlan != null) {
return szYhPlan.getStatus();
}
return "";
}
}

12
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhRecordService.java

@ -149,5 +149,17 @@ public class SzYhRecordService extends BaseService<SzYhRecordMapper, SzYhRecord>
getBaseMapper().update(null, wp);
}
@Override
public String formStatus(String formId) {
Wrapper<SzYhRecord> wp = Wrappers.<SzYhRecord>lambdaQuery()
.eq(SzYhRecord::getId, formId)
.select(SzYhRecord::getStatus);
List<SzYhRecord> list = this.getBaseMapper().selectList(wp);
if (list != null && !list.isEmpty()) {
return list.get(0).getStatus();
}
return "";
}
}

Loading…
Cancel
Save