Пример #1
0
        protected override void BeforeSave(Dictionary <string, string> dic, Base.Logic.Domain.S_UI_Form formInfo, bool isNew)
        {
            var entity = this.GetEntityByID(dic["ID"]);

            if (entity == null)
            {
                entity = new T_SC_MixProjectScheme();
            }
            var sublist = JsonHelper.ToList(dic.GetValue("SubProjectList"));

            if (dic.ContainsKey("SubProjectList"))
            {
                foreach (var item in sublist)
                {
                    if (String.IsNullOrEmpty(item.GetValue("Code")))
                    {
                        item.SetValue("Code", FormulaHelper.CreateGuid());
                    }
                }
                dic.SetValue("SubProjectList", JsonHelper.ToJson(sublist));
            }
            this.UpdateEntity(entity, dic);

            #region 临时模式根据模式结构校验子项
            var projectInfo = this.GetEntityByID <S_I_ProjectInfo>(dic.GetValue("ProjectInfoID"));
            if (projectInfo.ProjectMode.ExtentionObject.GetValue("Ext_TemporaryMode") == TrueOrFalse.True.ToString())
            {
                var ignorKeys = new string[] { "CreateUserID", "CreateUser", "CreateDate", "State", "Major" };
                var schemeDic = new Dictionary <string, string>(dic);
                schemeDic.RemoveWhere(a => ignorKeys.Contains(a.Key));
                projectInfo.ValidateMode(schemeDic, sublist.Count > 0);
            }
            #endregion

            #region 校验整体专业
            #region 校验成果
            string sql = @"select distinct MajorValue, S_W_WBS.Name MajorName from S_E_Product p
left join S_W_WBS on p.WBSID = S_W_WBS.ID 
where p.ProjectInfoID='{0}' and MajorValue not in ('{1}')";
            sql = string.Format(sql, entity.ProjectInfoID, entity.Major.Replace(",", "','"));
            var dt = this.ProjectSQLDB.ExecuteDataTable(sql);
            if (dt.Rows.Count > 0)
            {
                var msgMajor = "";
                foreach (DataRow item in dt.Rows)
                {
                    msgMajor += item["MajorName"].ToString() + ",";
                }
                throw new Formula.Exceptions.BusinessException("专业【" + msgMajor.TrimEnd(',') + "】已经上传了设计成果,必须选中。");
            }
            #endregion

            #region 校验提资单
            var sqlPutInfo = @"select distinct OutMajorValue, S_W_WBS.Name MajorName from T_EXE_MajorPutInfo p
left join S_W_WBS on p.WBSID = S_W_WBS.ParentID and p.OutMajorValue = S_W_WBS.WBSValue 
where p.ProjectInfoID='{0}' and OutMajorValue not in ('{1}')";
            sqlPutInfo = string.Format(sqlPutInfo, entity.ProjectInfoID, entity.Major.Replace(",", "','"));
            var dtPutInfo = this.ProjectSQLDB.ExecuteDataTable(sqlPutInfo);
            if (dtPutInfo.Rows.Count > 0)
            {
                var msgMajor = "";
                foreach (DataRow item in dtPutInfo.Rows)
                {
                    msgMajor += item["MajorName"].ToString() + ",";
                }
                throw new Formula.Exceptions.BusinessException("专业【" + msgMajor.TrimEnd(',') + "】发起过提资,必须选中。");
            }
            #endregion

            #region 校验共享区
            var sqlShareInfo = @"select distinct p.WBSValue, S_W_WBS.Name MajorName from S_D_ShareInfo p
left join S_W_WBS on p.SubProjectWBSID = S_W_WBS.ParentID and p.WBSValue = S_W_WBS.WBSValue 
where p.ProjectInfoID='{0}' and p.WBSValue not in ('{1}')";
            sqlShareInfo = string.Format(sqlShareInfo, entity.ProjectInfoID, entity.Major.Replace(",", "','"));
            var dtShareInfo = this.ProjectSQLDB.ExecuteDataTable(sqlShareInfo);
            if (dtShareInfo.Rows.Count > 0)
            {
                var msgMajor = "";
                foreach (DataRow item in dtShareInfo.Rows)
                {
                    msgMajor += item["MajorName"].ToString() + ",";
                }
                throw new Formula.Exceptions.BusinessException("专业【" + msgMajor.TrimEnd(',') + "】拥有共享区文件,必须选中。");
            }
            #endregion

            #region 校验专业里程碑
            string        finishState       = ProjectCommoneState.Finish.ToString();
            var           finishMileStones  = this.BusinessEntities.Set <S_P_MileStone>().Where(a => a.ProjectInfoID == entity.ProjectInfoID && a.State == finishState).ToList();
            List <string> msgMileStoneMajor = new List <string>();
            foreach (var item in finishMileStones)
            {
                if (string.IsNullOrEmpty(item.MajorValue) && string.IsNullOrEmpty(item.OutMajorValue))
                {
                    continue;
                }
                if (!entity.Major.Split(',').Contains(item.MajorValue))
                {
                    if (!msgMileStoneMajor.Contains(item.MajorValue))
                    {
                        msgMileStoneMajor.Add(item.MajorValue);
                    }
                }
                if (!string.IsNullOrEmpty(item.OutMajorValue))
                {
                    foreach (var _oMajorValue in item.OutMajorValue.Split(','))
                    {
                        if (string.IsNullOrEmpty(_oMajorValue))
                        {
                            continue;
                        }
                        if (!entity.Major.Split(',').Contains(_oMajorValue))
                        {
                            if (!msgMileStoneMajor.Contains(_oMajorValue))
                            {
                                msgMileStoneMajor.Add(_oMajorValue);
                            }
                        }
                    }
                }
            }
            if (msgMileStoneMajor.Count > 0)
            {
                var enmDef = EnumBaseHelper.GetEnumDef("Project.Major");
                throw new Formula.Exceptions.BusinessException("专业【" + String.Join(",", enmDef.EnumItem.Where(d => msgMileStoneMajor.Contains(d.Code)).Select(d => d.Name)) + "】已经有相关里程碑完成,必须选中。");
            }
            #endregion
            #endregion

            #region 校验子项
            var newsubid       = sublist.Select(t => t.GetValue("Code"));
            var enumSubProject = WBSNodeType.SubProject.ToString();
            var wbsList        = this.BusinessEntities.Set <S_W_WBS>().Where(a => a.ProjectInfoID == entity.ProjectInfoID).ToList();
            var subWBSList     = wbsList.Where(a => a.WBSType == enumSubProject).ToList();
            #region 校验成果
            subWBSList
            .Where(w => !newsubid.Contains(w.WBSValue))
            .ToList()
            .ForEach(t =>
            {
                if (t.HasProducts())
                {
                    throw new Formula.Exceptions.BusinessException("子项【" + t.Name + "】已经有成果图纸,不能删除。");
                }
            });
            #endregion

            var WBSIDList = wbsList.Where(a => newsubid.Contains(a.WBSValue)).Select(a => a.ID).ToList();
            #region 校验提资单
            var putInfoList = BusinessEntities.Set <T_EXE_MajorPutInfo>().Where(a => a.ProjectInfoID == entity.ProjectInfoID).ToList();
            var hasPutInfo  = putInfoList.Where(a => !WBSIDList.Contains(a.WBSID)).ToList();
            if (hasPutInfo.Count > 0)
            {
                var name = "";
                for (int i = 0; i < hasPutInfo.Count; i++)
                {
                    var pInfo = hasPutInfo[i];
                    if (!string.IsNullOrEmpty(pInfo.WBSID))
                    {
                        var _wbs = wbsList.FirstOrDefault(a => a.ID == pInfo.WBSID);
                        if (_wbs != null)
                        {
                            var subNode = subWBSList.FirstOrDefault(a => _wbs.FullID.Split('.').Contains(a.ID));
                            if (subNode != null)
                            {
                                name += subNode.Name + ",";
                            }
                        }
                    }
                }
                throw new Formula.Exceptions.BusinessException("子项【" + name.TrimEnd(',') + "】发起过提资,不能删除。");
            }
            #endregion

            #region 校验共享区
            var shareInfoList = BusinessEntities.Set <S_D_ShareInfo>().Where(a => a.ProjectInfoID == entity.ProjectInfoID).ToList();
            var hasShareInfo  = shareInfoList.Where(a => !WBSIDList.Contains(a.SubProjectWBSID)).ToList();
            if (hasShareInfo.Count > 0)
            {
                var name = "";
                for (int i = 0; i < hasShareInfo.Count; i++)
                {
                    var sInfo = hasShareInfo[i];
                    if (!string.IsNullOrEmpty(sInfo.SubProjectWBSID))
                    {
                        var _wbs = wbsList.FirstOrDefault(a => a.ID == sInfo.SubProjectWBSID);
                        if (_wbs != null)
                        {
                            var subNode = subWBSList.FirstOrDefault(a => _wbs.FullID.Split('.').Contains(a.ID));
                            if (subNode != null)
                            {
                                name += subNode.Name + ",";
                            }
                        }
                    }
                }
                throw new Formula.Exceptions.BusinessException("子项【" + name.TrimEnd(',') + "】拥有共享区文件,不能删除。");
            }
            #endregion
            #endregion

            #region 校验子项下的专业
            foreach (var subProject in sublist)
            {
                if (!String.IsNullOrEmpty(subProject.GetValue("RBSJson")))
                {
                    var rbsList            = JsonHelper.ToList(subProject.GetValue("RBSJson"));
                    var subProjectWBSValue = subProject.GetValue("Code");
                    var subProjectWBSNode  = wbsList.FirstOrDefault(a => a.WBSValue == subProjectWBSValue);
                    if (subProjectWBSNode == null)
                    {
                        continue;
                    }
                    foreach (var majorNode in rbsList)
                    {
                        if (majorNode.GetValue("Valid") == "0")
                        {
                            var code = majorNode.GetValue("MajorCode");
                            #region 校验成果
                            wbsList
                            .Where(w => w.ParentID == subProjectWBSNode.ID && w.WBSValue == code)
                            .ToList().ForEach(t =>
                            {
                                if (t.HasProducts())
                                {
                                    throw new Formula.Exceptions.BusinessException("子项【" + subProject.GetValue("Name") + "】下的专业【" + t.Name + "】已经有成果图纸,不能删除。");
                                }
                            });
                            #endregion

                            #region 校验提资单
                            var hasPutInfo2 = putInfoList.Where(a => a.WBSID == subProjectWBSNode.ID && a.OutMajorValue == code).ToList();
                            if (hasPutInfo2.Count > 0)
                            {
                                throw new Formula.Exceptions.BusinessException("子项【" + subProject.GetValue("Name") + "】下的专业【" + majorNode.GetValue("MajorName") + "】发起过提资,不能删除。");
                            }
                            #endregion

                            #region 校验共享区
                            var hasShareInfo2 = shareInfoList.Where(a => a.SubProjectWBSID == subProjectWBSNode.ID && a.WBSValue == code).ToList();
                            if (hasShareInfo2.Count > 0)
                            {
                                throw new Formula.Exceptions.BusinessException("子项【" + subProject.GetValue("Name") + "】下的专业【" + majorNode.GetValue("MajorName") + "】拥有共享区文件,不能删除。");
                            }
                            #endregion
                        }
                    }
                }
            }
            #endregion

            #region 校验里程碑编号

            var db = SQLHelper.CreateSqlHelper(ConnEnum.InfrasBaseConfig);
            sql = @"select ID,MileStoneName,MileStoneCode,MileStoneType,Weight,SortIndex,OutMajors,InMajors,PhaseValue from dbo.S_T_MileStone
where ModeID in (select ID from S_T_ProjectMode where ModeCode='{0}') and ProjectClass like '%{1}%'  {2}
order by SortIndex ";
            var phaseStr = string.Empty;
            foreach (var item in projectInfo.PhaseValue.Split(','))
            {
                phaseStr += ("or PhaseValue like '%" + item + "%' ");
            }
            phaseStr = " and (" + phaseStr.TrimStart('o', 'r') + ")";
            var templateDt = db.ExecuteDataTable(String.Format(sql, projectInfo.ModeCode, projectInfo.ProjectClass, phaseStr));
            //当前端去掉专业,再次勾选专业后,对应的里程碑编号会为空
            var msList = JsonHelper.ToList(dic.GetValue("MileStoneList"));
            foreach (var milestone in msList)
            {
                if (string.IsNullOrEmpty(milestone.GetValue("Code")))
                {
                    DataRow tmpRow = null;
                    var     tmpid  = milestone.GetValue("TemplateID");
                    if (!string.IsNullOrEmpty(tmpid) && templateDt.Select("ID='" + tmpid + "'").Length > 0)
                    {
                        tmpRow = templateDt.Select("ID='" + tmpid + "'")[0];
                    }
                    else
                    {
                        var msName = milestone.GetValue("Name");
                        if (!string.IsNullOrEmpty(msName) && templateDt.Select("MileStoneName='" + msName + "'").Length > 0)
                        {
                            tmpRow = templateDt.Select("MileStoneName='" + msName + "'")[0];
                        }
                    }
                    if (tmpRow != null)
                    {
                        var    msType = milestone.GetValue("MileStoneType");
                        string code   = tmpRow["MileStoneName"].ToString() + "." + projectInfo.ID + "." + projectInfo.PhaseValue + "." + tmpRow["MileStoneType"].ToString();
                        if (msType == MileStoneType.Major.ToString())
                        {
                            code = tmpRow["MileStoneName"].ToString() + "." + projectInfo.ID + "." + projectInfo.PhaseValue + "." + milestone.GetValue("Major") + "." + tmpRow["MileStoneType"].ToString();
                        }
                        else if (msType == MileStoneType.Cooperation.ToString())
                        {
                            code = tmpRow["MileStoneName"].ToString() + "." + projectInfo.ID + "." + projectInfo.PhaseValue + "." + milestone.GetValue("Major") + "." + tmpRow["MileStoneType"].ToString();
                        }
                        milestone.SetValue("Code", code);
                    }
                    else
                    {
                        milestone.SetValue("Code", milestone.GetValue("Name") + "." + projectInfo.ID + "." + projectInfo.PhaseValue + "." + milestone.GetValue("Major"));
                    }
                }
            }
            dic.SetValue("MileStoneList", JsonHelper.ToJson <List <Dictionary <string, object> > >(msList));
            #endregion
        }
