KAK

List<RptCapMachroom> queryIDCFilterListPage(PageBean<RptCapMachroom> page);

    <select id="queryIDCFilterListPage" parameterType="PageBean" resultType="RptCapMachroom">
      
      /*合计能耗*/
SELECT 
   tmp.*,
   <![CDATA[  case when lv.alarmLimit_flag1 >= tmp.pue and tmp.pue>= 1 then 1
          when lv.alarmLimit_flag2 >= tmp.pue and tmp.pue > lv.alarmLimit_flag1 then 2
          when lv.alarmLimit_flag3 >= tmp.pue and tmp.pue > lv.alarmLimit_flag2 then 3
          when lv.alarmLimit_flag3 < tmp.pue then 4
          else 0
   end pueFlag ,
    case when lv.alarmLimit_flag1 >= tmp.pue and tmp.pue>= 1 then '正常'
          when lv.alarmLimit_flag2 >= tmp.pue and tmp.pue > lv.alarmLimit_flag1 then lv.alarmLimit_msg1
          when lv.alarmLimit_flag3 >= tmp.pue and tmp.pue > lv.alarmLimit_flag2 then lv.alarmLimit_msg2
          when lv.alarmLimit_flag3 < tmp.pue  then lv.alarmLimit_msg3
          else '异常'
   end pueFlagStr   ]]>
 from
