|
@@ -146,119 +146,262 @@
|
|
|
<include refid="majorOverdueSql" />
|
|
|
</select>
|
|
|
|
|
|
- <select id="majorEvaluatorSettleProd" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
|
|
|
- SELECT
|
|
|
- mp.id,
|
|
|
- fc.claim_amount,
|
|
|
- m.order_id,
|
|
|
- mp.report_no,
|
|
|
- fc.claim_datetime as claimDate,
|
|
|
- mp.save_file_date,
|
|
|
- IF
|
|
|
- ( fc.claim_datetime > mp.save_file_date, fc.claim_datetime, mp.save_file_date ) AS settleDate,
|
|
|
- mp.NAME,
|
|
|
- m.bailor,
|
|
|
- mp.evaluate_amount,
|
|
|
- u.NAME AS principal,
|
|
|
- u1.NAME AS clientManager,
|
|
|
- cc.NAME AS clientName,
|
|
|
- cc1.NAME AS clientSubName,
|
|
|
- d.NAME AS evaluateDepartmentName,
|
|
|
- (
|
|
|
- SELECT
|
|
|
- GROUP_CONCAT( NAME )
|
|
|
- FROM
|
|
|
- department
|
|
|
- WHERE
|
|
|
- id IN (
|
|
|
+ <sql id="majorEvaluatorSettleSql">
|
|
|
SELECT
|
|
|
- department_id
|
|
|
+ mp.id,
|
|
|
+ fc.claim_amount,
|
|
|
+ m.order_id,
|
|
|
+ mp.report_no,
|
|
|
+ fc.claim_datetime as claimDate,
|
|
|
+ mp.save_file_date,
|
|
|
+ IF
|
|
|
+ ( fc.claim_datetime > mp.save_file_date, fc.claim_datetime, mp.save_file_date ) AS settleDate,
|
|
|
+ mp.NAME,
|
|
|
+ m.bailor,
|
|
|
+ mp.evaluate_amount,
|
|
|
+ u.NAME AS principal,
|
|
|
+ u1.NAME AS clientManager,
|
|
|
+ cc.NAME AS clientName,
|
|
|
+ cc1.NAME AS clientSubName,
|
|
|
+ d.NAME AS evaluateDepartmentName,
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ GROUP_CONCAT( NAME )
|
|
|
+ FROM
|
|
|
+ department
|
|
|
+ WHERE
|
|
|
+ id IN (
|
|
|
+ SELECT
|
|
|
+ department_id
|
|
|
+ FROM
|
|
|
+ post
|
|
|
+ WHERE
|
|
|
+ id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName
|
|
|
FROM
|
|
|
- post
|
|
|
- WHERE
|
|
|
- id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName
|
|
|
- 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 >= #{settleVO.startDate}
|
|
|
- AND claim_datetime <= #{settleVO.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 >= #{settleVO.startDate}
|
|
|
- AND created <= #{settleVO.endDate}
|
|
|
- ) fc
|
|
|
- INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_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, major_id, NAME, report_no, production, evaluate_amount, save_file_date FROM major_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
|
|
|
- LEFT JOIN major m ON m.id = mp.major_id
|
|
|
- LEFT JOIN user u ON u.id = m.principal_id
|
|
|
- LEFT JOIN user u1 ON u1.id = m.client_manager_id
|
|
|
- LEFT JOIN customer_company cc ON cc.id = m.clientele_id
|
|
|
- LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
|
|
|
- LEFT JOIN department d ON d.id = m.department_id
|
|
|
+ (
|
|
|
+ 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 >= #{settleVO.startDate}
|
|
|
+ AND claim_datetime <= #{settleVO.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 >= #{settleVO.startDate}
|
|
|
+ AND created <= #{settleVO.endDate}
|
|
|
+ ) fc
|
|
|
+ INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_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, major_id, NAME, report_no, production, evaluate_amount, save_file_date FROM major_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
|
|
|
+ LEFT JOIN major m ON m.id = mp.major_id
|
|
|
+ LEFT JOIN user u ON u.id = m.principal_id
|
|
|
+ LEFT JOIN user u1 ON u1.id = m.client_manager_id
|
|
|
+ LEFT JOIN customer_company cc ON cc.id = m.clientele_id
|
|
|
+ LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
|
|
|
+ LEFT JOIN department d ON d.id = m.department_id
|
|
|
+ <where>
|
|
|
+ <if test="settleVO!=null and settleVO.orderId!=null and settleVO.orderId!='' ">
|
|
|
+ and m.order_id = #{settleVO.orderId}
|
|
|
+ </if>
|
|
|
+ <if test="settleVO!=null and settleVO.reportNo!=null and settleVO.reportNo!='' ">
|
|
|
+ and mp.report_no like concat ('%',#{settleVO.reportNo},'%')
|
|
|
+ </if>
|
|
|
+ <if test="settleVO!=null and settleVO.principal!=null and settleVO.principal!='' ">
|
|
|
+ and u.name like concat ('%',#{settleVO.principal},'%')
|
|
|
+ </if>
|
|
|
+ <if test="settleVO!=null and settleVO.clientManager!=null and settleVO.clientManager!='' ">
|
|
|
+ and u1.name like concat ('%',#{settleVO.clientManager},'%')
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ order by settleDate DESC
|
|
|
+ </sql>
|
|
|
+ <select id="majorEvaluatorSettleProd" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
|
|
|
+ <include refid="majorEvaluatorSettleSql" />
|
|
|
</select>
|
|
|
|
|
|
- <select id="majorMarketerSettleProd" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
|
|
|
- SELECT
|
|
|
- mp.id,
|
|
|
- fc.claim_amount,
|
|
|
- m.order_id,
|
|
|
- mp.report_no,
|
|
|
- fc.claim_datetime,
|
|
|
- mp.delivery_date,
|
|
|
- IF
|
|
|
- ( fc.claim_datetime > mp.delivery_date, fc.claim_datetime, mp.delivery_date ) AS settleDate,
|
|
|
- mp.NAME,
|
|
|
- m.bailor,
|
|
|
- mp.evaluate_amount,
|
|
|
- u.NAME AS principal,
|
|
|
- u1.NAME AS clientManager,
|
|
|
- cc.NAME AS clientName,
|
|
|
- cc1.NAME AS clientSubName,
|
|
|
- d.NAME AS evaluateDepartmentName,
|
|
|
- (
|
|
|
- SELECT
|
|
|
- GROUP_CONCAT( NAME )
|
|
|
- FROM
|
|
|
- department
|
|
|
- WHERE
|
|
|
- id IN (
|
|
|
+ <select id="majorEvaluatorSettleExport" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
|
|
|
+ <include refid="majorEvaluatorSettleSql" />
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <sql id="majorMarketerSettleSql">
|
|
|
SELECT
|
|
|
- department_id
|
|
|
+ mp.id,
|
|
|
+ fc.claim_amount,
|
|
|
+ m.order_id,
|
|
|
+ mp.report_no,
|
|
|
+ fc.claim_datetime,
|
|
|
+ mp.delivery_date,
|
|
|
+ IF
|
|
|
+ ( fc.claim_datetime > mp.delivery_date, fc.claim_datetime, mp.delivery_date ) AS settleDate,
|
|
|
+ mp.NAME,
|
|
|
+ m.bailor,
|
|
|
+ mp.evaluate_amount,
|
|
|
+ u.NAME AS principal,
|
|
|
+ u1.NAME AS clientManager,
|
|
|
+ cc.NAME AS clientName,
|
|
|
+ cc1.NAME AS clientSubName,
|
|
|
+ d.NAME AS evaluateDepartmentName,
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ GROUP_CONCAT( NAME )
|
|
|
+ FROM
|
|
|
+ department
|
|
|
+ WHERE
|
|
|
+ id IN (
|
|
|
+ SELECT
|
|
|
+ department_id
|
|
|
+ FROM
|
|
|
+ post
|
|
|
+ WHERE
|
|
|
+ id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName
|
|
|
FROM
|
|
|
- post
|
|
|
- WHERE
|
|
|
- id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName
|
|
|
+ (
|
|
|
+ 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 >= #{settleVO.startDate}
|
|
|
+ AND claim_datetime <= #{settleVO.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 >= #{settleVO.startDate}
|
|
|
+ AND created <= #{settleVO.endDate}
|
|
|
+ ) fc
|
|
|
+ INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_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, major_id, NAME, report_no, production, evaluate_amount, delivery_date FROM major_production WHERE deleted = 0 AND delivery_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
|
|
|
+ LEFT JOIN major m ON m.id = mp.major_id
|
|
|
+ LEFT JOIN user u ON u.id = m.principal_id
|
|
|
+ LEFT JOIN user u1 ON u1.id = m.client_manager_id
|
|
|
+ LEFT JOIN customer_company cc ON cc.id = m.clientele_id
|
|
|
+ LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
|
|
|
+ LEFT JOIN department d ON d.id = m.department_id
|
|
|
+ <where>
|
|
|
+ <if test="settleVO!=null and settleVO.orderId!=null and settleVO.orderId!='' ">
|
|
|
+ and m.order_id = #{settleVO.orderId}
|
|
|
+ </if>
|
|
|
+ <if test="settleVO!=null and settleVO.reportNo!=null and settleVO.reportNo!='' ">
|
|
|
+ and mp.report_no like concat ('%',#{settleVO.reportNo},'%')
|
|
|
+ </if>
|
|
|
+ <if test="settleVO!=null and settleVO.principal!=null and settleVO.principal!='' ">
|
|
|
+ and u.name like concat ('%',#{settleVO.principal},'%')
|
|
|
+ </if>
|
|
|
+ <if test="settleVO!=null and settleVO.clientManager!=null and settleVO.clientManager!='' ">
|
|
|
+ and u1.name like concat ('%',#{settleVO.clientManager},'%')
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ order by settleDate DESC
|
|
|
+ </sql>
|
|
|
+ <select id="majorMarketerSettleProd" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
|
|
|
+ <include refid="majorMarketerSettleSql" />
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="majorMarketSettleExport" parameterType="com.dayou.vo.SettleMajorProductionVO" resultType="com.dayou.vo.SettleMajorProductionVO">
|
|
|
+ <include refid="majorMarketerSettleSql" />
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="majorEvaluatorCommission" parameterType="com.dayou.vo.UserCommissionTotalAmountVO" resultType="com.dayou.vo.UserCommissionTotalAmountVO">
|
|
|
+ SELECT mpa.user_id as id, u.name as userName, sum(( fc.claim_amount * ( bcr.min_ratio / 100 )* mpa.ratio )) AS commissionTotalAmount
|
|
|
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 >= #{vo.startDate}
|
|
|
+ AND claim_datetime <= #{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 >= #{vo.startDate}
|
|
|
+ AND created <= #{vo.endDate}
|
|
|
+ ) fc
|
|
|
+ INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_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, major_id, NAME, report_no, production, save_file_date, created FROM major_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
|
|
|
+ LEFT JOIN major m ON m.id = mp.major_id
|
|
|
+ INNER JOIN ( SELECT id, business_id, production_id, commission_rate_id FROM commission_declare WHERE business_type = 'COMMISSION_DECLARE_MAJOR_EVALUATE' AND deleted = 0 AND declare_result = '审核通过' ) cd ON (
|
|
|
+ cd.business_id = m.id
|
|
|
+ AND ( cd.production_id IS NULL OR cd.production_id = mp.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 major_id, major_production_id, user_id, ratio FROM major_production_allot WHERE deleted = 0 AND user_type = 'EVALUATE' ) mpa ON ( mpa.major_id = m.id AND mpa.major_production_id = mp.id )
|
|
|
+ LEFT JOIN user u ON u.id = mpa.user_id
|
|
|
+ GROUP BY
|
|
|
+ mpa.user_id
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="majorEvaluatorCommissionDetail" parameterType="com.dayou.vo.UserCommissionProdVO" resultType="com.dayou.vo.UserCommissionProdVO">
|
|
|
SELECT
|
|
|
- claim_amount,
|
|
|
- order_fund_id,
|
|
|
- production_fund_id,
|
|
|
- claim_datetime
|
|
|
+ mp.id,
|
|
|
+ fc.claim_amount as realAmount,
|
|
|
+ mp.report_no,
|
|
|
+ IF
|
|
|
+ ( fc.claim_datetime > mp.save_file_date, fc.claim_datetime, mp.save_file_date ) AS settleDate,
|
|
|
+ mp.NAME,
|
|
|
+ mp.created,
|
|
|
+ dd.NAME AS businessCate,
|
|
|
+ bcr.min_ratio AS ratio,
|
|
|
+ mpa.user_id,
|
|
|
+ mpa.ratio AS allotRatio,
|
|
|
+ ( fc.claim_amount * ( bcr.min_ratio / 100 )* mpa.ratio ) AS commissionAmount,
|
|
|
+ ( fc.claim_amount * ( bcr.min_ratio / 100 ) ) AS totalAmount
|
|
|
FROM
|
|
|
- finance_claim
|
|
|
+ (
|
|
|
+ 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 >= #{vo.startDate}
|
|
|
+ AND claim_datetime <= #{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 >= #{vo.startDate}
|
|
|
+ AND created <= #{vo.endDate}
|
|
|
+ ) fc
|
|
|
+ INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_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, major_id, NAME, report_no, production, save_file_date, created FROM major_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
|
|
|
+ LEFT JOIN major m ON m.id = mp.major_id
|
|
|
+ INNER JOIN ( SELECT id, business_id, production_id, commission_rate_id FROM commission_declare WHERE business_type = 'COMMISSION_DECLARE_MAJOR_EVALUATE' AND deleted = 0 AND declare_result = '审核通过' ) cd ON (
|
|
|
+ cd.business_id = m.id
|
|
|
+ AND ( cd.production_id IS NULL OR cd.production_id = mp.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 major_id, major_production_id, user_id, ratio FROM major_production_allot WHERE deleted = 0 AND user_type = 'EVALUATE' ) mpa ON ( mpa.major_id = m.id AND mpa.major_production_id = mp.id )
|
|
|
WHERE
|
|
|
- deleted = 0
|
|
|
- AND production_fund_id IS NOT NULL
|
|
|
- AND claim_datetime >= #{settleVO.startDate}
|
|
|
- AND claim_datetime <= #{settleVO.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 >= #{settleVO.startDate}
|
|
|
- AND created <= #{settleVO.endDate}
|
|
|
- ) fc
|
|
|
- INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_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, major_id, NAME, report_no, production, evaluate_amount, delivery_date FROM major_production WHERE deleted = 0 AND delivery_date IS NOT NULL ) mp ON mp.report_no = pf.production_no
|
|
|
- LEFT JOIN major m ON m.id = mp.major_id
|
|
|
- LEFT JOIN user u ON u.id = m.principal_id
|
|
|
- LEFT JOIN user u1 ON u1.id = m.client_manager_id
|
|
|
- LEFT JOIN customer_company cc ON cc.id = m.clientele_id
|
|
|
- LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
|
|
|
- LEFT JOIN department d ON d.id = m.department_id
|
|
|
+ mpa.user_id = #{vo.userId}
|
|
|
+ order by settleDate DESC
|
|
|
</select>
|
|
|
</mapper>
|