Przeglądaj źródła

Merge branch 'master' into energy-manage-chy2

# Conflicts:
#	energy-manage-service/src/main/java/com/energy/manage/service/mappers/windfield/WindFieldMapper.java
#	energy-manage-service/src/main/java/com/energy/manage/service/service/system/impl/SysOrganizationAuthServiceImpl.java
#	energy-manage-service/src/main/resources/mybatis/windfield/WindFieldMapper.xml
chenhongyan1989 1 rok temu
rodzic
commit
bf545470f8
63 zmienionych plików z 889 dodań i 147 usunięć
  1. 1 1
      energy-manage-common/src/main/java/com/energy/manage/common/po/windenginegroup/WindEngineGroupPO.java
  2. 2 1
      energy-manage-service/src/main/java/com/energy/manage/service/controller/UploadController.java
  3. 12 6
      energy-manage-service/src/main/java/com/energy/manage/service/controller/anemometertower/AnemometerTowerController.java
  4. 2 1
      energy-manage-service/src/main/java/com/energy/manage/service/controller/area/AreaApiController.java
  5. 13 4
      energy-manage-service/src/main/java/com/energy/manage/service/controller/company/WindCompanyController.java
  6. 2 1
      energy-manage-service/src/main/java/com/energy/manage/service/controller/dict/DictContentsController.java
  7. 7 2
      energy-manage-service/src/main/java/com/energy/manage/service/controller/powerwordcontract/PowerWordContractController.java
  8. 7 2
      energy-manage-service/src/main/java/com/energy/manage/service/controller/powerwordcriterion/PowerWordCriterionController.java
  9. 27 3
      energy-manage-service/src/main/java/com/energy/manage/service/controller/system/SysOrganizationAuthController.java
  10. 3 2
      energy-manage-service/src/main/java/com/energy/manage/service/controller/system/SysRoleController.java
  11. 20 1
      energy-manage-service/src/main/java/com/energy/manage/service/controller/windenginegroup/WindEngineGroupController.java
  12. 3 1
      energy-manage-service/src/main/java/com/energy/manage/service/controller/windenginemill/WindEngineMillController.java
  13. 17 6
      energy-manage-service/src/main/java/com/energy/manage/service/controller/windfield/WindFieldController.java
  14. 2 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/anemometertower/AnemometerTowerCreateDto.java
  15. 2 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/company/WindCompanyDto.java
  16. 1 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/company/WindCompanyPageDto.java
  17. 2 1
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/powerwordcontract/PowerWordContractExcelDto.java
  18. 4 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/powerwordcriterion/PowerWordCriterionExcelDto.java
  19. 3 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windenginegroup/WindEngineGroupCreateDto.java
  20. 20 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windenginegroup/WindEngineGroupFieldCodeDto.java
  21. 3 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windenginemill/WindEngineMillCreateDto.java
  22. 9 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windfield/WindFieldDto.java
  23. 2 2
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windfield/WindFieldImportDataDto.java
  24. 4 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windfield/WindFieldPageDto.java
  25. 8 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windfield/WindFieldResourceCreateDto.java
  26. 4 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/anemometertower/AnemometerTowerByFieldVo.java
  27. 21 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/anemometertower/AnemometerTowerNameVo.java
  28. 26 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/cockpit/CompanyFieldGroupNumberVo.java
  29. 33 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/cockpit/CompanyFieldNumberVo.java
  30. 49 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/cockpit/CompanyFieldTreeRoleVo.java
  31. 25 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/cockpit/WindFieldGroupTowerVo.java
  32. 7 2
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/excel/WindEngineGroupExcelVo.java
  33. 3 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windenginegroup/WindEngineGroupVo.java
  34. 3 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windfield/WindFieldResourceVo.java
  35. 5 0
      energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windfield/WindFieldVo.java
  36. 13 8
      energy-manage-service/src/main/java/com/energy/manage/service/filter/LoginVerifyInterceptor.java
  37. 12 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/system/SysOrganizationAuthMapper.java
  38. 2 0
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/windfield/WindFieldMapper.java
  39. 5 1
      energy-manage-service/src/main/java/com/energy/manage/service/mappers/windrelation/WindRelationMapper.java
  40. 6 5
      energy-manage-service/src/main/java/com/energy/manage/service/service/anemometertower/AnemometerTowerService.java
  41. 18 4
      energy-manage-service/src/main/java/com/energy/manage/service/service/anemometertower/impl/AnemometerTowerServiceImpl.java
  42. 2 2
      energy-manage-service/src/main/java/com/energy/manage/service/service/company/WindCompanyService.java
  43. 3 6
      energy-manage-service/src/main/java/com/energy/manage/service/service/company/impl/WindCompanyServiceImpl.java
  44. 1 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/powerwordcontract/impl/PowerWordContractServiceImpl.java
  45. 37 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/system/SysOrganizationAuthService.java
  46. 1 1
      energy-manage-service/src/main/java/com/energy/manage/service/service/system/SysPermissionService.java
  47. 95 5
      energy-manage-service/src/main/java/com/energy/manage/service/service/system/impl/SysOrganizationAuthServiceImpl.java
  48. 2 1
      energy-manage-service/src/main/java/com/energy/manage/service/service/system/impl/SysPermissionServiceImpl.java
  49. 6 6
      energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/WindEngineGroupService.java
  50. 92 26
      energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/impl/WindEngineGroupServiceImpl.java
  51. 7 0
      energy-manage-service/src/main/java/com/energy/manage/service/service/windenginemill/WindEngineMillService.java
  52. 24 3
      energy-manage-service/src/main/java/com/energy/manage/service/service/windenginemill/impl/WindEngineMillServiceImpl.java
  53. 1 1
      energy-manage-service/src/main/java/com/energy/manage/service/service/windfield/WindFieldService.java
  54. 40 17
      energy-manage-service/src/main/java/com/energy/manage/service/service/windfield/impl/WindFieldServiceImpl.java
  55. 1 1
      energy-manage-service/src/main/java/com/energy/manage/service/service/windrelation/WindRelationService.java
  56. 2 2
      energy-manage-service/src/main/java/com/energy/manage/service/service/windrelation/impl/WindRelationServiceImpl.java
  57. 1 0
      energy-manage-service/src/main/resources/bootstrap.properties
  58. 18 19
      energy-manage-service/src/main/resources/config/README.MD
  59. 2 1
      energy-manage-service/src/main/resources/mybatis/area/AreaMapper.xml
  60. 121 0
      energy-manage-service/src/main/resources/mybatis/system/OrganizationAuthMapper.xml
  61. 1 1
      energy-manage-service/src/main/resources/mybatis/windenginegroup/WindEngineGroupMapper.xml
  62. 21 1
      energy-manage-service/src/main/resources/mybatis/windfield/WindFieldMapper.xml
  63. 3 0
      energy-manage-service/src/main/resources/mybatis/windrelation/WindRelationMapper.xml

+ 1 - 1
energy-manage-common/src/main/java/com/energy/manage/common/po/windenginegroup/WindEngineGroupPO.java

