瀏覽代碼

项目提成业务代码

wucl 2 年之前
父節點
當前提交
a816d914a2
共有 27 個文件被更改,包括 457 次插入41 次删除
  1. 3 2
      biz-base/src/main/java/com/dayou/controller/ItemBrokerageDetailController.java
  2. 12 0
      biz-base/src/main/java/com/dayou/controller/ItemBrokerageGeneralController.java
  3. 3 2
      biz-base/src/main/java/com/dayou/controller/ItemBrokerageSequenceController.java
  4. 3 2
      biz-base/src/main/java/com/dayou/controller/ItemBrokerageSequenceDetailController.java
  5. 4 0
      dao/src/main/java/com/dayou/mapper/ItemBrokerageDetailMapper.java
  6. 4 0
      dao/src/main/java/com/dayou/mapper/ItemBrokerageSequenceDetailMapper.java
  7. 4 0
      dao/src/main/java/com/dayou/mapper/ItemBrokerageSequenceMapper.java
  8. 32 0
      dao/src/main/resources/mapper/ItemBrokerageDetailMapper.xml
  9. 29 4
      dao/src/main/resources/mapper/ItemBrokerageGeneralMapper.xml
  10. 34 0
      dao/src/main/resources/mapper/ItemBrokerageSequenceDetailMapper.xml
  11. 38 1
      dao/src/main/resources/mapper/ItemBrokerageSequenceMapper.xml
  12. 5 0
      domain/src/main/java/com/dayou/common/Constants.java
  13. 29 0
      domain/src/main/java/com/dayou/vo/BrokerageDetailVO.java
  14. 37 11
      domain/src/main/java/com/dayou/vo/BrokerageGeneralVO.java
  15. 86 0
      domain/src/main/java/com/dayou/vo/BrokerageSequenceDetailVO.java
  16. 82 0
      domain/src/main/java/com/dayou/vo/BrokerageSequenceVO.java
  17. 1 1
      service/src/main/java/com/dayou/brokerage/constants/BrokerageMsg.java
  18. 5 3
      service/src/main/java/com/dayou/brokerage/handler/LandMarketerBrokerageHandler.java
  19. 9 6
      service/src/main/java/com/dayou/brokerage/handler/LandNonMarketerBrokerageHandler.java
  20. 2 1
      service/src/main/java/com/dayou/service/IItemBrokerageDetailService.java
  21. 2 0
      service/src/main/java/com/dayou/service/IItemBrokerageGeneralService.java
  22. 2 1
      service/src/main/java/com/dayou/service/IItemBrokerageSequenceDetailService.java
  23. 2 1
      service/src/main/java/com/dayou/service/IItemBrokerageSequenceService.java
  24. 7 2
      service/src/main/java/com/dayou/service/impl/ItemBrokerageDetailServiceImpl.java
  25. 7 0
      service/src/main/java/com/dayou/service/impl/ItemBrokerageGeneralServiceImpl.java
  26. 7 2
      service/src/main/java/com/dayou/service/impl/ItemBrokerageSequenceDetailServiceImpl.java
  27. 8 2
      service/src/main/java/com/dayou/service/impl/ItemBrokerageSequenceServiceImpl.java

+ 3 - 2
biz-base/src/main/java/com/dayou/controller/ItemBrokerageDetailController.java

@@ -1,5 +1,6 @@
 package com.dayou.controller;
 
