浏览代码

1.增加资产业务绩效申报流程拒绝的前置操作
2.资产业务查询列表新增筛选条件
3.修复标准收费计算结果错误的BUG
4.新增接口getAssetsProductionFundVoList(未测试)

GouGengquan 1 年之前
父节点
当前提交
3985a05b12

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

@@ -2,6 +2,7 @@ package com.dayou.controller;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.dayou.dto.*;
+import com.dayou.vo.AssetsProductionFundVo;
 import com.dayou.workflow.annotation.FinishTask;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
@@ -214,5 +215,14 @@ public class AssetsProductionController extends BaseController {
         return RestResponse.data(assetsProductionService.markDelivery(productionNo));
     }
 
+    /**
+     * 查找实收款认领产品列表
+     * @param apFundSelectDTO 查询dto
+     * @return List<AssetsProductionFundVo>
+     */
+    @GetMapping("/getAssetsProductionFundVoList")
+    public RestResponse<List<AssetsProductionFundVo>> getAssetsProductionFundVoList(APFundSelectDTO apFundSelectDTO) {
+        return RestResponse.data(assetsProductionService.getAssetsProductionFundVoList(apFundSelectDTO));
+    }
 }
 

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

@@ -138,7 +138,7 @@ public class CommissionDeclareController extends BaseController {
 
     /**
      * 资产待办绩效申报集合
-     * @return List<CommissionDeclareTodoCheckVO>
+     * @return RestResponse<List<CommissionDeclareTodoCheckVO>>
      */
     @GetMapping("/assets/check/list")
     public RestResponse<List<CommissionDeclareTodoCheckVO>> assetsTodoCheckList() {

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

@@ -1,8 +1,10 @@
 package com.dayou.mapper;
 
+import com.dayou.dto.APFundSelectDTO;
 import com.dayou.dto.AProListSelectDTO;
 import com.dayou.entity.AssetsProduction;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.AssetsProductionFundVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -102,4 +104,11 @@ public interface AssetsProductionMapper extends CustomBaseMapper<AssetsProductio
      * @return Boolean
      */
     Boolean markDelivery(@Param("productionNo") String productionNo);
+
+    /**
+     * 查找实收款认领产品列表
+     * @param apFundSelectDTO 查询dto
+     * @return List<AssetsProductionFundVo>
+     */
+    List<AssetsProductionFundVo> getAssetsProductionFundVoList(@Param("apFundSelectDTO") APFundSelectDTO apFundSelectDTO);
 }

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

@@ -97,6 +97,7 @@
         AND record.handler_id = user.id
         AND nodeInstance.deleted = 0
         AND record.instance_id = nodeInstance.id
+        AND nodeInstance.business_type = 'ASSET_BUSINESS'
         ) AS nodeInfo ON nodeInfo.businessId = assets.id
         WHERE assets.deleted = 0
         #评估业务类别(业务类型)查询
@@ -196,6 +197,7 @@
         AND record.handler_id = user.id
         AND nodeInstance.deleted = 0
         AND record.instance_id = nodeInstance.id
+        AND nodeInstance.business_type = 'ASSET_BUSINESS'
         ) AS nodeInfo ON nodeInfo.businessId = assets.id
         LEFT JOIN production_fund AS pFund ON pFund.order_fund_id = fund.id AND pFund.production_no = nodeInfo.business_min_id
         LEFT JOIN(SELECT production_no,repertory_state,production_type,delivery FROM assets_production) AS reportInfo ON reportInfo.production_no = nodeInfo.business_min_id

+ 53 - 0
dao/src/main/resources/mapper/AssetsProductionMapper.xml

@@ -199,5 +199,58 @@
           AND deleted = 0
     </update>
 
