291 lines
17 KiB
C#
291 lines
17 KiB
C#
using Competition.Common.Util;
|
|
using CompetitionAPI.Util;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Hosting.Server;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Org.BouncyCastle.Ocsp;
|
|
|
|
namespace CompetitionAPI.Controllers.back
|
|
{
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class InitFaultController : Controller
|
|
{
|
|
private readonly IWebHostEnvironment _webHostEnvironment;
|
|
|
|
Competition.Mysql.BLL.pow_exam_fault exam_fault_bll = new Competition.Mysql.BLL.pow_exam_fault();
|
|
|
|
Competition.Mysql.BLL.pow_exam_tool exam_tool_bll = new Competition.Mysql.BLL.pow_exam_tool();
|
|
|
|
Competition.Mysql.BLL.pow_exam exam_bll = new Competition.Mysql.BLL.pow_exam();
|
|
|
|
Competition.Mysql.BLL.pow_fault fault_bll = new Competition.Mysql.BLL.pow_fault();
|
|
|
|
Competition.Mysql.BLL.pow_tool tool_bll = new Competition.Mysql.BLL.pow_tool();
|
|
|
|
public InitFaultController(IWebHostEnvironment webHostEnvironment)
|
|
{
|
|
_webHostEnvironment = webHostEnvironment;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始化所有故障接口
|
|
/// </summary>
|
|
/// <param name="ExamId">考试id</param>
|
|
/// <returns></returns>
|
|
[Authorize]
|
|
[HttpGet]
|
|
[APIFilter]
|
|
public JsonResult Index(string ExamId)
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrEmpty(ExamId))
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "考试id不能为空"));
|
|
}
|
|
var fault_list = fault_bll.GetModelList("");
|
|
var exam_model = exam_bll.GetAreaList(" ExamId='" + ExamId + "' ").FirstOrDefault();
|
|
if (exam_model != null)
|
|
{
|
|
var new_fault_list = fault_list.Where(a => a.Type == "断路器" || a.FaultDesc == "熔芯不匹配").ToList();
|
|
foreach (var item in new_fault_list)
|
|
{
|
|
if (item.FaultDesc == "漏电保护设置不合理")
|
|
{
|
|
item.Value = exam_model.LeakageProtection;
|
|
}
|
|
else if (item.FaultDesc == "过载保护设置错误")
|
|
{
|
|
var old_value = item.Value.Split('|');
|
|
var new_value = exam_model.OverloadProtection.Split('|');
|
|
old_value[0] = new_value[0];
|
|
old_value[1] = new_value[1];
|
|
item.Value = String.Join("|", old_value);
|
|
}
|
|
else if (item.FaultDesc == "短路延时保护设置错误")
|
|
{
|
|
var old_value = item.Value.Split('|');
|
|
var new_value = exam_model.ShortCircuitDelayProtection.Split('|');
|
|
old_value[0] = new_value[0];
|
|
old_value[1] = new_value[1];
|
|
item.Value = String.Join("|", old_value);
|
|
}
|
|
else if (item.FaultDesc == "短路瞬时保护设置错误")
|
|
{
|
|
item.Value = exam_model.ShortCircuitProtection;
|
|
}
|
|
else if (item.FaultDesc == "欠压保护设置错误")
|
|
{
|
|
item.Value = exam_model.UndervoltageProtection;
|
|
}
|
|
else if (item.FaultDesc == "过压保护设置错误")
|
|
{
|
|
item.Value = exam_model.OvervoltageProtection;
|
|
}
|
|
else if (item.FaultDesc == "缺相保护设置错误")
|
|
{
|
|
item.Value = exam_model.PhaseLossProtection;
|
|
}
|
|
else if (item.FaultDesc == "熔芯不匹配")
|
|
{
|
|
if (exam_model.FusibleCoreCurrent == item.FusibleCoreFault)
|
|
{
|
|
if (exam_model.FusibleCoreCurrent == "800A")
|
|
{
|
|
item.FusibleCoreFault = "100A";
|
|
}
|
|
if (exam_model.FusibleCoreCurrent == "100A")
|
|
{
|
|
item.FusibleCoreFault = "200A";
|
|
}
|
|
if (exam_model.FusibleCoreCurrent == "200A")
|
|
{
|
|
item.FusibleCoreFault = "400A";
|
|
}
|
|
if (exam_model.FusibleCoreCurrent == "400A")
|
|
{
|
|
item.FusibleCoreFault = "800A";
|
|
}
|
|
}
|
|
item.FusibleCoreNormal = exam_model.FusibleCoreCurrent;
|
|
}
|
|
}
|
|
|
|
var cable_fault_list = fault_list.Where(a => a.FaultDesc == "出线电缆编号牌型号编写错误").ToList();
|
|
if (cable_fault_list.Count > 0)
|
|
{
|
|
foreach (var item in cable_fault_list)
|
|
{
|
|
var name1 = "1#配变0.4kV411东线出线电缆";
|
|
var start1 = "1#配变低压综合配电箱411熔断器";
|
|
var end1 = "1#配变0.4kV411东线001#杆";
|
|
|
|
var name2 = "1#配变0.4kV412南线出线电缆";
|
|
var start2 = "1#配变低压综合配电箱412熔断器";
|
|
var end2 = "1#配变0.4kV412南线001#杆";
|
|
//411
|
|
if (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c")
|
|
{
|
|
item.CableName = exam_model.PlatformAreaName + name1;
|
|
item.CableStart = exam_model.PlatformAreaName + start1;
|
|
item.CableEnd = exam_model.PlatformAreaName + end1;
|
|
item.ModelLength = exam_model.IncomingLineModelLength;
|
|
}
|
|
//412
|
|
if (item.DeviceId == "a238da230c0f11ed844e7cd30a92bb1c")
|
|
{
|
|
item.CableName = exam_model.PlatformAreaName + name2;
|
|
item.CableStart = exam_model.PlatformAreaName + start2;
|
|
item.CableEnd = exam_model.PlatformAreaName + end2;
|
|
item.ModelLength = exam_model.OutgoingLineModelLength;
|
|
}
|
|
|
|
var success = new List<string>();
|
|
var dic_name = "/Upload/Cable/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
|
|
var dir_path = _webHostEnvironment.WebRootPath + dic_name;
|
|
if (!Directory.Exists(dir_path))
|
|
Directory.CreateDirectory(dir_path);
|
|
var path1 = dic_name + Guid.NewGuid().ToString("N") + ".jpg";
|
|
|
|
var result1 = Tool.GeneratePictures("台区一" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? name1 : name2), "台区一" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? start1 : start2), "台区一" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? end1 : end2), (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? exam_model.IncomingLineModelLength : exam_model.OutgoingLineModelLength), path1, _webHostEnvironment.WebRootPath);
|
|
if (result1)
|
|
{
|
|
item.SensitiveKnowledge = path1;
|
|
success.Add(path1);
|
|
}
|
|
|
|
var path2 = dic_name + Guid.NewGuid().ToString("N") + ".jpg";
|
|
var result2 = Tool.GeneratePictures("台区二" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? name1 : name2), "台区二" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? start1 : start2), "台区二" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? end1 : end2), (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? exam_model.IncomingLineModelLength : exam_model.OutgoingLineModelLength), path2, _webHostEnvironment.WebRootPath);
|
|
if (result2)
|
|
{
|
|
item.Minhui = path2;
|
|
success.Add(path2);
|
|
}
|
|
|
|
var path3 = dic_name + Guid.NewGuid().ToString("N") + ".jpg";
|
|
var result3 = Tool.GeneratePictures("台区三" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? name1 : name2), "台区三" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? start1 : start2), "台区三" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? end1 : end2), (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? exam_model.IncomingLineModelLength : exam_model.OutgoingLineModelLength), path3, _webHostEnvironment.WebRootPath);
|
|
if (result3)
|
|
{
|
|
item.SensitiveLine = path3;
|
|
success.Add(path3);
|
|
}
|
|
|
|
var path4 = dic_name + Guid.NewGuid().ToString("N") + ".jpg";
|
|
var result4 = Tool.GeneratePictures("台区四" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? name1 : name2), "台区四" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? start1 : start2), "台区四" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? end1 : end2), (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? exam_model.IncomingLineModelLength : exam_model.OutgoingLineModelLength), path4, _webHostEnvironment.WebRootPath);
|
|
if (result4)
|
|
{
|
|
item.Allergy = path4;
|
|
success.Add(path4);
|
|
}
|
|
|
|
var path5 = dic_name + Guid.NewGuid().ToString("N") + ".jpg";
|
|
var result5 = Tool.GeneratePictures("台区五" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? name1 : name2), "台区五" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? start1 : start2), "台区五" + (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? end1 : end2), (item.DeviceId == "9d8da9360c0f11ed844e7cd30a92bb1c" ? exam_model.IncomingLineModelLength : exam_model.OutgoingLineModelLength), path5, _webHostEnvironment.WebRootPath);
|
|
if (result5)
|
|
{
|
|
item.GracefulGraceful = path5;
|
|
success.Add(path5);
|
|
}
|
|
|
|
if (success.Count != 5)
|
|
{
|
|
foreach (var pic in success)
|
|
{
|
|
string path = _webHostEnvironment.WebRootPath + pic;
|
|
if (System.IO.File.Exists(path))
|
|
{
|
|
System.IO.File.Delete(path);
|
|
}
|
|
}
|
|
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "初始化失败"));
|
|
}
|
|
}
|
|
}
|
|
|
|
var exam_fault_list = exam_fault_bll.GetModelList(" ExamId='" + ExamId + "' and FaultDesc='出线电缆编号牌型号编写错误' ");
|
|
if (exam_bll.OperationAddDelData(ExamId, fault_list) > 0)
|
|
{
|
|
foreach (var item in exam_fault_list)
|
|
{
|
|
string delete_path1 = _webHostEnvironment.WebRootPath + item.SensitiveKnowledge;
|
|
if (System.IO.File.Exists(delete_path1))
|
|
{
|
|
System.IO.File.Delete(delete_path1);
|
|
}
|
|
string delete_path2 = _webHostEnvironment.WebRootPath + item.Minhui;
|
|
if (System.IO.File.Exists(delete_path2))
|
|
{
|
|
System.IO.File.Delete(delete_path2);
|
|
}
|
|
string delete_path3 = _webHostEnvironment.WebRootPath + item.SensitiveLine;
|
|
if (System.IO.File.Exists(delete_path3))
|
|
{
|
|
System.IO.File.Delete(delete_path3);
|
|
}
|
|
string delete_path4 = _webHostEnvironment.WebRootPath + item.Allergy;
|
|
if (System.IO.File.Exists(delete_path4))
|
|
{
|
|
System.IO.File.Delete(delete_path4);
|
|
}
|
|
string delete_path5 = _webHostEnvironment.WebRootPath + item.GracefulGraceful;
|
|
if (System.IO.File.Exists(delete_path5))
|
|
{
|
|
System.IO.File.Delete(delete_path5);
|
|
}
|
|
}
|
|
|
|
var exam_fault_list2 = exam_fault_bll.GetModelList(" ExamId = '" + ExamId + "'");
|
|
var required_tool_content = string.Join("|", exam_fault_list2.Where(a => a.RequiredTool != "" && a.ChoiceQuestion != "0").Select(a => a.RequiredTool).ToArray());
|
|
if (!string.IsNullOrEmpty(required_tool_content))
|
|
{
|
|
var required_tool_list = required_tool_content.Split('|').Distinct().ToList();
|
|
if (required_tool_list.Count > 0)
|
|
{
|
|
var tool_content = string.Join("','", required_tool_list);
|
|
var tool_list = tool_bll.GetModelList(" Purpose='排故' and ToolName in ('" + tool_content + "') ");
|
|
var list = new List<Competition.Mysql.Model.pow_exam_tool>();
|
|
foreach (var item in required_tool_list)
|
|
{
|
|
var tool_model = tool_list.Where(a => a.ToolName == item).FirstOrDefault();
|
|
if (tool_model != null)
|
|
{
|
|
var model = new Competition.Mysql.Model.pow_exam_tool();
|
|
model.ExamToolId = Guid.NewGuid().ToString("N");
|
|
model.ExamId = ExamId;
|
|
model.ToolId = tool_model.ToolId;
|
|
model.Purpose = tool_model.Purpose;
|
|
model.ToolName = tool_model.ToolName;
|
|
model.ToolType = tool_model.ToolType;
|
|
model.ThreeToolId = tool_model.ThreeToolId;
|
|
list.Add(model);
|
|
}
|
|
}
|
|
if (exam_tool_bll.OperationData(list, ExamId, "排故") <= 0)
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Success, "初始化故障数据成功,默认根据故障数据选中排故工器具失败,请重试或手动选中排故工器具保存"));
|
|
}
|
|
}
|
|
}
|
|
return Json(Tool.GetJsonWithCode(APICode.Success, "初始化成功"));
|
|
}
|
|
else
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "初始化失败"));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "初始化失败,无考试信息"));
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.WriteLog(ex.Message + ",行号:" + ex.StackTrace);
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "发生错误,请联系管理员。"));
|
|
}
|
|
}
|
|
}
|
|
}
|