<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 审核表 --> <mapper namespace="com.yiboshi.science.dao.ComProjectAuditDAO"> <sql id="allColumns"> t.id as id, t.report_year as reportYear, t.audit_type as auditType, t.audit_object_id as reportObjectId, t.audit_unit_id as auditUnitId, t.audit_content as auditContent, t.audit_result as auditResult, t.audit_date as auditDate, t.unit_level as unitLevel, t.com_person as comPerson, t.created as created </sql> <select id="getListByPage" resultType="com.yiboshi.science.param.dto.ComProjectAuditDTO"> SELECT a.*,d.unit_name,e.person_name FROM com_project_audit a left join com_unit d on a.audit_unit_id=d.id left join com_person e on a.com_person=e.id <where> ${ew.sqlSegment} </where> </select> <select id="getProjectAuditListByPage" resultType="com.yiboshi.science.param.dto.ComProjectAuditDTO"> SELECT a.*,c.id proj_id,c.proj_name,c.proj_no,c.version_no,c.app_no,c.proj_class,c.start_date,c.end_date,c.proj_state,c.total_score,c.average_score,c.knowledge_id, d.unit_name app_unit_name,e.person_name app_person_name,p.name as knowledgeName,p1.name as knowledgeParentName, (case when g.unit_name = d.unit_name then '直属' else REPLACE(g.unit_name,'卫生健康局','') end) as upUnitName FROM com_project_audit a left join com_project c on a.audit_object_id=c.id left join com_unit d on c.app_unit_id=d.id left join com_unit g on substring(d.tree_code, 1, 10) = g.tree_code left join com_person e on c.app_person_id=e.id left join system_parameter p on c.knowledge_id = p.id left join system_parameter p1 on p.parent_id = p1.id <where> ${ew.sqlSegment} </where> </select> <select id="getTaskAuditListByPage" resultType="com.yiboshi.science.param.dto.ComProjectAuditDTO"> SELECT a.*,c.id proj_id,c.proj_name,c.proj_no,c.version_no,c.app_no,c.proj_class,c.start_date,c.end_date,c.proj_state,d.unit_name app_unit_name,e.person_name app_person_name FROM com_project_audit a left join com_project_test b on a.audit_object_id=b.id left join com_project c on b.proj_id=c.id left join com_unit d on c.app_unit_id=d.id left join com_person e on c.app_person_id=e.id <where> ${ew.sqlSegment} </where> </select> <select id="getCheckAuditListByPage" resultType="com.yiboshi.science.param.dto.ComProjectAuditDTO"> SELECT a.*,c.id proj_id,c.proj_name,c.proj_no,c.version_no,c.proj_class,c.start_date,c.end_date,c.proj_state,d.unit_name app_unit_name,e.person_name app_person_name FROM com_project_audit a left join com_project_check b on a.audit_object_id=b.id left join com_project c on b.proj_id=c.id left join com_unit d on c.app_unit_id=d.id left join com_person e on c.app_person_id=e.id <where> ${ew.sqlSegment} </where> </select> <select id="getConclusionAuditListByPage" resultType="com.yiboshi.science.param.dto.ComProjectAuditDTO"> SELECT a.*,c.id proj_id,c.proj_name,c.proj_no,c.version_no,c.app_no,c.proj_class,c.start_date,c.end_date,c.proj_state,c.total_score,c.average_score,c.knowledge_id, d.unit_name app_unit_name,e.person_name app_person_name,p.name as knowledgeName,p1.name as knowledgeParentName, (case when g.unit_name = d.unit_name then '直属' else REPLACE(g.unit_name,'卫生健康局','') end) as upUnitName FROM com_project_audit a left join com_project_conclusion j on a.audit_object_id=j.id left join com_project c on j.proj_id=c.id left join com_unit d on c.app_unit_id=d.id left join com_unit g on substring(d.tree_code, 1, 10) = g.tree_code left join com_person e on c.app_person_id=e.id left join system_parameter p on c.knowledge_id = p.id left join system_parameter p1 on p.parent_id = p1.id <where> ${ew.sqlSegment} </where> </select> <select id="getConclusionAuditCount" resultType="com.yiboshi.science.param.dto.DataStatisticsDTO"> SELECT ifnull(sum(case when a.audit_result=1 then 1 else 0 end),0) count1, ifnull(sum(case when a.audit_result=10 then 1 else 0 end),0) count2, ifnull(sum(case when a.audit_result =30 then 1 else 0 end),0) count3, ifnull(sum(case when a.audit_result =20 then 1 else 0 end),0) count4, ifnull(sum(case when a.id is not null then 1 else 0 end),0) count5 FROM com_project_audit a left join com_project_conclusion j on a.audit_object_id=j.id left join com_project c on j.proj_id=c.id <where> ${ew.sqlSegment} </where> </select> <select id="getMaxUnitLevelByObjectId" parameterType="java.lang.String" resultType="java.lang.Integer"> select max(unit_level) from com_project_audit where audit_object_id= #{objectId} </select> <select id="getMaxAuditIndex" parameterType="java.lang.String" resultType="Integer"> select ifnull(max(show_index),0) AS show_index from com_project_audit where audit_object_id=#{auditObjectId} </select> <select id="getCount" resultType="com.yiboshi.science.param.dto.DataStatisticsDTO"> SELECT ifnull(sum(case when a.audit_result=1 then 1 else 0 end),0) count1, ifnull(sum(case when a.audit_result=10 then 1 else 0 end),0) count2, ifnull(sum(case when a.audit_result=30 then 1 else 0 end),0) count3, ifnull(sum(case when a.audit_result =20 then 1 else 0 end),0) count4, ifnull(sum(case when a.id is not null then 1 else 0 end),0) count5 FROM com_project_audit a left join com_project c on a.audit_object_id=c.id <where> ${ew.sqlSegment} </where> </select> <select id="getCountByDay" resultType="com.yiboshi.science.param.dto.DataStatisticsDTO"> SELECT count(1) count1 FROM com_project_audit a left join com_project c on a.audit_object_id=c.id <where> ${ew.sqlSegment} and TO_DAYS(a.created) = TO_DAYS(NOW()) </where> </select> <select id="getTreeCodeProjectCount" resultType="com.yiboshi.science.param.dto.DataStatisticsDTO"> select unit_name title,ifnull(s.count,0) count1 from com_unit a left join (select tree_code,sum(count) count from(select case when LENGTH(e.tree_code)>(LENGTH(#{treeCode})+5) then SUBSTR(e.tree_code,1,(LENGTH(#{treeCode})+5)) else e.tree_code end tree_code,count(1) count FROM com_project_audit a left join com_project c on a.audit_object_id=c.id left join com_unit d on c.app_unit_id=d.id left join com_unit e on SUBSTR(d.tree_code,1,LENGTH(d.tree_code)-5)=e.tree_code <where> ${ew.sqlSegment} </where> group by e.tree_code)as t group by t.tree_code) s on s.tree_code=a.tree_code where a.unit_type=0 and (SUBSTR(a.tree_code,1,LENGTH(a.tree_code)-5)= #{treeCode} or a.tree_code= #{treeCode}) order by a.tree_code -- length(a.tree_code) <![CDATA[ <= ]]> 10 </select> <select id="getKnowledgeCount" resultType="com.yiboshi.science.param.dto.DataStatisticsDTO"> select e.name title,count(1) count1 FROM com_project_audit a left join com_project c on a.audit_object_id=c.id left join system_parameter d on c.knowledge_id =d.id left join system_parameter e on e.id=d.parent_id <where> ${ew.sqlSegment} </where> group by e.id </select> <select id="getFirstAuditPassCount" resultType="com.yiboshi.science.param.dto.DataStatisticsDTO"> SELECT ifnull(sum(case when c.assign_state is null or c.assign_state=0 then 1 else 0 end),0) count1, ifnull(sum(case when c.assign_state=1 then 1 else 0 end),0) count2, ifnull(sum(case when to_days(a.updated) = to_days(now()) then 1 else 0 end),0) count3, ifnull(sum(case when a.id is not null then 1 else 0 end),0) count5 FROM com_project_audit a left join com_project c on a.audit_object_id=c.id <where> ${ew.sqlSegment} </where> </select> <select id="getAuditProjectList" resultType="com.yiboshi.science.param.dto.ComProjectAuditDTO"> SELECT c.id,c.id proj_id,c.proj_name,c.proj_no,c.version_no,c.proj_class,c.report_year,c.start_date,c.end_date,c.proj_state, d.unit_name app_unit_name,e.person_name app_person_name,c.proj_state FROM com_project_audit a left join com_project c on a.audit_object_id=c.id left join com_unit d on c.app_unit_id=d.id left join com_person e on c.app_person_id=e.id <where> ${ew.sqlSegment} </where> </select> <select id="getProjectStatisticListByPage" resultType="com.yiboshi.science.param.dto.ComProjectAuditDTO"> SELECT a.audit_result,c.id,c.id proj_id,c.proj_name,c.proj_no,c.version_no,c.proj_class,c.report_year,c.start_date,c.end_date,c.proj_state,c.app_unit_id, d.unit_name app_unit_name,e.person_name app_person_name,c.proj_state, (case when g.unit_name = d.unit_name then '直属' else REPLACE(g.unit_name,'卫生健康局','') end) as upUnitName FROM com_project_audit a left join com_project c on a.audit_object_id=c.id left join com_unit d on c.app_unit_id=d.id left join com_unit g on substring(d.tree_code, 1, 10) = g.tree_code left join com_person e on c.app_person_id=e.id left join system_parameter p on c.knowledge_id = p.id left join system_parameter p1 on p.parent_id = p1.id <where> ${ew.sqlSegment} </where> </select> <select id="getTaskStatisticListByPage" resultType="com.yiboshi.science.param.dto.ComProjectAuditDTO"> SELECT b.id,c.id proj_id,c.proj_name,c.proj_no,c.version_no,c.proj_class,c.report_year,c.start_date,c.end_date,c.proj_state, d.unit_name app_unit_name,e.person_name app_person_name,ifnull(b.test_state,0) test_state FROM com_project_audit a left join com_project c on a.audit_object_id=c.id and c.proj_state=50 left join com_project_test b on c.id=b.proj_id left join com_unit d on c.app_unit_id=d.id left join com_person e on c.app_person_id=e.id <where> ${ew.sqlSegment} </where> </select> <select id="getCheckStatisticListByPage" resultType="com.yiboshi.science.param.dto.ComProjectAuditDTO"> SELECT b.id,c.id proj_id,c.proj_name,c.proj_no,c.version_no,c.proj_class,c.report_year,c.start_date,c.end_date,c.proj_state, d.unit_name app_unit_name,e.person_name app_person_name,b.check_year,b.check_state FROM com_project_audit a left join com_project c on a.audit_object_id=c.id and c.proj_state=50 left join com_project_check b on c.id=b.proj_id left join com_unit d on c.app_unit_id=d.id left join com_person e on c.app_person_id=e.id <where> ${ew.sqlSegment} </where> </select> <select id="getAssignPersonCount" resultType="com.yiboshi.science.param.dto.DataStatisticsDTO"> select ifnull(count(*), 0) count1, ifnull(sum(case when a.audit_state !=2 then 1 else 0 end),0) count2, ifnull(sum(case when a.audit_state =2 then 1 else 0 end),0) count3, ifnull(sum(case when to_days(a.updated) = to_days(now()) then 1 else 0 end),0) count4 from com_project_assign a left join com_project b on a.proj_id = b.id where a.assign_year = #{assignYear} and b.proj_type = #{projType} </select> <select id="getKnowledgeStatistic" resultType="com.yiboshi.science.param.dto.KnowledgeStatisticsDTO"> select tabA.*, IFNULL(tabB.count1,0) as knowledgeCount from (select a.id as knowledge1Id, a.name as knowledge1Name, b.id as knowledge2Id, b.name as knowledge2Name, b.display_order as displayOrder from system_parameter a left join system_parameter b on a.id = b.parent_id where a.type_id = 56 and a.note_state = 1 and b.type_id = 57 and b.note_state = 1 order by a.display_order, b.display_order) as tabA left join (select d.id as knowledge2Id, count(1) as count1 from com_project_audit a left join com_project c on a.audit_object_id=c.id left join system_parameter d on c.knowledge_id =d.id <where> ${ew.sqlSegment} </where> and d.note_state = 1 group by d.id) as tabB on tabA.knowledge2Id = tabB.knowledge2Id where IFNULL(tabB.count1,0) != 0 order by tabA.knowledge1Id, tabA.displayOrder </select> <select id="getUnAssignProjectListByPage" resultType="com.yiboshi.science.param.dto.ComProjectAuditDTO"> SELECT a.*,c.id proj_id,c.proj_name,c.proj_no,c.version_no,c.app_no,c.proj_class,c.start_date,c.end_date,c.proj_state,c.total_score,c.average_score,c.knowledge_id, d.unit_name app_unit_name,e.cert_id,e.person_name app_person_name,p.name as knowledgeName FROM com_project_audit a left join com_project c on a.audit_object_id=c.id left join com_unit d on c.app_unit_id=d.id left join com_person e on c.app_person_id=e.id left join system_parameter p on c.knowledge_id = p.id left join system_parameter p1 on p.parent_id = p1.id <where> ${ew.sqlSegment} </where> and c.id not in (select proj_id from com_project_group_detail where group_id in (select id from com_project_group where group_year = #{reportYear})) </select> <select id="getProjectGroupKnowledgeId" resultType="com.yiboshi.science.param.dto.ComProjectGroupDetailDTO"> select distinct knowledge_id from com_project_group_detail where group_id in (select id from com_project_group where group_year = #{reportYear}) </select> <select id="getProjectExpertGroupStatistic" resultType="com.yiboshi.science.param.dto.projectExpertGroupStatisticDTO"> select tabA.*, IFNULL(tabB.count1,0) as knowledgeCount, tabC.id as groupId, tabC.group_name as groupName from ( select a.id as knowledge1Id, a.name as knowledge1Name, b.id as knowledge2Id, b.name as knowledge2Name from system_parameter a left join system_parameter b on a.id = b.parent_id where a.type_id = 56 and a.note_state = 1 and b.type_id = 57 and b.note_state = 1 order by a.display_order, b.display_order) as tabA left join ( select d.id as knowledge2Id, count(1) as count1 from com_project_audit a left join com_project c on a.audit_object_id=c.id left join system_parameter d on c.knowledge_id =d.id <where> ${ew.sqlSegment} </where> group by d.id) as tabB on tabA.knowledge2Id = tabB.knowledge2Id left join ( select distinct a.id, a.group_name, a.display_order as displayOrder, b.knowledge_id as knowledge2Id from com_project_group a left join com_project_group_detail b on a.id = b.group_id where a.group_year = #{groupYear}) as tabC on tabA.knowledge2Id = tabC.knowledge2Id where IFNULL(tabB.count1,0) != 0 and tabC.id is not null order by tabC.displayOrder </select> <select id="getExpertInfoByGroupId" resultType="com.yiboshi.science.param.dto.ComPersonDTO"> select cert_id, person_name, b.unit_name from com_person a left join com_unit b on a.unit_id = b.id where a.id in ( select person_id from com_expert where id in ( select expert_id from com_project_group_assign where group_id = #{groupId})) </select> <select id="getEvaluationStatistic" resultType="com.yiboshi.science.param.dto.EvaluationStatisticDTO"> select b.proj_id, a.proj_no, a.app_no, a.proj_name, f.name as knowledge_name, ifnull(h.unit_name, '省直属') as unit_name, c.id as expert_id, c.person_id, d.cert_id, d.person_name, e.unit_name as expert_unit_name, d.mobile, b.total_score, b.remark, b.audit_state, a.average_score from com_project_assign b left join com_project a on a.id = b.proj_id left join com_expert c on b.expert_id = c.id left join com_person d on c.person_id = d.id left join com_unit e on d.unit_id = e.id left join system_parameter f on a.knowledge_id = f.id left join com_unit g on a.app_unit_id = g.id left join com_unit h on substring(g.tree_code, 1, 10) = h.tree_code and h.unit_type = 0 where b.assign_year = #{reportYear} order by a.proj_no, a.proj_name </select> <select id="getProjectGroupScoreOrder" resultType="com.yiboshi.science.param.dto.ProjectGroupScoreOrderDTO"> select a.id as group_id, a.group_name, a.display_order, b.proj_id, c.proj_no, c.proj_name, f.name as knowledge_name, ifnull(h.unit_name, '省直属') as unit_name, d.person_name, e.unit_name as app_unit_name, c.average_score from com_project_group a left join com_project_group_detail b on a.id = b.group_id left join com_project c on b.proj_id = c.id left join com_person d on c.app_person_id = d.id left join com_unit e on c.app_unit_id = e.id left join system_parameter f on c.knowledge_id = f.id left join com_unit g on c.app_unit_id = g.id left join com_unit h on substring(g.tree_code, 1, 10) = h.tree_code and h.unit_type = 0 where a.group_year = #{reportYear} order by a.display_order, c.average_score desc </select> </mapper>