|
@@ -23,6 +23,7 @@ import com.aizuda.bpm.engine.entity.FlwProcess;
|
|
|
import com.aizuda.bpm.engine.model.*;
|
|
|
import com.aizuda.bpm.mybatisplus.mapper.FlwProcessMapper;
|
|
|
import com.aizuda.common.toolkit.DateUtils;
|
|
|
+import com.aizuda.common.toolkit.JacksonUtils;
|
|
|
import com.aizuda.core.api.ApiAssert;
|
|
|
import com.aizuda.service.web.UserSession;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -53,6 +54,7 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
|
|
|
private IFlwProcessConfigureService flwProcessConfigureService;
|
|
|
private IFlwProcessActorService flwProcessActorService;
|
|
|
private IFlwProcessFormService flwProcessFormService;
|
|
|
+ private IFlwFormTemplateService flwFormTemplateService;
|
|
|
private FlowlongMapper flowlongMapper;
|
|
|
private FlowLongEngine flowLongEngine;
|
|
|
|
|
@@ -192,20 +194,32 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
|
|
|
|
|
|
@Override
|
|
|
public FlwProcessDTO getDtoById(Long id) {
|
|
|
- FlwProcess flwProcess = this.checkById(id);
|
|
|
+ return getFlwProcessDTO(this.checkById(id));
|
|
|
+ }
|
|
|
+
|
|
|
+ public FlwProcessDTO getFlwProcessDTO(FlwProcess flwProcess) {
|
|
|
+ ApiAssert.isEmpty(flwProcess, "未发现指定流程模型");
|
|
|
FlwProcessDTO dto = FlwProcessDTO.of(flwProcess);
|
|
|
// 流程权限
|
|
|
- List<FlwProcessPermission> flwProcessPermissions = flwProcessPermissionService.getByProcessId(id);
|
|
|
+ List<FlwProcessPermission> flwProcessPermissions = flwProcessPermissionService.getByProcessId(flwProcess.getId());
|
|
|
if (CollectionUtils.isNotEmpty(flwProcessPermissions)) {
|
|
|
dto.setProcessPermissionList(flwProcessPermissions.stream().map(FlwProcessPermissionDTO::of).toList());
|
|
|
}
|
|
|
// 流程配置
|
|
|
- FlwProcessConfigure configure = flwProcessConfigureService.getByProcessId(id);
|
|
|
+ FlwProcessConfigure configure = flwProcessConfigureService.getByProcessId(flwProcess.getId());
|
|
|
if (null != configure) {
|
|
|
dto.setCategoryId(configure.getCategoryId());
|
|
|
dto.setProcessSetting(configure.getProcessSetting());
|
|
|
if (Objects.equals(flwProcess.getProcessType(), "business")) {
|
|
|
dto.setBusinessForm(configure.getProcessForm());
|
|
|
+ // 加载表单模板内容
|
|
|
+ Map<String, Object> formMap = JacksonUtils.readMap(configure.getProcessForm());
|
|
|
+ if (null != formMap) {
|
|
|
+ String formId = (String) formMap.get("formId");
|
|
|
+ if (null != formId) {
|
|
|
+ dto.setFormTemplate(flwFormTemplateService.getById(Long.valueOf(formId)));
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
dto.setProcessForm(configure.getProcessForm());
|
|
|
}
|
|
@@ -213,6 +227,12 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
|
|
|
return dto;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public FlwProcessDTO getDtoByKey(String key) {
|
|
|
+ return getFlwProcessDTO(baseMapper.selectOne(Wrappers.<FlwProcess>lambdaQuery()
|
|
|
+ .eq(FlwProcess::getProcessKey, key).last("LIMIT 1")));
|
|
|
+ }
|
|
|
+
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public Long saveDto(FlwProcessDTO dto) {
|