diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java new file mode 100644 index 00000000..e8d318b3 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java @@ -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; +} \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/mapper/ProcessDraftMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/mapper/ProcessDraftMapper.java new file mode 100644 index 00000000..d0e8bb8a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/mapper/ProcessDraftMapper.java @@ -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 { + +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/mapper/xml/ProcessDraftMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/mapper/xml/ProcessDraftMapper.xml new file mode 100644 index 00000000..0c0bfd63 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/mapper/xml/ProcessDraftMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + id,create_by,create_time, + update_by,update_time,org_code, + draft_id,business_id + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index af66efdf..674a1233 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -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; + } } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ProcessDraftService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ProcessDraftService.java new file mode 100644 index 00000000..ec9cca7a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ProcessDraftService.java @@ -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 { + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/impl/ProcessDraftServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/impl/ProcessDraftServiceImpl.java new file mode 100644 index 00000000..8bae2678 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/impl/ProcessDraftServiceImpl.java @@ -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 + implements ProcessDraftService { + +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java index 63d8d5d8..b6da6493 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -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 implements ProcessEsInitChangeService, IActFlowCustomService { + @Resource + private ProcessDraftService processDraftService; + @Resource private ActFlowCommonService actFlowCommonService; @@ -140,16 +148,28 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { - // TODO 检查任务是否存在 // 检查任务是否存在 + if (!actFlowCommonService.taskExists(taskId)) { + throw new JeroBootException("任务不存在"); + } saveOrUpdateBatch(esInitChangeList); } @Override public void saveToDraft(List esInitChange) { - // TODO 保存到草稿 - saveOrUpdateBatch(esInitChange); + // 先删后增 + LambdaUpdateWrapper draftWrapper = new LambdaUpdateWrapper<>(); + draftWrapper.in(ProcessDraft::getBusinessId, esInitChange.stream().map(ProcessEsInitChange::getId).collect(Collectors.toList())); + processDraftService.remove(draftWrapper); + List 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); } }