Пример #2
0
        //
        // GET: /OfficeAuto/AutoForm/LogisticsOfficeApply/


        protected override void OnFlowEnd(T_Logistics_OfficeApply entity, Workflow.Logic.Domain.S_WF_InsTaskExec taskExec, Workflow.Logic.Domain.S_WF_InsDefRouting routing)
        {
            var dept     = entity.ApplyDept;
            var deptName = entity.ApplyDeptName;

            var type = entity.ApplyType;

            if (type == "Add")
            {
                var office = entity.NewOfficeName;

                var officeEntity = BusinessEntities.Set <T_Logistics_Office>().Find(office);

                if (officeEntity != null)
                {
                    officeEntity.CurrentUseDept     = dept;
                    officeEntity.CurrentUseDeptName = deptName;
                    officeEntity.UseStatus          = "Use";

                    //新增记录
                    var record = new S_E_Logistics_OfficeRecord()
                    {
                        ID           = FormulaHelper.CreateGuid(),
                        CreateDate   = DateTime.Now,
                        CreateUser   = CurrentUserInfo.UserName,
                        CreateUserID = CurrentUserInfo.UserID,
                        CompanyID    = CurrentUserInfo.UserCompanyID,
                        OrgID        = CurrentUserInfo.UserOrgID,

                        Dept       = dept,
                        DeptName   = deptName,
                        Office     = officeEntity.ID,
                        OfficeName = officeEntity.Name,
                        Pos        = officeEntity.Pos,
                        PosName    = officeEntity.PosName,
                        Area       = officeEntity.Area,
                        Number     = officeEntity.Number,
                        StartDate  = entity.StartDate
                    };

                    BusinessEntities.Set <S_E_Logistics_OfficeRecord>().Add(record);
                    BusinessEntities.SaveChanges();
                }
            }


            if (type == "Back")
            {
                var office       = entity.BackOfficeName;
                var officeEntity = BusinessEntities.Set <T_Logistics_Office>().Find(office);

                if (officeEntity != null)
                {
                    officeEntity.CurrentUseDept     = string.Empty;
                    officeEntity.CurrentUseDeptName = string.Empty;
                    officeEntity.UseStatus          = "NoUse";


                    var record = BusinessEntities.Set <S_E_Logistics_OfficeRecord>().Where(p => p.Dept == dept && p.EndDate == null && p.Office == officeEntity.ID).FirstOrDefault();

                    record.EndDate = entity.BackDate;

                    BusinessEntities.SaveChanges();
                }
            }

            if (type == "Change")
            {
                var oldOffice = entity.Change_OldOfficeName;
                var newOffice = entity.Change_NewOfficeName;
                //退
                var oldEntity = BusinessEntities.Set <T_Logistics_Office>().Find(oldOffice);
                if (oldEntity != null)
                {
                    oldEntity.CurrentUseDept     = string.Empty;
                    oldEntity.CurrentUseDeptName = string.Empty;
                    oldEntity.UseStatus          = "NoUse";

                    var record = BusinessEntities.Set <S_E_Logistics_OfficeRecord>().Where(p => p.Dept == dept && p.EndDate == null && p.Office == oldEntity.ID).FirstOrDefault();
                    record.EndDate = entity.BackDate;
                }
                //增
                var newEntity = BusinessEntities.Set <T_Logistics_Office>().Find(newOffice);
                if (newEntity != null)
                {
                    newEntity.CurrentUseDept     = dept;
                    newEntity.CurrentUseDeptName = deptName;
                    newEntity.UseStatus          = "Use";

                    //新增记录
                    var record = new S_E_Logistics_OfficeRecord()
                    {
                        ID           = FormulaHelper.CreateGuid(),
                        CreateDate   = DateTime.Now,
                        CreateUser   = CurrentUserInfo.UserName,
                        CreateUserID = CurrentUserInfo.UserID,
                        OrgID        = CurrentUserInfo.UserOrgID,

                        Dept       = dept,
                        DeptName   = deptName,
                        Office     = newEntity.ID,
                        OfficeName = newEntity.Name,
                        Pos        = newEntity.Pos,
                        PosName    = newEntity.PosName,
                        Area       = newEntity.Area,
                        Number     = newEntity.Number,
                        StartDate  = entity.StartDate
                    };

                    BusinessEntities.Set <S_E_Logistics_OfficeRecord>().Add(record);
                }

                BusinessEntities.SaveChanges();
            }
        }
