/// <summary> /// 根据服务凭证id获取服务凭证信息 /// </summary> /// <param name="dispatchJournalId">服务凭证编号</param> /// <returns>服务凭证信息</returns> public DispatchJournalInfo GetDispatchJournalByID(int dispatchJournalId) { DispatchJournalInfo info = this.dispatchJournalDao.GetDispatchJournalByID(dispatchJournalId); if (info != null) { List <HistoryInfo> histories = this.historyDao.GetHistories(ObjectTypes.DispatchJournal, info.ID); if (histories != null && histories.Count > 0) { foreach (HistoryInfo history in histories) { history.Action.Name = DispatchJournalInfo.Actions.GetDesc(history.Action.ID); } info.Histories = histories; info.SetHis4Comments(); } if (info.SignatureFileName != "") { string path = Path.Combine(Constants.DispatchJournalFolder, info.SignatureFileName); if (!File.Exists(path)) { path = Path.Combine(Constants.ImageFolder, Constants.ImageErrorName); } byte[] arr = File.ReadAllBytes(path); info.FileContent = Convert.ToBase64String(arr); } } return(info); }
/// <summary> /// 通过服务凭证编号获取服务凭证信息 /// </summary> /// <param name="userID">用户编号</param> /// <param name="dispatchJournalID">服务凭证编号</param> /// <param name="sessionID">当前请求所在设备储存的SessionID</param> /// <returns>服务凭证信息</returns> public JsonResult GetDispatchJournal(int userID, string sessionID, int dispatchJournalID) { ServiceResultModel <DispatchJournalInfo> response = new ServiceResultModel <DispatchJournalInfo>(); try { if (!CheckSessionID(userID, sessionID, response)) { return(MyJson(response, JsonRequestBehavior.AllowGet)); } UserInfo user = null; if (CheckUser(userID, response, out user) == false) { return(MyJson(response, JsonRequestBehavior.AllowGet)); } DispatchJournalInfo info = this.dispatchManager.GetDispatchJournalByID(dispatchJournalID); if (info == null) { response.SetFailed(ResultCodes.ParameterError, "服务凭证不存在"); } else { response.Data = info; } } catch (Exception ex) { NLog.LogManager.GetCurrentClassLogger().Error(ex, ex.Message); response.SetFailed(ResultCodes.SystemError, ControlManager.GetSettingInfo().ErrorMessage); } return(MyJson(response, JsonRequestBehavior.AllowGet)); }
public JsonResult SaveDispatchJournal(DispatchJournalInfo dispatchJournal) { ResultModel <int> result = new ResultModel <int>(); if (CheckSession(false) == false) { return(Json(ResultModelBase.CreateTimeoutModel(), JsonRequestBehavior.AllowGet)); } if (CheckSessionID() == false) { return(Json(ResultModelBase.CreateLogoutModel(), JsonRequestBehavior.AllowGet)); } try { dispatchJournal.FileContent = ParseBase64String(dispatchJournal.FileContent); dispatchJournal = this.dispatchManager.SaveDispatchJournal(dispatchJournal, GetLoginUser()); result.Data = dispatchJournal.ID; } catch (Exception ex) { NLog.LogManager.GetCurrentClassLogger().Error(ex, ex.Message); result.SetFailed(ResultCodes.SystemError, ControlManager.GetSettingInfo().ErrorMessage); } return(JsonResult(result)); }
/// <summary> /// 保存服务凭证信息 /// </summary> /// <param name="dispatchJournal">服务凭证信息</param> /// <returns>服务凭证ID</returns> public int AddDispatchJournal(DispatchJournalInfo dispatchJournal) { sqlStr = "INSERT INTO tblDispatchJournal(DispatchID,FaultCode,JobContent,FujiComments,ResultStatusID, " + " FollowProblem,Advice,UserName,UserMobile,Signed,StatusID) " + " VALUES(@DispatchID,@FaultCode,@JobContent,@FujiComments,@ResultStatusID, " + " @FollowProblem,@Advice,@UserName,@UserMobile,@Signed,@StatusID); " + " SELECT @@IDENTITY"; using (SqlCommand command = ConnectionUtil.GetCommand(sqlStr)) { command.Parameters.Add("@DispatchID", SqlDbType.Int).Value = dispatchJournal.Dispatch.ID; command.Parameters.Add("@FaultCode", SqlDbType.NVarChar).Value = SQLUtil.TrimNull(dispatchJournal.FaultCode); command.Parameters.Add("@JobContent", SqlDbType.NVarChar).Value = SQLUtil.TrimNull(dispatchJournal.JobContent); command.Parameters.Add("@ResultStatusID", SqlDbType.Int).Value = dispatchJournal.ResultStatus.ID; command.Parameters.Add("@FollowProblem", SqlDbType.NVarChar).Value = SQLUtil.TrimNull(dispatchJournal.FollowProblem); command.Parameters.Add("@Advice", SqlDbType.NVarChar).Value = SQLUtil.TrimNull(dispatchJournal.Advice); command.Parameters.Add("@UserName", SqlDbType.NVarChar).Value = SQLUtil.EmptyStringToNull(dispatchJournal.UserName); command.Parameters.Add("@UserMobile", SqlDbType.VarChar).Value = SQLUtil.EmptyStringToNull(dispatchJournal.UserMobile); command.Parameters.Add("@Signed", SqlDbType.Bit).Value = dispatchJournal.Signed; command.Parameters.Add("@StatusID", SqlDbType.Int).Value = dispatchJournal.Status.ID; command.Parameters.Add("@FujiComments", SqlDbType.NVarChar).Value = SQLUtil.TrimNull(dispatchJournal.FujiComments); dispatchJournal.ID = SQLUtil.ConvertInt(command.ExecuteScalar()); } return(dispatchJournal.ID); }
/// <summary> /// 修改服务凭证信息 /// </summary> /// <param name="dispatchJournal">服务凭证信息</param> public void UpdateDispatchJournal(DispatchJournalInfo dispatchJournal) { sqlStr = "UPDATE tblDispatchJournal SET DispatchID = @DispatchID,FaultCode=@FaultCode," + " FujiComments=@FujiComments,JobContent=@JobContent,ResultStatusID=@ResultStatusID,StatusID=@StatusID,FollowProblem=@FollowProblem," + " Advice=@Advice,UserName=@UserName,UserMobile=@UserMobile, Signed=@Signed"; sqlStr += " WHERE ID = @ID"; using (SqlCommand command = ConnectionUtil.GetCommand(sqlStr)) { command.Parameters.Add("@DispatchID", SqlDbType.VarChar).Value = dispatchJournal.Dispatch.ID; command.Parameters.Add("@FaultCode", SqlDbType.NVarChar).Value = SQLUtil.TrimNull(dispatchJournal.FaultCode); command.Parameters.Add("@JobContent", SqlDbType.NVarChar).Value = SQLUtil.TrimNull(dispatchJournal.JobContent); command.Parameters.Add("@ResultStatusID", SqlDbType.Int).Value = dispatchJournal.ResultStatus.ID; command.Parameters.Add("@StatusID", SqlDbType.Int).Value = dispatchJournal.Status.ID; command.Parameters.Add("@FollowProblem", SqlDbType.NVarChar).Value = SQLUtil.TrimNull(dispatchJournal.FollowProblem); command.Parameters.Add("@Advice", SqlDbType.NVarChar).Value = SQLUtil.TrimNull(dispatchJournal.Advice); command.Parameters.Add("@UserName", SqlDbType.NVarChar).Value = SQLUtil.EmptyStringToNull(dispatchJournal.UserName); command.Parameters.Add("@UserMobile", SqlDbType.VarChar).Value = SQLUtil.EmptyStringToNull(dispatchJournal.UserMobile); command.Parameters.Add("@Signed", SqlDbType.Bit).Value = dispatchJournal.Signed; command.Parameters.Add("@ID", SqlDbType.Int).Value = dispatchJournal.ID; command.Parameters.Add("@FujiComments", SqlDbType.NVarChar).Value = SQLUtil.TrimNull(dispatchJournal.FujiComments); command.ExecuteNonQuery(); } }
public JsonResult ApproveDispatchJournal(int userID, string sessionID, int dispatchJournalID, int resultStatusID, string followProblem, string comments) { ServiceResultModelBase response = new ServiceResultModelBase(); try { if (!CheckSessionID(userID, sessionID, response)) { return(MyJson(response, JsonRequestBehavior.AllowGet)); } UserInfo user = null; if (CheckUser(userID, response, out user, UserRole.SuperAdmin) == false) { return(MyJson(response, JsonRequestBehavior.AllowGet)); } DispatchJournalInfo info = this.dispatchManager.GetDispatchJournalByID(dispatchJournalID); if (info == null) { response.SetFailed(ResultCodes.ParameterError, "服务凭证不存在"); } else if (info.Status.ID != BusinessObjects.Domain.DispatchInfo.DocStatus.Pending) { response.SetFailed(ResultCodes.ParameterError, "当前服务凭证状态不可审批"); } else if (resultStatusID < DispatchJournalInfo.ResultStatuses.Pending || resultStatusID > DispatchJournalInfo.ResultStatuses.Close) { response.SetFailed(ResultCodes.ParameterError, "服务结果不存在"); } else { this.dispatchManager.PassDispatchJournal(dispatchJournalID, info.Dispatch.ID, resultStatusID, user, followProblem, comments); } } catch (Exception ex) { NLog.LogManager.GetCurrentClassLogger().Error(ex, ex.Message); response.SetFailed(ResultCodes.SystemError, ControlManager.GetSettingInfo().ErrorMessage); } return(MyJson(response, JsonRequestBehavior.AllowGet)); }
public DispatchJournalInfo SaveDispatchJournal(DispatchJournalInfo dispatchJournal, UserInfo user) { if (dispatchJournal.ID > 0) { this.dispatchJournalDao.UpdateDispatchJournal(dispatchJournal); FileUtil.DeleteFile(ObjectTypes.GetFileFolder(ObjectTypes.DispatchJournal), dispatchJournal.SignatureFileName); } else { dispatchJournal.ID = this.dispatchJournalDao.AddDispatchJournal(dispatchJournal); } byte[] fileContent = Convert.FromBase64String(dispatchJournal.FileContent); FileUtil.SaveFile(fileContent, Constants.DispatchJournalFolder, dispatchJournal.SignatureFileName); UpdateDispatchStatusByJournalAndReport(dispatchJournal.Dispatch.ID, user); //添加历史操作——服务凭证 提交 HistoryInfo historyDisptach = new HistoryInfo(dispatchJournal.ID, ObjectTypes.DispatchJournal, user.ID, DispatchJournalInfo.Actions.Submit); this.historyDao.AddHistory(historyDisptach); return(dispatchJournal); }
/// <summary> /// 通过服务凭证编号获取服务凭证信息 /// </summary> /// <param name="dispatchJournalID">服务凭证编号</param> /// <returns>服务凭证信息</returns> public JsonResult GetDispatchJournalByID(int dispatchJournalID) { ResultModel <DispatchJournalInfo> result = new ResultModel <DispatchJournalInfo>(); if (CheckSession() == false) { return(Json(ResultModelBase.CreateTimeoutModel(), JsonRequestBehavior.AllowGet)); } if (CheckSessionID() == false) { return(Json(ResultModelBase.CreateLogoutModel(), JsonRequestBehavior.AllowGet)); } try { DispatchJournalInfo info = this.dispatchManager.GetDispatchJournalByID(dispatchJournalID); result.Data = info; } catch (Exception ex) { NLog.LogManager.GetCurrentClassLogger().Error(ex, ex.Message); result.SetFailed(ResultCodes.SystemError, ControlManager.GetSettingInfo().ErrorMessage); } return(JsonResult(result)); }
/// <summary> /// 获取服务凭证列表 /// </summary> /// <param name="status">服务凭证状态</param> /// <param name="urgency">派工单紧急程度</param> /// <param name="filterField">搜索条件</param> /// <param name="filterText">搜索框填写内容</param> /// <param name="sortField">排序字段</param> /// <param name="sortDirection">排序方式</param> /// <param name="curRowNum">当前页数第一个数据的位置</param> /// <param name="pageSize">一页几条数据</param> /// <returns>服务凭证列表</returns> public List <DispatchJournalInfo> QueryDispatchJournals(int status, int urgency, string filterField, string filterText, string sortField, bool sortDirection, int curRowNum = 0, int pageSize = 0) { List <DispatchJournalInfo> dispatchJournals = new List <DispatchJournalInfo>(); sqlStr = "SELECT DISTINCT d.*,j.ID as DispatchJournalID, j.StatusID AS DispatchJournalStatusID ,r.ID AS DispatchReportID , r.StatusID AS DispatchReportStatusID " + " FROM tblDispatchJournal j " + " LEFT JOIN tblDispatch d ON d.ID = j.DispatchID " + " LEFT JOIN tblDispatchReport r ON d.ID = r.DispatchID " + " WHERE 1=1 "; if (status != 0) { sqlStr += " AND j.StatusID=" + status; } else { sqlStr += " AND j.StatusID <> " + DispatchJournalInfo.DispatchJournalStatus.Cancelled; } if (urgency != 0) { sqlStr += " AND d.UrgencyID=" + urgency; } if (!string.IsNullOrEmpty(filterText)) { sqlStr += GetFieldFilterClause(filterField); } sqlStr += GenerateSortClause(sortDirection, sortField, "j.ID"); sqlStr = AppendLimitClause(sqlStr, curRowNum, pageSize); using (SqlCommand command = ConnectionUtil.GetCommand(sqlStr)) { if (!String.IsNullOrEmpty(filterText)) { AddFieldFilterParam(command, filterField, filterText); } using (DataTable dt = GetDataTable(command)) { foreach (DataRow dr in dt.Rows) { DispatchJournalInfo dispatchJournal = new DispatchJournalInfo(); dispatchJournal.ID = SQLUtil.ConvertInt(dr["DispatchJournalID"]); dispatchJournal.Status.ID = SQLUtil.ConvertInt(dr["DispatchJournalStatusID"]); dispatchJournal.Status.Name = LookupManager.GetDispatchDocStatusDesc(dispatchJournal.Status.ID); dispatchJournal.Dispatch.ID = SQLUtil.ConvertInt(dr["ID"]); dispatchJournal.Dispatch.Request.ID = SQLUtil.ConvertInt(dr["RequestID"]); dispatchJournal.Dispatch.RequestType.ID = SQLUtil.ConvertInt(dr["RequestType"]); dispatchJournal.Dispatch.RequestType.Name = LookupManager.GetRequestTypeDesc(dispatchJournal.Dispatch.RequestType.ID); dispatchJournal.Dispatch.Urgency.ID = SQLUtil.ConvertInt(dr["UrgencyID"]); dispatchJournal.Dispatch.Urgency.Name = LookupManager.GetUrgencyDesc(dispatchJournal.Dispatch.Urgency.ID); dispatchJournal.Dispatch.ScheduleDate = SQLUtil.ConvertDateTime(dr["ScheduleDate"]); dispatchJournal.Dispatch.EndDate = SQLUtil.ConvertDateTime(dr["EndDate"]); dispatchJournals.Add(dispatchJournal); } } } return(dispatchJournals); }
private void GenerateRequestRegularPatrol(List <EquipmentInfo> equipmentInfos, ref int nextRequestId, ref int nextDispatchId, DateTime fromDate) { DateTime monthEnd = fromDate.AddMonths(1).AddDays(-1); List <EquipmentInfo> toProcessEquips = (from EquipmentInfo temp in equipmentInfos where temp.InstalEndDate <= fromDate && (temp.ScrapDate == DateTime.MinValue || temp.ScrapDate >= monthEnd) select temp).ToList(); List <EntityInfo> requestInfos = new List <EntityInfo>(); List <EntityInfo> requestEqupInfos = new List <EntityInfo>(); List <EntityInfo> dispatchInfos = new List <EntityInfo>(); List <EntityInfo> journalInfos = new List <EntityInfo>(); List <EntityInfo> reportInfos = new List <EntityInfo>(); foreach (EquipmentInfo info in toProcessEquips) { nextRequestId++; RequestInfo requestInfo = new RequestInfo(); requestInfo.ID = nextRequestId; requestInfo.RequestType.ID = RequestInfo.RequestTypes.OnSiteInspection; requestInfo.Source.ID = 3; requestInfo.FaultDesc = "检查设备"; requestInfo.Status.ID = 99; requestInfo.DealType.ID = 1; requestInfo.Priority.ID = 1; requestInfo.RequestDate = GetRandom(fromDate, fromDate, DateTime.MinValue, monthEnd); requestInfo.DistributeDate = requestInfo.RequestDate.AddHours(this.rd.Next(8, 12)).AddMinutes(this.rd.Next(0, 60)); requestInfo.ResponseDate = requestInfo.DistributeDate.AddMinutes(this.rd.Next(5, 30)); requestInfo.CloseDate = requestInfo.DistributeDate.AddHours(this.rd.Next(2, 6)).AddMinutes(this.rd.Next(0, 60)); requestInfos.Add(requestInfo); requestEqupInfos.Add(new RequestEqptInfo() { RequestID = requestInfo.ID, EquipmentID = info.ID }); nextDispatchId++; DispatchInfo dispatchInfo = new DispatchInfo(); dispatchInfo.ID = nextDispatchId; dispatchInfo.Request.ID = requestInfo.ID; dispatchInfo.RequestType.ID = requestInfo.RequestType.ID; dispatchInfo.Urgency.ID = 1; dispatchInfo.MachineStatus.ID = 1; dispatchInfo.Engineer.ID = 4; dispatchInfo.ScheduleDate = requestInfo.DistributeDate; dispatchInfo.Status.ID = 4; dispatchInfo.CreateDate = dispatchInfo.ScheduleDate; dispatchInfo.StartDate = requestInfo.ResponseDate; dispatchInfo.EndDate = requestInfo.CloseDate; dispatchInfos.Add(dispatchInfo); DispatchJournalInfo journalInfo = new DispatchJournalInfo(); journalInfo.DispatchID = dispatchInfo.ID; journalInfo.FaultCode = "检查设备"; journalInfo.JobContent = "检查设备"; journalInfo.ResultStatus.ID = 2; journalInfo.UserName = "******"; journalInfo.UserMobile = "18866988878"; journalInfo.Status.ID = 3; journalInfos.Add(journalInfo); DispatchReportInfo reportInfo = new DispatchReportInfo(); reportInfo.DispatchID = dispatchInfo.ID; reportInfo.Type.ID = 401; reportInfo.SolutionCauseAnalysis = "检查设备"; reportInfo.SolutionWay = "没问题"; reportInfo.ServiceProvider.ID = 1; reportInfo.SolutionResultStatus.ID = 4; reportInfo.Status.ID = 3; reportInfos.Add(reportInfo); } this.importDao.ImportRequest(requestInfos); this.importDao.ImportRequestEqpt(requestEqupInfos); this.importDao.ImportDispatch(dispatchInfos); this.importDao.ImportDispatchJournal(journalInfos); this.importDao.ImportDispatchReport(reportInfos); }
private void GenerateRequestRepair(List <EquipmentInfo> equipmentInfos, ref int nextRequestId, ref int nextDispatchId, DateTime fromDate) { DateTime monthEnd = fromDate.AddMonths(1).AddDays(-1); List <EquipmentInfo> toProcessEquips = (from EquipmentInfo temp in equipmentInfos where temp.InstalEndDate <= fromDate && (temp.ScrapDate == DateTime.MinValue || temp.ScrapDate >= monthEnd) select temp).ToList(); List <EntityInfo> requestInfos = new List <EntityInfo>(); List <EntityInfo> requestEqupInfos = new List <EntityInfo>(); List <EntityInfo> dispatchInfos = new List <EntityInfo>(); List <EntityInfo> journalInfos = new List <EntityInfo>(); List <EntityInfo> reportInfos = new List <EntityInfo>(); int totalEquips = this.rd.Next(70, 80 + 1); int quickResponseEquips = (int)Math.Ceiling(totalEquips * 0.9) + 1; List <int> equipIndexs = new List <int>(); int tryCount = 0; int rdMinutes = 0; while (tryCount < totalEquips * 2) { int rdIndex = this.rd.Next(0, toProcessEquips.Count); if (!equipIndexs.Contains(rdIndex)) { nextRequestId++; RequestInfo requestInfo = new RequestInfo(); requestInfo.ID = nextRequestId; requestInfo.RequestType.ID = RequestInfo.RequestTypes.Repair; requestInfo.Source.ID = 1; requestInfo.RequestUser.ID = 6; requestInfo.FaultDesc = "无法开机"; requestInfo.Status.ID = 99; requestInfo.DealType.ID = 1; requestInfo.Priority.ID = 1; requestInfo.MachineStatus.ID = 1; requestInfo.RequestDate = GetRandom(fromDate, toProcessEquips[rdIndex].InstalEndDate, toProcessEquips[rdIndex].ScrapDate, monthEnd); requestInfo.RequestDate = requestInfo.RequestDate.AddHours(this.rd.Next(8, 14)).AddMinutes(this.rd.Next(0, 60)); if (equipIndexs.Count <= quickResponseEquips) { rdMinutes = this.rd.Next(2, 5); requestInfo.DistributeDate = requestInfo.RequestDate.AddMinutes(rdMinutes); requestInfo.ResponseDate = requestInfo.DistributeDate.AddMinutes(this.rd.Next(5, 15 - rdMinutes)); } else { rdMinutes = this.rd.Next(5, 10); requestInfo.DistributeDate = requestInfo.RequestDate.AddMinutes(rdMinutes); requestInfo.ResponseDate = requestInfo.DistributeDate.AddMinutes(this.rd.Next(10, 30 - rdMinutes)); } requestInfo.CloseDate = requestInfo.ResponseDate.AddMinutes(this.rd.Next(30, 60)); requestInfos.Add(requestInfo); requestEqupInfos.Add(new RequestEqptInfo() { RequestID = requestInfo.ID, EquipmentID = toProcessEquips[rdIndex].ID }); nextDispatchId++; DispatchInfo dispatchInfo = new DispatchInfo(); dispatchInfo.ID = nextDispatchId; dispatchInfo.Request.ID = requestInfo.ID; dispatchInfo.RequestType.ID = requestInfo.RequestType.ID; dispatchInfo.Urgency.ID = 1; dispatchInfo.MachineStatus.ID = 1; dispatchInfo.Engineer.ID = 4; dispatchInfo.ScheduleDate = requestInfo.DistributeDate; dispatchInfo.Status.ID = 4; dispatchInfo.CreateDate = dispatchInfo.ScheduleDate; dispatchInfo.StartDate = requestInfo.ResponseDate; dispatchInfo.EndDate = requestInfo.CloseDate; dispatchInfos.Add(dispatchInfo); DispatchJournalInfo journalInfo = new DispatchJournalInfo(); journalInfo.DispatchID = dispatchInfo.ID; journalInfo.FaultCode = "错误代码112"; journalInfo.JobContent = "检查电源和操作系统"; journalInfo.ResultStatus.ID = 2; journalInfo.Advice = "恢复出厂设置"; journalInfo.UserName = "******"; journalInfo.UserMobile = "18866881888"; journalInfo.Status.ID = 3; journalInfos.Add(journalInfo); DispatchReportInfo reportInfo = new DispatchReportInfo(); reportInfo.DispatchID = dispatchInfo.ID; reportInfo.Type.ID = 1; reportInfo.FaultCode = "112"; reportInfo.FaultDesc = "无法开机"; reportInfo.SolutionCauseAnalysis = "系统设置错误"; reportInfo.SolutionWay = "恢复出厂设置"; reportInfo.SolutionResultStatus.ID = 4; reportInfo.Status.ID = 3; reportInfos.Add(reportInfo); equipIndexs.Add(rdIndex); if (equipIndexs.Count == totalEquips) { break; } } tryCount++; } this.importDao.ImportRequest(requestInfos); this.importDao.ImportRequestEqpt(requestEqupInfos); this.importDao.ImportDispatch(dispatchInfos); this.importDao.ImportDispatchJournal(journalInfos); this.importDao.ImportDispatchReport(reportInfos); }
private void GenerateRequestRepair4Expense(ref int nextRequestId, ref int nextDispatchId, ref int nextDispatchReportId, DateTime fromDate) { DateTime yearEnd = GetYearEndDate(fromDate); List <ServiceHisInfo> incomeInfos = this.queryDao.GetServiceHis(fromDate.Year); List <EntityInfo> requestInfos = new List <EntityInfo>(); List <EntityInfo> requestEqupInfos = new List <EntityInfo>(); List <EntityInfo> dispatchInfos = new List <EntityInfo>(); List <EntityInfo> journalInfos = new List <EntityInfo>(); List <EntityInfo> reportInfos = new List <EntityInfo>(); List <EntityInfo> reportAccessoryInfos = new List <EntityInfo>(); foreach (ServiceHisInfo info in incomeInfos) { nextRequestId++; RequestInfo requestInfo = new RequestInfo(); requestInfo.ID = nextRequestId; requestInfo.RequestType.ID = RequestInfo.RequestTypes.Repair; requestInfo.Source.ID = 1; requestInfo.RequestUser.ID = 6; requestInfo.FaultDesc = "无法开机"; requestInfo.Status.ID = 99; requestInfo.DealType.ID = 1; requestInfo.Priority.ID = 1; requestInfo.MachineStatus.ID = 1; requestInfo.RequestDate = GetRandom(fromDate, fromDate, yearEnd, yearEnd); requestInfo.RequestDate = requestInfo.RequestDate.AddHours(this.rd.Next(8, 14)).AddMinutes(this.rd.Next(0, 60)); requestInfo.DistributeDate = requestInfo.RequestDate.AddMinutes(this.rd.Next(2, 5)); requestInfo.ResponseDate = requestInfo.DistributeDate.AddMinutes(this.rd.Next(5, 10)); requestInfo.CloseDate = requestInfo.ResponseDate.AddMinutes(this.rd.Next(30, 60)); requestInfos.Add(requestInfo); requestEqupInfos.Add(new RequestEqptInfo() { RequestID = requestInfo.ID, EquipmentID = info.EquipmentID }); nextDispatchId++; DispatchInfo dispatchInfo = new DispatchInfo(); dispatchInfo.ID = nextDispatchId; dispatchInfo.Request.ID = requestInfo.ID; dispatchInfo.RequestType.ID = requestInfo.RequestType.ID; dispatchInfo.Urgency.ID = 1; dispatchInfo.MachineStatus.ID = 1; dispatchInfo.Engineer.ID = 4; dispatchInfo.ScheduleDate = requestInfo.DistributeDate; dispatchInfo.Status.ID = 4; dispatchInfo.CreateDate = dispatchInfo.ScheduleDate; dispatchInfo.StartDate = requestInfo.ResponseDate; dispatchInfo.EndDate = requestInfo.CloseDate; dispatchInfos.Add(dispatchInfo); DispatchJournalInfo journalInfo = new DispatchJournalInfo(); journalInfo.DispatchID = dispatchInfo.ID; journalInfo.FaultCode = "错误代码112"; journalInfo.JobContent = "检查电源和操作系统"; journalInfo.ResultStatus.ID = 2; journalInfo.Advice = "恢复出厂设置"; journalInfo.UserName = "******"; journalInfo.UserMobile = "18866881888"; journalInfo.Status.ID = 3; journalInfos.Add(journalInfo); nextDispatchReportId++; DispatchReportInfo reportInfo = new DispatchReportInfo(); reportInfo.ID = nextDispatchReportId; reportInfo.DispatchID = dispatchInfo.ID; reportInfo.Type.ID = 1; reportInfo.FaultCode = "112"; reportInfo.FaultDesc = "无法开机"; reportInfo.SolutionCauseAnalysis = "系统设置错误"; reportInfo.SolutionWay = "恢复出厂设置"; reportInfo.SolutionResultStatus.ID = 4; reportInfo.Status.ID = 3; reportInfos.Add(reportInfo); ReportAccessoryInfo accessoryInfo = new ReportAccessoryInfo(); accessoryInfo.DispatchReportID = reportInfo.ID; accessoryInfo.Name = "监控"; accessoryInfo.Source.ID = 1; accessoryInfo.SupplierID = 3; accessoryInfo.NewSerialCode = this.rd.Next(100000, 500000).ToString(); accessoryInfo.OldSerialCode = this.rd.Next(500000, 1000000).ToString(); accessoryInfo.Qty = 1; if (info.EquipmentID == 528) { accessoryInfo.Amount = this.rd.Next((int)(info.Income * 1.29), (int)(info.Income * 1.31)); } else { accessoryInfo.Amount = this.rd.Next((int)(info.Income * 0.29), (int)(info.Income * 0.31)); } reportAccessoryInfos.Add(accessoryInfo); } this.importDao.ImportRequest(requestInfos); this.importDao.ImportRequestEqpt(requestEqupInfos); this.importDao.ImportDispatch(dispatchInfos); this.importDao.ImportDispatchJournal(journalInfos); this.importDao.ImportDispatchReport(reportInfos); this.importDao.ImportReportAccessory(reportAccessoryInfos); }
public JsonResult SaveDispatchJournal(int userID, string sessionID, DispatchJournalInfo dispatchJournalInfo) { ServiceResultModel <int> response = new ServiceResultModel <int>(); try { if (!CheckSessionID(userID, sessionID, response)) { return(MyJson(response, JsonRequestBehavior.AllowGet)); } UserInfo user = null; if (CheckUser(userID, response, out user, UserRole.Admin) == false) { return(MyJson(response, JsonRequestBehavior.AllowGet)); } DispatchInfo dispatchInfo = this.dispatchManager.GetDispatchByID(dispatchJournalInfo.Dispatch.ID); if (dispatchInfo == null) { response.SetFailed(ResultCodes.ParameterError, "派工单信息不存在"); } else if (userID != dispatchInfo.Engineer.ID) { response.SetFailed(ResultCodes.ParameterError, "不可操作他人派工单"); } else if (dispatchInfo.Status.ID != BusinessObjects.Domain.DispatchInfo.Statuses.Responded && dispatchInfo.Status.ID != BusinessObjects.Domain.DispatchInfo.Statuses.Pending) { response.SetFailed(ResultCodes.ParameterError, "派工单当前状态不可进行该操作"); } else if (dispatchInfo.DispatchJournal.ID != dispatchJournalInfo.ID) { response.SetFailed(ResultCodes.ParameterError, "派工单已提交过服务凭证"); } else if (dispatchInfo.DispatchJournal.Status.ID != DispatchJournalInfo.DispatchJournalStatus.New && dispatchInfo.DispatchJournal.Status.ID != 0) { response.SetFailed(ResultCodes.ParameterError, "当前服务凭证状态非新建"); } else if (dispatchJournalInfo.ResultStatus.ID == 0 || dispatchJournalInfo.ResultStatus.ID > BusinessObjects.Manager.LookupManager.GetDispatchJournalResultStatus().Count) { response.SetFailed(ResultCodes.ParameterError, "请选择范围内的服务结果"); } else if (dispatchJournalInfo.FileContent == null) { response.SetFailed(ResultCodes.ParameterError, "签名文件不能为空"); } else { dispatchJournalInfo.Status.ID = BusinessObjects.Domain.DispatchInfo.DocStatus.Pending; dispatchJournalInfo.FileContent = ParseBase64String(dispatchJournalInfo.FileContent); dispatchJournalInfo = this.dispatchManager.SaveDispatchJournal(dispatchJournalInfo, user); response.Data = dispatchJournalInfo.ID; } } catch (Exception ex) { NLog.LogManager.GetCurrentClassLogger().Error(ex, ex.Message); response.SetFailed(ResultCodes.SystemError, ControlManager.GetSettingInfo().ErrorMessage); } return(MyJson(response, JsonRequestBehavior.AllowGet)); }