/// <summary> /// 获取动作处理者 /// </summary> /// <param name="record"></param> /// <returns></returns> public ActionHandlerBase GetHandler(CRANE_ACTION_RECORD_X record) { ActionHandlerBase handler = null; switch (record.ACTION_SYMBOL) { case 1: //1空包起吊 handler = new EmptyHoistHandler(); break; case 2: //2重包起吊 handler = new FullHoistHandler(); break; case 3: //3空包放吊 handler = new EmptyDropHandler(); break; case 4: //4重包放吊 handler = new FullDropHandler(); break; case 5: //5兑物 handler = new PourHandler(); break; } if (handler != null) { handler.Record = record; } return(handler); }
/// <summary> /// 处理 /// </summary> public void Request(CRANE_ACTION_RECORD_X record) { try { HandlerProvider handlerProvider = new HandlerProvider(); ActionHandlerBase handler = handlerProvider.GetHandler(record); if (handler != null) { VisitorProvider visitorProvider = new VisitorProvider(); VisitorBase visitor = visitorProvider.GetVisitor(record); handler.Handle(visitor); } } catch (Exception e) { log.WriteLog(E_ProcessLogType.Error, "物重处理异常。" + e.Message); } try { record.DEAL_SYMBOL = 2; CalculateWeightService.Instance.Update_CRANE_ACTION_RECORD_X(record); } catch (Exception e) { log.WriteLog(E_ProcessLogType.Error, "更新动作记录异常。" + e.Message); } }
public VisitorBase GetVisitor(CRANE_ACTION_RECORD_X record) { WST wst = WstManager.MatchWst((int)record.COORD_X, (int)record.COORD_Y); if (wst != null) { VisitorBase visitor = GetVisitor(wst.FIELD2); visitor.Wst = wst; return(visitor); } else { return(new UnknowVisitor()); } }
/// <summary> /// 插入精炼出站物重记录 /// </summary> /// <param name="record"></param> /// <param name="type"></param> private void InsertRefineOutWeightRecord(CRANE_ACTION_RECORD_X record) { WST_WEIGHT_RECORD wRecord = new WST_WEIGHT_RECORD() { CRA = record.CRA_ID.CRA_NUM, CREAT_TIME = DateTime.Now, DEVICE = Wst.OBJ_ID.NUM, DEVICE_TYPE = 2, WST = Wst.NUM, IO_TYPE = 3, GROSS_WEIGHT = record.WEIGHT, TARE_WEIGHT = record.WEIGHT, END_TIME = record.OPERATION_TIME, TYPE = 4, FLAG = 0, }; wRecord.NET_WEIGHT = wRecord.GROSS_WEIGHT - wRecord.TARE_WEIGHT; CalculateWeightService.Instance.Insert_WST_WEIGHT_RECORD(wRecord); }
/// <summary> /// 插入铁水物重记录 /// </summary> /// <param name="record"></param> /// <param name="type"></param> private void InsertHmlWeightRecord(CRANE_ACTION_RECORD_X record) { WST_WEIGHT_RECORD wRecord = new WST_WEIGHT_RECORD() { CRA = record.CRA_ID.CRA_NUM, CREAT_TIME = DateTime.Now, DEVICE = Wst.OBJ_ID.NUM, DEVICE_TYPE = 1, WST = Wst.NUM, IO_TYPE = 1, GROSS_WEIGHT = record.WEIGHT, TARE_WEIGHT = (int)Convert.ToDouble(record.FIELD1), START_TIME = Convert.ToDateTime(record.FIELD2), END_TIME = record.OPERATION_TIME, TYPE = 2, FLAG = 0, CON_NUM = null, FIELD2 = null, NET_WEIGHT = record.WEIGHT - (int)Convert.ToDouble(record.FIELD1) }; CalculateWeightService.Instance.Insert_WST_WEIGHT_RECORD(wRecord); }
/// <summary> /// 更新动作记录 /// </summary> /// <param name="record"></param> public void Update_CRANE_ACTION_RECORD_X(CRANE_ACTION_RECORD_X record) { OracleDataHelper.Update(record); }