Bläddra i källkod

1.新增接口getAssetsBusinessMembers
2.新增资产绩效分配相关接口
3.归档审核、复审部归档审核、归档节点开发
4.business_performance_distribution表结构修改

GouGengquan 1 år sedan
förälder
incheckning
aed4383a88

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

@@ -1,9 +1,11 @@
 package com.dayou.controller;
 
 import com.dayou.dto.*;
+import com.dayou.vo.AssetsBusinessMember;
 import com.dayou.vo.AssetsOrderFundInvoiceVO;
 import com.dayou.vo.AssetsVO;
 import com.dayou.workflow.annotation.FinishTask;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -143,5 +145,15 @@ public class AssetsController extends BaseController {
     public RestResponse<Boolean> takeAssetsReportProductionNo(@RequestBody TaskRecordDTO<TakeAssetsProductionNoDTO> dto) {
         return RestResponse.data(assetsService.takeAssetsProductionNo(dto.getTaskData()));
     }
+
+    /**
+     * 获取资产项目所有参与人
+     * @param assetsBusinessMembersDTO 查询dto
+     * @return List<AssetsBusinessMembers>
+     */
+    @GetMapping("/getAssetsBusinessMembers")
+    public RestResponse<List<AssetsBusinessMember>> getAssetsBusinessMembers(AssetsBusinessMembersDTO assetsBusinessMembersDTO) throws JsonProcessingException {
+        return RestResponse.data(assetsService.getAssetsBusinessMembers(assetsBusinessMembersDTO));
+    }
 }
 

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

@@ -184,7 +184,7 @@ public class AssetsProductionController extends BaseController {
     }
 
     /**
-     * 根据资产产品id更新文件路由信息
+     * 根据资产产品更新文件路由信息
      * @param assetsProduction 产品信息dto
      * @return RestResponse<Boolean>
      */

+ 117 - 0
biz-base/src/main/java/com/dayou/controller/BusinessPerformanceDistributionController.java

