public JsonResult SetEngineeringInfo(string ContractInfoID) { var contractInfo = this.GetEntityByID(ContractInfoID); if (contractInfo == null) { throw new Formula.Exceptions.BusinessException("未能找到指定的合同信息,无法启动立项"); } var engineering = this.GetEntityByID <S_I_Engineering>(contractInfo.EngineeringInfo); if (engineering == null) { engineering = new S_I_Engineering(); engineering.ID = FormulaHelper.CreateGuid(); engineering.Name = contractInfo.Name; engineering.Code = contractInfo.SerialNumber; engineering.CustomerInfo = contractInfo.PartyA; engineering.CustomerInfoName = contractInfo.PartyAName; engineering.MainDept = contractInfo.ProductionDept; engineering.MainDeptName = contractInfo.ProductionDeptName; engineering.BusinessManager = contractInfo.BusinessManager; engineering.BusinessManagerName = contractInfo.BusinessManagerName; engineering.ChargerUser = contractInfo.ProductionManager; engineering.ChargerUserName = contractInfo.ProductionManagerName; this.BusinessEntities.Set <S_I_Engineering>().Add(engineering); contractInfo.EngineeringInfo = engineering.ID; contractInfo.EngineeringInfoName = engineering.Name; } this.BusinessEntities.SaveChanges(); return(Json(engineering)); }
public JsonResult SaveExcelData() { var reader = new System.IO.StreamReader(HttpContext.Request.InputStream); string data = reader.ReadToEnd(); var tempdata = JsonConvert.DeserializeObject <Dictionary <string, string> >(data); var list = JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(tempdata["data"]); var eID = GetQueryString("EngineeringInfoID"); S_I_Engineering engin = entities.Set <S_I_Engineering>().Find(eID); if (engin == null) { throw new Formula.Exceptions.BusinessValidationException("未找到ID为" + eID + "的S_I_Engineering"); } foreach (var item in list) { T_HSE_DeviceEntranceCheck check = new T_HSE_DeviceEntranceCheck(); check.ID = FormulaHelper.CreateGuid(); check.EngineeringInfoID = eID; check.DeviceNum = item.GetValue("DeviceNum"); check.DeviceName = item.GetValue("DeviceName"); check.SpecType = item.GetValue("SpecType"); check.Manufacturer = item.GetValue("Manufacturer"); check.ManufactureDate = item.GetValue("ManufactureDate"); check.DeviceType = item.GetValue("DeviceType"); var tmpQuery = entities.Set <S_P_ContractInfo>().Where(a => a.EngineeringInfoID == eID && a.ContractProperty == "Construction" && a.ContractState == "Sign"); string tmpStr = item.GetValue("SubcontractingUnit").Trim(); var sing = tmpQuery.FirstOrDefault(a => a.PartyBName == tmpStr); if (sing != null) { check.SubcontractingUnit = sing.PartyB; check.SubcontractingUnitName = sing.PartyBName; } else { throw new Formula.Exceptions.BusinessValidationException("已签约分包合同中未找到" + tmpStr); } check.Count = Convert.ToInt32(item.GetValue("Count")); check.EntryDate = Convert.ToDateTime(item.GetValue("EntryDate")); check.CheckDate = Convert.ToDateTime(item.GetValue("CheckDate")); check.ExpiryDate = Convert.ToDateTime(item.GetValue("ExpiryDate")); check.CreateDate = DateTime.Now; check.CreateUserID = CurrentUserInfo.UserID; check.CreateUser = CurrentUserInfo.UserName; check.CompanyID = CurrentUserInfo.UserCompanyID; check.OrgID = CurrentUserInfo.UserOrgID; entities.Set <T_HSE_DeviceEntranceCheck>().Add(check); } entities.SaveChanges(); return(Json("Success")); }
protected override void BeforeSave(Dictionary <string, string> dic, Base.Logic.Domain.S_UI_Form formInfo, bool isNew) { base.BeforeSave(dic, formInfo, isNew); S_I_Engineering engineering = EPCEntites.Set <S_I_Engineering>().Find(dic.GetValue("EngineeringInfoID")); if (engineering.State != ProjectState.Bid.ToString()) { throw new Formula.Exceptions.BusinessValidationException("已经完成立项的项目不能修改投标结果"); } }
public override JsonResult Delete() { this.BeforeDelete(Request["ListIDs"].Split(',')); var contractIDs = Request["ListIDs"].Split(','); S_I_Engineering engineering = null; foreach (var contractID in contractIDs) { S_P_ContractInfo contract = this.GetEntityByID <S_P_ContractInfo>(contractID); engineering = contract.S_I_Engineering; var contents = contract.S_P_ContractInfo_Content.ToList(); foreach (var content in contents) { var pBom = EPCEntites.Set <S_P_Bom>().Find(content.PBomID); if (pBom == null) { continue; } //throw new BusinessException("未找到id为【" + content.PBomID + "】的PBom"); //pbom更新以SignDate是否有值为标准,有值说明之前pbom是统计过这个合同额的,因此要扣除 if (contract.SignDate != null) { pBom.ContractQuantity -= content.ContractQuantity; } if (EPCEntites.Set <S_P_ContractInfo_Content>().Count(a => a.PBomID == pBom.ID && a.ID != content.ID) == 0) { pBom.Locked = false; pBom.FactContractDate = null; } } foreach (var content in contract.S_P_ContractInfo_Content.ToList()) { this.EPCEntites.Set <S_P_ContractInfo_Content>().Remove(content); } foreach (var content in contract.S_P_ContractInfo_PaymentObj.ToList()) { this.EPCEntites.Set <S_P_ContractInfo_PaymentObj>().Remove(content); } foreach (var content in contract.S_P_ContractInfo_CBSInfo.ToList()) { this.EPCEntites.Set <S_P_ContractInfo_CBSInfo>().Remove(content); } this.EPCEntites.Set <S_P_ContractInfo>().Remove(contract); this.EPCEntites.Set <S_I_CBS_Contract>().Delete(c => c.RelateID == contract.ID); } this.EPCEntites.SaveChanges(); if (engineering != null) { engineering.SumCBSContractValue(); } return(Json("")); }
protected override void OnFlowEnd(S_F_ProjectReimbursement entity, Workflow.Logic.Domain.S_WF_InsTaskExec taskExec, Workflow.Logic.Domain.S_WF_InsDefRouting routing) { if (entity != null) { entity.Push(); this.EPCEntites.SaveChanges(); if (S_T_DefineParams.Params.GetValue("ProjReimbursementAutoSettle").ToLower() == "true") { S_I_Engineering engineering = this.EPCEntites.Set <S_I_Engineering>().Find(entity.Project); engineering.SumCBSCost(); } } }
protected override void BeforeSave(Dictionary <string, string> dic, Base.Logic.Domain.S_UI_Form formInfo, bool isNew) { var dbContext = FormulaHelper.GetEntities <EPCEntities>(); string engineeringInfoID = dic.GetValue("EngineeringInfoID"); if (isNew) { if (dbContext.Set <T_M_BidSchema>().Count(c => c.FlowPhase != "End" && c.EngineeringInfoID == engineeringInfoID) > 0) { throw new Formula.Exceptions.BusinessValidationException("尚有投标策划表未审批完成,无法进行升版操作"); } } S_I_Engineering enginnering = dbContext.Set <S_I_Engineering>().Find(engineeringInfoID); if (enginnering.State != ProjectState.Bid.ToString()) { throw new Formula.Exceptions.BusinessValidationException("已经完成立项的项目不能再进行投标策划表调整"); } }
public JsonResult SetEngineeringInfo(string ID, string SingleTaskNotice) { var clue = this.GetEntityByID(ID); if (clue == null) { throw new Formula.Exceptions.BusinessException("未能找到指定的前期项目信息,无法启动立项"); } var engineering = this.GetEntityByID <S_I_Engineering>(clue.EngineeringInfo); if (engineering == null) { engineering = new S_I_Engineering(); engineering.ID = FormulaHelper.CreateGuid(); engineering.Name = clue.Name; engineering.Code = clue.SerialNumber; engineering.CustomerInfo = clue.CustomerInfo; engineering.CustomerInfoName = clue.CustomerInfoName; engineering.BusinessManager = clue.BusinessManager; engineering.BusinessManagerName = clue.BusinessManagerName; engineering.Country = clue.Country; engineering.Province = clue.Province; engineering.City = clue.City; this.BusinessEntities.Set <S_I_Engineering>().Add(engineering); clue.EngineeringInfo = engineering.ID; clue.EngineeringInfoName = engineering.Name; } this.BusinessEntities.SaveChanges(); if (!String.IsNullOrEmpty(SingleTaskNotice) && SingleTaskNotice == true.ToString()) { var db = Config.SQLHelper.CreateSqlHelper(Config.ConnEnum.Project); var obj = db.ExecuteScalar("select count(0) from T_CP_TaskNotice where RelateID='" + ID + "'"); if (obj != null && obj != DBNull.Value) { if (Convert.ToInt32(obj) > 0) { throw new Formula.Exceptions.BusinessException("项目【" + clue.Name + "】已经下达过任务单,不能重复下达"); } } } return(Json(engineering)); }
/// <summary> /// 更新工程坐标信息 /// </summary> /// <param name="id"></param> /// <param name="lat">纬度</param> /// <param name="lng">经度</param> public void UpdateGisInfo(string id, string lat, string lng, string engineerAddress) { var entity = FormulaHelper.GetEntities <EPCEntities>(); S_I_Engineering engineeringInfo = entity.Set <S_I_Engineering>().FirstOrDefault(x => x.ID == id); if (engineeringInfo != null) { engineeringInfo.Lat = lat; engineeringInfo.Long = lng; engineeringInfo.EngineerAddress = engineerAddress; T_I_EngineeringBuild tEBulidInfo = entity.Set <T_I_EngineeringBuild>().FirstOrDefault(x => x.ID == engineeringInfo.BuildFormID); if (tEBulidInfo != null) { tEBulidInfo.Lat = lat; tEBulidInfo.Long = lng; tEBulidInfo.EngineerAddress = engineerAddress; } entity.SaveChanges(); } }
void SendNotice(S_T_ISODefine isoDefine, Dictionary <string, object> dic, S_I_Engineering engineeringInfo, string sendType = "Start") { var regText = sendType == "Start" ? isoDefine.StartNoticeContent : isoDefine.EndNoticeContent; if (isoDefine.SendNotice != "True" || String.IsNullOrEmpty(regText)) { return; } var formID = dic.GetValue("ID"); var notice = this.EPCEntites.Set <S_I_Notice>().FirstOrDefault(d => d.RelateType == sendType && d.RelateID == formID); if (notice == null) { notice = this.EPCEntites.Set <S_I_Notice>().Create(); notice.ID = FormulaHelper.CreateGuid(); var enumDefine = new List <Dictionary <string, object> >(); if (!String.IsNullOrEmpty(isoDefine.EnumFieldInfo)) { enumDefine = JsonHelper.ToList(isoDefine.EnumFieldInfo); } var content = replaceNameString(regText, dic, enumDefine); notice.Title = content; notice.Content = content; if (!String.IsNullOrEmpty(isoDefine.LinkViewUrl)) { notice.LinkUrl = isoDefine.LinkViewUrl.IndexOf("?") >= 0 ? isoDefine.LinkViewUrl + "&ID=" + formID : isoDefine.LinkViewUrl + "?ID=" + formID; } notice.CreateDate = DateTime.Now; notice.RelateID = formID; notice.RelateType = sendType; notice.CreateUserID = dic.GetValue("CreateUserID"); notice.CreateUserName = dic.GetValue("CreateUser"); notice.EngineeringInfoID = engineeringInfo.ID; notice.IsFromSys = "True"; this.EPCEntites.Set <S_I_Notice>().Add(notice); } }
private S_I_ProjectInfo AddProject(T_CP_TaskNotice entity, S_I_Engineering engineering, T_CP_TaskNotice_PhaseDetail singlePhase = null) { var marketEntities = FormulaHelper.GetEntities <Market.Logic.Domain.MarketEntities>(); S_I_ProjectInfo projectInfo = entity.Push(); projectInfo.ModifyDate = projectInfo.CreateDate; projectInfo.ModifyUser = projectInfo.CreateUser; projectInfo.ModifyUserID = projectInfo.CreateUserID; //重新修改phaseValue、phaseName、Name、Code等信息 if (singlePhase != null) { projectInfo.PhaseValue = singlePhase.Phase; projectInfo.WBSRoot.PhaseCode = singlePhase.Phase; var phaseList = BaseConfigFO.GetWBSAttrList(WBSNodeType.Phase); var phaseItem = phaseList.FirstOrDefault(d => projectInfo.PhaseValue == d.Code); projectInfo.PhaseName = phaseItem.Name; projectInfo.Name = singlePhase.Name; projectInfo.Code = singlePhase.Code; projectInfo.ChargeDeptID = singlePhase.ChargeDept ?? entity.ChargeDept; projectInfo.ChargeDeptName = singlePhase.ChargeDeptName ?? entity.ChargeDeptName; projectInfo.ChargeUserID = singlePhase.ChargeUser ?? entity.ChargeUser; projectInfo.ChargeUserName = singlePhase.ChargeUserName ?? entity.ChargeUserName; projectInfo.OtherDeptID = singlePhase.OtherDept ?? entity.OtherDept; projectInfo.OtherDeptName = singlePhase.OtherDeptName ?? entity.OtherDeptName; projectInfo.PlanStartDate = singlePhase.PlanStartDate ?? entity.PlanStartDate; projectInfo.PlanFinishDate = singlePhase.PlanFinishDate ?? entity.PlanFinishDate; } projectInfo.ModifyDate = projectInfo.CreateDate; projectInfo.ModifyUser = projectInfo.CreateUser; projectInfo.ModifyUserID = projectInfo.CreateUserID; #region 步创建经营库的项目信息 S_I_Project project = null; var marketClue = marketEntities.S_P_MarketClue.Find(entity.RelateID); project = marketEntities.S_I_Project.FirstOrDefault(d => d.TasKNoticeID == entity.ID); if (project != null) { throw new Formula.Exceptions.BusinessException("任务单已经下达过项目,无法重复下达"); } project = new S_I_Project(); project.ID = projectInfo.ID; project.TasKNoticeID = entity.ID; project.TasKNoticeTmplCode = entity.TmplCode; project.Name = projectInfo.Name; project.Code = projectInfo.Code; project.Phase = projectInfo.PhaseValue; project.ProjectClass = projectInfo.ProjectClass; project.Customer = projectInfo.CustomerID; project.CustomerName = projectInfo.CustomerName; project.CreateDate = DateTime.Now; project.EngineeringInfo = entity.EngineeringID; project.ChargerDept = projectInfo.ChargeDeptID; project.ChargerDeptName = projectInfo.ChargeDeptName; project.ChargerUser = projectInfo.ChargeUserID; project.ChargerUserName = projectInfo.ChargeUserName; project.Country = projectInfo.Country; project.Province = projectInfo.Province; project.Area = projectInfo.Area; project.City = projectInfo.City; project.State = projectInfo.State; project.ProjectScale = entity.ProjectLevel; if (marketClue != null) { project.MakertClueID = marketClue.ID; marketClue.State = Market.Logic.ClueState.Succeed.ToString(); } marketEntities.S_I_Project.Add(project); entity.MarketProjectID = project.ID; #endregion #region 步绑定合同 if (!String.IsNullOrEmpty(entity.ContractInfo)) { var contract = marketEntities.Set <S_C_ManageContract>().Include("S_C_ManageContract_ProjectRelation") .Include("S_C_ManageContract_ReceiptObj").FirstOrDefault(d => d.ID == entity.ContractInfo); if (contract != null) { var relation = contract.S_C_ManageContract_ProjectRelation.FirstOrDefault(a => a.ProjectID == project.ID); if (relation == null) { relation = new S_C_ManageContract_ProjectRelation(); relation.ID = FormulaHelper.CreateGuid(); relation.ProjectID = project.ID; relation.S_C_ManageContractID = contract.ID; relation.ProjectCode = project.Code; relation.ProjectName = project.Name; if (contract.S_C_ManageContract_ProjectRelation.Count == 0) { if (entity.ContractValue.HasValue && contract.ContractRMBAmount > 0) { if (contract.ContractRMBAmount > 0) { relation.Scale = entity.ContractValue.Value / contract.ContractRMBAmount * 100; } else { relation.Scale = 0; } relation.ProjectValue = entity.ContractValue; relation.TaxRate = contract.TaxRate; relation.TaxValue = relation.ProjectValue / (1 + contract.TaxRate) * contract.TaxRate; relation.ClearValue = relation.ProjectValue - relation.TaxValue; } else { relation.Scale = 100; relation.ProjectValue = contract.ContractRMBAmount; var taxRate = contract.TaxRate.HasValue ? contract.TaxRate.Value : 0; var taxValue = contract.ContractRMBAmount / (1 + taxRate) * taxRate; var clearVlaue = contract.ContractRMBAmount - taxValue; relation.TaxRate = taxRate; relation.TaxValue = taxValue; relation.ClearValue = contract.ContractRMBAmount - taxValue; } foreach (var item in contract.S_C_ManageContract_ReceiptObj.ToList()) { item.ProjectInfo = project.ID; item.ProjectInfoName = project.Name; relation.TaxRate = contract.TaxRate; } } else { if (entity.ContractValue.HasValue && contract.ContractRMBAmount > 0) { if (contract.ContractRMBAmount > 0) { relation.Scale = entity.ContractValue.Value / contract.ContractRMBAmount * 100; } else { relation.Scale = 0; } relation.ProjectValue = entity.ContractValue; relation.TaxRate = contract.TaxRate; relation.TaxValue = relation.ProjectValue / (1 + contract.TaxRate) * contract.TaxRate; relation.ClearValue = relation.ProjectValue - relation.TaxValue; } else { relation.Scale = 0; relation.ProjectValue = 0; relation.TaxRate = contract.TaxRate; } } contract.S_C_ManageContract_ProjectRelation.Add(relation); if (String.IsNullOrEmpty(contract.EngineeringInfo) && engineering != null) { contract.EngineeringInfo = engineering.ID; contract.EngineeringInfoName = engineering.Name; } } } } else { var contractList = marketEntities.Set <S_C_ManageContract>().Include("S_C_ManageContract_ProjectRelation") .Include("S_C_ManageContract_ReceiptObj").Where(d => d.EngineeringInfo == entity.EngineeringID).ToList(); foreach (var contract in contractList) { var relation = contract.S_C_ManageContract_ProjectRelation.FirstOrDefault(a => a.ProjectID == project.ID); if (relation == null) { relation = new S_C_ManageContract_ProjectRelation(); relation.ID = FormulaHelper.CreateGuid(); relation.ProjectID = project.ID; relation.S_C_ManageContractID = contract.ID; relation.ProjectCode = project.Code; relation.ProjectName = project.Name; if (contract.S_C_ManageContract_ProjectRelation.Count == 0) { relation.Scale = 100; relation.ProjectValue = contract.ContractRMBAmount; foreach (var item in contract.S_C_ManageContract_ReceiptObj.ToList()) { item.ProjectInfo = project.ID; item.ProjectInfoName = project.Name; } } else { relation.Scale = 0; relation.ProjectValue = 0; } contract.S_C_ManageContract_ProjectRelation.Add(relation); } } } #endregion projectInfo.MarketProjectInfoID = project.ID; #region 默认创建EPS结构 var group = this.BusinessEntities.Set <S_I_ProjectGroup>().FirstOrDefault(d => d.RelateID == entity.EngineeringID && d.Type == "Engineering"); if (group == null) { group = new S_I_ProjectGroup(); group.ID = Formula.FormulaHelper.CreateGuid(); group.Name = engineering.Name; group.Code = engineering.Code; group.City = engineering.City; group.Country = engineering.Country; group.Province = engineering.Province; group.Area = engineering.Area; group.ProjectClass = engineering.Class; group.Investment = engineering.Investment; group.Proportion = engineering.Proportion; group.PhaseContent = engineering.PhaseContent; group.Address = engineering.Address; group.DeptID = engineering.MainDept; group.DeptName = engineering.MainDeptName; group.RelateID = engineering.ID; group.EngineeringSpaceCode = ProjectMode.Standard.ToString(); group.CreateDate = DateTime.Now; var fo = Formula.FormulaHelper.CreateFO <EPSFO>(); fo.BuildEngineering(group); } group.BindingProject(projectInfo); entity.GroupID = group.ID; group.PhaseContent = engineering.PhaseContent; group.PhaseValue = engineering.PhaseValue; #endregion projectInfo.InitDeisgnInputTemplate(true); //把设总放进RBS中 if (projectInfo != null && !string.IsNullOrEmpty(entity.DesignManager)) { projectInfo.WBSRoot.SetUsers(ProjectRole.DesignManager.ToString(), entity.DesignManager.Split(','), true, true, true, true); } var customer = marketEntities.Set <S_F_Customer>().FirstOrDefault(a => a.ID == entity.Customer); if (customer != null) { if (string.IsNullOrEmpty(entity.Country)) { project.Country = customer.Country; projectInfo.Country = customer.Country; } if (string.IsNullOrEmpty(entity.Province)) { project.Province = customer.Province; projectInfo.Province = customer.Province; } if (string.IsNullOrEmpty(entity.City)) { project.City = customer.City; projectInfo.City = customer.City; } if (string.IsNullOrEmpty(entity.Area)) { project.Area = customer.Area; projectInfo.Area = customer.Area; } } return(projectInfo); }
protected override void OnFlowEnd(T_CP_TaskNotice entity, Workflow.Logic.Domain.S_WF_InsTaskExec taskExec, Workflow.Logic.Domain.S_WF_InsDefRouting routing) { if (entity == null) { throw new Formula.Exceptions.BusinessException("没有找到指定的任务单,立项失败"); } var marketEntities = FormulaHelper.GetEntities <Market.Logic.Domain.MarketEntities>(); var projectList = new List <S_I_ProjectInfo>(); if (!String.IsNullOrEmpty(entity.ProjectInfoID) && this.BusinessEntities.Set <S_I_ProjectInfo>().Any(a => a.ID == entity.ProjectInfoID)) { #region 任务单升版 S_I_ProjectInfo projectInfo = null; S_I_Project project = null; projectInfo = entity.UpGrade(); project = marketEntities.S_I_Project.FirstOrDefault(d => d.ID == projectInfo.MarketProjectInfoID); project.Name = entity.ProjectInfo; project.Code = entity.SerialNumber; project.Phase = entity.Phase; project.ProjectClass = entity.ProjectClass; project.Customer = entity.Customer; project.CustomerName = entity.CustomerName; project.CreateDate = DateTime.Now; project.EngineeringInfo = entity.EngineeringID; project.ChargerDept = string.IsNullOrEmpty(entity.ChargeDept) ? entity.DesignDept : entity.ChargeDept; project.ChargerDeptName = string.IsNullOrEmpty(entity.ChargeDeptName) ? entity.DesignDeptName : entity.ChargeDeptName; project.ChargerUser = entity.ChargeUser; project.ChargerUserName = entity.ChargeUserName; project.Country = entity.Country; project.Province = entity.Province; project.Area = entity.Area; if (string.IsNullOrEmpty(project.Area)) { //获取省份对应的地区(SubCategory) var enumItem = EnumBaseHelper.GetEnumDef("System.Province").EnumItem.FirstOrDefault(a => a.Code == entity.Province); if (enumItem != null) { project.Area = enumItem.SubCategory; } } project.City = entity.City; project.ProjectScale = entity.ProjectLevel; projectInfo.ModifyDate = DateTime.Now; projectInfo.ModifyUser = entity.CreateUser; projectInfo.ModifyUserID = entity.CreateUserID; //修改经营库项目名称冗余字段 if (!string.IsNullOrEmpty(projectInfo.MarketProjectInfoID)) { if (entity.ContractValue.HasValue && String.IsNullOrEmpty(entity.ContractInfo)) { marketEntities.S_C_ManageContract_ProjectRelation.Where(a => a.ProjectID == projectInfo.MarketProjectInfoID && a.S_C_ManageContractID == entity.ContractInfo).Update(a => a.ProjectValue = entity.ContractValue); } marketEntities.S_C_ManageContract_ProjectRelation.Where(a => a.ProjectID == projectInfo.MarketProjectInfoID).Update(a => a.ProjectName = entity.ProjectInfo); marketEntities.S_C_ManageContract_ReceiptObj.Where(a => a.ProjectInfo == projectInfo.MarketProjectInfoID).Update(a => a.ProjectInfoName = entity.ProjectInfo); marketEntities.S_C_PlanReceipt.Where(a => a.ProjectID == projectInfo.MarketProjectInfoID).Update(a => a.ProjectName = entity.ProjectInfo); marketEntities.S_FC_CostInfo.Where(a => a.ProjectID == projectInfo.MarketProjectInfoID).Update(a => a.ProjectName = entity.ProjectInfo); marketEntities.S_SP_SupplierContract.Where(a => a.ProjectInfo == projectInfo.MarketProjectInfoID).Update(a => a.ProjectInfoName = entity.ProjectInfo); } projectList.Add(projectInfo); #endregion } else { #region 新建任务单立项 #region 如果工程信息为空,则默认创建工程 var engineering = marketEntities.S_I_Engineering.Find(entity.EngineeringID); bool newEngineer = false; if (engineering == null) { engineering = new S_I_Engineering(); engineering.ID = FormulaHelper.CreateGuid(); marketEntities.S_I_Engineering.Add(engineering); newEngineer = true; } engineering.Name = String.IsNullOrEmpty(entity.EngineeringName) ? entity.ProjectInfo : entity.EngineeringName; if (!String.IsNullOrEmpty(entity.Customer)) { engineering.CustomerInfo = entity.Customer; engineering.CustomerInfoName = entity.CustomerName; } engineering.Code = String.IsNullOrEmpty(entity.EngineeringCode) ? entity.SerialNumber : entity.EngineeringCode; if (!string.IsNullOrEmpty(entity.MainDeptInfo)) { engineering.MainDept = entity.MainDeptInfo; engineering.MainDeptName = entity.MainDeptInfoName; } else if (string.IsNullOrEmpty(engineering.MainDept)) { engineering.MainDept = entity.ChargeDept; engineering.MainDeptName = entity.ChargeDeptName; } engineering.OtherDept = String.IsNullOrEmpty(entity.EngineeringOtherDept) ? entity.OtherDept : entity.EngineeringOtherDept; engineering.OtherDeptName = String.IsNullOrEmpty(entity.EngineeringOtherDeptName) ? entity.OtherDeptName : entity.EngineeringOtherDeptName; engineering.ChargerUser = String.IsNullOrEmpty(entity.EngineeringChargeUser) ? entity.ChargeUser : entity.EngineeringChargeUser; engineering.ChargerUserName = String.IsNullOrEmpty(entity.EngineeringChargeUserName) ? entity.ChargeUserName : entity.EngineeringChargeUserName; engineering.Country = entity.Country; engineering.Province = entity.Province; engineering.City = entity.City; engineering.Area = entity.Area; engineering.Proportion = entity.BuildArea; engineering.Address = entity.BuildAddress; engineering.LandingArea = entity.LandArea; engineering.CreateDate = DateTime.Now; if (!String.IsNullOrEmpty(entity.Investment)) { engineering.Investment = Convert.ToDecimal(entity.Investment); } if (newEngineer) { entity.EngineeringID = engineering.ID; entity.EngineeringName = engineering.Name; entity.EngineeringCode = engineering.Code; entity.EngineeringChargeUser = engineering.ChargerUser; entity.EngineeringChargeUserName = engineering.ChargerUserName; entity.MainDeptInfo = engineering.MainDept; entity.MainDeptInfoName = engineering.MainDeptName; entity.EngineeringOtherDept = engineering.OtherDept; entity.EngineeringOtherDeptName = engineering.OtherDeptName; } var phaseName = ""; var phaseList = BaseConfigFO.GetWBSAttrList(WBSNodeType.Phase); var entityPhaseList = phaseList.Where(d => entity.Phase.Contains(d.Code)).ToList(); foreach (var item in entityPhaseList) { phaseName += item.Name + ","; } engineering.PhaseContent = phaseName.TrimEnd(','); engineering.PhaseValue = entity.Phase; #endregion if (!string.IsNullOrEmpty(entity.MultiProjMode) && entity.MultiProjMode.ToLower() == "1") { var list = entity.Phase.Split(','); if (list.Length == 0) { throw new Formula.Exceptions.BusinessException("没有指定阶段"); } string projIds = ""; foreach (var item in entity.T_CP_TaskNotice_PhaseDetail) { var prj = AddProject(entity, engineering, item); projIds += prj.ID + ","; item.ProjectInfoID = prj.ID; projectList.Add(prj); } entity.ProjectInfoID = projIds.TrimEnd(','); } else { var prj = AddProject(entity, engineering); projectList.Add(prj); } #endregion } this.BusinessEntities.SaveChanges(); marketEntities.SaveChanges(); #region 自动同步核算项目 Expenses.Logic.CBSInfoFO.SynCBSInfo(FormulaHelper.ModelToDic <T_CP_TaskNotice>(entity), Expenses.Logic.SetCBSOpportunity.TaskNoticeComplete); #endregion }
public JsonResult ValidateData() { var reader = new System.IO.StreamReader(HttpContext.Request.InputStream); string data = reader.ReadToEnd(); var tempdata = JsonConvert.DeserializeObject <Dictionary <string, string> >(data); var excelData = JsonConvert.DeserializeObject <ExcelData>(tempdata["data"]); var eID = GetQueryString("EngineeringInfoID"); S_I_Engineering engin = entities.Set <S_I_Engineering>().Find(eID); if (engin == null) { throw new Formula.Exceptions.BusinessValidationException("未找到ID为" + eID + "的S_I_Engineering"); } var errors = excelData.Vaildate(e => { if (e.FieldName == "Name" && String.IsNullOrEmpty(e.Value)) { e.IsValid = false; e.ErrorText = "姓名不能为空"; } else if (e.FieldName == "SubcontractingUnit") { if (String.IsNullOrEmpty(e.Value)) { e.IsValid = false; e.ErrorText = "分包单位不能为空"; } else { var tmpQuery = entities.Set <S_P_ContractInfo>().Where(a => a.EngineeringInfoID == eID && a.ContractProperty == "Construction" && a.ContractState == "Sign"); if (!tmpQuery.Any(a => a.PartyBName == e.Value.Trim())) { e.IsValid = false; e.ErrorText = "已签约分包合同中未找到该乙方名称"; } } } else if (e.FieldName == "ExpiryDate" && !String.IsNullOrEmpty(e.Value)) { DateTime tmpDate = DateTime.Now; if (!DateTime.TryParse(e.Value, out tmpDate)) { e.IsValid = false; e.ErrorText = "有效期限格式不正确"; } } else if (e.FieldName == "EntryDate" && !String.IsNullOrEmpty(e.Value)) { DateTime tmpDate = DateTime.Now; if (!DateTime.TryParse(e.Value, out tmpDate)) { e.IsValid = false; e.ErrorText = "进场时间格式不正确"; } } else if (e.FieldName == "ExitDate" && !String.IsNullOrEmpty(e.Value)) { DateTime tmpDate = DateTime.Now; if (!DateTime.TryParse(e.Value, out tmpDate)) { e.IsValid = false; e.ErrorText = "退场时间格式不正确"; } } }); return(Json(errors)); }
public JsonResult SaveExcelData() { var reader = new System.IO.StreamReader(HttpContext.Request.InputStream); string data = reader.ReadToEnd(); var tempdata = JsonConvert.DeserializeObject <Dictionary <string, string> >(data); var list = JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(tempdata["data"]); var eID = GetQueryString("EngineeringInfoID"); S_I_Engineering engin = entities.Set <S_I_Engineering>().Find(eID); if (engin == null) { throw new Formula.Exceptions.BusinessValidationException("未找到ID为" + eID + "的S_I_Engineering"); } foreach (var item in list) { T_HSE_SpecOperaPerson detail = new T_HSE_SpecOperaPerson(); detail.ID = FormulaHelper.CreateGuid(); detail.EngineeringInfoID = eID; detail.Name = item.GetValue("Name"); var tmpQuery = entities.Set <S_P_ContractInfo>().Where(a => a.EngineeringInfoID == eID && a.ContractProperty == "Construction" && a.ContractState == "Sign"); string tmpStr = item.GetValue("SubcontractingUnit").Trim(); var sing = tmpQuery.FirstOrDefault(a => a.PartyBName == tmpStr); if (sing != null) { detail.SubcontractingUnit = sing.PartyB; detail.SubcontractingUnitName = sing.PartyBName; } else { throw new Formula.Exceptions.BusinessValidationException("已签约分包合同中未找到" + tmpStr); } detail.Sex = item.GetValue("Sex"); detail.Phone = item.GetValue("Phone"); detail.IDCard = item.GetValue("IDCard"); detail.WorkType = item.GetValue("WorkType"); detail.OperaCerfNum = item.GetValue("OperaCerfNum"); detail.LicOrg = item.GetValue("LicOrg"); detail.CreateDate = DateTime.Now; detail.CreateUserID = CurrentUserInfo.UserID; detail.CreateUser = CurrentUserInfo.UserName; detail.CompanyID = CurrentUserInfo.UserCompanyID; detail.OrgID = CurrentUserInfo.UserOrgID; if (!string.IsNullOrEmpty(item.GetValue("ExpiryDate"))) { detail.ExpiryDate = Convert.ToDateTime(item.GetValue("ExpiryDate")); } if (!string.IsNullOrEmpty(item.GetValue("EntryDate"))) { detail.EntryDate = Convert.ToDateTime(item.GetValue("EntryDate")); } if (!string.IsNullOrEmpty(item.GetValue("ExitDate"))) { detail.ExitDate = Convert.ToDateTime(item.GetValue("ExitDate")); } entities.Set <T_HSE_SpecOperaPerson>().Add(detail); } entities.SaveChanges(); return(Json("Success")); }
public string CreateNewProject(string EngineeringID) { var entity = FormulaHelper.GetEntities <EPCEntities>(); var isOver = entity.Set <S_I_Engineering>().Where(c => c.OldEngineeringID == EngineeringID).ToList(); var newid = ""; if (isOver.Count == 0) { S_I_Engineering oldProject = entity.Set <S_I_Engineering>().FirstOrDefault(c => c.ID == EngineeringID); S_I_Engineering newProject = new S_I_Engineering(); newid = FormulaHelper.CreateGuid(); newProject.ID = newid; newProject.OldEngineeringID = EngineeringID; newProject.ContractMode = "AfterSale"; newProject.CreateDate = DateTime.Now; newProject.CreateUser = FormulaHelper.GetUserInfo().UserName; newProject.CreateUserID = FormulaHelper.GetUserInfo().UserID; newProject.Name = oldProject.Name + "(售后项目)"; newProject.OrgID = oldProject.OrgID; newProject.OtherDept = oldProject.OtherDept; newProject.OtherDeptName = oldProject.OtherDeptName; //newProject.PBSRoot = oldProject.PBSRoot; newProject.PhaseValue = oldProject.PhaseValue; newProject.ProductionValue = oldProject.ProductionValue; newProject.ProjectClass = oldProject.ProjectClass; newProject.ProjectContent = oldProject.ProjectContent; newProject.ProjectPhase = oldProject.ProjectPhase; newProject.ProjectPreiod = oldProject.ProjectPreiod; newProject.ProjectScale = oldProject.ProjectScale; newProject.Remark = oldProject.Remark; newProject.SalePeriod = oldProject.SalePeriod; newProject.SerialNumber = oldProject.SerialNumber; newProject.State = oldProject.State; newProject.Status = oldProject.Status; newProject.StepName = oldProject.StepName; newProject.SuccessRate = oldProject.SuccessRate; newProject.Advantage = oldProject.Advantage; newProject.Attachment = oldProject.Attachment; newProject.BiddingCharger = oldProject.BiddingCharger; newProject.BiddingChargerName = oldProject.BiddingChargerName; newProject.BuildFormID = oldProject.BuildFormID; newProject.BuildType = oldProject.BuildType; newProject.BusinessCharger = oldProject.BusinessCharger; newProject.BusinessChargerName = oldProject.BusinessChargerName; //newProject.CBSRoot = oldProject.CBSRoot; newProject.ChargerDept = oldProject.ChargerDept; newProject.ChargerDeptName = oldProject.ChargerDeptName; newProject.ChargerUser = oldProject.ChargerUser; newProject.ChargerUserName = oldProject.ChargerUserName; newProject.CompanyID = oldProject.CompanyID; newProject.Competition = oldProject.Competition; //newProject.ConstructionRoot = oldProject.ConstructionRoot; newProject.CurrentPhase = oldProject.CurrentPhase; newProject.CustomerAddress = oldProject.CustomerAddress; newProject.CustomerCode = oldProject.CustomerCode; newProject.CustomerInfo = oldProject.CustomerInfo; newProject.CustomerInfoName = oldProject.CustomerInfoName; //newProject.DeviceRoot = oldProject.DeviceRoot; newProject.ExaminePerformance = oldProject.ExaminePerformance; newProject.FlowInfo = oldProject.FlowInfo; newProject.FlowPhase = oldProject.FlowPhase; newProject.Investment = oldProject.Investment; newProject.IsInvestigate = oldProject.IsInvestigate; newProject.IsInvestigateDate = oldProject.IsInvestigateDate; newProject.IsInvestigateProject = oldProject.IsInvestigateProject; //newProject.LaborRoot = oldProject.LaborRoot; //newProject.Mode = oldProject.Mode; newProject.ModeCode = "EPCAfterSale"; newProject.ModifyDate = oldProject.ModifyDate; newProject.ModifyUser = oldProject.ModifyUser; newProject.ModifyUserID = oldProject.ModifyUserID; entity.Set <S_I_Engineering>().Add(newProject); entity.SaveChanges(); } return(newid); }