duhongyu лет назад: 5
Родитель
Сommit
13a1118ebe
14 измененных файлов с 1149 добавлено и 249 удалено
  1. 140 0
      CallCenterApi/CallCenterApi.BLL/T_RepositoryCategoryNew.cs
  2. 7 2
      CallCenterApi/CallCenterApi.BLL/T_Repository_Operation.cs
  3. 139 0
      CallCenterApi/CallCenterApi.BLL/T_Sys_Volunteer.cs
  4. 19 8
      CallCenterApi/CallCenterApi.DAL/T_Repository_Operation.cs
  5. 110 8
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/VolunteerController.cs
  6. 42 0
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/information/InternalMessagesController.cs
  7. 124 64
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/knowledge/RepositoryController.cs
  8. 27 22
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TalkTimeController.cs
  9. 386 121
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TotalCallController.cs
  10. 104 9
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/YearContrastController.cs
  11. 24 5
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallInScreenController.cs
  12. 14 10
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderController.cs
  13. 4 0
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Common/ButtonGroup.cs
  14. 9 0
      CallCenterApi/CallCenterApi.Model/T_Repository_Operation.cs

+ 140 - 0
CallCenterApi/CallCenterApi.BLL/T_RepositoryCategoryNew.cs

@@ -0,0 +1,140 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Data;
4
+using System.Linq;
5
+using System.Text;
6
+using System.Threading.Tasks;
7
+
8
+namespace CallCenterApi.BLL
9
+{
10
+    /// <summary>
11
+	/// T_RepositoryCategoryNew
12
+	/// </summary>
13
+	public partial class T_RepositoryCategoryNew
14
+    {
15
+        private readonly CallCenterApi.DAL.T_RepositoryCategoryNew dal = new CallCenterApi.DAL.T_RepositoryCategoryNew();
16
+        public T_RepositoryCategoryNew()
17
+        { }
18
+        #region  BasicMethod
19
+        /// <summary>
20
+        /// 是否存在该记录
21
+        /// </summary>
22
+        public bool Exists(int F_CategoryId)
23
+        {
24
+            return dal.Exists(F_CategoryId);
25
+        }
26
+
27
+        /// <summary>
28
+        /// 增加一条数据
29
+        /// </summary>
30
+        public int Add(CallCenterApi.Model.T_RepositoryCategoryNew model)
31
+        {
32
+            return dal.Add(model);
33
+        }
34
+
35
+        /// <summary>
36
+        /// 更新一条数据
37
+        /// </summary>
38
+        public bool Update(CallCenterApi.Model.T_RepositoryCategoryNew model)
39
+        {
40
+            return dal.Update(model);
41
+        }
42
+
43
+        /// <summary>
44
+        /// 删除一条数据
45
+        /// </summary>
46
+        public bool Delete(int F_CategoryId)
47
+        {
48
+
49
+            return dal.Delete(F_CategoryId);
50
+        }
51
+        /// <summary>
52
+        /// 删除一条数据
53
+        /// </summary>
54
+        public bool DeleteList(string F_CategoryIdlist)
55
+        {
56
+            return dal.DeleteList(F_CategoryIdlist);
57
+        }
58
+
59
+        /// <summary>
60
+        /// 得到一个对象实体
61
+        /// </summary>
62
+        public CallCenterApi.Model.T_RepositoryCategoryNew GetModel(int F_CategoryId)
63
+        {
64
+
65
+            return dal.GetModel(F_CategoryId);
66
+        }
67
+
68
+        /// <summary>
69
+        /// 获得数据列表
70
+        /// </summary>
71
+        public DataSet GetList(string strWhere)
72
+        {
73
+            return dal.GetList(strWhere);
74
+        }
75
+        /// <summary>
76
+        /// 获得前几行数据
77
+        /// </summary>
78
+        public DataSet GetList(int Top, string strWhere, string filedOrder)
79
+        {
80
+            return dal.GetList(Top, strWhere, filedOrder);
81
+        }
82
+        /// <summary>
83
+        /// 获得数据列表
84
+        /// </summary>
85
+        public List<CallCenterApi.Model.T_RepositoryCategoryNew> GetModelList(string strWhere)
86
+        {
87
+            DataSet ds = dal.GetList(strWhere);
88
+            return DataTableToList(ds.Tables[0]);
89
+        }
90
+        /// <summary>
91
+        /// 获得数据列表
92
+        /// </summary>
93
+        public List<CallCenterApi.Model.T_RepositoryCategoryNew> DataTableToList(DataTable dt)
94
+        {
95
+            List<CallCenterApi.Model.T_RepositoryCategoryNew> modelList = new List<CallCenterApi.Model.T_RepositoryCategoryNew>();
96
+            int rowsCount = dt.Rows.Count;
97
+            if (rowsCount > 0)
98
+            {
99
+                CallCenterApi.Model.T_RepositoryCategoryNew model;
100
+                for (int n = 0; n < rowsCount; n++)
101
+                {
102
+                    model = dal.DataRowToModel(dt.Rows[n]);
103
+                    if (model != null)
104
+                    {
105
+                        modelList.Add(model);
106
+                    }
107
+                }
108
+            }
109
+            return modelList;
110
+        }
111
+
112
+        /// <summary>
113
+        /// 获得数据列表
114
+        /// </summary>
115
+        public DataSet GetAllList()
116
+        {
117
+            return GetList("");
118
+        }
119
+
120
+        /// <summary>
121
+        /// 分页获取数据列表
122
+        /// </summary>
123
+        public int GetRecordCount(string strWhere)
124
+        {
125
+            return dal.GetRecordCount(strWhere);
126
+        }
127
+        /// <summary>
128
+        /// 分页获取数据列表
129
+        /// </summary>
130
+        public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
131
+        {
132
+            return dal.GetListByPage(strWhere, orderby, startIndex, endIndex);
133
+        }
134
+
135
+        #endregion  BasicMethod
136
+        #region  ExtensionMethod
137
+
138
+        #endregion  ExtensionMethod
139
+    }
140
+}

+ 7 - 2
CallCenterApi/CallCenterApi.BLL/T_Repository_Operation.cs

@@ -120,7 +120,7 @@ namespace CallCenterApi.BLL
120 120
                     {
121 121
                         model.F_OptType = int.Parse(dt.Rows[n]["F_OptType"].ToString());
122 122
                     }
123
-                    if (dt.Rows[n]["F_OptContent"] != null && dt.Rows[n]["F_OptContent"].ToString() != "")
123
+                    if (dt.Rows[n]["F_OptContent"] != null)
124 124
                     {
125 125
                         model.F_OptContent = dt.Rows[n]["F_OptContent"].ToString();
126 126
                     }
@@ -128,7 +128,7 @@ namespace CallCenterApi.BLL
128 128
                     {
129 129
                         model.F_State = int.Parse(dt.Rows[n]["F_State"].ToString());
130 130
                     }
131
-                    if (dt.Rows[n]["F_OptBy"] != null && dt.Rows[n]["F_OptBy"].ToString() != "")
131
+                    if (dt.Rows[n]["F_OptBy"] != null)
132 132
                     {
133 133
                         model.F_OptBy = dt.Rows[n]["F_OptBy"].ToString();
134 134
                     }
@@ -136,6 +136,11 @@ namespace CallCenterApi.BLL
136 136
                     {
137 137
                         model.F_OptOn = DateTime.Parse(dt.Rows[n]["F_OptOn"].ToString());
138 138
                     }
139
+                    if (dt.Rows[n]["F_Reason"] != null)
140
+                    {
141
+                        model.F_Reason = dt.Rows[n]["F_Reason"].ToString();
142
+                    }
143
+
139 144
                     modelList.Add(model);
140 145
                 }
141 146
             }

+ 139 - 0
CallCenterApi/CallCenterApi.BLL/T_Sys_Volunteer.cs

@@ -0,0 +1,139 @@
1
+using System;
2
+using System.Data;
3
+using System.Collections.Generic;
4
+using CallCenterApi.Model;
5
+namespace CallCenterApi.BLL
6
+{
7
+    /// <summary>
8
+    /// T_Sys_Volunteer
9
+    /// </summary>
10
+    public partial class T_Sys_Volunteer
11
+    {
12
+        private readonly DAL.T_Sys_Volunteer dal = new DAL.T_Sys_Volunteer();
13
+        public T_Sys_Volunteer()
14
+        { }
15
+        #region  BasicMethod
16
+
17
+        /// <summary>
18
+        /// 增加一条数据
19
+        /// </summary>
20
+        public long Add(Model.T_Sys_Volunteer model)
21
+        {
22
+            return dal.Add(model);
23
+        }
24
+
25
+        /// <summary>
26
+        /// 更新一条数据
27
+        /// </summary>
28
+        public bool Update(Model.T_Sys_Volunteer model)
29
+        {
30
+            return dal.Update(model);
31
+        }
32
+
33
+        /// <summary>
34
+        /// 删除一条数据
35
+        /// </summary>
36
+        public bool Delete(long ID)
37
+        {
38
+
39
+            return dal.Delete(ID);
40
+        }
41
+        /// <summary>
42
+        /// 删除一条数据
43
+        /// </summary>
44
+        public bool DeleteList(string IDlist)
45
+        {
46
+            return dal.DeleteList(IDlist);
47
+        }
48
+
49
+        /// <summary>
50
+        /// 得到一个对象实体
51
+        /// </summary>
52
+        public Model.T_Sys_Volunteer GetModel(long ID)
53
+        {
54
+
55
+            return dal.GetModel(ID);
56
+        }
57
+
58
+
59
+        /// <summary>
60
+        /// 获得数据列表
61
+        /// </summary>
62
+        public DataSet GetList(string strWhere)
63
+        {
64
+            return dal.GetList(strWhere);
65
+        }
66
+        /// <summary>
67
+        /// 获得前几行数据
68
+        /// </summary>
69
+        public DataSet GetList(int Top, string strWhere, string filedOrder)
70
+        {
71
+            return dal.GetList(Top, strWhere, filedOrder);
72
+        }
73
+        /// <summary>
74
+        /// 获得数据列表
75
+        /// </summary>
76
+        public List<Model.T_Sys_Volunteer> GetModelList(string strWhere)
77
+        {
78
+            DataSet ds = dal.GetList(strWhere);
79
+            return DataTableToList(ds.Tables[0]);
80
+        }
81
+        /// <summary>
82
+        /// 获得数据列表
83
+        /// </summary>
84
+        public List<Model.T_Sys_Volunteer> DataTableToList(DataTable dt)
85
+        {
86
+            List<Model.T_Sys_Volunteer> modelList = new List<Model.T_Sys_Volunteer>();
87
+            int rowsCount = dt.Rows.Count;
88
+            if (rowsCount > 0)
89
+            {
90
+                Model.T_Sys_Volunteer model;
91
+                for (int n = 0; n < rowsCount; n++)
92
+                {
93
+                    model = dal.DataRowToModel(dt.Rows[n]);
94
+                    if (model != null)
95
+                    {
96
+                        modelList.Add(model);
97
+                    }
98
+                }
99
+            }
100
+            return modelList;
101
+        }
102
+
103
+        /// <summary>
104
+        /// 获得数据列表
105
+        /// </summary>
106
+        public DataSet GetAllList()
107
+        {
108
+            return GetList("");
109
+        }
110
+
111
+        /// <summary>
112
+        /// 分页获取数据列表
113
+        /// </summary>
114
+        public int GetRecordCount(string strWhere)
115
+        {
116
+            return dal.GetRecordCount(strWhere);
117
+        }
118
+        /// <summary>
119
+        /// 分页获取数据列表
120
+        /// </summary>
121
+        public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
122
+        {
123
+            return dal.GetListByPage(strWhere, orderby, startIndex, endIndex);
124
+        }
125
+        /// <summary>
126
+        /// 分页获取数据列表
127
+        /// </summary>
128
+        //public DataSet GetList(int PageSize,int PageIndex,string strWhere)
129
+        //{
130
+        //return dal.GetList(PageSize,PageIndex,strWhere);
131
+        //}
132
+
133
+        #endregion  BasicMethod
134
+        #region  ExtensionMethod
135
+
136
+        #endregion  ExtensionMethod
137
+    }
138
+}
139
+

