src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
@@ -24,27 +24,56 @@
  <update id="updateInfo" parameterType="java.util.Map">
    update sys_laboratory_container set temp=#{temp},humidity=#{humidity},voc1=#{voc1},flag=#{flag} where id=#{containerId}
  </update>
  <update id="delSlcIds" parameterType="java.util.List">
    update sys_laboratory_container set valid_flag=0, update_time=now()
    where laboratory_id in
    <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
      #{item}
    </foreach>
  </update>
  <select id="getSysLaboratoryContainerInfoList" parameterType="java.util.Map"  resultMap="SysLaboratoryContainer" >
    select container_code,name,valid_flag,type,character_left,character_right from sys_laboratory_container where update_time >= #{startTime} and #{endTime} > update_time
  </select>
  <select id="getSysLaboratoryContainer" parameterType="java.lang.String"  resultMap="SysLaboratoryContainer" >
    select su.*,ss.name as laboratoryName, ss.type as laboratoryType  from sys_laboratory_container as su
    select su.*,ss.name as laboratoryName, ss.type as laboratoryType ,su.project project
    from sys_laboratory_container as su
    left join sys_laboratory as ss on su.laboratory_id = ss.id
    where su.id = #{id} and su.valid_flag = 1
    where su.id = #{id}
    and su.valid_flag = 1
    and ss.valid_flag = 1
  </select>
  <select id="getSysLaboratoryContainerByContainerCode" parameterType="java.lang.String" resultMap="SysLaboratoryContainer">
    select * from sys_laboratory_container
    where container_code = #{containerCode} and valid_flag = 1
     SELECT
     sys_laboratory_container.*
     FROM
     sys_laboratory_container
     LEFT JOIN sys_laboratory on sys_laboratory.id = sys_laboratory_container.laboratory_id
     WHERE
     sys_laboratory_container.container_code = #{containerCode}
     AND sys_laboratory_container.valid_flag = 1
     AND sys_laboratory.valid_flag = 1
  </select>
  <select id="updateSysLabContainer" parameterType="java.util.Map" >
    update sys_laboratory_container slc
    set slc.controller_code = #{code}
    WHERE  slc.controller_code =  (
    SELECT  sc.controller_code
    from sys_controller sc
    WHERE sc.id = #{id}
    and sc.valid_flag = 1)
    and slc.valid_flag  = 1
  </select>
  <select id="getSysLaboratoryContainerList" parameterType="java.util.Map" resultMap="SysLaboratoryContainer">
    select su.*,ss.name as laboratoryName, ss.type as laboratoryType,sc.controller_name as controllerName  from sys_laboratory_container as su
    select su.*,ss.name as laboratoryName, ss.type as laboratoryType,sc.controller_name as controllerName,su.project as project  from sys_laboratory_container as su
    left join sys_laboratory as ss on su.laboratory_id = ss.id
    left join sys_controller sc on sc.controller_code=su.controller_code
    where su.valid_flag = 1
    AND sc.valid_flag = 1
    AND ss.valid_flag = 1
    <if test="laboratoryType != null and laboratoryType != ''">
      and ss.type = #{laboratoryType}
    </if>
