feat: (REQ-3300) 更换状态+日志
This commit is contained in:
parent
2dcd43d43b
commit
1d9faea3d4
@ -16,10 +16,12 @@ public enum VisaStatusEnum {
|
||||
|
||||
TO_REPORT("to_report", "待提报"),
|
||||
DECIDING("deciding", "决策中"),
|
||||
EXECUTING( "executing","执行中"),
|
||||
APPROVING( "approving","审批中"),
|
||||
COMPLETED( "completed","已完成"),
|
||||
FORBIDED( "forbided","已废除"),
|
||||
EXECUTING("executing","执行中"),
|
||||
APPROVING("approving","审批中"),
|
||||
COMPLETED("completed","已完成"),
|
||||
FORBIDED("forbided","已废除"),
|
||||
REPORT_FROM_APPROVE( "report_from_approve","审批到待提报"),
|
||||
DECIDING_FROM_APPROVE( "deciding_from_approve","审批到决策中"),
|
||||
;
|
||||
|
||||
private final String code;
|
||||
|
||||
@ -4,6 +4,7 @@ import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
@ -19,6 +20,7 @@ import lombok.experimental.Accessors;
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName(value = "visa_change_record_log", autoResultMap = true)
|
||||
public class ChangeRecordLog extends BaseEntity<ChangeRecordLog> {
|
||||
|
||||
|
||||
@ -1,9 +1,17 @@
|
||||
package cn.axzo.visa.server.service;
|
||||
|
||||
import cn.axzo.visa.server.domain.ChangeRecordLog;
|
||||
|
||||
/**
|
||||
* @author xudawei
|
||||
* @date 2025/01/15
|
||||
* @desc 变更签证记录操作日志
|
||||
*/
|
||||
public interface ChangeRecordLogService {
|
||||
|
||||
/**
|
||||
* 增加操作日志
|
||||
*/
|
||||
void addLog(ChangeRecordLog log);
|
||||
|
||||
}
|
||||
|
||||
@ -18,5 +18,11 @@ import org.springframework.stereotype.Service;
|
||||
@RequiredArgsConstructor
|
||||
public class ChangeRecordLogServiceImpl extends ServiceImpl<ChangeRecordLogDao, ChangeRecordLog> implements ChangeRecordLogService {
|
||||
|
||||
|
||||
/**
|
||||
* 增加操作日志
|
||||
*/
|
||||
@Override
|
||||
public void addLog(ChangeRecordLog log) {
|
||||
this.saveOrUpdate(log);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,15 +1,20 @@
|
||||
package cn.axzo.visa.server.service.impl;
|
||||
|
||||
import cn.axzo.framework.domain.ServiceException;
|
||||
import cn.axzo.visa.api.enums.VisaStatusEnum;
|
||||
import cn.axzo.visa.server.domain.ChangeRecord;
|
||||
import cn.axzo.visa.server.domain.ChangeRecordLog;
|
||||
import cn.axzo.visa.server.mapper.ChangeRecordDao;
|
||||
import cn.axzo.visa.server.service.ChangeRecordLogService;
|
||||
import cn.axzo.visa.server.service.ChangeRecordService;
|
||||
import com.alibaba.excel.util.StringUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
@ -19,27 +24,61 @@ import java.util.Objects;
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, ChangeRecord> implements ChangeRecordService {
|
||||
|
||||
@Resource
|
||||
private ChangeRecordLogService changeRecordLogService;
|
||||
|
||||
public Boolean changeStatus(String changeRecordNo, VisaStatusEnum updateStatus) {
|
||||
if (StringUtils.isBlank(changeRecordNo) || Objects.isNull(updateStatus)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
switch (updateStatus) {
|
||||
case DECIDING:
|
||||
boolean update = this.lambdaUpdate().eq(ChangeRecord::getNo, changeRecordNo)
|
||||
.eq(ChangeRecord::getIsDelete, 0)
|
||||
.in(ChangeRecord::getStatus, this.preStatusListByUpdateStatus(updateStatus))
|
||||
.set(ChangeRecord::getStatus, updateStatus)
|
||||
.update();
|
||||
if (!update) {
|
||||
throw new ServiceException("更新状态失败");
|
||||
}
|
||||
// return this.lambdaUpdate().eq(ChangeRecord::getNo, changeRecordNo)
|
||||
// .eq(ChangeRecord::getIsDelete, 0)
|
||||
// .in(ChangeRecord::getStatus,)
|
||||
// .set(ChangeRecord::getStatus, updateStatus)
|
||||
// .update();
|
||||
ChangeRecordLog log = ChangeRecordLog.builder().build();
|
||||
changeRecordLogService.addLog(log);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新前置状态
|
||||
*/
|
||||
private List<VisaStatusEnum> preStatusListByUpdateStatus(VisaStatusEnum updateStatus) {
|
||||
List<VisaStatusEnum> preStatusList;
|
||||
switch (updateStatus) {
|
||||
case REPORT_FROM_APPROVE:
|
||||
preStatusList = Lists.newArrayList(VisaStatusEnum.APPROVING);
|
||||
break;
|
||||
case DECIDING_FROM_APPROVE:
|
||||
preStatusList = Lists.newArrayList(VisaStatusEnum.TO_REPORT, VisaStatusEnum.REPORT_FROM_APPROVE, VisaStatusEnum.APPROVING);
|
||||
break;
|
||||
case DECIDING:
|
||||
preStatusList = Lists.newArrayList(VisaStatusEnum.TO_REPORT, VisaStatusEnum.REPORT_FROM_APPROVE,VisaStatusEnum.APPROVING);
|
||||
break;
|
||||
case EXECUTING:
|
||||
preStatusList = Lists.newArrayList(VisaStatusEnum.DECIDING);
|
||||
break;
|
||||
case APPROVING:
|
||||
preStatusList = Lists.newArrayList(VisaStatusEnum.TO_REPORT, VisaStatusEnum.REPORT_FROM_APPROVE, VisaStatusEnum.DECIDING, VisaStatusEnum.DECIDING_FROM_APPROVE,VisaStatusEnum.EXECUTING);
|
||||
break;
|
||||
case COMPLETED:
|
||||
preStatusList = Lists.newArrayList(VisaStatusEnum.APPROVING);
|
||||
break;
|
||||
case FORBIDED:
|
||||
preStatusList = Lists.newArrayList(VisaStatusEnum.TO_REPORT, VisaStatusEnum.REPORT_FROM_APPROVE, VisaStatusEnum.DECIDING, VisaStatusEnum.DECIDING_FROM_APPROVE,VisaStatusEnum.EXECUTING,VisaStatusEnum.APPROVING);
|
||||
break;
|
||||
default:
|
||||
throw new ServiceException("更新状态不匹配");
|
||||
}
|
||||
return preStatusList;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user