using System; using System.Collections.Generic; using WMS.Info; using WMS.Util; namespace WMS.Core { public class BaseMatItem { /// /// 获取列表数据 /// /// public IEnumerable GetList(string keyword) { try { return SysDbCore.GetDbCtx().Queryable().Where(it => it.F_ISDELETE == 0).WhereIF(!keyword.IsEmpty(), it => it.F_NO.Contains(keyword) || it.F_NAME.Contains(keyword)).ToList(); } catch (Exception ex) { throw ex; } } /// /// 获取分页数据 /// /// public IEnumerable GetPageList(string keyword, Pagination pagination) { try { int count = 0; var db = SysDbCore.GetDbCtx().Queryable().Where(it => it.F_ISDELETE == 0).WhereIF(!keyword.IsEmpty(), it => it.F_NO.Contains(keyword) || it.F_NAME.Contains(keyword)); List list = null; if (pagination.sord.ToUpper() == "ASC") { list = db.OrderBy(pagination.sidx).ToPageList(pagination.page, pagination.rows, ref count); } else { string orderstr = pagination.sidx + " desc"; list = db.OrderBy(orderstr).ToPageList(pagination.page, pagination.rows, ref count); } pagination.records = count; return list; } catch (Exception ex) { throw ex; } } /// /// 获取列表数据 /// /// public IEnumerable GetUnitList(string OrderNo) { try { return SysDbCore.GetDbCtx().Queryable().Where(it => it.F_MATNO == OrderNo).ToList(); } catch (Exception ex) { throw ex; } } /// /// 获取单据数据 /// /// public IEnumerable GetUnit(Pagination pagination, string OrderNo) { try { int count = 0; var db = SysDbCore.GetDbCtx().Queryable().Where(it => it.F_MATNO == OrderNo); List list = null; //if (pagination.sidx == "F_LQTY") //{ // list = db.ToList(); //} if (pagination.sord.ToUpper() == "ASC") { list = db.OrderBy(pagination.sidx).ToPageList(pagination.page, pagination.rows, ref count); } else { string orderstr = pagination.sidx + " DESC"; list = db.OrderBy(orderstr).ToPageList(pagination.page, pagination.rows, ref count); } pagination.records = count; return list; } catch (Exception ex) { throw ex; } } /// /// 获取实体数据 /// 主键 /// /// public BASE_MATITEM GetEntity(string keyValue) { try { return SysDbCore.GetDbCtx().Queryable().Where(it => it.F_ISDELETE == 0 && it.F_NO == keyValue).First(); } catch (Exception ex) { throw ex; } } /// /// 删除实体数据 /// 主键 /// /// public void DeleteEntity(string keyValue) { try { //SysDbCore.GetDbCtx().Deleteable().Where(it => it.F_NO == keyValue).ExecuteCommand(); SysDbCore.GetDbCtx().Updateable().UpdateColumns(it => new BASE_MATITEM { F_ISDELETE = 1 }).Where(it => it.F_NO == keyValue).ExecuteCommand(); } catch (Exception ex) { throw ex; } } /// /// 保存实体数据(新增、修改) /// 主键 /// /// public void SaveEntity(LoginUserInfo loginUserInfo, string keyValue, BASE_MATITEM entity) { try { if (entity == null) { throw SysExCore.ThrowFailException("输入数据为空。"); } if (string.IsNullOrWhiteSpace(entity.F_NO)) { throw SysExCore.ThrowFailException("编码为空。"); } if (string.IsNullOrWhiteSpace(entity.F_NAME)) { throw SysExCore.ThrowFailException("名称为空。"); } entity.F_EDITTIME = DateTime.Now; entity.F_EDITUSERNO = loginUserInfo.UserNo; if (string.IsNullOrEmpty(keyValue)) { var item = SysDbCore.GetDbCtx().Queryable().First(v => v.F_NO == entity.F_NO); if (item != null) { throw SysExCore.ThrowFailException("物料编号不能重复。"); } entity.F_DEFINE04 = "EA"; // 最小包装单位 entity.F_BASEUNITNO = "EA"; var UnitChange = SysDbCore.GetDbCtx().Queryable().First(v=>v.F_MATNO== entity.F_NO && v.F_CONVUNIT== entity.F_DEFINE04); if (UnitChange == null) { UnitChange = new BASE_MATCONVUNIT(); UnitChange.F_NO = Guid.NewGuid().ToString(); UnitChange.F_MATNO = entity.F_NO; UnitChange.F_CONVUNIT = entity.F_DEFINE04; UnitChange.F_CONVERSION = 1; UnitChange.F_BASEUNIT = entity.F_BASEUNITNO; SysDbCore.GetDbCtx().Insertable(UnitChange).ExecuteCommand(); } entity.F_FACTOR = UnitChange.F_CONVERSION; entity.F_ADDTIME = DateTime.Now; entity.F_ADDUSERNO = loginUserInfo.UserNo; entity.F_ISDELETE = 0; //entity.F_ISSTOP = 0; SysDbCore.GetDbCtx().Insertable(entity).ExecuteCommand(); } else { var UnitChange = SysDbCore.GetDbCtx().Queryable().First(v => v.F_MATNO == entity.F_NO && v.F_CONVUNIT == entity.F_DEFINE04); entity.F_FACTOR = UnitChange.F_CONVERSION; SysDbCore.GetDbCtx().Updateable(entity).IgnoreColumns(it => new { it.F_ADDTIME, it.F_ADDUSERNO ,it.F_QCTYPECODE,it.F_QCQTY,it.F_QCADDR,it.F_DEFINE03 }).Where(it => it.F_NO == keyValue).ExecuteCommand(); } } catch (Exception ex) { throw ex; } } public Dictionary GetMap() { try { Dictionary dics = new Dictionary(); SysDbCore.GetDbCtx().Queryable().ToList().ForEach(it => dics.Add(it.F_NO, it)); return dics; } catch (Exception ex) { throw ex; } } /// /// 获取树形数据 /// /// 父级id /// public List GetTree(string parentId) { try { var baseMatGrpList = new BaseMatGrp().GetList(string.Empty); List treeList = new List(); string guidid = Guid.NewGuid().ToString(); treeList.Add(new TreeModel() { id = guidid, text = "所有物料组", value = guidid, showcheck = false, checkstate = 0, isexpand = true, parentId = "0" }); foreach (var item in baseMatGrpList) { TreeModel node = new TreeModel { id = item.F_NO, text = item.F_NAME, value = item.F_NO, showcheck = false, checkstate = 0, isexpand = true, parentId = string.IsNullOrEmpty(item.F_PNO) ? guidid : item.F_PNO }; treeList.Add(node); } return treeList.ToTree(parentId); } catch (Exception ex) { throw ex; } } } }