Переглянути джерело

修改数据查询,增加字典维护

wangb@gyee-china.com 1 рік тому
батько
коміт
d105176162

+ 93 - 0
alarm-web/src/main/java/com/gyee/alarm/controller/InfoController.java

@@ -1,12 +1,23 @@
 package com.gyee.alarm.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.gyee.alarm.model.auto.ProBasicEquipment;
+import com.gyee.alarm.model.auto.ProBasicEquipmentPoint;
+import com.gyee.alarm.model.auto.ProBasicPowerstation;
+import com.gyee.alarm.model.auto.ProBasicWindturbinePower;
 import com.gyee.alarm.service.DeviceService;
+import com.gyee.alarm.service.auto.IProBasicEquipmentPointService;
+import com.gyee.alarm.service.auto.IProBasicEquipmentService;
+import com.gyee.alarm.service.auto.IProBasicPowerstationService;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 @Slf4j
 @RestController
@@ -17,6 +28,15 @@ public class InfoController {
     @Resource
     private DeviceService deviceService;
 
+    @Resource
+    private IProBasicPowerstationService proBasicPowerstationService;
+
+    @Resource
+    private IProBasicEquipmentService proBasicEquipmentService;
+
+    @Resource
+    private IProBasicEquipmentPointService proBasicEquipmentPointService;
+
     @GetMapping(value = "/point")
     @ResponseBody
     public JSONObject getPointList(@RequestParam(value = "deviceId", required = true) String deviceid,
@@ -34,4 +54,77 @@ public class InfoController {
         JSONObject testingPoint = deviceService.getTestingPointByStructCode(deviceid, structCode, windturbineId, pageSize, pageNum);
         return testingPoint;
     }
+
+    /**
+     * 获取风场
+     * @param id
+     * @return
+     */
+    @GetMapping(value = "/station")
+    @ResponseBody
+    public List<ProBasicPowerstation> getAllWindStation(@RequestParam(value = "id", required = false) String id) {
+
+        if (StringUtils.isBlank(id)) {
+            id = "_FDC";
+        }
+        List<ProBasicPowerstation> lst = proBasicPowerstationService.getStationAll(id);
+        return lst;
+    }
+
+    /**
+     * 获取风场和光电场
+     * @param id
+     * @return
+     */
+    @GetMapping(value = "/station/all")
+    @ResponseBody
+    public List<ProBasicPowerstation> getAllStation(@RequestParam(value = "id", required = false) String id) {
+        List<ProBasicPowerstation> lst = proBasicPowerstationService.getStationAll(id);
+        return lst;
+    }
+
+    /**
+     * 根据场站名称查询所有风机编号
+     * @return
+     */
+    @GetMapping(value = "/windturbine")
+    @ResponseBody
+    public List<ProBasicEquipment> getWindturbineByStation( @RequestParam(value = "stationId", required = false) String stationId) {
+        List<ProBasicEquipment> lst = proBasicEquipmentService.selectWindturbineByStationid(stationId);
+        lst = lst.stream().filter(s -> s.getWindpowerstationId().contains("_FDC")).collect(Collectors.toList());
+        return lst;
+    }
+
+    @GetMapping(value = "/testing_point_ai")
+    @ResponseBody
+    public List<ProBasicEquipmentPoint> getTestingPointAIByStationIdAndModelId(
+            @RequestParam(value = "stationId") String stationId,
+            @RequestParam(value = "modelId") String modelId
+    ) {
+
+        List<ProBasicEquipmentPoint> lst = new ArrayList<>();
+        if (StringUtils.isNotBlank(stationId) && StringUtils.isNotBlank(modelId)) {
+            String stationStr = stationId.replace("_FDC", "").replace("_GDC", "").trim();
+            lst = proBasicEquipmentPointService.selectByStationAndModel(stationStr, modelId);
+        }
+        return lst;
+    }
+
+    @GetMapping(value = "/testing_point_di")
+    @ResponseBody
+    public List<ProBasicEquipmentPoint> getTestingPointDIByStationIdAndModelId(
+            @RequestParam(value = "stationId", required = false) String stationId,
+            @RequestParam(value = "modelId", required = false) String modelId
+    ) {
+        List<ProBasicEquipmentPoint> lst = new ArrayList<>();
+        if (StringUtils.isNotBlank(stationId) || StringUtils.isNotBlank(modelId)) {
+            String stationStr = "";
+            if (StringUtils.isNotBlank(stationId))
+                stationStr = stationId.replace("_FDC", "").replace("_GDC", "").trim();
+            lst = proBasicEquipmentPointService.selectByStationAndModel(stationStr, modelId);
+        }
+        return lst;
+
+    }
+
 }

+ 134 - 0
alarm-web/src/main/java/com/gyee/alarm/controller/ProBasicDataDictionaryController.java

@@ -0,0 +1,134 @@
+package com.gyee.alarm.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gyee.alarm.model.auto.ProBasicDataDictionary;
+import com.gyee.alarm.service.auto.impl.ProBasicDataDictionaryServiceImpl;
+import com.gyee.common.config.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * <p>
+ * 数据字典表 前端控制器
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-08-16
+ */
+@RestController
+@RequestMapping("/datadictionary")
+@Api(value = "字典接口", tags = "字典接口")
+public class ProBasicDataDictionaryController {
+        /*
+   报警部件: alertrule_category CLX 齿轮箱
+   预警类型:	early_category	performance	性能下降
+   用户设置	userset	jumpwindow	是否故障弹窗 faultread	是否语音播报
+   风机型号   windtrubinemodel
+    * */
+
+    @Resource
+    private ProBasicDataDictionaryServiceImpl proBasicDataDictionaryService;
+
+    @GetMapping()
+    public List<ProBasicDataDictionary> getAllDatadictionary() {
+        List<ProBasicDataDictionary> datadictionaries = proBasicDataDictionaryService.getAllDatadictionary();
+        return datadictionaries;
+    }
+    /**
+     * 查询
+     * @param category
+     * @param name
+     * @param name
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping(value = "/page")
+    @ApiOperation(value = "列表", notes = "列表")
+    public R findList(@RequestParam(value = "category", required = false) String category,
+                      @RequestParam(value = "name", required = false) String name,
+                      @RequestParam(value = "pageNum", required = true) String pageNum,
+                      @RequestParam(value = "pageSize", required = true) String pageSize) {
+        IPage<ProBasicDataDictionary> list = proBasicDataDictionaryService.list(category, name, pageNum, pageSize);
+        if (null != list) {
+            return R.ok().data(list);
+        } else {
+            return R.error().data("查询失败!");
+        }
+    }
+
+    /**
+     * 添加
+     * @param datadictionary
+     * @return
+     */
+    @PostMapping(value = "/saveorupdate")
+    @ApiOperation(value = "新增or修改", notes = "新增or修改")
+    public R addAll(@RequestBody ProBasicDataDictionary datadictionary) {
+
+        int b = proBasicDataDictionaryService.saveOrUpdateDatadictionary(datadictionary);
+        if (b>=0) {
+            return R.ok().data(b);
+        } else {
+            return R.error().data("操作数据库失败!");
+        }
+    }
+
+    /**
+     * 添加
+     * @param proBasicDataDictionary
+     * @return
+     */
+    @PostMapping(value = "/save")
+    @ApiOperation(value = "新增or修改", notes = "新增or修改")
+    public R addAllw(@RequestBody ProBasicDataDictionary proBasicDataDictionary) {
+
+        boolean b = proBasicDataDictionaryService.saveOrUpdate(proBasicDataDictionary);
+        if (b) {
+            return R.ok().data(b);
+        } else {
+            return R.error().data("操作数据库失败!");
+        }
+    }
+
+
+    /**
+     * 根据字典类型获取字典集合
+     * @param category
+     * @return
+     */
+    @GetMapping(value = "/list")
+    @ApiOperation(value = "根据字典类型获取字典集合", notes = "根据字典类型获取字典集合")
+    public R findList(@RequestParam(value = "category", required = false) String category){
+        List<ProBasicDataDictionary> list = proBasicDataDictionaryService.getDatadictionary(category);
+        if (null != list) {
+            return R.ok().data(list);
+        } else {
+            return R.error().data("查询失败!");
+        }
+    }
+
+    /**
+     * 删除
+     * @param ids
+     * @return
+     */
+    @DeleteMapping(value = "/{ids}")
+    @ApiOperation(value = "删除", notes = "删除")
+    public R deleteAll(@PathVariable("ids") String ids) {
+        String[] strings = ids.split(",");
+        boolean b = proBasicDataDictionaryService.removeByIds(Arrays.asList(strings));
+        if (b) {
+            return R.ok().data(b);
+        } else {
+            return R.error().data("删除失败!");
+        }
+    }
+
+}

+ 16 - 0
alarm-web/src/main/java/com/gyee/alarm/mapper/auto/ProBasicDataDictionaryMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.alarm.mapper.auto;
+
+import com.gyee.alarm.model.auto.ProBasicDataDictionary;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 数据字典表 Mapper 接口
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-08-16
+ */
+public interface ProBasicDataDictionaryMapper extends BaseMapper<ProBasicDataDictionary> {
+
+}

+ 55 - 0
alarm-web/src/main/java/com/gyee/alarm/model/auto/ProBasicDataDictionary.java

@@ -0,0 +1,55 @@
+package com.gyee.alarm.model.auto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 数据字典表
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-08-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProBasicDataDictionary extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "ID", type = IdType.INPUT)
+    private Integer id;
+
+    /**
+     * 类别
+     */
+    private String category;
+
+    /**
+     * 代码
+     */
+    private String code;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 顺序编号
+     */
+    private Integer orderno;
+
+    /**
+     * 启用
+     */
+    private Integer enabled;
+
+
+}

