浏览代码

1.资产查询新增资产待办任务列表
2.资产查询新增资产查询归档列表(新增接口)
3.资产查询新增资产查询已办列表(新增接口)
3.修复关键字查询报错的bug

GouGengquan 1 年之前
父节点
当前提交
cbee28533d

+ 11 - 0
biz-base/src/main/java/com/dayou/controller/AssetsController.java

@@ -57,6 +57,17 @@ public class AssetsController extends BaseController {
     }
 
     /**
+     * 条件查询资产已归档列表
+     * @param page 分页条件
+     * @param assetsSelectDTO 查询条件
+     * @return Page<AssetsVO>
+     */
+    @GetMapping("/selectArchivedPage")
+    public RestResponse<Page<AssetsVO>> selectArchivedPage(AssetsSelectDTO assetsSelectDTO, Page page) {
+        return RestResponse.data(assetsService.selectArchivedPage(page, assetsSelectDTO));
+    }
+
+    /**
      * 资产业务订单表详情
      */
     @GetMapping("getAssetsDetailById/{id}")

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

@@ -1,5 +1,6 @@
 package com.dayou.controller;
 
+import com.dayou.dto.AssetsSelectDTO;
 import com.dayou.vo.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -161,5 +162,16 @@ public class WorkTaskRecordController extends BaseController {
         List<BusinessTodoNum> totalNums = workTaskRecordService.getTodoTotalNum();
         return RestResponse.data(totalNums);
     }
+
+    /**
+     * 获取资产业务已办列表
+     * @param assetsSelectDTO 查询dto
+     * @param page 分页
+     * @return RestResponse<List<AssetsTaskDoneVO>>
+     */
+    @GetMapping("/assets/getAssetsTaskDoneList")
+    public RestResponse<Page<AssetsTaskDoneVO>> getAssetsTaskDoneList(AssetsSelectDTO assetsSelectDTO, Page page) {
+        return RestResponse.data(workTaskRecordService.getAssetsTaskDoneList(assetsSelectDTO, page));
+    }
 }
 

+ 8 - 0
dao/src/main/java/com/dayou/mapper/AssetsMapper.java

@@ -40,6 +40,14 @@ public interface AssetsMapper extends CustomBaseMapper<Assets> {
     Page<AssetsVO> selectMyOrderPage(@Param("page") Page page, @Param("assetsSelectDTO") AssetsSelectDTO assetsSelectDTO);
 
     /**
+     * 条件查询资产已归档列表
+     * @param page 分页条件
+     * @param assetsSelectDTO 查询条件
+     * @return Page<AssetsVO>
+     */
+    Page<AssetsVO> selectArchivedPage(@Param("page") Page page, @Param("assetsSelectDTO") AssetsSelectDTO assetsSelectDTO);
+
+    /**
      * 根据业务id获取资产业务详情
      * @param id 业务id
      * @return AssetsVO

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

@@ -1,6 +1,7 @@
 package com.dayou.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.dto.AssetsSelectDTO;
 import com.dayou.dto.WorkNodeInstanceTaskDTO;
 import com.dayou.entity.WorkTaskRecord;
 import com.dayou.dao.CustomBaseMapper;
@@ -42,4 +43,12 @@ public interface WorkTaskRecordMapper extends CustomBaseMapper<WorkTaskRecord> {
     List<PersonalTodoVO> personalTodoSimpleList(@Param("handlerId") Long handlerId);
 
     List<BusinessTodoNum> getTodoTotalNum(@Param("handlerId")Long currentUserId);
+
+    /**
+     * 获取资产业务已办列表
+     * @param assetsSelectDTO 查询dto
+     * @param page 分页
+     * @return List<AssetsTaskDoneVO>
+     */
+    Page<AssetsTaskDoneVO> getAssetsTaskDoneList(@Param("assetsSelectDTO") AssetsSelectDTO assetsSelectDTO, Page page);
 }

+ 111 - 7
dao/src/main/resources/mapper/AssetsMapper.xml

