jiangping
2025-05-07 b1ba48885c599674b7ed19242a1fc266abac7f9d
最新版本541200007
已添加2个文件
已修改7个文件
154 ■■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ResourcesByParamsRequest.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ResourcesByParamsResponse.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/MonitorDataInfoVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -151,6 +151,8 @@
    public static final String SCREEN_SEVENT_ARRIVAL_STARTDATE = "SCREEN_SEVENT_ARRIVAL_STARTDATE";
    public static final String EARLY_START_WX_NOTICE = "EARLY_START_WX_NOTICE";
    public static final String OVER_NOTICE_WX = "OVER_NOTICE_WX";
    public static final String PRESSURE_LEVEL_UNIT = "PRESSURE_LEVEL_UNIT";
    public static final String LIQUID_LEVEL_UNIT ="LIQUID_LEVEL_UNIT" ;
    public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
    public static  boolean DEALING_HK_SYNCDEVICE = false;
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -628,6 +628,7 @@
        String[] regionDataRanking= new String[]{"/api/ecm/v1/energy/regionDataRanking","消防看板-4获取区域用量排名-能耗看板"};//消防看板-获取区域用量排名 - èƒ½è€—看板
        String[] energyTotal= new String[]{"/api/ecm/v1/energy/energyTotal","消防看板-4根据时间和时间维度获取园区能耗数据"};//消防看板-根据时间和时间维度获取园区能耗数据
        String[] findDeviceStatistics= new String[]{"/api/v1/device/findDeviceStatistics","分页查询设备的以及下属传感器数据的状态统计"};// åˆ†é¡µæŸ¥è¯¢è®¾å¤‡çš„以及下属传感器数据的状态统计
        String[] resourcesByParams= new String[]{"/api/irds/v2/resource/resourcesByParams","【海康消防看板】根据条件查询目录下有权限的资源列表"};// ã€æµ·åº·æ¶ˆé˜²çœ‹æ¿ã€‘根据条件查询目录下有权限的资源列表
        String[] iccmSignoff= new String[]{"/api/iccm/v1/signoff","iccm访客签离"};// iccm访客签离
    }
    /**
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -908,6 +908,14 @@
        return startDoPostStringArtemis(HKConstants.InterfacePath.findDeviceStatistics,body);
    }
    /**
     * ã€æµ·åº·æ¶ˆé˜²çœ‹æ¿ã€‘根据条件查询目录下有权限的资源列表
     * @param body
     * @return
     */
    public static String resourcesByParams(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.resourcesByParams,body);
    }
    /**
     *消防看板-4报警信息统计
     * @param body
     * @return
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ResourcesByParamsRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package com.doumee.core.haikang.model.param.request;
import com.alibaba.fastjson.JSONArray;
import com.doumee.core.haikang.model.param.BaseListPageRequest;
import lombok.Data;
/**
 *  {
 *     "name":"æ¶²",
 *     "regionIndexCodes": [
 *         "root000000"
 *     ],
 *     "isSubRegion": true,
 *     "resourceType": "fireSensor",
 *     "pageNo": 1,
 *     "pageSize": 20,
 *     "orderBy": "name",
 *     "orderType": "desc"
 *     }
 */
