Example #1
0
        /// <summary>
        /// 修改换标申请(换标申请后申请单一直可以进行修改,但是只能修改申请原因)
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public Message Edit(IoT_ChangeMeter info)
        {
            // 定义执行结果
            Message m;
            string  configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            //Linq to SQL 上下文对象
            DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                IoT_ChangeMeter dbinfo = dd.GetTable <IoT_ChangeMeter>().Where(p =>
                                                                               p.CompanyID == info.CompanyID && p.ID == info.ID).SingleOrDefault();
                dbinfo.Reason = info.Reason;
                // 更新操作
                dd.SubmitChanges();
                m = new Message()
                {
                    Result     = true,
                    TxtMessage = JSon.TToJson <IoT_ChangeMeter>(dbinfo)
                };
            }
            catch (Exception e)
            {
                m = new Message()
                {
                    Result     = false,
                    TxtMessage = "编辑换表申请失败!" + e.Message
                };
            }
            return(m);
        }
Example #2
0
        /// <summary>
        /// 添加申请
        /// </summary>
        /// <param name="info"></param>
        /// <param name="meterList"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public Message AddShenQing(IoT_ChangeMeter info)
        {
            Message     m;
            string      configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            DataContext dd         = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                Table <IoT_ChangeMeter> tbl = dd.GetTable <IoT_ChangeMeter>();
                //查询数据库中是否存在该用户的申请单(申请单状态为申请中或者是在审核流程中)
                int count = (from n in tbl
                             where n.UserID == info.UserID && n.OldMeterNo == info.OldMeterNo && (n.State == '1' || n.State == '2')
                             select n).Count();
                if (count > 0)
                {
                    return(new Message()
                    {
                        Result = false,
                        TxtMessage = "新增换表申请失败,该用户已提交申请!"
                    });
                }
                // 调用新增方法
                tbl.InsertOnSubmit(info);
                // 更新操作
                dd.SubmitChanges();
                m = new Message()
                {
                    Result     = true,
                    TxtMessage = JSon.TToJson <IoT_ChangeMeter>(info)
                };
            }
            catch (Exception e)
            {
                m = new Message()
                {
                    Result     = false,
                    TxtMessage = "新增换表申请失败!" + e.Message
                };
            }
            return(m);
        }
Example #3
0
        public string ChangeMeterFinished(string taskID, TaskState state)
        {
            string result     = "";
            string configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            //Linq to SQL 上下文对象
            DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                IoT_ChangeMeter dbinfo = dd.GetTable <IoT_ChangeMeter>().Where(p =>
                                                                               p.TaskID == taskID).SingleOrDefault();
                if (state == TaskState.Finished)
                {
                    dbinfo.FinishedDate = DateTime.Now;
                    dbinfo.State        = '3';
                }
                else if (state == TaskState.Undo)
                {
                    dbinfo.State        = '4';//撤销
                    dbinfo.FinishedDate = DateTime.Now;
                    new M_SetParameterService().UnSetParameter(taskID);
                }
                else
                {
                    return("未知状态");
                }
                // 更新操作
                dd.SubmitChanges();
            }
            catch (Exception e)
            {
                result = e.Message;
            }

            return("");
        }
