diff --git a/src/main/java/com/xdap/self_development/controller/YcTaskResultController.java b/src/main/java/com/xdap/self_development/controller/YcTaskResultController.java index e9c455c..029ff2e 100644 --- a/src/main/java/com/xdap/self_development/controller/YcTaskResultController.java +++ b/src/main/java/com/xdap/self_development/controller/YcTaskResultController.java @@ -3,9 +3,8 @@ package com.xdap.self_development.controller; import com.definesys.mpaas.common.http.Response; import com.xdap.self_development.controller.request.YcGetTodoTaskRequest; -import com.xdap.self_development.pojo.TodoTaskPojo; -import com.xdap.self_development.pojo.dto.YcCompletedResultDTO; -import com.xdap.self_development.pojo.dto.YcInitiatorResultDTO; +import com.xdap.self_development.pojo.dto.PageResultDTO; +import com.xdap.self_development.pojo.dto.YcTodoTaskCommonResultDTO; import com.xdap.self_development.pojo.dto.YcTodoTaskResultDTO; import com.xdap.self_development.service.TodoTaskService; import org.springframework.beans.factory.annotation.Autowired; @@ -25,22 +24,22 @@ public class YcTaskResultController { //返回待办给玉柴云 @PostMapping("/returnTodoTask") - public Response returnTodoTask(@RequestBody String userName) { - List dtos = todoTaskService.returnTodoTask(userName); + public Response returnTodoTask(@RequestBody YcGetTodoTaskRequest ycGetTodoTaskRequest) { + List dtos = todoTaskService.returnTodoTask(ycGetTodoTaskRequest); return Response.ok().data(dtos); } //返回经办(已办)给玉柴云 @PostMapping("/returnCompleted") public Response returnCompleted(@RequestBody YcGetTodoTaskRequest ycGetTodoTaskRequest) { - YcCompletedResultDTO dto = new YcCompletedResultDTO(); - return Response.ok().data(dto); + PageResultDTO dtos = todoTaskService.returnCompleted(ycGetTodoTaskRequest); + return Response.ok().data(dtos); } //返回申请人所发起的给玉柴云 @PostMapping("/returnInitiator") public Response returnInitiator(@RequestBody YcGetTodoTaskRequest ycGetTodoTaskRequest) { - YcInitiatorResultDTO dto = new YcInitiatorResultDTO(); - return Response.ok().data(dto); + PageResultDTO dtos = todoTaskService.returnInitiator(ycGetTodoTaskRequest); + return Response.ok().data(dtos); } } diff --git a/src/main/java/com/xdap/self_development/pojo/dto/YcCompletedResultDTO.java b/src/main/java/com/xdap/self_development/pojo/dto/YcCompletedResultDTO.java deleted file mode 100644 index dc24930..0000000 --- a/src/main/java/com/xdap/self_development/pojo/dto/YcCompletedResultDTO.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.xdap.self_development.pojo.dto; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -//已办示例 -//{ -// "id": "966531", -// "title": "do et est incididunt" -// "createDate": "voluptate commodo esse mollit veniam", -// "activityName": "nulla", -// "type": "in aliquip sit in", -// "url": "in aliquip sit in", -// "urlMobileOA": "in aliquip sit in", -// "urlWx": "in aliquip sit in", -// "mobileSuit": "in aliquip sit in" -// } -@Data -@AllArgsConstructor -@NoArgsConstructor -public class YcCompletedResultDTO { - /* -员工编号 -主题 -经办时间 -当前环节 -类别,玉柴云/OA/CRM/SRM/TC/法务平台 -PC端流程地址 -移动OA流程地址,可以留空 -企业微信流程地址,可以留空 -"是否支持移动化,支持移动OA展示,传入1 -是否支持移动化,支持企业微信,传入2 -是否支持移动化,支持支持移动OA+企业微信,传入3 -可以留空" -*/ - private String username; - private String title; - private String createDate; - private String activityName; - private String type; - private String url; - private String urlMobileOA; - private String urlWx; - private String mobileSuit; - -} diff --git a/src/main/java/com/xdap/self_development/pojo/dto/YcInitiatorResultDTO.java b/src/main/java/com/xdap/self_development/pojo/dto/YcTodoTaskCommonResultDTO.java similarity index 96% rename from src/main/java/com/xdap/self_development/pojo/dto/YcInitiatorResultDTO.java rename to src/main/java/com/xdap/self_development/pojo/dto/YcTodoTaskCommonResultDTO.java index e2701d5..8a3a0a9 100644 --- a/src/main/java/com/xdap/self_development/pojo/dto/YcInitiatorResultDTO.java +++ b/src/main/java/com/xdap/self_development/pojo/dto/YcTodoTaskCommonResultDTO.java @@ -8,7 +8,7 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor -public class YcInitiatorResultDTO { +public class YcTodoTaskCommonResultDTO { /* * private String id string 非必须 流程唯一id private String username string 非必须 员工编号 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 8c1d329..ea21004 100644 --- a/src/main/java/com/xdap/self_development/service/TodoTaskService.java +++ b/src/main/java/com/xdap/self_development/service/TodoTaskService.java @@ -2,11 +2,11 @@ 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.TodoTaskPojo; -import com.xdap.self_development.pojo.dto.EngineParamDetailDTO; -import com.xdap.self_development.pojo.dto.PageResultDTO; -import com.xdap.self_development.pojo.dto.YcTodoTaskResultDTO; +import com.xdap.self_development.pojo.dto.*; +import java.util.ArrayList; import java.util.List; /** @@ -17,14 +17,21 @@ import java.util.List; * @author Lys111 * @since 2025-11-18 */ -public interface TodoTaskService { +public interface TodoTaskService { void batchInsert(List taskPojo); PageResultDTO selectByPage(TodoTaskRequest todoTaskRequest); - PageResultDTO selectByresPersonPage(TodoTaskRequest todoTaskRequest); - void createResPerson(List paramDetailPojos, String userID); + + PageResultDTO selectByresPersonPage(TodoTaskRequest todoTaskRequest); + + void createResPerson(List paramDetailPojos, String userID); void todoReturn(TodoReturnRequest todoReturnRequest); -//---------------------------------玉柴调用接口-------------------------------- - List returnTodoTask(String userName); + + //---------------------------------玉柴调用接口-------------------------------- + List returnTodoTask(YcGetTodoTaskRequest ycGetTodoTaskRequest); + + PageResultDTO returnCompleted(YcGetTodoTaskRequest ycGetTodoTaskRequest); + + PageResultDTO returnInitiator(YcGetTodoTaskRequest ycGetTodoTaskRequest); } diff --git a/src/main/java/com/xdap/self_development/service/XdapDeptUsersService.java b/src/main/java/com/xdap/self_development/service/XdapDeptUsersService.java index 7ba2523..6c23b81 100644 --- a/src/main/java/com/xdap/self_development/service/XdapDeptUsersService.java +++ b/src/main/java/com/xdap/self_development/service/XdapDeptUsersService.java @@ -29,4 +29,6 @@ public interface XdapDeptUsersService { XdapUsers selectUserByUserListAndDeptName(List xdapUsersPojos, XdapDepartments dpName); //通过人员ID查找人员 XdapUsers selectUserByID(String userId); + //通过人工号查找人员 + XdapUsers selectUserByCode(String userCode); } 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 4b1a065..526fa8c 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 @@ -545,6 +545,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { .eq("model_id", engineModelId) .eq("process_title", "任务分解") .update("is_delete", 1) + .update("last_update_date", new Date()) .doUpdate(TodoTaskPojo.class); // //机型的分发状态改为已分发 // DistributeStatusEnum byDesc = DistributeStatusEnum.getByDesc("已分发"); 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 54acb17..8d9a9e9 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 @@ -6,24 +6,24 @@ import com.definesys.mpaas.query.db.PageQueryResult; import com.xdap.api.moudle.user.pojo.XdapUsers; 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.enums.CurrentNodeEnum; import com.xdap.self_development.enums.DistributeStatusEnum; import com.xdap.self_development.pojo.*; -import com.xdap.self_development.pojo.dto.EngineParamDetailDTO; -import com.xdap.self_development.pojo.dto.PageResultDTO; +import com.xdap.self_development.pojo.dto.*; import com.xdap.self_development.service.DataEntryEngineModelService; import com.xdap.self_development.service.EngineParamDetailService; import com.xdap.self_development.service.TodoTaskService; import com.xdap.self_development.service.XdapDeptUsersService; import org.apache.commons.lang3.ObjectUtils; +import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; /** @@ -46,7 +46,18 @@ public class TodoTaskServiceImpl implements TodoTaskService { @Autowired private DataEntryEngineModelService dataEntryEngineModelService; - private Integer versionNumber = 0; + private final String SYSTEM = "研发数据管理平台"; + + private final String TODOTASKURL = "https://apaas-meim.app.yuchai.com/app/a5e8e08/ycgf-yf-rddata/223770822127386625/app/custom-page/" + + "apaas-custom-toDoList?appId=771297120740179968&title=%E6%88%91%E7%9A%84%E5%BE%85%E5%8A%9E¤tMenu=782242383386378240&url=apaas-custom-toDoList"; + private final String COMPLETEDURL = "https://apaas-meim.app.yuchai.com/app/a5e8e08/ycgf-yf-rddata/223770822127386625/app/custom-page/" + + "apaas-custom-toDoList?appId=771297120740179968&title=%E6%88%91%E7%9A%84%E5%BE%85%E5%8A%9E¤tMenu=782242383386378240&url=apaas-custom-toDoList"; + private final String INITIATORURL = "https://apaas-meim.app.yuchai.com/app/a5e8e08/ycgf-yf-rddata/223770822127386625/app/\n" + + "custom-page/apaas-custom-mySend?appId=771297120740179968&title=%E6%88%91%E5%8F%91%E8%B5%B7%E7%9A%84&\n" + + "currentMenu=788768456722874368&url=apaas-custom-mySend"; + + + private static final String dateFormat = "YYYY-MM-DD hh:mm:ss"; @Override public void batchInsert(List taskPojos) { @@ -236,6 +247,116 @@ public class TodoTaskServiceImpl implements TodoTaskService { } + @Override + public List returnTodoTask(YcGetTodoTaskRequest ycGetTodoTaskRequest) { + String username = ycGetTodoTaskRequest.getUsername(); + if (ObjectUtils.isEmpty(username)) { + return null; + } + ArrayList dtos = new ArrayList(); + XdapUsers xdapUsers = xdapDeptUsersService.selectUserByCode(username); + if (ObjectUtils.isNotEmpty(xdapUsers)) { + String id = xdapUsers.getId(); + List todoTaskPojos = sw.buildFromDatasource("xdap_app_223770822127386625") + .eq("owner_id", id) + .eq("is_delete", 0) + .doQuery(TodoTaskPojo.class); + for (TodoTaskPojo todoTaskPojo : todoTaskPojos) { + YcTodoTaskResultDTO dto = new YcTodoTaskResultDTO(); + dto.setTitle(todoTaskPojo.getProcessTitle()); + dto.setSystemName(SYSTEM); + dto.setUpdateDate(todoTaskPojo.getCreationDate()); + dto.setActivityLabel(todoTaskPojo.getCurrentNode()); + dto.setUrl(TODOTASKURL); + dtos.add(dto); + } + return dtos; + } + + return null; + } + + @Override + public PageResultDTO returnCompleted(YcGetTodoTaskRequest ycGetTodoTaskRequest) { + return commonTodoTask(ycGetTodoTaskRequest, "已办"); + } + + @Override + public PageResultDTO returnInitiator(YcGetTodoTaskRequest ycGetTodoTaskRequest) { + return commonTodoTask(ycGetTodoTaskRequest, "发起"); + } + + private PageResultDTO commonTodoTask(YcGetTodoTaskRequest ycGetTodoTaskRequest, String o) { + + if (ObjectUtils.isEmpty(ycGetTodoTaskRequest.getCreateDateStart())) { + throw new RuntimeException("开始时间为必填项"); + } + String userCode = ObjectUtils.isEmpty(ycGetTodoTaskRequest.getUsername()) ? "" : ycGetTodoTaskRequest.getUsername(); + String userid = ObjectUtils.isEmpty(xdapDeptUsersService.selectUserByCode(userCode)) ? "" : xdapDeptUsersService.selectUserByCode(userCode).getId(); + List todoTaskPojos = new ArrayList<>(); + PageResultDTO ycCompletedResultDTOPageResultDTO = new PageResultDTO<>(); + ArrayList ycCompletedResultDTOS = new ArrayList<>(); + String str = "owner_id"; + if (o.equals("发起")) { + str = "created_by_id"; + } + if (ObjectUtils.isEmpty(ycGetTodoTaskRequest.getPage()) + || ObjectUtils.isEmpty(ycGetTodoTaskRequest.getPageSize()) + ) { + todoTaskPojos = sw.buildFromDatasource("xdap_app_223770822127386625") + .eq(str, userid) + .gt("creation_date", ycGetTodoTaskRequest.getCreateDateStart()) + .lt("last_update_date", ycGetTodoTaskRequest.getCreateDateEnd()) + .eq("process_title", ycGetTodoTaskRequest.getTitle()) + .doQuery(TodoTaskPojo.class); + if (!o.equals("发起")) { + todoTaskPojos = todoTaskPojos.stream().filter(x -> x.getIsDelete() == 1).collect(Collectors.toList()); + } + ycCompletedResultDTOPageResultDTO.setTotalCount(todoTaskPojos.size()); + } else { + String page = ycGetTodoTaskRequest.getPage(); + String pageSize = ycGetTodoTaskRequest.getPageSize(); + int pageint = 0; + int pageSizeint = 999; + try { + pageint = Integer.parseInt(page); + pageSizeint = Integer.parseInt(pageSize); + } catch (NumberFormatException e) { + throw new RuntimeException("您的页码和页数非数字类型"); + } + PageQueryResult queryResult = sw.buildFromDatasource("xdap_app_223770822127386625") + .eq(str, userid) + .eq("is_delete", 1) + .gt("creation_date", ycGetTodoTaskRequest.getCreateDateStart()) + .lt("last_update_date", ycGetTodoTaskRequest.getCreateDateEnd()) + .eq("process_title", ycGetTodoTaskRequest.getTitle()) + .doPageQuery(pageint, pageSizeint, TodoTaskPojo.class); + todoTaskPojos = queryResult.getResult(); + if (!o.equals("发起")) { + todoTaskPojos = todoTaskPojos.stream().filter(x -> x.getIsDelete() == 1).collect(Collectors.toList()); + } + } + + for (TodoTaskPojo todoTaskPojo : todoTaskPojos) { + XdapUsers xdapUsers = xdapDeptUsersService.selectUserByID(todoTaskPojo.getOwnerId()); + SimpleDateFormat format = new SimpleDateFormat(dateFormat); + YcTodoTaskCommonResultDTO ycCompletedResultDTO = new YcTodoTaskCommonResultDTO(); + //TODO 已办页面还未提供 + if (!o.equals("发起")) { + ycCompletedResultDTO.setUrl(COMPLETEDURL); + } else { + ycCompletedResultDTO.setUrl(INITIATORURL); + } + ycCompletedResultDTO.setTitle(todoTaskPojo.getProcessTitle()); + ycCompletedResultDTO.setCreateDate(format.format(todoTaskPojo.getCreationDate())); + ycCompletedResultDTO.setUsername(xdapUsers.getUserNumber()); + ycCompletedResultDTO.setType(SYSTEM); + ycCompletedResultDTOS.add(ycCompletedResultDTO); + } + ycCompletedResultDTOPageResultDTO.setList(ycCompletedResultDTOS); + return ycCompletedResultDTOPageResultDTO; + } + @Transactional(rollbackFor = Exception.class) // 发生任何异常都回滚 public void batchInsertTodoTask(List todoTaskPojos) { sw.buildFromDatasource("xdap_app_223770822127386625").doBatchInsert(todoTaskPojos); diff --git a/src/main/java/com/xdap/self_development/service/impl/XdapDeptUsersServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/XdapDeptUsersServiceImpl.java index 5bd0e9e..2ea6450 100644 --- a/src/main/java/com/xdap/self_development/service/impl/XdapDeptUsersServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/XdapDeptUsersServiceImpl.java @@ -141,4 +141,19 @@ public class XdapDeptUsersServiceImpl implements XdapDeptUsersService { } return null; } + + @Override + public XdapUsers selectUserByCode(String userCode) { + + if (ObjectUtils.isEmpty(userCode)) { + return null; + } + List userPojos = runtimeDatasourceService.buildTenantMpaasQuery("xdap_app_223770822127386625") + .eq("user_number", userCode) + .doQuery(XdapUsers.class); + if (ObjectUtils.isNotEmpty(userPojos)) { + return userPojos.get(0); + } + return null; + } }