コード例 #1
0
        public DTOResponse InsertTaskStat(INF_JOBFEEDBACKEntity jobFeedBack)
        {
            DTOResponse dtoResponse = new DTOResponse();

            try
            {
                TaskStatEntity projTaskstatEntity = new TaskStatEntity();
                projTaskstatEntity.TASKNO        = jobFeedBack.JOBID;
                projTaskstatEntity.STATITEMNAME  = jobFeedBack.FEEDBACKSTATUS;
                projTaskstatEntity.STATITEMDESC  = jobFeedBack.FEEDBACKSTATUS;
                projTaskstatEntity.STATITEMVALUE = "0";
                projTaskstatEntity.CREATETIME    = Utils.GetDatetime();
                projTaskstatEntity.P01           = jobFeedBack.ENTERDATE;
                projTaskstatEntity.P02           = Utils.GetDatetime();
                using (IDbConnection dbConn = HelperConnection.GetConnectionFactory().OpenDbConnection())
                    dbConn.Save <TaskStatEntity>(projTaskstatEntity, false);
                dtoResponse.IsSuccess   = true;
                dtoResponse.MessageText = "保存 PROJ_TASKSTAT成功!";
                DCSInfService.logger.Info((object)dtoResponse);
                return(dtoResponse);
            }
            catch (Exception ex)
            {
                dtoResponse.IsSuccess   = false;
                dtoResponse.MessageText = ex.Message;
                DCSInfService.logger.Error((object)ex);
                return(dtoResponse);
            }
        }