Example #4
0
        /// <summary>
        /// 换标登记动作
        /// </summary>
        /// <param name="taskID"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        public Message Dengji(IoT_ChangeMeter info)
        {
            Message     m;
            string      configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            DataContext dd         = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                //查看该申请单的状态是否是"换表登记"或者"换表完成"状态,如果是该状态则填写换表登记失败
                IoT_ChangeMeter dbinfo = dd.GetTable <IoT_ChangeMeter>().Where(p =>
                                                                               p.CompanyID == info.CompanyID && p.ID == info.ID).SingleOrDefault();
                //判断当前的申请单的状态
                if (dbinfo.State == '2')//换表登记状态下提示
                {
                    return(new Message()
                    {
                        Result = false,
                        TxtMessage = "不能重复提交换表登记!"
                    });
                }
                else if (dbinfo.State == '3')//换表完成状态下提示
                {
                    return(new Message()
                    {
                        Result = false,
                        TxtMessage = "该用户已换表成功,若需要换表请重新填写申请单!"
                    });
                }
                Table <IoT_MeterHistory> tbHistory   = dd.GetTable <IoT_MeterHistory>();
                Table <IoT_Meter>        tbMeter     = dd.GetTable <IoT_Meter>();
                IoT_Meter        Meter_Model         = tbMeter.Where(u => u.MeterNo == info.OldMeterNo && u.UserID == info.UserID).FirstOrDefault();
                List <IoT_Meter> lstMeter_ModelExect = tbMeter.Where(u => u.MeterNo == info.NewMeterNo).ToList();
                //判断是否存在表具讯息
                if (Meter_Model == null)
                {
                    return(new Message()
                    {
                        Result = false,
                        TxtMessage = "换表登记失败,该用户暂无表具信息!"
                    });
                }
                //判断新表号是否已经存在
                if (lstMeter_ModelExect.Count > 0)
                {
                    return(new Message()
                    {
                        Result = false,
                        TxtMessage = "表号:" + info.NewMeterNo + "已存在,请更换表号"
                    });
                }
                IoT_MeterHistory History_Model = new IoT_MeterHistory()
                {//历史数据实体对象
                    ID              = Meter_Model.ID,
                    MeterNo         = Meter_Model.MeterNo,
                    MeterType       = Meter_Model.MeterType,
                    CompanyID       = Meter_Model.CompanyID,
                    UserID          = Meter_Model.UserID,
                    TotalAmount     = Meter_Model.TotalAmount,
                    TotalTopUp      = Meter_Model.TotalTopUp,
                    Direction       = Meter_Model.Direction,
                    InstallDate     = Meter_Model.InstallDate,
                    Price1          = Meter_Model.Price1,
                    Gas1            = Meter_Model.Gas1,
                    Price2          = Meter_Model.Price2,
                    Gas2            = Meter_Model.Gas2,
                    Price3          = Meter_Model.Price3,
                    Gas3            = Meter_Model.Gas3,
                    Price4          = Meter_Model.Price4,
                    Gas4            = Meter_Model.Gas4,
                    Price5          = Meter_Model.Price5,
                    IsUsed          = Meter_Model.IsUsed,
                    Ladder          = Meter_Model.Ladder,
                    SettlementType  = Meter_Model.SettlementType,
                    SettlementDay   = Meter_Model.SettlementDay,
                    ValveState      = Meter_Model.ValveState,
                    MeterState      = Meter_Model.MeterState,
                    ReadDate        = Meter_Model.ReadDate,
                    RemainingAmount = Meter_Model.RemainingAmount,
                    LastTotal       = Meter_Model.LastTotal,
                    PriceCheck      = Meter_Model.PriceCheck,
                    MKeyVer         = Meter_Model.MKeyVer,
                    MKey            = Meter_Model.MKey,
                    EnableMeterDate = Meter_Model.EnableMeterDate,
                    EnableMeterOper = Meter_Model.EnableMeterOper,
                    UploadCycle     = Meter_Model.UploadCycle,
                    SettlementMonth = Meter_Model.SettlementMonth
                };
                IoT_Meter Meter_Add = new IoT_Meter()
                {//表实体对象
                    MeterNo         = info.NewMeterNo,
                    MeterType       = Meter_Model.MeterType,
                    CompanyID       = info.CompanyID,
                    UserID          = info.UserID,
                    TotalAmount     = info.ChangeUseSum,       //新表表底
                    TotalTopUp      = Meter_Model.TotalTopUp,  //需要更新
                    Direction       = Meter_Model.Direction,
                    InstallDate     = Meter_Model.InstallDate, //需要更新
                    Price1          = Meter_Model.Price1,
                    Gas1            = Meter_Model.Gas1,
                    Price2          = Meter_Model.Price2,
                    Gas2            = Meter_Model.Gas2,
                    Price3          = Meter_Model.Price3,
                    Gas3            = Meter_Model.Gas3,
                    Price4          = Meter_Model.Price4,
                    Gas4            = Meter_Model.Gas4,
                    Price5          = Meter_Model.Price5,
                    IsUsed          = Meter_Model.IsUsed,
                    Ladder          = Meter_Model.Ladder,
                    SettlementType  = Meter_Model.SettlementType,
                    SettlementDay   = Meter_Model.SettlementDay,
                    ValveState      = Meter_Model.ValveState,
                    MeterState      = Meter_Model.MeterState,
                    ReadDate        = Meter_Model.ReadDate,
                    RemainingAmount = Meter_Model.RemainingAmount, //需要更新
                    LastTotal       = Meter_Model.LastTotal,       //需要更新
                    PriceCheck      = Meter_Model.PriceCheck,      //需要更新
                    MKeyVer         = Meter_Model.MKeyVer,
                    MKey            = Meter_Model.MKey,
                    EnableMeterDate = Meter_Model.EnableMeterDate, //需要更新
                    EnableMeterOper = Meter_Model.EnableMeterOper, //需要更新
                    UploadCycle     = Meter_Model.UploadCycle,
                    SettlementMonth = Meter_Model.SettlementMonth
                };
                //实现数据操作
                dbinfo.State           = info.State;
                dbinfo.ChangeUseSum    = info.ChangeUseSum;
                dbinfo.OldGasSum       = info.OldGasSum;
                dbinfo.ChangeGasSum    = info.ChangeGasSum;
                dbinfo.RemainingAmount = info.RemainingAmount;
                dbinfo.NewMeterNo      = info.NewMeterNo;
                dbinfo.TaskID          = Guid.NewGuid().ToString();
                tbMeter.DeleteOnSubmit(Meter_Model);     //删除表
                tbMeter.InsertOnSubmit(Meter_Add);       //新增表
                tbHistory.InsertOnSubmit(History_Model); //新增历史表

                dd.SubmitChanges();

                //获取meterId
                Meter_Add = tbMeter.Where(u => u.MeterNo == info.NewMeterNo && u.UserID == info.UserID).FirstOrDefault();
                //此处调用接口
                if (Meter_Add.MeterType == "01")
                {
                    TaskManageService tms = new TaskManageService();
                    //查原表数据
                    Meter _m = tms.GetMeter(info.OldMeterNo.Trim());
                    //_m.TotalAmount = (decimal)info.OldGasSum;
                    //金额表
                    //1、换表结算
                    decimal LastSettlementGas = _m.LastTotal;//原表上次结算时的表底数
                    //换表用气量 = 换表时表底 - 上次结算表底
                    dbinfo.ChangeUseSum = info.ChangeGasSum - LastSettlementGas;

                    _m = new Settlement().CalculateGasFee(_m, (decimal)info.ChangeGasSum, "", true);

                    Meter_Add.TotalTopUp      = _m.CurrentBalance; //新表上总金额(就是换表的余额)
                    Meter_Add.RemainingAmount = _m.CurrentBalance; //新表上剩余金额(就是换表的余额)
                    Meter_Add.LastTotal       = Meter_Add.TotalAmount;

                    //添加mongo队列表对象
                    string str = new TaskManageDA().ChangeMeterInsert(Meter_Add, _m.CurrentLadder, _m.CurrentPrice, (decimal)dbinfo.ChangeUseSum);
                    if (str != "")
                    {
                        throw new Exception(str);
                    }
                    //2、登记换表操作任务(登记操作指令)
                    str = new M_HuanBiaoService().SubmitASK(dbinfo.TaskID, Meter_Add, (decimal)dbinfo.ChangeUseSum);
                    if (str != "")
                    {
                        throw new Exception(str);
                    }
                }
                else
                {
                    //气量表
                }
                // 更新操作
                dd.SubmitChanges();

                m = new Message()
                {
                    Result     = true,
                    TxtMessage = JSon.TToJson <IoT_ChangeMeter>(info)
                };
            }
            catch (Exception e)
            {
                m = new Message()
                {
                    Result     = false,
                    TxtMessage = "换表登记失败!" + e.Message
                };
            }
            return(m);
        }