@@ -55,7 +55,7 @@ public class WindEngineGroupPO extends NewBaseDomain {
      */
     private Integer state;
     /**
-     * 是否标杆风机
+     * 是否标杆风机 1是2否
      */
     private Integer sightcing;
     /**

+ 2 - 1
energy-manage-service/src/main/java/com/energy/manage/service/controller/UploadController.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.energy.manage.common.reponse.RespMsg;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.PassToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.util.MinioUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -28,7 +29,7 @@ import java.util.Map;
 @RequestMapping(value = "/api/check")
 @CrossOrigin
 @Api(value = "UploadController", tags = "上传接口")
-public class UploadController {
+public class UploadController extends BaseServiceController {
 
   @Autowired
   private MinioUtils minioUtils;

+ 12 - 6
energy-manage-service/src/main/java/com/energy/manage/service/controller/anemometertower/AnemometerTowerController.java

@@ -5,12 +5,10 @@ import com.energy.manage.common.base.Page;
 import com.energy.manage.common.po.anemometertower.AnemometerTowerPO;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.domain.dto.anemometertower.*;
 import com.energy.manage.service.domain.dto.windfield.WindFieldPageDto;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerByFieldVo;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerHeightVo;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerPageVo;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerVo;
+import com.energy.manage.service.domain.vo.anemometertower.*;
 import com.energy.manage.service.service.anemometertower.AnemometerTowerService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -26,7 +24,7 @@ import java.util.List;
 @CrossOrigin
 @Api(value = "AnemometerTowerController", tags = "测风塔接口")
 @RequestMapping(value = "/api/anemometer/tower")
-public class AnemometerTowerController {
+public class AnemometerTowerController extends BaseServiceController {
 
 
     @Autowired
@@ -41,7 +39,7 @@ public class AnemometerTowerController {
         if (po != null) {
             return ResultResp.FAIL("测风塔名称已经存在!");
         }
-
+        anemometerTowerCreateDto.setCreateBy(getUserId());
         boolean flg = anemometerTowerService.createAnemometerTower(anemometerTowerCreateDto);
         return flg ? ResultResp.SUCCESS() : ResultResp.FAIL();
     }
@@ -72,6 +70,14 @@ public class AnemometerTowerController {
         return ResultResp.SUCCESS(page);
     }
 
+    @UserLoginToken
+    @PostMapping(value = "/getAnemometerTowerNameList")
+    @ApiOperation(value = "查询测风塔集合")
+    public ResultResp<List<AnemometerTowerNameVo>> getAnemometerTowerNameList() {
+        List<AnemometerTowerNameVo>  list = anemometerTowerService.getAnemometerTowerNameList();
+        return ResultResp.SUCCESS(list);
+    }
+
     @Deprecated
     @UserLoginToken
     @PostMapping(value = "/bathAnemometerTowerHeight")

+ 2 - 1
energy-manage-service/src/main/java/com/energy/manage/service/controller/area/AreaApiController.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.energy.manage.common.po.area.AreaPO;
 import com.energy.manage.common.reponse.RespMsg;
 import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.service.area.AreaApiService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -25,7 +26,7 @@ import java.util.*;
 @CrossOrigin
 @Api(value = "CustomerController", tags = "区域接口")
 @RequestMapping(value = "/api/area")
-public class AreaApiController {
+public class AreaApiController extends BaseServiceController {
 
     @Value("${spring.datasource.druid.url}")
     private String druid;

+ 13 - 4
energy-manage-service/src/main/java/com/energy/manage/service/controller/company/WindCompanyController.java

@@ -1,14 +1,17 @@
 package com.energy.manage.service.controller.company;
 
 
+import com.energy.manage.common.enums.TypeRelationEnum;
 import com.energy.manage.common.po.company.WindCompanyPO;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.domain.dto.company.*;
 import com.energy.manage.service.domain.vo.company.WindCompanyPageVo;
 import com.energy.manage.service.domain.vo.company.WindCompanyVo;
 import com.energy.manage.service.domain.vo.windfield.WindFieldVo;
 import com.energy.manage.service.service.company.WindCompanyService;
+import com.energy.manage.service.service.system.SysOrganizationAuthService;
 import com.energy.manage.service.service.windfield.WindFieldService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -26,7 +29,7 @@ import java.util.Map;
 @CrossOrigin
 @Api(value = "WindCompanyController", tags = "企业管理接口")
 @RequestMapping(value = "/api/wind/company")
-public class WindCompanyController {
+public class WindCompanyController extends BaseServiceController {
 
     @Autowired
     private WindCompanyService windCompanyService;
@@ -34,20 +37,23 @@ public class WindCompanyController {
     @Autowired
     private WindFieldService windFieldService;
 
+    @Autowired
+    private SysOrganizationAuthService sysOrganizationAuthService;
+
 
     @UserLoginToken
     @PostMapping(value = "/addCompany")
     @ApiOperation(value = "创建企业")
     public ResultResp addCompany(@RequestBody @Valid WindCompanyDto dto) {
-
         // 验证企业名称是否存在
-        WindCompanyPO po = windCompanyService.getWindCompanyPO(dto);
+        WindCompanyPO po = windCompanyService.getWindCompanyByCompanyName(dto);
         if (po != null) {
             return ResultResp.FAIL("企业名称已存在!");
         }
         if (StringUtils.isEmpty(dto.getParentCode()) || StringUtils.isEmpty(dto.getCompanyName())) {
             return ResultResp.NOTNULLPARAM();
         }
+        dto.setCreateBy(getUserId());
         boolean flg = windCompanyService.addCompany(dto);
         return flg ? ResultResp.SUCCESS() : ResultResp.FAIL();
     }
@@ -62,6 +68,9 @@ public class WindCompanyController {
         if (list.size() > 0) {
             return ResultResp.FAIL("项目公司有绑定风场不可删除!");
         }
+        if(!sysOrganizationAuthService.verifySysOrganizationAuthByType(dto.getCompanyCode(), TypeRelationEnum.COMPANY_NUMBER.getCode())){
+            return ResultResp.FAIL("企业有绑定数据权限不可删除!");
+        }
         boolean flg = windCompanyService.delCompany(dto);
         return flg ? ResultResp.SUCCESS() : ResultResp.FAIL();
     }
@@ -95,7 +104,7 @@ public class WindCompanyController {
     @PostMapping(value = "/getAllWindCompany")
     @ApiOperation(value = "查询企业树")
     public ResultResp<List<Map<String, Object>>> getAllWindCompany(@RequestBody WindCompanyPageDto windCompanyPageDto) {
-        List<Map<String, Object>> list = windCompanyService.getAllWindCompany(windCompanyPageDto.getState(), windCompanyPageDto.getCompanyName());
+        List<Map<String, Object>> list = windCompanyService.getAllWindCompany(windCompanyPageDto.getState(), windCompanyPageDto.getCompanyName(),getRoleId(),getUserId());
         return ResultResp.SUCCESS(list);
     }
 

+ 2 - 1
energy-manage-service/src/main/java/com/energy/manage/service/controller/dict/DictContentsController.java

@@ -5,6 +5,7 @@ import com.energy.manage.common.constant.controller.WebApiConstant;
 import com.energy.manage.common.po.dict.DictConstantsPO;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.PassToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.domain.dto.dict.DictConstantsQueryDto;
 import com.energy.manage.service.domain.vo.dict.DictParentVo;
 import com.energy.manage.service.service.dict.DictConstantsService;
@@ -18,7 +19,7 @@ import java.util.List;
 @RestController
 @CrossOrigin
 @Api(value = "DictContentsController", tags = "字典管理")
-public class DictContentsController {
+public class DictContentsController extends BaseServiceController {
 
 
     @Autowired

+ 7 - 2
energy-manage-service/src/main/java/com/energy/manage/service/controller/powerwordcontract/PowerWordContractController.java

@@ -2,8 +2,10 @@ package com.energy.manage.service.controller.powerwordcontract;
 
 
 import com.energy.manage.common.base.Page;
+import com.energy.manage.common.enums.IdPrefixEnum;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.domain.dto.powerwordcontract.PowerWordContractDelDto;
 import com.energy.manage.service.domain.dto.powerwordcontract.PowerWordContractDto;
 import com.energy.manage.service.domain.dto.powerwordcontract.PowerWordContractExcelDto;
@@ -23,7 +25,7 @@ import org.springframework.web.multipart.MultipartFile;
 @CrossOrigin
 @Api(value = "PowerWordContractController", tags = "合同功率曲线接口")
 @RequestMapping(value = "/api/powerword/contract")
-public class PowerWordContractController {
+public class PowerWordContractController extends BaseServiceController {
 
     @Autowired
     private PowerWordContractService powerWordContractService;
@@ -34,9 +36,12 @@ public class PowerWordContractController {
     @ApiOperation(value = " 同步合同功率,(选择风场编号,导入功率曲线)")
     public ResultResp powerWordContractImportData(@RequestPart("file") MultipartFile file,
                                                   @RequestParam("fieldCode") String fieldCode) {
-
+        if(!fieldCode.contains(IdPrefixEnum.WIND_FIELD_NUMBER.getCode())){
+            return ResultResp.FAIL("风场编号不正确,请确认数据!");
+        }
         PowerWordContractExcelDto powerWordContractExcelDto = new PowerWordContractExcelDto();
         powerWordContractExcelDto.setFieldCode(fieldCode);
+        powerWordContractExcelDto.setCreateBy(getUserId());
         return powerWordContractService.powerWordContractImportData(file, powerWordContractExcelDto);
     }
 

+ 7 - 2
energy-manage-service/src/main/java/com/energy/manage/service/controller/powerwordcriterion/PowerWordCriterionController.java

@@ -1,8 +1,10 @@
 package com.energy.manage.service.controller.powerwordcriterion;
 
 import com.energy.manage.common.base.Page;
+import com.energy.manage.common.enums.IdPrefixEnum;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.domain.dto.powerwordcontract.PowerWordContractDelDto;
 import com.energy.manage.service.domain.dto.powerwordcontract.PowerWordContractDto;
 import com.energy.manage.service.domain.dto.powerwordcontract.PowerWordContractExcelDto;
@@ -28,7 +30,7 @@ import java.util.Map;
 @CrossOrigin
 @Api(value = "PowerWordCriterionController", tags = "标准功率曲线接口")
 @RequestMapping(value = "/api/powerword/criterion")
-public class PowerWordCriterionController {
+public class PowerWordCriterionController extends BaseServiceController {
 
     @Autowired
     private PowerWordCriterionService powerWordCriterionService;
@@ -39,9 +41,12 @@ public class PowerWordCriterionController {
     @ApiOperation(value = " 同步标准功率,(机型编号导入功率曲线)")
     public ResultResp powerWordCriterionImportData(@RequestPart MultipartFile file,
                                                    @RequestParam("millTypeCode") String millTypeCode) {
-
+        if(!millTypeCode.contains(IdPrefixEnum.WIND_EILL_NUMBER.getCode())){
+            return ResultResp.FAIL("风场编号不正确,请确认数据!");
+        }
         PowerWordCriterionExcelDto powerWordCriterionExcelDto = new PowerWordCriterionExcelDto();
         powerWordCriterionExcelDto.setMillTypeCode(millTypeCode);
+        powerWordCriterionExcelDto.setCreateBy(getUserId());
         return powerWordCriterionService.powerWordCriterionImportData(file, powerWordCriterionExcelDto);
     }
 

+ 27 - 3
energy-manage-service/src/main/java/com/energy/manage/service/controller/system/SysOrganizationAuthController.java

@@ -2,14 +2,17 @@ package com.energy.manage.service.controller.system;
 
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.controller.base.BaseServiceController;
+import com.energy.manage.service.domain.vo.cockpit.CompanyFieldNumberVo;
+import com.energy.manage.service.domain.vo.cockpit.CompanyFieldTreeRoleVo;
 import com.energy.manage.service.service.system.SysOrganizationAuthService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author chy
@@ -30,4 +33,25 @@ public class SysOrganizationAuthController extends BaseServiceController {
     public ResultResp queryCodeNunByRoleId() {
         return success(sysOrganizationAuthService.queryCodeNunByRoleId(getRoleId()));
     }
+
+
+    @ApiOperation(value = "根据角色查询风场树(驾驶仓)")
+    @PostMapping("/getSysOrganizationAuthTreeByRoleId")
+    public ResultResp<List<Map<String, Object>>> getSysOrganizationAuthTreeByRoleId() {
+        return success(sysOrganizationAuthService.getSysOrganizationAuthTreeByRoleId(getRoleId()));
+    }
+
+
+    @ApiOperation(value = "根据角色查询风场集合(驾驶仓)")
+    @PostMapping("/getSysOrganizationAuthListByRoleId")
+    public ResultResp<List<CompanyFieldTreeRoleVo>> getSysOrganizationAuthListByRoleId() {
+        return success(sysOrganizationAuthService.getSysOrganizationAuthListByRoleId(getRoleId()));
+    }
+
+    @ApiOperation(value = "驾驶舱统计数量(驾驶仓)")
+    @PostMapping("/getCompanyFieldNumberVo")
+    public ResultResp<CompanyFieldNumberVo> getCompanyFieldNumberVo() {
+        return success(sysOrganizationAuthService.getCompanyFieldNumberVo(getRoleId()));
+    }
+
 }

+ 3 - 2
energy-manage-service/src/main/java/com/energy/manage/service/controller/system/SysRoleController.java

@@ -7,6 +7,7 @@ import com.energy.manage.common.po.system.SysRolePO;
 import com.energy.manage.common.reponse.RespMsg;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.domain.dto.system.*;
 import com.energy.manage.service.domain.vo.system.PermissionVo;
 import com.energy.manage.service.domain.vo.system.SysRelationVo;
@@ -35,7 +36,7 @@ import java.util.Optional;
 @RequestMapping("sysrole")
 @CrossOrigin
 @Api(value = "SysRoleController", tags = "系统角色管理")
-public class SysRoleController {
+public class SysRoleController  extends BaseServiceController {
 
 	@Autowired
 	private SysRoleService sysRoleService;
@@ -216,7 +217,7 @@ public class SysRoleController {
 		if (!Optional.ofNullable(roleUpdateOrganizationDto.getRoleId()).isPresent() || CollectionUtils.isEmpty(roleUpdateOrganizationDto.getOrganizationCodes())) {
 			return ResultResp.NOTNULLPARAM();
 		}
-		boolean flag = permissionService.updateRoleOrganization(roleUpdateOrganizationDto.getRoleId(), roleUpdateOrganizationDto.getOrganizationCodes());
+		boolean flag = permissionService.updateRoleOrganization(roleUpdateOrganizationDto.getRoleId(), roleUpdateOrganizationDto.getOrganizationCodes(),getUserId());
 		if (flag) {
 			return ResultResp.SUCCESS();
 		}

+ 20 - 1
energy-manage-service/src/main/java/com/energy/manage/service/controller/windenginegroup/WindEngineGroupController.java

@@ -2,6 +2,7 @@ package com.energy.manage.service.controller.windenginegroup;
 
 
 import com.energy.manage.common.base.Page;
+import com.energy.manage.common.enums.IdPrefixEnum;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.UserLoginToken;
 import com.energy.manage.service.domain.dto.windenginegroup.*;
@@ -10,6 +11,7 @@ import com.energy.manage.service.domain.dto.windenginegroup.WindEngineGroupCodeD
 import com.energy.manage.service.domain.dto.windenginegroup.WindEngineGroupCreateDto;
 import com.energy.manage.service.domain.dto.windenginegroup.WindEngineGroupPageDto;
 import com.energy.manage.service.domain.dto.windenginegroup.WindEngineGroupStateDto;
+import com.energy.manage.service.domain.vo.cockpit.WindFieldGroupTowerVo;
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupPageVo;
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
 import com.energy.manage.service.service.windenginegroup.WindEngineGroupService;
@@ -21,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
+import java.util.List;
 
 @Slf4j
 @RestController
@@ -37,6 +40,10 @@ public class WindEngineGroupController extends BaseServiceController {
     @PostMapping(value = "/createWindEngineGroup")
     @ApiOperation(value = "创建风机机组")
     public ResultResp createWindEngineGroup(@RequestBody @Valid WindEngineGroupCreateDto windEngineGroupCreateDto) {
+        if (!windEngineGroupCreateDto.getFieldCode().contains(IdPrefixEnum.WIND_FIELD_NUMBER.getCode())) {
+            return ResultResp.FAIL("未绑定风场信息!");
+        }
+        windEngineGroupCreateDto.setCreateBy(getUserId());
         boolean flg = windEngineGroupService.createWindEngineGroup(windEngineGroupCreateDto);
         return flg ? ResultResp.SUCCESS() : ResultResp.FAIL();
     }
@@ -46,7 +53,10 @@ public class WindEngineGroupController extends BaseServiceController {
     @PostMapping(value = "/windEngineGroupImportData")
     @ApiOperation(value = "导入风机信息")
     public ResultResp windEngineGroupImportData(@RequestPart MultipartFile file, @RequestParam("fieldCode") String fieldCode) {
-        return  windEngineGroupService.windEngineGroupImportData(file, fieldCode);
+        if (!fieldCode.contains(IdPrefixEnum.WIND_FIELD_NUMBER.getCode())) {
+            return ResultResp.FAIL("未绑定风场信息!");
+        }
+        return windEngineGroupService.windEngineGroupImportData(file, fieldCode, getUserId());
     }
 
     @Deprecated
@@ -67,6 +77,15 @@ public class WindEngineGroupController extends BaseServiceController {
         return ResultResp.SUCCESS(page);
     }
 
+
+    @UserLoginToken
+    @PostMapping(value = "/getWindEngineGroupByFieldCode")
+    @ApiOperation(value = "通过风场code查询风机集合(jsc)")
+    public ResultResp<WindFieldGroupTowerVo> getWindEngineGroupByFieldCode(@RequestBody WindEngineGroupFieldCodeDto windEngineGroupFieldCodeDto) {
+        WindFieldGroupTowerVo vo = windEngineGroupService.getWindEngineGroupByFieldCode(windEngineGroupFieldCodeDto.getFieldCode());
+        return ResultResp.SUCCESS(vo);
+    }
+
     @UserLoginToken
     @PostMapping(value = "/getWindEngineGroup")
     @ApiOperation(value = "查询风机对象")

+ 3 - 1
energy-manage-service/src/main/java/com/energy/manage/service/controller/windenginemill/WindEngineMillController.java

@@ -3,6 +3,7 @@ package com.energy.manage.service.controller.windenginemill;
 import com.energy.manage.common.base.Page;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.domain.dto.windenginemill.WindEngineMillCodeDto;
 import com.energy.manage.service.domain.dto.windenginemill.WindEngineMillCreateDto;
 import com.energy.manage.service.domain.dto.windenginemill.WindEngineMillDto;
@@ -26,7 +27,7 @@ import java.util.List;
 @CrossOrigin
 @Api(value = "WindEngineMillController", tags = "风机机型管理接口")
 @RequestMapping(value = "/api/wind/engine/mill")
-public class WindEngineMillController {
+public class WindEngineMillController extends BaseServiceController {
 
     @Autowired
     private WindEngineMillService windEngineMillService;
@@ -38,6 +39,7 @@ public class WindEngineMillController {
         if(!windEngineMillService.verificationData(windEngineMillCreateDto.getMachineTypeCode(),windEngineMillCreateDto.getManufacturerCode())){
             return ResultResp.FAIL("该厂商对应机型已经存在!");
         }
+        windEngineMillCreateDto.setCreateBy(getUserId());
         boolean flg = windEngineMillService.createEngineMill(windEngineMillCreateDto);
         return flg ? ResultResp.SUCCESS() : ResultResp.FAIL();
     }

+ 17 - 6
energy-manage-service/src/main/java/com/energy/manage/service/controller/windfield/WindFieldController.java

@@ -2,16 +2,19 @@ package com.energy.manage.service.controller.windfield;
 
 
 import com.energy.manage.common.base.Page;
+import com.energy.manage.common.enums.TypeRelationEnum;
 import com.energy.manage.common.po.anemometertower.AnemometerTowerPO;
 import com.energy.manage.common.po.windfield.WindFieldPO;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
 import com.energy.manage.service.domain.dto.windfield.*;
 import com.energy.manage.service.domain.vo.company.WindCompanyPageVo;
 import com.energy.manage.service.domain.vo.windfield.WindFieldNameVo;
 import com.energy.manage.service.domain.vo.windfield.WindFieldPageVo;
 import com.energy.manage.service.domain.vo.windfield.WindFieldVo;
 import com.energy.manage.service.domain.vo.windrelation.WindRelationVo;
+import com.energy.manage.service.service.system.SysOrganizationAuthService;
 import com.energy.manage.service.service.windenginegroup.WindEngineGroupService;
 import com.energy.manage.service.service.windfield.WindFieldResourceService;
 import com.energy.manage.service.service.windfield.WindFieldService;
@@ -31,7 +34,7 @@ import java.util.Map;
 @CrossOrigin
 @Api(value = "WindFieldController", tags = "风场管理接口")
 @RequestMapping(value = "/api/wind/field")
-public class WindFieldController {
+public class WindFieldController extends BaseServiceController {
 
     @Autowired
     private WindFieldService windFieldService;
@@ -42,18 +45,20 @@ public class WindFieldController {
     @Autowired
     private WindFieldResourceService windFieldResourceService;
 
+    @Autowired
+    private SysOrganizationAuthService sysOrganizationAuthService;
+
 
     @UserLoginToken
     @PostMapping(value = "/createWindField")
     @ApiOperation(value = "创建风场信息")
     public ResultResp createWindField(@RequestBody @Valid WindFieldDto windFieldDto) {
-
         // 校验风场名称是否存在
         WindFieldPO po = windFieldService.getWindFieldPOByFieldName(windFieldDto.getFieldName());
         if (po != null) {
             return ResultResp.FAIL("风场名称已经存在!");
         }
-
+        windFieldDto.setCreateBy(getUserId());
         boolean flg = windFieldService.createWindField(windFieldDto);
         return flg ? ResultResp.SUCCESS() : ResultResp.FAIL();
     }
@@ -67,7 +72,7 @@ public class WindFieldController {
 
         WindFieldImportDataDto windFieldImportDataDto = new WindFieldImportDataDto();
         windFieldImportDataDto.setCompanyCode(companyCode);
-
+        windFieldImportDataDto.setCreateBy(getUserId());
         return windFieldService.windFieldImportData(file, windFieldImportDataDto);
     }
 
@@ -85,6 +90,8 @@ public class WindFieldController {
     @PostMapping(value = "/WindFieldListPage")
     @ApiOperation(value = "分页查询风场信息")
     public ResultResp<Page<WindFieldPageVo>> WindFieldListPage(@RequestBody WindFieldPageDto windFieldPageDto) {
+        windFieldPageDto.setUserId(getUserId());
+        windFieldPageDto.setRoleId(getRoleId());
         Page<WindFieldPageVo> page = windFieldService.WindFieldListPage(windFieldPageDto);
         return ResultResp.SUCCESS(page);
     }
@@ -94,9 +101,12 @@ public class WindFieldController {
     @PostMapping(value = "/delWindFieldById")
     @ApiOperation(value = "删除风场")
     public ResultResp delWindFieldById(@RequestBody @Valid WindFieldCodeDto windFieldCodeDto) {
-        if (windEngineGroupService.getWindEngineGroupCountByField(windFieldCodeDto.getFieldCode()) <= 0) {
+        if (windEngineGroupService.getWindEngineGroupCountByField(windFieldCodeDto.getFieldCode()) > 0) {
             return ResultResp.FAIL("风场下有绑定风机,不可删除!");
         }
+        if(!sysOrganizationAuthService.verifySysOrganizationAuthByType(windFieldCodeDto.getFieldCode(), TypeRelationEnum.WIND_FIELD_NUMBER.getCode())){
+            return ResultResp.FAIL("风场有绑定数据权限不可删除!");
+        }
         boolean flg = windFieldService.delWindFieldById(windFieldCodeDto.getFieldCode());
         return flg ? ResultResp.SUCCESS() : ResultResp.FAIL();
     }
@@ -148,6 +158,7 @@ public class WindFieldController {
     @PostMapping(value = "/saveWindFieldResource")
     @ApiOperation(value = "保存上传风场资源文件")
     public ResultResp saveWindFieldResource(@RequestBody @Valid WindFieldResourceCreateDto windFieldResourceCreateDto) {
+        windFieldResourceCreateDto.setCreateBy(getUserId());
         boolean flg = windFieldResourceService.saveWindFieldResource(windFieldResourceCreateDto);
         return flg ? ResultResp.SUCCESS() : ResultResp.FAIL();
     }
@@ -166,7 +177,7 @@ public class WindFieldController {
     @PostMapping(value = "/getWindFieldNames")
     @ApiOperation(value = "查询风场集合")
     public ResultResp<List<WindFieldNameVo>> getWindFieldNames() {
-        List<WindFieldNameVo> list = windFieldService.getWindFieldNames();
+        List<WindFieldNameVo> list = windFieldService.getWindFieldNames(getUserId(), getRoleId());
         return ResultResp.SUCCESS(list);
     }
 

+ 2 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/anemometertower/AnemometerTowerCreateDto.java

@@ -34,6 +34,8 @@ public class AnemometerTowerCreateDto {
     @ApiModelProperty("纬度")
     private Double latitude;
 
+    @ApiModelProperty(value = "创建人")
+    private Integer createBy;
 
     @ApiModelProperty("测风塔高度集合")
     private List<AnemometerTowerHeightListDto> anemometerTowerHeightDtoList;

+ 2 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/company/WindCompanyDto.java

@@ -54,5 +54,7 @@ public class WindCompanyDto {
     @ApiModelProperty("资源父id (父编号0,子编号为上级编号)")
     private String parentCode;
 
+    @ApiModelProperty(value = "创建人")
+    private Integer createBy;
 
 }

+ 1 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/company/WindCompanyPageDto.java

@@ -28,4 +28,5 @@ public class WindCompanyPageDto  {
      */
     @ApiModelProperty("状态")
     private Integer state;
+
 }

