Browse Source

会员进度列表开发

anderx 1 year ago
parent
commit
09b9c33f05
1 changed files with 137 additions and 69 deletions
  1. 137 69
      src/main/java/com/goafanti/common/utils/excel/NewExcelUtil.java

+ 137 - 69
src/main/java/com/goafanti/common/utils/excel/NewExcelUtil.java

@@ -1916,13 +1916,15 @@ public class NewExcelUtil<T> {
 			wb = new HSSFWorkbook(fileInputStream);
 			styles=createStyles(wb);
 			sheet = wb.getSheetAt(0);
-			int index=6;
-
 			filename = encodingFilename(sheetName);
 			out = Files.newOutputStream(Paths.get(getAbsoluteFile(filename)));
+			int index=6;//写入文档行数
+			int i=1;//序号
 			for (TaskDetailsBo bo : list) {
-				Row row = sheet.createRow(index++);
-				addCell( row,bo);
+				Row row = sheet.createRow(index);
+				addCell( row,bo,i);
+				index++;
+				i++;
 			}
 			wb.write(out);
 			return new Result().data(filename);
@@ -1964,34 +1966,58 @@ public class NewExcelUtil<T> {
 		}
 	}
 
-	private void addCell(Row row,TaskDetailsBo o) {
+	private void addCell(Row row,TaskDetailsBo o,Integer index) {
 		for (int i = 0; i < 81; i++) {
 			Cell cell = row.createCell(i);
 			cell.setCellStyle(styles.get("data4"));
-			if (i==0)cell.setCellValue(1);//序号
+			if (i==0)cell.setCellValue(index);//序号
 			else if(i==1)cell.setCellValue(o.getUserName());//客户名称
 			else if(i==2)cell.setCellValue(o.getContractNo());//合同编号
-			else if(i==3)cell.setCellValue(o.getServiceProject());//服务内容
+			else if(i==3)cell.setCellValue(addThis(o.getServiceProject()));//服务内容
 			else if(i==4){//服务年限
 				cell.setCellValue(o.getServiceYear());
 			}
 			else if(i==5)cell.setCellValue(o.getMemberLvl());//会员级别
-			else if(i==6)cell.setCellValue(o.getTaskName());		//业务负责人
-			else if(i==7)cell.setCellValue(o.getProjectName());		//项目负责人
-			else if(i==8)cell.setCellValue(o.getTechnologyName());		//技术咨询师
-			else if(i==9)cell.setCellValue(o.getFinanceTaxationName());	//财税咨询师
+			else if(i==6)cell.setCellValue(addThis(o.getTaskName()));		//业务负责人
+			else if(i==7)cell.setCellValue(addThis(o.getProjectName()));		//项目负责人
+			else if(i==8)cell.setCellValue(addThis(o.getTechnologyName()));		//技术咨询师
+			else if(i==9)cell.setCellValue(addThis(o.getFinanceTaxationName()));	//财税咨询师
 			else if(i==10)cell.setCellValue(getBigDecimal(o.getBeforeLastRdSalesAmount()));  //上上年度销售收入
 			else if(i==11)cell.setCellValue(getBigDecimal(o.getBeforeLastRdBudget()));  //上上年度研发费用
 			else if(i==12)cell.setCellValue(getBigDecimal(o.getLastRdSalesAmount())); //上年度销售收入
 			else if(i==13)cell.setCellValue(getBigDecimal(o.getRdSalesAmount())); //上年度研发费用
-			else if(i==14)cell.setCellValue(o.getWorkersNumber());//职工人数
-			else if(i==15)cell.setCellValue(o.getTechnologyNumber());//科技人员
-			else if(i==16)cell.setCellValue(o.getWorkersRate()+"%");//人员占比
-			else if(i==17)cell.setCellValue(o.getProjectApprovalNumber());//研发立项数
+			else if(i==14){
+				if (o.getWorkersNumber()==null){
+					cell.setCellValue("");
+				}else {
+					cell.setCellValue(o.getWorkersNumber());
+				}
+			}
+			else if(i==15)cell.setCellValue(addThis(o.getTechnologyNumber()));//科技人员
+			else if(i==16){
+				if (o.getWorkersRate()==null){
+					cell.setCellValue("");
+				}else {
+					cell.setCellValue(o.getWorkersRate()+"%");//人员占比
+				}
+			}
+			else if(i==17)cell.setCellValue(addThis(o.getProjectApprovalNumber()));//研发立项数
 			else if(i==18)cell.setCellValue(getBigDecimal(o.getRdBudget()));//年度研发预算总额
 			else if(i==19)cell.setCellValue(getBigDecimal(o.getRdSalesAmount()));//年度销售预计收入
-			else if(i==20)cell.setCellValue(o.getRdBudgetRate()+"%");//年度研发费用预算占比
-			else if(i==21)cell.setCellValue(o.getThreeYearsActualRdRate()+"%");//三年度研发费用占比
+			else if(i==20){
+				if (o.getRdBudgetRate()==null){
+					cell.setCellValue("");
+				}else {
+					cell.setCellValue(o.getRdBudgetRate()+"%");//年度研发费用预算占比
+				}
+			}
+			else if(i==21){
+				if (o.getThreeYearsActualRdRate()==null){
+					cell.setCellValue("");
+				}else {
+					cell.setCellValue(o.getThreeYearsActualRdRate()+"%");//三年度研发费用占比
+				}
+			}
 			else if(i==22){//数据周期
 				if (o.getDataCycle()==null){
 					cell.setCellValue("");
@@ -2008,27 +2034,39 @@ public class NewExcelUtil<T> {
 					}
 				}
 			}else if(i==23){//已立项RD数
-				cell.setCellValue(o.getActualRdNumber());
+				cell.setCellValue(addThis(o.getActualRdNumber()));
 			}else if(i==24){//委外项目数
-				cell.setCellValue(o.getActualOutsourcingNumber());
+				cell.setCellValue(addThis(o.getActualOutsourcingNumber()));
 			}
 			else if(i==25){//合作项目数
-				cell.setCellValue(o.getActualCooperateNumber());
+				cell.setCellValue(addThis(o.getActualCooperateNumber()));
 			}
 			else if(i==26){//已归集研发费用总额
-				cell.setCellValue(o.getActualRdAmount().stripTrailingZeros().toPlainString());
+				cell.setCellValue(getBigDecimal(o.getActualRdAmount()));
 			}
 			else if(i==27){//研发预算完成度
-				cell.setCellValue(o.getRdCompletionProgress()+"%");
+				if(o.getRdCompletionProgress()==null){
+					cell.setCellValue("");
+				}else{
+					cell.setCellValue(o.getRdCompletionProgress()+"%");
+				}
 			}
 			else if(i==28){//年度实际销售额
 				cell.setCellValue(getBigDecimal(o.getActualSalesAmount()));
 			}
 			else if(i==29){//年度研发费用占比
-				cell.setCellValue(o.getActualRdRate()+"%");
+				if (o.getActualRdRate()==null){
+					cell.setCellValue("");
+				}else {
+					cell.setCellValue(o.getActualRdRate()+"%");
+				}
 			}
 			else if(i==30){//三年研发费用占比
-				cell.setCellValue(o.getThreeYearsActualRdRate()+"%");
+				if (o.getThreeYearsActualRdRate()==null){
+					cell.setCellValue("");
+				}else {
+					cell.setCellValue(o.getThreeYearsActualRdRate()+"%");
+				}
 			}
 			else if(i==31){//火炬统计
 				addParam(cell,o.getTorchStatus(),o.getTorchOther());
@@ -2043,7 +2081,7 @@ public class NewExcelUtil<T> {
 				addParam(cell,o.getFinalSettlementStatus(),o.getFinalSettlementOther());
 			}
 			else if(i==35){//汇算清缴-加扣RD数
-				cell.setCellValue(o.getReportFormsRdNumber());
+				cell.setCellValue(addThis(o.getReportFormsRdNumber()));
 			}
 			else if(i==36){//汇算清缴-知识产权加扣费用
 				cell.setCellValue(getBigDecimal(o.getIntellectualPropertyAmount()));
@@ -2064,7 +2102,7 @@ public class NewExcelUtil<T> {
 				cell.setCellValue(getBigDecimal(o.getRdAnnouncementAmount()));
 			}
 			else if(i==42){//研发奖补申请-其他
-				cell.setCellValue(o.getRdAnnouncementOther());
+				cell.setCellValue(addThis(o.getRdAnnouncementOther()));
 			}
 			else if(i==43){//加扣备查交付
 				addParam(cell,o.getAdDeliverStatus(),o.getAdDeliverOther());
@@ -2094,94 +2132,119 @@ public class NewExcelUtil<T> {
 				addParam(cell,o.getCloseMeetingStatus(),o.getCloseMeetingOther());
 			}
 			else if(i==48){//阶段性汇报
-				StringBuilder res= new StringBuilder();
-				if (o.getPhasedType()==1){
-					res.append("月度- ");
-				}else if (o.getPhasedType()==2){
-					res.append("季度- ");
-				}
-				String[] split = o.getPhasedContent().split(",");
-				for (String s : split) {
-					res.append(s).append("月 ,");
-				}
-				if(res.toString().contains(",")){
-					cell.setCellValue(res.substring(0,res.length()-1));
-				}else {
+				if(o.getPhasedType()==null){
 					cell.setCellValue("");
+				}else {
+					StringBuilder res= new StringBuilder();
+					if (o.getPhasedType()==1){
+						res.append("月度- ");
+					}else if (o.getPhasedType()==2){
+						res.append("季度- ");
+					}
+					String[] split = o.getPhasedContent().split(",");
+					for (String s : split) {
+						res.append(s).append("月 ,");
+					}
+					if(res.toString().contains(",")){
+						cell.setCellValue(res.substring(0,res.length()-1));
+					}else {
+						cell.setCellValue("");
+					}
 				}
 			}
 			else if(i==49){//立项资料编制-完成数
-				cell.setCellValue(o.getProjectApprovalWriteNumber());
+				cell.setCellValue(addThis(o.getProjectApprovalWriteNumber()));
 			}else if(i==50){//立项资料编制-完成率
-				cell.setCellValue(o.getProjectApprovalWriteRate()+"%");
+				if(o.getProjectApprovalWriteRate()==null){
+					cell.setCellValue("");
+				}else {
+					cell.setCellValue(o.getProjectApprovalWriteRate()+"%");
+				}
+
 			}else if(i==51){//加扣预计申报7月
 				addParam(cell,o.getAdPrepareJulyStatus(),o.getAdPrepareJulyOther());
 			}else if(i==52){//加扣预计申报10月
 				addParam(cell,o.getAdPrepareOctoberStatus(),o.getAdPrepareOctoberOther());
 			}else if(i==53){//知识产权-发明专利-申报数
-				cell.setCellValue(o.getIpInventionPatentDeclare());
+				cell.setCellValue(addThis(o.getIpInventionPatentDeclare()));
 			}else if(i==54){//知识产权-发明专利-授权数
-				cell.setCellValue(o.getIpInventionPatentAuthorize());
+				cell.setCellValue(addThis(o.getIpInventionPatentAuthorize()));
 			}else if(i==55){///知识产权-发明专利-累计授权数
-				cell.setCellValue(o.getIpInventionPatentAuthorizeCount());
+				cell.setCellValue(addThis(o.getIpInventionPatentAuthorizeCount()));
 			}else if(i==56){//实用新型-申报数
-				cell.setCellValue(o.getIpUtilityModelDeclare());
+				cell.setCellValue(addThis(o.getIpUtilityModelDeclare()));
 			}else if(i==57){//实用新型-授权数
-				cell.setCellValue(o.getIpUtilityModelAuthorize());
+				cell.setCellValue(addThis(o.getIpUtilityModelAuthorize()));
 			}else if(i==58){//实用新型-累计授权数
-				cell.setCellValue(o.getIpUtilityModelAuthorizeCount());
+				cell.setCellValue(addThis(o.getIpUtilityModelAuthorizeCount()));
 			}else if(i==59){//软著-申报数
-				cell.setCellValue(o.getIpSoftwareWorksDeclare());
+				cell.setCellValue(addThis(o.getIpSoftwareWorksDeclare()));
 			}else if(i==60){//软著-授权数
-				cell.setCellValue(o.getIpSoftwareWorksAuthorize());
+				cell.setCellValue(addThis(o.getIpSoftwareWorksAuthorize()));
 			}else if(i==61){//软著-累计授权数
-				cell.setCellValue(o.getIpSoftwareWorksAuthorizeCount());
+				cell.setCellValue(addThis(o.getIpSoftwareWorksAuthorizeCount()));
 			}else if(i==62){//软著-截止本年末可用于下次高新认定数量
-				cell.setCellValue(o.getIpHt());
+				cell.setCellValue(addThis(o.getIpHt()));
 			}else if(i==63){//软著-I类数量
-				cell.setCellValue(o.getIpHtI());
+				cell.setCellValue(addThis(o.getIpHtI()));
 			}else if(i==64){//软著-II类数量
-				cell.setCellValue(o.getIpHtIi());
+				cell.setCellValue(addThis(o.getIpHtIi()));
 			}else if(i==65){//公出指标-合同约定次数
-				cell.setCellValue(o.getPublicReleaseStipulation());
+				cell.setCellValue(addThis(o.getPublicReleaseStipulation()));
 			}else if(i==66){//公出指标-实际次数
-				cell.setCellValue(o.getPublicReleaseActual());
+				cell.setCellValue(addThis(o.getPublicReleaseActual()));
 			}else if(i==67){//培训指标(本年度)-合同约定次数
-				cell.setCellValue(o.getTrainingStipulation());
+				cell.setCellValue(addThis(o.getTrainingStipulation()));
 			}else if(i==68){//培训指标(本年度)-实际次数
-				cell.setCellValue(o.getTrainingActual());
+				cell.setCellValue(addThis(o.getTrainingActual()));
 			}else if(i==69){//培训指标(本年度)-其他
-				cell.setCellValue(o.getTrainingOther());
+				cell.setCellValue(addThis(o.getTrainingOther()));
 			}else if(i==70){//特色工作-专项检查
 				cell.setCellValue("");
 			}else if(i==71){//特色工作-模拟稽查
 				cell.setCellValue("");
 			}else if(i==72){//其他事项说明
-				cell.setCellValue(o.getRemarks());
+				cell.setCellValue(addThis(o.getRemarks()));
 			}else if(i==73){//创新能力评价评分
-				cell.setCellValue(o.getHtScore());
+				cell.setCellValue(addThis(o.getHtScore()));
 			}else if(i==74){//实际申报批次
-				cell.setCellValue(o.getHtBatch());
+				cell.setCellValue(addThis(o.getHtBatch()));
 			}else if(i==75){//是否重点关注
-				cell.setCellValue(o.getHtFocus()==1?"是":"否");
+				if(o.getHtFocus()==null){
+					cell.setCellValue("");
+				}else {
+					cell.setCellValue(o.getHtFocus()==1?"是":"否");
+				}
 			}else if(i==76){//网上系统提交
 				addParam(cell,o.getWebSubmit(),o.getWebSubmitOther());
 			}else if(i==77){//纸质材料提交
 				addParam(cell,o.getPaperSubmit(),o.getPaperSubmitOther());
 			}else if(i==78){//省级-拟公示序号
-				if(o.getReviewProvince()==0){
-					cell.setCellValue("淘汰");
+				if(o.getReviewProvince()==null){
+					cell.setCellValue("");
 				}else {
-					cell.setCellValue("公示,序号:"+o.getReviewProvinceNumber());
+					if(o.getReviewProvince()==0){
+						cell.setCellValue("淘汰");
+					}else {
+						cell.setCellValue("公示,序号:"+o.getReviewProvinceNumber());
+					}
 				}
 			}else if(i==79){//国家级-高企编号
-				if(o.getReviewCountry()==0){
-					cell.setCellValue("淘汰");
+				if(o.getReviewCountry()==null){
+					cell.setCellValue("");
 				}else {
-					cell.setCellValue("公示,编号:"+o.getReviewCountryNumber());
+					if(o.getReviewCountry()==0){
+						cell.setCellValue("淘汰");
+					}else {
+						cell.setCellValue("公示,编号:"+o.getReviewCountryNumber());
+					}
 				}
 			}else if(i==80){//更新时间
-				cell.setCellValue(DateUtils.formatDateChineseYYYYMMddHH(o.getUpdateTime()));
+				if(o.getUpdateTime()==null){
+					cell.setCellValue("");
+				}else {
+					cell.setCellValue(DateUtils.formatDateChineseYYYYMMddHH(o.getUpdateTime()));
+				}
 			}else {
 				cell.setCellValue("");
 			}
@@ -2190,6 +2253,11 @@ public class NewExcelUtil<T> {
 
 	}
 
+	private String addThis(Object in) {
+		if (in==null) return "";
+		return in.toString();
+	}
+
 	private String getBigDecimal(BigDecimal bigDecimal) {
 		if (bigDecimal==null){
 			return "";