| | |
| | | using Rhea.Common; |
| | | using Org.BouncyCastle.Ocsp; |
| | | using Rhea.Common; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | |
| | | namespace Tiger.Business.MES.WorkAction |
| | | { |
| | | public class VerifyCustomSN : IVerifyItem |
| | | public class VerifyCustomSN : IVerifyCustomSN |
| | | { |
| | | #region Propertys & Variables |
| | | #region 固定写法,工序中的必要信息 |
| | |
| | | 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 |
| | |
| | | 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> |
| | |
| | | /// <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; |
| | | } |
| | | |
| | |
| | | if (!action.IsSuccessed) |
| | | { |
| | | //如果行为设置为出错需要重置工序操作 |
| | | if (NodeAct.NEED_RESET == "Y") |
| | | //if (NodeAct.NEED_RESET == "Y") |
| | | { |
| | | CurPosition.ResetNode(); |
| | | } |
| | |
| | | { |
| | | 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); |
| | | } |
| | | } |
| | | |
| | | //验证通过则保存 |
| | |
| | | { |
| | | 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; |
| | |
| | | }; |
| | | |
| | | 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; |
| | | } |
| | | |