@Data
public class ResourcesByParamsRequest extends BaseListPageRequest {
private String name    ;//String    false    åç§°ï¼Œæ¨¡ç³Šæœç´¢ï¼Œæœ€å¤§é•¿åº¦32,若包含中文,最大长度指不超过按照指定编码的字节长度,即getBytes("utf-8").length
private String[]  regionIndexCodes;//    Array    false    åŒºåŸŸç¼–号,可以为空;String[],支持根据区域批量查询;区域编号个数<=1000个;单个长度<=64Byte;,可从[查询区域列表v2]@[软件产品-综合安防管理平台-API列表-资源目录-区域信息接口#查询区域列表v2]接口获取返回参数indexCode
private Boolean isSubRegion;//    Boolean    false    true时,搜索regionIndexCodes及其子孙区域的资源;false时,只搜索 regionIndexCodes的资源
private String resourceType    ;//String    true    èµ„源类型,详见[附录A.3 èµ„源类型/资源权限码]@[软件产品-综合安防管理平台-附录-附录A æ•°æ®å­—å…¸#附录A.3 èµ„源类型/资源权限码]此处的资源类型指设备资源,如门禁控制器、门禁点;注:资源iasDevice\reader\floor无需进行权限校验
private String[]  authCodes;//    Array    false    æƒé™ç é›†åˆï¼Œè¯¦è§[附录A.3 èµ„源类型/资源权限码]@[软件产品-综合安防管理平台-附录-附录A æ•°æ®å­—å…¸#附录A.3 èµ„源类型/资源权限码]
private String[]  capabilitySet;//    Array    false    è®¾å¤‡èƒ½åЛ集(含设备上的智能能力),详见[附录A.44 è®¾å¤‡èƒ½åЛ集]@[软件产品-综合安防管理平台-附录-附录A æ•°æ®å­—å…¸#附录A.44 è®¾å¤‡èƒ½åЛ集]
 private String orderBy;//    String    false    æŽ’序字段,注意:排序字段必须是查询条件,否则返回参数错误
private String orderType    ;//String    false    é™åºå‡åº,降序:desc å‡åºï¼šasc
private JSONArray expressions    ;//Array    false    æŸ¥è¯¢è¡¨è¾¾å¼
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ResourcesByParamsResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
import java.util.List;
@Data
public class ResourcesByParamsResponse {
     private String  indexCode    ;//String    false    é—¨ç¦ç‚¹å”¯ä¸€æ ‡è¯†
     private String  name;//String    false    é—¨ç¦ç‚¹åç§°
     private String  resourceType;//    String    false    èµ„源类型,详见[附录A.3 èµ„源类型/资源权限码]@[软件产品-综合安防管理平台-附录-附录A æ•°æ®å­—å…¸#附录A.3 èµ„源类型/资源权限码]
     private String  doorNo    ;//Number    false    é—¨ç¦ç‚¹ç¼–号
     private String  description;//    String    false    æè¿°
     private String  parentIndexCodes;//    String    false    çˆ¶çº§èµ„源编号
     private String  regionIndexCode;//    String    false    æ‰€å±žåŒºåŸŸå”¯ä¸€æ ‡è¯†
     private String  regionPath;//    String    false    æ‰€å±žåŒºåŸŸè·¯å¾„,由唯一标示组成,最大10级,格式: @根节点@子区域1@子区域2@
     private String  channelType    ;//String    false    é€šé“类型
     private String  channelNo;//    String    false    é€šé“号
     private String  installLocation;//    String    false    å®‰è£…位置
     private String  capabilitySet;//    String    false    è®¾å¤‡èƒ½åŠ›é›†ï¼Œè¯¦è§[附录A.44 è®¾å¤‡èƒ½åЛ集]@[软件产品-综合安防管理平台-附录-附录A æ•°æ®å­—å…¸#附录A.44 è®¾å¤‡èƒ½åЛ集]
     private String  controlOneId;//    String    false    ä¸€çº§æŽ§åˆ¶å™¨id
     private String  controlTwoId;//    String    false    äºŒçº§æŽ§åˆ¶å™¨id
     private String  readerInId;//    String    false    è¯»å¡å™¨1
     private String  readerOutId;//    String    false    è¯»å¡å™¨2
     private String  comId;//    String    false    ç»„件标志
     private String  createTime    ;//String    false    åˆ›å»ºæ—¶é—´
     private String  updateTime;//    String    false    æ›´æ–°æ—¶é—´
     private String fireproChannelMaxvalue;//":"3.5”
     private String fireproChannelMinValue;//": â€œ0.50".
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -1989,6 +1989,24 @@
        return  null;
    }
    /**
     *根据条件查询目录下有权限的资源列表
     * @return
     */
    public  static  BaseResponse<BaseListPageResponse<ResourcesByParamsResponse>>  resourcesByParams(ResourcesByParamsRequest param){
        log.info("【海康消防看板】根据条件查询目录下有权限的资源列表================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.resourcesByParams(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<BaseListPageResponse<ResourcesByParamsResponse> >>(){};
            BaseResponse<BaseListPageResponse<ResourcesByParamsResponse> >   result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result,"【海康消防看板】根据条件查询目录下有权限的资源列表");
            return  result;
        }catch (Exception e){
            log.error("【海康消防看板】根据条件查询目录下有权限的资源列表================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *消防看板-4报警信息统计
     * @return
     */
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/MonitorDataInfoVO.java
@@ -25,6 +25,10 @@
    @ApiModelProperty(value = "小类编号")
    private String cateCode;
//    @ApiModelProperty(value = "阈值")
//    private String level;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -1034,7 +1034,7 @@
                carrecord.setInOrOut(Constants.ZERO);
            }
            //车辆进入记录对应业务类型
            if(event.getCarType() ==null || event.getCarType().equals(Constants.RetentionCarType.other)){
            if(isCarInOrOutEvent(request) &&( event.getCarType() ==null || event.getCarType().equals(Constants.RetentionCarType.other))){
                //如果未识别到车型,不是固定车 ä¹Ÿä¸æ˜¯è´§è¿è½¦è¾†ï¼Œåˆ™æ£€æŸ¥æ˜¯å¦æ˜¯è®¿å®¢è½¦
                visitsList =  visitsMapper.selectList(new QueryWrapper<Visits>().lambda()
                                .eq(Visits::getCarNos,event.getPlateNos())
@@ -1089,7 +1089,7 @@
                    }
                }
            }
            if(carrecord.getInOrOut()!=null && event.getCarType() !=null && !event.getCarType().equals(Constants.RetentionCarType.fkCar)){
            if(isCarInOrOutEvent(request) && event.getCarType() !=null && !event.getCarType().equals(Constants.RetentionCarType.fkCar)){
                //录入非访客类型车辆进出记录
                dealNotFkCarMemberBiz(event,request,carrecord,retentionList,inoutDayCount,inoutRecordList);
            }
@@ -1097,6 +1097,14 @@
        return event;
    }
    private boolean isCarInOrOutEvent(EventParkInfoRequest request) {
        if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey() ||
                Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){
            return  true;
        }
        return  false;
    }
    private void dealNotFkCarMemberBiz( CarEvent event ,EventParkInfoRequest request, InoutRecord carrecord,List<Retention> retentionList,InoutDayCount inoutDayCount,List<InoutRecord> inoutRecordList) {
        //录入非访客类型车辆进出记录
        carrecord.setCarBizType(event.getCarType()==null?Constants.RetentionCarType.other:event.getCarType());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -647,6 +647,8 @@
    }
    /**
     * ã€æ¶ˆé˜²ç®¡æŽ§ã€‘看板-实时监测数据
     * æ¶²åŽ‹å›ºå®šå€¼ï¼š254001
     * æ°´åŽ‹å›ºå®šå€¼ï¼š253958
     * @return
     *
     */
@@ -664,6 +666,8 @@
        BaseResponse<BaseListPageResponse<MonitorDataSearchResponse>> response = HKService.minitorDataSearch(param);
        String pressure = systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.WMS_PRESSURE_LEVEL).getCode();
        String liquid = systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.WMS_LIQUID_LEVEL).getCode();
        String pressureUnit = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.PRESSURE_LEVEL_UNIT).getCode();
        String liquidUnit = systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.LIQUID_LEVEL_UNIT).getCode();
        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
                && response.getData()!=null ) {
            List<MonitorDataSearchResponse> r = response.getData().getList();
@@ -671,7 +675,8 @@
                for(MonitorDataSearchResponse model : r){
                    MonitorDataVO m = new MonitorDataVO();
                    m.setName(model.getName());
                    m.setLevel(Constants.equalsInteger(model.getType(),60)?liquid:pressure);
//                    m.setLevel(Constants.equalsInteger(model.getType(),60)?liquid:pressure);
                    m.setLevel(getLevelDataByDeviceName(model.getName(),Constants.equalsInteger(model.getType(),60)?liquidUnit:pressureUnit));
                    m.setDataList(new ArrayList<>());
                    if(model.getValues()!=null){
                        List<MonitorDataInfoVO> dataList = new ArrayList<>();
@@ -683,7 +688,6 @@
                                    vm.setCateName(v.getMonitorSpecificName());
                                    vm.setCateCode(v.getMonitorTypeKey());
                                    vm.setTypeCode(v.getMonitorTypeCode());
                                    vm.setTypeName(v.getMonitorTypeName());
                                    dataList.add(vm);
                                }
                            }else{
@@ -708,6 +712,44 @@
        return  list;
    }
    private String getLevelDataByDeviceName(String name,String unit) {
        /**
         *   {
         *     "name":"æ¶²",
         *     "regionIndexCodes": [
         *         "root000000"
         *     ],
         *     "isSubRegion": true,
         *     "resourceType": "fireSensor",
         *     "pageNo": 1,
         *     "pageSize": 20,
         *     "orderBy": "name",
         *     "orderType": "desc"
         *     }
         */
        String r = "";
        ResourcesByParamsRequest param = new ResourcesByParamsRequest();
        param.setName(name);
        param.setIsSubRegion(Boolean.TRUE);
        param.setRegionIndexCodes(new String[]{"root000000"});
        param.setResourceType("fireSensor");
        param.setOrderType("desc");
        param.setOrderBy("name");
        param.setPageNo(1);
        param.setPageSize(20);
        BaseResponse<BaseListPageResponse<ResourcesByParamsResponse>> response = HKService.resourcesByParams(param);
        if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
                && response.getData()!=null ) {
            String min  = response.getData().getList().get(0).getFireproChannelMinValue();
            String max  = response.getData().getList().get(0).getFireproChannelMaxvalue();
            r  =StringUtils.defaultString(min,"-")+"~"+StringUtils.defaultString(max,"-") +unit;
        }
        return  r;
    }
    /**
     * ã€æ¶ˆé˜²ç®¡æŽ§ã€‘看板-告警处理分析集合