Beispiel #1
0
 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
         });
     }
 }
Beispiel #2
0
        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);
        }