|
@@ -10,6 +10,9 @@ import com.ankaibei.workFlow.common.core.object.ResponseResult;
|
|
import com.ankaibei.workFlow.common.core.object.TokenData;
|
|
import com.ankaibei.workFlow.common.core.object.TokenData;
|
|
import com.ankaibei.workFlow.common.core.util.MyPageUtil;
|
|
import com.ankaibei.workFlow.common.core.util.MyPageUtil;
|
|
import com.ankaibei.workFlow.common.flow.dao.ProjectInfoFlowMapper;
|
|
import com.ankaibei.workFlow.common.flow.dao.ProjectInfoFlowMapper;
|
|
|
|
+import com.ankaibei.workFlow.common.flow.model.FlowCategory;
|
|
|
|
+import com.ankaibei.workFlow.common.flow.model.FlowEntry;
|
|
|
|
+import com.ankaibei.workFlow.common.flow.model.FlowWorkOrder;
|
|
import com.ankaibei.workFlow.common.flow.service.FlowApiService;
|
|
import com.ankaibei.workFlow.common.flow.service.FlowApiService;
|
|
import com.ankaibei.workFlow.common.flow.service.FlowCategoryService;
|
|
import com.ankaibei.workFlow.common.flow.service.FlowCategoryService;
|
|
import com.ankaibei.workFlow.common.flow.service.FlowEntryService;
|
|
import com.ankaibei.workFlow.common.flow.service.FlowEntryService;
|
|
@@ -28,7 +31,9 @@ import com.ankaibei.workFlow.common.online.model.constant.RelationType;
|
|
import com.ankaibei.workFlow.common.online.service.OnlineOperationService;
|
|
import com.ankaibei.workFlow.common.online.service.OnlineOperationService;
|
|
import com.ankaibei.workFlow.common.online.util.OnlineOperationHelper;
|
|
import com.ankaibei.workFlow.common.online.util.OnlineOperationHelper;
|
|
import com.ankaibei.workFlow.webadmin.ankaibei.api.CostInFoApi;
|
|
import com.ankaibei.workFlow.webadmin.ankaibei.api.CostInFoApi;
|
|
|
|
+import com.ankaibei.workFlow.webadmin.ankaibei.entity.ProjectInfoEntity;
|
|
import com.ankaibei.workFlow.webadmin.ankaibei.enums.CodeEnum;
|
|
import com.ankaibei.workFlow.webadmin.ankaibei.enums.CodeEnum;
|
|
|
|
+import com.ankaibei.workFlow.webadmin.ankaibei.mapper.ProjectInfoMapper;
|
|
import com.ankaibei.workFlow.webadmin.ankaibei.utils.FlowTaskStart;
|
|
import com.ankaibei.workFlow.webadmin.ankaibei.utils.FlowTaskStart;
|
|
import com.ankaibei.workFlow.webadmin.ankaibei.vo.CostInfoVo;
|
|
import com.ankaibei.workFlow.webadmin.ankaibei.vo.CostInfoVo;
|
|
import com.ankaibei.workFlow.webadmin.ankaibei.vo.ResMsg;
|
|
import com.ankaibei.workFlow.webadmin.ankaibei.vo.ResMsg;
|
|
@@ -44,8 +49,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.HashSet;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
+import java.util.Set;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -69,6 +77,8 @@ public class CostInfoController {
|
|
@Autowired
|
|
@Autowired
|
|
private ProjectInfoFlowMapper projectInfoFlowMapper;
|
|
private ProjectInfoFlowMapper projectInfoFlowMapper;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private ProjectInfoMapper projectInfoMapper;
|
|
|
|
+ @Autowired
|
|
private FlowOperationHelper flowOperationHelper;
|
|
private FlowOperationHelper flowOperationHelper;
|
|
@Autowired
|
|
@Autowired
|
|
private OnlineOperationHelper onlineOperationHelper;
|
|
private OnlineOperationHelper onlineOperationHelper;
|
|
@@ -155,12 +165,14 @@ public class CostInfoController {
|
|
@PostMapping("/listRuntimeTask")
|
|
@PostMapping("/listRuntimeTask")
|
|
public ResMsg listRuntimeTask(
|
|
public ResMsg listRuntimeTask(
|
|
@RequestBody ListRuntimeTaskRequestVo listRuntimeTaskRequestVo) {
|
|
@RequestBody ListRuntimeTaskRequestVo listRuntimeTaskRequestVo) {
|
|
|
|
+ Date queryStartTime = new Date();
|
|
String username = TokenData.takeFromRequest().getLoginName();
|
|
String username = TokenData.takeFromRequest().getLoginName();
|
|
MyPageData<Task> pageData = flowApiService.getTaskListByUserName(
|
|
MyPageData<Task> pageData = flowApiService.getTaskListByUserName(
|
|
username, listRuntimeTaskRequestVo);
|
|
username, listRuntimeTaskRequestVo);
|
|
List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageData.getDataList());
|
|
List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageData.getDataList());
|
|
//加上流程分类名称和关联的表单信息中的项目名称
|
|
//加上流程分类名称和关联的表单信息中的项目名称
|
|
List<FlowTaskVo> flowTaskVoListAd = new ArrayList<>();
|
|
List<FlowTaskVo> flowTaskVoListAd = new ArrayList<>();
|
|
|
|
+
|
|
for (FlowTaskVo taskVo : flowTaskVoList) {
|
|
for (FlowTaskVo taskVo : flowTaskVoList) {
|
|
String categoryName = categoryService.getById(flowEntryService.getById(taskVo.getEntryId()).getCategoryId()).getName();
|
|
String categoryName = categoryService.getById(flowEntryService.getById(taskVo.getEntryId()).getCategoryId()).getName();
|
|
taskVo.setCategoryName(categoryName);
|
|
taskVo.setCategoryName(categoryName);
|
|
@@ -170,11 +182,13 @@ public class CostInfoController {
|
|
if (masterAndOneToOne.get("project_id") != null) {
|
|
if (masterAndOneToOne.get("project_id") != null) {
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_id").toString());
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_id").toString());
|
|
taskVo.setProjectId(projectId);
|
|
taskVo.setProjectId(projectId);
|
|
- taskVo.setProjectName(projectInfoFlowMapper.getById(projectId).getProjectName());
|
|
|
|
|
|
+ String projectName = projectInfoFlowMapper.getById(projectId).getProjectName();
|
|
|
|
+ taskVo.setProjectName(projectName == null ? "" : projectName);
|
|
} else if (masterAndOneToOne.get("project_name") != null) {
|
|
} else if (masterAndOneToOne.get("project_name") != null) {
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_name").toString());
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_name").toString());
|
|
taskVo.setProjectId(projectId);
|
|
taskVo.setProjectId(projectId);
|
|
- taskVo.setProjectName(projectInfoFlowMapper.getById(projectId).getProjectName());
|
|
|
|
|
|
+ String projectName = projectInfoFlowMapper.getById(projectId).getProjectName();
|
|
|
|
+ taskVo.setProjectName(projectName == null ? "" : projectName);
|
|
}
|
|
}
|
|
if (masterAndOneToOne.get("total_money") != null) {
|
|
if (masterAndOneToOne.get("total_money") != null) {
|
|
taskVo.setApplicationFee(masterAndOneToOne.get("total_money").toString());
|
|
taskVo.setApplicationFee(masterAndOneToOne.get("total_money").toString());
|
|
@@ -194,6 +208,9 @@ public class CostInfoController {
|
|
flowTaskVoListAd.add(taskVo);
|
|
flowTaskVoListAd.add(taskVo);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ Date queryEndTime = new Date();
|
|
|
|
+ System.err.println("本次查询结束时间:" + queryEndTime);
|
|
|
|
+ System.err.println("本次查询耗时+++++:" + (queryEndTime.getTime() - queryStartTime.getTime()));
|
|
return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListAd, pageData.getTotalCount()));
|
|
return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListAd, pageData.getTotalCount()));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -232,7 +249,8 @@ public class CostInfoController {
|
|
Map<String, Object> masterAndOneToOne = (Map<String, Object>) jsonData.get("masterAndOneToOne");
|
|
Map<String, Object> masterAndOneToOne = (Map<String, Object>) jsonData.get("masterAndOneToOne");
|
|
if (masterAndOneToOne.get("project_name") != null) {
|
|
if (masterAndOneToOne.get("project_name") != null) {
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_name").toString());
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_name").toString());
|
|
- taskVo.setProjectName(projectInfoFlowMapper.getById(projectId).getProjectName());
|
|
|
|
|
|
+ String projectName = projectInfoFlowMapper.getById(projectId).getProjectName();
|
|
|
|
+ taskVo.setProjectName(projectName == null ? "" : projectName);
|
|
}
|
|
}
|
|
if (masterAndOneToOne.get("application_fee") != null) {
|
|
if (masterAndOneToOne.get("application_fee") != null) {
|
|
taskVo.setApplicationFee(masterAndOneToOne.get("application_fee").toString());
|
|
taskVo.setApplicationFee(masterAndOneToOne.get("application_fee").toString());
|
|
@@ -306,8 +324,10 @@ public class CostInfoController {
|
|
if (masterAndOneToOne.get("project_name") != null) {
|
|
if (masterAndOneToOne.get("project_name") != null) {
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_name").toString());
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_name").toString());
|
|
taskVo.setProjectId(projectId);
|
|
taskVo.setProjectId(projectId);
|
|
- taskVo.setProjectName(projectInfoFlowMapper.getById(projectId).getProjectName());
|
|
|
|
|
|
+ String projectName = projectInfoFlowMapper.getById(projectId).getProjectName();
|
|
|
|
+ taskVo.setProjectName(projectName == null ? "" : projectName);
|
|
}
|
|
}
|
|
|
|
+
|
|
if (masterAndOneToOne.get("man_id") != null) {
|
|
if (masterAndOneToOne.get("man_id") != null) {
|
|
taskVo.setApplyDataId(Integer.parseInt(masterAndOneToOne.get("man_id").toString()));
|
|
taskVo.setApplyDataId(Integer.parseInt(masterAndOneToOne.get("man_id").toString()));
|
|
}
|
|
}
|
|
@@ -360,7 +380,8 @@ public class CostInfoController {
|
|
if (masterAndOneToOne.get("project_id") != null) {
|
|
if (masterAndOneToOne.get("project_id") != null) {
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_id").toString());
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_id").toString());
|
|
taskVo.setProjectId(projectId);
|
|
taskVo.setProjectId(projectId);
|
|
- taskVo.setProjectName(projectInfoFlowMapper.getById(projectId).getProjectName());
|
|
|
|
|
|
+ String projectName = projectInfoFlowMapper.getById(projectId).getProjectName();
|
|
|
|
+ taskVo.setProjectName(projectName == null ? "" : projectName);
|
|
}
|
|
}
|
|
taskVo.setCostType(categoryName);
|
|
taskVo.setCostType(categoryName);
|
|
taskVo.setFlowTaskStatus(flowWorkOrderService.getFlowWorkOrderByProcessInstanceId(taskVo.getProcessInstanceId()).getFlowStatus() + "");
|
|
taskVo.setFlowTaskStatus(flowWorkOrderService.getFlowWorkOrderByProcessInstanceId(taskVo.getProcessInstanceId()).getFlowStatus() + "");
|
|
@@ -411,7 +432,8 @@ public class CostInfoController {
|
|
if (masterAndOneToOne.get("project_id") != null) {
|
|
if (masterAndOneToOne.get("project_id") != null) {
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_id").toString());
|
|
Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_id").toString());
|
|
taskVo.setProjectId(projectId);
|
|
taskVo.setProjectId(projectId);
|
|
- taskVo.setProjectName(projectInfoFlowMapper.getById(projectId).getProjectName());
|
|
|
|
|
|
+ String projectName = projectInfoFlowMapper.getById(projectId).getProjectName();
|
|
|
|
+ taskVo.setProjectName(projectName == null ? "" : projectName);
|
|
}
|
|
}
|
|
if (masterAndOneToOne.get("task_id") != null) {
|
|
if (masterAndOneToOne.get("task_id") != null) {
|
|
taskVo.setApplyDataId(Integer.parseInt(masterAndOneToOne.get("task_id").toString()));
|
|
taskVo.setApplyDataId(Integer.parseInt(masterAndOneToOne.get("task_id").toString()));
|
|
@@ -529,4 +551,137 @@ public class CostInfoController {
|
|
return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListByExpenseRsg, Long.valueOf(flowTaskVoListByExpense.size())));
|
|
return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListByExpenseRsg, Long.valueOf(flowTaskVoListByExpense.size())));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ //============================================================================================================================================================
|
|
|
|
+ //============================================================================================================================================================
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 返回当前用户待办的任务列表。(操作项目信息分类)
|
|
|
|
+ * param processDefinitionName 流程定义名 (模糊查询)。
|
|
|
|
+ * param taskName 任务名称 (模糊查询)。
|
|
|
|
+ * param pageParam 分页对象。
|
|
|
|
+ *
|
|
|
|
+ * @return 返回当前用户待办的任务列表。如果指定流程标识,则仅返回该流程的待办任务列表。
|
|
|
|
+ */
|
|
|
|
+ @DisableDataFilter
|
|
|
|
+ @PostMapping("/listRuntimeTaskByProjectAddd")
|
|
|
|
+ public ResMsg listRuntimeTaskByProjectAddd(
|
|
|
|
+ @RequestBody ListRuntimeTaskRequestVo listRuntimeTaskRequestVo) {
|
|
|
|
+ Date queryStartTime = new Date();
|
|
|
|
+
|
|
|
|
+ String username = TokenData.takeFromRequest().getLoginName();
|
|
|
|
+ //MyPageData<Task> pageData = flowApiService.getTaskListByUserName(
|
|
|
|
+ // username, listRuntimeTaskRequestVo);
|
|
|
|
+ //List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageData.getDataList());
|
|
|
|
+ //---查询到所有的任务量
|
|
|
|
+ final Integer pageNum = listRuntimeTaskRequestVo.getPageNum();
|
|
|
|
+ listRuntimeTaskRequestVo.setPageNum(1);
|
|
|
|
+ listRuntimeTaskRequestVo.setPageSize(flowWorkOrderService.getCountByCondition(""));
|
|
|
|
+ MyPageData<Task> pageDataTwo = flowApiService.getTaskListByUserName(username, listRuntimeTaskRequestVo);
|
|
|
|
+ Date changeBe = new Date();
|
|
|
|
+ System.err.println("转换为流程对象前+++++:" + changeBe.getTime());
|
|
|
|
+ List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageDataTwo.getDataList());
|
|
|
|
+ Date changeAf = new Date();
|
|
|
|
+ System.err.println("转换为流程对象前+++++:" + changeAf.getTime());
|
|
|
|
+ System.err.println("转换为流程对象耗时+++++:" + (changeAf.getTime() - changeBe.getTime()));
|
|
|
|
+ String queryType = "新建项目";
|
|
|
|
+ //---从所有的任务里取出一个分类的任务
|
|
|
|
+ //先拿到任务所在的全部流程
|
|
|
|
+ List<FlowTaskVo> flowTaskVoListByProjectAdd = new ArrayList<>();
|
|
|
|
+ Set<Long> entryIdList = new HashSet<>();
|
|
|
|
+ for (FlowTaskVo taskVo : flowTaskVoList) {
|
|
|
|
+ entryIdList.add(taskVo.getEntryId());
|
|
|
|
+ }
|
|
|
|
+ List<FlowEntry> entryList = flowEntryService.getInList(entryIdList);
|
|
|
|
+ //获取流程所在的分类
|
|
|
|
+ Set<Long> categoryIdList = new HashSet<>();
|
|
|
|
+ for (FlowEntry entry : entryList) {
|
|
|
|
+ categoryIdList.add(entry.getCategoryId());
|
|
|
|
+ }
|
|
|
|
+ List<FlowCategory> flowCategoryList = categoryService.getInList(categoryIdList);
|
|
|
|
+ //给流程任务对象的流程分类字段赋值
|
|
|
|
+ for (FlowTaskVo taskVo : flowTaskVoList) {
|
|
|
|
+ Long entryId = taskVo.getEntryId();
|
|
|
|
+ for (FlowEntry entry : entryList) {
|
|
|
|
+ if (entry.getEntryId().equals(entryId)) {
|
|
|
|
+ for (FlowCategory category : flowCategoryList) {
|
|
|
|
+ if (category.getCategoryId().equals(entry.getCategoryId())) {
|
|
|
|
+ if (category.getName().equals(queryType)) {
|
|
|
|
+ taskVo.setCostType(category.getName());
|
|
|
|
+ flowTaskVoListByProjectAdd.add(taskVo);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return PackageAgainn(flowTaskVoListByProjectAdd, pageNum, queryType, queryStartTime);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private ResMsg PackageAgainn(List<FlowTaskVo> flowTaskVoListByExpense, Integer pageNum, String queryType, Date queryStartTime) {
|
|
|
|
+ //重新进行包装分页
|
|
|
|
+ if (flowTaskVoListByExpense.size() < 1) {
|
|
|
|
+ return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListByExpense, Long.valueOf(flowTaskVoListByExpense.size())));
|
|
|
|
+ }
|
|
|
|
+ List<FlowTaskVo> flowTaskVoListByExpenseRsg = new ArrayList<>();
|
|
|
|
+ if (pageNum == 1) {
|
|
|
|
+ for (int i = 0; i < 10; i++) {
|
|
|
|
+ flowTaskVoListByExpenseRsg.add(flowTaskVoListByExpense.get(i));
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ for (int i = (pageNum - 1) * 10; i < pageNum * 10 - 1; i++) {
|
|
|
|
+ flowTaskVoListByExpenseRsg.add(flowTaskVoListByExpense.get(i));
|
|
|
|
+ if (i == flowTaskVoListByExpense.size() - 1) {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //获取任务中的全部项目id和流程实例id
|
|
|
|
+ Set<Integer> projectIds = new HashSet<>();
|
|
|
|
+ Set<String> processInstanceIds = new HashSet<>();
|
|
|
|
+ Date getIdBefore = new Date();
|
|
|
|
+ System.err.println("获取ID数据前:" + getIdBefore.getTime());
|
|
|
|
+ for (FlowTaskVo taskVo : flowTaskVoListByExpenseRsg) {
|
|
|
|
+ Integer projectId = null;
|
|
|
|
+ JSONObject jsonData = viewUserTaskDatasource(taskVo.getProcessInstanceId(), taskVo.getTaskId()).getData();
|
|
|
|
+ Map<String, Object> masterAndOneToOne = (Map<String, Object>) jsonData.get("masterAndOneToOne");
|
|
|
|
+ if (masterAndOneToOne.get("project_id") != null) {
|
|
|
|
+ projectId = Integer.parseInt(masterAndOneToOne.get("project_id").toString());
|
|
|
|
+ taskVo.setProjectId(projectId);
|
|
|
|
+ }
|
|
|
|
+ taskVo.setCostType(queryType);
|
|
|
|
+ projectIds.add(projectId);
|
|
|
|
+ processInstanceIds.add(taskVo.getProcessInstanceId());
|
|
|
|
+ }
|
|
|
|
+ Date getIdAfter = new Date();
|
|
|
|
+ System.err.println("获取ID数据后:" + getIdAfter.getTime());
|
|
|
|
+ System.err.println("获取ID数据耗时+++++:" + (getIdAfter.getTime() - getIdBefore.getTime()));
|
|
|
|
+
|
|
|
|
+ //查询到任务信息中包含的全部项目和表单数据
|
|
|
|
+ List<ProjectInfoEntity> projectInfos = projectInfoMapper.findAllById(projectIds);
|
|
|
|
+ List<FlowWorkOrder> instanceIdIn = flowWorkOrderService.findAllByProcessInstanceIdIn(processInstanceIds);
|
|
|
|
+
|
|
|
|
+ for (FlowTaskVo taskVo : flowTaskVoListByExpenseRsg) {
|
|
|
|
+ for (ProjectInfoEntity info : projectInfos) {
|
|
|
|
+ if (info.getProjectId().equals(taskVo.getProjectId())) {
|
|
|
|
+ taskVo.setProjectName(info.getProjectName() == null ? "" : info.getProjectName());
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for (FlowWorkOrder order : instanceIdIn) {
|
|
|
|
+ if (order.getProcessInstanceId().equals(taskVo.getProcessInstanceId())) {
|
|
|
|
+ taskVo.setFlowTaskStatus(order.getFlowStatus() + "");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ System.err.println("本次查询开始时间:" + queryStartTime);
|
|
|
|
+ Date queryEndTime = new Date();
|
|
|
|
+ System.err.println("本次查询结束时间:" + queryEndTime);
|
|
|
|
+ System.err.println("本次查询耗时+++++:" + (queryEndTime.getTime() - queryStartTime.getTime()));
|
|
|
|
+
|
|
|
|
+ return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListByExpenseRsg, Long.valueOf(flowTaskVoListByExpense.size())));
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|