+import com.dayou.vo.BrokerageDetailVO;
 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 ItemBrokerageDetailController extends BaseController {
     * 项目提成明细列表
     */
     @GetMapping("")
-    public RestResponse<Page<ItemBrokerageDetail>> page(ItemBrokerageDetail itemBrokerageDetail, Page page){
-        Page<ItemBrokerageDetail> pages=itemBrokerageDetailService.selectPage(page,itemBrokerageDetail);
+    public RestResponse<Page<BrokerageDetailVO>> page(BrokerageDetailVO itemBrokerageDetailVO, Page page){
+        Page<BrokerageDetailVO> pages=itemBrokerageDetailService.selectPage(page,itemBrokerageDetailVO);
         return RestResponse.data(pages);
     }
 

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

@@ -1,6 +1,7 @@
 package com.dayou.controller;
 
 import com.dayou.vo.BrokerageGeneralVO;
+import org.apache.ibatis.annotations.Param;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -79,6 +80,17 @@ public class ItemBrokerageGeneralController extends BaseController {
         return RestResponse.data(ret);
     }
 
+    /**
+     * 客户经理预提状态修改
+     * @param id
+     * @param marketerStatus
+     * @return
+     */
+    @GetMapping("/marketer/status")
+    public RestResponse<Boolean> updateMarketerStatus(Long id,Boolean marketerStatus){
+        Boolean result = itemBrokerageGeneralService.updateMarketerStatus(id,marketerStatus);
+        return RestResponse.data(result);
+    }
 
 }
 

+ 3 - 2
biz-base/src/main/java/com/dayou/controller/ItemBrokerageSequenceController.java

@@ -1,5 +1,6 @@
 package com.dayou.controller;
 
+import com.dayou.vo.BrokerageSequenceVO;
 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 ItemBrokerageSequenceController extends BaseController {
     * 项目提成流水列表
     */
     @GetMapping("")
-    public RestResponse<Page<ItemBrokerageSequence>> page(ItemBrokerageSequence itemBrokerageSequence, Page page){
-        Page<ItemBrokerageSequence> pages=itemBrokerageSequenceService.selectPage(page,itemBrokerageSequence);
+    public RestResponse<Page<BrokerageSequenceVO>> page(BrokerageSequenceVO brokerageSequenceVO, Page page){
+        Page<BrokerageSequenceVO> pages=itemBrokerageSequenceService.selectPage(page,brokerageSequenceVO);
         return RestResponse.data(pages);
     }
 

+ 3 - 2
biz-base/src/main/java/com/dayou/controller/ItemBrokerageSequenceDetailController.java

@@ -1,5 +1,6 @@
 package com.dayou.controller;
 
+import com.dayou.vo.BrokerageSequenceDetailVO;
 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 ItemBrokerageSequenceDetailController extends BaseController {
     * 提成流水明细表列表
     */
     @GetMapping("")
-    public RestResponse<Page<ItemBrokerageSequenceDetail>> page(ItemBrokerageSequenceDetail itemBrokerageSequenceDetail, Page page){
-        Page<ItemBrokerageSequenceDetail> pages=itemBrokerageSequenceDetailService.selectPage(page,itemBrokerageSequenceDetail);
+    public RestResponse<Page<BrokerageSequenceDetailVO>> page(BrokerageSequenceDetailVO brokerageSequenceDetailVO, Page page){
+        Page<BrokerageSequenceDetailVO> pages=itemBrokerageSequenceDetailService.selectPage(page,brokerageSequenceDetailVO);
         return RestResponse.data(pages);
     }
 

+ 4 - 0
dao/src/main/java/com/dayou/mapper/ItemBrokerageDetailMapper.java

@@ -1,7 +1,10 @@
 package com.dayou.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.entity.ItemBrokerageDetail;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.BrokerageDetailVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.dayou.dao.CustomBaseMapper;
  */
 public interface ItemBrokerageDetailMapper extends CustomBaseMapper<ItemBrokerageDetail> {
 
+    Page getPage(Page page, @Param("vo") BrokerageDetailVO brokerageDetailVO);
 }

+ 4 - 0
dao/src/main/java/com/dayou/mapper/ItemBrokerageSequenceDetailMapper.java

@@ -1,7 +1,10 @@
 package com.dayou.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.entity.ItemBrokerageSequenceDetail;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.BrokerageSequenceDetailVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.dayou.dao.CustomBaseMapper;
  */
 public interface ItemBrokerageSequenceDetailMapper extends CustomBaseMapper<ItemBrokerageSequenceDetail> {
 
+    Page<BrokerageSequenceDetailVO> xPage(Page page, @Param("vo") BrokerageSequenceDetailVO vo);
 }

+ 4 - 0
dao/src/main/java/com/dayou/mapper/ItemBrokerageSequenceMapper.java

@@ -1,7 +1,10 @@
 package com.dayou.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.entity.ItemBrokerageSequence;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.BrokerageSequenceVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.dayou.dao.CustomBaseMapper;
  */
 public interface ItemBrokerageSequenceMapper extends CustomBaseMapper<ItemBrokerageSequence> {
 
+    Page<BrokerageSequenceVO> getPage(Page page, @Param("vo") BrokerageSequenceVO vo);
 }

+ 32 - 0
dao/src/main/resources/mapper/ItemBrokerageDetailMapper.xml

@@ -27,4 +27,36 @@
         general_id, user_id, predict_amount, actual_amount, advance_amount, brokerage_rule, brokerage_mode,brokerage_stage_id
     </sql>
 
+    <select id="getPage" parameterType="com.dayou.vo.BrokerageDetailVO" resultType="com.dayou.vo.BrokerageDetailVO">
+        SELECT
+            ibd.*,
+            u.name as userName,
+            i.name as itemName,
+            i.amount,
+            s.name as stageName,
+        (case ibd.brokerage_rule when 'LAND_MARKETER_RULE' then '市场人员'  when 'LAND_OTHER_RULE' then '参与人员' end) as userType
+        FROM
+            item_brokerage_detail ibd
+                LEFT JOIN item_brokerage_general ibg ON ibg.id = ibd.general_id
+                LEFT JOIN item i ON i.id = ibg.item_id
+                LEFT JOIN user u ON u.id = ibd.user_id
+                LEFT JOIN item_stage s on s.id = ibd.brokerage_stage_id
+        where ibd.deleted = 0 and ibg.deleted = 0 and i.deleted = 0
+    <if test="vo!=null and vo.generalId!=null">
+        and ibd.general_id = #{vo.generalId}
+    </if>
+    <if test="vo!=null and vo.userName!=null and vo.userName!='' ">
+        and u.name like concat ('%',#{vo.userName},'%')
+    </if>
+    <if test="vo!=null and vo.itemName!=null and vo.itemName!='' ">
+        and i.name like concat ('%',#{vo.itemName},'%')
+    </if>
+    <if test="vo!=null and vo.brokerageRule!=null and vo.brokerageRule!='' ">
+        and ibd.brokerage_rule =  #{vo.brokerageRule}
+    </if>
+    <if test="vo!=null and vo.brokerageMode!=null and vo.brokerageMode!='' ">
+        and ibd.brokerage_mode =  #{vo.brokerageMode}
+    </if>
+        order by ibd.id DESC
+    </select>
 </mapper>

+ 29 - 4
dao/src/main/resources/mapper/ItemBrokerageGeneralMapper.xml

@@ -34,12 +34,20 @@
 
     <select id="aheadPage" parameterType="com.dayou.vo.BrokerageGeneralVO" resultType="com.dayou.vo.BrokerageGeneralVO">
         SELECT
+            ibg.id,
             ibg.marketer_brokerage_amount,
-            ibg.marketer_advance_brokerage_able,
+            ibg.marketer_advance_brokerage_able as marketerAdvanceBrokerageAble,
             ibg.brokerage_rate,
+            ibg.marketer_advance_brokerage_done,
+            ibg.participant_predict_brokerage_amount,
+            ibg.participant_actual_brokerage_amount,
+            ibg.brokerage_predict_amount,
+            ibg.brokerage_actual_amount,
+            ibg.participant_status,
+            ibg.marketer_status,
             dd1.name AS cateName,
             dd2.name AS businessSourceName,
-            i.id,
+            i.id as itemId,
             i.deleted,
             i.business_no,
             i.oa_no,
@@ -54,11 +62,28 @@
                 LEFT JOIN dict_data dd1 ON i.cate = dd1.id
                 LEFT JOIN dict_data dd2 ON i.business_source = dd2.id
         WHERE
-            ibg.marketer_advance_brokerage_able = 1
-          AND i.deleted = 0
+           i.deleted = 0
           AND ibg.deleted = 0
           AND dd1.deleted = 0
           AND dd2.deleted = 0
+        <if test="itemBrokerageGeneral!=null and itemBrokerageGeneral.marketerAdvanceBrokerageAble!=null">
+            and ibg.marketer_advance_brokerage_able = #{itemBrokerageGeneral.marketerAdvanceBrokerageAble}
+        </if>
+        <if test="itemBrokerageGeneral!=null and itemBrokerageGeneral.name!=null and itemBrokerageGeneral.name!='' ">
+            and i.name like concat ('%',#{itemBrokerageGeneral.name},'%')
+        </if>
+        <if test="itemBrokerageGeneral!=null and itemBrokerageGeneral.businessNo!=null and itemBrokerageGeneral.businessNo!='' ">
+            and i.business_no like concat ('%',#{itemBrokerageGeneral.businessNo},'%')
+        </if>
+        <if test="itemBrokerageGeneral!=null and itemBrokerageGeneral.clientManager!=null and itemBrokerageGeneral.clientManager!='' ">
+            and i.client_manager like concat ('%',#{itemBrokerageGeneral.clientManager},'%')
+        </if>
+        <if test="itemBrokerageGeneral!=null and itemBrokerageGeneral.participantStatus!=null and itemBrokerageGeneral.participantStatus!='' ">
+            and ibg.participant_status = #{itemBrokerageGeneral.participantStatus}
+        </if>
+        <if test="itemBrokerageGeneral!=null and itemBrokerageGeneral.marketerStatus!=null and itemBrokerageGeneral.marketerStatus!='' ">
+            and ibg.marketer_status=#{itemBrokerageGeneral.marketerStatus}
+        </if>
         ORDER BY
             ibg.id DESC
     </select>

+ 34 - 0
dao/src/main/resources/mapper/ItemBrokerageSequenceDetailMapper.xml

@@ -23,4 +23,38 @@
         brokerage_detail_id, sequence_id, brokerage_amount, brokerage_cate
     </sql>
 
+    <select id="xPage" parameterType="com.dayou.vo.BrokerageSequenceDetailVO" resultType="com.dayou.vo.BrokerageSequenceDetailVO">
+        SELECT
+            ibsd.*,
+            u.NAME AS userName,
+            ibd.predict_amount,
+            ibd.brokerage_rule,
+            ibd.brokerage_mode ,
+            s.name as stageName,
+            i.name as itemName
+        FROM
+            item_brokerage_sequence_detail ibsd
+                LEFT JOIN item_brokerage_detail ibd ON ibd.id = ibsd.brokerage_detail_id
+                LEFT JOIN user u ON u.id = ibsd.user_id
+                LEFT JOIN item_stage s ON s.id = ibd.brokerage_stage_id
+                left join item_brokerage_general g on g.id = ibd.general_id
+                left join item i on i.id = g.item_id
+        WHERE
+            ibsd.deleted = 0
+          AND ibd.deleted = 0
+          AND u.deleted = 0
+          and g.deleted = 0
+          and i.deleted = 0
+        <if test="vo!=null and vo.userName!=null and vo.userName!='' ">
+            and u.name like concat ('%',#{vo.userName},'%')
+        </if>
+        <if test="vo!=null and vo.itemName!=null and vo.itemName!='' ">
+            and i.name like concat ('%',#{vo.itemName},'%')
+        </if>
+        <if test="vo!=null and vo.brokerageCate!=null and vo.brokerageCate!='' ">
+            and ibsd.brokerage_cate = #{vo.brokerageCate}
+        </if>
+        order by ibsd.id DESC
+    </select>
+
 </mapper>

+ 38 - 1
dao/src/main/resources/mapper/ItemBrokerageSequenceMapper.xml

@@ -3,15 +3,18 @@
 <mapper namespace="com.dayou.mapper.ItemBrokerageSequenceMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.dayou.entity.ItemBrokerageSequence">
+    <resultMap id="BaseResultMap" type="com.dayou.vo.BrokerageSequenceVO">
         <result column="id" property="id" />
         <result column="deleted" property="deleted" />
         <result column="created" property="created" />
         <result column="modified" property="modified" />
         <result column="user_id" property="userId" />
+        <result column="userName" property="userName" />
         <result column="brokerage_amount" property="brokerageAmount" />
         <result column="embody" property="embody" />
         <result column="remark" property="remark" />
+        <result column="cate" property="cate"/>
+        <collection property="details" ofType="com.dayou.vo.BrokerageSequenceDetailVO" select="selectSequenceDetail" column="id"/>
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -23,4 +26,38 @@
         user_id, brokerage_amount, embody, remark
     </sql>
 
+    <select id="getPage" parameterType="com.dayou.vo.BrokerageSequenceVO" resultMap="BaseResultMap">
+        select ibs.*,u.name as userName from item_brokerage_sequence ibs left join user u on u.id = ibs.user_id
+        where u.deleted = 0 and ibs.deleted = 0
+        <if test="vo!=null and vo.userName!=null and vo.userName!='' ">
+            and u.name like concat ('%',#{vo.userName},'%')
+        </if>
+        <if test="vo!=null and vo.cate!=null and vo.cate!='' ">
+            and ibs.cate =#{vo.cate}
+        </if>
+        order by ibs.id DESC
+    </select>
+
+    <select id="selectSequenceDetail" parameterType="java.lang.Long" resultType="com.dayou.vo.BrokerageSequenceDetailVO">
+        SELECT
+            ibsd.*,
+            ibd.predict_amount,
+            ibd.brokerage_rule,
+            ibd.brokerage_mode ,
+            s.name as stageName,
+            i.name as itemName
+        FROM
+            item_brokerage_sequence_detail ibsd
+                LEFT JOIN item_brokerage_detail ibd ON ibd.id = ibsd.brokerage_detail_id
+                LEFT JOIN item_stage s ON s.id = ibd.brokerage_stage_id
+                left join item_brokerage_general g on g.id = ibd.general_id
+                left join item i on i.id = g.item_id
+        WHERE
+            ibsd.deleted = 0
+          AND ibd.deleted = 0
+          and g.deleted = 0
+          and i.deleted = 0
+            and ibsd.sequence_id = #{id}
+    </select>
+
 </mapper>

+ 5 - 0
domain/src/main/java/com/dayou/common/Constants.java

@@ -1,4 +1,7 @@
 package com.dayou.common;
+
+import java.math.BigDecimal;
+
 /**
  * 类说明:全局常量
  *
@@ -71,4 +74,6 @@ public interface Constants {
     String MERGE_SYMBOL = "&";
 
     String MATH_REGULAR = "^[0-9]+(.[0-9]+)?$";
+
+    BigDecimal HUNDRED = BigDecimal.TEN.multiply(BigDecimal.TEN);
 }

+ 29 - 0
domain/src/main/java/com/dayou/vo/BrokerageDetailVO.java

@@ -0,0 +1,29 @@
+package com.dayou.vo;
+
+import com.dayou.entity.ItemBrokerageDetail;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/20
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class BrokerageDetailVO extends ItemBrokerageDetail {
+
+
+    private String userName;
+
+    private String itemName;
+
+    private String userType;
+
+    private BigDecimal amount;
+
+    private String stageName;
+
+}

+ 37 - 11
domain/src/main/java/com/dayou/vo/BrokerageGeneralVO.java

@@ -1,13 +1,10 @@
 package com.dayou.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.dayou.entity.ItemBrokerageGeneral;
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;
 
 
 import java.math.BigDecimal;
-import java.util.Date;
 
 /**
  * 类说明:
@@ -18,6 +15,13 @@ import java.util.Date;
  */
 @Data
 public class BrokerageGeneralVO {
+
+    private BigDecimal amount;
+
+    private Long id;
+
+    private Boolean deleted;
+
     /**
      * 项目id
      */
@@ -83,18 +87,40 @@ public class BrokerageGeneralVO {
     private String clientManager;
 
     /**
-     * 合同金额
+     * 客户经理已预提
      */
-    private BigDecimal amount;
+    private Boolean marketerAdvanceBrokerageDone;
 
-    private Long id;
+    /**
+     * 参与人预计提成总金额
+     */
+    @TableField("participant_predict_brokerage_amount")
+    private BigDecimal participantPredictBrokerageAmount;
+
+    /**
+     * 参与人实际提成总金额
+     */
+    @TableField("participant_actual_brokerage_amount")
+    private BigDecimal participantActualBrokerageAmount;
 
+    /**
+     * 参与人预提中
+     */
+    private Boolean participantAdvanceStatus;
 
     /**
-     * 标志位
-     *
-     * @ignore
+     * 预计提成总金额
      */
-    @JsonIgnore
-    private Boolean deleted;
+    private BigDecimal brokeragePredictAmount;
+
+    /**
+     * 已提成总金额
+     */
+    private BigDecimal brokerageActualAmount;
+
+    /**
+     * 参与人提成状态
+     */
+    private String participantStatus;
+
 }

+ 86 - 0
domain/src/main/java/com/dayou/vo/BrokerageSequenceDetailVO.java

@@ -0,0 +1,86 @@
+package com.dayou.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/20
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class BrokerageSequenceDetailVO {
+
+    /**
+     * 结算详情id
+     */
+    private Long id;
+
+    /**
+     * 项目名称
+     */
+    private String itemName;
+    /**
+     * 阶段名称
+     */
+    private String stageName;
+
+    /**
+     * 人员名称
+     */
+    private String userName;
+
+
+    /**
+     * 结算金额
+     */
+    private BigDecimal brokerageAmount;
+
+    /**
+     * 结算类型
+     */
+    private String brokerageCate;
+
+    /**
+     * 预计提成金额
+     */
+    private BigDecimal predictAmount;
+
+    /**
+     * 提成规则
+     */
+    private String brokerageRule;
+
+    /**
+     * 提成方式
+     */
+    private String brokerageMode;
+
+    /**
+     * 结算时间
+     */
+    private Date created;
+
+
+    /**
+     * 修改时间
+     *
+     * @ignore
+     */
+    private Date modified;
+
+    /**
+     * 标志位
+     *
+     * @ignore
+     */
+    private Boolean deleted;
+
+
+}

+ 82 - 0
domain/src/main/java/com/dayou/vo/BrokerageSequenceVO.java

@@ -0,0 +1,82 @@
+package com.dayou.vo;
+
+import com.dayou.annotation.ExportCell;
+import com.dayou.annotation.ImportCell;
+import com.dayou.entity.ItemBrokerageSequence;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/20
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class BrokerageSequenceVO  {
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 人员姓名
+     */
+    private String userName;
+
+    /**
+     * 提成总金额
+     */
+    private BigDecimal brokerageAmount;
+
+    /**
+     * 提成体现
+     */
+    private String embody;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 结算类型(项目结算,默认预提)
+     */
+    private String cate;
+
+    /**
+     * 结算时间
+     */
+    private Date created;
+
+    /**
+     * 结算详情
+     */
+    private List<BrokerageSequenceDetailVO> details ;
+
+    /**
+     * 修改时间
+     *
+     * @ignore
+     */
+    private Date modified;
+
+    /**
+     * 标志位
+     *
+     * @ignore
+     */
+    private Boolean deleted;
+
+
+}

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

@@ -11,7 +11,7 @@ public class BrokerageMsg {
 
     public static final String BROKERAGE_SEQUENCE_REMARK = "系统每月23日零点自动结算项目提成,您上月可结算(包含预提)项目个数:[sum]个,提成奖励预计体现在[month]月薪资中体现.";
 
-    public static final String NON_MARKETER_BASE_SEQUENCE_REMARK = "非市场人员默认提成,此提成与项目暂不挂钩.若有项目结算将固定提成抵扣.";
+    public static final String NON_MARKETER_BASE_SEQUENCE_REMARK = "非市场人员默认提成,此提成与项目暂不挂钩.若有项目结算将固定提成抵扣.";
 
     public static final String BROKERAGE_SEQUENCE_EMBODY = "[year-month]薪资";
 }

+ 5 - 3
service/src/main/java/com/dayou/brokerage/handler/LandMarketerBrokerageHandler.java

@@ -21,6 +21,8 @@ import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.stream.Collectors;
 
+import static com.dayou.common.Constants.HUNDRED;
+
 /**
  * 类说明:土地规划部市场人员提成计算处理器
  *
@@ -47,7 +49,7 @@ public class LandMarketerBrokerageHandler extends BrokerageCalculateSupport impl
             bo.setRate(ratio);
             if (ratio !=null){
                 checkItemBrokerageStatus(bo);
-                bo.setPredictAmount(bo.getAmount().multiply(ratio));
+                bo.setPredictAmount(bo.getAmount().multiply(ratio.divide(HUNDRED)));
                 bo.setBrokerageMode(BrokerageMode.PERSONAL.getCode());
                 bo.setActualAmount(actualAmount(bo.getPredictAmount()));
                 bo.setMarketerAdvanceBrokerageAble(checkMarketerPredictBrokerage(bo));
@@ -69,7 +71,7 @@ public class LandMarketerBrokerageHandler extends BrokerageCalculateSupport impl
     @Override
     public BigDecimal aheadAmount(BigDecimal predictAmount){
         try {
-            BigDecimal aheadAmount = predictAmount.multiply(globalConfigCache.get(GlobalConfigEnum.Finance.MARKETER_BROKERAGE_PERCENTAGE.getCode()));
+            BigDecimal aheadAmount = predictAmount.multiply(globalConfigCache.get(GlobalConfigEnum.Finance.MARKETER_BROKERAGE_PERCENTAGE.getCode()).divide(HUNDRED));
             return aheadAmount;
         } catch (ExecutionException e) {
             log.error("获取提成缓存数据失败");
@@ -89,7 +91,7 @@ public class LandMarketerBrokerageHandler extends BrokerageCalculateSupport impl
                 itemBrokerageDetails = leaderRatioBOSet.stream().map(x -> {
                     ItemBrokerageDetail itemBrokerageDetail = new ItemBrokerageDetail();
                     itemBrokerageDetail.setGeneralId(bo.getGeneralId());
-                    itemBrokerageDetail.setPredictAmount(bo.getAmount().multiply(ratio).multiply(x.getRatio()));
+                    itemBrokerageDetail.setPredictAmount(bo.getAmount().multiply(ratio.divide(HUNDRED)).multiply(x.getRatio().divide(HUNDRED)));
                     itemBrokerageDetail.setUserId(x.getUserId());
                     itemBrokerageDetail.setAheadAmount(BigDecimal.ZERO);
                     itemBrokerageDetail.setActualAmount(actualAmount(itemBrokerageDetail.getPredictAmount()));

+ 9 - 6
service/src/main/java/com/dayou/brokerage/handler/LandNonMarketerBrokerageHandler.java

@@ -24,6 +24,8 @@ import java.util.Map;
 import java.util.concurrent.ExecutionException;
 import java.util.stream.Collectors;
 
+import static com.dayou.common.Constants.HUNDRED;
+
 /**
  * 类说明:土地规划部 非 市场人员提成计算处理器
  *
@@ -53,11 +55,11 @@ public class LandNonMarketerBrokerageHandler extends BrokerageCalculateSupport i
                 //合同金额
                 BigDecimal predictAmount = brokerageDetailBO.getAmount()
                         //参与项目提成总比例
-                        .multiply(globalConfigCache.get(GlobalConfigEnum.Finance.PARTICIPANT_BROKERAGE_PERCENTAGE.getCode()))
+                        .multiply(globalConfigCache.get(GlobalConfigEnum.Finance.PARTICIPANT_BROKERAGE_PERCENTAGE.getCode())).divide(HUNDRED)
                         //阶段权重
-                        .multiply(brokerageDetailBO.getStageWeight())
+                        .multiply(brokerageDetailBO.getStageWeight()).divide(HUNDRED)
                         //参与人权重
-                        .multiply(brokerageDetailBO.getParticipantWeight());
+                        .multiply(brokerageDetailBO.getParticipantWeight()).divide(HUNDRED);
                 brokerageDetailBO.setPredictAmount(predictAmount.setScale(2,BigDecimal.ROUND_HALF_UP));
                 BeanUtil.copyProperties(brokerageDetailBO,itemBrokerageDetail);
             }
@@ -72,7 +74,8 @@ public class LandNonMarketerBrokerageHandler extends BrokerageCalculateSupport i
     @Override
     public BigDecimal aheadAmount(Long userId){
         try {
-            BigDecimal baseAheadAmount = baseAmountsCache.get(userId);
+            BigDecimal baseAheadAmount = baseAmountsCache.get(userId)==null?
+                    globalConfigCache.getIfPresent(GlobalConfigEnum.Finance.NON_MARKETER_MONTH_BROKERAGE.getCode()):baseAmountsCache.get(userId);
             return baseAheadAmount;
         } catch (ExecutionException e) {
             log.error("获取提成缓存数据失败");
@@ -90,9 +93,9 @@ public class LandNonMarketerBrokerageHandler extends BrokerageCalculateSupport i
                 if (detail.getKey().equals(stage.getId())){
                     List<ItemBrokerageDetail> value = detail.getValue();
                     for (ItemBrokerageDetail brokerage :value){
-                        brokerage.setActualAmount(brokerage.getPredictAmount().multiply(participantSettleDTO.getWeight()));
+                        brokerage.setActualAmount(brokerage.getPredictAmount().multiply(participantSettleDTO.getWeight()).divide(HUNDRED));
                         if (stage.getOverdue()){
-                            brokerage.setActualAmount(brokerage.getActualAmount().multiply(stage.getCoefficient()));
+                            brokerage.setActualAmount(brokerage.getActualAmount().multiply(stage.getCoefficient()).divide(HUNDRED));
                         }
                     }
                 }

+ 2 - 1
service/src/main/java/com/dayou/service/IItemBrokerageDetailService.java

@@ -4,6 +4,7 @@ import com.dayou.entity.ItemBrokerageDetail;
 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.BrokerageDetailVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
 /**
@@ -16,7 +17,7 @@ import org.springframework.web.multipart.MultipartFile;
  */
 public interface IItemBrokerageDetailService extends IService<ItemBrokerageDetail> {
 
-        Page<ItemBrokerageDetail> selectPage(Page page,ItemBrokerageDetail itemBrokerageDetail);
+        Page<BrokerageDetailVO> selectPage(Page page, BrokerageDetailVO itemBrokerageDetailVO);
 
         ItemBrokerageDetail detail(Long id);
 

+ 2 - 0
service/src/main/java/com/dayou/service/IItemBrokerageGeneralService.java

@@ -52,4 +52,6 @@ public interface IItemBrokerageGeneralService extends IService<ItemBrokerageGene
     void settleMarketerBrokerage(PaymentCollection payment);
 
     List<ItemBrokerageGeneral> computedAbleList();
+
+    Boolean updateMarketerStatus(Long id, Boolean marketerStatus);
 }

+ 2 - 1
service/src/main/java/com/dayou/service/IItemBrokerageSequenceDetailService.java

@@ -3,6 +3,7 @@ import com.dayou.entity.ItemBrokerageSequenceDetail;
 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.BrokerageSequenceDetailVO;
 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 IItemBrokerageSequenceDetailService extends IService<ItemBrokerageSequenceDetail> {
 
-        Page<ItemBrokerageSequenceDetail> selectPage(Page page,ItemBrokerageSequenceDetail itemBrokerageSequenceDetail);
+        Page<BrokerageSequenceDetailVO> selectPage(Page page, BrokerageSequenceDetailVO brokerageSequenceDetailVO);
 
         ItemBrokerageSequenceDetail detail(Long id);
 

+ 2 - 1
service/src/main/java/com/dayou/service/IItemBrokerageSequenceService.java

@@ -4,6 +4,7 @@ import com.dayou.entity.ItemBrokerageSequence;
 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.BrokerageSequenceVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -19,7 +20,7 @@ import java.util.List;
  */
 public interface IItemBrokerageSequenceService extends IService<ItemBrokerageSequence> {
 
-        Page<ItemBrokerageSequence> selectPage(Page page,ItemBrokerageSequence itemBrokerageSequence);
+        Page<BrokerageSequenceVO> selectPage(Page page, BrokerageSequenceVO brokerageSequenceVO);
 
         ItemBrokerageSequence detail(Long id);
 

+ 7 - 2
service/src/main/java/com/dayou/service/impl/ItemBrokerageDetailServiceImpl.java

@@ -10,6 +10,7 @@ import com.dayou.entity.ItemBrokerageDetail;
 import com.dayou.mapper.ItemBrokerageDetailMapper;
 import com.dayou.service.IItemBrokerageDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.vo.BrokerageDetailVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -30,10 +31,14 @@ public class ItemBrokerageDetailServiceImpl extends ServiceImpl<ItemBrokerageDet
     @Autowired
     private BrokerageCalculateSupport brokerageCalculateSupport;
 
+    @Autowired
+    private ItemBrokerageDetailMapper itemBrokerageDetailMapper;
+
     @Override
     @SuppressWarnings("unchecked")
-    public Page<ItemBrokerageDetail> selectPage(Page page,ItemBrokerageDetail itemBrokerageDetail){
-        return this.page(page, new QueryWrapper<ItemBrokerageDetail>(itemBrokerageDetail));
+    public Page<BrokerageDetailVO> selectPage(Page page, BrokerageDetailVO brokerageDetailVO){
+        Page xPage = itemBrokerageDetailMapper.getPage(page,brokerageDetailVO);
+        return xPage;
     }
 
 

+ 7 - 0
service/src/main/java/com/dayou/service/impl/ItemBrokerageGeneralServiceImpl.java

@@ -1,5 +1,6 @@
 package com.dayou.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.dayou.bo.BrokerageDetailBO;
 import com.dayou.bo.LeaderRatioBO;
@@ -335,6 +336,12 @@ public class ItemBrokerageGeneralServiceImpl extends ServiceImpl<ItemBrokerageGe
         return ableSettleList;
     }
 
+    @Override
+    public Boolean updateMarketerStatus(Long id, Boolean marketerStatus) {
+        boolean update = this.update(new LambdaUpdateWrapper<ItemBrokerageGeneral>().eq(BaseEntity::getId, id).set(ItemBrokerageGeneral::getMarketerAdvanceBrokerageAble, marketerStatus));
+        return update;
+    }
+
     /**
      * 获取客户经理年回款目标
      * @param userId

+ 7 - 2
service/src/main/java/com/dayou/service/impl/ItemBrokerageSequenceDetailServiceImpl.java

@@ -4,6 +4,8 @@ import com.dayou.entity.ItemBrokerageSequenceDetail;
 import com.dayou.mapper.ItemBrokerageSequenceDetailMapper;
 import com.dayou.service.IItemBrokerageSequenceDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.vo.BrokerageSequenceDetailVO;
+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;
@@ -36,10 +38,13 @@ import com.dayou.enums.BatchTaskTypeEnum;
 public class ItemBrokerageSequenceDetailServiceImpl extends ServiceImpl<ItemBrokerageSequenceDetailMapper, ItemBrokerageSequenceDetail> implements IItemBrokerageSequenceDetailService {
 
 
+    @Autowired
+    private ItemBrokerageSequenceDetailMapper sequenceDetailMapper;
     @Override
     @SuppressWarnings("unchecked")
-    public Page<ItemBrokerageSequenceDetail> selectPage(Page page,ItemBrokerageSequenceDetail itemBrokerageSequenceDetail){
-        return this.page(page, new QueryWrapper<ItemBrokerageSequenceDetail>(itemBrokerageSequenceDetail));
+    public Page<BrokerageSequenceDetailVO> selectPage(Page page, BrokerageSequenceDetailVO brokerageSequenceDetailVO){
+        Page<BrokerageSequenceDetailVO> xPage = sequenceDetailMapper.xPage(page,brokerageSequenceDetailVO);
+        return xPage;
     }
 
 

+ 8 - 2
service/src/main/java/com/dayou/service/impl/ItemBrokerageSequenceServiceImpl.java

@@ -13,6 +13,8 @@ import com.dayou.mapper.ItemBrokerageSequenceMapper;
 import com.dayou.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.utils.DateUtils;
+import com.dayou.vo.BrokerageSequenceDetailVO;
+import com.dayou.vo.BrokerageSequenceVO;
 import com.google.common.cache.Cache;
 import com.google.common.cache.LoadingCache;
 import lombok.extern.slf4j.Slf4j;
@@ -56,10 +58,14 @@ public class ItemBrokerageSequenceServiceImpl extends ServiceImpl<ItemBrokerageS
     @Autowired
     private LoadingCache<Long,BigDecimal> baseAmountsCache;
 
+    @Autowired
+    private ItemBrokerageSequenceMapper brokerageSequenceMapper;
+
     @Override
     @SuppressWarnings("unchecked")
-    public Page<ItemBrokerageSequence> selectPage(Page page,ItemBrokerageSequence itemBrokerageSequence){
-        return this.page(page, new QueryWrapper<ItemBrokerageSequence>(itemBrokerageSequence));
+    public Page<BrokerageSequenceVO> selectPage(Page page, BrokerageSequenceVO itemBrokerageSequence){
+        Page<BrokerageSequenceVO> xPage = brokerageSequenceMapper.getPage(page,itemBrokerageSequence);
+        return xPage;
     }