wucl 1 éve
szülő
commit
8f1a906299
28 módosított fájl, 555 hozzáadás és 47 törlés
  1. 10 10
      biz-base/src/main/java/com/dayou/controller/PersonalController.java
  2. 12 0
      biz-base/src/main/java/com/dayou/controller/UserController.java
  3. 72 0
      biz-base/src/main/java/com/dayou/controller/WorkRecordTransferController.java
  4. 4 4
      dao/src/main/java/com/dayou/mapper/PersonalMapper.java
  5. 2 0
      dao/src/main/java/com/dayou/mapper/UserMapper.java
  6. 16 0
      dao/src/main/java/com/dayou/mapper/WorkRecordTransferMapper.java
  7. 1 1
      dao/src/main/java/com/dayou/mapper/WorkTaskRecordMapper.java
  8. 7 3
      dao/src/main/resources/mapper/MajorMapper.xml
  9. 112 5
      dao/src/main/resources/mapper/PersonalMapper.xml
  10. 17 0
      dao/src/main/resources/mapper/UserMapper.xml
  11. 25 0
      dao/src/main/resources/mapper/WorkRecordTransferMapper.xml
  12. 43 1
      dao/src/main/resources/mapper/WorkTaskRecordMapper.xml
  13. 2 3
      domain/src/main/java/com/dayou/entity/MajorProduction.java
  14. 39 0
      domain/src/main/java/com/dayou/entity/WorkRecordTransfer.java
  15. 20 0
      domain/src/main/java/com/dayou/vo/DepartmentUserVO.java
  16. 2 0
      domain/src/main/java/com/dayou/vo/LuceneSearchVO.java
  17. 4 1
      domain/src/main/java/com/dayou/vo/MajorVO.java
  18. 4 0
      domain/src/main/java/com/dayou/vo/PersonalTodoVO.java
  19. 5 0
      domain/src/main/java/com/dayou/vo/PersonalVO.java
  20. 1 1
      gen/src/main/java/com/dayou/CodeGenerator.java
  21. 5 5
      service/src/main/java/com/dayou/service/IPersonalService.java
  22. 3 0
      service/src/main/java/com/dayou/service/IUserService.java
  23. 28 0
      service/src/main/java/com/dayou/service/IWorkRecordTransferService.java
  24. 2 2
      service/src/main/java/com/dayou/service/impl/LuceneSearchServiceImpl.java
  25. 10 10
      service/src/main/java/com/dayou/service/impl/PersonalServiceImpl.java
  26. 16 0
      service/src/main/java/com/dayou/service/impl/UserServiceImpl.java
  27. 77 0
      service/src/main/java/com/dayou/service/impl/WorkRecordTransferServiceImpl.java
  28. 16 1
      sql/update_sql.sql

+ 10 - 10
biz-base/src/main/java/com/dayou/controller/PersonalController.java

