zouyu
2025-03-19 3647aa5008055528f075ee73002542a1399575ae
performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml
@@ -6,18 +6,19 @@
        <result column="name" property="name"/>
        <result column="shift_time" property="shiftTime"/>
        <result column="user_id" property="userId" />
        <result column="department" property="department" />
        <result column="dept_id" property="department" />
    </resultMap>
    <select id="performanceShiftPage" resultMap="performanceShiftPageMap">
        SELECT
        if(u2.department is not null and u2.department != '', CONCAT(u2.name, '(', u2.department, ')'), u2.name) name,
        <!--if(u2.dept_id is not null and u2.dept_id != '', CONCAT(u2.name, '(', u2.dept_id, ')'), u2.name) name,-->
        u2.name name,
        GROUP_CONCAT(s.work_time, ':', s.shift, ':', s.id order by s.work_time SEPARATOR ';') AS shift_time, u2.id user_id
        FROM performance_shift s
        LEFT JOIN (SELECT distinct u.* from
        user u
        left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id)
        where state=1
        where status=0
        <if test="laboratory != null and laboratory != ''">
          and   dl.name=#{laboratory}
        </if>
@@ -31,8 +32,8 @@
                and u2.name like concat('%', #{userName}, '%')
            </if>
        </where>
        order by s.create_time
        GROUP BY u2.id
        order by s.create_time
    </select>
    <select id="performanceShiftYearPage" resultType="map">
@@ -42,7 +43,7 @@
        LEFT JOIN (SELECT u.* from
        user u
        left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id)
        where state=1
        where status=0
        <if test="laboratory != null and laboratory != ''">
            and   dl.name=#{laboratory}
        </if>
@@ -60,7 +61,7 @@
    </select>
    <select id="performanceShiftYear" resultType="java.util.Map">
        SELECT if(u2.department is not null and u2.department != '', CONCAT(u2.name, '(', u2.department, ')'), u2.name) name,
        SELECT if(u2.dept_id is not null and u2.dept_id != '', CONCAT(u2.name, '(', u2.dept_id, ')'), u2.name) name,
        s.user_id, u2.account,
        DATE_FORMAT(s.work_time, '%c') work_time,
        GROUP_CONCAT(DATE_FORMAT(s.work_time, '%c'), ':', s.shift order by s.work_time SEPARATOR ';') month_str
@@ -68,7 +69,7 @@
        LEFT JOIN (SELECT u.* from
        user u
        left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id)
        where state=1
        where status=0
        <if test="laboratory != null and laboratory != ''">
            and   dl.name=#{laboratory}
        </if>
@@ -109,8 +110,9 @@
    <select id="performanceShiftList" resultMap="performanceShiftPageMap">
        SELECT
        if(u.department is not null and u.department != '', CONCAT(u.name, '(', u.department, ')'), u.name) name,
        GROUP_CONCAT(s.work_time, ':', s.shift, ':', s.id order by s.work_time SEPARATOR ';') AS shift_time, u.id user_id, u.department
        <!--if(u.department is not null and u.department != '', CONCAT(u.name, '(', u.department, ')'), u.name) name,-->
            u.name name,
        GROUP_CONCAT(s.work_time, ':', s.shift, ':', s.id order by s.work_time SEPARATOR ';') AS shift_time, u.id user_id, u.dept_id
        FROM performance_shift s
        LEFT JOIN user u on u.id = s.user_id
        <where>
@@ -123,8 +125,8 @@
            <if test="laboratory != null and laboratory != ''">
            </if>
        </where>
        order by s.create_time
        GROUP BY u.id
        order by s.create_time
    </select>
    <select id="seldepLimsId" resultType="java.lang.String">
@@ -132,4 +134,23 @@
        from department_lims
        where id = #{depLimsId}
    </select>
    <select id="selectLaboratory" resultType="java.lang.String">
        select laboratory_name
        from laboratory
        where id = #{laboratoryId}
    </select>
    <select id="findUserList" resultType="map">
        select
            u.id,
            u.name,
            dl.name as depName
        from user u
                 left join department_lims dl
                           on FIND_IN_SET(dl.id,u.depart_lims_id)
        where dl.name in('通信产品实验室','电力产品实验室','检测办')
          and u.status = 0
          and u.is_custom = 0
    </select>
</mapper>