|
|
@@ -977,6 +977,9 @@ public class DatadetailController {
|
|
|
public RT<InternshipStatisticsDetailVo> internshipStatistics(@Valid StatisticsDetailDto dto) {
|
|
|
InternshipStatisticsDetailVo result = new InternshipStatisticsDetailVo();
|
|
|
BaseSemester semester = semesterService.getCurrentSemester();
|
|
|
+ if(semester == null){
|
|
|
+ return RT.error("未能查询计划到当前学期");
|
|
|
+ }
|
|
|
String sql = " SELECT DISTINCT t1.participant_user_id FROM internship_plan_manage_participant t1" +
|
|
|
" INNER JOIN internship_plan_manage t2 ON t1.internship_plan_manage_id = t2.id" +
|
|
|
" INNER JOIN xjr_user t3 ON t1.participant_user_id = t3.id" +
|
|
|
@@ -991,7 +994,7 @@ public class DatadetailController {
|
|
|
" INNER JOIN xjr_user t3 ON t3.id = t1.student_user_id" +
|
|
|
" INNER JOIN internship_plan_manage t4 ON t1.internship_plan_manage_id = t4.id" +
|
|
|
" WHERE t1.delete_mark = 0 AND t3.delete_mark = 0 AND t4.delete_mark = 0" +
|
|
|
- " and t2.base_semester_id = " + semester.getId() +
|
|
|
+ " and t4.base_semester_id = " + semester.getId() +
|
|
|
" AND t2.current_state = 'COMPLETED'";
|
|
|
List<Map<String, Object>> list2 = SqlRunnerAdapter.db().selectList(sql);
|
|
|
|
|
|
@@ -1017,12 +1020,12 @@ public class DatadetailController {
|
|
|
"(SELECT COUNT(participant_user_id) FROM internship_plan_manage_participant\n" +
|
|
|
"WHERE class_id = t3.id AND internship_plan_manage_id = t2.id and delete_mark = 0) AS unite_count,\n" +
|
|
|
"(SELECT COUNT(a1.student_user_id) FROM student_internship_alone_apply a1" +
|
|
|
- " INNER JOIN xjr_workflow_form_relation a2 ON t1.id = CAST(t2.form_key_value AS SIGNED)" +
|
|
|
+ " INNER JOIN xjr_workflow_form_relation a2 ON t1.id = CAST(a2.form_key_value AS SIGNED)" +
|
|
|
" WHERE a1.class_id = t3.id AND a1.internship_plan_manage_id = t2.id and a1.delete_mark = 0" +
|
|
|
" and a2.current_state = 'COMPLETED'" +
|
|
|
" ) AS alone_count,\n" +
|
|
|
"(SELECT COUNT(student_user_id) FROM student_special_constitution a1" +
|
|
|
- " INNER JOIN xjr_workflow_form_relation a2 ON t1.id = CAST(t2.form_key_value AS SIGNED)" +
|
|
|
+ " INNER JOIN xjr_workflow_form_relation a2 ON t1.id = CAST(a2.form_key_value AS SIGNED)" +
|
|
|
" WHERE a1.class_id = t3.id and a1.delete_mark = 0 and a2.current_state = 'COMPLETED') AS special_count\n" +
|
|
|
"FROM internship_plan_class t1\n" +
|
|
|
"INNER JOIN internship_plan_manage t2 ON t1.internship_plan_manage_id = t2.id\n" +
|
|
|
@@ -1042,12 +1045,19 @@ public class DatadetailController {
|
|
|
}
|
|
|
result.setClassList(classList);
|
|
|
|
|
|
- sql = "SELECT t1.company_name,\n" +
|
|
|
- "(SELECT COUNT(*) FROM internship_plan_manage_participant WHERE delete_mark = 0 AND internship_plan_manage_id = t2.id) AS counts\n" +
|
|
|
- "FROM company_coop t1\n" +
|
|
|
- "INNER JOIN internship_plan_manage t2 ON t1.id = t2.internship_unit_id\n" +
|
|
|
- "WHERE t1.delete_mark = 0 AND t2.delete_mark = 0" +
|
|
|
- " and t2.base_semester_id = " + semester.getId();
|
|
|
+ sql = "SELECT t1.id,t1.company_name,\n" +
|
|
|
+ "(\n" +
|
|
|
+ "SELECT COUNT(a1.id) FROM internship_plan_manage_participant a1\n" +
|
|
|
+ "INNER JOIN internship_plan_manage a2 ON a2.id = a1.internship_plan_manage_id \n" +
|
|
|
+ "WHERE a1.delete_mark = 0 AND a2.delete_mark = 0\n" +
|
|
|
+ "AND a2.internship_unit_id = t1.id\n" +
|
|
|
+ ") AS counts\n" +
|
|
|
+ "FROM company_coop t1\n" +
|
|
|
+ "WHERE t1.delete_mark = 0\n" +
|
|
|
+ "AND id IN (\n" +
|
|
|
+ "SELECT DISTINCT internship_unit_id FROM internship_plan_manage\n" +
|
|
|
+ "WHERE delete_mark = 0 AND base_semester_id = " +semester.getId() +
|
|
|
+ ")";
|
|
|
List<Map<String, Object>> companyDatas = SqlRunnerAdapter.db().selectList(sql);
|
|
|
List<InternshipStatisticsDetailCompanyVo> companyList = new ArrayList<>();
|
|
|
for (Map<String, Object> companyData : companyDatas) {
|