+ 19 - 8
CallCenterApi/CallCenterApi.DAL/T_Repository_Operation.cs

@@ -41,9 +41,9 @@ namespace CallCenterApi.DAL
41 41
         {
42 42
             StringBuilder strSql = new StringBuilder();
43 43
             strSql.Append("insert into T_Repository_Operation(");
44
-            strSql.Append("F_RepositoryId,F_AuditId,F_LogId,F_OptType,F_OptContent,F_State,F_OptBy,F_OptOn)");
44
+            strSql.Append("F_RepositoryId,F_AuditId,F_LogId,F_OptType,F_OptContent,F_State,F_OptBy,F_OptOn,F_Reason)");
45 45
             strSql.Append(" values (");
46
-            strSql.Append("@F_RepositoryId,@F_AuditId,@F_LogId,@F_OptType,@F_OptContent,@F_State,@F_OptBy,@F_OptOn)");
46
+            strSql.Append("@F_RepositoryId,@F_AuditId,@F_LogId,@F_OptType,@F_OptContent,@F_State,@F_OptBy,@F_OptOn,@F_Reason)");
47 47
             strSql.Append(";select @@IDENTITY");
48 48
             SqlParameter[] parameters = {
49 49
                     new SqlParameter("@F_RepositoryId", SqlDbType.Int,4),
@@ -53,7 +53,9 @@ namespace CallCenterApi.DAL
53 53
                     new SqlParameter("@F_OptContent", SqlDbType.NVarChar),
54 54
                     new SqlParameter("@F_State", SqlDbType.Int,4),
55 55
                     new SqlParameter("@F_OptBy", SqlDbType.VarChar,50),
56
-                    new SqlParameter("@F_OptOn", SqlDbType.DateTime)};
56
+                    new SqlParameter("@F_OptOn", SqlDbType.DateTime),
57
+                    new SqlParameter("@F_Reason", SqlDbType.NVarChar),
58
+            };
57 59
             parameters[0].Value = model.F_RepositoryId;
58 60
             parameters[1].Value = model.F_AuditId;
59 61
             parameters[2].Value = model.F_LogId;
@@ -62,6 +64,7 @@ namespace CallCenterApi.DAL
62 64
             parameters[5].Value = model.F_State;
63 65
             parameters[6].Value = model.F_OptBy;
64 66
             parameters[7].Value = model.F_OptOn;
67
+            parameters[8].Value = model.F_Reason;
65 68
 
66 69
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
67 70
             if (obj == null)
@@ -87,7 +90,8 @@ namespace CallCenterApi.DAL
87 90
             strSql.Append("F_OptContent=@F_OptContent,");
88 91
             strSql.Append("F_State=@F_State,");
89 92
             strSql.Append("F_OptBy=@F_OptBy,");
90
-            strSql.Append("F_OptOn=@F_OptOn");
93
+            strSql.Append("F_OptOn=@F_OptOn,");
94
+            strSql.Append("F_Reason=@F_Reason ");
91 95
             strSql.Append(" where F_Id=@F_Id");
92 96
             SqlParameter[] parameters = {
93 97
                     new SqlParameter("@F_RepositoryId", SqlDbType.Int,4),
@@ -98,6 +102,7 @@ namespace CallCenterApi.DAL
98 102
                     new SqlParameter("@F_State", SqlDbType.Int,4),
99 103
                     new SqlParameter("@F_OptBy", SqlDbType.VarChar,50),
100 104
                     new SqlParameter("@F_OptOn", SqlDbType.DateTime),
105
+                    new SqlParameter("@F_Reason", SqlDbType.NVarChar),
101 106
                     new SqlParameter("@F_Id", SqlDbType.Int,4)};
102 107
             parameters[0].Value = model.F_RepositoryId;
103 108
             parameters[1].Value = model.F_AuditId;
@@ -107,7 +112,8 @@ namespace CallCenterApi.DAL
107 112
             parameters[5].Value = model.F_State;
108 113
             parameters[6].Value = model.F_OptBy;
109 114
             parameters[7].Value = model.F_OptOn;
110
-            parameters[8].Value = model.F_Id;
115
+            parameters[8].Value = model.F_Reason;
116
+            parameters[9].Value = model.F_Id;
111 117
 
112 118
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
113 119
             if (rows > 0)
@@ -171,7 +177,7 @@ namespace CallCenterApi.DAL
171 177
         {
172 178
 
173 179
             StringBuilder strSql = new StringBuilder();
174
-            strSql.Append("select  top 1 F_Id,F_RepositoryId,F_AuditId,F_LogId,F_OptType,F_OptContent,F_State,F_OptBy,F_OptOn from T_Repository_Operation ");
180
+            strSql.Append("select  top 1 * from T_Repository_Operation ");
175 181
             strSql.Append(" where F_Id=@F_Id");
176 182
             SqlParameter[] parameters = {
177 183
                     new SqlParameter("@F_Id", SqlDbType.Int,4)
@@ -202,7 +208,7 @@ namespace CallCenterApi.DAL
202 208
                 {
203 209
                     model.F_OptType = int.Parse(ds.Tables[0].Rows[0]["F_OptType"].ToString());
204 210
                 }
205
-                if (ds.Tables[0].Rows[0]["F_OptContent"] != null && ds.Tables[0].Rows[0]["F_OptContent"].ToString() != "")
211
+                if (ds.Tables[0].Rows[0]["F_OptContent"] != null)
206 212
                 {
207 213
                     model.F_OptContent = ds.Tables[0].Rows[0]["F_OptContent"].ToString();
208 214
                 }
@@ -210,7 +216,7 @@ namespace CallCenterApi.DAL
210 216
                 {
211 217
                     model.F_State = int.Parse(ds.Tables[0].Rows[0]["F_State"].ToString());
212 218
                 }
213
-                if (ds.Tables[0].Rows[0]["F_OptBy"] != null && ds.Tables[0].Rows[0]["F_OptBy"].ToString() != "")
219
+                if (ds.Tables[0].Rows[0]["F_OptBy"] != null)
214 220
                 {
215 221
                     model.F_OptBy = ds.Tables[0].Rows[0]["F_OptBy"].ToString();
216 222
                 }
@@ -218,6 +224,11 @@ namespace CallCenterApi.DAL
218 224
                 {
219 225
                     model.F_OptOn = DateTime.Parse(ds.Tables[0].Rows[0]["F_OptOn"].ToString());
220 226
                 }
227
+                if (ds.Tables[0].Rows[0]["F_Reason"] != null)
228
+                {
229
+                    model.F_Reason = ds.Tables[0].Rows[0]["F_Reason"].ToString();
230
+                }
231
+
221 232
                 return model;
222 233
             }
223 234
             else

+ 110 - 8
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/VolunteerController.cs

@@ -1,6 +1,8 @@
1
-using CallCenterApi.Interface.Controllers.Base;
1
+using CallCenter.Utility;
2
+using CallCenterApi.Interface.Controllers.Base;
2 3
 using System;
3 4
 using System.Collections.Generic;
5
+using System.Data;
4 6
 using System.Linq;
5 7
 using System.Web;
6 8
 using System.Web.Mvc;
@@ -10,7 +12,7 @@ namespace CallCenterApi.Interface.Controllers
10 12
     public class VolunteerController : BaseController
11 13
     {
12 14
         private BLL.T_Sys_Volunteer ApplicationsBLL = new BLL.T_Sys_Volunteer();
13
-      
15
+
14 16
         public class ApplicationsVersion
15 17
         {
16 18
 
@@ -95,7 +97,7 @@ namespace CallCenterApi.Interface.Controllers
95 97
             {
96 98
                 return Error("请输入电话");
97 99
             }
98
-            if (address.ID  == 0)
100
+            if (address.ID == 0)
99 101
             {
100 102
                 model.Name = address.Name;
101 103
                 model.Gender = address.Gender;
@@ -103,7 +105,7 @@ namespace CallCenterApi.Interface.Controllers
103 105
                 model.Tel = address.Tel;
104 106
                 model.IDcardNo = address.IDcardNo;
105 107
                 model.Politicaloutlook = address.Politicaloutlook;
106
-              
108
+
107 109
                 model.Specialty = address.Specialty;
108 110
                 model.Post = address.Post;
109 111
                 model.Placeofresidence = address.Placeofresidence;
@@ -112,7 +114,7 @@ namespace CallCenterApi.Interface.Controllers
112 114
                 model.Opinion = address.Opinion;
113 115
                 model.IsDelete = 0;
114 116
                 model.CreateTime = DateTime.Now;
115
-                long  n = ApplicationsBLL.Add(model);
117
+                long n = ApplicationsBLL.Add(model);
116 118
                 if (n > 0)
117 119
                 {
118 120
                     return Success("添加成功", n);
@@ -124,7 +126,7 @@ namespace CallCenterApi.Interface.Controllers
124 126
             }
125 127
             else
126 128
             {
127
-                model = ApplicationsBLL.GetModel(address.ID );
129
+                model = ApplicationsBLL.GetModel(address.ID);
128 130
                 if (model != null)
129 131
                 {
130 132
                     model.Name = address.Name;
@@ -133,7 +135,7 @@ namespace CallCenterApi.Interface.Controllers
133 135
                     model.Tel = address.Tel;
134 136
                     model.IDcardNo = address.IDcardNo;
135 137
                     model.Politicaloutlook = address.Politicaloutlook;
136
-
138
+                    model.IsDelete = 0;
137 139
                     model.Specialty = address.Specialty;
138 140
                     model.Post = address.Post;
139 141
                     model.Placeofresidence = address.Placeofresidence;
@@ -152,9 +154,109 @@ namespace CallCenterApi.Interface.Controllers
152 154
                 return Error("信息不存在");
153 155
             }
154 156
         }
157
+        /// <summary>
158
+        /// 列表
159
+        /// </summary>
160
+        /// <param name="keywords"></param>
161
+        /// <param name="pageindex"></param>
162
+        /// <param name="pagesize"></param>
163
+        /// <returns></returns>
164
+        public ActionResult GetList(string keywords, int pageindex = 1, int pagesize = 10)
165
+        {
166
+            DataTable dt = new DataTable();
167
+            string sql = "and IsDelete=0";
168
+            if (!string.IsNullOrWhiteSpace(keywords))//关键字搜索
169
+                sql += $"  and ( Name like '%" + keywords.Trim() + "%'or Nation like '%" + keywords.Trim() + "%'or Tel like '%" + keywords.Trim() + "%'or IDcardNo like '%" + keywords.Trim() + "%'or Politicaloutlook like '%" + keywords.Trim() + "%' ) ";
170
+            int recordCount = 0;
171
+            if (!string.IsNullOrWhiteSpace(sql))
172
+            {
155 173
 
156
-    }
174
+                dt = BLL.PagerBLL.GetListPager(
175
+                    "T_Sys_Volunteer",
176
+                    "ID",
177
+                    "*",
178
+                    sql,
179
+                    "ORDER BY T_Sys_Volunteer.ID desc",
180
+                    pagesize,
181
+                    pageindex,
182
+                    true,
183
+                    out recordCount);
184
+            }
185
+            List<Model.T_Sys_Volunteer> modlelist = new BLL.T_Sys_Volunteer().DataTableToList(dt);
186
+            if (modlelist.Count > 0)
187
+            {
188
+                var obj = new
189
+                {
190
+                    state = "success",
191
+                    message = "成功",
192
+                    rows = modlelist,
193
+                    total = recordCount
194
+                };
195
+
196
+                return Content(obj.ToJson()); ;
197
+            }
198
+            else
199
+            {
200
+
201
+                return Success("暂无数据"); ;
202
+            }
203
+        }
204
+        public class Serviceintention
205
+        {
206
+            public string name;
207
+            public int id;
208
+            public bool isdisplay = false;
209
+        }
210
+        /// <summary>
211
+        /// 查询详情
212
+        /// </summary>
213
+        public ActionResult GetDetails(int id)
214
+        {
215
+            List<Serviceintention> serviceintentions  = new List<Serviceintention>();
216
+            if (id <= 0)
217
+            {
218
+                return Error("请输入正确的id");
219
+            }
220
+            var model = ApplicationsBLL.GetModel(id);
221
+            if (model == null)
222
+                return Error("该表不存在");
223
+            var DictionaryValue = new BLL.T_Sys_DictionaryValue().GetModelList("F_PrentId=62 and F_State=0");
224
+            if (DictionaryValue!=null )
225
+            {
226
+                foreach (var it in DictionaryValue)
227
+                {
228
+                    Serviceintention ser = new Serviceintention();
229
+                    ser.id = it.F_ValueId;
230
+                    ser.name = it.F_Value ;
231
+                    ser.isdisplay = false ;
232
+                    serviceintentions.Add(ser);
233
+                }
234
+            }
235
+            if (!string .IsNullOrEmpty (model.Serviceintention))
236
+            {
237
+                string[] vs = model.Serviceintention.Split(',');
238
+                for (int i=0;i < vs.Length;i ++)
239
+                {
240
+                    for (int j=0;j < serviceintentions.Count;j ++)
241
+                    {
242
+                        if (vs[i] == serviceintentions[j].id.ToString())
243
+                            serviceintentions[j].isdisplay = true;
244
+                    }
245
+                }
157 246
 
247
+            }
248
+            var obj = new
249
+            {
250
+                state = "success",
251
+                message = "成功",
252
+                rows = model,
253
+                serviceintentions
254
+            };
255
+            return Content(obj.ToJson());
158 256
 
257
+
258
+        }
259
+
260
+    }
159 261
     
160 262
 }

+ 42 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/information/InternalMessagesController.cs

@@ -230,7 +230,49 @@ namespace CallCenterApi.Interface.Controllers.information
230 230
                 return Error("获取参数失败");
231 231
             }
