ningshuxia
2023-06-27 d5a533d045422407c1b7edfdde9fd19740e478d1
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
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace IStation.DAL
{
    /// <summary>
    /// MsSqlDAL RepairRequestFile
    /// </summary>
    public partial class ProductInspectionContentItem : CorpTraceDAL_Sorter<Entity.ProductInspectionContentItem> 
    {
        /// <summary>
        /// 
        /// </summary>
        public override ConnectionConfig ConnectionConfig
        {
            get
            {
                return ConfigHelper.DefaultConnectionConfig;
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public   long Insert(Entity.ProductInspectionContentItem entity,List<Entity.ProductInspectionContentValue> values)
        {
            if (entity == null)
                return default;
            if (entity.CorpID < 1)
                return default;
            entity.CreateTime = DateTime.Now;
            using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
            {             
                var item_id = db.Insertable(entity).ExecuteReturnSnowflakeId();
                if (values == null || values.Count == 0)
                    return item_id;
 
                foreach(var v in values)
                {
                    v.ItemID = item_id;
                    v.CreateTime = DateTime.Now;
                }
                if (db.Insertable(values).ExecuteReturnSnowflakeIdList().Count() > 0)
                    return item_id;
                else
                    return 0;
            }
        }
 
        /// <summary>
        /// 更新对象属性到数据库中
        /// </summary>
        public  bool Update(Entity.ProductInspectionContentItem entity, List<Entity.ProductInspectionContentValue> values)
        {
            if (entity == null)
                return default;
 
            if (values == null)
                values = new List<Entity.ProductInspectionContentValue>();
 
            entity.UpdateTime = DateTime.Now;
            using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
            {
                var values_old = db.Queryable<Entity.ProductInspectionContentValue>()
                 .Where(x => x.ItemID == entity.ID).ToList();
 
                db.Updateable(entity).IgnoreColumns(it => new { it.CreateTime, it.CreateUserID, it.CorpID }).ExecuteCommand()  ;
            
                foreach(var old in values_old)
                {
                    var fff = values.Find(x => x.ID == old.ID);
                    if(fff == null)
                    {//删除
                        db.Deleteable<Entity.ProductInspectionContentValue>().Where(x=>x.ID == fff.ID).ExecuteCommand() ;
                    }
                }
            
                foreach(var v in values)
                {
                    if(v.ID == 0)
                    {
                        v.CreateTime = DateTime.Now;
                        db.Insertable<Entity.ProductInspectionContentValue>(v);
                    }
                    else
                    {
                        v.UpdateTime = DateTime.Now;
                        db.Updateable<Entity.ProductInspectionContentValue>(v).IgnoreColumns(it => new { it.CreateTime, it.CreateUserID, it.ItemID }).ExecuteCommand()  ;
                    }
                }
 
                return true;
            }
        }
 
        /// <summary>
        /// 通过ProductID获取
        /// </summary>
        /// <param name="ProductID"></param>
        /// <returns></returns>
        public List<Entity.ProductInspectionContentItem> GetByProductID(IEnumerable<long> ProductID)
        {
            if (ProductID == null || ProductID.Count() == 0)
                return null;
 
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                return db.Queryable<Entity.ProductInspectionContentItem>()
                    .Where(x => ProductID.Contains(x.ProductID)).ToList();
            }
        }
 
        /// <summary>
        /// ProductID
        /// </summary>
        /// <param name="GroupID"></param>
        /// <returns></returns>
        public List<Entity.ProductInspectionContentItem> GetByGroupID(long GroupID)
        {
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                return db.Queryable<Entity.ProductInspectionContentItem>()
                    .Where(x => x.GroupID == GroupID).ToList();
            }
        }
 
        /// <summary>
        /// ProductID
        /// </summary>
        /// <param name="ProductID"></param>
        /// <returns></returns>
        public List<Entity.ProductInspectionContentItem> GetByProductID(long ProductID)
        {
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                return db.Queryable<Entity.ProductInspectionContentItem>()
                    .Where(x => x.ProductID == ProductID).ToList();
            }
        }
 
 
 
        /// <summary>
        /// 更新使用状态
        /// </summary>
        public virtual bool UpdateUseStatus(long CorpID, long ID, int UseStatus, long UpdateUserID, DateTime UpdateTime)
        {
            using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
            {
                return db.Updateable<Entity.ProductInspectionContentItem>()
                    .SetColumns(x => x.UseStatus == UseStatus)
                    .SetColumns(x => x.UpdateUserID == UpdateUserID)
                    .SetColumns(x => x.UpdateTime == UpdateTime)
                    .Where(x => x.CorpID == CorpID && x.ID == ID)
                    .ExecuteCommandHasChange();
            }
        }
    }
}