增加了医生管理分页查询

This commit is contained in:
wucongxing8150 2025-07-06 23:52:13 +08:00
parent 7d91e804a2
commit 5909c9682e
7 changed files with 239 additions and 69 deletions

View File

@ -1,13 +1,19 @@
package net.lab1024.sa.admin.module.app.expert.dao; package net.lab1024.sa.admin.module.app.expert.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.admin.module.app.expert.admin.ExpertEntity; import net.lab1024.sa.admin.module.app.expert.admin.ExpertEntity;
import net.lab1024.sa.admin.module.app.expert.admin.ExpertWhiteEntity; import net.lab1024.sa.admin.module.app.expert.admin.ExpertWhiteEntity;
import net.lab1024.sa.admin.module.business.area.domain.vo.ProvVO;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.CaseplatformExpertWhiteQueryForm;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.GetCaseplatformExpertWhitePageVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
@Mapper @Mapper
@Component @Component
public interface ExpertWhiteEntityDao extends BaseMapper<ExpertWhiteEntity> { public interface ExpertWhiteEntityDao extends BaseMapper<ExpertWhiteEntity> {
@ -16,4 +22,13 @@ public interface ExpertWhiteEntityDao extends BaseMapper<ExpertWhiteEntity> {
@Select("SELECT * FROM t_caseplatform_expert_white WHERE name = #{name} AND hospital_name = #{hospitalName}") @Select("SELECT * FROM t_caseplatform_expert_white WHERE name = #{name} AND hospital_name = #{hospitalName}")
ExpertWhiteEntity getExpertWhiteByNameAndHospital(@Param("name")String name, @Param("hospitalName")String hospitalName); ExpertWhiteEntity getExpertWhiteByNameAndHospital(@Param("name")String name, @Param("hospitalName")String hospitalName);
/**
* 分页 查询
*
* @param page
* @param queryForm
* @return
*/
List<GetCaseplatformExpertWhitePageVo> queryPage(Page page, @Param("queryForm") CaseplatformExpertWhiteQueryForm queryForm);
} }

View File

@ -3,8 +3,11 @@ package net.lab1024.sa.admin.module.business.caseplatformcase.controller;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.CaseplatformCaseQueryForm; import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.CaseplatformCaseQueryForm;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.CaseplatformExpertWhiteQueryForm;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.CaseplatformCaseVO; import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.CaseplatformCaseVO;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.GetCaseplatformExpertWhitePageVo;
import net.lab1024.sa.admin.module.business.caseplatformcase.service.CaseplatformCaseService; import net.lab1024.sa.admin.module.business.caseplatformcase.service.CaseplatformCaseService;
import net.lab1024.sa.admin.module.business.caseplatformcase.service.CaseplatformExpertWhiteService;
import net.lab1024.sa.admin.module.business.caseplatformcaseabstrac.service.CaseplatformCaseAbstracService; import net.lab1024.sa.admin.module.business.caseplatformcaseabstrac.service.CaseplatformCaseAbstracService;
import net.lab1024.sa.common.common.domain.PageResult; import net.lab1024.sa.common.common.domain.PageResult;
import net.lab1024.sa.common.common.domain.ResponseDTO; import net.lab1024.sa.common.common.domain.ResponseDTO;
@ -28,14 +31,13 @@ import javax.validation.Valid;
public class CaseplatformExpertWhiteController { public class CaseplatformExpertWhiteController {
@Autowired @Autowired
private CaseplatformCaseService caseplatformCaseService; private CaseplatformExpertWhiteService caseplatformExpertWhiteService;
@ApiOperation("医生管理导入") @ApiOperation("医生管理导入")
@PostMapping("/caseplatformExpertWhite/import") @PostMapping("/caseplatformExpertWhite/import")
public ResponseDTO<T> caseplatformExpertWhiteImport(@RequestParam("file") MultipartFile file) { public ResponseDTO<T> caseplatformExpertWhiteImport(@RequestParam("file") MultipartFile file) {
try { try {
caseplatformCaseService.importExperts(file); caseplatformExpertWhiteService.importExperts(file);
} catch (Exception e) { } catch (Exception e) {
throw new BusinessException(e.getMessage()); throw new BusinessException(e.getMessage());
} }
@ -43,4 +45,9 @@ public class CaseplatformExpertWhiteController {
return ResponseDTO.app_ok(); return ResponseDTO.app_ok();
} }
@ApiOperation("分页查询")
@PostMapping("/caseplatformExpertWhite/queryPage")
public ResponseDTO<PageResult<GetCaseplatformExpertWhitePageVo>> getCaseplatformExpertWhitePage(@RequestBody @Valid CaseplatformExpertWhiteQueryForm queryForm) {
return caseplatformExpertWhiteService.queryPage(queryForm);
}
} }

View File

@ -0,0 +1,34 @@
package net.lab1024.sa.admin.module.business.caseplatformcase.domain.form;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.lab1024.sa.admin.module.business.caseplatformcase.constant.CaseSettlementEnum;
import net.lab1024.sa.admin.module.business.caseplatformcase.constant.CaseStatusEnum;
import net.lab1024.sa.admin.module.business.caseplatformcase.constant.CasetypeEnum;
import net.lab1024.sa.common.common.domain.PageParam;
import net.lab1024.sa.common.common.swagger.ApiModelPropertyEnum;
import net.lab1024.sa.common.common.validator.enumeration.CheckEnum;
import java.time.LocalDateTime;
import java.util.List;
/**
* 病历表 分页查询表单
*
* @Author HMM
* @Date 2024-01-11 15:18:32
* @Copyright gdxz
*/
@Data
public class CaseplatformExpertWhiteQueryForm extends PageParam{
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "手机号")
private String mobile;
@ApiModelProperty(value = "医院名称")
private String hospitalName;
}

View File

@ -0,0 +1,35 @@
package net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class GetCaseplatformExpertWhitePageVo {
private Long id;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "手机号")
private String mobile;
@ApiModelProperty(value = "医院名称")
private String hospitalName;
@ApiModelProperty(value = "")
private String prov;
@ApiModelProperty(value = "科室")
private String department;
@ApiModelProperty(value = "职称")
private String title;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
}

