public IActionResult GetPlanDetail([FromBody] PlanInitDto parm) { string[] subitemids = parm.Ids.Split(','); List <Biz_ContractItem_Sub> subItemlist = _contractitemsubService.GetWhere(m => subitemids.Contains(m.ID)); if (subItemlist.Any(m => m.status > 20000)) { return(toResponse(StatusCodeType.Error, "当前项目已经提交安排,请刷新列表再试!")); } if (subItemlist.Any(m => m.ContractItemSubType == 0) && subItemlist.Any(m => m.ContractItemSubType == 1)) { return(toResponse(StatusCodeType.Error, "不允许同时安排一阶段跟二阶段项目,请核对!")); } string ids = "'" + string.Join("','", subitemids) + "'"; var customerid = Core.DbContext.Db.Ado.SqlQuery <string>(string.Format("select distinct CustomerID from Biz_MainContract where ID in (select MainContractID from Biz_ContractItem_Sub where ID in ({0}))", ids)).ToList(); if (customerid.Count() > 1) { return(toResponse(StatusCodeType.Error, "不同客户下项目不允许一起安排,请核对!")); } //任务信息 ItemPlanVM plandata = new ItemPlanVM(); plandata.CustomerID = customerid.First().ToString(); plandata.ContractItem_SubList = subItemlist; //添加体系项目 //审核员信息 List <PlanAuditorVM> planlist = new List <PlanAuditorVM>(); PlanAuditorVM plan = new PlanAuditorVM(); List <Biz_Contract_PlanAuditor_Item> AuditorItemList = new List <Biz_Contract_PlanAuditor_Item>(); foreach (var subItem in subItemlist) { Biz_Contract_PlanAuditor_Item planauditor_item = new Biz_Contract_PlanAuditor_Item(); //审核员项目信息 planauditor_item.ContractItemSubID = subItem.ID; AuditorItemList.Add(planauditor_item); } plan.PlanAuditItemList = AuditorItemList; planlist.Add(plan); plandata.PlanAuditorList = planlist; return(toResponse(plandata)); }
public IActionResult GetPlanDetail(string id = null) { if (string.IsNullOrEmpty(id)) { return(toResponse(StatusCodeType.Error, "id不允许为空!")); } using (SqlSugarClient db = Core.DbContext.CurrentDB) { Biz_Contract_Plan plan = _contractitemplanService.GetId(id); if (plan == null) { return(toResponse(StatusCodeType.Error, "查询不到相关项目信息,请核对!")); } //任务信息 ItemPlanVM plandata = Api.Common.Helpers.ComHelper.Mapper <ItemPlanVM, Biz_Contract_Plan>(plan); List <Biz_ContractItem_Sub> subItemList = _contractitemsubService.GetWhere(m => m.ContractPlanID == plandata.ID); //审核员信息 List <Biz_Contract_PlanAuditor> planauditorlist = _contractplanauditorService.GetWhere(m => m.ContractPlanID == plandata.ID); List <PlanAuditorVM> planauditorviewlist = new List <PlanAuditorVM>(); foreach (var planauditor in planauditorlist) { PlanAuditorVM planauditorview = Api.Common.Helpers.ComHelper.Mapper <PlanAuditorVM, Biz_Contract_PlanAuditor>(planauditor); planauditorview.PlanAuditItemList = _contractplanauditoritemService.GetWhere(m => m.PlanAuditorID == planauditorview.ID); planauditorviewlist.Add(planauditorview); } plandata.ContractItem_SubList = subItemList; plandata.PlanAuditorList = planauditorviewlist; return(toResponse(plandata)); } }
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)); } } }
public IActionResult Update([FromBody] ItemPlanVM parm) { using (SqlSugarClient db = Core.DbContext.CurrentDB) { db.Ado.BeginTran(); try { //合同信息 Biz_Contract_Plan plan = Api.Common.Helpers.ComHelper.Mapper <Biz_Contract_Plan, ItemPlanVM>(parm); db.Updateable <Biz_Contract_Plan>().SetColumns(m => new Biz_Contract_Plan() { PlanStartDate = parm.PlanStartDate, PlanEndDate = parm.PlanEndDate, PlanRemark = parm.PlanRemark, Remark = parm.Remark, }).Where(m => m.ID == parm.ID).ExecuteCommand(); //体系项目信息 List <Biz_ContractItem_Sub> subitemlist = parm.ContractItem_SubList; 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(); } //审核员信息 List <PlanAuditorVM> auditorlist_insert = parm.PlanAuditorList_insert; //插入 List <PlanAuditorVM> auditorlist_update = parm.PlanAuditorList_update; //更新 List <PlanAuditorVM> auditorlist_delete = parm.PlanAuditorList_delete; //删除 //删除信息 string[] auditorids = auditorlist_delete.Select(x => x.ID).ToArray(); db.Deleteable <Biz_Contract_PlanAuditor_Item>().Where(m => auditorids.Contains(m.PlanAuditorID)).ExecuteCommand(); //删除审核人项目 db.Deleteable <Biz_Contract_PlanAuditor>().Where(m => auditorids.Contains(m.ID)).ExecuteCommand(); //删除审核人 //插入审核员信息 foreach (var auditorVM in auditorlist_insert) { 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 = parm.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(); } } //更新审核员信息 foreach (var auditorVM in auditorlist_update) { db.Updateable <Biz_Contract_PlanAuditor>().SetColumns(m => new Biz_Contract_PlanAuditor() { UserID = auditorVM.UserID, }).Where(m => m.ID == auditorVM.ID).ExecuteCommand(); foreach (var auditoritem in auditorVM.PlanAuditItemList) { db.Updateable <Biz_Contract_PlanAuditor_Item>().SetColumns(m => new Biz_Contract_PlanAuditor_Item() { GroupIdentityID = auditoritem.GroupIdentityID, GroupIdentityName = auditoritem.GroupIdentityName, WitnessTypeID = auditoritem.WitnessTypeID, WitnessTypeName = auditoritem.WitnessTypeName, WitnessTypeUserName = auditoritem.WitnessTypeUserName, GroupCode = auditoritem.GroupCode, ProfessionCode = auditoritem.ProfessionCode, }).Where(m => m.ID == auditoritem.ID).ExecuteCommand(); } } db.Ado.CommitTran(); return(toResponse(plan.ID)); } catch (Exception ex) { db.Ado.RollbackTran(); return(toResponse(StatusCodeType.Error, ex.Message)); } } }