using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Linq.Expressions;
|
using System.Text;
|
using Model.ModelDto.SysDto;
|
using WMS.Entity.SysEntity;
|
using WMS.IBLL.ISysServer;
|
using WMS.IDAL.ISysInterface;
|
using Model.ModelVm.SysVm;
|
|
namespace WMS.BLL.SysServer
|
{
|
public class PackagServer : IPackagServer
|
{
|
public IPackagRepository PackagRst { get; set; }
|
|
public PackagServer(IPackagRepository packagRst)
|
{
|
PackagRst = packagRst;
|
}
|
|
|
/// <summary>
|
/// 获取包装信息集合
|
/// </summary>
|
/// <param name="packagNo">包装编号</param>
|
/// <param name="packagName">包装名称</param>
|
/// <param name="level">等级</param>
|
/// <returns>包装集合</returns>
|
public List<PackagDto> GetPackagList(string packagNo, string packagName, int? level, int page, int limit, out int count)
|
{
|
try
|
{
|
Expression<Func<SysPackag, bool>> item = Expressionable.Create<SysPackag>() //创建表达式
|
.AndIF(!string.IsNullOrWhiteSpace(packagNo), it => it.PackagNo.Contains(packagNo.Trim()))
|
.AndIF(!string.IsNullOrWhiteSpace(packagName), it => it.PackagName.Contains(packagName.Trim()))
|
.AndIF(level != null, it => it.Level.Equals(level))
|
.ToExpression();//注意 这一句 不能少
|
|
var data = PackagRst.GetAllByOrderPageAsync(item, limit, page, out int counts)
|
.Includes(x => x.CreateUserInfo)
|
.Includes(x => x.UpdateUserInfo).ToList();
|
count = counts;
|
|
return data.Select(m => new PackagDto()
|
{
|
Id = m.Id,
|
IsValid = m.IsDel,
|
PackagNo = m.PackagNo,
|
PackagName = m.PackagName,
|
Level = m.Level,
|
L1 = m.L1Num == null ? "" : m.L1Num.ToString() + "/" + m.L1Name,
|
L2 = m.L2Num == null ? "" : m.L2Num.ToString() + "/" + m.L2Name,
|
L3 = m.L3Num == null ? "" : m.L3Num.ToString() + "/" + m.L3Name,
|
L4 = m.L4Num == null ? "" : m.L4Num.ToString() + "/" + m.L4Name,
|
L5 = m.L5Num == null ? "" : m.L5Num.ToString() + "/" + m.L5Name,
|
//L1Num = int.Parse(m.L1Num.ToString()),
|
//L1Name = m.L1Name,
|
//L2Num = int.Parse(m.L2Num.ToString()),
|
//L2Name = m.L2Name,
|
//L3Num = int.Parse(m.L3Num.ToString()),
|
//L3Name = m.L3Name,
|
//L4Num = int.Parse(m.L4Num.ToString()),
|
//L4Name = m.L4Name,
|
//L5Num = int.Parse(m.L5Num.ToString()),
|
//L5Name = m.L5Name,
|
CreateTime = m.CreateTime,
|
CreateUserName = m.CreateUserInfo == null ? "" : m.CreateUserInfo.RealName,
|
UpdateTime = m.UpdateTime,
|
UpdateUserName = m.UpdateUserInfo == null ? "" : m.UpdateUserInfo.RealName
|
}).ToList();
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
|
/// <summary>
|
/// 根据id获取包装信息
|
/// </summary>
|
/// <param name="id">包装id</param>
|
/// <returns></returns>
|
public SysPackag GetPackagById(int id)
|
{
|
SysPackag packag = PackagRst.GetOneById(id);
|
return packag;
|
}
|
|
/// <summary>
|
/// 添加包装信息
|
/// </summary>
|
/// <param name="model">包装信息</param>
|
/// <returns>true:成功 flase:失败</returns>
|
public int AddPackag(AddEditPackagVm model)
|
{
|
try
|
{
|
var rowCount = PackagRst.GetAllWhereAsync(m => m.PackagNo == model.PackagNo).Count();
|
if (rowCount > 0)
|
{
|
throw new Exception("包装编号已存在!");
|
}
|
|
rowCount = PackagRst.GetAllWhereAsync(m => m.PackagName == model.PackagName).Count();
|
if (rowCount > 0)
|
{
|
throw new Exception("包装名称已存在!");
|
}
|
|
SysPackag packagModel = new SysPackag();
|
packagModel.PackagNo = model.PackagNo;
|
packagModel.PackagName = model.PackagName;
|
packagModel.Level = 0;
|
|
//判断五级包装是否为空
|
if (!string.IsNullOrEmpty(model.L5Num) && !string.IsNullOrEmpty(model.L5Name))
|
{
|
packagModel.L5Num = int.Parse(model.L5Num);
|
packagModel.L5Name = model.L5Name;
|
packagModel.Level += 1;
|
//判断四级包装是否为空
|
if (string.IsNullOrEmpty(model.L4Num) && string.IsNullOrEmpty(model.L4Name))
|
{
|
return 2;
|
}
|
}
|
//判断四级包装是否为空
|
if (!string.IsNullOrEmpty(model.L4Num) && !string.IsNullOrEmpty(model.L4Name))
|
{
|
packagModel.L4Num = int.Parse(model.L4Num);
|
packagModel.L4Name = model.L4Name;
|
packagModel.Level += 1;
|
//判断三级包装是否为空
|
if (string.IsNullOrEmpty(model.L3Num) && string.IsNullOrEmpty(model.L3Name))
|
{
|
return 2;
|
}
|
}
|
//判断三级包装是否为空
|
if (!string.IsNullOrEmpty(model.L3Num) && !string.IsNullOrEmpty(model.L3Name))
|
{
|
packagModel.L3Num = int.Parse(model.L3Num);
|
packagModel.L3Name = model.L3Name;
|
packagModel.Level += 1;
|
//判断二级包装是否为空
|
if (string.IsNullOrEmpty(model.L2Num) && string.IsNullOrEmpty(model.L2Name))
|
{
|
return 2;
|
}
|
}
|
//判断二级包装是否为空
|
if (!string.IsNullOrEmpty(model.L2Num) && !string.IsNullOrEmpty(model.L2Name))
|
{
|
packagModel.L2Num = int.Parse(model.L2Num);
|
packagModel.L2Name = model.L2Name;
|
packagModel.Level += 1;
|
//判断一级包装是否为空
|
if (string.IsNullOrEmpty(model.L1Num) && string.IsNullOrEmpty(model.L1Name))
|
{
|
return 2;
|
}
|
}
|
//判断一级包装是否为空
|
if (!string.IsNullOrEmpty(model.L1Num) && !string.IsNullOrEmpty(model.L1Name))
|
{
|
packagModel.L1Num = int.Parse(model.L1Num);
|
packagModel.L1Name = model.L1Name;
|
packagModel.Level += 1;
|
}
|
else
|
{
|
return 2;
|
}
|
|
packagModel.CreateUser = (int)model.CreateUser;
|
|
int rowNum = PackagRst.Add(packagModel);
|
if (rowNum > 0)
|
{
|
return 1;
|
}
|
|
return 0;
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
|
/// <summary>
|
/// 修改包装信息
|
/// </summary>
|
/// <param name="model">包装信息</param>
|
/// <returns>true:成功 flase:失败</returns>
|
public int EditPackag(AddEditPackagVm model)
|
{
|
try
|
{
|
if (string.IsNullOrEmpty(model.PackagName))
|
{
|
var date = PackagRst.GetAllWhereAsync(m => m.Id != model.Id && (m.PackagName == model.PackagName)).Count();
|
if (date > 0)
|
{
|
throw new Exception("包装名称已存在!");
|
}
|
}
|
var packagItems = PackagRst.GetOneById(model.Id);
|
packagItems.Id = model.Id; //id
|
packagItems.PackagNo = model.PackagNo; //包装编号
|
packagItems.PackagName = model.PackagName; //包装描述
|
//packagItems.IsDel = model.IsDel; 原因: 修改时不需要修改IsDel字段
|
packagItems.UpdateTime = DateTime.Now; //修改时间
|
packagItems.UpdateUser = model.CreateUser; //修改人
|
packagItems.Level = 0;
|
|
//判断五级包装是否为空
|
if (!string.IsNullOrEmpty(model.L5Num) && !string.IsNullOrEmpty(model.L5Name))
|
{
|
packagItems.L5Num = int.Parse(model.L5Num);
|
packagItems.L5Name = model.L5Name;
|
packagItems.Level += 1;
|
//判断四级包装是否为空
|
if (string.IsNullOrEmpty(model.L4Num) && string.IsNullOrEmpty(model.L4Name))
|
{
|
return 2;
|
}
|
}
|
else
|
{
|
packagItems.L5Num = null;
|
packagItems.L5Name = null;
|
}
|
//判断四级包装是否为空
|
if (!string.IsNullOrEmpty(model.L4Num) && !string.IsNullOrEmpty(model.L4Name))
|
{
|
packagItems.L4Num = int.Parse(model.L4Num);
|
packagItems.L4Name = model.L4Name;
|
packagItems.Level += 1;
|
//判断三级包装是否为空
|
if (string.IsNullOrEmpty(model.L3Num) && string.IsNullOrEmpty(model.L3Name))
|
{
|
return 2;
|
}
|
}
|
else
|
{
|
packagItems.L4Num = null;
|
packagItems.L4Name = null;
|
}
|
//判断三级包装是否为空
|
if (!string.IsNullOrEmpty(model.L3Num) && !string.IsNullOrEmpty(model.L3Name))
|
{
|
packagItems.L3Num = int.Parse(model.L3Num);
|
packagItems.L3Name = model.L3Name;
|
packagItems.Level += 1;
|
//判断二级包装是否为空
|
if (string.IsNullOrEmpty(model.L2Num) && string.IsNullOrEmpty(model.L2Name))
|
{
|
return 2;
|
}
|
}
|
else
|
{
|
packagItems.L3Num = null;
|
packagItems.L3Name = null;
|
}
|
//判断二级包装是否为空
|
if (!string.IsNullOrEmpty(model.L2Num) && !string.IsNullOrEmpty(model.L2Name))
|
{
|
packagItems.L2Num = int.Parse(model.L2Num);
|
packagItems.L2Name = model.L2Name;
|
packagItems.Level += 1;
|
//判断一级包装是否为空
|
if (string.IsNullOrEmpty(model.L1Num) && string.IsNullOrEmpty(model.L1Name))
|
{
|
return 2;
|
}
|
}
|
else
|
{
|
packagItems.L3Num = null;
|
packagItems.L3Name = null;
|
}
|
//判断一级包装是否为空
|
if (!string.IsNullOrEmpty(model.L1Num) && !string.IsNullOrEmpty(model.L1Name))
|
{
|
packagItems.L1Num = int.Parse(model.L1Num);
|
packagItems.L1Name = model.L1Name;
|
packagItems.Level += 1;
|
}
|
else
|
{
|
packagItems.L1Num = null;
|
packagItems.L1Name = null;
|
|
return 2;
|
}
|
|
var rowCount = PackagRst.Edit(packagItems);
|
return rowCount;
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
|
/// <summary>
|
/// 删除包装信息
|
/// </summary>
|
/// <param name="packagId">包装信息主键ID</param>
|
/// <returns>true:成功 flase:失败</returns>
|
public bool DelPackag(int packagId, int userId)
|
{
|
try
|
{
|
var packagItems = PackagRst.GetOneById(packagId);
|
if (packagItems == null)
|
{
|
throw new Exception("包装信息不存在!");
|
}
|
|
packagItems.IsDel = "1";
|
packagItems.UpdateTime = DateTime.Now;
|
packagItems.UpdateUser = userId;
|
|
var rowCount = PackagRst.Edit(packagItems);
|
return rowCount > 0;
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
}
|
}
|