package com.whyc.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.whyc.dto.FileOpreate;
|
import com.whyc.dto.Response;
|
import com.whyc.dto.XmlFileOpreate;
|
import com.whyc.mapper.FileInfoMapper;
|
import com.whyc.mapper.StationInfoMapper;
|
import com.whyc.pojo.FileInfo;
|
import com.whyc.pojo.StationInfo;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.io.File;
|
import java.util.List;
|
|
@Service
|
public class StationInfoService {
|
@Autowired(required = false)
|
private StationInfoMapper mapper;
|
|
@Autowired(required = false)
|
private FileInfoMapper infoMapper;
|
//添加台站
|
public Response addStation(String stationName1, String stationName2, String stationName3) {
|
String stationName="";
|
boolean bl=true;
|
String msg="";
|
StationInfo s=new StationInfo();
|
if(stationName1!=null&&!stationName1.isEmpty()){
|
s.setStationName1(stationName1);
|
stationName=stationName+stationName1;
|
}
|
if(stationName2!=null&&!stationName2.isEmpty()){
|
s.setStationName2(stationName2);
|
stationName=stationName+"-"+stationName2;
|
}else{
|
s.setStationName2("-");
|
}
|
if(stationName3!=null&&!stationName3.isEmpty()){
|
s.setStationName3(stationName3);
|
stationName=stationName+"-"+stationName3;
|
}else{
|
s.setStationName3("-");
|
}
|
//查询stationName是否存在
|
QueryWrapper wrapper=new QueryWrapper();
|
wrapper.like("station_name",stationName);
|
int count=mapper.selectCount(wrapper);
|
if(count>0){
|
bl=false;
|
msg="台站存在,添加失败";
|
}else{
|
s.setStationId("0");
|
s.setStationName(stationName);
|
int flag=mapper.insert(s);
|
bl=flag>0;
|
}
|
return new Response().set(1,bl,msg);
|
}
|
//台站下添加文件
|
@Transactional
|
public Response addFileInStation(String stationName,String filePath) {
|
File file=new File(filePath);
|
boolean flag=true;
|
//1.查询出最大的台站id(只有机房下添加了文件才会生成机房id)和最大文件id
|
int stationIdMax=mapper.selectMaxId();
|
int fileIdMax=infoMapper.selectMaxId();
|
if(file.exists()){
|
if(file.isFile()){
|
//2.解析文件并补全文件id
|
FileInfo fileInfo=XmlFileOpreate.readXml(filePath);
|
fileInfo.setFileUrl(file.getPath());
|
fileInfo.setFileName(file.getName());
|
//4.将单文件的数据存入数据库
|
insertFileInDataBase(stationName,stationIdMax,fileIdMax,fileInfo);
|
}else{
|
//3.如果是文件夹:获取文件夹下所有的文件
|
List<File> allFile= FileOpreate.getAllFile(filePath);
|
//4.将文件路径下的所有文件解析并存入数据库
|
insertAllFileInDataBase(stationName,stationIdMax,fileIdMax,allFile);
|
}
|
}else{
|
flag=false;
|
}
|
return new Response().set(1,flag,flag?"台站下添加文件成功":"台站下添加文件失败");
|
}
|
//4.将文件路径下的所有文件解析并存入数据库
|
private void insertAllFileInDataBase(String stationName, int stationIdMax, int fileIdMax, List<File> allFile) {
|
if(allFile!=null&&allFile.size()>0){
|
for (int i=0;i< allFile.size();i++){
|
File file=allFile.get(i);
|
//2.解析文件并补全文件id
|
FileInfo fileInfo=XmlFileOpreate.readXml(file.getPath());
|
fileInfo.setFileUrl(file.getPath());
|
fileInfo.setFileName(file.getName());
|
//4.将单文件的数据存入数据库
|
insertFileInDataBase(stationName,stationIdMax,fileIdMax+i,fileInfo);
|
}
|
}
|
}
|
|
//4.将单文件的数据存入数据库
|
private void insertFileInDataBase(String stationName,int stationIdMax,int fileIdMax, FileInfo fileInfo) {
|
int count=0;
|
int stationId=0;
|
if(fileInfo!=null){
|
//查询站点的机房是否存在stationId
|
QueryWrapper wrapper=new QueryWrapper();
|
stationId=mapper.selectIdByName(stationName);
|
if(stationId!=0){
|
fileInfo.setStationId(String.valueOf(stationId));
|
}else{
|
fileInfo.setStationId(String.valueOf(stationIdMax+1));
|
}
|
fileInfo.setFileId(String.valueOf(fileIdMax+1));
|
count=infoMapper.insert(fileInfo);
|
}
|
if(count>0){
|
if(stationId==0){
|
//操作成功给台站赋予stationId
|
UpdateWrapper uwrapper=new UpdateWrapper();
|
uwrapper.set("station_id",stationIdMax+1);
|
uwrapper.eq("station_name",stationName);
|
mapper.update(null,uwrapper);
|
}
|
}
|
}
|
}
|