コード例 #1
0
        public MessageEntity AssignTask(string taskName, string proraterDeptName, int proraterDeptId, string proraterName, int proraterId, DateTime starTime, DateTime endTime, string descript, int planId, string planName)
        {
            if (starTime == endTime)
            {
                return(MessageEntityTool.GetMessage(ErrorType.FieldError));
            }

            L_Task task = new L_Task()
            {
                TaskName         = taskName,
                ProraterDeptName = proraterDeptName,
                ProraterDeptId   = proraterDeptId,
                ProraterName     = proraterName,
                ProraterId       = proraterId,
                VisitStarTime    = starTime,
                VisitOverTime    = endTime,
                Descript         = descript,
                Operator         = UserInfoCache.Authorize.UserName,
                OperateDate      = DateTime.Now,
                PlanId           = planId,
                PlanName         = planName
            };

            return(_planManageDAL.AssignTask(task));
        }
コード例 #2
0
        public MessageEntity AssignTask(L_Task task)
        {
            using (var conn = ConnectionFactory.GetDBConn(ConnectionFactory.DBConnNames.PipeInspectionBase_Gis_OutSide))
            {
                try
                {
                    string  strSqlSelect = string.Format(@" select count(0) [count] from  L_Task lt where lt.PlanId = {0} and lt.TaskState = 1 and ((lt.VisitStarTime >= '{2}' and lt.VisitStarTime <='{3}') or (lt.VisitStarTime <='{2}' and lt.VisitOverTime >='{3}')or (lt.VisitStarTime >='{2}' and lt.VisitOverTime <='{3}') or (lt.VisitOverTime >= '{2}' and lt.VisitOverTime <='{3}')) ", task.PlanId, task.ProraterId, task.VisitStarTime, task.VisitOverTime);
                    dynamic dtSelect     = conn.Query <dynamic>(strSqlSelect).FirstOrDefault();
                    //当该计划已经对某人进行时间段内分派后直接返回
                    if (dtSelect.count > 0)
                    {
                        return(MessageEntityTool.GetMessage(ErrorType.OprationError, null, $"该计划已被分派,不能多次分派", "提示"));
                    }
                    string         sqlSelectCycle = string.Format(@" select lpc.PlanCycleTime,lpc.PlanCycleUnit,lpc.PlanCycleHz,lp.StartStopInfo,lp.BoolNormalPlan from L_PLAN lp 
                                                         left join   L_PLANCYCLE lpc on lpc.PlanCycleId = lp.PlanCycleId where 1=1 and lpc.PlanDeleteState=1 and lp.PlanId = '{0}' ", task.PlanId);
                    List <dynamic> dtCycleList    = conn.Query <dynamic>(sqlSelectCycle).ToList();
                    if (!(dtCycleList.Count > 0))
                    {
                        return(MessageEntityTool.GetMessage(ErrorType.OprationError, null, "获取任务计划周期失败,请重试!", "提示"));
                    }
                    var dtCycle = dtCycleList.First();

                    var isNormalPlan = dtCycle.BoolNormalPlan == 1 ? "CGRW" : "LSRW";

                    List <Dictionary <string, string> > taskCycleList = new CalculateCycle().CalculateMainMethod(task.VisitStarTime, task.VisitOverTime, int.Parse(dtCycle.PlanCycleTime), dtCycle.PlanCycleHz, dtCycle.PlanCycleUnit, dtCycle.StartStopInfo);
                    string sqlInsert = string.Empty;
                    foreach (Dictionary <string, string> lis in taskCycleList)
                    {
                        var startTime = string.Empty;
                        var endTime   = string.Empty;
                        lis.TryGetValue("StartDay", out startTime);
                        lis.TryGetValue("EndDay", out endTime);
                        sqlInsert += string.Format(@"insert into L_Task (TaskName,ProraterDeptName,ProraterDeptId,ProraterName,ProraterId,VisitStarTime,VisitOverTime,Frequency,Descript,Operator,OperateDate,TaskState,PlanId,PlanName,TaskCode) 
                                                      values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}',(select '{14}'+convert(varchar(50),(" + System.DateTime.Now.ToString("yy") + "*10000000+isnull(MAX(TaskId),0)+1)) from L_Task)) ;", task.TaskName, task.ProraterDeptName, task.ProraterDeptId, task.ProraterName, task.ProraterId, startTime, endTime, task.Frequency, task.Descript, task.Operator, System.DateTime.Now, 1, task.PlanId, task.PlanName, isNormalPlan);
                        //第三步:进行添加巡检计划
                    }
                    var rows = conn.Execute(sqlInsert);
                    return(MessageEntityTool.GetMessage(rows));
                }
                catch (Exception e)
                {
                    return(MessageEntityTool.GetMessage(ErrorType.SqlError, e.Message));
                }
            }
        }