| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import com.ruoyi.common.utils.HospitalTokenizerUtil; |
| | | import com.ruoyi.system.domain.TbHospData; |
| | | import com.ruoyi.system.mapper.TbHospDataMapper; |
| | | import com.ruoyi.system.service.ITbHospDataService; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | @Service |
| | | public class TbHospDataServiceImpl implements ITbHospDataService |
| | | { |
| | | private static final Logger logger = LoggerFactory.getLogger(TbHospDataServiceImpl.class); |
| | | |
| | | @Autowired |
| | | private TbHospDataMapper tbHospDataMapper; |
| | | |
| | |
| | | { |
| | | return tbHospDataMapper.deleteTbHospDataById(hospId); |
| | | } |
| | | |
| | | /** |
| | | * 批量生成并更新所有医院的分词 |
| | | * 供医院同步时调用 |
| | | * |
| | | * @return 更新的医院数量 |
| | | */ |
| | | @Override |
| | | public int generateAllHospitalKeywords() |
| | | { |
| | | logger.info("开始批量生成医院分词..."); |
| | | |
| | | // 查询所有正常状态的医院 |
| | | TbHospData query = new TbHospData(); |
| | | query.setStatus("0"); |
| | | List<TbHospData> hospitalList = tbHospDataMapper.selectTbHospDataList(query); |
| | | |
| | | logger.info("查询到 {} 个医院需要生成分词", hospitalList.size()); |
| | | |
| | | int updateCount = 0; |
| | | for (TbHospData hospital : hospitalList) { |
| | | try { |
| | | // 生成分词 |
| | | String keywords = generateKeywordsForHospital(hospital); |
| | | hospital.setHospKeywords(keywords); |
| | | |
| | | // 更新数据库 |
| | | int result = tbHospDataMapper.updateTbHospData(hospital); |
| | | if (result > 0) { |
| | | updateCount++; |
| | | } |
| | | } catch (Exception e) { |
| | | logger.error("生成医院分词失败: hospId={}, hospName={}", |
| | | hospital.getHospId(), hospital.getHospName(), e); |
| | | } |
| | | } |
| | | |
| | | logger.info("医院分词生成完成,更新了 {} 个医院", updateCount); |
| | | return updateCount; |
| | | } |
| | | |
| | | /** |
| | | * 为单个医院生成分词 |
| | | * |
| | | * @param tbHospData 医院数据 |
| | | * @return 生成的分词 |
| | | */ |
| | | @Override |
| | | public String generateKeywordsForHospital(TbHospData tbHospData) |
| | | { |
| | | return HospitalTokenizerUtil.tokenize( |
| | | tbHospData.getHospName(), |
| | | tbHospData.getHospShort(), |
| | | tbHospData.getHopsProvince(), |
| | | tbHospData.getHopsCity(), |
| | | tbHospData.getHopsArea(), |
| | | tbHospData.getHospAddress() |
| | | ); |
| | | } |
| | | } |