新增了活动申请

This commit is contained in:
wucongxing8150 2025-07-09 16:42:21 +08:00
parent d6133afeac
commit ae6e93bfa7
12 changed files with 301 additions and 58 deletions

View File

@ -483,7 +483,6 @@ public class MedicalRecordService {
for (DpmsAddForm dpma : dpmas) { for (DpmsAddForm dpma : dpmas) {
LocalDate treatTime = dpma.getTreatTime().toLocalDate(); LocalDate treatTime = dpma.getTreatTime().toLocalDate();
if (!treatTime.isEqual(targetDate) && !treatTime.isAfter(targetDate)) { if (!treatTime.isEqual(targetDate) && !treatTime.isAfter(targetDate)) {
return ResponseDTO.userErrorParam("人工肝治疗时间需在2024年10月1日或之后"); return ResponseDTO.userErrorParam("人工肝治疗时间需在2024年10月1日或之后");
} }

View File

@ -70,7 +70,7 @@ public class CaseplatformBankService {
} }
if (!Objects.equals(expert.getName(), addForm.getIdCardName())){ if (!Objects.equals(expert.getName(), addForm.getIdCardName())){
return ResponseDTO.userErrorParam("户名与银行卡姓名不一致"); return ResponseDTO.userErrorParam("登录用户名与银行卡姓名不一致");
} }
caseplatformBankEntity.setExpertId(expertId); caseplatformBankEntity.setExpertId(expertId);

View File

@ -0,0 +1,26 @@
package net.lab1024.sa.admin.module.business.caseplatformcase.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.lab1024.sa.common.common.enumeration.BaseEnum;
@AllArgsConstructor
@Getter
public enum CaseAcAppStatusEnum implements BaseEnum {
DEFAULT(1, "审核通过"),
BEFORE(2, "审核中"),
;
private final Integer value;
private final String desc;
public static CaseAcAppStatusEnum getByVal(int val){
for (CaseAcAppStatusEnum type: CaseAcAppStatusEnum.values()){
if(type.getValue() == val){
return type;
}
}
return null;
}
}

View File

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation;
import net.lab1024.sa.admin.module.app.medicalrecord.domain.MedicalRecordDetailVO; import net.lab1024.sa.admin.module.app.medicalrecord.domain.MedicalRecordDetailVO;
import net.lab1024.sa.admin.module.app.medicalrecord.service.MedicalRecordService; import net.lab1024.sa.admin.module.app.medicalrecord.service.MedicalRecordService;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.*; import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.*;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.CaseplatformAcAppVO;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.CaseplatformCaseDetailVO; import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.CaseplatformCaseDetailVO;
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.service.CaseplatformCaseService; import net.lab1024.sa.admin.module.business.caseplatformcase.service.CaseplatformCaseService;
@ -121,4 +122,16 @@ public class CaseplatformCaseController {
public ResponseDTO<String> caseCheckdataImg(@RequestBody @Valid CaseCheckdataImgForm form) { public ResponseDTO<String> caseCheckdataImg(@RequestBody @Valid CaseCheckdataImgForm form) {
return caseplatformCaseService.caseCheckdataImg(form); return caseplatformCaseService.caseCheckdataImg(form);
} }
@ApiOperation("分页查询-病例活动申请")
@PostMapping("/caseplatformCase/activity/queryPage")
public ResponseDTO<PageResult<CaseplatformAcAppVO>> CaseplatformAcAppQueryPage(@RequestBody @Valid CaseplatformAcAppQueryForm queryForm) {
return caseplatformCaseService.caseplatformAcAppQueryPage(queryForm);
}
@ApiOperation("删除")
@DeleteMapping("/caseplatformCase/activity/delete/{id}")
public ResponseDTO<String> deleteCaseplatformAcApp(@PathVariable("id") Long id) {
return caseplatformCaseService.deleteCaseplatformAcApp(id);
}
} }

View File

@ -17,10 +17,7 @@ import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid; import javax.validation.Valid;
@ -51,4 +48,9 @@ public class CaseplatformExpertWhiteController {
return caseplatformExpertWhiteService.queryPage(queryForm); return caseplatformExpertWhiteService.queryPage(queryForm);
} }
@ApiOperation("删除")
@DeleteMapping("/caseplatformExpertWhite/delete/{id}")
public ResponseDTO<String> deleteCaseplatformAcApp(@PathVariable("id") Long id) {
return caseplatformExpertWhiteService.delete(id);
}
} }