View File

@ -233,72 +233,6 @@ public class CaseplatformCaseService {
} }
} }
public void importExperts(MultipartFile file) throws Exception {
try (InputStream is = file.getInputStream();
Workbook workbook = WorkbookFactory.create(is)) { // 自动识别 .xls .xlsx
Sheet sheet = workbook.getSheetAt(0);
// 从第 1 行开始读取跳过标题行
int rowNum = 0;
for (Iterator<Row> it = sheet.rowIterator(); it.hasNext();) {
Row row = it.next();
// 跳过第一行标题
if (rowNum++ == 0) continue;
// 判断整行是否为空
boolean isEmptyRow = true;
for (Cell cell : row) {
if (cell != null && cell.getCellType() != CellType.BLANK) {
isEmptyRow = false;
break;
}
}
if (isEmptyRow) {
continue; // 跳过空行
}
String name = "";
String prov = "";
String hospitalName = "";
String department = "";
String title = "";
String mobile = "";
DataFormatter dataFormatter = new DataFormatter();
Cell cell0 = row.getCell(0); if (cell0 != null) name = cell0.toString().trim();
Cell cell1 = row.getCell(1); if (cell1 != null) prov = cell1.toString().trim();
Cell cell2 = row.getCell(2); if (cell2 != null) hospitalName = cell2.toString().trim();
Cell cell3 = row.getCell(3); if (cell3 != null) department = cell3.toString().trim();
Cell cell4 = row.getCell(4); if (cell4 != null) title = cell4.toString().trim();
Cell cell5 = row.getCell(5); if (cell5 != null) mobile = dataFormatter.formatCellValue(cell5).trim();
// 检测是否导入重复
LambdaQueryWrapper<ExpertWhiteEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ExpertWhiteEntity::getMobile, mobile);
ExpertWhiteEntity expertWhite = expertWhiteDao.selectOne(queryWrapper);
if (expertWhite != null) {
continue;
}
expertWhite = new ExpertWhiteEntity();
expertWhite.setName(name);
expertWhite.setProvince(prov);
expertWhite.setHospitalName(hospitalName);
expertWhite.setDepartment(department);
expertWhite.setTitle(title);
expertWhite.setMobile(mobile);
expertWhite.setCreateTime(LocalDateTime.now());
expertWhiteDao.insert(expertWhite);
}
} catch (Exception e) {
throw new BusinessException("文件读取失败: " + e.getMessage());
}
}
/** /**
* 白名单专家导入 * 白名单专家导入

View File

@ -0,0 +1,119 @@
package net.lab1024.sa.admin.module.business.caseplatformcase.service;
// import com.alibaba.fastjson.JSON;
// import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.admin.module.app.expert.admin.ExpertWhiteEntity;
import net.lab1024.sa.admin.module.app.expert.dao.ExpertWhiteEntityDao;
import net.lab1024.sa.admin.module.business.area.domain.vo.ProvVO;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.*;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.GetCaseplatformExpertWhitePageVo;
import net.lab1024.sa.admin.module.system.login.domain.LoginEmployeeDetail;
import net.lab1024.sa.common.common.domain.PageResult;
import net.lab1024.sa.common.common.domain.ResponseDTO;
import net.lab1024.sa.common.common.exception.BusinessException;
import net.lab1024.sa.common.common.util.SmartBeanUtil;
import net.lab1024.sa.common.common.util.SmartPageUtil;
import net.lab1024.sa.common.common.util.SmartRequestUtil;
import org.apache.poi.ss.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.time.LocalDateTime;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
@Service
public class CaseplatformExpertWhiteService {
@Autowired
private ExpertWhiteEntityDao expertWhiteEntityDao;
/**
* 分页查询
*
* @param queryForm
* @return
*/
public ResponseDTO<PageResult<GetCaseplatformExpertWhitePageVo>> queryPage(CaseplatformExpertWhiteQueryForm queryForm) {
Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
List<GetCaseplatformExpertWhitePageVo> list = expertWhiteEntityDao.queryPage(page, queryForm);
PageResult<GetCaseplatformExpertWhitePageVo> pageResult = SmartPageUtil.convert2PageResult(page, list);
return ResponseDTO.ok(pageResult);
}
// 医生管理导入
public void importExperts(MultipartFile file) throws Exception {
try (InputStream is = file.getInputStream();
Workbook workbook = WorkbookFactory.create(is)) { // 自动识别 .xls .xlsx
Sheet sheet = workbook.getSheetAt(0);
// 从第 1 行开始读取跳过标题行
int rowNum = 0;
for (Iterator<Row> it = sheet.rowIterator(); it.hasNext();) {
Row row = it.next();
// 跳过第一行标题
if (rowNum++ == 0) continue;
// 判断整行是否为空
boolean isEmptyRow = true;
for (Cell cell : row) {
if (cell != null && cell.getCellType() != CellType.BLANK) {
isEmptyRow = false;
break;
}
}
if (isEmptyRow) {
continue; // 跳过空行
}
String name = "";
String prov = "";
String hospitalName = "";
String department = "";
String title = "";
String mobile = "";
DataFormatter dataFormatter = new DataFormatter();
Cell cell0 = row.getCell(0); if (cell0 != null) name = cell0.toString().trim();
Cell cell1 = row.getCell(1); if (cell1 != null) prov = cell1.toString().trim();
Cell cell2 = row.getCell(2); if (cell2 != null) hospitalName = cell2.toString().trim();
Cell cell3 = row.getCell(3); if (cell3 != null) department = cell3.toString().trim();
Cell cell4 = row.getCell(4); if (cell4 != null) title = cell4.toString().trim();
Cell cell5 = row.getCell(5); if (cell5 != null) mobile = dataFormatter.formatCellValue(cell5).trim();
// 检测是否导入重复
LambdaQueryWrapper<ExpertWhiteEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ExpertWhiteEntity::getMobile, mobile);
ExpertWhiteEntity expertWhite = expertWhiteEntityDao.selectOne(queryWrapper);
if (expertWhite != null) {
continue;
}
expertWhite = new ExpertWhiteEntity();
expertWhite.setName(name);
expertWhite.setProvince(prov);
expertWhite.setHospitalName(hospitalName);
expertWhite.setDepartment(department);
expertWhite.setTitle(title);
expertWhite.setMobile(mobile);
expertWhite.setCreateTime(LocalDateTime.now());
expertWhiteEntityDao.insert(expertWhite);
}
} catch (Exception e) {
throw new BusinessException("文件读取失败: " + e.getMessage());
}
}
}

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.lab1024.sa.admin.module.app.expert.dao.ExpertWhiteEntityDao">
<!-- 分页查询 -->
<select id="queryPage" resultType="net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.GetCaseplatformExpertWhitePageVo">
SELECT *
FROM t_caseplatform_expert_white
<where>
<!--name-->
<if test="queryForm.name != null and queryForm.name != ''">
AND t_caseplatform_expert_white.name LIKE CONCAT('%', #{queryForm.name}, '%')
</if>
<if test="queryForm.mobile != null and queryForm.mobile != ''">
AND t_caseplatform_expert_white.mobile = #{mobile}
</if>
<if test="queryForm.hospitalName != null and queryForm.hospitalName != ''">
AND t_caseplatform_expert_white.hospital_name LIKE CONCAT('%', #{hospitalName}, '%')
</if>
</where>
order by t_caseplatform_expert_white.create_time desc
</select>
</mapper>