|
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
|
{
|
/// <summary>
|
/// 物料表数据处理层
|
/// </summary>
|
/// <returns></returns>
|
/// <history>[HanHe(XDL)] CREATED 2018/06/19</history>
|
public class TN_AB_ITEMDAL : BaseDAL
|
{
|
#region 获取物料表集合
|
/// <summary>
|
/// 根据表名获取物料表集合
|
/// </summary>
|
/// <param name="tableName">表名</param>
|
/// <returns>物料集合</returns>
|
/// <history>[HanHe(XDL)] CREATED 2018/06/14</history>
|
public List<AutoBomItemEntity> 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<AutoBomItemEntity> list = DataAccessExtensive.ExecuteListEntity<AutoBomItemEntity>(this.DataAccess, cmd, SetEntity);
|
return list;
|
}
|
|
/// <summary>
|
/// 设置实体的各列
|
/// <summary>
|
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<MONGO_KEYTYPE_MAP> GetItemToMapList()
|
{
|
string sql = @"SELECT CN_S_ITEM_CODE 'Key','4' 'Type' FROM TN_AB_ITEM ";
|
DbCommand cmd = DataAccess.GetSqlStringCommand(sql);
|
List<MONGO_KEYTYPE_MAP> list = DataAccessExtensive.ExecuteListEntity<MONGO_KEYTYPE_MAP>(this.DataAccess, cmd, SetItemToMapEntity);
|
return list;
|
}
|
|
/// <summary>
|
/// 设置实体的各列
|
/// <summary>
|
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<AutoBomItemEntity>(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<AutoBomItemEntity>(query, "TN_AB_ITEM");
|
return entity;
|
}
|
catch (Exception ex)
|
{
|
return null;
|
}
|
}
|
|
public bool UpdateAuxiData(List<AuxiliaryEntity> newAuxiList, string itemCode)
|
{
|
var query = Query.EQ("CN_S_ITEM_CODE", itemCode);
|
var update = Update.SetWrapped("AuxiliaryUnitList", newAuxiList);
|
bool result = MongoDBSingleton.Instance.Update<AutoBomItemEntity>(query, update, "TN_AB_ITEM", UpdateFlags.Multi);
|
return result;
|
}
|
|
public SqlExecuteResult UpdateUnitItemList(List<AutoBomItemEntity> 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<DbCommand> cmds = new List<DbCommand>();
|
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);
|
}
|
}
|
}
|