+ 0 - 4
alarm-web/src/main/java/com/gyee/alarm/service/DeviceService.java

@@ -4,9 +4,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
 import com.gyee.alarm.init.Cache.PointUnitCache;
 import com.gyee.alarm.init.Cache.WindturbineCache;
-import com.gyee.alarm.mapper.auto.ProBasicDeviceMetricsMapper;
-import com.gyee.alarm.mapper.auto.ProBasicDeviceModelMetricsMapper;
-import com.gyee.alarm.mapper.auto.ProBasicEquipmentPointMapper;
 import com.gyee.alarm.model.auto.ProBasicDeviceMetrics;
 import com.gyee.alarm.model.auto.ProBasicDeviceModelMetrics;
 import com.gyee.alarm.model.auto.ProBasicEquipment;
@@ -16,7 +13,6 @@ import com.gyee.alarm.service.auto.impl.ProBasicDeviceModelMetricsServiceImpl;
 import com.gyee.alarm.service.auto.impl.ProBasicEquipmentPointServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;

+ 26 - 0
alarm-web/src/main/java/com/gyee/alarm/service/auto/IProBasicDataDictionaryService.java

@@ -0,0 +1,26 @@
+package com.gyee.alarm.service.auto;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gyee.alarm.model.auto.ProBasicDataDictionary;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 数据字典表 服务类
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-08-16
+ */
+public interface IProBasicDataDictionaryService extends IService<ProBasicDataDictionary> {
+    List<ProBasicDataDictionary> getAllDatadictionary();
+
+    List<ProBasicDataDictionary> getDatadictionary(String category);
+
+    int saveOrUpdateDatadictionary(ProBasicDataDictionary datadictionary);
+
+    IPage<ProBasicDataDictionary> list (String category,String name, String pageNum, String pageSize);
+
+}