Пример #3
0
        protected override void OnFlowEnd(T_WorkClothes_ManageReceive entity, Workflow.Logic.Domain.S_WF_InsTaskExec taskExec, Workflow.Logic.Domain.S_WF_InsDefRouting routing)
        {
            if (entity != null)
            {
                //流程结束之后更新库存数量
                var lstDetail = BusinessEntities.Set <T_WorkClothes_ManageReceive_ReceiveDetail>().Where(x => x.T_WorkClothes_ManageReceiveID == entity.ID).ToList();

                var stock          = BusinessEntities.Set <T_WorkClothes_Stock>().FirstOrDefault();
                var lstStockDetail = BusinessEntities.Set <T_WorkClothes_Stock_ClothesDetail>().Where(x => x.T_WorkClothes_StockID == stock.ID).ToList();

                if (entity.Location == "天津")
                {
                    lstDetail.ForEach(x =>
                    {
                        var detailModel = lstStockDetail.FirstOrDefault(s => s.Location == "天津" && s.Category == x.Category);

                        if (detailModel == null)
                        {
                            //工装申领理论上库存表一定存在
                            BusinessEntities.Set <T_WorkClothes_Stock_ClothesDetail>().Add(new T_WorkClothes_Stock_ClothesDetail
                            {
                                Category              = x.Category,
                                Location              = "天津",
                                Size155Quantity       = Convert.ToInt32(x.Size155Quantity).ToString(),
                                Size160Quantity       = Convert.ToInt32(x.Size160Quantity).ToString(),
                                Size165Quantity       = Convert.ToInt32(x.Size165Quantity).ToString(),
                                Size170Quantity       = Convert.ToInt32(x.Size170Quantity).ToString(),
                                Size175Quantity       = Convert.ToInt32(x.Size175Quantity).ToString(),
                                Size180Quantity       = Convert.ToInt32(x.Size180Quantity).ToString(),
                                Size185Quantity       = Convert.ToInt32(x.Size185Quantity).ToString(),
                                TotalQuantity         = Convert.ToInt32(x.TotalQuantity).ToString(),
                                T_WorkClothes_StockID = stock.ID,
                                ID = Formula.FormulaHelper.CreateGuid()
                            });
                        }
                        else
                        {
                            //减少库存
                            detailModel.Size155Quantity = (Convert.ToInt32(detailModel.Size155Quantity) - Convert.ToInt32(x.Size155Quantity)).ToString();
                            detailModel.Size160Quantity = (Convert.ToInt32(detailModel.Size160Quantity) - Convert.ToInt32(x.Size160Quantity)).ToString();
                            detailModel.Size165Quantity = (Convert.ToInt32(detailModel.Size165Quantity) - Convert.ToInt32(x.Size165Quantity)).ToString();
                            detailModel.Size170Quantity = (Convert.ToInt32(detailModel.Size170Quantity) - Convert.ToInt32(x.Size170Quantity)).ToString();
                            detailModel.Size175Quantity = (Convert.ToInt32(detailModel.Size175Quantity) - Convert.ToInt32(x.Size175Quantity)).ToString();
                            detailModel.Size180Quantity = (Convert.ToInt32(detailModel.Size180Quantity) - Convert.ToInt32(x.Size180Quantity)).ToString();
                            detailModel.Size185Quantity = (Convert.ToInt32(detailModel.Size185Quantity) - Convert.ToInt32(x.Size185Quantity)).ToString();
                            detailModel.TotalQuantity   = (Convert.ToInt32(detailModel.TotalQuantity) - Convert.ToInt32(x.TotalQuantity)).ToString();
                        }
                    });
                }

                if (entity.Location == "洛阳")
                {
                    lstDetail.ForEach(x =>
                    {
                        var detailModel = lstStockDetail.FirstOrDefault(s => s.Location == "洛阳" && s.Category == x.Category);

                        if (detailModel == null)
                        {
                            //工装申领理论上库存表一定存在
                            BusinessEntities.Set <T_WorkClothes_Stock_ClothesDetail>().Add(new T_WorkClothes_Stock_ClothesDetail
                            {
                                Category              = x.Category,
                                Location              = "洛阳",
                                Size155Quantity       = Convert.ToInt32(x.Size155Quantity).ToString(),
                                Size160Quantity       = Convert.ToInt32(x.Size160Quantity).ToString(),
                                Size165Quantity       = Convert.ToInt32(x.Size165Quantity).ToString(),
                                Size170Quantity       = Convert.ToInt32(x.Size170Quantity).ToString(),
                                Size175Quantity       = Convert.ToInt32(x.Size175Quantity).ToString(),
                                Size180Quantity       = Convert.ToInt32(x.Size180Quantity).ToString(),
                                Size185Quantity       = Convert.ToInt32(x.Size185Quantity).ToString(),
                                TotalQuantity         = Convert.ToInt32(x.TotalQuantity).ToString(),
                                T_WorkClothes_StockID = stock.ID,
                                ID = Formula.FormulaHelper.CreateGuid()
                            });
                        }
                        else
                        {
                            //减少库存
                            detailModel.Size155Quantity = (Convert.ToInt32(detailModel.Size155Quantity) - Convert.ToInt32(x.Size155Quantity)).ToString();
                            detailModel.Size160Quantity = (Convert.ToInt32(detailModel.Size160Quantity) - Convert.ToInt32(x.Size160Quantity)).ToString();
                            detailModel.Size165Quantity = (Convert.ToInt32(detailModel.Size165Quantity) - Convert.ToInt32(x.Size165Quantity)).ToString();
                            detailModel.Size170Quantity = (Convert.ToInt32(detailModel.Size170Quantity) - Convert.ToInt32(x.Size170Quantity)).ToString();
                            detailModel.Size175Quantity = (Convert.ToInt32(detailModel.Size175Quantity) - Convert.ToInt32(x.Size175Quantity)).ToString();
                            detailModel.Size180Quantity = (Convert.ToInt32(detailModel.Size180Quantity) - Convert.ToInt32(x.Size180Quantity)).ToString();
                            detailModel.Size185Quantity = (Convert.ToInt32(detailModel.Size185Quantity) - Convert.ToInt32(x.Size185Quantity)).ToString();
                            detailModel.TotalQuantity   = (Convert.ToInt32(detailModel.TotalQuantity) - Convert.ToInt32(x.TotalQuantity)).ToString();
                        }
                    });
                }

                BusinessEntities.SaveChanges();
            }

            base.OnFlowEnd(entity, taskExec, routing);
        }
