truncate(); $pageSize = 1000; $pageNum = 1; $total = 0; while (true) { $res = HisController::Get('查询药品列表', [ 'pageSize' => $pageSize, 'pageNum' => $pageNum, 'pageFlag' => 1, ]); if ($res['code'] != 200) { return \Yz::JsonError('同步失败:' . $res['message']); } $list = $res['data']['list'] ?? []; if (empty($list)) { break; } $insertData = []; foreach ($list as $item) { $insertData[] = [ 'drugtermId' => $item['drugtermId'] ?? null, 'tradeName' => $item['tradeName'] ?? null, 'spellCode' => $item['spellCode'] ?? null, 'wbCode' => $item['wbCode'] ?? null, 'englishName' => $item['englishName'] ?? null, 'regularName' => $item['regularName'] ?? null, 'regularSpellCode' => $item['regularSpellCode'] ?? null, 'regularWbCode' => $item['regularWbCode'] ?? null, 'englishFormal' => $item['englishFormal'] ?? null, 'englishRegular' => $item['englishRegular'] ?? null, 'gbCode' => $item['gbCode'] ?? null, 'internationalCode' => $item['internationalCode'] ?? null, 'producerName' => $item['producerName'] ?? null, 'drugQuality' => $item['drugQuality'] ?? null, 'specs' => $item['specs'] ?? null, 'priceRef' => $item['priceRef'] ?? null, 'doseModel' => $item['doseModel'] ?? null, 'doseModelName' => $item['doseModelName'] ?? null, 'hypoTestFlag' => $item['hypoTestFlag'] ?? null, 'hypoReagentFlag' => $item['hypoReagentFlag'] ?? null, 'reagentCode' => $item['reagentCode'] ?? null, 'hypoKindCode' => $item['hypoKindCode'] ?? null, 'hypoKindName' => $item['hypoKindName'] ?? null, 'useTip' => $item['useTip'] ?? null, 'antibioticsFlag' => $item['antibioticsFlag'] ?? null, 'antibioticsLv' => $item['antibioticsLv'] ?? null, 'weightFactor' => $item['weightFactor'] ?? null, 'surfaceFactor' => $item['surfaceFactor'] ?? null, 'doseUnit' => $item['doseUnit'] ?? null, 'baseDose' => $item['baseDose'] ?? null, 'bakDoseUnit' => $item['bakDoseUnit'] ?? null, 'bakBaseDose' => $item['bakBaseDose'] ?? null, 'minUnit' => $item['minUnit'] ?? null, 'midUnit' => $item['midUnit'] ?? null, 'midQty' => $item['midQty'] ?? null, 'packUnit' => $item['packUnit'] ?? null, 'packQty' => $item['packQty'] ?? null, 'pefDoseUnitLv' => $item['pefDoseUnitLv'] ?? null, 'putDrugUnitLv' => $item['putDrugUnitLv'] ?? null, 'inDrugUnitLv' => $item['inDrugUnitLv'] ?? null, 'herbProcCode' => $item['herbProcCode'] ?? null, 'herbProcName' => $item['herbProcName'] ?? null, 'defUsageCode' => $item['defUsageCode'] ?? null, 'defUsageName' => $item['defUsageName'] ?? null, 'defFreqCode' => $item['defFreqCode'] ?? null, 'phaFunCode' => $item['phaFunCode'] ?? null, 'phaFunPath' => $item['phaFunPath'] ?? null, 'termClassId' => $item['termClassId'] ?? null, 'termClassName' => $item['termClassName'] ?? null, 'defOnceDose' => $item['defOnceDose'] ?? null, 'maxOnceDose' => $item['maxOnceDose'] ?? null, 'maxDays' => $item['maxDays'] ?? null, 'additiveDays' => $item['additiveDays'] ?? null, 'additiveQty' => $item['additiveQty'] ?? null, 'maxDayDose' => $item['maxDayDose'] ?? null, 'maxFrequency' => $item['maxFrequency'] ?? null, 'splitType' => $item['splitType'] ?? null, 'siGrade' => $item['siGrade'] ?? null, 'siMark' => $item['siMark'] ?? null, 'importFlag' => $item['importFlag'] ?? null, 'nostrumFlag' => $item['nostrumFlag'] ?? null, 'gmpFlag' => $item['gmpFlag'] ?? null, 'otcFlag' => $item['otcFlag'] ?? null, 'liquidFlag' => $item['liquidFlag'] ?? null, 'preciousFlag' => $item['preciousFlag'] ?? null, 'dangerFlag' => $item['dangerFlag'] ?? null, 'stimulantFlag' => $item['stimulantFlag'] ?? null, 'sexClass' => $item['sexClass'] ?? null, 'childFlag' => $item['childFlag'] ?? null, 'familyplanFlag' => $item['familyplanFlag'] ?? null, 'defFreqName' => $item['defFreqName'] ?? null, ]; } foreach (array_chunk($insertData, 200) as $chunk) { DB::table('s_drug_list')->insert($chunk); } $total += count($list); if (count($list) < $pageSize) { break; } $pageNum++; } return \Yz::JsonReturn(true, '同步完成', ['total' => $total]); } public function SyncUndrugList() { set_time_limit(0); DB::table('s_undrug_list')->truncate(); $res = HisController::Get('查询非药品列表', []); if ($res['code'] != 200) { return \Yz::JsonError('同步失败:' . $res['message']); } $list = $res['data']['list'] ?? $res['data'] ?? []; if (empty($list)) { return \Yz::JsonReturn(true, '无数据', ['total' => 0]); } $insertData = []; foreach ($list as $item) { $insertData[] = [ 'undrugId' => $item['undrugId'] ?? null, 'termClassId' => $item['termClassId'] ?? null, 'termName' => $item['termName'] ?? null, 'englishName' => $item['englishName'] ?? null, 'visitType' => $item['visitType'] ?? null, 'spellCode' => $item['spellCode'] ?? null, 'wbCode' => $item['wbCode'] ?? null, 'customCode' => $item['customCode'] ?? null, 'specs' => $item['specs'] ?? null, 'nurseGrade' => $item['nurseGrade'] ?? null, 'criticalState' => $item['criticalState'] ?? null, 'sexLimit' => $item['sexLimit'] ?? null, 'priceRef' => $item['priceRef'] ?? null, 'execDepts' => isset($item['execDepts']) ? json_encode($item['execDepts'], JSON_UNESCAPED_UNICODE) : null, 'labSpecimens' => isset($item['labSpecimens']) ? json_encode($item['labSpecimens'], JSON_UNESCAPED_UNICODE) : null, 'mappingCode' => $item['mappingCode'] ?? null, 'memo' => $item['memo'] ?? null, 'chargeFlag' => $item['chargeFlag'] ?? null, 'pricingFlag' => $item['pricingFlag'] ?? null, 'confirmFlag' => $item['confirmFlag'] ?? null, 'fincheckFlag' => $item['fincheckFlag'] ?? null, 'consentFlag' => $item['consentFlag'] ?? null, 'sheetType' => $item['sheetType'] ?? null, 'examClass' => $item['examClass'] ?? null, 'examMethod' => $item['examMethod'] ?? null, 'examPart' => $item['examPart'] ?? null, 'defaultExecDepts' => $item['defaultExecDepts'] ?? null, 'docmoTip' => $item['docmoTip'] ?? null, ]; } foreach (array_chunk($insertData, 200) as $chunk) { DB::table('s_undrug_list')->insert($chunk); } return \Yz::JsonReturn(true, '同步完成', ['total' => count($list)]); } }