Commit bf96601d authored by KeYong's avatar KeYong

设备平台资源概览弹框接口

parent 8c08ee7e
......@@ -78,10 +78,16 @@ public class SocialPower extends BaseEntity {
@TableField("biz_org_code")
private String bizOrgCode;
@TableField("power_status")
private String powerStatus;
/**
* 路线图
*/
@TableField(exist = false)
private List<FileItem> attachFiles;
@TableField(exist = false)
private String statusCode;
}
......@@ -82,4 +82,7 @@ public class EquipTypeAmountPageDTO extends BaseDTO<EquipmentSpecific> {
@ApiModelProperty(value = "设备红黄绿码状态")
private String equipStatus;
@ApiModelProperty(value = "概览装备分类")
private String equipCodeKey;
}
package com.yeejoin.equipmanage.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @title: EmergencyEquipTypeEnum
*/
@AllArgsConstructor
@Getter
public enum EmergencyEquipTypeEnum {
MHQ("3104", "fireExtinguisher", "灭火器"),
XHS("3105", "fireHydrant", "消火栓"),
HXQ("1106", "respirator", "正压式呼吸器"),
XFC("3910", "fireShovel", "消防铲"),
XFF("3904", "fireAxe", "消防斧"),
XFT("3911", "fireBucket", "消防桶");
private String code;
private String name;
private String describe;
public static String getCodeByName(String name) {
for (EmergencyEquipTypeEnum e : EmergencyEquipTypeEnum.values()) {
if (e.getName().equals(name)) {
return e.code;
}
}
return null;
}
public static EmergencyEquipTypeEnum getEnumByName(String name) {
for (EmergencyEquipTypeEnum e : EmergencyEquipTypeEnum.values()) {
if (e.getName().equals(name)) {
return e;
}
}
return null;
}
public static List<Map<String,String>> getEnumList() {
List<Map<String, String>> enumList = new ArrayList<>();
for (EmergencyEquipTypeEnum c: EmergencyEquipTypeEnum.values()) {
Map<String, String> map = new HashMap<String, String>();
map.put("code", c.getCode());
map.put("key", c.getName());
map.put("name", c.getDescribe());
enumList.add(map);
}
return enumList;
}
}
......@@ -12,6 +12,8 @@ public interface FireResourceSupervisionMapper extends BaseMapper<OrgUsr> {
List<Map<String, Object>> selectPersonnelStats(@Param("bizOrgCode") String bizOrgCode);
Map<String, Object> getPersonStatus(@Param("bizOrgCode") String bizOrgCode, @Param("peopleType") Integer peopleType);
Long selectTodayAttendance(@Param("bizOrgCode") String bizOrgCode);
List<String> getZzPersonNum();
......
......@@ -12,4 +12,6 @@ public interface IFireResourceSupervisionService {
* @param bizOrgCode 机构编码
*/
Map<String, Map<String, Number>> getPersonnelStats(String bizOrgCode);
Map<String, Map<String, String>> getPersonInfo(String bizOrgCode);
}
......@@ -19,6 +19,22 @@
HAVING peopleType in (0, 1);
</select>
<select id="getPersonStatus" resultType="Map">
SELECT
IF(dfi.field_value = 1601, 1, IF(dfi.field_value = 1602, 0, -1)) AS peopleType,
SUM(IF(u.person_status = 1, 1, 0)) AS yellowCounts,
SUM(IF(u.person_status = 2, 1, 0)) AS redCounts
FROM
cb_org_usr u
INNER JOIN cb_dynamic_form_instance dfi ON dfi.instance_id = u.sequence_nbr AND dfi.field_code = 'peopleType'
LEFT JOIN cb_firefighters_post cfp ON cfp.org_usr_id = u.sequence_nbr AND cfp.is_delete = false
WHERE
u.is_delete = false AND u.biz_org_code LIKE CONCAT(#{bizOrgCode}, '%')
GROUP BY
peopleType
HAVING peopleType in (#{peopleType});
</select>
<select id="selectTodayAttendance" resultType="java.lang.Long">
SELECT COUNT(DISTINCT cs.user_id)
FROM cb_sign cs
......
package com.yeejoin.equipmanage.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO;
import com.yeejoin.equipmanage.common.entity.dto.FireResourceStatsDTO;
import com.yeejoin.equipmanage.common.entity.vo.EquipTypeImgAmountVO;
import com.yeejoin.equipmanage.common.enums.EmergencyEquipTypeEnum;
import com.yeejoin.equipmanage.common.utils.CommonResponseUtil;
import com.yeejoin.equipmanage.common.utils.DateUtils;
import com.yeejoin.equipmanage.config.PersonIdentify;
......@@ -14,14 +18,12 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import liquibase.pro.packaged.B;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
......@@ -756,4 +758,32 @@ public class EmergencyController extends AbstractBaseController {
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation("设备平台详情设备列表")
@GetMapping(value = "/equip/list")
public IPage<EquipTypeImgAmountVO> getMaterialList(@RequestBody EquipTypeAmountPageDTO equipTypeAmountPage) {
if (StringUtils.isEmpty(equipTypeAmountPage.getEquipCodeKey())) {
return new Page<>();
}
String bizOrgCode = equipTypeAmountPage.getBizOrgCode();
if (StringUtils.isEmpty(bizOrgCode)) {
ReginParams reginParams = getSelectedOrgInfo();
bizOrgCode = !ValidationUtil.isEmpty(reginParams.getPersonIdentity()) && org.apache.commons.lang3.StringUtils.isNotEmpty(reginParams.getPersonIdentity().getBizOrgCode()) ? reginParams.getPersonIdentity().getBizOrgCode() : null;
equipTypeAmountPage.setBizOrgCode(bizOrgCode);
}
return iEmergencyService.getEmergencyEquipList(equipTypeAmountPage);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/equip/statistic")
@ApiOperation(httpMethod = "GET", value = "查询监测部件列表", notes = "查询监测部件列表")
public List<Map<String, Object>> getEquipStatistic(@RequestParam(required = false) String bizOrgCode,
@RequestParam String equipCodeKey) {
if (StringUtils.isEmpty(bizOrgCode)) {
ReginParams reginParams = getSelectedOrgInfo();
bizOrgCode = !ValidationUtil.isEmpty(reginParams.getPersonIdentity()) && org.apache.commons.lang3.StringUtils.isNotEmpty(reginParams.getPersonIdentity().getBizOrgCode()) ? reginParams.getPersonIdentity().getBizOrgCode() : null;
}
return iEmergencyService.getEquipStatistic(bizOrgCode, equipCodeKey);
}
}
......@@ -182,9 +182,12 @@ public class SocialPowerController extends AbstractBaseController {
public Page<SocialPower> selectForList(Page page,
@RequestParam(value = "companyName",required = false) String companyName,
@RequestParam(value = "contactUser",required = false) String contactUser,
@RequestParam(value = "remark",required = false) String remark) {
ReginParams reginParams = getSelectedOrgInfo();
String bizOrgCode = reginParams.getPersonIdentity().getBizOrgCode();
@RequestParam(value = "remark",required = false) String remark,
@RequestParam(required = false) String bizOrgCode) {
if (StringUtils.isEmpty(bizOrgCode)) {
ReginParams reginParams = getSelectedOrgInfo();
bizOrgCode = reginParams.getPersonIdentity().getBizOrgCode();
}
SocialPower dto = new SocialPower();
dto.setBizOrgCode(bizOrgCode);
dto.setCompanyName(companyName);
......
package com.yeejoin.equipmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO;
import com.yeejoin.equipmanage.common.entity.vo.EquipTypeImgAmountVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -99,4 +102,7 @@ public interface EmergencyMapper extends BaseMapper{
*/
Page<Map<String, Object>> alarmList(@Param("page") Page<Map<String, Object>> page, @Param("bizOrgCode") String bizOrgCode, @Param("types") List<String> types, @Param("emergencyLevels") List<String> emergencyLevels, @Param("name") String name, @Param("cleanStatus") Integer cleanStatus, @Param("handleStatus") Integer handleStatus);
IPage<EquipTypeImgAmountVO> getEmergencyEquipList(@Param("page") IPage page, @Param("equipTypeAmountPage") EquipTypeAmountPageDTO equipTypeAmountPage);
List<Map<String, Object >> getEquipStatistic(@Param("bizOrgCode") String bizOrgCode, @Param("equipCodeKey") String equipCodeKey);
}
package com.yeejoin.equipmanage.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO;
import com.yeejoin.equipmanage.common.entity.vo.EquipTypeImgAmountVO;
import com.yeejoin.equipmanage.common.vo.PressurePumpCountVo;
import java.util.List;
......@@ -76,4 +79,8 @@ public interface IEmergencyService {
* @return
*/
Map<String, Object> getPressurePumpStartStatistics(String startTime, String endTime, String bizOrgCode);
IPage<EquipTypeImgAmountVO> getEmergencyEquipList(EquipTypeAmountPageDTO equipTypeAmountPage);
List<Map<String, Object >> getEquipStatistic(String bizOrgCode, String equipCodeKey);
}
package com.yeejoin.equipmanage.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog;
import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO;
import com.yeejoin.equipmanage.common.entity.vo.EquipTypeImgAmountVO;
import com.yeejoin.equipmanage.common.enums.EmergencyEquipTypeEnum;
import com.yeejoin.equipmanage.common.enums.IndexStatusEnum;
import com.yeejoin.equipmanage.common.enums.PressurePumpAnalysisEnum;
import com.yeejoin.equipmanage.common.enums.PressurePumpRelateEnum;
......@@ -376,6 +380,13 @@ public class EmergencyServiceImpl implements IEmergencyService {
}
@Override
public IPage<EquipTypeImgAmountVO> getEmergencyEquipList(EquipTypeAmountPageDTO equipTypeAmountPage) {
String equipCodeLike = EmergencyEquipTypeEnum.getCodeByName(equipTypeAmountPage.getEquipCodeKey());
equipTypeAmountPage.setEquipCodeKey(equipCodeLike);
return emergencyMapper.getEmergencyEquipList(equipTypeAmountPage.getPage(), equipTypeAmountPage);
}
@Override
public Map<String, Object> getPressurePumpStatusChart(String startTime, String endTime, String bizOrgCode) {
Map<String, Object> map = new LinkedHashMap<>();
try {
......@@ -662,4 +673,10 @@ public class EmergencyServiceImpl implements IEmergencyService {
public Map<String, Object> getEmergencyMaterials(String bizOrgCode) {
return emergencyMapper.getEmergencyMaterials(bizOrgCode);
}
@Override
public List<Map<String, Object>> getEquipStatistic(String bizOrgCode, String equipCodeKey) {
String equipCodeLike = EmergencyEquipTypeEnum.getCodeByName(equipCodeKey);
return emergencyMapper.getEquipStatistic(bizOrgCode, equipCodeLike);
}
}
......@@ -37,4 +37,16 @@ public class FireResourceSupervisionController extends BaseController {
Map<String, Map<String, Number>> personnelStats = iFireResourceSupervisionService.getPersonnelStats(bizOrgCode);
return ResponseHelper.buildResponse(personnelStats);
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "设备平台驻站消防员、运维人员统计信息查询", notes = "驻站消防员、运维人员统计信息查询")
@RequestMapping(value = "/person/info", method = RequestMethod.GET)
public ResponseModel<Object> getPersonInfo(@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode) {
if (StringUtils.isBlank(bizOrgCode)) {
ReginParams reginParams = getSelectedOrgInfo();
bizOrgCode = !ValidationUtil.isEmpty(reginParams.getPersonIdentity()) && StringUtils.isNotEmpty(reginParams.getPersonIdentity().getBizOrgCode()) ? reginParams.getPersonIdentity().getBizOrgCode() : null;
}
Map<String, Map<String, String>> personnelStats = iFireResourceSupervisionService.getPersonInfo(bizOrgCode);
return ResponseHelper.buildResponse(personnelStats);
}
}
......@@ -64,6 +64,40 @@ public class FireResourceSupervisionServiceImpl implements IFireResourceSupervis
return result;
}
@Override
public Map<String, Map<String, String>> getPersonInfo(String bizOrgCode) {
List<Map<String, Object>> maps = fireResourceSupervisionMapper.selectPersonnelStats(bizOrgCode);
Long attendanceCount = fireResourceSupervisionMapper.selectTodayAttendance(bizOrgCode);
Map<String, Map<String, String>> result = new HashMap<>();
for (Map<String, Object> map : maps) {
Object peopleType = map.get("peopleType");
if (Objects.isNull(peopleType)) {
continue;
}
long totalCount = Long.parseLong(map.get("totalCount").toString());
Integer personType = 0;
String key;
switch (peopleType.toString()) {
case "0":
key = "operationStats";
break;
case "1":
key = "fireStats";
personType = 1;
break;
default:
continue;
}
Map<String, Object> statusMap = fireResourceSupervisionMapper.getPersonStatus(bizOrgCode, personType);
Map<String, String> stats = new HashMap<>();
stats.put("totalCounts", String.valueOf(totalCount));
stats.put("yellowCounts", String.valueOf(statusMap.get("yellowCounts")));
stats.put("redCounts", String.valueOf(statusMap.get("redCounts")));
result.put(key, stats);
}
return result;
}
private Map<String, Number> getStringNumberMap(long certifiedCount, long totalCount, Long attendanceCount, String key) {
Map<String, Number> stats = new HashMap<>();
stats.put("totalCount", totalCount);
......
......@@ -1061,6 +1061,7 @@
`update_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`biz_org_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '机构编码',
`biz_org_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '机构/部门名称',
`power_status` varchar(20) NULL DEFAULT 0 COMMENT '社会力量状态,默认0表示正常(绿色),1为故障类(黄色),2为火警类(红色)',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=20240103 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='社会力量表';
</sql>
......
......@@ -2,6 +2,33 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.equipmanage.mapper.EmergencyMapper">
<resultMap id="CategoryAmountList" type="com.yeejoin.equipmanage.common.entity.vo.EquipTypeImgAmountVO">
<result column="id" property="id"></result>
<result column="fullqrCode" property="fullqrCode"></result>
<result column="amount" property="amount"></result>
<result column="equipmentName" property="equipmentName"></result>
<result column="unitName" property="unitName"></result>
<result property="qrCode" column="qr_code"></result>
<result property="standard" column="standard"></result>
<result property="img" column="img"></result>
<result property="warehouseStructureName" column="full_name"></result>
<result property="systemName" column="systemName"></result>
<result property="amount" column="amount"></result>
<result property="manufacturerName" column="manufacturerName"></result>
<result property="status" column="status"></result>
<result property="type" column="type"></result>
<result property="code" column="code"></result>
<result property="systemType" column="systemType"></result>
<result property="iotCode" column="iotCode"></result>
<result property="eqtype" column="eqtype"></result>
<result property="bizOrgCode" column="bizOrgCode"></result>
<result property="equipStatus" column="equipStatus"></result>
<result property="bizOrgName" column="bizOrgName"></result>
<result property="belongBuildName" column="belongBuildName"></result>
<result property="equip" column="equip"></result>
<result property="other" column="other"></result>
</resultMap>
<select id="getSystemState" resultType="Map">
SELECT
`fs`.`id` AS `key`,
......@@ -1431,4 +1458,52 @@
</if>) AS respiratorStates
)
</select>
<select id="getEmergencyEquipList" resultMap="CategoryAmountList">
SELECT
wes.id,
wes.biz_org_code as bizOrgCode,
wes.biz_org_name as bizOrgName,
wes.name as equipmentName,
wed.equipment_name systemType,
wes.equip_status AS equipStatus
FROM
wl_equipment_specific wes
LEFT JOIN wl_equipment_detail wed ON wed.id = wes.equipment_detail_id
<where>
<if test="equipTypeAmountPage.equipCodeKey!=null and equipTypeAmountPage.equipCodeKey!=''">
wes.equipment_code LIKE CONCAT(#{equipTypeAmountPage.equipCodeKey}, '%')
</if>
<if test="equipTypeAmountPage.bizOrgCode!=null and equipTypeAmountPage.bizOrgCode!=''">
AND wes.biz_org_code LIKE CONCAT(#{equipTypeAmountPage.bizOrgCode},'%')
</if>
<if test="equipTypeAmountPage.equipStatus!=null and equipTypeAmountPage.equipStatus!=''">
And wes.equip_status = #{equipTypeAmountPage.equipStatus}
</if>
<if test="equipTypeAmountPage.equipmentClassificationCode!=null and equipTypeAmountPage.equipmentClassificationCode!=''">
and wed.`code` like concat(#{equipTypeAmountPage.equipmentClassificationCode}, '%')
</if>
AND wed.equipment_name is not null
</where>
ORDER BY CONVERT(bizOrgName USING gbk) ASC, equipStatus DESC
</select>
<select id="getEquipStatistic" resultType="java.util.Map">
SELECT
wes.id,
count(wes.equipment_code) AS count,
LEFT(wed.code, 8) AS code,
wed.equipment_name name
FROM
wl_equipment_specific wes
LEFT JOIN wl_equipment_detail wed ON wed.id = wes.equipment_detail_id
WHERE
wed.equipment_name is not null
<if test="bizOrgCode != null and bizOrgCode != ''">
AND wes.biz_org_code LIKE CONCAT( #{bizOrgCode}, '%')
</if>
<if test="equipCodeKey != null and equipCodeKey != ''">
AND wes.equipment_code LIKE CONCAT(#{equipCodeKey}, '%')
</if>
GROUP BY wes.equipment_code
</select>
</mapper>
......@@ -4,7 +4,8 @@
<select id="listPage" resultType="com.yeejoin.equipmanage.common.entity.SocialPower">
SELECT
wsp.*
wsp.*,
wsp.power_status AS statusCode
FROM
wl_social_power wsp
<where>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment