Пример #1
0
        /// <summary>
        /// 称重数据插入本地数据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public WeightGridDto InsertWeightGrid(WeightGridDto dto)
        {
            var model = new WeightGridDto();

            try
            {
                using (var sql = SqliteDbContext.GetInstance())
                {
                    //获取上一条未提交到服务器的数据
                    var localLastWeight = sql.Queryable <WeightGridDto>().Where(s => s.BatchId == dto.BatchId && s.Uploadflag == 0)
                                          .OrderBy(s => s.WeightTime, OrderByType.Desc).First();
                    //插入本条数据
                    sql.Insertable(dto).ExecuteCommand();
                    if (localLastWeight != null)
                    {
                        model = localLastWeight;
                    }
                }
                return(model);
            }
            catch (Exception e)
            {
                LogNHelper.Exception(e);
            }

            return(null);
        }
Пример #2
0
        /// <summary>
        /// 获取固定的称重勾标
        /// </summary>
        /// <param name="num"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        public List <string> GetWeightHooks(int num, DateTime time)
        {
            var hooks = new List <string>();
            var stime = new DateTime(time.Year, time.Month, time.Day);

            using (var sql = SqliteDbContext.GetInstance())
            {
                hooks = sql.Queryable <WeightHooks>().Where(s => s.ReadTime > stime).OrderBy(s => s.ReadTime).Select(s => s.HookNumber).Take(num).ToList();
            }

            if (hooks.Any())
            {
                if (hooks.Count < num)
                {
                    int diffCount = num - hooks.Count;
                    for (int i = 0; i < diffCount; i++)
                    {
                        var tempTime = time.AddSeconds(i);
                        hooks.Add(tempTime.ToString("yyMMddHHmmssfff"));
                    }
                }
            }
            else
            {
                for (int i = 0; i < num; i++)
                {
                    var tempTime = time.AddSeconds(i);
                    hooks.Add(tempTime.ToString("yyMMddHHmmssfff"));
                }
            }

            return(hooks);
        }
Пример #3
0
 /// <summary>
 /// 获取还没有上传的数据
 /// </summary>
 /// <param name="batchId"></param>
 /// <returns></returns>
 public List <WeightGridDto> GetUnUploadWeights(string batchId)
 {
     using (var sql = SqliteDbContext.GetInstance())
     {
         return(sql.Queryable <WeightGridDto>()
                .Where(s => s.BatchId == batchId && s.Uploadflag == 0)
                .OrderBy(s => s.SerialNum).ToList());
     }
 }
Пример #4
0
 /// <summary>
 /// 获取本地报表
 /// </summary>
 /// <param name="time"></param>
 /// <param name="name"></param>
 /// <param name="idnumber"></param>
 /// <returns></returns>
 public List <WeightGridDto> GetLocalWeightReport(DateTime stime, DateTime etime, string name, string idnumber)
 {
     using (var sql = SqliteDbContext.GetInstance())
     {
         return(sql.Queryable <WeightGridDto>()
                .Where(s => s.WeightTime > stime && s.WeightTime < etime)
                .WhereIF(!string.IsNullOrEmpty(name), s => s.Name.Contains(name))
                .WhereIF(!string.IsNullOrEmpty(idnumber), s => s.IdNumber.Contains(idnumber))
                .OrderBy(s => s.SerialNum, OrderByType.Desc).ToList());
     }
 }
Пример #5
0
        /// <summary>
        /// 去头标签读写
        /// </summary>
        /// <param name="hook"></param>
        public void InsertHook(string hook)
        {
            var model = new HeadHooks();

            model.HookNumber = hook;
            model.ReadTime   = DateTime.Now;
            using (var sql = SqliteDbContext.GetInstance())
            {
                sql.Insertable(model).ExecuteCommand();
            }
        }
Пример #6
0
 /// <summary>
 /// 获取本地称重数据
 /// </summary>
 /// <returns></returns>
 public List <WeightGridDto> GetWeightGridList(string batchId)
 {
     //if (string.IsNullOrEmpty(batchId))
     //{
     //    return new List<WeightGridDto>();
     //}
     //var nowTime = DateTime.Now;
     using (var sql = SqliteDbContext.GetInstance())
     {
         return(sql.Queryable <WeightGridDto>().Where(s => s.BatchId == batchId).OrderBy(s => s.SerialNum, OrderByType.Desc).ToList());
     }
 }
Пример #7
0
 /// <summary>
 /// 撤销最新一条未提交的数据
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public bool DelLocalWeightById(string id)
 {
     try
     {
         using (var sql = SqliteDbContext.GetInstance())
         {
             sql.Deleteable <WeightGridDto>().Where(s => s.Id == id).ExecuteCommand();
         }
         return(true);
     }
     catch (Exception e)
     {
         LogNHelper.Exception(e);
     }
     return(false);
 }
Пример #8
0
        /// <summary>
        /// 保存数据到服务器
        /// </summary>
        /// <param name="hooks"></param>
        /// <param name="isTrace"></param>
        /// <param name="weightTime"></param>
        /// <returns></returns>
        public bool SaveDataToServer(List <string> hooks, bool isTrace, WeightGridDto dto)
        {
            try
            {
                var hookDt = new DataTable("Hooks");
                hookDt.Columns.Add("hookId", typeof(string));
                hookDt.Columns.Add("attachTime", typeof(DateTime));
                hookDt.Columns.Add("animalId", typeof(string));

                if (isTrace)
                {
                    foreach (var hook in hooks)
                    {
                        DataRow dr = hookDt.NewRow();
                        dr["hookId"]     = hook;
                        dr["attachTime"] = dto.WeightTime;
                        dr["animalId"]   = "";
                        hookDt.Rows.Add(dr);
                    }
                }
                else
                {
                    foreach (var hook in hooks)
                    {
                        DataRow dr = hookDt.NewRow();
                        dr["hookId"]     = hook;
                        dr["attachTime"] = dto.WeightTime;
                        dr["animalId"]   = "";
                        hookDt.Rows.Add(dr);
                    }
                }

                SqlParameter[] parameters =
                {
                    new SqlParameter("@batchId",      SqlDbType.Char),
                    new SqlParameter("@hooksToSave",  SqlDbType.Structured),
                    new SqlParameter("@grossWeights", SqlDbType.Decimal),
                    new SqlParameter("@productName",  SqlDbType.VarChar),
                    new SqlParameter("@ProductPrice", SqlDbType.Decimal)
                };

                parameters[0].Value = dto.BatchId;
                parameters[1].Value = hookDt;
                parameters[2].Value = dto.MaoWeight;
                parameters[3].Value = dto.ProductName;
                parameters[4].Value = dto.Price;

                int rowsAffected = DbHelperSQL.ExcuteProcedure("SaveWeighingInfo", parameters);
                //int rowsAffected = ExecuteProcedure("SaveWeighingInfo", parameters);
                // LogNHelper.Info("rowsAffected1:" + rowsAffected);

                //删除本地勾号
                if (rowsAffected > 0)
                {
                    var stime = new DateTime(dto.WeightTime.Year, dto.WeightTime.Month, dto.WeightTime.Day);
                    using (var sql = SqliteDbContext.GetInstance())
                    {
                        sql.Deleteable <WeightHooks>().Where(s => s.ReadTime > stime && hooks.Contains(s.HookNumber))
                        .ExecuteCommand();
                        sql.Updateable <WeightGridDto>().UpdateColumns(s => new WeightGridDto()
                        {
                            Uploadflag = 1
                        })
                        .Where(s => s.Id == dto.Id).ExecuteCommand();
                    }
                    return(true);
                }
            }
            catch (Exception e)
            {
                LogNHelper.Exception(e);
            }

            return(false);
        }