コード例 #2
0
        public DTOResponse TaskHandle()
        {
            DTOResponse    dtoResponse = new DTOResponse();
            IDbConnection  dbCon       = (IDbConnection)null;
            IDbTransaction dbTrans     = (IDbTransaction)null;
            string         id          = (string)null;
            string         msg         = (string)null;

            try
            {
                HelperDbOperation.BeginTransaction(ref dbCon, ref dbTrans);
                INF_JOBFEEDBACKEntity jobFeedBack = dbCon.Select <INF_JOBFEEDBACKEntity>((Expression <Func <INF_JOBFEEDBACKEntity, bool> >)(x => x.STATUS == 0 && x.RESPONDCOUNT < 1)).OrderBy <INF_JOBFEEDBACKEntity, string>((Func <INF_JOBFEEDBACKEntity, string>)(x => x.ENTERDATE)).OrderBy <INF_JOBFEEDBACKEntity, string>((Func <INF_JOBFEEDBACKEntity, string>)(x => x.JOBID)).OrderBy <INF_JOBFEEDBACKEntity, string>((Func <INF_JOBFEEDBACKEntity, string>)(x => x.FEEDBACKSTATUS)).FirstNonDefault <INF_JOBFEEDBACKEntity>();
                if (jobFeedBack == null)
                {
                    dtoResponse.IsSuccess   = false;
                    dtoResponse.MessageText = "当前没有请求需要处理!";
                    return(dtoResponse);
                }
                id = jobFeedBack.ID;
                TaskEntity projTaskEntity = OrmLiteReadExpressionsApi.Single <TaskEntity>(dbCon, (Expression <Func <TaskEntity, bool> >)(x => x.TASKNO == jobFeedBack.JOBID));
                if (projTaskEntity == null)
                {
                    TaskStepEntity stepEntity = OrmLiteReadExpressionsApi.Single <TaskStepEntity>(dbCon, (Expression <Func <TaskStepEntity, bool> >)(x => x.ID == jobFeedBack.JOBID));
                    if (stepEntity != null)
                    {
                        stepEntity.STEPSTATE = "3";
                        dbCon.Update <TaskStepEntity>(stepEntity, (Expression <Func <TaskStepEntity, bool> >)(x => x.ID == stepEntity.ID), (Action <IDbCommand>)null);
                        TaskEntity taskEntity = OrmLiteReadExpressionsApi.Single <TaskEntity>(dbCon, (Expression <Func <TaskEntity, bool> >)(x => x.TASKNO == stepEntity.TASKNO));
                        //dtoResponse = BPCommon.NextTaskStep(dbCon, dbTrans, taskEntity);
                        if (!dtoResponse.IsSuccess)
                        {
                            return(dtoResponse);
                        }
                        jobFeedBack.STATUS = 1;
                        ++jobFeedBack.RESPONDCOUNT;
                        jobFeedBack.RESPONDDATE = Utils.GetTodayNow();
                        jobFeedBack.RESPONDMSG  = "反馈成功";
                        dbCon.Update <INF_JOBFEEDBACKEntity>(jobFeedBack, (Action <IDbCommand>)null);
                        dtoResponse.IsSuccess   = true;
                        dtoResponse.MessageText = "子任务" + jobFeedBack.JOBID + "处理成功!";
                        return(dtoResponse);
                    }
                    dtoResponse.IsSuccess   = false;
                    dtoResponse.MessageText = "查找任务" + jobFeedBack.JOBID + "失败!";
                    dtoResponse.MessageCode = "9999";
                    return(dtoResponse);
                }
                this.InsertTaskStat(jobFeedBack);
                if (projTaskEntity.TASKTCLASS == "3")
                {
                    if (jobFeedBack.FEEDBACKSTATUS == "1")
                    {
                        projTaskEntity.TASKSTATE   = jobFeedBack.FEEDBACKSTATUS;
                        projTaskEntity.STARTDATE   = Utils.GetTodayNow();
                        projTaskEntity.TASKMESSAGE = "任务开始";
                    }
                    if (jobFeedBack.FEEDBACKSTATUS == "99")
                    {
                        projTaskEntity.TASKSTATE   = jobFeedBack.FEEDBACKSTATUS;
                        projTaskEntity.ENDDATE     = Utils.GetTodayNow();
                        projTaskEntity.TASKMESSAGE = "任务结束";
                    }
                }
                else
                {
                    if (jobFeedBack.FEEDBACKSTATUS == "1")
                    {
                        projTaskEntity.TASKSTATE   = jobFeedBack.FEEDBACKSTATUS;
                        projTaskEntity.STARTDATE   = Utils.GetTodayNow();
                        projTaskEntity.TASKMESSAGE = "任务开始";
                    }
                    if (jobFeedBack.FEEDBACKSTATUS == "3")
                    {
                        projTaskEntity.TRUCKNO      = jobFeedBack.EXTATTR1;
                        projTaskEntity.TRUCKNO_PLAN = Utils.GetTodayNow();
                        projTaskEntity.TASKMESSAGE  = "设备开始执行";
                    }
                    if (jobFeedBack.FEEDBACKSTATUS == "99")
                    {
                        projTaskEntity.TASKSTATE   = jobFeedBack.FEEDBACKSTATUS;
                        projTaskEntity.ENDDATE     = Utils.GetTodayNow();
                        projTaskEntity.TASKMESSAGE = "任务结束";
                        string sql1 = string.Format("UPDATE PROJ_LOCATION_DETAIL SET STORESTATE='0' WHERE LOCATIONNO='{0}'", (object)projTaskEntity.SOURCE01);
                        dbCon.ExecuteSql(sql1);
                        string sql2 = string.Format("UPDATE PROJ_LOCATION_DETAIL SET STORESTATE='1' WHERE LOCATIONNO='{0}'", (object)projTaskEntity.DESTINATION01);
                        dbCon.ExecuteSql(sql2);
                        string sql3 = string.Format("UPDATE PROJ_ULDINFO SET CURRLOC='{2}',MODIFYBY='{3}',MODIFYDATE='{4}',CURRSTATE=CURRSTATE+1 WHERE ULDNO='{0}' AND P01='{1}'", (object)projTaskEntity.PALLETNO, (object)projTaskEntity.BILLID, (object)projTaskEntity.DESTINATION01, (object)projTaskEntity.TASKNO, (object)Utils.GetDatetime());
                        dbCon.ExecuteSql(sql3);
                        string sql4 = string.Format("UPDATE PROJ_ULDCARRYPLAN SET P10='{2}',MODIFYBY='{3}',MODIFYDATE='{4}' WHERE PLANNO='{0}' AND ULDNO='{1}'", (object)projTaskEntity.BILLID, (object)projTaskEntity.PALLETNO, (object)projTaskEntity.DESTINATION02, (object)projTaskEntity.TASKNO, (object)Utils.GetDatetime());
                        dbCon.ExecuteSql(sql4);
                        if (SysParamsService.CheckPrarams("SimulatorTaskOver").ToLower() == "true")
                        {
                            this.UpdateInfEquipmentStatus(dbCon, dbTrans, projTaskEntity);
                        }
                        //dtoResponse = BPCommon.NextTaskStep(dbCon, dbTrans, projTaskEntity);
                        if (!dtoResponse.IsSuccess)
                        {
                            return(dtoResponse);
                        }
                        this.GetDataFromDCS(new List <long>()
                        {
                            long.Parse(projTaskEntity.TASKNO)
                        });
                    }
                }
                jobFeedBack.STATUS = 1;
                ++jobFeedBack.RESPONDCOUNT;
                jobFeedBack.RESPONDDATE = Utils.GetTodayNow();
                jobFeedBack.RESPONDMSG  = "反馈成功";
                int num1 = dbCon.Update <INF_JOBFEEDBACKEntity>(jobFeedBack, (Action <IDbCommand>)null);
                int num2 = dbCon.Update <TaskEntity>(projTaskEntity, (Action <IDbCommand>)null);
                if (num1 == 1 && num2 == 1)
                {
                    dtoResponse.IsSuccess   = true;
                    dtoResponse.MessageText = "执行操作成功!";
                }
                return(dtoResponse);
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                dtoResponse.IsSuccess   = false;
                dtoResponse.MessageText = ex.Message;
                DCSInfService.logger.Error((object)ex);
                return(dtoResponse);
            }
            finally
            {
                HelperDbOperation.EndTransaction(dtoResponse.IsSuccess, ref dbCon, ref dbTrans);
                if (dtoResponse.MessageCode == "9999")
                {
                    this.UpdataJobFeedBack(id, msg);
                }
            }
        }
