Pārlūkot izejas kodu

1.新增按照用户所在部门查询大中型市场人员提成申报列表接口与导出接口

GouGengquan 6 mēneši atpakaļ
vecāks
revīzija
3459ef2c18

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

@@ -42,6 +42,24 @@ public class CommissionDeclareController extends BaseController {
     }
 
     /**
+     * 根据部门id查询大中型市场人员提成申报信息
+     */
+    @GetMapping("/major/market/byDepartment")
+    public RestResponse<Page<CommissionDeclareVO>> majorMarketDeclarePageByDepartment(CommissionDeclareVO commissionDeclare, Page page){
+        Page<CommissionDeclareVO> pages=commissionDeclareService.majorMarketDeclarePageByDepartment(page,commissionDeclare);
+        return RestResponse.data(pages);
+    }
+
+    /**
+     * 根据部门id查询大中型市场人员提成申报信息导出
+     */
+    @GetMapping("/major/market/byDepartment/export")
+    public void majorMarketDeclarePageByDepartmentExport(CommissionDeclareVO commissionDeclare, HttpServletResponse response) throws IOException {
+        List<CommissionDeclareVO> result = commissionDeclareService.majorMarketDeclarePageByDepartmentExport(commissionDeclare);
+        exportPlus(response,"市场部门提成申报",result, CommissionDeclareVO.class);
+    }
+
+    /**
      * 大中型评估人员提成申报列表
      */
     @GetMapping("/major/evaluate")