Пример #4
0
        protected override void OnFlowEnd(T_Trainmanagement_Depttrainresults entity, Workflow.Logic.Domain.S_WF_InsTaskExec taskExec, Workflow.Logic.Domain.S_WF_InsDefRouting routing)
        {
            if (entity == null)
            {
                return;
            }

            //更新人力下达给部门培训任务的信息
            var task = BusinessEntities.Set <S_Train_DeptTask>().FirstOrDefault(p => p.Dept == entity.Udertakedept && p.Trainyears == entity.Trainyears);

            if (task == null)
            {
                return;
            }
            if (entity.Planornot == "True")
            {
                task.SubmitInPlanHours += 1;
            }
            else
            {
                task.SubmitOutPlanCount += 1;
            }
            if (string.IsNullOrEmpty(entity.Trainproject))
            {
                return;
            }

            var deptPlan = BusinessEntities.Set <S_Train_DeptPlan>().Find(entity.Trainproject);

            if (deptPlan == null)
            {
                //生成计划外培训数据
                deptPlan                 = new S_Train_DeptPlan();
                deptPlan.ID              = Formula.FormulaHelper.CreateGuid();
                deptPlan.Trainyears      = entity.Trainyears;
                deptPlan.Trainperson     = entity.Fillname;
                deptPlan.TrainpersonName = entity.FillnameName;
                deptPlan.Trainproject    = entity.TrainprojectName;
                deptPlan.InOrOut         = "Out";//计划外
                deptPlan.Putdept         = entity.Udertakedept;
                deptPlan.PutdeptName     = entity.UdertakedeptName;

                BusinessEntities.Set <S_Train_DeptPlan>().Add(deptPlan);

                entity.Trainproject = deptPlan.ID;
            }

            //累计学时
            if (deptPlan.UseWorkTime == null)
            {
                deptPlan.UseWorkTime = 0;
            }

            //进度=100 标记为完成
            if (entity.Progress == 100)
            {
                deptPlan.IsComplete = "True";
            }
            deptPlan.UseWorkTime += entity.Trainhours;
            BusinessEntities.SaveChanges();
        }