View File

@ -0,0 +1,31 @@
package net.lab1024.sa.admin.module.business.caseplatformcase.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.sa.admin.module.business.area.domain.vo.ProvVO;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.entity.CaseplatformAcAppEntity;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.CaseplatformAcAppQueryForm;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.CaseplatformCaseQueryForm;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.CaseplatformAcAppVO;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.CaseplatformCaseVO;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.EasyExcelCaseDetailVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
@Mapper
@Component
public interface CaseplatformAcAppDao extends BaseMapper<CaseplatformAcAppEntity> {
/**
* 分页 查询
*
* @param page
* @param queryForm
* @return
*/
List<CaseplatformAcAppVO> queryPage(Page page, @Param("queryForm") CaseplatformAcAppQueryForm queryForm, @Param("provList")List<ProvVO> provList);
}

View File

@ -0,0 +1,40 @@
package net.lab1024.sa.admin.module.business.caseplatformcase.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 活动申请表实体类
*/
@TableName("`t_caseplatform_activity_application`")
@Data
public class CaseplatformAcAppEntity {
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 专家id
*/
@TableField("expert_id")
private Long expertId;
/**
* 状态1:审核通过 2:审核中
*/
@TableField("status")
private Integer status;
/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,38 @@
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.CaseAcAppStatusEnum;
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;
@Data
public class CaseplatformAcAppQueryForm extends PageParam{
@ApiModelProperty(value = "专家姓名")
private String expertName;
@ApiModelProperty(value = "省份")
private Long provId;
@ApiModelProperty(value = "市区")
private Long cityId;
@ApiModelProperty(value = "医院")
private String hospitalUuid;
@ApiModelPropertyEnum(value = CaseAcAppStatusEnum.class, desc = "审核状态")
@CheckEnum(value = CaseAcAppStatusEnum.class, message = "审核状态 错误")
private Integer status;
@ApiModelProperty(value = "申请时间")
private List<LocalDateTime> createTime;
}

View File

@ -0,0 +1,42 @@
package net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.lab1024.sa.admin.module.business.caseplatformcase.constant.CaseAcAppStatusEnum;
import net.lab1024.sa.admin.module.business.caseplatformcase.constant.CaseStatusEnum;
import net.lab1024.sa.common.common.swagger.ApiModelPropertyEnum;
import java.time.LocalDateTime;
@Data
public class CaseplatformAcAppVO {
private Long id;
@ApiModelProperty(value = "专家id")
private Long expertId;
@ApiModelProperty(value = "专家姓名")
private String expertName;
@ApiModelProperty(value = "专家所在医院")
private String expertHospitalName;
@ApiModelProperty(value = "专家所在省份名称")
private String expertProvName;
@ApiModelProperty(value = "专家所在城市名称")
private String expertCityName;
@ApiModelPropertyEnum(value = CaseAcAppStatusEnum.class, desc = "状态1:审核通过 2:审核中)")
private Integer status;
@ApiModelProperty(value = "已审核通过病例数")
private Integer caseNum = 0;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
}

View File

@ -20,13 +20,11 @@ import net.lab1024.sa.admin.module.app.medicalrecord.domain.MedicalRecordCheckda
import net.lab1024.sa.admin.module.app.medicalrecord.domain.MedicalRecordDpmsEntity; import net.lab1024.sa.admin.module.app.medicalrecord.domain.MedicalRecordDpmsEntity;
import net.lab1024.sa.admin.module.app.medicalrecord.domain.MedicalRecordEntity; import net.lab1024.sa.admin.module.app.medicalrecord.domain.MedicalRecordEntity;
import net.lab1024.sa.admin.module.business.area.domain.vo.ProvVO; import net.lab1024.sa.admin.module.business.area.domain.vo.ProvVO;
import net.lab1024.sa.admin.module.business.caseplatformcase.dao.CaseplatformAcAppDao;
import net.lab1024.sa.admin.module.business.caseplatformcase.dao.CaseplatformCaseDao; import net.lab1024.sa.admin.module.business.caseplatformcase.dao.CaseplatformCaseDao;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.entity.CaseplatformCaseEntity; import net.lab1024.sa.admin.module.business.caseplatformcase.domain.entity.CaseplatformCaseEntity;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.*; import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.*;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.CaseplatformCaseDetailVO; import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.*;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.CaseplatformCaseVO;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.EasyExcelCaseDetailVO;
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.ExportExpertCaseExcelVo;
import net.lab1024.sa.admin.module.business.caseplatformcaseabstrac.domain.vo.CaseplatformCaseAbstracVO; import net.lab1024.sa.admin.module.business.caseplatformcaseabstrac.domain.vo.CaseplatformCaseAbstracVO;
import net.lab1024.sa.admin.module.business.caseplatformcaseabstrac.service.CaseplatformCaseAbstracService; import net.lab1024.sa.admin.module.business.caseplatformcaseabstrac.service.CaseplatformCaseAbstracService;
import net.lab1024.sa.admin.module.business.caseplatformcasecheckdata.dao.CaseplatformCaseCheckdataDao; import net.lab1024.sa.admin.module.business.caseplatformcasecheckdata.dao.CaseplatformCaseCheckdataDao;
@ -100,6 +98,9 @@ public class CaseplatformCaseService {
@Autowired @Autowired
private MedicalRecorDao medicalRecorDao; private MedicalRecorDao medicalRecorDao;
@Autowired
private CaseplatformAcAppDao caseplatformAcAppDao;
// 创建 ObjectMapper 实例建议使用 Spring 注入或静态常量 // 创建 ObjectMapper 实例建议使用 Spring 注入或静态常量
private static final ObjectMapper objectMapper = new ObjectMapper(); private static final ObjectMapper objectMapper = new ObjectMapper();
@ -570,53 +571,33 @@ public class CaseplatformCaseService {
} }
/** /**
* 白名单专家导入 * 分页查询-病例活动申请
*
* @param queryForm
* @return
*/ */
// public void importExperts(MultipartFile file) throws Exception { public ResponseDTO<PageResult<CaseplatformAcAppVO>> caseplatformAcAppQueryPage(CaseplatformAcAppQueryForm queryForm) {
// ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
//
// // 不读取表头跳过第一行直接读内容按列索引 LoginEmployeeDetail requestUser = (LoginEmployeeDetail)SmartRequestUtil.getRequestUser();
// List<List<Object>> rows = reader.read(1, reader.getRowCount()); List<ProvVO> provList = requestUser.getProvList();
// Long provId = queryForm.getProvId();
// for (List<Object> row : rows) { if(provId != null){
// String name = !row.isEmpty() ? String.valueOf(row.get(0)).trim() : "";// 姓名 boolean match = provList.stream().anyMatch(item -> item.getId().equals(provId));
// String prov = row.size() > 1 ? String.valueOf(row.get(1)).trim() : ""; // 省份 if(!match){
// String hospitalName = row.size() > 1 ? String.valueOf(row.get(2)).trim() : ""; // 医院 return ResponseDTO.ok(SmartPageUtil.emptyResult(page));
// String department = row.size() > 2 ? String.valueOf(row.get(3)).trim() : ""; // 科室 }
// String title = row.size() > 3 ? String.valueOf(row.get(4)).trim() : ""; // 职称 }
// String mobile = row.size() > 4 ? String.valueOf(row.get(5)).trim() : ""; // 手机号 List<CaseplatformAcAppVO> list = caseplatformAcAppDao.queryPage(page, queryForm, provList);
// PageResult<CaseplatformAcAppVO> pageResult = SmartPageUtil.convert2PageResult(page, list);
// // 构造实体类 return ResponseDTO.ok(pageResult);
// }
//
// ExpertWhiteEntity expertWhite = new ExpertWhiteEntity(); /**
// expertWhite.setName(name); * 删除-病例活动申请
// expertWhite.setProvince(prov); */
// expertWhite.setHospitalName(hospitalName); public ResponseDTO<String> deleteCaseplatformAcApp(Long id) {
// expertWhite.setDepartment(department); caseplatformAcAppDao.deleteById(id);
// expertWhite.setTitle(title); return ResponseDTO.ok();
// expertWhite.setMobile(mobile); }
//
// Map<String, Object> contentMap = new HashMap<>();
// contentMap.put("name", name);
// contentMap.put("hospital_name", hospitalName);
// contentMap.put("department", department);
// contentMap.put("title", title);
// contentMap.put("mobile", mobile);
// expertWhite.setContent(JSON.toJSONString(contentMap));
//
// // 构造 content 字段json
//// JSONObject jsonObject = new JSONObject();
//// jsonObject.put("name", name);
//// jsonObject.put("hospital_name", hospitalName);
//// jsonObject.put("aaa", department);
//// jsonObject.put("title", title);
//// jsonObject.put("mobile", mobile);
//
//// expertWhite.setContent(JSON.toJSONString(jsonObject));
// expertWhite.setCreateTime(LocalDateTime.now());
//
// expertWhiteDao.insert(expertWhite);
// }
// }
} }

