using DeviceRepair.Models; using DeviceRepair.Models.Enum; using DeviceRepair.Models.Record; using DeviceRepair.Utils; using NLog; using System; using System.Collections.Generic; using System.Data; using System.Linq; using TsSFCDevice.Client.Biz.Base.Service; using TsSFCDevice.Client.Biz.Base.Utils; namespace TsSFCDevice.Client.Biz.Impl { public class PreserveRepository { private readonly Logger log; private static PreserveRepository manager; private IDictionary m_ApiParameters; /// /// API输入参数 /// public IDictionary ApiParameters { get { return m_ApiParameters; } set { m_ApiParameters = value; } } public static PreserveRepository Instance { get { if (manager == null) manager = new PreserveRepository(); return manager; } } public PreserveRepository() { log = LogManager.GetCurrentClassLogger(); m_ApiParameters = new Dictionary(); } #region 公共 internal string GetParameters(string cOperator = "", bool bFlag = true) { return ParametersObject.GetInstance(cOperator).GetJsonSerialized(m_ApiParameters); } #endregion /// /// 获取单条保养记录 /// /// /// /// public MaintenanceRecordInfo Get_Preserve_Single(int RecordID) { try { byte[] btResults = null; ApiParameters?.Clear(); ApiParameters.Add("AutoID", RecordID + ""); var Rtn = Utility.SfcBizService.CurrentSvc.Get_Preserve_Single(GetParameters(), out btResults); if (Rtn.Code != 1) { throw new Exception(Rtn.Message); } if (btResults == null || btResults.Length == 0) return null; DataSet dsResults = CompressionHelper.ExactDataSet(btResults); IList Datas = DTOHelper.DataTableToList(dsResults.Tables[0]); if (Datas == null) { throw new Exception("实例化当前计划数据时发生异常错误!"); } return Datas.FirstOrDefault(); } catch (Exception ex) { log.Error(ex.Message, ex); throw ex; } } /// /// 获取单条保养记录 /// /// /// /// /// public MaintenanceRecordInfo Get_Preserve_Single(int PlanAutoID, int EquipmentPrimaryID, int FormPrimaryID) { try { byte[] btResults = null; ApiParameters?.Clear(); ApiParameters.Add("PlanAutoID", PlanAutoID + ""); ApiParameters.Add("EquipmentPrimaryID", EquipmentPrimaryID + ""); ApiParameters.Add("FormPrimaryID", FormPrimaryID + ""); var Rtn = Utility.SfcBizService.CurrentSvc.Get_Preserve_SingleByParams(GetParameters(), out btResults); if (Rtn.Code != 1) { throw new Exception(Rtn.Message); } if (btResults == null || btResults.Length == 0) return null; DataSet dsResults = CompressionHelper.ExactDataSet(btResults); IList Datas = DTOHelper.DataTableToList(dsResults.Tables[0]); if (Datas == null) { throw new Exception("实例化当前计划数据时发生异常错误!"); } return Datas.FirstOrDefault(); } catch (Exception ex) { log.Error(ex.Message, ex); throw ex; } } /// /// 设备保养 /// /// /// public APIResponseData InsertData(MaintenanceRecordSubmit Data, EnumDeviceBelong Belong) { try { ApiParameters?.Clear(); ApiParameters.Add("OPERATORNAME", Utility.SystemRuntimeInfo.CurrentUser.UserName); ApiParameters.Add("Belong", Belong.ToString().Trim()); DataSet dataSet = new DataSet(); DataTable Record = new List { Data.Record }.ToDataTable(); Record.TableName = "Record"; dataSet.Tables.Add(Record); DataTable Files = Data.Files.ToDataTable(); Files.TableName = "Files"; dataSet.Tables.Add(Files); DataTable Imgs = Data.Imgs.ToDataTable(); Imgs.TableName = "Imgs"; dataSet.Tables.Add(Imgs); var Rtn = Utility.SfcBizService.CurrentSvc.Insert_PM_Preserve_Data(GetParameters(), dataSet); if (Rtn.Code != 1) { throw new Exception(Rtn.Message); } return new APIResponseData { Code = 1, Message = Rtn.Message }; } catch (Exception ex) { log.Error(ex.Message, ex); throw ex; } } /// /// 通过设备主键编号及点检表主键编号获取单条保养信息记录 /// /// /// public MaintenanceRecordSubmit Get_PreserveDetail_All(int AutoID) { byte[] btResults = null; try { ApiParameters?.Clear(); ApiParameters.Add("OPERATORNAME", Utility.SystemRuntimeInfo.CurrentUser.UserName); ApiParameters.Add("AutoID", AutoID + ""); var Rtn = Utility.SfcBizService.CurrentSvc.Get_PreserveDetail_All(GetParameters(), out btResults); DataSet dsResults = CompressionHelper.ExactDataSet(btResults); if (dsResults == null || dsResults.Tables.Count == 0) { throw new Exception("未能获取到设备保养记录!"); } MaintenanceRecordSubmit sub = new MaintenanceRecordSubmit(); sub.Record = dsResults.Tables["MaintenanceRecordInfo"].ToList().First(); sub.Files = dsResults?.Tables["Attachment"]?.ToList(); sub.Imgs = dsResults?.Tables["Image"]?.ToList(); return sub; } catch (Exception ex) { log.Error(ex.Message, ex); throw ex; } } /// /// 获取设备保养记录信息 /// /// /// public List Get_PreserveDetail_HisView(MaintenanceFilterModel filter, EnumDeviceBelong Belong) { try { byte[] btResults = null; ApiParameters?.Clear(); ApiParameters.Add("PlanID", filter.PlanID + ""); ApiParameters.Add("EquipmentId", filter.EquipmentId + ""); ApiParameters.Add("EquipmentName", filter.EquipmentName); ApiParameters.Add("StartDate", filter.StartDate.ToString("yyyy-MM-dd")); ApiParameters.Add("EndDate", filter.EndDate.ToString("yyyy-MM-dd")); ApiParameters.Add("MaintenanceType", filter.MaintenanceType.ToString()); ApiParameters.Add("Banci", filter.Banci.ToString()); ApiParameters.Add("Belong", Belong.ToString().Trim()); var Rtn = Utility.SfcBizService.CurrentSvc.Get_PreserveDetail_HisView(GetParameters(), out btResults); DataSet dsResults = CompressionHelper.ExactDataSet(btResults); if (dsResults == null || dsResults.Tables.Count == 0) { throw new Exception("未能获取到设备保养记录!"); } return dsResults.Tables[0].ToList(); } catch (Exception ex) { log.Error(ex.Message, ex); throw ex; } } } }