/// <summary> /// 30、 项目详情 /// </summary> /// <param name="id">项目id</param> /// <returns></returns> /// Jerry Shi public ProjectDetailResponse detail(string token, string id) { ProjectDetailResponse projectDetailResponse = new ProjectDetailResponse(); try { string ApiResponse = string.Empty; Dictionary <string, string> sPara = new Dictionary <string, string>(); sPara.Add("id", id); ApiResponse = F8YLSubmit.BuildGetRequest(sPara, "project/detail?token=" + token); if (!ApiResponse.Contains("[]")) { projectDetailResponse = JsonHelper.DeserializeJsonToObject <ProjectDetailResponse>(ApiResponse); } } catch (Exception ex) { AppLog.Instance.Write("detail", AppLog.LogMessageType.Error, ex); } return(projectDetailResponse); }
/// <summary> /// 获取项目明细 /// </summary> /// <param name="projectId"></param> /// <returns></returns> public async Task <ProjectDetailResponse> GetDetailAsync(string projectId) { var query = new SqlBuilder(); query.AddSql(@" select distinct pro.Id , pro.Name ProjectName , pro.EngineerId ProjectCollectionId , eng.Name ProjectCollectionName , pro.PType ProjectType , pro.Code ProjectCode , pro.KvLevel KVLevel , pro.ConstructType Construction , pro.Stage Stage , pro.Batch Batch , eng.PlannedYear BatchYear , pro.PileRange PileRange , pro.DisclosureRange DisclosureRange , '' Province , '' City , '' Area , pro.Meteorologic Meteorologic , pro.CompanyId CompanyId , pro.CreatedOn CreatedOn , ps.Status FlowState , ps.IsResetSurvey IsResetSurvey , '备注' Remark from pdd_t_project pro inner join pdd_t_engineer eng on eng.Id = pro.EngineerId inner join pdd_t_project_state ps on ps.Id = pro.Id inner join pdd_t_project_allot_user pau on pau.ProjectId = pro.Id and pau.UserId = @UserId and pau.ArrangeType = 1 where pro.Id = @ProjectId;"); query.AddParam("UserId", CurrentUser.Id); query.AddParam("ProjectId", projectId); var project = await DbHelper.QuerySingleAsync <ProjectResponse>(query); var projectState = await DbHelper.FindByIdAsync <ProjectState>(project.Id); ProjectDetailResponse result = null; if (project != null) { result = new ProjectDetailResponse(); result.Project = project; if (project.FlowState == ProjectFlowState.未勘察) { return(result); } query.ClearSql(); query.AddSql(@" SELECT tower.*,extTower.PoleTypeCode FROM pdd_t_survey_tower tower LEFT JOIN pdd_t_survey_tower_ext extTower on tower.ID=extTower.ID WHERE tower.ProjectID=@ProjectId;"); query.AddSql(@" SELECT ptsc.*,ptsce.C_ModeID FROM pdd_t_survey_cable as ptsc LEFT JOIN pdd_t_survey_cable_ext as ptsce ON ptsc.ID=ptsce.ID WHERE ptsc.ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_survey_cablechannel WHERE ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_survey_cabledevice WHERE ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_survey_overheaddevice WHERE ProjectID=@ProjectId;"); query.AddSql(@" SELECT line.*,lineExt.L_ModeID FROM pdd_t_survey_line line LEFT JOIN pdd_t_survey_line_ext lineExt on lineExt.Id=line.ID WHERE line.ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_survey_mark WHERE ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_survey_media WHERE ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_trackrecord WHERE ProjectID=@ProjectId and RecordType=1;"); query.AddSql(@" SELECT * FROM pdd_t_design_tower tower LEFT JOIN pdd_t_design_tower_ext extTower on tower.ID=extTower.ID WHERE tower.ProjectID=@ProjectId;"); query.AddSql(@" SELECT ptdc.*,ptdce.C_ModeID FROM pdd_t_design_cable as ptdc LEFT JOIN pdd_t_design_cable_ext as ptdce ON ptdc.ID=ptdce.ID WHERE ptdc.ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_design_cablechannel WHERE ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_design_cabledevice WHERE ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_design_overheaddevice WHERE ProjectID=@ProjectId;"); query.AddSql(@" SELECT line.*,lineExt.L_ModeID FROM pdd_t_design_line line LEFT JOIN pdd_t_design_line_ext lineExt on lineExt.Id=line.ID WHERE line.ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_design_mark WHERE ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_design_media WHERE ProjectID=@ProjectId;"); if ((projectState.OutsideStatus & ProjectOutsideStatus.交底中) > 0 || (projectState.OutsideStatus & ProjectOutsideStatus.交底完成) > 0) { query.AddSql(@" SELECT * FROM pdd_t_trackrecord WHERE ProjectID=@ProjectId and RecordType=2;"); query.AddSql(@" SELECT * FROM pdd_t_project_disclosure WHERE ProjectID=@ProjectId;"); query.AddSql(@" SELECT * FROM pdd_t_project_disclosureitem WHERE ProjectID=@ProjectId;"); } using (var reader = await DbHelper.QueryMultipleAsync(query)) { result.SurveyData = new CollectionDataResponse(); result.SurveyData.Towers = await reader.ReadAsync <TowerResponse>(); result.SurveyData.Cables = await reader.ReadAsync <CableResponse>(); result.SurveyData.CableChannels = await reader.ReadAsync <CableChannelResponse>(); result.SurveyData.CableEquipments = await reader.ReadAsync <CableEquipmentResponse>(); result.SurveyData.OverheadEquipments = await reader.ReadAsync <OverheadEquipmentResponse>(); result.SurveyData.Lines = await reader.ReadAsync <LineResponse>(); foreach (var surveyDataLine in result.SurveyData.Lines) { surveyDataLine.L_Mode = surveyDataLine.L_ModeID; } result.SurveyData.Marks = await reader.ReadAsync <MarkResponse>(); result.SurveyData.Medias = await reader.ReadAsync <MediaResponse>(); result.SurveyData.TrackRecords = await reader.ReadAsync <ProjectTrackRecordResponse>(); result.DesignData = new CollectionDataResponse(); result.DesignData.Towers = await reader.ReadAsync <TowerResponse>(); result.DesignData.Cables = await reader.ReadAsync <CableResponse>(); result.DesignData.CableChannels = await reader.ReadAsync <CableChannelResponse>(); result.DesignData.CableEquipments = await reader.ReadAsync <CableEquipmentResponse>(); result.DesignData.OverheadEquipments = await reader.ReadAsync <OverheadEquipmentResponse>(); result.DesignData.Lines = await reader.ReadAsync <LineResponse>(); foreach (var designDataLine in result.DesignData.Lines) { designDataLine.L_Mode = designDataLine.L_ModeID; } result.DesignData.Marks = await reader.ReadAsync <MarkResponse>(); result.DesignData.Medias = await reader.ReadAsync <MediaResponse>(); if ((projectState.OutsideStatus & ProjectOutsideStatus.交底中) > 0 || (projectState.OutsideStatus & ProjectOutsideStatus.交底完成) > 0) { result.DisclosureData = new DisclosureDataResponse(); result.DisclosureData.TrackRecords = await reader.ReadAsync <ProjectTrackRecordResponse>(); result.DisclosureData.Disclosures = (await reader.ReadAsync <ProjectDisclosureResponse>())?.ToList(); var disclosureItems = (await reader.ReadAsync <ProjectDisclosureItemResponse>())?.ToList(); if (result.DisclosureData.Disclosures.HasVal() && disclosureItems.HasVal()) { foreach (var item in result.DisclosureData.Disclosures) { item.Items = disclosureItems.Where(m => m.DisclosureId == item.Id).ToList(); disclosureItems.RemoveAll(m => m.DisclosureId == item.Id); } } } } } return(result); }
//ProjectDetail public ActionResult ProjectDetail(string id) { var token = Session["token"] == null ? "XXXXXXX" : Session["token"].ToString(); ViewBag.role = Session["role"] == null ? "XXXXXXX" : Session["role"].ToString(); ViewBag.username = Session["username"] == null ? "XXXXXXX" : Session["username"].ToString(); ViewBag.sessionHospitalid = Session["hospitalid"] == null ? "XXXXXXX" : Session["hospitalid"].ToString(); //实体 ProjectDetailResponse projectDetailResponse = new ProjectDetailResponse(); HospitalRequest hospitalrequest = new HospitalRequest(); HospitalSearchResponse response = new HospitalSearchResponse(); //医院列表 HospitalUserProfileResponse hospitalprofile = new HospitalUserProfileResponse(); //医院pi ProjectTplListResponse tplListResponse = new ProjectTplListResponse(); //模板列表 TplDetailResponse tpldetailresponse = new TplDetailResponse(); //模板详情 //方法 UserRequest userrequest = new UserRequest(); ViewBag.UserFile = userrequest.profile(token, "").data; ProjectRequest projecttplrequest = new ProjectRequest(); //TplRequest tplrequest = new TplRequest(); List <HospitalUserProfileResponse> listhospitalfrofile = new List <HospitalUserProfileResponse>(); string apiResponse = string.Empty; try { projectDetailResponse = projectRequest.detail(token, id); if (projectDetailResponse.data != null) { if (projectDetailResponse.data.tpl == null) { projectDetailResponse.data.tpl = new List <ProjectDetailTplInfo>(); } //模板列表 tplListResponse = projecttplrequest.ProjectTplList(token, projectDetailResponse.data.id, "", 1); if (tplListResponse.data != null) { //列表detail tpldetailresponse = tplrequest.TplDetail(token, tplListResponse.data.data[0].tplid); } //医院列表 response = hospitalrequest.Search(token, 1, ""); //医院pi if (response.data != null) { foreach (HospitalEntity hs in response.data.data) { hospitalprofile = userrequest.SearchHospitalPi(token, hs.id, ""); if (hospitalprofile.data != null) { listhospitalfrofile.Add(hospitalprofile); } } } } } catch (Exception ex) { throw; } ViewBag.TplList = tplListResponse; //tpllist ViewBag.hospitalSearch = response; //hospitallist ViewBag.hopital = listhospitalfrofile; //pi ViewBag.TplDetail = tpldetailresponse; //tpldetail ViewBag.Token = token; return(View(projectDetailResponse)); }