using Model.ModelDto;
using Model.ModelDto.SysDto;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using WMS.DAL;
using WMS.Entity.BllSoEntity;
using WMS.Entity.Context;
using WMS.Entity.SysEntity;
using WMS.IBLL.ISysServer;
namespace WMS.BLL.SysServer
{
///
/// 物料类别管理方法
///
public class MaterialCategory : DbHelper, IMaterialCategory
{
private static readonly SqlSugarScope Db = DataContext.Db;
public MaterialCategory() : base(Db)
{
}
///
/// 获取物料类别信息
///
/// 类别名称
/// 区域编码
///
///
public List GetMaterialCategories(string categoryName, string areaNo)
{
try
{
var list = Db.Queryable()
.WhereIF(!string.IsNullOrWhiteSpace(categoryName), a => a.CategoryName == categoryName)
.WhereIF(!string.IsNullOrWhiteSpace(areaNo), a => a.AreaNo == areaNo)
.Where(a => a.IsDel == "0").ToList();
return list;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
///
/// 新增类别信息
///
/// 物料类别实体
///
///
public string InsertMaterialCategories(SysMaterialCategory category)
{
try
{
string msg = "";
//获取类别信息
var categoryInfo = Db.Queryable().First(a => a.IsDel == "0" && a.CategoryNo == category.CategoryNo);
//获取区域信息
var area = Db.Queryable().First(a => a.AreaNo == category.AreaNo && a.IsDel == "0");
if (categoryInfo != null)
{
msg = "当前类别信息已被创建,请重新填写信息!";
return msg;
}
if (area == null)
{
msg = "当前选择区域信息异常,请重新选择或联系管理员!";
return msg;
}
Db.BeginTran();
SysMaterialCategory list = new SysMaterialCategory()
{
CategoryNo = category.CategoryNo, //类别号
CategoryName = category.CategoryName, //类别名称
AreaNo = category.AreaNo, //区域编码
WareHouseNo = area.WareHouseNo, //所属仓库
Demo = category.Demo, //备注
IsDel = "0", //是否删除
CreateUser = category.CreateUser, //创建人
CreateTime = Db.GetDate(), //创建时间
};
Db.Insertable(list).ExecuteCommand();
Db.CommitTran();
msg = "新增类别信息成功!";
return msg;
}
catch (Exception ex)
{
Db.RollbackTran();
throw new Exception(ex.Message);
}
}
///
/// 编辑类别信息
///
/// 物料类别实体
///
///
public string ExitMaterialCategories(SysMaterialCategory category)
{
try
{
string msg = "";
//获取类别信息
var categoryInfo = Db.Queryable().First(a => a.IsDel == "0" && a.CategoryNo == category.CategoryNo);
//获取区域信息
var area = Db.Queryable().First(a => a.AreaNo == category.AreaNo && a.IsDel == "0");
if (categoryInfo != null)
{
msg = "当前类别信息已被创建,请重新填写信息!";
return msg;
}
if (area == null)
{
msg = "当前选择区域信息异常,请重新选择或联系管理员!";
return msg;
}
Db.BeginTran();
categoryInfo = new SysMaterialCategory()
{
CategoryNo = category.CategoryNo, //类别号
CategoryName = category.CategoryName, //类别名称
AreaNo = category.AreaNo, //区域编码
WareHouseNo = area.WareHouseNo, //所属仓库
Demo = category.Demo, //备注
IsDel = "0", //是否删除
UpdateUser = category.CreateUser, //更改人
UpdateTime = Db.GetDate(), //更改时间
};
Db.Updateable(categoryInfo).ExecuteCommand();
Db.CommitTran();
msg = "编辑类别信息成功!";
return msg;
}
catch (Exception ex)
{
Db.RollbackTran();
throw new Exception(ex.Message);
}
}
///
/// 删除类别信息
///
/// 物料类别实体
///
///
public string DeleteMaterialCategories(SysMaterialCategory category)
{
try
{
string msg = "";
//获取类别信息
var categoryInfo = Db.Queryable().First(a => a.IsDel == "0" && a.CategoryNo == category.CategoryNo);
//获取区域信息
var area = Db.Queryable().First(a => a.AreaNo == category.AreaNo && a.IsDel == "0");
if (categoryInfo != null)
{
msg = "当前类别信息已被删除,请重新选择!";
return msg;
}
if (area == null)
{
msg = "当前选择区域信息异常,请重新选择或联系管理员!";
return msg;
}
Db.BeginTran();
categoryInfo.IsDel = "1";
Db.Updateable(categoryInfo).ExecuteCommand();
Db.CommitTran();
msg = "删除类别信息成功!";
return msg;
}
catch (Exception ex)
{
Db.RollbackTran();
throw new Exception(ex.Message);
}
}
}
}