@@ -73,7 +73,8 @@
         nodeInfo.currentNodeCode,
         nodeInfo.handlerName,
         nodeInfo.currentNodeId,
-        nodeInfo.recordId
+        nodeInfo.recordId,
+        nodeInfo.handlerId
         FROM (SELECT @i := 0) AS sort,assets
         LEFT JOIN user ON user.id = assets.principal_id
         LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
@@ -85,7 +86,8 @@
         nodeInstance.business_id AS businessId,
         nodeInstance.business_sub_id,
         nodeInstance.business_min_id,
-        record.id AS recordId
+        record.id AS recordId,
+        record.handler_id AS handlerId
         FROM work_flow_node_instance AS nodeInstance,
         work_task_record AS record,
         user,
@@ -114,7 +116,8 @@
             AND (
             assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
             assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
-            production.production_no LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
             customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
             )
         </if>
@@ -122,6 +125,9 @@
         <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null and assetsSelectDTO.nodeCode != '' ">
             AND nodeInfo.currentNodeCode = #{assetsSelectDTO.nodeCode}
         </if>
+        <if test="assetsSelectDTO != null and assetsSelectDTO.handlerId != null ">
+            AND nodeInfo.handlerId = #{assetsSelectDTO.handlerId}
+        </if>
         ORDER BY assets.created DESC
     </select>
 
@@ -161,7 +167,7 @@
         nodeInfo.handlerName,
         nodeInfo.recordId,
         nodeInfo.currentNodeId,
-        warehouse.id AS warehouseId
+        nodeInfo.handlerId
         FROM (SELECT @i := 0) AS sort,assets
         LEFT JOIN user ON user.id = assets.principal_id
         LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
@@ -176,7 +182,8 @@
         nodeInstance.business_id AS businessId,
         nodeInstance.business_sub_id,
         nodeInstance.business_min_id,
-        record.id AS recordId
+        record.id AS recordId,
+        record.handler_id AS handlerId
         FROM work_flow_node_instance AS nodeInstance,
         work_task_record AS record,
         user,
@@ -187,7 +194,6 @@
         AND nodeInstance.deleted = 0
         AND record.instance_id = nodeInstance.id
         ) AS nodeInfo ON nodeInfo.businessId = assets.id
-        LEFT JOIN production_out_warehouse AS warehouse ON warehouse.report_no = nodeInfo.business_min_id AND warehouse.deleted = 0
         WHERE assets.deleted = 0
         AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
         #送达状态查询