+ 1 - 0
alarm-web/src/main/java/com/gyee/alarm/service/auto/IProBasicEquipmentPointService.java

@@ -16,4 +16,5 @@ import java.util.List;
 public interface IProBasicEquipmentPointService extends IService<ProBasicEquipmentPoint> {
     List<ProBasicEquipmentPoint> getPointListAI(String windturbineId,List<String> uniformCodeList);
     List<ProBasicEquipmentPoint> getPointListDI(String windturbineId,List<String> uniformCodeList);
+    List<ProBasicEquipmentPoint> selectByStationAndModel(String stationStr,String modelId);
 }

+ 1 - 0
alarm-web/src/main/java/com/gyee/alarm/service/auto/IProBasicEquipmentService.java

@@ -15,4 +15,5 @@ import java.util.List;
  */
 public interface IProBasicEquipmentService extends IService<ProBasicEquipment> {
     List<ProBasicEquipment> windturbineList();
+    List<ProBasicEquipment> selectWindturbineByStationid(String stationId);
 }

+ 4 - 0
alarm-web/src/main/java/com/gyee/alarm/service/auto/IProBasicPowerstationService.java

@@ -1,8 +1,11 @@
 package com.gyee.alarm.service.auto;
 
+import com.gyee.alarm.model.auto.ProBasicDeviceMetrics;
 import com.gyee.alarm.model.auto.ProBasicPowerstation;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 场站表 服务类
