duhongyu преди 3 години
родител
ревизия
c90027390a

+ 17 - 6
codegit/CallCenterApi/CallCenterApi.DAL/T_Wo_WorkOrderItem_New.cs

@@ -41,9 +41,9 @@ namespace CallCenterApi.DAL
41 41
         {
42 42
             StringBuilder strSql = new StringBuilder();
43 43
             strSql.Append("insert into T_Wo_WorkOrderItem_New(");
44
-            strSql.Append("F_WoID,F_WoState,F_ItemType,F_OptType,F_OptContent,F_NextUser,F_NextDept,F_IsUsed,F_LimitTime,F_IsSMS,F_SMSToUser,F_SMSToPhone,F_SMSContent,F_CreateUser,F_CreateTime)");
44
+            strSql.Append("F_WoID,F_WoState,F_ItemType,F_OptType,F_OptContent,F_NextUser,F_NextDept,F_IsUsed,F_LimitTime,F_IsSMS,F_SMSToUser,F_SMSToPhone,F_SMSContent,F_CreateUser,F_CreateTime,F_LastTime)");
45 45
             strSql.Append(" values (");
46
-            strSql.Append("@F_WoID,@F_WoState,@F_ItemType,@F_OptType,@F_OptContent,@F_NextUser,@F_NextDept,@F_IsUsed,@F_LimitTime,@F_IsSMS,@F_SMSToUser,@F_SMSToPhone,@F_SMSContent,@F_CreateUser,@F_CreateTime)");
46
+            strSql.Append("@F_WoID,@F_WoState,@F_ItemType,@F_OptType,@F_OptContent,@F_NextUser,@F_NextDept,@F_IsUsed,@F_LimitTime,@F_IsSMS,@F_SMSToUser,@F_SMSToPhone,@F_SMSContent,@F_CreateUser,@F_CreateTime,@F_LastTime)");
47 47
             strSql.Append(";select @@IDENTITY");
48 48
             SqlParameter[] parameters = {
49 49
                     new SqlParameter("@F_WoID", SqlDbType.BigInt,8),
@@ -60,7 +60,9 @@ namespace CallCenterApi.DAL
60 60
                     new SqlParameter("@F_SMSToPhone", SqlDbType.VarChar,50),
61 61
                     new SqlParameter("@F_SMSContent", SqlDbType.NText),
62 62
                     new SqlParameter("@F_CreateUser", SqlDbType.VarChar,50),
63
-                    new SqlParameter("@F_CreateTime", SqlDbType.DateTime)};
63
+                    new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
64
+                     new SqlParameter("@F_LastTime", SqlDbType.DateTime)
65
+            };
64 66
             parameters[0].Value = model.F_WoID;
65 67
             parameters[1].Value = model.F_WoState;
66 68
             parameters[2].Value = model.F_ItemType;
@@ -76,7 +78,8 @@ namespace CallCenterApi.DAL
76 78
             parameters[12].Value = model.F_SMSContent;
77 79
             parameters[13].Value = model.F_CreateUser;
78 80
             parameters[14].Value = model.F_CreateTime;
79
-
81
+            parameters[15].Value = model.F_LastTime;
82
+            
80 83
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
81 84
             if (obj == null)
