服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-09-12 f6c758a94829953aa75bbe888c6dfa99d077c8df
Tiger.Business.MES/WorkAction/VerifyCustomSN.cs
@@ -1,4 +1,5 @@
using Rhea.Common;
using Org.BouncyCastle.Ocsp;
using Rhea.Common;
using SqlSugar;
using System;
using System.Collections.Generic;
@@ -12,7 +13,7 @@
namespace Tiger.Business.MES.WorkAction
{
    public class VerifyCustomSN : IVerifyItem
    public class VerifyCustomSN : IVerifyCustomSN
    {
        #region Propertys & Variables
        #region 固定写法,工序中的必要信息
@@ -22,7 +23,7 @@
        public MES_WO_NODE_ACT NodeAct { get; set; }
        public MES_WO_ACTION Setting { get; set; }
        #endregion
        public BAS_ITEM_CUST CustInfo { get; set; }
        #endregion Propertys & Variables
        #region Functions
@@ -39,8 +40,10 @@
            Setting = setting;
            #endregion
            CurStep.Message = Biz.L("验证产品数据");
            CurStep.Status = StepStatus.Normal;
            //获取当前产品在当前客户的关系
            CustInfo = Biz.Db.Queryable<BAS_ITEM_CUST>().Where(q => q.ITEM_ID == CurPosition.WorkBatch.WO.ItemInfo.ID && q.CUST_CODE == CurPosition.WorkBatch.WO.CUST_CODE).First();
            CurStep.SetStatusMessage(StepStatus.Normal, Biz.L("验证是否客户标签"));
        }
        /// <summary>
@@ -49,8 +52,8 @@
        /// <returns></returns>
        public Locale GetBeginMsg()
        {
            var msg = new Locale("MES.WorkAction.VerifyItem.BeginMsg");
            //var msg = new Locale($"开始验证产品[{CurPosition.CurWipSN.SN}]");
            var msg = new Locale("MES.WorkAction.VerifyCustomSN.BeginMsg", CurPosition.CurSN);
            //var msg = new Locale($"开始验证条码[{0}]是否客户标签");
            return msg;
        }
@@ -85,7 +88,7 @@
            if (!action.IsSuccessed)
            {
                //如果行为设置为出错需要重置工序操作
                if (NodeAct.NEED_RESET == "Y")
                //if (NodeAct.NEED_RESET == "Y")
                {
                    CurPosition.ResetNode();
                }
@@ -99,23 +102,17 @@
            {
                var isOK = true;
                //验证逻辑
                //if (input.SN.IsNullOrEmpty())
                if (!CustInfo.RULE_CODE.IsNullOrEmpty() && !Biz.CodeRule[CustInfo.RULE_CODE].IsNullOrEmpty())
                {
                    CurStep.Message = Biz.L("验证失败");
                    CurStep.Status = StepStatus.Error;
                    action.Data.ShortMsg = new("验证失败", ShortMessage.Types.Failed);
                    action.IsSuccessed = isOK = false;
                    //action.LocaleMsg = new Locale($"错误:[{ExtInfo.FIELD_NAME}]标签条码不能为空,请重新扫描");
                    //action.LocaleMsg = new Locale("MES.WorkAction.VerifyItem.SnEmptyError", ExtInfo.FIELD_NAME);
                }
                //if (CurPosition.CurWipSNs.Any(w => w.SN == input.SN))
                {
                    CurStep.Message = Biz.L("验证失败");
                    CurStep.Status = StepStatus.Error;
                    action.Data.ShortMsg = new("验证失败", ShortMessage.Types.Failed);
                    action.IsSuccessed = isOK = false;
                    //action.LocaleMsg = new Locale($"错误:扫描到产品条码[{input.SN}],请重新扫描[{ExtInfo.FIELD_NAME}]标签条码");
                    //action.LocaleMsg = new Locale("MES.WorkAction.VerifyItem.ScanProdSnError", input.SN, ExtInfo.FIELD_NAME);
                    var result = Biz.CodeRule[CustInfo.RULE_CODE].Verify(CurPosition.CurSN);
                    if (!result.IsSuccessed)
                    {
                        CurStep.SetStatusMessage(StepStatus.Error, Biz.L("客户标签验证失败"));
                        action.Data.ShortMsg = new("客户标签验证失败", ShortMessage.Types.Failed);
                        action.IsSuccessed = isOK = false;
                        //action.LocaleMsg = new Locale($"标签条码[{0}]未通过客户标签规则[{1}]验证,工序已重置,请重新扫描进站产品条码");
                        action.LocaleMsg = new Locale("MES.WorkAction.VerifyCustomSN.CustSnVerifyError", CurPosition.CurSN, CustInfo.RULE_CODE);
                    }
                }
                //验证通过则保存
@@ -123,18 +120,15 @@
                {
                    action = End(input);
                }
                //都没有物料验证通过,则返回错误信息
            }
            catch (System.Exception ex)
            {
                CurStep.Message = Biz.L("验证异常");
                CurStep.Status = StepStatus.Error;
                action.Data.ShortMsg = new("验证异常", ShortMessage.Types.Exception);
                action.CatchExceptionWithLog(ex, $"验证异常");
                CurStep.SetStatusMessage(StepStatus.Error, Biz.L("客户标签验证异常"));
                action.Data.ShortMsg = new("客户标签验证异常", ShortMessage.Types.Exception);
                action.CatchExceptionWithLog(ex, $"客户标签验证异常");
                action.IsSuccessed = false;
                //action.LocaleMsg = new($"产品[{CurPosition.CurSN}]验证异常,工序已重置,请重新扫描进站产品条码");
                //action.LocaleMsg = new("MES.WorkAction.VerifyItem.SaveExtInfoException", CurPosition.CurSN);
                //action.LocaleMsg = new($"标签条码[{0}]验证异常,工序已重置,请重新扫描进站产品条码");
                action.LocaleMsg = new("MES.WorkAction.VerifyCustomSN.CustSnVerifyException", CurPosition.CurSN);
                CurPosition.ResetNode();
            }
            return action;
@@ -201,11 +195,10 @@
            };
            IsFinished = true;
            CurStep.Message = Biz.L("验证通过");
            CurStep.Status = StepStatus.Finished;
            action.Data.ShortMsg = new("验证通过", ShortMessage.Types.Success);
            //action.LocaleMsg = new($"产品[{CurPosition.CurSN}]验证通过");
            action.LocaleMsg = new("MES.WorkAction.VerifyItem.VerifySuccess", CurPosition.CurSN);
            CurStep.SetStatusMessage(StepStatus.Finished, Biz.L("客户标签验证通过"));
            action.Data.ShortMsg = new("客户标签验证通过", ShortMessage.Types.Success);
            //action.LocaleMsg = new($"客户标签条码[{0}]验证通过");
            action.LocaleMsg = new("MES.WorkAction.VerifyCustomSN.VerifySuccess", CurPosition.CurSN);
            return action;
        }