209 lines
8.4 KiB
C#
209 lines
8.4 KiB
C#
using HL_FristAidPlatform_Help;
|
|
using HL_FristAidPlatform_IDataBase;
|
|
using HL_FristAidPlatform_Models;
|
|
using SqlSugar;
|
|
using System;
|
|
|
|
namespace HL_FristAidPlatform_DataBase
|
|
{
|
|
public class DrugManagementService : BaseDB, IDrugManagementService
|
|
{
|
|
public SqlSugarClient db = GetClient();
|
|
|
|
/// <summary>
|
|
/// 新增药品
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <returns></returns>
|
|
public bool InserDrug(DrugManagementModel model)
|
|
{
|
|
try
|
|
{
|
|
db.Ado.BeginTran();
|
|
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 && i.State == 0).First();
|
|
T_Service_FirstAid_DrugManagement drug = new T_Service_FirstAid_DrugManagement();
|
|
if (!SqlFunc.IsNullOrEmpty(info))
|
|
{
|
|
drug.GUID = info.GUID;
|
|
drug.Inventory = info.Inventory + model.Inventory;
|
|
drug.TermOfValidity = model.TermOfValidity;
|
|
db.Updateable(drug).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
drug.HospitalGuid = model.HospitalGuid;
|
|
drug.DrugGUID = model.DrugGUID;
|
|
drug.BatchNumber = model.BatchNumber;
|
|
drug.DrugSource = model.DrugSource;
|
|
drug.Manufacturer = model.Manufacturer;
|
|
drug.TermOfValidity = model.TermOfValidity;
|
|
drug.Inventory = model.Inventory;
|
|
drug.CheckInUserID = model.CheckInUserID;
|
|
drug.CreationID = model.CheckInUserID;
|
|
db.Insertable(drug).ExecuteCommand();
|
|
|
|
}
|
|
|
|
//入库
|
|
T_Service_FirstAid_DrugStockRecord record = new T_Service_FirstAid_DrugStockRecord();
|
|
record.ManagementGUID = drug.GUID;
|
|
record.Number = model.Inventory;
|
|
record.OperatorUserID = model.CheckInUserID;
|
|
record.Type = 1;
|
|
record.CreateUser = model.CheckInUserID;
|
|
db.Insertable(record).ExecuteCommand();
|
|
|
|
db.Ado.CommitTran();
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Ado.RollbackTran();
|
|
Help.WriteErrorLog("院前:新增药品(InserDrug)", ex.ToString());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改药品
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <param name="record"></param>
|
|
/// <returns></returns>
|
|
public bool UpdateDrug(T_Service_FirstAid_DrugManagement model, T_Service_FirstAid_DrugStockRecord record)
|
|
{
|
|
try
|
|
{
|
|
db.Ado.BeginTran();
|
|
db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|
db.Updateable(record).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|
db.Ado.CommitTran();
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Ado.RollbackTran();
|
|
Help.WriteErrorLog("院前:修改药品(UpdateDrug)", ex.ToString());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 继续添加药品
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <returns></returns>
|
|
public bool ContinueAddDrug(T_Service_FirstAid_DrugManagement model)
|
|
{
|
|
|
|
try
|
|
{
|
|
db.Ado.BeginTran();
|
|
db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|
//入库
|
|
T_Service_FirstAid_DrugStockRecord record = new T_Service_FirstAid_DrugStockRecord();
|
|
record.ManagementGUID = model.GUID;
|
|
record.Number = model.Inventory;
|
|
record.OperatorUserID = model.CreationID;
|
|
record.Type = 1;
|
|
record.CreateUser = model.CreationID;
|
|
db.Insertable(record).ExecuteCommand();
|
|
db.Ado.CommitTran();
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Ado.RollbackTran();
|
|
Help.WriteErrorLog("院前:继续添加药品(ContinueAddDrug)", ex.ToString());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 药品出库
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <param name="record"></param>
|
|
/// <returns></returns>
|
|
public bool ExwarehouseDrug(T_Service_FirstAid_DrugManagement model, long operatorUserID)
|
|
{
|
|
|
|
try
|
|
{
|
|
db.Ado.BeginTran();
|
|
db.Updateable(model).UpdateColumns(it => new { it.State, it.ReviewerUserID, it.Number, it.Inventory, it.DeleteFlag }).ExecuteCommand();
|
|
//出库
|
|
T_Service_FirstAid_DrugStockRecord record = new T_Service_FirstAid_DrugStockRecord();
|
|
record.ManagementGUID = model.GUID;
|
|
record.Number = model.Inventory;
|
|
record.OperatorUserID = model.CreationID;
|
|
record.Type = 0;
|
|
record.OperatorUserID = operatorUserID;
|
|
record.CreateUser = operatorUserID;
|
|
db.Insertable(record).ExecuteCommand();
|
|
db.Ado.CommitTran();
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Ado.RollbackTran();
|
|
Help.WriteErrorLog("院前:药品出库(ExwarehouseDrug)", ex.ToString());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 药品审核
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <returns></returns>
|
|
public bool ExamineGrug(AuditModel model)
|
|
{
|
|
try
|
|
{
|
|
db.Ado.BeginTran();
|
|
T_Service_FirstAid_DrugManagement drug = new T_Service_FirstAid_DrugManagement();
|
|
drug.GUID = model.GUID;
|
|
drug.ReviewerUserID = model.ReviewerUserID;
|
|
drug.State = model.Type;
|
|
if (model.Type == 1)
|
|
{
|
|
var date = db.Queryable<T_Service_FirstAid_DrugManagement>().Where(it => it.GUID == model.GUID).First();
|
|
var date2 = db.Queryable<T_Service_FirstAid_DrugManagement>().Where(i => i.DrugGUID == date.DrugGUID && i.BatchNumber == date.BatchNumber && i.TermOfValidity == date.TermOfValidity && i.State == 1 && i.DrugSource == date.DrugSource && i.Manufacturer == date.Manufacturer).First();
|
|
if (date2 != null)
|
|
{
|
|
|
|
date2.Inventory = date.Inventory + date2.Inventory;
|
|
db.Updateable(date2).UpdateColumns(it => new { it.State, it.ReviewerUserID, it.Inventory }).ExecuteCommand();
|
|
|
|
var record = db.Queryable<T_Service_FirstAid_DrugStockRecord>().Where(it => it.ManagementGUID == model.GUID).First();
|
|
record.Number = record.Number + date.Inventory;
|
|
record.ManagementGUID = date2.GUID;
|
|
db.Updateable(record).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
|
|
|
|
db.Deleteable(date).ExecuteCommand();
|
|
}
|
|
else
|
|
{
|
|
db.Updateable(drug).UpdateColumns(it => new { it.State, it.ReviewerUserID }).ExecuteCommand();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
db.Updateable(drug).UpdateColumns(it => new { it.State, it.ReviewerUserID }).ExecuteCommand();
|
|
}
|
|
db.Ado.CommitTran();
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Ado.RollbackTran();
|
|
Help.WriteErrorLog("院前:药品审核(ExamineGrug)", ex.ToString());
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|