|
@@ -301,94 +301,141 @@
|
|
|
order by m.xm_id, m.unicode
|
|
order by m.xm_id, m.unicode
|
|
|
</select>
|
|
</select>
|
|
|
|
|
|
|
|
|
|
+<!-- <select id="meiyueyanfaxiangmurengongfenpeihuizongbiao" resultType="org.sky.scientific.pojo.vo.XmSalaryVO">-->
|
|
|
|
|
+<!-- SELECT-->
|
|
|
|
|
+<!-- t.xm_id,-->
|
|
|
|
|
+<!-- m.xmbh,-->
|
|
|
|
|
+<!-- m.xmmc,-->
|
|
|
|
|
+<!-- -- 工资薪金总和(每个人的工资×研发占比)-->
|
|
|
|
|
+<!-- ROUND(SUM(COALESCE(s.average_monthly_salary, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS averageMonthlySalary,-->
|
|
|
|
|
+<!-- -- 社保总和(每个人的社保×研发占比)-->
|
|
|
|
|
+<!-- ROUND(SUM((COALESCE(s.pension_insurance, 0) + COALESCE(s.medical_insurance, 0) + COALESCE(s.unemployment_insurance, 0) + COALESCE(s.injury_insurance, 0) + COALESCE(s.maternity_insurance, 0)) * COALESCE(rd_ratio.ratio, 0)), 2) AS totalInsurance,-->
|
|
|
|
|
+<!-- -- 公积金总和(每个人的公积金×研发占比)-->
|
|
|
|
|
+<!-- ROUND(SUM(COALESCE(s.provident_fund, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS providentFund,-->
|
|
|
|
|
+<!-- -- 奖金总和(每个人的公积金×研发占比)-->
|
|
|
|
|
+<!-- ROUND(SUM(COALESCE(s.bonus, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS bonus,-->
|
|
|
|
|
+<!-- -- 福利费总和(每个人的福利费×研发占比)-->
|
|
|
|
|
+<!-- ROUND(SUM(COALESCE(s.benefit, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS benefit,-->
|
|
|
|
|
+<!-- -- 补充养老保险总和(每个人的补充养老保险×研发占比)-->
|
|
|
|
|
+<!-- ROUND(SUM(COALESCE(s.pension_insurance_bc, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS pensionInsuranceBc,-->
|
|
|
|
|
+<!-- -- 补充医疗保险总和(每个人的补充医疗保险×研发占比)-->
|
|
|
|
|
+<!-- ROUND(SUM(COALESCE(s.medical_insurance_bc, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS medicalInsuranceBc-->
|
|
|
|
|
+<!-- FROM kd_xm_technician t-->
|
|
|
|
|
+<!-- -- 计算研发占比的子查询-->
|
|
|
|
|
+<!-- INNER JOIN (-->
|
|
|
|
|
+<!-- SELECT-->
|
|
|
|
|
+<!-- rd.tenant_id,rd.unicode,rd.work_year_month,rd.xm_id,-->
|
|
|
|
|
+<!-- -- 研发占比 = 研发工时 / 考勤工时-->
|
|
|
|
|
+<!-- CASE WHEN COALESCE(att.attendance_hours, 0) > 0 THEN LEAST(rd.rd_hours / att.attendance_hours, 1.0) ELSE 0 END AS ratio,-->
|
|
|
|
|
+<!-- rd.rd_hours,att.attendance_hours-->
|
|
|
|
|
+<!-- FROM (-->
|
|
|
|
|
+<!-- -- 计算每个人的研发工时-->
|
|
|
|
|
+<!-- SELECT-->
|
|
|
|
|
+<!-- tenant_id,unicode,LEFT(work_date, 6) AS work_year_month, xm_id,SUM(work_hours) AS rd_hours-->
|
|
|
|
|
+<!-- FROM kd_xm_technician_hours-->
|
|
|
|
|
+<!-- GROUP BY tenant_id, unicode, LEFT(work_date, 6), xm_id-->
|
|
|
|
|
+<!-- ) rd-->
|
|
|
|
|
+<!-- LEFT JOIN (-->
|
|
|
|
|
+<!-- -- 计算每个人的考勤工时-->
|
|
|
|
|
+<!-- SELECT-->
|
|
|
|
|
+<!-- tenant_id, unicode,LEFT(work_date, 6) AS work_year_month, SUM(work_hours) AS attendance_hours-->
|
|
|
|
|
+<!-- FROM kd_attendance_records-->
|
|
|
|
|
+<!-- GROUP BY tenant_id, unicode, LEFT(work_date, 6)-->
|
|
|
|
|
+<!-- ) att ON rd.tenant_id = att.tenant_id AND rd.unicode = att.unicode AND rd.work_year_month = att.work_year_month-->
|
|
|
|
|
+<!-- ) rd_ratio ON t.tenant_id = rd_ratio.tenant_id AND t.unicode = rd_ratio.unicode AND t.year_and_month = rd_ratio.work_year_month AND t.xm_id = rd_ratio.xm_id-->
|
|
|
|
|
+
|
|
|
|
|
+<!-- -- 关联工资数据-->
|
|
|
|
|
+<!-- LEFT JOIN kd_salary s ON t.tenant_id = s.tenant_id AND t.unicode = s.unicode AND t.year_and_month = s.year_and_month-->
|
|
|
|
|
+
|
|
|
|
|
+<!-- left join-->
|
|
|
|
|
+<!-- (-->
|
|
|
|
|
+<!-- select-->
|
|
|
|
|
+<!-- temp.id, XMBH ,-->
|
|
|
|
|
+<!-- COALESCE(get_xm_info(temp.id, 'XMMC', #{ew.yearAndMonth}), temp.XMMC) as XMMC from kd_xm temp-->
|
|
|
|
|
+<!-- ) m on m.id = t.xm_id-->
|
|
|
|
|
+<!-- WHERE t.tenant_id = #{ew.tenantId} and t.year_and_month = #{ew.yearAndMonth}-->
|
|
|
|
|
+<!-- <if test="ew.xmmc!=null and ew.xmmc!=''">and m.XMMC like concat('%',#{ew.xmmc},'%')</if>-->
|
|
|
|
|
+<!-- GROUP BY t.xm_id-->
|
|
|
|
|
+<!-- </select>-->
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+<!-- <select id="meiyueyanfaxiangmurengongfenpeihuizongbiaoByYear" resultType="org.sky.scientific.pojo.vo.XmSalaryVO">-->
|
|
|
|
|
+<!-- SELECT-->
|
|
|
|
|
+<!-- xm.xm_id,m.XMBH,m.XMMC,-->
|
|
|
|
|
+<!-- xm.year_and_month,-->
|
|
|
|
|
+<!-- (SELECT IFNULL(SUM(work_hours),0) FROM kd_attendance_records r WHERE r.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and LEFT(tmp.year_and_month,4) = #{ew.yearAndMonth}) and LEFT(work_date,4)= #{ew.yearAndMonth}) AS attendanceHours,-->
|
|
|
|
|
+<!-- (SELECT IFNULL(SUM(work_hours),0) FROM kd_xm_technician_hours kxth WHERE kxth.xm_id = xm.xm_id AND LEFT(work_date,4)= #{ew.yearAndMonth})AS workHours,-->
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.average_monthly_salary),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS average_monthly_salary,-->
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.pension_insurance),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS pension_insurance,-->
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.medical_insurance),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS medical_insurance,-->
|
|
|
|
|
+
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.unemployment_insurance),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS unemployment_insurance,-->
|
|
|
|
|
+
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.injury_insurance),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS injury_insurance,-->
|
|
|
|
|
+
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.maternity_insurance),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left( s.year_and_month,4) = #{ew.yearAndMonth}) AS maternity_insurance,-->
|
|
|
|
|
+
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.provident_fund),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS provident_fund,-->
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.bonus),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS bonus,-->
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.benefit),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS benefit,-->
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.pension_insurance_bc),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS pension_insurance_bc,-->
|
|
|
|
|
+<!-- (SELECT IFNULL(sum(s.medical_insurance_bc),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS medical_insurance_bc-->
|
|
|
|
|
+<!-- FROM kd_xm_technician xm-->
|
|
|
|
|
+<!-- LEFT JOIN (-->
|
|
|
|
|
+<!-- SELECT-->
|
|
|
|
|
+<!-- temp.id, XMBH,-->
|
|
|
|
|
+<!-- COALESCE(get_xm_info(temp.id, 'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC-->
|
|
|
|
|
+<!-- FROM kd_xm as temp-->
|
|
|
|
|
+<!-- ) m ON m.id = xm.xm_id-->
|
|
|
|
|
+<!-- WHERE xm.tenant_id = #{ew.tenantId} and LEFT(xm.year_and_month,4) = #{ew.yearAndMonth}-->
|
|
|
|
|
+<!-- <if test="ew.xmmc!=null and ew.xmmc!=''">and m.XMMC like concat('%',#{ew.xmmc},'%')</if>-->
|
|
|
|
|
+<!-- GROUP BY xm.xm_id-->
|
|
|
|
|
+<!-- </select>-->
|
|
|
|
|
+
|
|
|
<select id="meiyueyanfaxiangmurengongfenpeihuizongbiao" resultType="org.sky.scientific.pojo.vo.XmSalaryVO">
|
|
<select id="meiyueyanfaxiangmurengongfenpeihuizongbiao" resultType="org.sky.scientific.pojo.vo.XmSalaryVO">
|
|
|
SELECT
|
|
SELECT
|
|
|
- t.xm_id,
|
|
|
|
|
- m.xmbh,
|
|
|
|
|
- m.xmmc,
|
|
|
|
|
- -- 工资薪金总和(每个人的工资×研发占比)
|
|
|
|
|
- ROUND(SUM(COALESCE(s.average_monthly_salary, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS averageMonthlySalary,
|
|
|
|
|
- -- 社保总和(每个人的社保×研发占比)
|
|
|
|
|
- ROUND(SUM((COALESCE(s.pension_insurance, 0) + COALESCE(s.medical_insurance, 0) + COALESCE(s.unemployment_insurance, 0) + COALESCE(s.injury_insurance, 0) + COALESCE(s.maternity_insurance, 0)) * COALESCE(rd_ratio.ratio, 0)), 2) AS totalInsurance,
|
|
|
|
|
- -- 公积金总和(每个人的公积金×研发占比)
|
|
|
|
|
- ROUND(SUM(COALESCE(s.provident_fund, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS providentFund,
|
|
|
|
|
- -- 奖金总和(每个人的公积金×研发占比)
|
|
|
|
|
- ROUND(SUM(COALESCE(s.bonus, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS bonus,
|
|
|
|
|
- -- 福利费总和(每个人的福利费×研发占比)
|
|
|
|
|
- ROUND(SUM(COALESCE(s.benefit, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS benefit,
|
|
|
|
|
- -- 补充养老保险总和(每个人的补充养老保险×研发占比)
|
|
|
|
|
- ROUND(SUM(COALESCE(s.pension_insurance_bc, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS pensionInsuranceBc,
|
|
|
|
|
- -- 补充医疗保险总和(每个人的补充医疗保险×研发占比)
|
|
|
|
|
- ROUND(SUM(COALESCE(s.medical_insurance_bc, 0) * COALESCE(rd_ratio.ratio, 0)), 2) AS medicalInsuranceBc
|
|
|
|
|
- FROM kd_xm_technician t
|
|
|
|
|
- -- 计算研发占比的子查询
|
|
|
|
|
- INNER JOIN (
|
|
|
|
|
|
|
+ v.xm_id,m.XMBH,m.XMMC,v.year_and_month,
|
|
|
|
|
+ sum(averageMonthlySalary) as averageMonthlySalary,
|
|
|
|
|
+ sum(totalInsurance) as totalInsurance,
|
|
|
|
|
+ sum(providentFund) as providentFund,
|
|
|
|
|
+ sum(bonus) as bonus,
|
|
|
|
|
+ sum(benefit) as benefit,
|
|
|
|
|
+ sum(pensionInsuranceBc) as pensionInsuranceBc,
|
|
|
|
|
+ sum(medicalInsuranceBc) as medicalInsuranceBc
|
|
|
|
|
+ FROM ryrgfyhz_view v
|
|
|
|
|
+ LEFT JOIN (
|
|
|
SELECT
|
|
SELECT
|
|
|
- rd.tenant_id,rd.unicode,rd.work_year_month,rd.xm_id,
|
|
|
|
|
- -- 研发占比 = 研发工时 / 考勤工时
|
|
|
|
|
- CASE WHEN COALESCE(att.attendance_hours, 0) > 0 THEN LEAST(rd.rd_hours / att.attendance_hours, 1.0) ELSE 0 END AS ratio,
|
|
|
|
|
- rd.rd_hours,att.attendance_hours
|
|
|
|
|
- FROM (
|
|
|
|
|
- -- 计算每个人的研发工时
|
|
|
|
|
- SELECT
|
|
|
|
|
- tenant_id,unicode,LEFT(work_date, 6) AS work_year_month, xm_id,SUM(work_hours) AS rd_hours
|
|
|
|
|
- FROM kd_xm_technician_hours
|
|
|
|
|
- GROUP BY tenant_id, unicode, LEFT(work_date, 6), xm_id
|
|
|
|
|
- ) rd
|
|
|
|
|
- LEFT JOIN (
|
|
|
|
|
- -- 计算每个人的考勤工时
|
|
|
|
|
- SELECT
|
|
|
|
|
- tenant_id, unicode,LEFT(work_date, 6) AS work_year_month, SUM(work_hours) AS attendance_hours
|
|
|
|
|
- FROM kd_attendance_records
|
|
|
|
|
- GROUP BY tenant_id, unicode, LEFT(work_date, 6)
|
|
|
|
|
- ) att ON rd.tenant_id = att.tenant_id AND rd.unicode = att.unicode AND rd.work_year_month = att.work_year_month
|
|
|
|
|
- ) rd_ratio ON t.tenant_id = rd_ratio.tenant_id AND t.unicode = rd_ratio.unicode AND t.year_and_month = rd_ratio.work_year_month AND t.xm_id = rd_ratio.xm_id
|
|
|
|
|
-
|
|
|
|
|
- -- 关联工资数据
|
|
|
|
|
- LEFT JOIN kd_salary s ON t.tenant_id = s.tenant_id AND t.unicode = s.unicode AND t.year_and_month = s.year_and_month
|
|
|
|
|
-
|
|
|
|
|
- left join
|
|
|
|
|
- (
|
|
|
|
|
- select
|
|
|
|
|
- temp.id, XMBH ,
|
|
|
|
|
- COALESCE(get_xm_info(temp.id, 'XMMC', #{ew.yearAndMonth}), temp.XMMC) as XMMC from kd_xm temp
|
|
|
|
|
- ) m on m.id = t.xm_id
|
|
|
|
|
- WHERE t.tenant_id = #{ew.tenantId} and t.year_and_month = #{ew.yearAndMonth}
|
|
|
|
|
|
|
+ temp.id, XMBH,
|
|
|
|
|
+ COALESCE(get_xm_info(temp.id, 'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC
|
|
|
|
|
+ FROM kd_xm as temp
|
|
|
|
|
+ ) m ON m.id = v.xm_id
|
|
|
|
|
+ WHERE v.tenant_id = #{ew.tenantId} and LEFT(v.year_and_month,6) = #{ew.yearAndMonth}
|
|
|
<if test="ew.xmmc!=null and ew.xmmc!=''">and m.XMMC like concat('%',#{ew.xmmc},'%')</if>
|
|
<if test="ew.xmmc!=null and ew.xmmc!=''">and m.XMMC like concat('%',#{ew.xmmc},'%')</if>
|
|
|
- GROUP BY t.xm_id
|
|
|
|
|
|
|
+ GROUP BY v.xm_id
|
|
|
</select>
|
|
</select>
|
|
|
|
|
|
|
|
<select id="meiyueyanfaxiangmurengongfenpeihuizongbiaoByYear" resultType="org.sky.scientific.pojo.vo.XmSalaryVO">
|
|
<select id="meiyueyanfaxiangmurengongfenpeihuizongbiaoByYear" resultType="org.sky.scientific.pojo.vo.XmSalaryVO">
|
|
|
SELECT
|
|
SELECT
|
|
|
- xm.xm_id,m.XMBH,m.XMMC,
|
|
|
|
|
- xm.year_and_month,
|
|
|
|
|
- (SELECT IFNULL(SUM(work_hours),0) FROM kd_attendance_records r WHERE r.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and LEFT(tmp.year_and_month,4) = #{ew.yearAndMonth}) and LEFT(work_date,4)= #{ew.yearAndMonth}) AS attendanceHours,
|
|
|
|
|
- (SELECT IFNULL(SUM(work_hours),0) FROM kd_xm_technician_hours kxth WHERE kxth.xm_id = xm.xm_id AND LEFT(work_date,4)= #{ew.yearAndMonth})AS workHours,
|
|
|
|
|
- (SELECT IFNULL(sum(s.average_monthly_salary),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS average_monthly_salary,
|
|
|
|
|
- (SELECT IFNULL(sum(s.pension_insurance),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS pension_insurance,
|
|
|
|
|
- (SELECT IFNULL(sum(s.medical_insurance),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS medical_insurance,
|
|
|
|
|
-
|
|
|
|
|
- (SELECT IFNULL(sum(s.unemployment_insurance),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS unemployment_insurance,
|
|
|
|
|
-
|
|
|
|
|
- (SELECT IFNULL(sum(s.injury_insurance),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS injury_insurance,
|
|
|
|
|
-
|
|
|
|
|
- (SELECT IFNULL(sum(s.maternity_insurance),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left( s.year_and_month,4) = #{ew.yearAndMonth}) AS maternity_insurance,
|
|
|
|
|
-
|
|
|
|
|
- (SELECT IFNULL(sum(s.provident_fund),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS provident_fund,
|
|
|
|
|
- (SELECT IFNULL(sum(s.bonus),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS bonus,
|
|
|
|
|
- (SELECT IFNULL(sum(s.benefit),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS benefit,
|
|
|
|
|
- (SELECT IFNULL(sum(s.pension_insurance_bc),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS pension_insurance_bc,
|
|
|
|
|
- (SELECT IFNULL(sum(s.medical_insurance_bc),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS medical_insurance_bc
|
|
|
|
|
- FROM kd_xm_technician xm
|
|
|
|
|
|
|
+ v.xm_id,m.XMBH,m.XMMC,v.year_and_month,
|
|
|
|
|
+ sum(averageMonthlySalary) as averageMonthlySalary,
|
|
|
|
|
+ sum(totalInsurance) as totalInsurance,
|
|
|
|
|
+ sum(providentFund) as providentFund,
|
|
|
|
|
+ sum(bonus) as bonus,
|
|
|
|
|
+ sum(benefit) as benefit,
|
|
|
|
|
+ sum(pensionInsuranceBc) as pensionInsuranceBc,
|
|
|
|
|
+ sum(medicalInsuranceBc) as medicalInsuranceBc
|
|
|
|
|
+ FROM ryrgfyhz_view v
|
|
|
LEFT JOIN (
|
|
LEFT JOIN (
|
|
|
SELECT
|
|
SELECT
|
|
|
temp.id, XMBH,
|
|
temp.id, XMBH,
|
|
|
COALESCE(get_xm_info(temp.id, 'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC
|
|
COALESCE(get_xm_info(temp.id, 'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC
|
|
|
FROM kd_xm as temp
|
|
FROM kd_xm as temp
|
|
|
- ) m ON m.id = xm.xm_id
|
|
|
|
|
- WHERE xm.tenant_id = #{ew.tenantId} and LEFT(xm.year_and_month,4) = #{ew.yearAndMonth}
|
|
|
|
|
|
|
+ ) m ON m.id = v.xm_id
|
|
|
|
|
+ WHERE v.tenant_id = #{ew.tenantId} and LEFT(v.year_and_month,4) = #{ew.yearAndMonth}
|
|
|
<if test="ew.xmmc!=null and ew.xmmc!=''">and m.XMMC like concat('%',#{ew.xmmc},'%')</if>
|
|
<if test="ew.xmmc!=null and ew.xmmc!=''">and m.XMMC like concat('%',#{ew.xmmc},'%')</if>
|
|
|
- GROUP BY xm.xm_id
|
|
|
|
|
|
|
+ GROUP BY v.xm_id
|
|
|
|
|
+ order by v.xm_id asc
|
|
|
</select>
|
|
</select>
|
|
|
|
|
|
|
|
<select id="statisticsWorkHoursByXmAndUnicodeAndMonth" resultType="com.alibaba.fastjson.JSONObject">
|
|
<select id="statisticsWorkHoursByXmAndUnicodeAndMonth" resultType="com.alibaba.fastjson.JSONObject">
|
|
@@ -402,6 +449,7 @@
|
|
|
kd_xm_technician m
|
|
kd_xm_technician m
|
|
|
WHERE
|
|
WHERE
|
|
|
m.tenant_id = #{tenantId} and LEFT(m.year_and_month,4)= #{year}
|
|
m.tenant_id = #{tenantId} and LEFT(m.year_and_month,4)= #{year}
|
|
|
- GROUP BY m.xm_id, m.unicode,m.year_and_month
|
|
|
|
|
|
|
+ GROUP BY v.xm_id, m.unicode,m.year_and_month
|
|
|
|
|
+ order by v.xm_id asc
|
|
|
</select>
|
|
</select>
|
|
|
</mapper>
|
|
</mapper>
|