public IActionResult GetDetail(string id = null) { if (string.IsNullOrEmpty(id)) { return(toResponse(StatusCodeType.Error, "Id 不能为空")); } var userinfo = _tokenManager.GetSessionInfo(); var contract = _maincontractService.GetId(id); if (contract == null || contract.deleted == 1) { return(toResponse(StatusCodeType.Error, "当前合同信息不存在")); } MainContractVM maincotract = Api.Common.Helpers.ComHelper.Mapper <MainContractVM, Biz_MainContract>(contract); //获取客户信息 maincotract.ContractCustomerInfo = _customerService.GetFirst(m => m.khxxID == maincotract.CustomerID); //获取合同体系项目 maincotract.ContractItemList = _contractitemService.GetWhere(m => m.MainContractID == maincotract.ID && m.deleted == 0); //获取合同分场所信息 maincotract.ContractfcsList = Core.DbContext.Db.Queryable <Biz_ContractFcs, uf_fcsxx>((a, b) => new object[] { JoinType.Left, a.fcsID == b.fcsID }).OrderBy((a, b) => b.fcslx, OrderByType.Desc).Where((a, b) => a.MainContractID == maincotract.ID) .Select((a, b) => new FcsVM { ID = a.ID, fcsID = (int)a.fcsID, fcslx = b.fcslx, fcslxmc = b.fcslxmc, fcsmc = b.fcsmc, fcsmcy = b.fcsmcy, dz = b.dz, dzy = b.dzy, lxdh = b.lxdh, cz = b.cz, lxr = b.lxr, lxrsj = b.lxrsj, fxcrs = b.fxcrs, jzbjl = b.jzbjl, znbm = b.znbm, fcshd = b.fcshd, bz = b.bz }).ToList(); //按类型排序显示 //获取合同附件信息 maincotract.ContractFileList = _contractfileService.GetWhere(m => m.MainContractID == maincotract.ID); return(toResponse(maincotract)); }
public IActionResult GetDetail(string id = null) { if (string.IsNullOrEmpty(id)) { return(toResponse(StatusCodeType.Error, "Id 不能为空")); } var userinfo = _tokenManager.GetSessionInfo(); using (SqlSugarClient db = Core.DbContext.CurrentDB) { var contract = _maincontractService.GetId(id); if (contract == null || contract.deleted == 1) { return(toResponse(StatusCodeType.Error, "当前合同信息不存在")); } AuditContractVM maincotract = Api.Common.Helpers.ComHelper.Mapper <AuditContractVM, Biz_MainContract>(contract); //获取客户信息 maincotract.ContractCustomerInfo = _customerService.GetId(maincotract.CustomerID); //获取合同体系项目 List <Biz_ContractItem> itemlist = _contractitemService.GetWhere(m => m.MainContractID == maincotract.ID && m.deleted == 0); List <ContractItemVM> ItemVMList = new List <ContractItemVM>(); foreach (var item in itemlist) { ContractItemVM itemVM = Api.Common.Helpers.ComHelper.Mapper <ContractItemVM, Biz_ContractItem>(item); //默认赋值基础人日 DataTable contrcatitem = db.Ado.GetDataTable("select PropleNum,SystemTypeID from Biz_ContractItem b inner join Abi_SysStandard c on b.ItemStandardID = c.ID where b.ID =@ID", new { ID = item.ID }); //获取体系人数 if (contrcatitem.Rows.Count > 0 && (item.FirstTrialBaseDays == null || item.FirstTrialBaseDays == 0)) { //return toResponse(StatusCodeType.Error, "项目信息获取失败"); object auditdays = db.Ado .GetDecimal(@"select AuditDays from Sys_AuditTime where SystemTypeID = @SystemTypeID and (isnull(RiskRegisterID,0) = 0) and (isnull(DownLimt,0) < @PropleNum and isnull(UpLimit,99999) > @PropleNum)", new { SystemTypeID = contrcatitem.Rows[0]["SystemTypeID"].ToString(), PropleNum = contrcatitem.Rows[0]["PropleNum"].ToString() }); if (auditdays == null) { return(toResponse(StatusCodeType.Error, "匹配基础人日信息失败,请核对!")); } itemVM.FirstTrialBaseDays = (decimal)auditdays; //初审基础人日 itemVM.SupervisionBaseDays = Math.Round(((decimal)auditdays / 3), 2); //监督基础人日 itemVM.RecertificationBaseDays = Math.Round(((decimal)auditdays / 3) * 2, 2); //再认证基础人日 } //增人日依据 itemVM.ContractItemAddList = Core.DbContext.Db.Queryable <Biz_ContractItem_Add>().Where(m => m.ContractItemID == item.ID).ToList(); //减人日依据 itemVM.ContractItemMinusList = Core.DbContext.Db.Queryable <Biz_ContractItem_Minus>().Where(m => m.ContractItemID == item.ID).ToList(); //体系业务代码 itemVM.ContractItemBizClassificationList = Core.DbContext.Db.Queryable <Biz_ContractItem_BizClassification, Abi_BizClassification>((a, b) => new object[] { JoinType.Left, a.BizClassificationID == b.ID }).Where((a, b) => a.ContractItemID == item.ID && b.Enabled == true).Select((a, b) => new ContractItemBizClassVM { ID = a.ID, ContractItemID = item.ID, BizClassificationID = a.BizClassificationID, SystemTypeID = b.SystemTypeID, SystemTypeCode = b.SystemTypeCode, SystemTypeName = b.SystemTypeName, ClassificationCode = b.ClassificationCode, ClassificationReportCode = b.ClassificationReportCode, ClassificationName = b.ClassificationName, ClassificationNameEN = b.ClassificationNameEN, Industry = b.Industry, RiskRegister = b.RiskRegister, CNAS = b.CNAS }).ToList(); ItemVMList.Add(itemVM); } maincotract.ContractItemList = ItemVMList; //获取合同分场所信息 maincotract.ContractfcsList = Core.DbContext.Db.Queryable <Biz_ContractFcs, uf_fcsxx>((a, b) => new object[] { JoinType.Left, a.fcsID == b.fcsID }).OrderBy((a, b) => b.fcslx).Where((a, b) => a.MainContractID == maincotract.ID) .Select((a, b) => new FcsVM { ID = a.ID, fcsID = (int)a.fcsID, fcslx = b.fcslx, fcslxmc = b.fcslxmc, fcsmc = b.fcsmc, fcsmcy = b.fcsmcy, dz = b.dz, dzy = b.dzy, lxdh = b.lxdh, cz = b.cz, lxr = b.lxr, lxrsj = b.lxrsj, fxcrs = b.fxcrs, jzbjl = b.jzbjl, znbm = b.znbm, fcshd = b.fcshd, bz = b.bz }).ToList(); //固定场所排序显示 //获取合同附件信息 maincotract.ContractFileList = _contractfileService.GetWhere(m => m.MainContractID == maincotract.ID); //支持方式 if (maincotract.SupportWay != null) { string[] IDs = maincotract.SupportWay.Split(','); maincotract.SupportWayList = db.Queryable <Frm_SelectItemObj>().Where(m => IDs.Contains(m.SelectItemIndex.ToString())).ToList(); } return(toResponse(maincotract)); } }
public IActionResult ApprovePass(ApproveContractSubmitDto param) { var userinfo = _tokenManager.GetSessionInfo(); var maincontract = _maincontractService.GetId(param.ID); if (maincontract.status != 10020) { return(toResponse(StatusCodeType.Error, "当前合同不在当前状态,请核对")); } 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)); parameters.Add(new SugarParameter("ContractApproveTime", param.ContractApproveTime)); //合同审批日期 parameters.Add(new SugarParameter("ApproveRemark", param.ApproveRemark)); //批准备注 Step.Submit(db, maincontract, "Biz_MainContract", "ID", "status", "103", parameters, UpdateBizEntityAfterSubmitted, "审批通过"); #region 生成子项目信息 List <Biz_ContractItem> itemList = _contractitemService.GetWhere(m => m.MainContractID == param.ID && m.deleted == 0); foreach (var Item in itemList) { var AuditType = db.Queryable <Cfg_AuditType>().First(m => m.ID == Item.AuditTypeID); if ((bool)AuditType.NeedFirstStage) { ContractItemSubCreateDto itemsub1 = new ContractItemSubCreateDto(); itemsub1.MainContractID = Item.MainContractID; itemsub1.ContractItemID = Item.ID; itemsub1.ContractItemSubType = 0; //一阶段 itemsub1.ContractItemSubTypeCode = string.Format("一阶段({0})", (Item.IsSiteWork != null && (bool)Item.IsSiteWork) ? "现" : "非"); itemsub1.CNAS = Item.CNAS; //认可标识 itemsub1.AuditScope = Item.AuditScope; //审核范围 itemsub1.CertificatesIssue = true; //是否发证 itemsub1.NotificationIssue = false; //是否发保持通知书 ContractItemSubCreateDto itemsub2 = new ContractItemSubCreateDto(); itemsub2.MainContractID = Item.MainContractID; itemsub2.ContractItemID = Item.ID; itemsub2.ContractItemSubType = 1; //二阶段 itemsub2.ContractItemSubTypeCode = "二阶段"; itemsub2.CNAS = Item.CNAS; //认可标识 itemsub2.AuditScope = Item.AuditScope; //审核范围 itemsub2.CertificatesIssue = true; //是否发证 itemsub2.NotificationIssue = false; //是否发保持通知书 db.Insertable(itemsub1).AS("Biz_ContractItem_Sub").ExecuteCommand(); db.Insertable(itemsub2).AS("Biz_ContractItem_Sub").ExecuteCommand(); } else { ContractItemSubCreateDto itemsub = new ContractItemSubCreateDto(); itemsub.MainContractID = Item.MainContractID; itemsub.ContractItemID = Item.ID; itemsub.ContractItemSubType = 3; itemsub.ContractItemSubTypeCode = AuditType.AuditTypeName; itemsub.CNAS = Item.CNAS; //认可标识 itemsub.AuditScope = Item.AuditScope; //审核范围 itemsub.CertificatesIssue = true; //是否发证 itemsub.NotificationIssue = false; //是否发保持通知书 db.Insertable(itemsub).AS("Biz_ContractItem_Sub").ExecuteCommand(); } } #endregion Core.DbContext.CommitTran(); return(toResponse("提交成功")); } catch (Exception ex) { Core.DbContext.RollbackTran(); return(toResponse(StatusCodeType.Error, ex.Message)); } } }