Sfoglia il codice sorgente

移动端 增加统计报表 ,用户和列表显示账号创建人和创建时间的记录

liyuanyuan 6 mesi fa
parent
commit
25e0ed0b59

+ 8 - 3
codegit/CallCenterApi/CallCenterApi.DAL/T_Sys_UserAccount.cs

@@ -50,9 +50,9 @@ namespace CallCenterApi.DAL
50 50
         {
51 51
             StringBuilder strSql = new StringBuilder();
52 52
             strSql.Append("insert into T_Sys_UserAccount(");
53
-            strSql.Append("F_UserCode,F_Password,F_ExtensionNumber,F_UserName,F_DeptId,F_RoleId,F_GroupId,F_SeatFlag,F_SeatRight,F_SeatLevel,F_SexFlag,F_RemindFlag,F_Remark,F_Telephone,F_Mobile,F_HomePhone,F_Birthday,F_CreateOn,F_CancelOn,F_DeleteFlag,F_APPOnFlag,F_LastActiveTime,F_See,F_HJType,F_PId,F_TmId,F_WorkNumber,F_DeptCode,F_WXNo,F_SeartGroupID,F_SeartGroup,F_Post)");
53
+            strSql.Append("F_UserCode,F_Password,F_ExtensionNumber,F_UserName,F_DeptId,F_RoleId,F_GroupId,F_SeatFlag,F_SeatRight,F_SeatLevel,F_SexFlag,F_RemindFlag,F_Remark,F_Telephone,F_Mobile,F_HomePhone,F_Birthday,F_CreateOn,F_CancelOn,F_DeleteFlag,F_APPOnFlag,F_LastActiveTime,F_See,F_HJType,F_PId,F_TmId,F_WorkNumber,F_DeptCode,F_WXNo,F_SeartGroupID,F_SeartGroup,F_Post,F_CreateBy)");
54 54
             strSql.Append(" values (");
55
-            strSql.Append("@F_UserCode,@F_Password,@F_ExtensionNumber,@F_UserName,@F_DeptId,@F_RoleId,@F_GroupId,@F_SeatFlag,@F_SeatRight,@F_SeatLevel,@F_SexFlag,@F_RemindFlag,@F_Remark,@F_Telephone,@F_Mobile,@F_HomePhone,@F_Birthday,@F_CreateOn,@F_CancelOn,@F_DeleteFlag,@F_APPOnFlag,@F_LastActiveTime,@F_See,@F_HJType,@F_PId,@F_TmId,@F_WorkNumber,@F_DeptCode,@F_WXNo,@F_SeartGroupID,@F_SeartGroup,@F_Post)");
55
+            strSql.Append("@F_UserCode,@F_Password,@F_ExtensionNumber,@F_UserName,@F_DeptId,@F_RoleId,@F_GroupId,@F_SeatFlag,@F_SeatRight,@F_SeatLevel,@F_SexFlag,@F_RemindFlag,@F_Remark,@F_Telephone,@F_Mobile,@F_HomePhone,@F_Birthday,@F_CreateOn,@F_CancelOn,@F_DeleteFlag,@F_APPOnFlag,@F_LastActiveTime,@F_See,@F_HJType,@F_PId,@F_TmId,@F_WorkNumber,@F_DeptCode,@F_WXNo,@F_SeartGroupID,@F_SeartGroup,@F_Post,@F_CreateBy)");
56 56
             strSql.Append(";select @@IDENTITY");
57 57
             SqlParameter[] parameters = {
58 58
                     new SqlParameter("@F_UserCode", SqlDbType.VarChar,50),
@@ -86,6 +86,9 @@ namespace CallCenterApi.DAL
86 86
                     new SqlParameter("@F_WXNo", SqlDbType.NVarChar,50),
87 87
                     new SqlParameter("@F_SeartGroupID", SqlDbType.Int,4),
88 88
                      new SqlParameter("@F_Post", SqlDbType.NVarChar,100),
89
+
90
+                     new SqlParameter("@F_CreateBy", SqlDbType.NVarChar,100),
91
+                     
89 92
                     new SqlParameter("@F_SeartGroup", SqlDbType.NVarChar,50)};
90 93
             parameters[0].Value = model.F_UserCode;
91 94
             parameters[1].Value = model.F_Password;
@@ -118,7 +121,9 @@ namespace CallCenterApi.DAL
118 121
             parameters[28].Value = model.F_WXNo;
119 122
             parameters[29].Value = model.F_SeartGroupID;
120 123
             parameters[30].Value = model.F_Post ;
121
-            parameters[31].Value = model.F_SeartGroup;
124
+
125
+            parameters[31].Value = model.F_CreateBy;
126
+            parameters[32].Value = model.F_SeartGroup;
122 127
 
123 128
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
124 129
             if (obj == null)

+ 2 - 2
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Configs/system.config

@@ -35,9 +35,9 @@
35 35
   <!-- 设置数据库列名字 -->
36 36
   <add key="dbkeys" value="F_Area,F_Province,F_City,F_Name,F_Phone" />
37 37
   <!-- ================== 5:Redis配置 ================== -->
38
-  <add key="Redis_Server" value="192.168.4.18" />
38
+  <add key="Redis_Server" value="192.168.8.9" />
39 39
   <add key="Redis_Port" value="6379" />
40
-  <add key="Redis_Defaultdatabase" value="2" />
40
+  <add key="Redis_Defaultdatabase" value="5" />
41 41
   <!-- 录音存储地址 -->
42 42
   <add key="Sound_recording" value="D:\CallCenter_Sound\" />
43 43
   <!-- 是否显示工单 -->

+ 4 - 2
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/UserAccountController.cs

@@ -449,7 +449,7 @@ namespace CallCenterApi.Interface.Controllers
449 449
                     dt = BLL.PagerBLL.GetListPager(
450 450
                                             "T_Sys_UserAccount",
451 451
                                             "F_UserId",
452
-                                            "*",
452
+                                            "*, dbo.GetUserName(F_CreateBy) F_CreateName",
453 453
                                             sql,
454 454
                                             "ORDER BY " + sth + " ",
455 455
                                             filter.PageSize,
@@ -494,7 +494,8 @@ namespace CallCenterApi.Interface.Controllers
494 494
                             F_WorkNumber = x.F_WorkNumber,
495 495
                             F_Post = x.F_Post,
496 496
                             //F_WXNo=x.F_WXNo,
497
-                            F_SeatGroup = x.F_SeartGroup
497
+                            F_SeatGroup = x.F_SeartGroup,
498
+                            F_CreateByName=x.F_CreateName
498 499
                         }),
