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 Newtonsoft.Json; 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/19 public class TN_AB_ITEMDAL : BaseDAL { #region 获取物料表集合 /// /// 根据表名获取物料表集合 /// /// 表名 /// 物料集合 /// [HanHe(XDL)] CREATED 2018/06/14 public List GetItemList(string tableName) { string sql = @"SELECT TOP 200 CN_S_ITEM_NAME ,CN_S_ITEM_CODE ,CN_S_MODIFY_BY ,CN_T_MODIFY ,CN_S_MODIFY ,CN_S_CREATOR ,CN_S_CREATOR_BY ,S.CN_T_CREATE ,CN_GUID ,CN_S_MODEL ,CN_S_ITEM_NOTE ,CN_S_MEASURE_UNIT ,CN_S_MIN_PACKWEIGHT/case when CN_F_MIN_PACK_QTY=0 then 1 else CN_F_MIN_PACK_QTY end CN_F_TW ,CN_F_NW ,CN_F_NW ,CN_S_VOLUME_SIZE ,CN_S_ITEM_TYPE ,CN_S_MAJOR_TYPE ,CN_S_MINOR_TYPE ,CN_S_SALE_TYPE ,CN_S_TYPE_GROUP ,CN_S_VENDOR_BRAND ,CN_F_MIN_PACK_QTY ,CN_S_PACK_UNIT ,CN_S_FIGURE_NO ,CN_C_IS_WARRNTY_PARTS ,CN_S_FEATURE ,CN_F_SAFETY_STOCK ,CN_S_PACKING_TYPE ,CN_F_WARRNTY_PARTS ,CN_C_IS_LOT_OUT ,CN_C_IS_SN ,CN_S_CONERSION ,CN_S_STORE_TYPE ,CN_S_BOOK_CODE ,CN_S_BOOK_NAME ,CN_S_SPEC ,CN_S_STATUS FROM TN_AB_B_SYNCH_LOG L LEFT JOIN TN_AB_ITEM S ON L.CN_S_GUID=S.CN_GUID WHERE L.CN_S_TABLE_NAME='" + tableName + "' AND L.CN_N_OP_FLAG IN (1,2) AND CN_S_ITEM_CODE!='' "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); List list = DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetEntity); return list; } /// /// 设置实体的各列 /// private void SetEntity(AutoBomItemEntity entity, IDataReader reader) { SetEntityUti(entity, "CN_S_ITEM_NAME", "CN_S_ITEM_NAME", reader); SetEntityUti(entity, "CN_S_ITEM_CODE", "CN_S_ITEM_CODE", reader); SetEntityUti(entity, "CN_S_MODIFY_BY", "CN_S_MODIFY_BY", reader); SetEntityUti(entity, "CN_T_MODIFY", "CN_T_MODIFY", reader); SetEntityUti(entity, "CN_S_MODIFY", "CN_S_MODIFY", reader); SetEntityUti(entity, "CN_S_CREATOR", "CN_S_CREATOR", reader); SetEntityUti(entity, "CN_S_CREATOR_BY", "CN_S_CREATOR_BY", reader); SetEntityUti(entity, "CN_T_CREATE", "CN_T_CREATE", reader); SetEntityUti(entity, "CN_GUID", "CN_GUID", reader); SetEntityUti(entity, "CN_S_MODEL", "CN_S_MODEL", reader); SetEntityUti(entity, "CN_S_ITEM_NOTE", "CN_S_ITEM_NOTE", reader); SetEntityUti(entity, "CN_S_MEASURE_UNIT", "CN_S_MEASURE_UNIT", reader); SetEntityUti(entity, "CN_F_TW", "CN_F_TW", reader); SetEntityUti(entity, "CN_F_NW", "CN_F_NW", reader); SetEntityUti(entity, "CN_S_VOLUME_SIZE", "CN_S_VOLUME_SIZE", reader); SetEntityUti(entity, "CN_S_ITEM_TYPE", "CN_S_ITEM_TYPE", reader); SetEntityUti(entity, "CN_S_MAJOR_TYPE", "CN_S_MAJOR_TYPE", reader); SetEntityUti(entity, "CN_S_MINOR_TYPE", "CN_S_MINOR_TYPE", reader); SetEntityUti(entity, "CN_S_SALE_TYPE", "CN_S_SALE_TYPE", reader); SetEntityUti(entity, "CN_S_TYPE_GROUP", "CN_S_TYPE_GROUP", reader); SetEntityUti(entity, "CN_S_VENDOR_BRAND", "CN_S_VENDOR_BRAND", reader); SetEntityUti(entity, "CN_F_MIN_PACK_QTY", "CN_F_MIN_PACK_QTY", reader); SetEntityUti(entity, "CN_S_PACK_UNIT", "CN_S_PACK_UNIT", reader); SetEntityUti(entity, "CN_S_FIGURE_NO", "CN_S_FIGURE_NO", reader); SetEntityUti(entity, "CN_C_IS_WARRNTY_PARTS", "CN_C_IS_WARRNTY_PARTS", reader); SetEntityUti(entity, "CN_S_FEATURE", "CN_S_FEATURE", reader); SetEntityUti(entity, "CN_F_SAFETY_STOCK", "CN_F_SAFETY_STOCK", reader); SetEntityUti(entity, "CN_S_PACKING_TYPE", "CN_S_PACKING_TYPE", reader); SetEntityUti(entity, "CN_F_WARRNTY_PARTS", "CN_F_WARRNTY_PARTS", reader); SetEntityUti(entity, "CN_C_IS_LOT_OUT", "CN_C_IS_LOT_OUT", reader); SetEntityUti(entity, "CN_C_IS_SN", "CN_C_IS_SN", reader); SetEntityUti(entity, "CN_S_CONERSION", "CN_S_CONERSION", reader); SetEntityUti(entity, "CN_S_STORE_TYPE", "CN_S_STORE_TYPE", reader); SetEntityUti(entity, "CN_S_BOOK_CODE", "CN_S_BOOK_CODE", reader); SetEntityUti(entity, "CN_S_BOOK_NAME", "CN_S_BOOK_NAME", reader); SetEntityUti(entity, "CN_S_SPEC", "CN_S_SPEC", reader); SetEntityUti(entity, "CN_S_STATUS", "CN_S_STATUS", reader); } #endregion public SqlExecuteResult RemoveSynchLogData(string ArrayGuids) { StringBuilder sb = new StringBuilder(); sb.Append("DELETE FROM TN_AB_B_SYNCH_LOG WHERE CN_S_GUID in (" + ArrayGuids + ")"); DbCommand cmd = DataAccess.GetSqlStringCommand(sb.ToString()); return ExecuteCommand(cmd, null); } public List GetItemToMapList() { string sql = @"SELECT CN_S_ITEM_CODE 'Key','4' 'Type' FROM TN_AB_ITEM "; DbCommand cmd = DataAccess.GetSqlStringCommand(sql); List list = DataAccessExtensive.ExecuteListEntity(this.DataAccess, cmd, SetItemToMapEntity); return list; } /// /// 设置实体的各列 /// private void SetItemToMapEntity(MONGO_KEYTYPE_MAP entity, IDataReader reader) { SetEntityUti(entity, "Key", "Key", reader); SetEntityUti(entity, "Type", "Type", reader); } public AutoBomItemEntity GetItemModelByAuxi(string guid) { try { AutoBomItemEntity entity = new AutoBomItemEntity(); var query = Query.Matches("AuxiliaryUnitList.CN_GUID", guid); entity = MongoDBSingleton.Instance.FindOne(query, "TN_AB_ITEM"); return entity; } catch (Exception ex) { return null; } } public AutoBomItemEntity GetItemEntity(string itemCode) { try { AutoBomItemEntity entity = new AutoBomItemEntity(); var query = Query.EQ("CN_S_ITEM_CODE", itemCode); entity = MongoDBSingleton.Instance.FindOne(query, "TN_AB_ITEM"); return entity; } catch (Exception ex) { return null; } } public bool UpdateAuxiData(List newAuxiList, string itemCode) { var query = Query.EQ("CN_S_ITEM_CODE", itemCode); var update = Update.SetWrapped("AuxiliaryUnitList", newAuxiList); bool result = MongoDBSingleton.Instance.Update(query, update, "TN_AB_ITEM", UpdateFlags.Multi); return result; } public SqlExecuteResult UpdateUnitItemList(List itemList) { string sql = @"UPDATE TN_AB_B_AUXILIARY_UNIT SET CN_T_CREATE=CN_T_CREATE WHERE CN_S_ITEM_CODE=@CN_S_ITEM_CODE"; List cmds = new List(); foreach (AutoBomItemEntity entity in itemList) { DbCommand cmd = DataAccess.GetSqlStringCommand(sql); DataAccess.AddInParameter(cmd, "CN_S_ITEM_CODE", ComDbType.CHAR, entity.CN_S_ITEM_CODE); cmds.Add(cmd); } return ExecuteCommands(cmds, null); } } }