Commit e2891d3b by chenweisong

更新

parent ac04310b
package com.keymobile.rest.ctrl;
import com.google.common.collect.ImmutableMap;
import com.keymobile.activiti.service.formService.FormExcelFileService;
import com.keymobile.activiti.utils.DateUtil;
import com.keymobile.rest.model.Excel;
import com.keymobile.rest.model.RecordInfo;
import com.keymobile.rest.model.Task;
import com.keymobile.rest.model.User;
import com.keymobile.rest.service.ExcelService;
import com.keymobile.rest.service.RecordDataService;
import com.keymobile.rest.service.*;
import com.keymobile.rest.service.TaskService;
import com.keymobile.rest.service.UserService;
import com.keymobile.rest.vo.DataVo;
import com.keymobile.rest.vo.ExcelVO;
import com.sun.xml.internal.ws.wsdl.writer.document.ParamType;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.activiti.engine.*;
import org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
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 java.sql.Timestamp;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RestController
@RequestMapping(path = "/api")
......@@ -35,8 +46,26 @@ public class IndexCtrl {
@Autowired
private RecordDataService recordDataService;
@Autowired
private RecordInfoService recordInfoService;
@Autowired
private UserService userService;
@Autowired
private RepositoryService repositoryService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private org.activiti.engine.TaskService engineTaskService;
@Autowired
private HistoryService historyService;
@Autowired
private ProcessEngineConfigurationImpl processEngineConfiguration;
@Autowired
private FormExcelFileService formExcelFileService;
@Value("${app.active-process}")
private String process;
@ApiOperation(value = "获取首页收数列表")
@PostMapping(value = "/task/list")
public Map getTaskList(@RequestParam Integer pageNo, @RequestParam Integer pageSize, @RequestParam(required = false) String name) {
......@@ -70,14 +99,71 @@ public class IndexCtrl {
@PostMapping(value = "/task/create")
public Map createTask(@RequestParam String name, @RequestParam Integer type,
@RequestParam(required = false) String startAt, @RequestParam(required = false) String userIds, @RequestParam(required = false) String excelIds) {
long id = taskService.create(name, type, startAt, userIds, excelIds);
Task task = new Task();
Timestamp now = Timestamp.valueOf(DateUtil.getDateTime());
task.setCreateAt(now);
task.setStatus(Task.STATUS_UNRELEASED);
task.setJudge(Task.JUDGE_NEED);
task.setName(name);
task.setType(type);
if (type == Task.TYPE_AUTO) {
task.setStartAt(Timestamp.valueOf(startAt));
}
task.setUser(userService.getManager());
long id = taskService.save(task);
// 新建excel实例
if (excelIds != null) {
String[] excelIdArr = excelIds.split(",");
List<Long> ids = Arrays.asList(excelIdArr).stream().map(Long::parseLong).collect(Collectors.toList());
List<Excel> excelList = excelService.findAllByIdIn(ids);
excelList.forEach(excel -> {
excel.setTask(task);
// 新建补录人员任务关联
if (userIds != null) {
String[] userStrIdArr = userIds.split(",");
List<Long> userIdList = Arrays.asList(userStrIdArr).stream().map(Long::parseLong).collect(Collectors.toList());
List<User> userList = userService.findAllByIdIn(userIdList);
userList.forEach(user -> {
RecordInfo info = new RecordInfo();
info.setUser(user);
info.setExcel(excel);
info.setCreateAt(now);
recordInfoService.save(info);
});
}
});
excelService.saveAll(excelList);
}
return ImmutableMap.of("code", 200, "data", id);
}
@ApiOperation(value = "手动发起收数")
@PostMapping(value = "/task/start")
public Map startTask(@RequestParam int id) {
taskService.start(id);
Task task = taskService.get(id);
// 启动流程
// 获取流的引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Deployment deploy = processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource(process)
.deploy();
ProcessDefinition processDefinition = processEngine.getRepositoryService().createProcessDefinitionQuery().deploymentId(deploy.getId()).singleResult();
ProcessInstance processInstance = processEngine.getRuntimeService()
.startProcessInstanceByKey(processDefinition.getKey());
org.activiti.engine.task.Task resultTask = processEngine.getTaskService().createTaskQuery().processInstanceId(processInstance.getId()).
taskInvolvedUser("管理").singleResult();
//直接提交标准到下个节点
processEngine.getTaskService().claim(resultTask.getId(), "管理");
//保存审批意见
processEngine.getTaskService().addComment(resultTask.getId(), processInstance.getId(), "");
//审批任务
processEngine.getTaskService().complete(resultTask.getId());
return ImmutableMap.of("code", 200);
}
......@@ -85,7 +171,6 @@ public class IndexCtrl {
@ApiOperation(value = "审核通过收数")
@PostMapping(value = "/task/pass")
public Map passTask(@RequestParam int id) {
taskService.pass(id);
return ImmutableMap.of("code", 200);
}
......@@ -93,7 +178,6 @@ public class IndexCtrl {
@ApiOperation(value = "审核驳回收数")
@PostMapping(value = "/task/reject")
public Map rejectTask(@RequestParam int id) {
taskService.reject(id);
return ImmutableMap.of("code", 200);
}
......@@ -114,7 +198,10 @@ public class IndexCtrl {
@ApiOperation(value = "新建模板")
@PostMapping(value = "/excel/create")
public Map saveExcel(@RequestParam String config, @RequestParam(required = false) String desc) {
long id = excelService.create(config, desc);
Excel excel = new Excel();
excel.setConfig(config);
excel.setDesc(config);
long id = excelService.save(excel);
return ImmutableMap.of("code", 200, "data", id);
}
......@@ -122,7 +209,11 @@ public class IndexCtrl {
@ApiOperation(value = "填写补录数据")
@PostMapping(value = "/excel/saveData")
public Map saveRecordData(DataVo vo) {
recordDataService.create(vo);
// Excel excel = new Excel();
// excel.setConfig(config);
// excel.setDesc(config);
// long id = excelService.save(excel);
// recordDataService.save(vo);
return ImmutableMap.of("code", 200);
}
......
......@@ -6,6 +6,8 @@ import com.keymobile.rest.vo.ExcelVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ExcelService {
......@@ -18,12 +20,16 @@ public class ExcelService {
@Autowired
private RecordInfoDao recordInfoDao;
public long create(String config, String desc) {
Excel excel = new Excel();
excel.setConfig(config);
excel.setDesc(desc);
public long save(Excel excel) {
excelDao.save(excel);
return excel.getId();
}
public List<Excel> findAllByIdIn(List<Long> ids) {
return excelDao.findAllByIdIn(ids);
}
public void saveAll(List<Excel> excelList) {
excelDao.saveAll(excelList);
}
}
package com.keymobile.rest.service;
import com.keymobile.rest.dao.ExcelDao;
import com.keymobile.rest.dao.RecordInfoDao;
import com.keymobile.rest.dao.TaskDao;
import com.keymobile.rest.dao.UserDao;
import com.keymobile.rest.dao.*;
import com.keymobile.rest.model.RecordData;
import com.keymobile.rest.vo.DataVo;
import com.keymobile.rest.vo.ExcelVO;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -11,18 +9,10 @@ import org.springframework.stereotype.Service;
@Service
public class RecordDataService {
private RecordDataDao recordDataDao;
@Autowired
private TaskDao taskDao;
@Autowired
private UserDao userDao;
@Autowired
private ExcelDao excelDao;
@Autowired
private RecordInfoDao recordInfoDao;
public int create(DataVo vo) {
return 0;
public long save(RecordData recordData) {
recordDataDao.save(recordData);
return recordData.getId();
}
}
package com.keymobile.rest.service;
import com.keymobile.rest.dao.*;
import com.keymobile.rest.model.RecordData;
import com.keymobile.rest.model.RecordInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class RecordInfoService {
private RecordInfoDao recordInfoDao;
public long save(RecordInfo recordInfo) {
recordInfoDao.save(recordInfo);
return recordInfo.getId();
}
}
package com.keymobile.rest.service;
import com.keymobile.activiti.utils.DateUtil;
import com.keymobile.rest.dao.ExcelDao;
import com.keymobile.rest.dao.RecordInfoDao;
import com.keymobile.rest.dao.TaskDao;
import com.keymobile.rest.dao.UserDao;
import com.keymobile.rest.model.Excel;
import com.keymobile.rest.model.RecordInfo;
import com.keymobile.rest.model.Task;
import com.keymobile.rest.model.User;
import javassist.compiler.ast.ASTList;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import java.sql.Array;
import java.sql.Timestamp;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Service(value = "ApiTaskService")
public class TaskService {
@Autowired
private TaskDao taskDao;
@Autowired
private UserDao userDao;
@Autowired
private ExcelDao excelDao;
@Autowired
private RecordInfoDao recordInfoDao;
@Value("${}")
private String PRO = "";
public Task get(long id) {
return taskDao.getOne(id);
}
public long create(String name, Integer type, String startAt, String userIds, String excelIds) {
Timestamp now = Timestamp.valueOf(DateUtil.getDateTime());
Task task = new Task();
task.setCreateAt(now);
task.setStatus(Task.STATUS_UNRELEASED);
task.setJudge(Task.JUDGE_NEED);
task.setName(name);
task.setType(type);
if (type == Task.TYPE_AUTO) {
task.setStartAt(Timestamp.valueOf(startAt));
}
task.setUser(getLoginUser());
public long save(Task task) {
taskDao.save(task);
// 新建excel实例
if (excelIds != null) {
String[] excelIdArr = excelIds.split(",");
List<Long> ids = Arrays.asList(excelIdArr).stream().map(Long::parseLong).collect(Collectors.toList());
List<Excel> excelList = excelDao.findAllByIdIn(ids);
excelList.forEach(excel -> {
excel.setTask(task);
// 新建补录人员任务关联
if (userIds != null) {
String[] userStrIdArr = userIds.split(",");
List<Long> userIdList = Arrays.asList(userStrIdArr).stream().map(Long::parseLong).collect(Collectors.toList());
List<User> userList = userDao.findAllByIdIn(userIdList);
userList.forEach(user -> {
RecordInfo info = new RecordInfo();
info.setUser(user);
info.setExcel(excel);
info.setCreateAt(now);
recordInfoDao.save(info);
});
}
});
excelDao.saveAll(excelList);
}
return task.getId();
}
public void start(long id) {
Task task = taskDao.getOne(id);
// 启动流程
// 获取流的引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("demo.bpmn")
.addClasspathResource("demo.bpmn.png")
.deploy();
}
public void pass(long id) {
}
public void reject(long id) {
}
public Page<Task> findAll(int pageNo, int pageSize) {
Pageable pageable = convert(pageNo, pageSize);
return taskDao.findAll(pageable);
......@@ -152,10 +69,4 @@ public class TaskService {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return pageable;
}
private User getLoginUser() {
List<User> userList = userDao.findAllByRole(User.ROLE_MANAGER);
User user = userList.get(0);
return user;
}
}
......@@ -18,4 +18,13 @@ public class UserService {
}
public User getManager() {
List<User> userList = userDao.findAllByRole(User.ROLE_MANAGER);
User user = userList.get(0);
return user;
}
public List<User> findAllByIdIn(List<Long> ids) {
return userDao.findAllByIdIn(ids);
}
}
......@@ -3,7 +3,7 @@
<process id="testProcess" isClosed="false" isExecutable="true" name="Test process" processType="None">
<startEvent id="startevent1" name="流程开始"/>
<endEvent id="endevent1" name="End"/>
<userTask activiti:candidateUsers="${activityDemoServiceImpl.findUsersForSP(execution)}" activiti:exclusive="true" id="usertask2" name="审批数据"/>
<userTask activiti:assignee="chenws" activiti:candidateUsers="${activityDemoServiceImpl.findUsersForSP(execution)}" activiti:exclusive="true" id="usertask2" name="审批数据"/>
<exclusiveGateway gatewayDirection="Unspecified" id="exclusivegateway3" name="Exclusive Gateway"/>
<serviceTask activiti:exclusive="true" activiti:expression="#{activityDemoServiceImpl.updateBizStatus(execution,&quot;qf&quot;)}" id="servicetask2" name="数据符合"/>
<serviceTask activiti:exclusive="true" activiti:expression="#{activityDemoServiceImpl.updateBizStatus(execution,&quot;bq&quot;)}" id="servicetask3" name="数据填写不符合"/>
......@@ -11,11 +11,11 @@
<sequenceFlow id="flow6" skipExpression="${sign=='true'}" sourceRef="exclusivegateway3" targetRef="servicetask2"/>
<sequenceFlow id="flow7" sourceRef="servicetask2" targetRef="endevent1"/>
<sequenceFlow id="flow8" skipExpression="${sign=='false'}" sourceRef="exclusivegateway3" targetRef="servicetask3"/>
<userTask activiti:async="false" activiti:exclusive="true" id="_2" name="发起流程"/>
<userTask activiti:assignee="管理" activiti:async="false" activiti:exclusive="true" id="_2" name="发起流程"/>
<sequenceFlow id="_3" sourceRef="startevent1" targetRef="_2"/>
<userTask activiti:exclusive="true" id="_4" name="添加补录模板"/>
<userTask activiti:assignee="管理" activiti:exclusive="true" id="_4" name="添加补录模板"/>
<sequenceFlow id="_5" sourceRef="_2" targetRef="_4"/>
<userTask activiti:exclusive="true" id="_6" name="补录人员填写模板"/>
<userTask activiti:assignee="chenws" activiti:exclusive="true" id="_6" name="补录人员填写模板"/>
<sequenceFlow id="_7" sourceRef="_4" targetRef="_6"/>
<sequenceFlow id="_8" sourceRef="_6" targetRef="usertask2"/>
<sequenceFlow id="_9" sourceRef="servicetask3" targetRef="_6"/>
......@@ -59,7 +59,7 @@
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
<omgdc:Bounds height="55.0" width="105.0" x="415.0" y="155.0"/>
<omgdc:Bounds height="55.0" width="105.0" x="420.0" y="155.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
......@@ -84,8 +84,8 @@
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_5" id="BPMNEdge__5" sourceElement="_2" targetElement="_4">
<omgdi:waypoint x="467.5" y="210.0"/>
<omgdi:waypoint x="467.5" y="235.0"/>
<omgdi:waypoint x="470.0" y="210.0"/>
<omgdi:waypoint x="470.0" y="235.0"/>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
......
mongodb:
uri: 127.0.0.1:27017
database: dev0
username: root
username: root
password: dataPlatform
maxConnectionIdleTime: 600000
......@@ -11,22 +11,22 @@ spring:
jpa:
show-sql: true
database-platform: org.hibernate.dialect.MySQL5Dialect
# hibernate:
# ddl-auto: update
# hibernate:
# ddl-auto: update
datasource:
url: jdbc:mysql://47.105.193.165:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
username: root
password: 123456
hikari:
maximum-pool-size: 3
servlet:
multipart:
servlet:
multipart:
max-file-size: 20Mb
max-request-size: 100Mb
# session:
# store-type: redis
# redis:
# namespace: dataplatformtst
# session:
# store-type: redis
# redis:
# namespace: dataplatformtst
redis:
host: 127.0.0.1
port: 6379
......@@ -48,6 +48,8 @@ server:
# hostname: 192.168.0.13
app:
active-process: RecordProcess.bpmn
security:
permit: true
......
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