@@ -0,0 +1,117 @@
+package com.dayou.controller;
+
+import com.dayou.dto.AssetsPerformanceDistributionAddDTO;
+import com.dayou.dto.TaskRecordDTO;
+import com.dayou.workflow.annotation.FinishTask;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+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 com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.RestController;
+import com.dayou.controller.BaseController;
+import com.dayou.service.IBusinessPerformanceDistributionService;
+import com.dayou.entity.BusinessPerformanceDistribution;
+import com.dayou.common.RestResponse;
+import org.springframework.web.bind.annotation.*;
+import com.dayou.utils.ConvertUtil;
+import com.dayou.utils.HttpKit;
+import com.dayou.exception.ErrorCode;
+import java.util.Date;
+import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.http.MediaType;
+import org.springframework.web.multipart.MultipartFile;
+/**
+ * 绩效分配比例信息
+ *
+ * @author wucl
+ * @since 2024-05-09
+ */
+@RestController
+@RequestMapping("businessPerformanceDistribution")
+@Slf4j
+public class BusinessPerformanceDistributionController extends BaseController {
+    @Autowired
+    private IBusinessPerformanceDistributionService businessPerformanceDistributionService;
+
+    /**
+    * 绩效分配比例信息列表
+    */
+    @GetMapping("/page")
+    public RestResponse<Page<BusinessPerformanceDistribution>> page(BusinessPerformanceDistribution businessPerformanceDistribution, Page page){
+        Page<BusinessPerformanceDistribution> pages=businessPerformanceDistributionService.selectPage(page,businessPerformanceDistribution);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 绩效分配比例信息详情
+     */
+    @GetMapping("/detail/{id}")
+    public RestResponse<BusinessPerformanceDistribution> detail(@PathVariable Long id){
+        BusinessPerformanceDistribution xBusinessPerformanceDistribution =businessPerformanceDistributionService.detail(id);
+        return RestResponse.data(xBusinessPerformanceDistribution);
+     }
+
+    /**
+     * 绩效分配比例信息新增
+     */
+    @PostMapping("/save")
+    public RestResponse<Boolean> save(@RequestBody BusinessPerformanceDistribution businessPerformanceDistribution) {
+        Boolean ret = businessPerformanceDistributionService.add(businessPerformanceDistribution);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 绩效分配比例信息更新
+     */
+    @PutMapping("/update")
+    public RestResponse<Boolean> update(@RequestBody BusinessPerformanceDistribution businessPerformanceDistribution) {
+        Boolean ret = businessPerformanceDistributionService.update(businessPerformanceDistribution);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 绩效分配比例信息删除
+     */
+    @DeleteMapping("/delete/{id}")
+    public RestResponse<Boolean> delete(@PathVariable Long id) {
+        Boolean ret = businessPerformanceDistributionService.delete(id);
+        return RestResponse.data(ret);
+    }
+
+    /**
+     * 新增资产绩效分配信息
+     * @param dto 新增dto
+     * @return Boolean
+     */
+    @FinishTask
+    @PostMapping("/addAssetsPerformanceDistribution")
+    public RestResponse<Boolean> addAssetsPerformanceDistribution(@RequestBody TaskRecordDTO<AssetsPerformanceDistributionAddDTO> dto) {
+        return RestResponse.data(businessPerformanceDistributionService.addAssetsPerformanceDistribution(dto.getTaskData()));
+    }
+
+    /**
+     * 获取资产绩效分配信息list
+     * @param dto 查询dto
+     * @return List<AssetsPerformanceDistributionAddDTO>
+     */
+    @GetMapping("/getPerformanceDistributionList")
+    public RestResponse<List<BusinessPerformanceDistribution>> getPerformanceDistributionList(AssetsPerformanceDistributionAddDTO dto) {
+        return RestResponse.data(businessPerformanceDistributionService.getPerformanceDistributionList(dto));
+    }
+
+    /**
+     * 修改资产绩效分配信息
+     * @param dto 修改dto
+     * @return Boolean
+     */
+    @FinishTask
+    @PutMapping("/updateAssetsPerformanceDistribution")
+    public RestResponse<Boolean> updateAssetsPerformanceDistribution(@RequestBody TaskRecordDTO<AssetsPerformanceDistributionAddDTO> dto) {
+        return RestResponse.data(businessPerformanceDistributionService.updateAssetsPerformanceDistribution(dto.getTaskData()));
+    }
+
+}
+

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

@@ -1,14 +1,18 @@
 package com.dayou.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.dto.AssetsBusinessMembersDTO;
 import com.dayou.dto.AssetsSelectDTO;
 import com.dayou.entity.Assets;
 import com.dayou.dao.CustomBaseMapper;
 import com.dayou.entity.BusinessNumber;
+import com.dayou.vo.AssetsBusinessMember;
 import com.dayou.vo.AssetsOrderFundInvoiceVO;
 import com.dayou.vo.AssetsVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 资产业务订单表 Mapper 接口
@@ -70,4 +74,25 @@ public interface AssetsMapper extends CustomBaseMapper<Assets> {
      * @return Boolean
      */
     Boolean updateBusinessNum(BusinessNumber businessNumber);
+
+    /**
+     * 获取项目参与人id
+     * @param assetsBusinessMembersDTO 查询dto
+     * @return List<AssetsBusinessMembers>
+     */
+    Assets getBusinessMembers(AssetsBusinessMembersDTO assetsBusinessMembersDTO);
+
+    /**
+     * 获取报告签字师id
+     * @param assetsBusinessMembersDTO 查询dto
+     * @return String
+     */
+    String getSignatorys(AssetsBusinessMembersDTO assetsBusinessMembersDTO);
+
+    /**
+     * 获取用户信息
+     * @param userId 用户id
+     * @return AssetsBusinessMember
+     */
+    AssetsBusinessMember getAssetsBusinessMember(@Param("userId") Long userId);
 }

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

@@ -0,0 +1,16 @@
+package com.dayou.mapper;
+
+import com.dayou.entity.BusinessPerformanceDistribution;
+import com.dayou.dao.CustomBaseMapper;
+
+/**
+ * <p>
+ * 绩效分配比例信息 Mapper 接口
+ * </p>
+ *
+ * @author wucl
+ * @since 2024-05-09
+ */
+public interface BusinessPerformanceDistributionMapper extends CustomBaseMapper<BusinessPerformanceDistribution> {
+
+}

+ 23 - 0
dao/src/main/resources/mapper/AssetsMapper.xml

@@ -308,5 +308,28 @@
         WHERE id = #{id}
     </update>
 
+    <!--获取项目参与人-->
+    <select id="getBusinessMembers" resultType="com.dayou.entity.Assets">
+        SELECT id, principal_id, members
+        FROM assets
+        WHERE deleted = 0
+        AND id = #{businessId}
+    </select>
+
+    <!--获取报告签字师-->
+    <select id="getSignatorys" resultType="java.lang.String">
+        SELECT signatory
+        FROM assets_production
+        WHERE deleted = 0
+        AND production_no = #{reportNo}
+    </select>
+
+    <!--获取用户信息-->
+    <select id="getAssetsBusinessMember" resultType="com.dayou.vo.AssetsBusinessMember">
+        SELECT id AS memberId, name AS memberName
+        FROM user
+        WHERE deleted = 0
+        AND id = #{userId}
+    </select>
 
 </mapper>

+ 26 - 0
dao/src/main/resources/mapper/BusinessPerformanceDistributionMapper.xml

@@ -0,0 +1,26 @@
+<?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.BusinessPerformanceDistributionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dayou.entity.BusinessPerformanceDistribution">
+        <result column="id" property="id" />
+        <result column="created" property="created" />
+        <result column="deleted" property="deleted" />
+        <result column="modified" property="modified" />
+        <result column="business_id" property="businessId" />
+        <result column="business_type" property="businessType" />
+        <result column="report_no" property="reportNo" />
+        <result column="performance_distribution" property="performanceDistribution" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        created,
+        deleted,
+        modified,
+        business_id, business_type, report_no, performance_distribution
+    </sql>
+
+</mapper>

+ 17 - 0
domain/src/main/java/com/dayou/dto/AssetsBusinessMembersDTO.java

@@ -0,0 +1,17 @@
+package com.dayou.dto;
+
+import lombok.Data;
+
+@Data
+public class AssetsBusinessMembersDTO {
+
+    /**
+     * 业务id
+     */
+    private Long businessId;
+
+    /**
+     * 报告号
+     */
+    private String reportNo;
+}

+ 16 - 0
domain/src/main/java/com/dayou/dto/AssetsPerformanceDistributionAddDTO.java

@@ -0,0 +1,16 @@
+package com.dayou.dto;
+
+import com.dayou.entity.BusinessPerformanceDistribution;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AssetsPerformanceDistributionAddDTO extends BusinessPerformanceDistribution {
+
+    /**
+     * 分配信息集合
+     */
+    private List<BusinessPerformanceDistribution> distributionList;
+
+}

+ 63 - 0
domain/src/main/java/com/dayou/entity/BusinessPerformanceDistribution.java

@@ -0,0 +1,63 @@
+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;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 绩效分配比例信息
+ * </p>
+ *
+ * @author GouGengquan
+ * @since 2024-05-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ExcelSheet(sheetName = "绩效分配比例信息")
+public class BusinessPerformanceDistribution extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 业务id
+     */
+    private Long businessId;
+
+    /**
+     * 业务类型
+     */
+    @ImportCell
+    @ExportCell(columnName = "业务类型")
+    private String businessType;
+
+    /**
+     * 报告产品号
+     */
+    @ImportCell
+    @ExportCell(columnName = "报告产品号")
+    private String reportNo;
+
+    /**
+     * 成员id(user_id)
+     */
+    private Long memberId;
+
+    /**
+     * 每人比例信息
+     */
+    @ImportCell
+    @ExportCell(columnName = "每人比例信息")
+    private Double performanceDistribution;
+
+    /**
+     * 项目负责人、成员、签字师
+     */
+    private String memberType;
+
+
+}

+ 27 - 0
domain/src/main/java/com/dayou/vo/AssetsBusinessMember.java

@@ -0,0 +1,27 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+@Data
+public class AssetsBusinessMember {
+
+    /**
+     * 业务id
+     */
+    private Long businessId;
+
+    /**
+     * 项目成员用户id
+     */
+    private Long memberId;
+
+    /**
+     * 成员名
+     */
+    private String memberName;
+
+    /**
+     * 成员类型(0:项目负责人、1:项目参与人、2:签字师)
+     */
+    private String memberType;
+}

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

@@ -3,8 +3,12 @@ import com.dayou.dto.*;
 import com.dayou.entity.Assets;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.vo.AssetsBusinessMember;
 import com.dayou.vo.AssetsOrderFundInvoiceVO;
 import com.dayou.vo.AssetsVO;
+import com.fasterxml.jackson.core.JsonProcessingException;
+
+import java.util.List;
 
 /**
  * <p>
@@ -71,4 +75,12 @@ public interface IAssetsService extends IService<Assets> {
          */
         Boolean takeAssetsProductionNo(TakeAssetsProductionNoDTO takeAssetsProductionNoDTO);
 
+
+        /**
+         * 获取资产项目所有参与人
+         * @param assetsBusinessMembersDTO 查询dto
+         * @return List<AssetsBusinessMembers>
+         */
+        List<AssetsBusinessMember> getAssetsBusinessMembers(AssetsBusinessMembersDTO assetsBusinessMembersDTO) throws JsonProcessingException;
+
 }

+ 53 - 0
service/src/main/java/com/dayou/service/IBusinessPerformanceDistributionService.java

@@ -0,0 +1,53 @@
+package com.dayou.service;
+import com.dayou.dto.AssetsPerformanceDistributionAddDTO;
+import com.dayou.entity.BusinessPerformanceDistribution;
+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;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 绩效分配比例信息 服务类
+ * </p>
+ *
+ * @author wucl
+ * @since 2024-05-09
+ */
+public interface IBusinessPerformanceDistributionService extends IService<BusinessPerformanceDistribution> {
+
+        Page<BusinessPerformanceDistribution> selectPage(Page page,BusinessPerformanceDistribution businessPerformanceDistribution);
+
+        BusinessPerformanceDistribution detail(Long id);
+
+        Boolean add(BusinessPerformanceDistribution businessPerformanceDistribution);
+
+        Boolean update(BusinessPerformanceDistribution businessPerformanceDistribution);
+
+        Boolean delete(Long id);
+
+        /**
+         * 新增资产绩效分配信息
+         * @param dto 新增dto
+         * @return Boolean
+         */
+        Boolean addAssetsPerformanceDistribution(AssetsPerformanceDistributionAddDTO dto);
+
+        /**
+         * 获取资产绩效分配信息list
+         * @param dto 查询dto
+         * @return List<AssetsPerformanceDistributionAddDTO>
+         */
+        List<BusinessPerformanceDistribution> getPerformanceDistributionList(AssetsPerformanceDistributionAddDTO dto);
+
+        /**
+         * 修改资产绩效分配信息
+         * @param dto 修改dto
+         * @return Boolean
+         */
+        Boolean updateAssetsPerformanceDistribution(AssetsPerformanceDistributionAddDTO dto);
+
+}

+ 49 - 1
service/src/main/java/com/dayou/service/impl/AssetsServiceImpl.java

@@ -1,10 +1,11 @@
 package com.dayou.service.impl;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
 import cn.hutool.core.util.ObjectUtil;
 import com.dayou.common.BaseEntity;
 import com.dayou.dto.*;
 import com.dayou.entity.Assets;
-import com.dayou.entity.AssetsEvaluationTarget;
 import com.dayou.entity.BusinessNumber;
 import com.dayou.exception.ErrorCode;
 import com.dayou.mapper.AssetsEvaluationTargetMapper;
@@ -14,14 +15,17 @@ import com.dayou.service.IAssetsService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.service.IBusinessNumberService;
 import com.dayou.service.workflow.IWorkFlowService;
+import com.dayou.vo.AssetsBusinessMember;
 import com.dayou.vo.AssetsOrderFundInvoiceVO;
 import com.dayou.vo.AssetsVO;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.List;
 import java.util.regex.Matcher;
@@ -348,4 +352,48 @@ public class AssetsServiceImpl extends ServiceImpl<AssetsMapper, Assets> impleme
         //查询
         return assetsMapper.getBusinessNum(takeType, businessType, year);
     }
