Commit 0b292f0b authored by 吴霞's avatar 吴霞

exportExcel

parent a1c543b3
Pipeline #82 failed with stages
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="test" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>download</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.5
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>download</groupId>
<artifactId>download</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<!--MySQL的JDBC驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<!--junit单元测试包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- excel -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.11-beta2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.11-beta2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.11-beta2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-excelant</artifactId>
<version>3.11-beta2</version>
</dependency>
<!--<dependency> -->
<!--<groupId>com.huawei.paas.cse</groupId> -->
<!--<artifactId>cse-solution-service-engine</artifactId> -->
<!--<exclusions> -->
<!--<exclusion> -->
<!--<groupId>org.slf4j</groupId> -->
<!--<artifactId>slf4j-log4j12</artifactId> -->
<!--</exclusion> -->
<!--</exclusions> -->
<!--</dependency> -->
<!--<dependency> -->
<!--<groupId>org.apache.servicecomb</groupId> -->
<!--<artifactId>spring-boot-starter-provider</artifactId> -->
<!--</dependency> -->
</dependencies>
<!--<dependencyManagement> -->
<!--<dependencies> -->
<!--<dependency> -->
<!--<groupId>org.apache.servicecomb</groupId> -->
<!--<artifactId>java-chassis-dependencies-springboot2</artifactId> -->
<!--<version>1.1.0.B018</version> -->
<!--<type>pom</type> -->
<!--<scope>import</scope> -->
<!--</dependency> -->
<!--<dependency> -->
<!--<groupId>com.huawei.paas.cse</groupId> -->
<!--<artifactId>cse-dependency</artifactId> -->
<!--<version>2.3.46</version> -->
<!--<type>pom</type> -->
<!--<scope>import</scope> -->
<!--</dependency> -->
<!--</dependencies> -->
<!--</dependencyManagement> -->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
</project>
\ No newline at end of file
package com.sict.excel.bo;
public class AnalysisGraphicBO {
private String item;
private Integer number;
private String remark;
public String getItem() {
return item;
}
public void setItem(String item) {
this.item = item;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
@Override
public String toString() {
return "AnalysisGraphic [item=" + item + ", number=" + number + ", remark=" + remark + "]";
}
}
package com.sict.excel.dto;
public class AnalysisGraphicDTO {
private Integer applyGastricCancerScreeningHosp;
private Integer passApplyHosp;
private Integer platAccountApplyHosp;
private Integer openAccountHosp;
public Integer getApplyGastricCancerScreeningHosp() {
return null;
}
public void setApplyGastricCancerScreeningHosp(Integer applyGastricCancerScreeningHosp) {
this.applyGastricCancerScreeningHosp = applyGastricCancerScreeningHosp;
}
public Integer getPassApplyHosp() {
return passApplyHosp;
}
public void setPassApplyHosp(Integer passApplyHosp) {
this.passApplyHosp = passApplyHosp;
}
public Integer getPlatAccountApplyHosp() {
return null;
}
public void setPlatAccountApplyHosp(Integer platAccountApplyHosp) {
this.platAccountApplyHosp = platAccountApplyHosp;
}
public Integer getOpenAccountHosp() {
return openAccountHosp;
}
public void setOpenAccountHosp(Integer openAccountHosp) {
this.openAccountHosp = openAccountHosp;
}
@Override
public String toString() {
return "AnalysisGraphicDTO [applyGastricCancerScreeningHosp=" + applyGastricCancerScreeningHosp
+ ", passApplyHosp=" + passApplyHosp + ", platAccountApplyHosp=" + platAccountApplyHosp
+ ", openAccountHosp=" + openAccountHosp + "]";
}
}
package com.sict.excel.dto;
public class AnalysisProvinceDTO {
private String province;
private String applyHosp;
private String openAccountHosp;
private String applyAccountHosp;
private String passApplyHosp;
private String platAccountApplyHosp;
private String provinceScreeningTotal;
private String earlyCancer;
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getApplyHosp() {
return null;
}
public void setApplyHosp(String applyHosp) {
this.applyHosp = applyHosp;
}
public String getOpenAccountHosp() {
return openAccountHosp;
}
public void setOpenAccountHosp(String openAccountHosp) {
this.openAccountHosp = openAccountHosp;
}
public String getApplyAccountHosp() {
return null;
}
public void setApplyAccountHosp(String applyAccountHosp) {
this.applyAccountHosp = applyAccountHosp;
}
public String getPassApplyHosp() {
return passApplyHosp;
}
public void setPassApplyHosp(String passApplyHosp) {
this.passApplyHosp = passApplyHosp;
}
public String getPlatAccountApplyHosp() {
return null;
}
public void setPlatAccountApplyHosp(String platAccountApplyHosp) {
this.platAccountApplyHosp = platAccountApplyHosp;
}
public String getProvinceScreeningTotal() {
return provinceScreeningTotal;
}
public void setProvinceScreeningTotal(String provinceScreeningTotal) {
this.provinceScreeningTotal = provinceScreeningTotal;
}
public String getEarlyCancer() {
return earlyCancer;
}
public void setEarlyCancer(String earlyCancer) {
this.earlyCancer = earlyCancer;
}
@Override
public String toString() {
return "AnalysisProvinceDTO [province=" + province + ", applyHosp=" + applyHosp + ", openAccountHosp="
+ openAccountHosp + ", applyAccountHosp=" + applyAccountHosp + ", passApplyHosp=" + passApplyHosp
+ ", platAccountApplyHosp=" + platAccountApplyHosp + ", provinceScreeningTotal="
+ provinceScreeningTotal + ", earlyCancer=" + earlyCancer + "]";
}
}
package com.sict.excel.dto;
public class DiagnosisDTO {
private Integer higeLevel;
private Integer highEsophageal;
private Integer highStomach;
private Integer lowLevel;
private Integer lowEsophageal;
private Integer lowStomach;
private Integer earlyGastricCancer;
private Integer advancedGastricCancer;
private Integer earlyEsophagealCancer;
private Integer advancedEsophagealCancer;
private Integer atrophicGastritis;
private Integer gastricUlcer;
private Integer gastricPolyps;
public Integer getHigeLevel() {
return higeLevel;
}
public void setHigeLevel(Integer higeLevel) {
this.higeLevel = higeLevel;
}
public Integer getHighEsophageal() {
return highEsophageal;
}
public void setHighEsophageal(Integer highEsophageal) {
this.highEsophageal = highEsophageal;
}
public Integer getHighStomach() {
return highStomach;
}
public void setHighStomach(Integer highStomach) {
this.highStomach = highStomach;
}
public Integer getLowLevel() {
return lowLevel;
}
public void setLowLevel(Integer lowLevel) {
this.lowLevel = lowLevel;
}
public Integer getLowEsophageal() {
return lowEsophageal;
}
public void setLowEsophageal(Integer lowEsophageal) {
this.lowEsophageal = lowEsophageal;
}
public Integer getLowStomach() {
return lowStomach;
}
public void setLowStomach(Integer lowStomach) {
this.lowStomach = lowStomach;
}
public Integer getEarlyGastricCancer() {
return earlyGastricCancer;
}
public void setEarlyGastricCancer(Integer earlyGastricCancer) {
this.earlyGastricCancer = earlyGastricCancer;
}
public Integer getAdvancedGastricCancer() {
return advancedGastricCancer;
}
public void setAdvancedGastricCancer(Integer advancedGastricCancer) {
this.advancedGastricCancer = advancedGastricCancer;
}
public Integer getEarlyEsophagealCancer() {
return earlyEsophagealCancer;
}
public void setEarlyEsophagealCancer(Integer earlyEsophagealCancer) {
this.earlyEsophagealCancer = earlyEsophagealCancer;
}
public Integer getAdvancedEsophagealCancer() {
return advancedEsophagealCancer;
}
public void setAdvancedEsophagealCancer(Integer advancedEsophagealCancer) {
this.advancedEsophagealCancer = advancedEsophagealCancer;
}
public Integer getAtrophicGastritis() {
return atrophicGastritis;
}
public void setAtrophicGastritis(Integer atrophicGastritis) {
this.atrophicGastritis = atrophicGastritis;
}
public Integer getGastricUlcer() {
return gastricUlcer;
}
public void setGastricUlcer(Integer gastricUlcer) {
this.gastricUlcer = gastricUlcer;
}
public Integer getGastricPolyps() {
return gastricPolyps;
}
public void setGastricPolyps(Integer gastricPolyps) {
this.gastricPolyps = gastricPolyps;
}
@Override
public String toString() {
return "DiagnosisDTO [higeLevel=" + higeLevel + ", highEsophageal=" + highEsophageal + ", highStomach="
+ highStomach + ", lowLevel=" + lowLevel + ", lowEsophageal=" + lowEsophageal + ", lowStomach="
+ lowStomach + ", earlyGastricCancer=" + earlyGastricCancer + ", advancedGastricCancer="
+ advancedGastricCancer + ", earlyEsophagealCancer=" + earlyEsophagealCancer
+ ", advancedEsophagealCancer=" + advancedEsophagealCancer + ", atrophicGastritis=" + atrophicGastritis
+ ", gastricUlcer=" + gastricUlcer + ", gastricPolyps=" + gastricPolyps + "]";
}
}
package com.sict.excel.dto;
public class EarlyCancerHospitalDTO {
private Integer id;
private String hospname;
private String province;
private Integer total;
private Integer highEsophagealNeoplasia;
private Integer earlyEsophagealCancer;
private Integer advancedEsophagealCancer;
private Integer highGastricNeoplasia;
private Integer earlyGastricCancer;
private Integer advancedGastricCancer;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getHospname() {
return hospname;
}
public void setHospname(String hospname) {
this.hospname = hospname;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public Integer getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
public Integer getHighEsophagealNeoplasia() {
if (highEsophagealNeoplasia==0) {
return null;
}
return highEsophagealNeoplasia;
}
public void setHighEsophagealNeoplasia(Integer highEsophagealNeoplasia) {
this.highEsophagealNeoplasia = highEsophagealNeoplasia;
}
public Integer getEarlyEsophagealCancer() {
if (earlyEsophagealCancer==0) {
return null;
}
return earlyEsophagealCancer;
}
public void setEarlyEsophagealCancer(Integer earlyEsophagealCancer) {
this.earlyEsophagealCancer = earlyEsophagealCancer;
}
public Integer getAdvancedEsophagealCancer() {
if (advancedEsophagealCancer==0) {
return null;
}
return advancedEsophagealCancer;
}
public void setAdvancedEsophagealCancer(Integer advancedEsophagealCancer) {
this.advancedEsophagealCancer = advancedEsophagealCancer;
}
public Integer getHighGastricNeoplasia() {
if (highGastricNeoplasia==0) {
return null;
}
return highGastricNeoplasia;
}
public void setHighGastricNeoplasia(Integer highGastricNeoplasia) {
this.highGastricNeoplasia = highGastricNeoplasia;
}
public Integer getEarlyGastricCancer() {
if (earlyGastricCancer==0) {
return null;
}
return earlyGastricCancer;
}
public void setEarlyGastricCancer(Integer earlyGastricCancer) {
this.earlyGastricCancer = earlyGastricCancer;
}
public Integer getAdvancedGastricCancer() {
if (advancedGastricCancer==0) {
return null;
}
return advancedGastricCancer;
}
public void setAdvancedGastricCancer(Integer advancedGastricCancer) {
this.advancedGastricCancer = advancedGastricCancer;
}
@Override
public String toString() {
return "EarlyCancerHospital [id=" + id + ", hospname=" + hospname + ", province=" + province + ", total="
+ total + ", highEsophagealNeoplasia=" + highEsophagealNeoplasia + ", earlyEsophagealCancer="
+ earlyEsophagealCancer + ", advancedEsophagealCancer=" + advancedEsophagealCancer
+ ", highGastricNeoplasia=" + highGastricNeoplasia + ", earlyGastricCancer=" + earlyGastricCancer
+ ", advancedGastricCancer=" + advancedGastricCancer + "]";
}
}
package com.sict.excel.dto;
public class EarlyCancerRankDTO {
private String province;
private Integer ECamount;
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public Integer getECamount() {
return ECamount;
}
public void setECamount(Integer eCamount) {
ECamount = eCamount;
}
@Override
public String toString() {
return "EarlyCancerRankDTO [province=" + province + ", ECamount=" + ECamount + "]";
}
}
package com.sict.excel.dto;
public class GastroscopeTestDTO {
private Integer actualGastroscope;
private Integer planGastroscope;
public Integer getActualGastroscope() {
return actualGastroscope;
}
public void setActualGastroscope(Integer actualGastroscope) {
this.actualGastroscope = actualGastroscope;
}
public Integer getPlanGastroscope() {
return planGastroscope;
}
public void setPlanGastroscope(Integer planGastroscope) {
this.planGastroscope = planGastroscope;
}
@Override
public String toString() {
return "GastroscopeTestDTO [actualGastroscope=" + actualGastroscope + ", planGastroscopel=" + planGastroscope
+ "]";
}
}
package com.sict.excel.dto;
public class HpPositiveDTO {
private Integer HpPositive;
public Integer getHpPositive() {
return HpPositive;
}
public void setHpPositive(Integer hpPositive) {
HpPositive = hpPositive;
}
@Override
public String toString() {
return "HpPositiveDTO [HpPositive=" + HpPositive + "]";
}
}
package com.sict.excel.dto;
public class RiskDTO {
private String grade;
private Integer total;
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public Integer getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
@Override
public String toString() {
return "RiskDTO [grade=" + grade + ", total=" + total + "]";
}
}
package com.sict.excel.dto;
public class ScreeningRankDTO {
private Integer id;
private String hospname;
private Integer actualserum;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getHospname() {
return hospname;
}
public void setHospname(String hospname) {
this.hospname = hospname;
}
public Integer getActualserum() {
return actualserum;
}
public void setActualserum(Integer actualserum) {
this.actualserum = actualserum;
}
@Override
public String toString() {
return "ScreeningRankDTO [id=" + id + ", hospname=" + hospname + ", actualserum="
+ actualserum + "]";
}
}
package com.sict.excel.dto;
public class ScreeningRankProvinceDTO {
private Integer id;
private String hospname;
private String province;
private Integer actualserum;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getHospname() {
return hospname;
}
public void setHospname(String hospname) {
this.hospname = hospname;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public Integer getActualserum() {
return actualserum;
}
public void setActualserum(Integer actualserum) {
this.actualserum = actualserum;
}
@Override
public String toString() {
return "ScreeningRankDTO [id=" + id + ", hospname=" + hospname + ", province=" + province + ", actualserum="
+ actualserum + "]";
}
}
package com.sict.excel.dto;
public class SerumStatisticsDTO {
/**
* 省份血检总人次
*/
private Integer serumTestTotal;
/**
* 省份HP抗体(IGG)检测阳性总人次
*/
private Integer iggPositive;
public Integer getSerumTestTotal() {
return serumTestTotal;
}
public void setSerumTestTotal(Integer serumTestTotal) {
this.serumTestTotal = serumTestTotal;
}
public Integer getIggPositive() {
return iggPositive;
}
public void setIggPositive(Integer iggPositive) {
this.iggPositive = iggPositive;
}
@Override
public String toString() {
return "SerumStatisticsDTO [serumTestTotal=" + serumTestTotal + ", iggPositive=" + iggPositive + "]";
}
}
package com.sict.excel.dto;
/**
* 例子JavaBean
* @author liuyazhuang
*
*/
public class Student {
private int id;
private String name;
private String sex;
public Student(int id, String name, String sex) {
this.id = id;
this.name = name;
this.sex = sex;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
\ No newline at end of file
package com.sict.excel.mapper;
import java.util.List;
import com.sict.excel.dto.AnalysisGraphicDTO;
import com.sict.excel.dto.AnalysisProvinceDTO;
import com.sict.excel.dto.DiagnosisDTO;
import com.sict.excel.dto.EarlyCancerHospitalDTO;
import com.sict.excel.dto.EarlyCancerRankDTO;
import com.sict.excel.dto.GastroscopeTestDTO;
import com.sict.excel.dto.HpPositiveDTO;
import com.sict.excel.dto.RiskDTO;
import com.sict.excel.dto.ScreeningRankDTO;
import com.sict.excel.dto.ScreeningRankProvinceDTO;
import com.sict.excel.dto.SerumStatisticsDTO;
public interface DownloadMapper{
/**
* 筛查监控-血清学检查
* @return
*/
SerumStatisticsDTO getSerumStatistics();
/***
* 筛查排名-按血检人数排名
* @return
*/
List<ScreeningRankProvinceDTO> getScreeningRankProvinceDTOs();
/**
* 省份早癌排名
* @return
*/
List<EarlyCancerRankDTO> getEarlyCancerRankDTOs();
/**
* 运营分析-医院早癌 胃癌数
*/
List<EarlyCancerHospitalDTO> geteaCancerHospitals();
/**
* 运营分析-省份数据
* @return
*/
List<AnalysisProvinceDTO> getAnalysisProvinceDTOs();
/***
* 社区筛查排名-血检人数/体检筛查排名-血检人数/门诊筛查排名-血检人数
* @return
*/
List<ScreeningRankDTO> getScreeningRankDTOs();
/**
* 运营分析-图例数据
* @return
*/
AnalysisGraphicDTO getAnalysisGraphicDTOs();
/**
* 筛查监控-胃镜检查
* @return
*/
GastroscopeTestDTO getGastroscopeTestDTOs();
/**
* Hp抗体阳性人数
* @return
*/
HpPositiveDTO getHpPositiveDTO();
/***
* 诊断结果
* @return
*/
DiagnosisDTO getDiagnosisDTO();
/**
* 风险等级
* @return
*/
List<RiskDTO> getRiskDTOs();
}
package com.sict.excel;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.sict.excel.test.AnalysisGraphicExcel;
import com.sict.excel.test.AnalysisHospitalEarlyCancerExcel;
import com.sict.excel.test.AnalysisProvinceExcel;
import com.sict.excel.test.Diagnosis;
import com.sict.excel.test.GastroscopeTest;
import com.sict.excel.test.ProvinceEarlyCancerRankExcel;
import com.sict.excel.test.ScreeningRankGecaExcel;
import com.sict.excel.test.ScreeningRankProvinceExcel;
import com.sict.excel.test.ScreeningRankQgExcel;
import com.sict.excel.test.ScreeningRankShchyyExcel;
import com.sict.excel.test.SerumTest;
public class myExcel {
public static void main(String[] args) throws Exception {
HSSFWorkbook workbook = new HSSFWorkbook();
//筛查监控-血清学检查
SerumTest serumTest = new SerumTest();
HSSFSheet sheet1 = serumTest.getsheet1(workbook);
workbook.setSheetName(0, "筛查监控-血清学检查");
//筛查监控-胃镜检查
GastroscopeTest gastroscopeTest = new GastroscopeTest();
HSSFSheet sheet2 = gastroscopeTest.getSheet2(workbook);
workbook.setSheetName(1, "筛查监控-胃镜检查");
//筛查监控-诊断结果
Diagnosis diagnosis = new Diagnosis();
HSSFSheet sheet3 = diagnosis.getSheet3(workbook);
workbook.setSheetName(2, "筛查监控-诊断结果");
//运营分析-图例数据
AnalysisGraphicExcel analysisGraphicExcel = new AnalysisGraphicExcel();
HSSFSheet sheet4 = analysisGraphicExcel.getsheet4(workbook);
workbook.setSheetName(3, "运营分析-图例数据");
//运营分析-省份数据
AnalysisProvinceExcel analysisProvinceExcel = new AnalysisProvinceExcel();
HSSFSheet sheet5 = analysisProvinceExcel.getSheet5(workbook);
workbook.setSheetName(4, "运营分析-省份数据");
//运营分析-医院早癌 胃癌数
AnalysisHospitalEarlyCancerExcel analysisHospitalEarlyCancerExcel = new AnalysisHospitalEarlyCancerExcel();
HSSFSheet sheet6 = analysisHospitalEarlyCancerExcel.getsheet6(workbook);
workbook.setSheetName(5, "运营分析-医院早癌 胃癌数");
//省份早癌排名
ProvinceEarlyCancerRankExcel provinceEarlyCancerRankExcel = new ProvinceEarlyCancerRankExcel();
HSSFSheet sheet7 = provinceEarlyCancerRankExcel.getSheet7(workbook);
workbook.setSheetName(6, "省份早癌排名");
//筛查排名-按血检人数排名
ScreeningRankProvinceExcel screeningRankProvinceExcel = new ScreeningRankProvinceExcel();
HSSFSheet sheet8 = screeningRankProvinceExcel.getSheet8(workbook);
workbook.setSheetName(7, "筛查排名-按血检人数排名");
//社区筛查排名-血检人数
ScreeningRankShchyyExcel screeningRankShchyyExcel = new ScreeningRankShchyyExcel();
HSSFSheet sheet9 = screeningRankShchyyExcel.getSheet9(workbook);
workbook.setSheetName(8, "社区筛查排名-血检人数");
//体检筛查排名-血检人数
ScreeningRankGecaExcel screeningRankGecaExcel = new ScreeningRankGecaExcel();
HSSFWorkbook getsheet10 = screeningRankGecaExcel.getsheet10(workbook);
workbook.setSheetName(9, "体检筛查排名-血检人数");
//门诊筛查排名-血检人数
ScreeningRankQgExcel screeningRankQgExcel = new ScreeningRankQgExcel();
HSSFSheet sheet11 = screeningRankQgExcel.getSheet11(workbook);
workbook.setSheetName(10, "门诊筛查排名-血检人数");
FileOutputStream outputStream = new FileOutputStream("E:/2019/excel/GICC+map+data.xls");
workbook.write(outputStream);
outputStream.close();
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.sict.excel.bo.AnalysisGraphicBO;
import com.sict.excel.dto.AnalysisGraphicDTO;
import com.sict.excel.dto.EarlyCancerHospitalDTO;
import com.sict.excel.dto.ScreeningRankProvinceDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.ExportExcelUtil;
import com.sict.excel.utils.SqlSessionUtil;
public class AnalysisGraphicExcel {
public static HSSFSheet getsheet4(HSSFWorkbook workbook) throws IOException {
SqlSession sqlSession = SqlSessionUtil.getSession();
DownloadMapper mapper = sqlSession.getMapper(DownloadMapper.class);
ExportExcelUtil<AnalysisGraphicBO> util = new ExportExcelUtil<AnalysisGraphicBO>();
String[] columnNames = {"收集项","数值","备注"};
AnalysisGraphicDTO graphicDTO = mapper.getAnalysisGraphicDTOs();
List<AnalysisGraphicBO> list = new ArrayList<AnalysisGraphicBO>();
AnalysisGraphicBO analysisGraphicBO = new AnalysisGraphicBO();
analysisGraphicBO.setItem("申请胃癌筛查的医院总数");
analysisGraphicBO.setNumber(graphicDTO.getApplyGastricCancerScreeningHosp());
list.add(analysisGraphicBO);
AnalysisGraphicBO analysisGraphicBO2 = new AnalysisGraphicBO();
analysisGraphicBO2.setItem("通过申请医院数 ");
analysisGraphicBO2.setNumber(graphicDTO.getPassApplyHosp());
list.add(analysisGraphicBO2);
AnalysisGraphicBO analysisGraphicBO3 = new AnalysisGraphicBO();
analysisGraphicBO3.setItem("平台账号申请医院数");
analysisGraphicBO3.setNumber(graphicDTO.getPlatAccountApplyHosp());
list.add(analysisGraphicBO3);
AnalysisGraphicBO analysisGraphicBO4 = new AnalysisGraphicBO();
analysisGraphicBO4.setItem("账号已开通的医院数");
analysisGraphicBO4.setNumber(graphicDTO.getOpenAccountHosp());
list.add(analysisGraphicBO4);
// String path = "E:/2019/excel/" + "运营分析-图例数据.xls";
HSSFSheet sheet = util.exportExcel(workbook,"运营分析-图例数据", columnNames, list, ExportExcelUtil.EXCEl_FILE_2007);
sqlSession.commit();
sqlSession.close();
return sheet;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.hslf.model.Sheet;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.sict.excel.dto.EarlyCancerHospitalDTO;
import com.sict.excel.dto.ScreeningRankProvinceDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.ExportExcelUtil;
import com.sict.excel.utils.SqlSessionUtil;
public class AnalysisHospitalEarlyCancerExcel {
public static HSSFSheet getsheet6(HSSFWorkbook workbook) throws IOException {
SqlSession sqlSession = SqlSessionUtil.getSession();
DownloadMapper mapper = sqlSession.getMapper(DownloadMapper.class);
ExportExcelUtil<EarlyCancerHospitalDTO> util = new ExportExcelUtil<EarlyCancerHospitalDTO>();
String[] columnNames = {"排名","医院名称","省份","合计","高级别食管粘膜上皮内瘤变","早期食管癌","进展期食管癌","高级别胃粘膜上皮内瘤病变","早期胃癌","进展期胃癌"};
List<EarlyCancerHospitalDTO> list = mapper.geteaCancerHospitals();
// String path = "E:/2019/excel/" + "运营分析-医院早癌 胃癌数.xls";
HSSFSheet sheet = util.exportExcel(workbook,"运营分析-医院早癌 胃癌数", columnNames, list, ExportExcelUtil.EXCEl_FILE_2007);
sqlSession.commit();
sqlSession.close();
return sheet;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.sict.excel.dto.AnalysisProvinceDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.ExportExcelUtil;
import com.sict.excel.utils.SqlSessionUtil;
public class AnalysisProvinceExcel {
public static HSSFSheet getSheet5(HSSFWorkbook workbook) throws IOException {
SqlSession sqlSession = SqlSessionUtil.getSession();
DownloadMapper mapper = sqlSession.getMapper(DownloadMapper.class);
ExportExcelUtil<AnalysisProvinceDTO> util = new ExportExcelUtil<AnalysisProvinceDTO>();
String[] columnNames = {"省份","申请医院总数 ","开通账号医院总数","申请账号中的医院总数","通过申请医院数","平台账号申请医院数","筛查人数","早癌数"};
List<AnalysisProvinceDTO> list = mapper.getAnalysisProvinceDTOs();
//String path = "E:/2019/excel/" + "运营分析-省份数据.xls";
HSSFSheet sheet = util.exportExcel(workbook,"运营分析-省份数据", columnNames, list, ExportExcelUtil.EXCEl_FILE_2007);
sqlSession.commit();
sqlSession.close();
return sheet;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.RegionUtil;
import com.sict.excel.dto.DiagnosisDTO;
import com.sict.excel.dto.RiskDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.SqlSessionUtil;
public class Diagnosis {
public static HSSFSheet getSheet3(HSSFWorkbook workbook) throws IOException {
HSSFSheet sheet = workbook.createSheet("筛查监控-诊断结果");
sheet.setDefaultColumnWidth(15);
// 设置这些样式
HSSFCellStyle style = workbook.createCellStyle();
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直居中
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 背景色
// 设置边框
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setFillBackgroundColor(IndexedColors.PALE_BLUE.getIndex());
// 生成一个字体
HSSFFont font = workbook.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setFontName("宋体");
style.setFont(font);
HSSFRow row = sheet.createRow(0);
// 合并行
HSSFCell cell = row.createCell(0);
cell.setCellValue("收集项");
cell.setCellStyle(style);
CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1);
sheet.addMergedRegion(region);
RegionUtil.setBorderBottom(1, region, sheet, workbook); // 下边框
RegionUtil.setBorderLeft(1, region, sheet, workbook); // 左边框
RegionUtil.setBorderRight(1, region, sheet, workbook); // 有边框
RegionUtil.setBorderTop(1, region, sheet, workbook); // 上边框
// 数量
HSSFCell cell12 = row.createCell(2);
cell12.setCellStyle(style);
cell12.setCellValue("数量");
HSSFCellStyle style2 = workbook.createCellStyle();
style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 背景色
// 设置边框
style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
// 生成一个字体
HSSFFont font2 = workbook.createFont();
font.setFontHeightInPoints((short) 11);
font.setColor(IndexedColors.AUTOMATIC.getIndex());
font.setFontName("宋体");
style2.setFont(font2);// 把字体 应用到当前样式
HSSFRow row4 ;
HSSFCell cell41,cell42,cell43,cell44;
SqlSession sqlSession = SqlSessionUtil.getSession();
DownloadMapper mapper = sqlSession.getMapper(DownloadMapper.class);
DiagnosisDTO diagnosis = mapper.getDiagnosisDTO();
String[] str1 = {"诊断结果","","","","其他","",""};
String[] str2 = {"高级别上皮内瘤变","低级别上皮内瘤变","早期胃癌","早期食管癌","萎缩性胃炎","胃溃疡","胃息肉"};
Integer[] number = {diagnosis.getHigeLevel(),diagnosis.getLowLevel(),diagnosis.getEarlyGastricCancer(),diagnosis.getEarlyEsophagealCancer(),diagnosis.getAtrophicGastritis(),diagnosis.getGastricUlcer(),diagnosis.getGastricPolyps()};
String[] str3 = {"食管"+diagnosis.getHighEsophageal()+"+胃"+diagnosis.getHighStomach(),"食管"+diagnosis.getLowEsophageal()+"+胃"+diagnosis.getLowStomach(),"进展期胃癌"+diagnosis.getAdvancedGastricCancer(),"进展期食管癌"+diagnosis.getAdvancedEsophagealCancer(),"","",""};
for (int i = 1; i < 8; i++) {
row4 = sheet.createRow(i);
cell41 = row4.createCell(0);
cell41.setCellStyle(style2);
cell41.setCellValue(str1[i-1]);
cell42 = row4.createCell(1);
cell42.setCellStyle(style2);
cell42.setCellValue(str2[i-1]);
cell43 = row4.createCell(2);
cell43.setCellStyle(style2);
cell43.setCellValue(number[i-1]);
cell44 = row4.createCell(3);
cell44.setCellValue(str3[i-1]);
}
CellRangeAddress region2 = new CellRangeAddress(1, 4, 0, 0);
sheet.addMergedRegion(region2);
RegionUtil.setBorderBottom(1, region2, sheet, workbook); // 下边框
RegionUtil.setBorderLeft(1, region2, sheet, workbook); // 左边框
RegionUtil.setBorderRight(1, region2, sheet, workbook); // 有边框
RegionUtil.setBorderTop(1, region2, sheet, workbook); // 上边框
CellRangeAddress region3 = new CellRangeAddress(5, 7, 0, 0);
sheet.addMergedRegion(region3);
RegionUtil.setBorderBottom(1, region3, sheet, workbook); // 下边框
RegionUtil.setBorderLeft(1, region3, sheet, workbook); // 左边框
RegionUtil.setBorderRight(1, region3, sheet, workbook); // 有边框
RegionUtil.setBorderTop(1, region3, sheet, workbook); // 上边框
HSSFRow row5 ;
HSSFCell cell51,cell52,cell53;
List<RiskDTO> riskDTOs = mapper.getRiskDTOs();
String[] str4 = {"","高危","中危","低危","总数"};
Integer highInteger=riskDTOs.get(0).getTotal();
Integer lowString = riskDTOs.get(1).getTotal();
Integer mediuString = riskDTOs.get(2).getTotal();
Integer totalInteger = highInteger.intValue()+lowString.intValue()+mediuString.intValue();
double highdouble = Double.parseDouble(highInteger.toString());
double mediumdouble = Double.parseDouble(mediuString.toString());
double lowdouble = Double.parseDouble(lowString.toString());
double totaldouble = Double.parseDouble(totalInteger.toString());
String[] str5 = {"总数",highInteger.toString(),mediuString.toString(),lowString.toString(),totalInteger+""};
String[] str6 = {"比例",String.format("%.1f", highdouble/totaldouble*100)+"%",String.format("%.1f", mediumdouble/totaldouble*100)+"%",String.format("%.1f", lowdouble/totaldouble*100)+"%","100%"};
for (int i = 11; i < 16; i++) {
row5 = sheet.createRow(i);
cell51 = row5.createCell(0);
cell51.setCellValue(str4[i-11]);
cell52 = row5.createCell(1);
cell52.setCellValue(str5[i-11]);
HSSFCellStyle style3 = workbook.createCellStyle();
HSSFFont font3 = workbook.createFont();
font3.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font3.setFontName("宋体");
style3.setFont(font);
cell53 = row5.createCell(2);
cell53.setCellValue(str6[i-11]);
cell53.setCellStyle(style3);
}
return sheet;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.IndexedColors;
import com.sict.excel.dto.GastroscopeTestDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.SqlSessionUtil;
public class GastroscopeTest {
public static HSSFSheet getSheet2(HSSFWorkbook workbook) throws IOException {
SqlSession sqlSession = SqlSessionUtil.getSession();
DownloadMapper mapper = sqlSession.getMapper(DownloadMapper.class);
GastroscopeTestDTO gastroscopeTestDTO = mapper.getGastroscopeTestDTOs();
HSSFSheet sheet = workbook.createSheet("筛查监控-胃镜检查");
sheet.setDefaultColumnWidth(15);
HSSFRow row = sheet.createRow(0);
HSSFCellStyle style = workbook.createCellStyle();
// 设置这些样式
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直居中
// 背景色
style.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setFillBackgroundColor(IndexedColors.PALE_BLUE.getIndex());
// 设置边框
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
// 生成一个字体
HSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short) 11);
font.setColor(IndexedColors.AUTOMATIC.getIndex());
font.setFontName("宋体");
style.setFont(font);// 把字体 应用到当前样式
HSSFCell cell = row.createCell(0);
cell.setCellValue("收集项");
cell.setCellStyle(style);
HSSFCell cell2 = row.createCell(1);
cell2.setCellValue("数量");
cell2.setCellStyle(style);
HSSFCellStyle style2 = workbook.createCellStyle();
// 设置这些样式
style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直居中
// 背景色
style2.setFillForegroundColor(IndexedColors.WHITE.getIndex());
style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style2.setFillBackgroundColor(IndexedColors.WHITE.getIndex());
// 设置边框
style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
style2.setFont(font);// 把字体 应用到当前样式
HSSFRow row2 = sheet.createRow(1);// 第2行
HSSFCell cell3 = row2.createCell(0);
cell3.setCellStyle(style2);
cell3.setCellValue("实际精查人数");
HSSFCell cell4 = row2.createCell(1);
cell4.setCellStyle(style2);
cell4.setCellValue(gastroscopeTestDTO.getActualGastroscope()+"");
HSSFCell cell7 = row2.createCell(2);
double actual = Double.parseDouble(gastroscopeTestDTO.getActualGastroscope().toString());
double plan = Double.parseDouble(gastroscopeTestDTO.getPlanGastroscope().toString());
cell7.setCellValue(String.format("%.2f", actual/plan*100)+"%");
HSSFRow row3 = sheet.createRow(2);// 第三行
HSSFCell cell5 = row3.createCell(0);
cell5.setCellStyle(style2);
cell5.setCellValue("应精查人数");
HSSFCell cell6 = row3.createCell(1);
cell6.setCellStyle(style2);
cell6.setCellValue(gastroscopeTestDTO.getPlanGastroscope()+"");
//FileOutputStream outputStream = new FileOutputStream("E:/2019/excel/筛查监控-胃镜检查.xls");
sqlSession.commit();
sqlSession.close();
return sheet;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.sict.excel.dto.EarlyCancerRankDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.ExportExcelUtil;
import com.sict.excel.utils.SqlSessionUtil;
public class ProvinceEarlyCancerRankExcel {
public static HSSFSheet getSheet7(HSSFWorkbook workbook) throws IOException {
SqlSession sqlSession = SqlSessionUtil.getSession();
DownloadMapper mapper = sqlSession.getMapper(DownloadMapper.class);
ExportExcelUtil<EarlyCancerRankDTO> util = new ExportExcelUtil<EarlyCancerRankDTO>();
String[] columnNames = {"省份","早癌数"};
List<EarlyCancerRankDTO> list = mapper.getEarlyCancerRankDTOs();
//String path = "E:/2019/excel/" + "省份早癌排名.xls";
HSSFSheet sheet = util.exportExcel(workbook,"省份早癌排名", columnNames, list, ExportExcelUtil.EXCEl_FILE_2007);
sqlSession.commit();
sqlSession.close();
return sheet;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.sict.excel.dto.EarlyCancerRankDTO;
import com.sict.excel.dto.ScreeningRankDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.ExportExcelUtil;
import com.sict.excel.utils.SqlSessionUtil;
public class ScreeningRankGecaExcel {
public static HSSFWorkbook getsheet10(HSSFWorkbook workbook) throws IOException {
SqlSession sqlSession = SqlSessionUtil.getGecaSession();
DownloadMapper mapper = sqlSession.getMapper(DownloadMapper.class);
ExportExcelUtil<ScreeningRankDTO> util = new ExportExcelUtil<ScreeningRankDTO>();
String[] columnNames = {"排名","医联体名称","血检人数"};
List<ScreeningRankDTO> list = mapper.getScreeningRankDTOs();
String path = "E:/2019/excel/" + "体检筛查排名-血检人数.xls";
HSSFSheet sheet = util.exportExcel(workbook,"体检筛查排名-血检人数", columnNames, list, ExportExcelUtil.EXCEl_FILE_2007);
sqlSession.commit();
sqlSession.close();
return workbook;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.sict.excel.dto.ScreeningRankProvinceDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.ExportExcelUtil;
import com.sict.excel.utils.SqlSessionUtil;
public class ScreeningRankProvinceExcel {
public static HSSFSheet getSheet8(HSSFWorkbook workbook) throws IOException {
SqlSession sqlSession = SqlSessionUtil.getSession();
DownloadMapper mapper = sqlSession.getMapper(DownloadMapper.class);
ExportExcelUtil<ScreeningRankProvinceDTO> util = new ExportExcelUtil<ScreeningRankProvinceDTO>();
String[] columnNames = {"排名","医院名称","省份","血检人数"};
List<ScreeningRankProvinceDTO> list = mapper.getScreeningRankProvinceDTOs();
//String path = "E:/2019/excel/" + "筛查排名-按血检人数排名.xls";
HSSFSheet sheet = util.exportExcel(workbook, "筛查排名-按血检人数排名", columnNames, list, ExportExcelUtil.EXCEl_FILE_2007);
sqlSession.commit();
sqlSession.close();
return sheet;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.sict.excel.dto.EarlyCancerRankDTO;
import com.sict.excel.dto.ScreeningRankDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.ExportExcelUtil;
import com.sict.excel.utils.SqlSessionUtil;
public class ScreeningRankQgExcel {
public static HSSFSheet getSheet11(HSSFWorkbook workbook) throws IOException {
SqlSession sqlSession = SqlSessionUtil.getQgSession();
DownloadMapper mapper = sqlSession.getMapper(DownloadMapper.class);
ExportExcelUtil<ScreeningRankDTO> util = new ExportExcelUtil<ScreeningRankDTO>();
String[] columnNames = {"排名","医联体名称","血检人数"};
List<ScreeningRankDTO> list = mapper.getScreeningRankDTOs();
String path = "E:/2019/excel/" + "门诊筛查排名-血检人数.xls";
HSSFSheet sheet = util.exportExcel(workbook,"门诊筛查排名-血检人", columnNames, list, ExportExcelUtil.EXCEl_FILE_2007);
sqlSession.commit();
sqlSession.close();
return sheet;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.sict.excel.dto.EarlyCancerRankDTO;
import com.sict.excel.dto.ScreeningRankDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.ExportExcelUtil;
import com.sict.excel.utils.SqlSessionUtil;
public class ScreeningRankShchyyExcel {
public static HSSFSheet getSheet9(HSSFWorkbook workbook) throws IOException {
SqlSession sqlSession = SqlSessionUtil.getShchyySession();
DownloadMapper mapper = sqlSession.getMapper(DownloadMapper.class);
ExportExcelUtil<ScreeningRankDTO> util = new ExportExcelUtil<ScreeningRankDTO>();
String[] columnNames = {"排名","医联体名称","血检人数"};
List<ScreeningRankDTO> list = mapper.getScreeningRankDTOs();
String path = "E:/2019/excel/" + "社区筛查排名-血检人数.xls";
HSSFSheet sheet = util.exportExcel(workbook,"社区筛查排名-血检人数", columnNames, list, ExportExcelUtil.EXCEl_FILE_2007);
sqlSession.commit();
sqlSession.close();
return sheet;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.IndexedColors;
import com.sict.excel.dto.HpPositiveDTO;
import com.sict.excel.dto.ScreeningRankDTO;
import com.sict.excel.dto.ScreeningRankProvinceDTO;
import com.sict.excel.dto.SerumStatisticsDTO;
import com.sict.excel.mapper.DownloadMapper;
import com.sict.excel.utils.ExportExcelUtil;
import com.sict.excel.utils.SqlSessionUtil;
public class SerumTest {
public static HSSFSheet getsheet1(HSSFWorkbook workbook) throws Exception {
SqlSession sqlSession = SqlSessionUtil.getSession();// 血检总人数
SqlSession shchyy = SqlSessionUtil.getShchyySession();// 社区血检人数
SqlSession geca = SqlSessionUtil.getGecaSession();// 体检
SqlSession qg = SqlSessionUtil.getQgSession();// 门诊
DownloadMapper sqlSessionmapper = sqlSession.getMapper(DownloadMapper.class);
DownloadMapper shchyyMapper = shchyy.getMapper(DownloadMapper.class);
DownloadMapper gecaMapper = geca.getMapper(DownloadMapper.class);
DownloadMapper qgMapper = qg.getMapper(DownloadMapper.class);
SerumStatisticsDTO serumall = sqlSessionmapper.getSerumStatistics();
List<ScreeningRankDTO> listshchyy = shchyyMapper.getScreeningRankDTOs();
List<ScreeningRankDTO> listgeca = gecaMapper.getScreeningRankDTOs();
List<ScreeningRankDTO> listqg = qgMapper.getScreeningRankDTOs();
Integer serumInteger = serumall.getSerumTestTotal();
Integer shchyyinInteger = 0;
Integer gecaintInteger = 0;
Integer qgInteger = 0;
Integer hpInteger = serumall.getIggPositive();
for (ScreeningRankDTO screeningRankDTO : listshchyy) {
shchyyinInteger += screeningRankDTO.getActualserum();
}
for (ScreeningRankDTO screeningRankDTO : listgeca) {
gecaintInteger += screeningRankDTO.getActualserum();
}
for (ScreeningRankDTO screeningRankDTO : listqg) {
qgInteger += screeningRankDTO.getActualserum();
}
HSSFSheet sheet = workbook.createSheet("筛查监控-血清学检查");
sheet.setDefaultColumnWidth(15);
HSSFRow row = sheet.createRow(0);
HSSFCellStyle style = workbook.createCellStyle();
// 设置这些样式
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直居中
// 背景色
style.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setFillBackgroundColor(IndexedColors.PALE_BLUE.getIndex());
// 设置边框
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
// 生成一个字体
HSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short) 11);
font.setColor(IndexedColors.AUTOMATIC.getIndex());
font.setFontName("宋体");
style.setFont(font);// 把字体 应用到当前样式
HSSFCell cell = row.createCell(0);
cell.setCellValue("收集项");
cell.setCellStyle(style);
HSSFCell cell2 = row.createCell(1);
cell2.setCellValue("数量");
cell2.setCellStyle(style);
HSSFCellStyle style2 = workbook.createCellStyle();
// 设置这些样式
style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直居中
// 背景色
style2.setFillForegroundColor(IndexedColors.WHITE.getIndex());
style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style2.setFillBackgroundColor(IndexedColors.WHITE.getIndex());
// 设置边框
style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
style2.setFont(font);// 把字体 应用到当前样式
HSSFRow row2 = sheet.createRow(1);// 第2行
HSSFCell cell3 = row2.createCell(0);
cell3.setCellStyle(style2);
cell3.setCellValue("血检总人数");
HSSFCell cell4 = row2.createCell(1);
cell4.setCellStyle(style2);
cell4.setCellValue(serumInteger + "");
HSSFRow row3 = sheet.createRow(2);// 第三行
HSSFCell cell5 = row3.createCell(0);
cell5.setCellStyle(style2);
cell5.setCellValue("Hp抗体阳性人数 ");
HSSFCell cell6 = row3.createCell(1);
cell6.setCellStyle(style2);
cell6.setCellValue(hpInteger + "");
HSSFCell cell7 = row3.createCell(2);
double all = Double.parseDouble(serumInteger.toString());
double hp2 = Double.parseDouble(hpInteger.toString());
cell7.setCellValue(String.format("%.2f", hp2 / all * 100) + "%");
HSSFCellStyle style3 = workbook.createCellStyle();
HSSFRow row8 = sheet.createRow(7);//7行
HSSFCell cell71 = row8.createCell(0);
cell71.setCellValue("社区血检人数");
style3.setFont(font);
cell71.setCellStyle(style3);
HSSFCell cell72 = row8.createCell(1);
cell72.setCellStyle(style3);
cell72.setCellValue(shchyyinInteger+"");
HSSFRow row9 = sheet.createRow(8);//8行
HSSFCell cell91 = row9.createCell(0);
cell91.setCellValue("门诊血检人数");
style3.setFont(font);
cell91.setCellStyle(style3);
HSSFCell cell92 = row9.createCell(1);
cell92.setCellStyle(style3);
cell92.setCellValue(qgInteger+"");
HSSFRow row10 = sheet.createRow(9);//9行
HSSFCell cell101 = row10.createCell(0);
cell101.setCellValue("体检血检人数");
style3.setFont(font);
cell101.setCellStyle(style3);
HSSFCell cell102 = row10.createCell(1);
cell102.setCellStyle(style3);
cell102.setCellValue(gecaintInteger+"");
HSSFRow row11= sheet.createRow(10);//10行
HSSFCell cell111 = row11.createCell(0);
cell111.setCellValue("合计");
style3.setFont(font);
cell111.setCellStyle(style3);
HSSFCell cell112 = row11.createCell(1);
cell112.setCellStyle(style3);
cell112.setCellValue(String.valueOf(shchyyinInteger.intValue()+gecaintInteger.intValue()+qgInteger.intValue()));
FileOutputStream outputStream = new FileOutputStream("E:/2019/excel/筛查监控-血清学检查.xls");
sqlSession.commit();
shchyy.commit();
geca.commit();
qg.commit();
qg.close();
geca.close();
qg.close();
sqlSession.close();
return sheet;
}
}
package com.sict.excel.test;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import com.sict.excel.dto.Student;
import com.sict.excel.utils.ExportExcelUtil;
/**
* 测试文件导出
* @author liuyazhuang
*
*/
public class TestExportExcel {
public static void main(String[] args) throws Exception{
ExportExcelUtil<Student> util = new ExportExcelUtil<Student>();
// 准备数据
List<Student> list = new ArrayList<Student>();
for (int i = 0; i < 10; i++) {
list.add(new Student(i,"张三asdf"+i,"男"));
}
String[] columnNames = { "ID", "姓名", "性别" };
// Date date = new Date();
// System.out.println(date.getYear()+"/"+date.getMonth()+"/"+date.getDay()+"/"+date.getHours()+"/"+date.getMinutes()+"/"+date.getSeconds());
Calendar calendar = Calendar.getInstance();
Date date = new Date();
calendar.setTime(date);
calendar.getTime();//2019-08-13
//System.out.println(calendar.get(Calendar.YEAR)+"/"+calendar.get(Calendar.MONTH)+"/"+calendar.get(Calendar.DATE)+"/"+calendar.get(Calendar.HOUR)+"/"+calendar.get(Calendar.MINUTE)+"/"+calendar.get(Calendar.SECOND));
String path = "E:/2019/excel/"+date.getTime()+"学生表.xls";
// util.exportExcel("用户导出", columnNames, list, new FileOutputStream(path), ExportExcelUtil.EXCEL_FILE_2003);
System.out.println("已导出excel表");
}
}
\ No newline at end of file
package com.sict.excel.utils;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import java.io.*;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
public class Excel {
private HSSFWorkbook workbook;
private HSSFSheet sheet;
private String bDate;
private int year;
/**
* 创建行元素
* @param style 样式
* @param height 行高
* @param value 行显示的内容
* @param row1 起始行
* @param row2 结束行
* @param col1 起始列
* @param col2 结束列
*/
private void createRow(HSSFCellStyle style, int height, String value, int row1, int row2, int col1, int col2){
sheet.addMergedRegion(new CellRangeAddress(row1, row2, col1, col2)); //设置从第row1行合并到第row2行,第col1列合并到col2列
HSSFRow rows = sheet.createRow(row1); //设置第几行
rows.setHeight((short) height); //设置行高
HSSFCell cell = rows.createCell(col1); //设置内容开始的列
cell.setCellStyle(style); //设置样式
cell.setCellValue(value); //设置该行的值
}
/**
* 创建样式
* @param fontSize 字体大小
* @param align 水平位置 左右居中2 居右3 默认居左 垂直均为居中
* @param bold 是否加粗
* @return
*/
private HSSFCellStyle getStyle(int fontSize,int align,boolean bold,boolean border){
HSSFFont font = workbook.createFont();
font.setFontName("宋体");
font.setFontHeightInPoints((short) fontSize);// 字体大小
if (bold){
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
}
HSSFCellStyle style = workbook.createCellStyle();
style.setFont(font); //设置字体
style.setAlignment((short) align); // 左右居中2 居右3 默认居左
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中1
if (border){
style.setBorderRight((short) 2);
style.setBorderLeft((short) 2);
style.setBorderBottom((short) 2);
style.setBorderTop((short) 2);
style.setLocked(true);
}
return style;
}
/**
* 根据数据集生成Excel,并返回Excel文件流
* @param data 数据集
* @param sheetName Excel中sheet单元名称
* @param headNames 列表头名称数组
* @param colKeys 列key,数据集根据该key进行按顺序取值
* @return
* @throws IOException
*/
public InputStream getExcelFile(List<Map> data, String sheetName, String[] headNames,
String[] colKeys, int colWidths[],String bDate) throws IOException {
this.bDate = bDate;
workbook = new HSSFWorkbook();
sheet = workbook.createSheet(sheetName);
// 创建表头 startRow代表表体开始的行
int startRow = createHeadCell( headNames, colWidths);
// 创建表体数据
HSSFCellStyle cellStyle = getStyle(14,2,false,true); // 建立新的cell样式
setCellData(data, cellStyle, startRow, colKeys);
//创建表尾
createTailCell(data.size()+4,headNames.length);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
byte[] ba = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(ba);
return bais;
}
/**
* 创建表头
*
* @param headNames
* @param colWidths
*/
private int createHeadCell( String[] headNames, int colWidths[]) {
// 表头标题
HSSFCellStyle titleStyle = getStyle(22,2,true,false);//样式
createRow(titleStyle,0x549,"XX科技收入对账单",0,0,0,headNames.length-1);
//第二行
HSSFCellStyle unitStyle = getStyle(12,1,true,false);
createRow(unitStyle,0x190,"单位: XX科技有限公司",1,1,0,headNames.length-1);
//第三行左边部分
year = Integer.parseInt(bDate.substring(0,4));
String month = bDate.substring(4,6);
int m = Integer.parseInt(month)-1;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,year);
cal.set(Calendar.MONTH,m);//从0开始 0代表一月 11代表12月
int maxDate = cal.getActualMaximum(Calendar.DATE);
sheet.addMergedRegion(new CellRangeAddress(2, 2, 0, 1));
HSSFRow row = sheet.createRow(2);
row.setHeight((short) 0x190);
HSSFCell cell = row.createCell(0);
cell.setCellStyle(getStyle(12,1,true,false));
cell.setCellValue("时间:"+year+"年"+month+"月"+"01日至"+year+"年"+month+"月"+maxDate+"日");
//第三行右边部分
Date date = new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
sheet.addMergedRegion(new CellRangeAddress(2, 2, 3, 5));
HSSFCell cell2 = row.createCell(3);
cell2.setCellStyle(getStyle(12,3,true,false));
cell2.setCellValue("制表时间: "+sdf.format(date));
//第四行表头
boolean b = (headNames != null && headNames.length > 0);
if (b) {
HSSFRow row2 = sheet.createRow(3);
row2.setHeight((short) 0x289);
HSSFCell fcell = null;
HSSFCellStyle cellStyle = getStyle(15,2,true,true); // 建立新的cell样式
for (int i = 0; i < headNames.length; i++) {
fcell = row2.createCell(i);
fcell.setCellStyle(cellStyle);
fcell.setCellValue(headNames[i]);
if (colWidths != null && i < colWidths.length) {
sheet.setColumnWidth(i, 32 * colWidths[i]);
}
}
}
return b ? 4 : 3; //从哪一行开始渲染表体
}
/**
* 创建表体数据
* @param data 表体数据
* @param cellStyle 样式
* @param startRow 开始行
* @param colKeys 值对应map的key
*/
private void setCellData(List<Map> data, HSSFCellStyle cellStyle, int startRow,
String[] colKeys) {
// 创建数据
HSSFRow row = null;
HSSFCell cell = null;
int i = startRow;
if (data != null && data.size() > 0) {
DecimalFormat df = new DecimalFormat("#0.00");
for (Map<String, Object> rowData : data) {
row = sheet.createRow(i);
row.setHeight((short) 0x279);
int j = 0;
for (String key : colKeys) {
Object colValue = rowData.get(key);
if (key.equalsIgnoreCase("CITYNAME")){
colValue = colValue+"XX科技有限公司";
}else if (key.equalsIgnoreCase("ORDERSUM")||key.equalsIgnoreCase("TRANSFEE")||key.equalsIgnoreCase("ORDREALSUM")){
colValue = df.format(colValue);
}
cell = row.createCell(j);
cell.setCellStyle(cellStyle);
if (colValue != null) {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(colValue.toString());
}
j++;
}
i++;
}
}
}
/**
* 创建表尾
* @param size
* @param length
*/
private void createTailCell(int size, int length) {
HSSFCellStyle remarkStyle1 = getStyle(11,1,false,false);
createRow(remarkStyle1,0x190,"经核对,确认以上数据真实无误。",size,size,0,length-2);
HSSFCellStyle remarkStyle2 = getStyle(10,1,false,false);
createRow(remarkStyle2,0x160,"(联系人:XXX;联系电话:13xxxxxxxx;邮箱:123456789@qq.com)",size+1,size+1,0,length-2);
HSSFRow row3 = sheet.createRow(size+2);
row3.setHeight((short) 0x379);
sheet.addMergedRegion(new CellRangeAddress(size+3, size+3, 0, 1));
HSSFRow row4 = sheet.createRow(size+3);
row4.setHeight((short) 0x190);
HSSFCell cell4 = row4.createCell(0);
cell4.setCellStyle(getStyle(11,1,false,false));
cell4.setCellValue("单位核对人:");
sheet.addMergedRegion(new CellRangeAddress(size+3, size+3, 2, 4));
HSSFCell cell15 = row4.createCell(2);
cell15.setCellStyle(getStyle(11,1,false,false));
cell15.setCellValue("单位制表人:");
HSSFCellStyle dateStyle = getStyle(10,3,false,false);
createRow(dateStyle,0x150,"公司公章 ",size+8,size+8,0,length-2);
createRow(dateStyle,0x150,year+"年 月 日",size+9,size+9,0,length-2);
}
// 测试
public static void main(String[] args) throws IOException {
Excel excel = new Excel();
List<Map> data = new ArrayList<Map>();
LinkedHashMap<String, Object> e = new LinkedHashMap<String, Object>();
e.put("CITYNAME", "北京");
e.put("ORDERCOUNT", "65");
e.put("ORDERSUM", 930.38);
e.put("TRANSFEE", 2.28);
e.put("ORDREALSUM", 928.10);
e.put("REMARK", "通过1");
data.add(e);
e = new LinkedHashMap<String, Object>();
e.put("CITYNAME", "上海");
e.put("ORDERCOUNT", "50");
e.put("ORDERSUM", 850.34);
e.put("TRANSFEE", 2.08);
e.put("ORDREALSUM", 848.26);
e.put("REMARK", "通过2");
data.add(e);
e = new LinkedHashMap<String, Object>();
e.put("CITYNAME", "苏州");
e.put("ORDERCOUNT", "10");
e.put("ORDERSUM", 112.20);
e.put("TRANSFEE", 2.20);
e.put("ORDREALSUM", 55.00);
e.put("REMARK", "通过3");
data.add(e);
e = new LinkedHashMap<String, Object>();
e.put("CITYNAME", "南京");
e.put("ORDERCOUNT", "26");
e.put("ORDERSUM", 210.12);
e.put("TRANSFEE", 0.51);
e.put("ORDREALSUM", 2409.61);
e.put("REMARK", "通过4");
data.add(e);
String[] headNames = { "单位名称", "收入笔数", "收入金额", "手续费(2.45‰)", "实际金额","备注" };
String[] keys = { "CITYNAME", "ORDERCOUNT", "ORDERSUM","TRANSFEE","ORDREALSUM","REMARK"};
int colWidths[] = { 300, 200, 200, 200, 200,300 };
String bDate = "201708";
InputStream input = (excel.getExcelFile(data, "单位", headNames, keys, colWidths,bDate));
File f = new File("E:/2019/excel/excel.xls");
if (f.exists())
f.delete();
f.createNewFile();
FileOutputStream out = new FileOutputStream(f);
HSSFWorkbook book = new HSSFWorkbook(input);
book.write(out);
out.flush();
out.close();
}
}
package com.sict.excel.utils;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/**
* 导出Excel
*
* @author liuyazhuang
*
* @param <T>
*/
public class ExportExcelUtil<T> {
// 2007 版本以上 最大支持1048576行
public final static String EXCEl_FILE_2007 = "2007";
// 2003 版本 最大支持65536 行
public final static String EXCEL_FILE_2003 = "2003";
/**
* <p>
* 导出无头部标题行Excel <br>
* 时间格式默认:yyyy-MM-dd hh:mm:ss <br>
* </p>
*
* @param title 表格标题
* @param dataset 数据集合
* @param out 输出流
* @param version 2003 或者 2007,不传时默认生成2003版本
*/
public HSSFSheet exportExcel(HSSFWorkbook workbook,String title, Collection<T> dataset, String version) {
return exportExcel2007(workbook,title, null, dataset, "yyyy-MM-dd HH:mm:ss");
}
/**
* <p>
* 导出带有头部标题行的Excel <br>
* 时间格式默认:yyyy-MM-dd hh:mm:ss <br>
* </p>
*
* @param title 表格标题
* @param headers 头部标题集合
* @param dataset 数据集合
* @param out 输出流
* @param version 2003 或者 2007,不传时默认生成2003版本
*/
public HSSFSheet exportExcel(HSSFWorkbook workbook,String title, String[] headers, Collection<T> dataset, String version) {
return exportExcel2007(workbook,title, headers, dataset, "yyyy-MM-dd HH:mm:ss");
}
/**
* <p>
* 通用Excel导出方法,利用反射机制遍历对象的所有字段,将数据写入Excel文件中 <br>
* 此版本生成2007以上版本的文件 (文件后缀:xlsx)
* </p>
*
* @param title 表格标题名
* @param headers 表格头部标题集合
* @param dataset 需要显示的数据集合,集合中一定要放置符合JavaBean风格的类的对象。此方法支持的
* JavaBean属性的数据类型有基本数据类型及String,Date
* @param out 与输出设备关联的流对象,可以将EXCEL文档导出到本地文件或者网络中
* @param pattern 如果有时间数据,设定输出格式。默认为"yyyy-MM-dd hh:mm:ss"
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public HSSFSheet exportExcel2007(HSSFWorkbook workbook,String title, String[] headers, Collection<T> dataset,
String pattern) {
// 声明一个工作薄
//HSSFWorkbook workbook = new HSSFWorkbook();
// 生成一个表格
HSSFSheet sheet = workbook.createSheet(title);
// 设置表格默认列宽度为15个字节
sheet.setDefaultColumnWidth(20);
// 生成一个样式
HSSFCellStyle style = workbook.createCellStyle();
// 设置这些样式
// 背景色
style.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setFillBackgroundColor(IndexedColors.PALE_BLUE.getIndex());
style.setBorderBottom(XSSFCellStyle.BORDER_THIN);
style.setBorderLeft(XSSFCellStyle.BORDER_THIN);
style.setBorderRight(XSSFCellStyle.BORDER_THIN);
style.setBorderTop(XSSFCellStyle.BORDER_THIN);
style.setAlignment(XSSFCellStyle.ALIGN_LEFT);
// 生成一个字体
HSSFFont font = workbook.createFont();
// font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
font.setFontName("宋体");
font.setColor(IndexedColors.AUTOMATIC.getIndex());
font.setFontHeightInPoints((short) 11);
// 把字体应用到当前的样式
style.setFont(font);
// 生成并设置另一个样式
HSSFCellStyle style2 = workbook.createCellStyle();
style2.setFillForegroundColor(IndexedColors.WHITE.getIndex());
style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style2.setFillBackgroundColor(IndexedColors.WHITE.getIndex());
style2.setBorderBottom(XSSFCellStyle.BORDER_THIN);
style2.setBorderLeft(XSSFCellStyle.BORDER_THIN);
style2.setBorderRight(XSSFCellStyle.BORDER_THIN);
style2.setBorderTop(XSSFCellStyle.BORDER_THIN);
style2.setAlignment(XSSFCellStyle.ALIGN_LEFT);
style2.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
// 生成另一个字体
HSSFFont font2 = workbook.createFont();
font2.setFontName("宋体");
// font2.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);
// 把字体应用到当前的样式
style2.setFont(font2);
// 产生表格标题行
HSSFRow row = sheet.createRow(0);
HSSFCell cellHeader;
for (int i = 0; i < headers.length; i++) {
cellHeader = row.createCell(i);
cellHeader.setCellStyle(style);
cellHeader.setCellValue(new HSSFRichTextString(headers[i]));
}
// 遍历集合数据,产生数据行
Iterator<T> it = dataset.iterator();
int index = 0;
T t;
Field[] fields;
Field field;
HSSFRichTextString richString;
Pattern p = Pattern.compile("^//d+(//.//d+)?$");
Matcher matcher;
String fieldName;
String getMethodName;
HSSFCell cell;
Class tCls;
Method getMethod;
Object value;
String textValue;
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
while (it.hasNext()) {
index++;
row = sheet.createRow(index);
t = (T) it.next();
// 利用反射,根据JavaBean属性的先后顺序,动态调用getXxx()方法得到属性值
fields = t.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
cell = row.createCell(i);
cell.setCellStyle(style2);
field = fields[i];
fieldName = field.getName();
getMethodName = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
try {
tCls = t.getClass();
getMethod = tCls.getMethod(getMethodName, new Class[] {});
value = getMethod.invoke(t, new Object[] {});
// 判断值的类型后进行强制类型转换
textValue = null;
if (value instanceof Integer) {
cell.setCellValue((Integer) value);
} else if (value instanceof Float) {
textValue = String.valueOf((Float) value);
cell.setCellValue(textValue);
} else if (value instanceof Double) {
textValue = String.valueOf((Double) value);
cell.setCellValue(textValue);
} else if (value instanceof Long) {
cell.setCellValue((Long) value);
}
if (value instanceof Boolean) {
textValue = "是";
if (!(Boolean) value) {
textValue = "否";
}
} else if (value instanceof Date) {
textValue = sdf.format((Date) value);
} else {
// 其它数据类型都当作字符串简单处理
if (value != null) {
textValue = value.toString();
}
}
if (textValue != null) {
matcher = p.matcher(textValue);
if (matcher.matches()) {
// 是数字当作double处理
cell.setCellValue(Double.parseDouble(textValue));
} else {
richString = new HSSFRichTextString(textValue);
cell.setCellValue(richString);
}
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} finally {
// 清理资源
}
}
}
return sheet;
}
}
\ No newline at end of file
package com.sict.excel.utils;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class SqlSessionUtil {
// 获取mybatis全局配置文件
private static String resource = "mybatis-config.xml";
public static SqlSession getSession() throws IOException {
InputStream inputStream = Resources.getResourceAsStream(resource);
// 读取配置文件的配置信息,利用SqlSessionFactoryBuilder创建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 利用sqlSessionFactory打开与数据库的会话
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
private static String resource2 = "mybatis-geca.xml";
public static SqlSession getGecaSession() throws IOException {
InputStream inputStream = Resources.getResourceAsStream(resource2);
// 读取配置文件的配置信息,利用SqlSessionFactoryBuilder创建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 利用sqlSessionFactory打开与数据库的会话
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
private static String resource3 = "mybatis-qg.xml";
public static SqlSession getQgSession() throws IOException {
InputStream inputStream = Resources.getResourceAsStream(resource3);
// 读取配置文件的配置信息,利用SqlSessionFactoryBuilder创建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 利用sqlSessionFactory打开与数据库的会话
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
private static String resource4 = "mybatis-shchyy.xml";
public static SqlSession getShchyySession() throws IOException {
InputStream inputStream = Resources.getResourceAsStream(resource4);
// 读取配置文件的配置信息,利用SqlSessionFactoryBuilder创建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 利用sqlSessionFactory打开与数据库的会话
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
}
log4j.rootLogger=DEBUG,A1
log4j.logger.org.apache=DEBUG
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n
<?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="com.sict.excel.mapper.DownloadMapper">
<!-- 筛查监控-血清学检查 -->
<select id="getSerumStatistics"
resultType="com.sict.excel.dto.SerumStatisticsDTO">
SELECT SUM(serumTestTotal) serumTestTotal,SUM(iggPositive)
iggPositive
FROM
(
SELECT
sum( 实际血清检测总人次 ) serumTestTotal,
sum(
HP抗体(IGG)检测阳性总人次 ) iggPositive
FROM
(
(
SELECT
省份,
医联体编号,
医联体名称,
count( * )
实际血清检测总人次,
count( HP抗体(IGG)检测 = '阳性' OR NULL )
HP抗体(IGG)检测阳性总人次
FROM
(
SELECT
p.id 患者id,
rel3.area 省份,
rel2.number 医联体编号,
rel2.`name` 医联体名称,
rel1.step 实验室检查调查进度,
rel1.g17 'G-17',
rel1.pg1 'PG-Ⅰ',
rel1.pg2 'PG-Ⅱ',
CASE
rel1.igg
WHEN 1 THEN
'阳性'
WHEN 0 THEN
'阴性' ELSE ''
END HP抗体(IGG)检测,
rel1.`status` 审核状态
FROM
tb_patient AS p
RIGHT JOIN ( SELECT patient_id,
step, g17, pg1, pg2, igg, `status` FROM
tb_lab_inspect ) rel1 ON
rel1.patient_id = p.id
inner JOIN ( SELECT `name`, number FROM tb_hosp
) rel2 ON rel2.number =
p.hosp_number
LEFT JOIN ( SELECT area, `name`
FROM tmp_tb_hosp_area ) rel3 ON
rel3.`name` = rel2.`name`
WHERE
rel1.`status` NOT IN ( 0, 5 )
) rel
GROUP BY
医联体名称
)
) rel
GROUP BY
医联体名称
)result
</select>
<!-- 筛查排名-按血检人数排名 -->
<select id="getScreeningRankProvinceDTOs"
resultType="com.sict.excel.dto.ScreeningRankProvinceDTO">
SELECT
(@rownum := @rownum + 1) as
id,hospname,province,actualserum
FROM
(SELECT
医联体名称 hospname,
省份 province,
count( * ) actualserum
FROM
(
SELECT
p.id 患者id,
rel1.number 医联体编号,
rel1.`name` 医联体名称,
rel2.step 实验室检查调查进度,
rel2.`status` 审核状态,
rel3.area 省份
FROM
tb_patient AS p
LEFT JOIN ( SELECT `name`, number FROM tb_hosp )
rel1 ON rel1.number =
p.hosp_number
LEFT JOIN ( SELECT patient_id, step,
g17, pg1, pg2, igg, `status` FROM
tb_lab_inspect ) rel2 ON
rel2.patient_id = p.id
left JOIN ( SELECT area, `name` FROM
tmp_tb_hosp_area ) rel3 ON
rel3.`name` = rel1.`name`
WHERE
rel2.`status`
NOT IN ( 0, 5 ) AND rel1.number is not null
) rel
GROUP BY
医联体名称
ORDER BY
actualserum DESC ) actual,(select @rownum :=0) result
</select>
<!-- 省份早癌排名 -->
<select id="getEarlyCancerRankDTOs"
resultType="com.sict.excel.dto.EarlyCancerRankDTO">
SELECT
省份 as province,
count( 最终诊断详情 LIKE '%"b":1%' OR NULL )
+ count( 最终诊断详情
LIKE '%"g":1%' OR NULL ) ECamount
FROM
(
SELECT
p.id 患者id,
rel3.area 省份,
rel1.step 胃镜检查调查进度,
CASE
rel1.is_inspect
WHEN 1 THEN
'是'
WHEN
0 THEN
'否' ELSE ''
END 是否胃镜检查,
rel1.inspect_way 胃镜检查方式,
CASE
rel1.capsule
WHEN 1 THEN
'异常'
WHEN 2 THEN
'未见异常' ELSE ''
END 胃镜检查结果,
rel1.precise_way
胃镜精查方式,
CASE
WHEN rel1.diagnose_result = 1 THEN
'异常'
WHEN
rel1.diagnose_result = 2 THEN
'未见明显异常' ELSE ''
END 最终诊断结果,
rel1.diagnose_info 最终诊断详情,
rel1.STATUS 审核状态
FROM
tb_patient p
RIGHT JOIN (
SELECT
patient_id,
step,
inspect_way,
precise_way,
capsule,
diagnose_result,
diagnose_info,
is_inspect,
`status`
FROM
tb_gastro_inspect
WHERE
is_inspect = 1
AND `status` NOT IN ( 0, 5 )
) rel1
ON rel1.patient_id = p.id
inner JOIN ( SELECT `name`, number FROM
tb_hosp ) rel2 ON rel2.number =
p.hosp_number
left join ( select area,
`name` from tmp_tb_hosp_area ) rel3 on
rel3.`name` = rel2.`name`
) rel
GROUP BY
省份
</select>
<!-- 运营分析-医院早癌 胃癌数 -->
<select id="geteaCancerHospitals"
resultType="com.sict.excel.dto.EarlyCancerHospitalDTO">
SELECT (@rowNO := @rowNo+1) AS id,a.*
FROM(
SELECT
hospName as
hospname,
area province,
(
count( gastroDetailInfo LIKE '%"a":1%' OR NULL
) + count(
gastroDetailInfo LIKE '%"b":1%' OR NULL ) + count(
gastroDetailInfo
LIKE '%"c":1%' OR NULL ) + count( gastroDetailInfo
LIKE '%"d":1%' OR
NULL ) + count( gastroDetailInfo LIKE '%"e":1%' OR
NULL ) + count(
gastroDetailInfo LIKE '%"f":1%' OR NULL ) + count(
gastroDetailInfo
LIKE '%"g":1%' OR NULL ) + count( gastroDetailInfo
LIKE '%"h":1%' OR
NULL ) + count( gastroDetailInfo LIKE '%"i":1%' OR
NULL ) + count(
gastroDetailInfo LIKE '%"j":1%' OR NULL ) + count(
gastroDetailInfo
LIKE '%"k":1%' OR NULL ) + count( gastroDetailInfo
LIKE '%"l":1%' OR
NULL ) + count( gastroDetailInfo LIKE '%"m":1%' OR
NULL ) + count(
gastroDetailInfo LIKE '%"n":%' OR NULL )
) total,
count(
gastroDetailInfo LIKE '%"a":1%' OR NULL ) AS highEsophagealNeoplasia,
count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) AS
earlyEsophagealCancer,
count( gastroDetailInfo LIKE '%"c":1%' OR NULL )
AS
advancedEsophagealCancer,
count( gastroDetailInfo LIKE '%"f":1%' OR
NULL ) AS highGastricNeoplasia,
count( gastroDetailInfo LIKE '%"g":1%'
OR NULL ) AS
earlyGastricCancer,
count( gastroDetailInfo LIKE '%"h":1%'
OR NULL ) AS advancedGastricCancer
FROM
(
SELECT
p.id patientId,
rel2.number hospNumber,
rel2.`name` hospName,
rel1.step
gastroStep,
rel1.is_inspect isGastro,
rel1.inspect_way gastroWay,
rel1.capsule
gastroResult,
rel1.precise_way gastroDetailWay,
rel1.diagnose_result
gastroDetailResult,
rel1.diagnose_info
gastroDetailInfo,
rel1.`status`
auditStatus,
rel3.area
FROM
tb_patient p
RIGHT JOIN (
SELECT
patient_id,
step,
is_inspect,
inspect_way,
capsule,
precise_way,
diagnose_result,
diagnose_info,
`status`
FROM
tb_gastro_inspect
WHERE
is_inspect = 1
AND
`status` NOT IN ( 0, 5 )
AND diagnose_result = 1
) rel1 ON
rel1.patient_id = p.id
INNER JOIN ( SELECT `name`, number FROM
tb_hosp )
rel2 ON rel2.number = p.hosp_number
LEFT JOIN tmp_tb_hosp_area rel3 ON
rel2.`name` = rel3.`name`
) rel
GROUP BY
hospName
ORDER BY
earlyGastricCancer DESC
) a,
(select @rowNO :=0) b
</select>
<!-- 运营分析-省份数据 -->
<select id="getAnalysisProvinceDTOs"
resultType="com.sict.excel.dto.AnalysisProvinceDTO">
SELECT
provinceName as province,
SUM(applyHosp) applyHosp,
SUM(openAccountHosp) openAccountHosp,
SUM(applyAccountHosp)
applyAccountHosp,
SUM(passApplyHosp) passApplyHosp,
SUM(platAccountApplyHosp) platAccountApplyHosp,
SUM(provinceScreeningTotal) provinceScreeningTotal,
SUM(earlyCancer)
earlyCancer
FROM
(
(SELECT
provinceName,
COUNT(NULL) applyHosp,
COUNT(NULL)
openAccountHosp,
COUNT(NULL) applyAccountHosp,
COUNT(NULL)
passApplyHosp,
COUNT(NULL) platAccountApplyHosp,
count( * )
provinceScreeningTotal,
count( NULL ) earlyCancer
FROM
(
SELECT
rel6.area
provinceName,
rel3.diagnose_info gastroscopyDetailInfo
FROM
tb_patient p
RIGHT JOIN ( SELECT patient_id,step, `status` FROM tb_lab_inspect
WHERE
`status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id
LEFT
JOIN ( SELECT patient_id, step, `status` FROM tb_risk_assess WHERE
`status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id
AND rel2.step
= rel1.step
AND rel2.`status` = rel1.`status`
LEFT JOIN (
SELECT
patient_id,
step,
diagnose_info,
`status`
FROM
tb_gastro_inspect
WHERE
`status` NOT IN ( 0, 5 )
) rel3 ON rel3.patient_id = p.id
AND rel3.step
= rel2.step
AND rel3.`status` = rel2.`status`
LEFT JOIN ( SELECT
patient_id, step,`status` FROM tb_flup_plan WHERE
`status` NOT IN ( 0,
5 ) ) rel4 ON rel4.patient_id = p.id
AND rel4.step = rel3.step
AND
rel4.`status` = rel3.`status`
INNER JOIN ( SELECT number, `name` FROM
tb_hosp ) rel5 ON rel5.number =
p.hosp_number
LEFT JOIN ( SELECT area,
`name` FROM tmp_tb_hosp_area ) rel6 ON
rel6.`name` = rel5.`name`
) rel
GROUP BY
provinceName
)
UNION
(
SELECT
provinceName,
COUNT(NULL) applyHosp,
COUNT(NULL) openAccountHosp,
COUNT(NULL) applyAccountHosp,
COUNT(NULL)
passApplyHosp,
COUNT(NULL) platAccountApplyHosp,
count( NULL )
provinceScreeningTotal,
count(gastroscopyDetailInfo LIKE '%"b":1%' OR
NULL ) + count( gastroscopyDetailInfo LIKE
'%"g":1%' OR NULL )
earlyCancer
FROM
(
SELECT
rel3.area provinceName,
rel1.diagnose_info
gastroscopyDetailInfo
FROM
tb_patient p
RIGHT JOIN (
SELECT
patient_id,
diagnose_info
FROM
tb_gastro_inspect
WHERE
is_inspect = 1
AND `status` NOT
IN ( 0, 5 )
AND diagnose_result = 1
) rel1 ON rel1.patient_id = p.id
INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number
=
p.hosp_number
LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area )
rel3 ON
rel3.`name` = rel2.`name`
) rel
GROUP BY
provinceName
)
UNION
(
SELECT
rel2.area provinceName,
COUNT(NULL) applyHosp,
COUNT(NULL)
openAccountHosp,
COUNT(NULL) applyAccountHosp,
COUNT(rel2.area)
passApplyHosp,
COUNT(NULL) platAccountApplyHosp,
count( * )
provinceScreeningTotal,
count( NULL ) earlyCancer
FROM tb_hosp rel1 LEFT
JOIN tmp_tb_hosp_area rel2 ON rel1.`name` =
rel2.`name`
GROUP BY
provinceName
)
UNION
(
SELECT
provinceName,
COUNT(NULL) applyHosp,
COUNT(provinceName) openAccountHosp,
COUNT(NULL) applyAccountHosp,
COUNT(NULL) passApplyHosp,
COUNT(NULL) platAccountApplyHosp,
count( NULL
) provinceScreeningTotal,
count( NULL ) earlyCancer
FROM
(
SELECT
DISTINCT
rel3.name hospname,
rel3.area provinceName
FROM tb_hosp rel1
LEFT JOIN
(SELECT area FROM tb_user ) rel2 ON rel2.area like
CONCAT('%',rel1.number,'%')
LEFT JOIN (SELECT `name`,area FROM
tmp_tb_hosp_area ) rel3 ON rel1.`name`
= rel3.name
WHERE rel2.area is
NOT NULL
) rel4
GROUP BY provinceName
)
)result GROUP BY
result.provinceName
</select>
<!-- 社区筛查排名-血检人数 -->
<select id="getScreeningRankDTOs"
resultType="com.sict.excel.dto.ScreeningRankDTO">
SELECT
(@rownum := @rownum + 1) as
id,hospname,actualserum
FROM
(SELECT
医联体名称 hospname,
count( * ) actualserum
FROM
(
SELECT
p.id 患者id,
rel1.number 医联体编号,
rel1.`name` 医联体名称,
rel2.step 实验室检查调查进度,
rel2.`status`
审核状态
FROM
tb_patient AS p
LEFT JOIN ( SELECT `name`, number FROM tb_hosp
)
rel1 ON rel1.number =
p.hosp_number
LEFT JOIN ( SELECT patient_id,
step,
g17, pg1, pg2, igg, `status` FROM
tb_lab_inspect ) rel2 ON
rel2.patient_id = p.id
WHERE
rel2.`status`
NOT IN ( 0, 5 ) AND
rel1.number is not null
) rel
GROUP BY
医联体名称
ORDER BY
actualserum DESC )
actual,(select @rownum :=0) result
</select>
<!-- 运营分析-图例数据 -->
<select id="getAnalysisGraphicDTOs"
resultType="com.sict.excel.dto.AnalysisGraphicDTO">
SELECT
sum(applyGastricCancerScreeningHosp)
applyGastricCancerScreeningHosp,
sum(passApplyHosp) passApplyHosp,
sum(platAccountApplyHosp) platAccountApplyHosp,
sum(openAccountHosp)
openAccountHosp
FROM
(
SELECT
SUM(applyGastricCancerScreeningHosp)
applyGastricCancerScreeningHosp,
SUM(passApplyHosp) passApplyHosp,
SUM(platAccountApplyHosp)
platAccountApplyHosp,
SUM(openAccountHosp)
openAccountHosp
FROM
(
(
SELECT
provinceName,
COUNT(NULL)
applyGastricCancerScreeningHosp,
COUNT(NULL)
passApplyHosp,
COUNT(NULL)
platAccountApplyHosp,
COUNT(provinceName)
openAccountHosp
FROM
(
SELECT
DISTINCT rel3.name hospname,
rel3.area
provinceName
FROM tb_hosp rel1
LEFT JOIN (SELECT area FROM tb_user )
rel2 ON rel2.area like
CONCAT('%',rel1.number,'%')
LEFT JOIN (SELECT
`name`,area FROM
tmp_tb_hosp_area ) rel3 ON rel1.`name`
= rel3.name
WHERE rel2.area is
NOT NULL
) rel4
GROUP BY provinceName
)
UNION
(
SELECT
rel2.area
provinceName,
COUNT(NULL) applyGastricCancerScreeningHosp,
COUNT(rel2.area) passApplyHosp,
COUNT(NULL) platAccountApplyHosp,
COUNT(NULL) openAccountHosp
FROM tb_hosp rel1 LEFT JOIN
tmp_tb_hosp_area rel2 ON rel1.`name` =
rel2.`name`
GROUP BY provinceName
)
)result GROUP BY
result.provinceName
)result2
</select>
<!-- 筛查监控-胃镜检查 -->
<select id="getGastroscopeTestDTOs"
resultType="com.sict.excel.dto.GastroscopeTestDTO">
SELECT
count( gastroscopyResult = '异常' OR NULL )
actualGastroscope,
count( * ) planGastroscope
FROM
(
SELECT
p.id patientId,
p.`name` patientName,
rel6.area provinceName,
CASE
rel1.igg
WHEN 1 THEN
'阳性'
WHEN 0 THEN
'阴性' ELSE ''
END iggDetection,
CASE
rel2.grade
WHEN 1 THEN
'低风险'
WHEN 2 THEN
'中风险'
WHEN 3 THEN
'高风险' ELSE ''
END riskLevel,
CASE
rel3.is_inspect
WHEN 1 THEN
'是'
WHEN 0 THEN
'否' ELSE '否'
END isGastroscopy,
rel3.inspect_way gastroscopyWay,
CASE
rel3.capsule
WHEN 1 THEN
'异常'
WHEN 2
THEN
'未见异常' ELSE ''
END gastroscopyResult,
rel3.precise_way
gastroscopyDetailWay,
CASE
rel3.diagnose_result
WHEN 1 THEN
'异常'
WHEN 2
THEN
'未见明显异常' ELSE ''
END gastroscopyDetailResult,
rel3.diagnose_info
gastroscopyDetailInfo,
rel1.`status` screeningStatus
FROM
tb_patient p
RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM
tb_lab_inspect
WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id
= p.id
LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM
tb_risk_assess ) rel2 ON rel2.patient_id = p.id
AND rel2.step =
rel1.step
AND rel2.`status` = rel1.`status`
LEFT JOIN ( SELECT
patient_id, step, is_inspect, inspect_way, capsule,
precise_way,
diagnose_result, diagnose_info, `status` FROM
tb_gastro_inspect ) rel3
ON rel3.patient_id = p.id
AND rel3.step = rel2.step
AND rel3.`status` =
rel2.`status`
INNER JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON
rel5.number =
p.hosp_number
LEFT JOIN ( SELECT area, `name` FROM
tmp_tb_hosp_area ) rel6 ON
rel6.`name` = rel5.`name`
WHERE
rel2.grade = 2
OR rel2.grade = 3
) rel
</select>
<!-- 诊断结果 -->
<select id="getDiagnosisDTO"
resultType="com.sict.excel.dto.DiagnosisDTO">
SELECT
count( gastroDetailInfo LIKE '%"type_a":"a"%' OR
gastroDetailInfo LIKE
'%"type_f":"a"%' OR NULL ) AS higeLevel,
count(
gastroDetailInfo LIKE '%"type_a":"a"%' OR NULL ) AS highEsophageal,
count( gastroDetailInfo LIKE '%"type_f":"a"%' OR NULL ) AS
highStomach,
count( gastroDetailInfo LIKE '%"type_a":"b"%' OR
gastroDetailInfo LIKE
'%"type_f":"b"%' OR NULL ) AS lowLevel,
count(
gastroDetailInfo LIKE '%"type_a":"b"%' OR NULL ) AS lowEsophageal,
count( gastroDetailInfo LIKE '%"type_f":"b"%' OR NULL ) AS lowStomach,
count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) AS
earlyGastricCancer,
count( gastroDetailInfo LIKE '%"h":1%' OR NULL ) AS
advancedGastricCancer,
count( gastroDetailInfo LIKE '%"b":1%' OR NULL )
AS
earlyEsophagealCancer,
count( gastroDetailInfo LIKE '%"c":1%' OR NULL
) AS
advancedEsophagealCancer,
count( gastroDetailInfo LIKE '%"i":1%' OR
NULL ) AS atrophicGastritis,
count( gastroDetailInfo LIKE '%"j":1%' OR
NULL ) AS gastricUlcer,
count( gastroDetailInfo LIKE '%"k":1%' OR NULL
) AS gastricPolyps
FROM
(
SELECT
p.id patientId,
rel1.step gastroStep,
rel1.is_inspect isGastro,
rel1.inspect_way gastroWay,
rel1.capsule
gastroResult,
rel1.precise_way
gastroDetailWay,
rel1.diagnose_result
gastroDetailResult,
rel1.diagnose_info gastroDetailInfo,
rel1.`status`
auditStatus
FROM
tb_patient p
RIGHT JOIN (
SELECT
patient_id,
step,
is_inspect,
inspect_way,
capsule,
precise_way,
diagnose_result,
diagnose_info,
`status`
FROM
tb_gastro_inspect
WHERE
is_inspect = 1
AND
`status` NOT IN ( 0, 5 )
AND diagnose_result = 1
) rel1 ON
rel1.patient_id = p.id
) rel
</select>
<select id="getRiskDTOs" resultType="com.sict.excel.dto.RiskDTO">
SELECT
胃癌患病风险等级 as grade,
count( * ) total
FROM
(
SELECT
p.id 患者id,
rel1.score 胃癌患病风险评分,
CASE
rel1.grade
WHEN 1 THEN
'low'
WHEN 2 THEN
'medium'
WHEN 3 THEN
'high' ELSE ''
END 胃癌患病风险等级
FROM
tb_patient p
RIGHT JOIN ( SELECT patient_id, score, grade FROM tb_risk_assess ) rel1 ON
rel1.patient_id = p.id
) rel
GROUP BY
胃癌患病风险等级
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://gicc-db:3306/shchyy_dw?characterEncoding=utf8"/>
<property name="username" value="chyy_demo"/>
<property name="password" value="Waw8DXh3fJJ-"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/DownloadMapper.xml"/>
</mappers>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://gicc-db:3306/shchyy_geca?characterEncoding=utf8"/>
<property name="username" value="chyy_demo"/>
<property name="password" value="Waw8DXh3fJJ-"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/DownloadMapper.xml"/>
</mappers>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://gicc-db:3306/shchyy_qg?characterEncoding=utf8"/>
<property name="username" value="chyy_demo"/>
<property name="password" value="Waw8DXh3fJJ-"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/DownloadMapper.xml"/>
</mappers>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://gicc-db:3306/shchyy?characterEncoding=utf8"/>
<property name="username" value="chyy_demo"/>
<property name="password" value="Waw8DXh3fJJ-"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/DownloadMapper.xml"/>
</mappers>
</configuration>
\ No newline at end of file
Manifest-Version: 1.0
Built-By: Cathie
Build-Jdk: 1.8.0_181
Created-By: Maven Integration for Eclipse
#Generated by Maven Integration for Eclipse
#Fri Nov 22 09:15:51 CST 2019
version=1.0-SNAPSHOT
groupId=download
m2e.projectName=download
m2e.projectLocation=E\:\\BIGDATA\\HadoopSpace\\download
artifactId=download
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>download</groupId>
<artifactId>download</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<!--MySQL的JDBC驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<!--junit单元测试包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- excel -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.11-beta2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.11-beta2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.11-beta2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-excelant</artifactId>
<version>3.11-beta2</version>
</dependency>
<!--<dependency> -->
<!--<groupId>com.huawei.paas.cse</groupId> -->
<!--<artifactId>cse-solution-service-engine</artifactId> -->
<!--<exclusions> -->
<!--<exclusion> -->
<!--<groupId>org.slf4j</groupId> -->
<!--<artifactId>slf4j-log4j12</artifactId> -->
<!--</exclusion> -->
<!--</exclusions> -->
<!--</dependency> -->
<!--<dependency> -->
<!--<groupId>org.apache.servicecomb</groupId> -->
<!--<artifactId>spring-boot-starter-provider</artifactId> -->
<!--</dependency> -->
</dependencies>
<!--<dependencyManagement> -->
<!--<dependencies> -->
<!--<dependency> -->
<!--<groupId>org.apache.servicecomb</groupId> -->
<!--<artifactId>java-chassis-dependencies-springboot2</artifactId> -->
<!--<version>1.1.0.B018</version> -->
<!--<type>pom</type> -->
<!--<scope>import</scope> -->
<!--</dependency> -->
<!--<dependency> -->
<!--<groupId>com.huawei.paas.cse</groupId> -->
<!--<artifactId>cse-dependency</artifactId> -->
<!--<version>2.3.46</version> -->
<!--<type>pom</type> -->
<!--<scope>import</scope> -->
<!--</dependency> -->
<!--</dependencies> -->
<!--</dependencyManagement> -->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
</project>
\ No newline at end of file
log4j.rootLogger=DEBUG,A1
log4j.logger.org.apache=DEBUG
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n
<?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="com.sict.excel.mapper.DownloadMapper">
<!-- 筛查监控-血清学检查 -->
<select id="getSerumStatistics"
resultType="com.sict.excel.dto.SerumStatisticsDTO">
SELECT SUM(serumTestTotal) serumTestTotal,SUM(iggPositive)
iggPositive
FROM
(
SELECT
sum( 实际血清检测总人次 ) serumTestTotal,
sum(
HP抗体(IGG)检测阳性总人次 ) iggPositive
FROM
(
(
SELECT
省份,
医联体编号,
医联体名称,
count( * )
实际血清检测总人次,
count( HP抗体(IGG)检测 = '阳性' OR NULL )
HP抗体(IGG)检测阳性总人次
FROM
(
SELECT
p.id 患者id,
rel3.area 省份,
rel2.number 医联体编号,
rel2.`name` 医联体名称,
rel1.step 实验室检查调查进度,
rel1.g17 'G-17',
rel1.pg1 'PG-Ⅰ',
rel1.pg2 'PG-Ⅱ',
CASE
rel1.igg
WHEN 1 THEN
'阳性'
WHEN 0 THEN
'阴性' ELSE ''
END HP抗体(IGG)检测,
rel1.`status` 审核状态
FROM
tb_patient AS p
RIGHT JOIN ( SELECT patient_id,
step, g17, pg1, pg2, igg, `status` FROM
tb_lab_inspect ) rel1 ON
rel1.patient_id = p.id
inner JOIN ( SELECT `name`, number FROM tb_hosp
) rel2 ON rel2.number =
p.hosp_number
LEFT JOIN ( SELECT area, `name`
FROM tmp_tb_hosp_area ) rel3 ON
rel3.`name` = rel2.`name`
WHERE
rel1.`status` NOT IN ( 0, 5 )
) rel
GROUP BY
医联体名称
)
) rel
GROUP BY
医联体名称
)result
</select>
<!-- 筛查排名-按血检人数排名 -->
<select id="getScreeningRankProvinceDTOs"
resultType="com.sict.excel.dto.ScreeningRankProvinceDTO">
SELECT
(@rownum := @rownum + 1) as
id,hospname,province,actualserum
FROM
(SELECT
医联体名称 hospname,
省份 province,
count( * ) actualserum
FROM
(
SELECT
p.id 患者id,
rel1.number 医联体编号,
rel1.`name` 医联体名称,
rel2.step 实验室检查调查进度,
rel2.`status` 审核状态,
rel3.area 省份
FROM
tb_patient AS p
LEFT JOIN ( SELECT `name`, number FROM tb_hosp )
rel1 ON rel1.number =
p.hosp_number
LEFT JOIN ( SELECT patient_id, step,
g17, pg1, pg2, igg, `status` FROM
tb_lab_inspect ) rel2 ON
rel2.patient_id = p.id
left JOIN ( SELECT area, `name` FROM
tmp_tb_hosp_area ) rel3 ON
rel3.`name` = rel1.`name`
WHERE
rel2.`status`
NOT IN ( 0, 5 ) AND rel1.number is not null
) rel
GROUP BY
医联体名称
ORDER BY
actualserum DESC ) actual,(select @rownum :=0) result
</select>
<!-- 省份早癌排名 -->
<select id="getEarlyCancerRankDTOs"
resultType="com.sict.excel.dto.EarlyCancerRankDTO">
SELECT
省份 as province,
count( 最终诊断详情 LIKE '%"b":1%' OR NULL )
+ count( 最终诊断详情
LIKE '%"g":1%' OR NULL ) ECamount
FROM
(
SELECT
p.id 患者id,
rel3.area 省份,
rel1.step 胃镜检查调查进度,
CASE
rel1.is_inspect
WHEN 1 THEN
'是'
WHEN
0 THEN
'否' ELSE ''
END 是否胃镜检查,
rel1.inspect_way 胃镜检查方式,
CASE
rel1.capsule
WHEN 1 THEN
'异常'
WHEN 2 THEN
'未见异常' ELSE ''
END 胃镜检查结果,
rel1.precise_way
胃镜精查方式,
CASE
WHEN rel1.diagnose_result = 1 THEN
'异常'
WHEN
rel1.diagnose_result = 2 THEN
'未见明显异常' ELSE ''
END 最终诊断结果,
rel1.diagnose_info 最终诊断详情,
rel1.STATUS 审核状态
FROM
tb_patient p
RIGHT JOIN (
SELECT
patient_id,
step,
inspect_way,
precise_way,
capsule,
diagnose_result,
diagnose_info,
is_inspect,
`status`
FROM
tb_gastro_inspect
WHERE
is_inspect = 1
AND `status` NOT IN ( 0, 5 )
) rel1
ON rel1.patient_id = p.id
inner JOIN ( SELECT `name`, number FROM
tb_hosp ) rel2 ON rel2.number =
p.hosp_number
left join ( select area,
`name` from tmp_tb_hosp_area ) rel3 on
rel3.`name` = rel2.`name`
) rel
GROUP BY
省份
</select>
<!-- 运营分析-医院早癌 胃癌数 -->
<select id="geteaCancerHospitals"
resultType="com.sict.excel.dto.EarlyCancerHospitalDTO">
SELECT (@rowNO := @rowNo+1) AS id,a.*
FROM(
SELECT
hospName as
hospname,
area province,
(
count( gastroDetailInfo LIKE '%"a":1%' OR NULL
) + count(
gastroDetailInfo LIKE '%"b":1%' OR NULL ) + count(
gastroDetailInfo
LIKE '%"c":1%' OR NULL ) + count( gastroDetailInfo
LIKE '%"d":1%' OR
NULL ) + count( gastroDetailInfo LIKE '%"e":1%' OR
NULL ) + count(
gastroDetailInfo LIKE '%"f":1%' OR NULL ) + count(
gastroDetailInfo
LIKE '%"g":1%' OR NULL ) + count( gastroDetailInfo
LIKE '%"h":1%' OR
NULL ) + count( gastroDetailInfo LIKE '%"i":1%' OR
NULL ) + count(
gastroDetailInfo LIKE '%"j":1%' OR NULL ) + count(
gastroDetailInfo
LIKE '%"k":1%' OR NULL ) + count( gastroDetailInfo
LIKE '%"l":1%' OR
NULL ) + count( gastroDetailInfo LIKE '%"m":1%' OR
NULL ) + count(
gastroDetailInfo LIKE '%"n":%' OR NULL )
) total,
count(
gastroDetailInfo LIKE '%"a":1%' OR NULL ) AS highEsophagealNeoplasia,
count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) AS
earlyEsophagealCancer,
count( gastroDetailInfo LIKE '%"c":1%' OR NULL )
AS
advancedEsophagealCancer,
count( gastroDetailInfo LIKE '%"f":1%' OR
NULL ) AS highGastricNeoplasia,
count( gastroDetailInfo LIKE '%"g":1%'
OR NULL ) AS
earlyGastricCancer,
count( gastroDetailInfo LIKE '%"h":1%'
OR NULL ) AS advancedGastricCancer
FROM
(
SELECT
p.id patientId,
rel2.number hospNumber,
rel2.`name` hospName,
rel1.step
gastroStep,
rel1.is_inspect isGastro,
rel1.inspect_way gastroWay,
rel1.capsule
gastroResult,
rel1.precise_way gastroDetailWay,
rel1.diagnose_result
gastroDetailResult,
rel1.diagnose_info
gastroDetailInfo,
rel1.`status`
auditStatus,
rel3.area
FROM
tb_patient p
RIGHT JOIN (
SELECT
patient_id,
step,
is_inspect,
inspect_way,
capsule,
precise_way,
diagnose_result,
diagnose_info,
`status`
FROM
tb_gastro_inspect
WHERE
is_inspect = 1
AND
`status` NOT IN ( 0, 5 )
AND diagnose_result = 1
) rel1 ON
rel1.patient_id = p.id
INNER JOIN ( SELECT `name`, number FROM
tb_hosp )
rel2 ON rel2.number = p.hosp_number
LEFT JOIN tmp_tb_hosp_area rel3 ON
rel2.`name` = rel3.`name`
) rel
GROUP BY
hospName
ORDER BY
earlyGastricCancer DESC
) a,
(select @rowNO :=0) b
</select>
<!-- 运营分析-省份数据 -->
<select id="getAnalysisProvinceDTOs"
resultType="com.sict.excel.dto.AnalysisProvinceDTO">
SELECT
provinceName as province,
SUM(applyHosp) applyHosp,
SUM(openAccountHosp) openAccountHosp,
SUM(applyAccountHosp)
applyAccountHosp,
SUM(passApplyHosp) passApplyHosp,
SUM(platAccountApplyHosp) platAccountApplyHosp,
SUM(provinceScreeningTotal) provinceScreeningTotal,
SUM(earlyCancer)
earlyCancer
FROM
(
(SELECT
provinceName,
COUNT(NULL) applyHosp,
COUNT(NULL)
openAccountHosp,
COUNT(NULL) applyAccountHosp,
COUNT(NULL)
passApplyHosp,
COUNT(NULL) platAccountApplyHosp,
count( * )
provinceScreeningTotal,
count( NULL ) earlyCancer
FROM
(
SELECT
rel6.area
provinceName,
rel3.diagnose_info gastroscopyDetailInfo
FROM
tb_patient p
RIGHT JOIN ( SELECT patient_id,step, `status` FROM tb_lab_inspect
WHERE
`status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id
LEFT
JOIN ( SELECT patient_id, step, `status` FROM tb_risk_assess WHERE
`status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id
AND rel2.step
= rel1.step
AND rel2.`status` = rel1.`status`
LEFT JOIN (
SELECT
patient_id,
step,
diagnose_info,
`status`
FROM
tb_gastro_inspect
WHERE
`status` NOT IN ( 0, 5 )
) rel3 ON rel3.patient_id = p.id
AND rel3.step
= rel2.step
AND rel3.`status` = rel2.`status`
LEFT JOIN ( SELECT
patient_id, step,`status` FROM tb_flup_plan WHERE
`status` NOT IN ( 0,
5 ) ) rel4 ON rel4.patient_id = p.id
AND rel4.step = rel3.step
AND
rel4.`status` = rel3.`status`
INNER JOIN ( SELECT number, `name` FROM
tb_hosp ) rel5 ON rel5.number =
p.hosp_number
LEFT JOIN ( SELECT area,
`name` FROM tmp_tb_hosp_area ) rel6 ON
rel6.`name` = rel5.`name`
) rel
GROUP BY
provinceName
)
UNION
(
SELECT
provinceName,
COUNT(NULL) applyHosp,
COUNT(NULL) openAccountHosp,
COUNT(NULL) applyAccountHosp,
COUNT(NULL)
passApplyHosp,
COUNT(NULL) platAccountApplyHosp,
count( NULL )
provinceScreeningTotal,
count(gastroscopyDetailInfo LIKE '%"b":1%' OR
NULL ) + count( gastroscopyDetailInfo LIKE
'%"g":1%' OR NULL )
earlyCancer
FROM
(
SELECT
rel3.area provinceName,
rel1.diagnose_info
gastroscopyDetailInfo
FROM
tb_patient p
RIGHT JOIN (
SELECT
patient_id,
diagnose_info
FROM
tb_gastro_inspect
WHERE
is_inspect = 1
AND `status` NOT
IN ( 0, 5 )
AND diagnose_result = 1
) rel1 ON rel1.patient_id = p.id
INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number
=
p.hosp_number
LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area )
rel3 ON
rel3.`name` = rel2.`name`
) rel
GROUP BY
provinceName
)
UNION
(
SELECT
rel2.area provinceName,
COUNT(NULL) applyHosp,
COUNT(NULL)
openAccountHosp,
COUNT(NULL) applyAccountHosp,
COUNT(rel2.area)
passApplyHosp,
COUNT(NULL) platAccountApplyHosp,
count( * )
provinceScreeningTotal,
count( NULL ) earlyCancer
FROM tb_hosp rel1 LEFT
JOIN tmp_tb_hosp_area rel2 ON rel1.`name` =
rel2.`name`
GROUP BY
provinceName
)
UNION
(
SELECT
provinceName,
COUNT(NULL) applyHosp,
COUNT(provinceName) openAccountHosp,
COUNT(NULL) applyAccountHosp,
COUNT(NULL) passApplyHosp,
COUNT(NULL) platAccountApplyHosp,
count( NULL
) provinceScreeningTotal,
count( NULL ) earlyCancer
FROM
(
SELECT
DISTINCT
rel3.name hospname,
rel3.area provinceName
FROM tb_hosp rel1
LEFT JOIN
(SELECT area FROM tb_user ) rel2 ON rel2.area like
CONCAT('%',rel1.number,'%')
LEFT JOIN (SELECT `name`,area FROM
tmp_tb_hosp_area ) rel3 ON rel1.`name`
= rel3.name
WHERE rel2.area is
NOT NULL
) rel4
GROUP BY provinceName
)
)result GROUP BY
result.provinceName
</select>
<!-- 社区筛查排名-血检人数 -->
<select id="getScreeningRankDTOs"
resultType="com.sict.excel.dto.ScreeningRankDTO">
SELECT
(@rownum := @rownum + 1) as
id,hospname,actualserum
FROM
(SELECT
医联体名称 hospname,
count( * ) actualserum
FROM
(
SELECT
p.id 患者id,
rel1.number 医联体编号,
rel1.`name` 医联体名称,
rel2.step 实验室检查调查进度,
rel2.`status`
审核状态
FROM
tb_patient AS p
LEFT JOIN ( SELECT `name`, number FROM tb_hosp
)
rel1 ON rel1.number =
p.hosp_number
LEFT JOIN ( SELECT patient_id,
step,
g17, pg1, pg2, igg, `status` FROM
tb_lab_inspect ) rel2 ON
rel2.patient_id = p.id
WHERE
rel2.`status`
NOT IN ( 0, 5 ) AND
rel1.number is not null
) rel
GROUP BY
医联体名称
ORDER BY
actualserum DESC )
actual,(select @rownum :=0) result
</select>
<!-- 运营分析-图例数据 -->
<select id="getAnalysisGraphicDTOs"
resultType="com.sict.excel.dto.AnalysisGraphicDTO">
SELECT
sum(applyGastricCancerScreeningHosp)
applyGastricCancerScreeningHosp,
sum(passApplyHosp) passApplyHosp,
sum(platAccountApplyHosp) platAccountApplyHosp,
sum(openAccountHosp)
openAccountHosp
FROM
(
SELECT
SUM(applyGastricCancerScreeningHosp)
applyGastricCancerScreeningHosp,
SUM(passApplyHosp) passApplyHosp,
SUM(platAccountApplyHosp)
platAccountApplyHosp,
SUM(openAccountHosp)
openAccountHosp
FROM
(
(
SELECT
provinceName,
COUNT(NULL)
applyGastricCancerScreeningHosp,
COUNT(NULL)
passApplyHosp,
COUNT(NULL)
platAccountApplyHosp,
COUNT(provinceName)
openAccountHosp
FROM
(
SELECT
DISTINCT rel3.name hospname,
rel3.area
provinceName
FROM tb_hosp rel1
LEFT JOIN (SELECT area FROM tb_user )
rel2 ON rel2.area like
CONCAT('%',rel1.number,'%')
LEFT JOIN (SELECT
`name`,area FROM
tmp_tb_hosp_area ) rel3 ON rel1.`name`
= rel3.name
WHERE rel2.area is
NOT NULL
) rel4
GROUP BY provinceName
)
UNION
(
SELECT
rel2.area
provinceName,
COUNT(NULL) applyGastricCancerScreeningHosp,
COUNT(rel2.area) passApplyHosp,
COUNT(NULL) platAccountApplyHosp,
COUNT(NULL) openAccountHosp
FROM tb_hosp rel1 LEFT JOIN
tmp_tb_hosp_area rel2 ON rel1.`name` =
rel2.`name`
GROUP BY provinceName
)
)result GROUP BY
result.provinceName
)result2
</select>
<!-- 筛查监控-胃镜检查 -->
<select id="getGastroscopeTestDTOs"
resultType="com.sict.excel.dto.GastroscopeTestDTO">
SELECT
count( gastroscopyResult = '异常' OR NULL )
actualGastroscope,
count( * ) planGastroscope
FROM
(
SELECT
p.id patientId,
p.`name` patientName,
rel6.area provinceName,
CASE
rel1.igg
WHEN 1 THEN
'阳性'
WHEN 0 THEN
'阴性' ELSE ''
END iggDetection,
CASE
rel2.grade
WHEN 1 THEN
'低风险'
WHEN 2 THEN
'中风险'
WHEN 3 THEN
'高风险' ELSE ''
END riskLevel,
CASE
rel3.is_inspect
WHEN 1 THEN
'是'
WHEN 0 THEN
'否' ELSE '否'
END isGastroscopy,
rel3.inspect_way gastroscopyWay,
CASE
rel3.capsule
WHEN 1 THEN
'异常'
WHEN 2
THEN
'未见异常' ELSE ''
END gastroscopyResult,
rel3.precise_way
gastroscopyDetailWay,
CASE
rel3.diagnose_result
WHEN 1 THEN
'异常'
WHEN 2
THEN
'未见明显异常' ELSE ''
END gastroscopyDetailResult,
rel3.diagnose_info
gastroscopyDetailInfo,
rel1.`status` screeningStatus
FROM
tb_patient p
RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM
tb_lab_inspect
WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id
= p.id
LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM
tb_risk_assess ) rel2 ON rel2.patient_id = p.id
AND rel2.step =
rel1.step
AND rel2.`status` = rel1.`status`
LEFT JOIN ( SELECT
patient_id, step, is_inspect, inspect_way, capsule,
precise_way,
diagnose_result, diagnose_info, `status` FROM
tb_gastro_inspect ) rel3
ON rel3.patient_id = p.id
AND rel3.step = rel2.step
AND rel3.`status` =
rel2.`status`
INNER JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON
rel5.number =
p.hosp_number
LEFT JOIN ( SELECT area, `name` FROM
tmp_tb_hosp_area ) rel6 ON
rel6.`name` = rel5.`name`
WHERE
rel2.grade = 2
OR rel2.grade = 3
) rel
</select>
<!-- 诊断结果 -->
<select id="getDiagnosisDTO"
resultType="com.sict.excel.dto.DiagnosisDTO">
SELECT
count( gastroDetailInfo LIKE '%"type_a":"a"%' OR
gastroDetailInfo LIKE
'%"type_f":"a"%' OR NULL ) AS higeLevel,
count(
gastroDetailInfo LIKE '%"type_a":"a"%' OR NULL ) AS highEsophageal,
count( gastroDetailInfo LIKE '%"type_f":"a"%' OR NULL ) AS
highStomach,
count( gastroDetailInfo LIKE '%"type_a":"b"%' OR
gastroDetailInfo LIKE
'%"type_f":"b"%' OR NULL ) AS lowLevel,
count(
gastroDetailInfo LIKE '%"type_a":"b"%' OR NULL ) AS lowEsophageal,
count( gastroDetailInfo LIKE '%"type_f":"b"%' OR NULL ) AS lowStomach,
count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) AS
earlyGastricCancer,
count( gastroDetailInfo LIKE '%"h":1%' OR NULL ) AS
advancedGastricCancer,
count( gastroDetailInfo LIKE '%"b":1%' OR NULL )
AS
earlyEsophagealCancer,
count( gastroDetailInfo LIKE '%"c":1%' OR NULL
) AS
advancedEsophagealCancer,
count( gastroDetailInfo LIKE '%"i":1%' OR
NULL ) AS atrophicGastritis,
count( gastroDetailInfo LIKE '%"j":1%' OR
NULL ) AS gastricUlcer,
count( gastroDetailInfo LIKE '%"k":1%' OR NULL
) AS gastricPolyps
FROM
(
SELECT
p.id patientId,
rel1.step gastroStep,
rel1.is_inspect isGastro,
rel1.inspect_way gastroWay,
rel1.capsule
gastroResult,
rel1.precise_way
gastroDetailWay,
rel1.diagnose_result
gastroDetailResult,
rel1.diagnose_info gastroDetailInfo,
rel1.`status`
auditStatus
FROM
tb_patient p
RIGHT JOIN (
SELECT
patient_id,
step,
is_inspect,
inspect_way,
capsule,
precise_way,
diagnose_result,
diagnose_info,
`status`
FROM
tb_gastro_inspect
WHERE
is_inspect = 1
AND
`status` NOT IN ( 0, 5 )
AND diagnose_result = 1
) rel1 ON
rel1.patient_id = p.id
) rel
</select>
<select id="getRiskDTOs" resultType="com.sict.excel.dto.RiskDTO">
SELECT
胃癌患病风险等级 as grade,
count( * ) total
FROM
(
SELECT
p.id 患者id,
rel1.score 胃癌患病风险评分,
CASE
rel1.grade
WHEN 1 THEN
'low'
WHEN 2 THEN
'medium'
WHEN 3 THEN
'high' ELSE ''
END 胃癌患病风险等级
FROM
tb_patient p
RIGHT JOIN ( SELECT patient_id, score, grade FROM tb_risk_assess ) rel1 ON
rel1.patient_id = p.id
) rel
GROUP BY
胃癌患病风险等级
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://gicc-db:3306/shchyy_dw?characterEncoding=utf8"/>
<property name="username" value="chyy_demo"/>
<property name="password" value="Waw8DXh3fJJ-"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/DownloadMapper.xml"/>
</mappers>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://gicc-db:3306/shchyy_geca?characterEncoding=utf8"/>
<property name="username" value="chyy_demo"/>
<property name="password" value="Waw8DXh3fJJ-"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/DownloadMapper.xml"/>
</mappers>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://gicc-db:3306/shchyy_qg?characterEncoding=utf8"/>
<property name="username" value="chyy_demo"/>
<property name="password" value="Waw8DXh3fJJ-"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/DownloadMapper.xml"/>
</mappers>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://gicc-db:3306/shchyy?characterEncoding=utf8"/>
<property name="username" value="chyy_demo"/>
<property name="password" value="Waw8DXh3fJJ-"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/DownloadMapper.xml"/>
</mappers>
</configuration>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment