增加了医生统计导出
This commit is contained in:
parent
aaf5dfe921
commit
e13129a171
@ -60,6 +60,7 @@ public class EasyExcelCaseDetailVO {
|
||||
private String uid;
|
||||
|
||||
@ApiModelProperty(value = "治疗类型")
|
||||
@ExcelProperty("治疗类型")
|
||||
private String caseType;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
|
||||
@ -1,8 +1,16 @@
|
||||
package net.lab1024.sa.admin.module.business.statistics.controller;
|
||||
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.support.ExcelTypeEnum;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
|
||||
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
|
||||
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.vo.EasyExcelCaseDetailVO;
|
||||
import net.lab1024.sa.admin.module.business.statistics.domain.HospitalQureyForm;
|
||||
import net.lab1024.sa.admin.module.business.statistics.domain.HospitalVO;
|
||||
import net.lab1024.sa.admin.module.business.statistics.domain.StatisticsExpertQueryForm;
|
||||
@ -14,12 +22,17 @@ import net.lab1024.sa.admin.module.business.statistics.service.StatisticsService
|
||||
import net.lab1024.sa.common.common.domain.PageResult;
|
||||
import net.lab1024.sa.common.common.domain.ResponseDTO;
|
||||
import net.lab1024.sa.common.module.support.operatelog.annoation.OperateLog;
|
||||
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
||||
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -56,10 +69,50 @@ public class StatisticsController {
|
||||
return ResponseDTO.ok(statisticsService.getSystemActualNum(queryForm));
|
||||
}
|
||||
|
||||
@ApiOperation("病例 echar @author HMM")
|
||||
|
||||
@PostMapping("/statistics/case/getSystemActualEcharsData")
|
||||
public ResponseDTO<List<SystemActualEcharsData>> getSystemActualEcharsData(@RequestBody @Valid SystemActualNumQueryForm queryForm) {
|
||||
return ResponseDTO.ok(statisticsService.getSystemActualEcharsData(queryForm));
|
||||
}
|
||||
|
||||
@ApiOperation("医生统计导出")
|
||||
@GetMapping("/statistics/exportEasyExcel")
|
||||
public void exportEasyExcel(HttpServletResponse response, @Valid StatisticsExpertQueryForm queryForm) {
|
||||
try {
|
||||
List<StatisticsExpertVO> list = statisticsService.excelList(queryForm);
|
||||
|
||||
// 处理数据
|
||||
|
||||
// 1设置表头样式
|
||||
WriteCellStyle headStyle = new WriteCellStyle();
|
||||
// 1.1设置表头数据居中
|
||||
headStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
|
||||
|
||||
// 2设置表格内容样式
|
||||
WriteCellStyle bodyStyle = new WriteCellStyle();
|
||||
// 2.1设置表格内容水平居中
|
||||
bodyStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
|
||||
// 2.2设置表格内容垂直居中
|
||||
bodyStyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
||||
|
||||
// 3设置表格sheet样式
|
||||
WriteSheet sheet = EasyExcel.writerSheet("详细数据").head(StatisticsExpertVO.class).sheetNo(1).build();
|
||||
// 4拿到表格处理对象
|
||||
ExcelWriter writer = EasyExcel.write(response.getOutputStream()).needHead(true).excelType(ExcelTypeEnum.XLSX)
|
||||
// 设置单元格的风格样式
|
||||
.registerWriteHandler(new HorizontalCellStyleStrategy(headStyle, bodyStyle))
|
||||
.build();
|
||||
|
||||
// 5写入excel数据
|
||||
writer.write(list, sheet);
|
||||
// 6通知浏览器以附件的形式下载处理,设置返回头要注意文件名有中文
|
||||
String fileName = URLEncoder.encode("医生统计", "UTF-8").replaceAll("\\+", "%20");
|
||||
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
|
||||
response.setContentType("multipart/form-data");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
writer.finish();
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,8 @@ package net.lab1024.sa.admin.module.business.statistics.dao;
|
||||
|
||||
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.form.CaseplatformCaseQueryForm;
|
||||
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.vo.EasyExcelCaseDetailVO;
|
||||
import net.lab1024.sa.admin.module.business.statistics.domain.HospitalQureyForm;
|
||||
import net.lab1024.sa.admin.module.business.statistics.domain.HospitalVO;
|
||||
import net.lab1024.sa.admin.module.business.statistics.domain.StatisticsExpertQueryForm;
|
||||
@ -20,6 +22,8 @@ public interface StatisticsDao {
|
||||
|
||||
List<StatisticsExpertVO> queryPage(Page page, @Param("queryForm") StatisticsExpertQueryForm queryForm, @Param("provList")List<ProvVO> provList);
|
||||
|
||||
List<StatisticsExpertVO> excelList(@Param("queryForm") StatisticsExpertQueryForm queryForm, @Param("provList")List<ProvVO> provList);
|
||||
|
||||
List<HospitalVO> getHospitalList(@Param("queryForm") HospitalQureyForm queryForm, @Param("provList")List<ProvVO> provList);
|
||||
|
||||
/**
|
||||
|
||||
@ -3,6 +3,9 @@ package net.lab1024.sa.admin.module.business.statistics.service;
|
||||
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.constant.CaseStatusEnum;
|
||||
import net.lab1024.sa.admin.module.business.caseplatformcase.domain.form.CaseplatformCaseQueryForm;
|
||||
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.statistics.dao.StatisticsDao;
|
||||
import net.lab1024.sa.admin.module.business.statistics.domain.HospitalQureyForm;
|
||||
import net.lab1024.sa.admin.module.business.statistics.domain.HospitalVO;
|
||||
@ -43,6 +46,25 @@ public class StatisticsService {
|
||||
return ResponseDTO.ok(pageResult);
|
||||
}
|
||||
|
||||
/**
|
||||
* 不分页导出 excel
|
||||
* @param queryForm
|
||||
* @return
|
||||
*/
|
||||
public List<StatisticsExpertVO> excelList(StatisticsExpertQueryForm queryForm) {
|
||||
LoginEmployeeDetail requestUser = (LoginEmployeeDetail)SmartRequestUtil.getRequestUser();
|
||||
List<ProvVO> provList = requestUser.getProvList();
|
||||
Long provId = queryForm.getProvId();
|
||||
if(provId != null){
|
||||
boolean match = provList.stream().anyMatch(item -> item.getId().equals(provId));
|
||||
if(!match){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
List<StatisticsExpertVO> list = statisticsDao.excelList(queryForm, provList);
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<HospitalVO> getHospitalList(HospitalQureyForm queryForm) {
|
||||
LoginEmployeeDetail requestUser = (LoginEmployeeDetail)SmartRequestUtil.getRequestUser();
|
||||
List<ProvVO> provList = requestUser.getProvList();
|
||||
|
||||
@ -186,6 +186,65 @@
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="excelList" resultType="net.lab1024.sa.admin.module.business.statistics.domain.StatisticsExpertVO">
|
||||
SELECT
|
||||
t_caseplatform_expert.*,
|
||||
(select name from t_area where id=t_caseplatform_expert.prov_id) provName,
|
||||
(select name from t_area where id=t_caseplatform_expert.city_id) cityName,
|
||||
(select count(*) from t_caseplatform_case where t_caseplatform_case.expert_id=t_caseplatform_expert.id) total,
|
||||
(select count(*) from t_caseplatform_case where t_caseplatform_case.expert_id=t_caseplatform_expert.id and status = 1) passNum,
|
||||
(select count(*) from t_caseplatform_case where t_caseplatform_case.expert_id=t_caseplatform_expert.id and status = 0) waitNum,
|
||||
(select count(*) from t_caseplatform_case where t_caseplatform_case.expert_id=t_caseplatform_expert.id and status = 2) refuseNum,
|
||||
(select count(*) from t_caseplatform_case where t_caseplatform_case.expert_id=t_caseplatform_expert.id and settlement_flag = 1) settlementNum
|
||||
FROM t_caseplatform_expert
|
||||
<where>
|
||||
<!--name-->
|
||||
<if test="queryForm.name != null and queryForm.name != ''">
|
||||
AND ( INSTR(t_caseplatform_expert.name,#{queryForm.name})
|
||||
OR INSTR(t_caseplatform_expert.hospital_name,#{queryForm.name})
|
||||
)
|
||||
</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>
|
||||
</where>
|
||||
|
||||
<if test="queryForm.sort ==0 ">
|
||||
order by total desc
|
||||
</if>
|
||||
<if test="queryForm.sort ==1 ">
|
||||
order by settlementNum desc
|
||||
</if>
|
||||
<if test="queryForm.sort ==2 ">
|
||||
order by passNum desc
|
||||
</if>
|
||||
<if test="queryForm.sort ==3 ">
|
||||
order by waitNum desc
|
||||
</if>
|
||||
<if test="queryForm.sort ==4 ">
|
||||
order by refuseNum desc
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getSystemActualEcharsData" resultType="net.lab1024.sa.admin.module.business.statistics.domain.SystemActualEcharsData">
|
||||
SELECT statistics_day statisticsDate, count(*) num
|
||||
FROM t_caseplatform_case
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user