jt
2021-06-10 5d0d028456874576560552f5a5c4e8b801786f11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using HH.MData;
using HH.WMS.Entitys.Basic;
using HH.WMS.Entitys.External;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace HH.WMS.DAL.External
{
    public class TN_AB_ITEMDAL : BaseDAL
    {
        public AutoBomItemEntity GetItem(string itemCode)
        {
 
            IMongoQuery query = Query.EQ("CN_S_ITEM_CODE", itemCode);
            return MongoDBSingleton.Instance.FindOne<AutoBomItemEntity>(query, "TN_AB_ITEM");
            //}
            //catch (Exception ex)
            //{
 
            //    Log.Error("GetItem", "失败原因:" + itemCode+"," +ex.Message+ex.StackTrace);
            //    return null;
            //}
        }
        public List<AutoBomItemEntity> GetAllItem()
        {
 
            IMongoQuery query = null;
            return MongoDBSingleton.Instance.Find<AutoBomItemEntity>(query, "TN_AB_ITEM");
 
        }
        #region 根据图号和特征获取Item
        /// <summary>
        /// 根据图号和特征获取Item
        /// </summary>
        /// <param name="figureNo"></param>
        /// <param name="feature"></param>
        /// <returns></returns>
        public AutoBomItemEntity GetItemByNo(string figureNo, string feature, string itemName)
        {
            try
            {
                figureNo = figureNo == null ? "" : figureNo;
                feature = feature == null ? "" : feature;
                itemName = itemName == null ? "" : itemName;
                IMongoQuery query = Query.EQ("CN_S_FIGURE_NO", figureNo);
                query = Query.And(query, Query.EQ("CN_S_FEATURE", feature));
                query = Query.And(query, Query.EQ("CN_S_ITEM_NAME", itemName));
                return MongoDBSingleton.Instance.FindOne<AutoBomItemEntity>(query, "TN_AB_ITEM");
            }
            catch (Exception ex)
            {
 
                return null;
            }
        }
 
        public AutoBomItemEntity GetItemByNo(string figureNo)
        {
            try
            {
                IMongoQuery query = Query.EQ("CN_S_FIGURE_NO", figureNo);
                return MongoDBSingleton.Instance.FindOne<AutoBomItemEntity>(query, "TN_AB_ITEM");
            }
            catch (Exception ex)
            {
 
                return null;
            }
        }
        #endregion
 
        #region 根据图号和特征 或 物料编码 获取Item(批量)
        /// <summary>
        /// 根据图号和特征 或 物料编码 获取Item(批量)
        /// </summary>
        /// <param name="ItemData"></param>
        /// <returns></returns>
        public List<AutoBomItemEntity> GetItemByNo(List<ChaoYangItemDataEntity> ItemData)
        {
            if (ItemData != null)
            {
                List<IMongoQuery> queryList = new List<IMongoQuery>();
                foreach (var item in ItemData)
                {
                    List<IMongoQuery> queryItem = new List<IMongoQuery>();
                    //图号&&特征
                    if (!string.IsNullOrEmpty(item.itemCode) && (!string.IsNullOrEmpty(item.itemFeature) || !string.IsNullOrEmpty(item.itemName)))
                    {
                        queryItem.Add(Query.EQ("CN_S_FIGURE_NO", item.itemCode));
                        if (!string.IsNullOrEmpty(item.itemFeature))
                        {
                            queryItem.Add(Query.EQ("CN_S_FEATURE", item.itemFeature));
                        }
                        if (!string.IsNullOrEmpty(item.itemName))
                        {
                            queryItem.Add(Query.EQ("CN_S_ITEM_NAME", item.itemName));
                        }
                    }
                    //ItemCode
                    else if (!string.IsNullOrEmpty(item.itemCode) && string.IsNullOrEmpty(item.itemFeature) && string.IsNullOrEmpty(item.itemName))
                    {
                        queryItem.Add(Query.EQ("CN_S_ITEM_CODE", item.itemCode));
                    }
                    else
                    {
                        continue;
                    }
                    queryList.Add(Query.And(queryItem));
                }
                if (queryList.Any())
                {
                    return MongoDBSingleton.Instance.Find<AutoBomItemEntity>(Query.Or(queryList), "TN_AB_ITEM");
                }
            }
            return new List<AutoBomItemEntity>();
        }
        #endregion
 
        #region 新增一条物料
        /// <summary>
        /// 新增一条物料
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public bool InsertItem(AutoBomItemEntity item)
        {
            return MongoDBSingleton.Instance.Insert<AutoBomItemEntity>(item, "TN_AB_ITEM");
        }
        #endregion
    }
}