提交 c66c2942 authored 作者: 黄夏豪's avatar 黄夏豪

新增了 用户相关接口 需要主系统实现

上级 60ea175c
package com.tykj.workflowcore;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @author zsp
* @version V1.0
* @class WebMvcConfig
* @packageName com.example.personnelmanager.common.config
* @data 2020/6/11
**/
@Configuration
public class WebMvcConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "DELETE", "PUT","PATCH")
.maxAge(3600);
}
};
}
}
package com.tykj.workflowcore.base.result;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author dengdiyi
* @description 接口返回统一标准类
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonPropertyOrder(value = {"message", "data"})
public class ResultObj<T> {
private T data;
private String message;
public ResultObj(T o) {
this.data = o;
this.message = "no message";
}
public ResultObj(String m) {
this.message = m;
}
}
package com.tykj.workflowcore.base.result;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
/**
* @author HuangXiahao
* @version V1.0
* @class ResultMessage
* @packageName com.example.hello.demo.resultObject
**/
public class ResultUtil<T> {
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public static <T> ResponseEntity<ResultObj<T>> success(T data) {
return ResponseEntity.ok(new ResultObj<>(data));
}
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public static <T> ResponseEntity success(T data, HttpHeaders headers) {
return new ResponseEntity(new ResultObj(data), headers, HttpStatus.OK);
}
/**
* 失败返回结果
*/
public static <T> ResponseEntity failed() {
return ResponseEntity.status(500).body(new ResultObj("服务器内部发生错误"));
}
/**
* 失败返回结果
*/
public static <T> ResponseEntity failed(T content) {
return new ResponseEntity(new ResultObj(content), HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
* 失败返回结果
*/
public static <T> ResponseEntity failed(HttpStatus httpStatus) {
return new ResponseEntity(httpStatus);
}
/**
* 失败返回结果
*/
public static <T> ResponseEntity failed(HttpStatus httpStatus, T content) {
return new ResponseEntity(new ResultObj(content), httpStatus);
}
/**
* 参数验证失败返回结果
*/
public static <T> ResponseEntity validateFailed(T content) {
return failed(HttpStatus.INTERNAL_SERVER_ERROR, content);
}
/**
* 未登录返回结果
*/
public static <T> ResponseEntity unauthorized() {
return failed(HttpStatus.UNAUTHORIZED);
}
/**
* 未授权返回结果
*/
public static <T> ResponseEntity forbidden() {
return failed(HttpStatus.FORBIDDEN);
}
}
......@@ -2,10 +2,8 @@ package com.tykj.workflowcore.workflow_editer.controller;
import com.tykj.workflowcore.workflow_editer.entity.FlowsInfo;
import com.tykj.workflowcore.workflow_editer.entity.NodePage;
import com.tykj.workflowcore.workflow_editer.service.FlowInfoService;
import com.tykj.workflowcore.workflow_editer.service.NodePageService;
import com.tykj.workflowcore.workflow_editer.service.VariableStorageService;
import com.tykj.workflowcore.workflow_editer.service.WorkFlowService;
import com.tykj.workflowcore.workflow_editer.entity.WorkFlowUser;
import com.tykj.workflowcore.workflow_editer.service.*;
import com.tykj.workflowcore.workflow_editer.vo.DeployedVo;
import com.tykj.workflowcore.workflow_editer.vo.FlowsInfoVo;
import com.tykj.workflowcore.workflow_editer.vo.PageVo;
......@@ -15,7 +13,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.FileNotFoundException;
import java.util.ArrayList;
......@@ -33,6 +30,7 @@ import java.util.List;
@Api("流程管理接口")
@RequestMapping("/flowsInfo")
public class FlowsInfoController {
@Autowired
private FlowInfoService flowInfoService;
......@@ -42,8 +40,12 @@ public class FlowsInfoController {
@Autowired
private NodePageService nodePageService;
@Autowired
private UserService userService;
@Autowired
private VariableStorageService variableStorageService;
@PostMapping("/getAllFlowsInfo")
@ApiOperation(value = "查询所有流程",notes = "分页查询")
public Page<FlowsInfo> getAllFlowsInfo(@RequestBody PageVo pageVo){
......@@ -74,12 +76,13 @@ public class FlowsInfoController {
return deployedVos;
}
@PostMapping("/saveXml")
@ApiOperation("保存xml")
public String saveXml(@RequestParam("file") MultipartFile file){
String xml = workFlowService.saveXml(file);
return xml;
}
// @PostMapping("/saveXml")
// @ApiOperation("保存xml")
// public String saveXml(@RequestParam("file") MultipartFile file){
// String xml = workFlowService.saveXml(file);
// return xml;
// }
@GetMapping("/deploy/{id}")
@ApiOperation(value = "部署流程",notes = "0 部署成功")
public Integer deploy(@PathVariable("id") Long id) throws FileNotFoundException {
......@@ -116,4 +119,10 @@ public class FlowsInfoController {
public Long createFlow(@RequestBody FlowsInfoVo flowsInfovo){
return workFlowService.createFlow(flowsInfovo.toEntity());
}
@PostMapping("/test")
public WorkFlowUser test(){
return userService.getCurrentUser();
}
}
......@@ -18,12 +18,14 @@ import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
public class WorkFlowRole {
private String roleName;
@Transient
List<User> userList;
/**
* 例如: department,subject 等
*/
private String type;
}
......@@ -22,14 +22,11 @@ import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api("用户表")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public class WorkFlowUser implements Serializable {
private Long id;
private String userName;
private String passWord;
private String age;
private String birthday;
}
package com.tykj.workflowcore.workflow_editer.mapper;
import com.tykj.workflowcore.workflow_editer.entity.Role;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* ClassName: RoleMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/2/23 15:08
*
* @Author: zsp
*/
public interface RoleMapper extends JpaRepository<Role,Long>, JpaSpecificationExecutor<Role> {
}
package com.tykj.workflowcore.workflow_editer.mapper;
import com.tykj.workflowcore.workflow_editer.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* ClassName: UserMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/2/23 14:49
*
* @Author: zsp
*/
public interface UserMapper extends JpaRepository<User,Long>, JpaSpecificationExecutor<User> {
}
package com.tykj.workflowcore.workflow_editer.service;
//import org.springframework.security.core.userdetails.UserDetails;
import com.tykj.workflowcore.workflow_editer.entity.WorkFlowRole;
import com.tykj.workflowcore.workflow_editer.entity.WorkFlowUser;
import java.util.List;
/**
* ClassName: UserService
......@@ -11,17 +13,25 @@ package com.tykj.workflowcore.workflow_editer.service;
*
* @Author: zsp
*/
//@Service
//public interface UserService {
// /**
// * 获取当前登录人的id
// * @return User对象
// */
// UserDetails getCurrentUserId();
//
// /**
// * 获取所有用户
// * @return 所有用户
// */
// List<User> getAllUser();
//}
public interface UserService {
/**
* 获取当前登录人的id
* @return User对象
*/
WorkFlowUser getCurrentUser();
/**
* 获取所有用户
* @return 所有用户
*/
List<WorkFlowUser> getAllUser();
/**
* 获取当前系统中的用户以及用户分组
* @return
*/
List<WorkFlowRole> getAllRole();
}
......@@ -80,15 +80,6 @@ public interface WorkFlowService {
Map<String,Object> findTaskDetail(Long userId, String taskId);
/**
* 根据角色id进行任务待办查询
* @param roleId 角色id
* @return 任务列表
*/
List<Map<String,Object>> findByRoleId(Long roleId);
/**
* 任务完成
* @param taskVo taskVo
......
package com.tykj.workflowcore.workflow_editer.service.impl;
import cn.hutool.extra.spring.SpringUtil;
import com.tykj.workflowcore.workflow_editer.entity.FlowsInfo;
import com.tykj.workflowcore.workflow_editer.entity.NodePage;
import com.tykj.workflowcore.workflow_editer.entity.Role;
import com.tykj.workflowcore.workflow_editer.entity.User;
import com.tykj.workflowcore.workflow_editer.mapper.FlowsInfoMapper;
import com.tykj.workflowcore.workflow_editer.mapper.RoleMapper;
import com.tykj.workflowcore.workflow_editer.mapper.UserMapper;
import com.tykj.workflowcore.workflow_editer.service.NodePageService;
import com.tykj.workflowcore.workflow_editer.service.WorkFlowService;
import com.tykj.workflowcore.workflow_editer.vo.*;
......@@ -25,7 +19,6 @@ import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -53,10 +46,7 @@ public class WorkFlowServiceImpl implements WorkFlowService {
private TaskService taskService;
@Autowired
private FlowsInfoMapper flowsInfoMapper;
@Autowired
private UserMapper userMapper;
@Autowired
private RoleMapper roleMapper;
@Autowired
private NodePageService nodePageService;
......@@ -137,7 +127,7 @@ public class WorkFlowServiceImpl implements WorkFlowService {
//生成xml文件
File f = null;
try {
f = new File(classLoader.getResource("").getPath()+"/xml/"+flowKey+"bpmn20.xml");
f = new File(classLoader.getResource("").getPath()+"/xml/"+flowKey+"bpmn20.xml");
// 判断文件是否存在
if(!f.exists()){
f.createNewFile();
......@@ -259,33 +249,6 @@ public class WorkFlowServiceImpl implements WorkFlowService {
return variables;
}
@Override
public List<Map<String, Object>> findByRoleId(Long roleId) {
//流程变量 ${roleId == 具体的数值}
// 先获取当前登录人的id
//通过userId来获取roleId
//根据roleId来查询userName
Role role = roleMapper.findById(roleId).get();
List<User> userList = role.getUserList();
List<Task> taskList = taskService.createTaskQuery().taskCandidateUser(Long.toString(roleId)).list();
ArrayList<Map<String, Object>> list = new ArrayList<>();
for (User user : userList) {
for (Task task : taskList) {
Map<String, Object> map = new HashMap<>();
map.put("taskId",task.getId());
map.put("taskName",task.getName());
map.put("taskAssigne",user.getUserName());
map.put("time",task.getCreateTime());
map.put("description",task.getDescription());
map.put("processInstanceId",task.getProcessInstanceId());
list.add(map);
}
}
return list;
}
@Override
public void completeTask(@RequestBody TaskVo taskVo) {
......@@ -314,7 +277,7 @@ public class WorkFlowServiceImpl implements WorkFlowService {
@Override
public void transferTask(String taskId,Long userId) {
taskService.setAssignee(taskId,Long.toString(userId));
taskService.setAssignee(taskId,Long.toString(userId));
}
@Override
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论