194 lines
6.4 KiB
C#
194 lines
6.4 KiB
C#
using Cowain.Base.DBContext;
|
|
using Cowain.Base.Models;
|
|
using Cowain.Base.Services;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Plugin.Cowain.Wcs.IServices;
|
|
using Plugin.Cowain.Wcs.Models.Dto;
|
|
using Plugin.Cowain.Wcs.ViewModels;
|
|
|
|
namespace Plugin.Cowain.Wcs.Services;
|
|
|
|
public class Rgv6180Service : BaseService, IRgv6180Service
|
|
{
|
|
public Rgv6180Service(SqlDbContext dbContext) : base(dbContext)
|
|
{
|
|
}
|
|
|
|
|
|
public async Task<ResultModel> AddRgvAsync(Rgv6180ViewModel? rgv)
|
|
{
|
|
if (rgv == null)
|
|
{
|
|
return ResultModel.Error("Rgv不能为空");
|
|
}
|
|
if (string.IsNullOrWhiteSpace(rgv.StationName))
|
|
{
|
|
return ResultModel.Error("Rgv名称不能为空");
|
|
}
|
|
if (string.IsNullOrWhiteSpace(rgv.StationCode))
|
|
{
|
|
return ResultModel.Error("Rgv编码不能为空");
|
|
}
|
|
var dbSet = _dBContext.GetDbSet<Rgv6180Dto>();
|
|
// 检查Name是否重复
|
|
var nameExists = await dbSet.AnyAsync(x => x.StationName == rgv.StationName);
|
|
if (nameExists)
|
|
{
|
|
return ResultModel.Error("Rgv名称已存在");
|
|
}
|
|
// 检查Code是否重复
|
|
var codeExists = await dbSet.AnyAsync(x => x.StationCode == rgv.StationCode);
|
|
if (codeExists)
|
|
{
|
|
return ResultModel.Error("Rgv编码已存在");
|
|
}
|
|
var entity = new Rgv6180Dto
|
|
{
|
|
StationName = rgv.StationName,
|
|
StationCode = rgv.StationCode,
|
|
Json = rgv.Json,
|
|
LayOutX = rgv.LayOutX,
|
|
LayOutY = rgv.LayOutY,
|
|
FromStationId1 = rgv.FromStationId1,
|
|
ToStationId1 = rgv.ToStationId1,
|
|
FromStationId2 = rgv.FromStationId2,
|
|
ToStationId2 = rgv.ToStationId2,
|
|
QrCode1 = rgv.QrCode1,
|
|
QrCode2 = rgv.QrCode2,
|
|
ProcessName = rgv.ProcessName,
|
|
};
|
|
await dbSet.AddAsync(entity);
|
|
await _dBContext.SaveChangesAsync();
|
|
return ResultModel.Success();
|
|
}
|
|
|
|
public async Task<ResultModel> DeleteAsync(int id)
|
|
{
|
|
if (id <= 0)
|
|
{
|
|
return ResultModel.Error("id不能小于0");
|
|
}
|
|
var DbSet = _dBContext.GetDbSet<Rgv6180Dto>();
|
|
var existingModel = await DbSet.FirstOrDefaultAsync(x => x.Id == id);
|
|
if (existingModel == null)
|
|
{
|
|
return ResultModel.Error("id不存在");
|
|
}
|
|
DbSet.Remove(existingModel);
|
|
int count = await _dBContext.SaveChangesAsync();
|
|
return count > 0 ? ResultModel.Success("rgv删除成功") : ResultModel.Error("rgv删除失败");
|
|
}
|
|
|
|
public async Task<ResultModel> UpdateAsync(Rgv6180ViewModel? rgv)
|
|
{
|
|
if (rgv == null)
|
|
{
|
|
return ResultModel.Error("rgv不能为空");
|
|
}
|
|
if (rgv.Id <= 0)
|
|
{
|
|
return ResultModel.Error("ID不能小于0");
|
|
}
|
|
if (string.IsNullOrWhiteSpace(rgv.StationName))
|
|
{
|
|
return ResultModel.Error("名称不能为空");
|
|
}
|
|
if (string.IsNullOrWhiteSpace(rgv.StationCode))
|
|
{
|
|
return ResultModel.Error("编码不能为空");
|
|
}
|
|
var DbSet = _dBContext.GetDbSet<Rgv6180Dto>();
|
|
var existingModel = await DbSet.FirstOrDefaultAsync(x => x.Id == rgv.Id);
|
|
if (existingModel == null)
|
|
{
|
|
return ResultModel.Error("id不存在");
|
|
}
|
|
|
|
// 检查是否有同名工站(排除自己)
|
|
var nameExists = await DbSet.AnyAsync(x => x.StationName == rgv.StationName && x.Id != rgv.Id);
|
|
if (nameExists)
|
|
{
|
|
return ResultModel.Error("名称已存在");
|
|
}
|
|
// 检查是否有同编码工站(排除自己)
|
|
var codeExists = await DbSet.AnyAsync(x => x.StationCode == rgv.StationCode && x.Id != rgv.Id);
|
|
if (codeExists)
|
|
{
|
|
return ResultModel.Error("编码已存在");
|
|
}
|
|
|
|
// 更新字段
|
|
existingModel.StationName = rgv.StationName;
|
|
existingModel.StationCode = rgv.StationCode;
|
|
existingModel.Json = rgv.Json;
|
|
existingModel.LayOutX = rgv.LayOutX;
|
|
existingModel.LayOutY = rgv.LayOutY;
|
|
existingModel.FromStationId1 = rgv.FromStationId1;
|
|
existingModel.ToStationId1 = rgv.ToStationId1;
|
|
existingModel.FromStationId2 = rgv.FromStationId2;
|
|
existingModel.ToStationId2 = rgv.ToStationId2;
|
|
existingModel.QrCode1 = rgv.QrCode1;
|
|
existingModel.QrCode2 = rgv.QrCode2;
|
|
existingModel.ProcessName = rgv.ProcessName;
|
|
var count = await _dBContext.SaveChangesAsync();
|
|
return count > 0 ? ResultModel.Success("rgv更新成功") : ResultModel.Error("rgv更新失败");
|
|
}
|
|
|
|
public async Task<List<Rgv6180ViewModel>> GetAllAsync()
|
|
{
|
|
var DbSet = _dBContext.GetDbSet<Rgv6180Dto>();
|
|
var data = await DbSet.ToListAsync();
|
|
return new List<Rgv6180ViewModel>(data.Select(x => new Rgv6180ViewModel
|
|
{
|
|
Id = x.Id,
|
|
StationCode = x.StationCode,
|
|
Json = x.Json,
|
|
StationName = x.StationName,
|
|
LayOutX = x.LayOutX,
|
|
LayOutY = x.LayOutY,
|
|
FromStationId1 = x.FromStationId1,
|
|
ToStationId1 = x.ToStationId1,
|
|
FromStationId2 = x.FromStationId2,
|
|
ToStationId2 = x.ToStationId2,
|
|
QrCode1 = x.QrCode1,
|
|
QrCode2 = x.QrCode2,
|
|
ProcessName = x.ProcessName,
|
|
}));
|
|
}
|
|
|
|
public async Task<(List<Rgv6180ViewModel>, int totals)> GetAllAsync(int pageIndex, int pageSize)
|
|
{
|
|
|
|
var dbSet = _dBContext.GetDbSet<Rgv6180Dto>();
|
|
var query = dbSet.AsQueryable();
|
|
|
|
int totals = await query.CountAsync();
|
|
var data = await query
|
|
.OrderBy(x => x.Id)
|
|
.Skip((pageIndex - 1) * pageSize)
|
|
.Take(pageSize)
|
|
.ToListAsync();
|
|
|
|
var list = data.Select(x => new Rgv6180ViewModel
|
|
{
|
|
Id = x.Id,
|
|
StationCode = x.StationCode,
|
|
Json = x.Json,
|
|
StationName = x.StationName,
|
|
LayOutX = x.LayOutX,
|
|
LayOutY = x.LayOutY,
|
|
FromStationId1 = x.FromStationId1,
|
|
ToStationId1 = x.ToStationId1,
|
|
FromStationId2 = x.FromStationId2,
|
|
ToStationId2 = x.ToStationId2,
|
|
QrCode1 = x.QrCode1,
|
|
QrCode2 = x.QrCode2,
|
|
ProcessName = x.ProcessName,
|
|
}).ToList();
|
|
|
|
return (list, totals);
|
|
}
|
|
|
|
|
|
}
|