|
|
|
|
using AutoMapper;
|
|
|
|
|
using Microsoft.Extensions.Caching.Memory;
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Txgy.RBS.DbModel.Models;
|
|
|
|
|
using Txgy.RBS.DTO;
|
|
|
|
|
using Txgy.RBS.Framework;
|
|
|
|
|
using Txgy.RBS.Framework.Api;
|
|
|
|
|
using Txgy.RBS.IServices;
|
|
|
|
|
|
|
|
|
|
namespace Txgy.RBS.Services
|
|
|
|
|
{
|
|
|
|
|
public class ProjectInfoService : BaseService, IProjectInfoService
|
|
|
|
|
{
|
|
|
|
|
private readonly IMapper _iMapper;
|
|
|
|
|
private readonly ProcessManagerService _processManager;
|
|
|
|
|
private readonly IMemoryCache _cache;
|
|
|
|
|
|
|
|
|
|
public ProjectInfoService(ISqlSugarClient client, IMapper iMapper, ProcessManagerService processManager) : base(client)
|
|
|
|
|
{
|
|
|
|
|
this._iMapper = iMapper;
|
|
|
|
|
this._processManager = processManager;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ApiResult AddProjectInfo(ProjectInfoDTO project)
|
|
|
|
|
{
|
|
|
|
|
project_info project_Info = _iMapper.Map<project_info>(project);
|
|
|
|
|
|
|
|
|
|
var pro = _Client.InsertNav(project_Info).Include(p=>p.stationFile).ThenInclude(t=>t.stations)
|
|
|
|
|
.Include(time => time.time_tab).ExecuteCommand();
|
|
|
|
|
if (pro)
|
|
|
|
|
{
|
|
|
|
|
return new ApiResult();
|
|
|
|
|
}
|
|
|
|
|
return new ApiResult() { Message = "添加失败" };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ApiResult DeleteProjectInfo(int id)
|
|
|
|
|
{
|
|
|
|
|
var res = _Client.DeleteNav<project_info>(p => p.id == id).Include(p => p.stationFile).ThenInclude(t => t.stations)
|
|
|
|
|
.Include(time => time.time_tab).ExecuteCommand();
|
|
|
|
|
if (res)
|
|
|
|
|
{
|
|
|
|
|
return new ApiResult();
|
|
|
|
|
}
|
|
|
|
|
return new ApiResult() { Message = "删除失败" };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<ProjectInfoDTO> GetAllProjectInfo()
|
|
|
|
|
{
|
|
|
|
|
var projects = _Client.Queryable<project_info>().Includes(x => x.stationFile, t=>t.stations)
|
|
|
|
|
.Includes(ti=>ti.time_tab).ToList();
|
|
|
|
|
var projectDTOs= _iMapper.Map<List<ProjectInfoDTO>>(projects);
|
|
|
|
|
return projectDTOs;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ProjectUsedDTO GetCurrentProjectUsed()
|
|
|
|
|
{
|
|
|
|
|
var curProject = _Client.Queryable<project_used>().First();
|
|
|
|
|
var projectUse=_iMapper.Map<ProjectUsedDTO>(curProject);
|
|
|
|
|
return projectUse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ApiResult UpdateProjectInfo(ProjectInfoDTO project)
|
|
|
|
|
{
|
|
|
|
|
project_info projectInfo = _iMapper.Map<project_info>(project);
|
|
|
|
|
var res = _Client.UpdateNav(projectInfo).Include(p => p.stationFile).ThenInclude(t => t.stations)
|
|
|
|
|
.Include(time => time.time_tab).ExecuteCommand();
|
|
|
|
|
if (res)
|
|
|
|
|
{
|
|
|
|
|
return new ApiResult();
|
|
|
|
|
}
|
|
|
|
|
return new ApiResult() { Message = "更新失败" };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ProjectInfoDTO GetProjectInfo(int id)
|
|
|
|
|
{
|
|
|
|
|
project_info projectInfo = _Client.Queryable<project_info>().Includes(x => x.stationFile, t => t.stations).Includes(ti => ti.time_tab).Where(p => p.id == id).First();
|
|
|
|
|
ProjectInfoDTO projectInfoDTO = _iMapper.Map<project_info, ProjectInfoDTO>(projectInfo);
|
|
|
|
|
|
|
|
|
|
//test
|
|
|
|
|
//if (projectInfoDTO != null)
|
|
|
|
|
//{
|
|
|
|
|
// projectInfoDTO.id = 6;
|
|
|
|
|
// projectInfoDTO.project_id = 9;
|
|
|
|
|
// projectInfoDTO.project_name = "tea";
|
|
|
|
|
// projectInfoDTO.moni_layer = 1;
|
|
|
|
|
// projectInfoDTO.moni_num = 8;
|
|
|
|
|
// var a = UpdateProjectInfo(projectInfoDTO);
|
|
|
|
|
//}
|
|
|
|
|
return projectInfoDTO;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ApiResult UpdateCurrentProjectUsed(ProjectUsedDTO projectUsed)
|
|
|
|
|
{
|
|
|
|
|
var pro=_iMapper.Map<project_used>(projectUsed);
|
|
|
|
|
var res= _Client.Updateable<project_used>(pro).ExecuteCommand();
|
|
|
|
|
if (res>0)
|
|
|
|
|
{
|
|
|
|
|
return new ApiResult();
|
|
|
|
|
}
|
|
|
|
|
return new ApiResult() { Message = "更新失败" };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ApiResult StartProject(string projectName, ProcessConfig processConfig)
|
|
|
|
|
{
|
|
|
|
|
var res = _processManager.StartProject(projectName, processConfig);
|
|
|
|
|
return res;
|
|
|
|
|
}
|
|
|
|
|
public ApiResult StopProject(string projectName)
|
|
|
|
|
{
|
|
|
|
|
var res = _processManager.StopProject(projectName);
|
|
|
|
|
return res;
|
|
|
|
|
}
|
|
|
|
|
public ApiResult GetState(string projectName, int id)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
return _processManager.GetState(projectName, id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ApiResult ExportCSV(string fileName, List<StationDTO> stations)
|
|
|
|
|
{
|
|
|
|
|
return _processManager.ExportCSV(fileName, stations);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|