using HH.MData; using HH.WMS.DAL; using HH.WMS.Entitys.Algorithm; using HH.WMS.Entitys.Basic; using HH.WMS.Entitys.Common; using HW.Utility.Data; using MongoDB.Driver; using MongoDB.Driver.Builders; using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Linq; using System.Text; namespace HW.DAL { /// /// 同步记录表数据处理层 /// /// /// [HanHe(XDL)] CREATED 2018/06/12 public class TN_AB_B_SYNCH_LOGDAL : BaseDAL { #region 获取同步记录集合 /// /// 根据表名获取同步记录集合 /// /// 表名 /// 同步记录集合 /// [HanHe(XDL)] CREATED 2018/06/12 public List GetsynchLogList(string tableName) { string sql = "select * from TN_AB_B_SYNCH_LOG where CN_S_TABLE_NAME='" + tableName + "'"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); List list = DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); return list; } /// /// 设置实体的各列 /// private void SetEntity(TN_AB_B_SYNCH_LOGEntity entity, IDataReader reader) { SetEntityUti(entity, "CN_S_GUID", "CN_S_GUID", reader); SetEntityUti(entity, "CN_S_TABLE_NAME", "CN_S_TABLE_NAME", reader); SetEntityUti(entity, "CN_N_OP_FLAG", "CN_N_OP_FLAG", reader); SetEntityUti(entity, "CN_T_CREATE", "CN_T_CREATE", reader); } #endregion #region 获取需要删除的数据 /// /// /// /// public List GetRemoveDataList() { List removeDataList = new List(); string sql = "SELECT * FROM TN_AB_B_SYNCH_LOG WHERE CN_N_OP_FLAG=4"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); List synchLogList = DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); return synchLogList; } #endregion #region 获取中间表需要同步的数据 public List GetSynchDataList() { List removeDataList = new List(); string sql = "SELECT TOP 1 * FROM TN_AB_B_SYNCH_LOG"; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); List synchLogList = DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); return synchLogList; } #endregion #region 根据条件删除Mongo数据 /// /// 根据条件删除Mongo数据 /// /// 实体 /// 字段值 /// 字段名称 /// 表名 /// public bool RemoveDataByCode(string fieldValue, string fieldName, string collectionName) { MongoDBHelper dbHelper = new MongoDBHelper(); IMongoQuery query = Query.EQ(fieldName, fieldValue); bool result = dbHelper.Remove(query, collectionName); return result; } #endregion #region 删除中间表标识为已删除的数据 /// /// 删除中间表标识为已删除的数据 /// /// /// /// [HanHe(XDL)] CREATED 2018/06/13 public SqlExecuteResult RemoveData(List stockRemoveList, string tableName) { string sql = "DELETE FROM TN_AB_B_SYNCH_LOG WHERE CN_S_GUID=@CN_S_GUID AND CN_S_TABLE_NAME=@CN_S_TABLE_NAME "; List cmds = new List(); foreach (TN_AB_B_SYNCH_LOGEntity entity in stockRemoveList) { DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_GUID", ComDbType.CHAR, entity.CN_S_GUID); DataAccess.AddInParameter(cmd, "CN_S_TABLE_NAME", ComDbType.CHAR, entity.CN_S_TABLE_NAME); cmds.Add(cmd); } return ExecuteCommands(cmds, null); } #endregion public bool RemoveDataByCodeSafty(TN_AB_B_ITEM_SAFETYEntity tN_AB_B_ITEM_SAFETYEntity, string collectionName) { MongoDBHelper dbHelper = new MongoDBHelper(); IMongoQuery query = Query.EQ("CN_S_ITEM_CODE", tN_AB_B_ITEM_SAFETYEntity.CN_S_ITEM_CODE); query = Query.And(query, Query.EQ("CN_S_AREA_CODE", tN_AB_B_ITEM_SAFETYEntity.CN_S_AREA_CODE)); bool result = dbHelper.Remove(query, collectionName); return result; } public bool IsExistsMongoSafty(TN_AB_B_ITEM_SAFETYEntity tN_AB_B_ITEM_SAFETYEntity, string collectionName) { MongoDBHelper dbHelper = new MongoDBHelper(); IMongoQuery query = Query.EQ("CN_S_ITEM_CODE", tN_AB_B_ITEM_SAFETYEntity.CN_S_ITEM_CODE); query = Query.And(query, Query.EQ("CN_S_AREA_CODE", tN_AB_B_ITEM_SAFETYEntity.CN_S_AREA_CODE)); long count = dbHelper.FindCount(query, collectionName); if (count > 0) return true; return false; } #region 判断记录是否存在 /// /// 判断记录是否存在 /// /// 实体 /// 字段值 /// 字段名称 /// 表名 /// public bool IsExistsMongo(string fieldValue, string fieldName, string collectionName) { MongoDBHelper dbHelper = new MongoDBHelper(); IMongoQuery query = Query.EQ(fieldName, fieldValue); long count = dbHelper.FindCount(query, collectionName); if (count > 0) return true; return false; } #endregion #region 新增一个集合到mongo数据库 /// /// 新增一个集合到mongo数据库 /// /// 实体类 /// 实体类集合数据 /// 对象名称 /// public bool AddList(List lstEntity, string collectionName) { try { MongoDBHelper dbHelper = new MongoDBHelper(); bool result = dbHelper.Insert(lstEntity, collectionName); return result; } catch (Exception ex) { HanHe.Service.Log.Info("mongo error", ex.Message); return false; } } #endregion #region 删除已同步数据 /// /// 删除已同步数据 /// /// 集合名称 /// public SqlExecuteResult RemoveSynchLogData(string tableName) { string sql = "DELETE FROM TN_AB_B_SYNCH_LOG WHERE CN_N_OP_FLAG IN (1,2) AND CN_S_TABLE_NAME='" + tableName + "' "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); return ExecuteCommand(cmd, null); } #endregion internal object ClearMongo(string date) { return null; //MongoDBHelper dbHelper = new MongoDBHelper(); //DateTime dt =DateTime.Parse(date); //DateTime now = DateTime.Now; //dt = dt.AddMinutes(1); //IMongoQuery query = Query.In("CN_T_TIME",dt.Year + "/"); //bool result = dbHelper.Remove(query, "TN_SYS_LOG"); //return result; } public bool ClearMongoCollection(string collectionName) { MongoDBHelper dbHelper = new MongoDBHelper(); IMongoQuery query = Query.EQ("Type", "4"); bool result = dbHelper.Remove(query, collectionName); return result; } } }