@@ -12,5 +15,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2022-11-12
  */
 public interface IProBasicPowerstationService extends IService<ProBasicPowerstation> {
+    List<ProBasicPowerstation> getStationAll(String id);
 
 }

+ 77 - 0
alarm-web/src/main/java/com/gyee/alarm/service/auto/impl/ProBasicDataDictionaryServiceImpl.java

@@ -0,0 +1,77 @@
+package com.gyee.alarm.service.auto.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gyee.alarm.model.auto.ProBasicDataDictionary;
+import com.gyee.alarm.mapper.auto.ProBasicDataDictionaryMapper;
+import com.gyee.alarm.service.auto.IProBasicDataDictionaryService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.common.model.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 数据字典表 服务实现类
+ * </p>
+ *
+ * @author shilin
+ * @since 2023-08-16
+ */
+@Service
+public class ProBasicDataDictionaryServiceImpl extends ServiceImpl<ProBasicDataDictionaryMapper, ProBasicDataDictionary> implements IProBasicDataDictionaryService {
+
+    @Override
+    public List<ProBasicDataDictionary> getAllDatadictionary() {
+        List<ProBasicDataDictionary> list = baseMapper.selectList(null);
+        return list;
+    }
+
+    @Override
+    public List<ProBasicDataDictionary> getDatadictionary(String category) {
+        QueryWrapper<ProBasicDataDictionary> qw = new QueryWrapper<>();
+        if (StringUtils.isNotEmpty(category)) {
+            qw.lambda().eq(ProBasicDataDictionary::getCategory, category);
+        }
+        List <ProBasicDataDictionary> companysPage = baseMapper.selectList(qw);
+        return companysPage;
+    }
+
+    @Override
+    public int saveOrUpdateDatadictionary(ProBasicDataDictionary datadictionary) {
+        int result = 0;
+        if(datadictionary.getId()<=0){
+            QueryWrapper<ProBasicDataDictionary> wrapper = new QueryWrapper<>();
+            wrapper.orderByDesc("id");
+            List<ProBasicDataDictionary> datadictionaries = baseMapper.selectList(wrapper);
+            datadictionary.setId(datadictionaries.get(0).getId()+1);
+            result = baseMapper.insert(datadictionary);
+        }else {
+            ProBasicDataDictionary datadictionary1 = baseMapper.selectById(datadictionary.getId());
+            if (datadictionary1!=null){
+                result = baseMapper.updateById(datadictionary);
+            }
+            else {
+                result = baseMapper.insert(datadictionary);
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public IPage<ProBasicDataDictionary> list(String category, String name, String pageNum, String pageSize) {
+        QueryWrapper<ProBasicDataDictionary> qw = new QueryWrapper<>();
+        if (StringUtils.isNotEmpty(category)) {
+            qw.lambda().eq(ProBasicDataDictionary::getCategory, category);
+        }
+
+        if (StringUtils.isNotEmpty(name)) {
+            qw.lambda().like( ProBasicDataDictionary::getName,name);
+        }
+        Page<ProBasicDataDictionary> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        IPage<ProBasicDataDictionary> companysPage = getBaseMapper().selectPage(page, qw);
+        return companysPage;
+    }
+}

+ 13 - 0
alarm-web/src/main/java/com/gyee/alarm/service/auto/impl/ProBasicEquipmentPointServiceImpl.java

@@ -50,4 +50,17 @@ public class ProBasicEquipmentPointServiceImpl extends ServiceImpl<ProBasicEquip
         List<ProBasicEquipmentPoint> list = baseMapper.selectList(qw);
         return list;
     }
+
+    @Override
+    public List<ProBasicEquipmentPoint> selectByStationAndModel(String stationStr, String modelId) {
+        QueryWrapper<ProBasicEquipmentPoint> qw = new QueryWrapper<>();
+        if (StringUtils.isNotEmpty(stationStr)) {
+            qw.lambda().eq(ProBasicEquipmentPoint::getWindpowerstationId, stationStr);
+        }
+        if (StringUtils.isNotEmpty(modelId)) {
+            qw.lambda().eq(ProBasicEquipmentPoint::getModelId, modelId);
+        }
+        List<ProBasicEquipmentPoint> list = baseMapper.selectList(qw);
+        return list;
+    }
 }

+ 48 - 1
alarm-web/src/main/java/com/gyee/alarm/service/auto/impl/ProBasicEquipmentServiceImpl.java

@@ -1,13 +1,18 @@
 package com.gyee.alarm.service.auto.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.gyee.alarm.model.auto.ProBasicEquipment;
 import com.gyee.alarm.mapper.auto.ProBasicEquipmentMapper;
+import com.gyee.alarm.model.auto.ProBasicPowerstation;
 import com.gyee.alarm.model.auto.ProBasicProject;
 import com.gyee.alarm.service.auto.IProBasicEquipmentService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.common.model.StringUtils;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * <p>
@@ -25,4 +30,46 @@ public class ProBasicEquipmentServiceImpl extends ServiceImpl<ProBasicEquipmentM
         List<ProBasicEquipment> list = baseMapper.selectList(null);
         return list;
     }
