Browse Source

1.资产流程归档时更新报告归档时间与状态
2.资产实收款分配到产品新增添加分配记录
3.表字段新增
4.接口assetsCommissionDeclare修改
5.新增接口myAssetsIncome 资产业务我的提成

GouGengquan 1 năm trước cách đây
mục cha
commit
8e449ce939

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

@@ -38,6 +38,18 @@ public class BusinessIncomeController extends BaseController {
         return RestResponse.data(ret);
     }
 
+    /**
+     * 资产业务我的提成
+     * @param page 分页信息
+     * @param vo 查询条件
+     * @return Page<UserCommissionProdVO>
+     */
+    @GetMapping("/my/assets")
+    public RestResponse<Page<UserCommissionProdVO>> myAssetsIncome(Page page, UserCommissionProdVO vo) {
+        Page<UserCommissionProdVO> ret = businessIncomeService.myAssetsIncome(page,vo);
+        return RestResponse.data(ret);
+    }
+
 
 }
 

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

@@ -10,6 +10,7 @@ import com.dayou.vo.AssetsProductionFundVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -128,4 +129,11 @@ public interface AssetsProductionMapper extends CustomBaseMapper<AssetsProductio
      */
     List<ReportDTO> getProductionFundByOrderFundId(@Param("orderFundId") Long orderFundId);
 
+    /**
+     * 产品归档
+     * @param saveFileDate 归档时间
+     * @return Boolean
+     */
+    Boolean prodSaveFile(@Param("saveFileDate") Date saveFileDate, @Param("productionNo") String productionNo);
+
 }

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

@@ -15,4 +15,12 @@ public interface BusinessIncomeMapper {
 
 
     Page<UserCommissionProdVO> myMajorIncome(Page page, @Param("vo") UserCommissionProdVO vo);
+
+    /**
+     * 资产业务我的提成
+     * @param page 分页信息
+     * @param vo 查询条件
+     * @return Page<UserCommissionProdVO>
+     */
+    Page<UserCommissionProdVO> myAssetsIncome(Page page, @Param("vo") UserCommissionProdVO vo);
 }

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

@@ -328,4 +328,13 @@
             pf.id
     </select>
 
+    <!--产品归档-->
+    <update id="prodSaveFile">
+        UPDATE assets_production
+        SET if_save_file = 1,
+            save_file_date = #{saveFileDate}
+        WHERE production_no = #{productionNo}
+        AND deleted = 0
+    </update>
+
 </mapper>

+ 63 - 0
dao/src/main/resources/mapper/BusinessIncomeMapper.xml

@@ -66,4 +66,67 @@
         order by settleDate DESC
     </select>
 
