コード例 #1
0
ファイル: DispatchManager.cs プロジェクト: 10101818/mems_p2
        /// <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);
        }
コード例 #2
0
        /// <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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
ファイル: DispatchJournalDao.cs プロジェクト: 10101818/atoi2
        /// <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);
        }
コード例 #5
0
ファイル: DispatchJournalDao.cs プロジェクト: 10101818/atoi2
        /// <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();
            }
        }
コード例 #6
0
        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));
        }
コード例 #7
0
ファイル: DispatchManager.cs プロジェクト: 10101818/mems_p2
        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);
        }
コード例 #8
0
        /// <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));
        }
コード例 #9
0
        /// <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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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));
        }