using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Configuration; using SqlSugar; using HXX.Scanner.Database; namespace HXX.Scanner.Biz { /// /// 数据库 业务类 /// public class biz_db : biz_db_base { /// /// 向扫描数据表中增加一条记录 /// /// /// public tb_file_info Add(file_info file) { tb_file_info entity = new tb_file_info(); entity.fi_SN = file.SN; entity.fi_schema = file.paperSchema; entity.fi_side = file.current_side; entity.fi_paper_size = file.paperSize; entity.fi_name = file.file_name; entity.fi_full_name = file.file_full_name; entity.fi_ext = file.file_ext; entity.fi_size = 0; entity.fi_upload_flag = 0; entity.fi_createTime = DateTime.Now; entity.fi_accountId = file.accountId.ToString(); entity.fi_examId = file.examId; entity.fi_examPaperId = file.examPaperId; entity.fi_zipId = file.zipId; entity.fi_batchSeq = file.batchNumber; entity.fi_isTest = file.isTest; entity.fi_token = file.token; entity.fi_server_url = ""; // file.uploadUrl; entity.fi_subjectCode = file.subjectCode; using (var db = SqlSugarHelper.GetClient()) { db.Insertable(entity).ExecuteCommandIdentityIntoEntity(); } return entity; } /// /// 获取本批次扫描数量 /// /// /// /// 正反面 /// public int get_count_by_seq(string batchNumber, int? zipId, int ab) { int result = 0; using (var db = SqlSugarHelper.GetClient()) { result = db.Queryable().Count(x => x.fi_batchSeq == batchNumber && x.fi_zipId == zipId && x.fi_side == ab); } return result; } /// /// 根据sn获取记录组,相同一张纸,正反面拥有同一个sn /// /// /// public List get_by_sn(long? SN) { List list; using (var db = SqlSugarHelper.GetClient()) { list = db.Queryable().Where(x => x.fi_SN == SN).ToList(); } return list; } /// /// /// /// /// /// public List get_by_subjectCode_batchNumber(string subjectCode, string batchNumber) { List list; using (var db = SqlSugarHelper.GetClient()) { list = db.Queryable().Where(x => x.fi_batchSeq == batchNumber && x.fi_subjectCode == subjectCode).ToList(); } return list; } /// /// /// /// /// /// public void deleteBatch(string subjectCode, string batchNumber) { using (var db = SqlSugarHelper.GetClient()) { db.Deleteable(x => x.fi_batchSeq == batchNumber && x.fi_subjectCode == subjectCode).ExecuteCommand(); } } //上传后,更新上传成功或失败标志 public void update_upload_flag_by_id(int id, int status, string upload_url) { using (var db = SqlSugarHelper.GetClient()) { var entity = db.Queryable().First(x => x.fi_id == id); if (entity != null) { entity.fi_upload_flag = status; entity.fi_server_url = upload_url; db.Updateable(entity).ExecuteCommand(); } } } //上传后,更新上传成功或失败标志 public void update_upload_flag_by_SN(long sn, int status) { using (var db = SqlSugarHelper.GetClient()) { var list = db.Queryable().Where(x => x.fi_SN == sn).ToList(); foreach(var entity in list) { entity.fi_upload_flag = status; db.Updateable(entity).ExecuteCommand(); } } } //更新文件位置 public void update_file_name(int id, string fileName) { using (var db = SqlSugarHelper.GetClient()) { var entity = db.Queryable().First(x => x.fi_id == id); if (entity != null) { entity.fi_full_name = fileName; db.Updateable(entity).ExecuteCommand(); } } } //获取某批次所有数量 public int get_count_by_batchNumber(string batchNumber, string subjectCode) { int count = 0; using (var db = SqlSugarHelper.GetClient()) { count = db.Queryable().Count(x => x.fi_batchSeq == batchNumber && x.fi_subjectCode == subjectCode && x.fi_side == 1); } return count; } //获取某批次上传成功的数量 public qty_of_upload get_upload_count_by_batchNumber(string batchNumber, string subjectCode) { qty_of_upload qty = new qty_of_upload(); using (var db = SqlSugarHelper.GetClient()) { qty.qty_success = db.Queryable().Count(x => x.fi_batchSeq == batchNumber && x.fi_subjectCode == subjectCode && x.fi_upload_flag == 1 && x.fi_side == 1); qty.qty_fail = db.Queryable().Count(x => x.fi_batchSeq == batchNumber && x.fi_subjectCode == subjectCode && x.fi_upload_flag != 1 && x.fi_side == 1); } return qty; } //获取某批次所有未上传记录 public List get_not_upload_list(string batchNumber, string subjectCode) { List result; using (var db = SqlSugarHelper.GetClient()) { result = db.Queryable().Where(x => x.fi_batchSeq == batchNumber && x.fi_subjectCode == subjectCode && x.fi_upload_flag != 1).ToList(); } return result; } //获取多批次所有未上传记录 public List get_not_upload_list2(string[] batchList, string subjectCode) { List result; using (var db = SqlSugarHelper.GetClient()) { result = db.Queryable().Where(x => batchList.Contains(x.fi_batchSeq) && x.fi_subjectCode == subjectCode && x.fi_upload_flag != 1).ToList(); } return result; } //获取某些id的上传失败情况 public int get_not_upload_status(string id_list) { int count = 0; using (var db = SqlSugarHelper.GetClient()) { var sql = "select 1 from tb_file_info where fi_id in ({0}) and fi_upload_flag <> 1 and fi_side=1"; sql = string.Format(sql, id_list); count = db.Ado.SqlQuery(sql).Count; } return count; } /// /// test /// /// public List test() { List list; using (var db = SqlSugarHelper.GetClient()) { list = db.Queryable().ToPageList(1, 10); } return list; } } }