Commit d1b5fd52 by chenweisong

更新

parent 4516ffc9
package com.keymobile.rest.common.bean;
import com.keymobile.rest.common.constant.ApiConstant;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
@Data
@Builder
@AllArgsConstructor
public class ApiResponse<T> implements Serializable {
private int code;
private String msg;
private T data;
public static ApiResponse ok() {
return ApiResponse.builder().code(ApiConstant.SUCCEED_CODE).msg(ApiConstant.SUCCEED).build();
}
public static <T> ApiResponse ok(T data) {
return ApiResponse.builder().code(ApiConstant.SUCCEED_CODE).msg(ApiConstant.SUCCEED).data(data).build();
}
public static ApiResponse fail() {
return ApiResponse.builder().code(ApiConstant.FAILED_CODE).msg(ApiConstant.FAILED).build();
}
public static ApiResponse fail(int code, String msg) {
return ApiResponse.builder().code(code).msg(msg).build();
}
}
package com.keymobile.rest.common.conf;
import com.keymobile.rest.common.bean.ApiResponse;
import com.keymobile.rest.common.constant.ApiConstant;
import com.keymobile.rest.common.exception.CommonException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* description: 全局异常处理
*
* @author :ws6049
* @date :2019/1/13 0:26
*/
//@RestControllerAdvice
public class ExceptionHandlerConfig {
private static final Logger logger = LoggerFactory.getLogger(ExceptionHandlerConfig.class);
/**
* description: 捕获全局异常
* created by King on 2019/1/13 0:30.
*
* @return ApiResponse
* @Param: ex
*/
@ExceptionHandler(Exception.class)
public ApiResponse globalException(Throwable ex) {
if (ex instanceof CommonException) {
logger.warn("访问出错:" + ex.getMessage());
return ApiResponse.fail(ApiConstant.FAILED_CODE, ex.getMessage());
}
logger.error("访问出错:", ex);
return ApiResponse.fail(ApiConstant.FAILED_CODE, "服务器内部出错");
}
}
package com.keymobile.rest.common.constant;
public interface ApiConstant {
int SUCCEED_CODE = 200;
int FAILED_CODE = 500;
String SUCCEED = "成功";
String FAILED = "失败";
String ERROR = "系统错误";
String UNAUTHORIZED = "未授权";
String PARAM_ERROR = "参数错误";
}
...@@ -12,7 +12,7 @@ import lombok.Data; ...@@ -12,7 +12,7 @@ import lombok.Data;
public class CommonException extends RuntimeException { public class CommonException extends RuntimeException {
private static final long serialVersionUID = 3455708526465670030L; private static final long serialVersionUID = 3455708526465670030L;
public CommonException(String msg) { public CommonException(String message) {
super(msg); super(message);
} }
} }
...@@ -5,7 +5,7 @@ import com.keymobile.rest.common.bean.SimplePage; ...@@ -5,7 +5,7 @@ import com.keymobile.rest.common.bean.SimplePage;
import com.keymobile.rest.common.utils.BeanUti; import com.keymobile.rest.common.utils.BeanUti;
import com.keymobile.rest.common.utils.DateUtil; import com.keymobile.rest.common.utils.DateUtil;
import com.keymobile.rest.common.validator.CommonValidator; import com.keymobile.rest.common.validator.CommonValidator;
import com.keymobile.rest.controller.constant.CtrlConstant; import com.keymobile.rest.controller.constant.CommonConstant;
import com.keymobile.rest.model.User; import com.keymobile.rest.model.User;
import com.keymobile.rest.model.*; import com.keymobile.rest.model.*;
import com.keymobile.rest.model.Process; import com.keymobile.rest.model.Process;
...@@ -35,9 +35,8 @@ import java.util.*; ...@@ -35,9 +35,8 @@ import java.util.*;
public class TaskController { public class TaskController {
/** /**
* 默认启动的固化流程 * 默认启动的固化流程文件
*/ */
@Value("${app.default-bpmn-file}") @Value("${app.default-bpmn-file}")
private String process; private String process;
...@@ -103,7 +102,7 @@ public class TaskController { ...@@ -103,7 +102,7 @@ public class TaskController {
// 获取个人任务 // 获取个人任务
List<Task> tasks = taskService.createTaskQuery().taskAssignee(username).active().list(); List<Task> tasks = taskService.createTaskQuery().taskAssignee(username).active().list();
tasks.forEach(task -> { tasks.forEach(task -> {
missions.add(convertTaskToMission(task, ImmutableMap.of("username", username, "type", CtrlConstant.TASK_TYPE_PERSONAL))); missions.add(convertTaskToMission(task, ImmutableMap.of("username", username, "type", CommonConstant.TASK_TYPE_PERSONAL)));
}); });
// 获取组任务 // 获取组任务
...@@ -120,7 +119,7 @@ public class TaskController { ...@@ -120,7 +119,7 @@ public class TaskController {
// 组id // 组id
String groupId = "id:" + templateId; String groupId = "id:" + templateId;
if (groupId.equals(identityLink.getGroupId())) { if (groupId.equals(identityLink.getGroupId())) {
missions.add(convertTaskToMission(groupTask, ImmutableMap.of("username", username, "type", CtrlConstant.TASK_TYPE_GROUP, "templateId", templateId, "config", template.getConfig()))); missions.add(convertTaskToMission(groupTask, ImmutableMap.of("username", username, "type", CommonConstant.TASK_TYPE_GROUP, "templateId", templateId, "config", template.getConfig())));
} }
}); });
} }
...@@ -142,7 +141,7 @@ public class TaskController { ...@@ -142,7 +141,7 @@ public class TaskController {
// 新建活动 // 新建活动
Activity activity = new Activity(); Activity activity = new Activity();
activity = BeanUti.convertTo(form, activity); activity = BeanUti.convertTo(form, activity);
User admin = sessionService.getUserByName(CtrlConstant.USER_NAME_ADMIN); User admin = sessionService.getUserByName(CommonConstant.USER_NAME_ADMIN);
activity.setUserId(admin.getId()); activity.setUserId(admin.getId());
activity.setCreateAt(DateUtil.getTimestamp()); activity.setCreateAt(DateUtil.getTimestamp());
activity.setStatus(Activity.STATUS_WAIT); activity.setStatus(Activity.STATUS_WAIT);
...@@ -254,9 +253,10 @@ public class TaskController { ...@@ -254,9 +253,10 @@ public class TaskController {
public Object passTask(@PathVariable String taskId, @PathVariable int status) { public Object passTask(@PathVariable String taskId, @PathVariable int status) {
Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
CommonValidator.notNull(task, "任务不存在"); CommonValidator.notNull(task, "任务不存在");
boolean pass = status == CtrlConstant.STATUS_PASS; boolean pass = status == CommonConstant.STATUS_PASS;
Map vars = new HashMap(); Map vars = new HashMap();
vars.put(CtrlConstant.ACT_SIGN_DATA_AUDIT, pass); vars.put(CommonConstant.ACT_SIGN_DATA_AUDIT, pass);
taskService.complete(task.getId(), vars);
if (pass) { if (pass) {
String executionId = task.getExecutionId(); String executionId = task.getExecutionId();
// 总的会签任务数量 // 总的会签任务数量
...@@ -270,15 +270,15 @@ public class TaskController { ...@@ -270,15 +270,15 @@ public class TaskController {
Activity activity = process.getActivity(); Activity activity = process.getActivity();
if (nrOfCompletedInstances == nrOfInstances - 1) { if (nrOfCompletedInstances == nrOfInstances - 1) {
if (activity.getNeedConfirm() == Activity.NEED_CONFIRM) { if (activity.getNeedConfirm() == Activity.NEED_CONFIRM) {
vars.put(CtrlConstant.ACT_NEED_CONFIRM, true); vars.put(CommonConstant.ACT_NEED_CONFIRM, true);
vars.put(CtrlConstant.ACT_MANAGER, CtrlConstant.USER_NAME_MANAGER); vars.put(CommonConstant.ACT_MANAGER, CommonConstant.USER_NAME_MANAGER);
} else { } else {
vars.put(CtrlConstant.ACT_NEED_CONFIRM, false); vars.put(CommonConstant.ACT_NEED_CONFIRM, false);
// if (StringUtils.isNotEmpty(template.getBackStreamAddr())) { // if (StringUtils.isNotEmpty(template.getBackStreamAddr())) {
// vars.put(CtrlConstant.ACT_NEED_DATA_BACK_FLOW, true); // vars.put(CtrlConstant.ACT_NEED_DATA_BACK_FLOW, true);
// vars.put(CtrlConstant.ACT_BACK_FLOW_USER, ""); // vars.put(CtrlConstant.ACT_BACK_FLOW_USER, "");
// } else { // } else {
vars.put(CtrlConstant.ACT_NEED_DATA_BACK_FLOW, false); vars.put(CommonConstant.ACT_NEED_DATA_BACK_FLOW, false);
// 流程完 // 流程完
// } // }
} }
...@@ -286,7 +286,6 @@ public class TaskController { ...@@ -286,7 +286,6 @@ public class TaskController {
activityService.save(activity); activityService.save(activity);
} }
} }
taskService.complete(task.getId(), vars);
return pass ? "审核通过成功" : "审核驳回成功"; return pass ? "审核通过成功" : "审核驳回成功";
} }
...@@ -299,10 +298,18 @@ public class TaskController { ...@@ -299,10 +298,18 @@ public class TaskController {
public Object confirmTask(@PathVariable String taskId, @PathVariable int status) { public Object confirmTask(@PathVariable String taskId, @PathVariable int status) {
Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
CommonValidator.notNull(task, "任务不存在"); CommonValidator.notNull(task, "任务不存在");
boolean pass = status == CtrlConstant.STATUS_PASS; boolean pass = status == CommonConstant.STATUS_PASS;
Map vars = new HashMap(); Map vars = new HashMap();
vars.put(CtrlConstant.ACT_SIGN_CONFIRM, pass); vars.put(CommonConstant.ACT_SIGN_CONFIRM, pass);
return "审核通过成功"; taskService.complete(task.getId(), vars);
if (pass) {
String processInstanceId = task.getProcessInstanceId();
Process process = processService.findByProcessId(processInstanceId);
Activity activity = process.getActivity();
activity.setStatus(Activity.STATUS_WAIT);
activityService.save(activity);
}
return pass ? "负责人确认通过" : "负责人确认不通过";
} }
@ApiOperation(value = "进度列表") @ApiOperation(value = "进度列表")
...@@ -313,16 +320,8 @@ public class TaskController { ...@@ -313,16 +320,8 @@ public class TaskController {
@ApiImplicitParam(name = "status", value = "状态", paramType = "query", dataType = "integer") @ApiImplicitParam(name = "status", value = "状态", paramType = "query", dataType = "integer")
}) })
@GetMapping(value = "/task/progresses") @GetMapping(value = "/task/progresses")
public SimplePage viewTasksProgress(int pageNo, int pageSize, String name, Integer status) { public Object viewTasksProgress(int pageNo, int pageSize, String name, Integer status) {
Page<Activity> page; return null;
String orderBy = "descending"; //
String propBy = "id"; // groupBy
if (name != null) {
page = activityService.findAllByName(name, pageNo, pageSize, orderBy, propBy);
} else {
page = activityService.findAll(pageNo, pageSize, orderBy, propBy);
}
return SimplePage.of(page);
} }
public Mission convertTaskToMission(Task task, Map<String, Object> params) { public Mission convertTaskToMission(Task task, Map<String, Object> params) {
...@@ -335,12 +334,12 @@ public class TaskController { ...@@ -335,12 +334,12 @@ public class TaskController {
.createAt(DateUtil.formatDateTime(task.getCreateTime())); .createAt(DateUtil.formatDateTime(task.getCreateTime()));
int missionType = 0; int missionType = 0;
String mission = ""; String mission = "";
if (task.getTaskDefinitionKey().equals(CtrlConstant.MISSION_KEY_DATA_ENTER)) { if (task.getTaskDefinitionKey().equals(CommonConstant.MISSION_KEY_DATA_ENTER)) {
missionType = CtrlConstant.MISSION_TYPE_DATA_ENTER; missionType = CommonConstant.MISSION_TYPE_DATA_ENTER;
mission = CtrlConstant.MISSION_TEXT_DATA_ENTER; mission = CommonConstant.MISSION_TEXT_DATA_ENTER;
long templateId = 0; long templateId = 0;
String config = ""; String config = "";
if (type == CtrlConstant.TASK_TYPE_PERSONAL) { if (type == CommonConstant.TASK_TYPE_PERSONAL) {
String assignee = task.getAssignee(); String assignee = task.getAssignee();
String[] array = assignee.split(":"); String[] array = assignee.split(":");
try { try {
...@@ -349,21 +348,21 @@ public class TaskController { ...@@ -349,21 +348,21 @@ public class TaskController {
} catch (Exception e) { } catch (Exception e) {
} }
} else if (type == CtrlConstant.TASK_TYPE_GROUP) { } else if (type == CommonConstant.TASK_TYPE_GROUP) {
templateId = Long.parseLong(params.get("templateId").toString()); templateId = Long.parseLong(params.get("templateId").toString());
config = params.get("config").toString(); config = params.get("config").toString();
} }
builder.config(config); builder.config(config);
builder.excelId(templateId); builder.excelId(templateId);
} else if (task.getTaskDefinitionKey().equals(CtrlConstant.MISSION_KEY_DATA_AUDIT)) { } else if (task.getTaskDefinitionKey().equals(CommonConstant.MISSION_KEY_DATA_AUDIT)) {
missionType = CtrlConstant.MISSION_TYPE_DATA_AUDIT; missionType = CommonConstant.MISSION_TYPE_DATA_AUDIT;
mission = CtrlConstant.MISSION_TEXT_DATA_AUDIT; mission = CommonConstant.MISSION_TEXT_DATA_AUDIT;
} else if (task.getTaskDefinitionKey().equals(CtrlConstant.MISSION_KEY_MANAGER_AUDIT)) { } else if (task.getTaskDefinitionKey().equals(CommonConstant.MISSION_KEY_MANAGER_AUDIT)) {
missionType = CtrlConstant.MISSION_TYPE_MANAGER_AUDIT; missionType = CommonConstant.MISSION_TYPE_MANAGER_AUDIT;
mission = CtrlConstant.MISSION_TEXT_MANAGER_AUDIT; mission = CommonConstant.MISSION_TEXT_MANAGER_AUDIT;
} else if (task.getTaskDefinitionKey().equals(CtrlConstant.MISSION_KEY_DATA_BACK_FLOW)) { } else if (task.getTaskDefinitionKey().equals(CommonConstant.MISSION_KEY_DATA_BACK_FLOW)) {
missionType = CtrlConstant.MISSION_TYPE_DATA_BACK_FLOW; missionType = CommonConstant.MISSION_TYPE_DATA_BACK_FLOW;
mission = CtrlConstant.MISSION_TEXT_DATA_BACK_FLOW; mission = CommonConstant.MISSION_TEXT_DATA_BACK_FLOW;
} }
builder.mission(mission) builder.mission(mission)
.missionType(missionType); .missionType(missionType);
......
...@@ -2,7 +2,7 @@ package com.keymobile.rest.controller; ...@@ -2,7 +2,7 @@ package com.keymobile.rest.controller;
import com.keymobile.rest.common.utils.DateUtil; import com.keymobile.rest.common.utils.DateUtil;
import com.keymobile.rest.common.validator.CommonValidator; import com.keymobile.rest.common.validator.CommonValidator;
import com.keymobile.rest.controller.constant.CtrlConstant; import com.keymobile.rest.controller.constant.CommonConstant;
import com.keymobile.rest.model.User; import com.keymobile.rest.model.User;
import com.keymobile.rest.model.Activity; import com.keymobile.rest.model.Activity;
import com.keymobile.rest.model.DataInfo; import com.keymobile.rest.model.DataInfo;
...@@ -18,9 +18,9 @@ import org.springframework.web.bind.annotation.*; ...@@ -18,9 +18,9 @@ import org.springframework.web.bind.annotation.*;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@Api(tags = "模板 控制器", description = "Excel Mgr") @Api(tags = "模板 控制器", description = "Template Mgr")
@RestController @RestController
public class ExcelController { public class TemplateController {
@Autowired @Autowired
private TemplateService templateService; private TemplateService templateService;
...@@ -54,7 +54,11 @@ public class ExcelController { ...@@ -54,7 +54,11 @@ public class ExcelController {
CommonValidator.notNull(template, "模板不存在"); CommonValidator.notNull(template, "模板不存在");
User user = sessionService.getLoginUser(); User user = sessionService.getLoginUser();
taskService.claim(taskId, user.getName()); try {
taskService.claim(taskId, user.getName());
} catch (Exception e) {
System.out.println("任务已被领取,补录失败");
}
String processInstanceId = task.getProcessInstanceId(); String processInstanceId = task.getProcessInstanceId();
Process process = processService.findByProcessId(processInstanceId); Process process = processService.findByProcessId(processInstanceId);
...@@ -70,13 +74,12 @@ public class ExcelController { ...@@ -70,13 +74,12 @@ public class ExcelController {
Map vars = new HashMap<>(); Map vars = new HashMap<>();
if (template.getNeedAudit() == Template.NEED_AUDIT) { if (template.getNeedAudit() == Template.NEED_AUDIT) {
vars.put(CtrlConstant.ACT_NEED_DATA_AUDIT, true); vars.put(CommonConstant.ACT_NEED_DATA_AUDIT, true);
Map audit = feignAuthService.getUserById(template.getAuditId()); Map audit = feignAuthService.getUserById(template.getAuditId());
CommonValidator.notNull(audit, "模板审核人不存在"); CommonValidator.notNull(audit, "模板审核人不存在");
vars.put(CtrlConstant.ACT_AUDIT_USER, audit.get("name").toString()); vars.put(CommonConstant.ACT_AUDIT_USER, audit.get("name").toString());
} else { } else {
vars.put(CtrlConstant.ACT_NEED_DATA_AUDIT, false); vars.put(CommonConstant.ACT_NEED_DATA_AUDIT, false);
String executionId = task.getExecutionId(); String executionId = task.getExecutionId();
// 总的会签任务数量 // 总的会签任务数量
int nrOfInstances = Integer.parseInt(runtimeService.getVariable(executionId, "nrOfInstances").toString()); int nrOfInstances = Integer.parseInt(runtimeService.getVariable(executionId, "nrOfInstances").toString());
...@@ -84,23 +87,22 @@ public class ExcelController { ...@@ -84,23 +87,22 @@ public class ExcelController {
// int nrOfActiveInstances = Integer.parseInt(runtimeService.getVariable(executionId, "nrOfActiveInstances").toString()); // int nrOfActiveInstances = Integer.parseInt(runtimeService.getVariable(executionId, "nrOfActiveInstances").toString());
// 已经完成的会签任务数量 // 已经完成的会签任务数量
int nrOfCompletedInstances = Integer.parseInt(runtimeService.getVariable(executionId, "nrOfCompletedInstances").toString()); int nrOfCompletedInstances = Integer.parseInt(runtimeService.getVariable(executionId, "nrOfCompletedInstances").toString());
Activity activity = process.getActivity();
if (nrOfCompletedInstances == nrOfInstances - 1) { if (nrOfCompletedInstances == nrOfInstances - 1) {
if (activity.getNeedConfirm() == Activity.NEED_CONFIRM) { if (process.getActivity().getNeedConfirm() == Activity.NEED_CONFIRM) {
vars.put(CtrlConstant.ACT_NEED_CONFIRM, true); vars.put(CommonConstant.ACT_NEED_CONFIRM, true);
vars.put(CtrlConstant.ACT_MANAGER, CtrlConstant.USER_NAME_MANAGER); vars.put(CommonConstant.ACT_MANAGER, CommonConstant.USER_NAME_MANAGER);
} else { } else {
vars.put(CtrlConstant.ACT_NEED_CONFIRM, false); vars.put(CommonConstant.ACT_NEED_CONFIRM, false);
// if (StringUtils.isNotEmpty(template.getBackStreamAddr())) { // if (StringUtils.isNotEmpty(template.getBackStreamAddr())) {
// vars.put(CtrlConstant.ACT_NEED_DATA_BACK_FLOW, true); // vars.put(CtrlConstant.ACT_NEED_DATA_BACK_FLOW, true);
// vars.put(CtrlConstant.ACT_BACK_FLOW_USER, ""); // vars.put(CtrlConstant.ACT_BACK_FLOW_USER, "");
// } else { // } else {
vars.put(CtrlConstant.ACT_NEED_DATA_BACK_FLOW, false); vars.put(CommonConstant.ACT_NEED_DATA_BACK_FLOW, false);
// 流程完 // 流程完
// } // }
} }
activity.setStatus(Activity.STATUS_WAIT); process.getActivity().setStatus(Activity.STATUS_WAIT);
activityService.save(activity); activityService.save(process.getActivity());
} }
} }
taskService.complete(task.getId(), vars); taskService.complete(task.getId(), vars);
......
...@@ -24,7 +24,6 @@ public class UserController { ...@@ -24,7 +24,6 @@ public class UserController {
return feignAuthService.getOrgs(); return feignAuthService.getOrgs();
} }
@ApiOperation(value = "根据组织id获取用户", hidden = true) @ApiOperation(value = "根据组织id获取用户", hidden = true)
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "orgId", value = "机构id", paramType = "query", required = true, dataType = "long") @ApiImplicitParam(name = "orgId", value = "机构id", paramType = "query", required = true, dataType = "long")
...@@ -55,6 +54,20 @@ public class UserController { ...@@ -55,6 +54,20 @@ public class UserController {
return users; return users;
} }
/**
* tree structure
*
* {
* node: {},
* subNodes: [
* {
* node: {},
* subNodes:
* []
* }
* ]
* }
*/
@ApiOperation(value = "获取补录范围用户树") @ApiOperation(value = "获取补录范围用户树")
@GetMapping(value = "/users") @GetMapping(value = "/users")
public Map getUsers() { public Map getUsers() {
......
package com.keymobile.rest.controller.constant; package com.keymobile.rest.controller.constant;
public interface CtrlConstant { public interface CommonConstant {
int TASK_TYPE_PERSONAL = 1; int TASK_TYPE_PERSONAL = 1;
int TASK_TYPE_GROUP = 2; int TASK_TYPE_GROUP = 2;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment