Blame view

sys/Hh.Mes.Service/WebService/Base/BaseSimService.cs 7.62 KB
HuXiYu authored
1
2
3
4
5
6
7
8
9
10
11
12
using Hh.Mes.Common.Infrastructure;
using Hh.Mes.Common.log;
using Hh.Mes.Common.Request;
using Hh.Mes.POJO.Entity;
using Hh.Mes.POJO.Response;
using Hh.Mes.Service.Repository;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using Hh.Mes.Pojo.System;
13
using NPOI.POIFS.FileSystem;
HuXiYu authored
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

namespace Hh.Mes.Service.Base
{
    public class BaseSimService : RepositorySqlSugar<base_sim>
    {
        public dynamic Load(PageReq pageReq, base_sim entity)
        {
            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                var result = new Response<List<base_sim>>();
                var expression = LinqWhere(entity);
                //先组合查询表达式
                var query = Context.Queryable<base_sim>().Where(expression);
                //Exelture就不分页,因为导出的话是全部导出
                if (pageReq != null)
                {
                    int total = 0;
                    result.Result = query.ToOffsetPage(pageReq.page, pageReq.limit, ref total);
                    result.Count = total;
                }
                else
                {
                    result.Result = query.ToList();
37
                    result.Count = result.Result.Count;
HuXiYu authored
38
39
40
41
42
43
44
45
46
47
                }
                return result;
            }, catchRetrunValue: "list");
        }

        public dynamic Ins(base_sim entity)
        {
            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                var response = new Response();
HuXiYu authored
48
49
                entity.createBy = sysWebUser?.Account;
                entity.createTime = DateTime.Now;
HuXiYu authored
50
51
52
53
54
55
56
57
58
59
60
                response.Status = Add(entity);
                if (!response.Status) response.Message = SystemVariable.dataActionError;
                return response;
            });
        }

        public dynamic Upd(base_sim entity)
        {
            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                var response = new Response();
61
62
63
64
65
66
67
68
69
70
71
72
73
                //判断如果关联了设备,禁止修改卡号
                var historySimInfo = Context.Queryable<base_sim, base_sim_equipment_rel>((x, y) => x.simNumber == y.simNumber)
                                    .Where((x, y) => x.id == entity.id)
                                    .Select((x, y) => new { x.id, x.simNumber })
                                    .First();
                if (historySimInfo != null && entity.simNumber != historySimInfo.simNumber)
                {
                    response.Code = 500;
                    response.Status = false;
                    response.Message = $"当前sim卡已经关联了设备,禁止修改卡号【{historySimInfo.simNumber}】,如果要修改请先解绑sim卡关联的设备!";
                    return response;
                }
                entity.updateBy = sysWebUser.Account;
HuXiYu authored
74
                entity.updateTime = DateTime.Now;
HuXiYu authored
75
76
77
78
79
80
                response.Status = Update(entity);
                if (!response.Status) response.Message = SystemVariable.dataActionError;
                return response;
            });
        }
81
        public dynamic DelByIds(string[] ids)
HuXiYu authored
82
83
84
85
        {
            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                var response = new Response();
86
87
88
89
90
91
92
93
94
95
96
97
                //判断如果关联了设备,禁止删除
                var simNumber = ids[0];
                var isSimInfo = Context.Queryable<base_sim_equipment_rel>().Any(x => x.simNumber == simNumber);
                if (isSimInfo)
                {
                    response.Code = 500;
                    response.Status = false;
                    response.Message = "当前sim卡已经关联了设备,禁止删除卡号,如果要修改请先解绑sim卡关联的设备!";
                    return response;
                }

                Context.Deleteable<base_sim>(t => ids.Contains(t.simNumber)).ExecuteCommand();
HuXiYu authored
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
                return response;
            });
        }

        public Response ExportData(base_sim entity)
        {
            return Load(null, entity);
        }

        public Expression<Func<base_sim, bool>> LinqWhere(base_sim model)
        {
            try
            {
                var exp = Expressionable.Create<base_sim>();
                //数据过滤条件
                //if (!string.IsNullOrWhiteSpace(model.XXX)) exp.And(x => x.XXX.Contains(model.XXX));
                if (!string.IsNullOrWhiteSpace(model.simNumber))
                {
                    exp.And(x => x.simNumber.Contains(model.simNumber));
                }
                if (!string.IsNullOrWhiteSpace(model.ip))
                {
                    exp.And(x => x.ip.Contains(model.ip));
                }
                if (!string.IsNullOrWhiteSpace(model.suppliersInfo))
                {
                    exp.And(x => x.suppliersInfo.Contains(model.suppliersInfo));
                }
                return exp.ToExpression();//拼接表达式
            }
            catch (Exception ex)
            {
                throw new Exception($"{ex.Message}");
            }
        }
HuXiYu authored
134
        public dynamic BindEquipment(string simNumber, bool checkeds, string equipmentCode, string projectKeys)
HuXiYu authored
135
136
137
138
        {
            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                var response = new Response();
139
140
141
                string[] strArray = equipmentCode.Split(new char[] { ',' });
                var simBindCount = Context.Queryable<base_sim_equipment_rel>().Where(x => x.simNumber == simNumber).ToList().Count;
                if (strArray != null && strArray.Length > 0)
HuXiYu authored
142
                {
143
                    foreach (var item in strArray)
HuXiYu authored
144
                    {
145
                        if (checkeds)
146
147
148
149
150
151
						{
							var isHave = Context.Queryable<base_sim_equipment_rel>()
												.Any(x => x.simNumber == simNumber && x.projectKey == new Guid(projectKeys) && x.equipmentCode == item);
							if (isHave) continue;
							//添加
							if (simBindCount < 250 && !isHave)
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
                            {
                                base_sim_equipment_rel bser = new base_sim_equipment_rel();
                                bser.simNumber = simNumber;
                                bser.equipmentCode = item;
                                bser.projectKey = new Guid(projectKeys);
                                Context.Insertable(bser).AddQueue();
                                response.Status = Context.SaveQueues() > 0;
                                if (!response.Status)
                                {
                                    response.Message = "添加SIM卡关联设备数据失败!";
                                    return response;
                                }
                            }
                            else
                            {
                                response.Message = "不可重复绑定!一张SIM卡只允许绑定250个设备,请选择其它SIM卡绑定";
                                return response;
                            }
                        }
                        else
                        {
173
174
175
176
177
178
179
180
							Context.Deleteable<base_sim_equipment_rel>(x => x.simNumber == simNumber && x.projectKey == new Guid(projectKeys) && x.equipmentCode == item).AddQueue();
							response.Status = Context.SaveQueues() > 0;
							if (!response.Status)
							{
								response.Message = "删除sim卡与设备绑定关系数据失败!";
								return response;
							}
						}
HuXiYu authored
181
                    }
HuXiYu authored
182
                }
183
184
                response.Message = "业务数据操作成功,稍后刷新列表数据!";
				return response;
HuXiYu authored
185
186
187
188
            });
        }
    }
}