Ver código fonte

1.工作流beforeEnding流程终止前置方法新增对资产、大中型与个贷流程的针对处理
2.新增大中型、个贷业务查询终止流程接口

GouGengquan 5 meses atrás
pai
commit
f2c6c6450b

+ 9 - 0
biz-base/src/main/java/com/dayou/controller/MajorController.java

@@ -48,6 +48,15 @@ public class MajorController extends BaseController {
     }
 
     /**
+     * 条件查询大中型已终止流程
+     */
+    @GetMapping("/getTerminatedPage")
+    public RestResponse<Page<MajorVO>> getTerminatedPage(MajorVO major, Page page,String keyword){
+        Page<MajorVO> pages=majorService.getTerminatedPage(page,major,keyword);
+        return RestResponse.data(pages);
+    }
+
+    /**
      * 大中型项目列表(平铺)
      */
     @DataPermission(ignoreDepartment = {MANAGER_OFFICE})

+ 1 - 1
biz-base/src/main/java/com/dayou/controller/MajorStatisticalStatementController.java

@@ -120,7 +120,7 @@ public class MajorStatisticalStatementController extends BaseController{
     @GetMapping("/errorType/getMajorErrorTypeCountVO/detail/export")
     public void exportMajorErrorTypeDetailVO(MajorStatisticalSelectDTO dto, HttpServletResponse response) throws IOException {
         List<MajorPerformanceDeductionDetailVO> result = majorStatisticalStatementService.exportMajorErrorTypeDetailVO(dto);
-        String name = null;
+        String name;
         if (dto.getCheckType().equals("com")) {
             name = "公司审核错误统计列表详情";
         }else {

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

@@ -49,6 +49,15 @@ public class PersonalController extends BaseController {
     }
 
     /**
+     * 条件查询个贷已终止流程
+     */
+    @GetMapping("/getTerminatedPage")
+    public RestResponse<Page<PersonalVO>> getTerminatedPage(PersonalVO personal, Page page,String keyword){
+        Page<PersonalVO> pages=personalService.getTerminatedPage(page,personal,keyword);
+        return RestResponse.data(pages);
+    }
+
+    /**
      * 个贷业务我的订单列表
      */
     @GetMapping("/mine")

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

@@ -22,6 +22,15 @@ public interface MajorMapper extends CustomBaseMapper<Major> {
 
     Page<MajorVO> getPage(Page page, @Param("major") MajorVO major,@Param("keyword") String keyword);
 
+    /**
+     * 条件查询大中型已终止流程
+     * @param page 分页
+     * @param major 查询条件
+     * @param keyword 关键字
+     * @return Page<MajorVO>
+     */
+    Page<MajorVO> getTerminatedPage(Page page, @Param("major") MajorVO major,@Param("keyword") String keyword ,@Param("currentUserId") Long currentUserId);
+
     MajorVO getDetail(@Param("id") Long id);
 
     MajorStaticsDTO staticsInformation(@Param("userId") Long userId);

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

@@ -20,6 +20,15 @@ public interface PersonalMapper extends CustomBaseMapper<Personal> {
 
     Page<PersonalVO> xSelectPage(Page page, @Param("personal") PersonalVO personal,@Param("keyword") String keyword);
 
+    /**
+     * 条件查询个贷已终止流程
+     * @param page 分页
+     * @param personal 查询条件
+     * @param keyword 关键字
+     * @return Page<PersonalVO>
+     */
+    Page<PersonalVO> getTerminatedPage(Page page, @Param("personal") PersonalVO personal, @Param("keyword") String keyword, @Param("currentUserId") Long currentUserId);
+
     PersonalVO getDetail(@Param("id") Long id);
 
     Personal getByTargetId(@Param("targetId") Long targetId);

+ 125 - 0
dao/src/main/resources/mapper/MajorMapper.xml

@@ -150,6 +150,131 @@
             created DESC
     </select>
 
+    <select id="getTerminatedPage" resultType="com.dayou.vo.MajorVO">
+        SELECT
+        wfni.currentNodeId AS id,
+        wfni.nodeName,
+        wfni.productionName,
+        wfni.business_sub_id AS statementNo,
+        wfni.business_min_id AS reportNo,
+        m.id AS majorId,
+        m.created,
+        m.NAME,
+        m.order_id,
+        m.financial,
+        m.allot_type,
+        m.client_manager_id,
+        u.NAME AS clientManager,
+        m.principal_id,
+        u1.NAME AS principal,
+        m.department_id,
+        d.NAME AS department,
+        m.business_object_type,
+        m.clientele_id,
+        m.clientele_contact_id,
+        m.clientele_id AS clientele,
+        m.clientele_contact_id AS clienteleContact,
+        cc1.NAME AS cClienteleName,
+        cc2.NAME AS cClienteleSubName,
+        cl1.NAME AS cClienteleContactName,
+        cl1.mobile AS cMobile,
+        wfni.client_name,
+        wfni.client_tel,
+        wfni.evaluate_amount,
+        wfni.OWNER,
+        wfni.HANDLER,
+        wfni.nodeCode,
+        wfni.currentNodeId
+        FROM
+        major m
+        LEFT JOIN user u ON u.id = m.client_manager_id
+        LEFT JOIN user u1 ON u1.id = m.principal_id
+        LEFT JOIN department d ON d.id = m.department_id
+        INNER JOIN (
+        SELECT
+        wf.id AS currentNodeId,
+        wf.node_id,
+        wf.business_id,
+        wf.business_sub_id,
+        wf.business_min_id,
+        wf.state,
+        wn.NAME AS nodeName,
+        mp.NAME AS productionName,
+        mp.client_name,
+        mp.client_tel,
+        mp.evaluate_amount,
+        mp.OWNER,
+        u.NAME AS HANDLER,
+        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_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
+        wf.business_type = 'MAJOR_BUSINESS'
+        AND wf.deleted = 0
+        AND wf.state = 'CLOSED'
+        ) wfni ON wfni.business_id = m.id
+        LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_id
+        LEFT JOIN customer_company cc2 ON cc2.id = m.clientele_sub_id
+        LEFT JOIN customer_linkman cl1 ON cl1.id = m.clientele_contact_id
+        WHERE m.deleted = 0
+          AND (m.principal_id = #{currentUserId} OR m.client_manager_id = #{currentUserId})
+        <if test="keyword!=null and keyword!='' ">
+            and (
+            m.name like concat ('%',#{keyword},'%')
+            or m.order_id like concat('%',#{keyword},'%')
+            or u.name like concat('%',#{keyword},'%')
+            or u1.name like concat('%',#{keyword},'%')
+            or cc2.name like concat('%',#{keyword},'%')
+            or cc1.name like concat('%',#{keyword},'%')
+            or cl1.name like concat('%',#{keyword},'%')
+            or cl1.mobile like concat('%',#{keyword},'%')
+            or m.business_object_type like concat('%',#{keyword},'%')
+            or d.name like concat('%',#{keyword},'%')
+            or m.allot_type like concat('%',#{keyword},'%')
+            or wfni.client_name like concat('%',#{keyword},'%')
+            or wfni.productionName like concat('%',#{keyword},'%')
+            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">
+            and m.financial = #{major.financial}
+        </if>
+        <if test="major!=null and major.startDate!=null and major.startDate!=''">
+            and m.created &gt;= #{major.startDate}
+        </if>
+        <if test="major!=null and major.endDate!=null and major.endDate!=''">
+            and m.created &lt;= #{major.endDate}
+        </if>
+        <if test="major!=null and major.nodeCode!=null and major.nodeCode!=''">
+            and wfni.nodeCode = #{major.nodeCode}
+        </if>
+        <if test="major!=null and major.clientName!=null and major.clientName!=''">
+            and wfni.client_name like concat('%',#{major.clientName},'%')
+        </if>
+        <if test="major!=null and major.clientManagerId!=null ">
+            and m.client_manager_id = #{major.clientManagerId}
+        </if>
+        <if test="major!=null and major.principalId!=null ">
+            and m.principal_id = #{major.principalId}
+        </if>
+        <if test="major!=null and major.businessObjectType!=null and major.businessObjectType!=''">
+            and m.business_object_type = #{major.businessObjectType}
+        </if>
+        <if test="major!=null and major.departmentId!=null ">
+            and m.department_id = #{major.departmentId}
+        </if>
+        order by wfni.currentNodeId DESC
+    </select>
+
     <select id="selectProduction" parameterType="java.lang.Long" resultType="com.dayou.vo.MajorProductionVO">
         select *,sum(amount) as realAmount from (SELECT
             mp.id,

+ 117 - 0
dao/src/main/resources/mapper/PersonalMapper.xml

@@ -171,6 +171,123 @@
         order by wf.modified DESC
     </select>
 
+    <select id="getTerminatedPage" resultType="com.dayou.vo.PersonalVO">
+        SELECT
+            wf.id AS currentNodeId,
+            wf.node_id,
+            wf.business_id,
+            wf.business_sub_id,
+            wf.modified AS nodeTime,
+            wn.NAME as currentNodeName,
+            wn.CODE currentNodeCode,
+            p.id,
+            p.order_id,
+            p.location,
+            p.agent,
+            p.bailorA,
+            p.bailorB,
+            p.bailorA_tel,
+            p.bailorB_tel,
+            p.client_manager_id,
+            p.remark,
+            pt.acreage,
+            pt.price,
+            pt.amount,
+            cc1.NAME AS clientName,
+            cc2.NAME AS clientSubName,
+            cl1.NAME AS contactName,
+            cl1.mobile AS contactTel,
+            u.NAME AS clientManager,
+            u1.NAME AS outwardStaffName,
+            u2.NAME AS inwardStaffName,
+            u3.NAME AS pricingStaffName,
+            u4.name as handlerName,
+            u4.id as handlerId,
+            p.created,
+            c.comments
+        FROM
+            work_flow_node_instance wf
+                LEFT JOIN work_node wn ON wn.id = wf.node_id
+                LEFT JOIN work_task_record wtr ON wtr.instance_id = wf.id
+                LEFT JOIN user u4 ON u4.id = wtr.handler_id
+                LEFT JOIN personal p ON p.id = wf.business_id
+                LEFT JOIN personal_target pt ON pt.personal_id =  wf.business_id
+                LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
+                LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
+                LEFT JOIN customer_linkman cl1 ON cl1.id = p.clientele_contact_id
+                LEFT JOIN user u ON u.id = p.client_manager_id
+                LEFT JOIN user u1 ON u1.id = p.outward_staff
+                LEFT JOIN user u2 ON u2.id = p.inward_staff
+                LEFT JOIN user u3 ON u3.id = p.pricing_staff
+                left join (
+                select business_id,comments from work_flow_log where concat(business_id,modified) in (
+                    select concat(business_id,max(modified)) from work_flow_log where business_type = 'PERSONAL_BUSINESS' and comments is not null  group BY business_id
+                )
+            ) c on p.id = c.business_id
+        WHERE wf.business_type = 'PERSONAL_BUSINESS'
+          AND wf.state = 'CLOSED'
+          AND wf.deleted = 0
+          AND wn.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 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},'%')
+            or p.bailorA_tel like concat('%',#{keyword},'%')
+            or p.bailorB_tel 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.nodeId!=null">
+            and wn.id = #{personal.nodeId}
+        </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>
+        <if test="personal!=null and personal.isCancellation!=null and personal.isCancellation==true">
+            and u4.name = '项目作废'
+        </if>
+        <if test="personal!=null and personal.isCancellation!=null and personal.isCancellation==false">
+            and u4.name != '项目作废'
+        </if>
+        <if test="personal!=null and personal.userIds!=null and personal.userIds.size!=0">
+            and p.client_manager_id in
+            <foreach collection="personal.userIds" open="(" close=")" separator="," item="userId">
+                #{userId}
+            </foreach>
+        </if>
+        order by wf.modified DESC
+    </select>
+
     <select id="getDetail" parameterType="java.lang.Long" resultType="com.dayou.vo.PersonalVO">
         SELECT
             p.*,

+ 15 - 6
service/src/main/java/com/dayou/service/IMajorService.java

@@ -1,4 +1,5 @@
 package com.dayou.service;
+
 import com.dayou.dto.*;
 import com.dayou.entity.Major;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -17,16 +18,24 @@ import java.util.List;
  */
 public interface IMajorService extends IService<Major> {
 
-        Page<MajorVO> selectPage(Page page, MajorVO major,String keyword);
+    Page<MajorVO> selectPage(Page page, MajorVO major, String keyword);
 
-        MajorVO detail(Long id);
+    /**
+     * 条件查询大中型已终止流程
+     * @param page 分页
+     * @param major 查询条件
+     * @param keyword 关键字
+     * @return Page<MajorVO>
+     */
+    Page<MajorVO> getTerminatedPage(Page page, MajorVO major, String keyword);
 
-        WorkNodeCommit add(Major major);
+    MajorVO detail(Long id);
 
-        Boolean update(Major major);
+    WorkNodeCommit add(Major major);
 
-        Boolean delete(Long id);
+    Boolean update(Major major);
 
+    Boolean delete(Long id);
 
     Boolean allocation(TaskRecordDTO<MajorVO> taskRecordDTO);
 
@@ -40,5 +49,5 @@ public interface IMajorService extends IService<Major> {
 
     List<MajorSubClientDTO> findMajorSubClient();
 
-    MajorVO productionDetail(Long id, String productionNo,String production);
+    MajorVO productionDetail(Long id, String productionNo, String production);
 }

+ 22 - 12
service/src/main/java/com/dayou/service/IPersonalService.java

@@ -1,4 +1,5 @@
 package com.dayou.service;
+
 import com.dayou.dto.OrderReportDTO;
 import com.dayou.dto.PersonalAllotOrderDTO;
 import com.dayou.dto.TaskRecordDTO;
@@ -25,39 +26,48 @@ import java.util.List;
  */
 public interface IPersonalService extends IService<Personal> {
 
-        Page<PersonalVO> selectPage(Page page, PersonalVO personal,String keyword);
+    Page<PersonalVO> selectPage(Page page, PersonalVO personal, String keyword);
+
+    /**
+     * 条件查询个贷已终止流程
+     * @param page 分页
+     * @param personal 查询条件
+     * @param keyword 关键字
+     * @return Page<PersonalVO>
+     */
+    Page<PersonalVO> getTerminatedPage(Page page, PersonalVO personal, String keyword);
 
-        PersonalVO detail(Long id);
+    PersonalVO detail(Long id);
 
-        WorkNodeCommit add(Personal personal);
+    WorkNodeCommit add(Personal personal);
 
-        Boolean update(Personal personal);
+    Boolean update(Personal personal);
 
-        Boolean delete(Long id);
+    Boolean delete(Long id);
 
     Boolean allotOutwardStaff(TaskRecordDTO<Personal> taskRecordDTO);
 
-    void updateCertificates(Long targetId, CertificateEnum cer,String location,String bailorA,String bailorB);
+    void updateCertificates(Long targetId, CertificateEnum cer, String location, String bailorA, String bailorB);
 
     Boolean doRecall(Long id);
 
-    Page<PersonalVO> waitingClaimOrder(Page page, PersonalVO personalVO,String keyword);
+    Page<PersonalVO> waitingClaimOrder(Page page, PersonalVO personalVO, String keyword);
 
-    Page<PersonalVO> waitingSaveFile(Page page, PersonalVO personal,String keyword);
+    Page<PersonalVO> waitingSaveFile(Page page, PersonalVO personal, String keyword);
 
     Boolean batchSaveFile(List<TaskTodoVO> todoVOList);
 
-    Page<PersonalVO> saveFileDone(Page page, PersonalVO personal,String keyword);
+    Page<PersonalVO> saveFileDone(Page page, PersonalVO personal, String keyword);
 
-    Page<PersonalVO> myOrder(Page page, PersonalVO personal,String keyword);
+    Page<PersonalVO> myOrder(Page page, PersonalVO personal, String keyword);
 
-    List<PersonalVO> exportMyOrder(PersonalVO personal,String keyword);
+    List<PersonalVO> exportMyOrder(PersonalVO personal, String keyword);
 
     Boolean personalAllotRealAmount(List<OrderReportDTO> claimOrders);
 
     Boolean doPersonalAllotRealAmount(List<OrderReportDTO> claimOrders);
 
-    Page<PersonalVO> waitingAllotOrderPage(Page page,String keyword);
+    Page<PersonalVO> waitingAllotOrderPage(Page page, String keyword);
 
     Boolean doAllotOrder(PersonalAllotOrderDTO dto);
 

+ 12 - 0
service/src/main/java/com/dayou/service/impl/MajorServiceImpl.java

@@ -78,6 +78,18 @@ public class MajorServiceImpl extends ServiceImpl<MajorMapper, Major> implements
         return result;
     }
 
+    /**
+     * 条件查询大中型已终止流程
+     * @param page 分页
+     * @param major 查询条件
+     * @param keyword 关键字
+     * @return Page<MajorVO>
+     */
+    @Override
+    public Page<MajorVO> getTerminatedPage(Page page, MajorVO major, String keyword) {
+        return majorMapper.getTerminatedPage(page,major,keyword,LoginContext.getCurrentUserId());
+    }
+
 
     @Override
     public MajorVO detail(Long id){

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

@@ -113,6 +113,18 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
         return pages;
     }
 
+    /**
+     * 条件查询个贷已终止流程
+     * @param page 分页
+     * @param personal 查询条件
+     * @param keyword 关键字
+     * @return Page<PersonalVO>
+     */
+    @Override
+    public Page<PersonalVO> getTerminatedPage(Page page, PersonalVO personal, String keyword) {
+        return personalMapper.getTerminatedPage(page, personal, keyword, LoginContext.getCurrentUserId());
+    }
+
 
     @Override
     public PersonalVO detail(Long id){

+ 5 - 1
service/src/main/java/com/dayou/service/workflow/WorkFlowServiceImpl.java

@@ -136,7 +136,11 @@ public class WorkFlowServiceImpl extends ServiceImpl<WorkFlowMapper, WorkFlow> i
         List<WorkNodeInstanceTaskDTO> taskDTOs = workTaskRecordMapper.instanceNodeTasks(workNodeCommit.getInstanceNodeId());
         // 判断当前用户是否为节点任务处理人
         if (taskDTOs.stream().noneMatch(taskDTO -> taskDTO.getHandlerId().equals(LoginContext.getCurrentUserId()))){
-            ErrorCode.throwBusinessException(ErrorCode.PERMISSION_ERROR);
+            // 判断当前用户是否是超级管理员执行终止流程操作
+            if (LoginContext.getLoginCacheUserBO().getPostList().stream().noneMatch(post -> post.getName().equals("超级管理员岗")) || !workNodeCommit.getState().equals(TERMINATE)) {
+                // 非节点处理,且非超管终止流程
+                ErrorCode.throwBusinessException(ErrorCode.PERMISSION_ERROR);
+            }
         }
 
         //校验节点提交权限

+ 62 - 0
service/src/main/java/com/dayou/workflow/config/WorkNodeProcessable.java

@@ -2,6 +2,7 @@ package com.dayou.workflow.config;
 
 
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -34,6 +35,8 @@ import java.util.stream.Collectors;
 import static com.dayou.enums.FinanceInvoiceState.审核拒绝;
 import static com.dayou.enums.FinanceInvoiceState.审核通过;
 import static com.dayou.enums.GlobalConfigEnum.*;
+import static com.dayou.enums.MainBusinessEnum.ASSET_BUSINESS;
+import static com.dayou.enums.MainBusinessEnum.MAJOR_BUSINESS;
 import static com.dayou.enums.workflow.NodeLogEnum.PASS;
 import static com.dayou.enums.workflow.NodeStateEnum.*;
 
@@ -80,6 +83,12 @@ public class WorkNodeProcessable {
     @Autowired
     private IMajorProductionAllotService majorProductionAllotService;
 
+    @Autowired
+    private IProductionFundService productionFundService;
+
+    @Autowired
+    private IOrderFundService orderFundService;
+
 
     /**
      * 提交流程前置处理
@@ -365,6 +374,7 @@ public class WorkNodeProcessable {
         return department.getLeaderId();
     }
 
+    @Transactional(rollbackFor = Exception.class)
     public void beforeEnding(WorkFlowNodeInstance currentInstanceNode){
         //终止前节点控制前置处理。
         MainBusinessEnum mainBusinessEnum = MainBusinessEnum.valueOf(currentInstanceNode.getBusinessType());
@@ -386,6 +396,58 @@ public class WorkNodeProcessable {
                 businessPerformanceDistributionService.update(new LambdaUpdateWrapper<BusinessPerformanceDistribution>()
                         .set(BusinessPerformanceDistribution :: getDeleted, 1)
                         .eq(BusinessPerformanceDistribution::getDeclareId ,currentInstanceNode.getBusinessId()));
+            case ASSET_BUSINESS: // 资产流程终止节点前的处理
+                // 删除节点任务
+                workTaskRecordService.update(new LambdaUpdateWrapper<WorkTaskRecord>().set(BaseEntity::getDeleted, true).eq(WorkTaskRecord::getInstanceId, currentInstanceNode.getId()));
+
+                // 判断是否出具了产品,出具了产品的话需要将产品应收款改为0
+                if (ObjectUtil.isNotNull(currentInstanceNode.getBusinessSubId()) && !currentInstanceNode.getBusinessSubId().isEmpty()) {
+                    // 预评
+                    productionFundService.update(new LambdaUpdateWrapper<ProductionFund>()
+                            .set(ProductionFund::getProductionShouldAmount, 0)
+                            .eq(ProductionFund::getBusinessType, ASSET_BUSINESS.getCode())
+                            .eq(ProductionFund::getBusinessId, currentInstanceNode.getBusinessId())
+                            .eq(ProductionFund::getProductionNo, currentInstanceNode.getBusinessSubId())
+                            .eq(BaseEntity::getDeleted, false));
+                }
+                if (ObjectUtil.isNotNull(currentInstanceNode.getBusinessMinId()) && !currentInstanceNode.getBusinessMinId().isEmpty()) {
+                    // 报告
+                    productionFundService.update(new LambdaUpdateWrapper<ProductionFund>()
+                            .set(ProductionFund::getProductionShouldAmount, 0)
+                            .eq(ProductionFund::getBusinessType, ASSET_BUSINESS.getCode())
+                            .eq(ProductionFund::getBusinessId, currentInstanceNode.getBusinessId())
+                            .eq(ProductionFund::getProductionNo, currentInstanceNode.getBusinessMinId())
+                            .eq(BaseEntity::getDeleted, false));
+                }
+                break;
+            case MAJOR_BUSINESS: // 大中型流程终止节点前的处理
+                // 删除节点任务
+                workTaskRecordService.update(new LambdaUpdateWrapper<WorkTaskRecord>().set(BaseEntity::getDeleted, true).eq(WorkTaskRecord::getInstanceId, currentInstanceNode.getId()));
+
+                // 判断是否出具了产品,出具了产品的话需要将产品应收款改为0
+                if (ObjectUtil.isNotNull(currentInstanceNode.getBusinessSubId()) && !currentInstanceNode.getBusinessSubId().isEmpty()) {
+                    // 预评
+                    productionFundService.update(new LambdaUpdateWrapper<ProductionFund>()
+                            .set(ProductionFund::getProductionShouldAmount, 0)
+                            .eq(ProductionFund::getBusinessType, MAJOR_BUSINESS.getCode())
+                            .eq(ProductionFund::getBusinessId, currentInstanceNode.getBusinessId())
+                            .eq(ProductionFund::getProductionNo, currentInstanceNode.getBusinessSubId())
+                            .eq(BaseEntity::getDeleted, false));
+                }
+                if (ObjectUtil.isNotNull(currentInstanceNode.getBusinessMinId()) && !currentInstanceNode.getBusinessMinId().isEmpty()) {
+                    // 报告
+                    productionFundService.update(new LambdaUpdateWrapper<ProductionFund>()
+                            .set(ProductionFund::getProductionShouldAmount, 0)
+                            .eq(ProductionFund::getBusinessType, MAJOR_BUSINESS.getCode())
+                            .eq(ProductionFund::getBusinessId, currentInstanceNode.getBusinessId())
+                            .eq(ProductionFund::getProductionNo, currentInstanceNode.getBusinessMinId())
+                            .eq(BaseEntity::getDeleted, false));
+                }
+                break;
+            case PERSONAL_BUSINESS: // 个贷业务流程终止节点前的处理
+                // 删除节点任务
+                workTaskRecordService.update(new LambdaUpdateWrapper<WorkTaskRecord>().set(BaseEntity::getDeleted, true).eq(WorkTaskRecord::getInstanceId, currentInstanceNode.getId()));
+                break;
         }
     }
 }