(
      SELECT
      tmp1.machroomID,
      tmp1.machName,
      tmp1.totalUsage,
      NVL(IF(tmp1.mainUsage>0,tmp1.mainUsage,0),0) as mainUsage,
      NVL(tmp1.airconUsage,0) as airconUsage,
      NVL(tmp1.otherUsage,0) as otherUsage,
      case when tmp1.mainUsage = 0 or ISNULL(tmp1.mainUsage) then 0 ELSE
             NVL(round((tmp1.totalUsage / IF(tmp1.mainUsage>0,tmp1.mainUsage,0)),2),0)
         end pue,

      NVL(tmp2.mainRead,0) as mainRead,
      NVL(tmp2.airconRead,0) as airconRead,
      NVL(tmp2.otherRead,0) as otherRead,
      NVL(tmp2.totalRead,0) as totalRead,
      NVL(tmp2.temperature,0) as temperature,
      tmp2.readtime/*最后一天日期*/
      from 
      (
         select 
                  t2.machName as machName,
                  ROUND(NVL(SUM(IF(t1.total_usage >0,t1.total_usage,null)),NVL(sum(t1.main_usage+t1.aircon_usage+t1.other_usage),0)),2)  as totalUsage,/*总耗电量*/
                  -- ROUND(NVL(sum(t1.main_usage),0),2)  as mainUsage2,/*主设备耗电量*/
                  ROUND(
                     IF(
                        (sum(t1.main_usage)=0 OR ISNULL(sum(t1.main_usage))),
                        IF(sum(t1.aircon_usage)=0 or ISNULL(sum(t1.aircon_usage)),
                           0,
                           ROUND(NVL(SUM(IF(t1.total_usage >0,t1.total_usage,null)),NVL(sum(t1.main_usage+t1.aircon_usage+t1.other_usage),0)),2)
                           -ROUND(NVL(sum(t1.aircon_usage),0),2)
                           -ROUND(NVL(sum(t1.other_usage),0),2)
                        ),
                        sum(t1.main_usage)
                     )
                  ,2) as mainUsage,/*主设备耗电量*/  
                  ROUND(NVL(sum(t1.aircon_usage),0),2)  as airconUsage,/*空调设备耗电量*/
                  ROUND(NVL(sum(t1.other_usage),0),2)  as otherUsage,/*其他设备耗电量*/
                  t1.machroomID as machroomID,
                  to_char(t1.readtime,'yyyy-MM-dd') readtime,
                  5 buildtype
               from rpt_cap_machroom t1
               left join res_machroom t2 on t1.machroomID = t2.zgID
               <!-- 权限 -->
               <where>
                  <if test="params.userIdForPerm != null and params.userIdForPerm != '' ">
                     EXISTS (
                        select 'X' from view_user_region_perm vurp where vurp.user_id = #{params.userIdForPerm} and vurp.region_perm_id = t2.regionID
                        /*同时传递的查询区域过滤条件*/
                        <if test="params.regionid != null and params.regionid != '' ">
                           and vurp.region_perm_id like CONCAT(${params.regionid},'%')
                        </if>
                     )
                  </if>
                  and t2.machroomType = 3
                  <if test="params.readtimeFrom != null and params.readtimeFrom != '' ">  <![CDATA[ and t1.readtime >= #{params.readtimeFrom} ]]></if>
                  <if test="params.readtimeTo != null and params.readtimeTo != '' ">  <![CDATA[ and t1.readtime <= #{params.readtimeTo} ]]></if>
                  <if test="(params.readtimeFrom == null or params.readtimeFrom == '' ) and (params.readtimeTo == null or params.readtimeTo == '')"> 
                      <![CDATA[ and t1.readtime = CURDATE() ]]>
                   </if>
                  <if test="params.machname != null and params.machname != '' ">  <![CDATA[ and t2.machName like CONCAT('%',#{params.machname},'%') ]]></if>
               </where>
         group by t2.zgid 
         order by t2.zgID,t1.readtime desc
      )tmp1 left join 
      (
         /*传递日期的那天 最后读数:最后温度 最后读数*/
         SELECT tmp1.machroomID,NVL(tmp1.total_read,0) as totalRead,NVL(tmp1.main_read,0) as mainRead,NVL(tmp1.aircon_read,0) as airconRead,NVL(tmp1.other_read,0) as otherRead,NVL(tmp1.temperature,0) temperature,to_char(tmp1.readtime,'yyyy-MM-dd') readtime FROM rpt_cap_machroom tmp1,
         (
            SELECT t1.machroomID, MAX(t1.readtime) readtime FROM rpt_cap_machroom t1 left join res_machroom t2 on t1.machroomID = t2.zgID  
             <where>
                  <if test="params.userIdForPerm != null and params.userIdForPerm != '' ">
                     EXISTS (
                        select 'X' from view_user_region_perm vurp where vurp.user_id = #{params.userIdForPerm} and vurp.region_perm_id = t2.regionID
                        /*同时传递的查询区域过滤条件*/
                        <if test="params.regionid != null and params.regionid != '' ">
                           and vurp.region_perm_id like CONCAT(${params.regionid},'%')
                        </if>
                     )
                  </if>
                  and t2.machroomType = 3
                  <if test="params.readtimeFrom != null and params.readtimeFrom != '' ">  <![CDATA[ and t1.readtime >= #{params.readtimeFrom} ]]></if>
                  <if test="params.readtimeTo != null and params.readtimeTo != '' ">  <![CDATA[ and t1.readtime <= #{params.readtimeTo} ]]></if>
                  <if test="(params.readtimeFrom == null or params.readtimeFrom == '' ) and (params.readtimeTo == null or params.readtimeTo == '')"> 
                      <![CDATA[ and t1.readtime = CURDATE() ]]>
                   </if>
            </where>
            GROUP BY t1.machroomID
         ) tmp2
         WHERE tmp1.machroomID = tmp2.machroomID AND tmp1.readtime = tmp2.readtime
      )tmp2 on tmp1.machroomID = tmp2.machroomID
      order by tmp1.machroomID 
)tmp ,view_pue_alarm lv
order by tmp.machroomID 
   </select>
   
   
   <select id="queryFilterListPage" parameterType="PageBean" resultType="RptCapMachroom">
      SELECT
         tmp.*,
         <![CDATA[
         (case when 1.4 >= tmp.pue and tmp.pue>= 1 then 1
             when 1.8 >= tmp.pue and tmp.pue > 1.4 then 2
             when 2.5 >= tmp.pue and tmp.pue > 1.8 then 3
             when 2.5 < tmp.pue then 4
             else 0
         end) pueFlag ,
         (case when 1.4 >= tmp.pue and tmp.pue>= 1 then '正常'
             when 1.8 >= tmp.pue and tmp.pue > 1.4 then '一般'
             when 2.5 >= tmp.pue and tmp.pue > 1.8 then '重要'
             when 2.5 < tmp.pue  then '严重'
             else '异常'
         end) pueFlagStr
         ]]>
      FROM (
         SELECT
            tmp1.machroomID,
            tmp1.zgid,
            tmp1.machName,
            tmp1.totalUsage,
            tmp1.buildtype,
            tmp1.extend extend,
            NVL(tmp1.mainUsage,0) as mainUsage,
            NVL(tmp1.airconUsage,0) as airconUsage,
            NVL(tmp1.otherUsage,0) as otherUsage,
            (case
            WHEN tmp1.mainUsage = 0 or tmp1.mainUsage IS NULL then 0
            ELSE
            NVL(round((tmp1.totalUsage / tmp1.mainUsage),2),0)
            end) pue,

            NVL(tmp2.mainRead,0) as mainRead,
            NVL(tmp2.airconRead,0) as airconRead,
            NVL(tmp2.otherRead,0) as otherRead,
            NVL(tmp2.totalRead,0) as totalRead,
            NVL(tmp2.temperature,0) as temperature,
            tmp2.readtime readtimeStr/*最后一天日期*/
         from
         (
            select
               MAX(t1.roomName) as machName,
               ROUND(NVL(sum(t1.totalUsage),0),2) as totalUsage,/*总耗电量*/
               -- ROUND(NVL(sum(t1.main_usage),0),2)  as mainUsage2,/*主设备耗电量*/
               ROUND(NVL(sum(t1.mainUsage),0),2) as mainUsage,/*主设备耗电量*/
               ROUND(NVL(sum(t1.airconUsage),0),2)  as airconUsage,/*空调设备耗电量*/
               ROUND(NVL(sum(t1.otherUsage),0),2)  as otherUsage,/*其他设备耗电量*/
               t2.zgid as machroomID,
               MAX(t2.machroomID) zgid,
               MAX(t2.extend) as extend,
               -- t1."date" readtime,
               5 buildtype
            from -- view_room_day_not_build
            <include refid="com.crowdcrystal.mapper.RptCapBuildMapper.onOFDayMarchroom" ></include>
            t1
            <!-- 权限控制 -->
            <if test="params.userIdForPerm != null and params.userIdForPerm != '' ">
               INNER JOIN "view_user_region_perm" vurp ON vurp.user_id = #{params.userIdForPerm} and vurp.region_perm_id = t1.regionID
               /*同时传递的查询区域过滤条件*/
               <if test="params.regionid != null and params.regionid != '' ">
                  INNER JOIN
                  (
                  SELECT DISTINCT r."ID" FROM SYS_REGION r START WITH r.PARENTID = #{params.regionid} OR r."ID" = #{params.regionid} CONNECT BY PRIOR r."ID" = r.PARENTID
                  ) r ON vurp.REGION_PERM_ID_BK=r."ID"
               </if>
            </if>
            left join res_machroom t2 on t1.zgid = t2.zgID  AND t1.powertype=5
            <!-- 权限 -->
            <where>
               <if test="params.machname != null and params.machname != '' ">  <![CDATA[ and t1.roomName like ('%'||#{params.machname}||'%') ]]></if>
               <if test="params.buildid != null and params.buildid != '' ">  <![CDATA[ and t2.buildID = #{params.buildid} ]]></if>
               <if test="params.extend != null and params.extend != '' and  params.extend!=4">  <![CDATA[ and t2.extend = #{params.extend} ]]></if>
               <if test="params.extend != null and params.extend != '' and  params.extend==4">  <![CDATA[ and t2.zgid <97 ]]></if>
               <if test="params.machroomtype != null and params.machroomtype != '' ">  <![CDATA[ and t2.machroomType =#{params.machroomtype} ]]></if>
            </where>
            group by t2.zgid
            order by t2.zgid
         )tmp1 left join
         (
            /*传递日期的那天 最后读数:最后温度 最后读数*/
            SELECT tmp1.machroomID,NVL(tmp1.total_read,0) as totalRead,NVL(tmp1.main_read,0) as mainRead,NVL(tmp1.aircon_read,0) as airconRead,NVL(tmp1.other_read,0) as otherRead,NVL(tmp1.temperature,0) temperature,to_char(tmp1.readtime,'yyyy-MM-dd') readtime FROM rpt_cap_machroom tmp1,
            (
            SELECT t1.machroomID, MAX(t1.readtime) readtime FROM rpt_cap_machroom t1 left join res_machroom t2 on t1.machroomID = t2.zgID
            <where>
               <if test="params.readtimeFrom != null and params.readtimeFrom != '' ">  <![CDATA[ and t1.readtime >= TO_DATE(#{params.readtimeFrom},'yyyy-MM-dd') ]]></if>
               <if test="params.readtimeTo != null and params.readtimeTo != '' ">  <![CDATA[ and t1.readtime <= TO_DATE(#{params.readtimeTo},'yyyy-MM-dd') ]]></if>
               <if test="(params.readtimeFrom == null or params.readtimeFrom == '' ) and (params.readtimeTo == null or params.readtimeTo == '')">
                  <![CDATA[ and t1.readtime = SYSDATE ]]>
               </if>
            </where>
            GROUP BY t1.machroomID
            ) tmp2
            WHERE tmp1.machroomID = tmp2.machroomID AND tmp1.readtime = tmp2.readtime
         )tmp2 on tmp1.machroomID = tmp2.machroomID
         order by tmp1.machroomID
      ) tmp
   </select>
   
   
   

AI 代码审查Review工具 是一个旨在自动化代码审查流程的工具。它通过集成版本控制系统(如 GitHub 和 GitLab)的 Webhook,利用大型语言模型(LLM)对代码变更进行分析,并将审查意见反馈到相应的 Pull Request 或 Merge Request 中。此外,它还支持将审查结果通知到企业微信等通讯工具。 一个基于 LLM 的自动化代码审查助手。通过 GitHub/GitLab Webhook 监听 PR/MR 变更,调用 AI 分析代码,并将审查意见自动评论到 PR/MR,同时支持多种通知渠道。 主要功能 多平台支持: 集成 GitHub 和 GitLab Webhook,监听 Pull Request / Merge Request 事件。 智能审查模式: 详细审查 (/github_webhook, /gitlab_webhook): AI 对每个变更文件进行分析,旨在找出具体问题。审查意见会以结构化的形式(例如,定位到特定代码行、问题分类、严重程度、分析和建议)逐条评论到 PR/MR。AI 模型会输出 JSON 格式的分析结果,系统再将其转换为多条独立的评论。 通用审查 (/github_webhook_general, /gitlab_webhook_general): AI 对每个变更文件进行整体性分析,并为每个文件生成一个 Markdown 格式的总结性评论。 自动化流程: 自动将 AI 审查意见(详细模式下为多条,通用模式下为每个文件一条)发布到 PR/MR。 在所有文件审查完毕后,自动在 PR/MR 中发布一条总结性评论。 即便 AI 未发现任何值得报告的问题,也会发布相应的友好提示和总结评论。 异步处理审查任务,快速响应 Webhook。 通过 Redis 防止对同一 Commit 的重复审查。 灵活配置: 通过环境变量设置基
【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器的状态空间平均模型的建模策略。该方法通过数学建模手段对直流微电网系统进行精确的状态空间描述,并对其进行线性化处理,以便于系统稳定性分析与控制器设计。文中结合Matlab代码实现,展示了建模与仿真过程,有助于研究人员理解和复现相关技术,推动直流微电网系统的动态性能研究与工程应用。; 适合人群:具备电力电子、电力系统或自动化等相关背景,熟悉Matlab/Simulink仿真工具,从事新能源、微电网或智能电网研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网的动态建模方法;②学习DC-DC变换器在耦合条件下的状态空间平均建模技巧;③实现系统的线性化分析并支持后续控制器设计(如电压稳定控制、功率分配等);④为科研论文撰写、项目仿真验证提供技术支持与代码参考。; 阅读建议:建议读者结合Matlab代码逐步实践建模流程,重点关注状态变量选取、平均化处理和线性化推导过程,同时可扩展应用于更复杂的直流微电网拓扑结构中,提升系统分析与设计能力。
### EAP-SIM 和 EAP-KAK 的认证协议区别 EAP-SIM (Extensible Authentication Protocol - Subscriber Identity Module) 主要应用于移动网络中的身份验证过程。此方法利用SIM卡来存储用户的鉴权数据,通过GSM网络进行双向认证[^1]。 对于EAP-KAK (Extensible Authentication Protocol - Kerberos Authentication Key),这是一种基于Kerberos的身份验证机制,适用于企业内部网环境下的安全连接建立。EAP-KAK允许客户端和服务端之间交换加密密钥以实现后续通信的安全保障。 #### 协议特点对比: | 特征 | EAP-SIM | EAP-KAK | | --- | --- | --- | | **基础技术** | GSM SIM卡 | Kerberos V5 | | **主要用途** | 移动设备接入Wi-Fi或蜂窝网络 | 有线/无线局域网内的机器间通讯 | | **适用范围** | 广泛支持于手机和平板电脑等便携式终端 | 更多见于固定位置的工作站和服务器 | #### 应用场景分析: - 当涉及到公共热点或者运营商提供的宽带服务时,EAP-SIM可以简化用户登录流程并增强安全性。 - 对于公司内网资源访问控制而言,采用EAP-KAK能够有效防止未授权人员获取敏感资料的同时保持高效便捷的操作体验。 ```python # Python伪代码展示如何选择合适的EAP类型 def choose_eap_type(device, network_environment): if device == "mobile" and network_environment == "public_wifi": return "EAP-SIM" elif device == "workstation" and network_environment == "corporate_lan": return "EAP-KAK" else: raise ValueError("Unsupported combination of device and environment.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值