/// <summary>
        /// 是否为申报单位的设置
        /// </summary>
        /// <returns>返回Json串</returns>
        public CommonResult <CorrespondenceSettings2Model> UpdateIfSBOrg(List <OrganizeModel> models, List <CorrespondenceSettings2Model> DeleteData, List <OrganizeModel> InsertData)
        {
            //末级组织保存对应关系
            string OrgCode;
            string OrgPhId;
            var    selectresult = new PagedResult <CorrespondenceSettings2Model>();
            CommonResult <CorrespondenceSettings2Model> result = new CommonResult <CorrespondenceSettings2Model>();

            if (models != null && models.Count > 0)
            {
                for (int i = 0; i < models.Count; i++)
                {
                    var           dicWhere = new Dictionary <string, object>();
                    OrganizeModel organize = models[i];
                    OrgCode = organize.OCode;
                    OrgPhId = organize.PhId.ToString();
                    new CreateCriteria(dicWhere).
                    Add(ORMRestrictions <string> .Eq("Dwdm", OrgCode)).
                    Add(ORMRestrictions <string> .Eq("Dydm", OrgCode)).
                    Add(ORMRestrictions <string> .Eq("Dylx", "ZC")).
                    Add(ORMRestrictions <string> .Eq("DefStr2", OrgPhId));
                    selectresult = base.ServiceHelper.LoadWithPageInfinity("GQT3.QT.DYGX2_All", dicWhere);
                    if (selectresult.TotalItems == 0)
                    {
                        try
                        {
                            CorrespondenceSettings2Model correspondence = new CorrespondenceSettings2Model();
                            correspondence.PersistentState = SUP.Common.Base.PersistentState.Added;
                            correspondence.Dwdm            = OrgCode;
                            correspondence.Dydm            = OrgCode;
                            correspondence.Dylx            = "ZC";
                            correspondence.DefStr2         = OrgPhId;
                            SavedResult <Int64> savedResult = base.Save <Int64>(correspondence, "");
                        }
                        catch (Exception e)
                        {
                            result.Status = ResponseStatus.Error;
                            result.Msg    = "设置失败,请重新设置!";
                            return(result);
                        }
                    }
                }
            }

            long Deleteid;  //主表主键

            if (DeleteData != null && DeleteData.Count > 0)
            {
                for (int i = 0; i < DeleteData.Count; i++)
                {
                    CorrespondenceSettings2Model delete = DeleteData[i];
                    Deleteid = delete.PhId;

                    try
                    {
                        //判断当前组织是否在项目中被使用,如果使用则不能删除
                        Dictionary <string, object> where1 = new Dictionary <string, object>();
                        new CreateCriteria(where1).Add(ORMRestrictions <string> .Eq("FDeclarationUnit", delete.Dwdm));
                        FindedResults <ProjectMstModel> findedResults = ProjectMstFacade.Find(where1);
                        if (findedResults.Data.Count > 0)
                        {
                            result.Status = ResponseStatus.Error;
                            result.Msg    = "设置失败,组织已被引用!";
                            return(result);
                        }
                        else
                        {
                            Dictionary <string, object> where2 = new Dictionary <string, object>();
                            new CreateCriteria(where2).Add(ORMRestrictions <string> .Eq("FOcode", delete.Dwdm));
                            DeletedResult deletedResult = BudgetProcessCtrlFacade.Delete(where2);
                        }

                        base.Delete <System.Int64>(Deleteid);
                    }
                    catch (Exception e)
                    {
                        result.Status = ResponseStatus.Error;
                        result.Msg    = "设置失败,请重新设置!";
                        return(result);
                    }
                }
            }

            if (InsertData != null && InsertData.Count > 0)
            {
                for (int i = 0; i < InsertData.Count; i++)
                {
                    OrganizeModel insertorganize = InsertData[i];
                    var           insertOrgCode  = insertorganize.OCode;
                    var           insertOrgPhId  = insertorganize.PhId.ToString();
                    try
                    {
                        CorrespondenceSettings2Model correspondence2 = new CorrespondenceSettings2Model();
                        correspondence2.PersistentState = SUP.Common.Base.PersistentState.Added;
                        correspondence2.Dwdm            = insertOrgCode;
                        correspondence2.Dylx            = "SB";
                        correspondence2.DefStr2         = insertOrgPhId;
                        SavedResult <Int64> savedResult2 = base.Save <Int64>(correspondence2, "");

                        //向预算进度控制表添加相应的记录
                        Dictionary <string, object> where1 = new Dictionary <string, object>();
                        new CreateCriteria(where1).Add(ORMRestrictions <string> .Eq("FOcode", insertorganize.OCode));
                        FindedResults <BudgetProcessCtrlModel> findedResults = BudgetProcessCtrlFacade.Find(where1);
                        //判断进度表中是否已经存在
                        if (findedResults.Data.Count == 0)
                        {
                            List <BudgetProcessCtrlModel> budgetProcessList = new List <BudgetProcessCtrlModel>();
                            Dictionary <string, object>   where2            = new Dictionary <string, object>();
                            Dictionary <string, object>   where3            = new Dictionary <string, object>();
                            Dictionary <string, object>   where4            = new Dictionary <string, object>();
                            new CreateCriteria(where2).Add(ORMRestrictions <Int64> .Eq("ParentOrgId", insertorganize.PhId));
                            new CreateCriteria(where3).Add(ORMRestrictions <string> .Eq("OCode", insertorganize.OCode));
                            new CreateCriteria(where4).Add(ORMRestrictions.Or(where2, where3));
                            List <OrganizeModel> organizeList = OrganizationFacade.Find(where4).Data.ToList();
                            //获得组织对象,前端传过来的组织对象可能没有组织名称
                            OrganizeModel organizeModel = organizeList.Find(t => t.IfCorp == "Y");
                            if (organizeList.Count > 1)
                            {
                                for (int j = 0; j < organizeList.Count; j++)
                                {
                                    if ("N".Equals(organizeList[j].IfCorp))
                                    {
                                        BudgetProcessCtrlModel budgetProcessCtrlModel = new BudgetProcessCtrlModel();
                                        budgetProcessCtrlModel.PersistentState = PersistentState.Added;
                                        budgetProcessCtrlModel.FOcode          = organizeModel.OCode;
                                        budgetProcessCtrlModel.FOname          = organizeModel.OName;
                                        budgetProcessCtrlModel.FDeptCode       = organizeList[j].OCode;
                                        budgetProcessCtrlModel.FDeptName       = organizeList[j].OName;
                                        budgetProcessCtrlModel.FProcessStatus  = "1";
                                        budgetProcessList.Add(budgetProcessCtrlModel);
                                    }
                                }
                            }
                            else
                            {
                                BudgetProcessCtrlModel budgetProcessCtrlModel = new BudgetProcessCtrlModel();
                                budgetProcessCtrlModel.PersistentState = PersistentState.Added;
                                budgetProcessCtrlModel.FOcode          = organizeModel.OCode;
                                budgetProcessCtrlModel.FOname          = organizeModel.OName;
                                budgetProcessCtrlModel.FProcessStatus  = "1";
                                budgetProcessList.Add(budgetProcessCtrlModel);
                            }
                            BudgetProcessCtrlFacade.Save <Int64>(budgetProcessList);
                        }
                    }
                    catch (Exception e)
                    {
                        result.Status = ResponseStatus.Error;
                        result.Msg    = "设置失败,请重新设置!";
                        return(result);
                    }
                }
            }

            return(result);
        }
