shenyijian
2024-08-09 8fa3600cdf80771ac93d23fe4c37796717525615
Merge remote-tracking branch 'origin/jtdev' into jtdev
7 files modified
204 ■■■■ changed files
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java 12 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/enums/DamEnum.java 16 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/OpenApiServiceImpl.java 146 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/controller/SkBaiYiController.java 8 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/service/impl/SkBaiYiServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
@@ -160,11 +160,11 @@
            }
            //拼接用户所属行政区划、责任人需要返回水库ids
            userInfo.getDetail().set("resIds","");
            if (StringUtil.isNotBlank(user.getPhone())) {
                R<AttResManagePerson> attRes = attResManagePersonClient.queryListByPhone(user.getPhone());
                userInfo.getDetail().set("resIds",attRes.getData());
            }
//            userInfo.getDetail().set("resIds","");
//            if (StringUtil.isNotBlank(user.getPhone())) {
//                R<AttResManagePerson> attRes = attResManagePersonClient.queryListByPhone(user.getPhone());
//                userInfo.getDetail().set("resIds",attRes.getData());
//            }
            //返回手机号
            userInfo.getDetail().set("phone",Base64Utils.getBase64Encode(user.getPhone()));
@@ -205,7 +205,7 @@
            User loginUserInfo = userInfo.getUser();
