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)); }
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)); } } }