+ 2 - 1
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/powerwordcontract/PowerWordContractExcelDto.java

@@ -17,7 +17,8 @@ public class PowerWordContractExcelDto {
     @ApiModelProperty("风场编号")
     private String fieldCode;
 
-
+    @ApiModelProperty(value = "创建人")
+    private Integer createBy;
 
 
 }

+ 4 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/powerwordcriterion/PowerWordCriterionExcelDto.java

@@ -17,4 +17,8 @@ public class PowerWordCriterionExcelDto {
     @ApiModelProperty("机型编号")
     private String millTypeCode;
 
+
+    @ApiModelProperty(value = "创建人")
+    private Integer createBy;
+
 }

+ 3 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windenginegroup/WindEngineGroupCreateDto.java

@@ -95,5 +95,8 @@ public class WindEngineGroupCreateDto {
     @ApiModelProperty("切出风速")
     private Double ratedCutOutWindspeed;
 
+    @ApiModelProperty(value = "创建人")
+    private Integer createBy;
+
 
 }

+ 20 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windenginegroup/WindEngineGroupFieldCodeDto.java

@@ -0,0 +1,20 @@
+package com.energy.manage.service.domain.dto.windenginegroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+@Getter
+@Setter
+@ApiModel
+public class WindEngineGroupFieldCodeDto {
+    /**
+     * 风场编号
+     */
+    @NotNull(message = "风场编号不能为空")
+    @ApiModelProperty("风场编号")
+    private String fieldCode;
+}

+ 3 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windenginemill/WindEngineMillCreateDto.java

@@ -69,4 +69,7 @@ public class WindEngineMillCreateDto {
     @ApiModelProperty("传动比-转速比(无单位)")
     private Double rotationalSpeedRatio;
 
+    @ApiModelProperty(value = "创建人")
+    private Integer createBy;
+
 }

+ 9 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windfield/WindFieldDto.java

@@ -57,27 +57,32 @@ public class WindFieldDto {
      * 省编号
      */
     @ApiModelProperty("省编号")
+    @NotNull(message = "省编号不能为空")
     private Integer provinceId;
     /**
      * 省名字
      */
     @ApiModelProperty("省名字")
+    @NotNull(message = "省名字不能为空")
     private String provinceName;
     /**
      * 市编号
      */
     @ApiModelProperty("市编号")
+    @NotNull(message = "市编号不能为空")
     private Integer cityId;
     /**
      * 市名字
      */
     @ApiModelProperty("市名字")
+    @NotNull(message = "市名字不能为空")
     private String cityName;
 
     /**
      * 区号
      */
     @ApiModelProperty("区号")
+    @NotNull(message = "区号不能为空")
     private String areaCode;
     /**
      * 经度
@@ -103,6 +108,10 @@ public class WindFieldDto {
     private List<AnemometerTowerRelationDto> anemometerTowerRelationDtos;
 
 
+    @ApiModelProperty(value = "创建人")
+    private Integer createBy;
+
+
     @Setter
     @Getter
     @ApiModel

+ 2 - 2
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windfield/WindFieldImportDataDto.java

@@ -18,8 +18,8 @@ public class WindFieldImportDataDto {
     @ApiModelProperty("企业编号")
     private String companyCode;
 
-
-
+    @ApiModelProperty("用户id")
+    private Integer createBy;
 
 
 

+ 4 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windfield/WindFieldPageDto.java

@@ -60,5 +60,9 @@ public class WindFieldPageDto extends BaseDto {
     @ApiModelProperty("结束时间")
     private String endTime;
 
+    private Integer userId;
+
+    private Integer roleId;
+
 
 }

+ 8 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/windfield/WindFieldResourceCreateDto.java

@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotNull;
+
 @Getter
 @Setter
 @ApiModel("创建风场资源参数")
@@ -15,23 +17,29 @@ public class WindFieldResourceCreateDto {
      * 风场编号
      */
     @ApiModelProperty("风场编号")
+    @NotNull(message = "风场编号不能为null")
     private String fieldCode;
     /**
      * 上传文件名称
      */
     @ApiModelProperty("上传文件名称")
+    @NotNull(message = "上传文件名称不能为null")
     private String fileName;
     /**
      * 上传类型
      */
     @ApiModelProperty("上传类型")
+    @NotNull(message = "上传类型不能为null")
     private String type;
     /**
      * 上传文件地址
      */
     @ApiModelProperty("上传文件地址")
+    @NotNull(message = "上传文件地址不能为null")
     private String resourceUrl;
 
+    @ApiModelProperty(value = "创建人")
+    private Integer createBy;
 
 
 }

+ 4 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/anemometertower/AnemometerTowerByFieldVo.java

