| | |
| | | public MES_WO_NODE_ACT NodeAct { get; set; } |
| | | public MES_WO_ACTION Setting { get; set; } |
| | | #endregion |
| | | private MES_WIP_PKG CurPkg; |
| | | |
| | | #endregion Propertys & Variables |
| | | |
| | | #region Functions |
| | |
| | | Setting = setting; |
| | | #endregion |
| | | |
| | | CurPkg = Biz.Db.Queryable<MES_WIP_PKG>().Where(q => q.SN == CurPosition.CurSN && q.AUTH_ORG == CurPosition.WorkBatch.WO.AUTH_ORG).First() ?? new() |
| | | { |
| | | AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, |
| | | AUTH_PROD = CurPosition.CurLine.LINE_CODE, |
| | | SN = CurPosition.CurSN, |
| | | PKG_TYPE = CurPosition.WorkBatch.WO.ItemInfo?.UNIT, |
| | | ITEM_CODE = CurPosition.CurWipSNs.First().ITEM_CODE, |
| | | QTY = CurPosition.CurWipSNs.Sum(q => q.QTY), |
| | | UNIT = CurPosition.WorkBatch.WO.ItemInfo?.UNIT, |
| | | WORK_ORDER = CurPosition.CurWipSNs.First().WORK_ORDER, |
| | | BATCH_NO = CurPosition.CurWipSNs.First().BATCH_NO, |
| | | ROT_CODE = CurPosition.CurWipSNs.First().ROT_CODE, |
| | | NODE_ID = CurPosition.CurWipSNs.First().NODE_ID, |
| | | NODE_NAME = CurPosition.CurWipSNs.First().NODE_NAME, |
| | | FTY_CODE = CurPosition.CurWipSNs.First().FTY_CODE, |
| | | WS_CODE = CurPosition.CurWipSNs.First().WS_CODE, |
| | | LINE_CODE = CurPosition.CurWipSNs.First().LINE_CODE, |
| | | POST_CODE = CurPosition.CurWipSNs.First().POST_CODE, |
| | | OPER_CODE = CurPosition.CurWipSNs.First().OPER_CODE, |
| | | SEGMENT = CurPosition.CurWipSNs.First().SEGMENT, |
| | | }; |
| | | |
| | | |
| | | CurStep.Message = Biz.L("等待称重数据"); |
| | | CurStep.Message = Biz.L("生产报工"); |
| | | CurStep.Status = StepStatus.Normal; |
| | | } |
| | | |
| | |
| | | /// <returns></returns> |
| | | public Locale GetBeginMsg() |
| | | { |
| | | var msg = new Locale("MES.WorkAction.Weighing.BeginMsg", CurPosition.CurSN); |
| | | //var msg = new Locale($"请把产品[{CurPosition.CurSN}]上称称重"); |
| | | var msg = new Locale("MES.WorkAction.YadaWoReport.BeginMsg", CurPosition.WorkBatch.WO.ORDER_NO); |
| | | //var msg = new Locale($"工单[{0}]生产报工"); |
| | | return msg; |
| | | } |
| | | |
| | |
| | | action.LocaleMsg = GetBeginMsg(); |
| | | |
| | | //如果返回成功则认为当前行为可以开始执行,否则返回失败 |
| | | CurStep.Message = Biz.L("称重开始"); |
| | | CurStep.Message = Biz.L("开始生产报工"); |
| | | CurStep.Status = StepStatus.Normal; |
| | | action.IsSuccessed = true; |
| | | action.Data.ShortMsg = new("称重开始", ShortMessage.Types.Success); |
| | | action.Data.ShortMsg = new("开始生产报工", ShortMessage.Types.Success); |
| | | return action; |
| | | } |
| | | |
| | |
| | | { |
| | | var action = new ApiAction<SubmitOutput>(new SubmitOutput()); |
| | | |
| | | action = SaveWeightInfo(input, action); |
| | | action = ReportToERP(input, action); |
| | | //上料数据保存失败 |
| | | if (!action.IsSuccessed) |
| | | { |
| | |
| | | return action; |
| | | } |
| | | |
| | | public ApiAction<SubmitOutput> SaveWeightInfo(SubmitInput input, ApiAction<SubmitOutput> action) |
| | | public ApiAction<SubmitOutput> ReportToERP(SubmitInput input, ApiAction<SubmitOutput> action) |
| | | { |
| | | try |
| | | { |
| | | var wInput = input?.Data?.JsonToObject<WeightInfo>(); |
| | | CurPkg.WEIGHT = wInput.Weight; |
| | | CurPkg.WEIGHT_UNIT = wInput.Unit; |
| | | |
| | | |
| | | } |
| | | catch (System.Exception ex) |
| | | { |
| | | CurStep.Message = Biz.L("称重异常"); |
| | | CurStep.Message = Biz.L("生产报工异常"); |
| | | CurStep.Status = StepStatus.Error; |
| | | action.Data.ShortMsg = new("称重异常", ShortMessage.Types.Error); |
| | | action.CatchExceptionWithLog(ex, $"称重行为:条码[{CurPosition.CurSN}]称重数据[{input?.Data?.ToString()}]保存异常"); |
| | | action.LocaleMsg = new("MES.WorkAction.Weighing.SaveWeightInfoException", CurPosition.CurSN, input?.Data.ToString()); |
| | | action.Data.ShortMsg = new("生产报工异常", ShortMessage.Types.Error); |
| | | action.CatchExceptionWithLog(ex, $"生产报工行为:工单[{CurPosition.WorkBatch.WO.ORDER_NO}]生产报工异常"); |
| | | action.LocaleMsg = new("MES.WorkAction.YadaWoReport.ReportToERPException", CurPosition.WorkBatch.WO.ORDER_NO); |
| | | } |
| | | return action; |
| | | } |
| | |
| | | ACT_TYPE = NodeAct.ACT_TYPE, |
| | | ACT_SN = wipSn.SN, |
| | | ACT_RESULT = "Y", |
| | | ACT_VALUE_1 = "报公数据", |
| | | ELAPSED_TIME = CurStep.GetElapsedTime().TotalMilliseconds.ToInt64(), |
| | | TRACE_INFO = $"条码[{CurPosition.CurSN}]称重数据[{CurPkg.WEIGHT} {CurPkg.WEIGHT_UNIT}]保存成功", |
| | | TRACE_INFO = $"工单[{CurPosition.WorkBatch.WO.ORDER_NO}]生产报工成功", |
| | | }; |
| | | wipActs.Add(wipAct); |
| | | } |
| | | |
| | | //创建变量克隆对象用于传入DBSubmitAction中保存当前需要暂存的数据值 |
| | | var _wipActs = wipActs.Clone(); |
| | | var _CurPkg = CurPkg.Clone(); |
| | | //保存数据 |
| | | CurStep.DBSubmitAction = () => |
| | | { |
| | | var db = CurPosition.GetCommitDB(); |
| | | db.Storageable(_wipActs, CurPosition.UserCode).ExecuteCommand(); |
| | | db.Storageable(_CurPkg, CurPosition.UserCode).ExecuteCommand(); |
| | | }; |
| | | |
| | | IsFinished = true; |
| | | CurStep.Message = Biz.L("称重完成"); |
| | | CurStep.Message = Biz.L("生产报工完成"); |
| | | CurStep.Status = StepStatus.Finished; |
| | | action.Data.ShortMsg = new("称重完成", ShortMessage.Types.Success); |
| | | //action.LocaleMsg = new($"条码[{CurPosition.CurSN}]称重数据[{CurPkg.WEIGHT} {CurPkg.WEIGHT_UNIT}]保存成功"); |
| | | action.LocaleMsg = new("MES.WorkAction.Weighing.SaveSuccess", CurPosition.CurSN, CurPkg.WEIGHT, CurPkg.WEIGHT_UNIT); |
| | | action.Data.ShortMsg = new("生产报工完成", ShortMessage.Types.Success); |
| | | //action.LocaleMsg = new($"工单[{0}]生产报工成功"); |
| | | action.LocaleMsg = new("MES.WorkAction.YadaWoReport.SaveSuccess", CurPosition.WorkBatch.WO.ORDER_NO); |
| | | return action; |
| | | } |
| | | |