Ver código fonte

招聘管理V2:更改统计的面试人次显示规则

Qifeng-Wu 4 anos atrás
pai
commit
83c3c67deb

+ 5 - 6
happy-job-module-crm/src/main/java/com/jeeplus/modules/omcandidate/mapper/xml/OmCandidateMapper.xml

@@ -216,12 +216,11 @@
 		UNION ALL
 		SELECT COUNT(s.id) FROM (SELECT p.* FROM (SELECT b.* FROM om_candidate_belong b ORDER BY b.id DESC LIMIT 999999999) as p GROUP BY p.candidate_id HAVING p.type <> 2 AND p.belong_user = #{userName} ORDER BY p.id) AS s left join om_candidate o on o.id=s.candidate_id where o.status=7
 		UNION ALL
-		SELECT SUM(c.count) FROM 
-			(SELECT COUNT(d.id) AS count FROM om_candidate_track_detail d LEFT JOIN om_candidate_track t ON t.id=d.candidate_track_id WHERE YEARWEEK(DATE_FORMAT(t.generate_time,'%Y-%m-%d')) = YEARWEEK(NOW()) AND (d.status = 2 OR d.status = 3) AND d.track_by = #{userName}
-			UNION ALL
-			SELECT COUNT(d.id) AS count FROM om_candidate_track_detail d LEFT JOIN om_candidate_track t ON t.id=d.candidate_track_id WHERE t.generate_time < DATE_FORMAT(SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(),'%w')), '%Y-%m-%d 00:00:00') AND (d.status = 2 OR d.status = 3) AND d.track_by = #{userName} 
-			AND d.candidate_track_id IN (SELECT DISTINCT e.candidate_track_id FROM om_candidate_track_detail e WHERE YEARWEEK(DATE_FORMAT(e.track_time,'%Y-%m-%d')) = YEARWEEK(NOW()) AND e.status = 5 AND e.track_by = #{userName})) AS c
+		SELECT COUNT(d.id) FROM om_candidate_track_detail d LEFT JOIN om_candidate_track t ON t.id=d.candidate_track_id WHERE YEARWEEK(DATE_FORMAT(t.generate_time,'%Y-%m-%d')) = YEARWEEK(NOW()) AND (d.status = 2 OR d.status = 3) AND d.track_by = #{userName}
 		UNION ALL
-		SELECT COUNT(d.id) FROM om_candidate_track_detail d WHERE YEARWEEK(DATE_FORMAT(d.track_time,'%Y-%m-%d')) = YEARWEEK(NOW()) AND d.status = 5 AND d.track_by = #{userName}
+		SELECT COUNT(d.id) FROM om_candidate_track_detail d WHERE YEARWEEK(DATE_FORMAT(d.track_time,'%Y-%m-%d')) = YEARWEEK(NOW()) AND d.status = 5 AND d.track_by = #{userName}	
+		UNION ALL
+		SELECT COUNT(d.id) AS count FROM om_candidate_track_detail d LEFT JOIN om_candidate_track t ON t.id=d.candidate_track_id WHERE t.generate_time < DATE_FORMAT(SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(),'%w')), '%Y-%m-%d 00:00:00') AND (d.status = 2 OR d.status = 3) AND d.track_by = #{userName} 
+			AND d.candidate_track_id IN (SELECT DISTINCT e.candidate_track_id FROM om_candidate_track_detail e WHERE YEARWEEK(DATE_FORMAT(e.track_time,'%Y-%m-%d')) = YEARWEEK(NOW()) AND e.status = 5 AND e.track_by = #{userName})
 	</select>
 </mapper>

+ 4 - 5
happy-job-module-crm/src/main/java/com/jeeplus/modules/omcandidate/mapper/xml/OmTeamManageMapper.xml

@@ -26,15 +26,14 @@
 	</select>
 	<!-- 根据时间获取所有招聘专员的候选人数据统计 (页面中间)-->
 	<select id="findAllCandidateDataByDate" parameterType="OmTeamManage" resultType="java.lang.Integer">
-		SELECT SUM(c.count) FROM 
-			(SELECT COUNT(d.id) AS count FROM om_candidate_track_detail d LEFT JOIN om_candidate_track t ON t.id=d.candidate_track_id WHERE t.generate_time BETWEEN #{startSearchDate} AND DATE_ADD(#{endSearchDate},INTERVAL 1 DAY) AND (d.status = 2 OR d.status = 3)
-			UNION ALL
-			SELECT COUNT(d.id) AS count FROM om_candidate_track_detail d LEFT JOIN om_candidate_track t ON t.id=d.candidate_track_id WHERE t.generate_time &lt; #{startSearchDate} AND (d.status = 2 OR d.status = 3)
-			AND d.candidate_track_id IN (SELECT DISTINCT e.candidate_track_id FROM om_candidate_track_detail e WHERE e.track_time BETWEEN #{startSearchDate} AND DATE_ADD(#{endSearchDate},INTERVAL 1 DAY) AND e.status = 5)) AS c
+		SELECT COUNT(d.id) AS count FROM om_candidate_track_detail d LEFT JOIN om_candidate_track t ON t.id=d.candidate_track_id WHERE t.generate_time BETWEEN #{startSearchDate} AND DATE_ADD(#{endSearchDate},INTERVAL 1 DAY) AND (d.status = 2 OR d.status = 3)
 		UNION ALL
 		SELECT COUNT(d.id) FROM om_candidate_track_detail d WHERE d.track_time BETWEEN #{startSearchDate} AND DATE_ADD(#{endSearchDate},INTERVAL 1 DAY) AND d.status = 5
 		UNION ALL
 		SELECT COUNT(d.id) FROM om_candidate_track_detail d LEFT JOIN om_candidate_track t ON t.id=d.candidate_track_id WHERE t.onboarding_date BETWEEN #{startSearchDate} AND DATE_ADD(#{endSearchDate},INTERVAL 1 DAY) AND d.status = 7
+		UNION ALL
+		SELECT COUNT(d.id) AS count FROM om_candidate_track_detail d LEFT JOIN om_candidate_track t ON t.id=d.candidate_track_id WHERE t.generate_time &lt; #{startSearchDate} AND (d.status = 2 OR d.status = 3)
+			AND d.candidate_track_id IN (SELECT DISTINCT e.candidate_track_id FROM om_candidate_track_detail e WHERE e.track_time BETWEEN #{startSearchDate} AND DATE_ADD(#{endSearchDate},INTERVAL 1 DAY) AND e.status = 5)
 	</select>
 	<!-- 获取招聘专员的候选人数据统计 -->
 	<select id="findCandidateDataCount" parameterType="OmTeamManage" resultType="java.lang.Integer">

+ 2 - 1
happy-job-module-crm/src/main/java/com/jeeplus/modules/omcandidate/web/OmCandidateController.java

@@ -322,9 +322,10 @@ public class OmCandidateController extends BaseController {
 		List<Integer> dataShow = omCandidateService.findCandidateDataByUserName(userName);
 		BigDecimal employRatio = new BigDecimal(0);//录用比例:录用人次/面试人次
 		if(dataShow.get(3)!=null && dataShow.get(3)!=0) {
-			employRatio = new BigDecimal(dataShow.get(4)).divide(new BigDecimal(dataShow.get(3)),2,BigDecimal.ROUND_HALF_UP)
+			employRatio = new BigDecimal(dataShow.get(4)).divide(new BigDecimal(dataShow.get(3)).add(new BigDecimal(dataShow.get(5))),2,BigDecimal.ROUND_HALF_UP)
 						  .multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP);
 		}
+		dataShow.remove(5);//将本周录用人的非本周录用人次去除
 		dataShow.add(Integer.parseInt(String.valueOf(employRatio)));//将录用比例放入LIST:录用人次/面试人次
 		LinkedHashMap<String, Object> body = new LinkedHashMap<String, Object>();
 		body.put("dataShow", dataShow);			

+ 2 - 1
happy-job-module-crm/src/main/java/com/jeeplus/modules/omcandidate/web/OmTeamManageController.java

@@ -82,9 +82,10 @@ public class OmTeamManageController extends BaseController {
 		List<Integer> dataShow = omTeamManageService.findAllCandidateDataByDate(omTeamManage);
 		BigDecimal employRatio = new BigDecimal(0);//录用比例:录用人次/面试人次
 		if(dataShow.get(0)!=null && dataShow.get(0)!=0) {
-			employRatio = new BigDecimal(dataShow.get(1)).divide(new BigDecimal(dataShow.get(0)),2,BigDecimal.ROUND_HALF_UP)
+			employRatio = new BigDecimal(dataShow.get(1)).divide(new BigDecimal(dataShow.get(0)).add(new BigDecimal(dataShow.get(3))),2,BigDecimal.ROUND_HALF_UP)
 						  .multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP);
 		}
+		dataShow.remove(3);//将本时间段录用人的非本时间段录用人次去除
 		dataShow.add(Integer.parseInt(String.valueOf(employRatio)));//将录用比例放入LIST:录用人次/面试人次
 		LinkedHashMap<String, Object> body = new LinkedHashMap<String, Object>();
 		body.put("dataShow", dataShow);