@@ -39,6 +39,10 @@ public class AnemometerTowerByFieldVo {
     @ApiModelProperty("测风塔高度集合字符串")
     private String anemometerHeightStrings;
 
+    @ApiModelProperty("经纬度拼接")
+    private String longitudeAndLatitudeString;
+
+
 
 
 

+ 21 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/anemometertower/AnemometerTowerNameVo.java

@@ -0,0 +1,21 @@
+package com.energy.manage.service.domain.vo.anemometertower;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AnemometerTowerNameVo {
+
+    /**
+     * 测风塔编号
+     */
+    @ApiModelProperty("测风塔编号")
+    private String anemometerCode;
+    /**
+     * 测风塔名称
+     */
+    @ApiModelProperty("测风塔名称")
+    private String anemometerName;
+}

+ 26 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/cockpit/CompanyFieldGroupNumberVo.java

@@ -0,0 +1,26 @@
+package com.energy.manage.service.domain.vo.cockpit;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class CompanyFieldGroupNumberVo {
+
+    /**
+     * 风场code
+     */
+    private String fieldCode;
+
+    /**
+     * 状态
+     */
+    private Integer analysisState;
+
+    /**
+     *风机数量
+     */
+    private Integer engineGroupNumber;
+
+
+}

+ 33 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/cockpit/CompanyFieldNumberVo.java

@@ -0,0 +1,33 @@
+package com.energy.manage.service.domain.vo.cockpit;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@ApiModel
+public class CompanyFieldNumberVo {
+
+    @ApiModelProperty("风场数量")
+    private Integer fieldSumNumber;
+
+
+    @ApiModelProperty("风机数量")
+    private Integer engineGroupNumber;
+
+
+    @ApiModelProperty("分析完成数量")
+    private Integer analysisFinishNumber;
+
+
+    @ApiModelProperty("未完成分析数量")
+    private Integer analysisUnFinishedNumber;
+
+
+
+
+
+
+}

+ 49 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/cockpit/CompanyFieldTreeRoleVo.java

@@ -0,0 +1,49 @@
+package com.energy.manage.service.domain.vo.cockpit;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+@Getter
+@Setter
+@ApiModel
+public class CompanyFieldTreeRoleVo {
+
+    @ApiModelProperty("角色id")
+    private Integer roleId;
+    @ApiModelProperty("编号code")
+    private String codeNumber;
+    @ApiModelProperty("父编号code")
+    private String parentCode;
+    @ApiModelProperty("code类型")
+    private String codeType;
+    @ApiModelProperty("企业名称")
+    private String companyName;
+    @ApiModelProperty("风场名称")
+    private String fieldName;
+    @ApiModelProperty("经度")
+    private Double longitude;
+    @ApiModelProperty("纬度")
+    private Double latitude;
+    @ApiModelProperty("空气密度")
+    private Double density;
+    @ApiModelProperty("总额定容量")
+    private Double ratedCapacityNumber;
+    @ApiModelProperty("海拔高度")
+    private Double elevationHeight;
+    @ApiModelProperty("批次code")
+    private String batchCode;
+    @ApiModelProperty("批次名称")
+    private String batchName;
+    @ApiModelProperty("批次状态")
+    private Integer analysisState = -1;
+    @ApiModelProperty("经纬度拼接")
+    private String longitudeAndLatitudeString;
+    @ApiModelProperty("最新分析时间")
+    private Date wfbrCreateTime;
+
+
+}

+ 25 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/cockpit/WindFieldGroupTowerVo.java

@@ -0,0 +1,25 @@
+package com.energy.manage.service.domain.vo.cockpit;
+
+import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerByFieldVo;
+import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerVo;
+import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+@Getter
+@Setter
+@ApiModel
+public class WindFieldGroupTowerVo {
+
+    @ApiModelProperty("风机信息")
+    List<WindEngineGroupVo> windEngineGroupVoList;
+
+    @ApiModelProperty("测风塔信息")
+    List<AnemometerTowerByFieldVo> anemometerTowerList;
+
+
+}

+ 7 - 2
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/excel/WindEngineGroupExcelVo.java

@@ -12,9 +12,14 @@ public class WindEngineGroupExcelVo {
 
 
     /**
-     * 机型编号
+     * 机型编号(收资的)
      */
     @ExcelProperty(value = "风机机型", index = 0)
+    private String machineTypeCode;
+
+    /**
+     * 系统机型编号
+     */
     private String millTypeCode;
     /**
      * 风机名称
@@ -67,7 +72,7 @@ public class WindEngineGroupExcelVo {
      * 是否标杆风机
      */
     @ExcelProperty(value = "是否标杆风机", index = 10)
-    private Integer sightcing;
+    private String sightcingString;
 
 
 }

+ 3 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windenginegroup/WindEngineGroupVo.java

@@ -86,4 +86,7 @@ public class WindEngineGroupVo {
     @ApiModelProperty("切出风速")
     private Double ratedCutOutWindspeed;
 
+    @ApiModelProperty("经纬度拼接")
+    private String longitudeAndLatitudeString;
+
 }

+ 3 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windfield/WindFieldResourceVo.java

@@ -18,6 +18,9 @@ import java.util.List;
 @ApiModel
 public class WindFieldResourceVo {
 
+    @ApiModelProperty("资源id")
+    private Integer id;
+
     /**
      * 风场编号
      */

+ 5 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/windfield/WindFieldVo.java

@@ -18,6 +18,11 @@ import java.util.List;
 @ApiModel
 public class WindFieldVo extends WindFieldPO {
 
+    /**
+     * 企业name
+     */
+    @ApiModelProperty("企业name")
+    private String companyName;
 
     @ApiModelProperty("测风塔数据")
     private List<AnemometerTowerByFieldVo> anemometerTowerByFieldVos;

+ 13 - 8
energy-manage-service/src/main/java/com/energy/manage/service/filter/LoginVerifyInterceptor.java

@@ -61,6 +61,7 @@ public class LoginVerifyInterceptor implements HandlerInterceptor {
         // 从 http 请求头中取出 token
         String token = request.getHeader("token");
         log.info("token === >" + token);
+
         // 如果不是映射到方法直接通过
         if (!(object instanceof HandlerMethod)) {
             return true;
@@ -75,7 +76,7 @@ public class LoginVerifyInterceptor implements HandlerInterceptor {
             }
         }
         // 执行认证
-//        if (StringUtils.isEmpty(token)) {
+        if (StringUtils.isEmpty(token)) {
 //            //如果dev环境并且 token为空,那么可以请求,否则会进行验证
 //            if ("dev".equalsIgnoreCase(env)) {
 //                if ("dev".equalsIgnoreCase(env)) {
@@ -87,10 +88,10 @@ public class LoginVerifyInterceptor implements HandlerInterceptor {
 //                request.setAttribute("tokenUserId", 9999999L);
 //                return true;
 //            }
-//
-//            logger.info("========token不能为null========");
-//            throw new TokenInvalidException();
-//        }
+
+            logger.info("========token不能为null========");
+            throw new TokenInvalidException();
+        }
         // 获取 token 中的 user 信息
         Map<String, String> userMap = null;
         try {
@@ -99,11 +100,15 @@ public class LoginVerifyInterceptor implements HandlerInterceptor {
             if(ObjectUtils.isEmpty(userMap.get("userName"))){
                 throw new TokenInvalidException();
             }
-            Integer userId = Integer.valueOf(userMap.get("userId"));
-            devUser.setUserId(userId);
+            Integer userId = 0;
+            if(userMap.get("userId")!=null){
+                devUser.setUserId(Integer.valueOf(userMap.get("userId")));
+            }
             devUser.setUserPhone(userMap.get("userPhone"));
             devUser.setUserName(userMap.get("userName"));
-            devUser.setCurrentRoleId(Integer.valueOf(userMap.get("userRoleId")));
+            if(userMap.get("userRoleId")!=null){
+                devUser.setCurrentRoleId(Integer.valueOf(userMap.get("userRoleId")));
+            }
             LoginUserContextHolder.set(devUser);
         } catch (JWTDecodeException j) {
             logger.error(String.format("token:%s  ========> token异常,访问系统被拦截", token));

+ 12 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/system/SysOrganizationAuthMapper.java

@@ -3,6 +3,8 @@ package com.energy.manage.service.mappers.system;
 
 import com.energy.manage.common.mapper.MyMapper;
 import com.energy.manage.common.po.system.SysOrganizationAuthPO;
+import com.energy.manage.service.domain.vo.cockpit.CompanyFieldGroupNumberVo;
+import com.energy.manage.service.domain.vo.cockpit.CompanyFieldTreeRoleVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
@@ -13,4 +15,14 @@ public interface SysOrganizationAuthMapper extends MyMapper<SysOrganizationAuthP
 
 
     List<SysOrganizationAuthPO> selectByRoleId(@Param("roleId") Integer roleId);
+
+
+    List<CompanyFieldTreeRoleVo> selectSysOrganizationAuthTreeByRoleId(@Param("roleId") Integer roleId);
+
+
+    List<CompanyFieldTreeRoleVo> selectSysOrganizationAuthListByRoleId(@Param("roleId") Integer roleId);
+
+
+    List<CompanyFieldGroupNumberVo> selectFieldAndGrooupNumberByRoleId(@Param("roleId") Integer roleId);
+
 }

+ 2 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/windfield/WindFieldMapper.java

@@ -4,6 +4,7 @@ import com.energy.manage.common.mapper.MyMapper;
 import com.energy.manage.common.po.system.SysUserRolePO;
 import com.energy.manage.common.po.windfield.WindFieldPO;
 import com.energy.manage.service.domain.dto.windfield.WindFieldPageDto;
+import com.energy.manage.service.domain.vo.windfield.WindFieldNameVo;
 import com.energy.manage.service.domain.vo.windfield.WindFieldPageVo;
 import com.energy.manage.service.domain.vo.windfield.WindFieldVo;
 import org.apache.ibatis.annotations.Param;
@@ -23,6 +24,7 @@ public interface WindFieldMapper extends MyMapper<WindFieldPO> {
 
     List<WindFieldPageVo> selectWindFieldPageByfield(@Param("item") WindFieldPageDto windFieldPageDto);
 
+    List<WindFieldNameVo> selectWindFieldNamesByUserId(@Param("userId") Integer userId,@Param("roleId") Integer roleId);
     /**
      * 根据编号查询风场信息
      * @param codeNumber

+ 5 - 1
energy-manage-service/src/main/java/com/energy/manage/service/mappers/windrelation/WindRelationMapper.java

@@ -21,7 +21,11 @@ public interface WindRelationMapper extends MyMapper<WindRelationPO> {
      * 查询全部项目公司
      * @return
      */
-    List<WindCompanyPageVo> selectWindRelationCompanyByType(@Param("type") String type,@Param("state")Integer state,@Param("companyName")String companyName);
+    List<WindCompanyPageVo> selectWindRelationCompanyByType(@Param("type") String type,
+                                                            @Param("state")Integer state,
+                                                            @Param("companyName")String companyName,
+                                                            @Param("roleId")Integer roleId,
+                                                            @Param("userId")Integer userId);
 
 
     /**

+ 6 - 5
energy-manage-service/src/main/java/com/energy/manage/service/service/anemometertower/AnemometerTowerService.java

@@ -4,10 +4,7 @@ package com.energy.manage.service.service.anemometertower;
 import com.energy.manage.common.base.Page;
 import com.energy.manage.common.po.anemometertower.AnemometerTowerPO;
 import com.energy.manage.service.domain.dto.anemometertower.*;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerByFieldVo;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerHeightVo;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerPageVo;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerVo;
+import com.energy.manage.service.domain.vo.anemometertower.*;
 
 import java.util.List;
 
@@ -110,7 +107,11 @@ public interface AnemometerTowerService {
     AnemometerTowerPO getAnemometerTowerPOByanemometerTowerName(String anemometerTowerName);
 
 
-
+    /**
+     * 查询测风塔集合
+     * @return
+     */
+    List<AnemometerTowerNameVo> getAnemometerTowerNameList();
 
 
 

+ 18 - 4
energy-manage-service/src/main/java/com/energy/manage/service/service/anemometertower/impl/AnemometerTowerServiceImpl.java

@@ -15,10 +15,7 @@ import com.energy.manage.common.po.windenginemill.WindEngineMillPO;
 import com.energy.manage.common.util.IdGeneratorUtil;
 import com.energy.manage.service.domain.dto.anemometertower.*;
 import com.energy.manage.service.domain.dto.company.WindCompanyDto;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerByFieldVo;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerHeightVo;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerPageVo;
-import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerVo;
+import com.energy.manage.service.domain.vo.anemometertower.*;
 import com.energy.manage.service.domain.vo.windenginemill.WindEngineMillPageVo;
 import com.energy.manage.service.mappers.anemometertower.AnemometerTowerDataMapper;
 import com.energy.manage.service.mappers.anemometertower.AnemometerTowerHeightMapper;
@@ -261,6 +258,23 @@ public class AnemometerTowerServiceImpl extends BaseServiceImpl<AnemometerTowerP
         return anemometerTowerMapper.selectOneByExample(queryExample);
     }
 
+    @Override
+    public List<AnemometerTowerNameVo> getAnemometerTowerNameList() {
+
+        AnemometerTowerNameVo anemometerTowerNameVo = null;
+        List<AnemometerTowerNameVo> list = Lists.newArrayList();
+        Example queryExample = new Example(AnemometerTowerPO.class);
+        Example.Criteria criteria = queryExample.createCriteria();
+        criteria.andEqualTo("delState", DeleteStatusEnum.NODELETE.getCode());
+        criteria.andEqualTo("state",Constants.GLOBAL_IN_USE);
+        List<AnemometerTowerPO> anemometerTowerPOList =  anemometerTowerMapper.selectByExample(queryExample);
+        for(AnemometerTowerPO po : anemometerTowerPOList){
+            anemometerTowerNameVo = new AnemometerTowerNameVo();
+            BeanUtil.copyProperties(po,anemometerTowerNameVo);
+            list.add(anemometerTowerNameVo);
+        }
+        return list;
+    }
 
 
 }

+ 2 - 2
energy-manage-service/src/main/java/com/energy/manage/service/service/company/WindCompanyService.java

@@ -55,7 +55,7 @@ public interface WindCompanyService extends BaseService<WindCompanyPO> {
      * 查询企业树关系
      * @return
      */
-    List<Map<String, Object>> getAllWindCompany(Integer state,String companyName);
+    List<Map<String, Object>> getAllWindCompany(Integer state,String companyName,Integer roleId,Integer userId);
 
 
     /**
@@ -78,6 +78,6 @@ public interface WindCompanyService extends BaseService<WindCompanyPO> {
      * @param dto
      * @return
      */
-    WindCompanyPO getWindCompanyPO(WindCompanyDto dto);
+    WindCompanyPO getWindCompanyByCompanyName(WindCompanyDto dto);
 
 }

+ 3 - 6
energy-manage-service/src/main/java/com/energy/manage/service/service/company/impl/WindCompanyServiceImpl.java

@@ -80,15 +80,12 @@ public class WindCompanyServiceImpl extends BaseServiceImpl<WindCompanyPO> imple
         Example queryExample = new Example(WindCompanyPO.class);
         Example.Criteria criteria = queryExample.createCriteria();
         criteria.andEqualTo("companyCode", dto.getCompanyCode());
-
         if (windCompanyMapper.updateByExampleSelective(po, queryExample) <= 0) {
             return false;
         }
-
         WindRelationDelDto windRelationDelDto = new WindRelationDelDto();
         windRelationDelDto.setCodeNumber(dto.getCompanyCode());
         windRelationDelDto.setType(TypeRelationEnum.COMPANY_NUMBER.getCode());
-
         return windRelationService.delWindRelation(windRelationDelDto);
     }
 
@@ -141,8 +138,8 @@ public class WindCompanyServiceImpl extends BaseServiceImpl<WindCompanyPO> imple
     }
 
     @Override
-    public List<Map<String, Object>> getAllWindCompany(Integer state,String companyName) {
-        return windRelationService.getWindRelationCompany(state,companyName);
+    public List<Map<String, Object>> getAllWindCompany(Integer state,String companyName,Integer roleId,Integer userId) {
+        return windRelationService.getWindRelationCompany(state,companyName,roleId,userId);
     }
 
 
@@ -166,7 +163,7 @@ public class WindCompanyServiceImpl extends BaseServiceImpl<WindCompanyPO> imple
     }
 
     @Override
-    public WindCompanyPO getWindCompanyPO(WindCompanyDto dto) {
+    public WindCompanyPO getWindCompanyByCompanyName(WindCompanyDto dto) {
         Example queryExample = new Example(WindCompanyPO.class);
         Example.Criteria criteria = queryExample.createCriteria();
         criteria.andEqualTo("companyName", dto.getCompanyName());

+ 1 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/powerwordcontract/impl/PowerWordContractServiceImpl.java

@@ -78,6 +78,7 @@ public class PowerWordContractServiceImpl extends BaseServiceImpl<PowerWordContr
             powerWordContractPO = this.createPowerWordContractPO();
             BeanUtil.copyProperties(powerWordContractExcelVo, powerWordContractPO);
             powerWordContractPO.setFieldCode(powerWordContractExcelDto.getFieldCode());
+            powerWordContractPO.setMillTypeCode(powerWordContractExcelVo.getMillTypeCode());
             list.add(powerWordContractPO);
         }
         if (CollectionUtils.isEmpty(list)) {

+ 37 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/system/SysOrganizationAuthService.java

@@ -1,6 +1,8 @@
 package com.energy.manage.service.service.system;
 
 import com.energy.manage.common.po.system.SysOrganizationAuthPO;
+import com.energy.manage.service.domain.vo.cockpit.CompanyFieldNumberVo;
+import com.energy.manage.service.domain.vo.cockpit.CompanyFieldTreeRoleVo;
 
 import java.util.List;
 import java.util.Map;
@@ -20,4 +22,39 @@ public interface SysOrganizationAuthService {
      * @return
      */
     Map<String, List<SysOrganizationAuthPO>> queryCodeNunByRoleId(Integer roleId);
+
+
+    /**
+     * 通过code和类型查询数据是否存在
+     * @param codeName
+     * @param type
+     * @return
+     */
+    boolean verifySysOrganizationAuthByType(String codeName,String type);
+
+
+    /**
+     * 驾驶舱通过roleid查询树
+     * @param roleId
+     * @return
+     */
+    List<Map<String, Object>> getSysOrganizationAuthTreeByRoleId(Integer roleId);
+
+    /**
+     * 驾驶舱通过roleid查询集合风场
+     * @param roleId
+     * @return
+     */
+    List<CompanyFieldTreeRoleVo> getSysOrganizationAuthListByRoleId(Integer roleId);
+
+
+    /**
+     * 驾驶舱统计数量
+     * @param roleId
+     * @return
+     */
+    CompanyFieldNumberVo getCompanyFieldNumberVo(Integer roleId);
+
+
+
 }

+ 1 - 1
energy-manage-service/src/main/java/com/energy/manage/service/service/system/SysPermissionService.java

@@ -30,6 +30,6 @@ public interface SysPermissionService extends BaseService<SysPermissionPO> {
 
     boolean updateRolePermission(Integer roleId, String permissionIds);
 
-    boolean updateRoleOrganization(Integer roleId, List<RoleUpdateOrganizationDto.OrganizationCode> organizationCodes);
+    boolean updateRoleOrganization(Integer roleId, List<RoleUpdateOrganizationDto.OrganizationCode> organizationCodes,Integer userId);
 
 }

+ 95 - 5
energy-manage-service/src/main/java/com/energy/manage/service/service/system/impl/SysOrganizationAuthServiceImpl.java

@@ -1,12 +1,25 @@
 package com.energy.manage.service.service.system.impl;
 
+import cn.hutool.core.util.StrUtil;
 import com.energy.manage.common.enums.TypeRelationEnum;
+import com.energy.manage.common.po.powerwordcriterion.PowerWordCriterionPO;
 import com.energy.manage.common.po.system.SysOrganizationAuthPO;
+import com.energy.manage.common.po.windrelation.WindRelationPO;
+import com.energy.manage.service.domain.vo.cockpit.CompanyFieldGroupNumberVo;
+import com.energy.manage.service.domain.vo.cockpit.CompanyFieldNumberVo;
+import com.energy.manage.service.domain.vo.cockpit.CompanyFieldTreeRoleVo;
 import com.energy.manage.service.mappers.system.SysOrganizationAuthMapper;
 import com.energy.manage.service.service.system.SysOrganizationAuthService;
+import com.energy.manage.service.util.BeanMapUtils;
+import com.energy.manage.service.util.TreeUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import tk.mybatis.mapper.entity.Example;
 
+import java.text.DecimalFormat;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -18,6 +31,7 @@ import java.util.stream.Collectors;
  * @date 2024/5/21 09:36
  * @desc
  */
+@Slf4j
 @Service
 public class SysOrganizationAuthServiceImpl implements SysOrganizationAuthService {
 
@@ -34,12 +48,88 @@ public class SysOrganizationAuthServiceImpl implements SysOrganizationAuthServic
      * @return
      */
     @Override
-    public Map<String, List<SysOrganizationAuthPO>> queryCodeNunByRoleId(Integer roleId){
-        Map<String,List<SysOrganizationAuthPO>> returnMap = new HashMap<>();
+    public Map<String, List<SysOrganizationAuthPO>> queryCodeNunByRoleId(Integer roleId) {
+        Map<String, List<SysOrganizationAuthPO>> returnMap = new HashMap<>();
         List<SysOrganizationAuthPO> authPoList = sysOrganizationAuthMapper.selectByRoleId(roleId);
-        List<SysOrganizationAuthPO> returnList = authPoList.parallelStream().filter(po -> po.getCodeType().equals(TypeRelationEnum.WIND_FIELD_NUMBER.getCode()))
-                                                          .collect(Collectors.toList());
-        returnMap.put(FILE_CODE_LIST_KEY,returnList);
+        authPoList.parallelStream().filter(po -> po.getCodeType().equals(TypeRelationEnum.WIND_FIELD_NUMBER.getCode()))
+                .collect(Collectors.toList());
+        returnMap.put(FILE_CODE_LIST_KEY, authPoList);
         return returnMap;
     }
+
+    @Override
+    public boolean verifySysOrganizationAuthByType(String codeName, String type) {
+        Example queryExample = new Example(SysOrganizationAuthPO.class);
+        Example.Criteria criteria = queryExample.createCriteria();
+        criteria.andEqualTo("codeNumber", codeName);
+        criteria.andEqualTo("codeType", type);
+        return sysOrganizationAuthMapper.selectCountByExample(queryExample) > 0 ? false : true;
+    }
+
+    @Override
+    public List<Map<String, Object>> getSysOrganizationAuthTreeByRoleId(Integer roleId) {
+
+        List<CompanyFieldTreeRoleVo> list = sysOrganizationAuthMapper.selectSysOrganizationAuthTreeByRoleId(roleId);
+        for (CompanyFieldTreeRoleVo vo : list) {
+            if (vo.getLongitude() != null && vo.getLatitude() != null) {
+                DecimalFormat df = new DecimalFormat("#.00000");
+                String longitude = df.format(vo.getLongitude());
+                String latitude = df.format(vo.getLatitude());
+                vo.setLongitudeAndLatitudeString(longitude + "," + latitude);
+            }
+        }
+        // 转化为Map集合
+        List<Map<String, Object>> mapList = BeanMapUtils.listBeanToListMap(list);
+        // 获取树形结构
+        List<Map<String, Object>> java8ResultTree = TreeUtil.getJava8ResultTree(mapList);
+
+        return java8ResultTree;
+    }
+
+    @Override
+    public List<CompanyFieldTreeRoleVo> getSysOrganizationAuthListByRoleId(Integer roleId) {
+        List<CompanyFieldTreeRoleVo> list = sysOrganizationAuthMapper.selectSysOrganizationAuthListByRoleId(roleId);
+        return list;
+    }
+
+    @Override
+    public CompanyFieldNumberVo getCompanyFieldNumberVo(Integer roleId) {
+        List<CompanyFieldGroupNumberVo> companyFieldGroupNumberVos = sysOrganizationAuthMapper.selectFieldAndGrooupNumberByRoleId(roleId);
+        if (CollectionUtils.isEmpty(companyFieldGroupNumberVos)) {
+            return null;
+        }
+        CompanyFieldNumberVo companyFieldNumberVo = new CompanyFieldNumberVo();
+        int fieldSumNumber = 0;
+        int engineGroupNumber = 0;
+        int analysisFinishNumber = 0;
+        int analysisUnFinishedNumber = 0;
+        for (CompanyFieldGroupNumberVo companyFieldGroupNumberVo : companyFieldGroupNumberVos) {
+            // 风场
+            if (!StringUtils.isEmpty(companyFieldGroupNumberVo.getFieldCode())) {
+                fieldSumNumber += 1;
+            }
+            // 风机
+            if (companyFieldGroupNumberVo.getEngineGroupNumber() != null && companyFieldGroupNumberVo.getEngineGroupNumber() > 0) {
+                engineGroupNumber += companyFieldGroupNumberVo.getEngineGroupNumber();
+            }
+            // 未分析
+            if (companyFieldGroupNumberVo.getAnalysisState() != null && companyFieldGroupNumberVo.getAnalysisState() <= 0) {
+                analysisUnFinishedNumber += 1;
+            }
+            if (companyFieldGroupNumberVo.getAnalysisState() == null) {
+                analysisUnFinishedNumber += 1;
+            }
+            // 已分析
+            if (companyFieldGroupNumberVo.getAnalysisState() != null && companyFieldGroupNumberVo.getAnalysisState() > 0) {
+                analysisFinishNumber += 1;
+            }
+        }
+        companyFieldNumberVo.setFieldSumNumber(fieldSumNumber);
+        companyFieldNumberVo.setEngineGroupNumber(engineGroupNumber);
+        companyFieldNumberVo.setAnalysisFinishNumber(analysisFinishNumber);
+        companyFieldNumberVo.setAnalysisUnFinishedNumber(analysisUnFinishedNumber);
+        return companyFieldNumberVo;
+    }
+
+
 }

+ 2 - 1
energy-manage-service/src/main/java/com/energy/manage/service/service/system/impl/SysPermissionServiceImpl.java

@@ -148,7 +148,7 @@ public class SysPermissionServiceImpl extends BaseServiceImpl<SysPermissionPO> i
 
 
     @Override
-    public boolean updateRoleOrganization(Integer roleId, List<RoleUpdateOrganizationDto.OrganizationCode> organizationCodes) {
+    public boolean updateRoleOrganization(Integer roleId, List<RoleUpdateOrganizationDto.OrganizationCode> organizationCodes,Integer userId) {
         if (CollectionUtils.isEmpty(organizationCodes)) {
             return true;
         }
@@ -163,6 +163,7 @@ public class SysPermissionServiceImpl extends BaseServiceImpl<SysPermissionPO> i
             sysOrganizationAuthPO.setCodeType(item.getCodeType());
             sysOrganizationAuthPO.setCreateTime(new Date());
             sysOrganizationAuthPO.setUpdateTime(new Date());
+            sysOrganizationAuthPO.setCreateBy(userId);
             dataList.add(sysOrganizationAuthPO);
         }
         return sysOrganizationAuthMapper.insertList(dataList) > 0;

+ 6 - 6
energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/WindEngineGroupService.java

@@ -4,6 +4,7 @@ package com.energy.manage.service.service.windenginegroup;
 import com.energy.manage.common.base.Page;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.domain.dto.windenginegroup.*;
+import com.energy.manage.service.domain.vo.cockpit.WindFieldGroupTowerVo;
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupPageVo;
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
 import org.springframework.web.multipart.MultipartFile;
@@ -31,7 +32,7 @@ public interface WindEngineGroupService {
      * @param file,fieldCode
      * @return
      */
-    ResultResp windEngineGroupImportData(MultipartFile file, String fieldCode);
+    ResultResp windEngineGroupImportData(MultipartFile file, String fieldCode,Integer userId);
 
 
     /**
@@ -42,14 +43,13 @@ public interface WindEngineGroupService {
      */
     Page<WindEngineGroupPageVo> windEngineGrouPage(WindEngineGroupPageDto windEngineGroupPageDto);
 
-
     /**
-     * 删除风场下风机
-     *
+     * 通过风场code查询风机集合
      * @param fieldCode
      * @return
      */
-    boolean delFieldWindEngineGroup(String fieldCode);
+    WindFieldGroupTowerVo getWindEngineGroupByFieldCode(String fieldCode);
+
 
     /**
      * 删除风机
@@ -91,7 +91,7 @@ public interface WindEngineGroupService {
     int getWindEngineGroupCountByField(String fieldCode);
 
     /**
-     * 获取登录用户能看到的风机
+     * 获取登录用户role能看到的风机
      * @param roleId
      * @return
      */

+ 92 - 26
energy-manage-service/src/main/java/com/energy/manage/service/service/windenginegroup/impl/WindEngineGroupServiceImpl.java

@@ -17,14 +17,19 @@ import com.energy.manage.common.util.IdGeneratorUtil;
 import com.energy.manage.service.domain.dto.windenginegroup.*;
 import com.energy.manage.service.domain.dto.windfield.WindFieldCodeDto;
 import com.energy.manage.service.domain.dto.windfield.WindFieldUpdateDto;
+import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerByFieldVo;
+import com.energy.manage.service.domain.vo.cockpit.WindFieldGroupTowerVo;
 import com.energy.manage.service.domain.vo.excel.WindEngineGroupExcelVo;
 import com.energy.manage.service.domain.vo.excel.WindFieldExceVo;
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupPageVo;
 import com.energy.manage.service.domain.vo.windenginegroup.WindEngineGroupVo;
+import com.energy.manage.service.domain.vo.windenginemill.WindEngineMillVo;
 import com.energy.manage.service.domain.vo.windfield.WindFieldVo;
 import com.energy.manage.service.mappers.windenginegroup.WindEngineGroupMapper;
+import com.energy.manage.service.service.anemometertower.AnemometerTowerService;
 import com.energy.manage.service.service.cache.CacheService;
 import com.energy.manage.service.service.windenginegroup.WindEngineGroupService;
+import com.energy.manage.service.service.windenginemill.WindEngineMillService;
 import com.energy.manage.service.service.windfield.WindFieldService;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -39,8 +44,10 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 import tk.mybatis.mapper.entity.Example;
 
+import java.text.DecimalFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 
@@ -52,6 +59,9 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
     @Autowired
     private CacheService cacheService;
 
+    @Autowired
+    private AnemometerTowerService anemometerTowerService;
+
 
     @Autowired
     private WindEngineGroupMapper windEngineGroupMapper;
@@ -59,6 +69,9 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
     @Autowired
     private WindFieldService windFieldService;
 
+    @Autowired
+    private WindEngineMillService windEngineMillService;
+
     /**
      * 手动创建风机机组信息
      *
@@ -80,7 +93,6 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
         if (windEngineGroupMapper.insertUseGeneratedKeys(windEngineGroupPO) <= 0) {
             return false;
         }
-
         // 处理总额定功率
         outerLoop:
         if (windEngineGroupCreateDto.getRatedCapacity() != null) {
@@ -97,9 +109,7 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
                 windFieldUpdateDto.setRatedCapacityNumber(value + windEngineGroupCreateDto.getRatedCapacity().doubleValue());
                 windFieldService.updateWindField(windFieldUpdateDto);
             }
-
         }
-
         return true;
     }
 
@@ -107,24 +117,48 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
     @SneakyThrows
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResultResp windEngineGroupImportData(MultipartFile file, String fieldCode) {
-        List<WindEngineGroupExcelVo> windEngineGroupExcelVos = EasyExcel.read(file.getInputStream()).head(WindFieldExceVo.class).sheet().doReadSync();
+    public ResultResp windEngineGroupImportData(MultipartFile file, String fieldCode,Integer userId) {
+        List<WindEngineGroupExcelVo> windEngineGroupExcelVos = EasyExcel.read(file.getInputStream()).head(WindEngineGroupExcelVo.class).sheet().doReadSync();
         if (CollectionUtils.isEmpty(windEngineGroupExcelVos)) {
             return ResultResp.FAIL("未读取到文件数据,请核对数据准确性!");
         }
         // 过滤空数据
-        List<WindEngineGroupExcelVo> windFieldExceVoList = windEngineGroupExcelVos.stream().filter(item ->
-                !StringUtils.isEmpty(item.getEngineName())&&!StringUtils.isEmpty(item.getMillTypeCode())).collect(Collectors.toList());
+        List<WindEngineGroupExcelVo> windEngineGroupExceVoList = windEngineGroupExcelVos.stream().filter(item ->
+                !StringUtils.isEmpty(item.getEngineName())).collect(Collectors.toList());
 
         // 校验数据非空
-        for (WindEngineGroupExcelVo exceVo : windFieldExceVoList) {
-            if (exceVo.getLongitude() == null || exceVo.getLatitude() == null) {
+        for (WindEngineGroupExcelVo exceVo : windEngineGroupExceVoList) {
+            if (exceVo.getLongitude() == null || exceVo.getLatitude() == null||StringUtils.isEmpty(exceVo.getMachineTypeCode())) {
                 return ResultResp.FAIL("当前导入风机数据未填写经纬度,请核查导入数据!");
             }
         }
 
+        // 校验是否有重复的风机编号
+        Set<String> engineNames = windEngineGroupExceVoList.stream().map(item -> item.getEngineName()).collect(Collectors.toSet());
+        if(windEngineGroupExceVoList.size()!=engineNames.size()){
+            return ResultResp.FAIL("当前导入风机数据有重复风机编号,请核查导入数据!");
+        }
+
+        // 处理机型编号
+        List<String> millTypeCodes = windEngineGroupExceVoList.stream().map(item -> item.getMachineTypeCode()).collect(Collectors.toList());
+        List<WindEngineMillVo>  windEngineMillVoList =  windEngineMillService.getWindEngineMillListByInMachineTypeCode(millTypeCodes);
+        //校验机型准确性
+        for(String millTypeCode : millTypeCodes){
+           boolean flg =  windEngineMillVoList.stream().anyMatch(item -> item.getMachineTypeCode().equals(millTypeCode));
+           if(!flg){
+               return ResultResp.FAIL("当前导入机型编号系统中不存在,请核查导入数据!");
+           }
+        }
+        for(WindEngineGroupExcelVo windEngineGroupExcelVo : windEngineGroupExceVoList){
+            for(WindEngineMillVo windEngineMillVo : windEngineMillVoList){
+                if(windEngineGroupExcelVo.getMachineTypeCode().equals(windEngineMillVo.getMachineTypeCode())){
+                    windEngineGroupExcelVo.setMillTypeCode(windEngineMillVo.getMillTypeCode());
+                }
+            }
+        }
+
         // 数据校验是否有重名风机编号
-        List<String> engineNamees = windFieldExceVoList.stream().map(item -> item.getEngineName()).collect(Collectors.toList());
+        List<String> engineNamees = windEngineGroupExceVoList.stream().map(item -> item.getEngineName()).collect(Collectors.toList());
         Example queryExample = new Example(WindEngineGroupPO.class);
         Example.Criteria criteria = queryExample.createCriteria();
         criteria.andIn("engineName", engineNamees);
@@ -136,7 +170,7 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
 
         WindEngineGroupPO windEngineGroupPO = null;
         List<WindEngineGroupPO> list = Lists.newArrayList();
-        for (WindEngineGroupExcelVo windFieldExceVos : windFieldExceVoList) {
+        for (WindEngineGroupExcelVo windFieldExceVos : windEngineGroupExceVoList) {
             windEngineGroupPO = new WindEngineGroupPO();
             BeanUtil.copyProperties(windFieldExceVos, windEngineGroupPO);
             String number = IdPrefixEnum.WIND_GROUP_NUMBER.getCode().concat(IdGeneratorUtil.zeroFillUtil(cacheService.incr(ManagerRedisKeyConstant.build(ManagerRedisKeyConstant.IDGENERATOR_CONSTANTS_KEY, IdPrefixEnum.WIND_GROUP_NUMBER.getCode()))));
@@ -146,7 +180,12 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
             windEngineGroupPO.setUpdateTime(new Date());
             windEngineGroupPO.setState(Constants.GLOBAL_IN_USE);
             windEngineGroupPO.setDelState(DeleteStatusEnum.NODELETE.getCode());
-
+            if(windFieldExceVos.getSightcingString().equals("是")){
+                windEngineGroupPO.setSightcing(1);
+            }
+            if(windFieldExceVos.getSightcingString().equals("否")){
+                windEngineGroupPO.setSightcing(2);
+            }windEngineGroupPO.setCreateBy(userId);
             list.add(windEngineGroupPO);
         }
         if (CollectionUtils.isEmpty(list)) {
@@ -159,7 +198,6 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
     }
 
 
-
     @Override
     public Page<WindEngineGroupPageVo> windEngineGrouPage(WindEngineGroupPageDto windEngineGroupPageDto) {
         PageHelper.startPage(windEngineGroupPageDto.getPageNum(), windEngineGroupPageDto.getPageSize());
@@ -169,30 +207,59 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
     }
 
     @Override
-    public boolean delFieldWindEngineGroup(String fieldCode) {
+    public WindFieldGroupTowerVo getWindEngineGroupByFieldCode(String fieldCode) {
 
-        WindEngineGroupPO po = new WindEngineGroupPO();
-        po.setDelState(DeleteStatusEnum.DELETE.getCode());
-        Example queryExample = new Example(WindEngineMillPO.class);
+        WindFieldGroupTowerVo windFieldGroupTowerVo = new WindFieldGroupTowerVo();
+
+        // 处理风机信息
+        Example queryExample = new Example(WindEngineGroupPO.class);
         Example.Criteria criteria = queryExample.createCriteria();
         criteria.andEqualTo("fieldCode", fieldCode);
+        criteria.andEqualTo("delState", DeleteStatusEnum.NODELETE.getCode());
+        List<WindEngineGroupPO> engineGroupPOS = windEngineGroupMapper.selectByExample(queryExample);
+        if (CollectionUtils.isEmpty(engineGroupPOS)) {
+            return null;
+        }
+        WindEngineGroupVo windEngineGroupVo = null;
+        List<WindEngineGroupVo> engineGroupVoArrayList = Lists.newArrayList();
+        for (WindEngineGroupPO po : engineGroupPOS) {
+            windEngineGroupVo = new WindEngineGroupVo();
+            BeanUtil.copyProperties(po,windEngineGroupVo);
+            if (windEngineGroupVo.getLongitude() != null && windEngineGroupVo.getLatitude() != null) {
+                DecimalFormat df = new DecimalFormat("#.00000");
+                String longitude = df.format(windEngineGroupVo.getLongitude());
+                String latitude = df.format(windEngineGroupVo.getLatitude());
+                windEngineGroupVo.setLongitudeAndLatitudeString(longitude + "," + latitude);
+            }
+            engineGroupVoArrayList.add(windEngineGroupVo);
+        }
+        // 处理测风塔信息
+        List<AnemometerTowerByFieldVo> anemometerTowerByFields = anemometerTowerService.getAnemometerTowerByField(fieldCode);
+        for(AnemometerTowerByFieldVo vo : anemometerTowerByFields){
+            if (vo.getLongitude() != null && vo.getLatitude() != null) {
+                DecimalFormat df = new DecimalFormat("#.00000");
+                String longitude = df.format(vo.getLongitude());
+                String latitude = df.format(vo.getLatitude());
+                vo.setLongitudeAndLatitudeString(longitude + "," + latitude);
+            }
+        }
+        windFieldGroupTowerVo.setWindEngineGroupVoList(engineGroupVoArrayList);
+        windFieldGroupTowerVo.setAnemometerTowerList(anemometerTowerByFields);
 
-        return windEngineGroupMapper.updateByExampleSelective(po, queryExample) > 0;
+        return windFieldGroupTowerVo;
     }
 
+
     @Override
     public boolean delWindEngineGroup(WindEngineGroupCodeDto windEngineGroupCodeDto) {
-
         WindEngineGroupPO po = new WindEngineGroupPO();
         po.setDelState(DeleteStatusEnum.DELETE.getCode());
         Example queryExample = new Example(WindEngineGroupPO.class);
         Example.Criteria criteria = queryExample.createCriteria();
         criteria.andEqualTo("engineCode", windEngineGroupCodeDto.getEngineCode());
-
         if (windEngineGroupMapper.updateByExampleSelective(po, queryExample) <= 0) {
             return false;
         }
-
         // 处理总额定功率
         WindEngineGroupPO windEngineGroupPO = new WindEngineGroupPO();
         windEngineGroupPO.setEngineCode(windEngineGroupCodeDto.getEngineCode());
@@ -213,7 +280,6 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
                 windFieldService.updateWindField(windFieldUpdateDto);
             }
         }
-
         return true;
     }
 
@@ -260,12 +326,12 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
             windFieldUpdateDto.setFieldCode(windFieldCodeDto.getFieldCode());
             double value = windFieldVo.getRatedCapacityNumber() == null ? 0 : windFieldVo.getRatedCapacityNumber().doubleValue();
             if (windEngineGroup.getRatedCapacity().doubleValue() < windEngineGroupUpdateDto.getRatedCapacity().doubleValue()) {
-                double less = NumberUtil.round(windEngineGroupUpdateDto.getRatedCapacity().doubleValue() - windEngineGroup.getRatedCapacity().doubleValue(),2).doubleValue();
+                double less = NumberUtil.round(windEngineGroupUpdateDto.getRatedCapacity().doubleValue() - windEngineGroup.getRatedCapacity().doubleValue(), 2).doubleValue();
                 windFieldUpdateDto.setRatedCapacityNumber(value + less);
                 windFieldService.updateWindField(windFieldUpdateDto);
             }
             if (windEngineGroup.getRatedCapacity().doubleValue() > windEngineGroupUpdateDto.getRatedCapacity().doubleValue()) {
-                double greater =  NumberUtil.round(windEngineGroup.getRatedCapacity().doubleValue() - windEngineGroupUpdateDto.getRatedCapacity().doubleValue(),2).doubleValue();
+                double greater = NumberUtil.round(windEngineGroup.getRatedCapacity().doubleValue() - windEngineGroupUpdateDto.getRatedCapacity().doubleValue(), 2).doubleValue();
                 if (value > windEngineGroup.getRatedCapacity()) {
                     windFieldUpdateDto.setRatedCapacityNumber(value - greater);
                     windFieldService.updateWindField(windFieldUpdateDto);
@@ -293,14 +359,14 @@ public class WindEngineGroupServiceImpl extends BaseServiceImpl<WindEngineGroupP
     public int getWindEngineGroupCountByField(String fieldCode) {
         Example queryExample = new Example(WindEngineGroupPO.class);
         Example.Criteria criteria = queryExample.createCriteria();
-        criteria.andEqualTo("fieldCode",fieldCode);
+        criteria.andEqualTo("fieldCode", fieldCode);
         return windEngineGroupMapper.selectCountByExample(queryExample);
 
     }
 
 
     @Override
-    public List<WindEngineGroupVo> getWindEngineGroupByRoleId(Integer roleId){
+    public List<WindEngineGroupVo> getWindEngineGroupByRoleId(Integer roleId) {
         return windEngineGroupMapper.selectWindEngineGroupByRoleId(roleId);
     }
 

+ 7 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/windenginemill/WindEngineMillService.java

@@ -63,6 +63,13 @@ public interface WindEngineMillService  {
     List<WindEngineMillVo> getWindEngineMillList();
 
     /**
+     * 通过收资编号集合查询系统机型
+     * @param machineTypeCodes
+     * @return
+     */
+    List<WindEngineMillVo> getWindEngineMillListByInMachineTypeCode(List<String> machineTypeCodes);
+
+    /**
      * 修改机型信息
      * @param windEngineMillDto
      * @return

+ 24 - 3
energy-manage-service/src/main/java/com/energy/manage/service/service/windenginemill/impl/WindEngineMillServiceImpl.java

@@ -42,7 +42,7 @@ import java.util.List;
 
 @Slf4j
 @Service
-public class WindEngineMillServiceImpl extends BaseServiceImpl<com.energy.manage.common.po.windenginemill.WindEngineMillPO> implements WindEngineMillService {
+public class WindEngineMillServiceImpl extends BaseServiceImpl<WindEngineMillPO> implements WindEngineMillService {
 
 
     @Autowired
@@ -59,7 +59,6 @@ public class WindEngineMillServiceImpl extends BaseServiceImpl<com.energy.manage
      * @param windEngineMillCreateDto
      * @return
      */
-    @SneakyThrows
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean createEngineMill(WindEngineMillCreateDto windEngineMillCreateDto) {
@@ -178,7 +177,12 @@ public class WindEngineMillServiceImpl extends BaseServiceImpl<com.energy.manage
 
     @Override
     public List<WindEngineMillVo> getWindEngineMillList() {
-        List<WindEngineMillPO> list = windEngineMillMapper.selectAll();
+
+        Example queryExample = new Example(WindEngineMillPO.class);
+        Example.Criteria criteria = queryExample.createCriteria();
+        criteria.andEqualTo("delState", DeleteStatusEnum.NODELETE.getCode());
+        criteria.andEqualTo("state",Constants.GLOBAL_IN_USE);
+        List<WindEngineMillPO> list = windEngineMillMapper.selectByExample(queryExample);
         WindEngineMillVo windEngineMillVo = null;
         List<WindEngineMillVo> windEngineMillVos = Lists.newArrayList();
         for(WindEngineMillPO windEngineMillPO : list){
@@ -190,6 +194,23 @@ public class WindEngineMillServiceImpl extends BaseServiceImpl<com.energy.manage
     }
 
     @Override
+    public List<WindEngineMillVo> getWindEngineMillListByInMachineTypeCode(List<String> machineTypeCodes) {
+        Example queryMCExample = new Example(WindEngineMillPO.class);
+        Example.Criteria criteriaMC = queryMCExample.createCriteria();
+        criteriaMC.andIn("machineTypeCode", machineTypeCodes);
+        criteriaMC.andEqualTo("delState", DeleteStatusEnum.NODELETE.getCode());
+        List<WindEngineMillPO> windEngineMillPOS = windEngineMillMapper.selectByExample(queryMCExample);
+        WindEngineMillVo windEngineMillVo = null;
+        List<WindEngineMillVo> windEngineMillVos = Lists.newArrayList();
+        for(WindEngineMillPO windEngineMillPO : windEngineMillPOS){
+            windEngineMillVo = new WindEngineMillVo();
+            BeanUtil.copyProperties(windEngineMillPO,windEngineMillVo);
+            windEngineMillVos.add(windEngineMillVo);
+        }
+        return windEngineMillVos;
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean updateWindEngineMill(WindEngineMillDto dto) {
         WindEngineMillPO po = new WindEngineMillPO();

+ 1 - 1
energy-manage-service/src/main/java/com/energy/manage/service/service/windfield/WindFieldService.java

@@ -99,7 +99,7 @@ public interface WindFieldService {
      * 查询风场集合
      * @return
      */
-    List<WindFieldNameVo> getWindFieldNames();
+    List<WindFieldNameVo> getWindFieldNames(Integer userId, Integer roleId);
 
 
     /**

+ 40 - 17
energy-manage-service/src/main/java/com/energy/manage/service/service/windfield/impl/WindFieldServiceImpl.java

@@ -19,10 +19,13 @@ import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.common.util.IdGeneratorUtil;
 import com.energy.manage.service.domain.dto.anemometertower.AnemometerTowerDto;
 import com.energy.manage.service.domain.dto.anemometertower.AnemometerTowerRelationDto;
+import com.energy.manage.service.domain.dto.company.WindCompanyDelDto;
 import com.energy.manage.service.domain.dto.company.WindCompanyDto;
 import com.energy.manage.service.domain.dto.windfield.*;
+import com.energy.manage.service.domain.dto.windrelation.WindRelationDelDto;
 import com.energy.manage.service.domain.dto.windrelation.WindRelationDto;
 import com.energy.manage.service.domain.vo.anemometertower.AnemometerTowerByFieldVo;
+import com.energy.manage.service.domain.vo.company.WindCompanyVo;
 import com.energy.manage.service.domain.vo.excel.WindFieldExceVo;
 import com.energy.manage.service.domain.vo.windenginemill.WindEngineMillVo;
 import com.energy.manage.service.domain.vo.windfield.WindFieldNameVo;
@@ -34,6 +37,7 @@ import com.energy.manage.service.mappers.windfield.WindFieldMapper;
 import com.energy.manage.service.service.anemometertower.AnemometerTowerService;
 import com.energy.manage.service.service.area.AreaApiService;
 import com.energy.manage.service.service.cache.CacheService;
+import com.energy.manage.service.service.company.WindCompanyService;
 import com.energy.manage.service.service.windfield.WindFieldResourceService;
 import com.energy.manage.service.service.windfield.WindFieldService;
 import com.energy.manage.service.service.windrelation.WindRelationService;
@@ -43,6 +47,7 @@ import com.google.common.collect.Lists;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -51,10 +56,7 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 import tk.mybatis.mapper.entity.Example;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -68,6 +70,8 @@ public class WindFieldServiceImpl extends BaseServiceImpl<WindFieldPO> implement
     @Autowired
     private CacheService cacheService;
 
+    @Autowired
+    private WindCompanyService windCompanyService;
 
     @Autowired
     private WindFieldMapper windFieldMapper;
@@ -81,6 +85,9 @@ public class WindFieldServiceImpl extends BaseServiceImpl<WindFieldPO> implement
     @Autowired
     private WindFieldResourceService windFieldResourceService;
 
+    @Autowired
+    private WindRelationService windRelationService;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -105,7 +112,7 @@ public class WindFieldServiceImpl extends BaseServiceImpl<WindFieldPO> implement
             for (WindFieldDto.AnemometerTowerRelationDto anemometerTowerRelationDto1 : windFieldDto.getAnemometerTowerRelationDtos()) {
                 anemometerTowerRelationDto = new AnemometerTowerRelationDto();
                 BeanUtils.copyProperties(anemometerTowerRelationDto1, anemometerTowerRelationDto);
-                anemometerTowerRelationDto.setFieldCode(windFieldDto.getFieldCode());
+                anemometerTowerRelationDto.setFieldCode(windFieldPO.getFieldCode());
                 anemometerTowerDtos.add(anemometerTowerRelationDto);
             }
             anemometerTowerService.bathAnemometerTowerRelation(anemometerTowerDtos);
@@ -142,13 +149,19 @@ public class WindFieldServiceImpl extends BaseServiceImpl<WindFieldPO> implement
 
         // 校验数据非空
         for (WindFieldExceVo exceVo : windFieldExceVoList) {
-            if (StringUtils.isEmpty(exceVo.getCityName()) || StringUtils.isEmpty(exceVo.getProvinceName())||StringUtils.isEmpty(exceVo.getAreaCode())) {
+            if (StringUtils.isEmpty(exceVo.getCityName()) || StringUtils.isEmpty(exceVo.getProvinceName()) || StringUtils.isEmpty(exceVo.getAreaCode())) {
                 return ResultResp.FAIL("当前导入风场数据未填写区域,请核查导入数据!");
             }
             if (exceVo.getLongitude() == null || exceVo.getLatitude() == null) {
                 return ResultResp.FAIL("当前导入风场数据未填写经纬度,请核查导入数据!");
             }
         }
+
+        // 校验是否有重复的风场名称
+        Set<String> fieldNameStrings = windFieldExceVoList.stream().map(item -> item.getFieldName()).collect(Collectors.toSet());
+        if (windFieldExceVoList.size() != fieldNameStrings.size()) {
+            return ResultResp.FAIL("当前导入风场数据有重复风场名称,请核查导入数据!");
+        }
         // 数据校验是否有重名风场
         List<String> fieldNames = windFieldExceVoList.stream().map(item -> item.getFieldName()).collect(Collectors.toList());
         Example queryExample = new Example(WindFieldPO.class);
@@ -171,10 +184,12 @@ public class WindFieldServiceImpl extends BaseServiceImpl<WindFieldPO> implement
             BeanUtil.copyProperties(windFieldExceVo, windFieldPO);
             String number = IdPrefixEnum.WIND_FIELD_NUMBER.getCode().concat(windFieldExceVo.getAreaCode() + IdGeneratorUtil.zeroFillUtil(cacheService.incr(ManagerRedisKeyConstant.build(ManagerRedisKeyConstant.IDGENERATOR_CONSTANTS_KEY, IdPrefixEnum.WIND_FIELD_NUMBER.getCode()))));
             windFieldPO.setFieldCode(number);
+            windFieldPO.setCompanyCode(windFieldImportDataDto.getCompanyCode());
             windFieldPO.setCreateTime(new Date());
             windFieldPO.setUpdateTime(new Date());
             windFieldPO.setState(Constants.GLOBAL_IN_USE);
             windFieldPO.setDelState(DeleteStatusEnum.NODELETE.getCode());
+            windFieldPO.setCreateBy(windFieldImportDataDto.getCreateBy());
             list.add(windFieldPO);
         }
         if (CollectionUtils.isEmpty(list)) {
@@ -265,7 +280,14 @@ public class WindFieldServiceImpl extends BaseServiceImpl<WindFieldPO> implement
         Example queryExample = new Example(WindFieldPO.class);
         Example.Criteria criteria = queryExample.createCriteria();
         criteria.andEqualTo("fieldCode", fieldCode);
-        return windFieldMapper.updateByExampleSelective(windFieldPO, queryExample) > 0;
+
+        if (windFieldMapper.updateByExampleSelective(windFieldPO, queryExample) <= 0) {
+            return false;
+        }
+        WindRelationDelDto windRelationDelDto = new WindRelationDelDto();
+        windRelationDelDto.setCodeNumber(fieldCode);
+        windRelationDelDto.setType(TypeRelationEnum.WIND_FIELD_NUMBER.getCode());
+        return windRelationService.delWindRelation(windRelationDelDto);
     }
 
     @Override
@@ -297,6 +319,14 @@ public class WindFieldServiceImpl extends BaseServiceImpl<WindFieldPO> implement
         WindFieldVo windFieldVo = new WindFieldVo();
         BeanUtil.copyProperties(po, windFieldVo);
 
+        // 查询企业对象
+        WindCompanyDelDto windCompanyDelDto = new WindCompanyDelDto();
+        windCompanyDelDto.setCompanyCode(po.getCompanyCode());
+        WindCompanyVo windCompanyVo = windCompanyService.getWindCompany(windCompanyDelDto);
+        if (windCompanyVo != null) {
+            windFieldVo.setCompanyName(windCompanyVo.getCompanyName());
+        }
+
         //测风塔数据
         List<AnemometerTowerByFieldVo> list = anemometerTowerService.getAnemometerTowerByField(windFieldCodeDto.getFieldCode());
         if (!CollectionUtils.isEmpty(list)) {
@@ -379,16 +409,9 @@ public class WindFieldServiceImpl extends BaseServiceImpl<WindFieldPO> implement
     }
 
     @Override
-    public List<WindFieldNameVo> getWindFieldNames() {
-        List<WindFieldPO> list = windFieldMapper.selectAll();
-        WindFieldNameVo windFieldNameVo = null;
-        List<WindFieldNameVo> windFieldNameVos = Lists.newArrayList();
-        for(WindFieldPO po : list){
-            windFieldNameVo = new WindFieldNameVo();
-            BeanUtil.copyProperties(po,windFieldNameVo);
-            windFieldNameVos.add(windFieldNameVo);
-        }
-        return windFieldNameVos;
+    public List<WindFieldNameVo> getWindFieldNames(Integer userId, Integer roleId) {
+        List<WindFieldNameVo> list = windFieldMapper.selectWindFieldNamesByUserId(userId, roleId);
+        return list;
     }
 
     @Override

+ 1 - 1
energy-manage-service/src/main/java/com/energy/manage/service/service/windrelation/WindRelationService.java

@@ -50,7 +50,7 @@ public interface WindRelationService {
      *
      * @return
      */
-    List<Map<String, Object>> getWindRelationCompany(Integer state,String companyName);
+    List<Map<String, Object>> getWindRelationCompany(Integer state,String companyName,Integer roleId,Integer userId);
 
 
     /**

+ 2 - 2
energy-manage-service/src/main/java/com/energy/manage/service/service/windrelation/impl/WindRelationServiceImpl.java

@@ -87,9 +87,9 @@ public class WindRelationServiceImpl extends BaseServiceImpl<WindRelationPO> imp
 
 
     @Override
-    public  List<Map<String, Object>> getWindRelationCompany(Integer state,String companyName) {
+    public  List<Map<String, Object>> getWindRelationCompany(Integer state,String companyName,Integer roleId,Integer userId) {
 
-        List<WindCompanyPageVo> windCompanyPageVos = windRelationMapper.selectWindRelationCompanyByType(TypeRelationEnum.COMPANY_NUMBER.getCode(),state,companyName);
+        List<WindCompanyPageVo> windCompanyPageVos = windRelationMapper.selectWindRelationCompanyByType(TypeRelationEnum.COMPANY_NUMBER.getCode(),state,companyName,roleId,userId);
         // 转化为Map集合
         List<Map<String, Object>> mapList = BeanMapUtils.listBeanToListMap(windCompanyPageVos);
         // 获取树形结构

+ 1 - 0
energy-manage-service/src/main/resources/bootstrap.properties

@@ -71,3 +71,4 @@ power.factor.rated=1.2
 #拦截器是否生效
 energy.login.enabled=true
 
+

+ 18 - 19
energy-manage-service/src/main/resources/config/README.MD

@@ -3,7 +3,7 @@
 
 ## 名词/术语
     index: 表示数组索引
-    分析类型: 表示 针对风电机组发电性能的不同分析,例如:数据完整度、静态偏航误差、功率曲线散点分析、变桨功率分析等
+    分析类型: 表示 针对风电机组发电性能的不同分析,例如:静态偏航误差、功率曲线散点分析、变桨功率分析等
     直驱风电机组: 无齿轮箱
     半直驱风电机组:有齿轮箱且结构较双馈风电机组简单
     双馈风电机组: 有齿轮箱且结构较半直驱风电机组复杂
@@ -62,14 +62,13 @@
 
 
     键 dataContract 表示 数据契约说明
-
+    键 dataContract.autoOrManual 表示 区分调用来源是自动触发,还是人工触发,其值数据类型为字符串且非空,枚举值:automatic、manual,值:automatic 表示自动触发;manual 表示人工触发;
     键 dataContract.dataSource 表示 分析使用数据源,其值数据类型为对象且非空
-    键 dataContract.dataSource.scada 表示 分析使用scada数据的数据源,其值数据类型为字符串且非空,值: minute 为scada分钟级数据;seconde为scada秒级数据
+    键 dataContract.dataSource.scada 表示 分析使用scada数据的数据源,其值数据类型为字符串且非空,枚举值:minute、second、all,值: minute 用于人工分析场景,指定分析类型使用scada分钟级数据;seconde 用于人工分析场景,指定分析类型使用scada秒级数据;all 用于自动分析场景,分析类型按自身设计使用scada数据进行分析
 
     键 dataContract.dataFilter 表示 数据筛选
     键 dataContract.dataFilter.powerFarmID 表示 电场编号, 其值数据类型为字符串且非空
-    键 dataContract.dataFilter.turbines 表示 发电设备(风电机组等)信息, 其值数据类型为数组且非空
-    键 dataContract.dataFilter.turbines[index].dataBatchNum 表示 发电设备(风电机组等)数据批次号, 其值数据类型为字符串且非空
+    键 dataContract.dataFilter.turbines 表示 发电设备(风电机组等)编号信息, 其值数据类型为数组且非空
     键 dataContract.dataFilter.beginTime 表示 数据开始时间, 其值数据类型为字符串,格式:yyyy-MM-dd hh:mm:ss 当值为null时不进行当前数据批次数据进行开始时间筛选
     键 dataContract.dataFilter.beginTime 表示 数据开始时间, 其值数据类型为字符串,格式:yyyy-MM-dd hh:mm:ss 当值为null时不进行当前数据批次数据进行开始时间筛选
     键 dataContract.dataFilter.endTime 表示 数据截止时间, 其值数据类型为字符串,格式:yyyy-MM-dd hh:mm:ss 当值为null时不进行当前数据批次数据进行截止时间筛选
@@ -135,14 +134,19 @@
     {
         "dataContractType": {
             "type": "analysisExecuteOrder",
-            "version": "1.0.0"
+            "version": "1.2.0"
         },
         "dataContract": {
+            "autoOrManual":"automatic",
             "dataSource": {
-                "scada": "minute"
+                "scada": "second"
             },
             "dataFilter": {
-                "powerFarmID": "",
+                "powerFarmID": "010-00001",
+                "turbines": [
+                    "010-00001-0001",
+                    "010-00001-0002"
+                ],
                 "dataBatchNum": "B2024042211-0",
                 "beginTime": "2023-01-01 00:00:00",
                 "endTime": "2023-12-31 23:59:59",
@@ -173,32 +177,27 @@
                 {
                     "package": "algorithm.powerCurveAnalyst",
                     "className": "PowerCurveAnalyst",
-                    "methodName": "executeAnalysis",
-                    "analysisReustCode":["1-PowerCureScatterAnalysis","2-PowerCureScatterAnalysis"]
+                    "methodName": "executeAnalysis"
                 },
                 {
                     "package": "algorithm.powerScatter2DAnalyst",
-                    "className": "PowerScatter2DAnalyst",
-                    "methodName": "executeAnalysis",
-                    "analysisReustCode":["1-PowerCureScatterAnalysis","2-PowerCureScatterAnalysis"]
+                    "className": "PowerScatter2DAnayst",
+                    "methodName": "executeAnalysis"
                 },
                 {
                     "package": "algorithm.powerScatterAnalyst",
                     "className": "PowerScatterAnalyst",
-                    "methodName": "executeAnalysis",
-                    "analysisReustCode":["1-PowerCureScatterAnalysis"]
+                    "methodName": "executeAnalysis"
                 },
                 {
                     "package": "algorithm.windSpeedFrequencyAnalyst",
                     "className": "WindSpeedFrequencyAnalyst",
-                    "methodName": "executeAnalysis",
-                    "analysisReustCode":["1-PowerCureScatterAnalysis"]
+                    "methodName": "executeAnalysis"
                 },
                 {
                     "package": "algorithm.generatorSpeedPowerAnalyst",
                     "className": "GeneratorSpeedPowerAnalyst",
-                    "methodName": "executeAnalysis",
-                    "analysisReustCode":""
+                    "methodName": "executeAnalysis"
                 }
             ],
             "graphSets": {

+ 2 - 1
energy-manage-service/src/main/resources/mybatis/area/AreaMapper.xml

@@ -7,7 +7,8 @@
         id AS areaId,
         province AS province,
         city AS city,
-        area AS area
+        area AS area,
+        area_code as areaCode
     </sql>
 
     <select id="findAll" resultType="com.energy.manage.common.po.area.AreaPO">

+ 121 - 0
energy-manage-service/src/main/resources/mybatis/system/OrganizationAuthMapper.xml

@@ -26,4 +26,125 @@
         on auth.code_number = field.field_code
         where auth.role_id = #{roleId}
     </select>
+
+    <select id="selectSysOrganizationAuthTreeByRoleId" resultType="com.energy.manage.service.domain.vo.cockpit.CompanyFieldTreeRoleVo">
+        select
+        soa.role_id as roleId,
+        soa.code_number as codeNumber,
+        soa.parent_code as parentCode,
+        soa.code_type as codeType,
+        wc.company_name as companyName,
+        wf.field_name as fieldName,
+        wf.longitude as longitude,
+        wf.latitude as latitude,
+        wf.density,
+        wf.rated_capacity_number as ratedCapacityNumber,
+        wf.elevation_height as elevationHeight,
+        wfbr.batch_code as batchCode,
+        wfbr.analysis_state as analysisState,
+        wfbr.create_time as wfbrCreateTime
+        from
+        (select a.role_id,
+        wr.code_number,
+        wr.parent_code,
+        wr.type as code_type
+        from sys_organization_auth a
+        inner join wind_relation wr on a.code_number = wr.code_number where 1=1 and a.role_id =#{roleId}) soa
+        left join
+        wind_company wc on soa.code_number = wc.company_code
+        left join
+        wind_field wf on soa.code_number = wf.field_code
+        left join
+        (select
+         wfb.id,
+         wfb.batch_code,
+         wfb.field_code,
+         wfb.create_time,
+         ar.analysis_state
+         from
+         wind_field_batch wfb
+         left join
+         analysis_result ar on wfb.batch_code = ar.batch_code
+         where wfb.create_time in
+         (select max(create_time) from wind_field_batch group by field_code)) wfbr on wf.field_code = wfbr.field_code
+        where 1=1
+        </select>
+
+    <select id="selectSysOrganizationAuthListByRoleId" resultType="com.energy.manage.service.domain.vo.cockpit.CompanyFieldTreeRoleVo">
+        select
+        soa.role_id as roleId,
+        soa.code_number as codeNumber,
+        soa.parent_code as parentCode,
+        soa.code_type as codeType,
+        wc.company_name as companyName,
+        wf.field_name as fieldName,
+        wf.longitude as longitude,
+        wf.latitude as latitude,
+        wf.density,
+        wf.rated_capacity_number as ratedCapacityNumber,
+        wf.elevation_height as elevationHeight,
+        wfbr.batch_code as batchCode,
+        wfbr.analysis_state as analysisState
+        from
+        (select a.role_id,
+        wr.code_number,
+        wr.parent_code,
+        wr.type as code_type
+        from sys_organization_auth a
+        inner join wind_relation wr on a.code_number = wr.code_number where 1=1 and a.role_id =#{roleId} and wr.type = 'field') soa
+        left join
+        wind_company wc on soa.code_number = wc.company_code
+        left join
+        wind_field wf on soa.code_number = wf.field_code
+        left join
+        (select
+         wfb.id,
+         wfb.batch_code,
+         wfb.field_code,
+         wfb.create_time,
+         ar.analysis_state
+         from
+         wind_field_batch wfb
+         left join
+         analysis_result ar on wfb.batch_code = ar.batch_code
+         where wfb.create_time in
+         (select max(create_time) from wind_field_batch group by field_code)) wfbr on wf.field_code = wfbr.field_code
+        where 1=1
+        </select>
+
+        <select id="selectFieldAndGrooupNumberByRoleId" resultType="com.energy.manage.service.domain.vo.cockpit.CompanyFieldGroupNumberVo">
+            select
+            soa.code_number as fieldCode,
+            weg.groupCount as engineGroupNumber,
+            wfba.analysis_state as analysisState
+            from
+            sys_organization_auth soa
+            left join
+            (select
+            field_code,
+            count(1) as groupCount
+            from
+            wind_engine_group where del_state = 0 group by field_code) weg on soa.code_number = weg.field_code
+            left join
+            (select
+            wfb.id,
+            wfb.batch_code,
+            wfb.field_code,
+            wfb.create_time,
+            ar.analysis_state
+            from
+            wind_field_batch wfb
+            left join
+            analysis_result ar on wfb.batch_code = ar.batch_code
+            where wfb.create_time in
+            (select
+            max(create_time)
+            from wind_field_batch
+            group by field_code)) wfba on soa.code_number = wfba.field_code
+            where 1=1
+            and soa.code_type = 'field'
+            and soa.role_id = #{roleId}
+        </select>
+
+
 </mapper>

+ 1 - 1
energy-manage-service/src/main/resources/mybatis/windenginegroup/WindEngineGroupMapper.xml

@@ -23,7 +23,7 @@
         wind_field wf
         inner join
         wind_engine_group weg on wf.field_code = weg.field_code
-        inner JOIN
+        left JOIN
         wind_engine_mill wem on weg.mill_type_code = wem.mill_type_code and wem.del_state = 0
         where 1=1 and weg.del_state = 0
         <if test="item.engineName!=null">

+ 21 - 1
energy-manage-service/src/main/resources/mybatis/windfield/WindFieldMapper.xml

@@ -23,10 +23,12 @@
         wf.city_name as cityName,
         wf.elevation_height as elevationHeight,
         wf.create_time as createTime,
+        wf.longitude as longitude,
+        wf.latitude as latitude,
         woeg.wegNumber,
         woatr.atrNumber
         FROM wind_field wf
-        left join (SELECT weg.field_code,count(1) as wegNumber FROM  wind_engine_group weg group by field_code) woeg on wf.field_code =woeg.field_code
+        left join (SELECT weg.field_code,count(1) as wegNumber FROM  wind_engine_group weg where  weg.del_state = 0 group by field_code) woeg on wf.field_code =woeg.field_code
         left join (SELECT atr.field_code,count(1) as atrNumber FROM  anemometer_tower_relation atr group by atr.field_code) woatr on wf.field_code  = woatr.field_code
         left join wind_company wc on wf.company_code = wc.company_code
         where 1=1 and wf.del_state = 0
@@ -48,6 +50,24 @@
         <if test="item.endTime != null and item.endTime != ''">
             and wf.create_time <![CDATA[<= ]]> #{item.endTime}
         </if>
+        and
+        wf.create_by = #{item.userId}
+        or
+        wf.field_code in (select code_number from sys_organization_auth where role_id =#{item.roleId} and code_type = 'field')
+    </select>
+
+
+    <select id="selectWindFieldNamesByUserId" resultType="com.energy.manage.service.domain.vo.windfield.WindFieldNameVo">
+         SELECT
+        wf.field_code as fieldCode,
+        wf.field_name as fieldName
+        FROM wind_field wf
+        where 1=1
+        and wf.del_state = 0
+        and wf.state = 1
+        and wf.create_by = #{userId}
+        or
+        wf.field_code in (select code_number from sys_organization_auth where role_id = #{roleId} and code_type = 'field')
     </select>
 
     <select id="selectByCodeNumber" parameterType="java.lang.String" resultType="com.energy.manage.service.domain.vo.windfield.WindFieldVo">

+ 3 - 0
energy-manage-service/src/main/resources/mybatis/windrelation/WindRelationMapper.xml

@@ -54,6 +54,9 @@
         <if test="companyName!=null">
         and wc.company_name like CONCAT("%", #{companyName} ,"%")
         </if>
+        and wc.del_state = 0
+        and wc.company_code in (select code_number from sys_organization_auth where role_id =#{roleId} and code_type = 'company')
+        or wc.create_by = #{userId}
     </select>
 
     <select id="selectByCodeNumber" parameterType="java.lang.String" resultType="com.energy.manage.common.po.windrelation.WindRelationPO">