|
using iWare_SCADA_Model;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Runtime.InteropServices.WindowsRuntime;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Web.UI.WebControls;
|
|
namespace iWare_SCADA_BusinessLogical.Utils
|
{
|
/// <summary>
|
/// 业务系统帮助类
|
/// </summary>
|
public class SystemBussinessHelper
|
{
|
|
/// <summary>
|
/// 模拟时间(返回秒)
|
/// </summary>
|
/// <param name="workingProcedure"></param>
|
/// <returns></returns>
|
public static int MoNiTimeForWorkingProcedure(string workingProcedure)
|
{
|
switch (workingProcedure)
|
{
|
case "OP10":
|
case "OP40":
|
return 4;
|
case "OP20":
|
return 2 * 60;
|
case "OP30":
|
return 2 * 60;
|
case "OP35":
|
return 1 * 60;
|
case "OP50":
|
return 3 * 60;
|
case "OP60":
|
return 4 * 60;
|
default:
|
return 1 * 60;
|
}
|
}
|
|
/// <summary>
|
/// 校验读取的二维码是否正确
|
/// </summary>
|
/// <param name="workPieceID"></param>
|
/// <returns></returns>
|
public static bool ValidateIsRightWorkPieceID(string workPieceID)
|
{
|
if (string.IsNullOrEmpty(workPieceID))
|
{
|
return false;
|
}
|
if (workPieceID.Length == 22)
|
{
|
var n_workPieceID = workPieceID.Trim();
|
if (n_workPieceID.Length == 22)
|
{
|
if (n_workPieceID.IndexOf("ERROR") > -1)
|
{
|
return false;
|
}
|
return true;
|
}
|
else
|
{
|
return false;
|
}
|
}
|
else
|
{
|
return false;
|
}
|
}
|
|
/// <summary>
|
/// 设置 WorkPieceInfo 的DataCapturePointCname
|
/// </summary>
|
/// <param name="workPieceLog"></param>
|
/// <param name="_DataCapturePointCode"></param>
|
/// <param name="_DataCapturePointName"></param>
|
public static void SetWorkPieceInfoMiddleForCreatedUserName(ref WorkPieceInfo workPiece, string _DataCapturePointName)
|
{
|
workPiece.DataCapturePointCname = _DataCapturePointName;
|
}
|
|
/// <summary>
|
/// 设置 WorkPieceInfo 的UpdateDataCapturePointCname
|
/// </summary>
|
/// <param name="workPieceLog"></param>
|
/// <param name="_DataCapturePointCode"></param>
|
/// <param name="_DataCapturePointName"></param>
|
public static void SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref WorkPieceInfo workPiece, string _DataCapturePointName)
|
{
|
workPiece.UpdateDataCapturePointCname = _DataCapturePointName;
|
}
|
|
/// <summary>
|
/// 设置WorkPieceLog 的创建人
|
/// </summary>
|
/// <param name="workPieceLog"></param>
|
/// <param name="_DataCapturePointCode"></param>
|
/// <param name="_DataCapturePointName"></param>
|
public static void SetWorkPieceLogMiddleForCreatedUserName(ref WorkPieceLogMiddle workPieceLog, string _DataCapturePointCode, string _DataCapturePointName)
|
{
|
workPieceLog.CreatedUserName = _DataCapturePointCode;
|
workPieceLog.DataCapturePointCname = _DataCapturePointName;
|
}
|
/// <summary>
|
/// 设置WorkPieceLog 的创建人
|
/// </summary>
|
/// <param name="workPieceLog"></param>
|
/// <param name="_DataCapturePointCode"></param>
|
/// <param name="_DataCapturePointName"></param>
|
public static void SetWorkPieceLogMiddleForCreatedUserName(ref WorkPieceLog workPieceLog, string _DataCapturePointCode, string _DataCapturePointName)
|
{
|
workPieceLog.CreatedUserName = _DataCapturePointCode;
|
workPieceLog.DataCapturePointCname = _DataCapturePointName;
|
}
|
|
/// <summary>
|
/// 设置WorkPieceLog 的更新人
|
/// </summary>
|
/// <param name="workPieceLog"></param>
|
/// <param name="_DataCapturePointCode"></param>
|
/// <param name="_DataCapturePointName"></param>
|
public static void SetWorkPieceLogMiddleForUpdatedUserName(ref WorkPieceLogMiddle workPieceLog, string _DataCapturePointCode, string _DataCapturePointName)
|
{
|
workPieceLog.UpdatedUserName = _DataCapturePointCode;
|
workPieceLog.UpdateDataCapturePointCname = _DataCapturePointName;
|
}
|
|
|
/// <summary>
|
/// 是否允许修改WorkPieceState 为WIP
|
/// </summary>
|
/// <param name="info"></param>
|
/// <param name="db"></param>
|
/// <param name="logMiddle"></param>
|
/// <returns></returns>
|
public static bool IsAllowUpdateWorkPieceStateToWip(WorkPieceInfo info, DbModel db, WorkPieceLogMiddle logMiddle)
|
{
|
//这里修复OP10、OP40 因为PLC先推 SPC推出、再推 产品下线问题,导致 产品下线更新数据时,把SPC数据覆盖的问题 【Editby shaocx,2024-08-27】
|
if (logMiddle.WorkingProcedure == "OP10" || logMiddle.WorkingProcedure == "OP40")
|
{
|
var curPross = db.WorkPieceProcess.Where(x => x.WorkPieceID == info.WorkPieceID).OrderByDescending(x => x.Id).FirstOrDefault();
|
if (curPross != null && curPross.OperationType == OperationType.SPC.ToString())
|
{
|
return false;
|
}
|
return true;
|
}
|
return true;
|
}
|
}
|
}
|