+    <!--查找实收款认领产品列表-->
+    <select id="getAssetsProductionFundVoList" resultType="com.dayou.vo.AssetsProductionFundVo">
+        SELECT assets.id,
+        assets.name AS name,
+        assets.order_id AS orderId,
+        production.id AS productionId,
+        production.production_no AS reportNo,
+        oFund.id AS orderFundId,
+        oFund.should_amount AS orderShouldAmount,
+        oFund.real_amount AS productionFundId,
+        pFund.id AS productionFundId,
+        pFund.production_should_amount AS productionShouldAmount,
+        pFund.real_amount AS productionRealAmount,
+        pFund.standard_amount AS standardAmount,
+        (
+        SELECT declare_result
+        FROM commission_declare AS `declare`
+        WHERE `declare`.production_id = productionId
+        AND `declare`.business_id = assets.id
+        AND `declare`.business_type = 'COMMISSION_DECLARE_ASSET_EVALUATE'
+        AND deleted = 0
+        ) AS eDeclareResult,
+        (
+        SELECT declare_result
+        FROM commission_declare AS `declare`
+        WHERE `declare`.production_id = productionId
+        AND `declare`.business_id = assets.id
+        AND `declare`.business_type = 'COMMISSION_DECLARE_ASSET_MARKET'
+        AND deleted = 0
+        ) AS mDeclareResult
+        FROM assets
+        LEFT JOIN assets_production AS production ON production.business_id = assets.id
+        LEFT JOIN order_fund AS oFund ON oFund.business_id = assets.id AND oFund.order_id = assets.order_id
+        LEFT JOIN production_fund AS pFund ON pFund.business_id = production.business_id AND pFund.production_no =
+        production.production_no
+        WHERE production.production_type != 'STATEMENT'
+        AND production.create_production_date IS NOT NULL
+        <if test="apFundSelectDTO.oderName != null and apFundSelectDTO.oderName != ''">
+            AND assets.name LIKE CONCAT('%',#{apFundSelectDTO.oderName},'%')
+        </if>
+        <if test="apFundSelectDTO.orderId != null and apFundSelectDTO.orderId != ''">
+            AND assets.order_id LIKE CONCAT('%',#{apFundSelectDTO.orderId},'%')
+        </if>
+        <if test="apFundSelectDTO.reportNo != null and apFundSelectDTO.reportNo != ''">
+            AND production.production_no LIKE CONCAT('%',#{apFundSelectDTO.reportNo},'%')
+        </if>
+        <if test="apFundSelectDTO.eDeclareResult != null and apFundSelectDTO.eDeclareResult != ''">
+            AND eDeclareResult = #{apFundSelectDTO.eDeclareResult}
+        </if>
+        <if test="apFundSelectDTO.mDeclareResult != null and apFundSelectDTO.mDeclareResult != ''">
+            AND mDeclareResult = #{apFundSelectDTO.mDeclareResult}
+        </if>
+    </select>
 
 </mapper>

+ 33 - 0
domain/src/main/java/com/dayou/dto/APFundSelectDTO.java

@@ -0,0 +1,33 @@
+package com.dayou.dto;
+
+import lombok.Data;
+
+@Data
+public class APFundSelectDTO {
+
+    /**
+     * 订单名
+     */
+    private String oderName;
+
+    /**
+     * 订单id
+     */
+    private String orderId;
+
+    /**
+     * 评估人员绩效提成申报状态
+     */
+    private String eDeclareResult;
+
+    /**
+     * 市场人员绩效提成申报状态
+     */
+    private String mDeclareResult;
+
+    /**
+     * 报告号
+     */
+    private String reportNo;
+
+}

+ 70 - 0
domain/src/main/java/com/dayou/vo/AssetsProductionFundVo.java

@@ -0,0 +1,70 @@
+package com.dayou.vo;
+
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class AssetsProductionFundVo extends BaseEntity {
+
+    /**
+     * 项目名称
+     */
+    private String name;
+
+    /**
+     * 项目编号
+     */
+    private String orderId;
+
+    /**
+     * 产品id
+     */
+    private Long productionId;
+
+    /**
+     * 产品号
+     */
+    private String productionNo;
+
+    /**
+     * 订单收款id
+     */
+    private Long orderFundId;
+
+    /**
+     * 订单应收款
+     */
+    private BigDecimal orderShouldAmount;
+
+    /**
+     * 订单实收款
+     */
+    private BigDecimal orderRealAmount;
+
+    /**
+     * 产品收款id
+     */
+    private Long productionFundId;
+
+    /**
+     * 产品应收款
+     */
+    private BigDecimal productionShouldAmount;
+
+    /**
+     * 产品实收款
+     */
+    private BigDecimal productionRealAmount;
+
+    /**
+     * 产品标准收费
+     */
+    private BigDecimal standardAmount;
+
+    /**
+     * 提成申报审批结果
+     */
+    private String declareResult;
+}

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

@@ -4,6 +4,7 @@ import com.dayou.entity.AssetsProduction;
 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.AssetsProductionFundVo;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -113,4 +114,11 @@ public interface IAssetsProductionService extends IService<AssetsProduction> {
          */
         Boolean markDelivery(String productionNo);
 
+        /**
+         * 查找实收款认领产品列表
+         * @param apFundSelectDTO 查询dto
+         * @return List<AssetsProductionFundVo>
+         */
+        List<AssetsProductionFundVo> getAssetsProductionFundVoList(APFundSelectDTO apFundSelectDTO);
+
 }

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

@@ -8,6 +8,7 @@ import com.dayou.exception.ErrorCode;
 import com.dayou.mapper.AssetsProductionMapper;
 import com.dayou.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.vo.AssetsProductionFundVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -167,7 +168,9 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
         // 生成产品二维码
         assetsProduction.setQrCode(businessProductionService.doCreateNormalCode(assetsProduction.getProductionType(), assetsProduction.getProductionNo()));
         // 新增产品收款信息
-        addAssetsProShouldAmount(assetsProduction);
+        if (!assetsProduction.getProductionType().equals(STATEMENT.getCode())){
+            addAssetsProShouldAmount(assetsProduction);
+        }
         return assetsProductionMapper.writeAssetsProduction(assetsProduction);
     }
 
@@ -320,8 +323,18 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
     }
 
     /**
+     * 查找实收款认领产品列表
+     * @param apFundSelectDTO 查询dto
+     * @return List<AssetsProductionFundVo>
+     */
+    @Override
+    public List<AssetsProductionFundVo> getAssetsProductionFundVoList(APFundSelectDTO apFundSelectDTO) {
+        return assetsProductionMapper.getAssetsProductionFundVoList(apFundSelectDTO);
+    }
+
+    /**
      * 新增订单产品收款信息
-     * @param assetsProduction 资产订单信息
+     * @param assetsProduction 资产产品信息
      */
     public void addAssetsProShouldAmount(AssetsProduction assetsProduction) {
         // 根据报告号获取评估对象信息
@@ -333,6 +346,8 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
             BigDecimal total = targetList.stream()
                     .map(AssetsEvaluationTarget::getCheckValue)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
+            // 由于评估值单位为 万元,标准收费为 元,所以此处 评估值 * 10000 用于后续计算标准收费
+            total = total.multiply(BigDecimal.valueOf(10000));
 
             // 新增产品收款信息
             OrderFund orderFund = orderFundService.getOne(new LambdaQueryWrapper<OrderFund>()

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

@@ -81,6 +81,9 @@ public class WorkNodeProcessable {
     @Autowired
     private ICommissionDeclareService commissionDeclareService;
 
+    @Autowired
+    private IBusinessPerformanceDistributionService businessPerformanceDistributionService;
+
 
     /**
      * 提交流程前置处理
@@ -368,6 +371,15 @@ public class WorkNodeProcessable {
                 commissionDeclareService.update(new LambdaUpdateWrapper<CommissionDeclare>().set(CommissionDeclare::getDeclareResult,审核拒绝.name())
                         .eq(BaseEntity::getId,currentInstanceNode.getBusinessId()));
                 break;
+            case COMMISSION_DECLARE_ASSET_MARKET:
+            case COMMISSION_DECLARE_ASSET_EVALUATE:
+                // 更新审核状态
+                commissionDeclareService.update(new LambdaUpdateWrapper<CommissionDeclare>().set(CommissionDeclare::getDeclareResult,审核拒绝.name())
+                        .eq(BaseEntity::getId,currentInstanceNode.getBusinessId()));
+                // 更新绩效分配信息deleted
+                businessPerformanceDistributionService.update(new LambdaUpdateWrapper<BusinessPerformanceDistribution>()
+                        .set(BusinessPerformanceDistribution :: getDeleted, 1)
+                        .eq(BusinessPerformanceDistribution::getDeclareId ,currentInstanceNode.getBusinessId()));
         }
     }
 }