private Task <OperationResultGeneralRep> SyncSetTerminalParas(TerminalOperationClient client, string terminalCode, TerminalSettingsIssuedModel model) { TerminalParasData paraItems = new TerminalParasData(); if (model.车牌颜色.HasValue) { paraItems.车牌颜色 = (PlateColor)model.车牌颜色.Value; } paraItems.终端心跳发送间隔 = model.终端心跳发送间隔; paraItems.主服务器IP地址或域名 = model.主服务器IP地址或域名; paraItems.备份服务器IP地址或域名 = model.备份服务器IP地址或域名; paraItems.务器TCP端口 = model.务器TCP端口; paraItems.休眠时汇报时间间隔 = model.休眠时汇报时间间隔; paraItems.紧急报警时汇报时间间隔 = model.紧急报警时汇报时间间隔; paraItems.缺省时间汇报间隔 = model.缺省时间汇报间隔; paraItems.最高速度 = model.最高速度; paraItems.超速持续时间 = model.超速持续时间; paraItems.连续驾驶时间门限 = model.连续驾驶时间门限; paraItems.当天累计驾驶时间门限 = model.当天累计驾驶时间门限; paraItems.最小休息时间 = model.最小休息时间; paraItems.最长停车时间 = model.最长停车时间; paraItems.超速报警预警差值 = model.超速报警预警差值; paraItems.疲劳驾驶预警差值 = model.疲劳驾驶预警差值; paraItems.车辆里程表读数 = model.车辆里程表读数; paraItems.公安交通管理部门颁发的机动车号牌 = model.公安交通管理部门颁发的机动车号牌; return(client.SetTerminalParasAsync(terminalCode, new TerminalParasSettingData() { ParaItems = paraItems })); }
public async Task <ActionResult> UpdateTerminalSetting(TerminalSettingsIssuedModel model) { ActionResult result = null; List <TerminalWCfModel> wcfList = null; if (!this.CheckWCF(model.ListVehicles, out result, out wcfList)) { return(result); } // 记录错误信息 string errorMsg = string.Empty; bool updateTerminal = true; // 调用wcf服务 如果终端属于同一个wcf地址 那么可以公用一个client实例 try { var syncResult = await this.DoOperation <TerminalSettingsIssuedModel, OperationResultGeneralRep>(wcfList, model, SyncSetTerminalParas).ConfigureAwait(false); int index = 0; string valuesSql = string.Empty; string setInfo = GetProperties <TerminalSettingsIssuedModel>(model); string wanIP = GetRemoteAddress(); DateTime setDTime = DateTime.Now; List <string> listTerminalCode = new List <string>(); foreach (var item in syncResult) { string plateNum = wcfList[index].PlateNum; string terminalCode = wcfList[index].TerminalCode; string resultResponse = "Code:" + (int)(OperationResultCode)item.Code + ";Message:" + item.Message; // 记录日志 文本消息下发 这里拼接sql语句 批量插入 valuesSql += string.Format("('{0}','{1}',{2},'{3}',{4},'{5}','{6}',{7},'{8}'),", terminalCode, plateNum, (byte)TerminalSettingTypeEnum.TerminalSetup_Update, setInfo, item.State ? 1 : 0, resultResponse, wanIP, base.CurrentUserID, setDTime); if (!item.State) { //errorMsg += string.Format("<div style='font-weight:bolder;'>" + UIText.TerminalSetting_PlateNumber + // ":{0}{1},"+PromptInformation.FailReason+":{2}{3}</div>", plateNum, "<br/>", // item.Code.ToString(), "<hr/>"); errorMsg += ErrorMesage(plateNum, item.Code.ToString()); } else { //这里记录修改成功的终端值 listTerminalCode.Add(terminalCode); } index++; } //如果下发终端成功了 则修改TMS表中对应终端的数据 if (listTerminalCode.Count > 0) { TerminalSettingsSectionModel sectionModel = new TerminalSettingsSectionModel() { 最高速度 = model.最高速度, 超速持续时间 = model.最高速度, 连续驾驶时间门限 = model.最高速度, 最小休息时间 = model.最小休息时间, 当天累计驾驶时间门限 = model.当天累计驾驶时间门限, 最长停车时间 = model.最长停车时间 }; updateTerminal = TerminalBLL.UpdateTerminals(listTerminalCode, sectionModel); } // 批量插入日志 TerminalSettingsBLL.BatchInsertTerminalOperationsLog(valuesSql.TrimEnd(',')); } catch (Exception ex) { LogHelper.TerminalSettingsErrorLog("下发终端设置异常:" + ex.Message); return(Json(new { Success = false, Message = PromptInformation.RemotingError })); } if (!updateTerminal) { return(Json(new { Success = false, Message = PromptInformation.TerminalSetting_UpdateTerminalSettingFail })); } if (string.IsNullOrEmpty(errorMsg)) { return(Json(new { Success = true, Message = PromptInformation.TerminalSetting_UpdateTerminalSettingSuccess })); } else { return(Json(new { Success = false, Message = errorMsg })); } }