|
|
|
|
using Admin.Core.Common;
|
|
|
|
|
using Admin.Core.Common.Helper;
|
|
|
|
|
using Admin.Core.IService;
|
|
|
|
|
using Admin.Core.Model;
|
|
|
|
|
using Admin.Core.Model.Model_New;
|
|
|
|
|
using Admin.Core.Model.ViewModels;
|
|
|
|
|
using Aucma.Core.HwPLc;
|
|
|
|
|
using Aucma.Core.Tasks.Business;
|
|
|
|
|
using log4net;
|
|
|
|
|
using StackExchange.Profiling.Internal;
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
namespace Aucma.Core.Tasks
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 任务列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class AucamTaskService : IAucamTaskService
|
|
|
|
|
{
|
|
|
|
|
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(AucamTaskService));
|
|
|
|
|
Semaphore semaphore = new Semaphore(1, 1);
|
|
|
|
|
protected readonly IPerfusionRecordServices? _perfusionRecordServices;
|
|
|
|
|
protected readonly IPerfusionAlarmServices? _perfusionAlarmServices;
|
|
|
|
|
protected readonly IPerfusionDeviceStatusServices? _perfusionDeviceStatusServices;
|
|
|
|
|
private readonly IMaterialCompletionServices _materialCompletionServices;
|
|
|
|
|
private readonly IPrintBarCodeServices _printBarCodeServices;
|
|
|
|
|
private readonly IReportQualityInspectionServices _reportQualityInspectionServices;
|
|
|
|
|
bool flag = true;
|
|
|
|
|
private static System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
|
|
|
|
|
private Perfusion_Record record;
|
|
|
|
|
private Perfusion_Record temprRecord;
|
|
|
|
|
|
|
|
|
|
private Perfusion_DeviceStatus perfusion_DeviceStatus = new Perfusion_DeviceStatus();
|
|
|
|
|
private Perfusion_Alarm perfusion_Alarm = new Perfusion_Alarm();
|
|
|
|
|
System.Timers.Timer timer1 = new System.Timers.Timer(5000);
|
|
|
|
|
|
|
|
|
|
public AucamTaskService(IPerfusionRecordServices perfusionRecordServices, IPerfusionAlarmServices perfusionAlarmServices,
|
|
|
|
|
IPerfusionDeviceStatusServices perfusionDeviceStatusServices, IMaterialCompletionServices materialCompletionServices,
|
|
|
|
|
IPrintBarCodeServices printBarCodeServices, IReportQualityInspectionServices reportQualityInspectionServices)
|
|
|
|
|
{
|
|
|
|
|
_perfusionRecordServices = perfusionRecordServices;
|
|
|
|
|
_perfusionAlarmServices = perfusionAlarmServices;
|
|
|
|
|
_perfusionDeviceStatusServices = perfusionDeviceStatusServices;
|
|
|
|
|
_materialCompletionServices = materialCompletionServices;
|
|
|
|
|
_printBarCodeServices = printBarCodeServices;
|
|
|
|
|
_reportQualityInspectionServices = reportQualityInspectionServices;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 更新灌注工位计划数
|
|
|
|
|
bool qFlay = true;//完成
|
|
|
|
|
|
|
|
|
|
public void AucamTaskAsync()
|
|
|
|
|
{
|
|
|
|
|
startCollect();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 灌注
|
|
|
|
|
|
|
|
|
|
public void startCollect()
|
|
|
|
|
{
|
|
|
|
|
Task.Run(() =>
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》灌注数据采集服务开启");
|
|
|
|
|
var obj = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("PerfusionPlc"));
|
|
|
|
|
if (obj != null)
|
|
|
|
|
{
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
if (flag)
|
|
|
|
|
{
|
|
|
|
|
flag = false;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
int signal = obj.plc.ReadInt16("DB55.84.0");
|
|
|
|
|
if (signal == 0)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》当前灌注采集信号:{signal}");
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》灌注数据开始采集");
|
|
|
|
|
//采集数据
|
|
|
|
|
record = ReadEquipSystem(obj, record, perfusion_DeviceStatus, perfusion_Alarm);
|
|
|
|
|
if (record == null) continue;
|
|
|
|
|
if (string.IsNullOrEmpty(record.PerfusionBoxCode))
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》条码为空!");
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》灌注数据条码:{record.PerfusionBoxCode}》灌注结果:{record.PerfusionResult}》设定灌注量:{record.PerfusionSetVolume}》灌注量:{record.PerfusionActualVolume}");
|
|
|
|
|
var tempRecord = _perfusionRecordServices.FirstAsync(d => d.PerfusionBoxCode.Equals(record.PerfusionBoxCode) && d.PerfusionResult == record.PerfusionResult).Result;
|
|
|
|
|
|
|
|
|
|
if (tempRecord != null)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》灌注数据条码:[{record.PerfusionBoxCode}],灌注结果:[{record.PerfusionResult}],已存在系统中");
|
|
|
|
|
bool fw = obj.plc.WriteInt16("DB55.84.0", "0");//存盘成功写入bool
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》写入复位信号{fw}");
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
#region 更新设备状态
|
|
|
|
|
Perfusion_DeviceStatus device = _perfusionDeviceStatusServices.FirstAsync().Result;
|
|
|
|
|
if (device == null)
|
|
|
|
|
{
|
|
|
|
|
_ = _perfusionDeviceStatusServices.AddAsync(perfusion_DeviceStatus).Result;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
device.PerfusionStatus = perfusion_DeviceStatus.PerfusionStatus;
|
|
|
|
|
var rsult = _perfusionDeviceStatusServices.UpdateAsync(device).Result;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 更新报警信息
|
|
|
|
|
if (perfusion_Alarm.PerfusionStatus > 0)
|
|
|
|
|
{
|
|
|
|
|
int a = _perfusionAlarmServices.AddAsync(perfusion_Alarm).Result;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
record.IsFlag = 0;
|
|
|
|
|
//充注结束
|
|
|
|
|
int result = _perfusionRecordServices.AddAsync(record).Result;
|
|
|
|
|
if (result == 0)
|
|
|
|
|
{
|
|
|
|
|
//添加过点数
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》灌注结果:{record.PerfusionResult}");
|
|
|
|
|
if (record.PerfusionResult == 8)
|
|
|
|
|
{
|
|
|
|
|
var insert = InsertToCompleteAndCheck(record);
|
|
|
|
|
if (insert)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》保存过点数成功!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ToMes();//灌注
|
|
|
|
|
Console.WriteLine(record.ToJson());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool r = obj.plc.WriteInt16("DB55.84.0", "0");//存盘成功写入bool
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》写入复位信号为{r}");
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】》灌注数据采集结束");
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(ex);
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 采集灌注参数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
static Perfusion_Record ReadEquipSystem(Aucma.Core.HwPLc.PlcModel obj, Perfusion_Record record, Perfusion_DeviceStatus deviceStatus, Perfusion_Alarm alarmInfo)
|
|
|
|
|
{
|
|
|
|
|
record = new Perfusion_Record();
|
|
|
|
|
byte[] info = obj.plc.Read("DB55.0", 84);
|
|
|
|
|
byte[] codeInfo = obj.plc.Read("DB60.0", 46);
|
|
|
|
|
if (info == null) return null;
|
|
|
|
|
#region 灌注记录赋值
|
|
|
|
|
record.PerfusionActualVolume = byteToDouble(info.Skip(0).Take(8).ToArray()).ToString().Replace("\0", "");
|
|
|
|
|
record.PerfusionR = byteToFloat(info.Skip(8).Take(4).ToArray()).ToString().ToString().Replace("\0", "");
|
|
|
|
|
record.PerfusionL = byteToFloat(info.Skip(54).Take(4).ToArray()).ToString().Replace("\0", "");
|
|
|
|
|
record.PerfusionDuration = int.Parse(StringChange.bytesToHexStr(info.Skip(12).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber).ToString().Replace("\0", "");
|
|
|
|
|
record.Yield = int.Parse(StringChange.bytesToHexStr(info.Skip(16).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber).ToString().Replace("\0", "");
|
|
|
|
|
record.PerfusionBoxCode = asciiEncoding.GetString(codeInfo.Skip(2).Take(22).ToArray()).Trim('\n').Replace("\0", "").Replace("\r","");
|
|
|
|
|
record.PerfusionRefrigerantTypeLeft = asciiEncoding.GetString(codeInfo.Skip(28).Take(7).ToArray()).Trim('\n').Replace("\0", "");
|
|
|
|
|
record.PerfusionRefrigerantTypeRight = asciiEncoding.GetString(codeInfo.Skip(38).Take(7).ToArray()).Trim('\n').Replace("\0", "");
|
|
|
|
|
record.PerfusionSetVolume = byteToFloat(info.Skip(78).Take(4).ToArray()).ToString().Replace("\0", "");
|
|
|
|
|
record.PerfusionSystem = short.Parse(StringChange.bytesToHexStr(info.Skip(82).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString().Replace("\0", "");
|
|
|
|
|
///灌注完成状态字
|
|
|
|
|
record.PerfusionFinishStatus = short.Parse(StringChange.bytesToHexStr(info.Skip(46).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString().Replace("\0", "");
|
|
|
|
|
record.PerfusionResult = short.Parse(StringChange.bytesToHexStr(info.Skip(48).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
|
|
|
|
|
record.CreatedBy = "equip";
|
|
|
|
|
record.CreatedTime = DateTime.Now;
|
|
|
|
|
record.UpdatedBy = "equip";
|
|
|
|
|
record.UpdatedTime = DateTime.Now;
|
|
|
|
|
#endregion
|
|
|
|
|
// Console.WriteLine("灌注记录:" + record.ToJson());
|
|
|
|
|
#region 设备状态赋值
|
|
|
|
|
deviceStatus.PerfusionDevicetype = "灌注";
|
|
|
|
|
deviceStatus.PerfusionStatus = short.Parse(StringChange.bytesToHexStr(info.Skip(50).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
|
|
|
|
|
deviceStatus.CreatedBy = "equip";
|
|
|
|
|
deviceStatus.CreatedTime = DateTime.Now;
|
|
|
|
|
deviceStatus.UpdatedBy = "equip";
|
|
|
|
|
deviceStatus.UpdatedTime = DateTime.Now;
|
|
|
|
|
#endregion
|
|
|
|
|
// Console.WriteLine("设备状态:" + deviceStatus.ToJson());
|
|
|
|
|
#region 设备报警赋值
|
|
|
|
|
alarmInfo.PerfusionBoxcode = record.PerfusionBoxCode;
|
|
|
|
|
alarmInfo.PerfusionStatus = short.Parse(StringChange.bytesToHexStr(info.Skip(52).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
|
|
|
|
|
alarmInfo.PerfusionAlarm = AlarmTrans(alarmInfo.PerfusionStatus);
|
|
|
|
|
alarmInfo.PerfusionCompleted = "1";
|
|
|
|
|
alarmInfo.CreatedBy = "equip";
|
|
|
|
|
alarmInfo.CreatedTime = DateTime.Now;
|
|
|
|
|
alarmInfo.UpdatedBy = "equip";
|
|
|
|
|
alarmInfo.UpdatedTime = DateTime.Now;
|
|
|
|
|
#endregion
|
|
|
|
|
// Console.WriteLine("报警信息:" + alarmInfo.ToJson());
|
|
|
|
|
// Console.WriteLine("\n");
|
|
|
|
|
return record;
|
|
|
|
|
}
|
|
|
|
|
static string AlarmTrans(short code)
|
|
|
|
|
{
|
|
|
|
|
string result = "";
|
|
|
|
|
switch (code)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
case 2: result = "充注枪真空不合格"; break;
|
|
|
|
|
case 4: result = "充注故障"; break;
|
|
|
|
|
case 8: result = "充注时真空度超限定"; break;
|
|
|
|
|
case 16: result = "回升检测不合格"; break;
|
|
|
|
|
case 32: result = "工件真空不合格"; break;
|
|
|
|
|
case 64: result = "平衡缸接近开关异常"; break;
|
|
|
|
|
case 128: result = "增压超时"; break;
|
|
|
|
|
case 256: result = "风压不足"; break;
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 字符工具转换方法
|
|
|
|
|
/// byte[]转十进制ascii码
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="bytes"></param>
|
|
|
|
|
static string ByteArrayToString(byte[] bytes)
|
|
|
|
|
{
|
|
|
|
|
string result = string.Empty;
|
|
|
|
|
foreach (byte b in bytes)
|
|
|
|
|
{
|
|
|
|
|
int decimalValue = Convert.ToInt32(b); // 将字节转换为十进制值
|
|
|
|
|
result += decimalValue;
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// byte[]转二进制
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="bytes"></param>
|
|
|
|
|
static string ByteArrayToBinary(byte[] bytes)
|
|
|
|
|
{
|
|
|
|
|
StringBuilder binaryString = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
foreach (byte b in bytes)
|
|
|
|
|
{
|
|
|
|
|
binaryString.Append(Convert.ToString(b, 2).PadLeft(8, '0'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Console.WriteLine(binaryString);
|
|
|
|
|
|
|
|
|
|
string reversedStr = new string(binaryString.ToString().Reverse().ToArray());
|
|
|
|
|
// Console.WriteLine(reversedStr);
|
|
|
|
|
|
|
|
|
|
return reversedStr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 根据二进制字符串确定夹具状态 1正常生产 2暂停生产
|
|
|
|
|
/// </summary>
|
|
|
|
|
static int judgeStatus(string str1)
|
|
|
|
|
{
|
|
|
|
|
int item1 = 0;
|
|
|
|
|
if (str1.Substring(0, 1) == "1")
|
|
|
|
|
{
|
|
|
|
|
item1 = 1; //
|
|
|
|
|
}
|
|
|
|
|
else if (str1.Substring(1, 1) == "1")
|
|
|
|
|
{
|
|
|
|
|
item1 = 2; //
|
|
|
|
|
}
|
|
|
|
|
return item1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// byte数组转换为float
|
|
|
|
|
/// </summary>
|
|
|
|
|
static float byteToFloat(byte[] list)
|
|
|
|
|
{
|
|
|
|
|
float result = 0.00f;
|
|
|
|
|
Array.Reverse(list);
|
|
|
|
|
result = BitConverter.ToSingle(list, 0);
|
|
|
|
|
// 只保留两位小数
|
|
|
|
|
// string str = result.ToString("0.00");
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// byte数组转换为double
|
|
|
|
|
/// </summary>
|
|
|
|
|
static double byteToDouble(byte[] list)
|
|
|
|
|
{
|
|
|
|
|
double result = 0;
|
|
|
|
|
Array.Reverse(list);
|
|
|
|
|
result = BitConverter.ToDouble(list, 0);
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 保存过点数
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 保存过点数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="record"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public bool InsertToCompleteAndCheck(Perfusion_Record record)
|
|
|
|
|
{
|
|
|
|
|
var barcode = _printBarCodeServices.FirstAsync(d => d.MaterialBarcode == record.PerfusionBoxCode).Result;
|
|
|
|
|
|
|
|
|
|
if (barcode == null) return false;
|
|
|
|
|
#region 更新过点数据
|
|
|
|
|
MaterialCompletion completion = new MaterialCompletion();
|
|
|
|
|
completion.OrderCode = barcode.OrderCode;
|
|
|
|
|
completion.MaterialBarcode = record.PerfusionBoxCode;
|
|
|
|
|
completion.MaterialCode = barcode.MaterialCode;
|
|
|
|
|
completion.MaterialName = barcode.MaterialName;
|
|
|
|
|
completion.StationName = "2015";
|
|
|
|
|
completion.ProductLineCode = "CX_02";
|
|
|
|
|
completion.CompleteDate = DateTime.Now;
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
int r = _materialCompletionServices.AddAsync(completion).Result;
|
|
|
|
|
if (r > 0) return true;
|
|
|
|
|
else return false;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 发送质检请求
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 发送质检请求
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="list"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public void ToMes()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var list = _perfusionRecordServices.QueryAsync(d => d.IsFlag == 0).Result;
|
|
|
|
|
if (list == null || list.Count == 0) return;
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】开始向质检发送灌注数据");
|
|
|
|
|
foreach (var perfusionHistory in list)
|
|
|
|
|
{
|
|
|
|
|
var r = _reportQualityInspectionServices.FirstAsync(d => d.BarCode == perfusionHistory.PerfusionBoxCode && d.TreatmentMeasure == "3" && d.StationCode == "2015").Result;
|
|
|
|
|
if (r != null)
|
|
|
|
|
{
|
|
|
|
|
var checkList = _perfusionRecordServices.GetPerfusionRecord(perfusionHistory.ObjId).Result;
|
|
|
|
|
if (checkList != null)
|
|
|
|
|
{
|
|
|
|
|
var check = checkList.First();
|
|
|
|
|
r.FinishTime = check.FinishTime;
|
|
|
|
|
r.BarCode = check.BarCode;
|
|
|
|
|
r.MaterialName = check.MaterialName;
|
|
|
|
|
r.ProcessCode = check.ProcessCode;
|
|
|
|
|
r.TestItemCode = check.TestItemCode;
|
|
|
|
|
r.QualityDefectCode = check.QualityDefectCode;
|
|
|
|
|
r.QualityDefectName = check.QualityDefectName;
|
|
|
|
|
r.TreatmentMeasure = check.TreatmentMeasure;
|
|
|
|
|
r.ProcessResult = check.ProcessResult;
|
|
|
|
|
r.GroupCode = check.GroupCode;
|
|
|
|
|
r.InspectorCode = check.InspectorCode;
|
|
|
|
|
r.InspectorTime = check.InspectorTime;
|
|
|
|
|
r.ReworkNumber = check.ReworkNumber;
|
|
|
|
|
r.IsFlag = check.IsFlag;
|
|
|
|
|
r.StationCode = check.StationCode;
|
|
|
|
|
r.UpdatedTime = DateTime.Now;
|
|
|
|
|
bool reportResult = _reportQualityInspectionServices.UpdateAsync(r).Result;
|
|
|
|
|
if (reportResult)
|
|
|
|
|
{
|
|
|
|
|
perfusionHistory.IsFlag = 1;
|
|
|
|
|
_ = _perfusionRecordServices.UpdateAsync(perfusionHistory).Result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var checkList = _perfusionRecordServices.GetPerfusionRecord(perfusionHistory.ObjId).Result;
|
|
|
|
|
if (checkList != null)
|
|
|
|
|
{
|
|
|
|
|
var check = checkList.First();
|
|
|
|
|
ReportQualityInsPection report = new ReportQualityInsPection();
|
|
|
|
|
if (check.TreatmentMeasure == "3")
|
|
|
|
|
{
|
|
|
|
|
report.FinishTime = null;
|
|
|
|
|
report.UpdatedTime = null;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
report.FinishTime = check.FinishTime;
|
|
|
|
|
report.UpdatedTime = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
report.BarCode = check.BarCode;
|
|
|
|
|
report.MaterialName = check.MaterialName;
|
|
|
|
|
report.ProcessCode = check.ProcessCode;
|
|
|
|
|
report.TestItemCode = check.TestItemCode;
|
|
|
|
|
report.QualityDefectCode = check.QualityDefectCode;
|
|
|
|
|
report.QualityDefectName = check.QualityDefectName;
|
|
|
|
|
report.TreatmentMeasure = check.TreatmentMeasure;
|
|
|
|
|
report.ProcessResult = check.ProcessResult;
|
|
|
|
|
report.GroupCode = check.GroupCode;
|
|
|
|
|
report.InspectorCode = check.InspectorCode;
|
|
|
|
|
report.InspectorTime = check.InspectorTime;
|
|
|
|
|
report.ReworkNumber = check.ReworkNumber;
|
|
|
|
|
report.IsFlag = check.IsFlag;
|
|
|
|
|
report.StationCode = check.StationCode;
|
|
|
|
|
report.UpdatedTime = DateTime.Now;
|
|
|
|
|
int reportResult = _reportQualityInspectionServices.AddAsync(report).Result;
|
|
|
|
|
if (reportResult > 0)
|
|
|
|
|
{
|
|
|
|
|
perfusionHistory.IsFlag = 1;
|
|
|
|
|
_ = _perfusionRecordServices.UpdateAsync(perfusionHistory).Result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】更新灌注质检数据成功!");
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】更新测温质检数据失败!原因:{ex.Message}");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
}
|