using HL_FristAidPlatform_Help; using HL_FristAidPlatform_IDataBase; using HL_FristAidPlatform_Models; using SqlSugar; using System; using System.Collections.Generic; namespace HL_FristAidPlatform_DataBase { //T_Service_FirstAid_DrugManagement public class T_Service_FirstAid_DrugManagementDB : BaseDB, IT_Service_FirstAid_DrugManagement { public SqlSugarClient db = GetClient(); /// /// 增加一条数据 /// public bool Add(T_Service_FirstAid_DrugManagement model) { var info = db.Queryable().Where(i => i.DrugGUID == model.DrugGUID && i.BatchNumber == model.BatchNumber && i.TermOfValidity == model.TermOfValidity && i.State == 0 && i.DrugSource == model.DrugSource && i.Manufacturer == model.Manufacturer).First(); if (!SqlFunc.IsNullOrEmpty(info)) { model.GUID = info.GUID; model.Inventory = info.Inventory + model.Inventory; return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand() == 0 ? false : true; } else { return db.Insertable(model).ExecuteCommand() == 0 ? false : true; } } /// /// 更新一条数据 /// public bool Update(T_Service_FirstAid_DrugManagement model) { return db.Updateable(model).ExecuteCommand() == 0 ? false : true; } /// /// 删除一条数据 /// public bool LogicalDeletionDrug(GUIDModel model) { return db.Updateable().SetColumns(it => new T_Service_FirstAid_DrugManagement() { DeleteFlag = 1 }).Where(it => it.GUID == model.GUID).ExecuteCommand() == 0 ? false : true; } /// /// 获取单个数据 /// public T_Service_FirstAid_DrugManagement Get(string GUID) { return db.Queryable().Where(it => it.GUID == GUID).First(); } /// /// 待审核药品列表 /// /// /// public TableModel GetGrugExamineList(string hospitalGuid) { List list = new List(); list = db.Queryable((a, b, c) => new JoinQueryInfos( JoinType.Inner, a.DrugGUID == b.GUID, JoinType.Inner, a.CheckInUserID == c.ID )) .Where((a, b) => a.HospitalGuid == hospitalGuid && a.State == 0 && a.DeleteFlag == 0) .Select((a, b, c) => new FirstAid_DrugManagementModel { Name = b.Name, LargeUnit = b.LargeUnit, SmallUnit = b.SmallUnit, DosageForm = b.DosageForm, DrugClassify = b.DrugClassify, ManagementGUID = a.GUID, BatchNumber = a.BatchNumber, DrugSource = a.DrugSource, Manufacturer = a.Manufacturer, TermOfValidity = a.TermOfValidity.ToString("yyyy-MM-dd"), Inventory = a.Inventory, Number = a.Number, CheckInUser = c.FullName, CreateTime=a.CreationTime }).OrderBy("CreateTime desc").ToList(); TableModel t = new TableModel(); t.Code = 0; t.PageCount = list.Count; t.TotalNumber = list.Count; t.Data = list; t.Msg = "成功"; return t; } /// /// 药品列表 /// /// /// /// /// /// /// /// /// /// public TableModel GetPageList(string hospitalGuid, string drugName, string batchNumber, string manufacturer, bool temporary, bool expired, int pageIndex, int pageSize) { int total = 0; List list = new List(); list = db.Queryable((a, b) => new JoinQueryInfos( JoinType.Inner, a.DrugGUID == b.GUID )).Where((a, b) => a.HospitalGuid == hospitalGuid && a.DeleteFlag == 0) .WhereIF(!SqlFunc.IsNullOrEmpty(drugName), (a, b) => b.Name.Contains(drugName)) .WhereIF(!SqlFunc.IsNullOrEmpty(batchNumber), (a, b) => a.BatchNumber == batchNumber) .WhereIF(!SqlFunc.IsNullOrEmpty(manufacturer), (a, b) => a.Manufacturer.Contains(manufacturer)) .WhereIF(temporary == true, (a, b) => SqlFunc.Between(a.TermOfValidity, DateTime.Now, DateTime.Now.AddDays(30))) .WhereIF(expired == true, (a, b) => a.TermOfValidity < DateTime.Now) .Select((a, b) => new FirstAid_DrugManagementModel { Name = b.Name, LargeUnit = b.LargeUnit, SmallUnit = b.SmallUnit, DosageForm = b.DosageForm, DrugClassify = b.DrugClassify, ManagementGUID = a.GUID, DrugGUID = a.DrugGUID, BatchNumber = a.BatchNumber, DrugSource = a.DrugSource, Manufacturer = a.Manufacturer, TermOfValidity = a.TermOfValidity.ToString("yyyy-MM-dd"), Inventory = a.Inventory, Number = a.Number, State = a.State, CreateTime = a.CreationTime }).OrderBy("CreateTime desc").ToPageList(pageIndex, pageSize, ref total); TableModel t = new TableModel(); t.Code = 0; t.PageCount = list.Count; t.TotalNumber = total; t.Data = list; t.Msg = "成功"; return t; } /// /// 药品信息详情 /// /// /// public DrugDetailModel GetDrugDetail(string guid) { DrugDetailModel drug = new DrugDetailModel(); drug = db.Queryable((a, b, c, d, e) => new JoinQueryInfos( JoinType.Inner, a.DrugGUID == b.GUID, JoinType.Inner, a.CheckInUserID == c.ID, JoinType.Left, a.UpdateUserID == d.ID, JoinType.Left, a.ReviewerUserID == e.ID)) .Where((a, b) => a.DeleteFlag == 0) .Where((a, b) => a.GUID == guid) .Select((a, b, c, d, e) => new DrugDetailModel { GUID = a.GUID, Name = b.Name, LargeUnit = b.LargeUnit, SmallUnit = b.SmallUnit, DosageForm = b.DosageForm, DrugClassify = b.DrugClassify, BatchNumber = a.BatchNumber, DrugSource = a.DrugSource, Manufacturer = a.Manufacturer, Inventory = a.Inventory, Number = a.Number, TermOfValidity = a.TermOfValidity.ToString("yyyy-MM-dd"), State = a.State, CheckInUser = c.FullName, UpdateUser = d.FullName, ReviewerUser = e.FullName, CreationTime=a.CreationTime.ToString("yyyy-MM-dd HH:mm:ss") }).First(); return drug; } } }