package com.vci.ubcs.flow.engine.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.vci.ubcs.flow.engine.entity.FlowTaskUser; import com.vci.ubcs.flow.engine.entity.FlowTaskUserC; import com.vci.ubcs.flow.engine.entity.ProcessStageAttr; import com.vci.ubcs.flow.engine.entity.ProcessTemplate; import com.vci.ubcs.flow.engine.service.FlowEngineService; import com.vci.ubcs.flow.engine.service.ProcessStageAttrService; import com.vci.ubcs.flow.engine.service.ProcessTemplateService; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; import java.util.Map; /** *流程模板、流程阶段控制 processTemplate processStage * * @author wang1 */ @NonDS @RestController @RequestMapping("processTS") @AllArgsConstructor public class ProcessTSController { private final FlowEngineService flowEngineService; private final ProcessTemplateService processTemplateService; private final ProcessStageAttrService processStageAttrService; /** * 流程模板分页 */ @GetMapping("/tlist") public R> tlist(@RequestParam Map flow, Query query) { IPage pages = processTemplateService.page(Condition.getPage(query), Condition.getQueryWrapper(flow, ProcessTemplate.class) .select("id,model_key modelKey,model_name modelName,button_Type_Key buttonTypeKey,button_Type_value buttonTypeValue") .orderByDesc("last_updated")); return R.data(pages); } /** * 流程模板用途属性 * @return */ @PostMapping("tt") public R>> processTemplateType() { return R.data(processTemplateService.processTemplateType()); } /** * 流程模板新增、修改 * @param processTemplate * @return */ @PostMapping("tsou") public R processTemplateSaveOrUpdate(@RequestBody ProcessTemplate processTemplate) { processTemplateService.saveOrUpdateUser(processTemplate); return R.success("保存成功"); } /** * 流程模板删除 * @param processTemplate * @return */ @DeleteMapping("dt") public R deleteProcessTemplate(ProcessTemplate processTemplate) { processTemplateService.deleteProcessTemplate(processTemplate.getId()); return R.success("删除成功"); } /** * 流程阶段,这个流程的各个节点 */ @GetMapping("/sslist") public R>> sslist(@RequestParam String modelKey) { return R.data(flowEngineService.getNodeByFlowableKey(modelKey)); } /** * 流程阶段,这个流程,这个节点,绑定的属性 */ @GetMapping("/ssslist") public R> ssslist(@RequestParam String templateId,@RequestParam String modelKey,@RequestParam String taskId) { Map m = new HashMap<>(); m.put("template_id", templateId); m.put("task_id", taskId); m.put("model_key", modelKey); QueryWrapper q = Condition.getQueryWrapper(m, ProcessStageAttr.class) .select("attr_id attrId,attr_name attrName,attr_group attrGroup"); return R.data(processStageAttrService.list(q)); } /** * 模板阶段属性新增、修改 * @param flowTaskUserC * @return */ @PostMapping("sasou") public R stageAttributeSaveOrUpdate(@RequestBody FlowTaskUserC flowTaskUserC) { processStageAttrService.saveOrUpdateUser(flowTaskUserC); return R.success("保存成功"); } }