@@ -51,7 +69,7 @@ public class CommissionDeclareController extends BaseController {
     }
 
     /**
-     * 根据部门id查询大中型提成申报信息
+     * 根据部门id查询大中型评估人员提成申报信息
      */
     @GetMapping("/major/evaluate/byDepartment")
     public RestResponse<Page<CommissionDeclareVO>> majorEvaluateDeclarePageByDepartment(CommissionDeclareVO commissionDeclare, Page page){
@@ -60,12 +78,12 @@ public class CommissionDeclareController extends BaseController {
     }
 
     /**
-     * 根据部门id查询大中型提成申报信息导出
+     * 根据部门id查询大中型评估人员提成申报信息导出
      */
     @GetMapping("/major/evaluate/byDepartment/export")
     public void majorEvaluateDeclarePageByDepartmentExport(CommissionDeclareVO commissionDeclare, HttpServletResponse response) throws IOException {
         List<CommissionDeclareVO> result = commissionDeclareService.majorEvaluateDeclarePageByDepartmentExport(commissionDeclare);
-        exportPlus(response,"评估人员申报信息(部门)",result, CommissionDeclareVO.class);
+        exportPlus(response,"评估部门提成申报",result, CommissionDeclareVO.class);
     }
 
     /**

+ 17 - 0
dao/src/main/java/com/dayou/mapper/CommissionDeclareMapper.java

@@ -22,6 +22,23 @@ public interface CommissionDeclareMapper extends CustomBaseMapper<CommissionDecl
 
     Page<CommissionDeclareVO> majorMarketDeclarePage(Page page, @Param("declare") CommissionDeclareVO commissionDeclare,@Param("marketUserId") Long marketUserId);
 
+    /**
+     * 根据部门id查询大中型市场人员提成申报信息
+     * @param page
+     * @param commissionDeclare
+     * @param departmentId
+     * @return
+     */
+    Page<CommissionDeclareVO> majorMarketDeclarePageByDepartment(Page page, @Param("declare")CommissionDeclareVO commissionDeclare, @Param("departmentId")Long departmentId);
+
+    /**
+     * 根据部门id查询大中型市场人员提成申报信息导出excel
+     * @param commissionDeclare
+     * @param departmentId
+     * @return
+     */
+    List<CommissionDeclareVO> majorMarketDeclarePageByDepartmentExport(@Param("declare")CommissionDeclareVO commissionDeclare, @Param("departmentId")Long departmentId);
+
     Page<CommissionDeclareVO> majorEvaluateDeclarePage(Page page, @Param("declare")CommissionDeclareVO commissionDeclare, @Param("evaluateUserId")Long currentEvaluateUserId);
 
     /**

+ 109 - 0
dao/src/main/resources/mapper/CommissionDeclareMapper.xml

@@ -123,6 +123,115 @@
         order by bus.created DESC ,bus.orderCreated DESC
     </select>
 
+    <sql id="majorMarketDeclarePageByDepartmentSql">
+        SELECT
+        (@i := @i + 1) AS id,
+        bus.*,
+        dd.NAME AS commissionType
+        FROM
+        (
+        SELECT
+        IFNULL( cd.id,( SELECT id FROM commission_declare WHERE deleted = 0 AND business_id = major.businessId AND production_id IS NULL
+        AND business_type ='COMMISSION_DECLARE_MAJOR_MARKET') ) cId,
+        IFNULL( cd.commission_rate_id,( SELECT commission_rate_id FROM commission_declare WHERE deleted = 0 AND business_id = major.businessId AND production_id IS NULL
+        AND business_type ='COMMISSION_DECLARE_MAJOR_MARKET') ) commission_rate_id,
+        IFNULL( cd.declare_result,( SELECT declare_result FROM commission_declare WHERE deleted = 0 AND business_id = major.businessId AND production_id IS NULL
+        AND business_type ='COMMISSION_DECLARE_MAJOR_MARKET') ) declare_result,
+        major.*,
+        cd.created AS cdCreated
+        FROM
+        (
+        SELECT
+        m.id AS businessId,
+        mp.id AS productionId,
+        ifnull( mp.id, m.id ) AS mId,
+        m.NAME AS orderName,
+        m.order_id,
+        m.business_object_type,
+        m.bailor_contact_name,
+        m.bailor_contact_tel,
+        m.bailor,
+        m.created AS orderCreated,
+        u.NAME AS clientManager,
+        u1.NAME AS principal,
+        cc1.NAME AS clienteleName,
+        cc2.NAME AS clienteleSubName,
+        mp.NAME,
+        mp.report_no,
+        mp.created,
+        (case mp.production when 'STATEMENT' THEN '意见书' when 'LETTER' THEN '复评函' else '报告' end ) production,
+        m.client_manager_id
+        FROM
+        (SELECT @i := 0) AS sort,
+        major m
+        LEFT JOIN ( SELECT id, NAME, major_id, report_no, created,production FROM major_production WHERE deleted = 0 ) mp ON m.id = mp.major_id
+        LEFT JOIN `user` u ON u.id = m.client_manager_id
+        LEFT JOIN `user` u1 ON u1.id = m.principal_id
+        LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_id
+        LEFT JOIN customer_company cc2 ON cc2.id = m.clientele_sub_id
+        WHERE
+        m.deleted = 0
+        ) major
+        LEFT JOIN (
+        SELECT
+        id,
+        ifnull( production_id, business_id ) AS xId,
+        commission_rate_id,
+        declare_result,
+        created
+        FROM
+        commission_declare
+        WHERE
+        deleted = 0
+        AND business_type='COMMISSION_DECLARE_MAJOR_MARKET'
+        ) cd ON major.mId = cd.xId) bus left join business_commission_rate bcr on
+        bus.commission_rate_id = bcr.id
+        LEFT JOIN dict_data dd ON dd.id = bcr.business_cate_id
+        LEFT JOIN (SELECT DISTINCT department.id, department.name, user_post.user_id FROM user_post,post,department WHERE user_post.post_id = post.id AND post.department_id = department.id AND department.`name` IN ('市场一部','市场二部','资产评估事业部')) AS department ON department.user_id = client_manager_id
+        WHERE department.id = #{departmentId}
+        <if test="declare != null and declare.startTime != null and declare.endTime!= null">
+            AND cdCreated BETWEEN #{declare.startTime} AND #{declare.endTime}
+        </if>
+        <if test="declare!=null and declare.orderId!=null and declare.orderId!=''">
+            and bus.order_id like concat ('%',#{declare.orderId},'%')
+        </if>
+        <if test="declare!=null and declare.name!=null and declare.name!=''">
+            and (bus.orderName like concat ('%',#{declare.name},'%') or bus.name like concat ('%',#{declare.name},'%') )
+        </if>
+        <if test="declare!=null and declare.reportNo!=null and declare.reportNo!=''">
+            and bus.report_no like concat ('%',#{declare.reportNo},'%')
+        </if>
+        <if test="declare!=null and declare.commissionRateId!=null ">
+            and bus.commission_rate_id = #{declare.commissionRateId}
+        </if>
+        <if test="declare!=null and declare.declareType!=null and declare.declareType==true">
+            and bus.productionId is not null
+        </if>
+        <if test="declare!=null and declare.declareType!=null and declare.declareType==false">
+            and bus.productionId is null
+        </if>
+        <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='待申报'">
+            and bus.declare_result is null
+        </if>
+        <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核中'">
+            and bus.declare_result = #{declare.declareResult}
+        </if>
+        <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核通过'">
+            and bus.declare_result = #{declare.declareResult}
+        </if>
+        <if test="declare!=null and declare.declareResult!=null and declare.declareResult=='审核拒绝'">
+            and bus.declare_result = #{declare.declareResult}
+        </if>
+        order by bus.created DESC ,bus.orderCreated DESC
+    </sql>
+
+    <select id="majorMarketDeclarePageByDepartment" resultType="com.dayou.vo.CommissionDeclareVO">
+        <include refid="majorMarketDeclarePageByDepartmentSql" />
+    </select>
+
+    <select id="majorMarketDeclarePageByDepartmentExport" resultType="com.dayou.vo.CommissionDeclareVO">
+        <include refid="majorMarketDeclarePageByDepartmentSql" />
+    </select>
 
     <select id="majorEvaluateDeclarePage" parameterType="com.dayou.vo.CommissionDeclareVO" resultType="com.dayou.vo.CommissionDeclareVO">
         select

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

@@ -28,10 +28,25 @@ public interface ICommissionDeclareService extends IService<CommissionDeclare> {
 
     Page<CommissionDeclareVO> majorMarketDeclarePage(Page page, CommissionDeclareVO commissionDeclare);
 
+    /**
+     * 根据部门id查询大中型市场人员提成申报信息
+     * @param page
+     * @param commissionDeclare
+     * @return
+     */
+    Page<CommissionDeclareVO> majorMarketDeclarePageByDepartment(Page page, CommissionDeclareVO commissionDeclare);
+
+    /**
+     * 根据部门id查询大中型市场人员提成申报信息导出excel
+     * @param commissionDeclare
+     * @return
+     */
+    List<CommissionDeclareVO> majorMarketDeclarePageByDepartmentExport(CommissionDeclareVO commissionDeclare);
+
     Page<CommissionDeclareVO> majorEvaluateDeclarePage(Page page, CommissionDeclareVO commissionDeclare);
 
     /**
-     * 根据部门id查询大中型提成申报信息
+     * 根据部门id查询大中型评估人员提成申报信息
      * @param page
      * @param commissionDeclare
      * @return
@@ -39,7 +54,7 @@ public interface ICommissionDeclareService extends IService<CommissionDeclare> {
     Page<CommissionDeclareVO> majorEvaluateDeclarePageByDepartment(Page page, CommissionDeclareVO commissionDeclare);
 
     /**
-     * 根据部门id查询大中型提成申报信息导出excel
+     * 根据部门id查询大中型评估人员提成申报信息导出excel
      * @param commissionDeclare
      * @return
      */

+ 44 - 1
service/src/main/java/com/dayou/service/impl/CommissionDeclareServiceImpl.java

@@ -103,6 +103,45 @@ public class CommissionDeclareServiceImpl extends ServiceImpl<CommissionDeclareM
         return commissionDeclareMapper.majorMarketDeclarePage(page,commissionDeclare,currentMarketUserId);
     }
 
