Browse Source

Merge remote-tracking branch 'origin/master'

hym 4 years ago
parent
commit
0d05fb412b

+ 15 - 15
sms_water/src/main/java/com/huaxu/controller/AlarmDetailsController.java

@@ -95,7 +95,7 @@ public class AlarmDetailsController {
             orderItem.setColumn("t.date_create");
             iPage.orders().add(orderItem);
         }
-        if(sceneId != null) {
+        if(sceneId != null && sceneId != 0) {
             alarmDetailsDto.setSceneIds(sceneService.findByParentIdsLike(sceneId.longValue()));
             if(alarmDetailsDto.getSceneIds() == null || alarmDetailsDto.getSceneIds().size() == 0){
                 return new AjaxMessage<>(ResultStatus.OK, new Pagination<>(iPage));
@@ -175,7 +175,7 @@ public class AlarmDetailsController {
             orderItem.setColumn("a.ALARM_START_TIME");
             iPage.orders().add(orderItem);
         }
-        if(sceneId != null) {
+        if(sceneId != null && sceneId != 0) {
             alarmDetailsDto.setSceneIds(sceneService.findByParentIdsLike(sceneId.longValue()));
             if(alarmDetailsDto.getSceneIds() == null || alarmDetailsDto.getSceneIds().size() == 0){
                 return new AjaxMessage<>(ResultStatus.OK, new Pagination<>(iPage));
@@ -193,13 +193,13 @@ public class AlarmDetailsController {
             @ApiParam(value = "报警类型") @RequestParam(required = false) String alarmType,
             @ApiParam(value = "处理状态") @RequestParam(required = false) Integer opState,
             @ApiParam(value = "所属场景id") @RequestParam(required = false)  Integer sceneId,
-            @ApiParam(value = "报警信息id") @RequestParam(required = false)  Integer[] ids,
+            @ApiParam(value = "报警信息id") @RequestParam(required = false)  List<Integer> ids,
             @ApiParam(value = "查询:开始时间yyyy-MM-dd") @RequestParam(required = false) String startTime,
             @ApiParam(value = "查询:结束时间yyyy-MM-dd") @RequestParam(required = false) String endTime
 
     ){
-        if(ids != null && ids.length>0){
-            String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警记录",alarmDetailsService.selectHistoryByIds(Arrays.asList(ids)) );
+        if(ids != null && ids.size()>0){
+            String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警记录",alarmDetailsService.selectHistoryByIds(ids) );
             return new AjaxMessage<>(ResultStatus.OK, filePath);
         }
         AlarmDetailsDto alarmDetailsDto = new AlarmDetailsDto();
@@ -219,14 +219,14 @@ public class AlarmDetailsController {
             alarmDetailsDto.setStartTime(new Date());
             alarmDetailsDto.setEndTime(new Date());
         }
-        if(sceneId != null) {
+        if(sceneId != null && sceneId != 0) {
             alarmDetailsDto.setSceneIds(sceneService.findByParentIdsLike(sceneId.longValue()));
             if(alarmDetailsDto.getSceneIds() == null || alarmDetailsDto.getSceneIds().size() == 0){
-                String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警", new ArrayList<>());
+                String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警记录", new ArrayList<>());
                 return new AjaxMessage<>(ResultStatus.OK, filePath);
             }
         }
-        String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警", alarmDetailsService.selectHistoryList(alarmDetailsDto));
+        String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警记录", alarmDetailsService.selectHistoryList(alarmDetailsDto));
         return new AjaxMessage<>(ResultStatus.OK, filePath);
     }
 
@@ -271,7 +271,7 @@ public class AlarmDetailsController {
             orderItem.setColumn("a.ALARM_START_TIME");
             iPage.orders().add(orderItem);
         }
-        if(sceneId != null) {
+        if(sceneId != null && sceneId != 0) {
             alarmDetailsDto.setSceneIds(sceneService.findByParentIdsLike(sceneId.longValue()));
             if(alarmDetailsDto.getSceneIds() == null || alarmDetailsDto.getSceneIds().size() == 0){
                 return new AjaxMessage<>(ResultStatus.OK, new Pagination<>(iPage));
@@ -289,13 +289,13 @@ public class AlarmDetailsController {
             @ApiParam(value = "报警类型") @RequestParam(required = false) String alarmType,
             @ApiParam(value = "处理状态") @RequestParam(required = false) Integer opState,
             @ApiParam(value = "所属场景id") @RequestParam(required = false)  Integer sceneId,
-            @ApiParam(value = "报警信息id") @RequestParam(required = false)  Integer[] ids,
+            @ApiParam(value = "报警信息id") @RequestParam(required = false)  List<Integer>  ids,
             @ApiParam(value = "查询:开始时间yyyy-MM-dd") @RequestParam(required = false) String startTime,
             @ApiParam(value = "查询:结束时间yyyy-MM-dd") @RequestParam(required = false) String endTime
     ){
 
-        if(ids != null && ids.length >0){
-            String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsRealTimeDto.class, "实时报警记录",alarmDetailsService.selectRealTimeByIds(Arrays.asList(ids)));
+        if(ids != null && ids.size() >0){
+            String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsRealTimeDto.class, "实时报警记录",alarmDetailsService.selectRealTimeByIds(ids));
             return new AjaxMessage<>(ResultStatus.OK, filePath);
         }
         AlarmDetailsDto alarmDetailsDto = new AlarmDetailsDto();
@@ -315,14 +315,14 @@ public class AlarmDetailsController {
             alarmDetailsDto.setStartTime(new Date());
             alarmDetailsDto.setEndTime(new Date());
         }
-        if(sceneId != null) {
+        if(sceneId != null && sceneId != 0) {
             alarmDetailsDto.setSceneIds(sceneService.findByParentIdsLike(sceneId.longValue()));
             if(alarmDetailsDto.getSceneIds() == null || alarmDetailsDto.getSceneIds().size() == 0){
-                String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警", new ArrayList<>());
+                String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警记录", new ArrayList<>());
                 return new AjaxMessage<>(ResultStatus.OK, filePath);
             }
         }
-        String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsRealTimeDto.class, "实时报警",alarmDetailsService.selectRealTimeList(alarmDetailsDto) );
+        String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsRealTimeDto.class, "实时报警记录",alarmDetailsService.selectRealTimeList(alarmDetailsDto) );
         return new AjaxMessage<>(ResultStatus.OK, filePath);
     }
     @RequestMapping(value="batchDelete" , method = RequestMethod.DELETE)

+ 7 - 0
sms_water/src/main/java/com/huaxu/controller/AlarmSettingController.java

@@ -116,6 +116,13 @@ public class AlarmSettingController {
         alarmSettingDto.setAttributeName(attributeName);
         alarmSettingDto.setSceneId(sceneId);
         alarmSettingDto.setSceneIds(sceneService.findByParentIdsLike(sceneId));
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        alarmSettingDto.setTenantId(loginUser.getTenantId());
+        alarmSettingDto.setProgramItems(loginUser.getProgramItemList());
+        alarmSettingDto.setUserType(loginUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        alarmSettingDto.setPermissonType(loginUser.getPermissonType());
+
         IPage<AlarmSettingDto> iPage = new Page<>(pageNum, pageSize);
         iPage = alarmSettingService.selectPage(iPage, alarmSettingDto);
         Pagination<AlarmSettingDto> pages = new Pagination<>(iPage);

+ 2 - 2
sms_water/src/main/java/com/huaxu/controller/DeviceController.java

@@ -71,7 +71,7 @@ public class DeviceController {
             orderItem.setColumn("d.date_create");
             iPage.orders().add(orderItem);
         }
-        if(sceneId != null) {
+        if(sceneId != null && sceneId != 0) {
             if(searchType != null && searchType ==1){
                 List<Long> list = new ArrayList<>();
                 list.add(sceneId);
@@ -108,7 +108,7 @@ public class DeviceController {
         deviceDto.setCompanyOrgId(companyOrgId);
         deviceDto.setDeptOrgId(deptOrgId);
         deviceDto.setEnableState(enableState);
-        if(sceneId != null) {
+        if(sceneId != null && sceneId != 0) {
             if(searchType != null && searchType ==1){
                 List<Long> list = new ArrayList<>();
                 list.add(sceneId);

+ 1 - 1
sms_water/src/main/java/com/huaxu/controller/SceneTypeController.java

@@ -132,7 +132,7 @@ public class SceneTypeController {
     @RequestMapping(value = "/deleteByIds", method = RequestMethod.POST)
     @ResponseBody
     public AjaxMessage<Integer> del(@ApiParam(value = "场景类型ID", required = true) @RequestBody Long[] ids) {
-        List<SceneEntity> sceneEntities = sceneService.findBySceneTypeIds(ids);
+        List<SceneTypeEntity> sceneEntities = sceneTypeService.findByParentSceneTypeIds(ids);
         if (sceneEntities.size() > 0) {
             return new AjaxMessage<>(ResultStatus.SCENETYPE_NAME_ALREADY_EXISTS);
         }

+ 2 - 0
sms_water/src/main/java/com/huaxu/dao/SceneTypeMapper.java

@@ -29,5 +29,7 @@ public interface SceneTypeMapper extends BaseMapper<SceneTypeEntity> {
 
      List<SceneTypeEntity> findList(SceneTypeEntity sceneTypeEntity);
 
+    List<SceneTypeEntity> findByParentSceneTypeIds(@Param(value = "Ids") Long[] Ids);
+
      /**删除相关方法  使用mybatis-plus集成的 **/
 }

+ 3 - 0
sms_water/src/main/java/com/huaxu/dto/AlarmDetailsHistoryDto.java

@@ -22,6 +22,9 @@ public class AlarmDetailsHistoryDto implements Serializable {
 
     private static final long serialVersionUID = 6107433946964301057L;
 
+    @ExcelIgnore
+    @ApiModelProperty(value = "主键id")
+    private Integer id;
     @ApiModelProperty("所属场景")
     @ExcelProperty(value = "所属场景",index = 0)
     private String sceneName;

+ 20 - 0
sms_water/src/main/java/com/huaxu/dto/AlarmSettingDto.java

@@ -1,6 +1,8 @@
 package com.huaxu.dto;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.huaxu.entity.AlarmSetting;
+import com.huaxu.model.ProgramItem;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -60,5 +62,23 @@ public class AlarmSettingDto extends AlarmSetting {
      */
     @ApiModelProperty(value = "属性名称")
     private String attributeName;
+    /**
+     * 属性名称
+     */
+    @ApiModelProperty(value ="权限",hidden = true)
+    @JsonIgnore
+    private List<ProgramItem> programItems;
+    /**
+     * 属性名称
+     */
+    @ApiModelProperty(value="用户权限类型",hidden = true)
+    @JsonIgnore
+    private Integer permissonType;
+    /**
+     * 用户类型
+     */
+    @ApiModelProperty(value = "用户类型(-9999 超管 -999普通用户 2普通用户)",hidden = true)
+    @JsonIgnore
+    private String userType;
 
 }

+ 4 - 0
sms_water/src/main/java/com/huaxu/entity/SceneEntity.java

@@ -95,6 +95,10 @@ public class SceneEntity implements Serializable {
     @ApiModelProperty(value = "纬度")
     private BigDecimal pointY;
 
+    /** 纬度 */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
     /** 数据删除标记 */
     @TableLogic
     @ApiModelProperty(value = "数据删除标记")

+ 6 - 0
sms_water/src/main/java/com/huaxu/service/SceneTypeService.java

@@ -8,6 +8,7 @@ import com.huaxu.entity.SceneTypeEntity;
 import com.huaxu.model.LoginUser;
 import com.huaxu.util.UserUtil;
 import com.huaxu.entity.SceneEntity;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -116,4 +117,9 @@ public class SceneTypeService extends ServiceImpl<SceneTypeMapper, SceneTypeEnti
     public SceneTypeEntity findSceneTypeById(Long id) {
         return sceneTypeMapper.findSceneTypeById(id);
     }
+
+    public List<SceneTypeEntity> findByParentSceneTypeIds(Long[] Ids)
+    {
+        return sceneTypeMapper.findByParentSceneTypeIds(Ids);
+    }
 }

+ 5 - 5
sms_water/src/main/resources/mapper/AlarmDetailMapper.xml

@@ -209,19 +209,19 @@
             <if test="tenantId != null and tenantId != '' ">
                 TENANT_ID  = #{tenantId},
             </if>
-            <if test="deviceId != null ">
+            <if test="deviceId != null and deviceId != 0">
                 DEVICE_ID  = #{deviceId},
             </if>
-            <if test="companyOrgId != null ">
+            <if test="companyOrgId != null and companyOrgId != 0 ">
                 COMPANY_ORG_ID  = #{companyOrgId},
             </if>
-            <if test="deptOrgId != null ">
+            <if test="deptOrgId != null and deptOrgId != 0">
                 DEPT_ORG_ID  = #{deptOrgId},
             </if>
             <if test="alarmType != null and alarmType != ''">
                 ALARM_TYPE  = #{alarmType},
             </if>
-            <if test="attributeId != null ">
+            <if test="attributeId != null and attributeId != 0 ">
                 ATTRIBUTE_ID  = #{attributeId},
             </if>
             <if test="alarmValue != null ">
@@ -264,7 +264,7 @@
             <if test="maxValue != null">
                 MAX_VALUE  = #{maxValue},
             </if>
-            <if test="alarmSettingId != null">
+            <if test="alarmSettingId != null  and alarmSettingId != 0 ">
                 ALARM_SETTING_ID  = #{alarmSettingId}
             </if>
         </set>

+ 32 - 5
sms_water/src/main/resources/mapper/AlarmSettingMapper.xml

@@ -59,18 +59,45 @@
                     #{item}
                 </foreach>
             </if>
+            <if test="alarm.userType!=null and alarm.userType!=-999 and alarm.userType!=-9999 and  alarm.programItems != null and alarm.programItems.size() > 0">
+                <if test="alarm.permissonType == 5 or alarm.permissonType == 2">
+                    and ( t2.DEPT_ORG_ID in
+                    <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    or
+                    t2.COMPANY_ORG_ID in
+                    <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    )
+                </if>
+                <if test="alarm.permissonType == 4 or alarm.permissonType == 3">
+                    and t2.DEPT_ORG_ID in
+                    <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                </if>
+                <if test="alarm.permissonType == 1">
+                    and t2.COMPANY_ORG_ID in
+                    <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    and (t2.DEPT_ORG_ID is null or t2.DEPT_ORG_ID =0)
+                </if>
+            </if>
             and t1.status =1
         </where>
         order by t1.device_id,t1.date_create
     </select>
 
     <select id="selectAttributes" resultMap="alarmSettingMap">
-        select t3.id attribute_id,t3.name attribute_name
+        select t2.id attribute_id,t2.name attribute_name
         from  sms_device t1
-        inner join sms_device_type t2 on t1.device_type_id=t2.id and t2.status =1
-        inner join sms_device_attribute t3 on t2.id=t3.device_type_id and t3.status =1
-        where t1.id=#{deviceId} and t1.status=1
-        order by t3.name
+        inner join sms_device_attribute t2 on t1.device_type_id=t2.device_type_id and t2.status =1
+        inner join sms_device_parm t3 on t3.device_id=t1.id and t3.attribute_id=t2.id and t3.status=1
+        where t1.id=#{deviceId} and t1.status=1 and t3.is_alarm=1
+        order by t2.name
     </select>
 
 </mapper>

+ 17 - 9
sms_water/src/main/resources/mapper/DeviceMapper.xml

@@ -57,10 +57,10 @@
         <if test="deviceDto.condition != null and deviceDto.condition != ''">
             and (device_code like concat('%', #{deviceDto.condition},'%') or device_name like concat('%', #{deviceDto.condition},'%'))
         </if>
-        <if test="deviceDto.companyOrgId != null ">
+        <if test="deviceDto.companyOrgId != null and deviceDto.companyOrgId != 0 ">
             and d.COMPANY_ORG_ID=#{deviceDto.companyOrgId}
         </if>
-        <if test="deviceDto.deptOrgId != null ">
+        <if test="deviceDto.deptOrgId != null and deviceDto.deptOrgId != 0 ">
             and d.DEPT_ORG_ID =#{deviceDto.deptOrgId}
         </if>
         <if test="deviceDto.sceneIds != null and deviceDto.sceneIds.size() > 0">
@@ -105,8 +105,16 @@
 
     <!-- 新增所有列 -->
     <insert id="insert" keyProperty="id" useGeneratedKeys="true">
-        INSERT INTO  sms_device ( TENANT_ID ,  DEVICE_CODE ,  DEVICE_NAME ,  DEVICE_TYPE_ID ,  COMPANY_ORG_ID ,  DEPT_ORG_ID ,  SCENE_ID ,  POINT_X ,  POINT_Y ,  ENABLE_STATE ,  LAST_UPDATE_TIME ,  ADDRESS ,  REMARK ,  STATUS ,  DATE_CREATE ,  CREATE_BY ,  DATE_UPDATE ,  UPDATE_BY )
-        VALUES ( #{tenantId} ,#{deviceCode} ,#{deviceName}  ,#{deviceTypeId} ,#{companyOrgId} ,#{deptOrgId} ,#{sceneId} ,#{pointX} ,#{pointY} ,#{enableState} ,#{lastUpdateTime} ,#{address} ,#{remark} ,#{status} ,#{dateCreate} ,#{createBy} ,#{dateUpdate} ,#{updateBy})
+        INSERT INTO  sms_device ( TENANT_ID ,  DEVICE_CODE ,  DEVICE_NAME ,  DEVICE_TYPE_ID ,
+        <if test="companyOrgId != null and companyOrgId != 0">COMPANY_ORG_ID , </if>
+        <if test="deptOrgId != null and deptOrgId != 0">DEPT_ORG_ID ,</if>
+        <if test="sceneId != null and sceneId != 0">SCENE_ID ,</if>
+        POINT_X ,  POINT_Y ,  ENABLE_STATE ,  LAST_UPDATE_TIME ,  ADDRESS ,  REMARK ,  STATUS ,  DATE_CREATE ,  CREATE_BY ,  DATE_UPDATE ,  UPDATE_BY )
+        VALUES ( #{tenantId} ,#{deviceCode} ,#{deviceName}  ,#{deviceTypeId} ,
+        <if test="companyOrgId != null and companyOrgId != 0">#{companyOrgId}  , </if>
+        <if test="deptOrgId != null and deptOrgId != 0"> #{deptOrgId} , </if>
+        <if test="sceneId != null and sceneId != 0">#{sceneId} , </if>
+        #{pointX} ,#{pointY} ,#{enableState} ,#{lastUpdateTime} ,#{address} ,#{remark} ,#{status} ,#{dateCreate} ,#{createBy} ,#{dateUpdate} ,#{updateBy})
    </insert>
 
     <!-- 批量新增 -->
@@ -131,14 +139,14 @@
         <if test="deviceName != null and deviceName != '' ">
             DEVICE_NAME  = #{deviceName},
         </if>
-        <if test="deviceTypeId != null ">
+        <if test="deviceTypeId != null and deviceTypeId != 0">
             DEVICE_TYPE_ID  = #{deviceTypeId},
         </if>
-        <if test="companyOrgId != null ">
+        <if test="companyOrgId != null and companyOrgId != 0">
             COMPANY_ORG_ID  = #{companyOrgId},
         </if>
             DEPT_ORG_ID  = #{deptOrgId},
-        <if test="sceneId != null ">
+        <if test="sceneId != null  and sceneId != 0">
             SCENE_ID  = #{sceneId},
         </if>
         <if test="pointX != null ">
@@ -196,10 +204,10 @@
         <if test="deviceDto.condition != null and deviceDto.condition != ''">
             and (device_code like concat('%', #{deviceDto.condition},'%') or device_name like concat('%', #{deviceDto.condition},'%'))
         </if>
-        <if test="deviceDto.companyOrgId != null ">
+        <if test="deviceDto.companyOrgId != null and deviceDto.companyOrgId != 0">
             and d.COMPANY_ORG_ID=#{deviceDto.companyOrgId}
         </if>
-        <if test="deviceDto.deptOrgId != null ">
+        <if test="deviceDto.deptOrgId != null and deviceDto.deptOrgId != 0">
             and d.DEPT_ORG_ID =#{deviceDto.deptOrgId}
         </if>
         <if test="deviceDto.sceneIds != null and deviceDto.sceneIds.size() > 0">

+ 9 - 1
sms_water/src/main/resources/mapper/SceneTypeMapper.xml

@@ -51,7 +51,15 @@
         </where>
         order  by a.date_create
     </select>
-
+    <!--  根据主键获取租户菜单  -->
+    <select id="findByParentSceneTypeIds" resultType="com.huaxu.entity.SceneTypeEntity">
+        select a.id
+        FROM sms_scene_type a
+        WHERE a.status=1 and  a.parent_scenetype_id in
+        <foreach collection = "Ids" item = "dramaId" open = "(" close = ")" separator = "," >
+            #{dramaId}
+        </foreach>
+    </select>
 
     <!--  根据获取实体 page   -->
     <select id="findPage" resultType="com.huaxu.entity.SceneTypeEntity">