duheng
2024-11-17 a2a57963e160a319276c5c8499f16c9809056e4c
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
using Yw.DAL.SQLite;
 
namespace HStation.DAL.SQLite
{
    /// <summary>
    ///
    /// </summary>
    public partial class AssetsPumpSeries : BaseDAL_Paras_Flags_TagName_Sorter<Entity.AssetsPumpSeries>, IAssetsPumpSeries
    {
        /// <summary>
        ///
        /// </summary>
        public override ConnectionConfig ConnectionConfig
        {
            get { return Assets.ConfigHelper.SQLiteConnectionConfig; }
        }
 
        //删除拓展
        public bool DeleteEx(long ID)
        {
            if (ID < 0)
            {
                return default;
            }
            using (var db = new SqlSugarClient(ConnectionConfig))
            {
                try
                {
                    db.BeginTran();
                    var project = db.Queryable<Entity.AssetsPumpSeries>().ToList().Find(x => x.ID == ID);
                    var result = db.Deleteable(project).ExecuteCommand() > 0;
                    if (!result)
                    {
                        db.RollbackTran();
                        return default;
                    }
                    else
                    {
                        var group = db.Queryable<Entity.AssetsPumpGroup>().ToList().Find(x => x.SeriesID == project.ID);
                        if (group != null)
                        {
                            var groupresult = db.Deleteable(group).ExecuteCommand() > 0;
                            if (!groupresult)
                            {
                                db.RollbackTran();
                                return default;
                            }
                            else
                            {
                                var map = db.Queryable<Entity.AssetsPumpGroupAndMainMapping>()
                                .Where(x => x.GroupID == group.ID)
                                 .ToList();
                                var listid = db.Queryable<Entity.AssetsPumpGroupAndMainMapping>()
                                .Where(x => x.GroupID == group.ID)
                                .Select(x => x.MainID)
                                .ToList();
                                if (map.Count > 0)
                                {
                                    var Modelresult = db.Deleteable(map).ExecuteCommand() > 0;
                                    if (!Modelresult)
                                    {
                                        db.RollbackTran();
                                        return default;
                                    }
                                    else
                                    {
                                        var main = db.Queryable<Entity.AssetsPumpMain>().ToList();
                                        foreach (var item in main)
                                        {
                                            if (item.SeriesID == project.ID)
                                            {
                                                listid.Add(item.ID);
                                            }
                                        }
                                        var mainresult = db.Deleteable<Entity.AssetsPumpMain>()
                                        .In(x => x.ID, listid)
                                        .ExecuteCommand() > 0;
                                        if (!mainresult)
                                        {
                                            db.RollbackTran();
                                            return default;
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            var listid = new List<long>();
                            var main = db.Queryable<Entity.AssetsPumpMain>().ToList();
                            foreach (var item in main)
                            {
                                if (item.SeriesID == project.ID)
                                {
                                    listid.Add(item.ID);
                                }
                            }
                            if (listid.Count > 0)
                            {
                                var mainresult = db.Deleteable<Entity.AssetsPumpMain>()
                                .In(x => x.ID, listid)
                                .ExecuteCommand() > 0;
                                if (!mainresult)
                                {
                                    db.RollbackTran();
                                    return default;
                                }
                            }
                        }
                        db.CommitTran();
                        return result;
                    }
                }
                catch (Exception ex)
                {
                    db.RollbackTran();
                    throw;
                }
            }
        }
    }
}