+    /**
+     * 根据部门id查询大中型市场人员提成申报信息
+     * @param page
+     * @param commissionDeclare
+     * @return
+     */
+    @Override
+    public Page<CommissionDeclareVO> majorMarketDeclarePageByDepartment(Page page, CommissionDeclareVO commissionDeclare) {
+        List<SimpleParentModel> depList = LoginContext.getLoginCacheUserBO().getDepartmentList();
+        Optional<Long> dep = depList.stream()
+                .filter(obj -> "市场一部".equals(obj.getName()) || "市场二部".equals(obj.getName()) || "资产评估事业部".equals(obj.getName()))
+                .map(SimpleParentModel::getId)
+                .findFirst();
+        if (!dep.isPresent()) {
+            return commissionDeclareMapper.majorMarketDeclarePageByDepartment(page, commissionDeclare, depList.get(0).getId());
+        }else {
+            return commissionDeclareMapper.majorMarketDeclarePageByDepartment(page, commissionDeclare, dep.get());
+        }
+    }
+
+    /**
+     * 根据部门id查询大中型市场人员提成申报信息导出excel
+     * @param commissionDeclare
+     * @return
+     */
+    @Override
+    public List<CommissionDeclareVO> majorMarketDeclarePageByDepartmentExport(CommissionDeclareVO commissionDeclare) {
+        List<SimpleParentModel> depList = LoginContext.getLoginCacheUserBO().getDepartmentList();
+        Optional<Long> dep = depList.stream()
+                .filter(obj -> "市场一部".equals(obj.getName()) || "市场二部".equals(obj.getName()) || "资产评估事业部".equals(obj.getName()))
+                .map(SimpleParentModel::getId)
+                .findFirst();
+        if (!dep.isPresent()) {
+            return commissionDeclareMapper.majorMarketDeclarePageByDepartmentExport(commissionDeclare, depList.get(0).getId());
+        }else {
+            return commissionDeclareMapper.majorMarketDeclarePageByDepartmentExport(commissionDeclare, dep.get());
+        }
+    }
+
     @Override
     public Page<CommissionDeclareVO> majorEvaluateDeclarePage(Page page, CommissionDeclareVO commissionDeclare) {
         Long currentEvaluateUserId = LoginContext.getCurrentUserId();
@@ -141,7 +180,11 @@ public class CommissionDeclareServiceImpl extends ServiceImpl<CommissionDeclareM
                 .filter(obj -> "评估一部".equals(obj.getName()) || "评估二部".equals(obj.getName()) || "评估三部".equals(obj.getName()))
                 .map(SimpleParentModel::getId)
                 .findFirst();
-        return commissionDeclareMapper.majorEvaluateDeclarePageByDepartmentExport(commissionDeclare, dep.get());
+        if (!dep.isPresent()) {
+            return commissionDeclareMapper.majorEvaluateDeclarePageByDepartmentExport(commissionDeclare, depList.get(0).getId());
+        }else {
+            return commissionDeclareMapper.majorEvaluateDeclarePageByDepartmentExport(commissionDeclare, dep.get());
+        }
     }
 
     @Override