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
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
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