@@ -54,10 +83,55 @@
    <if test="laboratoryName != null and laboratoryName != ''">
      and ss.name like #{laboratoryName}
    </if>
    <if test="project != null and project != ''">
      and su.project like concat("%",#{project},"%")
    </if>
    <if test="controllerName != null and controllerName != ''">
      and sc.controller_name like concat("%",#{controllerName},"%")
    </if>
    order by ss.name ASC,sc.controller_name,su.container_code,su.name
    <if test="first != null and pageSize != null">
      limit #{first}, #{pageSize}
    </if>
  </select>
  <select id="exportExcelList" parameterType="java.util.Map" resultType="java.util.Map">
    SELECT
    bm2.meta_value labType,
    sl.NAME labName,
    sc.controller_name controlName,
    slc.container_code containerCode,
    bm1.meta_value containerType ,
    slc.info_code infoCode ,
    bm3.meta_value structure,
    slc.`name` name,
    slc.project
    FROM
    sys_laboratory_container slc
    LEFT JOIN base_meta bm1 ON bm1.id = slc.type
    LEFT JOIN sys_laboratory sl ON sl.id = slc.laboratory_id
    LEFT JOIN base_meta bm2 ON bm2.id = sl.type
    LEFT JOIN sys_controller sc ON slc.controller_code = sc.controller_code
    LEFT JOIN base_meta bm3 on bm3.id = slc.structure
    WHERE
    slc.valid_flag = 1
    AND sc.valid_flag = 1
    AND sl.valid_flag = 1
    <if test="type != null and type != ''">
     and sl.type = #{type}
    </if>
    <if test="name != null and name != ''">
      and sl.name like concat("%",#{name},"%")
    </if>
    <if test="project != null and project != ''">
      and slc.project like concat("%",#{project},"%")
    </if>
    <if test="controllerName != null and controllerName != ''">
      and sc.controller_name like concat("%",#{controllerName},"%")
    </if>
    order by sl.name ASC,sc.controller_name,slc.container_code,slc.name
  </select>
  <select id="getSysLaboratoryContainerTotalCount" parameterType="java.util.Map" resultType="int">
@@ -65,6 +139,8 @@
    left join sys_laboratory as ss on su.laboratory_id = ss.id
    left join sys_controller sc on sc.controller_code=su.controller_code
    where su.valid_flag = 1
    AND sc.valid_flag = 1
    AND ss.valid_flag = 1
    <if test="laboratoryType != null and laboratoryType != ''">
      and ss.type = #{laboratoryType}
    </if>
@@ -80,17 +156,23 @@
    <if test="editId != null and editId != ''">
      and su.id != #{editId}
    </if>
    <if test="project != null and project != ''">
      and su.project like concat("%",#{project},"%")
    </if>
    <if test="controllerName != null and controllerName != ''">
      and sc.controller_name like concat("%",#{controllerName},"%")
    </if>
  </select>
  <insert id="insertSysLaboratoryContainer" parameterType="com.nanometer.smartlab.entity.SysLaboratoryContainer">
    insert into sys_laboratory_container(id, laboratory_id, type, container_code, info_code, structure, name, valid_flag, character_left, character_right, create_time, update_time, controller_code)
    values (#{id}, #{laboratoryId}, #{type}, #{containerCode}, #{infoCode}, #{structure}, #{name}, 1, #{characterLeft}, #{characterRight}, now(), now(), #{controllerCode})
    insert into sys_laboratory_container(id, laboratory_id, type, container_code, info_code, structure, name, valid_flag, character_left, character_right, create_time, update_time, controller_code,project)
    values (#{id}, #{laboratoryId}, #{type}, #{containerCode}, #{infoCode}, #{structure}, #{name}, 1, #{characterLeft}, #{characterRight}, now(), now(), #{controllerCode},#{project})
  </insert>
  <update id="updateSysLaboratoryContainer" parameterType="com.nanometer.smartlab.entity.SysLaboratoryContainer">
    update sys_laboratory_container set laboratory_id=#{laboratoryId}, type=#{type}, container_code=#{containerCode}, info_code=#{infoCode},
    structure=#{structure}, name=#{name}, character_left=#{characterLeft}, character_right=#{characterRight},controller_code=#{controllerCode},
    update_time=now()
    update_time=now(),project = #{project}
    where id=#{id}
  </update>
@@ -142,15 +224,15 @@
  <select id="getContainerPersonInCharge" parameterType="java.lang.String" resultType="java.util.Map">
    SELECT slc.container_code containCode,su.name name,su.phone phone,
CONCAT(sl.location1,"-",sl.location2) location
FROM sys_laboratory_container slc
LEFT JOIN sys_laboratory sl on sl.id = slc.laboratory_id
LEFT JOIN sys_user su on su.department = sl.department
LEFT JOIN base_role br on br.id = su.role_id
WHERE slc.container_code = #{containerCode}
and su.valid_flag =1
and br.`name` = '实验负责人'
    CONCAT(sl.location1,"-",sl.location2) location
    FROM sys_laboratory_container slc
    LEFT JOIN sys_laboratory sl on sl.id = slc.laboratory_id
    LEFT JOIN sys_user su on su.department = sl.department
    LEFT JOIN base_role br on br.id = su.role_id
    WHERE slc.container_code = #{containerCode}
    and su.valid_flag =1
    and sl.valid_flag =1
    and br.`name` = '实验负责人'
  </select>
@@ -164,6 +246,29 @@
  LEFT JOIN sys_laboratory sl on sl.id = slc.laboratory_id
  WHERE slc.container_code = #{containerCode}
  and slc.valid_flag = 1
  and sl.valid_flag = 1
  </select>
  <select id="selectProjectsByContainerCode" resultType="java.lang.String">
  SELECT
   slc.project
    FROM
   sys_laboratory_container AS slc
    LEFT JOIN sys_laboratory sl ON sl.id = slc.laboratory_id
    WHERE
   slc.container_code = #{0}
    AND slc.valid_flag = 1
    AND sl.valid_flag = 1
  </select>
  <select id="getSysLaboratoryContainerExist" resultType="java.lang.Integer">
    select count(1)
    from sys_laboratory_container as su
    where su.valid_flag = 1
    <if test="containerCode != null and containerCode != ''">
      and su.container_code = #{containerCode}
    </if>
    <if test="editId != null and editId != ''">
      and su.id != #{editId}
    </if>
  </select>
</mapper>