+
+    @Override
+    public List<ProBasicEquipment> selectWindturbineByStationid(String stationId) {
+        List<ProBasicEquipment> lst = selectWindturbineByCondition2(stationId);
+
+        Map<Integer, ProBasicEquipment> map = new HashMap<>();
+        if (lst.size()<=0) {
+            return lst;
+        }
+        for(int i = 0;i<lst.size();i++) {
+            String s = lst.get(i).getName();
+            String regEx = "[^0-9]";
+            Pattern p = Pattern.compile(regEx);
+            Matcher m = p.matcher(s);
+            String trim = m.replaceAll("").trim();
+            int i1 = Integer.parseInt(trim);
+            map.put(i1,lst.get(i));
+        }
+        List<Map.Entry<Integer, ProBasicEquipment>> entryList1 = new ArrayList<Map.Entry<Integer, ProBasicEquipment>>(map.entrySet());
+        Collections.sort(entryList1, new Comparator<Map.Entry<Integer, ProBasicEquipment>>() {
+            @Override
+            public int compare(Map.Entry<Integer, ProBasicEquipment> o1, Map.Entry<Integer, ProBasicEquipment> o2) {
+                return o1.getKey().compareTo(o2.getKey()); // 升序排序
+            }
+        });
+        List<ProBasicEquipment> list = new ArrayList<>();
+        for (int i = 0;i<entryList1.size();i++){
+            Map.Entry<Integer, ProBasicEquipment> maps = entryList1.get(i);
+            list.add(maps.getValue());
+        }
+        return list;
+    }
+
+
+    public List<ProBasicEquipment> selectWindturbineByCondition2(String stationId) {
+        QueryWrapper<ProBasicEquipment> qw = new QueryWrapper<>();
+        if (StringUtils.isNotEmpty(stationId)) {
+            qw.lambda().eq(ProBasicEquipment::getWindpowerstationId, stationId);
+        }
+        List<ProBasicEquipment> list = baseMapper.selectList(qw);
+        return list;
+    }
 }

+ 15 - 0
alarm-web/src/main/java/com/gyee/alarm/service/auto/impl/ProBasicPowerstationServiceImpl.java

@@ -1,11 +1,17 @@
 package com.gyee.alarm.service.auto.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.alarm.model.auto.ProBasicDataDictionary;
+import com.gyee.alarm.model.auto.ProBasicDeviceMetrics;
 import com.gyee.alarm.model.auto.ProBasicPowerstation;
 import com.gyee.alarm.mapper.auto.ProBasicPowerstationMapper;
 import com.gyee.alarm.service.auto.IProBasicPowerstationService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.common.model.StringUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 场站表 服务实现类
@@ -17,4 +23,13 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProBasicPowerstationServiceImpl extends ServiceImpl<ProBasicPowerstationMapper, ProBasicPowerstation> implements IProBasicPowerstationService {
 
+    @Override
+    public List<ProBasicPowerstation> getStationAll(String id) {
+        QueryWrapper<ProBasicPowerstation> qw = new QueryWrapper<>();
+        if (StringUtils.isNotEmpty(id)) {
+            qw.lambda().eq(ProBasicPowerstation::getId, id);
+        }
+        List<ProBasicPowerstation> list = baseMapper.selectList(qw);
+        return list;
+    }
 }