499 500
                         total = recordCount
500 501
                     };
@@ -731,6 +732,7 @@ namespace CallCenterApi.Interface.Controllers
731 732
                 userAccountModel.F_DeptCode = input.deptcode;
732 733
                 userAccountModel.F_APPOnFlag = input.appOnFlag;
733 734
 
735
+                userAccountModel.F_CreateBy = userModel.F_UserCode;
734 736
 
735 737
                 userAccountModel.F_SeatLevel  = input.level ;
736 738
                 if (input.HjType != null)

+ 116 - 0
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/BusinessController.cs

@@ -2159,6 +2159,122 @@ namespace CallCenterApi.Interface.Controllers.report
2159 2159
 
2160 2160
             return Success("获取成功", complaintTrends);
2161 2161
         }
2162
+
2163
+        public ActionResult APPAfterprogress(string stime = "", string endtime = "" )
2164
+        {
2165
+            List<APPAftersale> aftersalelist = new List<APPAftersale>();
2166
+            DateTime strattime, enddatetime;
2167
+            string where = "F_IsDelete = 0 and F_Area is not null and (F_Type=2 or (F_Duplicate in(2,0)and F_Type=3))";
2168
+            if (stime == "")
2169
+            {
2170
+                strattime = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM-28"));
2171
+                where += " and datediff(day,F_CreateTime,'" + strattime.ToString("yyyy-MM-dd") + "')<=0 ";
2172
+            }
2173
+            else
2174
+            {
2175
+                strattime = DateTime.Parse(stime);
2176
+                where += " and datediff(day,F_CreateTime,'" + stime + "')<=0 ";
2177
+            }
2178
+            if (endtime == "")
2179
+            {
2180
+                enddatetime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-27"));
2181
+                where += " and datediff(day,F_CreateTime,'" + DateTime.Now.ToString("yyyy-MM-dd") + "')>=0 ";
2182
+            }
2183
+            else
2184
+            {
2185
+                enddatetime = DateTime.Parse(endtime);
2186
+                where += " and datediff(day,F_CreateTime,'" + endtime + "')>=0 ";
2187
+            }
2188
+            var workoeder = new BLL.T_Bus_WorkOrder().GetModelList(where);
2189
+            var Area = new BLL.T_Sys_Department().GetModelList(" F_DeptName in ('云贵','华东','湖南','川渝','广海','广东','西北','陕宁','闽赣','晋蒙','吉林','辽宁','安徽','豫北','黑龙江','江苏','湖北','河北','京津','豫南','鲁西','鲁东') and F_State = 1   and F_Layer = 1   order by F_Sort ");
2190
+            float max = 0; float min = 0;
2191
+            string maxarea = "", minarea = "";
2192
+            int Tobeassignment = 0;
2193
+            APPAftersale complaints = new APPAftersale();
2194
+            complaints.serialnumbe = "合计";
2195
+            complaints.area = "";
2196
+
2197
+            if (workoeder != null)
2198
+            {
2199
+                Tobeassignment = workoeder.Where(x => x.F_State == 1 || x.F_State == 5).Count();
2200
+                for (int i = 0; i < Area.Count; i++)
2201
+                {
2202
+                    APPAftersale aftersale = new APPAftersale();
2203
+                    aftersale.serialnumbe = i + 1 + "";//序号
2204
+                    aftersale.area = Area[i].F_DeptName;//大区
2205
+                    var group = workoeder.Where(p => p.F_Area == Area[i].F_DeptId.ToString());//投诉总量
2206
+                    aftersale.total = group.Count();
2207
+                    aftersale.processingnumber = group.Where(p => p.F_State == 4).Count();//处理中投诉
2208
+                    aftersale.processednumber = group.Where(p => p.F_State == 10).Count();//已处理投诉
2209
+                    float d = 0;
2210
+                    if (aftersale.total > 0)
2211
+                    {
2212
+                        d = (float)aftersale.processednumber / aftersale.total;
2213
+                        aftersale.processed = d;
2214
+                        aftersale.processedrate = string.Format("{0:f2}%", (float)aftersale.processednumber / aftersale.total * 100);//完结率
2215
+                    }
2216
+                    else
2217
+                    {
2218
+                        d = 1;
2219
+                        aftersale.processed = 1;
2220
+                        aftersale.processedrate = "100%";
2221
+                    }
2222
+                    if (i == 0)
2223
+                    {
2224
+                        min = d;
2225
+                        max = d;
2226
+                        maxarea = Area[i].F_DeptName;
2227
+                        minarea = Area[i].F_DeptName;
2228
+                    }
2229
+                    else
2230
+                    {
2231
+                        if (d > max)
2232
+                        {
2233
+                            max = d;
2234
+                            maxarea = Area[i].F_DeptName;
2235
+                        }
2236
+                        if (d < min)
2237
+                        {
2238
+                            min = d;
2239
+                            minarea = Area[i].F_DeptName;
2240
+                        }
2241
+                    }
2242
+                    aftersalelist.Add(aftersale);
2243
+                }
2244
+                complaints.total = workoeder.Count();
2245
+                complaints.processingnumber = workoeder.Where(p => p.F_State == 4).Count();//处理中投诉
2246
+                complaints.processednumber = workoeder.Where(p => p.F_State == 10).Count();//已处理投诉
2247
+                if (complaints.total > 0)
2248
+                    complaints.processedrate = string.Format("{0:f2}%", (float)complaints.processednumber / complaints.total * 100);//完结率
2249
+                else
2250
+                    complaints.processedrate = "100%";
2251
+                int pendingnumber = workoeder.Where(p => p.F_State == 3).Count();//
2252
+                aftersalelist = aftersalelist.OrderByDescending(x => x.processed).ToList();
2253
+                aftersalelist.Add(complaints);
2254
+                for (int i = 0; i < aftersalelist.Count - 1; i++)
2255
+                {
2256
+                    aftersalelist[i].serialnumbe = i + 1 + "";
2257
+                }
2258
+              
2259
+              
2260
+                    var obj = new
2261
+                    {
2262
+                        aftersalelist,
2263
+                        maxarea,
2264
+                        minarea,
2265
+                        pendingnumber
2266
+                    };
2267
+                    return Success("获取成功", obj.ToJson()
2268
+                        );
2269
+               
2270
+
2271
+            }
2272
+            else
2273
+            {
2274
+                return Success("暂无数据");
2275
+            }
2276
+
2277
+        }
2162 2278
     }