Example #5
0
        /// <summary>
        /// 撤销申请(分两种状态,1.在申请单状态为申请状态时撤销,此时删除申请单即可2.在换标登记状态下,需要和表进行通讯)
        /// </summary>
        /// <param name="ID"></param>
        /// <param name="CompanyID"></param>
        /// <returns></returns>
        public Message revoke(string ID, string CompanyID)
        {
            // 定义执行结果
            Message m;
            string  configName = System.Configuration.ConfigurationManager.AppSettings["defaultDatabase"];
            //Linq to SQL 上下文对象
            DataContext dd = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString);

            try
            {
                //更新主表
                IoT_ChangeMeter dbinfo = dd.GetTable <IoT_ChangeMeter>().Where(p =>
                                                                               p.CompanyID == CompanyID && p.ID == int.Parse(ID.Trim())).SingleOrDefault();

                IoT_MeterHistory dbMeterHistory = dd.GetTable <IoT_MeterHistory>().Where(p =>
                                                                                         p.CompanyID == CompanyID && p.UserID == dbinfo.UserID && p.MeterNo == dbinfo.OldMeterNo).SingleOrDefault();

                IoT_Meter dbMeter = dd.GetTable <IoT_Meter>().Where(p =>
                                                                    p.CompanyID == CompanyID && p.UserID == dbinfo.UserID && p.MeterNo == dbinfo.NewMeterNo).SingleOrDefault();

                //dbinfo.Total = dbinfo.Total - 1;
                if (dbinfo.State == '1')//申请状态
                {
                    //直接删除表中的讯息
                    Table <IoT_ChangeMeter> tbl = dd.GetTable <IoT_ChangeMeter>();
                    tbl.DeleteOnSubmit(dbinfo as IoT_ChangeMeter);
                    dd.SubmitChanges();
                }
                else if (dbinfo.State == '2')//换标登记状态
                {
                    Table <IoT_Meter>        tbl = dd.GetTable <IoT_Meter>();
                    Table <IoT_MeterHistory> tb2 = dd.GetTable <IoT_MeterHistory>();
                    if (dbMeter != null)
                    {
                        //删除新表
                        tbl.DeleteOnSubmit(dbMeter as IoT_Meter);
                    }
                    if (dbMeterHistory != null)
                    {
                        IoT_Meter History_Model = new IoT_Meter()
                        {//实体对象
                            ID              = dbMeterHistory.ID,
                            MeterNo         = dbMeterHistory.MeterNo,
                            MeterType       = dbMeterHistory.MeterType,
                            CompanyID       = dbMeterHistory.CompanyID,
                            UserID          = dbMeterHistory.UserID,
                            TotalAmount     = dbMeterHistory.TotalAmount,
                            TotalTopUp      = dbMeterHistory.TotalTopUp,
                            Direction       = dbMeterHistory.Direction,
                            InstallDate     = dbMeterHistory.InstallDate,
                            Price1          = dbMeterHistory.Price1,
                            Gas1            = dbMeterHistory.Gas1,
                            Price2          = dbMeterHistory.Price2,
                            Gas2            = dbMeterHistory.Gas2,
                            Price3          = dbMeterHistory.Price3,
                            Gas3            = dbMeterHistory.Gas3,
                            Price4          = dbMeterHistory.Price4,
                            Gas4            = dbMeterHistory.Gas4,
                            Price5          = dbMeterHistory.Price5,
                            IsUsed          = dbMeterHistory.IsUsed,
                            Ladder          = dbMeterHistory.Ladder,
                            SettlementType  = dbMeterHistory.SettlementType,
                            SettlementDay   = dbMeterHistory.SettlementDay,
                            ValveState      = dbMeterHistory.ValveState,
                            MeterState      = dbMeterHistory.MeterState,
                            ReadDate        = dbMeterHistory.ReadDate,
                            RemainingAmount = dbMeterHistory.RemainingAmount,
                            LastTotal       = dbMeterHistory.LastTotal,
                            PriceCheck      = dbMeterHistory.PriceCheck,
                            MKeyVer         = dbMeterHistory.MKeyVer,
                            MKey            = dbMeterHistory.MKey,
                            EnableMeterDate = dbMeterHistory.EnableMeterDate,
                            EnableMeterOper = dbMeterHistory.EnableMeterOper,
                            UploadCycle     = dbMeterHistory.UploadCycle,
                            SettlementMonth = dbMeterHistory.SettlementMonth
                        };
                        //将旧表资料重新插入
                        tbl.InsertOnSubmit(History_Model);
                        //将历史表中历史讯息删除
                        tb2.DeleteOnSubmit(dbMeterHistory as IoT_MeterHistory);
                    }
                    dd.SubmitChanges();
                    //调用换标接口
                    ChangeMeterFinished(dbinfo.TaskID, TaskState.Undo);
                }
                else if (dbinfo.State == '3')
                {
                    return(new Message()
                    {
                        Result = false,
                        TxtMessage = "换表已成功,无法撤消!"
                    });
                }
                // 更新操作
                m = new Message()
                {
                    Result     = true,
                    TxtMessage = JSon.TToJson <IoT_ChangeMeter>(dbinfo)
                };
            }
            catch (Exception e)
            {
                m = new Message()
                {
                    Result     = false,
                    TxtMessage = "撤消换表失败!" + e.Message
                };
            }
            return(m);
        }