+    <!--资产业务我的提成-->
+    <select id="myAssetsIncome" resultType="com.dayou.vo.UserCommissionProdVO">
+        SELECT
+            bpd.id,
+            fc.claim_amount as realAmount,
+            ap.production_no,
+            IF ( fc.claim_datetime > ap.save_file_date, fc.claim_datetime, ap.save_file_date ) AS settleDate,
+            ap.created,
+            dd.NAME AS businessCate,
+            cd.ratio AS ratio,
+            bpd.member_id,
+            bpd.performance_distribution AS allotRatio,
+            IF ( bcr.low_limit_amount > fc.claim_amount, fc.claim_amount * ( cd.ratio / 100 ) * bpd.performance_distribution, bcr.low_limit_amount * ( cd.ratio / 100 ) * bpd.performance_distribution) AS commissionAmount,
+            IF ( bcr.low_limit_amount > fc.claim_amount, fc.claim_amount * ( cd.ratio / 100 ), bcr.low_limit_amount * ( cd.ratio / 100 )) AS commissionAmount,
+            u.name as userName,
+            (case bpd.user_type when 'EVALUATE' then '评估人员' else '市场人员' end) as  userType
+        FROM
+            (
+                SELECT
+                    claim_amount,
+                    order_fund_id,
+                    production_fund_id,
+                    claim_datetime
+                FROM
+                    finance_claim
+                WHERE
+                    deleted = 0
+                  AND production_fund_id IS NOT NULL
+                  AND claim_datetime &gt;= #{vo.startDate}
+                  AND claim_datetime  &lt;= #{vo.endDate}
+                UNION ALL
+                SELECT
+                    allot_amount AS claim_amount,
+                    order_fund_id,
+                    production_fund_id,
+                    created AS claim_datetime
+                FROM
+                    order_fund_allot
+                WHERE
+                    deleted = 0
+                  AND created  &gt;= #{vo.startDate}
+                  AND created &lt;= #{vo.endDate}
+            ) fc
+                INNER JOIN ( SELECT id,order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'ASSET_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
+                INNER JOIN ( SELECT id, business_id, production_no, production_type, save_file_date, delivery,created FROM assets_production WHERE deleted = 0 ) ap ON ap.production_no = pf.production_no
+                LEFT JOIN assets a ON a.id = ap.business_id
+                INNER JOIN ( SELECT id,business_id, production_id, business_type ,commission_rate_id, ratio FROM commission_declare WHERE  deleted = 0 AND declare_result = '审核通过' ) cd ON (
+                cd.business_id = a.id
+                    AND ( cd.production_id IS NULL OR cd.production_id = ap.id ))
+                LEFT JOIN business_commission_rate bcr ON bcr.id = cd.commission_rate_id
+                LEFT JOIN dict_data dd ON dd.id = bcr.business_cate_id
+                LEFT JOIN ( SELECT id,business_id,user_type, report_no, member_id, performance_distribution ,declare_id FROM business_performance_distribution WHERE deleted = 0 ) bpd
+                          ON ( bpd.business_id = a.id and (bpd.report_no is null or bpd.report_no = ap.id )
+                              and  if(bpd.user_type='MARKET','COMMISSION_DECLARE_ASSET_MARKET','COMMISSION_DECLARE_ASSET_EVALUATE') = cd.business_type
+                                 )
+                              and if(bpd.user_type='MARKET',ap.delivery = true, ap.save_file_date is not null)
+                left join user u on u.id = bpd.member_id
+
+        WHERE
+            u.id= #{vo.userId}
+        order by settleDate DESC
+    </select>
+
 </mapper>

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

@@ -31,6 +31,11 @@ public class CommissionDeclareDTO {
     private List<UserShareRate> userShareRates;
 
     /**
+     * 提成比例
+     */
+    private Double ratio;
+
+    /**
      * 资产业务人员绩效分配信息
      */
     private AssetsPerformanceDistributionAddDTO distributionDto;

+ 4 - 0
domain/src/main/java/com/dayou/entity/CommissionDeclare.java

@@ -52,5 +52,9 @@ public class CommissionDeclare extends BaseEntity {
      */
     private String declareResult;
 
+    /**
+     * 提成比例
+     */
+    private Double ratio;
 
 }

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

@@ -3,12 +3,10 @@ import com.dayou.dto.*;
 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;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -148,4 +146,11 @@ public interface IAssetsProductionService extends IService<AssetsProduction> {
          * @return Boolean
          */
         Boolean allotOrderRealAmountToProduction(OrderReportDTO orderReportDTO);
+
+        /**
+         * 产品归档
+         *
+         * @param saveFileDate 归档时间
+         */
+        void prodSaveFile(Date saveFileDate, String productionNo);
 }

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

@@ -12,4 +12,12 @@ import com.dayou.vo.UserCommissionProdVO;
  */
 public interface IBusinessIncomeService {
     Page<UserCommissionProdVO> myMajorIncome(Page page, UserCommissionProdVO vo);
+
+    /**
+     * 资产业务我的提成
+     * @param page 分页信息
+     * @param vo 查询条件
+     * @return Page<UserCommissionProdVO>
+     */
+    Page<UserCommissionProdVO> myAssetsIncome(Page page, UserCommissionProdVO vo);
 }

+ 19 - 1
service/src/main/java/com/dayou/service/impl/AssetsProductionServiceImpl.java

@@ -5,7 +5,6 @@ import cn.hutool.core.util.ObjectUtil;
 import com.dayou.common.BaseEntity;
 import com.dayou.dto.*;
 import com.dayou.entity.*;
-import com.dayou.enums.MainBusinessEnum;
 import com.dayou.exception.ErrorCode;
 import com.dayou.mapper.AssetsProductionMapper;
 import com.dayou.mapper.OrderFundMapper;
@@ -77,6 +76,9 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
     @Autowired
     private OrderFundMapper orderFundMapper;
 
+    @Autowired
+    private IOrderFundAllotService orderFundAllotService;
+
     /**
      * 根据资产业务id查询资产业务产品
      *
@@ -441,6 +443,12 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
                     continue;
                 }
                 productionFundMapper.updateRealAmount(productionFundId, reportDTO.getThisTimeAmount());
+                //分配记录表
+                OrderFundAllot orderFundAllot = new OrderFundAllot();
+                orderFundAllot.setProductionFundId(productionFundId);
+                orderFundAllot.setOrderFundId(orderFundId);
+                orderFundAllot.setAllotAmount(reportDTO.getThisTimeAmount());
+                orderFundAllotService.save(orderFundAllot);
             }
             return Boolean.TRUE;
         }
@@ -448,6 +456,16 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
     }
 
     /**
+     * 产品归档
+     *
+     * @param saveFileDate 归档时间
+     */
+    @Override
+    public void prodSaveFile(Date saveFileDate, String productionNo) {
+        assetsProductionMapper.prodSaveFile(saveFileDate, productionNo);
+    }
+
+    /**
      * 新增订单产品收款信息
      *
      * @param assetsProduction 资产产品信息

+ 14 - 0
service/src/main/java/com/dayou/service/impl/BusinessIncomeServiceImpl.java

@@ -28,4 +28,18 @@ public class BusinessIncomeServiceImpl implements IBusinessIncomeService {
         Page<UserCommissionProdVO> ret = businessIncomeMapper.myMajorIncome(page,vo);
         return ret;
     }
+
+    /**
+     * 资产业务我的提成
+     * @param page 分页信息
+     * @param vo 查询条件
+     * @return Page<UserCommissionProdVO>
+     */
+    @Override
+    public Page<UserCommissionProdVO> myAssetsIncome(Page page, UserCommissionProdVO vo) {
+        Long currentUserId = LoginContext.getCurrentUserId();
+        vo.setUserId(currentUserId);
+        Page<UserCommissionProdVO> ret = businessIncomeMapper.myAssetsIncome(page,vo);
+        return ret;
+    }
 }

+ 7 - 0
service/src/main/java/com/dayou/workflow/handler/AssetsNodeHandler.java

@@ -29,6 +29,7 @@ import org.springframework.stereotype.Component;
 
 import java.time.LocalDate;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -42,6 +43,9 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
     private AssetsMapper assetsMapper;
 
     @Autowired
+    private IAssetsProductionService assetsProductionService;
+
+    @Autowired
     private DepartmentMapper departmentMapper;
 
     @Autowired
@@ -123,6 +127,9 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
                     .eq(BaseEntity::getId, currentInstanceNode.getNodeId()).eq(BaseEntity::getDeleted, Boolean.FALSE)).getCode();
             WorkflowNodeEnum workflowNodeEnum = WorkflowNodeEnum.valueOf(code);
             if (workflowNodeEnum.equals(WorkflowNodeEnum.BUSINESS_ARCHIVING)){
+                // 将产品归档状态与归档时间更新
+                assetsProductionService.prodSaveFile(new Date(), workNodeCommit.getBusinessSubId());
+                assetsProductionService.prodSaveFile(new Date(), workNodeCommit.getBusinessMinId());
                 return Boolean.TRUE;
             }
         }

+ 3 - 1
sql/update_sql.sql

@@ -504,4 +504,6 @@ ALTER TABLE business_performance_distribution ADD COLUMN participation_duration
   修改人:苟耕铨
  */
 # 表assets_production新增字段if_save_file
-ALTER TABLE assets_production ADD COLUMN if_save_file bit(1) NOT NULL DEFAULT 0 comment '是否归档';
+ALTER TABLE assets_production ADD COLUMN if_save_file bit(1) NOT NULL DEFAULT 0 comment '是否归档';
+# 表commission_declare新增字段ratio
+ALTER TABLE commission_declare ADD COLUMN ratio DECIMAL(16,2) NULL comment '提成比例';