update 调整字段错误,流程导入

This commit is contained in:
gssong 2024-08-23 23:47:50 +08:00
parent 3adf918067
commit c21e0db622
4 changed files with 41 additions and 10 deletions

View File

@ -140,14 +140,12 @@ public class FlwDefinitionController extends BaseController {
* 导入流程定义 * 导入流程定义
* *
* @param file 文件 * @param file 文件
* @throws Exception 异常
*/ */
@Log(title = "流程定义", businessType = BusinessType.IMPORT) @Log(title = "流程定义", businessType = BusinessType.IMPORT)
@PostMapping("/importDefinition") @PostMapping("/importDefinition")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R<Void> importDefinition(MultipartFile file) throws Exception { public R<Boolean> importDefinition(MultipartFile file) {
defService.importXml(file.getInputStream()); return R.ok(iFlwDefinitionService.importXml(file));
return R.ok();
} }
/** /**

View File

@ -6,6 +6,7 @@ import jakarta.servlet.http.HttpServletResponse;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.workflow.domain.vo.FlowDefinitionVo; import org.dromara.workflow.domain.vo.FlowDefinitionVo;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
@ -41,4 +42,12 @@ public interface IFlwDefinitionService {
* @throws IOException 异常 * @throws IOException 异常
*/ */
void exportDefinition(Long id, HttpServletResponse response) throws IOException; void exportDefinition(Long id, HttpServletResponse response) throws IOException;
/**
* 导入流程定义
*
* @param file 文件
* @return 结果
*/
boolean importXml(MultipartFile file);
} }

View File

@ -1,6 +1,7 @@
package org.dromara.workflow.service.impl; package org.dromara.workflow.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.warm.flow.core.entity.Definition; import com.warm.flow.core.entity.Definition;
import com.warm.flow.core.enums.PublishStatus; import com.warm.flow.core.enums.PublishStatus;
@ -14,11 +15,13 @@ import lombok.extern.slf4j.Slf4j;
import org.dom4j.Document; import org.dom4j.Document;
import org.dom4j.io.OutputFormat; import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter; import org.dom4j.io.XMLWriter;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.workflow.domain.vo.FlowDefinitionVo; import org.dromara.workflow.domain.vo.FlowDefinitionVo;
import org.dromara.workflow.service.IFlwDefinitionService; import org.dromara.workflow.service.IFlwDefinitionService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
@ -67,6 +70,28 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
return BeanUtil.copyToList(list, FlowDefinitionVo.class); return BeanUtil.copyToList(list, FlowDefinitionVo.class);
} }
/**
* 导入流程定义
*
* @param file 文件
*/
@Override
public boolean importXml(MultipartFile file) {
try {
Definition definition = defService.importXml(file.getInputStream());
List<FlowDefinition> list = flowDefinitionMapper.selectList(
new LambdaQueryWrapper<FlowDefinition>().eq(FlowDefinition::getFlowCode, definition.getFlowCode()));
List<FlowDefinition> definitionList = StreamUtils.filter(list, item -> !item.getId().equals(definition.getId()));
if (CollUtil.isEmpty(definitionList)) {
defService.publish(definition.getId());
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
return true;
}
/** /**
* 导出流程定义 * 导出流程定义
* *

View File

@ -17,8 +17,8 @@
<result property="businessId" column="business_id"/> <result property="businessId" column="business_id"/>
<result property="flowName" column="flow_name"/> <result property="flowName" column="flow_name"/>
<result property="flowCode" column="flow_code"/> <result property="flowCode" column="flow_code"/>
<result property="fromCustom" column="from_custom"/> <result property="formCustom" column="form_custom"/>
<result property="fromPath" column="from_path"/> <result property="formPath" column="form_path"/>
<result property="delFlag" column="del_flag"/> <result property="delFlag" column="del_flag"/>
</resultMap> </resultMap>
<resultMap type="org.dromara.workflow.domain.vo.FlowHisTaskVo" id="FlowHisTaskResult"> <resultMap type="org.dromara.workflow.domain.vo.FlowHisTaskVo" id="FlowHisTaskResult">
@ -74,8 +74,8 @@
i.flow_status, i.flow_status,
d.flow_name, d.flow_name,
d.flow_code, d.flow_code,
d.from_custom, d.form_custom,
d.from_path, d.form_path,
uu.processed_by uu.processed_by
FROM flow_task AS t FROM flow_task AS t
LEFT JOIN flow_user uu ON uu.associated = t.id LEFT JOIN flow_user uu ON uu.associated = t.id
@ -105,8 +105,7 @@
t.update_time, t.update_time,
t.tenant_id, t.tenant_id,
i.business_id, i.business_id,
i.node_name, d.form_path fromPath,
d.from_path fromPath,
d.flow_name, d.flow_name,
d.flow_code d.flow_code
from ( SELECT MAX(id) as id from ( SELECT MAX(id) as id