Commit ed1caec6 by chenweisong

更新

parent 35feaef5
......@@ -164,7 +164,7 @@
</dependencies>
</dependencyManagement>
<build>
<finalName>admin</finalName>
<finalName>record-demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
......
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
......@@ -33,39 +33,39 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("service")
public class ModelEditorJsonRestResource implements ModelDataJsonConstants {
protected static final Logger LOGGER = LoggerFactory.getLogger(ModelEditorJsonRestResource.class);
@Autowired
private RepositoryService repositoryService;
@Autowired
private ObjectMapper objectMapper;
@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());
protected static final Logger LOGGER = LoggerFactory.getLogger(ModelEditorJsonRestResource.class);
@Autowired
private RepositoryService repositoryService;
@Autowired
private ObjectMapper objectMapper;
@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);
}
}
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;
}
return modelNode;
}
}
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
......@@ -37,52 +37,52 @@ import java.io.InputStream;
@RestController
@RequestMapping("service")
public class ModelSaveRestResource implements ModelDataJsonConstants {
protected static final Logger LOGGER = LoggerFactory.getLogger(ModelSaveRestResource.class);
@Autowired
private RepositoryService repositoryService;
@Autowired
private ObjectMapper objectMapper;
@RequestMapping(value="/model/{modelId}/save", method = RequestMethod.PUT)
@ResponseStatus(value = HttpStatus.OK)
public void saveModel(@PathVariable String modelId
, String name, String description
, String json_xml, String svg_xml) {
try {
Model model = repositoryService.getModel(modelId);
ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model.getMetaInfo());
modelJson.put(MODEL_NAME, name);
modelJson.put(MODEL_DESCRIPTION, description);
model.setMetaInfo(modelJson.toString());
model.setName(name);
repositoryService.saveModel(model);
repositoryService.addModelEditorSource(model.getId(), json_xml.getBytes("utf-8"));
InputStream svgStream = new ByteArrayInputStream(svg_xml.getBytes("utf-8"));
TranscoderInput input = new TranscoderInput(svgStream);
PNGTranscoder transcoder = new PNGTranscoder();
// Setup output
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
TranscoderOutput output = new TranscoderOutput(outStream);
// Do the transformation
transcoder.transcode(input, output);
final byte[] result = outStream.toByteArray();
repositoryService.addModelEditorSourceExtra(model.getId(), result);
outStream.close();
} catch (Exception e) {
LOGGER.error("Error saving model", e);
throw new ActivitiException("Error saving model", e);
protected static final Logger LOGGER = LoggerFactory.getLogger(ModelSaveRestResource.class);
@Autowired
private RepositoryService repositoryService;
@Autowired
private ObjectMapper objectMapper;
@RequestMapping(value = "/model/{modelId}/save", method = RequestMethod.PUT)
@ResponseStatus(value = HttpStatus.OK)
public void saveModel(@PathVariable String modelId
, String name, String description
, String json_xml, String svg_xml) {
try {
Model model = repositoryService.getModel(modelId);
ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model.getMetaInfo());
modelJson.put(MODEL_NAME, name);
modelJson.put(MODEL_DESCRIPTION, description);
model.setMetaInfo(modelJson.toString());
model.setName(name);
repositoryService.saveModel(model);
repositoryService.addModelEditorSource(model.getId(), json_xml.getBytes("utf-8"));
InputStream svgStream = new ByteArrayInputStream(svg_xml.getBytes("utf-8"));
TranscoderInput input = new TranscoderInput(svgStream);
PNGTranscoder transcoder = new PNGTranscoder();
// Setup output
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
TranscoderOutput output = new TranscoderOutput(outStream);
// Do the transformation
transcoder.transcode(input, output);
final byte[] result = outStream.toByteArray();
repositoryService.addModelEditorSourceExtra(model.getId(), result);
outStream.close();
} catch (Exception e) {
LOGGER.error("Error saving model", e);
throw new ActivitiException("Error saving model", e);
}
}
}
}
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
......@@ -27,15 +27,15 @@ import java.io.InputStream;
@RestController
@RequestMapping("service")
public class StencilsetRestResource {
@RequestMapping(value="/editor/stencilset", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
public @ResponseBody
String getStencilset() {
InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("static/stencilsetCN.json");
try {
return IOUtils.toString(stencilsetStream, "gbk");
} catch (Exception e) {
throw new ActivitiException("Error while loading stencil set", e);
@RequestMapping(value = "/editor/stencilset", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
public @ResponseBody
String getStencilset() {
InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("static/stencilsetCN.json");
try {
return IOUtils.toString(stencilsetStream, "gbk");
} catch (Exception e) {
throw new ActivitiException("Error while loading stencil set", e);
}
}
}
}
......@@ -11,9 +11,9 @@ public class ActivitiConfig implements ProcessEngineConfigurationConfigurer {
processEngineConfiguration.setActivityFontName("宋体");
processEngineConfiguration.setLabelFontName("宋体");
processEngineConfiguration.setAnnotationFontName("宋体");
processEngineConfiguration.setDbIdentityUsed(false);
processEngineConfiguration.setDatabaseSchemaUpdate("true");
}
}
\ No newline at end of file
......@@ -32,6 +32,6 @@ public class ExceptionHandlerConfig {
return ApiResponse.fail(ApiConstant.FAILED_CODE, ex.getMessage());
}
logger.error("访问出错:", ex);
return ApiResponse.fail(ApiConstant.FAILED_CODE, "网络不给力");
return ApiResponse.fail(ApiConstant.FAILED_CODE, "服务器内部出错");
}
}
......@@ -13,8 +13,8 @@ import org.springframework.security.crypto.password.PasswordEncoder;
import javax.sql.DataSource;
@Configuration
@ComponentScan("com.keymobile.auth.common.security")
//@Configuration
//@ComponentScan("com.keymobile.auth.common.security")
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
......
package com.keymobile.rest.common.constant;
public interface AssignmentConstant {
int TYPE_AUTO = 2;
int TYPE_MANUAL = 1;
int NEED_AUDIT = 1;
int NO_NEED_AUDIT = 2;
// 报送频度 按年 按年 按周 按月 按日 自动推送
int FREQ_YEAR = 1;
int FREQ_WEEK = 2;
int FREQ_MONTH = 3;
int FREQ_DAY = 4;
}
package com.keymobile.rest.common.constant;
public interface TemplateConstant {
}
package com.keymobile.rest.common.constant;
public interface UserConstant {
int ROLE_NORMAL = 1;
int ROLE_AUDIT = 2;
int ROLE_MANAGER = 3;
}
......@@ -16,7 +16,7 @@ import java.util.List;
@Api(value = "模板控制器")
@RestController
@RequestMapping(path = "/api/excel")
@RequestMapping(path = "/api")
public class ExcelController {
// @Autowired
......
package com.keymobile.rest.controller;
import com.keymobile.rest.common.utils.DateUtil;
import io.swagger.annotations.ApiOperation;
import org.activiti.engine.HistoryService;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Comment;
import org.activiti.engine.task.Task;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.util.*;
@RestController
@RequestMapping(path = "/rest/subprocess")
public class SubProcessCtrl {
private Logger logger = LoggerFactory.getLogger(SubProcessCtrl.class);
@Autowired
private RepositoryService repositoryService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
@Autowired
private HistoryService historyService;
@ApiOperation(value = "部署流程")
@PostMapping(value = "/deployment")
public String deloymentProcess(@RequestParam MultipartFile file) {
String message = null;
String fileName = file.getOriginalFilename();
try {
DeploymentBuilder deployBuilder = repositoryService.createDeployment();
if (fileName.endsWith(".bpmn")) {
Deployment deployment = deployBuilder.addInputStream(fileName, file.getInputStream()).deploy();
logger.info(deployment.getName());
logger.info(deployment.getId());
logger.info(deployment.getDeploymentTime().toString());
message = "部署流程成功";
} else {
message = "上传文件格式不是bpmn";
}
} catch (Exception e) {
e.printStackTrace();
message = "部署流程发生未知错误";
}
return message;
}
@ApiOperation(value = "发起流程并录入")
@PostMapping(value = "/startProcessAndSubmit")
public String startProcess(@RequestParam String processKey,
@RequestParam String inputUser) {
StringBuilder message = new StringBuilder();
message.append("");
ProcessInstance pi = null;
try {
Map<String, Object> variables = new HashMap<>();
variables.put("inputUser", inputUser);
//启动流程
pi = runtimeService.startProcessInstanceByKey(processKey, variables);
//根据流程实例id和发起流程用户获取当前任务
Task resultTask = taskService.createTaskQuery().processInstanceId(pi.getId()).
taskInvolvedUser(inputUser).singleResult();
//直接提交标准到下个节点
taskService.claim(resultTask.getId(), inputUser);
//保存审批意见
taskService.addComment(resultTask.getId(), pi.getId(), "");
//审批任务
taskService.complete(resultTask.getId());
logger.info("流程启动成功,流程id:" + pi.getId() + ",当前任务id:" + resultTask.getId());
message.append("流程启动成功,流程id:").append(pi.getId());
} catch (Exception e) {
e.printStackTrace();
message.append("流程启动发生未知错误");
}
return message.toString();
}
@ApiOperation(value = "获取待办任务列表")
@PostMapping(value = "/getTaskListByUser")
public List<Map<String, Object>> getTaskListByUser(@RequestParam String user) {
List<Map<String, Object>> result = new ArrayList<>();
List<Task> resultTask = taskService.createTaskQuery().
taskInvolvedUser(user).list();
for (Task task : resultTask) {
Map<String, Object> map = new HashMap<>();
map.put("taskId", task.getId());
map.put("name", task.getName());
map.put("createTime", DateUtil.formatDate(task.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
map.put("processInstanceId", task.getProcessInstanceId());
result.add(map);
}
return result;
}
@ApiOperation(value = "审批任务")
@PostMapping(value = "/completeTask")
public String completeTask(@RequestParam String taskId,
@RequestParam String user,
@RequestParam(value = "result", required = false) String result,
@RequestParam(value = "assignees", required = false) String assignees,
@RequestParam String processInstanceId,
@RequestParam(value = "comment", required = false) String comment,
@RequestParam(value = "applySign", required = false) String applySign) {
String message = null;
try {
if (StringUtils.isBlank(comment)) {
comment = "";
}
//根据任务id获取当前任务信息
Task task = taskService.createTaskQuery() // 创建任务查询
.taskId(taskId) // 根据任务id查询
.singleResult();
Map<String, Object> vars = new HashMap<>();
//如果是开始录入环节,需要给出子任务录入人员
if (task.getTaskDefinitionKey().indexOf("startEntry") >= 0) {
if (StringUtils.isNotBlank(assignees)) {
String[] commentUsers = assignees.split(",");
vars.put("candiateUserList", Arrays.asList(commentUsers));
}
}
//认领任务
taskService.setAssignee(taskId, user);
//保存审批意见
taskService.addComment(taskId, processInstanceId, comment);
//如果需要动态设置参与者
if (task.getTaskDefinitionKey().indexOf("startEntry") < 0) {
if (StringUtils.isNotBlank(assignees)) {
vars.put("inputDataApply", assignees);
}
}
//如果需要审批结果
if (StringUtils.isNotBlank(result)) {
vars.put("_ACTIVITI_SKIP_EXPRESSION_ENABLED", true);
vars.put("sign", result);
}
//是否跳过负责人审批环节
if (StringUtils.isNotBlank(applySign)) {
vars.put("_ACTIVITI_SKIP_EXPRESSION_ENABLED", true);
vars.put("applySign", applySign);
}
taskService.complete(taskId, vars);
message = "审批成功";
} catch (Exception e) {
e.printStackTrace();
message = "审批失败";
}
return message;
}
@ApiOperation(value = "获取审批详情")
@PostMapping(value = "/getTaskDetail")
public List<Map<String, Object>> getTaskDetail(@RequestParam String processInstanceId) {
List<Map<String, Object>> details = new ArrayList<>();
List<HistoricTaskInstance> htiList = historyService.createHistoricTaskInstanceQuery()//历史任务表查询
.processInstanceId(processInstanceId)//使用流程实例ID查询
.orderByTaskCreateTime().asc()//根据任务创建时间进行排序
.list();
for (HistoricTaskInstance hti : htiList) {
Map<String, Object> detail = new HashMap<>();
//获取任务id
String taskId = hti.getId();
//根据任务id去comment表获取批注信息
List<Comment> comments = taskService.getTaskComments(taskId);
//comment不为空
if (!comments.isEmpty()) {
detail.put("taskName", hti.getName());
detail.put("assignee", hti.getAssignee());
detail.put("comment", comments.get(0).getFullMessage());
detail.put("startTime", DateUtil.formatDate(hti.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
detail.put("endTime", DateUtil.formatDate(hti.getEndTime(), "yyyy-MM-dd HH:mm:ss"));
details.add(detail);
}
}
return details;
}
}
......@@ -3,8 +3,8 @@ package com.keymobile.rest.controller;
import com.google.common.collect.ImmutableMap;
import com.keymobile.rest.common.bean.ApiResponse;
import com.keymobile.rest.common.validator.TwinkleValidator;
import com.keymobile.rest.model.Activity;
import com.keymobile.rest.model.Template;
import com.keymobile.rest.model.Assignment;
import com.keymobile.rest.model.ProcessInfo;
import com.keymobile.rest.model.User;
import com.keymobile.rest.service.TemplateService;
......@@ -59,7 +59,7 @@ public class TaskController {
@ApiOperation(value = "获取首页活动列表")
@PostMapping(value = "/list")
public ApiResponse getTaskList(@RequestParam Integer pageNo, @RequestParam Integer pageSize, @RequestParam(required = false) @ApiParam(name = "name", value = "活动名称") String name) {
Page<Assignment> taskList;
Page<Activity> taskList;
String orderBy = "descending"; //
String propBy = "id"; // groupBy
if (name != null) {
......@@ -73,9 +73,9 @@ public class TaskController {
@ApiOperation(value = "查看活动")
@PostMapping(value = "/get")
public ApiResponse get(@RequestParam @ApiParam(required = true, name = "taskId", value = "活动id") Long taskId) {
Assignment assignment = assignmentService.get(taskId);
TwinkleValidator.notNull(assignment, "活动不存在");
return ApiResponse.ok(assignment);
Activity activity = assignmentService.get(taskId);
TwinkleValidator.notNull(activity, "活动不存在");
return ApiResponse.ok(activity);
}
......@@ -84,7 +84,7 @@ public class TaskController {
public ApiResponse getMyTasks() {
User user = userService.getNormalUser();
User audit = userService.getAudit();
List<Assignment> assignmentList = new ArrayList<>();
List<Activity> activityList = new ArrayList<>();
// 获取任务
List<Task> tasks = taskService.createNativeTaskQuery()
.sql("SELECT * FROM " + managementService.getTableName(Task.class) + " T WHERE T.ASSIGNEE_ = #{assignee1} OR T.ASSIGNEE_ = #{assignee2}")
......@@ -93,14 +93,14 @@ public class TaskController {
for (Task task : tasks) {
String processId = task.getProcessInstanceId();
Assignment assignment = assignmentService.findByProcessId(processId);
Activity activity = assignmentService.findByProcessId(processId);
// if (assignment != null && assignment.getStatus() != Assignment.STATUS_COMPLETED) {
if (task.getTaskDefinitionKey().equals("addData")) {
if (task.getTaskDefinitionKey().equals("addData")) {
// assignment.setKind(Assignment.KIND_RECORD);
} else {
} else {
// assignment.setKind(Assignment.KIND_AUDIT);
}
assignmentList.add(assignment);
}
activityList.add(activity);
// }
}
......@@ -117,12 +117,12 @@ public class TaskController {
// 创建人
User manager = userService.getManager();
form.setUser(manager);
Assignment assignment = assignmentService.save(form);
Activity activity = assignmentService.save(form);
// 新建excel实例
List<ExcelForm> excelFormList = form.getExcels();
excelFormList.forEach(excelForm -> {
TwinkleValidator.notEmpty(excelForm.getUserIds(), "补录人不能为空");
excelForm.setAssignment(assignment);
excelForm.setActivity(activity);
Template template = templateService.save(excelForm);
// 新建补录人员任务关联
String[] userIds = excelForm.getUserIds().split(",");
......@@ -133,24 +133,24 @@ public class TaskController {
processInfoService.save(user, template);
});
});
return ApiResponse.ok(assignment.getId());
return ApiResponse.ok(activity.getId());
}
@ApiOperation(value = "修改活动")
@PostMapping(value = "/update")
public ApiResponse updateTask(@RequestBody JobForm form) {
TwinkleValidator.isFalse((form.getId() == null && form.getId() <= 0), "活动id不能为空");
Assignment assignment = assignmentService.get(form.getId());
TwinkleValidator.notNull(assignment, "活动不存在");
Activity activity = assignmentService.get(form.getId());
TwinkleValidator.notNull(activity, "活动不存在");
// int status = assignment.getStatus();
// TwinkleValidator.isFalse(status != Assignment.STATUS_UNRELEASED, "活动已经发起");
TwinkleValidator.notEmpty(form.getName(), "名称不能为空");
TwinkleValidator.notNull(form.getType(), "类型不能为空");
TwinkleValidator.isFalse((form.getExcels() == null || form.getExcels().size() == 0), "补录模板不能为空");
assignment.setType(form.getType());
assignment.setRemark(form.getRemark());
assignment.setName(form.getName());
assignmentService.update(assignment);
activity.setType(form.getType());
activity.setRemark(form.getRemark());
activity.setName(form.getName());
assignmentService.update(activity);
// 新建excel实例
List<ExcelForm> excelFormList = form.getExcels();
excelFormList.forEach(excelForm -> {
......@@ -162,14 +162,14 @@ public class TaskController {
template.setDataAt(excelForm.getDataAt());
templateService.update(template);
});
return ApiResponse.ok(assignment.getId());
return ApiResponse.ok(activity.getId());
}
@ApiOperation(value = "手动发起活动")
@PostMapping(value = "/start")
public ApiResponse startTask(@RequestParam Long taskId) {
Assignment assignment = assignmentService.get(taskId);
TwinkleValidator.notNull(assignment, "活动不存在");
Activity activity = assignmentService.get(taskId);
TwinkleValidator.notNull(activity, "活动不存在");
// 部署补录流程
Deployment deploy = repositoryService
.createDeployment()
......@@ -180,19 +180,19 @@ public class TaskController {
createProcessDefinitionQuery().
deploymentId(deploy.getId()).
singleResult();
String inputUser = assignment.getUser().getUsername();
String inputUser = activity.getUser().getUsername();
Map<String, Object> variables = new HashMap<>();
variables.put("managerId", inputUser);
//启动流程
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinition.getKey(), variables);
// assignment.setProcessId(processInstance.getId());
assignmentService.update(assignment);
assignmentService.update(activity);
// 发起人把流程发送到下一个人
Task resultTask = taskService.createTaskQuery().processInstanceId(processInstance.getId()).
taskInvolvedUser(inputUser).singleResult();
// 根据活动查找需要填写的人 目前只支持一人
List<Template> templateList = assignment.getTemplateList();
List<Template> templateList = activity.getTemplateList();
TwinkleValidator.notLessThan(templateList.size(), 1, "补录模板不存在");
Template template = templateList.get(0);
......@@ -206,7 +206,7 @@ public class TaskController {
@ApiOperation(value = "审核通过活动")
@PostMapping(value = "/pass")
public ApiResponse passTask(@RequestParam Long taskId) {
Assignment assignment = assignmentService.get(taskId);
Activity activity = assignmentService.get(taskId);
// 完结活动, 流程跑完
User judge = userService.getAudit();
// List<Task> taskList = taskService.createTaskQuery().processInstanceId(assignment.getProcessId())
......@@ -215,7 +215,7 @@ public class TaskController {
// Task task = taskList.get(0);
// taskService.complete(task.getId(), ImmutableMap.of("pass", "true"));
// assignment.setStatus(Assignment.STATUS_COMPLETED);
assignmentService.update(assignment);
assignmentService.update(activity);
return ApiResponse.ok();
}
......@@ -223,7 +223,7 @@ public class TaskController {
@ApiOperation(value = "审核驳回活动")
@PostMapping(value = "/reject")
public ApiResponse rejectTask(@RequestParam Long taskId) {
Assignment assignment = assignmentService.get(taskId);
Activity activity = assignmentService.get(taskId);
// 完结活动, 流程跑完
User judge = userService.getAudit();
// List<Task> taskList = taskService.createTaskQuery().processInstanceId(assignment.getProcessId())
......
package com.keymobile.rest.controller;
import com.keymobile.rest.common.bean.ApiResponse;
import com.keymobile.rest.common.constant.UserConstant;
import com.keymobile.rest.model.*;
import com.keymobile.rest.service.*;
import io.swagger.annotations.Api;
......@@ -13,7 +12,7 @@ import java.util.*;
@Api(value = "用户控制器")
@RestController
@RequestMapping(path = "/api/user")
@RequestMapping(path = "/api")
public class UserController {
@Autowired
private UserService userService;
......@@ -22,8 +21,8 @@ public class UserController {
@ApiOperation(value = "获取补录人员列表")
@PostMapping(value = "/user/list")
public ApiResponse getUserList() {
List<User> userList = userService.findAllByRole(UserConstant.ROLE_NORMAL);
return ApiResponse.ok(userList);
// List<User> userList = userService.findAllByRole(UserConstant.ROLE_NORMAL);
return ApiResponse.ok();
}
......
package com.keymobile.rest.dao;
import com.keymobile.rest.model.Assignment;
import com.keymobile.rest.model.Activity;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
public interface AssignmentDao extends JpaRepository<Assignment, Long> {
public interface AssignmentDao extends JpaRepository<Activity, Long> {
Page<Assignment> findAll(Pageable pageable);
Page<Activity> findAll(Pageable pageable);
Page<Assignment> findAllByNameLike(String valueOf, Pageable pageable);
Page<Activity> findAllByNameLike(String valueOf, Pageable pageable);
}
......@@ -19,7 +19,19 @@ import java.util.List;
@NoArgsConstructor
@Data
@Entity
public class Assignment implements Serializable {
public class Activity implements Serializable {
static int TYPE_AUTO = 2;
static int TYPE_MANUAL = 1;
static int NEED_AUDIT = 1;
static int NO_NEED_AUDIT = 2;
// 报送频度 按年 按年 按周 按月 按日 自动推送
static int FREQ_YEAR = 1;
static int FREQ_WEEK = 2;
static int FREQ_MONTH = 3;
static int FREQ_DAY = 4;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
......
package com.keymobile.rest.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
/**
* @name 机构
* @desc 包含一些活动的定义以及绑定一些spreadJs生成的excel模板
*/
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"})
@NoArgsConstructor
@Data
@Entity
public class Group implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column
private String name;
@Column
private long pid;
}
......@@ -31,5 +31,5 @@ public class Process implements Serializable {
@ManyToOne(fetch = FetchType.LAZY)
@JsonIgnore
private Assignment assignment;
private Activity activity;
}
......@@ -41,5 +41,5 @@ public class Template implements Serializable {
@ManyToOne(fetch = FetchType.LAZY)
@JsonIgnore
private Assignment assignment;
private Activity activity;
}
......@@ -13,6 +13,10 @@ import java.io.Serializable;
@Entity
public class User implements Serializable {
int ROLE_NORMAL = 1;
int ROLE_AUDIT = 2;
int ROLE_MANAGER = 3;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
......@@ -26,4 +30,6 @@ public class User implements Serializable {
@Column
private int role;
@
}
package com.keymobile.rest.service;
import com.keymobile.rest.common.constant.AssignmentConstant;
import com.keymobile.rest.common.utils.DateUtil;
import com.keymobile.rest.dao.AssignmentDao;
import com.keymobile.rest.model.Assignment;
import com.keymobile.rest.model.Activity;
import com.keymobile.rest.vo.JobForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
......@@ -13,7 +12,6 @@ import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import java.sql.Timestamp;
import java.time.LocalDateTime;
@Service
public class AssignmentService {
......@@ -21,53 +19,53 @@ public class AssignmentService {
@Autowired
private AssignmentDao assignmentDao;
public Assignment get(long id) {
public Activity get(long id) {
return assignmentDao.getOne(id);
}
public Assignment update(Assignment assignment) {
return assignmentDao.save(assignment);
public Activity update(Activity activity) {
return assignmentDao.save(activity);
}
public Assignment save(Assignment assignment) {
return assignmentDao.save(assignment);
public Activity save(Activity activity) {
return assignmentDao.save(activity);
}
public Assignment save(JobForm form) {
Assignment assignment = new Assignment();
public Activity save(JobForm form) {
Activity activity = new Activity();
Timestamp now = Timestamp.valueOf(DateUtil.getDateTime());
assignment.setCreateAt(now);
assignment.setNeedAudit(AssignmentConstant.NEED_AUDIT);
assignment.setName(form.getName());
assignment.setType(form.getType());
activity.setCreateAt(now);
activity.setNeedAudit(AssignmentConstant.NEED_AUDIT);
activity.setName(form.getName());
activity.setType(form.getType());
if (form.getType() == AssignmentConstant.TYPE_AUTO) {
}
assignment.setUser(form.getUser());
assignment = assignmentDao.save(assignment);
return assignment;
activity.setUser(form.getUser());
activity = assignmentDao.save(activity);
return activity;
}
public Assignment findByProcessId(String pid) {
public Activity findByProcessId(String pid) {
return null;
}
public Page<Assignment> findAll(int pageNo, int pageSize) {
public Page<Activity> findAll(int pageNo, int pageSize) {
Pageable pageable = convert(pageNo, pageSize);
return assignmentDao.findAll(pageable);
}
public Page<Assignment> findAllByName(String name, int pageNo, int pageSize) {
public Page<Activity> findAllByName(String name, int pageNo, int pageSize) {
Pageable pageable = convert(pageNo, pageSize);
return assignmentDao.findAllByNameLike(("%" + name + "%"), pageable);
}
public Page<Assignment> findAll(int pageNo, int pageSize, String orderBy, String propBy) {
public Page<Activity> findAll(int pageNo, int pageSize, String orderBy, String propBy) {
Pageable pageable = convert(pageNo, pageSize, orderBy, propBy);
return assignmentDao.findAll(pageable);
}
public Page<Assignment> findAllByName(String name, int pageNo, int pageSize, String orderBy, String propBy) {
public Page<Activity> findAllByName(String name, int pageNo, int pageSize, String orderBy, String propBy) {
Pageable pageable = convert(pageNo, pageSize, orderBy, propBy);
return assignmentDao.findAllByNameLike(("%" + name + "%"), pageable);
}
......
......@@ -22,7 +22,7 @@ public class TemplateService {
template.setDataAt(1);
template.setConfig(form.getConfig());
template.setRemark(form.getRemark());
template.setAssignment(form.getAssignment());
template.setActivity(form.getActivity());
Timestamp now = Timestamp.valueOf(DateUtil.getDateTime());
template.setCreateAt(now);
template = templateDao.save(template);
......
package com.keymobile.rest.service;
import com.keymobile.rest.common.constant.UserConstant;
import com.keymobile.rest.dao.UserDao;
import com.keymobile.rest.model.User;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.keymobile.rest.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.keymobile.rest.model.Assignment;
import com.keymobile.rest.model.Activity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -34,5 +34,5 @@ public class ExcelForm {
private Integer dataAt;
@JsonIgnore
private Assignment assignment;
private Activity activity;
}
......@@ -61,7 +61,7 @@ So in order to run the tests against the built-in methods, invalidate that file
fine across legacy engines.
/!\ Object.create(null) will work only in browsers that
support prototype assignment. This creates an object
support prototype activity. This creates an object
that does not have any properties inherited from
Object.prototype. It will silently fail otherwise.
......
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