예제 #1
0
        public string PricingPlanFinished(PricingPlan plan)
        {
            string result = "";

            try
            {
                MongoDBHelper <PricingPlan> mongo_plan = new MongoDBHelper <PricingPlan>();
                QueryDocument query = new QueryDocument();
                query.Add("MeterNo", plan.MeterNo);
                MongoCursor <PricingPlan> mongoCursor = mongo_plan.Query(CollectionNameDefine.MeterPricingPlan, query);
                var dataList = mongoCursor.ToList();
                if (dataList != null && dataList.Count >= 1)
                {
                    //删除老计划
                    List <string> list = new List <string>();
                    foreach (PricingPlan p in dataList)
                    {
                        list.Add(p._id.ToString());
                    }

                    var iDelete = new QueryDocument();
                    iDelete.Add("MeterNo", plan.MeterNo);

                    mongo_plan.Delete(CollectionNameDefine.MeterPricingPlan, iDelete);
                }
            }
            catch (Exception e)
            {
                result = e.Message;
            }

            return(result);
        }
예제 #2
0
        public string NewPricingPlan(PricingPlan plan)
        {
            string result = "";

            try
            {
                MongoDBHelper <PricingPlan> mongo_plan = new MongoDBHelper <PricingPlan>();
                QueryDocument query = new QueryDocument();
                query.Add("MeterNo", plan.MeterNo);
                MongoCursor <PricingPlan> mongoCursor = mongo_plan.Query(CollectionNameDefine.MeterPricingPlan, query);
                var dataList = mongoCursor.ToList();
                if (dataList != null && dataList.Count >= 1)
                {
                    var iDelete = new QueryDocument();
                    iDelete.Add("MeterNo", plan.MeterNo);

                    //删除老计划
                    mongo_plan.Delete(CollectionNameDefine.MeterPricingPlan, iDelete);
                }

                mongo_plan.Insert(CollectionNameDefine.MeterPricingPlan, plan);
            }
            catch (Exception e) {
                result = e.Message;
            }
            return(result);
        }
예제 #3
0
        public List <Task> GetTaskList(string mac)
        {
            List <Task> list = new List <Task> ();

            try
            {
                MongoDBHelper <Task> mongo = new MongoDBHelper <Task>();
                QueryDocument        query = new QueryDocument();
                query.Add("MeterMac", mac);
                query.Add("TaskState", 0);
                MongoCursor <Task> mongoCursor = mongo.Query(CollectionNameDefine.TaskCollectionName, query);
                var dataList = mongoCursor.ToList();
                foreach (Task task in dataList)
                {
                    if (task.TaskType != TaskType.TaskType_校准)
                    {
                        task.CommandList.AddRange(CommandDA.QueryCommandList(task.TaskID));
                        list.Add(task);
                    }
                }
            }
            catch (Exception e)
            {
                //记录日志
                Console.WriteLine(e.Message);
            }
            return(list);
        }
예제 #4
0
        public static string Undo(string taskID)
        {
            //先读任务
            try
            {
                MongoDBHelper <Task> mongo = new MongoDBHelper <Task>();
                QueryDocument        query = new QueryDocument();
                query.Add("TaskID", taskID);
                MongoCursor <Task> mongoCursor = mongo.Query(CollectionNameDefine.TaskCollectionName, query);
                var dataList = mongoCursor.ToList();
                if (dataList == null || dataList.Count == 0)
                {
                    return("没有找到TaskID:【" + taskID + "】的任务。");
                }

                Task task = dataList[0];
                if (task.TaskState != TaskState.Waitting)
                {
                    return(string.Format("任务TaskID:{0}状态为:{1},不能撤销.", taskID, task.TaskState));
                }
                task.TaskState = TaskState.Undo;
                List <Command> list = CommandDA.QueryCommandList(task.TaskID);
                if (list != null && list.Count == 0)
                {
                    return(string.Format("任务TaskID:{0}的指令已执行,不能撤销.", taskID));
                }
                foreach (Command cmd in list)
                {
                    cmd.CommandState = CommandState.Undo;
                    cmd.AnswerDate   = QuShi.getDate();
                    CommandDA.Update(cmd);
                }
                new TaskManageDA().TaskCompile(task);
                return("");
            }
            catch (Exception e)
            {
                //记录日志
                Console.WriteLine(e.Message);
                return(e.Message);
            }
        }
