using CsharpHttpHelper;
using DeviceRepair.DataAccess;
using DeviceRepair.Models;
using DeviceRepair.Models.Common;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace DeviceRepairAndOptimization.Biz
{
///
/// 保养计划
///
public class PlanManager
{
private static PlanManager manager;
public static PlanManager Instance
{
get
{
if (manager == null)
manager = new PlanManager();
return manager;
}
}
///
/// 保养计划批量新增数据
///
///
///
public APIResponseData InsertDatas(List lst)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "操作失败!" };
try
{
switch (Models.Config.Configurations.Properties.ConnType?.ToLower())
{
case "api":
apiResponseData = ApiHelper.Instance.SendMessage(new HttpItem
{
URL = ServiceRouteConstValue.PlanDataInsertRange,
Method = "Post",
ContentType = "application/json;charset=utf-8",
Postdata = JsonConvert.SerializeObject(lst)
});
break;
default:
apiResponseData = PlanAccess.Instance.InsertDatas(lst, GlobalInfo.OperationInfo);
break;
}
}
catch (Exception ex)
{
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
///
/// 获取当前年月的待保修项
///
///
public APIResponseData GetCurrentMonthPlanTips()
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "未能获取到数据!" };
try
{
switch (Models.Config.Configurations.Properties.ConnType?.ToLower())
{
case "api":
apiResponseData = ApiHelper.Instance.SendMessage(new HttpItem
{
URL = ServiceRouteConstValue.GetCurrentMonthPlanItems,
Method = "Get",
ContentType = "application/json;charset=utf-8"
});
break;
default:
apiResponseData = PlanAccess.Instance.GetCurrentMonthPlanTips();
break;
}
return apiResponseData;
}
catch (Exception ex)
{
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
///
/// 当前年度计划完成进度
///
///
///
public CurrentYearPlanSchedule GetCurrentYearPlanSchedule()
{
CurrentYearPlanSchedule schedule = null;
APIResponseData apiResponseData = new APIResponseData { Code = -1 };
try
{
switch (Models.Config.Configurations.Properties.ConnType?.ToLower())
{
case "api":
apiResponseData = ApiHelper.Instance.SendMessage(new HttpItem
{
URL = ServiceRouteConstValue.GetCurrentYearPlanSchedule,
Method = "GET",
ContentType = "application/json;charset=utf-8"
});
break;
default:
apiResponseData = PlanAccess.Instance.GetCurrentYearPlanSchedule();
break;
}
if (apiResponseData.Code == 1)
schedule = JsonConvert.DeserializeObject(apiResponseData.Data + "");
return schedule;
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
return schedule;
}
///
/// 获取当前年月的待保修项数量
///
///
///
public async Task GetCurrentMonthPlanTipsCountAsync(ResultHandler handler)
{
int Count = -1;
try
{
switch (Models.Config.Configurations.Properties.ConnType?.ToLower())
{
case "api":
ApiHelper.Instance.SendMessageAsync(new HttpItem
{
URL = ServiceRouteConstValue.GetCurrentMonthPlanItemCount,
Method = "GET",
ContentType = "application/json;charset=utf-8"
}, handler);
break;
default:
APIResponseData apiResponseData = PlanAccess.Instance.GetCurrentMonthPlanTipsCountAsync();
Count = apiResponseData.ToInt();
break;
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
return Count;
}
///
/// 根据设备主键ID取指定年份计划数据
///
///
///
///
public AnnualMaintenancePlan GetPlanByEquipmentPkAndYear(int Year, int EquipmentAutoID)
{
APIResponseData apiResponseData = null;
try
{
switch (Models.Config.Configurations.Properties.ConnType?.ToLower())
{
case "api":
apiResponseData = ApiHelper.Instance.SendMessage(new HttpItem
{
URL = $"{ServiceRouteConstValue.GetPlanByEquipmentPkAndYear}?Year={Year}&EquipmentAutoID={EquipmentAutoID}",
Method = "Get",
ContentType = "application/json; charset=utf-8"
});
break;
default:
apiResponseData = PlanAccess.Instance.GetAllPlans();
break;
}
if (apiResponseData.Code == 1)
return JsonConvert.DeserializeObject(apiResponseData.Data + "");
else
throw new Exception(apiResponseData.Message);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 获取所有年计划
///
///
public List GetDatas()
{
APIResponseData apiResponseData = null;
try
{
switch (Models.Config.Configurations.Properties.ConnType?.ToLower())
{
case "api":
apiResponseData = ApiHelper.Instance.SendMessage(new HttpItem
{
URL = ServiceRouteConstValue.GetAllPlans,
Method = "Get",
ContentType = "application/json; charset=utf-8"
});
break;
default:
apiResponseData = PlanAccess.Instance.GetAllPlans();
break;
}
if (apiResponseData.Code == 1)
return JsonConvert.DeserializeObject>(apiResponseData.Data + "");
else
throw new Exception(apiResponseData.Message);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 导出EXCEL的数据
///
///
///
public List ExportXlsxDatas(int Year)
{
APIResponseData apiResponseData = null;
try
{
switch (Models.Config.Configurations.Properties.ConnType?.ToLower())
{
case "api":
apiResponseData = ApiHelper.Instance.SendMessage(new HttpItem
{
URL = ServiceRouteConstValue.GetExcelExportDatasByYear + "?Year=" + Year,
Method = "Get",
ContentType = "application/json; charset=utf-8"
});
break;
default:
apiResponseData = PlanAccess.Instance.ExportXlsxDatas(Year);
break;
}
if (apiResponseData.Code == 1)
return JsonConvert.DeserializeObject>(apiResponseData.Data + "");
else
throw new Exception(apiResponseData.Message);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 获取当前计划是否存的保养记录
///
///
///
///
public APIResponseData GetPlanRecordProgress(int EquipmentAutoID, int Year)
{
APIResponseData apiResponseData = null;
try
{
switch (Models.Config.Configurations.Properties.ConnType?.ToLower())
{
case "api":
apiResponseData = ApiHelper.Instance.SendMessage(
new HttpItem
{
URL = $"{ServiceRouteConstValue.GetPlanRecordProgress}?EquipmentAutoID={EquipmentAutoID}&Year={Year}",
Method = "Get",
ContentType = "application/json; charset=utf-8",
}
);
break;
default:
apiResponseData = PlanAccess.Instance.GetPlanRecordProgress(EquipmentAutoID, Year);
break;
}
}
catch (Exception ex)
{
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
///
/// 删除计划
///
///
///
///
public APIResponseData DeleteByYearAndEquipmentPk(int Year, int EquipmentAutoID)
{
APIResponseData apiResponseData = null;
try
{
switch (Models.Config.Configurations.Properties.ConnType?.ToLower())
{
case "api":
apiResponseData = ApiHelper.Instance.SendMessage(
new HttpItem
{
URL = $"{ServiceRouteConstValue.DeleteByYearAndEquipmentPk}?Year={Year}&EquipmentAutoID={EquipmentAutoID}",
Method = "Post",
ContentType = "application/json; charset=utf-8",
Postdata = JsonConvert.SerializeObject(new { Year, EquipmentAutoID })
}
);
break;
default:
apiResponseData = PlanAccess.Instance.DeleteByYearAndEquipmentPk(Year, EquipmentAutoID);
break;
}
return apiResponseData;
}
catch (Exception ex)
{
throw ex;
}
}
}
}