public int ManageDelete(Guid id)
        {
            using (System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope())
            {
                try
                {
                    BuildingsBLL                buildingsBLL                = new BuildingsBLL();
                    BuildingsDataBLL            buildingsDataBLL            = new BuildingsDataBLL();
                    BuildingMonthModifyCountBLL buildingMonthModifyCountBLL = new BuildingMonthModifyCountBLL();
                    BuildingMonthInfoDataBLL    buildingMonthInfoDataBLL    = new BuildingMonthInfoDataBLL();
                    BuildingMonthInfoBLL        buildingMonthInfoBLL        = new BuildingMonthInfoBLL();

                    buildingMonthModifyCountBLL.ManageDeleteByBuildingID(id);
                    buildingMonthInfoDataBLL.ManageDeleteByBuildingID(id);
                    buildingMonthInfoBLL.ManageDeleteByBuildingID(id);

                    buildingsBLL.ManageDelete(id);
                    buildingsDataBLL.ManageDelete(id);
                    BaseDb.Delete(id);
                    scope.Complete();
                    return(1);
                }
                catch (Exception ex)
                {
                    return(0);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 流程完成时的操作。
        /// </summary>
        /// <returns></returns>
        public void Complete(Guid id)
        {
            RoadFlow.Data.Model.BuildingMonthInfoModel model = Get(id);
            Guid buildingID = model.BuildingID.Value;
            int  timeArea   = DateTime.Now.Year * 100 + DateTime.Now.Month;

            #region 去除流程关联字段
            model.State          = null;
            model.CreateTime     = null;
            model.UpdateTime     = null;
            model.MissionDisplay = null;
            #endregion
            model.BuildingMonthInfoID = id;//设置BuildingMonthInfoData是buildingMonthInfo的哪条数据更新而来。
            #region 每月信息更新
            BuildingMonthInfoDataBLL buildingsDataBLL      = new BuildingMonthInfoDataBLL();
            RoadFlow.Data.Model.BuildingMonthInfoModel old = buildingsDataBLL.GetByBuildingIDAndTimeArea(buildingID, timeArea);
            if (old != null)  //已存在,更新每月信息
            {
                model.ID         = null;
                model.TimeArea   = timeArea;
                model.UpdateTime = DateTime.Now;
                buildingsDataBLL.Update(model, old.ID.Value);
            }
            else
            {
                model.ID       = Guid.NewGuid();
                model.TimeArea = timeArea;
                buildingsDataBLL.Add(model);
            }
            #endregion
            #region 每月更新次数及分数更新
            BuildingMonthModifyCountBLL buildingMonthModifyCountBLL = new BuildingMonthModifyCountBLL();
            var oldCount = buildingMonthModifyCountBLL.Get(buildingID, timeArea); //GetOperationType(buildingMonthModifyCountBLL, buildingID, timeArea,out countID);
            if (oldCount != null)                                                 //已存在,每月更新次数更新
            {
                RoadFlow.Data.Model.BuildingMonthModifyCountModel buildingMonthModifyCountModel = new Data.Model.BuildingMonthModifyCountModel();
                buildingMonthModifyCountModel.Count = GetCount(buildingID, timeArea, model);
                //buildingMonthModifyCountModel.Timeliness = GetTimeliness();  更新不算及时性评分
                buildingMonthModifyCountModel.Quality  = BLLCommon.GetQuality(buildingMonthModifyCountModel.Count.Value + oldCount.EnterpriseModifyCount.Value);
                buildingMonthModifyCountModel.Accuracy = GetAccuracy();
                buildingMonthModifyCountBLL.Update(buildingMonthModifyCountModel, oldCount.ID.Value);
            }
            else
            {
                RoadFlow.Data.Model.BuildingMonthModifyCountModel buildingMonthModifyCountModel = new Data.Model.BuildingMonthModifyCountModel();
                buildingMonthModifyCountModel.TimeArea   = timeArea;
                buildingMonthModifyCountModel.BuildingID = buildingID;
                buildingMonthModifyCountModel.Count      = GetCount(buildingID, timeArea, model);
                buildingMonthModifyCountModel.Timeliness = BLLCommon.GetTimeliness();
                buildingMonthModifyCountModel.Quality    = BLLCommon.GetQuality(buildingMonthModifyCountModel.Count.Value);
                buildingMonthModifyCountModel.Accuracy   = GetAccuracy();
                buildingMonthModifyCountBLL.Add(buildingMonthModifyCountModel);
            }
            #endregion
        }
        /// <summary>
        /// 管理员编辑(除了BuildingsAndBuildingMonthInfo外,需要更新BuildingMonthInfoDataBLL,BuildingMonthInfoBLL,BuildingsBLL,BuildingsDataBLL)
        /// </summary>
        /// <param name="model"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public int ManageUpdate(RoadFlow.Data.Model.BuildingsModel building, RoadFlow.Data.Model.BuildingMonthInfoModel monthInfo, Guid buildingID)
        {
            using (System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope())
            {
                bool isUpdate = Update <RoadFlow.Data.Model.BuildingsModel>(building, buildingID) > 0 && Update <RoadFlow.Data.Model.BuildingMonthInfoModel>(monthInfo, buildingID) > 0;//更新组合表
                if (isUpdate)
                {
                    #region BuildingMonthInfo
                    BuildingMonthInfoDataBLL buildingMonthInfoDataBLL = new BuildingMonthInfoDataBLL();
                    var monthDataList = buildingMonthInfoDataBLL.GetListByBuildingID(buildingID);
                    var monthDataLast = monthDataList.OrderByDescending(i => i.TimeArea).FirstOrDefault();
                    if (monthDataLast != null)
                    {//有最新每月信息则更新每月信息
                        BuildingMonthInfoBLL buildingMonthInfoBLL = new BuildingMonthInfoBLL();
                        isUpdate = buildingMonthInfoDataBLL.ManageUpdate(monthInfo, monthDataLast.ID.Value) > 0 && buildingMonthInfoBLL.ManageUpdate(monthInfo, monthDataLast.BuildingMonthInfoID.Value) > 0;
                    }

                    #endregion
                    if (isUpdate)
                    {//更新楼栋基本信息
                        #region Building
                        BuildingsBLL     buildingsBLL     = new BuildingsBLL();
                        BuildingsDataBLL buildingsDataBLL = new BuildingsDataBLL();
                        building.ID = null;
                        isUpdate    = buildingsBLL.ManageUpdate(building, buildingID) > 0 && buildingsDataBLL.ManageUpdate(building, buildingID) > 0;
                        #endregion
                        if (isUpdate)
                        {
                            scope.Complete();
                            return(1);
                        }
                    }
                }
            }
            return(0);
        }