+
+    /**
+     * 获取资产项目所有参与人
+     * @param assetsBusinessMembersDTO 查询dto
+     * @return List<AssetsBusinessMembers>
+     */
+    @Override
+    public List<AssetsBusinessMember> getAssetsBusinessMembers(AssetsBusinessMembersDTO assetsBusinessMembersDTO) throws JsonProcessingException {
+        // 获取项目参与人id
+        Assets businessMember = assetsMapper.getBusinessMembers(assetsBusinessMembersDTO);
+        // 获取签字师id
+        String signatorys = assetsMapper.getSignatorys(assetsBusinessMembersDTO);
+
+        List<AssetsBusinessMember> assetsBusinessMemberList = new ArrayList<>();
+
+        //获取项目负责人信息
+        AssetsBusinessMember assetsBusinessMember;
+        assetsBusinessMember = assetsMapper.getAssetsBusinessMember(businessMember.getPrincipalId());
+        assetsBusinessMember.setBusinessId(assetsBusinessMembersDTO.getBusinessId());
+        assetsBusinessMember.setMemberType("项目负责人");
+        assetsBusinessMemberList.add(assetsBusinessMember);
+
+        ObjectMapper objectMapper = new ObjectMapper();
+        List<Long> memberIds = objectMapper.readValue(businessMember.getMembers(), new TypeReference<List<Long>>() {});
+        List<Long> signatoryIds = objectMapper.readValue(signatorys, new TypeReference<List<Long>>() {});
+
+        // 获取参与人信息
+        for (Long userId : memberIds){
+            assetsBusinessMember = assetsMapper.getAssetsBusinessMember(userId);
+            assetsBusinessMember.setBusinessId(assetsBusinessMembersDTO.getBusinessId());
+            assetsBusinessMember.setMemberType("项目参与人");
+            assetsBusinessMemberList.add(assetsBusinessMember);
+        }
+
+        // 获取签字师信息
+        for (Long userId : signatoryIds){
+            assetsBusinessMember = assetsMapper.getAssetsBusinessMember(userId);
+            assetsBusinessMember.setBusinessId(assetsBusinessMembersDTO.getBusinessId());
+            assetsBusinessMember.setMemberType("签字师");
+            assetsBusinessMemberList.add(assetsBusinessMember);
+        }
+
+        return assetsBusinessMemberList;
+    }
 }

