|
|
@@ -8,8 +8,12 @@ import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
+import javax.servlet.http.HttpServletResponseWrapper;
|
|
|
|
|
|
import com.goafanti.common.bo.Result;
|
|
|
+import com.goafanti.common.utils.excel.NewExcelUtil;
|
|
|
+import com.goafanti.order.bo.*;
|
|
|
+import com.goafanti.order.bo.outStatistics.*;
|
|
|
import groovy.util.logging.Log4j;
|
|
|
import org.apache.commons.collections4.map.HashedMap;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
@@ -18,6 +22,7 @@ import org.apache.poi.xssf.usermodel.XSSFCell;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFRow;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -27,10 +32,6 @@ import com.goafanti.common.error.BusinessException;
|
|
|
import com.goafanti.common.utils.ExportExcelUtil;
|
|
|
import com.goafanti.core.mybatis.BaseMybatisDao;
|
|
|
import com.goafanti.core.mybatis.page.Pagination;
|
|
|
-import com.goafanti.order.bo.InputProjectStatistics;
|
|
|
-import com.goafanti.order.bo.InputProvincialStatistics;
|
|
|
-import com.goafanti.order.bo.OutProjectStatistics;
|
|
|
-import com.goafanti.order.bo.OutProvincialStatistics;
|
|
|
import com.goafanti.order.enums.NewProjectStatus;
|
|
|
import com.goafanti.order.service.ProjectStatisticsService;
|
|
|
|
|
|
@@ -41,6 +42,7 @@ public class ProjectStatisticsServiceImpl extends BaseMybatisDao<TOrderTaskMappe
|
|
|
@Value("${upload.path}")
|
|
|
private String downloadPath;
|
|
|
|
|
|
+
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Override
|
|
|
public Pagination<OutProjectStatistics> selectTaskList(InputProjectStatistics ps) {
|
|
|
@@ -88,125 +90,69 @@ public class ProjectStatisticsServiceImpl extends BaseMybatisDao<TOrderTaskMappe
|
|
|
return p;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
- public void exporTaskList(HttpServletResponse response, InputProjectStatistics ib) throws IOException {
|
|
|
- OutputStream out = response.getOutputStream();
|
|
|
- try {
|
|
|
+ public Result exporTaskList( InputProjectStatistics ib,HttpServletResponse response) {
|
|
|
if(ib.getPageSize()==null)ib.setPageSize(9999999);
|
|
|
if(ib.getStatus()==null)ib.setStatus(0);
|
|
|
@SuppressWarnings("unchecked")
|
|
|
List<OutProjectStatistics> list= (List<OutProjectStatistics>) selectTaskList(ib).getList();
|
|
|
- String[] comment = {"派单时间","派单省份","订单部门","营销员","合同编号","订单编号","签单客户","项目类型","项目名称"};
|
|
|
- List<String> ls = new ArrayList<>();
|
|
|
- Collections.addAll(ls, comment);
|
|
|
+ Result res =new Result();
|
|
|
if (ib.getStatus()==null||ib.getStatus()==0){
|
|
|
- String[] ss= {"数量","负责部门","咨询师/咨询经理","项目状态"};
|
|
|
- Collections.addAll(ls, ss);
|
|
|
- }else if (ib.getStatus()==1) {
|
|
|
- //高新、科技
|
|
|
- //是否立项 立项时间 是否抽查 联系人电话 法人电话 证书编号 申报批次
|
|
|
- String[] ss= {"负责部门","咨询师/咨询经理","项目状态","是否立项","立项时间","是否抽查","联系人电话","法人电话","证书编号","申报批次"};
|
|
|
- Collections.addAll(ls, ss);
|
|
|
- }else if (ib.getStatus()==2) {
|
|
|
- //双软
|
|
|
- String[] ss= {"负责部门","咨询师/咨询经理","项目状态","下证时间"};
|
|
|
- Collections.addAll(ls, ss);
|
|
|
- }else if (ib.getStatus()==3) {
|
|
|
- //软著
|
|
|
- String[] ss= {"负责部门","咨询师/咨询经理","项目状态","软著数量/已下证","有无材料","加急天数","下证时间","证书编号","成本","利润"};
|
|
|
- Collections.addAll(ls, ss);
|
|
|
- }else if (ib.getStatus()==4) {
|
|
|
- //专利
|
|
|
- String[] ss= {"负责部门","咨询师/咨询经理","项目状态","是否高新","项目数量/下证数","驳回数","专利号","专利名称","受理时间","下证时间","成本","利润"};
|
|
|
- Collections.addAll(ls, ss);
|
|
|
- }
|
|
|
- ls.add("签单金额");
|
|
|
- ls.add("特别说明");
|
|
|
- comment= ls.toArray(new String[ls.size()]);
|
|
|
- String fileName ="项目汇总表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
|
|
|
- XSSFWorkbook wb =ExportExcelUtil.exportTemplateInfoS(comment,"项目汇总表");
|
|
|
- //根据列表编写文档
|
|
|
- XSSFSheet sheet =wb.getSheetAt(0);
|
|
|
- XSSFRow row = sheet.createRow(2);
|
|
|
- //4.创建一个cell
|
|
|
- XSSFCell cell = row.createCell(0);
|
|
|
- cell.setCellValue(getInputString(ib));
|
|
|
- sheet.addMergedRegion(new CellRangeAddress(2, 2, 0, comment.length-1));//合并单元格
|
|
|
- for (OutProjectStatistics ob : list) {
|
|
|
- //新增一行
|
|
|
- XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
|
|
|
- for (int i = 0; i < comment.length; i++) {
|
|
|
- //当前列的只
|
|
|
- String o = "";
|
|
|
- switch (comment[i]) {
|
|
|
-// "派单时间","派单省份","订单部门","营销员","合同编号","订单编号","签单客户","项目类型",
|
|
|
- // "项目名称","负责部门","咨询师/咨询经理","项目状态","签单金额"
|
|
|
- case "派单时间": o = ob.getDistributionTime(); break;
|
|
|
- case "派单省份": o = ob.getProvince(); break;
|
|
|
- case "订单部门": o = ob.getDepName(); break;
|
|
|
- case "营销员": o = ob.getSalesmanName(); break;
|
|
|
- case "合同编号": o = ob.getContractNo(); break;
|
|
|
- case "订单编号": o = ob.getOrderNo(); break;
|
|
|
- case "签单客户": o = ob.getUserName(); break;
|
|
|
- case "项目类型": o = ob.getCname(); break;
|
|
|
- case "项目名称": o = ob.getPname(); break;
|
|
|
- case "数量": o = ob.getCommodityQuantity().toString(); break;
|
|
|
- case "负责部门": o = ob.getTechDepName(); break;
|
|
|
- case "咨询师/咨询经理": o = ob.getTechName(); break;
|
|
|
- case "项目状态": o = NewProjectStatus.getValueByCode(ob.getProjectStatus()); break;
|
|
|
+ List<OutProjectStatisticsCommon> tl=new ArrayList<>();
|
|
|
+ for (OutProjectStatistics o : list) {
|
|
|
+ OutProjectStatisticsCommon common = new OutProjectStatisticsCommon();
|
|
|
+ BeanUtils.copyProperties(o,common);
|
|
|
+ tl.add(common);
|
|
|
+ }
|
|
|
+ NewExcelUtil<OutProjectStatisticsCommon> excelUtil=new NewExcelUtil<>(OutProjectStatisticsCommon.class);
|
|
|
+ res=excelUtil.exportExcel(tl,"项目汇总表(通用)",downloadPath);
|
|
|
+ }else if (ib.getStatus()==1){//高新、科技
|
|
|
+ List<OutProjectStatisticsHighTech> tl=new ArrayList<>();
|
|
|
+ for (OutProjectStatistics o : list) {
|
|
|
+ OutProjectStatisticsHighTech highTech = new OutProjectStatisticsHighTech();
|
|
|
+ BeanUtils.copyProperties(o,highTech);
|
|
|
+ tl.add(highTech);
|
|
|
+ }
|
|
|
+ NewExcelUtil<OutProjectStatisticsHighTech> excelUtil=new NewExcelUtil<>(OutProjectStatisticsHighTech.class);
|
|
|
+ res=excelUtil.exportExcel(tl,"项目汇总表(高新)",downloadPath);
|
|
|
|
|
|
- //是否立项 立项时间 是否抽查 联系人电话 法人电话 证书编号 申报批次
|
|
|
- case "是否立项": o = ob.getSetUpStatus()==null?"":ob.getSetUpStatus()==1?"是":"否"; break;
|
|
|
- case "立项时间": o = ob.getSetUpTime(); break;
|
|
|
- case "是否抽查":
|
|
|
- //是否抽查 0否 1未通过 2通过
|
|
|
- if (ob.getSpotCheckStatus()==null) o="";
|
|
|
- else if (ob.getSpotCheckStatus()==0) o="否";
|
|
|
- else if (ob.getSpotCheckStatus()==1) o="未通过";
|
|
|
- else if (ob.getSpotCheckStatus()==2) o="通过";
|
|
|
- break;
|
|
|
- case "联系人电话": o = ob.getContactMobile(); break;
|
|
|
- case "法人电话": o = ob.getLegalPersonTel(); break;
|
|
|
- case "证书编号": o = ob.getCertificateNumber(); break;
|
|
|
- case "申报批次": o = ob.getDeclarationBatch(); break;
|
|
|
- //"下证时间"
|
|
|
- case "下证时间": o = ob.getLicenceTime(); break;
|
|
|
- //"软著数量/已下证","有无材料","加急天数","下证时间","证书编号","成本","利润"
|
|
|
- case "软著数量/已下证": o = StringUtils.join(ob.getCommodityQuantity(),"/",ob.getCertificatesCount()); break;
|
|
|
- case "有无材料": o = ob.getIfMaterial()==null?"":ob.getIfMaterial()==1?"是":"否"; break;
|
|
|
- case "加急天数": o = ob.getUrgentDay()==null?"":ob.getUrgentDay()==1?"是":"否"; break;
|
|
|
- case "成本": o = ob.getCostAmount().stripTrailingZeros().toPlainString(); break;
|
|
|
- case "利润": o = ob.getProfit().stripTrailingZeros().toPlainString(); break;
|
|
|
- //"是否高新","项目数量/下证数","驳回数","专利号","专利名称","受理时间","下证时间","成本","利润"
|
|
|
- case "是否高新": o = ob.getHighTechstatus()==null?"":ob.getHighTechstatus()==1?"是":"否"; break;
|
|
|
- case "项目数量/下证数": o = StringUtils.join(ob.getCommodityQuantity(),"/",ob.getCertificatesCount()); break;
|
|
|
- case "驳回数": o = ob.getRejectCount()==null?"":ob.getRejectCount().toString(); break;
|
|
|
- case "专利号": o = ob.getPatentNo(); break;
|
|
|
- case "专利名称": o = ob.getPatentName(); break;
|
|
|
- case "受理时间": o = ob.getAcceptTime(); break;
|
|
|
+ }else if (ib.getStatus()==2){//双软
|
|
|
+ List<OutProjectStatisticsDoubleSoft> tl=new ArrayList<>();
|
|
|
+ for (OutProjectStatistics o : list) {
|
|
|
+ OutProjectStatisticsDoubleSoft doubleSoft = new OutProjectStatisticsDoubleSoft();
|
|
|
+ BeanUtils.copyProperties(o,doubleSoft);
|
|
|
|
|
|
- case "签单金额": o = ob.getCommodityPrice().stripTrailingZeros().toPlainString(); break;
|
|
|
- case "特别说明": o = ob.getSpecialComment(); break;
|
|
|
- default: o = ""; break;
|
|
|
- }
|
|
|
- XSSFCell c = r.createCell(i);
|
|
|
- c.setCellValue(o);
|
|
|
- }
|
|
|
- }
|
|
|
- //返回名称及参数
|
|
|
- response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(),"iso-8859-1"));
|
|
|
- response.setContentType("application/octet-stream;charset=utf-8");
|
|
|
- // 返回数据流
|
|
|
- wb.write(out);
|
|
|
- out.flush();
|
|
|
- out.close();
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- throw new BusinessException(new Error("表格生成错误。"));
|
|
|
- }finally {
|
|
|
- out.flush();
|
|
|
- out.close();
|
|
|
- }
|
|
|
+ tl.add(doubleSoft);
|
|
|
+ }
|
|
|
+ NewExcelUtil<OutProjectStatisticsDoubleSoft> excelUtil=new NewExcelUtil<>(OutProjectStatisticsDoubleSoft.class);
|
|
|
+ res=excelUtil.exportExcel(tl,"项目汇总表(双软)",downloadPath);
|
|
|
+
|
|
|
+ }else if (ib.getStatus()==3){//软著
|
|
|
+ List<OutProjectStatisticsSoftwareWorks> tl=new ArrayList<>();
|
|
|
+ for (OutProjectStatistics o : list) {
|
|
|
+ OutProjectStatisticsSoftwareWorks softwareWorks = new OutProjectStatisticsSoftwareWorks();
|
|
|
+ BeanUtils.copyProperties(o,softwareWorks);
|
|
|
+ softwareWorks.setQuantityAndcount(softwareWorks.getCommodityQuantity()+"/"+softwareWorks.getCertificatesCount());
|
|
|
+ tl.add(softwareWorks);
|
|
|
+ }
|
|
|
+ NewExcelUtil<OutProjectStatisticsSoftwareWorks> excelUtil=new NewExcelUtil<>(OutProjectStatisticsSoftwareWorks.class);
|
|
|
+ res=excelUtil.exportExcel(tl,"项目汇总表(软著)",downloadPath);
|
|
|
+
|
|
|
+ }else if (ib.getStatus()==4){//软著
|
|
|
+ List<OutProjectStatisticsPatent> tl=new ArrayList<>();
|
|
|
+ for (OutProjectStatistics o : list) {
|
|
|
+ OutProjectStatisticsPatent patent = new OutProjectStatisticsPatent();
|
|
|
+ BeanUtils.copyProperties(o,patent);
|
|
|
+ patent.setQuantityAndcount(patent.getCommodityQuantity()+"/"+patent.getCertificatesCount());
|
|
|
+ tl.add(patent);
|
|
|
+ }
|
|
|
+ NewExcelUtil<OutProjectStatisticsPatent> excelUtil=new NewExcelUtil<>(OutProjectStatisticsPatent.class);
|
|
|
+ res=excelUtil.exportExcel(tl,"项目汇总表(专利)",downloadPath);
|
|
|
+ }
|
|
|
+ return res;
|
|
|
}
|
|
|
|
|
|
|