82 85
             {
@@ -108,7 +111,8 @@ namespace CallCenterApi.DAL
108 111
             strSql.Append("F_SMSToPhone=@F_SMSToPhone,");
109 112
             strSql.Append("F_SMSContent=@F_SMSContent,");
110 113
             strSql.Append("F_CreateUser=@F_CreateUser,");
111
-            strSql.Append("F_CreateTime=@F_CreateTime");
114
+            strSql.Append("F_CreateTime=@F_CreateTime,");
115
+            strSql.Append("F_LastTime=@F_LastTime");
112 116
             strSql.Append(" where F_ID=@F_ID");
113 117
             SqlParameter[] parameters = {
114 118
                     new SqlParameter("@F_WoID", SqlDbType.BigInt,8),
@@ -126,6 +130,7 @@ namespace CallCenterApi.DAL
126 130
                     new SqlParameter("@F_SMSContent", SqlDbType.NText),
127 131
                     new SqlParameter("@F_CreateUser", SqlDbType.VarChar,50),
128 132
                     new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
133
+                    new SqlParameter("@F_LastTime", SqlDbType.DateTime),
129 134
                     new SqlParameter("@F_ID", SqlDbType.BigInt,8)};
130 135
             parameters[0].Value = model.F_WoID;
131 136
             parameters[1].Value = model.F_WoState;
@@ -142,7 +147,8 @@ namespace CallCenterApi.DAL
142 147
             parameters[12].Value = model.F_SMSContent;
143 148
             parameters[13].Value = model.F_CreateUser;
144 149
             parameters[14].Value = model.F_CreateTime;
145
-            parameters[15].Value = model.F_ID;
150
+            parameters[15].Value = model.F_LastTime;
151
+            parameters[16].Value = model.F_ID;
146 152
 
147 153
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
148 154
             if (rows > 0)
@@ -298,6 +304,11 @@ namespace CallCenterApi.DAL
298 304
                 {
299 305
                     model.F_CreateTime = DateTime.Parse(row["F_CreateTime"].ToString());
300 306
                 }
307
+                if (row["F_LastTime"] != null && row["F_LastTime"].ToString() != "")
308
+                {
309
+                    model.F_LastTime = DateTime.Parse(row["F_LastTime"].ToString());
310
+                }
311
+                
301 312
             }
302 313
             return model;
303 314
         }

+ 2 - 1
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/weixin/WxLoginController.cs

@@ -5761,7 +5761,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
5761 5761
             var itemlast = itembll.GetModelList(" isnull(F_IsUsed,'0')='0' and F_ItemType=" + itemtype + " and  F_WoID=" + woid + " ");
5762 5762
             if (F_IsUsed == 0)
5763 5763
             {
5764
-                if (itemlast.Count > 0)
5764
+                if (itemlast !=null&&itemlast.Count > 0)
5765 5765
                 {
5766 5766
                     foreach (var it in itemlast)
5767 5767
                     {
@@ -5769,6 +5769,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
5769 5769
                         it.F_LimitTime = overtime.ToString();
5770 5770
                         itembll.Update(it);
5771 5771
                     }
5772
+                    itemModel.F_LastTime = itemlast.LastOrDefault().F_CreateTime;
5772 5773
                 }
5773 5774
             }
5774 5775
 

+ 48 - 8
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderNewController.cs

@@ -2166,6 +2166,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
2166 2166
                 log.F_SMSToPhone = it.F_SMSToPhone;
2167 2167
                 log.F_SMSContent = it.F_SMSContent;
2168 2168
                 log.F_CreateTime = it.F_CreateTime;
2169
+                log.F_LastTime = it.F_LastTime;
2169 2170
                 string username = "";
2170 2171
                 if (!string.IsNullOrEmpty (it .F_CreateUser ))
2171 2172
                 {
@@ -2190,6 +2191,38 @@ namespace CallCenterApi.Interface.Controllers.workorder
2190 2191
                     }
2191 2192
                   
2192 2193
                 }
2194
+
2195
+                var configlist = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='NodeLimit' ");
2196
+                if (configlist != null&& configlist.Count ()>0)
2197
+                {
2198
+                  var  config = configlist.FirstOrDefault();
2199
+                    try
2200
+                    {
2201
+                        if (log.F_LastTime !=null )
2202
+                        {
2203
+                            DateTime t = log.F_LastTime.Value.AddHours(int.Parse(config.F_ParamValue));
2204
+                            TimeSpan ts = log.F_CreateTime.Value  .Subtract(t);
2205
+                            double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
2206
+                            if (tss < 0) { tss = -tss; }
2207
+                            string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
2208
+                            if (t > log.F_CreateTime )
2209
+                            {
2210
+                                log.Timeout = "剩余"+ gshsj;
2211
+                            }
2212
+                            else
2213
+                            {
2214
+                                log.Timeout = "超时" + gshsj;
2215
+                            }
2216
+                        }
2217
+                    }
2218
+                    catch
2219
+                    {
2220
+
2221
+                    }
2222
+
2223
+                }
2224
+
2225
+
2193 2226
                 Modellist.Add(log);