232 232
         }
233
+        /// <summary>
234
+        /// 获取一条详细信息
235
+        /// </summary>
236
+        /// <param name="infoid"></param>
237
+        /// <returns></returns>
238
+        public ActionResult UpdateInfo(string infoid)
239
+        {
240
+            if (infoid != null && infoid.Trim() != "")
241
+            {
242
+                Model.T_SMS_InternalMessages model = bll.GetModel(int.Parse(infoid.Trim()));
233 243
 
244
+                if (model != null)
245
+                {
246
+                    if (model.SMS_IsRead == 0)
247
+                    {
248
+                        model.SMS_Type  = 1;
249
+                        model.SMS_IsRead = 1;
250
+                        model.SMS_ReadTime = DateTime.Now;
251
+                        bool b = bll.Update(model);
252
+                        if (b)
253
+                        {
254
+                            return Success("获取成功", model);
255
+                        }
256
+                        else
257
+                        {
258
+                            return Error("获取失败,无更新权限");
259
+                        }
260
+                    }
261
+                    else
262
+                    {
263
+                        return Success("获取成功", model);
264
+                    }
265
+                }
266
+                else
267
+                {
268
+                    return Error("获取失败");
269
+                };
270
+            }
271
+            else
272
+            {
273
+                return Error("获取参数失败");
274
+            }
275
+        }
234 276
         /// <summary>
235 277
         /// 删除信息
236 278
         /// </summary>

+ 124 - 64
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/knowledge/RepositoryController.cs

@@ -41,12 +41,23 @@ namespace CallCenterApi.Interface.Controllers.knowledge
41 41
             string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
42 42
             string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
43 43
             int deptid = RequestString.GetInt("deptid", 0);
44
-
44
+            int type = RequestString.GetInt("type", 0);
45 45
             string strpageindex = RequestString.GetQueryString("page");
46 46
             int pageindex = 1;
47 47
             string strpagesize = RequestString.GetQueryString("pagesize");
48 48
             int pagesize = 10;
49
-
49
+            if (type == 1)
50
+            {//查看通过审核和紧急事项
51
+                sql += " and F_State in (" + (int)Model.EnumRepositoryState.AuditPass + "," + (int)Model.EnumRepositoryState.Urgent + ")";
52
+            }
53
+            else if (type == 2)
54
+            {//待审核列表
55
+                sql += " and F_State in (" + (int)Model.EnumRepositoryState.Audit + ")";
56
+            }
57
+            else
58
+            {//个人草稿箱
59
+                sql += " and F_State in (" + (int)Model.EnumRepositoryState.Draft + "," + (int)Model.EnumRepositoryState.AuditFailed + "," + (int)Model.EnumRepositoryState.Invalid + ") and F_CreateUser = '" + userModel.F_UserCode + "'";
60
+            }
50 61
             #region sql 语句相关处理           
51 62
             if (strkey.Trim() != "" && strkey != "undefined")
52 63
             {
@@ -79,7 +90,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
79 90
             {
80 91
                 pagesize = Convert.ToInt32(strpagesize);
81 92
             }
82
-            string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName";
93
+            string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,DeptName= (select F_CategoryName from T_RepositoryCategoryNew where F_CategoryId = F_DeptId  ) ";
83 94
 
84 95
             if (isdc > 0)
85 96
             {
@@ -106,6 +117,12 @@ namespace CallCenterApi.Interface.Controllers.knowledge
106 117
                 pageindex,
107 118
                 true,
108 119
                 out recordCount);
120
+            dt.Columns.Add("Buttons", typeof(object));//操作按钮
121
+            foreach (DataRow dr in dt.Rows)
122
+            {
123
+                var buttons = ButtonGroup.GetZSKButtons(dr["F_State"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_CreateUser"].ToString(), userModel.F_UserCode);
124
+                dr["Buttons"] = buttons;
125
+            }
109 126
             var obj = new
110 127
             {
111 128
                 state = "success",
@@ -116,7 +133,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
116 133
             return Content(obj.ToJson());
117 134
 
118 135
         }
119
-
136
+        BLL.T_Repository_Operation oprBLL = new BLL.T_Repository_Operation();
120 137
         /// <summary>
121 138
         /// 获取知识库
122 139
         /// </summary>
@@ -124,36 +141,53 @@ namespace CallCenterApi.Interface.Controllers.knowledge
124 141
         /// <returns></returns>
125 142
         public ActionResult GetRepository()
126 143
         {
144
+            int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
145
+            if (userId == 0)
146
+                return Error("人员信息失效");
147
+            Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
148
+            if (userModel == null)
149
+                return Error("人员信息失效!");
127 150
             int id = RequestString.GetInt("id", 0);
128 151
             Model.T_Repository_List dModel = new BLL.T_Repository_List().GetModel(id);
129 152
 
130
-            if (dModel != null && !string.IsNullOrEmpty(dModel.F_File))
153
+            if (dModel != null)
131 154
             {
132
-                var configfj = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
155
+                DataTable dtfile = new DataTable();
156
+                if (!string.IsNullOrEmpty(dModel.F_File))
157
+                {
158
+                    var configfj = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
133 159
 
134
-                DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories where F_FileId in (" + dModel.F_File + ")").Tables[0];
160
+                    dtfile = DbHelperSQL.Query("select * from T_Sys_Accessories where F_FileId in (" + dModel.F_File + ")").Tables[0];
135 161
 
136
-                foreach (DataRow dr in dt.Rows)
137
-                {
138
-                    dr["F_FileUrl"] = configfj.F_ParamValue + dr["F_FileUrl"].ToString();
162
+                    foreach (DataRow dr in dtfile.Rows)
163
+                    {
164
+                        dr["F_FileUrl"] = configfj.F_ParamValue + dr["F_FileUrl"].ToString();
165
+                    }
139 166
                 }
167
+                //详情页可处理操作
168
+                var buttons = ButtonGroup.GetZSKButtons(dModel.F_State.ToString(), userModel.F_RoleCode.ToUpper(), dModel.F_CreateUser, userModel.F_UserCode);
169
+
170
+                var audlist = repAudBLL.GetModelList(" F_RepositoryId=" + dModel.F_Id);
171
+
172
+                var wjjlist = oprBLL.GetModelList(" F_OptType=" + (int)Model.EnumRepositoryOptType.unsolved + " and F_RepositoryId=" + dModel.F_Id + " order by F_OptOn desc");
173
+                var newwjjlist = wjjlist.Select(x => new {
174
+                    x.F_OptOn,
175
+                    x.F_Reason
176
+                });
177
+
140 178
                 var obj = new
141 179
                 {
142 180
                     data = dModel,
143
-                    file = dt
144
-                };
145
-                return Success("获取信息成功", obj);
146
-            }
147
-            else
148
-            {
149
-                var obj = new
150
-                {
151
-                    data = dModel,
152
-                    file = new DataTable()
181
+                    shData = audlist,
182
+                    file = dtfile,
183
+                    button = buttons,
184
+                    wjjlist = newwjjlist
153 185
                 };
154 186
                 return Success("获取信息成功", obj);
155 187
             }
188
+            return Error("获取信息失败");
156 189
         }
190
+        
157 191
 
158 192
         /// <summary>
159 193
         /// 添加知识库
@@ -394,7 +428,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
394 428
             {
395 429
                 pagesize = Convert.ToInt32(strpagesize);
396 430
             }
397
-            string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName";
431
+            string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,DeptName=(select F_CategoryName from T_RepositoryCategoryNew where F_CategoryId = F_DeptId  ) ";
398 432
 
399 433
             if (isdc > 0)
400 434
             {
@@ -485,7 +519,6 @@ namespace CallCenterApi.Interface.Controllers.knowledge
485 519
                 return Success("获取信息成功", obj);
486 520
             }
487 521
         }
488
-
489 522
         /// <summary>
490 523
         /// 保存知识库
491 524
         /// </summary>
@@ -551,34 +584,34 @@ namespace CallCenterApi.Interface.Controllers.knowledge
551 584
             }
552 585
             #region 信息获取
553 586
             dModel.F_DeptId = deptid;
554
-            dModel.F_Key = key;
555
-            dModel.F_Title = title;
556
-            dModel.F_MainDept = maindept;
557
-            dModel.F_PublicPhone1 = publicphone1;
558
-            dModel.F_PublicPhone2 = publicphone2;
559
-            dModel.F_PrivatePhone1 = privatephone1;
560
-            dModel.F_PrivatePhone2 = privatephone2;
561
-            dModel.F_Points = points;
562
-            dModel.F_BaseAnswer = baseanswer;
563
-            dModel.F_EndAnswer = endanswer;
564
-            dModel.F_DealType = dealtype;
565
-            dModel.F_LegalLimitTime = legallimittime;
566
-            dModel.F_PromiseLimitTime = promiselimittime;
567
-            dModel.F_IsPay = ispay;
568
-            dModel.F_PayMoney = Decimal.Parse(paymoney.ToString());
569
-            dModel.F_OfficeAddress = officeaddress;
570
-            dModel.F_Object = serobject;
571
-            dModel.F_BusLine = busline;
572
-            dModel.F_OfficeTime = officetime;
573
-            dModel.F_OtherDept = otherdept;
574
-            dModel.F_OtherPublicPhone = otherpublicphone;
575
-            dModel.F_OtherPrivatePhone = otherprivatephone;
576
-            dModel.F_Remark = remark;
577
-            dModel.F_BaseOn = baseon;
578
-            dModel.F_Process = process;
579
-            dModel.F_Material = material;
580
-            dModel.F_Template = template;
581
-            dModel.F_PayInfo = payinfo;
587
+            dModel.F_Key = key;//关键字
588
+            dModel.F_Title = title; //标题
589
+            dModel.F_MainDept = maindept;//主办单位
590
+            dModel.F_PublicPhone1 = publicphone1;//公开电话1
591
+            dModel.F_PublicPhone2 = publicphone2;//公开电话2
592
+            dModel.F_PrivatePhone1 = privatephone1;//内部电话1
593
+            dModel.F_PrivatePhone2 = privatephone2;//内部电话2
594
+            dModel.F_Points = points;//询问要点
595
+            dModel.F_BaseAnswer = baseanswer;//标准话术
596
+            dModel.F_EndAnswer = endanswer;//参考答案
597
+            dModel.F_DealType = dealtype;//办理方式
598
+            dModel.F_LegalLimitTime = legallimittime;//法定办结时限
599
+            dModel.F_PromiseLimitTime = promiselimittime;//承诺办结时限
600
+            dModel.F_IsPay = ispay;//是否收费
601
+            dModel.F_PayMoney = Decimal.Parse(paymoney.ToString());//收费标准
602
+            dModel.F_OfficeAddress = officeaddress;//办公地点
603
+            dModel.F_Object = serobject;//办理对象
604
+            dModel.F_BusLine = busline;//乘车路线
605
+            dModel.F_OfficeTime = officetime;//办公时间
606
+            dModel.F_OtherDept = otherdept;//协办单位
607
+            dModel.F_OtherPublicPhone = otherpublicphone;//协办单位公开电话
608
+            dModel.F_OtherPrivatePhone = otherprivatephone;//协办单位内部电话
609
+            dModel.F_Remark = remark;//备注
610
+            dModel.F_BaseOn = baseon;//设定依据
611
+            dModel.F_Process = process;//办理流程
612
+            dModel.F_Material = material;//办理材料
613
+            dModel.F_Template = template;//办理结果样本
614
+            dModel.F_PayInfo = payinfo;//收费标准及依据
582 615
             dModel.F_File = files;
583 616
             dModel.F_IsUrgent = isurgent;
584 617
             #endregion
@@ -642,13 +675,14 @@ namespace CallCenterApi.Interface.Controllers.knowledge
642 675
                 //}
643 676
                 cont = userModel.F_UserName + "(" + userModel.F_UserCode + ")" + typename + "信息";
644 677
                 //添加操作日志
645
-                addoptlog(optid, type, null, audid, dModel.F_State, cont, userModel.F_UserCode);
678
+                addoptlog(optid, type, null, audid, dModel.F_State, cont, userModel.F_UserCode, "");
646 679
                 #endregion
647 680
                 return Success("保存成功");
648 681
             }
649 682
             else
650 683
                 return Error("保存失败");
651 684
         }
