whyclxw
2024-12-13 425140ad9f000ac282342ceb2382aa628bef4f94
线程监控
2个文件已修改
5个文件已添加
205 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/BaseController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/ProcessSurveyController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/ProcessServerDao.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/ProcessSurveyMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/db_param/ProcessSurvey.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ProcessSurveyService.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/util/ActionUtil.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BaseController.java
New file
@@ -0,0 +1,14 @@
package com.whyc.controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class BaseController {
    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.setDisallowedFields("fieldForCheck");
    }
}
src/main/java/com/whyc/controller/ProcessSurveyController.java
New file
@@ -0,0 +1,52 @@
package com.whyc.controller;
import com.whyc.constant.YamlProperties;
import com.whyc.dto.Response;
import com.whyc.pojo.db_param.ProcessSurvey;
import com.whyc.service.ProcessSurveyService;
import com.whyc.util.ActionUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("processSurvey")
@Api(tags = "数据管理-后台线程管理")
public class ProcessSurveyController extends BaseController{
    @Resource
    private ProcessSurveyService service;
    @GetMapping("/getAll")
    @ApiOperation(value = "获取所有线程")
    public Response getAll(){
        return service.getAll();
    }
    @PostMapping("update")
    @ApiOperation(value = "通过id更新")
    public Response update(@RequestBody ProcessSurvey survey){
        return service.updateById(survey);
    }
    @PostMapping("/updateFlag")
    @ApiOperation(value = "通过服务名修改标识")
    public Response updateFlagByName(@RequestBody ProcessSurvey survey){
        return service.updateServerFlagByName(survey);
    }
    /*@PostMapping("/judgeRestart")
    @ApiOperation(value = "验证重启密码")
    public Response judgeRestart(@RequestParam String password){
        String default_pwd=(String) ActionUtil.EncryptionMD5(YamlProperties.restartPasswd);
        String restart_pwd=(String) ActionUtil.EncryptionMD5(password);
        if(restart_pwd.equals(default_pwd)){
            return new Response().set(1,true,"验证通过");
        }else{
            return new Response().set(1,false,"验证失败");
        }
    }*/
}
src/main/java/com/whyc/dto/ProcessServerDao.java
New file
@@ -0,0 +1,21 @@
package com.whyc.dto;
public class ProcessServerDao {
    //所有进程名字
    public static String BMS_FBSDEV="BMS_FBSDEV";//主程序线程
    public static String BMS_FBSDEV_ALARM_BATT="BMS_FBSDEV_ALARM_BATT";//电池告警线程
    public static String BMS_FBSDEV_ALARM_DEV="BMS_FBSDEV_ALARM_DEV";//设备告警线程
    public static String BMS_FBSDEV_BADBATT_MON="BMS_FBSDEV_BADBATT_MON";//落后单体线程
    public static String BMS_FBSDEV_BADBATT_CAP="BMS_FBSDEV_BADBATT_CAP";//容量告警线程
    public static String BMS_FBSDEV_PLAN="BMS_FBSDEV_PLAN";//放电计划线程
    public static String BMS_FBSDEV_POWER_FAIL="BMS_FBSDEV_POWER_FAIL";//机房停电线程
    public static String BMS_FBS61850_BATT="BMS_FBS61850_BATT";//机房停电线程
   //进程开关
    public static Integer PROCESS_ON=1;//进行中
    public static Integer PROCESS_OFF=0;//关闭
    public static Integer PROCESS_TEMP=2;//暂未开启
   //默认重启密码加密
    //public static String  RESTART_PWD_ENCRYPT="AKxTGQo6bAABeC62B8Dtxw==";
}
src/main/java/com/whyc/mapper/ProcessSurveyMapper.java
New file
@@ -0,0 +1,7 @@
package com.whyc.mapper;
import com.whyc.pojo.db_param.ProcessSurvey;
public interface ProcessSurveyMapper extends CustomMapper<ProcessSurvey> {
}
src/main/java/com/whyc/pojo/db_param/ProcessSurvey.java
@@ -38,4 +38,7 @@
    @TableField("OutTime")
    private Integer outTime;//进程超时时间(秒)
    private String note;
    @TableField(exist = false)
    private String ProcessName_CN;
}
src/main/java/com/whyc/service/ProcessSurveyService.java
New file
@@ -0,0 +1,98 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.dto.ProcessServerDao;
import com.whyc.dto.Response;
import com.whyc.mapper.ProcessSurveyMapper;
import com.whyc.pojo.db_param.ProcessSurvey;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
public class ProcessSurveyService {
    @Resource
    private ProcessSurveyMapper mapper;
   /* @Autowired
    private PageParamService pageParamService;*/
    public Response getAll(){
        QueryWrapper<ProcessSurvey> queryWrapper = new QueryWrapper<>();
        queryWrapper.orderByAsc("num");
        List<ProcessSurvey> list = mapper.selectList(queryWrapper);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        for (ProcessSurvey survey:list) {
            survey.setProcessName_CN(survey.getNote());
            survey.setNote(sdf.format(new Date()));
        }
        return new Response().set(1,list,"查询成功");
    }
    public Response updateById(ProcessSurvey survey){
//        UpdateWrapper<ProcessSurvey> updateWrapper = new UpdateWrapper<>();
//        updateWrapper.set("note",survey.getNote());
//        updateWrapper.set("outtime",survey.getOutTime());
//        updateWrapper.eq("num",survey.getNum());
        mapper.updateById(survey);
        return new Response().set(1,true,"更新成功");
    }
    public Response updateServerFlagOff(ProcessSurvey survey){
        UpdateWrapper<ProcessSurvey> updateWrapper = new UpdateWrapper<>();
        updateWrapper.set("serverflag", ProcessServerDao.PROCESS_OFF);
        updateWrapper.eq("processName",survey.getProcessName());
        updateWrapper.eq("serverflag",ProcessServerDao.PROCESS_TEMP);
        mapper.update(survey,updateWrapper);
        return new Response().set(1,true,"更新成功");
    }
    public Response updateServerFlagByName(ProcessSurvey survey){
        UpdateWrapper<ProcessSurvey> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("serverName",survey.getServerName());
        mapper.update(survey,updateWrapper);
        return new Response().set(1,true,"更新成功");
    }
    /**更新web平台的运行时间,每5秒更新一次*/
    public void updateWebTime() {
        Date date = new Date();
        UpdateWrapper<ProcessSurvey> update = Wrappers.update();
        update.set("ProcessTime",date).eq("ProcessId",11024);
        mapper.update((ProcessSurvey) ActionUtil.objeNull,update);
    }
   /* public void updateWebStartTimeAndVersion() {
        PageParam versionParam = pageParamService.getParam(32);
        Date date = new Date();
        UpdateWrapper<ProcessSurvey> update = Wrappers.update();
        update.set("Process_starttime",date).set("ProcessTime",date).set("ProcessVersion",versionParam.getParam()).eq("ProcessId",11024);
        mapper.update((ProcessSurvey) ActionUtil.objeNull,update);
    }*/
    public void setUpThreadRestart() {
        //重启告警线程 --->11002
        threadRestart(11002);
        //重启消峰填谷计划线程--->11019
        threadRestart(11019);
    }
    private void threadRestart(int processId) {
        UpdateWrapper<ProcessSurvey> update = Wrappers.update();
        update.set("ServerFlag",0).eq("ProcessId",processId).ne("ServerFlag",2);
        mapper.update((ProcessSurvey) ActionUtil.objeNull,update);
    }
    //修改告警阈值重启线程
    public void setAlmThreadRestart() {
        //重启告警线程 --->11002
        threadRestart(11002);
    }
}
src/main/java/com/whyc/util/ActionUtil.java
@@ -4,6 +4,7 @@
import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;
import com.whyc.pojo.db_user.UserInf;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import sun.misc.BASE64Decoder;
@@ -232,7 +233,14 @@
    return new   SimpleDateFormat( "yyyy-MM-dd HH:mm:ss").format(c.getTime());
    }
    //使用MD5加密
    public static Object EncryptionMD5(Object obj){
        String md5=null;
        if(obj!=null && obj.toString().length()>0){
            md5= DigestUtils.md5Hex(obj.toString());
        }
        return md5;
    }
    
    //获取时间的年份
    public static int getDateYear(Date date){