2194 2227
             }
2195 2228
             return Modellist;
@@ -4151,10 +4184,14 @@ namespace CallCenterApi.Interface.Controllers.workorder
4151 4184
                         t_Wo_WorkCopy.F_SendCopyOn = DateTime.Now;
4152 4185
                         t_Wo_WorkCopy.F_SendCopyUser = clus.F_UserId.ToString();
4153 4186
                         t_Wo_WorkCopy.F_State = model.F_State;
4154
-                        string deptname = "";
4187
+                        string deptname = "", deptname1 = "";
4155 4188
                         var dept = new BLL.T_Sys_Department().GetModel(clus.F_DeptId);
4156 4189
                         if (dept != null)
4157 4190
                             deptname = dept.F_DeptName;
4191
+
4192
+                        var dept1 = new BLL.T_Sys_Department().GetModel(ua .F_DeptId);
4193
+                        if (dept1 != null)
4194
+                            deptname1 = dept1.F_DeptName;
4158 4195
                         if (new BLL.T_Wo_WorkCopy().Add(t_Wo_WorkCopy) > 0)
4159 4196
                         {
4160 4197
                             int sms = 0;
@@ -4163,10 +4200,10 @@ namespace CallCenterApi.Interface.Controllers.workorder
4163 4200
                                 sms = 1;
4164 4201
                                 //发送短信
4165 4202
                             }
4166
-                            string message = "";
4203
+                            string message = "抄送工单给"+ deptname + clus.F_UserName + "(" + clus.F_WorkNumber + ")";
4167 4204
                             if (!string.IsNullOrEmpty(content))
4168 4205
                                 message = ",抄送内容:" + content;
4169
-                            AddLog(model.F_ID, model.F_State.Value, deptname + clus.F_UserName + "(" + clus.F_WorkNumber + ")" + message, (int)EnumItemType.Copy, (int)EnumItemOpt.Copy, "", 0, ua, 0, 0, "", 1);
4206
+                            AddLog(model.F_ID, model.F_State.Value, deptname1 + ua .F_UserName + "(" + ua.F_WorkNumber + ")" + message, (int)EnumItemType.Copy, (int)EnumItemOpt.Copy, "", 0, ua, 0, 0, "", 1);
4170 4207
                             return Success("抄送成功");
4171 4208
                         }
4172 4209
                         else
@@ -4184,10 +4221,6 @@ namespace CallCenterApi.Interface.Controllers.workorder
4184 4221
             {
4185 4222
                 return Error("无操作权限!");
4186 4223
             }
4187
-
4188
-
4189
-
4190
-
4191 4224
         }
4192 4225
 
4193 4226
 
@@ -6013,14 +6046,16 @@ namespace CallCenterApi.Interface.Controllers.workorder
6013 6046
             var itemlast = itembll.GetModelList(" isnull(F_IsUsed,'0')='0' and F_ItemType=" + itemtype + " and  F_WoID=" + woid + " ");
6014 6047
             if (F_IsUsed==0)
6015 6048
             {
6016
-                if (itemlast.Count > 0)
6049
+                if (itemlast != null&& itemlast.Count > 0)
6017 6050
                 {
6018 6051
                     foreach (var it in itemlast)
6019 6052
                     {
6020 6053
                         it.F_IsUsed = 1;
6021 6054
                         it.F_LimitTime = overtime.ToString();
6055
+                        
6022 6056
                         itembll.Update(it);
6023 6057
                     }
6058
+                    itemModel.F_LastTime = itemlast.LastOrDefault().F_CreateTime; 
6024 6059
                 }
6025 6060
             }