//            获取解密后的Base64字符串
            //获取解密后的Base64字符串
            R<ResultDTO> encryptRes = pwdClient.getDecrypt(loginUserInfo.getSm4iv(), loginUserInfo.getKeyindexs(),loginUserInfo.getEncdata());
            if (encryptRes.getCode() != 200){
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/enums/DamEnum.java
@@ -16,27 +16,27 @@
    /**
     * 渗压
     */
    SY("1","seepage","/services/1234567890ABCDEFGHIJKLMN/realtime/op/sy/api"),
    SY("1","seepage","/services/1234567890ABCDEFGHIJKLMN/sy/realtime/v2/api"),
    /**
     * 渗流
     */
    SL("2","lsy" ,"/services/1234567890ABCDEFGHIJKLMN/realtime/op/sl/api"),
    SL("2","lsy" ,"/services/1234567890ABCDEFGHIJKLMN/sl/realtime/v2/api"),
    /**
     * x 位移
     * 位移_x 上下游
     */
    X("3","deform_x","/services/1234567890ABCDEFGHIJKLMN/"),
    X("3","deform_x","/services/1234567890ABCDEFGHIJKLMN/wy/realtime/v2/api"),
    /**
     * y 位移
     * 位移_y 左右岸
     */
    Y("4","deform_y","/services/1234567890ABCDEFGHIJKLMN/"),
    Y("4","deform_y","/services/1234567890ABCDEFGHIJKLMN/wy/realtime/v2/api"),
    /**
     * z 位移
     * 位移_z 垂直
     */
    Z("5","deform_z","/services/1234567890ABCDEFGHIJKLMN/"),
    Z("5","deform_z","/services/1234567890ABCDEFGHIJKLMN/wy/realtime/v2/api"),
    ;
    /**
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/OpenApiServiceImpl.java
@@ -14,6 +14,7 @@
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.springblade.core.redis.cache.BladeRedis;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
@@ -25,6 +26,8 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * 南科院水库预警算法api调用服务接口
@@ -110,30 +113,34 @@
        // 获取当前时间
        LocalDateTime now = LocalDateTime.now();
        // 减去一个小时
        LocalDateTime oneHourAgo = now.minusHours(1);
        LocalDateTime oneHourAgo = now.minusHours(8);
        // 格式化时间
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
        String oneHour = oneHourAgo.format(formatter) + ":00";
        String nowHour = now.format(formatter) + ":00";
        // 调用中台接口获取实时测点数据
        JSONArray ztData = getZtData("",
            ZtConfigConstant.url_prefix + DamEnum.ofType(type).getApiUrl() + "?tm_list=" + "'" + oneHour + "'," + "'" + nowHour + "'");
            ZtConfigConstant.url_prefix + DamEnum.ofType(type).getApiUrl() + "?start_tm=" + oneHour + "&end_tm=" + nowHour + "");
        // 解析数据
        for (int i = 0; i < ztData.size(); i++) {
            JSONObject jsonObject = ztData.getJSONObject(i);
            Map<String,Object> map = new HashMap<>();
            map.put("batchId",UUID.randomUUID());
            map.put("serialNo",getSerialNo());
            // 水库信息设置
            waterInfoSet(jsonObject, map);
            // 测点信息设置
            pointValueInfoSet(jsonObject,map, DamEnum.ofType(type).getName());
            // 发送请求
//            String response = sendPostJsonRequest(OpenApiConstant.POINT_VALUE_INLET_URL, map);
//            JSONObject parseObject = JSON.parseObject(response);
//            Integer status = parseObject.getInteger("status");
//            flag = status==200?true:false;
            log.info("测点输入结果:" + flag);
            flag = waterInfoSet(jsonObject, map,flag);
            if (flag) {
                // 测点信息设置
                flag = pointValueInfoSet(jsonObject, map, type,flag);
            }
            if (flag) {
                map.put("batchId",UUID.randomUUID());
                map.put("serialNo",getSerialNo());
                // 发送请求
                String response = sendPostJsonRequest(OpenApiConstant.POINT_VALUE_INLET_URL, map);
                JSONObject parseObject = JSON.parseObject(response);
                Integer status = parseObject.getInteger("status");
                flag = status==200?true:false;
                log.info("测点输入结果:" + flag);
            }
        }
    }
@@ -142,40 +149,94 @@
     * @param jsonObject
     * @param map
     */
    private void waterInfoSet(JSONObject jsonObject, Map<String, Object> map) {
        List<Map<String,Object>> waterLevelInfoList = new ArrayList<>();
        Map<String, Object> waterLevelInfoMap = new HashMap<>();
        waterLevelInfoMap.put("damCode",jsonObject.getString("res_cd"));
        waterLevelInfoMap.put("waterLevel",jsonObject.getString("res_cd"));
        waterLevelInfoMap.put("waterLevelTime",jsonObject.getString("res_cd"));
        waterLevelInfoMap.put("rainCondition",jsonObject.getString("res_cd"));
        waterLevelInfoMap.put("rainConditionTime",jsonObject.getString("res_cd"));
        waterLevelInfoList.add(waterLevelInfoMap);
        map.put("waterLevelInfo",waterLevelInfoList);
    private boolean waterInfoSet(JSONObject jsonObject, Map<String, Object> map,boolean flag) {
        String rz = jsonObject.getString("rz");
        flag = false;
        if (!Strings.isBlank(rz)) {
            flag = true;
            String res_cd = replaceSpecialStr(jsonObject.getString("res_cd"));
            List<Map<String, Object>> waterLevelInfoList = new ArrayList<>();
            Map<String, Object> waterLevelInfoMap = new HashMap<>();
            waterLevelInfoMap.put("damCode", res_cd);
            waterLevelInfoMap.put("waterLevel", jsonObject.getString("rz"));
            waterLevelInfoMap.put("waterLevelTime", jsonObject.getString("rz_tm"));
            waterLevelInfoMap.put("rainCondition", jsonObject.getString("drp"));
            waterLevelInfoMap.put("rainConditionTime", jsonObject.getString("drp_tm"));
            waterLevelInfoList.add(waterLevelInfoMap);
            map.put("waterLevelInfo", waterLevelInfoList);
        }
        return flag;
    }
    /**
     * 测点信息设置
     * @param map
     */
    private void pointValueInfoSet(JSONObject jsonObject,Map<String, Object> map,String type) {
    private boolean pointValueInfoSet(JSONObject jsonObject,Map<String, Object> map,String type,boolean flag) {
        flag = false;
        int num = 0;
        List<Map<String,Object>> pointValueInfoList = new ArrayList<>();
        JSONArray childArray = jsonObject.getJSONArray("child");
        //遍历处理
        for (int i = 0; i < childArray.size(); i++) {
            JSONObject childArrayJSONObject = childArray.getJSONObject(i);
            String pointCodeTemp = jsonObject.getString("res_cd") + "_"
                + childArrayJSONObject.getString("cd")
                + "_" + type;
            Map<String, Object> pointValueInfoMap = new HashMap<>();
            pointValueInfoMap.put("damCode",jsonObject.getString("res_cd"));
            pointValueInfoMap.put("pointCode",pointCodeTemp);
            pointValueInfoMap.put("type",type);
            pointValueInfoMap.put("value",childArrayJSONObject.getString("sy_val"));
            pointValueInfoMap.put("time",childArrayJSONObject.getString("tm"));
            pointValueInfoList.add(pointValueInfoMap);
            String sy_val = childArrayJSONObject.getString("sy_val");
            // type 为3 时为位移,位移返回数据格式不一致
            if (type.equals("3")){
                // 获取-位移_z 垂直 du是数值位移(垂直),de向东位移(上下游),dn向北位移(左右岸)
                String du = childArrayJSONObject.getString("du");
                String de = childArrayJSONObject.getString("de");
                String dn = childArrayJSONObject.getString("dn");
                if (!Strings.isBlank(du)){
                    num = setPointValue(jsonObject, DamEnum.ofType("5").getName(), num, pointValueInfoList, childArrayJSONObject, du);
                }
                if (!Strings.isBlank(dn)){
                    num = setPointValue(jsonObject, DamEnum.ofType("4").getName(), num, pointValueInfoList, childArrayJSONObject, dn);
                }
                if (!Strings.isBlank(de)){
                    num = setPointValue(jsonObject, DamEnum.ofType("3").getName(), num, pointValueInfoList, childArrayJSONObject, de);
                }
            }else {
                // 有测点值才加入
                if (!Strings.isBlank(sy_val)) {
                    // 设置测点信息
                    num = setPointValue(jsonObject, DamEnum.ofType(type).getName(), num, pointValueInfoList, childArrayJSONObject, sy_val);
                }
            }
        }
        map.put("pointValueInfo",pointValueInfoList);
        // 只要有一个测点值设置
        if (num>0) {
            flag = true;
            map.put("pointValueInfo", pointValueInfoList);
        }
        return flag;
    }
    /**
     * 设置测点数据
     * @param jsonObject
     * @param type
     * @param num
     * @param pointValueInfoList
     * @param childArrayJSONObject
     * @param sy_val
     * @return
     */
    private int setPointValue(JSONObject jsonObject, String type, int num, List<Map<String, Object>> pointValueInfoList, JSONObject childArrayJSONObject, String sy_val) {
        num++;
        String res_cd = replaceSpecialStr(jsonObject.getString("res_cd"));
        // 测点编码:水库GUID+测点编码+类型
        String pointCodeTemp = res_cd + "_"
            + childArrayJSONObject.getString("cd")
            + "_" + type;
        Map<String, Object> pointValueInfoMap = new HashMap<>();
        pointValueInfoMap.put("damCode", res_cd);
        pointValueInfoMap.put("pointCode", pointCodeTemp);
        pointValueInfoMap.put("type", type);
        pointValueInfoMap.put("value", sy_val);
        pointValueInfoMap.put("time", childArrayJSONObject.getString("tm"));
        pointValueInfoList.add(pointValueInfoMap);
        return num;
    }
    /**
@@ -292,4 +353,19 @@
        }
        return flag;
    }
    /**
     * 去除字符串中的空格、回车、换行符、制表符等
     * @param str
     * @return
     */
    public static String replaceSpecialStr(String str) {
        String repl = "";
        if (str!=null) {
            Pattern p = Pattern.compile("\\s*|\t|\r|\n");
            Matcher m = p.matcher(str);
            repl = m.replaceAll("");
        }
        return repl;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java
@@ -14,6 +14,7 @@
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
@@ -151,4 +152,16 @@
        return R.data(attResManagePersonService.getCityCountyPersonListByResGuid(resCd));
    }
    @GetMapping("/getResGuidList")
    public R queryListByPhone() {
        AttResManagePerson attResManagePerson = new AttResManagePerson();
        attResManagePerson.setUserPhone(AuthUtil.getUserAccount());
        List<AttResManagePerson> list = attResManagePersonService.list(Condition.getQueryWrapper(attResManagePerson));
        List<String> reslist = new ArrayList<>();
        list.forEach(item->{
            reslist.add(item.getResGuid());
        });
        return R.data(StringUtil.join(reslist,","));
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/controller/SkBaiYiController.java
@@ -9,8 +9,6 @@
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -68,11 +66,11 @@
                    for (BaiYiTestEntity item : list ) {
                        String skName = item.getSkName();
                        String termitePointNum = item.getTermitePointNum();
                        personInCharge = item.getPersonInCharge();
                        phone = item.getPhone();
                        if(sknm.equals(skName)){
                            personInCharge = item.getPersonInCharge();
                            phone = item.getPhone();
                            statListStr = statListStr + termitePointNum + ","; // 同一个水库的报警白蚁测点拼接起来
                        }
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/skBaiYiTest/service/impl/SkBaiYiServiceImpl.java
@@ -4,14 +4,13 @@
import cn.gistack.sm.skBaiYiTest.entity.BaiYiTestEntity;
import cn.gistack.sm.skBaiYiTest.mapper.SkBaiYiMapper;
import cn.gistack.sm.skBaiYiTest.service.ISkBaiYiService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class SkBaiYiServiceImpl extends ServiceImpl<SkBaiYiMapper, BaiYiTestEntity> implements ISkBaiYiService {
public class SkBaiYiServiceImpl extends BaseServiceImpl<SkBaiYiMapper, BaiYiTestEntity> implements ISkBaiYiService {
    @Override
    public List<BaiYiTestEntity> selectList() {
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java
@@ -258,8 +258,8 @@
            nkyClient.pointValueInlet(SY);
            nkyClient.pointValueInlet(SL);
            nkyClient.pointValueInlet(X);
            nkyClient.pointValueInlet(Y);
            nkyClient.pointValueInlet(Z);
//            nkyClient.pointValueInlet(Y);
//            nkyClient.pointValueInlet(Z);
        });
        XxlJobLogger.log("实时测点测值输入结束");
        return ReturnT.SUCCESS;