2163 2279
 }
2164 2280
 

+ 5 - 0
codegit/CallCenterApi/CallCenterApi.Model/T_Sys_UserAccount.cs

@@ -48,6 +48,11 @@ namespace CallCenterApi.Model
48 48
         private int? _f_seartgroupid;
49 49
         private string _f_seartgroup;
50 50
         private string _f_post;
51
+
52
+        public string F_CreateBy { get; set; }
53
+
54
+
55
+
51 56
         /// <summary>
52 57
         /// 账户ID
53 58
         /// </summary>

+ 1 - 0
codegit/CallCenterApi/CallCenterApi.Model/UserAccount.cs

@@ -50,6 +50,7 @@ namespace CallCenterApi.Model
50 50
         private int? _f_seartgroupid;
51 51
         private string _f_seartgroup;
52 52
         private string _f_post;
53
+        public string F_CreateName { get; set; }
53 54
         /// <summary>
54 55
         /// 
55 56
         /// </summary>

+ 15 - 4
codegit/CallCenterCommon/CallCenter.Utility/NPOI/Market.cs

@@ -74,17 +74,28 @@ namespace CallCenter.Utility
74 74
         public string  serialnumbe;//序号
75 75
         public string area;//大区
76 76
         public int total;//工单总数
77
-        public int assignmentnumber;//分派投诉
78
-        public string assignmentrate;//分派率
77
+         public int assignmentnumber;//分派投诉
78
+         public string assignmentrate;//分派率
79 79
         public int receiving;//接单条数
80 80
         public string receivingrate;//接单率
81 81
         public int processingnumber;//处理中投诉
82 82
         public int processednumber;//已处理投诉
83
-        public float processed;
83
+         public float processed;
84 84
         public string processedrate;//完结率
85
-        public string reminderrate;//催单率
85
+       public string reminderrate;//催单率
86 86
         public string name;//公关经理
87 87
     }
88
+    public class APPAftersale
89
+    {
90
+        public string serialnumbe;//序号
91
+        public string area;//大区
92
+        public int total;//工单总数    
93
+        public int processingnumber;//处理中投诉
94
+        public int processednumber;//已处理投诉 
95
+        public string processedrate;//完结率
96
+        public float processed;
97
+
98
+    }
88 99
     public class qualityproblem
89 100
     {
90 101
         public string name { get; set; }