duheng
2024-07-18 7bf79c6515f27ba9be8d2b3fb4e3ceae5718e3e5
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
using HStation.Entity;
using log4net.ObjectRenderer;
using Yw.DAL.PostgreSql;
 
namespace HStation.DAL.PostgreSql
{
    /// <summary>
    ///
    /// </summary>
    public partial class PumpMain : BaseDAL_Paras_Flags_TagName_Sorter<Entity.PumpMain>, IPumpMain
    {
        /// <summary>
        ///
        /// </summary>
        public override ConnectionConfig ConnectionConfig
        {
            get { return Xhs.ConfigHelper.PostgreSqlConnectionConfig; }
        }
 
        //插入拓展
        public long InsertsEx(Entity.PumpMain pumpMain, Entity.PumpGroupAndMainMap pumpGroupAndMainMap, PumpPartMain pumpPartMain, List<PumpPropContent> pumpPropContent, PumpMainAndPartMap pumpMainAndPartMap)
        {
            if (pumpMain == null)
            {
                return default;
            }
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                try
                {
                    db.BeginTran();
                    var result = db.Insertable(pumpMain).ExecuteReturnSnowflakeId();
                    if (result < 0)
                    {
                        db.RollbackTran();
                        return default;
                    }
                    else
                    {
                        if (pumpGroupAndMainMap != null)
                        {
                            pumpGroupAndMainMap.PumpMainID = result;
                            var mapresult = db.Insertable(pumpGroupAndMainMap).ExecuteReturnSnowflakeId();
                            if (mapresult < 0)
                            {
                                db.RollbackTran();
                                return default;
                            }
                        }
                        if (pumpPartMain != null)
                        {
                            var partmain = db.Insertable(pumpPartMain).ExecuteReturnSnowflakeId();
                            if (partmain < 0)
                            {
                                db.RollbackTran();
                                return default;
                            }
                            else
                            {
                                if (pumpMainAndPartMap != null)
                                {
                                    pumpMainAndPartMap.PumpPartID = partmain;
                                    pumpMainAndPartMap.PumpID = result;
                                    var mainandpartmap = db.Insertable(pumpMainAndPartMap).ExecuteReturnSnowflakeId();
                                    if (mainandpartmap < 0)
                                    {
                                        db.RollbackTran();
                                        return default;
                                    }
                                    else
                                    {
                                        if (pumpPropContent != null)
                                        {
                                            foreach (var item in pumpPropContent)
                                            {
                                                item.PartID = partmain;
                                                item.MainID = result;
                                            }
                                            var content = db.Insertable(pumpPropContent).ExecuteReturnSnowflakeId();
                                            if (content < 0)
                                            {
                                                db.RollbackTran();
                                                return default;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    db.CommitTran();
                    return result;
                }
                catch (Exception ex)
                {
                    db.RollbackTran();
                    throw;
                }
            }
        }
 
        //删除拓展
        public bool DeleteEx(long ID)
        {
            if (ID <= 0)
            {
                return default;
            }
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                try
                {
                    db.BeginTran();
                    var main = db.Queryable<Entity.PumpMain>().ToList().Find(x => x.ID == ID);
                    var result = db.Deleteable(main).ExecuteCommand() > 0;
                    if (!result)
                    {
                        db.RollbackTran();
                        return default;
                    }
                    else
                    {
                        var map = db.Queryable<Entity.PumpGroupAndMainMap>().ToList().Find(x => x.PumpMainID == ID);
                        if (map != null)
                        {
                            var mapresult = db.Deleteable(map).ExecuteCommand() > 0;
                            if (!mapresult)
                            {
                                db.RollbackTran();
                                return default;
                            }
                        }
                    }
                    db.CommitTran();
                    return true;
                }
                catch (Exception ex)
                {
                    db.RollbackTran();
                    throw;
                }
            }
        }
    }
}