StableVersion4.3/HL_FristAidPlatform_DataBase/TranService/DrugManagementService.cs

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;
}
}
}
}