685
+     
652 686
 
653 687
         /// <summary>
654 688
         /// 删除知识库
@@ -680,7 +714,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
680 714
                     {
681 715
                         var logid = addlog(model, (int)Model.EnumRepositoryOptType.delete, userModel.F_UserCode);
682 716
                         string cont = userModel.F_UserName + "(" + userModel.F_UserCode + ")删除了信息";
683
-                        addoptlog(model.F_Id, (int)Model.EnumRepositoryOptType.delete, logid, null, model.F_State, cont, userModel.F_UserCode);
717
+                        addoptlog(model.F_Id, (int)Model.EnumRepositoryOptType.delete, logid, null, model.F_State, cont, userModel.F_UserCode, "");
684 718
                     }
685 719
                 }
686 720
                 return Success("删除成功");
@@ -734,7 +768,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
734 768
                 }
735 769
                 repBLL.Update(repModel);
736 770
                 #endregion
737
-                addoptlog(repid, (int)Model.EnumRepositoryOptType.audit, null, audModel.F_AuditId, repModel.F_State, cont, userModel.F_UserCode);
771
+                addoptlog(repid, (int)Model.EnumRepositoryOptType.audit, null, audModel.F_AuditId, repModel.F_State, cont, userModel.F_UserCode, "");
738 772
                 return Success("操作成功");
739 773
             }
740 774
             else
@@ -747,7 +781,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
747 781
         /// <param name="repid"></param>
748 782
         /// <param name="type">0查看,1解决,2未解决,3提交审核</param>
749 783
         /// <returns></returns>
750
-        public ActionResult OptRep(int repid, int type = 0)
784
+        public ActionResult OptRep(int repid, string reason, int type = 0)
751 785
         {
752 786
             int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
753 787
             if (userId == 0)
@@ -772,11 +806,13 @@ namespace CallCenterApi.Interface.Controllers.knowledge
772 806
                     opttype = (int)Model.EnumRepositoryOptType.unsolved;
773 807
                     typename = "未解决";
774 808
                     repModel.F_InValidCount += 1;
809
+                    repModel.F_State = (int)Model.EnumRepositoryState.Invalid;//调整为1次未解决需要重新编辑
775 810
                     break;
776 811
                 case 3:
777 812
                     opttype = (int)Model.EnumRepositoryOptType.submit;
778 813
                     typename = "提交";
779 814
                     repModel.F_InValidCount = 0;
815
+                    repModel.F_State = (int)Model.EnumRepositoryState.AuditPass;
780 816
                     break;
781 817
                 default:
782 818
                     break;
@@ -785,12 +821,12 @@ namespace CallCenterApi.Interface.Controllers.knowledge
785 821
             int? logid = 0; var audid = 0;
786 822
             if (type > 0)
787 823
             {
788
-                var configfj = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='InValidCount' ").FirstOrDefault();
789
-                var invalcount = configfj != null && configfj.F_ParamValue != "" ? int.Parse(configfj.F_ParamValue) : 3;
790
-                if (repModel.F_InValidCount >= invalcount)//操作未解决超过几次后设置知识库无效
791
-                    repModel.F_State = (int)Model.EnumRepositoryState.Invalid;
792
-                if (opttype == (int)Model.EnumRepositoryOptType.submit)
793
-                    repModel.F_State = (int)Model.EnumRepositoryState.AuditPass;//.Audit; 提交默认审核通过
824
+                //var configfj = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='InValidCount' ").FirstOrDefault();
825
+                //var invalcount = configfj!=null && configfj.F_ParamValue != "" ? int.Parse(configfj.F_ParamValue) : 3;
826
+                //if (repModel.F_InValidCount >= invalcount)//操作未解决超过几次后设置知识库无效
827
+                //    repModel.F_State = (int)Model.EnumRepositoryState.Invalid;
828
+                //if (opttype == (int)Model.EnumRepositoryOptType.submit)
829
+                //    repModel.F_State = (int)Model.EnumRepositoryState.AuditPass;//.Audit; 提交默认审核通过
794 830
                 var res = repBLL.Update(repModel);
795 831
                 if (res)
796 832
                 {
@@ -805,7 +841,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
805 841
                     //}
806 842
                 }
807 843
             }
808
-            addoptlog(repid, opttype, logid, audid, repModel.F_State, cont, userModel.F_UserCode);
844
+            addoptlog(repid, opttype, logid, audid, repModel.F_State, cont, userModel.F_UserCode, reason);
809 845
             return Success(typename + "操作成功");
810 846
         }
811 847
 
@@ -984,7 +1020,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
984 1020
                 #region 日志
985 1021
                 cont = userModel.F_UserName + "(" + userModel.F_UserCode + ")" + typename + "信息";
986 1022
                 //添加操作日志
987
-                addoptlog(optid, type, null, null, null, cont, userModel.F_UserCode);
1023
+                addoptlog(optid, type, null, null, null, cont, userModel.F_UserCode, "");
988 1024
                 #endregion
989 1025
                 return Success("保存成功");
990 1026
             }
@@ -1016,7 +1052,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
1016 1052
                     if (model != null)
1017 1053
                     {
1018 1054
                         string cont = userModel.F_UserName + "(" + userModel.F_UserCode + ")删除了索要信息";
1019
-                        addoptlog(model.F_DemandsId, (int)Model.EnumRepositoryOptType.deletedemands, null, null, null, cont, userModel.F_UserCode);
1055
+                        addoptlog(model.F_DemandsId, (int)Model.EnumRepositoryOptType.deletedemands, null, null, null, cont, userModel.F_UserCode,"");
1020 1056
                     }
1021 1057
                 }
1022 1058
                 return Success("删除成功");
@@ -1115,7 +1151,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
1115 1151
         /// <param name="state"></param>
1116 1152
         /// <param name="cont"></param>
1117 1153
         /// <param name="optby"></param>
1118
-        private void addoptlog(int repid, int opttype, int? logid, int? audid, int? state, string cont, string optby)
1154
+        private void addoptlog(int repid, int opttype, int? logid, int? audid, int? state, string cont, string optby, string reason)
1119 1155
         {
1120 1156
             Model.T_Repository_Operation optModel = new Model.T_Repository_Operation();
1121 1157
             optModel.F_RepositoryId = repid;
@@ -1126,8 +1162,32 @@ namespace CallCenterApi.Interface.Controllers.knowledge
1126 1162
             optModel.F_OptContent = cont;
1127 1163
             optModel.F_OptBy = optby;
1128 1164
             optModel.F_OptOn = DateTime.Now;
1165
+            optModel.F_Reason = reason;
1129 1166
             new BLL.T_Repository_Operation().Add(optModel);
1130 1167
         }
1168
+        ///// <summary>
1169
+        ///// 操作日志
1170
+        ///// </summary>
1171
+        ///// <param name="repid"></param>
1172
+        ///// <param name="opttype"></param>
1173
+        ///// <param name="logid"></param>
1174
+        ///// <param name="audid"></param>
1175
+        ///// <param name="state"></param>
1176
+        ///// <param name="cont"></param>
1177
+        ///// <param name="optby"></param>
1178
+        //private void addoptlog(int repid, int opttype, int? logid, int? audid, int? state, string cont, string optby)
1179
+        //{
1180
+        //    Model.T_Repository_Operation optModel = new Model.T_Repository_Operation();
1181
+        //    optModel.F_RepositoryId = repid;
1182
+        //    optModel.F_OptType = opttype;
1183
+        //    optModel.F_State = state;
1184
+        //    optModel.F_LogId = logid;
1185
+        //    optModel.F_AuditId = audid;
1186
+        //    optModel.F_OptContent = cont;
1187
+        //    optModel.F_OptBy = optby;
1188
+        //    optModel.F_OptOn = DateTime.Now;
1189
+        //    new BLL.T_Repository_Operation().Add(optModel);
1190
+        //}
1131 1191
         #endregion
1132 1192
 
1133 1193
         #endregion

+ 27 - 22
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TalkTimeController.cs

@@ -185,16 +185,20 @@ namespace CallCenterApi.Interface.Controllers.report
185 185
             {
186 186
                 sql += " and DATEDIFF(d,BeginTime,'" + EndTime + "')>=0";
187 187
             }
