username@email.com
2024-12-20 ebd639c929bd5c05859b6b414787e3440cdcd4bc
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.IDAL;
using System.Data.SqlClient;
using System.Data;
using CY.Infrastructure.Query;
 
namespace CY.SQLDAL
{
    public class OA_SpecificationDAL : IOA_SpecificationDAL
    {
 
        private Database _dataBase = null;
 
        public OA_SpecificationDAL()
        {
            _dataBase = new Database();
        }
 
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
        {
            Model.OA_Specification trueModel = model as Model.OA_Specification;
            if (trueModel == null)
            {
                return false;
            }
            IList<SqlParameter> sqlParms = new List<SqlParameter>()
            {
                new SqlParameter(){Direction=ParameterDirection.ReturnValue,SqlDbType = SqlDbType.Int},
                    new SqlParameter("@FirmId",trueModel.FirmId),
                    new SqlParameter("@Name",trueModel.Name),
                    new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime),
                    new SqlParameter("@Operator",trueModel.Operator),
                    new SqlParameter("@Remark",trueModel.Remark),
                   new SqlParameter("@GoodsId",trueModel.GoodsId),
                   new SqlParameter("@CommodityId",trueModel.CommodityId) 
                   ,new SqlParameter("@OrderNum",trueModel.OrderNum)
            };
            try
            {
                _dataBase.Query("sp_OA_Specification_Insert", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>());
                trueModel.Keyid = (int)sqlParms[0].Value;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return true;
        }
 
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
        {
            Model.OA_Specification trueModel = model as Model.OA_Specification;
            if (trueModel == null)
            {
                return false;
            }
            IList<SqlParameter> sqlParms = new List<SqlParameter>()
            {
                    new SqlParameter("@Keyid",trueModel.Keyid),
                    new SqlParameter("@FirmId",trueModel.FirmId),
                    new SqlParameter("@Name",trueModel.Name),
                    new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime),
                    new SqlParameter("@Operator",trueModel.Operator),
                    new SqlParameter("@Remark",trueModel.Remark),
                    new SqlParameter("@GoodsId",trueModel.GoodsId),
                    new SqlParameter("@CommodityId",trueModel.CommodityId) 
                    ,new SqlParameter("@OrderNum",trueModel.OrderNum)
            };
            try
            {
                _dataBase.Query("sp_OA_Specification_Update", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>());
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return true;
        }
 
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
        {
            Model.OA_Specification trueModel = model as Model.OA_Specification;
            if (trueModel == null)
            {
                return false;
            }
            IList<SqlParameter> sqlParms = new List<SqlParameter>()
            {
                new SqlParameter("@Keyid",trueModel.Keyid)
            };
            try
            {
                _dataBase.Query("sp_OA_Specification_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>());
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return true;
        }
 
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="query"></param>
        /// <param name="pagination"></param>
        /// <returns></returns>
        public IEnumerable<Model.OA_Specification> SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination)
        {
            throw new NotImplementedException();
        }
 
        /// <summary>
        /// 获取全部规格、分页
        /// </summary>
        /// <param name="pa"></param>
        /// <param name="FirmId"></param>
        /// <param name="SpecificationName"></param>
        /// <returns></returns>
        public IEnumerable<Model.OA_Specification> getAllSpecification(Pagination pa, Guid FirmId, string SpecificationName, string GoodsName, string CommdityName)
        {
            string Condition = " b.FirmId='" + FirmId + "'";
            if (!string.IsNullOrEmpty(SpecificationName))
            {
                Condition += "and  b.Name like '%" + SpecificationName + "%'";
            }
            if (!string.IsNullOrEmpty(GoodsName))
            {
                Condition += "and a.GoodsName like '%" + GoodsName + "%'";
            }
            if (!string.IsNullOrEmpty(CommdityName))
            {
                Condition += "and  a.GoodsTypeId = " + CommdityName + "";
            }
            string selectTarget = " t.GoodsId ,t.AorDerNum ";
            string fromSource = "(select DISTINCT  a.Keyid as GoodsId ,a.GoodsName as GoodsName,c.OrderNum AS AorDerNum,c.CommodityName as CommodityName from dbo.OA_GoodsInfo AS a INNER JOIN  dbo.OA_Specification AS b ON a.Keyid=b.GoodsId LEFT JOIN dbo.OA_Commodity AS c ON a.GoodsTypeId= c.Keyid where " + Condition + ") as t";
            return _dataBase.SelectModelPage<Model.OA_Specification>(pa, selectTarget, fromSource, "t.AorDerNum", "AorDerNum", string.Empty);
        }
 
        /// <summary>
        /// 得到所有规格-非分页方法
        /// </summary>
        /// <param name="FirmId"></param>
        /// <returns></returns>
        public DataTable getAllSpecification(Guid FirmId)
        {
            string Condition = "  where FirmId='" + FirmId + "'";
            string selectTarget = " * ";
            string fromSource = " OA_Specification " + Condition;
            return _dataBase.SelectModel(selectTarget, fromSource);
 
        }
 
        /// <summary>
        /// 获取一个货品下面的全部规格-分页
        /// </summary>
        /// <param name="pa"></param>
        /// <param name="GoodsId"></param>
        /// <returns></returns>
        public IEnumerable<Model.OA_Specification> getAllModelByGoodsId(Pagination pa, string GoodsId)
        {
            string Condition = "  where D.GoodsID= " + GoodsId;
            string selTarget = " D.*,B.CommodityName as CommodityName,C.GoodsName as GoodsName ";
            string fromSource = "dbo.OA_Specification  AS D  LEFT JOIN dbo.OA_GoodsInfo AS C ON D.GoodsId = C.Keyid LEFT JOIN dbo.OA_Commodity AS B ON C.GoodsTypeId = B.Keyid" + Condition;
            return _dataBase.SelectModelPage<Model.OA_Specification>(pa, selTarget, fromSource, " D.OrderNum ");
        }
 
        /// <summary>
        /// 根据货品id返回所有规格对象
        /// </summary>
        /// <param name="GoodsId"></param>
        /// <returns></returns>
        public IEnumerable<Model.OA_Specification> getAllModelByGoodsId(string GoodsId)
        {
            string Condition = "  where D.GoodsID= " + GoodsId;
            string selectTarget = "  D.*,B.CommodityName as CommodityName,C.GoodsName as GoodsName ";
            string fromSource = @" dbo.OA_Specification  AS D  LEFT JOIN dbo.OA_GoodsInfo AS C ON D.GoodsId = C.Keyid  LEFT JOIN dbo.OA_Commodity AS B ON C.GoodsTypeId = B.Keyid" + Condition;
            return _dataBase.SelectModel<Model.OA_Specification>(selectTarget, fromSource);
        }
 
        public DataTable getAllSpecification(Guid FirmId, string CommodityId, string GoodsId)
        {
            string Condition = "  where FirmId='" + FirmId + "'";
            if (!string.IsNullOrEmpty(CommodityId))
            {
                Condition += " and CommodityId='" + CommodityId + "'";
            }
            if (!string.IsNullOrEmpty(GoodsId))
            {
                Condition += " and  GoodsId='" + GoodsId + "'";
            }
            string selectTarget = " * ";
            string fromSource = " OA_Specification " + Condition;
            return _dataBase.SelectModel(selectTarget, fromSource);
        }
 
        public IEnumerable<Model.OA_Specification> getModelByGoodsId(string GoodsId)
        {
            string selTarget = " * ";
            string fromSource = " OA_Specification  where GoodsId= " + GoodsId;
            return _dataBase.SelectModel<Model.OA_Specification>(selTarget, fromSource);
 
        }
 
        /// <summary>
        /// 单个查询
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public IEnumerable<Model.OA_Specification> SelectAllModel(Infrastructure.Query.Query query)
        {
            throw new NotImplementedException();
        }
 
        /// <summary>
        /// 获取规格
        /// </summary>
        /// <param name="Keyid"></param>
        /// <returns></returns>
        public Model.OA_Specification getSingleSpecification(string Keyid)
        {
            try
            {
                List<CY.Model.OA_Specification> m_OA_SpecificationList = _dataBase.SelectModel<Model.OA_Specification>(" * ", " OA_Specification ", " Keyid='" + Keyid + "' ").ToList();
                if (m_OA_SpecificationList != null && m_OA_SpecificationList.Count >0)
                {
                    return m_OA_SpecificationList[0];
                }
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}