Blame view

sys/Hh.Mes.Service/WebService/Equipment/BaseEquipmentPartService.cs 5.66 KB
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
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;
using System.Data;

namespace Hh.Mes.Service.Equipment
{
    public class BaseEquipmentPartService : RepositorySqlSugar<base_equipment_part>
    {
        public dynamic Load(PageReq pageReq, base_equipment_part entity)
        {
            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                var result = new Response();
                var expression = LinqWhere(entity);
                //先组合查询表达式(多表查询查看IOT 设备列表案例)
                var query = Context.Queryable<base_equipment_part>().Where(expression);
                //Exel false 分页
                if (!entity.Exel)
                {
                    int total = 0;
                    result.Result = query.ToOffsetPage(pageReq.page, pageReq.limit, ref total);
                    result.Count = total;
                }
                else
                {
                    result.Result = query.ToList();
                    result.Count = result.Result.Count;
                }
                return result;
            }, catchRetrunValue: "list");
        }
HuXiYu authored
42
43
44
45
46
47
48
49
50
        public dynamic Ins(base_equipment_part entity)
        {
            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                var response = new Response();
                entity.createBy = sysWebUser.Account;
                entity.createTime = DateTime.Now;
                response.Status = Add(entity);
HuXiYu authored
51
                if (!response.Status) response.Message = SystemVariable.dataActionError;
52
53
54
                return response;
            });
        }
HuXiYu authored
55
56
57
58
59
60
61
62
63
64
65
66
67
        public dynamic Upd(base_equipment_part entity)
        {
            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                var response = new Response();
                entity.updateBy = sysWebUser.Account;
                entity.updateTime = DateTime.Now;
                response.Status = Update(entity);
                if (!response.Status) response.Message = SystemVariable.dataActionError;
                return response;
            });
        }
HuXiYu authored
68
69
70
71
72
73
74
75
76
77
        public dynamic DelByIds(int[] ids)
        {
            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                var response = new Response();
                Context.Deleteable<base_equipment_part>(t => ids.Contains(t.id)).ExecuteCommand();
                return response;
            });
        }
HuXiYu authored
78
79
80
81
82
        public Response ExportData(base_equipment_part entity)
        {
            return Load(null, entity);
        }
HuXiYu authored
83
84
85
86
87
88
89
90
        public Expression<Func<base_equipment_part, bool>> LinqWhere(base_equipment_part model)
        {
            try
            {
                var exp = Expressionable.Create<base_equipment_part>();
                //数据过滤条件
                //if (!string.IsNullOrWhiteSpace(model.XXX)) exp.And(x => x.XXX.Contains(model.XXX));
91
                if (!string.IsNullOrWhiteSpace(model.partCode) && model.filterPartFlag == 0)
92
93
94
95
96
97
98
99
100
                {
                    exp.And(x => x.partCode.Contains(model.partCode));
                }
                if (!string.IsNullOrWhiteSpace(model.partName))
                {
                    exp.And(x => x.partName.Contains(model.partName));
                }
                if (!string.IsNullOrWhiteSpace(model.equipmentTypeCode))
                {
HuXiYu authored
101
                    exp.And(x => x.equipmentTypeCode == model.equipmentTypeCode);
102
                }
103
                if (model.filterPartFlag == 1)//保养规则明细新增时增加条件过滤
104
                {
105
106
107
108
                    var partCodes = Context.Queryable<bus_equipment_maintain_rule_detail>()
                                           .Where(i => i.headKeys == model.headKeys)
                                           .Select(i => i.equipmentPartCode).ToList();
                    exp.And(x => !partCodes.Contains(x.partCode));
109
                }
110
111
112
113
114
115
116
                if (model.filterPartFlag == 2)//保养规则明细编辑时增加条件过滤
                {
                    var partCodes = Context.Queryable<bus_equipment_maintain_rule_detail>()
                                           .Where(i => i.headKeys == model.headKeys && i.equipmentPartCode != model.partCode)
                                           .Select(i => i.equipmentPartCode).ToList();
                    exp.And(x => !partCodes.Contains(x.partCode));
                }
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
                return exp.ToExpression();//拼接表达式
            }
            catch (Exception ex)
            {
                throw new Exception($"{ex.Message}");
            }
        }


        /// <summary>
        /// /左侧列表 设备类型树
        /// </summary>
        public DataTable GetTreeList()
        {
            string sql = $@" select  name='设备根节点',
                                   keys ='00000000-0000-0000-0000-000000000000',
                                   parentId=null,rootInfo='root',
								   equipmentTypeCode=''
                            union all
                            select  
                                    name, 
                                    keys=newid(),
                                    parentId ='00000000-0000-0000-0000-000000000000',rootInfo='twoRoot',
									equipmentTypeCode=code
                            from  base_equipment_type  ";
            var dt = base.Context.Ado.GetDataTable(sql);
            return dt == null || dt.Rows.Count == 0 ? null : dt;
        }
    }
}