Пример #5
0
        /// <summary>
        /// 获取付款计划
        /// </summary>
        /// <returns></returns>
        public JsonResult GetPaymentPlan()
        {
            var id = GetQueryString("ContractID");

            return(Json(BusinessEntities.Set <T_Technology_ContractApproval_PaymentPlan>().Where(x => x.T_Technology_ContractApprovalID == id).ToList()));
        }
Пример #6
0
        // GET: /AutoForm/Recruitment_Temporaryrecruitmentapply/

        protected override void OnFlowEnd(T_Recruitment_Temporaryrecruitmentapply entity, Workflow.Logic.Domain.S_WF_InsTaskExec taskExec, Workflow.Logic.Domain.S_WF_InsDefRouting routing)
        {
            //写入到核心表中
            var year        = entity.year;
            var type        = entity.Recruitmenttype;
            var id          = entity.ID;
            var currentUser = FormulaHelper.GetUserInfo();

            if (type == "校招")
            {
                var xz = BusinessEntities.Set <T_Recruitment_Temporaryrecruitmentapply_Schoolrecruitmentdemandplan>().Where(p => p.T_Recruitment_TemporaryrecruitmentapplyID == id);

                foreach (var item in xz)
                {
                    var sentity = new S_E_Recruitment_DeptRequirementReport()
                    {
                        ID    = FormulaHelper.CreateGuid(),
                        Major = item.Major,
                        Year  = year,
                        Dept  = entity.Needdepartment,
                        Recruitment_DeptRequirementReportID = id,
                        Number       = item.Number,
                        CreateUserID = currentUser.UserID,
                        CreateUser   = currentUser.UserName,
                        CreateDate   = DateTime.Now,
                        DeptName     = entity.NeeddepartmentName,
                        Type         = "Temp",
                    };

                    BusinessEntities.Set <S_E_Recruitment_DeptRequirementReport>().Add(sentity);
                }

                BusinessEntities.SaveChanges();
            }

            if (type == "社会招聘")
            {
                var sz = BusinessEntities.Set <T_Recruitment_Temporaryrecruitmentapply_Socialrecruitmentdemandplan>().Where(p => p.T_Recruitment_TemporaryrecruitmentapplyID == id);

                foreach (var item in sz)
                {
                    var sentity = new S_E_Recruitment_DeptRequirementReport_SZRCXQJH()
                    {
                        ID               = FormulaHelper.CreateGuid(),
                        PostName         = item.PostName,
                        Major            = item.Mjor,
                        Number           = item.Number,
                        Responsibilities = item.Responsibilities,
                        Qualification    = item.Qualification,
                        SalaryRange      = item.SalaryRange,
                        TargetUnit       = item.TargetUnit,
                        TargetUnitName   = item.TargetUnitName,
                        Remarks          = item.Remarks,
                        T_Recruitment_DeptRequirementReportID = id,
                        CreateUserID = currentUser.UserID,
                        CreateUser   = currentUser.UserName,
                        CreateDate   = DateTime.Now,
                        Dept         = entity.Needdepartment,
                        DeptName     = entity.NeeddepartmentName,
                        Year         = year,
                        Type         = "Temp"
                    };

                    BusinessEntities.Set <S_E_Recruitment_DeptRequirementReport_SZRCXQJH>().Add(sentity);
                }
            }
        }
Пример #7
0
 /// <summary>
 /// 获取所有报奖项目不含当前专家所在部门
 /// </summary>
 /// <returns></returns>
 public JsonResult GetAwardItems()
 {
     return(Json(BusinessEntities.Set <T_Win_DeclareManager>().Where(x => x.FlowPhase == "End" && x.CreateUserID != CurrentUserInfo.UserID).ToList()));
 }
