Browse Source

增加技术人员提成抵扣功能

wucl 2 years ago
parent
commit
15845bc990

+ 11 - 2
biz-base/src/main/java/com/dayou/controller/ItemBrokerageTechnicistController.java

@@ -1,5 +1,6 @@
 package com.dayou.controller;
 
+import com.dayou.vo.DeductionTechItemVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,8 +38,8 @@ public class ItemBrokerageTechnicistController extends BaseController {
     * 技术人员项目提成总表列表
     */
     @GetMapping("")
-    public RestResponse<Page<ItemBrokerageTechnicist>> page(ItemBrokerageTechnicist itemBrokerageTechnicist, Page page){
-        Page<ItemBrokerageTechnicist> pages=itemBrokerageTechnicistService.selectPage(page,itemBrokerageTechnicist);
+    public RestResponse<Page<DeductionTechItemVO>> page(DeductionTechItemVO deductionTechItemVO, Page page){
+        Page<DeductionTechItemVO> pages=itemBrokerageTechnicistService.selectPage(page,deductionTechItemVO);
         return RestResponse.data(pages);
     }
 
@@ -78,6 +79,14 @@ public class ItemBrokerageTechnicistController extends BaseController {
         return RestResponse.data(ret);
     }
 
+    /**
+     * 全额回款户一次性结算项目
+     */
+    @GetMapping("/list")
+    public RestResponse<Page<DeductionTechItemVO>> oncePage(DeductionTechItemVO deductionTechItemVO, Page page){
+        Page<DeductionTechItemVO> pages=itemBrokerageTechnicistService.oncePage(page,deductionTechItemVO);
+        return RestResponse.data(pages);
+    }
 
 }
 

+ 14 - 2
biz-base/src/main/java/com/dayou/controller/ItemBrokerageTechnicistDeductionController.java

@@ -1,5 +1,7 @@
 package com.dayou.controller;
 
+import com.dayou.vo.DeductionTechStatVO;
+import com.dayou.vo.TechDeductionVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,8 +39,8 @@ public class ItemBrokerageTechnicistDeductionController extends BaseController {
     * 技术人员提成抵扣记录列表
     */
     @GetMapping("")
-    public RestResponse<Page<ItemBrokerageTechnicistDeduction>> page(ItemBrokerageTechnicistDeduction itemBrokerageTechnicistDeduction, Page page){
-        Page<ItemBrokerageTechnicistDeduction> pages=itemBrokerageTechnicistDeductionService.selectPage(page,itemBrokerageTechnicistDeduction);
+    public RestResponse<Page<TechDeductionVO>> page(TechDeductionVO techDeductionVO, Page page){
+        Page<TechDeductionVO> pages=itemBrokerageTechnicistDeductionService.selectPage(page,techDeductionVO);
         return RestResponse.data(pages);
     }
 
@@ -79,5 +81,15 @@ public class ItemBrokerageTechnicistDeductionController extends BaseController {
     }
 
 
+    /**
+     * 统计技术人员提成奖金池剩余金额
+     * @return
+     */
+    @GetMapping("/stat")
+    public RestResponse<DeductionTechStatVO> stat(){
+        DeductionTechStatVO vo = itemBrokerageTechnicistDeductionService.stat();
+        return RestResponse.data(vo);
+    }
+
 }
 

+ 7 - 0
dao/src/main/java/com/dayou/mapper/ItemBrokerageTechnicistDeductionMapper.java

@@ -1,10 +1,13 @@
 package com.dayou.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.dto.DeductionDTO;
 import com.dayou.entity.ItemBrokerageTechnicistDeduction;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.TechDeductionVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -18,4 +21,8 @@ import java.util.List;
 public interface ItemBrokerageTechnicistDeductionMapper extends CustomBaseMapper<ItemBrokerageTechnicistDeduction> {
 
     List<DeductionDTO> notDeductionDefaultSettle(@Param("userId") Long userId);
+
+    Page<TechDeductionVO> xPage(Page page, @Param("vo") TechDeductionVO vo);
+
+    BigDecimal poolResidueAmount(@Param("userId") Long userId);
 }

+ 6 - 0
dao/src/main/java/com/dayou/mapper/ItemBrokerageTechnicistMapper.java

@@ -1,7 +1,9 @@
 package com.dayou.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.entity.ItemBrokerageTechnicist;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.DeductionTechItemVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -18,4 +20,8 @@ import java.util.List;
 public interface ItemBrokerageTechnicistMapper extends CustomBaseMapper<ItemBrokerageTechnicist> {
 
     List<ItemBrokerageTechnicist> notSettleForTechnicist(@Param("userId") Long userId);
+
+    Page<DeductionTechItemVO> xPage(Page page, @Param("vo") DeductionTechItemVO deductionTechItemVO);
+
+    Page<DeductionTechItemVO> oncePage(Page page, @Param("vo")DeductionTechItemVO deductionTechItemVO);
 }

+ 75 - 0
dao/src/main/resources/mapper/ItemBrokerageTechnicistDeductionMapper.xml

@@ -11,6 +11,18 @@
         <result column="deduction_amount" property="deductionAmount" />
     </resultMap>
 
+    <resultMap id="deductionRecordsMap" type="com.dayou.vo.TechDeductionVO">
+        <result column="id" property="id" />
+        <result column="userId" property="userId" />
+        <result column="userName" property="userName"/>
+        <result column="year" property="year"/>
+        <result column="month" property="month"/>
+        <result column="brokerageAmount" property="brokerageAmount"/>
+        <result column="cate" property="cate"/>
+        <result column="created" property="created"/>
+        <result column="notDeductionAmount" property="notDeductionAmount"/>
+        <collection property="deductionRecords" ofType="com.dayou.vo.DeductionVO" select="selectDeductionRecords" column="id"/>
+    </resultMap>
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
         id,
@@ -33,4 +45,67 @@
                                       order by ibs.id ASC
     </select>
 
+    <select id="xPage" parameterType="com.dayou.vo.TechDeductionVO" resultMap="deductionRecordsMap">
+        SELECT
+            ibs.id,
+            u.id AS userId,
+            u.NAME AS userName,
+            ibs.YEAR,
+            ibs.MONTH,
+            ibs.cate,
+            ibs.brokerage_amount AS brokerageAmount,
+            ibs.created,
+            (ibs.brokerage_amount - ifnull( ibtd.deduDone, 0 ))  AS notDeductionAmount
+        FROM
+            item_brokerage_sequence ibs
+                LEFT JOIN ( SELECT brokerage_sequence_id, sum( deduction_amount ) AS deduDone FROM item_brokerage_technicist_deduction WHERE deleted = 0 GROUP BY brokerage_sequence_id ) ibtd ON ibtd.brokerage_sequence_id = ibs.id
+                LEFT JOIN user u ON u.id = ibs.user_id
+        WHERE
+            ibs.user_id = #{vo.userId} and ibs.deleted = 0 and ibs.cate = 'DEFAULT_AHEAD'
+        <if test="vo.cate!=null and vo.cate!='' ">
+            and ibs.cate = #{vo.cate}
+        </if>
+        <if test="vo.year!=null ">
+            and ibs.year = #{vo.year}
+        </if>
+        <if test="vo.month!=null ">
+            and ibs.month = #{vo.month}
+        </if>
+order by ibs.id DESC
+    </select>
+
+    <select id="selectDeductionRecords" parameterType="java.lang.Long" resultType="com.dayou.vo.DeductionVO">
+        SELECT
+            ibtd.deduction_amount,
+            ibtd.created ,
+            ibt.amount as settleAmount,
+            i.name as itemName,
+            i.id as itemId,
+            ibs.year,
+            ibs.month,
+            ibs.cate as settleCate
+        FROM
+            item_brokerage_technicist_deduction ibtd
+                LEFT JOIN item_brokerage_technicist ibt on ibtd.brokerage_technicist_id = ibt.id
+                left join item i on i.id = ibt.item_id
+                left join item_brokerage_sequence ibs on ibs.id = ibt.sequence_id
+        where ibtd.deleted = 0 and ibt.deleted =0 and ibs.deleted = 0 and ibtd.brokerage_sequence_id = #{id}
+        order by ibtd.id DESC
+    </select>
+
+    <select id="poolResidueAmount" parameterType="java.lang.Long" resultType="java.math.BigDecimal">
+        SELECT
+            (
+                    ( SELECT ifnull( sum( residue_amount ), 0 ) FROM `item_brokerage_technicist` WHERE user_id = #{userId} AND deleted = 0 ) -(
+                    SELECT
+                        ifnull( sum( brokerage_amount ), 0 )
+                    FROM
+                        item_brokerage_sequence
+                    WHERE
+                        user_id = #{userId}
+                      AND cate = 'DEFAULT_AHEAD'
+                      AND deleted = 0
+                )
+                ) AS poolResidueAmount
+    </select>
 </mapper>

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

@@ -13,6 +13,19 @@
         <result column="residue_amount" property="residueAmount" />
     </resultMap>
 
+    <resultMap id="defaultDeductionRecordsMap" type="com.dayou.vo.DeductionTechItemVO">
+        <result column="id" property="id" />
+        <result column="sequenceId" property="sequenceId"/>
+        <result column="embody" property="embody"/>
+        <result column="itemId" property="itemId"/>
+        <result column="itemName" property="itemName"/>
+        <result column="userId" property="userId" />
+        <result column="userName" property="userName"/>
+        <result column="brokerageAmount" property="brokerageAmount"/>
+        <result column="residue_amount" property="residueAmount"/>
+        <result column="created" property="created"/>
+        <collection property="defaultDeductions" ofType="com.dayou.vo.TechDeductionVO" select="selectDefaultDeductionRecords" column="id"/>
+    </resultMap>
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
         id,
@@ -32,4 +45,54 @@
           AND ibt.residue_amount != 0
 	AND  ibt.user_id = #{userId}
     </select>
+
+    <select id="xPage" parameterType="com.dayou.vo.DeductionTechItemVO" resultMap="defaultDeductionRecordsMap">
+        SELECT
+            ibt.id,
+            ibt.sequence_id,
+            ibt.item_id,
+            ibt.user_id,
+            ibt.amount AS brokerageAmount,
+            ibt.residue_amount,
+            ibt.created ,
+            i.name as itemName,
+            u.name as userName,
+            ibs.embody
+        FROM
+            item_brokerage_technicist ibt
+                LEFT JOIN item_brokerage_sequence ibs ON ibs.id = ibt.sequence_id
+                LEFT JOIN item i ON i.id = ibt.item_id
+                LEFT JOIN USER u ON u.id = ibt.user_id
+        WHERE
+            ibt.deleted = 0
+          AND ibs.deleted = 0
+          AND ibt.user_id = #{vo.userId}
+            <if test="vo.itemName!=null and vo.itemName!='' ">
+               and i.name like concat ('%',#{vo.itemName},'%')
+            </if>
+        ORDER BY
+            ibt.id DESC
+    </select>
+    <select id="selectDefaultDeductionRecords" parameterType="java.lang.Long" resultType="com.dayou.vo.TechDeductionVO">
+        SELECT
+            ibs.id,
+            u.id AS userId,
+            u.NAME AS userName,
+            ibs.YEAR,
+            ibs.MONTH,
+            ibs.cate,
+            ibs.brokerage_amount AS brokerageAmount,
+            ibs.created,
+            (ibs.brokerage_amount - ifnull( ibtd.deduction_amount, 0 ))  AS notDeductionAmount
+        FROM
+            item_brokerage_technicist_deduction ibtd
+                LEFT JOIN item_brokerage_sequence  ibs ON ibtd.brokerage_sequence_id = ibs.id
+                LEFT JOIN user u ON u.id = ibs.user_id
+        where ibtd.brokerage_technicist_id = #{id} and ibtd.deleted = 0 and ibs.deleted = 0
+        order by ibtd.id DESC
+    </select>
+
+    <select id="oncePage" parameterType="com.dayou.vo.DeductionTechItemVO" resultType="com.dayou.vo.DeductionTechItemVO">
+    //todo
+    </select>
 </mapper>

+ 75 - 0
domain/src/main/java/com/dayou/vo/DeductionTechItemVO.java

@@ -0,0 +1,75 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/6/9
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class DeductionTechItemVO {
+
+    /**
+     *  技术人员项目提成id
+     */
+    private Long id;
+    /**
+     * 结算流水id
+     */
+    private Long sequenceId;
+
+    /**
+     * 提成体现
+     */
+    private String embody;
+    /**
+     * 项目id
+     */
+    private Long itemId;
+    /**
+     * 项目名称
+     */
+    private String itemName;
+    /**
+     * 技术人员id
+     */
+    private Long userId;
+    /**
+     * 技术人员名字
+     */
+    private String userName;
+    /**
+     * 转入奖金池金额
+     */
+    private BigDecimal brokerageAmount;
+
+    /**
+     *一次性发放金额
+     */
+    private BigDecimal onceAmount;
+
+    /**
+     * 结算金额
+     */
+    private String cate;
+    /**
+     * 项目剩余金额
+     */
+    private BigDecimal residueAmount;
+    /**
+     * 转入奖金池时间
+     */
+    private LocalDate created;
+
+    /**
+     * 抵扣默认预提
+     */
+    List<TechDeductionVO> defaultDeductions;
+}

+ 28 - 0
domain/src/main/java/com/dayou/vo/DeductionTechStatVO.java

@@ -0,0 +1,28 @@
+package com.dayou.vo;
+
+import lombok.Builder;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/6/9
+ * created with IntelliJ IDEA.
+ */
+@Builder
+@Data
+public class DeductionTechStatVO {
+
+    /**
+     * 奖金池剩余金额
+     */
+    private BigDecimal poolResidueAmount;
+
+    /**
+     * 每月默认预提金额
+     */
+    private BigDecimal defaultBrokerageAmount;
+}

+ 58 - 0
domain/src/main/java/com/dayou/vo/DeductionVO.java

@@ -0,0 +1,58 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/6/9
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class DeductionVO{
+
+    /**
+     * 项目id
+     */
+    private Long itemId;
+
+    /**
+     * 项目名称
+     */
+    private String itemName;
+
+    /**
+     * 项目结算年份
+     */
+    private Long year;
+
+    /**
+     * 项目结算月份
+     */
+    private Long month;
+
+    /**
+     * 转移金额
+     */
+    private BigDecimal settleAmount;
+
+    /**
+     * 项目结算类型
+     */
+    private String settleCate;
+
+    /**
+     * 已抵扣金额
+     */
+    private BigDecimal deductionAmount;
+
+    /**
+     * 抵扣时间
+     */
+    private LocalDate created;
+
+}

+ 65 - 0
domain/src/main/java/com/dayou/vo/TechDeductionVO.java

@@ -0,0 +1,65 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/6/9
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class TechDeductionVO {
+
+    /**
+     * 结算id
+     */
+    private Long id;
+
+    /**
+     * 技术人员id
+     */
+    private Long userId;
+
+    /**
+     * 技术人员名字
+     */
+    private String userName;
+    /**
+     * 结算年份
+     */
+    private Long year;
+    /**
+     * 结算月份
+     */
+    private Long month;
+
+    /**
+     * 已发金额
+     */
+    private BigDecimal brokerageAmount;
+
+    /**
+     * 结算类型
+     */
+    private String cate;
+    /**
+     *结算时间
+     */
+    private LocalDate created;
+    /**
+     * 未抵扣金额
+     */
+    private BigDecimal notDeductionAmount;
+    /**
+     * 抵扣记录
+     */
+    private List<DeductionVO> deductionRecords = new ArrayList<>();
+
+}

+ 1 - 1
service/src/main/java/com/dayou/brokerage/constants/BrokerageBusiness.java

@@ -22,7 +22,7 @@ public enum BrokerageBusiness {
 
     COMPENSATION("补偿结算","COMPENSATION"),
 
-    POOL_SETTLE("奖金池结算","POOL_SETTLE"),
+    POOL_SETTLE("转入个人奖金池","POOL_SETTLE"),
 
     ONCE_SETTLE("一次性结算","ONCE_SETTLE");
 

+ 2 - 2
service/src/main/java/com/dayou/brokerage/constants/BrokerageMsg.java

@@ -13,8 +13,8 @@ public class BrokerageMsg {
 
     public static final String BROKERAGE_SEQUENCE_REMARK = "系统每月23日零点自动结算项目提成,您上月可结算(包含预提)项目个数:[sum]个。";
 
-    public static final String POOL_SETTLE_REMARK = "系统每月23日零点自动结算阶段流程已完成且已被评价的项目,结算金额已转移至个人奖金池。";
-    public static final String NON_MARKETER_BASE_SEQUENCE_REMARK = "技术人员默认提成,此提成与个人奖金池剩余金额抵扣。";
+    public static final String POOL_SETTLE_REMARK = "系统每月23日零点自动结算阶段流程已完成且已被评价的项目,结算金额已转移至个人提成奖金池。";
+    public static final String NON_MARKETER_BASE_SEQUENCE_REMARK = "技术人员默认提成,此提成与个人提成奖金池剩余金额抵扣。";
 
     public static final String NON_MARKETER_ALL_PAYMENT_REMARK = "此项目已全额回款,其提成金额若有剩余将一次性发放。";
 

+ 4 - 1
service/src/main/java/com/dayou/service/IItemBrokerageTechnicistDeductionService.java

@@ -3,6 +3,8 @@ import com.dayou.entity.ItemBrokerageTechnicistDeduction;
 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.DeductionTechStatVO;
+import com.dayou.vo.TechDeductionVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
 /**
@@ -15,7 +17,7 @@ import org.springframework.web.multipart.MultipartFile;
  */
 public interface IItemBrokerageTechnicistDeductionService extends IService<ItemBrokerageTechnicistDeduction> {
 
-        Page<ItemBrokerageTechnicistDeduction> selectPage(Page page,ItemBrokerageTechnicistDeduction itemBrokerageTechnicistDeduction);
+        Page<TechDeductionVO> selectPage(Page page, TechDeductionVO techDeductionVO);
 
         ItemBrokerageTechnicistDeduction detail(Long id);
 
@@ -25,4 +27,5 @@ public interface IItemBrokerageTechnicistDeductionService extends IService<ItemB
 
         Boolean delete(Long id);
 
+    DeductionTechStatVO stat();
 }

+ 3 - 1
service/src/main/java/com/dayou/service/IItemBrokerageTechnicistService.java

@@ -3,6 +3,7 @@ import com.dayou.entity.ItemBrokerageTechnicist;
 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.DeductionTechItemVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
 /**
@@ -15,7 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
  */
 public interface IItemBrokerageTechnicistService extends IService<ItemBrokerageTechnicist> {
 
-        Page<ItemBrokerageTechnicist> selectPage(Page page,ItemBrokerageTechnicist itemBrokerageTechnicist);
+        Page<DeductionTechItemVO> selectPage(Page page, DeductionTechItemVO deductionTechItemVO);
 
         ItemBrokerageTechnicist detail(Long id);
 
@@ -25,4 +26,5 @@ public interface IItemBrokerageTechnicistService extends IService<ItemBrokerageT
 
         Boolean delete(Long id);
 
+        Page<DeductionTechItemVO> oncePage(Page page, DeductionTechItemVO deductionTechItemVO);
 }

+ 1 - 0
service/src/main/java/com/dayou/service/impl/ItemBrokerageSequenceServiceImpl.java

@@ -145,6 +145,7 @@ public class ItemBrokerageSequenceServiceImpl extends ServiceImpl<ItemBrokerageS
     @Transactional
     @Override
     public synchronized Boolean doNonMarketerAheadSettle() {
+        //todo 一次性结算的项目生成 项目结算记录
         ConcurrentMap<Long, BigDecimal> nonMarketerAheadAmounts = baseAmountsCache.asMap();
         Date now = new Date();
         int year = DateUtils.getYear(now);

+ 28 - 2
service/src/main/java/com/dayou/service/impl/ItemBrokerageTechnicistDeductionServiceImpl.java

@@ -4,6 +4,11 @@ import com.dayou.entity.ItemBrokerageTechnicistDeduction;
 import com.dayou.mapper.ItemBrokerageTechnicistDeductionMapper;
 import com.dayou.service.IItemBrokerageTechnicistDeductionService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.utils.LoginContext;
+import com.dayou.vo.DeductionTechStatVO;
+import com.dayou.vo.TechDeductionVO;
+import com.google.common.cache.LoadingCache;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -19,6 +24,8 @@ 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.math.BigDecimal;
 import java.util.List;
 import java.util.ArrayList;
 import org.springframework.transaction.annotation.Transactional;
@@ -35,11 +42,18 @@ import com.dayou.enums.BatchTaskTypeEnum;
 @Service
 public class ItemBrokerageTechnicistDeductionServiceImpl extends ServiceImpl<ItemBrokerageTechnicistDeductionMapper, ItemBrokerageTechnicistDeduction> implements IItemBrokerageTechnicistDeductionService {
 
+    @Autowired
+    private ItemBrokerageTechnicistDeductionMapper itemBrokerageTechnicistDeductionMapper;
+
+    @Autowired
+    private LoadingCache<Long,BigDecimal> baseAmountsCache;
 
     @Override
     @SuppressWarnings("unchecked")
-    public Page<ItemBrokerageTechnicistDeduction> selectPage(Page page,ItemBrokerageTechnicistDeduction itemBrokerageTechnicistDeduction){
-        return this.page(page, new QueryWrapper<ItemBrokerageTechnicistDeduction>(itemBrokerageTechnicistDeduction));
+    public Page<TechDeductionVO> selectPage(Page page, TechDeductionVO techDeductionVO){
+        techDeductionVO.setUserId(LoginContext.getUserId());
+        Page<TechDeductionVO> xPage = itemBrokerageTechnicistDeductionMapper.xPage(page,techDeductionVO);
+        return xPage;
     }
 
 
@@ -63,4 +77,16 @@ public class ItemBrokerageTechnicistDeductionServiceImpl extends ServiceImpl<Ite
         //逻辑删除
         return this.removeById(id);
     }
+
+    @Override
+    public DeductionTechStatVO stat() {
+        Long userId = LoginContext.getUserId();
+        BigDecimal poolResidueAmount =  itemBrokerageTechnicistDeductionMapper.poolResidueAmount(userId);
+        DeductionTechStatVO vo = DeductionTechStatVO
+                .builder()
+                .poolResidueAmount(poolResidueAmount)
+                .defaultBrokerageAmount(baseAmountsCache.getIfPresent(userId))
+                .build();
+        return vo;
+    }
 }

+ 16 - 2
service/src/main/java/com/dayou/service/impl/ItemBrokerageTechnicistServiceImpl.java

@@ -4,6 +4,9 @@ import com.dayou.entity.ItemBrokerageTechnicist;
 import com.dayou.mapper.ItemBrokerageTechnicistMapper;
 import com.dayou.service.IItemBrokerageTechnicistService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.utils.LoginContext;
+import com.dayou.vo.DeductionTechItemVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -35,11 +38,15 @@ import com.dayou.enums.BatchTaskTypeEnum;
 @Service
 public class ItemBrokerageTechnicistServiceImpl extends ServiceImpl<ItemBrokerageTechnicistMapper, ItemBrokerageTechnicist> implements IItemBrokerageTechnicistService {
 
+    @Autowired
+    private ItemBrokerageTechnicistMapper itemBrokerageTechnicistMapper;
 
     @Override
     @SuppressWarnings("unchecked")
-    public Page<ItemBrokerageTechnicist> selectPage(Page page,ItemBrokerageTechnicist itemBrokerageTechnicist){
-        return this.page(page, new QueryWrapper<ItemBrokerageTechnicist>(itemBrokerageTechnicist));
+    public Page<DeductionTechItemVO> selectPage(Page page, DeductionTechItemVO deductionTechItemVO){
+        deductionTechItemVO.setUserId(LoginContext.getUserId());
+        Page<DeductionTechItemVO> xPage = itemBrokerageTechnicistMapper.xPage(page,deductionTechItemVO);
+        return xPage;
     }
 
 
@@ -63,4 +70,11 @@ public class ItemBrokerageTechnicistServiceImpl extends ServiceImpl<ItemBrokerag
         //逻辑删除
         return this.removeById(id);
     }
+
+    @Override
+    public Page<DeductionTechItemVO> oncePage(Page page, DeductionTechItemVO deductionTechItemVO) {
+        deductionTechItemVO.setUserId(LoginContext.getUserId());
+        Page<DeductionTechItemVO> xPage = itemBrokerageTechnicistMapper.oncePage(page,deductionTechItemVO);
+        return xPage;
+    }
 }