@@ -203,10 +209,108 @@
             AND (
             assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
             assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
-            production.production_no LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
+            )
+        </if>
+        ORDER BY assets.created DESC
+    </select>
+
+    <!--条件查询资产已归档列表-->
+    <select id="selectArchivedPage" resultType="com.dayou.vo.AssetsVO">
+        SELECT (@i :=  @i + 1) AS id,
+        assets.id AS assetsId,
+        assets.name,
+        assets.order_id,
+        assets_business_gener,
+        allot_type,
+        (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS statementNo,
+        (SELECT production_no FROM assets_production WHERE assets_production.production_no = nodeInfo.business_min_id) AS reportNo,
+        (SELECT production_type FROM assets_production WHERE assets_production.production_no = nodeInfo.business_sub_id) AS productionType,
+        clientele_id,
+        customer.name AS customerName,
+        bailor,
+        bailor_contact_name,
+        bailor_contact_tel,
+        assets.created,
+        ( SELECT SUM(estimated_value) FROM assets_evaluation_target WHERE assets_evaluation_target.assets_id = assets.id ) AS estimated_value,
+        fund.id AS orderFundId,
+        fund.should_amount,
+        fund.real_amount,
+        fund.discount,
+        pFund.standard_amount,
+        invoice.real_amount AS invoiceRealAmount,
+        #查询客户经理
+        (SELECT name FROM user WHERE id = assets.client_manager_id) AS clientManagerName,
+        #查询项目负责人
+        (SELECT name FROM user WHERE id = assets.principal_id) AS principalName,
+        #查询业务来源(即子级客户)
+        (SELECT customer_company.name FROM customer_company WHERE customer_company.id = clientele_sub_id) AS customerSubName,
+        nodeInfo.businessId,
+        nodeInfo.currentNodeName,
+        nodeInfo.currentNodeCode,
+        nodeInfo.handlerName,
+        nodeInfo.recordId,
+        nodeInfo.currentNodeId,
+        nodeInfo.handlerId
+        FROM (SELECT @i := 0) AS sort,assets
+        LEFT JOIN user ON user.id = assets.principal_id
+        LEFT JOIN customer_company AS customer ON customer.id = assets.clientele_id
+        LEFT JOIN order_fund AS fund ON fund.business_id = assets.id AND business_type = 'ASSET_BUSINESS'
+        LEFT JOIN production_fund AS pFund ON pFund.business_id = assets.id
+        LEFT JOIN finance_invoice AS invoice ON pFund.order_fund_id = fund.id
+        #查询当前进行的节点信息
+        LEFT JOIN (SELECT nodeInstance.id AS currentNodeId,
+        user.name AS handlerName,
+        node.name AS currentNodeName,
+        node.code AS currentNodeCode,
+        nodeInstance.business_id AS businessId,
+        nodeInstance.business_sub_id,
+        nodeInstance.business_min_id,
+        record.id AS recordId,
+        record.handler_id AS handlerId
+        FROM work_flow_node_instance AS nodeInstance,
+        work_task_record AS record,
+        user,
+        work_node AS node
+        WHERE state = 'FINISHED'
+        AND nodeInstance.node_id = node.id
+        AND record.handler_id = user.id
+        AND nodeInstance.deleted = 0
+        AND record.instance_id = nodeInstance.id
+        ) AS nodeInfo ON nodeInfo.businessId = assets.id
+        WHERE assets.deleted = 0
+        AND nodeInfo.currentNodeCode = 'BUSINESS_ARCHIVING'
+        #评估业务类别(业务类型)查询
+        <if test="assetsSelectDTO != null and assetsSelectDTO.assetsBusinessGener != null and assetsSelectDTO.assetsBusinessGener != '' ">
+            AND assets.assets_business_gener = #{assetsSelectDTO.assetsBusinessGener}
+        </if>
+        #项目负责人查询
+        <if test="assetsSelectDTO != null and assetsSelectDTO.principalId != null">
+            AND assets.principal_id = #{assetsSelectDTO.principalId}
+        </if>
+        #客户经理查询
+        <if test="assetsSelectDTO != null and assetsSelectDTO.clientManagerId != null">
+            AND assets.client_manager_id = #{assetsSelectDTO.clientManagerId}
+        </if>
+        #关键字模糊查询
+        <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
+            AND (
+            assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            nodeInfo.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            nodeInfo.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
             customer.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
             )
         </if>
+        # 根据处理节点查询(节点code)
+        <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null and assetsSelectDTO.nodeCode != '' ">
+            AND nodeInfo.currentNodeCode = #{assetsSelectDTO.nodeCode}
+        </if>
+        <if test="assetsSelectDTO != null and assetsSelectDTO.handlerId != null ">
+            AND nodeInfo.handlerId = #{assetsSelectDTO.handlerId}
+        </if>
         ORDER BY assets.created DESC
     </select>
 

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

@@ -499,4 +499,59 @@
         GROUP BY
             wfni.business_type
     </select>
+
+    <!--获取资产业务已办列表-->
+    <select id="getAssetsTaskDoneList" resultType="com.dayou.vo.AssetsTaskDoneVO">
+        SELECT (@i := @i + 1) AS id,
+        log.id AS logId,
+        user.name AS handlerName,
+        log.handler_id,
+        (case log.state
+        when 'PASS' then '提交'
+        when 'REVERSE' then '退回'
+        when 'TERMINATE' then '终止'
+        else '-' end) AS state,
+        log.handing_time AS handingTimeLong,
+        log.comments,
+        log.business_type,
+        assets.id AS assetsId,
+        assets.order_id AS orderId,
+        assets.name AS assetsName,
+        node.name AS nodeName,
+        node.code AS nodeCode,
+        log.created AS finishTime,
+        instance.business_sub_id AS statementNo,
+        instance.business_min_id AS reportNo,
+        instance.state AS instanceState,
+        instance.id AS instanceId,
+        instance.created AS startDate
+        FROM (SELECT @i := 0) AS sort, work_flow_log AS log
+        LEFT JOIN (SELECT work_flow_node_instance.id, node_id, business_id, state, business_sub_id,
+        business_min_id,work_task_record.created
+        FROM work_flow_node_instance,work_task_record
+        WHERE state = 'FINISHED'
+        AND work_flow_node_instance.id = work_task_record.instance_id
+        AND work_flow_node_instance.deleted = 0) AS instance ON log.instance_id = instance.id
+        LEFT JOIN (SELECT id, name, code FROM work_node WHERE deleted = 0) AS node ON node.id = instance.node_id
+        LEFT JOIN (SELECT id, order_id, NAME FROM assets WHERE deleted = 0) AS assets ON assets.id = log.business_id
+        LEFT JOIN user ON user.id = log.handler_id
+
+        WHERE instance.id IS NOT NULL
+        AND log.business_type = 'ASSET_BUSINESS'
+        <if test="assetsSelectDTO != null and assetsSelectDTO.handlerId != null">
+            AND handler_id = #{assetsSelectDTO.handlerId}
+        </if>
+        <if test="assetsSelectDTO != null and assetsSelectDTO.keyWord != null and assetsSelectDTO.keyWord != '' ">
+            AND (
+            assets.order_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            assets.name LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            instance.business_sub_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%') OR
+            instance.business_min_id LIKE CONCAT('%',#{assetsSelectDTO.keyWord},'%')
+            )
+        </if>
+        <if test="assetsSelectDTO != null and assetsSelectDTO.nodeCode != null">
+            AND node.code = #{assetsSelectDTO.nodeCode}
+        </if>
+        ORDER BY log.created DESC
+    </select>
 </mapper>

+ 5 - 0
domain/src/main/java/com/dayou/dto/AssetsSelectDTO.java

@@ -39,4 +39,9 @@ public class AssetsSelectDTO {
      */
     private Boolean delivery;
 
+    /**
+     * 处理人id
+     */
+    private Long handlerId;
+
 }

+ 95 - 0
domain/src/main/java/com/dayou/vo/AssetsTaskDoneVO.java

@@ -0,0 +1,95 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+public class AssetsTaskDoneVO {
+
+    /**
+     * id
+     */
+    private Long id;
+    /**
+     * 资产业务id
+     */
+    private Long assetsId;
+
+    /**
+     * 订单号
+     */
+    private String orderId;
+
+    /**
+     * 订单名称
+     */
+    private String assetsName;
+
+    /**
+     * 报告号
+     */
+    private String reportNo;
+
+    /**
+     * 意见书号
+     */
+    private String statementtNo;
+
+    /**
+     * 处理人id
+     */
+    private Long handlerId;
+
+    /**
+     * 处理人
+     */
+    private String handlerName;
+
+    /**
+     * 操作
+     */
+    private String state;
+
+    /**
+     * 完成时间
+     */
+    private String finishTime;
+
+    /**
+     * 完成时长
+     */
+    private String handingTime;
+    private Long handingTimeLong;
+
+    /**
+     * 处理意见
+     */
+    private String comments;
+
+    /**
+     * 节点名称
+     */
+    private String nodeName;
+
+    /**
+     * 任务开始时间
+     */
+    private String startDate;
+
+    /**
+     * 任务完成时间
+     */
+    private String endDate;
+
+    /**
+     * 节点实例状态
+     */
+    private String instanceState;
+
+    /**
+     * 节点实例id
+     */
+    private Long instanceId;
+
+}

+ 8 - 0
service/src/main/java/com/dayou/service/IAssetsService.java

@@ -37,6 +37,14 @@ public interface IAssetsService extends IService<Assets> {
         Page<AssetsVO> selectMyOrderPage(Page page, AssetsSelectDTO assetsSelectDTO);
 
         /**
+         * 条件查询资产已归档列表
+         * @param page 分页条件
+         * @param assetsSelectDTO 查询条件
+         * @return Page<AssetsVO>
+         */
+        Page<AssetsVO> selectArchivedPage(Page page, AssetsSelectDTO assetsSelectDTO);
+
+        /**
          * 根据业务id获取资产业务详情
          * @param id 业务id
          * @return AssetsVO

+ 11 - 0
service/src/main/java/com/dayou/service/impl/AssetsServiceImpl.java

@@ -85,6 +85,17 @@ public class AssetsServiceImpl extends ServiceImpl<AssetsMapper, Assets> impleme
     }
 
     /**
+     * 条件查询资产已归档列表
+     * @param page 分页条件
+     * @param assetsSelectDTO 查询条件
+     * @return Page<AssetsVO>
+     */
+    @Override
+    public Page<AssetsVO> selectArchivedPage(Page page, AssetsSelectDTO assetsSelectDTO) {
+        return assetsMapper.selectArchivedPage(page, assetsSelectDTO);
+    }
+
+    /**
      * 根据业务id获取资产业务详情
      *
      * @param id 业务id

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

@@ -1,4 +1,5 @@
 package com.dayou.service.workflow;
+import com.dayou.dto.AssetsSelectDTO;
 import com.dayou.entity.WorkFlowNodeInstance;
 import com.dayou.entity.WorkNodeTask;
 import com.dayou.entity.WorkTaskRecord;
@@ -46,4 +47,12 @@ public interface IWorkTaskRecordService extends IService<WorkTaskRecord> {
     List<PersonalTodoVO> personalTodoSimpleList();
 
     List<BusinessTodoNum> getTodoTotalNum();
+
+    /**
+     * 获取资产业务已办列表
+     * @param assetsSelectDTO 查询dto
+     * @param page 分页
+     * @return List<AssetsTaskDoneVO>
+     */
+    Page<AssetsTaskDoneVO> getAssetsTaskDoneList(AssetsSelectDTO assetsSelectDTO, Page page);
 }

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

@@ -1,6 +1,7 @@
 package com.dayou.service.workflow;
 
 import com.alibaba.fastjson.JSON;
+import com.dayou.dto.AssetsSelectDTO;
 import com.dayou.dto.HandlerPermissionDTO;
 import com.dayou.entity.*;
 import com.dayou.exception.ErrorCode;
@@ -150,4 +151,20 @@ public class WorkTaskRecordServiceImpl extends ServiceImpl<WorkTaskRecordMapper,
         return workTaskRecordMapper.getTodoTotalNum(LoginContext.getCurrentUserId());
     }
 
+    /**
+     * 获取资产业务已办列表
+     * @param assetsSelectDTO 查询dto
+     * @param page 分页
+     * @return List<AssetsTaskDoneVO>
+     */
+    @Override
+    public Page<AssetsTaskDoneVO> getAssetsTaskDoneList(AssetsSelectDTO assetsSelectDTO, Page page) {
+        assetsSelectDTO.setHandlerId(LoginContext.getCurrentUserId());
+        Page<AssetsTaskDoneVO> assetsTaskDoneVOPage = workTaskRecordMapper.getAssetsTaskDoneList(assetsSelectDTO, page);
+        assetsTaskDoneVOPage.getRecords().stream().forEach(x->{
+            x.setHandingTime(DateUtils.getTimeLong(x.getHandingTimeLong()==null?0L:x.getHandingTimeLong()));
+        });
+        return assetsTaskDoneVOPage;
+    }
+
 }