Пример #8
0
        // GET: /AutoForm/EmployeeSocialstaffassessment/

        public JsonResult GetDirector(string UserID, string DeptID)
        {
            var Employee = BusinessEntities.Set <T_Employee>().Where(c => c.UserID == UserID).FirstOrDefault();

            if (Employee == null)
            {
                throw new BusinessException("员工不存在!");
            }

            var dic = new Dictionary <string, string>();

            var ApplyUser = UserID;
            var ApplyDept = DeptID;
            var sql       = "select Character from S_A_Org where ID='" + ApplyDept + "'";
            var BasesqlDB = SQLHelper.CreateSqlHelper(ConnEnum.Base);
            var orgDt     = BasesqlDB.ExecuteDataTable(sql);

            var Character = orgDt.Rows[0]["Character"].ToString();

            if (Character == "二级部门")
            {//如果当前人的党群部门是二级部门则送所长,如果当前人是所长送部门正职
                var RoleSql = "select  UserID from  S_A_Role a inner join S_A__OrgRoleUser b on a.ID=b.RoleID where a.Code='所级正职领导' and b.orgID='" + ApplyDept + "' ";
                var RoleDt  = BasesqlDB.ExecuteDataTable(RoleSql);
                if (RoleDt.Rows.Count > 0)
                {
                    var userID = RoleDt.Rows[0]["UserID"].ToString();
                    if (userID != ApplyUser)
                    {
                        dic.SetValue("Director", userID);
                    }

                    RoleSql = @"select * from  S_A_Role a inner join S_A__OrgRoleUser b on a.ID=b.RoleID 
inner join (select ParentID from S_A_Org where ID='" + ApplyDept + @"' ) c on c.ParentID=b.orgID
where a.Code='部门正职' ";
                    RoleDt  = BasesqlDB.ExecuteDataTable(RoleSql);
                    if (RoleDt.Rows.Count > 0)
                    {
                        dic.SetValue("Director", RoleDt.Rows[0]["UserID"].ToString());
                    }
                }
            }
            else
            {
                var RoleSql = "select  UserID from  S_A_Role a inner join S_A__OrgRoleUser b on a.ID=b.RoleID where a.Code='部门正职' and b.orgID='" + ApplyDept + "' ";
                var RoleDt  = BasesqlDB.ExecuteDataTable(RoleSql);
                if (RoleDt.Rows.Count > 0)
                {
                    var userID = RoleDt.Rows[0]["UserID"].ToString();
                    if (userID != ApplyUser)
                    {
                        dic.SetValue("Director", userID);
                    }
                    else
                    {
                        RoleSql = "select  UserID from  S_A_Role a inner join S_A__OrgRoleUser b on a.ID=b.RoleID where a.Code='上级主管领导' and b.orgID='" + ApplyDept + "' ";
                        RoleDt  = BasesqlDB.ExecuteDataTable(RoleSql);
                        if (RoleDt.Rows.Count > 0)
                        {
                            userID = RoleDt.Rows[0]["UserID"].ToString();
                            dic.SetValue("Director", userID);
                        }
                    }
                }
            }

            var nameSql      = "select Name from S_A_User where id = '" + dic.GetValue("Director") + "'";
            var nameDt       = BasesqlDB.ExecuteDataTable(nameSql);
            var directorName = "";

            if (nameDt.Rows.Count > 0)
            {
                directorName = nameDt.Rows[0]["Name"].ToString();
            }

            dic.SetValue("DirectorName", directorName);

            return(Json(dic));
        }
Пример #9
0
 /// <summary>
 /// 获取标准化管理版本号
 /// </summary>
 /// <returns></returns>
 public JsonResult GetStandardVersion()
 {
     return(Json(new { Count = BusinessEntities.Set <T_Standardengineer_Standardpeoplemanage>().Count() }));
 }
Пример #10
0
 //获取报奖项目总数
 public JsonResult GetAwardItemCount()
 {
     return(Json(new { Count = BusinessEntities.Set <T_Win_AwardItem>().Count() }));
 }
