liyuanyuan лет назад: 2
Родитель
Сommit
bf5da4a9c4

+ 33 - 6
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/LogController.cs

@@ -21,22 +21,49 @@ namespace CallCenterApi.Interface.Controllers
21 21
         /// <returns></returns>
22 22
         public ActionResult GetList()
23 23
         {
24
+
25
+            string deptid = RequestString.GetQueryString("deptid");
26
+
24 27
             string name = RequestString.GetQueryString("Name");
25 28
             string logindate = RequestString.GetQueryString("LoginDate");
29
+            string endlogindate = RequestString.GetQueryString("endLoginDate");
26 30
             string strpageindex = RequestString.GetQueryString("page");
27 31
             int pageindex = 1;
28 32
             string strpagesize = RequestString.GetQueryString("pagesize");
29 33
             int pagesize = 10;
30 34
 
31 35
             var sql = "";
36
+
37
+            if (!string.IsNullOrWhiteSpace(deptid))
38
+            {
39
+                sql += " and b.F_DeptId ='"+ deptid + "' ";
40
+            }
41
+
32 42
             if (!string.IsNullOrWhiteSpace(name))
33 43
             {
34
-                sql += " and F_LoginName like '%" + name + "%' ";
44
+                sql += " and a.F_LoginName like '%" + name + "%' ";
35 45
             }
36 46
             if (!string.IsNullOrWhiteSpace(logindate))
37 47
             {
38
-                sql += " and CONVERT(varchar , F_LoginDate, 120)>=CONVERT(varchar , '" + logindate + " 00:00:01', 120) and CONVERT(varchar , F_LoginDate, 120)<=CONVERT(varchar , '" + logindate + " 23:59:59', 120) ";
48
+                sql += " and CONVERT(varchar , a.F_LoginDate, 120)>=CONVERT(varchar , '" + logindate + " 00:00:01', 120)   ";
49
+            }
50
+            else
51
+            {
52
+                string now= DateTime.Now.ToString("yyyy-MM")+"-01";
53
+
54
+                sql += " and CONVERT(varchar , a.F_LoginDate, 120)>=CONVERT(varchar , '" + now + " 00:00:01', 120)   ";
55
+            }
56
+            if (!string.IsNullOrWhiteSpace(endlogindate))
57
+            {
58
+                
59
+                sql += "   and CONVERT(varchar , a.F_LoginDate, 120)<=CONVERT(varchar , '" +endlogindate + " 23:59:59', 120) ";
39 60
             }
61
+            else
62
+            {
63
+                string now = DateTime.Now.ToString("yyyy-MM-dd");
64
+                sql += "   and CONVERT(varchar , a.F_LoginDate, 120)<=CONVERT(varchar , '" + now + " 23:59:59', 120) ";
65
+            }
66
+
40 67
             if (strpageindex.Trim() != "")
41 68
             {
42 69
                 pageindex = Convert.ToInt32(strpageindex);
@@ -49,11 +76,11 @@ namespace CallCenterApi.Interface.Controllers
49 76
 
50 77
             int recordCount = 0;
51 78
             var dt = BLL.PagerBLL.GetListPager(
52
-                 "T_Sys_LoginLogs",
53
-                 "F_Id",
79
+                 "(select dbo.GetDeptName( b.F_DeptId) deptname,COUNT(1) num,MAX(F_LoginDate) logindate from  T_Sys_LoginLogs a left join T_Sys_UserAccount b on a.F_LoginName = b.F_UserName where dbo.GetDeptName( b.F_DeptId) is not null " + sql+ " group by b.F_DeptId ) c",
80
+                 "deptname",
54 81
                  "*",
55
-                 sql,
56
-                 "ORDER BY F_Id desc",
82
+                 "",
83
+                 "",
57 84
                  pagesize,
58 85
                  pageindex,
59 86
                  true,

+ 8 - 8
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/UserAccountController.cs

@@ -186,14 +186,14 @@ namespace CallCenterApi.Interface.Controllers
186 186
             //{
187 187
             //    return Error("工号必须为正整数");
188 188
             //}
189
-            try
190
-            {
191
-                int usercode = int.Parse(input.Usercode.Trim());
192
-            }
193
-            catch
194
-            {
195
-                return Error("工号必须为数字");
196
-            }
189
+            //try
190
+            //{
191
+            //    int usercode = int.Parse(input.Usercode.Trim());
192
+            //}
193
+            //catch
194
+            //{
195
+            //    return Error("工号必须为数字");
196
+            //}
197 197
 
198 198
             Model.T_Sys_UserAccount userAccountModel = new Model.T_Sys_UserAccount();
199 199
             userAccountModel.F_UserCode = input.Usercode.Trim();

+ 271 - 22
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderController.cs

@@ -46,7 +46,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
46 46
         }
47 47
         #region 获取工单
48 48
 
49
-        public ActionResult GetAnnexList()
49
+        public ActionResult GetAnnexList(int isdc = 0)
50 50
         {
51 51
             DataTable dt = new DataTable();
52 52
             string sql = " and F_IsDelete=0 ";
@@ -91,18 +91,33 @@ namespace CallCenterApi.Interface.Controllers.workorder
91 91
             }
92 92
             string sort = "ORDER BY F_CreateTime DESC";
93 93
             int recordCount = 0;
94
-            dt = BLL.PagerBLL.GetListPager(
95
-                "T_Bus_WorkOrder WITH(NOLOCK)",
96
-                "F_WorkOrderId",
97
-                "F_MainDeptId, F_WorkOrderId,F_IsResult,F_WorkState",
98
-                sql,
99
-               sort,
100
-                pagesize,
101
-                pageindex,
102
-                true,
103
-                out recordCount);
94
+            if (isdc==0)
95
+            {
96
+                dt = BLL.PagerBLL.GetListPager(
97
+                                "T_Bus_WorkOrder WITH(NOLOCK)",
98
+                                "F_WorkOrderId",
99
+                                //"案件编号", "题目", "创建日期", "交办单位", "是否超期","是否回复" };
100
+                                " F_WorkOrderId,F_ComTitle,F_CreateTime, F_MainDeptId,  F_DealTime, F_IsResult,F_WorkState,  (case  when F_DealTime is null then '未回复' else '已回复' end) isreply,F_LimitTime",
101
+                                sql,
102
+                               sort,
103
+                                pagesize,
104
+                                pageindex,
105
+                                true,
106
+                                out recordCount);
107
+            }
108
+            else
109
+            {
110
+                dt = DbHelperSQL.Query("select F_WorkOrderId,F_ComTitle,F_CreateTime, F_MainDeptId,   F_IsResult,F_WorkState, F_DealTime, (case  when F_DealTime is null then '未回复' else '已回复' end) isreply,F_LimitTime from T_Bus_WorkOrder WITH(NOLOCK) where 1=1" + sql).Tables[0];
111
+            }
112
+            
104 113
             dt.Columns.Add("DeptName", typeof(string));//交办单位
105
-            dt.Columns.Add("bldata", typeof(object));
114
+            if (isdc==0)
115
+            {
116
+                dt.Columns.Add("bldata", typeof(object));
117
+
118
+            }
119
+            dt.Columns.Add("OverState", typeof(string));//超时状态
120
+            var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
106 121
             foreach (DataRow dr in dt.Rows)
107 122
             {
108 123
                 int state = Int32.Parse(dr["F_WorkState"].ToString());
@@ -116,6 +131,65 @@ namespace CallCenterApi.Interface.Controllers.workorder
116 131
 
117 132
 
118 133
                         dr["DeptName"] = DbHelperSQL.GetSingle("  select (case when F_IsResult =1 then dbo.[GetDeptNameByUserCode](F_CreateUser) else (select  dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "'))   end)  from t_bus_workorder where F_workorderid='" + dr["F_WorkOrderId"].ToString() + "'");
134
+
135
+                        #region 超时时限
136
+                        var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
137
+                       // dr["LimitTime"] = lt;
138
+
139
+                        if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
140
+                        {
141
+                            if (!string.IsNullOrWhiteSpace(lt))
142
+                            {
143
+                                var ltime = DateTime.Parse(lt);
144
+                                TimeSpan ts = ltime.Subtract(DateTime.Now);
145
+                                int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
146
+                                if (tss < 0) { tss = -tss; }
147
+                                string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
148
+                                if (ltime > DateTime.Now)
149
+                                {
150
+
151
+                                    dr["OverState"] = "否";
152
+
153
+
154
+                                }
155
+                                else
156
+                                {
157
+
158
+                                    dr["OverState"] = "超时" + gshsj;
159
+                                }
160
+                            }
161
+
162
+                        }
163
+
164
+                        if (state == (int)EnumWorkState.finish || state == (int)EnumWorkState.closed)
165
+                        {
166
+                            var closetime = dr["F_DealTime"].ToString();//关闭工单时间
167
+                            if (!string.IsNullOrEmpty(closetime))
168
+                            {
169
+                                var dttime = DateTime.Parse(closetime);
170
+
171
+                                if (!string.IsNullOrEmpty(lt))
172
+                                {
173
+                                    var ltime = DateTime.Parse(lt);
174
+                                    TimeSpan ts = ltime.Subtract(dttime);
175
+                                    int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
176
+                                    if (tss < 0) { tss = -tss; }
177
+                                    string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
178
+                                    if (ltime < dttime)
179
+                                    {
180
+
181
+                                        dr["OverState"] = "超时" + gshsj;
182
+                                    }
183
+                                    else
184
+                                    {
185
+                                        dr["OverState"] = "否";
186
+                                    }
187
+                                }
188
+
189
+                            }
190
+
191
+                        }
192
+                        #endregion
119 193
                     }
120 194
 
121 195
                     else
@@ -125,9 +199,17 @@ namespace CallCenterApi.Interface.Controllers.workorder
125 199
                             dr["DeptName"] = DbHelperSQL.GetSingle("  select   dbo.[GetDeptNameByUserCode](F_CreateUser)   from t_bus_workorder where F_workorderid='" + dr["F_WorkOrderId"].ToString() + "'");
126 200
                         }
127 201
                     }
202
+
203
+                 
128 204
                 }
