修复工作流全部错误完成(都添加了TODO)

This commit is contained in:
xuetao.li
2023-04-17 17:51:27 +08:00
parent 0d878d45cb
commit 61c65f1b50
30 changed files with 368 additions and 465 deletions
@@ -3,6 +3,7 @@ package com.adc.da.wkflow.business_activiti.task;
import com.adc.da.sys.entity.UserEO;
import com.adc.da.sys.service.UserEOServiceImpl;
import com.adc.da.sys.service.iservice.IUserEoService;
import com.adc.da.wkflow.business_main.service.IBusProcessApproveService;
import com.adc.da.wkflow.business_main.service.IBusProcessNewService;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -46,6 +47,12 @@ public class TaskController {
@Autowired
private IBusProcessNewService iBusProcessNewService;
@Autowired
private IBusProcessApproveService iBusProcessEntrustService;
@Autowired
private IBusProcessApproveService iBusProcessApproveService;
@ApiOperation(value = "流程实例明细列表")
@ApiImplicitParam(name = "prcNum", value = "流程实例id")
@GetMapping("/get_list_by_instance")
@@ -89,37 +96,38 @@ public class TaskController {
if(assignee != null){
historicTaskInstance.put("assignee", assignee.getUsname());
historicTaskInstance.put("assigneeId", assignee.getUsid());
historicTaskInstance.put("orgName",assignee.getData().getOrgName());
// TODO 部门同步完成后,补充部门数据
// historicTaskInstance.put("orgName",assignee.getData().getOrgName());
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("TASK_ID",historicTaskInstance.get("id"));
queryWrapper2.orderByAsc("CREATE_TIME");
List<BusProcessEntrust> list1 = iBusProcessEntrustService.list(queryWrapper2);
String str = "";
if(list1.size()>0){
ResponseMessage<UserVO> assignee1 = userEoService.getUserById(list1.get(0).getUserId());
historicTaskInstance.put("assignee", assignee.getData().getUname()+"("+assignee1.getData().getUname()+" 委托)");
UserEO assigneenActual = userEoService.getUserById(list1.get(0).getUserId());
historicTaskInstance.put("assignee", assignee.getUsname()+"(" + assigneenActual.getUsname() + " 委托)");
}
}
}
historicTaskInstance.put("prcType",one.getPrcType());
historicTaskInstance.put("prcName",one.getPrcName());
historicTaskInstance.put("prcNum",one.getPrcNum());
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID",historicTaskInstance.get("id"));
List<BusProcessNew> list1 = iBusProcessNewService.list(queryWrapper1);
if(list1.size()>0){
historicTaskInstance.put("comment",list1.get(0).getCommitFlag());
historicTaskInstance.put("commentText",list1.get(0).getCommitText());
}else{
historicTaskInstance.put("comment","");
historicTaskInstance.put("commentText","");
}
// QueryWrapper queryWrapper1 = new QueryWrapper();
// queryWrapper1.eq("TASK_ID",historicTaskInstance.get("id"));
// List<BusProcessNew> list1 = iBusProcessNewService.list(queryWrapper1);
// if(list1.size()>0){
// historicTaskInstance.put("comment",list1.get(0).getCommitFlag());
// historicTaskInstance.put("commentText",list1.get(0).getCommitText());
// }else{
// historicTaskInstance.put("comment","");
// historicTaskInstance.put("commentText","");
// }
QueryWrapper<Datas> datasQueryWrapper = new QueryWrapper<>();
datasQueryWrapper.lambda().eq(Datas::getActiTaskId,historicTaskInstance.get("id"));
List<Datas> datasList = iDatasService.list(datasQueryWrapper);
if(datasList.size()>0){
Map<String,String> formValsJsonMap = JSONObject.parseObject(datasList.get(0).getFormValsJson(),Map.class);
QueryWrapper<BusProcessApprove> datasQueryWrapper = new QueryWrapper<>();
datasQueryWrapper.lambda().eq(BusProcessApprove::getTaskId,historicTaskInstance.get("id"));
List<BusProcessApprove> approveList = iBusProcessApproveService.list(datasQueryWrapper);
if(approveList.size()>0){
Map<String,String> formValsJsonMap = JSONObject.parseObject(approveList.get(0).getFromValsJson(),Map.class);
historicTaskInstance.put("approvalOpinion",formValsJsonMap.get("approvalOpinion"));
historicTaskInstance.put("approvalResult",formValsJsonMap.get("flag")!=null ? formValsJsonMap.get("flag"):"");
historicTaskInstance.put("approvalFile",formValsJsonMap.get("approvalFile")!=null ? formValsJsonMap.get("approvalFile"):"");
@@ -29,6 +29,7 @@ import org.activiti.engine.*;
import org.activiti.engine.history.HistoricActivityInstance;
import org.activiti.engine.history.HistoricIdentityLink;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.RepositoryServiceImpl;
import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity;
import org.activiti.engine.impl.persistence.entity.TaskEntity;
import org.activiti.engine.repository.ProcessDefinition;
@@ -63,9 +64,6 @@ public class TodoTaskController extends BaseAction {
@Autowired
private TaskTodoService taskTodoService;
@Autowired
private FormValsService formValsService;
@Autowired
private IBusProcessNewService iBusProcessNewService;
@@ -78,6 +76,9 @@ public class TodoTaskController extends BaseAction {
@Autowired
private IBusProcessEntrustService iBusProcessEntrustService;
@Autowired
private IBusProcessApproveService iBusProcessApproveService;
@Autowired
private IUserEoService userEoService;
@@ -145,9 +146,9 @@ public class TodoTaskController extends BaseAction {
if(StringUtils.isNotEmpty(taskIds)){
taskIds = taskIds.substring(0,taskIds.length()-1);
}
busProcessName.setTaskIds(taskIds);
// TODO 处理单个任务id的情况
busProcessName.setTaskId(taskIds);
busProcessName.setTaskInfo(entry.getValue().get(0).get("name").toString());
busProcessName.setMes(null);
busProcessName.setTaskDefinitionKey(entry.getValue().get(0).get("taskDefinitionKey").toString());
todoList.add(busProcessName);
}
@@ -160,7 +161,7 @@ public class TodoTaskController extends BaseAction {
@ApiImplicitParam(name = "assignee", value = "改派人员")})
@GetMapping("/changeAssignee")
public Wrapper<String> run(String taskId, String assignee) {
taskService.setAssignee(taskId, assignee);
this.taskService.setAssignee(taskId, assignee);
logger.info("task {} find " + taskId);
return WrapMapper.ok("改派成功");
@@ -221,12 +222,13 @@ public class TodoTaskController extends BaseAction {
taskService.claim(busMes.getTaskId(), busMes.getUserId());
}
// TODO 存储表单json到对应的 审批历史表
FormSubmitDto formSubmitDto = new FormSubmitDto();
formSubmitDto.setForm(busMes.getJson());
formSubmitDto.setTask_id(busMes.getTaskId());
formValsService.saveFormVals(formSubmitDto, task.getTaskDefinitionKey());
// TODO 存储表单json到对应的 审批历史表(BusProcessApprove)中 --- start
// FormSubmitDto formSubmitDto = new FormSubmitDto();
// formSubmitDto.setForm(busMes.getJson());
// formSubmitDto.setTask_id(busMes.getTaskId());
//
// formValsService.saveFormVals(formSubmitDto, task.getTaskDefinitionKey());
// TODO 存储表单json到对应的 审批历史表中 --- end
taskService.complete(busMes.getTaskId());
}
@@ -333,136 +335,64 @@ public class TodoTaskController extends BaseAction {
}
BusProcessNew processNew = new BusProcessNew();
JSONObject object = JSONObject.parseObject(list.get(0).getMesg());
object.put("taskId", list.get(0).getTaskId());
BeanUtils.copyProperties(list.get(0), processNew);
processNew.setMesg(object.toJSONString());
// TODO 去对应的业务表中找相应的ID --- start
// JSONObject object = JSONObject.parseObject(list.get(0).getMesg());
// object.put("taskId", list.get(0).getTaskId());
// BeanUtils.copyProperties(list.get(0), processNew);
// processNew.setMesg(object.toJSONString());
// TODO 去对应的业务表中找相应的ID --- end
return processNew;
}
@ApiOperation(value = "保存任务")
@PostMapping("/saveinboundTask")
public Wrapper<String> saveinboundTask(@RequestBody ApproveDataVO busMes) {
BusProcessNew processNew = new BusProcessNew();
if (busMes.getTaskIds() != null && !busMes.getTaskIds().equals("")) {
List<String> list = Arrays.asList(busMes.getTaskIds().split(","));
JSONObject ooo = JSONObject.parseObject(busMes.getJson());
for (String str : list) {
JSONArray taskBreak = JSONObject.parseObject(busMes.getJson()).getJSONArray("taskBreak");
int k = 0;
for (Object obj : taskBreak) {
JSONArray itemsList = ((JSONObject) obj).getJSONArray("itemsList");
if (itemsList.size() > 0) {
//有条款
JSONArray items = new JSONArray();
for (int i = 0; i < itemsList.size(); i++) {
JSONObject item = itemsList.getJSONObject(i);
if (item.getString("taskId").equals(str)) {
JSONObject data = item;
JSONArray array = new JSONArray();
array.add(data);
JSONObject.parseObject(busMes.getJson()).put("itemsList", array);
((JSONObject) obj).put("itemsList", array);
JSONArray array1 = new JSONArray();
array1.add(obj);
ooo.put("taskBreak", array1);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("task_id", str);
processNew = iBusProcessNewService.getOne(queryWrapper);
processNew.setMesg(JSON.toJSONString(ooo, SerializerFeature.DisableCircularReferenceDetect));
iBusProcessNewService.saveOrUpdate(processNew);
}
}
} else {
//没条款
Map map = ((Map) obj);
if (map.get("taskId").toString().equals(str)) {
JSONObject data = (JSONObject) map;
JSONArray array = new JSONArray();
array.add(data);
ooo.put("taskBreak", array);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("task_id", str);
processNew = iBusProcessNewService.getOne(queryWrapper);
processNew.setMesg(JSON.toJSONString(ooo, SerializerFeature.DisableCircularReferenceDetect));
iBusProcessNewService.saveOrUpdate(processNew);
}
}
k++;
}
}
}
return WrapMapper.ok("保存成功");
}
/**
* 本接口仅提供法规系统调用
*
* @param busMes
*/
@ApiOperation(value = "公共保存")
@PostMapping("/saveTaskForPub")
public Wrapper<String> saveTaskForPub(@RequestBody ApproveDataVO busMes) {
JSONObject object = JsonUtil.jsonStrToJsonObject(busMes.getJson());
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("TASK_ID", busMes.getTaskIds().substring(0, busMes.getTaskIds().length() - 1));
List<BusProcessNew> busProcessNewList = iBusProcessNewService.list(queryWrapper);
if (busProcessNewList != null && !busProcessNewList.isEmpty()) {
BusProcessNew one = busProcessNewList.get(0);
one.setMesg(object.toString());
iBusProcessNewService.saveOrUpdate(one);
return WrapMapper.ok("保存成功");
}
return WrapMapper.error("保存失败");
}
/**
* 保存任务第一步
*
* @param busMes
*/
@ApiOperation(value = "保存任务第一步")
@PostMapping("/saveTaskFirst")
public Wrapper<String> saveTaskFirst(@RequestBody ApproveDataVO busMes) {
ApproveDataVO busMes1 = new ApproveDataVO();
if (busMes.getId() != null && !busMes.getId().equals("")) {
busMes1.setId(busMes.getId());
public Wrapper<String> saveTaskFirst(@RequestBody ApproveDataVO approveDataVO) {
String saveId = null;
if (approveDataVO.getId() != null && !approveDataVO.getId().equals("")) {
saveId = approveDataVO.getId();
QueryWrapper<BusProcessName> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("CREAT_USER", busMes.getCreateUser());
queryWrapper.eq("PRC_TYPE", busMes.getPrcType());
queryWrapper.eq("ID", busMes.getId());
queryWrapper.eq("CREAT_USER", approveDataVO.getCreateUser());
queryWrapper.eq("PRC_TYPE", approveDataVO.getPrcType());
queryWrapper.eq("ID", approveDataVO.getId());
queryWrapper.isNull("PRC_ID");
List<BusProcessName> list = iBusProcessNameService.list(queryWrapper);
if (list != null && list.size() > 0) {
BusProcessName busProcessName = list.get(0);
busProcessName.setMes(busMes.getJson());
busProcessName.setSubmitStatus(SubmitStatusEnum.DRAFT.getValue());
iBusProcessNameService.saveOrUpdate(busProcessName);
// TODO 先存到业务表单中,再存入busProcessName --start
// busProcessName.setMes(approveDataVO.getSubmitJson());
// busProcessName.setSubmitStatus(SubmitStatusEnum.DRAFT.getValue());
// iBusProcessNameService.saveOrUpdate(busProcessName);
// TODO 先存到业务表单中,再存入busProcessName --end
}
} else {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(new Date());
BusProcessName busProcessName = new BusProcessName();
busProcessName.setPrcType(busMes.getPrcType());
busProcessName.setCreatUser(busMes.getCreateUser());
busProcessName.setCreatTime(time);
busProcessName.setMes(busMes.getJson());
busProcessName.setCreatUserName(busMes.getCreateUserName());
busProcessName.setSubmitStatus(SubmitStatusEnum.DRAFT.getValue());
iBusProcessNameService.save(busProcessName);
QueryWrapper<BusProcessName> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("CREAT_TIME", time);
queryWrapper.eq("CREATE_USER_NAME", busMes.getCreateUserName());
queryWrapper.eq("PRC_TYPE", busMes.getPrcType());
queryWrapper.eq("CREAT_USER", busMes.getCreateUser());
BusProcessName one = iBusProcessNameService.getOne(queryWrapper);
busMes1.setId(one.getId());
// TODO 先存到业务表单中,再存入busProcessName --start
// busProcessName.setPrcType(busMes.getPrcType());
// busProcessName.setCreatUser(busMes.getCreateUser());
// busProcessName.setCreatTime(time);
// busProcessName.setMes(busMes.getJson());
// busProcessName.setCreatUserName(busMes.getCreateUserName());
// busProcessName.setSubmitStatus(SubmitStatusEnum.DRAFT.getValue());
// iBusProcessNameService.save(busProcessName);
// QueryWrapper<BusProcessName> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("CREAT_TIME", time);
// queryWrapper.eq("CREATE_USER_NAME", busMes.getCreateUserName());
// queryWrapper.eq("PRC_TYPE", busMes.getPrcType());
// queryWrapper.eq("CREAT_USER", busMes.getCreateUser());
// BusProcessName one = iBusProcessNameService.getOne(queryWrapper);
//
// saveId = one.getId();
// TODO 先存到业务表单中,再存入busProcessName --end
}
return WrapMapper.ok(busMes1.getId());
return WrapMapper.ok(saveId);
}
/**
@@ -504,37 +434,13 @@ public class TodoTaskController extends BaseAction {
} else {
queryWrapper.isNotNull("PRC_TYPE");
}
List<TaskAdvanceSearchVO> searchList = JSONObject.parseArray(taskCommonQuery.getAdvanceSearchVOStr(),TaskAdvanceSearchVO.class);
this.createAdvanceSearchCondition(searchList,queryWrapper);
// queryWrapper.isNull("PRC_ID");
queryWrapper.lambda().eq(BusProcessName::getSubmitStatus,SubmitStatusEnum.DRAFT.getValue());
queryWrapper.orderByDesc("CREAT_TIME");
List<BusProcessName> list = iBusProcessNameService.list(queryWrapper);
return list;
}
@ApiOperation(value = "自动发起流程保存第一步", notes = "自动发起流程保存第一步")
@PostMapping("/autoSaveFirst")
public Wrapper<String> autoSaveFirst(@RequestBody ApproveDataVO busMes) {
QueryWrapper<BusProcessNew> wrapper = new QueryWrapper<>();
wrapper.eq("TASK_ID", busMes.getTaskId());
BusProcessNew one = iBusProcessNewService.getOne(wrapper);
if (one != null) {
one.setMesg(busMes.getJson());
iBusProcessNewService.saveOrUpdate(one);
}
QueryWrapper<BusProcessName> wrapper1 = new QueryWrapper<>();
wrapper1.eq("PRC_ID", busMes.getpId());
BusProcessName one1 = iBusProcessNameService.getOne(wrapper1);
if (one1 != null) {
one1.setCreatUserName(busMes.getUserName());
iBusProcessNameService.saveOrUpdate(one1);
}
return WrapMapper.ok("提交成功");
}
@ApiOperation(value = "查询流程是否结束", notes = "查询流程是否结束")
@GetMapping("/isEnd")
public String isEnd(String pId) {
@@ -559,46 +465,6 @@ public class TodoTaskController extends BaseAction {
}
}
return "1";
}else if(singleResult.getProcessDefinitionName().equals("法规技术评估流程")){
List<Task> tasksList = taskService.createTaskQuery().processInstanceId(singleResult.getProcessInstanceId()).active().list();
if(tasksList.size()==0){
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", pId);
BusProcessName one = iBusProcessNameService.getOne(queryWrapper2);
if (one != null) {
if (one.getEndTime() == null || one.getEndTime().equals("")) {
List<HistoricActivityInstance> historicActivityInstanceList = historyService
.createHistoricActivityInstanceQuery().processInstanceId(pId)
.orderByHistoricActivityInstanceEndTime().desc().list();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
one.setEndTime(sdf.format(historicActivityInstanceList.get(0).getEndTime()));
iBusProcessNameService.saveOrUpdate(one);
}
}
return "1";
}else{
return "0";
}
}else if(singleResult.getProcessDefinitionName().equals("法规入库")){
List<Task> tasksList = taskService.createTaskQuery().processInstanceId(singleResult.getProcessInstanceId()).active().list();
if(tasksList.size()==0){
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", pId);
BusProcessName one = iBusProcessNameService.getOne(queryWrapper2);
if (one != null) {
if (one.getEndTime() == null || one.getEndTime().equals("")) {
List<HistoricActivityInstance> historicActivityInstanceList = historyService
.createHistoricActivityInstanceQuery().processInstanceId(pId)
.orderByHistoricActivityInstanceEndTime().desc().list();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
one.setEndTime(sdf.format(historicActivityInstanceList.get(0).getEndTime()));
iBusProcessNameService.saveOrUpdate(one);
}
}
return "1";
}else{
return "0";
}
}else {
return "0";
}
@@ -652,8 +518,7 @@ public class TodoTaskController extends BaseAction {
if (taskCommonQuery.getPrcType() != null && !taskCommonQuery.getPrcType().equals("")) {
queryWrapper.eq("PRC_TYPE", taskCommonQuery.getPrcType());
}
List<TaskAdvanceSearchVO> searchList = JSONObject.parseArray(taskCommonQuery.getAdvanceSearchVOStr(),TaskAdvanceSearchVO.class);
this.createAdvanceSearchCondition(searchList,queryWrapper);
queryWrapper.orderByDesc("CREAT_TIME");
queryWrapper.isNotNull("PRC_ID");
queryWrapper.isNotNull("PRC_NUM");
@@ -707,7 +572,7 @@ public class TodoTaskController extends BaseAction {
if(CollectionUtils.isNotEmpty(userVOList)){
for (UserVO userVO : userVOList) {
if(StringUtils.equals(userVO.getUsid(),task.getAssignee())){
assignee += ""+((userVO.getOrgName() != null && !userVO.getOrgName().equals("")) ? userVO.getOrgName() + "-" + userVO.getUname() : userVO.getUname()) + "";
assignee += ""+userVO.getUsname() + "(" + userVO.getAccount() + ")" + "";
}
}
}
@@ -720,7 +585,7 @@ public class TodoTaskController extends BaseAction {
if(CollectionUtils.isNotEmpty(userVOList)){
for (UserVO userVO : userVOList) {
if(StringUtils.equals(userVO.getUsid(),historicIdentityLink.getUserId())){
assignee += ""+((userVO.getOrgName() != null && !userVO.getOrgName().equals("")) ? userVO.getOrgName() + "-" + userVO.getUname() : userVO.getUname()) + "";
assignee += ""+userVO.getUsname() + "(" + userVO.getAccount() + ")" + "";
}
}
}
@@ -747,7 +612,7 @@ public class TodoTaskController extends BaseAction {
if(CollectionUtils.isNotEmpty(userVOList)){
for (UserVO userVO : userVOList) {
if(StringUtils.equals(userVO.getUsid(),userTask.get(0).getAssignee())){
busProcessName.setTaskBackAssignee(((userVO.getOrgName() != null && !userVO.getOrgName().equals("")) ? userVO.getOrgName() + "-" + userVO.getUname() : userVO.getUname()));
busProcessName.setTaskBackAssignee(userVO.getUsname() + "(" + userVO.getAccount() + ")");
}
}
}
@@ -755,7 +620,7 @@ public class TodoTaskController extends BaseAction {
if(CollectionUtils.isNotEmpty(userVOList)){
for (UserVO userVO : userVOList) {
if(StringUtils.equals(userVO.getUsid(),userTask.get(0).getAssignee())){
busProcessName.setTaskBackAssignee(((userVO.getOrgName() != null && !userVO.getOrgName().equals("")) ? userVO.getOrgName() + "-" + userVO.getUname() : userVO.getUname()));
busProcessName.setTaskBackAssignee(userVO.getUsname() + "(" + userVO.getAccount() + ")");
}
}
}
@@ -875,7 +740,7 @@ public class TodoTaskController extends BaseAction {
if(CollectionUtils.isNotEmpty(userVOList)){
for (UserVO userVO : userVOList) {
if(StringUtils.equals(task.getAssignee(),userVO.getUsid())){
assignee += ""+((userVO.getDepartment() != null && !userVO.getDepartment().equals("")) ? userVO.getDepartment() + "-" + userVO.getUsname() : userVO.getUsname()) + "";
assignee += "" + userVO.getUsname() + "(" + userVO.getAccount() + ")" + "";
}
}
}
@@ -900,7 +765,7 @@ public class TodoTaskController extends BaseAction {
if(CollectionUtils.isNotEmpty(userVOList)) {
for (UserVO userVO : userVOList) {
if (StringUtils.equals(userTask.get(0).getAssignee(), userVO.getUsid())) {
busProcessName.setTaskBackAssignee(((userVO.getDepartment() != null && !userVO.getDepartment().equals("")) ? userVO.getDepartment() + "-" + userVO.getUsname() : userVO.getUsname()));
busProcessName.setTaskBackAssignee(userVO.getUsname() + "(" + userVO.getAccount() + ")");
}
}
}
@@ -908,7 +773,7 @@ public class TodoTaskController extends BaseAction {
if(CollectionUtils.isNotEmpty(userVOList)) {
for (UserVO userVO : userVOList) {
if (StringUtils.equals(userTask.get(0).getAssignee(), userVO.getUsid())) {
busProcessName.setTaskBackAssignee(((userVO.getDepartment() != null && !userVO.getDepartment().equals("")) ? userVO.getDepartment() + "-" + userVO.getUsname() : userVO.getUsname()));
busProcessName.setTaskBackAssignee(userVO.getUsname() + "(" + userVO.getAccount() + ")");
}
}
}
@@ -933,14 +798,16 @@ public class TodoTaskController extends BaseAction {
});
if (StringUtils.isNotEmpty(busProcessName.getTaskId())) {
List<Datas> datas = datasService.haveFinishedFlowDetail(busProcessName.getTaskId());
if(CollectionUtils.isNotEmpty(datas)){
JSONObject dataJson = JSONObject.parseObject(datas.get(0).getFormValsJson());
//获取操作节点人的处理结果 flag 1通过 2驳回 解决禅道bug40164
if (StringUtils.isNotEmpty(dataJson.getString("flag"))) {
busProcessName.setStatus(dataJson.getString("flag"));
}
}
// TODO 补充审批刘中获取根据任务id获取审批结果的字段, 处理完后解开该段代码 --- start
// List<BusProcessApprove> datas = iBusProcessApproveService.haveFinishedFlowDetail(busProcessName.getTaskId());
// if(CollectionUtils.isNotEmpty(datas)){
// JSONObject dataJson = JSONObject.parseObject(datas.get(0).getFromValsJson());
// //获取操作节点人的处理结果 flag 1通过 2驳回 解决禅道bug40164
// if (StringUtils.isNotEmpty(dataJson.getString("flag"))) {
// busProcessName.setStatus(dataJson.getString("flag"));
// }
// }
// TODO 补充审批刘中获取根据任务id获取审批结果的字段, 处理完后解开该段代码 --- end
}
Date createTime = null;
@@ -1051,7 +918,7 @@ public class TodoTaskController extends BaseAction {
if(CollectionUtils.isNotEmpty(userVOList)){
for (UserVO userVO : userVOList) {
if(StringUtils.equals(userVO.getUsid(),task.getAssignee())){
assignee += ""+((userVO.getDepartment() != null && !userVO.getDepartment().equals("")) ? userVO.getDepartment() + "-" + userVO.getUname() : userVO.getUname()) + "";
assignee += "" + userVO.getUsname() + "(" + userVO.getAccount() + ")" + "";
}
}
}
@@ -1076,7 +943,7 @@ public class TodoTaskController extends BaseAction {
if(CollectionUtils.isNotEmpty(userVOList)){
for (UserVO userVO : userVOList) {
if(StringUtils.equals(userVO.getUsid(),userTask.get(0).getAssignee())){
busProcessName.setTaskBackAssignee(((userVO.getOrgName() != null && !userVO.getOrgName().equals("")) ? userVO.getOrgName() + "-" + userVO.getUname() : userVO.getUname()));
busProcessName.setTaskBackAssignee(userVO.getUsname() + "(" + userVO.getAccount() + ")");
}
}
}
@@ -1084,7 +951,7 @@ public class TodoTaskController extends BaseAction {
if(CollectionUtils.isNotEmpty(userVOList)){
for (UserVO userVO : userVOList) {
if(StringUtils.equals(userVO.getUsid(),userTask.get(0).getAssignee())){
busProcessName.setTaskBackAssignee(((userVO.getOrgName() != null && !userVO.getOrgName().equals("")) ? userVO.getOrgName() + "-" + userVO.getUname() : userVO.getUname()));
busProcessName.setTaskBackAssignee(userVO.getUsname() + "(" + userVO.getAccount() + ")");
}
}
}
@@ -1185,9 +1052,6 @@ public class TodoTaskController extends BaseAction {
queryWrapper.eq("PRC_ID", prcId);
BusProcessName one = iBusProcessNameService.getOne(queryWrapper);
iBusProcessNameService.removeById(one.getId());
// one.setPrcId(null);
// one.setPrcNum(null);
// one.setPrcName(null);
one.setOverTime(null);
one.setSubmitStatus(SubmitStatusEnum.DRAFT.getValue());
iBusProcessNameService.save(one);
@@ -1217,9 +1081,9 @@ public class TodoTaskController extends BaseAction {
task.setAssignee(userCode);
TaskEntity taskById = findTaskById(taskId);
task.setName(taskById.getName() + "-会签");
ProcessDefinitionEntity processDefinitionEntityByTaskId = findProcessDefinitionEntityByTaskId(taskId);
ProcessDefinitionEntity processDefinitionEntityByTaskId = this.findProcessDefinitionEntityByTaskId(taskId);
task.setProcessDefinitionId(processDefinitionEntityByTaskId.getId());
ProcessInstance processInstanceByTaskId = findProcessInstanceByTaskId(taskId);
ProcessInstance processInstanceByTaskId = this.findProcessInstanceByTaskId(taskId);
task.setProcessInstanceId(processInstanceByTaskId.getId());
task.setParentTaskId(taskId);
task.setDescription("jointProcess");
@@ -1230,15 +1094,13 @@ public class TodoTaskController extends BaseAction {
QueryWrapper<BusProcessNew> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("TASK_ID", taskId);
BusProcessNew one = iBusProcessNewService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(one.getMesg());
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setUserId(userCode);
busProcessNew.setPId(taskById.getProcessInstanceId());
busProcessNew.setTaskInfo(taskById.getEventName());
busProcessNew.setMsgType(one.getMsgType());
busProcessNew.setTaskId(task.getId());
busProcessNew.setMesg(JSON.toJSONString(object, SerializerFeature.DisableCircularReferenceDetect));
busProcessNew.setDataId(one.getDataId());
this.iBusProcessNewService.save(busProcessNew);
}
}
@@ -1267,19 +1129,54 @@ public class TodoTaskController extends BaseAction {
List<Task> list = taskService.createTaskQuery().list();
}
/**
* 根据任务ID获取流程定义
*
* @param taskId
* 任务ID
* @return
* @throws Exception
*/
private ProcessDefinitionEntity findProcessDefinitionEntityByTaskId(
String taskId) throws Exception {
// 取得流程定义
ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService)
.getDeployedProcessDefinition(findTaskById(taskId)
.getProcessDefinitionId());
if (processDefinition == null) {
throw new Exception("流程定义未找到!");
}
return processDefinition;
}
/**
* 根据任务ID获取对应的流程实例
*
* @param taskId
* 任务ID
* @return
* @throws Exception
*/
private ProcessInstance findProcessInstanceByTaskId(String taskId)
throws Exception {
// 找到流程实例
ProcessInstance processInstance = runtimeService
.createProcessInstanceQuery().processInstanceId(
findTaskById(taskId).getProcessInstanceId())
.singleResult();
if (processInstance == null) {
throw new Exception("流程实例未找到!");
}
return processInstance;
}
/**
* 根据用户idList获取用户信息
*/
public List<UserVO> getUserInfoByIdList(List<String> userIdList){
userIdList = userIdList.stream().distinct().collect(Collectors.toList());
JSONObject jsonObject = new JSONObject();
jsonObject.put("idList",userIdList);
// TODO 根据用户id列表获取用户信息
this.userEoService.
ResponseMessage<List<UserVO>> userInfoByIdList = userInfoService.getUserInfoByIdList(jsonObject.toString());
List<UserVO> data = userInfoByIdList.getData();
return data;
// TODO 根据用户id列表获取用户信息,不完善
List<UserVO> userList = this.userEoService.getUserByIdList(userIdList);
return userList;
}
}
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -16,6 +17,7 @@ import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("bus_process_approve")
@ApiModel(value="BusProcessApprove对象", description="审批历史数据对象")
public class BusProcessApprove {
@ApiModelProperty(value = "主键ID")
@@ -23,8 +25,12 @@ public class BusProcessApprove {
private String id;
@ApiModelProperty(value = "创建时间")
@TableField("CREATE_TIME")
private Date createTime = new Date(System.currentTimeMillis());
@TableField("CREATE_DATE")
private Date createDate = new Date(System.currentTimeMillis());
@ApiModelProperty(value = "创建人")
@TableField("CREATE_USER_ID")
private String createUserId;
@ApiModelProperty(value = "流程实例id")
@TableField("PRC_ID")
@@ -34,6 +40,8 @@ public class BusProcessApprove {
@TableField("TASK_ID")
private String taskId;
@ApiModelProperty(value = "表单JSON数据,包含全部审批的表单数据")
@TableField("FROM_VALS_JSON")
private String fromValsJson;
}
@@ -0,0 +1,63 @@
package com.adc.da.wkflow.business_main.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author 冯晓东
* @since 2020-12-11
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("BUS_PROCESS_ENTRUST")
@ApiModel(value="BusProcessEntrust对象", description="")
public class BusProcessEntrust implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "ID", type = IdType.UUID)
private String id;
@ApiModelProperty(value = "委托人员")
@TableField("USER_ID")
private String userId;
@ApiModelProperty(value = "被委托人员")
@TableField("EN_USER_ID")
private String enUserId;
@TableField("TASK_ID")
private String taskId;
@TableField("PRC_ID")
private String prcId;
@TableField("TASK_NAME")
private String taskName;
@TableField("PRC_NAME")
private String prcName;
@TableField("CREATE_TIME")
private Date createTime = new Date(System.currentTimeMillis());;
@TableField("VALID_FLAG")
private String validFlag;
}
@@ -23,10 +23,10 @@ import java.io.Serializable;
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("BUS_PROCESS_NAME")
@ApiModel(value="BusProcessName对象", description="")
@ApiModel(value="BusProcessName对象", description="工作流主表,维护主要的数据")
public class BusProcessName implements Serializable {
private static final long serialVersionUID=1L;
private static final long serialVersionUID=427348328492L;
@TableId(value = "ID", type = IdType.UUID)
private String id;
@@ -37,9 +37,6 @@ public class BusProcessName implements Serializable {
@TableField("PRC_ID")
private String prcId;
@TableField("PRC_MES")
private String prcMes;
@TableField("OVER_TIME")
private String overTime;
@@ -58,15 +55,15 @@ public class BusProcessName implements Serializable {
@TableField("CREATE_USER_NAME")
private String creatUserName;
@TableField("MES")
private String mes;
/**
* 具体的数据ID,关联具体的业务表的id
*/
@TableField("DATA_ID")
private String dataId;
@TableField("END_TIME")
private String endTime;
@TableField(exist = false)
private String taskIds;
@TableField(exist = false)
private String taskInfo;
@@ -24,7 +24,7 @@ import java.io.Serializable;
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("BUS_PROCESS_NEW")
@ApiModel(value="BusProcessNew对象", description="")
@ApiModel(value="BusProcessNew对象", description="工作流待办已办表")
public class BusProcessNew implements Serializable {
private static final long serialVersionUID=1L;
@@ -33,34 +33,18 @@ public class BusProcessNew implements Serializable {
@TableId(value = "ID", type = IdType.UUID)
private String id;
@ApiModelProperty(value = "资源类型")
@TableField("MSG_TYPE")
private String msgType;
@ApiModelProperty(value = "标准id")
@TableField("STAND_ID")
private String standId;
@ApiModelProperty(value = "条款id")
@TableField("CLAUSE_ID")
private String clauseId;
@ApiModelProperty(value = "处理人")
@TableField("USER_ID")
private String userId;
@ApiModelProperty(value = "信息")
@TableField("MESG")
private String mesg;
@ApiModelProperty(value = "具体的数据ID,关联具体的业务表的id")
@TableField("DATA_ID")
private String dataId;
@ApiModelProperty(value = "节点信息")
@TableField("TASK_INFO")
private String taskInfo;
@ApiModelProperty(value = "父级id")
@TableField("PARENT_ID")
private String parentId;
@ApiModelProperty(value = "任务id")
@TableField("TASK_ID")
private String taskId;
@@ -69,19 +53,4 @@ public class BusProcessNew implements Serializable {
@TableField("P_ID")
private String pId;
@ApiModelProperty(value = "完成注记")
@TableField("FINISH_FLAG")
private String finishFlag;
@ApiModelProperty(value = "审批意见")
@TableField("COMMIT_FLAG")
private String commitFlag;
@ApiModelProperty(value = "审批意见")
@TableField("COMMIT_TEXT")
private String commitText;
@ApiModelProperty(value = "子流程ID")
@TableField("SUB_ID")
private String subId;
}
@@ -0,0 +1,17 @@
package com.adc.da.wkflow.business_main.mapper;
import com.adc.da.wkflow.business_main.entity.BusProcessApprove;
import com.adc.da.wkflow.business_main.entity.BusProcessEntrust;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 冯晓东
* @since 2020-12-11
*/
public interface BusProcessApproveMapper extends BaseMapper<BusProcessApprove> {
}
@@ -0,0 +1,16 @@
package com.adc.da.wkflow.business_main.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.adc.da.wkflow.business_main.entity.BusProcessEntrust;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 冯晓东
* @since 2020-12-11
*/
public interface BusProcessEntrustMapper extends BaseMapper<BusProcessEntrust> {
}
@@ -0,0 +1,13 @@
package com.adc.da.wkflow.business_main.service;
import com.adc.da.wkflow.business_main.entity.BusProcessApprove;
import com.adc.da.wkflow.business_main.entity.BusProcessEntrust;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 审批历史业务类
* 用于审批历史的查询的存取
*/
public interface IBusProcessApproveService extends IService<BusProcessApprove> {
}
@@ -0,0 +1,16 @@
package com.adc.da.wkflow.business_main.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.adc.da.wkflow.business_main.entity.BusProcessEntrust;
/**
* <p>
* 服务类
* </p>
*
* @author 冯晓东
* @since 2020-12-11
*/
public interface IBusProcessEntrustService extends IService<BusProcessEntrust> {
}
@@ -0,0 +1,23 @@
package com.adc.da.wkflow.business_main.service.impl;
import com.adc.da.wkflow.business_main.entity.BusProcessApprove;
import com.adc.da.wkflow.business_main.entity.BusProcessEntrust;
import com.adc.da.wkflow.business_main.mapper.BusProcessApproveMapper;
import com.adc.da.wkflow.business_main.mapper.BusProcessEntrustMapper;
import com.adc.da.wkflow.business_main.service.IBusProcessApproveService;
import com.adc.da.wkflow.business_main.service.IBusProcessEntrustService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 冯晓东
* @since 2020-12-11
*/
@Service
public class BusProcessApproveServiceImpl extends ServiceImpl<BusProcessApproveMapper, BusProcessApprove> implements IBusProcessApproveService {
}
@@ -0,0 +1,20 @@
package com.adc.da.wkflow.business_main.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.adc.da.wkflow.business_main.entity.BusProcessEntrust;
import com.adc.da.wkflow.business_main.mapper.BusProcessEntrustMapper;
import com.adc.da.wkflow.business_main.service.IBusProcessEntrustService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 冯晓东
* @since 2020-12-11
*/
@Service
public class BusProcessEntrustServiceImpl extends ServiceImpl<BusProcessEntrustMapper, BusProcessEntrust> implements IBusProcessEntrustService {
}
@@ -8,6 +8,8 @@ import lombok.Data;
@Data
public class ApproveDataVO {
private String id;
private String userId;
private String taskId;
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.wkflow.business_main.mapper.BusProcessApproveMapper">
</mapper>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.wkflow.business_main.mapper.BusProcessEntrustMapper">
</mapper>