/// <summary> /// 事务处理预出账查询 /// </summary> /// <returns></returns> public bool BillPrepareOutSearch(Hashtable ht) { UserInfo userInfo = GetUserInfo(); OrdergrouptestService ordergrouptestService = new OrdergrouptestService(); CommonFuncLibService comm = new CommonFuncLibService(); try { //获取grouptest收费信息,并重新算价 IList <Ordergrouptest> grouptestList = ordergrouptestService.GetOrdergrouptestPrice(ht); IList <Ordergrouptest> grouptestNewPriceList = comm.OrdergrouptestNewPrice(grouptestList, ht); //删除billdetail表老记录 SortedList SQLlist = new SortedList(new MySort()); SQLlist.Add(new Hashtable() { { "DELETE", "Bill.DeleteBilldetailBySearch" } }, ht); //插入重组后的集合grouptest到数据到表 BILLDETAIL中 foreach (Ordergrouptest test in grouptestNewPriceList) { Billdetail detail = new Billdetail(); detail = SetBillDetail(null, test.Ordernum, test, ""); detail.Billdetailid = this.getSeqID("SEQ_BILLDETAIL"); SQLlist.Add(new Hashtable() { { "INSERT", "Bill.InsertBilldetail" } }, detail); } return(this.ExecuteSqlTran(SQLlist)); } catch (Exception ex) { return(false); throw new Exception(ex.Message); } }
/// <summary>扫描业务主体 /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { //设置timer不可用 timer.Stop(); try { Orderexception exception = new Orderexception(); OrderexceptionService service = new OrderexceptionService(); //调用登陆验证方法(string Login(UserName: string; Password: string; Operator: string))返回SID //UserName,Password来源配置文件,Operator为空 string username = ConfigurationManager.AppSettings["UserName"]; string password = ConfigurationManager.AppSettings["Password"]; string Operator = ConfigurationManager.AppSettings["Operator"]; SendOrdersToLis.CenterServiceSoapClient client = new SendOrdersToLis.CenterServiceSoapClient(); //按分点查找 List <Dictlab> labLst = labser.GetDictlabList().Where(c => c.IsActive == '1').ToList <Dictlab>(); //最后一次更新时间 foreach (Dictlab dictlab in labLst) { string lastDate = service.SelectOrderExceptionLastDate(dictlab.Labcode); if (lastDate == null) { lastDate = DateTime.Now.AddDays(-30).ToString(); //lastDate = "2012-12-01"; } if (!ht.ContainsKey(dictlab.Labcode)) { string strsid = client.Login(dictlab.Labcode, username, password, Operator); if (strsid.Split('|')[0].ToString() == "1") { strsid = strsid.Split('|')[1].ToString(); ht.Add(dictlab.Labcode, strsid); } else { strMsg = string.Format(">>>{0} {1}:登录失败!{2}", DateTime.Now, dictlab.Labname, strsid.Split('|')[1].ToString()); AddNodeHandler addNode = new AddNodeHandler(this.TreeViewAdd); this.Invoke(addNode, strMsg); continue; } } // 获取LIS的取消审核与退单信息 string strmessage = client.SelectPesExceptionLst(ht[dictlab.Labcode].ToString(), dictlab.Labcode, lastDate); if (strmessage.Contains("MSG0006")) //登陆超时 { ht.Remove(dictlab.Labcode); strMsg = string.Format(">>>{0} {1}:登录超时", DateTime.Now, dictlab.Labname); AddNodeHandler addNode = new AddNodeHandler(this.TreeViewAdd); this.Invoke(addNode, strMsg); continue; } else { string[] strcontent = strmessage.Split('|'); if (strcontent[0] == "0") { strMsg = string.Format(">>>{0} {1}:未查询到数据", DateTime.Now, dictlab.Labname); AddNodeHandler addNode = new AddNodeHandler(this.TreeViewAdd); this.Invoke(addNode, strMsg); continue; } else { DataSet ds = new CommonFuncLibService().CXmlToDataSet(strcontent[1]); if (service.AddOrderExceptional(ds.Tables[0], dictlab.Labcode)) { strMsg = string.Format("***{0} {1}:异常信息获取成功", DateTime.Now, dictlab.Labname); AddNodeHandler addNode = new AddNodeHandler(this.TreeViewAdd); this.Invoke(addNode, strMsg); } else { strMsg = string.Format(">>>{0} {1}:异常信息获取失败,方法名称:SelectPesExceptionLst", DateTime.Now, dictlab.Labname); AddNodeHandler addNode = new AddNodeHandler(this.TreeViewAdd); this.Invoke(addNode, strMsg); } } } } } catch (Exception ex) { strMsg = string.Format(">>>{0} {1}", DateTime.Now.ToString() + ": " + ex.Message); AddNodeHandler addNode = new AddNodeHandler(this.TreeViewAdd); this.Invoke(addNode, strMsg); } finally { if (timer != null) { timer.Start(); } } }