249 lines
14 KiB
C#
249 lines
14 KiB
C#
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;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace CompetitionAPI.Controllers.back
|
|
{
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class SaveFaultController : 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 SaveFaultController(IWebHostEnvironment webHostEnvironment)
|
|
{
|
|
_webHostEnvironment = webHostEnvironment;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存所有故障接口
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[Authorize]
|
|
[HttpPost]
|
|
[APIFilter]
|
|
public JsonResult Index([FromBody] SaveFaultRequest req)
|
|
{
|
|
try
|
|
{
|
|
if (req != null)
|
|
{
|
|
if (string.IsNullOrEmpty(req.ExamId))
|
|
{
|
|
return Json(Tool.GetJsonWithCode(APICode.Fail, "考试id不能为空"));
|
|
}
|
|
string Id = req.ExamId;
|
|
var list = req.Data;
|
|
var model = list.Where(a => a.FaultDesc == "熔芯不匹配").FirstOrDefault();
|
|
var img_url_list = new List<string>();
|
|
var fault_list = list.Where(a => a.FaultDesc == "出线电缆编号牌型号编写错误").ToList();
|
|
var old_fault_list = new List<Competition.Mysql.Model.pow_exam_fault>();
|
|
foreach (var fault_model in fault_list)
|
|
{
|
|
var success = new List<string>();
|
|
if (fault_model != null)
|
|
{
|
|
var old_fault_model = exam_fault_bll.GetModelList(" ExamFaultId='" + fault_model.ExamFaultId + "' ").FirstOrDefault();
|
|
if (old_fault_model != null)
|
|
{
|
|
old_fault_list.Add(old_fault_model);
|
|
}
|
|
|
|
var now = DateTime.Now;
|
|
var dic_name = "/Upload/Cable/" + 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 name = fault_model.CableName.Replace("台区一", "").Replace("台区二", "").Replace("台区三", "").Replace("台区四", "").Replace("台区五", "");
|
|
var start = fault_model.CableStart.Replace("台区一", "").Replace("台区二", "").Replace("台区三", "").Replace("台区四", "").Replace("台区五", "");
|
|
var end = fault_model.CableEnd.Replace("台区一", "").Replace("台区二", "").Replace("台区三", "").Replace("台区四", "").Replace("台区五", "");
|
|
var result1 = Tool.GeneratePictures("台区一" + name, "台区一" + start, "台区一" + end, fault_model.ModelLength, path1, _webHostEnvironment.WebRootPath);
|
|
if (result1)
|
|
{
|
|
success.Add(path1);
|
|
}
|
|
|
|
var path2 = dic_name + Guid.NewGuid().ToString("N") + ".jpg";
|
|
var result2 = Tool.GeneratePictures("台区二" + name, "台区二" + start, "台区二" + end, fault_model.ModelLength, path2, _webHostEnvironment.WebRootPath);
|
|
if (result2)
|
|
{
|
|
success.Add(path2);
|
|
}
|
|
|
|
var path3 = dic_name + Guid.NewGuid().ToString("N") + ".jpg";
|
|
var result3 = Tool.GeneratePictures("台区三" + name, "台区三" + start, "台区三" + end, fault_model.ModelLength, path3, _webHostEnvironment.WebRootPath);
|
|
if (result3)
|
|
{
|
|
success.Add(path3);
|
|
}
|
|
|
|
var path4 = dic_name + Guid.NewGuid().ToString("N") + ".jpg";
|
|
var result4 = Tool.GeneratePictures("台区四" + name, "台区四" + start, "台区四" + end, fault_model.ModelLength, path4, _webHostEnvironment.WebRootPath);
|
|
if (result4)
|
|
{
|
|
success.Add(path4);
|
|
}
|
|
|
|
var path5 = dic_name + Guid.NewGuid().ToString("N") + ".jpg";
|
|
var result5 = Tool.GeneratePictures("台区五" + name, "台区五" + start, "台区五" + end, fault_model.ModelLength, 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
|
|
{
|
|
fault_model.SensitiveKnowledge = path1;
|
|
fault_model.Minhui = path2;
|
|
fault_model.SensitiveLine = path3;
|
|
fault_model.Allergy = path4;
|
|
fault_model.GracefulGraceful = path5;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (exam_fault_bll.OperationAddData(list, model, req.ExamId) > 0)
|
|
{
|
|
foreach (var old_fault_model in old_fault_list)
|
|
{
|
|
if (!string.IsNullOrEmpty(old_fault_model.ExamFaultId))
|
|
{
|
|
string delete_path1 = _webHostEnvironment.WebRootPath + old_fault_model.SensitiveKnowledge;
|
|
if (System.IO.File.Exists(delete_path1))
|
|
{
|
|
System.IO.File.Delete(delete_path1);
|
|
}
|
|
string delete_path2 = _webHostEnvironment.WebRootPath + old_fault_model.Minhui;
|
|
if (System.IO.File.Exists(delete_path2))
|
|
{
|
|
System.IO.File.Delete(delete_path2);
|
|
}
|
|
string delete_path3 = _webHostEnvironment.WebRootPath + old_fault_model.SensitiveLine;
|
|
if (System.IO.File.Exists(delete_path3))
|
|
{
|
|
System.IO.File.Delete(delete_path3);
|
|
}
|
|
string delete_path4 = _webHostEnvironment.WebRootPath + old_fault_model.Allergy;
|
|
if (System.IO.File.Exists(delete_path4))
|
|
{
|
|
System.IO.File.Delete(delete_path4);
|
|
}
|
|
string delete_path5 = _webHostEnvironment.WebRootPath + old_fault_model.GracefulGraceful;
|
|
if (System.IO.File.Exists(delete_path5))
|
|
{
|
|
System.IO.File.Delete(delete_path5);
|
|
}
|
|
foreach (var fault_model in fault_list)
|
|
{
|
|
var img_url = "";
|
|
if (fault_model.CableName.Contains("台区一"))
|
|
img_url = fault_model.SensitiveKnowledge;
|
|
else if (fault_model.CableName.Contains("台区二"))
|
|
img_url = fault_model.Minhui;
|
|
else if (fault_model.CableName.Contains("台区三"))
|
|
img_url = fault_model.SensitiveLine;
|
|
else if (fault_model.CableName.Contains("台区四"))
|
|
img_url = fault_model.Allergy;
|
|
else if (fault_model.CableName.Contains("台区五"))
|
|
img_url = fault_model.GracefulGraceful;
|
|
|
|
var cable_model = list.Where(a => a.ExamFaultId == fault_model.ExamFaultId).FirstOrDefault();
|
|
cable_model.SensitiveKnowledge = fault_model.SensitiveKnowledge;
|
|
cable_model.Minhui = fault_model.Minhui;
|
|
cable_model.SensitiveLine = fault_model.SensitiveLine;
|
|
cable_model.Allergy = fault_model.Allergy;
|
|
cable_model.GracefulGraceful = fault_model.GracefulGraceful;
|
|
}
|
|
}
|
|
}
|
|
|
|
var exam_fault_list2 = exam_fault_bll.GetModelList(" ExamId = '" + Id + "' ");
|
|
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)
|
|
{
|
|
if (!required_tool_list.Contains("绝缘手套"))
|
|
{
|
|
required_tool_list.Add("绝缘手套");
|
|
}
|
|
if (!required_tool_list.Contains("熔断器操作手柄"))
|
|
{
|
|
required_tool_list.Add("熔断器操作手柄");
|
|
}
|
|
var tool_content = string.Join("','", required_tool_list);
|
|
var tool_list = tool_bll.GetModelList(" Purpose='排故' and ToolName in ('" + tool_content + "') ");
|
|
var add_tool_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 add_tool_model = new Competition.Mysql.Model.pow_exam_tool();
|
|
add_tool_model.ExamToolId = Guid.NewGuid().ToString("N");
|
|
add_tool_model.ExamId = Id;
|
|
add_tool_model.ToolId = tool_model.ToolId;
|
|
add_tool_model.Purpose = tool_model.Purpose;
|
|
add_tool_model.ToolName = tool_model.ToolName;
|
|
add_tool_model.ToolType = tool_model.ToolType;
|
|
add_tool_model.ThreeToolId = tool_model.ThreeToolId;
|
|
add_tool_list.Add(add_tool_model);
|
|
}
|
|
}
|
|
if (exam_tool_bll.OperationData(add_tool_list, Id, "排故") <= 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, "发生错误,请联系管理员。"));
|
|
}
|
|
}
|
|
}
|
|
}
|