|
@@ -13,6 +13,10 @@ using EInk.Dtos;
|
|
using System.Reflection.Metadata;
|
|
using System.Reflection.Metadata;
|
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
|
using EInk.Tools;
|
|
using EInk.Tools;
|
|
|
|
+using EInk.Lot2Lot3.Models;
|
|
|
|
+using Microsoft.Extensions.DependencyInjection;
|
|
|
|
+using Microsoft.Extensions.Options;
|
|
|
|
+using System.Reflection;
|
|
|
|
|
|
namespace EInk.Controllers
|
|
namespace EInk.Controllers
|
|
{
|
|
{
|
|
@@ -21,17 +25,25 @@ namespace EInk.Controllers
|
|
public class Lot3Controller : ControllerBase
|
|
public class Lot3Controller : ControllerBase
|
|
{
|
|
{
|
|
private readonly ISqlSugarClient _db;
|
|
private readonly ISqlSugarClient _db;
|
|
|
|
+ private readonly IConfiguration _configuration;
|
|
|
|
+ private readonly AppearancePixelEquivalent _appearancepixelequivalent;
|
|
|
|
+ private readonly List<string> _Lot3AppearancePatternList;
|
|
|
|
+
|
|
public Lot3Controller(ISqlSugarClient db)
|
|
public Lot3Controller(ISqlSugarClient db)
|
|
{
|
|
{
|
|
_db = db;
|
|
_db = db;
|
|
|
|
+ _configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: true, reloadOnChange: true).Build();
|
|
|
|
+ _appearancepixelequivalent = _configuration.GetSection("AppearancePixelEquivalent").Get<AppearancePixelEquivalent>();
|
|
|
|
+ _Lot3AppearancePatternList = _configuration.GetValue<string>("Lot3AppearancePatternList").Split(",").ToList();
|
|
}
|
|
}
|
|
|
|
|
|
[HttpPost("UploadLot3")]
|
|
[HttpPost("UploadLot3")]
|
|
- public IActionResult Lot3Data([FromBody] Lot2Lot3Dto lot3Data)
|
|
|
|
|
|
+ public IActionResult Lot3Data([FromBody] Lot3Dto lot3Data)
|
|
{
|
|
{
|
|
string jsonStr = JsonConvert.SerializeObject(lot3Data);
|
|
string jsonStr = JsonConvert.SerializeObject(lot3Data);
|
|
try
|
|
try
|
|
{
|
|
{
|
|
|
|
+ LogerHelper.RecordLogTxt($"UploadLot3, Data:{jsonStr}");
|
|
try
|
|
try
|
|
{
|
|
{
|
|
lot3Data.Valid();
|
|
lot3Data.Valid();
|
|
@@ -41,16 +53,76 @@ namespace EInk.Controllers
|
|
LogerHelper.RecordLogTxt($"UploadLot3, Valid Fail, Data:{jsonStr}, Message:{ex.Message}");
|
|
LogerHelper.RecordLogTxt($"UploadLot3, Valid Fail, Data:{jsonStr}, Message:{ex.Message}");
|
|
return Ok(ResultDto.Fail(ex.Message));
|
|
return Ok(ResultDto.Fail(ex.Message));
|
|
}
|
|
}
|
|
|
|
+ //外观检像素当量
|
|
|
|
+ if (_appearancepixelequivalent.enable && lot3Data.result == "NG")
|
|
|
|
+ {
|
|
|
|
+ foreach (var item in lot3Data.itemCheckDatas)
|
|
|
|
+ {
|
|
|
|
+ //像素 = 实际长度 / 像素当量
|
|
|
|
+ switch (item.pattern)
|
|
|
|
+ {
|
|
|
|
+ case "PositiveAppearance":
|
|
|
|
+ foreach (var detail_item in item.details)
|
|
|
|
+ {
|
|
|
|
+ var (flag, height, width) = detail_item.Valid_HeightWidth();
|
|
|
|
+ if (flag)
|
|
|
|
+ {
|
|
|
|
+ detail_item.height = (Math.Round(height / _appearancepixelequivalent.PositiveAppearance, 2)).ToString();
|
|
|
|
+ detail_item.width = (Math.Round(width / _appearancepixelequivalent.PositiveAppearance, 2)).ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case "BackAppearance":
|
|
|
|
+ foreach (var detail_item in item.details)
|
|
|
|
+ {
|
|
|
|
+ var (flag, height, width) = detail_item.Valid_HeightWidth();
|
|
|
|
+ if (flag)
|
|
|
|
+ {
|
|
|
|
+ detail_item.height = (Math.Round(height / _appearancepixelequivalent.BackAppearance, 2)).ToString();
|
|
|
|
+ detail_item.width = (Math.Round(width / _appearancepixelequivalent.BackAppearance, 2)).ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case "BackFPC":
|
|
|
|
+ foreach (var detail_item in item.details)
|
|
|
|
+ {
|
|
|
|
+ var (flag, height, width) = detail_item.Valid_HeightWidth();
|
|
|
|
+ if (flag)
|
|
|
|
+ {
|
|
|
|
+ detail_item.height = (Math.Round(height / _appearancepixelequivalent.BackFPC, 2)).ToString();
|
|
|
|
+ detail_item.width = (Math.Round(width / _appearancepixelequivalent.BackFPC, 2)).ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case "PositiveFPC":
|
|
|
|
+ foreach (var detail_item in item.details)
|
|
|
|
+ {
|
|
|
|
+ var (flag, height, width) = detail_item.Valid_HeightWidth();
|
|
|
|
+ if (flag)
|
|
|
|
+ {
|
|
|
|
+ detail_item.height = (Math.Round(height / _appearancepixelequivalent.PositiveFPC, 2)).ToString();
|
|
|
|
+ detail_item.width = (Math.Round(width / _appearancepixelequivalent.PositiveFPC, 2)).ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
Lot2Lot3Model lot3model = new()
|
|
Lot2Lot3Model lot3model = new()
|
|
{
|
|
{
|
|
lot_id = lot3Data.id,
|
|
lot_id = lot3Data.id,
|
|
is_send = 0,
|
|
is_send = 0,
|
|
product_no = lot3Data.slidesNumber,
|
|
product_no = lot3Data.slidesNumber,
|
|
- content = jsonStr,
|
|
|
|
- create_time = DateTime.Now
|
|
|
|
|
|
+ create_time = DateTime.Now,
|
|
|
|
+ is_repeatupload = Convert.ToInt32(lot3Data.isrepeatupload),
|
|
|
|
+ operation_time = Convert.ToDateTime(lot3Data.createTime),
|
|
|
|
+ content = JsonConvert.SerializeObject(new Lot2Lot3Dto(lot3Data))
|
|
};
|
|
};
|
|
|
|
+
|
|
//根据guid查看是否为重复插入
|
|
//根据guid查看是否为重复插入
|
|
- if (_db.Ado.GetInt(string.Format("select count(*) from lot2lot3_info where lot_id='{0}'", lot3Data.id)) > 0)
|
|
|
|
|
|
+ if (_db.Ado.GetInt(string.Format("select count(*) from lot2lot3_info where lot_id='{0}'", lot3Data.id)) > 0 || lot3Data.slidesNumber == "NA")
|
|
{
|
|
{
|
|
lot3model.is_send = 3;
|
|
lot3model.is_send = 3;
|
|
}
|
|
}
|
|
@@ -64,6 +136,116 @@ namespace EInk.Controllers
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ [HttpPost("UploadLot3List")]
|
|
|
|
+ public IActionResult Lot3DataList([FromBody] List<Lot3Dto> lot3Datalist)
|
|
|
|
+ {
|
|
|
|
+ Lot3Dto Lot3tempData = new Lot3Dto();
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ foreach (var item in lot3Datalist)
|
|
|
|
+ {
|
|
|
|
+ Lot3tempData = item;
|
|
|
|
+ item.Valid();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ LogerHelper.RecordLogTxt($"UploadLot3, Valid Fail, Data:{JsonConvert.SerializeObject(Lot3tempData)}, Message:{ex.Message}");
|
|
|
|
+ //return Ok(ResultDto.Fail(ex.Message));
|
|
|
|
+ return Ok(ResultDto.Fail($"Valid Fail, Data:{JsonConvert.SerializeObject(Lot3tempData)}, Message:{ex.Message}"));
|
|
|
|
+ }
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ _db.Ado.BeginTran();
|
|
|
|
+ foreach (var Lot3item in lot3Datalist)
|
|
|
|
+ {
|
|
|
|
+ Lot3tempData = Lot3item;
|
|
|
|
+ //外观检像素当量
|
|
|
|
+ if (_appearancepixelequivalent.enable && Lot3item.result == "NG")
|
|
|
|
+ {
|
|
|
|
+ foreach (var item in Lot3item.itemCheckDatas)
|
|
|
|
+ {
|
|
|
|
+ //像素 = 实际长度 / 像素当量
|
|
|
|
+ switch (item.pattern)
|
|
|
|
+ {
|
|
|
|
+ case "PositiveAppearance":
|
|
|
|
+ foreach (var detail_item in item.details)
|
|
|
|
+ {
|
|
|
|
+ var (flag, height, width) = detail_item.Valid_HeightWidth();
|
|
|
|
+ if (flag)
|
|
|
|
+ {
|
|
|
|
+ detail_item.height = (Math.Round(height / _appearancepixelequivalent.PositiveAppearance, 2)).ToString();
|
|
|
|
+ detail_item.width = (Math.Round(width / _appearancepixelequivalent.PositiveAppearance, 2)).ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case "BackAppearance":
|
|
|
|
+ foreach (var detail_item in item.details)
|
|
|
|
+ {
|
|
|
|
+ var (flag, height, width) = detail_item.Valid_HeightWidth();
|
|
|
|
+ if (flag)
|
|
|
|
+ {
|
|
|
|
+ detail_item.height = (Math.Round(height / _appearancepixelequivalent.BackAppearance, 2)).ToString();
|
|
|
|
+ detail_item.width = (Math.Round(width / _appearancepixelequivalent.BackAppearance, 2)).ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case "BackFPC":
|
|
|
|
+ foreach (var detail_item in item.details)
|
|
|
|
+ {
|
|
|
|
+ var (flag, height, width) = detail_item.Valid_HeightWidth();
|
|
|
|
+ if (flag)
|
|
|
|
+ {
|
|
|
|
+ detail_item.height = (Math.Round(height / _appearancepixelequivalent.BackFPC, 2)).ToString();
|
|
|
|
+ detail_item.width = (Math.Round(width / _appearancepixelequivalent.BackFPC, 2)).ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case "PositiveFPC":
|
|
|
|
+ foreach (var detail_item in item.details)
|
|
|
|
+ {
|
|
|
|
+ var (flag, height, width) = detail_item.Valid_HeightWidth();
|
|
|
|
+ if (flag)
|
|
|
|
+ {
|
|
|
|
+ detail_item.height = (Math.Round(height / _appearancepixelequivalent.PositiveFPC, 2)).ToString();
|
|
|
|
+ detail_item.width = (Math.Round(width / _appearancepixelequivalent.PositiveFPC, 2)).ToString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ Lot2Lot3Model lot3model = new()
|
|
|
|
+ {
|
|
|
|
+ lot_id = Lot3item.id,
|
|
|
|
+ is_send = 0,
|
|
|
|
+ product_no = Lot3item.slidesNumber,
|
|
|
|
+ create_time = DateTime.Now,
|
|
|
|
+ is_repeatupload = Convert.ToInt32(Lot3item.isrepeatupload),
|
|
|
|
+ operation_time = Convert.ToDateTime(Lot3item.createTime),
|
|
|
|
+ content = JsonConvert.SerializeObject(new Lot2Lot3Dto(Lot3item))
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ //根据guid查看是否为重复插入
|
|
|
|
+ if (_db.Ado.GetInt(string.Format("select count(*) from lot2lot3_info where lot_id='{0}'", Lot3item.id)) > 0 || Lot3item.slidesNumber == "NA")
|
|
|
|
+ {
|
|
|
|
+ lot3model.is_send = 3;
|
|
|
|
+ }
|
|
|
|
+ _db.Insertable(lot3model).ExecuteCommand();
|
|
|
|
+ }
|
|
|
|
+ _db.Ado.CommitTran();
|
|
|
|
+ return Ok(ResultDto.Success());
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ _db.Ado.RollbackTran(); ;
|
|
|
|
+ LogerHelper.RecordLogTxt($"UploadLot3, Data:{JsonConvert.SerializeObject(Lot3tempData)}, StackTrace:{ex.StackTrace}, Message:{ex.Message}");
|
|
|
|
+ return Ok(ResultDto.Fail("error:" + ex.Message));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
[HttpPost("UploadColourCast")]
|
|
[HttpPost("UploadColourCast")]
|
|
public IActionResult ColourCastData([FromBody] ColourCastDto ColourCastData)
|
|
public IActionResult ColourCastData([FromBody] ColourCastDto ColourCastData)
|
|
@@ -142,5 +324,6 @@ namespace EInk.Controllers
|
|
}
|
|
}
|
|
return Ok(ResultDto.Success());
|
|
return Ok(ResultDto.Success());
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|