public ActionResult TestDllEvent(string primaryKey, TEST_PARAM_VIEWMODEL param) { var id = int.Parse(primaryKey); var model = _itemService.Get(item => item.SD_ITEM_ID == id); try { if (param.url.EndsWith("ManyDataItemApi")) { return(Error("url输入错误!接口应为:DataItemApi")); } var startTime = param.startTime; var endTime = param.endTime; if (param.endTime != DateTime.MinValue) { endTime = Convert.ToDateTime(param.endTime.ToDateString() + " 23:59:59"); } var cpats = new List <UN_SD_CPATS>(); var detailList = _itemResultService.GetCpatList(model.SD_ID.Value, param.startTime, endTime, param.patientId, ref cpats); if (cpats.Count == 0) { return(Info("没有找到符合条件的入组信息!", null)); } var result = _itemService.TestUrl(param.url.Trim(), id, model, param); if (result == null) { return(Error("测试失败!", null)); } //if (result.Count != cpatList.Count) return Error("测试失败!请检查信息填写是否正确!"); //更新执行日志表 var proLog = new PDP_PROC_LOG() { SD_ID = model.SD_ID, PROC_CAT_CODE = _procLogService.DataItemCatCode(), PROC_CONTENT_ID = model.SD_ITEM_ID.ToString(), PROC_URL = param.url, PATIENT_ID = param.patientId }; if (startTime != DateTime.MinValue) { proLog.START_TIME = startTime; } if (startTime != DateTime.MinValue) { proLog.END_TIME = endTime; } _procLogService.Insert(proLog); return(Success("测试成功!", result)); } catch (Exception ex) { if (model.SD_ID != null) { _itemService.InsertErrorLog(model.SD_ID.Value, 2, param.url, "数据项测试失败!异常信息:" + ex.Message, "2"); } return(Error("测试失败!")); } }
public ActionResult ExecuteDllEvent(string primaryKey, TEST_PARAM_VIEWMODEL param)// string url) { var id = int.Parse(primaryKey); var model = _itemService.Get(item => item.SD_ITEM_ID == id); try { var cpats = new List <UN_SD_CPATS>(); var detailList = _itemResultService.GetCpatList(model.SD_ID.Value, param.startTime, param.endTime, param.patientId, ref cpats); if (cpats.Count == 0) { return(Info("没有找到符合条件的入组信息!")); } _itemService.ExecuteUrl(param.url.Trim(), id, param.clientKey, model, param); //更新执行状态表 if (model.SD_ID != null) { _procStateService.DataItemDoExecute(model.SD_ID.Value, model.SD_ITEM_ID.ToString()); //更新执行日志表 var proLog = new PDP_PROC_LOG() { SD_ID = model.SD_ID, PROC_CAT_CODE = _procLogService.DataItemCatCode(), PROC_CONTENT_ID = model.SD_ITEM_ID.ToString(), PATIENT_ID = param.patientId, PROC_URL = param.url, PROC_STAT_CODE = 2 }; if (param.startTime != DateTime.MinValue) { proLog.START_TIME = param.startTime; } if (param.endTime != DateTime.MinValue) { proLog.END_TIME = param.endTime; } _procLogService.Insert(proLog); } var proc = _procStateService.Get(item => item.PROC_CONTENT_ID == primaryKey && item.SD_ID == model.SD_ID.Value); var data = new Dictionary <string, string> { { "exeUser", proc.UPD_USER_ID }, { "exeTime", proc.UPD_DATE.ToString() } }; return(Success("数据项正在后台执行,可在首页查看进度!", data));// : Error("执行失败!请检查信息是否完整!"); } catch (Exception ex) { if (model.SD_ID != null) { _itemService.InsertErrorLog(model.SD_ID.Value, 1, param.url, "数据项执行失败!异常信息:" + ex.Message, "2"); } return(Error("执行失败!" + ex.ToString())); } }
/// <summary> /// 清库 /// </summary> /// <param name="primaryKey"></param> /// <returns></returns> public ActionResult ClearData(string primaryKey) { var id = int.Parse(primaryKey); var model = _itemService.Get(item => item.SD_ITEM_ID == id); try { var count = _itemResultService.GetUnitDataCount(id); var result = _itemResultService.UnitClearData(id); if (result == count) { //更新执行状态表 _procStateService.DataItemDoClear(model.SD_ID.Value, primaryKey); //更新执行日志表 var proLog = new PDP_PROC_LOG() { SD_ID = model.SD_ID, PROC_CAT_CODE = _procLogService.DataItemCatCode(), PROC_CONTENT_ID = model.SD_ITEM_ID.ToString(), PATIENT_ID = "", PROC_URL = "", PROC_STAT_CODE = 3 }; _procLogService.Insert(proLog); //更新数据项 _itemService.Update(model); } var proc = _procStateService.Get(item => item.PROC_CONTENT_ID == primaryKey && item.SD_ID == model.SD_ID.Value); var user = _userService.Get(u => u.Id == proc.UPD_USER_ID); var userName = user == null ? proc.UPD_USER_ID : user.RealName; var data = new Dictionary <string, string> { { "exeUser", userName }, { "exeTime", proc.UPD_DATE.ToString() } }; return(result == count?Success("清库成功!", data) : Error("清库失败!")); } catch (Exception ex) { _itemService.InsertErrorLog(model.SD_ID.Value, 0, "", "清库失败!" + ex.Message, "2"); return(Error("清库失败!")); } }
public ActionResult TestDllEvent(string primaryKey, TEST_PARAM_VIEWMODEL param) { var id = int.Parse(primaryKey); var model = _sDataItemService.Get(item => item.SITEM_ID == id); try { var result = _sDataItemService.TestUrl(param.url.Trim(), id, "", model, param); if (result == null) { return(Error("api接口调用失败,url或参数信息不正确!", null)); } //更新执行日志表 var proLog = new PDP_PROC_LOG() { SD_ID = int.Parse(model.SD_ID), PROC_CAT_CODE = _procLogService.SDataItemCatCode(), PROC_CONTENT_ID = model.SITEM_ID.ToString(), PROC_URL = param.url, PATIENT_ID = param.patientId }; if (param.startTime != DateTime.MinValue) { proLog.START_TIME = param.startTime; } if (param.startTime != DateTime.MinValue) { proLog.END_TIME = param.endTime; } _procLogService.Insert(proLog); return(Success("测试成功!", result)); } catch (Exception ex) { if (model.SD_ID != null) { _itemService.InsertErrorLog(int.Parse(model.SD_ID), 2, param.url, "数据项测试失败!异常信息:" + ex.Message, "4"); } return(Error("测试失败!")); } }
public ActionResult ClearDataAll(string clientKey, string ids, string type) { var itemIdList = ids.Split(',').ToList(); Task.Factory.StartNew(() => { double index = 0; itemIdList.ForEach(r => { index += 1; var percent = Math.Round(index * 100 / itemIdList.Count, 2); var primaryKey = int.Parse(r); var model = _itemService.Get(i => i.SD_ITEM_ID == primaryKey); var count = _itemResultService.GetUnitDataCount(primaryKey); var result = _itemResultService.UnitClearData(primaryKey); if (result == count) { //更新执行状态表 _procStateService.DataItemDoClear(model.SD_ID.Value, primaryKey.ToString()); //更新执行日志表 var proLog = new PDP_PROC_LOG() { SD_ID = model.SD_ID, PROC_CAT_CODE = _procLogService.DataItemCatCode(), PROC_CONTENT_ID = model.SD_ITEM_ID.ToString(), PATIENT_ID = "", PROC_URL = "", PROC_STAT_CODE = 3 }; _procLogService.Insert(proLog); //更新数据项 _itemService.Update(model); } ProcessHub.GetInstance() .Send(clientKey, percent.ToString(), "清库", $"数据项:{model.SD_ITEM_NAME}清库成功,共清除 {result}条!!!", ""); }); }); return(View("ExecuteProgress"));; }