StableVersion4.3/HL_FristAidPlatform_DataBase/Service/T_Service_FirstAid_DrugMana...

188 lines
8.3 KiB
C#
Raw Normal View History

2024-03-11 09:47:34 +08:00
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();
/// <summary>
/// 增加一条数据
/// </summary>
public bool Add(T_Service_FirstAid_DrugManagement model)
{
var info = db.Queryable<T_Service_FirstAid_DrugManagement>().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;
}
}
/// <summary>
/// 更新一条数据
/// </summary>
public bool Update(T_Service_FirstAid_DrugManagement model)
{
return db.Updateable(model).ExecuteCommand() == 0 ? false : true;
}
/// <summary>
/// 删除一条数据
/// </summary>
public bool LogicalDeletionDrug(GUIDModel model)
{
return db.Updateable<T_Service_FirstAid_DrugManagement>().SetColumns(it => new T_Service_FirstAid_DrugManagement() { DeleteFlag = 1 }).Where(it => it.GUID == model.GUID).ExecuteCommand() == 0 ? false : true;
}
/// <summary>
/// 获取单个数据
/// </summary>
public T_Service_FirstAid_DrugManagement Get(string GUID)
{
return db.Queryable<T_Service_FirstAid_DrugManagement>().Where(it => it.GUID == GUID).First();
}
/// <summary>
/// 待审核药品列表
/// </summary>
/// <param name="hospitalGuid"></param>
/// <returns></returns>
public TableModel<FirstAid_DrugManagementModel> GetGrugExamineList(string hospitalGuid)
{
List<FirstAid_DrugManagementModel> list = new List<FirstAid_DrugManagementModel>();
list = db.Queryable<T_Service_FirstAid_DrugManagement, T_Base_Drug, T_SYS_User>((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<FirstAid_DrugManagementModel> t = new TableModel<FirstAid_DrugManagementModel>();
t.Code = 0;
t.PageCount = list.Count;
t.TotalNumber = list.Count;
t.Data = list;
t.Msg = "成功";
return t;
}
/// <summary>
/// 药品列表
/// </summary>
/// <param name="hospitalGuid"></param>
/// <param name="drugName"></param>
/// <param name="batchNumber"></param>
/// <param name="manufacturer"></param>
/// <param name="temporary"></param>
/// <param name="expired"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
public TableModel<FirstAid_DrugManagementModel> GetPageList(string hospitalGuid, string drugName, string batchNumber, string manufacturer, bool temporary, bool expired, int pageIndex, int pageSize)
{
int total = 0;
List<FirstAid_DrugManagementModel> list = new List<FirstAid_DrugManagementModel>();
list = db.Queryable<T_Service_FirstAid_DrugManagement, T_Base_Drug>((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<FirstAid_DrugManagementModel> t = new TableModel<FirstAid_DrugManagementModel>();
t.Code = 0;
t.PageCount = list.Count;
t.TotalNumber = total;
t.Data = list;
t.Msg = "成功";
return t;
}
/// <summary>
/// 药品信息详情
/// </summary>
/// <param name="guid"></param>
/// <returns></returns>
public DrugDetailModel GetDrugDetail(string guid)
{
DrugDetailModel drug = new DrugDetailModel();
drug = db.Queryable<T_Service_FirstAid_DrugManagement, T_Base_Drug, T_SYS_User, T_SYS_User, T_SYS_User>((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;
}
}
}