//[Authorization(Power = "PRIV_COMPANY_CREATE")] public IActionResult Create([FromBody] CompanyCreateDto parm) { if (_companyService.Any(m => m.CompanyNo == parm.CompanyNo)) { return(toResponse(StatusCodeType.Error, $"添加公司编码 {parm.CompanyNo} 已存在,不能重复!")); } var helper = new Common.SerialNoHelper(); var serialno = helper.Generate("N20"); //生成编码 //从 Dto 映射到 实体 var company = parm.Adapt <Base_Company>().ToCreate(_tokenManager.GetSessionInfo()); return(toResponse(_companyService.Add(company))); }
public IActionResult Create([FromBody] ItemPlanVM parm) { var userinfo = _tokenManager.GetSessionInfo(); using (SqlSugarClient db = Core.DbContext.CurrentDB) { Core.DbContext.BeginTran(); try { List <SugarParameter> parameters = new List <SugarParameter>(); parameters.Add(new SugarParameter("UserID", userinfo.UserID)); parameters.Add(new SugarParameter("UserName", userinfo.UserName)); //体系项目信息 List <Biz_ContractItem_Sub> subitemlist = parm.ContractItem_SubList; if (subitemlist.Count == 0) { throw new Exception("提交数据不包含体系项目信息,请核对!"); } string IDs = string.Join(",", subitemlist.Select(m => m.AutoID)); if (db.Ado.GetScalar("select 1 from Biz_ContractItem_Sub where status > 20000 and ContractItemSubID in (@ids)", new { ids = IDs }) != null) { throw new Exception("提交项目包含已经安排项目,请核对!"); } //匹配任务信息 Biz_Contract_Plan plan = new Biz_Contract_Plan(); Api.Common.Helpers.ComHelper.MapperMatch <Biz_Contract_Plan, ItemPlanVM>(plan, parm, "ID", "status"); var helper = new Common.SerialNoHelper(); var serialno = helper.Generate("N20"); //生成任务编号 plan.ContractPlanNo = serialno; plan = plan.Adapt <Biz_Contract_Plan>().ToCreate(_tokenManager.GetSessionInfo()); int ContractPlanID = db.Insertable <Biz_Contract_Plan>(plan).ExecuteReturnIdentity(); //处理项目信息 foreach (var subitem in subitemlist) { //subitem.ContractPlanID = plan.ID; db.Updateable <Biz_ContractItem_Sub>().SetColumns(m => new Biz_ContractItem_Sub() { ContractPlanID = plan.ID, MultiSiteAddDays = subitem.MultiSiteAddDays, AuditCombinDegree = subitem.AuditCombinDegree, DeletionScale = subitem.DeletionScale, PlanTotalDays = subitem.PlanTotalDays, OffSiteDays = subitem.OffSiteDays, FirstDays = subitem.FirstDays, SecondDays = subitem.SecondDays, MultiSitetTravelDays = subitem.MultiSitetTravelDays, OtherAddDays = subitem.OtherAddDays, TrueFirstDays = subitem.TrueFirstDays, TrueSecondDays = subitem.TrueSecondDays, }).Where(m => m.ID == subitem.ID).ExecuteCommand(); //提交 Step.Submit(db, subitem, "Biz_ContractItem_Sub", "ID", "status", "201", parameters, UpdateBizEntityAfterSubmitted, "提交安排"); } //审核员信息 List <PlanAuditorVM> auditorlist = parm.PlanAuditorList; foreach (var auditorVM in auditorlist) { Biz_Contract_PlanAuditor auditor = Api.Common.Helpers.ComHelper.Mapper <Biz_Contract_PlanAuditor, PlanAuditorVM>(auditorVM); auditor = auditor.Adapt <Biz_Contract_PlanAuditor>().ToCreate(_tokenManager.GetSessionInfo()); auditor.ContractPlanID = plan.ID; db.Insertable(auditor).AS("Biz_Contract_PlanAuditor").ExecuteCommand(); foreach (var auditoritem in auditorVM.PlanAuditItemList) { auditoritem.ID = Guid.NewGuid().ToString(); auditoritem.PlanAuditorID = auditor.ID; auditoritem.ContractPlanID = plan.ID; db.Insertable(auditoritem).AS("Biz_Contract_PlanAuditor_Item").ExecuteCommand(); } } Core.DbContext.CommitTran(); return(toResponse(plan.ID)); } catch (Exception ex) { Core.DbContext.RollbackTran(); return(toResponse(StatusCodeType.Error, ex.Message)); } } }