188
-            if (tag != null && tag.Trim() != "")
188
+           
189
+            if (tag != "")
189 190
             {
190 191
                 sql += " and CallType=" + tag;
191 192
             }
192 193
             var userAccountList = new BLL.T_Sys_UserAccount().GetModelList(" F_SeatFlag=1");
193
-            DataTable dt = DbHelperSQL.Query("SELECT UserId,UserCode,UserName,COUNT(*) AS calloutCount,SUM(TalkLongTime) AS TalkSummaryTime FROM T_Call_CallRecords where 1=1 " + sql + "  GROUP BY UserId,UserCode,UserName").Tables[0];
194
+            //DataTable dt = DbHelperSQL.Query("SELECT UserId,UserCode,UserName,COUNT(*) AS calloutCount,SUM(TalkLongTime) AS TalkSummaryTime FROM T_Call_CallRecords where 1=1 " + sql + "  GROUP BY UserId,UserCode,UserName").Tables[0];
195
+            //DataTable dt = DbHelperSQL.Query("SELECT UserId,UserCode,UserName,COUNT(*) AS calloutCount FROM T_Call_CallRecords where 1=1 " + sql + "  GROUP BY UserId,UserCode,UserName").Tables[0];
196
+            var recordstr = " select users.F_UserId,users.F_UserCode,users.F_UserName,COUNT(*) AS calloutCount,SUM(TalkLongTime) AS TalkSummaryTime from T_Sys_UserAccount users left join T_Call_CallRecords records WITH(NOLOCK) on users.F_UserCode = records.UserCode and 1=1 " + sql + " GROUP BY users.F_UserId,users.F_UserCode,users.F_UserName";
197
+            DataTable dt = DbHelperSQL.Query(recordstr).Tables[0];
194 198
 
195 199
             foreach (Model.T_Sys_UserAccount item in userAccountList)
