From 5909c9682e0156cfd99e24ac52de46e86ad4a484 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Sun, 6 Jul 2025 23:52:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=8C=BB=E7=94=9F?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/expert/dao/ExpertWhiteEntityDao.java | 15 +++ .../CaseplatformExpertWhiteController.java | 13 +- .../CaseplatformExpertWhiteQueryForm.java | 34 +++++ .../vo/GetCaseplatformExpertWhitePageVo.java | 35 ++++++ .../service/CaseplatformCaseService.java | 66 ---------- .../CaseplatformExpertWhiteService.java | 119 ++++++++++++++++++ .../mapper/app/expert/ExpertWhiteMapper.xml | 26 ++++ 7 files changed, 239 insertions(+), 69 deletions(-) create mode 100644 sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/form/CaseplatformExpertWhiteQueryForm.java create mode 100644 sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/vo/GetCaseplatformExpertWhitePageVo.java create mode 100644 sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/service/CaseplatformExpertWhiteService.java create mode 100644 sa-admin/src/main/resources/mapper/app/expert/ExpertWhiteMapper.xml diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/dao/ExpertWhiteEntityDao.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/dao/ExpertWhiteEntityDao.java index 35cc286..17dec2d 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/dao/ExpertWhiteEntityDao.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/dao/ExpertWhiteEntityDao.java @@ -1,13 +1,19 @@ package net.lab1024.sa.admin.module.app.expert.dao; 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.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.Param; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Component; +import java.util.List; + @Mapper @Component public interface ExpertWhiteEntityDao extends BaseMapper { @@ -16,4 +22,13 @@ public interface ExpertWhiteEntityDao extends BaseMapper { @Select("SELECT * FROM t_caseplatform_expert_white WHERE name = #{name} AND hospital_name = #{hospitalName}") ExpertWhiteEntity getExpertWhiteByNameAndHospital(@Param("name")String name, @Param("hospitalName")String hospitalName); + + /** + * 分页 查询 + * + * @param page + * @param queryForm + * @return + */ + List queryPage(Page page, @Param("queryForm") CaseplatformExpertWhiteQueryForm queryForm); } diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/controller/CaseplatformExpertWhiteController.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/controller/CaseplatformExpertWhiteController.java index 53f52d8..db32f20 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/controller/CaseplatformExpertWhiteController.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/controller/CaseplatformExpertWhiteController.java @@ -3,8 +3,11 @@ package net.lab1024.sa.admin.module.business.caseplatformcase.controller; import io.swagger.annotations.Api; 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.CaseplatformExpertWhiteQueryForm; 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.CaseplatformExpertWhiteService; 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.ResponseDTO; @@ -28,14 +31,13 @@ import javax.validation.Valid; public class CaseplatformExpertWhiteController { @Autowired - private CaseplatformCaseService caseplatformCaseService; - + private CaseplatformExpertWhiteService caseplatformExpertWhiteService; @ApiOperation("医生管理导入") @PostMapping("/caseplatformExpertWhite/import") public ResponseDTO caseplatformExpertWhiteImport(@RequestParam("file") MultipartFile file) { try { - caseplatformCaseService.importExperts(file); + caseplatformExpertWhiteService.importExperts(file); } catch (Exception e) { throw new BusinessException(e.getMessage()); } @@ -43,4 +45,9 @@ public class CaseplatformExpertWhiteController { return ResponseDTO.app_ok(); } + @ApiOperation("分页查询") + @PostMapping("/caseplatformExpertWhite/queryPage") + public ResponseDTO> getCaseplatformExpertWhitePage(@RequestBody @Valid CaseplatformExpertWhiteQueryForm queryForm) { + return caseplatformExpertWhiteService.queryPage(queryForm); + } } diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/form/CaseplatformExpertWhiteQueryForm.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/form/CaseplatformExpertWhiteQueryForm.java new file mode 100644 index 0000000..4e741e4 --- /dev/null +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/form/CaseplatformExpertWhiteQueryForm.java @@ -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; +} diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/vo/GetCaseplatformExpertWhitePageVo.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/vo/GetCaseplatformExpertWhitePageVo.java new file mode 100644 index 0000000..248f4a3 --- /dev/null +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/vo/GetCaseplatformExpertWhitePageVo.java @@ -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; +} \ No newline at end of file diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/service/CaseplatformCaseService.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/service/CaseplatformCaseService.java index fe6eaf9..8d6da34 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/service/CaseplatformCaseService.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/service/CaseplatformCaseService.java @@ -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 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 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()); - } - } /** * 白名单专家导入 diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/service/CaseplatformExpertWhiteService.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/service/CaseplatformExpertWhiteService.java new file mode 100644 index 0000000..386d093 --- /dev/null +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/service/CaseplatformExpertWhiteService.java @@ -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> queryPage(CaseplatformExpertWhiteQueryForm queryForm) { + Page page = SmartPageUtil.convert2PageQuery(queryForm); + + List list = expertWhiteEntityDao.queryPage(page, queryForm); + PageResult 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 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 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()); + } + } + +} diff --git a/sa-admin/src/main/resources/mapper/app/expert/ExpertWhiteMapper.xml b/sa-admin/src/main/resources/mapper/app/expert/ExpertWhiteMapper.xml new file mode 100644 index 0000000..ddaebf5 --- /dev/null +++ b/sa-admin/src/main/resources/mapper/app/expert/ExpertWhiteMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + \ No newline at end of file