lyfO_o
2021-12-13 19ff5993c13a86934fe29b3a58a88d29258dfda5
货柜预警:判断重复插入
已修改3个文件
31 ■■■■ 文件已修改
src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.java
@@ -3,17 +3,23 @@
import com.nanometer.smartlab.entity.SysAlarm;
import java.sql.Timestamp;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import org.springframework.dao.DataAccessException;
public interface SysAlarmDao {
    public void insertSysAlarm(SysAlarm sysAlarm) throws DataAccessException;
    public List<SysAlarm> getSysAlarmList(Map params);
    public int getSysAlarmTotalCount(Map params);
    int selectOne(@Param("containerCode") String containerCode,
                  @Param("controllerCode") String controllerCode,
                  @Param("warningId") String warningId,
                  @Param("warningTime")Timestamp warningTime);
}
src/main/java/com/nanometer/smartlab/dao/SysAlarmDao.xml
@@ -28,9 +28,9 @@
    insert into sys_alarm(container_code, warning_id, warning_time, warning_level, controller_code)
    values (#{containerCode}, #{warningId}, #{warningTime}, #{warningLevel}, #{controllerCode})
  </insert>
  <select id="getSysAlarmList" parameterType="java.util.Map" resultMap="SysAlarm">
    select sw.*,bm2.meta_value as type,sl.name as typeName,bm.meta_value as warningName from sys_alarm as sw
    select sw.*,bm2.meta_value as type,sl.name as typeName,bm.meta_value as warningName from sys_alarm as sw
    left join sys_laboratory_container as slc on sw.container_code = slc.container_code
    left join sys_laboratory as sl on slc.laboratory_id = sl.id
    left join base_meta as bm on sw.warning_id = bm.id
@@ -47,4 +47,13 @@
    select count(1) from sys_alarm
    <include refid="queryWhereSql"/>
  </select>
    <select id="selectOne" resultType="java.lang.Integer">
        select count(0)
        from sys_alarm
        where container_code = #{containerCode}
        and warning_id = #{warningId}
        and controller_code =#{controllerCode}
        and warning_time = #{warningTime}
    </select>
</mapper>
src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -1353,9 +1353,11 @@
            } catch (ParseException e) {
                throw new ApiException(ApiStatus.PARAM_ERR);
            }
            //判断是否重复
            if (sysAlarmDao.selectOne(containerCode, controllerCode, sysAlarm.getWarningId(), sysAlarm.getWarningTime()) > 0) {
                continue;
            }
            sysAlarmDao.insertSysAlarm(sysAlarm);
            try {
                if (enable && "01".equals(warningId)) {
                    SysLaboratory sysLaboratory = sysLaboratoryService.getSysLaboratory(LaboratoryContainer.getLaboratoryId());