196 200
             {
197
-                DataRow drUser = dt.AsEnumerable().FirstOrDefault(dr => dr.Field<string>("UserName") == item.F_UserName);
201
+                DataRow drUser = dt.AsEnumerable().FirstOrDefault(dr => dr.Field<string>("F_UserCode") == item.F_UserCode);
198 202
 
199 203
                 if (drUser != null && drUser[4].ToString() != "")
200 204
                     result += drUser[4].ToString() + ",";
@@ -277,38 +281,37 @@ namespace CallCenterApi.Interface.Controllers.report
277 281
             string sql = " and CallType=" + Tag; // 呼入
278 282
             var userAccountList = new BLL.T_Sys_UserAccount().GetModelList(" F_SeatFlag=1");
279 283
 
280
-            if (BeginTime != null && BeginTime.Trim() != "")
284
+            if (!string.IsNullOrEmpty(BeginTime))
281 285
             {
282
-                sql += " and BeginTime>='" + BeginTime + "'";
286
+                sql += " and BeginTime>='" + BeginTime + " 00:00:00'";
283 287
                 //sql += " and DATEDIFF(d,BeginTime,'" + BeginTime + "')<=0";
284 288
             }
285
-            if (EndTime != null && EndTime.Trim() != "")
289
+            if (!string.IsNullOrEmpty(EndTime))
286 290
             {
287
-                sql += " and BeginTime<='" + EndTime + "'";
291
+                sql += " and BeginTime<='" + EndTime + " 23:59:59'";
288 292
                 //sql += " and DATEDIFF(d,BeginTime,'" + EndTime + "')>=0";
289 293
             }
290
-            if (state != null && state.Trim() != "")
294
+            if (state.Trim() != "")
291 295
             {
292 296
                 sql += " and CallState=" + state.Trim();
293 297
             }
294
-
295
-            DataTable dt = DbHelperSQL.Query("SELECT UserId,UserCode,UserName,COUNT(*) AS calloutCount FROM T_Call_CallRecords where 1=1 " + sql + "  GROUP BY UserId,UserCode,UserName").Tables[0];
298
+            //DataTable dt = DbHelperSQL.Query("SELECT UserId,UserCode,UserName,COUNT(*) AS calloutCount FROM T_Call_CallRecords where 1=1 " + sql + "  GROUP BY UserId,UserCode,UserName").Tables[0];
299
+            //var recordstr = " select users.F_UserId,users.F_UserCode,users.F_UserName,COUNT(*) AS calloutCount from T_Sys_UserAccount users right join T_Call_CallRecords records on users.F_UserCode = records.UserCode and 1=1 " + sql + " GROUP BY users.F_UserId,users.F_UserCode,users.F_UserName";
300
+            //20180509 通话时长统计不对  machenyang
301
+            var recordstr = " select records.UserCode,records.UserId,records.UserName,COUNT(*) from T_Call_CallRecords records WITH(NOLOCK) where 1=1 " + sql + "  and UserCode is not null group by records.UserCode,records.UserId,records.UserName";
302
+            DataTable dt = DbHelperSQL.Query(recordstr).Tables[0];
296 303
             Dictionary<string, int> myDictionary = new Dictionary<string, int>();
297 304
 
298 305
             foreach (Model.T_Sys_UserAccount item in userAccountList)
299 306
             {
300
-                if (!myDictionary.ContainsKey(item.F_UserName))
301
-                    myDictionary.Add(item.F_UserName, 0);
307
+                if (!myDictionary.ContainsKey(item.F_UserCode))
308
+                    myDictionary.Add(item.F_UserCode, 0);
302 309
 
303
-                DataRow drUser = dt.AsEnumerable().FirstOrDefault(dr => dr.Field<string>("UserName") == item.F_UserName);
310
+                DataRow drUser = dt.AsEnumerable().FirstOrDefault(dr => dr.Field<string>("UserCode") == item.F_UserCode);
304 311
 
305 312
                 if (drUser != null)
306 313
                 {
307
-                    myDictionary[item.F_UserName] += int.Parse(drUser[3].ToString());
308
-                }
309
-                else
310
-                {
311
-                    myDictionary[item.F_UserName] += 0;
314
+                    myDictionary[item.F_UserCode] += int.Parse(drUser[3].ToString());
312 315
                 }
313 316
             }
314 317
 
@@ -331,20 +334,22 @@ namespace CallCenterApi.Interface.Controllers.report
331 334
             string result = "[";
332 335
             string sql = "";
333 336
 
334
-            if (BeginTime != null && BeginTime.Trim() != "")
337
+            if (!string.IsNullOrEmpty(BeginTime))
335 338
             {
336 339
                 sql += " and BeginTime>='" + BeginTime + "'";
337 340
                 //sql += " and DATEDIFF(d,BeginTime,'" + BeginTime + "')<=0";
338 341
             }
339
-            if (EndTime != null && EndTime.Trim() != "")
342
+            if (!string.IsNullOrEmpty(EndTime))
340 343
             {
341 344
                 sql += " and BeginTime<='" + EndTime + "'";
342 345
                 //sql += " and DATEDIFF(d,BeginTime,'" + EndTime + "')>=0";
343 346
             }
344
-            sql += " and CallType=0  and CallState=0";
347
+          
348
+            //只统计呼入振铃时长
349
+            sql += " and CallType=0 ";
345 350
 
346 351
             var userAccountList = new BLL.T_Sys_UserAccount().GetModelList(" F_SeatFlag=1");
347
-            DataTable dt = DbHelperSQL.Query("  select UserCode,COUNT(1) count,SUM(Ringtimes) as RingTimes from(SELECT UserCode, datediff(second, RingStartTime, RingEndTime) as Ringtimes FROM T_Call_CallRecords where 1 = 1 " + sql + ") t GROUP BY UserCode").Tables[0];
352
+            DataTable dt = DbHelperSQL.Query("  select UserCode,COUNT(1) count,SUM(Ringtimes) as RingTimes from(SELECT UserCode, datediff(second, RingStartTime, RingEndTime) as Ringtimes FROM T_Call_CallRecords WITH(NOLOCK) where 1 = 1 " + sql + ") t GROUP BY UserCode").Tables[0];
348 353
 
349 354
             foreach (Model.T_Sys_UserAccount item in userAccountList)
350 355
             {

+ 386 - 121
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TotalCallController.cs

@@ -1,4 +1,5 @@
1 1
 using CallCenter.Utility;
2
+using CallCenterApi.DB;
2 3
 using CallCenterApi.Interface.Controllers.Base;
3 4
 using System;
4 5
 using System.Collections;
@@ -22,130 +23,325 @@ namespace CallCenterApi.Interface.Controllers.report
22 23
             return Success("获取总呼叫量统计表头成功", str);
23 24
         }
24 25
 
26
+        ////获取数据
27
+        //public ActionResult GetDataList(string years)
28
+        //{
29
+        //    DataTable dtNew = new DataTable();
30
+        //    #region
31
+        //    DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
32
+        //    DataColumn dc2 = new DataColumn("日期", Type.GetType("System.String"));
33
+        //    DataColumn dc3 = new DataColumn("总数", Type.GetType("System.String"));
34
+        //    DataColumn dc4 = new DataColumn("Count", Type.GetType("System.String"));
35
+
36
+        //    dtNew.Columns.Add(dc1);
37
+        //    dtNew.Columns.Add(dc2);
38
+        //    dtNew.Columns.Add(dc3);
39
+        //    dtNew.Columns.Add(dc4);
40
+        //    #endregion
41
+        //    DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 and CallType=0 ").Tables[0];
42
+        //    DateTime dtNow;
43
+        //    int Count = 0;
44
+        //    int DayCount = 0;
45
+
46
+        //    if (string.IsNullOrEmpty(years))
47
+        //    {
48
+        //        dtNow = DateTime.Now;
49
+        //    }
50
+        //    else
51
+        //    {
52
+        //        dtNow = DateTime.Parse(years );
53
+        //    }
54
+        //        DataRow drNew = dtNew.NewRow();
55
+
56
+        //        DateTime beginTime = Convert.ToDateTime(dtNow.ToString("yyyy-MM-01 00:00:00"));
57
+        //        int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
58
+        //        DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<='" + beginTime.AddDays(days).AddSeconds(-1) + "'");
59
+        //      if (dtRow.Length > 0)
60
+        //        {
61
+        //            Count += dtRow.Length;
62
+        //            for (int j = 1; j <= days; j++)
63
+        //            {
64
+        //                DataRow dr1 = dtNew.NewRow();
65
+        //                if (dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<='" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length > 0)
66
+        //                {
67
+        //                    DayCount += 1;
68
+
69
+        //                    dr1["月份"] = beginTime.Month + "月";
70
+        //                    dr1["日期"] = beginTime.AddDays(j - 1).ToShortDateString();
71
+        //                    dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<='" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length  ;
72
+        //                    dr1["Count"] = "1";
73
+        //                    dtNew.Rows.Add(dr1);
74
+        //                }
75
+        //            }
76
+
77
+        //            if (DayCount != 0)
78
+        //            {
79
+        //                drNew["月份"] = beginTime.Month + "月";
80
+        //                drNew["日期"] = "总计";
81
+        //                drNew["总数"] = dtRow.Length;
82
+        //                drNew["Count"] = DayCount.ToString();
83
+        //                dtNew.Rows.Add(drNew);
84
+        //            }
85
+        //            DayCount = 0;
86
+        //        }
87
+
88
+        //    return Success("获取呼叫量数据成功", dtNew);
89
+        //}
90
+
91
+        //private DataTable GetData(string years)
92
+        //{
93
+        //    DataTable dtNew = new DataTable();
94
+
95
+        //    #region
96
+        //    DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
97
+        //    DataColumn dc2 = new DataColumn("日期", Type.GetType("System.String"));
98
+        //    DataColumn dc3 = new DataColumn("总数", Type.GetType("System.String"));
99
+
100
+        //    dtNew.Columns.Add(dc1);
101
+        //    dtNew.Columns.Add(dc2);
102
+        //    dtNew.Columns.Add(dc3);
103
+        //    #endregion
104
+        //    DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 and CallType=0 ").Tables[0];
105
+        //    DateTime dtNow;
106
+        //    int Count = 0;
107
+        //    int DayCount = 0;
108
+
109
+        //    if (string.IsNullOrEmpty(years))
110
+        //    {
111
+        //        dtNow = DateTime.Now;
112
+        //    }
113
+        //    else
114
+        //    {
115
+        //        dtNow = DateTime.Parse(years);
116
+        //    }
117
+        //        DataRow drNew = dtNew.NewRow();
118
+
119
+        //        DateTime beginTime = Convert.ToDateTime(dtNow.ToString("yyyy-MM-01 00:00:00"));
120
+        //        int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
121
+        //        DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<='" + beginTime.AddDays(days).AddSeconds(-1) + "'");
122
+        //        if (dtRow.Length > 0)
123
+        //        {
124
+        //            Count += dtRow.Length;
125
+        //            for (int j = 1; j <= days; j++)
126
+        //            {
127
+        //                DataRow dr1 = dtNew.NewRow();
128
+        //                if (dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<='" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length > 0)
129
+        //                {
130
+        //                    DayCount += 1;
131
+
132
+        //                    dr1["月份"] = beginTime.Month + "月";
133
+        //                    dr1["日期"] = beginTime.AddDays(j - 1).ToShortDateString();
134
+        //                    dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<='" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length;
135
+
136
+        //                    dtNew.Rows.Add(dr1);
137
+        //                }
138
+        //            }
139
+
140
+        //            if (DayCount != 0)
141
+        //            {
142
+        //                drNew["月份"] = beginTime.Month + "月";
143
+        //                drNew["日期"] = "总计";
144
+        //                drNew["总数"] = dtRow.Length;
145
+        //                dtNew.Rows.Add(drNew);
146
+        //            }
147
+        //            DayCount = 0;
148
+        //        }
149
+
150
+        //    return dtNew;
151
+        //}
25 152
         //获取数据
26 153
         public ActionResult GetDataList(string years)
27 154
         {
28
-            DataTable dtNew = new DataTable();
29
-            #region
30
-            DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
31
-            DataColumn dc2 = new DataColumn("日期", Type.GetType("System.String"));
32
-            DataColumn dc3 = new DataColumn("总数", Type.GetType("System.String"));
33
-            DataColumn dc4 = new DataColumn("Count", Type.GetType("System.String"));
34
-
35
-            dtNew.Columns.Add(dc1);
36
-            dtNew.Columns.Add(dc2);
37
-            dtNew.Columns.Add(dc3);
38
-            dtNew.Columns.Add(dc4);
39
-            #endregion
40
-            DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 and CallType=0 ").Tables[0];
41
-            DateTime dtNow;
42
-            int Count = 0;
43
-            int DayCount = 0;
44
-
45
-            if (string.IsNullOrEmpty(years))
155
+            ActionResult res = NoToken("未知错误,请重新登录");
156
+            if (Request.IsAuthenticated)
46 157
             {
47
-                dtNow = DateTime.Now;
48
-            }
49
-            else
50
-            {
51
-                dtNow = DateTime.Parse(years );
52
-            }
53
-                DataRow drNew = dtNew.NewRow();
158
+                string sql = "";
159
+                if (!string.IsNullOrEmpty(years))
160
+                {
161
+                    sql += $" and CONVERT(char(4),BeginTime,20) = '{years}' ";
162
+                }
163
+                DataTable dtNew = new DataTable();
164
+                #region
165
+                DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
166
+                DataColumn dc2 = new DataColumn("日期", Type.GetType("System.String"));
167
+                DataColumn dc3 = new DataColumn("总数", Type.GetType("System.String"));
168
+                DataColumn dc4 = new DataColumn("Count", Type.GetType("System.String"));
169
+
170
+                dtNew.Columns.Add(dc1);
171
+                dtNew.Columns.Add(dc2);
172
+                dtNew.Columns.Add(dc3);
173
+                dtNew.Columns.Add(dc4);
174
+                #endregion
175
+                //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
176
+                DataTable dtConnect = DbHelperSQL.Query($"select CONVERT(varchar(10),BeginTime, 23) AS yearmonthdays,CONVERT(char(7),BeginTime,20) AS yearmonths,COUNT(1) ccount FROM T_Call_CallRecords WITH(NOLOCK) WHERE 1=1 {sql} group by CONVERT(varchar(10),BeginTime, 23),CONVERT(char(7),BeginTime,20) order by CONVERT(varchar(10),BeginTime, 23)").Tables[0];
177
+                DateTime dtNow;
178
+                int Count = 0;
179
+                int DayCount = 0;
54 180
 
55
-                DateTime beginTime = Convert.ToDateTime(dtNow.ToString("yyyy-MM-01 00:00:00"));
56
-                int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
57
-                DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<='" + beginTime.AddDays(days).AddSeconds(-1) + "'");
58
-              if (dtRow.Length > 0)
181
+                if (string.IsNullOrEmpty(years))
182
+                {
183
+                    dtNow = DateTime.Now;
184
+                }
185
+                else
59 186
                 {
60
-                    Count += dtRow.Length;
61
-                    for (int j = 1; j <= days; j++)
187
+                    dtNow = DateTime.Parse(years + "年");
188
+                }
189
+                int monthcount = 0;
190
+                for (int i = 1; i <= 12; i++)
191
+                {
192
+                    DataRow drNew = dtNew.NewRow();
193
+
194
+                    DateTime beginTime = Convert.ToDateTime(dtNow.Year + "-" + i + "-01 00:00:00");
195
+                    int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
196
+
197
+                    //var drConnect = dtConnect.Select("yearmonthdays='" + beginTime.AddDays(days).AddSeconds(-1).ToString("yyyy-MM-dd") + "' ");
198
+                    //int count = (from DataRow dr in drConnect select dr.Field<int>("ccount")).FirstOrDefault();
199
+
200
+                    var dtlist = dtConnect.Select("yearmonths='" + beginTime.ToString("yyyy-MM") + "' ");
201
+                    var dtlist_sum = (from DataRow dr in dtlist select dr.Field<int>("ccount")).Sum();
202
+
203
+                    //DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
204
+                    //if (dtRow.Length > 0)
205
+                    if (dtlist_sum > 0)
62 206
                     {
63
-                        DataRow dr1 = dtNew.NewRow();
64
-                        if (dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<='" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length > 0)
207
+                        //Count += dtRow.Length;
208
+                        Count += dtlist_sum;
209
+                        for (int j = 1; j <= days; j++)
65 210
                         {
66
-                            DayCount += 1;
211
+                            string j_day = j.ToString().PadLeft(2, '0');
212
+                            DataRow dr1 = dtNew.NewRow();
213
+                            var dayinlist = dtConnect.Select("yearmonthdays = '" + beginTime.ToString("yyyy-MM") + "-" + j_day + "' ");
214
+                            //if (dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length > 0)
215
+                            int day_count = (from DataRow dr in dayinlist select dr.Field<int>("ccount")).FirstOrDefault();
216
+                            if (day_count > 0)
217
+                            {
218
+                                DayCount += 1;
67 219
 
68
-                            dr1["月份"] = beginTime.Month + "月";
69
-                            dr1["日期"] = beginTime.AddDays(j - 1).ToShortDateString();
70
-                            dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<='" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length  ;
71
-                            dr1["Count"] = "1";
72
-                            dtNew.Rows.Add(dr1);
220
+                                dr1["月份"] = beginTime.Month + "月";
221
+                                dr1["日期"] = beginTime.AddDays(j - 1).ToShortDateString();
222
+                                //dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length;
223
+                                dr1["总数"] = day_count;
224
+                                dr1["Count"] = "1";
225
+                                dtNew.Rows.Add(dr1);
226
+                            }
73 227
                         }
74
-                    }
75 228
 
76
-                    if (DayCount != 0)
77
-                    {
78
-                        drNew["月份"] = beginTime.Month + "月";
79
-                        drNew["日期"] = "总计";
80
-                        drNew["总数"] = dtRow.Length;
81
-                        drNew["Count"] = DayCount.ToString();
82
-                        dtNew.Rows.Add(drNew);
229
+                        if (DayCount != 0)
230
+                        {
231
+                            drNew["月份"] = beginTime.Month + "月";
232
+                            drNew["日期"] = "总计";
233
+                            //drNew["总数"] = dtRow.Length;
234
+                            drNew["总数"] = dtlist_sum;
235
+                            drNew["Count"] = DayCount.ToString();
236
+                            dtNew.Rows.Add(drNew);
237
+                        }
238
+                        DayCount = 0;
239
+                        monthcount += 1;
83 240
                     }
84
-                    DayCount = 0;
241
+                }
242
+                if (monthcount != 0)
243
+                {
244
+                    DataRow drzj = dtNew.NewRow();
245
+                    drzj["月份"] = dtNow.Year + "年";
246
+                    drzj["日期"] = "总计";
247
+                    drzj["总数"] = Count;
248
+                    drzj["Count"] = monthcount.ToString();
249
+                    dtNew.Rows.Add(drzj);
85 250
                 }
86 251
 
87
-            return Success("获取呼叫量数据成功", dtNew);
252
+                res = Success("获取呼叫量数据成功", dtNew);
253
+            }
254
+            return res;
88 255
         }
89
-
90
-        private DataTable GetData(string years)
256
+        BLL.T_Call_CallRecords bll = new BLL.T_Call_CallRecords();
257
+        private DataTable GetData(string years, string dpt="")
91 258
         {
92 259
             DataTable dtNew = new DataTable();
93
-
94
-            #region
95
-            DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
96
-            DataColumn dc2 = new DataColumn("日期", Type.GetType("System.String"));
97
-            DataColumn dc3 = new DataColumn("总数", Type.GetType("System.String"));
98
-
99
-            dtNew.Columns.Add(dc1);
100
-            dtNew.Columns.Add(dc2);
101
-            dtNew.Columns.Add(dc3);
102
-            #endregion
103
-            DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 and CallType=0 ").Tables[0];
104
-            DateTime dtNow;
105
-            int Count = 0;
106
-            int DayCount = 0;
107
-
108
-            if (string.IsNullOrEmpty(years))
109
-            {
110
-                dtNow = DateTime.Now;
111
-            }
112
-            else
260
+            try
113 261
             {
114
-                dtNow = DateTime.Parse(years);
115
-            }
116
-                DataRow drNew = dtNew.NewRow();
262
+                #region
263
+                DataColumn dc1 = new DataColumn("月份", Type.GetType("System.String"));
264
+                DataColumn dc2 = new DataColumn("日期", Type.GetType("System.String"));
265
+                DataColumn dc3 = new DataColumn("总数", Type.GetType("System.String"));
266
+
267
+                dtNew.Columns.Add(dc1);
268
+                dtNew.Columns.Add(dc2);
269
+                dtNew.Columns.Add(dc3);
270
+                #endregion
271
+                var sql = "";
272
+                if (string.IsNullOrEmpty(dpt))
273
+                {
274
+                    //sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
275
+                    sql += " AND groupcode='" + dpt + "' ";
276
+                }
277
+                //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
278
+                var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
279
+                DateTime dtNow;
280
+                int Count = 0;
281
+                int DayCount = 0;
117 282
 
118
-                DateTime beginTime = Convert.ToDateTime(dtNow.ToString("yyyy-MM-01 00:00:00"));
119
-                int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
120
-                DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<='" + beginTime.AddDays(days).AddSeconds(-1) + "'");
121
-                if (dtRow.Length > 0)
283
+                if (string.IsNullOrEmpty(years))
284
+                {
285
+                    dtNow = DateTime.Now;
286
+                }
287
+                else
288
+                {
289
+                    dtNow = DateTime.Parse(years + "年");
290
+                }
291
+                int monthcount = 0;
292
+                for (int i = 1; i <= 12; i++)
122 293
                 {
123
-                    Count += dtRow.Length;
124
-                    for (int j = 1; j <= days; j++)
294
+                    DataRow drNew = dtNew.NewRow();
295
+
296
+                    DateTime beginTime = Convert.ToDateTime(dtNow.Year + "-" + i + "-01 00:00:00");
297
+                    int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
298
+                    //DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
299
+                    var listByTime = list.Where(x => x.BeginTime >= Convert.ToDateTime(beginTime.ToString()) && x.BeginTime < beginTime.AddDays(days).AddSeconds(-1));
300
+                    //if (dtRow.Length > 0)
301
+                    if (listByTime.Count() > 0)
125 302
                     {
126
-                        DataRow dr1 = dtNew.NewRow();
127
-                        if (dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<='" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length > 0)
303
+                        //Count += dtRow.Length;
304
+                        Count += listByTime.Count();
305
+                        for (int j = 1; j <= days; j++)
128 306
                         {
129
-                            DayCount += 1;
307
+                            DataRow dr1 = dtNew.NewRow();
308
+                            //if (dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length > 0)
309
+                            if (listByTime.Where(x => x.BeginTime >= beginTime.AddDays(j - 1) && x.BeginTime < beginTime.AddDays(j).AddSeconds(-1)).Count() > 0)
310
+                            {
311
+                                DayCount += 1;
130 312
 
131
-                            dr1["月份"] = beginTime.Month + "月";
132
-                            dr1["日期"] = beginTime.AddDays(j - 1).ToShortDateString();
133
-                            dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<='" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length;
313
+                                dr1["月份"] = beginTime.Month + "月";
314
+                                dr1["日期"] = beginTime.AddDays(j - 1).ToShortDateString();
315
+                                //dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length;
316
+                                dr1["总数"] = listByTime.Where(x => x.BeginTime >= beginTime.AddDays(j - 1) && x.BeginTime < beginTime.AddDays(j).AddSeconds(-1)).Count();
134 317
 
135
-                            dtNew.Rows.Add(dr1);
318
+                                dtNew.Rows.Add(dr1);
319
+                            }
136 320
                         }
137
-                    }
138 321
 
139
-                    if (DayCount != 0)
140
-                    {
141
-                        drNew["月份"] = beginTime.Month + "月";
142
-                        drNew["日期"] = "总计";
143
-                        drNew["总数"] = dtRow.Length;
144
-                        dtNew.Rows.Add(drNew);
322
+                        if (DayCount != 0)
323
+                        {
324
+                            drNew["月份"] = beginTime.Month + "月";
325
+                            drNew["日期"] = "总计";
326
+                            //drNew["总数"] = dtRow.Length;
327
+                            drNew["总数"] = listByTime.Count();
328
+                            dtNew.Rows.Add(drNew);
329
+                        }
330
+                        DayCount = 0;
331
+                        monthcount += 1;
145 332
                     }
146
-                    DayCount = 0;
147 333
                 }
148
-            
334
+                if (monthcount != 0)
335
+                {
336
+                    DataRow drzj = dtNew.NewRow();
337
+                    drzj["月份"] = dtNow.Year + "年";
338
+                    drzj["日期"] = "总计";
339
+                    drzj["总数"] = Count;
340
+                    dtNew.Rows.Add(drzj);
341
+                }
342
+            }
343
+            catch (Exception ex)
344
+            { }
149 345
             return dtNew;
150 346
         }
151 347
 
@@ -163,39 +359,108 @@ namespace CallCenterApi.Interface.Controllers.report
163 359
             }
