You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
435 lines
17 KiB
435 lines
17 KiB
2 years ago
|
using Elight.Entity;
|
||
|
using Elight.Logic;
|
||
|
using Elight.Utility;
|
||
|
using Elight.Utility.Code;
|
||
|
using Elight.Utility.Extensions;
|
||
|
using Elight.Utility.logs;
|
||
|
using java.util;
|
||
|
using Microsoft.AspNetCore.Authorization;
|
||
|
using Microsoft.AspNetCore.Mvc;
|
||
|
using SqlSugar;
|
||
|
|
||
|
namespace _24Hour.Controllers.Common
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// 云柜详情服务
|
||
|
/// </summary>
|
||
|
[HiddenApi]
|
||
|
[Authorize]
|
||
|
[ApiController]
|
||
|
[Route("api/Hearing")]
|
||
|
public class CloudCabinetController : Controller
|
||
|
{
|
||
|
#region Identity
|
||
|
private readonly SqlSugarClient _db;//数据库
|
||
|
private readonly WriteSysLog _logs;//操作日志
|
||
|
App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户
|
||
|
private readonly ILogger<LoginController> _logger;//日志
|
||
|
Result result = new Result();
|
||
|
public CloudCabinetController(ILogger<LoginController> logger, SqlSugarClient db, WriteSysLog logs, User user)
|
||
|
{
|
||
|
_logger = logger;
|
||
|
_db = db;
|
||
|
_logs = logs;
|
||
|
_userdata = user.Userdata();
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region 云柜增删改查
|
||
|
/// <summary>
|
||
|
/// 云柜分页查询
|
||
|
/// </summary>
|
||
|
/// <param name="info"></param>
|
||
|
/// <returns></returns>
|
||
|
[HttpPost]
|
||
|
[Route("Querycabinet")]
|
||
|
public async Task<Result> Querycabinet(App_CloudCabinetInput cabinetdata)
|
||
|
{
|
||
|
//查询云柜详情
|
||
|
var list = await _db.Queryable<App_CloudCabinetModel>()
|
||
|
.WhereIF(cabinetdata.cabinetnumber != null, q => q.cabinetnumber.Contains(cabinetdata.cabinetnumber))
|
||
|
.WhereIF(cabinetdata.cabinetposition != null, q => q.cabinetposition.Contains(cabinetdata.cabinetposition))
|
||
|
.WhereIF(cabinetdata.unitId != null, q => q.unitId.Contains(cabinetdata.unitId))
|
||
|
.WhereIF(cabinetdata.state != null, q => q.state == cabinetdata.state)
|
||
|
.WhereIF(cabinetdata.StartTime != null && cabinetdata.EndTime != null, q => q.creationtime >= cabinetdata.StartTime && q.creationtime < cabinetdata.EndTime.Value.AddDays(1))
|
||
|
.Where(q => q.IsDeleted == 0).ToPageListAsync(cabinetdata.PageIndex, cabinetdata.PageSize);
|
||
|
var data = new QueryResult<App_CloudCabinetModel>(cabinetdata, list.OrderByDescending(q => q.creationtime).ToList());
|
||
|
result.IsSucceed = true;
|
||
|
result.result = data;
|
||
|
return result;
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// 添加云柜
|
||
|
/// </summary>
|
||
|
/// <param name="info"></param>
|
||
|
/// <returns></returns>
|
||
|
[HttpPost]
|
||
|
[Route("Addcabinet")]
|
||
|
public async Task<Result> Addcabinet(App_CloudCabinetModel cabinetdata)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
_db.BeginTran();
|
||
|
cabinetdata.Id = Guid.NewGuid().ToString();
|
||
|
cabinetdata.createuserId = _userdata.Id.ToString();
|
||
|
cabinetdata.createusername = _userdata.name;
|
||
|
var num = await _db.Insertable(cabinetdata).ExecuteCommandAsync();
|
||
|
_db.CommitTran();
|
||
|
if (num > 0)
|
||
|
{
|
||
|
result.IsSucceed = true;
|
||
|
result.result = "添加成功";
|
||
|
}
|
||
|
}
|
||
|
catch (System.Exception ex)
|
||
|
{
|
||
|
_db.RollbackTran();
|
||
|
result.IsSucceed = false;
|
||
|
result.Message = ex.Message;
|
||
|
LogService.WriteLog(ex, "添加云柜");
|
||
|
}
|
||
|
_logs.WriteSysLogadd("云柜管理", "添加云柜", result, _db);
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 修改云柜
|
||
|
/// </summary>
|
||
|
/// <param name="info"></param>
|
||
|
/// <returns></returns>
|
||
|
[HttpPost]
|
||
|
[Route("Updatecabinet")]
|
||
|
public async Task<Result> Updatecabinet(App_CloudCabinetModel cabinetdata)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
_db.BeginTran();
|
||
|
var num = await _db.Updateable(cabinetdata).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
|
||
|
_db.CommitTran();
|
||
|
if (num > 0)
|
||
|
{
|
||
|
result.IsSucceed = true;
|
||
|
result.result = "修改成功";
|
||
|
}
|
||
|
}
|
||
|
catch (System.Exception ex)
|
||
|
{
|
||
|
_db.RollbackTran();
|
||
|
result.IsSucceed = false;
|
||
|
result.Message = ex.Message;
|
||
|
LogService.WriteLog(ex, "修改云柜");
|
||
|
}
|
||
|
_logs.WriteSysLogadd("云柜管理", "修改云柜", result, _db);
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 删除云柜
|
||
|
/// </summary>
|
||
|
/// <param name="info"></param>
|
||
|
/// <returns></returns>
|
||
|
[HttpPost]
|
||
|
[Route("Deletecabinet")]
|
||
|
public async Task<Result> Deletecabinet(CurrencyDelete Currency)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var CloudCabinetlist = await _db.Queryable<App_cabinetDetailsModel>().Where(q => Currency.id.Contains(q.cabinetId)).ToListAsync();
|
||
|
if (CloudCabinetlist.Any())
|
||
|
{
|
||
|
result.IsSucceed = false;
|
||
|
result.result = "已有存取信息,无法删除!";
|
||
|
return result;
|
||
|
}
|
||
|
var Deletelist = await _db.Queryable<App_CloudCabinetModel>().In(q => q.Id, Currency.id).ToListAsync();
|
||
|
_db.BeginTran();
|
||
|
Deletelist.ForEach(q =>
|
||
|
{
|
||
|
q.IsDeleted = 1;
|
||
|
});
|
||
|
var num = await _db.Updateable(Deletelist).ExecuteCommandAsync();
|
||
|
_db.CommitTran();
|
||
|
if (num > 0)
|
||
|
{
|
||
|
result.IsSucceed = true;
|
||
|
result.result = "删除成功";
|
||
|
}
|
||
|
}
|
||
|
catch (System.Exception ex)
|
||
|
{
|
||
|
_db.RollbackTran();
|
||
|
result.IsSucceed = false;
|
||
|
result.Message = ex.Message;
|
||
|
LogService.WriteLog(ex, "删除云柜");
|
||
|
}
|
||
|
_logs.WriteSysLogadd("云柜管理", "删除云柜", result, _db);
|
||
|
return result;
|
||
|
}
|
||
|
#endregion
|
||
|
|
||
|
#region 云柜状态修改
|
||
|
/// <summary>
|
||
|
/// 修改云柜维护中状态为空闲
|
||
|
/// </summary>
|
||
|
/// <param name="Id">云柜Id</param>
|
||
|
/// <param name="state">状态</param>
|
||
|
/// <returns></returns>
|
||
|
[HttpGet]
|
||
|
[Route("UpdateCabinestate")]
|
||
|
public async Task<Result> UpdateCabinestate(string? Id, int state)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var Cabinetbol = await _db.Queryable<App_CloudCabinetModel>().Where(q => q.Id == Id).ToListAsync();
|
||
|
if (Cabinetbol.Count() > 0)
|
||
|
{
|
||
|
Cabinetbol.FirstOrDefault().state = state;
|
||
|
_db.BeginTran();
|
||
|
var num = await _db.Updateable(Cabinetbol.FirstOrDefault()).UpdateColumns(it => new { it.state}).ExecuteCommandAsync();
|
||
|
_db.CommitTran();
|
||
|
if (num > 0)
|
||
|
{
|
||
|
result.IsSucceed = true;
|
||
|
result.result = "同意";
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
result.IsSucceed = false;
|
||
|
result.result = "未找到云柜信息";
|
||
|
}
|
||
|
}
|
||
|
catch (System.Exception ex)
|
||
|
{
|
||
|
_db.RollbackTran();
|
||
|
result.IsSucceed = false;
|
||
|
result.Message = ex.Message;
|
||
|
LogService.WriteLog(ex, "修改云柜状态");
|
||
|
}
|
||
|
_logs.WriteSysLogadd("云柜管理", "修改云柜状态", result, _db);
|
||
|
return result;
|
||
|
}
|
||
|
#endregion
|
||
|
|
||
|
#region 云柜详情增删改查
|
||
|
/// <summary>
|
||
|
/// 云柜详情分页查询--存放时间
|
||
|
/// </summary>
|
||
|
/// <param name="info"></param>
|
||
|
/// <returns></returns>
|
||
|
[HttpPost]
|
||
|
[Route("Querycabinetdetails")]
|
||
|
public async Task<Result> Querycabinetdetails(App_cabinetDetailsInput cabinetdata)
|
||
|
{
|
||
|
//查询云柜详情
|
||
|
var list = await _db.Queryable<App_cabinetDetailsModel>()
|
||
|
.WhereIF(cabinetdata.name != null, q => q.name.Contains(cabinetdata.name))
|
||
|
.WhereIF(cabinetdata.deposituser != null, q => q.deposituser.Contains(cabinetdata.deposituser))
|
||
|
.WhereIF(cabinetdata.takeoutuser != null, q => q.takeoutuser.Contains(cabinetdata.takeoutuser))
|
||
|
.WhereIF(cabinetdata.takeoutcardId != null, q => q.takeoutuser.Contains(cabinetdata.takeoutcardId))
|
||
|
.WhereIF(cabinetdata.unitId != null, q => q.unitId.Contains(cabinetdata.unitId))
|
||
|
.WhereIF(cabinetdata.state != null, q => q.state == cabinetdata.state)
|
||
|
.WhereIF(cabinetdata.StartTime != null && cabinetdata.EndTime != null, q => q.deposittime >= cabinetdata.StartTime && q.deposittime < cabinetdata.EndTime.Value.AddDays(1))
|
||
|
.Where(q => q.IsDeleted == 0).ToPageListAsync(cabinetdata.PageIndex, cabinetdata.PageSize);
|
||
|
var data = new QueryResult<App_cabinetDetailsModel>(cabinetdata, list.OrderByDescending(q => q.creationtime).ToList());
|
||
|
result.IsSucceed = true;
|
||
|
result.result = data;
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 云柜详情分页查询--取出时间
|
||
|
/// </summary>
|
||
|
/// <param name="info"></param>
|
||
|
/// <returns></returns>
|
||
|
[HttpPost]
|
||
|
[Route("Querycabinetdetailsout")]
|
||
|
public async Task<Result> Querycabinetdetailsout(App_cabinetDetailsInput cabinetdata)
|
||
|
{
|
||
|
//查询云柜详情
|
||
|
var list = await _db.Queryable<App_cabinetDetailsModel>()
|
||
|
.WhereIF(cabinetdata.name != null, q => q.name.Contains(cabinetdata.name))
|
||
|
.WhereIF(cabinetdata.deposituser != null, q => q.deposituser.Contains(cabinetdata.deposituser))
|
||
|
.WhereIF(cabinetdata.takeoutuser != null, q => q.takeoutuser.Contains(cabinetdata.takeoutuser))
|
||
|
.WhereIF(cabinetdata.takeoutcardId != null, q => q.takeoutuser.Contains(cabinetdata.takeoutcardId))
|
||
|
.WhereIF(cabinetdata.unitId != null, q => q.unitId.Contains(cabinetdata.unitId))
|
||
|
.WhereIF(cabinetdata.state != null, q => q.state == cabinetdata.state)
|
||
|
.WhereIF(cabinetdata.takeouttime != null && cabinetdata.EndTime != null, q => q.takeouttime >= cabinetdata.StartTime && q.deposittime < cabinetdata.EndTime.Value.AddDays(1))
|
||
|
.Where(q => q.IsDeleted == 0).ToPageListAsync(cabinetdata.PageIndex, cabinetdata.PageSize);
|
||
|
var data = new QueryResult<App_cabinetDetailsModel>(cabinetdata, list.OrderByDescending(q => q.creationtime).ToList());
|
||
|
result.IsSucceed = true;
|
||
|
result.result = data;
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 添加云柜详情
|
||
|
/// </summary>
|
||
|
/// <param name="info"></param>
|
||
|
/// <returns></returns>
|
||
|
[HttpPost]
|
||
|
[Route("Addcabinetdetails")]
|
||
|
public async Task<Result> Addcabinetdetails(App_cabinetDetailsModel cabinetdata)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
cabinetdata.Id = Guid.NewGuid().ToString();
|
||
|
cabinetdata.createuserId = _userdata.Id.ToString();
|
||
|
cabinetdata.createusername = _userdata.name;
|
||
|
#region 添加云柜存放修改云柜状态
|
||
|
var CloudCabinetlist = await _db.Queryable<App_CloudCabinetModel>().Where(q => q.Id == cabinetdata.cabinetId).ToListAsync();
|
||
|
CloudCabinetlist.ForEach(q =>
|
||
|
{
|
||
|
q.state = 1;
|
||
|
});
|
||
|
#endregion
|
||
|
_db.BeginTran();
|
||
|
//修改云柜状态
|
||
|
if(CloudCabinetlist.Any())
|
||
|
await _db.Updateable(CloudCabinetlist.FirstOrDefault()).UpdateColumns(it => new { it.state }).ExecuteCommandAsync();
|
||
|
//添加云柜存放
|
||
|
var num = await _db.Insertable(cabinetdata).ExecuteCommandAsync();
|
||
|
_db.CommitTran();
|
||
|
if (num > 0)
|
||
|
{
|
||
|
result.IsSucceed = true;
|
||
|
result.result = "添加成功";
|
||
|
}
|
||
|
}
|
||
|
catch (System.Exception ex)
|
||
|
{
|
||
|
_db.RollbackTran();
|
||
|
result.IsSucceed = false;
|
||
|
result.Message = ex.Message;
|
||
|
LogService.WriteLog(ex, "添加云柜详情");
|
||
|
}
|
||
|
_logs.WriteSysLogadd("云柜详情", "添加云柜详情", result, _db);
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 修改云柜详情
|
||
|
/// </summary>
|
||
|
/// <param name="info"></param>
|
||
|
/// <returns></returns>
|
||
|
[HttpPost]
|
||
|
[Route("Updatecabinetdetails")]
|
||
|
public async Task<Result> Updatecabinetdetails(App_cabinetDetailsModel cabinetdata)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
_db.BeginTran();
|
||
|
var num = await _db.Updateable(cabinetdata).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
|
||
|
_db.CommitTran();
|
||
|
if (num > 0)
|
||
|
{
|
||
|
result.IsSucceed = true;
|
||
|
result.result = "修改成功";
|
||
|
}
|
||
|
}
|
||
|
catch (System.Exception ex)
|
||
|
{
|
||
|
_db.RollbackTran();
|
||
|
result.IsSucceed = false;
|
||
|
result.Message = ex.Message;
|
||
|
LogService.WriteLog(ex, "修改云柜详情");
|
||
|
}
|
||
|
_logs.WriteSysLogadd("云柜详情", "修改云柜详情", result, _db);
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 删除云柜详情
|
||
|
/// </summary>
|
||
|
/// <param name="info"></param>
|
||
|
/// <returns></returns>
|
||
|
[HttpPost]
|
||
|
[Route("Deletecabinetdetails")]
|
||
|
public async Task<Result> Deletecabinetdetails(CurrencyDelete Currency)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var Deletelist = await _db.Queryable<App_cabinetDetailsModel>().In(q => q.Id, Currency.id).ToListAsync();
|
||
|
Deletelist.ForEach(q =>
|
||
|
{
|
||
|
q.IsDeleted = 1;
|
||
|
});
|
||
|
_db.BeginTran();
|
||
|
var num = await _db.Updateable(Deletelist).ExecuteCommandAsync();
|
||
|
_db.CommitTran();
|
||
|
if (num > 0)
|
||
|
{
|
||
|
result.IsSucceed = true;
|
||
|
result.result = "删除成功";
|
||
|
}
|
||
|
}
|
||
|
catch (System.Exception ex)
|
||
|
{
|
||
|
_db.RollbackTran();
|
||
|
result.IsSucceed = false;
|
||
|
result.Message = ex.Message;
|
||
|
LogService.WriteLog(ex, "删除云柜详情");
|
||
|
}
|
||
|
_logs.WriteSysLogadd("云柜详情", "删除云柜详情", result, _db);
|
||
|
return result;
|
||
|
}
|
||
|
#endregion
|
||
|
|
||
|
#region 云柜详情状态修改
|
||
|
|
||
|
/// <summary>
|
||
|
/// 修改云柜详情取出状态为已取出,并云柜为空闲
|
||
|
/// </summary>
|
||
|
/// <param name="Id">云柜Id</param>
|
||
|
/// <param name="state">状态</param>
|
||
|
/// <returns></returns>
|
||
|
[HttpGet]
|
||
|
[Route("Updatedetailstate")]
|
||
|
public async Task<Result> Updatedetailstate(string? Id)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var Cabinetbol = await _db.Queryable<App_cabinetDetailsModel>().Where(q => q.Id == Id).ToListAsync();
|
||
|
if (Cabinetbol.Count() > 0)
|
||
|
{
|
||
|
Cabinetbol.FirstOrDefault().state = 1;
|
||
|
|
||
|
var CloudCabinetlist = await _db.Queryable<App_CloudCabinetModel>().Where(q => q.Id == Cabinetbol.FirstOrDefault().cabinetId).ToListAsync();
|
||
|
CloudCabinetlist.ForEach(q =>
|
||
|
{
|
||
|
q.state = 1;
|
||
|
});
|
||
|
_db.BeginTran();
|
||
|
//修改云柜状态
|
||
|
if (CloudCabinetlist.Any())
|
||
|
await _db.Updateable(CloudCabinetlist.FirstOrDefault()).UpdateColumns(it => new { it.state }).ExecuteCommandAsync();
|
||
|
//修改云柜详情状态
|
||
|
var num = await _db.Updateable(Cabinetbol.FirstOrDefault()).UpdateColumns(it => new { it.state }).ExecuteCommandAsync();
|
||
|
_db.CommitTran();
|
||
|
if (num > 0)
|
||
|
{
|
||
|
result.IsSucceed = true;
|
||
|
result.result = "同意";
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
result.IsSucceed = false;
|
||
|
result.result = "未找到云柜存放信息";
|
||
|
}
|
||
|
}
|
||
|
catch (System.Exception ex)
|
||
|
{
|
||
|
_db.RollbackTran();
|
||
|
result.IsSucceed = false;
|
||
|
result.Message = ex.Message;
|
||
|
LogService.WriteLog(ex, "修改云柜存放状态");
|
||
|
}
|
||
|
_logs.WriteSysLogadd("云柜详情管理", "修改云柜存放状态", result, _db);
|
||
|
return result;
|
||
|
}
|
||
|
#endregion
|
||
|
}
|
||
|
}
|