예제 #5
0
        public string TopUpFinished(string taskID, decimal money)
        {
            try
            {
                MongoDBHelper <Task> mongo = new MongoDBHelper <Task>();
                QueryDocument        query = new QueryDocument();
                query.Add("TaskID", taskID);
                MongoCursor <Task> mongoCursor = mongo.Query(CollectionNameDefine.TaskCollectionName, query);
                var dataList = mongoCursor.ToList();
                if (dataList == null || dataList.Count == 0)
                {
                    return("没有找到TaskID:【" + taskID + "】的任务。");
                }
                string    result = "";
                TaskState state  = TaskState.Finished;

                Task task = dataList[0];
                task.Finished  = QuShi.getDate();
                task.TaskState = state;

                TaskManageDA tm = new TaskManageDA();
                result = tm.TaskCompile(task);
                if (result != "")
                {
                    return(result);
                }
                if (state == TaskState.Finished)
                {
                    Meter _meter = tm.QueryMeter(task.MeterMac);
                    _meter.TotalTopUp           += money;
                    _meter.LastSettlementAmount += money;
                    _meter.CurrentBalance       += money;
                    result = tm.UpdateMeter(_meter);
                }
                return(result);
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
예제 #6
0
        public PricingPlan QueryPricingPlan(string meterNo)
        {
            MongoDBHelper <PricingPlan> mongo_plan = new MongoDBHelper <PricingPlan>();
            QueryDocument query = new QueryDocument();

            query.Add("MeterNo", meterNo);
            MongoCursor <PricingPlan> mongoCursor = mongo_plan.Query(CollectionNameDefine.MeterPricingPlan, query);

            if (mongoCursor == null)
            {
                return(null);
            }
            var dataList = mongoCursor.ToList();//.OrderBy(c => c.UseDate).ToList ();

            if (dataList != null && dataList.Count >= 1)
            {
                return(dataList[0]);
            }
            else
            {
                return(null);
            }
        }
예제 #7
0
        public Task QueryTask(string taskID)
        {
            try
            {
                MongoDBHelper <Task> mongo = new MongoDBHelper <Task>();
                QueryDocument        query = new QueryDocument();
                query.Add("TaskID", taskID);
                MongoCursor <Task> mongoCursor = mongo.Query(CollectionNameDefine.TaskCollectionName, query);
                var dataList = mongoCursor.ToList();


                if (dataList != null)
                {
                    return(dataList[0]);
                }
            }
            catch (Exception e)
            {
                //记录日志
                Console.WriteLine(e.Message);
            }
            return(null);
        }
예제 #8
0
        //删除未执行的修正任务
        public void DeleteUnRunTask(string mac)
        {
            MongoDBHelper <Task> mongo = new MongoDBHelper <Task>();
            QueryDocument        query = new QueryDocument();

            query.Add("MeterMac", mac);
            query.Add("TaskState", 0);
            query.Add("TaskType", "XZ");

            MongoCursor <Task> mongoCursor = mongo.Query(CollectionNameDefine.TaskCollectionName, query);
            var dataList = mongoCursor.ToList();

            if (dataList != null && dataList.Count > 0)
            {
                foreach (Task task in dataList)
                {
                    var iDelete = new QueryDocument();
                    iDelete.Add("TaskID", task.TaskID);
                    mongo.Delete(CollectionNameDefine.CommandCollectionName, iDelete);
                }
                mongo.Delete(CollectionNameDefine.TaskCollectionName, query);
            }
        }
예제 #9
0
 public static string ValveControlFinished(string taskID, TaskState state)
 {
     try
     {
         MongoDBHelper <Task> mongo = new MongoDBHelper <Task>();
         QueryDocument        query = new QueryDocument();
         query.Add("TaskID", taskID);
         MongoCursor <Task> mongoCursor = mongo.Query(CollectionNameDefine.TaskCollectionName, query);
         var dataList = mongoCursor.ToList();
         if (dataList == null || dataList.Count == 0)
         {
             return("没有找到TaskID:【" + taskID + "】的任务。");
         }
         string result = "";
         Task   task   = dataList[0];
         task.Finished  = QuShi.getDate();
         task.TaskState = state;
         TaskManageDA tm = new TaskManageDA();
         result = tm.TaskCompile(task);
         if (result != "")
         {
             return(result);
         }
         Meter _meter = tm.QueryMeter(task.MeterMac);
         if (state == TaskState.Finished)
         {
             _meter.ValveState = task.TaskType == TaskType.TaskType_开阀 ? "0" : "1";
             result            = tm.UpdateMeter(_meter);
         }
         return(result);
     }
     catch (Exception e)
     {
         return(e.Message);
     }
 }
예제 #10
0
        public static List <Command> QueryCommandList(string taskID)
        {
            MongoDBHelper <Command> mongo = new MongoDBHelper <Command>();

            try
            {
                QueryDocument query = new QueryDocument();
                query.Add("TaskID", taskID);
                query.Add("CommandState", 0);
                MongoCursor <Command> mongoCursor = mongo.Query(CollectionNameDefine.CommandCollectionName, query);
                var dataList = mongoCursor.ToList();
                if (dataList != null && dataList.Count >= 1)
                {
                    var qu = from p in dataList orderby p.Order ascending select p;
                    return(qu.ToList());
                }
            }
            catch (Exception e)
            {
                //记录日志
                Console.WriteLine(e.Message);
            }
            return(new List <Command>());
        }
예제 #11
0
        public static Meter QueryMeter(string mac)
        {
            Meter _m = null;

            try
            {
                MongoDBHelper <Meter> mongo = new MongoDBHelper <Meter>();
                QueryDocument         query = new QueryDocument();
                query.Add("Mac", mac);
                MongoCursor <Meter> mongoCursor = mongo.Query(CollectionNameDefine.MeterCollectionName, query);
                var dataList = mongoCursor.ToList();
                if (dataList != null && dataList.Count >= 1)
                {
                    _m             = dataList[0];
                    _m.PricingPlan = new PricingPlanDA().QueryPricingPlan(mac);
                }
            }
            catch (Exception e)
            {
                //记录日志
                Console.WriteLine(e.Message);
            }
            return(_m);
        }