package com.activiti6.controller.editor; import com.activiti6.controller.BaseController; import com.activiti6.entity.ActivitiUser; import com.activiti6.entity.AjaxEntityVo; import com.activiti6.entity.GroupActiviti; import com.activiti6.entity.SelectVo; import org.activiti.editor.constants.ModelDataJsonConstants; import org.activiti.engine.ActivitiException; import org.activiti.engine.IdentityService; import org.activiti.engine.RepositoryService; import org.activiti.engine.identity.Group; import org.activiti.engine.identity.User; import org.activiti.engine.repository.Model; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import java.util.List; import java.util.stream.Collectors; /** * 获取model的节点信息,编辑器根据返回的json进行绘图 * liuzhize 2019年3月7日下午3:29:15 */ @RestController @RequestMapping("service") public class ModelEditorJsonRestResource extends BaseController implements ModelDataJsonConstants { protected static final Logger LOGGER = LoggerFactory.getLogger(ModelEditorJsonRestResource.class); @Autowired private RepositoryService repositoryService; @Autowired private ObjectMapper objectMapper; @Autowired private IdentityService identityService; /** * 获取流程json信息 * * @param modelId * @return */ @SuppressWarnings("deprecation") @RequestMapping(value = "/model/{modelId}/json", method = RequestMethod.GET, produces = "application/json") public ObjectNode getEditorJson(@PathVariable String modelId) { ObjectNode modelNode = null; Model model = repositoryService.getModel(modelId); if (model != null) { try { if (StringUtils.isNotEmpty(model.getMetaInfo())) { modelNode = (ObjectNode) objectMapper.readTree(model.getMetaInfo()); } else { modelNode = objectMapper.createObjectNode(); modelNode.put(MODEL_NAME, model.getName()); } modelNode.put(MODEL_ID, model.getId()); ObjectNode editorJsonNode = (ObjectNode) objectMapper.readTree( new String(repositoryService.getModelEditorSource(model.getId()), "utf-8")); modelNode.put("model", editorJsonNode); } catch (Exception e) { LOGGER.error("Error creating model JSON", e); throw new ActivitiException("Error creating model JSON", e); } } return modelNode; } @GetMapping(value = "/model/user") public AjaxEntityVo getUser() { List list = identityService.createUserQuery().list(); List collect = list.stream().map(x -> { ActivitiUser activitiUser = new ActivitiUser(); String id = x.getId(); String firstName = x.getFirstName(); activitiUser.setId(id); activitiUser.setFirstName(firstName); return activitiUser; }).collect(Collectors.toList()); return success(collect); } @GetMapping(value = "/model/user/select") public List getUserSelect() { List list = identityService.createUserQuery().list(); List collect = list.stream().map(x -> { SelectVo activitiUser = new SelectVo(); String id = x.getId(); String firstName = x.getFirstName(); activitiUser.setValue(id); activitiUser.setText(firstName); return activitiUser; }).collect(Collectors.toList()); return collect; } @GetMapping(value = "/model/group") public AjaxEntityVo getGroup() { List list = identityService.createGroupQuery().list(); list.stream().map(x->{ String id = x.getId(); String name = x.getName(); GroupActiviti groupActiviti=new GroupActiviti(); groupActiviti.setId(id); groupActiviti.setName(name); return groupActiviti; }).collect(Collectors.toList()); return success(list); } }