View File

@ -115,4 +115,12 @@ public class CaseplatformExpertWhiteService {
} }
} }
/**
* 删除-医生管理
*/
public ResponseDTO<String> delete(Long id) {
expertWhiteEntityDao.deleteById(id);
return ResponseDTO.ok();
}
} }

View File

@ -0,0 +1,63 @@
<?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.business.caseplatformcase.dao.CaseplatformAcAppDao">
<!-- 分页查询 -->
<select id="queryPage" resultType="net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.CaseplatformAcAppVO">
SELECT
t_caseplatform_activity_application.*,
t_caseplatform_expert.name expertName,
(select name from t_area where id=t_caseplatform_expert.prov_id) expertProvName,
(select name from t_area where id=t_caseplatform_expert.city_id) expertCityName,
t_caseplatform_expert.hospital_name expertHospitalName,
-- 新增字段:统计 status=1 的 case 数量
(SELECT COUNT(*) FROM t_caseplatform_case
WHERE t_caseplatform_case.expert_id = t_caseplatform_activity_application.expert_id
AND t_caseplatform_case.status = 1) AS caseNum
FROM t_caseplatform_activity_application
left join t_caseplatform_expert on t_caseplatform_activity_application.expert_id = t_caseplatform_expert.id
<where>
<!--name-->
<if test="queryForm.expertName != null and queryForm.expertName != ''">
AND t_caseplatform_expert.name LIKE CONCAT('%', #{queryForm.expertName}, '%')
)
</if>
<!--0待审核 1审核通过 2审核不通过-->
<if test="queryForm.status != null">
AND t_caseplatform_activity_application.status = #{queryForm.status}
</if>
<choose>
<when test="queryForm.provId != null and queryForm.provId != ''">
AND t_caseplatform_expert.prov_id =#{queryForm.provId}
</when>
<when test="provList != null and provList.size > 0">
and
t_caseplatform_expert.prov_id
in
<foreach collection="provList" open="(" close=")" separator="," item="item">
#{item.id}
</foreach>
</when>
<otherwise>
and 1=2
</otherwise>
</choose>
<if test="queryForm.cityId != null and queryForm.cityId != ''">
AND t_caseplatform_expert.city_id =#{queryForm.cityId}
</if>
<if test="queryForm.hospitalUuid != null and queryForm.hospitalUuid != ''">
AND t_caseplatform_expert.hospital_uuid =#{queryForm.hospitalUuid}
</if>
<if test="queryForm.createTime != null and queryForm.createTime.size == 2">
AND t_caseplatform_activity_application.create_time BETWEEN #{queryForm.createTime[0]} AND #{queryForm.createTime[1]}
</if>
</where>
order by t_caseplatform_activity_application.create_time desc
</select>
</mapper>