164 360
         }
165 361
 
166
-        //获取图形数据
167
-        public ActionResult GetChartData(string years)
168
-        {
169
-            string[] arr = new string[12];
362
+        ////获取图形数据
363
+        //public ActionResult GetChartData(string years)
364
+        //{
365
+        //    string[] arr = new string[12];
170 366
 
171
-            DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 and CallType=0 ").Tables[0];
172
-            DateTime dtNow;
367
+        //    DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 and CallType=0 ").Tables[0];
368
+        //    DateTime dtNow;
173 369
 
174
-            if (string.IsNullOrEmpty(years))
175
-            {
176
-                dtNow = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01 00:00:00"));
177
-            }
178
-            else
179
-            {
180
-                dtNow = DateTime.Parse(DateTime.Parse(years).ToString("yyyy-01-01 00:00:00"));
181
-            }
182
-            for (int i = 1; i <= 12; i++)
183
-            {
184
-                DateTime beginTime = Convert.ToDateTime(dtNow.ToString("yyyy-MM-01 00:00:00"));
185
-             //   int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
370
+        //    if (string.IsNullOrEmpty(years))
371
+        //    {
372
+        //        dtNow = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01 00:00:00"));
373
+        //    }
374
+        //    else
375
+        //    {
376
+        //        dtNow = DateTime.Parse(DateTime.Parse(years).ToString("yyyy-01-01 00:00:00"));
377
+        //    }
378
+        //    for (int i = 1; i <= 12; i++)
379
+        //    {
380
+        //        DateTime beginTime = Convert.ToDateTime(dtNow.ToString("yyyy-MM-01 00:00:00"));
381
+        //     //   int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
186 382
                 
187
-                DataRow[] dtRow = dt.Select("begintime >='" + beginTime.AddMonths(i-1).ToString("yyyy-MM-dd 00:00:00") + "' and  beginTime<='" + beginTime.AddMonths(i ).AddDays(-1).ToString (("yyyy-MM-dd 23:59:59")) + "'");
188
-                if (dtRow.Length > 0)
383
+        //        DataRow[] dtRow = dt.Select("begintime >='" + beginTime.AddMonths(i-1).ToString("yyyy-MM-dd 00:00:00") + "' and  beginTime<='" + beginTime.AddMonths(i ).AddDays(-1).ToString (("yyyy-MM-dd 23:59:59")) + "'");
384
+        //        if (dtRow.Length > 0)
385
+        //        {
386
+        //            arr[i - 1] = dtRow.Length.ToString();
387
+        //        }
388
+        //        else
389
+        //        {
390
+        //            arr[i - 1] = "0";
391
+        //        }
392
+        //    }
393
+
394
+        //    return Success("获取呼叫量图形数据成功", arr);
395
+        //}
396
+        //获取图形数据
397
+        public ActionResult GetChartData(string years, string dpt)
398
+        {
399
+            if (Request.IsAuthenticated)
400
+            {
401
+                string[] arr = new string[12];
402
+                var sql = "";
403
+                DateTime dtNow;
404
+                if (!string.IsNullOrEmpty(dpt))
189 405
                 {
190
-                    arr[i - 1] = dtRow.Length.ToString();
406
+                    //sql += $" AND UserCode IN (SELECT F_UserCode FROM dbo.T_Sys_UserAccount WHERE F_DeptId = {dpt} AND f_seatFlag=1 and F_WorkNumber!='') ";
407
+                    sql += " AND groupcode='" + dpt + "' ";
408
+                }
409
+                if (!string.IsNullOrEmpty(years))
410
+                {
411
+                    sql += $" and CONVERT(char(4),BeginTime,20) = '{years}' ";
412
+                    dtNow = DateTime.Parse(years + "年");
191 413
                 }
192 414
                 else
415
+                    dtNow = DateTime.Now;
416
+                //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
417
+                //var list = bll.DataTableToList(bll.GetList($" 1=1 {sql} ").Tables[0]);
418
+                DataTable dtConnect = DbHelperSQL.Query($"select CONVERT(varchar(10),BeginTime, 23) AS yearmonthdays,CONVERT(char(7),BeginTime,20) AS yearmonths,COUNT(1) ccount FROM T_Call_CallRecords WITH(NOLOCK) WHERE 1=1 {sql} group by CONVERT(varchar(10),BeginTime, 23),CONVERT(char(7),BeginTime,20) order by CONVERT(varchar(10),BeginTime, 23)").Tables[0];
419
+                //if (string.IsNullOrEmpty(years))
420
+                //{
421
+                //    dtNow = DateTime.Now;
422
+                //}
423
+                //else
424
+                //{
425
+                //    dtNow = DateTime.Parse(years + "年");
426
+                //}
427
+                for (int i = 1; i <= 12; i++)
193 428
                 {
194
-                    arr[i - 1] = "0";
429
+                    DateTime beginTime = Convert.ToDateTime(dtNow.Year + "-" + i + "-01 00:00:00");
430
+                    int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
431
+
432
+                    var drConnect = dtConnect.Select("yearmonths='" + beginTime.ToString("yyyy-MM") + "' ");
433
+                    var count = (from DataRow dr in drConnect select dr.Field<int>("ccount")).Sum();
434
+                    if (count > 0)
435
+                    {
436
+                        arr[i - 1] = count.ToString();
437
+                    }
438
+                    else
439
+                    {
440
+                        arr[i - 1] = "0";
441
+                    }
442
+
443
+                    //DateTime beginTime = Convert.ToDateTime(dtNow.Year + "-" + i + "-01 00:00:00");
444
+                    //int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
445
+                    ////DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
446
+                    //var listByTime = list.Where(x => x.BeginTime >= Convert.ToDateTime(beginTime.ToString()) && x.BeginTime < beginTime.AddDays(days).AddSeconds(-1));
447
+
448
+                    ////if (dtRow.Length > 0)
449
+                    //if (listByTime.Count() > 0)
450
+                    //{
451
+                    //    //arr[i-1] = dtRow.Length.ToString();
452
+                    //    arr[i-1] = listByTime.Count().ToString();
453
+                    //}
454
+                    //else
455
+                    //{
456
+                    //    arr[i-1] = "0";
457
+                    //}
195 458
                 }
196
-            }
197 459
 
198
-            return Success("获取呼叫量图形数据成功", arr);
460
+                return Success("获取呼叫量图形数据成功", arr);
461
+            }
462
+            return NoToken("未知错误,请重新登录");
199 463
         }
200
-    }
464
+    
465
+}
201 466
 }

+ 104 - 9
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/YearContrastController.cs

@@ -11,7 +11,7 @@ using System.Web.Mvc;
11 11
 
12 12
 namespace CallCenterApi.Interface.Controllers.report