@@ -38,8 +38,8 @@ public class PersonalController extends BaseController {
     * 个贷业务订单列表
     */
     @GetMapping("")
-    public RestResponse<Page<PersonalVO>> page(PersonalVO personal, Page page){
-        Page<PersonalVO> pages=personalService.selectPage(page,personal);
+    public RestResponse<Page<PersonalVO>> page(PersonalVO personal, Page page,String keyword){
+        Page<PersonalVO> pages=personalService.selectPage(page,personal,keyword);
         return RestResponse.data(pages);
     }
 
@@ -47,8 +47,8 @@ public class PersonalController extends BaseController {
      * 个贷业务我的订单列表
      */
     @GetMapping("/mine")
-    public RestResponse<Page<PersonalVO>> mine(PersonalVO personal, Page page){
-        Page<PersonalVO> pages=personalService.myOrder(page,personal);
+    public RestResponse<Page<PersonalVO>> mine(PersonalVO personal, Page page,String keyword){
+        Page<PersonalVO> pages=personalService.myOrder(page,personal,keyword);
         return RestResponse.data(pages);
     }
 
@@ -116,8 +116,8 @@ public class PersonalController extends BaseController {
      * @return
      */
     @GetMapping("/waiting/claim")
-    public RestResponse<Page<PersonalVO>> waitingClaimOrder(Page page,PersonalVO personalVO){
-        Page<PersonalVO> ret = personalService.waitingClaimOrder(page,personalVO);
+    public RestResponse<Page<PersonalVO>> waitingClaimOrder(Page page,PersonalVO personalVO,String keyword){
+        Page<PersonalVO> ret = personalService.waitingClaimOrder(page,personalVO, keyword);
         return RestResponse.data(ret);
     }
 
@@ -126,8 +126,8 @@ public class PersonalController extends BaseController {
      * 个贷业务待归档订单列表
      */
     @GetMapping("/waiting/saveFile")
-    public RestResponse<Page<PersonalVO>> waitingSaveFile(PersonalVO personal, Page page){
-        Page<PersonalVO> pages=personalService.waitingSaveFile(page,personal);
+    public RestResponse<Page<PersonalVO>> waitingSaveFile(PersonalVO personal, Page page,String keyword){
+        Page<PersonalVO> pages=personalService.waitingSaveFile(page,personal,keyword);
         return RestResponse.data(pages);
     }
 
@@ -146,8 +146,8 @@ public class PersonalController extends BaseController {
      * 个贷业务待归档订单列表
      */
     @GetMapping("/saveFile/done")
-    public RestResponse<Page<PersonalVO>> saveFileDone(PersonalVO personal, Page page){
-        Page<PersonalVO> pages=personalService.saveFileDone(page,personal);
+    public RestResponse<Page<PersonalVO>> saveFileDone(PersonalVO personal, Page page,String keyword){
+        Page<PersonalVO> pages=personalService.saveFileDone(page,personal,keyword);
         return RestResponse.data(pages);
     }
 

+ 12 - 0
biz-base/src/main/java/com/dayou/controller/UserController.java

@@ -7,6 +7,7 @@ import com.dayou.dto.LoginDTO;
 import com.dayou.dto.UpdatePasswordDTO;
 import com.dayou.dto.UserBaseDetailDTO;
 import com.dayou.enums.OperationTypeEnum;
+import com.dayou.vo.DepartmentUserVO;
 import com.dayou.vo.IdNameVO;
 import com.dayou.vo.UserVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -314,5 +315,16 @@ public class UserController extends BaseController {
         List<User> list = userService.infoPostName(postName);
         return RestResponse.data(list);
     }
+
+    /**
+     * 和当前登录人同部门的人员
+     * @return
+     */
+    @GetMapping("/depart/users")
+    public RestResponse<List<DepartmentUserVO>> departmentUsers(){
+        List<DepartmentUserVO> ret = userService.departmentUsers();
+        return RestResponse.data(ret);
+    }
+
 }
 

+ 72 - 0
biz-base/src/main/java/com/dayou/controller/WorkRecordTransferController.java

@@ -0,0 +1,72 @@
+package com.dayou.controller;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.service.IWorkRecordTransferService;
+import com.dayou.entity.WorkRecordTransfer;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+/**
+ * 任务转交表
+ *
+ * @author wucl
+ * @since 2024-04-30
+ */
+@RestController
+@RequestMapping("workRecordTransfer")
+@Slf4j
+public class WorkRecordTransferController extends BaseController {
+    @Autowired
+    private IWorkRecordTransferService workRecordTransferService;
+
+    /**
+    * 任务转交表列表
+    */
+    @GetMapping("")
+    public RestResponse<Page<WorkRecordTransfer>> page(WorkRecordTransfer workRecordTransfer, Page page){
+        Page<WorkRecordTransfer> pages=workRecordTransferService.selectPage(page,workRecordTransfer);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 任务转交表详情
+     */
+    @GetMapping("/{id}")
+    public RestResponse<WorkRecordTransfer> detail(@PathVariable Long id){
+        WorkRecordTransfer xWorkRecordTransfer =workRecordTransferService.detail(id);
+        return RestResponse.data(xWorkRecordTransfer);
+     }
+
+    /**
+     * 任务转交表新增
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> save(@RequestBody WorkRecordTransfer workRecordTransfer) {
+        Boolean ret = workRecordTransferService.add(workRecordTransfer);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 任务转交表更新
+     */
+    @PutMapping("")
+    public RestResponse<Boolean> update(@RequestBody WorkRecordTransfer workRecordTransfer) {
+        Boolean ret = workRecordTransferService.update(workRecordTransfer);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 任务转交表删除
+     */
+    @DeleteMapping("/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = workRecordTransferService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+
+}
+

+ 4 - 4
dao/src/main/java/com/dayou/mapper/PersonalMapper.java

@@ -18,17 +18,17 @@ import java.util.List;
  */
 public interface PersonalMapper extends CustomBaseMapper<Personal> {
 
-    Page<PersonalVO> xSelectPage(Page page, @Param("personal") PersonalVO personal);
+    Page<PersonalVO> xSelectPage(Page page, @Param("personal") PersonalVO personal,@Param("keyword") String keyword);
 
     PersonalVO getDetail(@Param("id") Long id);
 
     Personal getByTargetId(@Param("targetId") Long targetId);
 
-    Page<PersonalVO> waitingSaveFile(Page page, @Param("personal")PersonalVO personal);
+    Page<PersonalVO> waitingSaveFile(Page page, @Param("personal")PersonalVO personal ,@Param("keyword") String keyword);
 
     void updateSaveFileInfo(@Param("list") List<Long> personalIds);
 
-    Page<PersonalVO> saveFileDone(Page page, @Param("personal")PersonalVO personal);
+    Page<PersonalVO> saveFileDone(Page page, @Param("personal")PersonalVO personal ,@Param("keyword") String keyword);
 
-    Page<PersonalVO> myOrder(Page page, @Param("personal")PersonalVO personal);
+    Page<PersonalVO> myOrder(Page page, @Param("personal")PersonalVO personal ,@Param("keyword") String keyword);
 }

+ 2 - 0
dao/src/main/java/com/dayou/mapper/UserMapper.java

@@ -40,6 +40,8 @@ public interface UserMapper extends CustomBaseMapper<User> {
 
     List<IdNameVO> usersByDepartments(@Param("list") List<String> list);
 
+    List<IdNameVO> usersByDepartmentIds(@Param("set") Set<Long> set);
+
     List<User> byDepartmentId(@Param("departmentId") Long departmentId);
 
     List<PullDownModel> allotDepartmentUsers(@Param("departmentIds") Set<Long> departmentIds);

+ 16 - 0
dao/src/main/java/com/dayou/mapper/WorkRecordTransferMapper.java

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.WorkRecordTransfer;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 任务转交表 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2024-04-30
+ */
+public interface WorkRecordTransferMapper extends CustomBaseMapper<WorkRecordTransfer> {
+
+}

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

@@ -33,7 +33,7 @@ public interface WorkTaskRecordMapper extends CustomBaseMapper<WorkTaskRecord> {
 
     void batchFinishTask(@Param("ids") List<Long> ids);
 
-    Page<PersonalTodoVO> personalTodoPage(Page page, @Param("todoVO") PersonalTodoVO  todoVO, @Param("keyword")String keyword);
+    Page<PersonalTodoVO> personalTodoPage(Page page, @Param("personal") PersonalTodoVO  personal, @Param("keyword")String keyword);
 
     Page<PersonalTaskDoneVO> personalTaskDonePage(Page page, @Param("todoVO")PersonalTaskDoneVO doneVO, @Param("keyword")String keyword);
 

+ 7 - 3
dao/src/main/resources/mapper/MajorMapper.xml

@@ -322,11 +322,12 @@
         mp.evaluate_amount,
         mp.OWNER,
         u.NAME AS HANDLER,
-        wn.CODE AS nodeCode
+        wn.CODE AS nodeCode,
+        mp.client_address
         FROM
         work_flow_node_instance wf
         LEFT JOIN work_node wn ON wn.id = wf.node_id
-        LEFT JOIN ( SELECT report_no, major_id, NAME, client_name, client_tel, evaluate_amount, OWNER FROM major_production WHERE deleted = 0 ) mp ON ( mp.major_id = wf.business_id AND mp.report_no = ifnull( wf.business_min_id, wf.business_sub_id ) )
+        LEFT JOIN ( SELECT report_no, major_id, NAME, client_name,client_address, client_tel, evaluate_amount, OWNER FROM major_production WHERE deleted = 0 ) mp ON ( mp.major_id = wf.business_id AND mp.report_no = ifnull( wf.business_min_id, wf.business_sub_id ) )
         LEFT JOIN work_task_record wtr ON wtr.instance_id = wf.id
         LEFT JOIN user u ON u.id = wtr.handler_id
         WHERE
@@ -339,6 +340,7 @@
         LEFT JOIN customer_linkman cl1 ON cl1.id = m.clientele_contact_id
         WHERE
         m.deleted = 0
+
         <if test="keyword!=null and keyword!='' ">
             and (
             m.name like concat ('%',#{keyword},'%')
@@ -357,6 +359,8 @@
             or wfni.business_sub_id like concat('%',#{keyword},'%')
             or wfni.owner like concat('%',#{keyword},'%')
             or wfni.business_min_id like concat('%',#{keyword},'%')
+            or wfni.client_address like concat('%',#{keyword},'%')
+            or wfni.productionName like concat('%',#{keyword},'%')
             )
         </if>
         <if test="major!=null and major.financial!=null">
@@ -397,10 +401,10 @@
                     <foreach collection="major.userIds" open="(" close=")" separator="," item="userId">
                         #{userId}
                     </foreach>
+               or  JSON_CONTAINS(JSON_EXTRACT(m.members, '$[*]'),CAST(#{currentUserId} AS CHAR))
 
             )
         </if>
-            or  JSON_CONTAINS(JSON_EXTRACT(m.members, '$[*]'),CAST(#{currentUserId} AS CHAR))
         order by wfni.currentNodeId DESC
     </select>
 </mapper>

+ 112 - 5
dao/src/main/resources/mapper/PersonalMapper.xml

@@ -105,10 +105,48 @@
             AND wf.deleted = 0
             AND wn.deleted = 0
             AND p.deleted = 0
-            <if test="personal.id!=null">
-                AND p.id = #{personal.id}
-            </if>
-
+        <if test="keyword!=null and keyword!='' ">
+            and (
+            p.location like concat ('%',#{keyword},'%')
+            or p.order_id like concat('%',#{keyword},'%')
+            or p.agent like concat('%',#{keyword},'%')
+            or p.bailorA like concat('%',#{keyword},'%')
+            or p.bailorB like concat('%',#{keyword},'%')
+            or cc1.name like concat('%',#{keyword},'%')
+            or cc2.name like concat('%',#{keyword},'%')
+            or cl1.name like concat('%',#{keyword},'%')
+            )
+        </if>
+        <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
+            and p.created &gt;= #{personal.startDate}
+        </if>
+        <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
+            and p.created &lt;= #{personal.endDate}
+        </if>
+        <if test="personal!=null and personal.nodeCode!=null and personal.nodeCode!=''">
+            and wn.code = #{personal.nodeCode}
+        </if>
+        <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
+            and cc1.NAME like concat('%',#{personal.clientName},'%')
+        </if>
+        <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
+            and cc2.NAME like concat('%',#{personal.clientSubName},'%')
+        </if>
+        <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
+            and u.name like concat('%',#{personal.clientManager},'%')
+        </if>
+        <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
+            and u1.name like concat('%',#{personal.outwardStaffName},'%')
+        </if>
+        <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
+            and u2.name like concat('%',#{personal.inwardStaffName},'%')
+        </if>
+        <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
+            and u3.name like concat('%',#{personal.pricingStaffName},'%')
+        </if>
+        <if test="personal!=null and personal.handlerName!=null and personal.handlerName!='' ">
+            and u4.name like concat('%',#{personal.handlerName},'%')
+        </if>
     </select>
 
     <select id="getDetail" parameterType="java.lang.Long" resultType="com.dayou.vo.PersonalVO">
@@ -180,7 +218,15 @@
                  left join (select business_id,real_amount from order_fund where business_type='PERSONAL_BUSINESS' and deleted = 0) o on o.business_id = p.id
         where  wn.code = 'BUSINESS_ARCHIVING'
           AND wn.deleted = 0
-          AND p.deleted = 0;
+          AND p.deleted = 0
+        <if test="keyword!=null and keyword!='' ">
+            and (
+            p.location like concat ('%',#{keyword},'%')
+            or p.order_id like concat('%',#{keyword},'%')
+            or cc1.name like concat('%',#{keyword},'%')
+            or cc2.name like concat('%',#{keyword},'%')
+            )
+        </if>
     </select>
 
     <update id="updateSaveFileInfo" parameterType="java.util.List">
@@ -220,6 +266,40 @@
                 left join (select business_id,real_amount from order_fund where business_type='PERSONAL_BUSINESS' and deleted = 0) o on o.business_id = p.id
         where
             p.deleted = 0 and p.if_save_file = 1 and pt.deleted= 0
+        <if test="keyword!=null and keyword!='' ">
+            and (
+            p.location like concat ('%',#{keyword},'%')
+            or p.order_id like concat('%',#{keyword},'%')
+            or p.bailorA like concat('%',#{keyword},'%')
+            or p.bailorB like concat('%',#{keyword},'%')
+            or cc1.name like concat('%',#{keyword},'%')
+            or cc2.name like concat('%',#{keyword},'%')
+            )
+        </if>
+        <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
+            and p.created &gt;= #{personal.startDate}
+        </if>
+        <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
+            and p.created &lt;= #{personal.endDate}
+        </if>
+        <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
+            and cc1.NAME like concat('%',#{personal.clientName},'%')
+        </if>
+        <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
+            and cc2.NAME like concat('%',#{personal.clientSubName},'%')
+        </if>
+        <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
+            and u.name like concat('%',#{personal.clientManager},'%')
+        </if>
+        <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
+            and u1.name like concat('%',#{personal.outwardStaffName},'%')
+        </if>
+        <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
+            and u2.name like concat('%',#{personal.inwardStaffName},'%')
+        </if>
+        <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
+            and u3.name like concat('%',#{personal.pricingStaffName},'%')
+        </if>
     </select>
 
     <select id="myOrder" parameterType="com.dayou.vo.PersonalVO" resultType="com.dayou.vo.PersonalVO">
@@ -256,5 +336,32 @@
                 left join (select business_id,real_amount,should_amount from order_fund where business_type='PERSONAL_BUSINESS' and deleted = 0) o on o.business_id = p.id
         where
             p.deleted = 0  and pt.deleted= 0 and p.client_manager_id = #{personal.clientManagerId}
+        <if test="keyword!=null and keyword!='' ">
+            and (
+            p.location like concat ('%',#{keyword},'%')
+            or p.order_id like concat('%',#{keyword},'%')
+            or p.agent like concat('%',#{keyword},'%')
+            or p.bailorA like concat('%',#{keyword},'%')
+            or p.bailorB like concat('%',#{keyword},'%')
+            or cc1.name like concat('%',#{keyword},'%')
+            or cc2.name like concat('%',#{keyword},'%')
+            or cl.name like concat('%',#{keyword},'%')
+            )
+        </if>
+        <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
+            and p.created &gt;= #{personal.startDate}
+        </if>
+        <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
+            and p.created &lt;= #{personal.endDate}
+        </if>
+        <if test="personal!=null and personal.nodeCode!=null and personal.nodeCode!=''">
+            and wn.code = #{personal.nodeCode}
+        </if>
+        <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
+            and cc1.NAME like concat('%',#{personal.clientName},'%')
+        </if>
+        <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
+            and cc2.NAME like concat('%',#{personal.clientSubName},'%')
+        </if>
     </select>
 </mapper>

+ 17 - 0
dao/src/main/resources/mapper/UserMapper.xml

@@ -177,6 +177,23 @@
           AND u.deleted = 0
     </select>
 
+    <select id="usersByDepartmentIds" parameterType="java.util.Set" resultType="com.dayou.vo.IdNameVO">
+        SELECT DISTINCT
+        u.id,
+        u.name
+        FROM
+        user_post up
+        INNER JOIN ( SELECT id FROM post WHERE department_id in (
+        <foreach collection="list" index="index" item="item" separator=",">
+            #{item}
+        </foreach>
+        )
+         AND deleted = 0 ) p ON up.post_id = p.id
+        LEFT JOIN user u ON u.id = up.user_id
+        WHERE
+        up.deleted = 0
+        AND u.deleted = 0
+    </select>
     <select id="byDepartmentId" parameterType="java.lang.Long" resultType="com.dayou.entity.User">
         SELECT DISTINCT
             u.id,

+ 25 - 0
dao/src/main/resources/mapper/WorkRecordTransferMapper.xml

@@ -0,0 +1,25 @@
+<?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.dayou.mapper.WorkRecordTransferMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.WorkRecordTransfer">
+        <result column="id" property="id" />
+        <result column="created" property="created" />
+        <result column="modified" property="modified" />
+        <result column="deleted" property="deleted" />
+        <result column="record_id" property="recordId" />
+        <result column="from_id" property="fromId" />
+        <result column="to_id" property="toId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        created,
+        modified,
+        deleted,
+        record_id, from_id, to_id
+    </sql>
+
+</mapper>

+ 43 - 1
dao/src/main/resources/mapper/WorkTaskRecordMapper.xml

@@ -298,10 +298,52 @@
         LEFT JOIN user u4 ON u4.id = p.pricing_staff
         LEFT JOIN personal_target pt ON pt.personal_id = p.id
         WHERE
-        wtr.handler_id = #{todoVO.handlerId}
+        wtr.handler_id = #{personal.handlerId}
         AND u.deleted = 0
         AND wnt.deleted = 0
         AND wtr.deleted = 0
+        <if test="keyword!=null and keyword!='' ">
+            and (
+            p.location like concat ('%',#{keyword},'%')
+            or p.order_id like concat('%',#{keyword},'%')
+            or p.agent like concat('%',#{keyword},'%')
+            or p.bailorA like concat('%',#{keyword},'%')
+            or p.bailorB like concat('%',#{keyword},'%')
+            or cc.name like concat('%',#{keyword},'%')
+            or cc1.name like concat('%',#{keyword},'%')
+            or cl.name like concat('%',#{keyword},'%')
+            )
+        </if>
+        <if test="personal!=null and personal.startDate!=null and personal.startDate!=''">
+            and p.created &gt;= #{personal.startDate}
+        </if>
+        <if test="personal!=null and personal.endDate!=null and personal.endDate!=''">
+            and p.created &lt;= #{personal.endDate}
+        </if>
+        <if test="personal!=null and personal.nodeCode!=null and personal.nodeCode!=''">
+            and wn.code = #{personal.nodeCode}
+        </if>
+        <if test="personal!=null and personal.clientName!=null and personal.clientName!=''">
+            and cc.NAME like concat('%',#{personal.clientName},'%')
+        </if>
+        <if test="personal!=null and personal.clientSubName!=null and personal.clientSubName!=''">
+            and cc1.NAME like concat('%',#{personal.clientSubName},'%')
+        </if>
+        <if test="personal!=null and personal.clientManager!=null and personal.clientManager!='' ">
+            and u.name like concat('%',#{personal.clientManager},'%')
+        </if>
+        <if test="personal!=null and personal.outwardStaffName!=null and personal.outwardStaffName!='' ">
+            and u1.name like concat('%',#{personal.outwardStaffName},'%')
+        </if>
+        <if test="personal!=null and personal.inwardStaffName!=null and personal.inwardStaffName!='' ">
+            and u2.name like concat('%',#{personal.inwardStaffName},'%')
+        </if>
+        <if test="personal!=null and personal.pricingStaffName!=null and personal.pricingStaffName!='' ">
+            and u3.name like concat('%',#{personal.pricingStaffName},'%')
+        </if>
+        <if test="personal!=null and personal.handlerName!=null and personal.handlerName!='' ">
+            and u4.name like concat('%',#{personal.handlerName},'%')
+        </if>
     </select>
 
     <select id="personalTaskDonePage" parameterType="com.dayou.vo.PersonalTaskDoneVO" resultType="com.dayou.vo.PersonalTaskDoneVO">

+ 2 - 3
domain/src/main/java/com/dayou/entity/MajorProduction.java

@@ -27,7 +27,7 @@ import org.apache.poi.ss.formula.functions.T;
 @EqualsAndHashCode(callSuper = true)
 @ExcelSheet(sheetName = "大中型产品")
 @LuceneResource(value = MainBusinessEnum.MAJOR_BUSINESS,serviceImplClassName = "majorProductionServiceImpl",
-        menuName="已归档产品",url="/major/saveFileDone",checkField="ifSaveFile")
+        menuName="正在进行",url="/major/list",checkField="ifSaveFile")
 public class MajorProduction extends BaseEntity {
 
     private static final long serialVersionUID=1L;
@@ -47,7 +47,6 @@ public class MajorProduction extends BaseEntity {
      */
     @ImportCell
     @ExportCell(columnName = "产品类型")
-    @LuceneSearchable
     private String production;
 
     /**
@@ -181,7 +180,7 @@ public class MajorProduction extends BaseEntity {
     /**
      *是否归档
      */
-    @LuceneSearchable(value="if_save_file",menuName = "待归档产品",url="/major/saveFile/waiting")
+    @LuceneSearchable(value="if_save_file",menuName = "已归档产品",url="/major/saveFileDone")
     private Boolean ifSaveFile;
 
     /**

+ 39 - 0
domain/src/main/java/com/dayou/entity/WorkRecordTransfer.java

@@ -0,0 +1,39 @@
+package com.dayou.entity;
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.dayou.annotation.ExcelSheet;
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+/**
+ * <p>
+ * 任务转交表
+ * </p>
+ *
+ * @author wucl
+ * @since 2024-04-30
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "任务转交表")
+public class WorkRecordTransfer extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 任务记录id
+     */
+    private Long recordId;
+
+    /**
+     * 原处理人id
+     */
+    private Long fromId;
+
+    /**
+     * 转交到处理人id
+     */
+    private Long toId;
+
+
+}

+ 20 - 0
domain/src/main/java/com/dayou/vo/DepartmentUserVO.java

@@ -0,0 +1,20 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2024/4/30
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class DepartmentUserVO {
+
+    private String name;
+
+    private List<IdNameVO> users;
+}

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

@@ -17,6 +17,8 @@ public class LuceneSearchVO {
 
     private String id;
 
+    private String highlighter;
+
     private String result;
 
     private String menuName;

+ 4 - 1
domain/src/main/java/com/dayou/vo/MajorVO.java

@@ -1,12 +1,15 @@
 package com.dayou.vo;
 
+import com.dayou.annotation.LuceneResource;
+import com.dayou.annotation.LuceneSearchable;
 import com.dayou.entity.Major;
-import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.Data;
 
 import java.util.List;
 import java.util.Set;
 
+import static com.dayou.enums.MainBusinessEnum.MAJOR_BUSINESS;
+
 /**
  * 类说明:
  *

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

@@ -76,4 +76,8 @@ public class PersonalTodoVO {
 
     private Date instanceCreated;
 
+    private String startDate;
+
+    private String endDate;
+
 }

+ 5 - 0
domain/src/main/java/com/dayou/vo/PersonalVO.java

@@ -136,5 +136,10 @@ public class PersonalVO extends Personal {
      */
     private String orderName;
 
+    private String startDate;
+
+    private String endDate;
+
+    private String nodeCode;
 
 }

+ 1 - 1
gen/src/main/java/com/dayou/CodeGenerator.java

@@ -46,7 +46,7 @@ public class CodeGenerator {
         //如果需要额外生成一个备份,则设置输出路径,否则直接设为null,因为下面每个模块已经单独设置了输出目录
         //gc.setOutputDir(projectPath+"/gen");
         gc.setOutputDir(null);
-        gc.setAuthor("GouGengquan");
+        gc.setAuthor("wucl");
         gc.setOpen(false);
         gc.setBaseResultMap(true);
         gc.setBaseColumnList(true);

+ 5 - 5
service/src/main/java/com/dayou/service/IPersonalService.java

@@ -24,7 +24,7 @@ import java.util.List;
  */
 public interface IPersonalService extends IService<Personal> {
 
-        Page<PersonalVO> selectPage(Page page, PersonalVO personal);
+        Page<PersonalVO> selectPage(Page page, PersonalVO personal,String keyword);
 
         PersonalVO detail(Long id);
 
@@ -40,15 +40,15 @@ public interface IPersonalService extends IService<Personal> {
 
     Boolean doRecall(Long id);
 
-    Page<PersonalVO> waitingClaimOrder(Page page, PersonalVO personalVO);
+    Page<PersonalVO> waitingClaimOrder(Page page, PersonalVO personalVO,String keyword);
 
-    Page<PersonalVO> waitingSaveFile(Page page, PersonalVO personal);
+    Page<PersonalVO> waitingSaveFile(Page page, PersonalVO personal,String keyword);
 
     Boolean batchSaveFile(List<TaskTodoVO> todoVOList);
 
-    Page<PersonalVO> saveFileDone(Page page, PersonalVO personal);
+    Page<PersonalVO> saveFileDone(Page page, PersonalVO personal,String keyword);
 
-    Page<PersonalVO> myOrder(Page page, PersonalVO personal);
+    Page<PersonalVO> myOrder(Page page, PersonalVO personal,String keyword);
 
     Boolean personalAllotRealAmount(List<OrderReportDTO> claimOrders);
 

+ 3 - 0
service/src/main/java/com/dayou/service/IUserService.java

@@ -11,6 +11,7 @@ import com.dayou.entity.User;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dayou.vo.DepartmentUserVO;
 import com.dayou.vo.IdNameVO;
 import com.dayou.vo.UserVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -103,4 +104,6 @@ public interface IUserService extends IService<User> {
     List<PullDownModel> allotDepartmentUsers(String businessType);
 
     List<User> infoPostName(String postName);
+
+    List<DepartmentUserVO> departmentUsers();
 }

+ 28 - 0
service/src/main/java/com/dayou/service/IWorkRecordTransferService.java

@@ -0,0 +1,28 @@
+package com.dayou.service;
+import com.dayou.entity.WorkRecordTransfer;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * <p>
+ * 任务转交表 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2024-04-30
+ */
+public interface IWorkRecordTransferService extends IService<WorkRecordTransfer> {
+
+        Page<WorkRecordTransfer> selectPage(Page page,WorkRecordTransfer workRecordTransfer);
+
+        WorkRecordTransfer detail(Long id);
+
+        Boolean add(WorkRecordTransfer workRecordTransfer);
+
+        Boolean update(WorkRecordTransfer workRecordTransfer);
+
+        Boolean delete(Long id);
+
+}

+ 2 - 2
service/src/main/java/com/dayou/service/impl/LuceneSearchServiceImpl.java

@@ -56,7 +56,6 @@ import java.util.*;
 public class LuceneSearchServiceImpl implements ILuceneSearchService {
 
     private final String BASE_PACKAGE = "com.dayou.entity";
-
     private final String RESOURCE_PATTERN = "/**/*.class";
 
     @Autowired
@@ -140,10 +139,11 @@ public class LuceneSearchServiceImpl implements ILuceneSearchService {
                 Document doc = reader.document(docId);
                 luceneSearchVO.setId(doc.get("id"));
                 String result = doc.get("result");
+                luceneSearchVO.setResult(result);
                 if (StrUtil.isNotBlank(result)){
                     result = highlighter.getBestFragment(new IKAnalyzer(), "result", result);
                 }
-                luceneSearchVO.setResult(result);
+                luceneSearchVO.setHighlighter(result);
                 luceneSearchVO.setBusinessEnum(doc.get("businessEnum"));
                 luceneSearchVO.setMenuName(doc.get("menuName"));
                 luceneSearchVO.setUrl(doc.get("url"));

+ 10 - 10
service/src/main/java/com/dayou/service/impl/PersonalServiceImpl.java

@@ -110,8 +110,8 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
 
     @Override
     @SuppressWarnings("unchecked")
-    public Page<PersonalVO> selectPage(Page page, PersonalVO personal){
-        Page<PersonalVO> pages = personalMapper.xSelectPage(page,personal);
+    public Page<PersonalVO> selectPage(Page page, PersonalVO personal,String keyword){
+        Page<PersonalVO> pages = personalMapper.xSelectPage(page,personal,keyword);
         return pages;
     }
 
@@ -203,15 +203,15 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
      * @return
      */
     @Override
-    public Page<PersonalVO> waitingClaimOrder(Page page, PersonalVO personalVO) {
+    public Page<PersonalVO> waitingClaimOrder(Page page, PersonalVO personalVO,String keyword) {
         personalVO.setClientManagerId(LoginContext.getCurrentUserId());
-        Page<PersonalVO> pages = personalMapper.myOrder(page,personalVO);
+        Page<PersonalVO> pages = personalMapper.myOrder(page,personalVO,keyword);
         return pages;
     }
 
     @Override
-    public Page<PersonalVO> waitingSaveFile(Page page, PersonalVO personal) {
-        Page<PersonalVO> pages = personalMapper.waitingSaveFile(page,personal);
+    public Page<PersonalVO> waitingSaveFile(Page page, PersonalVO personal,String keyword) {
+        Page<PersonalVO> pages = personalMapper.waitingSaveFile(page,personal,keyword);
         return pages;
     }
 
@@ -254,15 +254,15 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
     }
 
     @Override
-    public Page<PersonalVO> saveFileDone(Page page, PersonalVO personal) {
-        Page<PersonalVO> pages = personalMapper.saveFileDone(page,personal);
+    public Page<PersonalVO> saveFileDone(Page page, PersonalVO personal,String keyword) {
+        Page<PersonalVO> pages = personalMapper.saveFileDone(page,personal,keyword);
         return pages;
     }
 
     @Override
-    public Page<PersonalVO> myOrder(Page page, PersonalVO personal) {
+    public Page<PersonalVO> myOrder(Page page, PersonalVO personal,String keyword) {
         personal.setClientManagerId(LoginContext.getCurrentUserId());
-        Page<PersonalVO> pages = personalMapper.myOrder(page,personal);
+        Page<PersonalVO> pages = personalMapper.myOrder(page,personal,keyword);
         return pages;
     }
 

+ 16 - 0
service/src/main/java/com/dayou/service/impl/UserServiceImpl.java

@@ -1,6 +1,7 @@
 package com.dayou.service.impl;
 
 import cn.hutool.Hutool;
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -24,6 +25,7 @@ import com.dayou.mapper.UserMapper;
 import com.dayou.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.utils.*;
+import com.dayou.vo.DepartmentUserVO;
 import com.dayou.vo.IdNameVO;
 import com.dayou.vo.UserVO;
 import com.google.common.collect.Maps;
@@ -595,6 +597,20 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         return list;
     }
 
+    @Override
+    public List<DepartmentUserVO> departmentUsers() {
+        LoginCacheUserBO loginCacheUserBO = LoginContext.getLoginCacheUserBO();
+        List<SimpleParentModel> departmentList = loginCacheUserBO.getDepartmentList();
+        List<DepartmentUserVO> collect = departmentList.stream().map(x -> {
+            DepartmentUserVO departmentUserVO = new DepartmentUserVO();
+            departmentUserVO.setName(x.getName());
+            List<User> users = userMapper.byDepartmentId(x.getId());
+            departmentUserVO.setUsers(BeanUtil.copyToList(users, IdNameVO.class));
+            return departmentUserVO;
+        }).collect(Collectors.toList());
+        return collect;
+    }
+
     /**
      * 递归查询下级岗位
      * @param postIds

+ 77 - 0
service/src/main/java/com/dayou/service/impl/WorkRecordTransferServiceImpl.java

@@ -0,0 +1,77 @@
+package com.dayou.service.impl;
+
+import com.dayou.common.BaseEntity;
+import com.dayou.entity.WorkRecordTransfer;
+import com.dayou.entity.WorkTaskRecord;
+import com.dayou.mapper.WorkRecordTransferMapper;
+import com.dayou.service.IWorkRecordTransferService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.service.workflow.IWorkTaskRecordService;
+import com.dayou.utils.LoginContext;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.dayou.utils.ExcelUtil;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.List;
+import java.util.ArrayList;
+import org.springframework.transaction.annotation.Transactional;
+import com.dayou.enums.BatchTaskTypeEnum;
+
+/**
+ * <p>
+ * 任务转交表 服务实现类
+ * </p>
+ *
+ * @author wucl
+ * @since 2024-04-30
+ */
+@Service
+public class WorkRecordTransferServiceImpl extends ServiceImpl<WorkRecordTransferMapper, WorkRecordTransfer> implements IWorkRecordTransferService {
+
+    @Autowired
+    private IWorkTaskRecordService workTaskRecordService;
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<WorkRecordTransfer> selectPage(Page page,WorkRecordTransfer workRecordTransfer){
+        return this.page(page, new QueryWrapper<WorkRecordTransfer>(workRecordTransfer));
+    }
+
+
+    @Override
+    public WorkRecordTransfer detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    @Transactional
+    public Boolean add(WorkRecordTransfer workRecordTransfer){
+        workTaskRecordService.update(new LambdaUpdateWrapper<WorkTaskRecord>().set(WorkTaskRecord::getHandlerId,workRecordTransfer.getToId())
+                .eq(BaseEntity::getId,workRecordTransfer.getRecordId()));
+        workRecordTransfer.setFromId(LoginContext.getCurrentUserId());
+        return  this.save(workRecordTransfer);
+    }
+
+    @Override
+    public Boolean update(WorkRecordTransfer workRecordTransfer){
+        return  this.updateById(workRecordTransfer);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+}

+ 16 - 1
sql/update_sql.sql

@@ -294,4 +294,19 @@ ALTER TABLE assets_production ADD COLUMN assets_name VARCHAR(255) NULL comment '
  */
  # 资产评估对象表修改以及新增字段
 ALTER TABLE assets_evaluation_target CHANGE COLUMN production_no statement_no VARCHAR(128) NULL COMMENT '意见书产品号';
-ALTER TABLE assets_evaluation_target ADD COLUMN report_no VARCHAR(128) NULL COMMENT '报告产品号';
+ALTER TABLE assets_evaluation_target ADD COLUMN report_no VARCHAR(128) NULL COMMENT '报告产品号';
+
+/**
+  日期:2024-04-30
+  修改人:吴长林
+ */
+CREATE TABLE `work_record_transfer` (
+                                        `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+                                        `record_id` bigint(20) NOT NULL COMMENT '任务记录id',
+                                        `from_id` bigint(20) NOT NULL COMMENT '原处理人id',
+                                        `to_id` bigint(20) NOT NULL COMMENT '转交到处理人id',
+                                        `created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+                                        `modified` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '修改时间',
+                                        `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标识:1:删除 0:未删除',
+                                        PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='任务转交表';