ke_junjie
2025-06-04 101c57ec4c28bc3c36e49c50a926e9e7c0dd0247
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
using IWareDataAccess.EF;
using IWareDataAccess.Entity.Task;
using IWareDataAccess.Helper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace IWareDataAccess.Task.TASK
{
   public static class SrmTaskSqlFunc
    {
 
 
        /// <summary>
        /// 搜索视图
        /// </summary>
        /// <param name="keyValue"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public static List<View_SRMTASK> SearchView(SrmTaskWebEntity webEntity, int page, int onePageNum, out string msg)
        {
            msg = "";
            using (Model edm = new Model())
            {
                var f = PredicateBuilder.True<View_SRMTASK>();
                //便利所有属性
                Type type = webEntity.GetType();
                foreach (var i in type.GetProperties())
                {
                    object v = Helper.Helper.GetFieldValueByName(webEntity, i.Name);
                    if (i.PropertyType == typeof(String))
                    {
                        string value;
                        if (v != null)
                        {
                            value = v.ToString();
                            f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false);
                        }
                    }
                    else if (i.PropertyType == typeof(DateTime?))
                    {
                        if (v != null)
                        {
                            DateTime value = DateTime.Parse(v.ToString());
                            if (i.Name == "createTimeStart")
                            {
                                f = f.And(x => x.doTime > value);
                            }
                            if (i.Name == "createTimeEnd")
                            {
                                f = f.And(x => x.doTime < value);
                            }
                        }
                    }
                    else
                    {
                        if (v != null)
                        {
                            f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v));
                        }
                    }
                }
 
                List<View_SRMTASK> list = edm.View_SRMTASK.OrderByDescending(x => x.id).Where(f.Compile()).Skip((page - 1) * onePageNum).Take(onePageNum).ToList();
 
                return list;
            }
        }
 
        /// <summary>
        /// 搜索视图数量
        /// </summary>
        /// <param name="keyValue"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public static int SearchViewNum(SrmTaskWebEntity webEntity)
        {
            using (Model edm = new Model())
            {
                var f = PredicateBuilder.True<View_SRMTASK>();
 
                //便利所有属性
                Type type = webEntity.GetType();
                foreach (var i in type.GetProperties())
                {
                    object v = Helper.Helper.GetFieldValueByName(webEntity, i.Name);
                    if (i.PropertyType == typeof(String))
                    {
                        string value;
                        if (v != null)
                        {
                            value = v.ToString();
                            f = f.And(x => Helper.Helper.GetFieldValueByName(x, i.Name) != null ? Helper.Helper.GetFieldValueByName(x, i.Name).ToString().Contains(value) : false);
                        }
                    }
                    else if (i.PropertyType == typeof(DateTime?))
                    {
                        if (v != null)
                        {
                            DateTime value = DateTime.Parse(v.ToString());
                            if (i.Name == "createTimeStart")
                            {
                                f = f.And(x => x.doTime > value);
                            }
                            if (i.Name == "createTimeEnd")
                            {
                                f = f.And(x => x.doTime < value);
                            }
                        }
                    }
                    else
                    {
                        if (v != null)
                        {
                            f = f.And(x => Object.Equals(Helper.Helper.GetFieldValueByName(x, i.Name), v));
                        }
                    }
                }
 
                int num = edm.View_SRMTASK.Where(f.Compile()).Count();
 
                return num;
            }
        }
 
    }
}