public CommonResult GetTabulationOrdinal([FromBody] BasisRequest param) { try { if (param == null) { return(new CommonResult { StatusCode = "000003", Result = "请求错误,请检查输入参数!" }); } var today = DateTime.Now; return(new CommonResult { StatusCode = "000000", Result = string.Format("{0}{1}{2}{3}{4}", ((int)param.CountyCode).ToString("D2"), today.Year, today.Month.ToString("D2"), today.Day.ToString("D2"), InternalService.GetTabulationOrdinal(param).ToString("D4")) }); } catch (Exception ex) { Log.Error("GetTabulationOrdinal", ex); return(new CommonResult { StatusCode = "000003", Result = ex.Message }); } }
public static int GetTabulationOrdinal(BasisRequest input) { const string category = "tabulation"; var countycode = input.CountyCode; var currentdate = DateTime.Now.Date; var scurrentdate = string.Format("{0}/{1}/{2}", currentdate.Year, currentdate.Month, currentdate.Day); using (var oracleConnectionconn = new OracleConnection(CdmConfiguration.DataSource)) { try { var lockvalue = TabulationOrdinalLock[input.CountyCode]; // Log.Error("GetOrdinal lockvalue:" + lockvalue); lock (lockvalue) { oracleConnectionconn.Open();//打开指定的连接 using (var com = oracleConnectionconn.CreateCommand()) { com.CommandText = string.Format("Select businessdate ,ordinal From businessordinal where category = '{0}' and countycode='{1}'", category, countycode);//写好想执行的Sql语句 // Log.Info("222"+com.CommandText); var odr = com.ExecuteReader(); var recordDate = string.Empty; var ordinal = 0; // Log.Info("222"); while (odr.Read())//读取数据,如果返回为false的话,就说明到记录集的尾部了 { for (var i = 0; i < odr.FieldCount; i++) { switch (i) { case 0: recordDate = odr.GetString(i); break; case 1: ordinal = odr.GetInt32(i); break; } } } odr.Close();//关闭reader.这是一定要写的 // Log.Info("222"+ recordDate + "-"+ordinal+ currentdate); if (scurrentdate == recordDate) { com.CommandText = string.Format("update businessordinal set ordinal = {1} where category = '{0}'and countycode='{2}' ", category, ++ordinal, countycode); // Log.Info("333" + com.CommandText); com.ExecuteNonQuery(); return(ordinal); } else { if (recordDate == string.Empty) { com.CommandText = string.Format("insert into businessordinal (businessdate,category,ordinal,countycode) values( '{2}' , '{0}', '{1}','{3}') ", category, 1, scurrentdate, countycode); } else { com.CommandText = string.Format("update businessordinal set ordinal = {1} , businessdate = '{2}' where category = '{0}'and countycode='{3}' ", category, 1, scurrentdate, countycode); } // Log.Info("444" + com.CommandText); com.ExecuteNonQuery(); return(1); } } } } catch (Exception eex) { Log.Error("GetTabulationOrdinal operation:" + eex.Message); } finally { oracleConnectionconn.Close();//关闭打开的连接 } } return(0); }