Пример #11
0
        public JsonResult GetUserInfo()
        {
            var UserID   = GetQueryString("UserID");
            var Employee = BusinessEntities.Set <T_Employee>().Where(c => c.UserID == UserID).FirstOrDefault();

            if (Employee == null)
            {
                throw new BusinessException("员工不存在!");
            }
            var dic = new Dictionary <string, string>();

            dic.SetValue("Number", Employee.Code);
            dic.SetValue("ApplyDept", Employee.DeptID);
            dic.SetValue("ApplyDeptName", Employee.DeptIDName);
            dic.SetValue("Counterfeitdecoy", Employee.Name);
            var Vacationdays = "0";
            var sql          = "select sum(Actualdays) as Actualdays from T_AttendanceLeaveApply  where FlowPhase='End' and year(StartDate)=year(getdate()) and ApplyUser='******'";
            var dt           = HRSQLDB.ExecuteDataTable(sql);

            if (dt.Rows.Count > 0)
            {
                Vacationdays = dt.Rows[0]["Actualdays"].ToString();
            }
            dic.SetValue("Vacationdays", Vacationdays);
            dic.SetValue("Workingyears", Employee.Lengthofservice);



            var ApplyUser = UserID;
            var ApplyDept = Employee.DeptID;

            sql = "select Character from S_A_Org where ID='" + ApplyDept + "'";
            var BasesqlDB = SQLHelper.CreateSqlHelper(ConnEnum.Base);
            var orgDt     = BasesqlDB.ExecuteDataTable(sql);

            dic.SetValue("IsPrincipal", "0");
            var Character = orgDt.Rows[0]["Character"].ToString();

            if (Character == "二级部门")
            {//如果当前人的党群部门是二级部门则送所长,如果当前人是所长送部门正职
                var RoleSql = "select  UserID from  S_A_Role a inner join S_A__OrgRoleUser b on a.ID=b.RoleID where a.Code='所级正职领导' and b.orgID='" + ApplyDept + "' ";
                var RoleDt  = BasesqlDB.ExecuteDataTable(RoleSql);
                if (RoleDt.Rows.Count > 0)
                {
                    var userID = RoleDt.Rows[0]["UserID"].ToString();
                    if (userID != ApplyUser)
                    {
                        dic.SetValue("Director", userID);
                    }

                    RoleSql = @"select * from  S_A_Role a inner join S_A__OrgRoleUser b on a.ID=b.RoleID 
inner join (select ParentID from S_A_Org where ID='" + ApplyDept + @"' ) c on c.ParentID=b.orgID
where a.Code='部门正职' ";
                    RoleDt  = BasesqlDB.ExecuteDataTable(RoleSql);
                    if (RoleDt.Rows.Count > 0)
                    {
                        dic.SetValue("Principal", RoleDt.Rows[0]["UserID"].ToString());
                    }
                }
            }
            else
            {
                var RoleSql = "select  UserID from  S_A_Role a inner join S_A__OrgRoleUser b on a.ID=b.RoleID where a.Code='部门正职' and b.orgID='" + ApplyDept + "' ";
                var RoleDt  = BasesqlDB.ExecuteDataTable(RoleSql);
                if (RoleDt.Rows.Count > 0)
                {
                    var userID = RoleDt.Rows[0]["UserID"].ToString();
                    if (userID != ApplyUser)
                    {
                        dic.SetValue("Principal", userID);
                    }
                    else
                    {
                        RoleSql = "select  UserID from  S_A_Role a inner join S_A__OrgRoleUser b on a.ID=b.RoleID where a.Code='上级主管领导' and b.orgID='" + ApplyDept + "' ";
                        RoleDt  = BasesqlDB.ExecuteDataTable(RoleSql);
                        if (RoleDt.Rows.Count > 0)
                        {
                            userID = RoleDt.Rows[0]["UserID"].ToString();
                            dic.SetValue("Principal", userID);
                            dic.SetValue("IsPrincipal", "1");
                        }
                    }
                }
            }


            return(Json(dic));
        }
        protected override void BeforeSaveSubTable(Dictionary <string, string> dic, string subTableName, List <Dictionary <string, string> > detailList, Base.Logic.Domain.S_UI_Form formInfo)
        {
            if (SysParams.Params.GetValue("SubContractConfirmMethod") == "PaymentConfirm" && subTableName == "CostInfo")//委外付款确认
            {
                var costValue     = 0m;
                var contractValue = 0m;
                foreach (var item in detailList)
                {
                    costValue = 0m;
                    decimal.TryParse(item.GetValue("CostValue"), out costValue);
                    if (costValue <= 0)
                    {
                        throw new Formula.Exceptions.BusinessValidationException("【付款金额】必须大于0!");
                    }
                    contractValue = 0m;
                    decimal.TryParse(item.GetValue("ContractValue"), out contractValue);
                    if (costValue > contractValue)
                    {
                        throw new Formula.Exceptions.BusinessValidationException("【付款金额】不能超过【合同金额】");
                    }
                }
            }

            if (subTableName == "InvoiceRelation")
            {
                var sumRelation = 0M;
                var ApplyValue  = String.IsNullOrEmpty(dic.GetValue("ApplyValue")) ? 0m : Convert.ToDecimal(dic.GetValue("ApplyValue"));
                foreach (var item in detailList)
                {
                    var relationValue = String.IsNullOrEmpty(item.GetValue("RelationValue")) ? 0m : Convert.ToDecimal(item.GetValue("RelationValue"));
                    sumRelation += relationValue;
                    var remainRelationValue = String.IsNullOrEmpty(item.GetValue("RemainInvoiceValue")) ? 0m : Convert.ToDecimal(item.GetValue("RemainInvoiceValue"));
                    if (relationValue > remainRelationValue)
                    {
                        throw new Formula.Exceptions.BusinessValidationException("本次对应金额【" + relationValue + "】不能大于可对应金额【" + remainRelationValue + "】");
                    }
                }
                if (sumRelation > ApplyValue)
                {
                    throw new Formula.Exceptions.BusinessValidationException("对应的发票金额总和不能大于本次付款金额");
                }
            }
            else if (subTableName == "AcceptanceBill")
            {
                var applyValue = String.IsNullOrEmpty(dic.GetValue("ApplyValue")) ? 0m : Convert.ToDecimal(dic.GetValue("ApplyValue"));
                var billValue  = String.IsNullOrEmpty(dic.GetValue("BillValue")) ? 0m : Convert.ToDecimal(dic.GetValue("BillValue"));
                if (billValue > applyValue)
                {
                    throw new Formula.Exceptions.BusinessValidationException("承兑汇票金额总和不能大于本次申请付款的金额");
                }

                foreach (var detail in detailList)
                {
                    string billID = detail.GetValue("AcceptanceBillID");
                    string spID   = dic.GetValue("ID");
                    if (BusinessEntities.Set <T_SP_PaymentApply_AcceptanceBill>().Any(a => billID == a.AcceptanceBillID && a.T_SP_PaymentApplyID != spID))
                    {
                        throw new Formula.Exceptions.BusinessValidationException("汇票号【" + detail.GetValue("SerialNumber") + "】已经被流程被其他支付申请流程占用");
                    }
                }
            }
        }
Пример #13
0
 /// <summary>
 /// 获取标识入库列表
 /// </summary>
 /// <returns></returns>
 public JsonResult GetDictList()
 {
     return(Json(BusinessEntities.Set <T_SceneMark_Dictionaries>().ToList().Select(x => new { Name = x.Name, Specifications = x.Specifications, Level = x.Level, UnitPrice = x.UnitPrice })));
 }
        // GET: /Lawsuit/LawsuitCaseInformation/


        public JsonResult GetList(QueryBuilder qb)
        {
            var data = BusinessEntities.Set <T_Lawsuit_CaseInformation>().WhereToGridData(qb);

            return(Json(data));
        }