Exemple #2
0
        /// <summary>
        /// 保存数据
        /// </summary>
        /// <returns></returns>
        public SavedResult <Int64> SaveProcessSetting(List <BudgetProcessCtrlModel> models, string symbol)
        {
            SavedResult <Int64> result = new SavedResult <Int64>();

            //进度控制是否做判断
            if (symbol == "1")
            {
                /*Dictionary<string, object> dicWhere = new Dictionary<string, object>();
                 * PagedResult<BudgetProcessCtrlModel> pagedResult = base.ServiceHelper.LoadWithPageInfinity("GQT.QT.GetAllProcessSetting",dicWhere);
                 * List<BudgetProcessCtrlModel> processList = pagedResult.Results.ToList();*/
                if (models != null && models.Count > 0)
                {
                    //for (int i = 0; i < models.Count; i++)
                    //{
                    //    BudgetProcessCtrlModel model = models[i];
                    //    BudgetProcessCtrlModel budget = processList.Find(t => t.PhId == model.PhId);
                    //    //保证不能设置之前的状态
                    //    if ("1".Equals(budget.FProcessStatus))
                    //    {
                    //        if (!("1".Equals(model.FProcessStatus) || "2".Equals(model.FProcessStatus))) {
                    //            result.Status = ResponseStatus.Error;
                    //            result.Msg = "设置失败!";
                    //            return result;
                    //        }
                    //    }
                    //    else if ("2".Equals(budget.FProcessStatus))
                    //    {
                    //        if (!("2".Equals(model.FProcessStatus) || "3".Equals(model.FProcessStatus)))
                    //        {
                    //            result.Status = ResponseStatus.Error;
                    //            result.Msg = "设置失败!";
                    //            return result;
                    //        }
                    //    }
                    //    else if ("3".Equals(budget.FProcessStatus))
                    //    {
                    //        if (!("3".Equals(model.FProcessStatus) || "4".Equals(model.FProcessStatus)))
                    //        {
                    //            result.Status = ResponseStatus.Error;
                    //            result.Msg = "设置失败!";
                    //            return result;
                    //        }
                    //    }
                    //    else if ("4".Equals(budget.FProcessStatus))
                    //    {
                    //        if (!"4".Equals(model.FProcessStatus))
                    //        {
                    //            result.Status = ResponseStatus.Error;
                    //            result.Msg = "设置失败!";
                    //            return result;
                    //        }
                    //    }
                    //}
                    foreach (var a in models)
                    {
                        result = BudgetProcessCtrlFacade.Save <Int64>(a, "");
                    }
                    //result = base.Save<Int64>(models, "");
                }
                else
                {
                    result.Status = ResponseStatus.Error;
                    result.Msg    = "设置失败,数据异常!";
                    return(result);
                }
            }
            else
            {
                Dictionary <string, object>          dicWhere    = new Dictionary <string, object>();
                PagedResult <BudgetProcessCtrlModel> pagedResult = base.ServiceHelper.LoadWithPageInfinity("GQT.QT.GetAllProcessSetting", dicWhere);
                List <BudgetProcessCtrlModel>        processList = pagedResult.Results.ToList();
                if (models != null && models.Count > 0)
                {
                    for (int i = 0; i < models.Count; i++)
                    {
                        BudgetProcessCtrlModel model  = models[i];
                        BudgetProcessCtrlModel budget = processList.Find(t => t.PhId == model.PhId);
                        //保证不能设置之前的状态
                        if ("1".Equals(budget.FProcessStatus))
                        {
                            if (!("1".Equals(model.FProcessStatus) || "2".Equals(model.FProcessStatus)))
                            {
                                result.Status = ResponseStatus.Error;
                                result.Msg    = "设置失败!";
                                return(result);
                            }
                        }
                        else if ("2".Equals(budget.FProcessStatus))
                        {
                            if (!("2".Equals(model.FProcessStatus) || "3".Equals(model.FProcessStatus)))
                            {
                                result.Status = ResponseStatus.Error;
                                result.Msg    = "设置失败!";
                                return(result);
                            }
                        }
                        else if ("3".Equals(budget.FProcessStatus))
                        {
                            if (!("3".Equals(model.FProcessStatus) || "4".Equals(model.FProcessStatus)))
                            {
                                result.Status = ResponseStatus.Error;
                                result.Msg    = "设置失败!";
                                return(result);
                            }
                        }
                        else if ("4".Equals(budget.FProcessStatus))
                        {
                            if (!"4".Equals(model.FProcessStatus))
                            {
                                result.Status = ResponseStatus.Error;
                                result.Msg    = "设置失败!";
                                return(result);
                            }
                        }
                        //判断当前部门下的所有项目是否已经审批完
                        Dictionary <string, object> dicWhere2 = new Dictionary <string, object>();
                        new CreateCriteria(dicWhere2)
                        .Add(ORMRestrictions <string> .Eq("FLifeCycle", "0"))
                        .Add(ORMRestrictions <string> .Eq("FBudgetDept", model.FDeptCode))
                        .Add(ORMRestrictions <List <string> > .In("FApproveStatus", new List <string> {
                            "1", "2"
                        }));
                        PagedResult <BudgetMstModel> budgemstResult = BudgetMstFacade.FacadeHelper.LoadWithPageInfinity("GQT.QT.GetBudgetApproveStatus", dicWhere2);
                        if (budgemstResult.TotalItems > 0)
                        {
                            result.Status = ResponseStatus.Error;
                            result.Msg    = "设置失败,项目审批中!";
                            return(result);
                        }
                    }
                    result = base.Save <Int64>(models, "");
                }
                else
                {
                    result.Status = ResponseStatus.Error;
                    result.Msg    = "设置失败,数据异常!";
                    return(result);
                }
            }
            return(result);
        }