whereBetween('created_at', $searchInfo['dateRange']); } else { $list = $list->whereBetween('created_at', [date('Y-m-d'), date('Y-m-d')]); } if (isset($searchInfo['orgname'])) { $list = $list->where('hospitalName', 'like', '%' . $searchInfo['orgname'] . '%'); } if (isset($searchInfo['hospitalCode'])) { $list = $list->where('hospitalCode', $searchInfo['hospitalCode']); } $count = $list->count(); $list = $list->orderBy('created_at', 'desc')->skip(($page-1)*$pageSize)->take($pageSize)->get(); foreach ($list as $k => $v) { $list[$k]->pdf_url=null; $pdf=DB::table('health_certificate_push_pdf')->where([ 'hospitalCode' => $v->hospitalCode,'healthExaminationId' => $v->healthExaminationId])->first(); if(!!$pdf){ $list[$k]->pdf_url=$pdf->pdf_url; } } return \Yz::Return(true, "查询完成", ['list' => $list,'count'=>$count]); } public function GetPingTaiOrgList() { $list = DB::table('health_certificate_push')->select('hospitalCode','hospitalName')->groupBy('hospitalCode','hospitalName')->get(); return \Yz::Return(true, "查询完成", ['list' => $list]); } public function GetDetail() { $id = request('id'); // 获取原始信息 $info = DB::table('health_certificate_push')->where('id', $id)->first(); if (!$info) { return \Yz::Return(false, "未找到对应数据"); } // 将对象转换为数组以便处理 $infoArray = (array)$info; // 创建英文字段到中文字段的完整映射表 $fieldMapping = [ 'hospitalCode' => '医疗机构编码', 'hospitalName' => '医疗机构名称', 'postTime' => '数据上传时间', 'usci' => '统一社会信用代码', 'healthExaminationId' => '体检登记号', 'examTypeCode' => '从业人员健康检查类别代码', 'examTypeName' => '从业人员健康检查类别名称', 'examTypeText' => '从业人员健康检查类别显示文本', 'examDate' => '体检日期', 'healthCertificateId' => '唯一标识', 'billingStatus' => '收费状态;0 免费,1 自费', 'name' => '姓名', 'photo' => '照片', 'tel' => '电话', 'gender' => '性别代码', 'genderName' => '性别名称', 'identifierTypeCode' => '身份证件类别代码', 'identifierTypeName' => '身份证件类别名称', 'identifierValue' => '身份证件号码', 'hasBacterialDysentery' => '细菌性痢疾(1有 2无)', 'bacterialDysenteryNote' => '细菌性痢疾-备注', 'bacterialDysenteryPractitionerNumber' => '细菌性痢疾-检查医师执业证书编号', 'bacterialDysenteryPractitionerLocalId' => '细菌性痢疾-检查医师机构内编码', 'bacterialDysenteryPractitionerName' => '细菌性痢疾-检查医师', 'bacterialDysenteryDate' => '细菌性痢疾-检查日期', 'hasTyphoid' => '伤寒和副伤寒(1有 2无)', 'typhoidNote' => '伤寒和副伤寒-备注', 'typhoidPractitionerNumber' => '伤寒和副伤寒-检查医师执业证书编号', 'typhoidPractitionerLocalId' => '伤寒和副伤寒-检查医师机构内编码', 'typhoidPractitionerName' => '伤寒和副伤寒-检查医师', 'typhoidDate' => '伤寒和副伤寒-检查日期', 'hasViralHepatitis' => '病毒性肝炎(甲型、戊型)(1有 2无)', 'viralHepatitisNote' => '病毒性肝炎-备注', 'viralHepatitisPractitionerNumber' => '病毒性肝炎-检查医师执业证书编号', 'viralHepatitisPractitionerLocalId' => '病毒性肝炎-检查医师机构内编码', 'viralHepatitisPractitionerName' => '病毒性肝炎-检查医师', 'viralHepatitisDate' => '病毒性肝炎-检查日期', 'hasActiveTB' => '活动性肺结核(1有 2无)', 'activeTBNote' => '活动性肺结核-备注', 'activeTBPractitionerNumber' => '活动性肺结核-检查医师执业证书编号', 'activeTBPractitionerLocalId' => '活动性肺结核-检查医师机构内编码', 'activeTBPractitionerName' => '活动性肺结核-检查医师', 'activeTBDate' => '活动性肺结核-检查日期', 'hasSkinDiseases' => '化脓性或渗出性皮肤病(1有 2无)', 'skinDiseasesNote' => '化脓性或渗出性皮肤病-备注', 'skinDiseasesPractitionerNumber' => '化脓性或渗出性皮肤病-检查医师执业证书编号', 'skinDiseasesPractitionerLocalId' => '化脓性或渗出性皮肤病-检查医师机构内编码', 'skinDiseasesPractitionerName' => '化脓性或渗出性皮肤病-检查医师', 'skinDiseasesDate' => '化脓性或渗出性皮肤病-检查日期', 'hasHandFungal' => '手部真菌感染性疾病(如手癣、指甲癣等)(1有 2无 -1未检查)', 'handFungalNote' => '手部真菌感染性疾病-备注', 'handFungalPractitionerNumber' => '手部真菌感染性疾病-检查医师执业证书编号', 'handFungalPractitionerLocalId' => '手部真菌感染性疾病-检查医师机构内编码', 'handFungalPractitionerName' => '手部真菌感染性疾病-检查医师', 'handFungalDate' => '手部真菌感染性疾病-检查日期', 'hasCholera' => '霍乱(1有 2无 -1未检查)', 'choleraNote' => '霍乱-备注', 'choleraPractitionerNumber' => '霍乱-检查医师执业证书编号', 'choleraPractitionerLocalId' => '霍乱-检查医师机构内编码', 'choleraPractitionerName' => '霍乱-检查医师', 'choleraTestDate' => '霍乱-检查日期', 'hasAmebicDysentery' => '阿米巴性痢疾(1有 2无 -1未检查)', 'amebicDysenteryNote' => '阿米巴性痢疾-备注', 'amebicDysenteryPractitionerNumber' => '阿米巴性痢疾-检查医师执业证书编号', 'amebicDysenteryPractitionerLocalId' => '阿米巴性痢疾-检查医师机构内编码', 'amebicDysenteryPractitionerName' => '阿米巴性痢疾-检查医师', 'amebicDysenteryDate' => '阿米巴性痢疾-检查日期', 'hasHandEczema' => '手部湿疹(1有 2无 -1未检查)', 'handEczemaNote' => '手部湿疹-备注', 'handEczemaPractitionerNumber' => '手部湿疹-检查医师执业证书编号', 'handEczemaPractitionerLocalId' => '手部湿疹-检查医师机构内编码', 'handEczemaPractitionerName' => '手部湿疹-检查医师', 'handEczemaDate' => '手部湿疹-检查日期', 'hasHandPsoriasis' => '手部的银屑病或者鳞屑(1有 2无 -1未检查)', 'handPsoriasisNote' => '手部的银屑病或者鳞屑-备注', 'handPsoriasisPractitionerNumber' => '手部的银屑病或者鳞屑-检查医师执业证书编号', 'handPsoriasisPractitionerLocalId' => '手部的银屑病或者鳞屑-检查医师机构内编码', 'handPsoriasisPractitionerName' => '手部的银屑病或者鳞屑-检查医师', 'handPsoriasisDate' => '手部的银屑病或者鳞屑-检查日期', 'validityDate' => '健康证明生效日期', 'expiryDate' => '健康证明有效截止日期', 'effectiveTime' => '健康证明出具时间', 'updateTime' => '健康证明更新时间', 'healthCertificateUrl' => '从业人员健康证明非结构化文档地址(北京市地址)', 'healthCertificateUrlPt' => '从业人员健康证明非结构化文档地址(区平台地址)', 'isEffective' => '是否有效' ]; // 构建中文键值对 $translatedInfo = []; foreach ($fieldMapping as $key => $chineseKey) { if (isset($infoArray[$key])) { if($key=='photo' and !empty($infoArray[$key])) { $relativePath = substr($infoArray[$key], strlen('/storage')); $infoArray[$key]=Storage::disk('public')->url($relativePath); } $translatedInfo[$chineseKey] = $infoArray[$key]; } } // 返回结果 return \Yz::Return(true, "查询完成", ['info' => $translatedInfo]); } //按机构统计 public function CountByOrg(Request $request) { $s_group = [1, 8]; $userid = $request->get('userid');//中间件产生的参数 $group = $request->get('role');//中间件产生的参数 $searchInfo = request('searchInfo'); if (!in_array($group, $s_group)) { return \Yz::echoError1("无权限查看此数据"); } if(empty($searchInfo['dateRange'])){ $searchInfo['dateRange']=[ date('Y-m-d')." 00:00:00", date('Y-m-d')." 23:59:59" ]; } $list = DB::table('health_certificate_push') ->select( 'hospitalCode as org_code', 'hospitalName as org_name', DB::raw('COUNT(DISTINCT healthCertificateId) as count') ); if (isset($searchInfo['dateRange'])) { $list = $list->whereBetween('created_at', $searchInfo['dateRange']); } else { $list = $list->whereBetween('created_at', [date('Y-m-d'), date('Y-m-d')]); } $list = $list->groupBy('hospitalCode', 'hospitalName') ->get(); return \Yz::Return(true,'查询成功',['list'=>$list,'dateRange'=>$searchInfo['dateRange']]); } //按月统计 public function CountByMonth(Request $request) { $s_group = [1, 8]; $userid = $request->get('userid');//中间件产生的参数 $group = $request->get('role');//中间件产生的参数 $searchInfo = request('searchInfo'); if (!in_array($group, $s_group)) { return \Yz::echoError1("无权限查看此数据"); } if(empty($searchInfo['dateRange'])){ $searchInfo['dateRange']=[ date('Y-m-d')." 00:00:00", date('Y-m-d')." 23:59:59" ]; } $list = DB::table('health_certificate_push') ->select( DB::raw("DATE_FORMAT(created_at, '%Y-%m') as month"), DB::raw('COUNT(DISTINCT healthCertificateId) as count') ); if (isset($searchInfo['dateRange'])) { $list = $list->whereBetween('created_at', $searchInfo['dateRange']); } else { $list = $list->whereBetween('created_at', [date('Y-m-d'), date('Y-m-d')]); }; $list = $list->groupBy(DB::raw("DATE_FORMAT(created_at, '%Y-%m')")) ->orderBy(DB::raw("DATE_FORMAT(created_at, '%Y-%m')"), 'asc') ->get(); return \Yz::Return(true,'查询成功',['list'=>$list,'dateRange'=>$searchInfo['dateRange']]); } }