diff --git a/src/main/java/com/xdap/self_development/controller/TodoTaskController.java b/src/main/java/com/xdap/self_development/controller/TodoTaskController.java index d8bac6f..d99cc9f 100644 --- a/src/main/java/com/xdap/self_development/controller/TodoTaskController.java +++ b/src/main/java/com/xdap/self_development/controller/TodoTaskController.java @@ -4,6 +4,8 @@ package com.xdap.self_development.controller; import com.definesys.mpaas.common.http.Response; import com.xdap.self_development.controller.request.TodoReturnRequest; import com.xdap.self_development.controller.request.TodoTaskRequest; +import com.xdap.self_development.pojo.CompletedTaskPojo; +import com.xdap.self_development.pojo.InitiatedTaskPojo; import com.xdap.self_development.pojo.TodoTaskPojo; import com.xdap.self_development.pojo.dto.EngineParamDetailDTO; import com.xdap.self_development.pojo.dto.PageResultDTO; @@ -31,15 +33,23 @@ public class TodoTaskController { */ @PostMapping("/selectByPageByCreate") public Response selectByPageByCreate(@RequestBody TodoTaskRequest todoTaskRequest){ - PageResultDTO page= todoTaskService.selectByPage(todoTaskRequest); + PageResultDTO page= todoTaskService.selectByPage(todoTaskRequest); return Response.ok().data(page); } /** - * 查询用户待办或已办 + * 查询用户待办 */ - @PostMapping("/selectByresPersonPage") - public Response selectByresPersonPage(@RequestBody TodoTaskRequest todoTaskRequest){ - PageResultDTO todoTaskPojos = todoTaskService.selectByresPersonPage(todoTaskRequest); + @PostMapping("/selectByresPersonTodoPage") + public Response selectByresPersonTodoPage(@RequestBody TodoTaskRequest todoTaskRequest){ + PageResultDTO todoTaskPojos = todoTaskService.selectByresPersonTodoPage(todoTaskRequest); + return Response.ok().data(todoTaskPojos); + } + /** + * 查询用户已办 + */ + @PostMapping("/selectByresPersonCompletedPage") + public Response selectByresPersonCompletedPage(@RequestBody TodoTaskRequest todoTaskRequest){ + PageResultDTO todoTaskPojos = todoTaskService.selectByresPersonCompletedPage(todoTaskRequest); return Response.ok().data(todoTaskPojos); } /** diff --git a/src/main/java/com/xdap/self_development/listener/EngineModelListener.java b/src/main/java/com/xdap/self_development/listener/EngineModelListener.java index b20e1b5..00b8fe5 100644 --- a/src/main/java/com/xdap/self_development/listener/EngineModelListener.java +++ b/src/main/java/com/xdap/self_development/listener/EngineModelListener.java @@ -18,6 +18,8 @@ import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; +import java.sql.Timestamp; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -135,8 +137,8 @@ public class EngineModelListener implements ReadListener personPojos = responsiblePerService.selectByDepName(parameter.getDepartment()); diff --git a/src/main/java/com/xdap/self_development/service/TodoTaskService.java b/src/main/java/com/xdap/self_development/service/TodoTaskService.java index ea21004..1eca3cf 100644 --- a/src/main/java/com/xdap/self_development/service/TodoTaskService.java +++ b/src/main/java/com/xdap/self_development/service/TodoTaskService.java @@ -3,6 +3,8 @@ package com.xdap.self_development.service; import com.xdap.self_development.controller.request.TodoReturnRequest; import com.xdap.self_development.controller.request.TodoTaskRequest; import com.xdap.self_development.controller.request.YcGetTodoTaskRequest; +import com.xdap.self_development.pojo.CompletedTaskPojo; +import com.xdap.self_development.pojo.InitiatedTaskPojo; import com.xdap.self_development.pojo.TodoTaskPojo; import com.xdap.self_development.pojo.dto.*; @@ -20,9 +22,12 @@ import java.util.List; public interface TodoTaskService { void batchInsert(List taskPojo); - PageResultDTO selectByPage(TodoTaskRequest todoTaskRequest); - - PageResultDTO selectByresPersonPage(TodoTaskRequest todoTaskRequest); + //根据人员ID查询发起事项 + PageResultDTO selectByPage(TodoTaskRequest todoTaskRequest); + //根据人员ID查询待办 + PageResultDTO selectByresPersonTodoPage(TodoTaskRequest todoTaskRequest); + //根据人员ID查询已办 + PageResultDTO selectByresPersonCompletedPage(TodoTaskRequest todoTaskRequest); void createResPerson(List paramDetailPojos, String userID); diff --git a/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java index f66d97f..d14d391 100644 --- a/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java @@ -20,6 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.sql.Timestamp; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -104,7 +106,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { dataChangeCommentPojo.setUnit(parameter.getUnit()); dataChangeCommentPojo.setParameterValue(engineParamDetailPojo.getMinorVersion()); dataChangeCommentPojo.setCreatedBy(userID); - dataChangeCommentPojo.setCreationDate(new Date()); + dataChangeCommentPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); activitiDataDTOS.add(activitiDataDTO); das.add(dataChangeCommentPojo); @@ -170,7 +172,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { engineReviewListPojo.setNodeName(firstNode.getNodeName()); engineReviewListPojo.setApproverPersons(String.join(",", firstNode.getAssignees())); engineReviewListPojo.setReviewComment(approvalNodeRequest.getComment()); - engineReviewListPojo.setCreationDate(new Date()); + engineReviewListPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); engineReviewListPojo.setCreatedBy(userId); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(engineReviewListPojo); @@ -189,7 +191,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { todoTaskPojo.setModelName(modelPojoOld.getModelName()); todoTaskPojo.setCreatedById(userId); todoTaskPojo.setCreatedBy(createBy); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setIsDelete(0); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo); @@ -222,7 +224,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { config.setAssignees(String.join(",", nodeDTO.getAssignees())); config.setNodeOrder(nodeOrder); config.setCreatedBy(userId); - config.setCreationDate(new Date()); + config.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(config); b = false; } @@ -233,8 +235,8 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { record.setOperator("提交"); record.setNodeName("提交"); record.setNodeOrder(0); - record.setOperateTime(new Date()); - record.setCreationDate(new Date()); + record.setOperateTime(Timestamp.valueOf(LocalDateTime.now())); + record.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); record.setApprovalComment("提交流程"); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(record); @@ -290,8 +292,8 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { record.setOperator(operator); record.setNodeName(reviewListPojo.getNodeName()); record.setNodeOrder(nodeOrder); - record.setOperateTime(new Date()); - record.setCreationDate(new Date()); + record.setOperateTime(Timestamp.valueOf(LocalDateTime.now())); + record.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); record.setApprovalComment(comment); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(record); @@ -401,7 +403,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { todoTaskPojo.setModelName(modelPojo.getModelName()); todoTaskPojo.setCreatedById(approvalConfigPojo.getCreatedBy()); todoTaskPojo.setCreatedBy(createBy); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setIsDelete(0); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo); } @@ -500,7 +502,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { todoTaskPojo.setModelName(modelPojo.getModelName()); todoTaskPojo.setCreatedById(approvalConfigPojo.getCreatedBy()); todoTaskPojo.setCreatedBy(createBy); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setIsDelete(0); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo); } @@ -532,7 +534,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { engineReviewListPojo.setStatusDescription(ParamValueVersionEnum.UNDER.getDesc()); engineReviewListPojo.setNodeName(request.getNodeName()); engineReviewListPojo.setApproverPersons(String.join(",", request.getApproverPersons())); - engineReviewListPojo.setCreationDate(new Date()); + engineReviewListPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); engineReviewListPojo.setCreatedBy(request.getApplicant()); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(engineReviewListPojo); diff --git a/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java index 36f1dd8..658ebe3 100644 --- a/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java @@ -34,6 +34,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; +import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -281,8 +282,8 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ modelPojo.setIsDelete(0); modelPojo.setCreatedBy(userId); modelPojo.setLastUpdatedBy(""); - modelPojo.setLastUpdateDate(new Date()); - modelPojo.setCreationDate(new Date()); + modelPojo.setLastUpdateDate(Timestamp.valueOf(LocalDateTime.now())); + modelPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); modelPojo.setId(UUID.randomUUID().toString()); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(modelPojo); @@ -337,8 +338,8 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode()); engineParamDetailPojo.setCreatedBy(ObjectUtils.isNotEmpty(xdapUsersPojo) ? xdapUsersPojo.getId() : null); engineParamDetailPojo.setLastUpdatedBy(""); - engineParamDetailPojo.setLastUpdateDate(new Date()); - engineParamDetailPojo.setCreationDate(new Date()); + engineParamDetailPojo.setLastUpdateDate(Timestamp.valueOf(LocalDateTime.now())); + engineParamDetailPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); //为每个参数生成默认责任人 List personPojos = responsiblePerService.selectByDepName(parameter.getDepartment()); if (ObjectUtils.isNotEmpty(personPojos)) { diff --git a/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java index 4ddc34d..4ed72cf 100644 --- a/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java @@ -9,6 +9,7 @@ import com.definesys.mpaas.query.MpaasQueryFactory; import com.xdap.api.moudle.user.pojo.XdapUsers; import com.xdap.runtime.service.RuntimeAppContextService; import com.xdap.self_development.common.UserPermissionGetter; +import com.xdap.self_development.config.BusinessDatabase; import com.xdap.self_development.controller.request.EngineParamDetailExcel; import com.xdap.self_development.controller.request.EngineParamDetailRequest; import com.xdap.self_development.enums.CurrentNodeEnum; @@ -31,6 +32,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; +import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -442,12 +444,32 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { }); //填写后检查是否完全填写完成用来消除待办 if (ObjectUtils.isNotEmpty(paramDetailPojoStream)) { + TodoTaskPojo todoTaskPojo = sw.buildFromDatasource("xdap_app_223770822127386625") + .eq("owner_id", currentUserId) + .eq("model_id", engineParamDetailPojo.getId()) + .eq("data_type", "数据维护") + .doQueryFirst(TodoTaskPojo.class); + //修改待办和发起的任务状态 sw.buildFromDatasource("xdap_app_223770822127386625") .update("is_delete", 1) + .update("current_node", "已维护") .update("last_update_date", new Date()) - .eq("owner_id", currentUserId) - .eq("data_type", "数据维护") + .eq("document_no", todoTaskPojo.getDocumentNo()) .doUpdate(TodoTaskPojo.class); + sw.buildFromDatasource("xdap_app_223770822127386625") + .update("current_node", "已维护") + .update("last_update_date", new Date()) + .eq("document_no", todoTaskPojo.getDocumentNo()) + .doUpdate(InitiatedTaskPojo.class); + //新增这个人的已办 + CompletedTaskPojo completedTaskPojo = new CompletedTaskPojo(); + BeanUtils.copyProperties(todoTaskPojo, completedTaskPojo); + completedTaskPojo.setId(UUID.randomUUID().toString().replaceAll("-","")); + completedTaskPojo.setDocumentNo(todoTaskPojo.getDocumentNo()); + completedTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + completedTaskPojo.setIsDelete(0); + completedTaskPojo.setCurrentNode("已维护"); + sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(completedTaskPojo); } //应该不会有新增参数 要不然还要给参数绑定部门,责任人,填写人 // EngineParamDetailPojo ei = new EngineParamDetailPojo(); @@ -514,7 +536,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { ArrayList todoTaskPojos = new ArrayList<>(); - + ArrayList taskPojos = new ArrayList<>(); //分解任务更新填写人 for (EngineParamDetailPojo engineParamDetailPojo : engineParamDetailPojos) { sw.buildFromDatasource("xdap_app_223770822127386625") @@ -533,7 +555,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { todoTaskPojo.setStatusCode(null); todoTaskPojo.setModelName(modelPojo.getModelName()); todoTaskPojo.setModelId(modelPojo.getId()); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setDataType(CurrentNodeEnum.REPAIR.getDesc()); todoTaskPojo.setVersionNumber(modelPojo.getVersionNumber()); todoTaskPojo.setOwnerId(filledBy); @@ -541,8 +563,12 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { todoTaskPojo.setIsDelete(0); todoTaskPojo.setCreatedBy(ObjectUtils.isNotEmpty(XdapUsers) ? XdapUsers.getUsername() : ""); todoTaskPojos.add(todoTaskPojo); + InitiatedTaskPojo initiatedTaskPojo = new InitiatedTaskPojo(); + BeanUtils.copyProperties(todoTaskPojo, initiatedTaskPojo); + taskPojos.add(initiatedTaskPojo); } batchInsertTodoTask(todoTaskPojos); + batchInsertInitiatedTask(taskPojos); //每次分发填写人时进行检测 //这个责任人相关的填写人是否都已经填写完成如果没有则待办不动 如果填写完了待办完成 List detailPojos = selectByResId(userID); @@ -550,13 +576,31 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { .filter(x -> x.getEngineModelId().equals(engineModelId) && ObjectUtils.isEmpty(x.getFilledBy())).collect(Collectors.toList()); if (ObjectUtils.isEmpty(paramDetailPojos) || paramDetailPojos.isEmpty()) { //软删除这个代办人的任务 - sw.buildFromDatasource("xdap_app_223770822127386625") + TodoTaskPojo todoTaskPojo = sw.buildFromDatasource("xdap_app_223770822127386625") .eq("owner_id", userID) .eq("model_id", engineModelId) - .eq("data_type", "任务分解") + .eq("data_type", "任务分解").doQueryFirst(TodoTaskPojo.class); + //更新待办和发起的任务状态 + sw.buildFromDatasource("xdap_app_223770822127386625") .update("is_delete", 1) + .update("current_node", "已分解") .update("last_update_date", new Date()) + .eq("document_no", todoTaskPojo.getId()) .doUpdate(TodoTaskPojo.class); + sw.buildFromDatasource("xdap_app_223770822127386625") + .update("current_node", "已分解") + .update("last_update_date", new Date()) + .eq("document_no", todoTaskPojo.getId()) + .doUpdate(InitiatedTaskPojo.class); + //新增这个人的已办 + CompletedTaskPojo completedTaskPojo = new CompletedTaskPojo(); + BeanUtils.copyProperties(todoTaskPojo, completedTaskPojo); + completedTaskPojo.setId(UUID.randomUUID().toString().replaceAll("-","")); + completedTaskPojo.setDocumentNo(todoTaskPojo.getDocumentNo()); + completedTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + completedTaskPojo.setIsDelete(0); + completedTaskPojo.setCurrentNode("已分解"); + sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(completedTaskPojo); // //机型的分发状态改为已分发 // DistributeStatusEnum byDesc = DistributeStatusEnum.getByDesc("已分发"); // Integer status = byDesc != null ? byDesc.getCode() : null; @@ -571,6 +615,10 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { public void batchInsertTodoTask(List todoTaskPojos) { sw.buildFromDatasource("xdap_app_223770822127386625").doBatchInsert(todoTaskPojos); } + @Transactional(rollbackFor = Exception.class) // 发生任何异常都回滚 + public void batchInsertInitiatedTask(List taskPojos) { + sw.buildFromDatasource("xdap_app_223770822127386625").doBatchInsert(taskPojos); + } @Override public List selectAllByNewVersion() { diff --git a/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java index 46d8f67..dc15e30 100644 --- a/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java @@ -23,9 +23,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -69,22 +71,22 @@ public class TodoTaskServiceImpl implements TodoTaskService { } @Override - public PageResultDTO selectByPage(TodoTaskRequest todoTaskRequest) { - if (ObjectUtils.isEmpty(todoTaskRequest.getCreatedById())) { - throw new RuntimeException("请传入申请人"); + public PageResultDTO selectByPage(TodoTaskRequest taskRequest) { + if (ObjectUtils.isEmpty(taskRequest.getCreatedById())) { + throw new RuntimeException("请传入发起人"); } - List tods = new ArrayList<>(); - PageResultDTO todoTaskPojoPageResultDTO = new PageResultDTO<>(); - PageQueryResult queryResult = sw.buildFromDatasource("xdap_app_223770822127386625") - .eq("created_by_id", todoTaskRequest.getCreatedById()) - .distinct("document_no") + List tods = new ArrayList<>(); + PageResultDTO taskPojoPageResultDTO = new PageResultDTO<>(); + PageQueryResult queryResult = sw.buildFromDatasource("xdap_app_223770822127386625") + .eq("created_by_id", taskRequest.getCreatedById()) + .eq("is_delete", 0) .orderBy("creation_date", "desc") - .doPageQuery(todoTaskRequest.getPage(), todoTaskRequest.getSize(), TodoTaskPojo.class); + .doPageQuery(taskRequest.getPage(), taskRequest.getSize(), InitiatedTaskPojo.class); - for (TodoTaskPojo todoTaskPojo : queryResult.getResult()) { - TodoTaskPojo todoTaskPojo1 = new TodoTaskPojo(); - String currentProcessor = todoTaskPojo.getCurrentProcessor(); - BeanUtils.copyProperties(todoTaskPojo, todoTaskPojo1); + for (InitiatedTaskPojo taskPojo : queryResult.getResult()) { + InitiatedTaskPojo taskPojo1 = new InitiatedTaskPojo(); + String currentProcessor = taskPojo.getCurrentProcessor(); + BeanUtils.copyProperties(taskPojo, taskPojo1); List strings = new ArrayList<>(); if (ObjectUtils.isNotEmpty(currentProcessor)) { @@ -102,55 +104,21 @@ public class TodoTaskServiceImpl implements TodoTaskService { strings = Arrays.asList(currentProcessor); } } - todoTaskPojo1.setCurrentProcessor(String.join(",", strings)); - tods.add(todoTaskPojo1); + taskPojo1.setCurrentProcessor(String.join(",", strings)); + tods.add(taskPojo1); } - todoTaskPojoPageResultDTO.setList(tods); - todoTaskPojoPageResultDTO.setTotalCount(queryResult.getCount()); - return todoTaskPojoPageResultDTO; + taskPojoPageResultDTO.setList(tods); + taskPojoPageResultDTO.setTotalCount(queryResult.getCount()); + return taskPojoPageResultDTO; } @Override - public PageResultDTO selectByresPersonPage(TodoTaskRequest todoTaskRequest) { -// List modelPojos = sw.buildFromDatasource("test_demo") -// .eq("responsible_person_id", todoTaskRequest.getResOrfileByPersonId()) -// .doQuery(DataEntryEngineModelPojo.class); -// List strings = modelPojos.stream().map(x -> x.getId()).collect(Collectors.toList()); -// ArrayList taskPojos = new ArrayList<>(); -// ArrayList modelIds = new ArrayList<>(); -// //查询待办 会传入责任人或填写人 -// String resid = ""; -// String filedById= ""; -// resid = todoTaskRequest.getResPersonId(); -// filedById = todoTaskRequest.getFilledByPersonId(); -// //如果是填写人传进来 -// if (StrUtil.isBlank(resid)&&StrUtil.isNotBlank(filedById)){ -// List detailPojos = engineParamDetailService.selectByfiledId(filedById); -// for (EngineParamDetailPojo detailPojo : detailPojos) { -// modelIds.add(detailPojo.getEngineModelId()); -// } -// }else if (StrUtil.isBlank(filedById) && StrUtil.isNotBlank(resid)){ -// //如果是责任人传过来 -// List detailPojos = engineParamDetailService.selectByResId(resid); -// for (EngineParamDetailPojo detailPojo : detailPojos) { -// modelIds.add(detailPojo.getEngineModelId()); -// } -// } else if (StrUtil.isNotBlank(filedById) && StrUtil.isNotBlank(resid)) { -// //如果既是责任人也是填写人 -// List detailPojos = engineParamDetailService.selectByfiledId(filedById); -// detailPojos.addAll(engineParamDetailService.selectByResId(resid)); -// for (EngineParamDetailPojo detailPojo : detailPojos) { -// modelIds.add(detailPojo.getEngineModelId()); -// } -// } - Integer dOrYTask = todoTaskRequest.getIsFinished(); - if (dOrYTask != 0 && dOrYTask != 1) { - throw new RuntimeException("查询异常,联系管理员"); - } + public PageResultDTO selectByresPersonTodoPage(TodoTaskRequest todoTaskRequest) { + PageResultDTO pageResultDTO = new PageResultDTO(); PageQueryResult queryResult = sw.buildFromDatasource("xdap_app_223770822127386625") .eq("owner_id", todoTaskRequest.getPersonId()) - .eq("is_delete", dOrYTask) + .eq("is_delete", 0) .orderBy("creation_date", "desc") .doPageQuery(todoTaskRequest.getPage(), todoTaskRequest.getSize(), TodoTaskPojo.class); @@ -184,6 +152,47 @@ public class TodoTaskServiceImpl implements TodoTaskService { return pageResultDTO; } + @Override + public PageResultDTO selectByresPersonCompletedPage(TodoTaskRequest taskRequest) { + + PageResultDTO pageResultDTO = new PageResultDTO(); + PageQueryResult queryResult = sw.buildFromDatasource("xdap_app_223770822127386625") + .eq("owner_id", taskRequest.getPersonId()) + .eq("is_delete", 0) + .orderBy("creation_date", "desc") + .doPageQuery(taskRequest.getPage(), taskRequest.getSize(), CompletedTaskPojo.class); + + List tods = new ArrayList<>(); + for (CompletedTaskPojo taskPojo : queryResult.getResult()) { + CompletedTaskPojo taskPojo1 = new CompletedTaskPojo(); + String currentProcessor = taskPojo.getCurrentProcessor(); + BeanUtils.copyProperties(taskPojo, taskPojo1); + + List strings = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(currentProcessor)) { + try { + strings = JSON.parseArray(currentProcessor).toList(String.class).stream() + .map(x -> { + XdapUsers xdapUsers = xdapDeptUsersService.selectUserByID(x); + if (ObjectUtils.isNotEmpty(xdapUsers)) { + return xdapUsers.getUsername(); + } else { + return "未知用户名:" + x; + } + }).collect(Collectors.toList()); + } catch (Exception e) { + strings = Arrays.asList(currentProcessor); + } + } + taskPojo1.setCurrentProcessor(String.join(",", strings)); + tods.add(taskPojo1); + } + pageResultDTO.setList(tods); + pageResultDTO.setTotalCount(queryResult.getCount()); + return pageResultDTO; + + } + @Override public void createResPerson(List paramDetailPojosAll, String userID) { @@ -210,6 +219,7 @@ public class TodoTaskServiceImpl implements TodoTaskService { .stream() .collect(Collectors.toList()); ArrayList todoTaskPojos = new ArrayList<>(); + ArrayList taskPojos = new ArrayList<>(); XdapUsers xdapUsersPojo = xdapDeptUsersService.selectUserByID(userID); DataEntryEngineModelPojo modelPojo = dataEntryEngineModelService.selectBymodelId(modelId); @@ -224,15 +234,19 @@ public class TodoTaskServiceImpl implements TodoTaskService { todoTaskPojo.setStatusCode(null/*String.valueOf(ParamValueVersionEnum.DRAFT.getCode())*/); todoTaskPojo.setModelName(ObjectUtils.isNotEmpty(modelPojo) ? modelPojo.getModelName() : ""); todoTaskPojo.setModelId(modelId); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setDataType(CurrentNodeEnum.JOBSPLIT.getDesc()); todoTaskPojo.setVersionNumber(ObjectUtils.isNotEmpty(modelPojo) ? modelPojo.getVersionNumber() : 0); todoTaskPojo.setIsDelete(0); todoTaskPojo.setOwnerId(engineParamDetailDTO.getResPersonId()); todoTaskPojo.setCreatedBy(ObjectUtils.isNotEmpty(xdapUsersPojo) ? xdapUsersPojo.getUsername() : ""); todoTaskPojos.add(todoTaskPojo); + InitiatedTaskPojo initiatedTaskPojo = new InitiatedTaskPojo(); + BeanUtils.copyProperties(todoTaskPojo, initiatedTaskPojo); + taskPojos.add(initiatedTaskPojo); } batchInsertTodoTask(todoTaskPojos); + batchInsertInitiatedTask(taskPojos); List detailPojos = engineParamDetailService.selectByModelNewVersion(modelId); List paramDetailPojos = detailPojos.stream() .filter(x -> ObjectUtils.isEmpty(x.getResponsiblePersonId())).collect(Collectors.toList()); @@ -285,7 +299,7 @@ public class TodoTaskServiceImpl implements TodoTaskService { todoTaskPojo.setStatusCode(null/*String.valueOf(ParamValueVersionEnum.DRAFT.getCode())*/); todoTaskPojo.setModelName(todoTaskPojo1.getModelName()); todoTaskPojo.setModelId(todoTaskPojo1.getModelId()); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setDataType(todoTaskPojo1.getDataType()); todoTaskPojo.setVersionNumber(todoTaskPojo1.getVersionNumber()); todoTaskPojo.setIsDelete(0); @@ -439,5 +453,9 @@ public class TodoTaskServiceImpl implements TodoTaskService { public void batchInsertTodoTask(List todoTaskPojos) { sw.buildFromDatasource("xdap_app_223770822127386625").doBatchInsert(todoTaskPojos); } + @Transactional(rollbackFor = Exception.class) // 发生任何异常都回滚 + public void batchInsertInitiatedTask(List taskPojos) { + sw.buildFromDatasource("xdap_app_223770822127386625").doBatchInsert(taskPojos); + } }