Sfoglia il codice sorgente

Merge branch '20210223' of http://114.135.61.188:53000/UIMS/Code into 20210223

wangbo 3 anni fa
parent
commit
37ca708399

+ 2 - 2
operation_manager/src/main/resources/mapper/evaluation/EvaluationItemValueMapper.xml

@@ -54,7 +54,7 @@
 
         <where>
             <if test="evaluationItemId != null ">and a.evaluation_item_id = #{evaluationItemId}</if>
-            <if test="tenantId != null ">and a.tenantId = #{tenantId}</if>
+            <if test="tenantId != null ">and a.TENANT_ID = #{tenantId}</if>
         </where>
     </select>
 
@@ -70,7 +70,7 @@
             </if>
             <if test="evaluationItemValue.dateUpdate != null ">and a.date_update = #{evaluationItemValue.dateUpdate}
             </if>
-            <if test="evaluationItemValue.tenantId != null ">and a.tenantId = #{evaluationItemValue.tenantId}</if>
+            <if test="evaluationItemValue.tenantId != null ">and a.TENANT_ID = #{evaluationItemValue.tenantId}</if>
             and a.status=1
         </where>
     </select>

+ 81 - 46
sms_water/src/main/java/com/huaxu/controller/MonitorInfoController.java

@@ -133,59 +133,83 @@ public class MonitorInfoController {
         }
         List<MonitorInfoEntity> page = monitorInfoService.findList(monitorInfoEntity);
         for (MonitorInfoEntity item : page) {
-            if (item.getMonitorType().equals(0L)) {
-                //查询报警信息
-                List<AlarmDetailsDto> alarmDetailsDtos = alarmDetailsService.selectByDeviceId(id,item.getDeviceId().intValue());
-                Map<Integer, AlarmDetailsDto> mapAlarm = new HashMap<>();
-                //将缓存中的实时数据放到map中方便进行遍历
-                for (AlarmDetailsDto alarmDetailsDto : alarmDetailsDtos) {
-                    mapAlarm.put(alarmDetailsDto.getAttributeId(), alarmDetailsDto);
-                }
-                byte[] bytes = redisUtil.get(("sms_water_" + item.getDeviceCode()).getBytes());
-                if (bytes != null && bytes.length > 0) {
-                    MonitorDataEntity monitorDataEntity = (MonitorDataEntity) ByteArrayUtils.bytesToObject(bytes).get();
-                    Map<Long, MonitorDataValueEntity> map = new HashMap<>();
-                    //将缓存中的实时数据放到map中方便进行遍历
-                    for (MonitorDataValueEntity dateValue : monitorDataEntity.getDataValues()) {
-                        map.put(dateValue.getAttributeId(), dateValue);
-                    }
-                    //判断如果是标签则进行map中取值
-                    if (item.getMonitorType().equals(0L))//标签
-                    {
-                        //按属性ID查询标签值
-                        DeviceAttributeSpecsEntity deviceAttributeSpecsEntity = new DeviceAttributeSpecsEntity();
-                        deviceAttributeSpecsEntity.setAttributeId(item.getAttributeId());
-                        List<DeviceAttributeSpecsEntity> deviceAttributeSpecsEntities = deviceAttributeSpecsService.findList(deviceAttributeSpecsEntity);
-                        if (map.containsKey(item.getAttributeId())) {
-                            Double value = map.get(item.getAttributeId()).getDataValue();
-                            if (value != null) {
-                                if (deviceAttributeSpecsEntities.size() > 0) {
-                                    for (DeviceAttributeSpecsEntity specsEntity : deviceAttributeSpecsEntities)
-                                        if (Integer.valueOf(specsEntity.getSpecsValue()) == value.intValue()) {
-                                            item.setMonitorValue(specsEntity.getSpecsName());
-                                        }
+            switch (item.getMonitorType().intValue()) {
+                case 0:
+                    getMonitorInfo(id, item);
+                    break;
+                case 3:
+                case 4:
+                case 5:
+                    break;
+            }
+        }
+        return new AjaxMessage<>(ResultStatus.OK, page);
+    }
 
-                                } else {
-                                    DeviceAttributeEntity deviceAttributeEntity = deviceAttributeService.getById(item.getAttributeId());
-                                    String unit = "";
-                                    if (deviceAttributeEntity != null && deviceAttributeEntity.getUnit() != null)
-                                        unit = deviceAttributeEntity.getUnit();
-                                    item.setMonitorValue(String.format("%.3f", map.get(item.getAttributeId()).getDataValue()) + unit);
+    /**
+     * 更新指令状态
+     * @param sceneId
+     * @param item
+     */
+    public  void updateCommonState(Long sceneId,MonitorInfoEntity item) {
+
+    }
+
+    /**
+     * 更新标签值
+     * @param sceneId
+     * @param item
+     */
+    public  void getMonitorInfo(Long sceneId,MonitorInfoEntity item) {
+        //查询报警信息
+        List<AlarmDetailsDto> alarmDetailsDtos = alarmDetailsService.selectByDeviceId(sceneId, item.getDeviceId().intValue());
+        Map<Integer, AlarmDetailsDto> mapAlarm = new HashMap<>();
+        //将缓存中的实时数据放到map中方便进行遍历
+        for (AlarmDetailsDto alarmDetailsDto : alarmDetailsDtos) {
+            mapAlarm.put(alarmDetailsDto.getAttributeId(), alarmDetailsDto);
+        }
+        byte[] bytes = redisUtil.get(("sms_water_" + item.getDeviceCode()).getBytes());
+        if (bytes != null && bytes.length > 0) {
+            MonitorDataEntity monitorDataEntity = (MonitorDataEntity) ByteArrayUtils.bytesToObject(bytes).get();
+            Map<Long, MonitorDataValueEntity> map = new HashMap<>();
+            //将缓存中的实时数据放到map中方便进行遍历
+            for (MonitorDataValueEntity dateValue : monitorDataEntity.getDataValues()) {
+                map.put(dateValue.getAttributeId(), dateValue);
+            }
+            //判断如果是标签则进行map中取值
+            if (item.getMonitorType().equals(0L))//标签
+            {
+                //按属性ID查询标签值
+                DeviceAttributeSpecsEntity deviceAttributeSpecsEntity = new DeviceAttributeSpecsEntity();
+                deviceAttributeSpecsEntity.setAttributeId(item.getAttributeId());
+                List<DeviceAttributeSpecsEntity> deviceAttributeSpecsEntities = deviceAttributeSpecsService.findList(deviceAttributeSpecsEntity);
+                if (map.containsKey(item.getAttributeId())) {
+                    Double value = map.get(item.getAttributeId()).getDataValue();
+                    if (value != null) {
+                        if (deviceAttributeSpecsEntities.size() > 0) {
+                            for (DeviceAttributeSpecsEntity specsEntity : deviceAttributeSpecsEntities)
+                                if (Integer.valueOf(specsEntity.getSpecsValue()) == value.intValue()) {
+                                    item.setMonitorValue(specsEntity.getSpecsName());
                                 }
-                            }
-                        }
-                        //判断是否报警
-                        if (mapAlarm.containsKey(item.getAttributeId().intValue())){
-                            item.setIsAlarm(1);
-                            item.setMonitorValue(item.getMonitorValue()+"("+mapAlarm.get(item.getAttributeId().intValue()).getAlarmRange()+")");
-                        }else{
-                            item.setIsAlarm(0);
+
+                        } else {
+                            DeviceAttributeEntity deviceAttributeEntity = deviceAttributeService.getById(item.getAttributeId());
+                            String unit = "";
+                            if (deviceAttributeEntity != null && deviceAttributeEntity.getUnit() != null)
+                                unit = deviceAttributeEntity.getUnit();
+                            item.setMonitorValue(String.format("%.3f", map.get(item.getAttributeId()).getDataValue()) + unit);
                         }
                     }
                 }
+                //判断是否报警
+                if (mapAlarm.containsKey(item.getAttributeId().intValue())) {
+                    item.setIsAlarm(1);
+                    item.setMonitorValue(item.getMonitorValue() + "(" + mapAlarm.get(item.getAttributeId().intValue()).getAlarmRange() + ")");
+                } else {
+                    item.setIsAlarm(0);
+                }
             }
         }
-        return new AjaxMessage<>(ResultStatus.OK, page);
     }
 
     @RequestMapping(value="getDeviceParmByDeviceId" , method = RequestMethod.GET)
@@ -268,4 +292,15 @@ public class MonitorInfoController {
         int result = monitorInfoService.delMonitorInfoByIds(ids) ? 1 : 0;
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
+    /**
+     * 操作标签--查询设备属性
+     */
+    @ApiOperation(value = "操作标签--查询设备属性")
+    @RequestMapping(value = "/getSceneParmBySceneId", method = RequestMethod.GET)
+    @ResponseBody
+    public AjaxMessage<List<DeviceParmEntity>> getSceneParmBySceneId(@ApiParam(value = "场景类型ID", required = true) Long id) {
+        List<DeviceParmEntity> deviceParmEntities = deviceParmService.selectByScendId(id.intValue());
+        return new AjaxMessage<>(ResultStatus.OK, deviceParmEntities);
+    }
+
 }

+ 6 - 1
sms_water/src/main/java/com/huaxu/entity/MonitorInfoEntity.java

@@ -58,7 +58,7 @@ public class MonitorInfoEntity{
     private Integer imageType;
 
     /** 标签类型 */
-    @ApiModelProperty(value = "标签类型(0标签 1普通标记 2跳转标记)")
+    @ApiModelProperty(value = "标签类型(0标签 1普通标记 2跳转标记 3水泵控制 4 压力调节 5阀门控制)")
     private Long monitorType;
 
     /** 标签值 */
@@ -95,6 +95,11 @@ public class MonitorInfoEntity{
     @TableField(exist = false)
     private Integer isAlarm;
 
+    /** 指令执行状态(0执行中 1执行成功 2执行失败) */
+    @ApiModelProperty(value = "指令执行状态(0执行中 1执行成功 2执行失败)")
+    @TableField(exist = false)
+    private Integer commonState;
+
     /** 类型 */
     @ApiModelProperty(value = "类型(0综合调度 1综合展示)")
     private Integer type;

+ 29 - 0
user_center/src/main/java/com/huaxu/common/Double2Serializer.java

@@ -0,0 +1,29 @@
+package com.huaxu.common;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.text.DecimalFormat;
+
+public class Double2Serializer extends JsonSerializer<Double> {
+
+    private DecimalFormat df = new DecimalFormat("0.##");
+
+    /**
+     * 小数保留3位返回给前端序列化器
+     * @param data
+     * @param jsonGenerator
+     * @param serializerProvider
+     * @throws IOException
+     */
+    @Override
+    public void serialize(Double data, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
+            throws IOException {
+        if (data != null) {
+            jsonGenerator.writeNumber(df.format(data));
+        }
+    }
+
+}

+ 11 - 0
user_center/src/main/java/com/huaxu/controller/UserController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huaxu.common.FileUploadUtil;
+import com.huaxu.dto.MaintainerCountDto;
 import com.huaxu.dto.UserListDto;
 import com.huaxu.entity.App;
 import com.huaxu.entity.MenuEntity;
@@ -307,4 +308,14 @@ public class UserController {
         return userService.findUserIdsByPermissonOrg(tenantId,companyOrgId,deptOrgId);
     }
 
+    @ApiOperation(value = "查询运维人员数量情况")
+    @RequestMapping(value = "/findMaintainer", method = RequestMethod.GET)
+    public AjaxMessage<MaintainerCountDto> findMaintainer(
+            @ApiParam(value = "开始时间", required = true) @RequestParam String startTime,
+            @ApiParam(value = "结束时间", required = false) @RequestParam(required = false) String endTime,
+            @ApiParam(value = "统计类型0按月、1按年、2自定义", required = true)@RequestParam Integer type) {
+        MaintainerCountDto maintainerCountDto = userService.findMaintainer(startTime,endTime,type);
+        return new AjaxMessage<>(ResultStatus.OK, maintainerCountDto);
+    }
+
 }

+ 2 - 0
user_center/src/main/java/com/huaxu/dao/UserMapper.java

@@ -45,4 +45,6 @@ public interface UserMapper extends BaseMapper<UserEntity> {
 
 
     List<Integer> findUserIdsByPermissonOrg(@Param("tenantId")String tenantId, @Param("companyOrgId")Integer companyOrgId, @Param("deptOrgId")Integer deptOrgId ,@Param("companyOrgIds")List<Integer> companyOrgIds,@Param("deptOrgIds")List<Integer> deptOrgIds);
+
+    Integer findMaintainer(@Param("user")UserEntity userEntity);
 }

+ 24 - 0
user_center/src/main/java/com/huaxu/dto/MaintainerCountDto.java

@@ -0,0 +1,24 @@
+package com.huaxu.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.common.Double2Serializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("运维人员数量情况")
+public class MaintainerCountDto {
+    @ApiModelProperty(value = "人员数量")
+    private Integer count;
+    @ApiModelProperty(value = "环比人员数量")
+    private Integer countMOnM;
+    @ApiModelProperty(value = "同比人员数量")
+    private Integer countYOnY;
+    @ApiModelProperty(value = "环比")
+    @JsonSerialize(using = Double2Serializer.class)
+    private Double rateMOnM;
+    @ApiModelProperty(value = "同比")
+    @JsonSerialize(using = Double2Serializer.class)
+    private Double rateYOnY;
+}

+ 50 - 0
user_center/src/main/java/com/huaxu/service/UserService.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.common.ToolUtil;
 import com.huaxu.dao.OrgMapper;
 import com.huaxu.dao.UserMapper;
+import com.huaxu.dto.MaintainerCountDto;
 import com.huaxu.dto.UserListDto;
 import com.huaxu.entity.Org;
 import com.huaxu.entity.UserEntity;
@@ -30,6 +31,8 @@ import javax.annotation.Resource;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.client.RestTemplate;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -469,4 +472,51 @@ public class UserService extends ServiceImpl<UserMapper,UserEntity> {
 		List<UserEntity> userEntities = userMapper.findUserListByType(userEntity);
 		return userEntities;
 	}
+	public MaintainerCountDto findMaintainer(String startTime, String endTime, Integer type){
+		MaintainerCountDto result=new MaintainerCountDto();
+		try {
+			LoginUser currentUser = UserUtil.getCurrentUser();
+			UserEntity userEntity = new UserEntity();
+			userEntity.setTenantId(currentUser.getTenantId());
+			userEntity.setProgramItems(currentUser.getProgramItemList());
+			//1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+			userEntity.setPermissonType(currentUser.getPermissonType());
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+			Calendar c=Calendar.getInstance();
+			Date thisDate=null, dateMtoM=null,dateYtoY=null;
+			if(type==0){
+				dateMtoM=sdf.parse(startTime+"-1");
+				c.setTime(dateMtoM);
+				c.add(Calendar.MONTH,1);
+				thisDate=c.getTime();
+				c.add(Calendar.YEAR,-1);
+				dateYtoY=c.getTime();
+			}else if(type==1){
+				dateMtoM=sdf.parse(startTime+"-1-1");
+				dateYtoY=dateMtoM;
+				c.setTime(dateMtoM);
+				c.add(Calendar.YEAR,1);
+				thisDate=c.getTime();
+			}else if(type==2){
+				dateMtoM=sdf.parse(startTime+"-1");
+				thisDate=sdf.parse(endTime+"-1");
+				c.setTime(thisDate);
+				c.add(Calendar.MONTH,1);
+				thisDate=c.getTime();
+				c.add(Calendar.YEAR,-1);
+				dateYtoY=c.getTime();
+			}
+			userEntity.setDateCreate(thisDate);
+			result.setCount(userMapper.findMaintainer(userEntity));
+			userEntity.setDateCreate(dateMtoM);
+			result.setCountMOnM(userMapper.findMaintainer(userEntity));
+			userEntity.setDateCreate(dateYtoY);
+			result.setCountYOnY(userMapper.findMaintainer(userEntity));
+			result.setRateMOnM(result.getCountMOnM()!=0?(double)(result.getCount()-result.getCountMOnM())/result.getCountMOnM()*100:null);
+			result.setRateYOnY(result.getCountYOnY()!=0?(double)(result.getCount()-result.getCountYOnY())/result.getCountYOnY()*100:null);
+		}catch (Exception e){
+			e.printStackTrace();
+		}
+		return result;
+	}
 }

+ 44 - 0
user_center/src/main/resources/mapper/UserMapper.xml

@@ -340,4 +340,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         )
 
     </select>
+    <select id="findMaintainer" resultType="java.lang.Integer">
+        select count(1) maintainerCount
+        from uims_user a
+        <where>
+            a.status=1 and a.user_type = 3
+            <if test="user.dateCreate != null"> and a.date_create &lt; #{user.dateCreate} </if>
+            <if test="user.tenantId != null  and user.tenantId != ''"> and a.tenant_id = #{user.tenantId} </if>
+
+            <if test="user.deptOrgId != null  and user.deptOrgId != ''">
+                and (a.DEPT_ORG_ID = #{user.deptOrgId}
+                or a.COMPANY_ORG_ID = #{user.companyOrgId}
+                )
+            </if>
+            <if test="user.userType!=null and user.userType!=-999 and user.userType!=-9999 and  user.programItems != null and user.programItems.size() > 0">
+                <if test="user.permissonType == 5 or user.permissonType == 2">
+                    and ( a.DEPT_ORG_ID in
+                    <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    or
+                    a.COMPANY_ORG_ID in
+                    <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    )
+                </if>
+                <if test="user.permissonType == 4 or user.permissonType == 3">
+                    and a.DEPT_ORG_ID in
+                    <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                </if>
+                <if test="user.permissonType == 1">
+                    and a.COMPANY_ORG_ID in
+                    <foreach collection="user.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
+                </if>
+            </if>
+
+        </where>
+
+    </select>
 </mapper>