コード例 #3
0
ファイル: TaskService.cs プロジェクト: terrycpp/streamBox
        public DTOResponse TaskOprationByMen(TaskRequest request)
        {
            DTOResponse dtoResponse = new DTOResponse();

            try
            {
                if (request.TASKOPACTION == "Cancel")
                {
                    using (IDbConnection dbConnection = HelperConnection.GetConnectionFactory().OpenDbConnection())
                    {
                        using (IDbTransaction dbTrans = dbConnection.OpenTransaction())
                        {
                            TaskEntity taskEntity = OrmLiteReadExpressionsApi.Single <TaskEntity>(dbConnection, (Expression <Func <TaskEntity, bool> >)(x => x.TASKNO == request.TASKNO));
                            if (taskEntity == null)
                            {
                                throw new Exception("未查询到任务:" + request.TASKNO);
                            }
                            //dtoResponse = BPCommon.TaskCancel(dbConnection, dbTrans, taskEntity);
                            //if (!dtoResponse.IsSuccess)
                            //{
                            //    dtoResponse.MessageText = "取消任务操作1失败:" + dtoResponse.MessageText;
                            //    dbTrans.Rollback();
                            //    return dtoResponse;
                            //}
                            //int jobType = 2;
                            //dtoResponse = BPCommon.OrderTask(dbConnection, dbTrans, taskEntity, jobType);
                            //if (dtoResponse.IsSuccess)
                            //{
                            //    dtoResponse.MessageText = "取消任务操作2成功!" + dtoResponse.MessageText;
                            //    dbTrans.Commit();
                            //    return dtoResponse;
                            //}
                            dtoResponse.MessageText = "取消任务操作2失败:" + dtoResponse.MessageText;
                            dbTrans.Rollback();
                            return(dtoResponse);
                        }
                    }
                }

                if (request.TASKOPACTION == "OrderDCS")
                {
                    using (IDbConnection dbConnection = HelperConnection.GetConnectionFactory().OpenDbConnection())
                    {
                        using (IDbTransaction dbTrans = dbConnection.OpenTransaction())
                        {
                            TaskEntity taskEntity = OrmLiteReadExpressionsApi.Single <TaskEntity>(dbConnection, (Expression <Func <TaskEntity, bool> >)(x => x.TASKNO == request.TASKNO));
                            if (taskEntity == null)
                            {
                                throw new Exception("未查询到任务:" + request.TASKNO);
                            }

                            SysSequenceResult sequenceResult = SysSequenceInstance.Instance().GetSysSequence("TASKID");
                            taskEntity.TASKNO = int.Parse(sequenceResult.SEQVALUE).ToString();

                            SqlExpression <TaskEntity> sqlExpression = dbConnection.From <TaskEntity>();
                            sqlExpression.Where(x => x.ID == taskEntity.ID);
                            sqlExpression.UpdateFields.Add("TASKNO");
                            int count = dbConnection.UpdateOnly <TaskEntity>(taskEntity, sqlExpression);

                            int jobType = BPCommonBase.ConvertJobtype(taskEntity.TASKTCLASS);

                            dtoResponse = BPCommonBase.OrderTask(dbConnection, dbTrans, taskEntity, jobType);
                            if (dtoResponse.IsSuccess)
                            {
                                dtoResponse.MessageText = "重新下达任务操作成功!" + dtoResponse.MessageText;
                                dbTrans.Commit();
                                return(dtoResponse);
                            }
                            else
                            {
                                dtoResponse.MessageText = "重新下达任务操作失败:" + dtoResponse.MessageText;
                                dbTrans.Rollback();
                                return(dtoResponse);
                            }
                        }
                    }
                }

                if (request.TASKOPACTION == "Over")
                {
                    List <INF_JOBFEEDBACKEntity> jobfeedbackEntityList = new List <INF_JOBFEEDBACKEntity>();

                    INF_JOBFEEDBACKEntity jobfeedbackEntity1 = new INF_JOBFEEDBACKEntity();
                    jobfeedbackEntity1.ID             = Utils.GetDateTimeGuid();
                    jobfeedbackEntity1.JOBID          = request.TASKNO;
                    jobfeedbackEntity1.WAREHOUSEID    = "none";
                    jobfeedbackEntity1.FEEDBACKSTATUS = "1";
                    jobfeedbackEntity1.ERRORCODE      = "0";
                    jobfeedbackEntity1.ENTERDATE      = Utils.GetTodayNow();
                    jobfeedbackEntity1.CREATEDATE     = Utils.GetTodayNow();
                    jobfeedbackEntity1.RESPONDCOUNT   = 0;
                    jobfeedbackEntity1.STATUS         = 0;
                    jobfeedbackEntity1.FULLCOUNT      = 0;
                    jobfeedbackEntity1.ROWVERSION     = 0;
                    jobfeedbackEntityList.Add(jobfeedbackEntity1);

                    INF_JOBFEEDBACKEntity jobfeedbackEntity2 = new INF_JOBFEEDBACKEntity();
                    jobfeedbackEntity2.ID             = Utils.GetDateTimeGuid();
                    jobfeedbackEntity2.JOBID          = request.TASKNO;
                    jobfeedbackEntity2.WAREHOUSEID    = "none";
                    jobfeedbackEntity2.FEEDBACKSTATUS = "99";
                    jobfeedbackEntity2.ERRORCODE      = "0";
                    jobfeedbackEntity2.ENTERDATE      = Utils.GetTodayNow();
                    jobfeedbackEntity2.CREATEDATE     = Utils.GetTodayNow();
                    jobfeedbackEntity2.RESPONDCOUNT   = 0;
                    jobfeedbackEntity2.STATUS         = 0;
                    jobfeedbackEntity2.FULLCOUNT      = 0;
                    jobfeedbackEntity2.ROWVERSION     = 0;
                    jobfeedbackEntityList.Add(jobfeedbackEntity2);

                    long num1 = 0;
                    using (IDbConnection dbConn = HelperConnection.GetConnectionFactory().OpenDbConnection())
                    {
                        foreach (INF_JOBFEEDBACKEntity jobfeedbackEntity in jobfeedbackEntityList)
                        {
                            long num2 = dbConn.Insert <INF_JOBFEEDBACKEntity>(jobfeedbackEntity, false);
                            num1 += num2;
                        }
                    }
                    dtoResponse.IsSuccess   = num1 > 1L;
                    dtoResponse.MessageText = "任务操作成功";
                    return(dtoResponse);
                }
                else
                {
                    List <INF_JOBFEEDBACKEntity> jobfeedbackEntityList = new List <INF_JOBFEEDBACKEntity>();

                    jobfeedbackEntityList.Add(new INF_JOBFEEDBACKEntity()
                    {
                        ID             = Utils.GetDateTimeGuid(),
                        JOBID          = request.TASKNO,
                        WAREHOUSEID    = "none",
                        FEEDBACKSTATUS = request.TASKOPACTION,
                        ERRORCODE      = "0",
                        ENTERDATE      = Utils.GetTodayNow(),
                        CREATEDATE     = Utils.GetTodayNow(),
                        RESPONDCOUNT   = 0,
                        STATUS         = 0,
                        FULLCOUNT      = 0,
                        ROWVERSION     = 0
                    });

                    long num1 = 0;
                    using (IDbConnection dbConn = HelperConnection.GetConnectionFactory().OpenDbConnection())
                    {
                        foreach (INF_JOBFEEDBACKEntity jobfeedbackEntity in jobfeedbackEntityList)
                        {
                            long num2 = dbConn.Insert <INF_JOBFEEDBACKEntity>(jobfeedbackEntity, false);
                            num1 += num2;
                        }
                    }
                    dtoResponse.IsSuccess   = num1 > 1L;
                    dtoResponse.MessageText = "任务操作成功";
                    return(dtoResponse);
                }
            }
            catch (Exception ex)
            {
                dtoResponse.IsSuccess   = false;
                dtoResponse.MessageText = ex.Message;
                TaskService.logger.Error((object)ex);
            }
            return(dtoResponse);
        }