6026 6061
           
@@ -8297,4 +8332,9 @@ public class ItemListLog
8297 8332
         set;
8298 8333
         get;
8299 8334
     }
8335
+    public DateTime ? F_LastTime
8336
+    {
8337
+        set;get;
8338
+    }
8339
+    public string Timeout { set; get; }
8300 8340
 }

+ 4 - 0
codegit/CallCenterApi/CallCenterApi.Model/T_Wo_WorkOrderItem_New.cs

@@ -159,6 +159,10 @@ namespace CallCenterApi.Model
159 159
             set { _f_createtime = value; }
160 160
             get { return _f_createtime; }
161 161
         }
162
+        /// <summary>
163
+        /// 上个节点时间
164
+        /// </summary>
165
+        public DateTime ? F_LastTime { set; get; }
162 166
         #endregion Model
163 167
     }
164 168
 }

+ 12 - 12
codegit/CallCenterCommon/CallCenter.Utility/Time/DateTimeConvert.cs

@@ -172,16 +172,16 @@ namespace CallCenter.Utility
172 172
         ///<param name="t">秒数</param>
173 173
         ///<param name="type">0:转换后带秒,1:转换后不带秒</param>
174 174
         ///<returns>几天几小时几分几秒</returns>
175
-        public static string parseTimeSeconds(int t, int type)
175
+        public static string parseTimeSeconds(double t, double type)
176 176
         {
177 177
             string r = "";
178
-            int day, hour, minute, second;
178
+            double day, hour, minute, second;
179 179
             if (t >= 86400) //天,
180 180
             {
181
-                day = Convert.ToInt32(t / 86400);
182
-                hour = Convert.ToInt32((t % 86400) / 3600);
183
-                minute = Convert.ToInt32((t % 86400 % 3600) / 60);
184
-                second = Convert.ToInt32(t % 86400 % 3600 % 60);
181
+                day = Convert.ToInt32(Math.Floor(t / 86400));
182
+                hour = Convert.ToInt32(Math.Floor((t % 86400) / 3600));
183
+                minute = Convert.ToInt32(Math.Floor((t % 86400 % 3600) / 60));
184
+                second = Convert.ToInt32(Math.Floor(t % 86400 % 3600 % 60));
185 185
                 if (type == 0)
186 186
                     r = day + ("天") + hour + ("小时") + minute + ("分") + second + ("秒");
187 187
                 else
@@ -190,9 +190,9 @@ namespace CallCenter.Utility
190 190
             }
191 191
             else if (t >= 3600)//时,
192 192
             {
193
-                hour = Convert.ToInt32(t / 3600);
194
-                minute = Convert.ToInt32((t % 3600) / 60);
195
-                second = Convert.ToInt32(t % 3600 % 60);
193
+                hour = Convert.ToInt32(Math.Floor(t / 3600));
194
+                minute = Convert.ToInt32(Math.Floor((t % 3600) / 60));
195
+                second = Convert.ToInt32(Math.Floor(t % 3600 % 60));
196 196
                 if (type == 0)
197 197
                     r = hour + ("小时") + minute + ("分") + second + ("秒");
198 198
                 else
@@ -200,8 +200,8 @@ namespace CallCenter.Utility
200 200
             }
201 201
             else if (t >= 60)//分
202 202
             {
203
-                minute = Convert.ToInt32(t / 60);
204
-                second = Convert.ToInt32(t % 60);
203
+                minute = Convert.ToInt32(Math.Floor(t / 60));
204
+                second = Convert.ToInt32(Math.Floor(t % 60));
205 205
                 r = minute + ("分") + second + ("秒");
206 206
             }
207 207
             else
@@ -212,7 +212,7 @@ namespace CallCenter.Utility
212 212
             return r;
213 213
         }
214 214
 
215
-       
215
+
216 216
         /// <summary>
217 217
         /// 当前日期时间,转换为秒
218 218
         /// </summary>