Преглед на файлове

综合首页相关接口

wucl преди 1 година
родител
ревизия
54fef5e897

+ 29 - 0
biz-base/src/main/java/com/dayou/controller/WorkTaskRecordController.java

@@ -132,5 +132,34 @@ public class WorkTaskRecordController extends BaseController {
         return RestResponse.data(ret);
     }
 
+    /**
+     * 综合首页大中型待办
+     * @return
+     */
+    @GetMapping("/major/todo/simple")
+    public RestResponse<List<TaskTodoVO>> majorTodoSimpleList(){
+        List<TaskTodoVO> ret = workTaskRecordService.majorTodoSimpleList();
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 综合首页个贷待办
+     * @return
+     */
+    @GetMapping("/personal/todo/simple")
+    public RestResponse<List<PersonalTodoVO>> personalTodoSimpleList(){
+        List<PersonalTodoVO> ret = workTaskRecordService.personalTodoSimpleList();
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 获取各业务待办总数
+     * @return
+     */
+    @GetMapping("/todoNum")
+    public RestResponse<List<BusinessTodoNum>> getTodoTotalNum(){
+        List<BusinessTodoNum> totalNums = workTaskRecordService.getTodoTotalNum();
+        return RestResponse.data(totalNums);
+    }
 }
 

+ 6 - 0
dao/src/main/java/com/dayou/mapper/WorkTaskRecordMapper.java

@@ -36,4 +36,10 @@ public interface WorkTaskRecordMapper extends CustomBaseMapper<WorkTaskRecord> {
     Page<PersonalTodoVO> personalTodoPage(Page page, @Param("todoVO") PersonalTodoVO  todoVO, @Param("keyword")String keyword);
 
     Page<PersonalTaskDoneVO> personalTaskDonePage(Page page, @Param("todoVO")PersonalTaskDoneVO doneVO, @Param("keyword")String keyword);
+
+    List<TaskTodoVO> majorTodoSimpleList(@Param("handlerId") Long handlerId);
+
+    List<PersonalTodoVO> personalTodoSimpleList(@Param("handlerId") Long handlerId);
+
+    List<BusinessTodoNum> getTodoTotalNum(@Param("handlerId")Long currentUserId);
 }

+ 95 - 0
dao/src/main/resources/mapper/WorkTaskRecordMapper.xml

@@ -362,4 +362,99 @@
         wf.created DESC
     </select>
 
+    <select id="majorTodoSimpleList" parameterType="java.lang.Long" resultType="com.dayou.vo.TaskTodoVO">
+        SELECT
+            wfni.id,
+            wtr.id as taskId,
+            wfni.id AS currentNodeId,
+            wfni.business_sub_id as statementNo,
+            wfni.business_min_id as reportNo,
+            wfni.business_id,
+            m.name as orderName,
+            m.order_id,
+            wfni.name AS nodeName,
+            wfni.code as nodeCode,
+            wfni.created as instanceCreated
+        FROM
+            work_task_record wtr
+                inner JOIN (
+                SELECT
+                    wn.NAME,
+                    wn.CODE,
+                    wfni.id,
+                    wfni.business_id ,
+                    wfni.business_sub_id,
+                    wfni.business_min_id,
+                    wfni.state,
+                    wfni.created
+                FROM
+                    work_flow_node_instance wfni
+                        LEFT JOIN work_node wn ON wn.id = wfni.node_id
+                WHERE
+                    wfni.business_type = 'MAJOR_BUSINESS'
+                  AND wfni.state = 'PENDING'
+                  AND wfni.deleted = 0
+                  AND wn.deleted = 0
+            ) wfni ON wtr.instance_id = wfni.id
+                LEFT JOIN major m ON m.id = wfni.business_id
+
+        WHERE
+            wtr.handler_id = #{handlerId}
+          AND wtr.deleted = 0
+        order by wfni.created limit 8
+    </select>
+
+    <select id="personalTodoSimpleList" parameterType="java.lang.Long" resultType="com.dayou.vo.PersonalTodoVO">
+        SELECT
+            wfni.id,
+            wtr.id AS taskId,
+            wfni.id AS currentNodeId,
+            wfni.business_id,
+            p.location,
+            p.order_id,
+            wfni.name AS nodeName,
+            wfni.code AS nodeCode,
+            wfni.created as instanceCreated
+        FROM
+            work_task_record wtr
+                LEFT JOIN work_node_task wnt ON wnt.id = wtr.task_id
+                INNER JOIN (
+                SELECT
+                    wn.NAME,
+                    wn.CODE,
+                    wfni.id,
+                    wfni.business_id,
+                    wfni.state,
+                    wfni.created
+                FROM
+                    work_flow_node_instance wfni
+                        LEFT JOIN work_node wn ON wn.id = wfni.node_id
+                WHERE
+                    wfni.business_type = 'PERSONAL_BUSINESS'
+                  AND wfni.state = 'PENDING'
+                  AND wfni.deleted = 0
+                  AND wn.deleted = 0
+            ) wfni ON wtr.instance_id = wfni.id
+                LEFT JOIN personal p ON p.id = wfni.business_id
+        WHERE
+            wtr.handler_id = #{handlerId}
+
+          AND wnt.deleted = 0
+          AND wtr.deleted = 0
+        order by wfni.created desc   limit 8
+    </select>
+
+    <select id="getTodoTotalNum" parameterType="java.lang.Long" resultType="com.dayou.vo.BusinessTodoNum">
+        SELECT
+            wfni.business_type,
+            count( wfni.id ) AS totalNum
+        FROM
+            work_task_record wtr
+                INNER JOIN ( SELECT wfni.business_type, wfni.id FROM work_flow_node_instance wfni WHERE wfni.state = 'PENDING' AND wfni.deleted = 0 ) wfni ON wtr.instance_id = wfni.id
+        WHERE
+            wtr.handler_id = #{handlerId}
+          AND wtr.deleted = 0
+        GROUP BY
+            wfni.business_type
+    </select>
 </mapper>

+ 25 - 0
domain/src/main/java/com/dayou/vo/BusinessTodoNum.java

@@ -0,0 +1,25 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2024/4/24
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class BusinessTodoNum {
+
+    /**
+     * 业务类型
+     */
+    private String businessType;
+
+    /**
+     * 我的大中型待办总数
+     */
+    private Integer totalNum;
+
+}

+ 3 - 0
domain/src/main/java/com/dayou/vo/PersonalTodoVO.java

@@ -4,6 +4,7 @@ import lombok.Data;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * 类说明:个贷待办列表VO
@@ -73,4 +74,6 @@ public class PersonalTodoVO {
 
     private BigDecimal price;
 
+    private Date instanceCreated;
+
 }

+ 2 - 0
domain/src/main/java/com/dayou/vo/TaskTodoVO.java

@@ -78,4 +78,6 @@ public class TaskTodoVO {
 
     private String productionName;
 
+    private Date instanceCreated;
+
 }

+ 6 - 0
service/src/main/java/com/dayou/service/workflow/IWorkTaskRecordService.java

@@ -40,4 +40,10 @@ public interface IWorkTaskRecordService extends IService<WorkTaskRecord> {
     Page<PersonalTodoVO> personalTodoPage(PersonalTodoVO todoVO, Page page, String keyword);
 
     Page<PersonalTaskDoneVO> personalTaskDonePage(PersonalTaskDoneVO doneVO, Page page, String keyword);
+
+    List<TaskTodoVO> majorTodoSimpleList();
+
+    List<PersonalTodoVO> personalTodoSimpleList();
+
+    List<BusinessTodoNum> getTodoTotalNum();
 }

+ 15 - 0
service/src/main/java/com/dayou/service/workflow/WorkTaskRecordServiceImpl.java

@@ -135,4 +135,19 @@ public class WorkTaskRecordServiceImpl extends ServiceImpl<WorkTaskRecordMapper,
         return done;
     }
 
+    @Override
+    public List<TaskTodoVO> majorTodoSimpleList() {
+        return workTaskRecordMapper.majorTodoSimpleList(LoginContext.getCurrentUserId());
+    }
+
+    @Override
+    public List<PersonalTodoVO> personalTodoSimpleList() {
+        return workTaskRecordMapper.personalTodoSimpleList(LoginContext.getCurrentUserId());
+    }
+
+    @Override
+    public List<BusinessTodoNum> getTodoTotalNum() {
+        return workTaskRecordMapper.getTodoTotalNum(LoginContext.getCurrentUserId());
+    }
+
 }