205
+
206
+
207
+
208
+                if (isdc == 0)
209
+                { 
210
+
129 211
                 var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
130
-                string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "                                                  + "from T_Bus_Feedback WITH(NOLOCK) where  F_Type!=3 and F_IsDelete=0 and  F_WorkOrderId ='" + dr["F_WorkOrderId"].ToString() + "' order by F_CreateTime";
212
+                string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName " + "from T_Bus_Feedback WITH(NOLOCK) where  F_Type!=3 and F_IsDelete=0 and  F_WorkOrderId ='" + dr["F_WorkOrderId"].ToString() + "' order by F_CreateTime";
131 213
                 var bldt = DbHelperSQL.Query(blsql).Tables[0];
132 214
                 if (configfj != null)
133 215
                 {
@@ -135,7 +217,31 @@ namespace CallCenterApi.Interface.Controllers.workorder
135 217
                 }
136 218
                 dr["blData"] = bldt;
137 219
             }
220
+            }
138 221
 
222
+            if (isdc==1)
223
+            {
224
+                //删除一些列      
225
+               
226
+                      dt.Columns.Remove("F_DealTime");
227
+                dt.Columns.Remove("F_MainDeptId");
228
+                dt.Columns.Remove("F_IsResult");
229
+                dt.Columns.Remove("F_WorkState");
230
+                dt.Columns.Remove("F_LimitTime");
231
+                
232
+                dt.Columns["isreply"].SetOrdinal(5);
233
+                var cols = new string[] { "案件编号", "题目", "创建日期", "交办单位", "是否超期","是否回复" };
234
+                var msg = new NPOIHelper().ExportToExcel("附件管理", dt,cols);
235
+                if (msg == "")
236
+                {
237
+                   
238
+                    return Success("导出成功");
239
+                }
240
+                else
241
+                {
242
+                    return Error("导出失败");
243
+                }
244
+            }
139 245
             var obj = new
