123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- package com.jiayue.biz.service.impl;
- import cn.hutool.json.JSONObject;
- import cn.hutool.json.JSONUtil;
- import com.baomidou.mybatisplus.core.conditions.Wrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.jiayue.biz.domain.*;
- import com.jiayue.biz.dto.ProjectDto;
- import com.jiayue.biz.mapper.ProjectMapper;
- import com.jiayue.biz.service.ProjectInfoService;
- import com.jiayue.biz.service.ProjectService;
- import com.jiayue.biz.service.WindTowerInfoService;
- import com.jiayue.biz.util.CalculationUtil;
- import com.jiayue.common.utils.DateUtil;
- import lombok.AllArgsConstructor;
- import org.bson.json.JsonObject;
- import org.springframework.data.mongodb.core.MongoTemplate;
- import org.springframework.stereotype.Service;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.UUID;
- import java.util.stream.Collectors;
- /**
- * 项目Service业务层处理
- *
- * @author L.ym
- * @date 2022-12-22
- */
- @AllArgsConstructor
- @Service
- public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
- private final ProjectInfoService projectInfoService;
- private final WindTowerInfoService windTowerInfoService;
- private final MongoTemplate mongoTemplate;
- /*
- * 根据项目名称模糊查询
- */
- @Override
- public Page getByProjectName(Integer current, Integer size, String projectName) {
- QueryWrapper<Project> wrapper = new QueryWrapper<>();
- wrapper.like(projectName != null, "project_name", projectName);
- Page page = new Page(current, size);
- return page(page, wrapper);
- }
- //查询组装项目列表
- public List<ProjectDto> getProject(Project project) {
- List<ProjectInfo> projectInfoList = projectInfoService.getProjectInfoList();
- ArrayList<ProjectDto> projectList = new ArrayList<>();
- for (ProjectInfo projectInfo : projectInfoList) {
- StringBuilder builder = new StringBuilder();
- ProjectDto projectDto = new ProjectDto();
- projectDto.setId(projectInfo.getId());
- if (projectInfo.getProjectBasicInfo() != null) {
- projectDto.setProjectSort(projectInfo.getProjectBasicInfo().getProjectSort());
- projectDto.setProjectState(projectInfo.getProjectBasicInfo().getProjectState());
- projectDto.setProjectType(projectInfo.getProjectBasicInfo().getProjectType());
- projectDto.setProjectName(projectInfo.getProjectBasicInfo().getProjectName());
- projectDto.setProjectOverview(projectInfo.getProjectBasicInfo().getProjectOverview());
- projectDto.setResourcesOverview(projectInfo.getProjectBasicInfo().getResourcesOverview());
- projectDto.setProjectNameEasy(projectInfo.getProjectBasicInfo().getProjectNameEasy());
- if (projectInfo.getProjectBasicInfo().getPosition() != null && !projectInfo.getProjectBasicInfo().getPosition().equals("")) {
- String[] split = projectInfo.getProjectBasicInfo().getPosition().split(",");
- projectDto.setLongitude(split[0]);
- projectDto.setLatitude(split[1]);
- }
- }
- if (projectInfo.getEquipment() != null) {
- List<String> collect = projectInfo.getEquipment().stream().map(Equipment::getName).collect(Collectors.toList());
- if (projectInfo.getEquipment() != null && !projectInfo.getEquipment().equals("")) {
- for (String s : collect) {
- builder.append(s).append(",");
- }
- if (builder.length() > 0) {
- builder.delete(builder.length() - 1, builder.length());
- }
- projectDto.setEquipment(builder.toString());
- }
- }
- StringBuilder stringBuilder = new StringBuilder();
- List<List<Coordinates>> coordinates = projectInfo.getCoordinates();
- if (coordinates != null && coordinates.size() > 0) {
- for (List<Coordinates> coordinate : coordinates) {
- for (Coordinates coordinates1 : coordinate) {
- stringBuilder.append(coordinates1.getLongitude()).append(",").append(coordinates1.getLatitude()).append(";");
- }
- stringBuilder.delete(stringBuilder.length() - 1, stringBuilder.length());
- stringBuilder.append("。");
- }
- }
- projectDto.setCoordinates(stringBuilder.toString());
- projectList.add(projectDto);
- }
- if (project.getProjectName() != null) {
- return projectList.stream().filter(p -> p.getProjectName().contains(project.getProjectName())).collect(Collectors.toList());
- }
- return projectList;
- }
- public void delProject(String id) {
- projectInfoService.delProjectInfo(id);
- }
- //新增
- public void saveProject(ProjectDto projectDto) {
- List<WindTowerInfo> windTowerInfoList = windTowerInfoService.list();
- ProjectInfo projectInfo = new ProjectInfo();
- projectInfo.setId(UUID.randomUUID().toString());
- ProjectBasicInfo projectBasicInfo = projectInfo.getProjectBasicInfo();
- if (projectBasicInfo == null) {
- projectBasicInfo = new ProjectBasicInfo();
- this.getProjectBasicInfo(projectBasicInfo, projectDto);
- }
- projectInfo.setProjectBasicInfo(projectBasicInfo);
- if (projectDto.getEquipment() != null && !projectDto.getEquipment().equals("")) {
- List<Equipment> equipment = CalculationUtil.getEquipment(windTowerInfoList, projectDto.getEquipment());
- projectInfo.setEquipment(equipment);
- } else {
- projectInfo.setEquipment(new ArrayList<>());
- }
- ArrayList<List<Coordinates>> cooList = new ArrayList<>();
- if (projectDto.getCoordinates() != null) {
- if (projectDto.getCoordinates().contains("。")) {
- String[] split = projectDto.getCoordinates().split("。");
- for (String s : split) {
- List<Coordinates> coordinatesList = this.getCoordinates(s);
- cooList.add(coordinatesList);
- }
- } else {
- List<Coordinates> coordinatesList1 = this.getCoordinates(projectDto.getCoordinates());
- cooList.add(coordinatesList1);
- }
- } else {
- projectInfo.setCoordinates(new ArrayList<>());
- }
- mongoTemplate.save(projectInfo);
- }
- //修改
- public void updateProject(ProjectDto projectDto) {
- List<WindTowerInfo> windTowerInfoList = windTowerInfoService.list();
- ProjectInfo projectInfo = projectInfoService.getOneProjectInfoById(projectDto.getId());
- ProjectBasicInfo projectBasicInfo = projectInfo.getProjectBasicInfo();
- //组装基本信息
- this.getProjectBasicInfo(projectBasicInfo, projectDto);
- if (projectDto.getEquipment() != null && !projectDto.getEquipment().equals("")) {
- List<Equipment> equipment = CalculationUtil.getEquipment(windTowerInfoList, projectDto.getEquipment());
- projectInfo.setEquipment(equipment);
- }
- ArrayList<List<Coordinates>> cooList = new ArrayList<>();
- if (projectDto.getCoordinates().contains("。")) {
- String[] split = projectDto.getCoordinates().split("。");
- for (String s : split) {
- List<Coordinates> coordinatesList = this.getCoordinates(s);
- cooList.add(coordinatesList);
- }
- } else {
- List<Coordinates> coordinatesList1 = this.getCoordinates(projectDto.getCoordinates());
- cooList.add(coordinatesList1);
- }
- mongoTemplate.save(projectInfo);
- }
- public List<Coordinates> getCoordinates(String coordinates) {
- ArrayList<Coordinates> coordinatesList = new ArrayList<>();
- Coordinates coordinates1 = new Coordinates();
- if (coordinates.length() > 0) {
- String[] split = coordinates.split(";");
- coordinates1.setLongitude(split[0]);
- coordinates1.setLatitude(split[1]);
- coordinatesList.add(coordinates1);
- }
- return coordinatesList;
- }
- public void getProjectBasicInfo(ProjectBasicInfo projectBasicInfo, ProjectDto projectDto) {
- projectBasicInfo.setProjectName(projectDto.getProjectName());
- projectBasicInfo.setProjectSort(projectDto.getProjectSort());
- projectBasicInfo.setProjectState(projectDto.getProjectState());
- projectBasicInfo.setProjectType(projectDto.getProjectType());
- projectBasicInfo.setProjectNameEasy(projectDto.getProjectNameEasy());
- if (projectDto.getLongitude() != null && projectDto.getLatitude() != null) {
- projectBasicInfo.setPosition(projectDto.getLongitude() + "," + projectDto.getLatitude());
- } else {
- projectBasicInfo.setPosition("");
- }
- projectBasicInfo.setProjectOverview(projectDto.getProjectOverview());
- projectBasicInfo.setResourcesOverview(projectBasicInfo.getResourcesOverview());
- }
- }
|