Преглед на файлове

新增变电所编码生成功能

wangchangsheng преди 2 години
родител
ревизия
e6ddf6c0cb

+ 19 - 1
web/backmanagerconfig-xktj/src/main/java/com/gyee/backconfig/config/CacheContext.java

@@ -44,6 +44,9 @@ public class CacheContext implements CommandLineRunner {
     @Autowired
     private IProBasicEquipmentService proBasicWindturbineService;//风机
 
+    @Autowired
+    private IProBasicSubStationService proBasicSubStationServicel;//变电所
+
     //集团
     public static Map<String, ProBasicEnergyGroup> energymap = new HashMap<>();
     public static List<ProBasicEnergyGroup> energy = new ArrayList<>();
@@ -75,6 +78,12 @@ public class CacheContext implements CommandLineRunner {
     public static Map<String,List<ProBasicEquipment>> pjequipmentmap = new HashMap<>();
     public static Map<String,List<ProBasicEquipment>> liequipmentmap = new HashMap<>();
 
+    //变电所
+    public static List<ProBasicSubStation> subStations = new ArrayList<>();
+    public static Map<String, ProBasicSubStation> subStationMap = new HashMap<>();
+    public static Map<String, List<ProBasicSubStation>> poSubStationMap = new HashMap<>();//更据场站分组
+
+
 
     @Override
     public void run(String... args) throws Exception {
@@ -106,7 +115,7 @@ public class CacheContext implements CommandLineRunner {
         //期次
         prols = proBasicProjectService.list();
         prols.stream().forEach(Project -> {
-            promap.put(Project.getWindpowerstationId(), Project);
+            promap.put(Project.getId(), Project);
         });
 
         //线路
@@ -123,5 +132,14 @@ public class CacheContext implements CommandLineRunner {
         poequipmentmap =  equipments.stream().collect(Collectors.groupingBy(ProBasicEquipment::getWindpowerstationId));
         pjequipmentmap =  equipments.stream().collect(Collectors.groupingBy(ProBasicEquipment::getProjectId));
         liequipmentmap =  equipments.stream().collect(Collectors.groupingBy(ProBasicEquipment::getLineId));
+
+        //变电所
+        subStations = proBasicSubStationServicel.list();
+        subStations.stream().forEach(s->{
+            subStationMap.put(s.getId(),s);
+        });
+
+        poSubStationMap =  subStations.stream().collect(Collectors.groupingBy(ProBasicSubStation::getWindpowerstationId));
+
     }
 }

+ 7 - 5
web/backmanagerconfig-xktj/src/main/java/com/gyee/backconfig/controller/ProBasicPowerstationController.java

@@ -7,6 +7,7 @@ import com.gyee.backconfig.model.auto.ProBasicPowerstation;
 import com.gyee.backconfig.service.auto.IProBasicPowerstationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -40,13 +41,14 @@ public class ProBasicPowerstationController {
      */
     @GetMapping(value = "/List")
     @ApiOperation(value = "场站-列表", notes = "场站-列表")
-    public R findList(@RequestParam(value = "id", required = false) String id,
-                      @RequestParam(value = "name", required = false) String name,
-                      @RequestParam(value = "code", required = false) String code,
-                      @RequestParam(value = "companyId", required = false) String companyId,
+    public R findList(@ApiParam(name = "场站id") @RequestParam(value = "id", required = false) String id,
+                      @ApiParam(name = "场站名称") @RequestParam(value = "name", required = false) String name,
+                      @ApiParam(name = "场站code")  @RequestParam(value = "code", required = false) String code,
+                      @ApiParam(name = "公司id") @RequestParam(value = "companyId", required = false) String companyId,
+                      @ApiParam(name = "集团id") @RequestParam(value = "groupId", required = false) String groupId,
                       @RequestParam(value = "pageNum", required = true) String pageNum,
                       @RequestParam(value = "pageSize", required = true) String pageSize) {
-        IPage<ProBasicPowerstation> list = proBasicWindpowerstationService.getList(id, name, code, companyId, pageNum, pageSize);
+        IPage<ProBasicPowerstation> list = proBasicWindpowerstationService.getList(id, name, code, groupId,companyId, pageNum, pageSize);
         if (null != list) {
             return R.ok().data(list);
         } else {

+ 2 - 1
web/backmanagerconfig-xktj/src/main/java/com/gyee/backconfig/controller/ProBasicSubStationController.java

@@ -34,9 +34,10 @@ public class ProBasicSubStationController {
     public R findList(@RequestParam(value = "id", required = false) String id,
                       @RequestParam(value = "code", required = false) String code,
                       @RequestParam(value = "name", required = false) String name,
+                      @RequestParam(value = "stationId", required = false) String stationId,
                       @RequestParam(value = "pageNum", required = true) String pageNum,
                       @RequestParam(value = "pageSize", required = true) String pageSize) {
-        IPage<ProBasicSubStation> list = proBasicWindsubStationService.list(id, name, code, pageNum, pageSize);
+        IPage<ProBasicSubStation> list = proBasicWindsubStationService.list(id, name,stationId, code, pageNum, pageSize);
         if (null != list) {
             return R.ok().data(list);
         } else {

+ 18 - 1
web/backmanagerconfig-xktj/src/main/java/com/gyee/backconfig/controller/ProEconTestingPointController.java

@@ -30,7 +30,7 @@ public class ProEconTestingPointController {
     private IProEconTestingPointService proEconTestingPointService;
 
     @PostMapping(value = "/generatePoint")
-    @ApiOperation(value = "生成测点", notes = "生成测点")
+    @ApiOperation(value = "设备or场站测点生成", notes = "设备or场站测点生成")
     @ApiImplicitParams({ @ApiImplicitParam(name = "points", value = "统一编码", required = true, dataType = "string[]", paramType = "query"),
             @ApiImplicitParam(name = "station", value = "场站编码", required = true, dataType = "string", paramType = "query")})
     public R generatePoint(@RequestParam(value = "points", required = false) String[] points,
@@ -44,4 +44,21 @@ public class ProEconTestingPointController {
         return R.ok().data(true);
     }
 
+
+
+    @PostMapping(value = "/generateSubStationPoint")
+    @ApiOperation(value = "变电所测点生成", notes = "变电所测点生成")
+    @ApiImplicitParams({ @ApiImplicitParam(name = "points", value = "统一编码", required = true, dataType = "string[]", paramType = "query"),
+            @ApiImplicitParam(name = "station", value = "变电所id", required = true, dataType = "string", paramType = "query")})
+    public R generateSubStationPoint(@RequestParam(value = "points", required = false) String[] points,
+                           @RequestParam(value = "station", required = false) String station) {
+        try {
+            proEconTestingPointService.generateSubStationPoint(station,points);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error();
+        }
+        return R.ok().data(true);
+    }
+
 }

+ 1 - 1
web/backmanagerconfig-xktj/src/main/java/com/gyee/backconfig/service/auto/IProBasicPowerstationService.java

@@ -15,7 +15,7 @@ import java.util.List;
  * @since 2022-10-15
  */
 public interface IProBasicPowerstationService extends IService<ProBasicPowerstation> {
-    IPage<ProBasicPowerstation> getList(String id, String name, String code, String companyId, String pageNum, String pageSize);
+    IPage<ProBasicPowerstation> getList(String id, String name, String code,String groupId, String companyId, String pageNum, String pageSize);
     List<ProBasicPowerstation> getList(String regionId);
 
 }

+ 1 - 1
web/backmanagerconfig-xktj/src/main/java/com/gyee/backconfig/service/auto/IProBasicSubStationService.java

@@ -13,7 +13,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2022-10-15
  */
 public interface IProBasicSubStationService extends IService<ProBasicSubStation> {
-    IPage<ProBasicSubStation> list(String id, String name, String code, String pageNum, String pageSize);
+    IPage<ProBasicSubStation> list(String id, String name,String stationId, String code, String pageNum, String pageSize);
 
 
 }

+ 3 - 0
web/backmanagerconfig-xktj/src/main/java/com/gyee/backconfig/service/auto/IProEconTestingPointService.java

@@ -15,4 +15,7 @@ public interface IProEconTestingPointService extends IService<ProEconTestingPoin
 
      void generatePoint(String station,String[] points);
 
+     void generateSubStationPoint(String station,String[] points);
+
+
 }

+ 4 - 1
web/backmanagerconfig-xktj/src/main/java/com/gyee/backconfig/service/auto/impl/ProBasicPowerstationServiceImpl.java

@@ -32,7 +32,7 @@ public class ProBasicPowerstationServiceImpl extends ServiceImpl<ProBasicPowerst
     @Autowired
     private EdosUtil goldenUtil;
     @Override
-    public IPage<ProBasicPowerstation> getList(String id, String name, String code, String companyId, String pageNum, String pageSize) {
+    public IPage<ProBasicPowerstation> getList(String id, String name, String code, String groupId,String companyId, String pageNum, String pageSize) {
         QueryWrapper<ProBasicPowerstation> qw = new QueryWrapper<>();
 
         if (StringUtils.isNotEmpty(id)){
@@ -51,6 +51,9 @@ public class ProBasicPowerstationServiceImpl extends ServiceImpl<ProBasicPowerst
             qw.like("company_id",companyId);
         }
 
+        if (StringUtils.isNotEmpty(groupId)){
+            qw.like("group_id",groupId);
+        }
         Page<ProBasicPowerstation> page = new Page<>(Integer.parseInt(pageNum),Integer.parseInt(pageSize));
         IPage<ProBasicPowerstation> companysPage = getBaseMapper().selectPage(page, qw);
 //        List<Windpowerstation> list = companysPage.getRecords();

+ 6 - 2
web/backmanagerconfig-xktj/src/main/java/com/gyee/backconfig/service/auto/impl/ProBasicSubStationServiceImpl.java

@@ -22,7 +22,7 @@ import org.springframework.stereotype.Service;
 public class ProBasicSubStationServiceImpl extends ServiceImpl<ProBasicSubStationMapper, ProBasicSubStation> implements IProBasicSubStationService {
 
     @Override
-    public IPage<ProBasicSubStation> list(String id, String name, String code, String pageNum, String pageSize) {
+    public IPage<ProBasicSubStation> list(String id, String name, String stationId,String code, String pageNum, String pageSize) {
         QueryWrapper<ProBasicSubStation> qw = new QueryWrapper<>();
 
         if (StringUtils.isNotEmpty(id)){
@@ -30,8 +30,12 @@ public class ProBasicSubStationServiceImpl extends ServiceImpl<ProBasicSubStatio
         }
 
         if (StringUtils.isNotEmpty(name)){
-            qw.eq("name",name);
+            qw.like("name",name);
         }
+        if (StringUtils.isNotEmpty(stationId)){
+            qw.eq("windpowerstation_id",stationId);
+        }
+
 
         if (StringUtils.isNotEmpty(code)){
             qw.like("code",code);

+ 115 - 0
web/backmanagerconfig-xktj/src/main/java/com/gyee/backconfig/service/auto/impl/ProEconTestingPointServiceImpl.java

@@ -55,6 +55,119 @@ public class ProEconTestingPointServiceImpl extends ServiceImpl<ProEconTestingPo
 
     }
 
+    @Override
+    public void generateSubStationPoint(String Substation, String[] points) {
+        List<ProBasicPowerstationPoint>  subStationPoint = initalSbs(Substation,points);
+
+//        subStationPoint.stream().forEach(i->{
+//            System.out.println(i.getId()+"="+i.getNemCode()+"="+i.getWindpowerstationId()+"="+i.getUniformCode());
+//        });
+        proBasicPowerstationPointService.batchAddPowerstationPoints(subStationPoint);
+
+    }
+
+    public List<ProBasicPowerstationPoint> initalSbs(String station,String[] setpoints) {
+        List<ProBasicPowerstationPoint> allpoints = new ArrayList<>();
+
+        List<ProEconTestingPoint> fcs = proEconTestingPointService.list().stream().filter(i -> i.getTypeId().equals("agc") || i.getTypeId().equals("agcjsfw") || i.getTypeId().equals("cft")).collect(Collectors.toList());
+        List<ProEconTestingPoint> gcs = proEconTestingPointService.list().stream().filter(i -> i.getTypeId().equals("agc") || i.getTypeId().equals("agcjsfw")).collect(Collectors.toList());
+        //获取场站
+        for (ProBasicPowerstation postation : CacheContext.wpls) {
+            if (null != station && !"".equals(station) && !station.equals(postation.getId())) {
+                continue;
+            }
+
+            List<ProEconTestingPoint> ls = null;
+            if (postation.getId().indexOf("FDC") >= 0) {
+                ls = fcs;
+            } else {
+                ls = gcs;
+            }
+
+            //获取场站下的变电所
+            List<ProBasicSubStation> subStations = CacheContext.poSubStationMap.get(postation.getId());
+            //循环变电所生成测点code
+            for (ProBasicSubStation sub : subStations) {
+                List<ProBasicPowerstationPoint> points = new ArrayList<>();
+
+                for (ProEconTestingPoint p : ls) {
+                    if (null != setpoints && setpoints.length > 0 && StringUtils.join(setpoints, "|").indexOf(p.getUniformCode()) < 0) {
+                        continue;
+                    }
+                    StringBuilder sb = new StringBuilder();
+                    String temp = sub.getId().substring(0, sub.getId().lastIndexOf("_"));
+//                    temp = temp.substring(0, temp.lastIndexOf("_"));
+//                    temp = temp.substring(temp.lastIndexOf("_") + 1);
+                    if (sub.getWindpowerstationId().indexOf("FDC") >= 0) {
+                        sb.append(temp).append("_F_");
+                    } else {
+                        sb.append(temp).append("_G_");
+                    }
+
+                    sb.append("XX_XX_XXXX_");
+                    if (p.getUniformCode().indexOf("AI") >= 0) {
+                        sb.append("AI");
+
+                    } else if (p.getUniformCode().indexOf("DI") >= 0) {
+                        sb.append("DI");
+
+                    } else {
+                        sb.append("CI");
+                    }
+                    sb.append(p.getNemCode());
+
+
+                    StringBuilder sba = new StringBuilder();
+
+                    String temp2 = postation.getCompanyId().substring(0, postation.getCompanyId().lastIndexOf("_"));
+                    temp2 = temp2.substring(temp2.indexOf("_") + 1);
+
+                    String temp3 = postation.getId().substring(0, postation.getId().lastIndexOf("_"));
+                    temp3 = temp3.substring(0, temp3.lastIndexOf("_"));
+                    temp3 = temp3.substring(temp3.lastIndexOf("_") + 1);
+                    if (postation.getId().indexOf("FDC") >= 0) {
+                        sba.append(temp2).append(temp3).append("FC");
+                    } else if (postation.getId().indexOf("GDC") >= 0) {
+                        sba.append(temp2).append(temp3).append("GC");
+                    }
+
+                    StringBuilder sbtable = new StringBuilder();
+
+
+                    if (p.getTypeId().indexOf("agcjsfw") >= 0 ) {
+                        sbtable.append(sba).append("JSFW.");
+                        sbtable.append(sb);
+                    } else {
+                        sbtable.append(sba).append(".");
+                        sbtable.append(sb);
+                    }
+                    ProBasicPowerstationPoint po = new ProBasicPowerstationPoint();
+                    po.setId(StringUtils.getUUID());
+                    if (p.getTypeId().indexOf("agcjsfw") >= 0 ) {
+                        po.setNemCode(String.valueOf(sbtable));
+                    } else {
+                        po.setNemCode("INITIAL");
+                    }
+                    sb = new StringBuilder();
+                    sb.append(sub.getName()).append(p.getName());
+                    po.setName(String.valueOf(sb));
+                    po.setWindpowerstationId(sub.getId());
+                    po.setUniformCode(p.getUniformCode());
+
+                    sb = new StringBuilder();
+                    sb.append(sbtable.toString().substring(0, sbtable.toString().lastIndexOf(".")));
+                    po.setRealtimeId(String.valueOf(sb));
+
+
+                    points.add(po);
+                }
+                allpoints.addAll(points);
+            }
+        }
+
+        return allpoints;
+    }
+
 
     public List<ProBasicEquipmentPoint> initalFj(String station,String[] setpoints) {
 
@@ -817,4 +930,6 @@ public class ProEconTestingPointServiceImpl extends ServiceImpl<ProEconTestingPo
 
     }
 
+
+
 }