140 246
             {
141 247
                 state = "success",
@@ -9577,8 +9683,9 @@ namespace CallCenterApi.Interface.Controllers.workorder
9577 9683
                                     var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
9578 9684
 
9579 9685
                                     foreach (var u in users)
9580
-                                    {
9581
-                                        msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
9686
+                                    {//有新提示函【2023第xx号】未查收,请及时查收处理
9687
+                                        //msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
9688
+                                        msg.AddInternalMessagesInfo("工单消息",  "有新提示函" + modelT_Bus_WorkOrder.F_WorkOrderId+ "未查收,请及时查收处理", u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.attention);
9582 9689
                                         if (!string.IsNullOrEmpty(u.F_Mobile))
9583 9690
                                         {
9584 9691
                                             string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
@@ -9690,8 +9797,11 @@ namespace CallCenterApi.Interface.Controllers.workorder
9690 9797
 
9691 9798
                                             foreach (var u in users)
9692 9799
                                             {
9693
-                                                
9694
-                                            msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
9800
+
9801
+                                            //msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
9802
+
9803
+                                            msg.AddInternalMessagesInfo("工单消息", "有新提示函" + modelT_Bus_WorkOrder1.F_WorkOrderId + "未查收,请及时查收处理", u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.attention);
9804
+
9695 9805
                                             if (!string.IsNullOrEmpty(u.F_Mobile))
9696 9806
                                             {
9697 9807
                                                 string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
@@ -10440,7 +10550,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
10440 10550
                         {
10441 10551
                             foreach (var item in user)
10442 10552
                             {
10443
-                                msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", item.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.additional);
10553
+                                msg.AddInternalMessagesInfo("催办提醒", "【催办】提示函" + workorderid + "未处理,请及时处理", item.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.attention);
10444 10554
                                 if (!string.IsNullOrEmpty(item.F_Mobile))
10445 10555
                                 {
10446 10556
                                     string count = "您有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
@@ -10969,10 +11079,10 @@ namespace CallCenterApi.Interface.Controllers.workorder
10969 11079
 
10970 11080
                 if (modelT_Bus_WorkOrder != null && modelT_Bus_Feedback != null && modelT_Bus_AssignedInfo != null)
10971 11081
                 {
10972
-                    if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
10973
-                    {
10974
-                        return Error("操作失败");
10975
-                    }
11082
+                    //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
11083
+                    //{
11084
+                    //    return Error("操作失败");
11085
+                    //}
10976 11086
 
10977 11087
                     if (modelT_Bus_Feedback.F_Type == 3 && modelT_Bus_Feedback.F_IsAudit == 0)
10978 11088
                     {
@@ -17181,5 +17291,144 @@ namespace CallCenterApi.Interface.Controllers.workorder
17181 17291
 
17182 17292
             return Content(obj.ToJson());
17183 17293
         }
17294
+
17295
+        /// <summary>
17296
+        /// 调度员角色弹框:
17297
+        //1、超期未交办提醒:超过3天、6天、9天未交办的工单进行提醒,弹框提示“提示函【2023第xx号】超期未处理,请及时处理”
17298
+        //2、点击弹框确认之后,下次不在提醒,比如第一次超3天提醒一次,点击确定之后,下次提醒是第6天的时候
17299
+        /// </summary>
17300
+        /// <returns></returns>
17301
+        [AllowAnonymous]
17302
+        public ActionResult SendRemindMsg()
17303
+        {
17304
+
17305
+
17306
+            DataTable dt = new DataTable();
17307
+            dt = DbHelperSQL.Query("select * from T_Bus_WorkOrder where F_WorkState=1 and F_IsDelete=0  " +
17308
+       "and datediff(day , F_CreateTime , getdate())>'" +3 + "' and F_SendMsgDay =0   ").Tables[0];
17309
+
17310
+            DataTable userdt = DbHelperSQL.Query(" select F_usercode from t_sys_useraccount where F_rolecode='ZXLD'").Tables[0];
17311
+
17312
+            if (dt != null & dt.Rows.Count > 0)
17313
+            {
17314
+                foreach (DataRow item in dt.Rows)
17315
+                {
17316
+
17317
+                    foreach (DataRow user in userdt.Rows)
17318
+                    {
17319
+                        msg.AddInternalMessagesInfo("超期未交办提醒", "提示函 " + item["F_WorkOrderId"].ToString() + "超期未处理,请及时处理\n", user["F_usercode"].ToString(), "8000", (int)EnumSmsType.attention);
17320
+                    }
17321
+                    DbHelperSQL.ExecuteSql("update T_Bus_WorkOrder set F_SendMsgDay=3 where F_WorkOrderId='" + item["F_WorkOrderId"].ToString() + "'");
17322
+
17323
+                }
17324
+            }
17325
+
17326
+            DataTable dt2 = new DataTable();
17327
+            dt2 = DbHelperSQL.Query("select * from T_Bus_WorkOrder where F_WorkState=0 and F_IsDelete=0  " +
17328
+"and datediff(day , F_CreateTime , getdate())>'" + 6 + "' and F_SendMsgDay =3   ").Tables[0];
17329
+            if (dt2 != null & dt2.Rows.Count > 0)
17330
+            {
17331
+                foreach (DataRow item in dt2.Rows)
17332
+                {
17333
+                    foreach (DataRow user in userdt.Rows)
17334
+                    {
17335
+                        msg.AddInternalMessagesInfo("超期未交办提醒", "提示函 " + item["F_WorkOrderId"].ToString() + "超期未处理,请及时处理\n", user["F_usercode"].ToString(), "8000", (int)EnumSmsType.attention);
17336
+                    }
17337
+                    DbHelperSQL.ExecuteSql("update T_Bus_WorkOrder set F_SendMsgDay=6 where F_WorkOrderId='" + item["F_WorkOrderId"].ToString() + "'");
17338
+
17339
+                }
17340
+            }
17341
+
17342
+            DataTable dt3 = new DataTable();
17343
+            dt3 = DbHelperSQL.Query("select * from T_Bus_WorkOrder where F_WorkState=0 and F_IsDelete=0  " +
17344
+"and datediff(day , F_CreateTime , getdate())>'" + 9 + "' and F_SendMsgDay =6   ").Tables[0];
17345
+            if (dt3 != null & dt3.Rows.Count > 0)
17346
+            {
17347
+                foreach (DataRow item in dt3.Rows)
17348
+                {
17349
+                    foreach (DataRow user in userdt.Rows)
17350
+                    {
17351
+                        msg.AddInternalMessagesInfo("超期未交办提醒", "提示函 " + item["F_WorkOrderId"].ToString() + "超期未处理,请及时处理\n", user["F_usercode"].ToString(), "8000", (int)EnumSmsType.attention);
17352
+                    }
17353
+                    DbHelperSQL.ExecuteSql("update T_Bus_WorkOrder set F_SendMsgDay=9 where F_WorkOrderId='" + item["F_WorkOrderId"].ToString() + "'");
17354
+
17355
+                }
17356
+            }
17357
+
17358
+
17359
+            return Success("发送消息完成");
17360
+        }
17361
+
17362
+
17363
+        //        二级办理单位弹框:
17364
+        //1、待查收提醒:新交办给该二级单位办理的工单发送弹框提醒,弹框提示“有新提示函【2023第xx号】未查收,请及时查收处理”
17365
+        //2、催办提醒:催办给对应二级单位发送提醒,弹框提示“催办提示函【2023第xx号】未处理,请及时处理”
17366
+
17367
+        //3、按交办时间算)超期未处理提醒:超过3天、6天、9天未进行处理的工单进行提醒,弹框提示“提示函【2023第xx号】超期未处理,请及时处理”
17368
+        [AllowAnonymous]
17369
+        public ActionResult EJDWSendRemindMsg()
17370
+        {
17371
+
17372
+            DataTable dt = new DataTable();
17373
+            dt = DbHelperSQL.Query("select * from T_Bus_WorkOrder where F_WorkState in (1,2)  and F_IsDelete=0  " +
17374
+       "and datediff(day , F_AssignTime , getdate())>'" + 3 + "' and F_EJSendMsgDay =0   ").Tables[0];
17375
+
17376
+ 
17377
+
17378
+            if (dt != null & dt.Rows.Count > 0)
17379
+            {
17380
+                foreach (DataRow item in dt.Rows)
17381
+                {
17382
+                    int deptid = Convert.ToInt32( item["F_MainDeptId"].ToString());
17383
+                    DataTable userdt = DbHelperSQL.Query(" select F_usercode from t_sys_useraccount where F_deptid='"+ deptid + "'").Tables[0];
17384
+                    foreach (DataRow user in userdt.Rows)
17385
+                    {
17386
+                        msg.AddInternalMessagesInfo("超期未处理提醒", "提示函 " + item["F_WorkOrderId"].ToString() + "超期未处理,请及时处理\n", user["F_usercode"].ToString(), "8000", (int)EnumSmsType.attention);
17387
+                    }
17388
+                    DbHelperSQL.ExecuteSql("update T_Bus_WorkOrder set F_EJSendMsgDay=3 where F_WorkOrderId='" + item["F_WorkOrderId"].ToString() + "'");
17389
+
17390
+                }
17391
+            }
17392
+
17393
+            DataTable dt2 = new DataTable();
17394
+            dt2 = DbHelperSQL.Query("select * from T_Bus_WorkOrder where F_WorkState in (1,2) and F_IsDelete=0  " +
17395
+"and datediff(day , F_AssignTime , getdate())>'" + 6 + "' and F_EJSendMsgDay =3   ").Tables[0];
17396
+            if (dt2 != null & dt2.Rows.Count > 0)
17397
+            {
17398
+                foreach (DataRow item in dt2.Rows)
17399
+                {
17400
+                    int deptid = Convert.ToInt32(item["F_MainDeptId"].ToString());
17401
+                    DataTable userdt = DbHelperSQL.Query(" select F_usercode from t_sys_useraccount where F_deptid='" + deptid + "'").Tables[0];
17402
+                    foreach (DataRow user in userdt.Rows)
17403
+                    {
17404
+                        msg.AddInternalMessagesInfo("超期未处理提醒", "提示函 " + item["F_WorkOrderId"].ToString() + "超期未处理,请及时处理\n", user["F_usercode"].ToString(), "8000", (int)EnumSmsType.attention);
17405
+                    }
17406
+                    DbHelperSQL.ExecuteSql("update T_Bus_WorkOrder set F_EJSendMsgDay=6 where F_WorkOrderId='" + item["F_WorkOrderId"].ToString() + "'");
17407
+
17408
+                }
17409
+            }
17410
+
17411
+            DataTable dt3 = new DataTable();
17412
+            dt3 = DbHelperSQL.Query("select * from T_Bus_WorkOrder where F_WorkState in (1,2) and F_IsDelete=0  " +
17413
+"and datediff(day , F_AssignTime , getdate())>'" + 9 + "' and F_EJSendMsgDay =6   ").Tables[0];
17414
+            if (dt3 != null & dt3.Rows.Count > 0)
17415
+            {
17416
+                foreach (DataRow item in dt3.Rows)
17417
+                {
17418
+                    int deptid = Convert.ToInt32(item["F_MainDeptId"].ToString());
17419
+                    DataTable userdt = DbHelperSQL.Query(" select F_usercode from t_sys_useraccount where F_deptid='" + deptid + "'").Tables[0];
17420
+
17421
+                    foreach (DataRow user in userdt.Rows)
17422
+                    {
17423
+                        msg.AddInternalMessagesInfo("超期未处理提醒", "提示函 " + item["F_WorkOrderId"].ToString() + "超期未处理,请及时处理\n", user["F_usercode"].ToString(), "8000", (int)EnumSmsType.attention);
17424
+                    }
17425
+                    DbHelperSQL.ExecuteSql("update T_Bus_WorkOrder set F_EJSendMsgDay=9 where F_WorkOrderId='" + item["F_WorkOrderId"].ToString() + "'");
17426
+
17427
+                }
17428
+            }
17429
+
17430
+
17431
+            return Success("发送消息完成");
17432
+        }
17184 17433
     }
17185 17434
 }

+ 13 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Global.asax.cs

@@ -5,6 +5,7 @@ using CallCenterApi.Interface.Models.Common;
5 5
 using System;
6 6
 using System.Collections.Generic;
7 7
 using System.Linq;
8
+using System.Threading.Tasks;
8 9
 using System.Web;
9 10
 using System.Web.Mvc;
10 11
 using System.Web.Routing;
@@ -22,6 +23,18 @@ namespace CallCenterApi.Interface
22 23
             RouteConfig.RegisterRoutes(RouteTable.Routes);
23 24
             //clq 增加异常日志记录 自定义 HandleErrorAttribute
24 25
             FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
26
+            Task.Run(() =>
27
+            {
28
+                //IIS直接更新dll有可能end事件晚于start事件,因此延迟1分钟启动定时任务
29
+                Task.Delay(TimeSpan.FromMinutes(1)).Wait();
30
+                _worker = new CallCenter.QuartzService.QuartzWorker();
31
+                _worker.AddWork(new SendMsg());             
32
+                _worker.Start();
33
+
34
+            }).ContinueWith(p =>
35
+            {
36
+                System.Diagnostics.Debug.WriteLine(DateTime.Now);
37
+            });
25 38
 
26 39
         }
27 40
 

+ 2 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Web.config

@@ -20,6 +20,8 @@
20 20
     <add key="smsusername" value="zxzb" />
21 21
     <add key="smspassword" value="zxzb123" />
22 22
     <add key="smssign" value="中鑫之宝" />
23
+    <add key="AutoApi" value="http://localhost:63665/" />
24
+    
23 25
   </appSettings>
24 26
   <connectionStrings>
25 27
     <!--<add name="ConnectionString" connectionString="Data Source=192.168.4.18;User ID=sa;pwd=800100;Initial Catalog=SQ12345;"/>-->

+ 1 - 1
CallCenterApi/CallCenterApi.Model/T_Bus_AssignedInfo.cs

@@ -252,7 +252,7 @@ namespace CallCenterApi.Model
252 252
             get { return _f_noticetime; }
253 253
         }
254 254
         /// <summary>
255
-        /// 是否派单(0否1是2派单完成)
255
+        /// 二级派给三级用的,是否派单(0否1是2派单完成)
256 256
         /// </summary>
257 257
         public int? F_IsNext
258 258
         {

+ 5 - 3
CallCenterApi/CallCenterApi.Model/T_SMS_InternalMessages.cs

@@ -121,7 +121,7 @@ namespace CallCenterApi.Model
121 121
             get { return _sms_istop; }
122 122
         }
123 123
         /// <summary>
124
-        /// 类型:0消息,1工单,2知识库
124
+        /// 类型:0消息,1工单,2知识库 3 超期等提醒 需要弹框的
125 125
         /// </summary>
126 126
         public int? SMS_Type
127 127
         {
@@ -132,13 +132,15 @@ namespace CallCenterApi.Model
132 132
     }
133 133
 
134 134
     /// <summary>
135
-    /// 消息类型:1工单,2知识库,3催办工单
135
+    /// 消息类型:1工单,2知识库,3催办工单 4 
136 136
     /// </summary>
137 137
     public enum EnumSmsType
138 138
     {
139 139
         message,
140 140
         workorder,
141 141
         knowledge,
142
-        additional
142
+        additional,
143
+        attention
144
+
143 145
     }
144 146
 }

+ 2 - 0
CallCenterCommon/CallCenter.QuartzService/CallCenter.QuartzService.csproj

@@ -44,6 +44,7 @@
44 44
       <Private>True</Private>
45 45
     </Reference>
46 46
     <Reference Include="System" />
47
+    <Reference Include="System.Configuration" />
47 48
     <Reference Include="System.Core" />
48 49
     <Reference Include="System.Xml.Linq" />
49 50
     <Reference Include="System.Data.DataSetExtensions" />
@@ -57,6 +58,7 @@
57 58
     <Compile Include="Properties\AssemblyInfo.cs" />
58 59
     <Compile Include="QuartzJob.cs" />
59 60
     <Compile Include="QuartzWorker.cs" />
61
+    <Compile Include="SendMsg.cs" />
60 62
   </ItemGroup>
61 63
   <ItemGroup>
62 64
     <None Include="job_scheduling_data_2_0.xsd">

+ 37 - 0
CallCenterCommon/CallCenter.QuartzService/SendMsg.cs

@@ -0,0 +1,37 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Configuration;
4
+using System.Linq;
5
+using System.Net;
6
+using System.Text;
7
+using System.Threading.Tasks;
8
+
9
+namespace CallCenter.QuartzService
10
+{
11
+      
12
+    public class SendMsg : QuartzJob
13
+    {
14
+
15
+        string api = ConfigurationManager.AppSettings["AutoApi"];
16
+        public  SendMsg()
17
+        {
18
+            CronExpression = "0 /5 * * * ?";
19
+            DoWork += Push;
20
+        }
21
+
22
+        public void Push(object sender, EventArgs e)
23
+        {
24
+
25
+            WebClient web = new WebClient();
26
+            web.Encoding = Encoding.UTF8;
27
+
28
+            ///调度员发送弹框提醒
29
+            string Dataur7 = web.DownloadString(api + "WorkOrder/SendRemindMsg");
30
+
31
+
32
+
33
+
34
+
35
+        }
36
+    }
37
+}