using Competition.Common.Util;
using CompetitionAPI.api.back;
using CompetitionAPI.Util;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting.Server;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace CompetitionAPI.Controllers.back
{
[Route("api/[controller]")]
[ApiController]
public class InitCableNumberPlateController : 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 exam_bll = new Competition.Mysql.BLL.pow_exam();
public InitCableNumberPlateController(IWebHostEnvironment webHostEnvironment)
{
_webHostEnvironment = webHostEnvironment;
}
///
/// 初始化出线电缆编号牌接口
///
/// 考试id
///
[Authorize]
[HttpPost]
[APIFilter]
public JsonResult Index([FromBody] InitCableNumberPlateRequest req)
{
try
{
var fault_list = exam_fault_bll.GetModelList(" ExamId='" + req.ExamId + "' and FaultDesc='出线电缆编号牌型号编写错误' ");
if (fault_list.Count > 0)
{
foreach (var item in 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 = req.PlatformArea + name1;
item.CableStart = req.PlatformArea + start1;
item.CableEnd = req.PlatformArea + end1;
item.ModelLength = req.IncomingLineModelLength;
}
//412
if (item.DeviceId == "a238da230c0f11ed844e7cd30a92bb1c")
{
item.CableName = req.PlatformArea + name2;
item.CableStart = req.PlatformArea + start2;
item.CableEnd = req.PlatformArea + end2;
item.ModelLength = req.OutgoingLineModelLength;
}
var success = new List();
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" ? req.IncomingLineModelLength : req.OutgoingLineModelLength), path1, _webHostEnvironment.WebRootPath);
if (result1)
{
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" ? req.IncomingLineModelLength : req.OutgoingLineModelLength), path2, _webHostEnvironment.WebRootPath);
if (result2)
{
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" ? req.IncomingLineModelLength : req.OutgoingLineModelLength), path3, _webHostEnvironment.WebRootPath);
if (result3)
{
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" ? req.IncomingLineModelLength : req.OutgoingLineModelLength), path4, _webHostEnvironment.WebRootPath);
if (result4)
{
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" ? req.IncomingLineModelLength : req.OutgoingLineModelLength), path5, _webHostEnvironment.WebRootPath);
if (result5)
{
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, "初始化失败!"));
}
else
{
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);
}
item.SensitiveKnowledge = path1;
item.Minhui = path2;
item.SensitiveLine = path3;
item.Allergy = path4;
item.GracefulGraceful = path5;
}
}
}
if (fault_list.Count > 0)
{
if (exam_bll.OperationUpdateData(fault_list) > 0)
{
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, "发生错误,请联系管理员。"));
}
}
}
}