Browse Source

Merge branch 'test2' of jishutao/kede-server into prod

anderx 1 year ago
parent
commit
31091219b6

File diff suppressed because it is too large
+ 102 - 8
src/main/java/com/goafanti/common/mapper/TaskDetailsMapper.xml


+ 14 - 2
src/main/java/com/goafanti/common/model/TaskDetails.java

@@ -11,10 +11,10 @@ import java.util.Date;
  * 项目申报详情(TaskDetails)实体类
  *
  * @author makejava
- * @since 2025-01-09 09:58:37
+ * @since 2025-01-20 17:19:20
  */
 public class TaskDetails implements Serializable {
-    private static final long serialVersionUID = -30309793401305115L;
+    private static final long serialVersionUID = 992907593831828261L;
 
     private Integer id;
 /**
@@ -409,6 +409,10 @@ public class TaskDetails implements Serializable {
      * 创建时间
      */
     private Date createTime;
+/**
+     * 会员等级
+     */
+    private Integer memberLvl;
 
 
     public Integer getId() {
@@ -1203,5 +1207,13 @@ public class TaskDetails implements Serializable {
         this.createTime = createTime;
     }
 
+    public Integer getMemberLvl() {
+        return memberLvl;
+    }
+
+    public void setMemberLvl(Integer memberLvl) {
+        this.memberLvl = memberLvl;
+    }
+
 }
 

+ 163 - 78
src/main/java/com/goafanti/common/utils/excel/NewExcelUtil.java

@@ -1021,6 +1021,14 @@ public class NewExcelUtil<T> {
 	}
 
 	/**
+	 * 编码文件名
+	 */
+	public String dateFilename(String filename) {
+		filename = filename + "_" +DateUtils.formatDate(new Date(),"yyyy_MM_dd_HH_mm")  + ".xlsx";
+		return filename;
+	}
+
+	/**
 	 * 获取下载路径
 	 *
 	 * @param filename 文件名称
@@ -1906,7 +1914,7 @@ public class NewExcelUtil<T> {
 	}
 
 
-	public Result exportTaskDetailsExcel(TaskDetailsBo byTid, String sheetName, String uploadPath) {
+	public Result exportTaskDetailsExcel(List<TaskDetailsBo> list, String sheetName, String uploadPath) {
 		OutputStream out = null;
 		String filename="";
 		downloadPath=uploadPath;
@@ -1916,10 +1924,16 @@ public class NewExcelUtil<T> {
 			wb = new HSSFWorkbook(fileInputStream);
 			styles=createStyles(wb);
 			sheet = wb.getSheetAt(0);
-			Row row = sheet.createRow(6);
-			filename = encodingFilename(sheetName);
+			filename = dateFilename(sheetName);
 			out = Files.newOutputStream(Paths.get(getAbsoluteFile(filename)));
-			addCell( row,byTid);
+			int index=6;//写入文档行数
+			int i=1;//序号
+			for (TaskDetailsBo bo : list) {
+				Row row = sheet.createRow(index);
+				addCell( row,bo,i);
+				index++;
+				i++;
+			}
 			wb.write(out);
 			return new Result().data(filename);
 		} catch (Exception e) {
@@ -1960,34 +1974,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("");
@@ -2004,27 +2042,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());
@@ -2039,7 +2089,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()));
@@ -2060,7 +2110,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());
@@ -2090,94 +2140,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.formatDateYYYYMMddHHmm(o.getUpdateTime()));
+				}
 			}else {
 				cell.setCellValue("");
 			}
@@ -2186,6 +2261,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 "";
@@ -2195,15 +2275,20 @@ public class NewExcelUtil<T> {
 	}
 
 	private void addParam(Cell cell, Integer code, String desc) {
-		switch (code)
-		{
-			case 0:
-				String res="其他:"+desc;
-				cell.setCellValue(res);
-				break;
-			case 1: cell.setCellValue("待完成"); break;
-			case 2: cell.setCellValue("已完成"); break;
-			case 3: cell.setCellValue("合同无此项"); break;
+		if (code==null){
+			cell.setCellValue("");
+		}else {
+			switch (code)
+			{
+				case 0:
+					String res="其他:"+desc;
+					cell.setCellValue(res);
+					break;
+				case 1: cell.setCellValue("待完成"); break;
+				case 2: cell.setCellValue("已完成"); break;
+				case 3: cell.setCellValue("合同无此项"); break;
+			}
 		}
+
 	}
 }

+ 3 - 2
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -158,6 +158,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				ck.setReceiverName(tt.getReceiverName());
 				ck.setMain(tt.getMain());
 				ck.setTid(tt.getId());
+				ck.setType(0);
 				if(tt.getServiceLife()!=null)ck.setServiceLife(tt.getServiceLife());
 				if(tt.getServiceYear()!=null)		ck.setServiceYear(tt.getServiceYear());
 				if(tt.getYearSum()!=null)	ck.setYearSum(tt.getYearSum());
@@ -942,7 +943,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		List<TChangeTaskOut> list = selectChangeTask(t.getId());
 		BigDecimal count=new BigDecimal(0);
 		for (TChangeTaskOut tt : list) {
-			if(tt.getType()!=3)count=count.add(tt.getCommodityPrice());
+			if(tt.getType()!=null&&tt.getType()!=3)count=count.add(tt.getCommodityPrice());
 		}
 		if (amout.compareTo(count)!=0) {
 			throw new BusinessException("项目金额总和不等于合同总金额。");
@@ -951,7 +952,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		count=new BigDecimal(0);
 		for (TChangeDunOut td : list2) {
 			if(td.getMoney()==null)td.setMoney(new BigDecimal(0));
-			if(td.getType()!=3)count=count.add(td.getMoney());
+			if(td.getType()!=null&&td.getType()!=3)count=count.add(td.getMoney());
 		}
 		if (amout.compareTo(count)!=0) {
 			throw new BusinessException("收款节点金额总和不等于合同总金额。");

+ 201 - 0
src/main/java/com/goafanti/techproject/bo/InputTaskDetailsBo.java

@@ -2,9 +2,210 @@ package com.goafanti.techproject.bo;
 
 public class InputTaskDetailsBo {
 
+    private String aid;
+    /**
+     * 咨询师姓名*/
+    private String consultantName;
+    /**
+     * 合同编号*/
+    private String contractNo;
+    /**
+     * 客户名称*/
+    private String userName;
+    /**
+     *服务年份
+     */
+    private String serviceYear;
+    /**
+     *  项目负责人
+     */
+    private String projectDebtorId;
+    /**
+     * 项目状态
+     */
+    private String projectStatus;
+    /**
+     *外包状态
+     */
+    private String outSourcingStatus;
+    /**
+     *更新时间
+     */
+    private String updateTime;
+    /**
+     *进度
+     */
+    private String progress;
+    /**
+     * 会员级别
+     */
+    private Integer applicationLevel;
+    /**
+     *高新公示
+     */
+    private Integer reviewProvince;
+    /**
+     * 汇算清缴 0=其他,1=待完成,2=已完成,3=合同无此项
+     */
+    private Integer finalSettlementStatus;
+    /**
+     * 加计扣除
+     */
+    private Integer adDeliverStatus;
+    /**
+     * 火炬统计
+     */
+    private Integer torchStatus;
+    /**
+     *统计年报
+     */
+    private Integer statisticsStatus;
+    /**
+     *高企年报
+     */
+    private Integer chStatus;
+
+
     private Integer pageSize;
     private Integer pageNo;
 
+
+    public String getConsultantName() {
+        return consultantName;
+    }
+
+    public void setConsultantName(String consultantName) {
+        this.consultantName = consultantName;
+    }
+
+    public String getContractNo() {
+        return contractNo;
+    }
+
+    public void setContractNo(String contractNo) {
+        this.contractNo = contractNo;
+    }
+
+    public String getServiceYear() {
+        return serviceYear;
+    }
+
+    public void setServiceYear(String serviceYear) {
+        this.serviceYear = serviceYear;
+    }
+
+    public String getProjectDebtorId() {
+        return projectDebtorId;
+    }
+
+    public void setProjectDebtorId(String projectDebtorId) {
+        this.projectDebtorId = projectDebtorId;
+    }
+
+    public String getProjectStatus() {
+        return projectStatus;
+    }
+
+    public void setProjectStatus(String projectStatus) {
+        this.projectStatus = projectStatus;
+    }
+
+    public String getOutSourcingStatus() {
+        return outSourcingStatus;
+    }
+
+    public void setOutSourcingStatus(String outSourcingStatus) {
+        this.outSourcingStatus = outSourcingStatus;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getProgress() {
+        return progress;
+    }
+
+    public void setProgress(String progress) {
+        this.progress = progress;
+    }
+
+    public Integer getApplicationLevel() {
+        return applicationLevel;
+    }
+
+    public void setApplicationLevel(Integer applicationLevel) {
+        this.applicationLevel = applicationLevel;
+    }
+
+    public Integer getReviewProvince() {
+        return reviewProvince;
+    }
+
+    public void setReviewProvince(Integer reviewProvince) {
+        this.reviewProvince = reviewProvince;
+    }
+
+    public Integer getFinalSettlementStatus() {
+        return finalSettlementStatus;
+    }
+
+    public void setFinalSettlementStatus(Integer finalSettlementStatus) {
+        this.finalSettlementStatus = finalSettlementStatus;
+    }
+
+    public Integer getAdDeliverStatus() {
+        return adDeliverStatus;
+    }
+
+    public void setAdDeliverStatus(Integer adDeliverStatus) {
+        this.adDeliverStatus = adDeliverStatus;
+    }
+
+    public Integer getTorchStatus() {
+        return torchStatus;
+    }
+
+    public void setTorchStatus(Integer torchStatus) {
+        this.torchStatus = torchStatus;
+    }
+
+    public Integer getStatisticsStatus() {
+        return statisticsStatus;
+    }
+
+    public void setStatisticsStatus(Integer statisticsStatus) {
+        this.statisticsStatus = statisticsStatus;
+    }
+
+    public Integer getChStatus() {
+        return chStatus;
+    }
+
+    public void setChStatus(Integer chStatus) {
+        this.chStatus = chStatus;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getAid() {
+        return aid;
+    }
+
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
     public Integer getPageSize() {
         return pageSize;
     }

+ 7 - 4
src/main/java/com/goafanti/techproject/controller/TaskDetailsController.java

@@ -8,6 +8,7 @@ import com.goafanti.common.model.TaskDetailsLog;
 import com.goafanti.common.model.TaskFeature;
 import com.goafanti.techproject.bo.InputTaskDetailsBo;
 import com.goafanti.techproject.bo.InputTaskFeature;
+import com.goafanti.techproject.bo.TaskDetailsBo;
 import com.goafanti.techproject.service.TaskDetailsService;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -123,16 +124,18 @@ public class TaskDetailsController extends BaseController {
     }
 
     /**
-     * 项目进度列表
+     * 项目进度列表(我的与我的下级)
      *
      * @param in 参数
      * @return
      */
     @GetMapping("/detailsList")
-    public Result<TaskDetails> detailsList(InputTaskDetailsBo in) {
+    public Result<TaskDetailsBo> detailsList(InputTaskDetailsBo in) {
         return new Result<>().data(this.taskDetailsService.detailsList(in));
     }
 
+
+
     /**
      * 导出数据
      *
@@ -150,8 +153,8 @@ public class TaskDetailsController extends BaseController {
      * @return
      */
     @GetMapping("/export")
-    public Result export() {
-        return this.taskDetailsService.export();
+    public Result export(InputTaskDetailsBo in) {
+        return this.taskDetailsService.export(in);
     }
 
     /**

+ 3 - 2
src/main/java/com/goafanti/techproject/service/TaskDetailsService.java

@@ -3,6 +3,7 @@ package com.goafanti.techproject.service;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.model.TaskDetails;
 import com.goafanti.common.model.TaskFeature;
+import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.techproject.bo.InputTaskDetailsBo;
 import com.goafanti.techproject.bo.InputTaskFeature;
 import com.goafanti.techproject.bo.TaskDetailsBo;
@@ -79,7 +80,7 @@ public interface TaskDetailsService {
     Object updateDownload(TaskDetails newTd);
 
 
-    Result export();
+    Result export(InputTaskDetailsBo in);
 
-    Object detailsList(InputTaskDetailsBo in);
+    Pagination<TaskDetailsBo> detailsList(InputTaskDetailsBo in);
 }

+ 87 - 56
src/main/java/com/goafanti/techproject/service/impl/TaskDetailsServiceImpl.java

@@ -49,6 +49,8 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
     private TaskFeatureMapper taskFeatureMapper;
     @Resource
     private TaskFeatureLogMapper taskFeatureLogMapper;
+    @Resource
+    private TTaskMemberMapper ttaskMemberMapper;
 
 
 
@@ -67,11 +69,47 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
     @Override
     public TaskDetailsBo pushByTid(Integer id) {
         TaskDetailsBo res = new TaskDetailsBo();
-        TOrderNew tOrderNew = tOrderNewMapper.selectByTid(id);
         TOrderTask tOrderTask = tOrderTaskMapper.queryById(id);
+        TaskDetails taskDetails=taskDetailsMapper.selectById(tOrderTask.getProgressTid());
+        if (taskDetails !=null){
+            BeanUtils.copyProperties( taskDetails,res);
+        }
+        addOrderInformation(res);
+        return res;
+    }
+
+    @Override
+    public Result export(InputTaskDetailsBo in) {
+        in.setPageNo(1);
+        in.setPageSize(10000);
+        Pagination<TaskDetailsBo> page = detailsList(in);
+        List<TaskDetailsBo> list = (List<TaskDetailsBo>) page.getList();
+        NewExcelUtil<TaskDetailsBo> excel=new NewExcelUtil<>(TaskDetailsBo.class);
+        return excel.exportTaskDetailsExcel(list,"项目进度表",uploadPath);
+    }
+
+    @Override
+    public Pagination<TaskDetailsBo> detailsList(InputTaskDetailsBo in) {
+        in.setAid(TokenManager.getUserId());
+        Pagination<?> page = findPage("selectTaskDetailsList", "selectTaskDetailsCount", in);
+        List<TaskDetails> list = (List<TaskDetails>) page.getList();
+        List<TaskDetailsBo> list2=new ArrayList<>();
+        for (TaskDetails e : list) {
+            TaskDetailsBo bo=new TaskDetailsBo();
+            BeanUtils.copyProperties(e,bo);
+            addOrderInformation(bo);
+            pushGetServiceProject(bo);
+            list2.add(bo);
+        }
+        page.setList(list2);
+        return (Pagination<TaskDetailsBo>) page;
+    }
+
+    private void addOrderInformation(TaskDetailsBo bo) {
+        TOrderNew tOrderNew = tOrderNewMapper.selectByTid(bo.getTid());
+        TOrderTask tOrderTask = tOrderTaskMapper.queryById(bo.getTid());
         TOrderMid mid = tOrderMidMapper.selectByOrderNo(tOrderNew.getOrderNo());
-        List<Map<String,Object >> list=new ArrayList<>();
-        TaskDetails taskDetails=null;
+        List<Map<String,Object >> list;
         //获取项目服务年份算出平均值
         List<TOrderTaskBo> tOrderTaskBos = tOrderTaskMapper.selectOrderTaskAll(tOrderNew.getOrderNo(), null);
         List<TOrderTaskBo> collect = tOrderTaskBos.stream().filter(e -> e.getSplitStatus() == 1).collect(Collectors.toList());
@@ -82,48 +120,25 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
                 yearSum=e.getYearSum();
             }
         }
-        taskDetails=taskDetailsMapper.selectById(tOrderTask.getProgressTid());
-        //如果是会员
-        TOrderTaskBo thisTask = null;
-        for (TOrderTaskBo e : collect2) {
-            if (e.getId().equals(id)){
-                thisTask=e;
-                break;
-            }
-        }
-        String serviceYear = getServiceYer(thisTask.getServiceYear());
+        TTaskMember tTaskMember = ttaskMemberMapper.selectByTid(tOrderTask.getId());
+        String serviceYear = getServiceYer(tTaskMember.getServiceYear());
         list=addOrderList(collect2,serviceYear);
-        if (taskDetails !=null){
-                BeanUtils.copyProperties( taskDetails,res);
+        bo.setUserName(mid.getBuyerName());
+        bo.setOrderNo(tOrderNew.getOrderNo());
+        bo.setContractNo(tOrderNew.getContractNo());
+        bo.setServiceYear(serviceYear);
+        bo.setMemberStatus(mid.getProjectType());
+        bo.setTaskList(list);
+        if (bo.getMemberStatus()==null){
+            BigDecimal totalAmount = tOrderNew.getTotalAmount().divide(new BigDecimal(yearSum), 2, RoundingMode.HALF_UP);
+            Integer lvl=getOrderLvl(totalAmount);
+            bo.setMemberLvl(lvl);
         }
-        res.setUserName(mid.getBuyerName());
-        res.setOrderNo(tOrderNew.getOrderNo());
-        res.setContractNo(tOrderNew.getContractNo());
-        res.setServiceYear(serviceYear);
-        res.setMemberStatus(mid.getProjectType());
-        res.setTaskList(list);
-        BigDecimal totalAmount = tOrderNew.getTotalAmount().divide(new BigDecimal(yearSum), 2, RoundingMode.HALF_UP);
-        String lvl=getOrderLvl(totalAmount);
-        res.setMemberLvl(lvl);
-        if (taskDetails!=null&&taskDetails.getTid()!=null){
-            res.setFeatureList(taskFeatureMapper.selectByTdId(taskDetails.getId()));
-        }
-        return res;
-    }
-
-    @Override
-    public Result export() {
-        return null;
-    }
-
-    @Override
-    public Object detailsList(InputTaskDetailsBo in) {
-//        findPage("selectTaskDetailsList","selectTaskDetailsCount",in);
-        return null;
+        bo.setFeatureList(taskFeatureMapper.selectByTdId(bo.getId()));
     }
 
     private String getServiceYer(String serviceYear) {
-        String serviceYear2=null;
+        String serviceYear2;
         if (StringUtils.isEmpty(serviceYear)){
             serviceYear2 = "";
         }else{
@@ -136,14 +151,14 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
         return serviceYear2;
     }
 
-    private String getOrderLvl(BigDecimal totalAmount) {
-        String lvl=null;
+    private Integer getOrderLvl(BigDecimal totalAmount) {
+        Integer lvl=null;
         if (totalAmount.compareTo(new BigDecimal("3"))<0){
-            lvl ="A";
+            lvl =1;
         }else if (totalAmount.compareTo(new BigDecimal("8"))<1){
-            lvl ="AA";
+            lvl =2;
         }else if (totalAmount.compareTo(new BigDecimal("8"))>0){
-            lvl ="AAA";
+            lvl =3;
         }
         return lvl;
     }
@@ -195,7 +210,7 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
         List<TOrderTaskBo> tOrderTaskBos = tOrderTaskMapper.selectOrderTaskAll(orderNo, null);
         List<TOrderTaskBo> collect = tOrderTaskBos.stream().filter(e -> e.getSplitStatus() == 0||e.getSplitStatus() == 2).collect(Collectors.toList());
         //如果是会员
-        TOrderTaskBo thisTask = null;
+        TOrderTaskBo thisTask = new TOrderTaskBo();
         for (TOrderTaskBo e : collect) {
             if (e.getId().equals(taskDetails.getTid())){
                 thisTask=e;
@@ -204,7 +219,7 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
         }
         String serviceYear = getServiceYer(thisTask.getServiceYear());
         for (TOrderTaskBo tOrderTaskBo : collect) {
-            if (serviceYear != null ){
+            if (StringUtils.isNotEmpty(serviceYear)){
                 String serviceYer2 = getServiceYer(tOrderTaskBo.getServiceYear());
                 if (serviceYear.equals(serviceYer2)){
                     TOrderTask updatedTask = new TOrderTask();
@@ -230,6 +245,7 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
         BeanUtils.copyProperties( taskDetails,log);
         log.setTdid(taskDetails.getId());
         log.setId(null);
+        assert adminToken != null;
         log.setAid(adminToken.getId());
         log.setAname(adminToken.getName());
         log.setCreateTime(new Date());
@@ -295,6 +311,18 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
             BigDecimal res5 = projectApprovalWriteNumber.divide(new BigDecimal(taskDetails.getProjectApprovalNumber()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
             taskDetails.setProjectApprovalWriteRate(res5.doubleValue());
         }
+        //计算项目会员等级
+        TOrderNew tOrderNew = tOrderNewMapper.selectByTid(taskDetails.getTid());
+        List<TOrderTaskBo> tOrderTaskBos = tOrderTaskMapper.selectOrderTaskAll(tOrderNew.getOrderNo(), 4);
+        int yearSum=1;
+        for (TOrderTaskBo e : tOrderTaskBos) {
+            if (e.getYearSum()>yearSum){
+                yearSum=e.getYearSum();
+            }
+        }
+        BigDecimal totalAmount = tOrderNew.getTotalAmount().divide(new BigDecimal(yearSum), 2, RoundingMode.HALF_UP);
+        Integer lvl=getOrderLvl(totalAmount);
+        taskDetails.setMemberLvl(lvl);
     }
 
     private BigDecimal getBigDecimal(BigDecimal rdSalesAmount, BigDecimal rdBudget, TaskDetails taskDetails) {
@@ -332,8 +360,7 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
     @Override
     public Object updateDownload(TaskDetails newTd) {
         this.taskDetailsMapper.update(newTd);
-        TaskDetails res = this.queryById(newTd.getId());
-        return res;
+        return this.queryById(newTd.getId());
     }
 
 
@@ -356,14 +383,16 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
         NewExcelUtil<TaskDetailsBo> excel=new NewExcelUtil<>(TaskDetailsBo.class);
         TaskDetailsBo byTid = pushByTid(id);
         pushGetServiceProject(byTid);
-        return excel.exportTaskDetailsExcel(byTid,"项目进度表",uploadPath);
+        List<TaskDetailsBo> list = new ArrayList<>();
+        list.add(byTid);
+        return excel.exportTaskDetailsExcel(list,"项目进度表",uploadPath);
     }
 
     private void pushGetServiceProject( TaskDetailsBo res) {
         List<Map<String, Object>> taskList = res.getTaskList();
         String serviceYear = null;
         if (taskList!=null){
-            StringBuffer sb = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             for (Map<String, Object> map : taskList) {
                 sb.append(map.get("taskName")).append("-").append(map.get("serviceYear")).append(",");
                 if (serviceYear==null)serviceYear = (String) map.get("serviceYear");
@@ -398,7 +427,7 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
 
     @Override
     public Object logList(Integer id, Integer pageNo, Integer pageSize) {
-        Map<String,Object> param=new HashMap<String, Object>();
+        Map<String,Object> param= new HashMap<>();
         param.put("tdid",id);
         if (pageNo ==null)pageNo=1;
         if (pageSize ==null)pageSize=10;
@@ -413,10 +442,10 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
         TaskDetailsBo res = new TaskDetailsBo();
         TOrderNew tOrderNew = tOrderNewMapper.selectByTid(tid);
         TOrderMid mid = tOrderMidMapper.selectByOrderNo(tOrderNew.getOrderNo());
-        List<Map<String,Object >> list=new ArrayList<>();
+        List<Map<String,Object >> list;
         List<TOrderTaskBo> tOrderTaskBos = tOrderTaskMapper.selectOrderTaskAll(tOrderNew.getOrderNo(), 4);
         //如果是会员
-        TOrderTaskBo thisTask = null;
+        TOrderTaskBo thisTask = new TOrderTaskBo();
         for (TOrderTaskBo e : tOrderTaskBos) {
             if (e.getId().equals(tid)){
                 thisTask=e;
@@ -434,8 +463,10 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
         res.setMemberStatus(mid.getProjectType());
         res.setTaskList(list);
         BigDecimal totalAmount = tOrderNew.getTotalAmount();
-        String lvl=getOrderLvl(totalAmount);
-        res.setMemberLvl(lvl);
+        if (res.getMemberLvl()==null){
+            Integer lvl=getOrderLvl(totalAmount);
+            res.setMemberLvl(lvl);
+        }
         res.setTaskList(list);
         res.setFeatureList(taskFeatureLogMapper.selectByTdlid(id));
         return res;