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