|
|
@@ -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);
|
|
|
}
|
|
|
|