13 13
 {
14
-    [Authority]
14
+   [Authority]
15 15
     public class YearContrastController : BaseController
16 16
     {
17 17
         //呼叫数据对比
@@ -21,10 +21,12 @@ namespace CallCenterApi.Interface.Controllers.report
21 21
 
22 22
             if (beginyear != null && beginyear.Trim() != "")
23 23
             {
24
+                DataList dataList = GetJT(beginyear);
25
+               
24 26
                 var data = new
25 27
                 {
26 28
                     key = beginyear + "客户呼叫数",
27
-                    value = GetKhCall(beginyear).TrimEnd(',').Split(','),
29
+                    value = dataList.hj .TrimEnd(',').Split(','),
28 30
                     type = 0
29 31
                 };
30 32
                 arrlist.Add(data);
@@ -32,7 +34,7 @@ namespace CallCenterApi.Interface.Controllers.report
32 34
                 var data1 = new
33 35
                 {
34 36
                     key = beginyear + "坐席接听数",
35
-                    value = GetZxJt(beginyear).TrimEnd(',').Split(','),
37
+                    value = dataList.jt .TrimEnd(',').Split(','),
36 38
                     type = 0
37 39
                 };
38 40
                 arrlist.Add(data1);
@@ -40,17 +42,18 @@ namespace CallCenterApi.Interface.Controllers.report
40 42
                 var data2 = new
41 43
                 {
42 44
                     key = beginyear + "接通率",
43
-                    value = GetJTL(beginyear).TrimEnd(',').Split(','),
45
+                    value = dataList.jtl .TrimEnd(',').Split(','),
44 46
                     type = 0
45 47
                 };
46 48
                 arrlist.Add(data2);
47 49
             }
48 50
             if (endyear != null && endyear.Trim() != "")
49 51
             {
52
+                DataList dataList = GetJT(endyear);
50 53
                 var data = new
51 54
                 {
52 55
                     key = endyear + "客户呼叫数",
53
-                    value = GetKhCall(endyear).TrimEnd(',').Split(','),
56
+                    value = dataList.hj.TrimEnd(',').Split(','),
54 57
                     type = 1
55 58
                 };
56 59
                 arrlist.Add(data);
@@ -58,7 +61,7 @@ namespace CallCenterApi.Interface.Controllers.report
58 61
                 var data1 = new
59 62
                 {
60 63
                     key = endyear + "坐席接听数",
61
-                    value = GetZxJt(endyear).TrimEnd(',').Split(','),
64
+                    value = dataList.jt .TrimEnd(',').Split(','),
62 65
                     type = 1
63 66
                 };
64 67
                 arrlist.Add(data1);
@@ -66,7 +69,7 @@ namespace CallCenterApi.Interface.Controllers.report
66 69
                 var data2 = new
67 70
                 {
68 71
                     key = endyear + "接通率",
69
-                    value = GetJTL(endyear).TrimEnd(',').Split(','),
72
+                    value = dataList.jtl .TrimEnd(',').Split(','),
70 73
                     type = 1
71 74
                 };
72 75
                 arrlist.Add(data2);
@@ -136,7 +139,12 @@ namespace CallCenterApi.Interface.Controllers.report
136 139
 
137 140
             return dtNew;
138 141
         }
139
-
142
+        public class DataList
143
+        {
144
+            public string hj;
145
+            public string jt;
146
+            public string jtl;
147
+        }
140 148
         //客户呼叫数
141 149
         private string GetKhCall(string strtime)
142 150
         {
@@ -228,7 +236,6 @@ namespace CallCenterApi.Interface.Controllers.report
228 236
             }
229 237
             return str;
230 238
         }
231
-
232 239
         //坐席接听率
233 240
         private string GetJTL(string strtime)
234 241
         {
@@ -285,5 +292,93 @@ namespace CallCenterApi.Interface.Controllers.report
285 292
             }
286 293
             return str;
287 294
         }
295
+        //坐席接听率
296
+        private DataList  GetJT(string strtime)
297
+        {
298
+            DataList dataList = new DataList();
299
+            DataTable dt = new DataTable();
300
+            string str = "";
301
+            for (int i = 1; i <= 12; i++)
302
+            {
303
+                string sqltimeCallRecords = "";
304
+                string strmm = i.ToString();
305
+                if (i <= 9)
306
+                {
307
+                    strmm = "0" + i;
308
+                }
309
+                if (strtime != "")
310
+                {
311
+                    int monthDay = DateTime.DaysInMonth(int.Parse(strtime), i);
312
+                    DateTime d1 = new DateTime(int .Parse (strtime), i, 1);
313
+                    DateTime d2 = new DateTime(int.Parse(strtime), i, monthDay);
314
+
315
+                    //sqltimeCallRecords += " and CONVERT(varchar , timecallin, 120)>=CONVERT(varchar , '" + strtime + "-" + strmm + "-01 00:00:01', 120) ";
316
+                    //sqltimeCallRecords += " and CONVERT(varchar , timecallin, 120)<=CONVERT(varchar , '" + strtime + "-" + strmm + "-31 23:59:59', 120) ";
317
+                    sqltimeCallRecords += " and  begintime>=  '"+ d1.ToString ("yyyy-MM-dd")+ " 00:00:01 ' ";
318
+                    sqltimeCallRecords += " and  begintime<=  '" + d2.ToString("yyyy-MM-dd") + " 23:59:59 ' ";
319
+                }
320
+
321
+                //dt = DbHelperSQL.Query("select COUNT(*) as ct,(select COUNT(*) from rep_trunk_call_in where PeriodTalking>0 " + sqltimeCallRecords + ") as jt from rep_trunk_call_in  where 1=1  " + sqltimeCallRecords).Tables[0];
322
+                dt = DbHelperSQL.Query("select COUNT(*) as ct,(select COUNT(*) from T_Call_CallRecords where CallType = 0 and CallState = 1 " + sqltimeCallRecords + ") as jt,(select COUNT(*) from T_Call_CallRecords where CallType = 0 " + sqltimeCallRecords + ") as ht from T_Call_CallRecords where CallType = 0  " + sqltimeCallRecords).Tables[0];
323
+
324
+                int ibgnjt = 0;
325
+                double ibgnjtl = 0.00;
326
+             
327
+                if (dt != null && dt.Rows.Count > 0)
328
+                {
329
+
330
+                    if (dt.Rows[0]["jt"].ToString() != "")
331
+                    {
332
+                        ibgnjt = int.Parse(dt.Rows[0]["jt"].ToString());
333
+
334
+                        dataList .hj  += dt.Rows[0]["jt"].ToString() + ",";
335
+                    }
336
+                    else
337
+                    {
338
+                        dataList.hj += "0,";
339
+                    }
340
+                    if (dt != null && dt.Rows.Count > 0)
341
+                    {
342
+                        if (dt.Rows[0]["ht"].ToString() != "")
343
+                        {
344
+                            dataList.jt  += dt.Rows[0]["ht"].ToString() + ",";
345
+                        }
346
+                        else
347
+                        {
348
+                            dataList.jt += "0,";
349
+                        }
350
+                    }
351
+                    else
352
+                    {
353
+                        dataList.jt += "0,";
354
+                    }
355
+
356
+                    if (dt.Rows[0]["ct"].ToString() != "" && dt.Rows[0]["ct"].ToString() != "0")
357
+                    {
358
+                        ibgnjtl = ibgnjt / Convert.ToDouble(dt.Rows[0]["ct"].ToString());
359
+                        dataList.jtl  += (ibgnjtl * 100).ToString("0.00") + ",";
360
+
361
+                    }
362
+                    else
363
+                    {
364
+                        dataList.jtl += "0.00,";
365
+                    }
366
+                }
367
+                else
368
+                {
369
+                    dataList.hj += "0,";
370
+                    dataList.jt += "0,";
371
+                    dataList.jtl += "0.00,";
372
+                }
373
+            }
374
+            if (str != "")
375
+            {
376
+              //  str.Remove(str.Length - 1);
377
+                dataList.hj.Remove(dataList.hj.Length - 1);
378
+                dataList.jt.Remove(dataList.jt.Length - 1);
379
+                dataList.jtl.Remove(dataList.jtl.Length - 1);
380
+            }
381
+            return dataList;
382
+        }
288 383
     }
289 384
 }

+ 24 - 5
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallInScreenController.cs

@@ -309,25 +309,44 @@ namespace CallCenterApi.Interface.Controllers.tel
309 309
         public ActionResult GetZSKList()
310 310
         {
311 311
 
312
+         
312 313
             DataTable dt = new DataTable();
313 314
             string pid = HttpUtility.UrlDecode(RequestString.GetQueryString("pid"));
314 315
             string keywords = HttpUtility.UrlDecode(RequestString.GetQueryString("keywords"));
315 316
 
316
-            string sql = " F_ISPass=1 ";
317
+            string sql = " F_State in (" + (int)Model.EnumRepositoryState.AuditPass + "," + (int)Model.EnumRepositoryState.Urgent + ")";
317 318
             if (pid.Trim() != "")
318 319
             {
319
-                sql += " and F_CategoryId=" + pid.Trim();
320
+                sql += " and F_DeptId ='" + pid.Trim() + "'";
320 321
             }
321 322
             if (keywords.Trim() != "")
322 323
             {
323
-                sql += " and (F_Content like '%" + keywords.Trim() + "%' or F_Title like '%"
324
-                    + keywords.Trim() + "%' or F_KeyWords like '%" + keywords.Trim() + "%')";
324
+                sql += " and (F_Key like '%" + keywords + "%' or F_Title like '%" + keywords + "%') ";
325 325
             }
326 326
 
327
-            dt = new BLL.T_RepositoryInformation().GetList(8, sql, " F_RepositoryId desc").Tables[0];
327
+            dt = new BLL.T_Repository_List().GetList(8, sql, " F_Id desc").Tables[0];
328 328
 
329 329
             return Success("加载成功", dt);
330
+            #region 20200228 zhengbingbing 新版知识库更新后调整
331
+            //DataTable dt = new DataTable();
332
+            //string pid = HttpUtility.UrlDecode(RequestString.GetQueryString("pid"));
333
+            //string keywords = HttpUtility.UrlDecode(RequestString.GetQueryString("keywords"));
330 334
 
335
+            //string sql = " F_ISPass=1 ";
336
+            //if (pid.Trim() != "")
337
+            //{
338
+            //    sql += " and F_CategoryId=" + pid.Trim();
339
+            //}
340
+            //if (keywords.Trim() != "")
341
+            //{
342
+            //    sql += " and (F_Content like '%" + keywords.Trim() + "%' or F_Title like '%"
343
+            //        + keywords.Trim() + "%' or F_KeyWords like '%" + keywords.Trim() + "%')";
344
+            //}
345
+
346
+            //dt = new BLL.T_RepositoryInformation().GetList(8, sql, " F_RepositoryId desc").Tables[0];
347
+
348
+            //return Success("加载成功", dt);
349
+            #endregion
331 350
 
332 351
         }
333 352
 

Разница между файлами не показана из-за своего большого размера
+ 14 - 10
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderController.cs


+ 4 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Common/ButtonGroup.cs

@@ -115,6 +115,10 @@ namespace CallCenterApi.Interface.Models.Common
115 115
         {
116 116
             return new button(27, "撤单");
117 117
         }
118
+        public static button Returnlication()
119
+        {
120
+            return new button(28, "退回申请");
121
+        }
118 122
 
119 123
         #region 知识库操作按钮
120 124
         public static button zsk_query()

+ 9 - 0
CallCenterApi/CallCenterApi.Model/T_Repository_Operation.cs

@@ -24,6 +24,7 @@ namespace CallCenterApi.Model
24 24
         private int? _f_state;
25 25
         private string _f_optby;
26 26
         private DateTime? _f_opton;
27
+        private string _f_reason;
27 28
         /// <summary>
28 29
         /// 自增ID
29 30
         /// </summary>
@@ -96,6 +97,14 @@ namespace CallCenterApi.Model
96 97
             set { _f_opton = value; }
97 98
             get { return _f_opton; }
98 99
         }
100
+        /// <summary>
101
+        /// 未解决原因
102
+        /// </summary>
103
+        public string F_Reason
104
+        {
105
+            set { _f_reason = value; }
106
+            get { return _f_reason; }
107
+        }
99 108
         #endregion Model
100 109
     }
101 110
     /// <summary>