feat: 完善保存接口逻辑

This commit is contained in:
2023-10-12 11:06:21 +08:00
parent e1e270c643
commit 0b5dad2efb
7 changed files with 169 additions and 3 deletions
@@ -0,0 +1,61 @@
package com.jero.modules.activiti.process.common.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName process_draft
*/
@TableName(value ="process_draft")
@Data
public class ProcessDraft implements Serializable {
/**
* 主键ID
*/
@TableId
private String id;
/**
* 创建人ID
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改人ID
*/
private String updateBy;
/**
* 修改时间
*/
private Date updateTime;
/**
* 部门code
*/
private String orgCode;
/**
* 草稿Id
*/
private String draftId;
/**
* 实体类Id
*/
private String businessId;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
@@ -0,0 +1,18 @@
package com.jero.modules.activiti.process.common.mapper;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author ThinkBook
* @description 针对表【process_draft】的数据库操作Mapper
* @createDate 2023-10-12 10:45:38
* @Entity com.jero.modules.activiti.process.common.entity.ProcessDraft
*/
public interface ProcessDraftMapper extends BaseMapper<ProcessDraft> {
}
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.activiti.process.common.mapper.ProcessDraftMapper">
<resultMap id="BaseResultMap" type="com.jero.modules.activiti.process.common.entity.ProcessDraft">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
<result property="draftId" column="draft_id" jdbcType="VARCHAR"/>
<result property="businessId" column="business_id" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,create_by,create_time,
update_by,update_time,org_code,
draft_id,business_id
</sql>
</mapper>
@@ -175,4 +175,13 @@ public class ActFlowCommonService {
String userId = UserUtils.getUserId();
return this.taskInfoList(userId, centerQueryVO, pageNo, pageSize);
}
/**
* 判断任务是否存在
* @param taskId
* @return
*/
public boolean taskExists(String taskId) {
return taskService.createTaskQuery().taskId(taskId).singleResult() != null;
}
}
@@ -0,0 +1,13 @@
package com.jero.modules.activiti.process.common.service;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author ThinkBook
* @description 针对表【process_draft】的数据库操作Service
* @createDate 2023-10-12 10:45:38
*/
public interface ProcessDraftService extends IService<ProcessDraft> {
}
@@ -0,0 +1,22 @@
package com.jero.modules.activiti.process.common.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.common.mapper.ProcessDraftMapper;
import org.springframework.stereotype.Service;
/**
* @author ThinkBook
* @description 针对表【process_draft】的数据库操作Service实现
* @createDate 2023-10-12 10:45:38
*/
@Service
public class ProcessDraftServiceImpl extends ServiceImpl<ProcessDraftMapper, ProcessDraft>
implements ProcessDraftService {
}
@@ -1,9 +1,13 @@
package com.jero.modules.activiti.process.esInitChange.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.common.service.IActFlowCustomService;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService;
import com.jero.modules.activiti.process.esInitChange.mapper.ProcessEsInitChangeMapper;
@@ -17,6 +21,7 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author ThinkBook
@@ -29,6 +34,9 @@ import java.util.*;
public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitChangeMapper, ProcessEsInitChange>
implements ProcessEsInitChangeService, IActFlowCustomService {
@Resource
private ProcessDraftService processDraftService;
@Resource
private ActFlowCommonService actFlowCommonService;
@@ -140,16 +148,28 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
@Override
public void saveToWait(String taskId, List<ProcessEsInitChange> esInitChangeList) {
// TODO 检查任务是否存在
// 检查任务是否存在
if (!actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("任务不存在");
}
saveOrUpdateBatch(esInitChangeList);
}
@Override
public void saveToDraft(List<ProcessEsInitChange> esInitChange) {
// TODO 保存到草稿
saveOrUpdateBatch(esInitChange);
// 先删后增
LambdaUpdateWrapper<ProcessDraft> draftWrapper = new LambdaUpdateWrapper<>();
draftWrapper.in(ProcessDraft::getBusinessId, esInitChange.stream().map(ProcessEsInitChange::getId).collect(Collectors.toList()));
processDraftService.remove(draftWrapper);
List<ProcessDraft> draftList = new ArrayList<>();
for (ProcessEsInitChange esInitChangeItem : esInitChange) {
ProcessDraft draft = new ProcessDraft();
draft.setDraftId(UUID.randomUUID().toString());
draft.setBusinessId(esInitChangeItem.getId());
draftList.add(draft);
}
processDraftService.saveBatch(draftList);
}
}