Пример #15
0
 /// <summary>
 /// 获取技术委员会主任信息
 /// </summary>
 /// <returns></returns>
 public JsonResult GetTechnicalcommittee()
 {
     return(Json(BusinessEntities.Set <T_Technicalcommittee_Technicalperson>().Where(x => x.Position == "主任").Select(x => new { DeptID = x.ID, Dept = x.Dept, Name = x.NameName, ID = x.Name })));
 }
        public JsonResult GetDeptTaskInfoByDeptID(string DeptID, string Year)
        {
            var entity = BusinessEntities.Set <S_Train_DeptTask>().Where(p => p.Dept == DeptID && p.Trainyears == Year).OrderByDescending(o => o.Deadline).FirstOrDefault();

            return(Json(entity));
        }
        protected override void BeforeSave(Dictionary <string, string> dic, Base.Logic.Domain.S_UI_Form formInfo, bool isNew)
        {
            var list        = new List <Dictionary <string, object> >();
            var id          = dic.GetValue("ID");
            var normalValue = 0m;

            if (!string.IsNullOrEmpty(dic.GetValue("NormalValue")))
            {
                normalValue = Convert.ToDecimal(dic.GetValue("NormalValue"));
            }
            var extraValue = 0m;

            if (!string.IsNullOrEmpty(dic.GetValue("AdditionalValue")))
            {
                extraValue = Convert.ToDecimal(dic.GetValue("AdditionalValue"));
            }
            if ((normalValue == 0 && extraValue == 0))
            {
                throw new Formula.Exceptions.BusinessException("每日工时不能为0");
            }
            var user     = FormulaHelper.GetUserInfoByID(dic.GetValue("UserID"));
            var employee = BusinessEntities.Set <T_Employee>().FirstOrDefault(d => d.UserID == user.UserID);
            var fo       = FormulaHelper.CreateFO <WorkHourFO>();
            //根据日期段判断
            var startDate      = dic.GetValue("WorkHourDateStart").Replace("T", " ");
            var endDate        = dic.GetValue("WorkHourDateEnd").Replace("T", " ");
            var projectID      = dic.GetValue("ProjectID");
            var SubProjectCode = dic.GetValue("SubProjectCode");
            var MajorCode      = dic.GetValue("MajorCode");
            var WorkContent    = dic.GetValue("WorkContent");
            var dateList       = getWorkHourDate(startDate, endDate);
            //已存在工时数据
            var userID    = dic.GetValue("UserID");
            var existList = this.BusinessEntities.Set <S_W_UserWorkHour>().Where(a => a.UserID == userID && dateList.Contains(a.WorkHourDate)).ToList();

            foreach (var item in dateList)
            {
                var existNormalValue = existList.Where(a => a.WorkHourDate == item && (a.SupplementID != id || a.SupplementID == null)).Sum(a => a.NormalValue);
                var existExtraValue  = existList.Where(a => a.WorkHourDate == item && (a.SupplementID != id || a.SupplementID == null)).Sum(a => a.AdditionalValue);
                if (!existNormalValue.HasValue)
                {
                    existNormalValue = 0;
                }
                if (!existExtraValue.HasValue)
                {
                    existExtraValue = 0;
                }
                //自动补全正班工日,加班工日不补全
                var _normalValue = normalValue;
                if ((_normalValue + existNormalValue) > NormalHoursMax)
                {
                    _normalValue = NormalHoursMax - existNormalValue.Value;
                }
                //throw new Formula.Exceptions.BusinessException("【" + item.ToShortDateString() + "】正常工时不能大于" + NormalHoursMax.ToString());
                if ((extraValue + existExtraValue) > maxExtraHour)
                {
                    throw new Formula.Exceptions.BusinessException("【" + item.ToShortDateString() + "】加班工时不能大于" + maxExtraHour.ToString());
                }

                if ((_normalValue == 0 && extraValue == 0))
                {
                    continue;
                }

                var userWorkHour = existList.FirstOrDefault(d => d.SupplementID == id &&
                                                            d.UserID == user.UserID && d.WorkHourDate == item);
                if (userWorkHour == null || BusinessEntities.Entry <S_W_UserWorkHour>(userWorkHour).State == System.Data.EntityState.Deleted)
                {
                    userWorkHour              = BusinessEntities.Set <S_W_UserWorkHour>().Create();
                    userWorkHour.ID           = FormulaHelper.CreateGuid();
                    userWorkHour.UserID       = user.UserID;
                    userWorkHour.UserName     = user.UserName;
                    userWorkHour.UserDeptID   = user.UserOrgID;
                    userWorkHour.UserDeptName = user.UserOrgName;
                    userWorkHour.WorkHourDate = item;
                    userWorkHour.UserCode     = user.Code;
                    if (employee != null)
                    {
                        userWorkHour.EmployeeID = employee.ID;
                    }
                    userWorkHour.State         = "Create";
                    userWorkHour.IsConfirm     = "0";
                    userWorkHour.IsStep1       = "0";
                    userWorkHour.IsStep2       = "0";
                    userWorkHour.CreateUser    = CurrentUserInfo.UserName;
                    userWorkHour.CreateUserID  = CurrentUserInfo.UserID;
                    userWorkHour.SupplementID  = id;
                    userWorkHour.BelongMonth   = item.Month;
                    userWorkHour.BelongYear    = item.Year;
                    userWorkHour.BelongQuarter = ((item.Month - 1) / 3) + 1;
                    BusinessEntities.Set <S_W_UserWorkHour>().Add(userWorkHour);
                }
                if (userWorkHour.State != "Create")
                {
                    throw new Formula.Exceptions.BusinessException("【" + userWorkHour.WorkHourDate.ToShortDateString() + "】补填的工时已经审批,无法修改");
                }
                userWorkHour.ProjectChargerUser     = dic.GetValue("ProjectChargerUser");
                userWorkHour.ProjectChargerUserName = dic.GetValue("ProjectChargerUserName");
                userWorkHour.ProjectCode            = dic.GetValue("ProjectCode");
                userWorkHour.ProjectDept            = dic.GetValue("ProjectDept");
                userWorkHour.ProjectDeptName        = dic.GetValue("ProjectDeptName");
                userWorkHour.ProjectID       = projectID;
                userWorkHour.ProjectName     = dic.GetValue("ProjectName");
                userWorkHour.SubProjectCode  = dic.GetValue("SubProjectCode");
                userWorkHour.SubProjectName  = dic.GetValue("SubProjectName");
                userWorkHour.TaskWorkCode    = dic.GetValue("TaskWorkCode");
                userWorkHour.TaskWorkName    = dic.GetValue("TaskWorkName");
                userWorkHour.WorkContent     = dic.GetValue("WorkContent");
                userWorkHour.MajorCode       = dic.GetValue("MajorCode");
                userWorkHour.MajorName       = dic.GetValue("MajorName");
                userWorkHour.WorkHourType    = dic.GetValue("WorkHourType");
                userWorkHour.NormalValue     = _normalValue;
                userWorkHour.AdditionalValue = extraValue;
                userWorkHour.WorkHourValue   = _normalValue + extraValue;
                userWorkHour.WorkHourDay     = fo.ConvertHourToDay(userWorkHour.WorkHourValue, workHourType, NormalHoursMax);
            }
        }