+ 122 - 0
service/src/main/java/com/dayou/service/impl/BusinessPerformanceDistributionServiceImpl.java

@@ -0,0 +1,122 @@
+package com.dayou.service.impl;
+
+import com.dayou.common.BaseEntity;
+import com.dayou.dto.AssetsPerformanceDistributionAddDTO;
+import com.dayou.entity.BusinessPerformanceDistribution;
+import com.dayou.entity.BusinessProductionPerformance;
+import com.dayou.mapper.BusinessPerformanceDistributionMapper;
+import com.dayou.service.IBusinessPerformanceDistributionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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-05-09
+ */
+@Service
+public class BusinessPerformanceDistributionServiceImpl extends ServiceImpl<BusinessPerformanceDistributionMapper, BusinessPerformanceDistribution> implements IBusinessPerformanceDistributionService {
+
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public Page<BusinessPerformanceDistribution> selectPage(Page page,BusinessPerformanceDistribution businessPerformanceDistribution){
+        return this.page(page, new QueryWrapper<BusinessPerformanceDistribution>(businessPerformanceDistribution));
+    }
+
+
+    @Override
+    public BusinessPerformanceDistribution detail(Long id){
+        return this.getById(id);
+    }
+
+    @Override
+    public Boolean add(BusinessPerformanceDistribution businessPerformanceDistribution){
+        return  this.save(businessPerformanceDistribution);
+    }
+
+    @Override
+    public Boolean update(BusinessPerformanceDistribution businessPerformanceDistribution){
+        return  this.updateById(businessPerformanceDistribution);
+    }
+
+    @Override
+    public Boolean delete(Long id){
+        //逻辑删除
+        return this.removeById(id);
+    }
+
+    /**
+     * 新增资产绩效分配信息
+     * @param dto 新增dto
+     * @return Boolean
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Boolean addAssetsPerformanceDistribution(AssetsPerformanceDistributionAddDTO dto) {
+
+        // new批量插入集合
+        List<BusinessPerformanceDistribution> performanceDistributionList = new ArrayList<>();
+
+        // 将前端传递的数据进行处理,添加成单个的对象
+        for (BusinessPerformanceDistribution distribution : dto.getDistributionList()){
+            BusinessPerformanceDistribution performanceDistribution = new BusinessPerformanceDistribution();
+            performanceDistribution.setBusinessId(dto.getBusinessId());
+            performanceDistribution.setBusinessType(dto.getBusinessType());
+            performanceDistribution.setReportNo(dto.getReportNo());
+            performanceDistribution.setMemberId(distribution.getMemberId());
+            performanceDistribution.setPerformanceDistribution(distribution.getPerformanceDistribution());
+            performanceDistribution.setMemberType(distribution.getMemberType());
+            performanceDistributionList.add(performanceDistribution);
+        }
+
+        // 批量新增
+        return this.saveBatch(performanceDistributionList);
+    }
+
+    /**
+     * 获取资产绩效分配信息list
+     * @param dto 查询dto
+     * @return List<AssetsPerformanceDistributionAddDTO>
+     */
+    @Override
+    public List<BusinessPerformanceDistribution> getPerformanceDistributionList(AssetsPerformanceDistributionAddDTO dto) {
+        return this.list(new LambdaQueryWrapper<BusinessPerformanceDistribution>()
+                .eq(BusinessPerformanceDistribution::getBusinessId, dto.getBusinessId())
+                .eq(BusinessPerformanceDistribution::getBusinessType, dto.getBusinessType())
+                .eq(BusinessPerformanceDistribution::getReportNo, dto.getReportNo())
+                .eq(BaseEntity::getDeleted, 0));
+    }
+
+    /**
+     * 修改资产绩效分配信息
+     * @param dto 修改dto
+     * @return Boolean
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Boolean updateAssetsPerformanceDistribution(AssetsPerformanceDistributionAddDTO dto) {
+        return this.updateBatchById(dto.getDistributionList());
+    }
+}

+ 11 - 1
service/src/main/java/com/dayou/workflow/handler/AssetsNodeHandler.java

@@ -66,7 +66,7 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
     public boolean forward(WorkNodeCommit workNodeCommit) {
         WorkFlowNodeInstance currentInstanceNode = workFlowNodeInstanceMapper.getById(workNodeCommit.getInstanceNodeId());
         WorkNodeDTO nextWorkNode = beforeForward(workNodeCommit, currentInstanceNode);
-        if (nextWorkNode != null) {
+        if (ObjectUtil.isNotNull(nextWorkNode)) {
             String ifVerify = currentInstanceNode.getVerify();
             if (StrUtil.isNotEmpty(ifVerify)) {
                 CallbackEnum callback = CallbackEnum.valueOf(ifVerify);
@@ -121,6 +121,16 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
             }
             return Boolean.TRUE;
         }
+        // 判断下一个节点为null,且当前节点为 归档 时, 返回TRUE
+        if (ObjectUtil.isNull(nextWorkNode)){
+            String code = workNodeService.getOne(new LambdaQueryWrapper<WorkNode>()
+                    .select(WorkNode::getCode)
+                    .eq(BaseEntity::getId, currentInstanceNode.getNodeId()).eq(BaseEntity::getDeleted, Boolean.FALSE)).getCode();
+            WorkflowNodeEnum workflowNodeEnum = WorkflowNodeEnum.valueOf(code);
+            if (workflowNodeEnum.equals(WorkflowNodeEnum.BUSINESS_ARCHIVING)){
+                return Boolean.TRUE;
+            }
+        }
         return Boolean.FALSE;
     }
 

+ 22 - 0
sql/update_sql.sql

@@ -336,4 +336,26 @@ CREATE TABLE `business_performance_distribution`  (
     PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '绩效分配比例信息' ROW_FORMAT = Dynamic;
 
+SET FOREIGN_KEY_CHECKS = 1;
+
+/**
+  日期:2024-05-09
+  修改人:苟耕铨
+ */
+# 绩效分配比例信息表结构修改
+DROP TABLE IF EXISTS `business_performance_distribution`;
+CREATE TABLE `business_performance_distribution`  (
+`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '绩效分配表自增id',
+`business_id` bigint(20) NOT NULL COMMENT '业务id',
+`business_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '业务类型',
+`report_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '报告产品号',
+`member_id` bigint(20) NOT NULL COMMENT '成员id(user_id)',
+`performance_distribution` decimal(10, 0) NOT NULL COMMENT '绩效百分比',
+`member_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '项目负责人、成员、签字师',
+`created` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
+`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标识:1:删除 0:未删除',
+`modified` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '修改时间',
+PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '绩效分配比例信息' ROW_FORMAT = Dynamic;
+
 SET FOREIGN_KEY_CHECKS = 1;