2
1
Yikoo vor 5 Jahren
Ursprung
Commit
11d71fa450

+ 5 - 0
pom.xml

@@ -489,6 +489,11 @@
             <version>1.9.6</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.github.crab2died</groupId>
+            <artifactId>Excel4J</artifactId>
+            <version>2.1.3</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 1 - 0
src/main/java/com/common/workflow/config/SecurityConfiguration.java

@@ -100,6 +100,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
             .antMatchers("/api/acti/**").permitAll()
             .antMatchers("/api/apose/**").permitAll()
             .antMatchers("/api/word/**").permitAll()
+            .antMatchers("/api/excel/**").permitAll()
             .antMatchers("/api/register").permitAll()
             .antMatchers("/api/activate").permitAll()
             .antMatchers("/api/authenticate").permitAll()

+ 90 - 0
src/main/java/com/common/workflow/web/rest/ExcelResource.java

@@ -0,0 +1,90 @@
+package com.common.workflow.web.rest;
+import com.common.workflow.service.util.FileUtils;
+import com.common.workflow.web.rest.vm.ExcelTemplateVM;
+import com.common.workflow.web.rest.vm.OilContractSumScoreVo;
+import com.common.workflow.web.rest.vm.OilContractSumScoreVo2;
+import com.common.workflow.web.rest.vm.WordTemplateVM;
+import com.github.crab2died.ExcelUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.io.File;
+import java.io.OutputStream;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * Created by txz on 2020-10-15.
+ */
+@RestController
+@RequestMapping("/api/excel")
+public class ExcelResource {
+    private final Logger log = LoggerFactory.getLogger(ExcelResource.class);
+    public ExcelResource() { }
+    @PostMapping("/fill-excel")
+    public void fillExcelTemplate(@Valid @RequestBody ExcelTemplateVM wordTemplateVM, HttpServletResponse response) throws Exception {
+        response.reset();
+        response.setContentType("multipart/form-data;charset=utf-8");
+        response.setHeader("content-disposition", "attachment;filename=" + wordTemplateVM.getFileName());
+        response.setHeader("Pragma","No-cache");
+        response.setHeader ( "Cache-Control", "no-store");
+        response.setHeader("Access-Control-Allow-Origin", "*");
+        response.setHeader("Access-Control-Allow-Headers", "*");
+        OutputStream outputStream = response.getOutputStream();
+        String fullFileName = FileUtils.getExcelTemplatePath() + "/" + wordTemplateVM.getFileName();
+
+        File file = new File(fullFileName);
+        if (file.exists()) {
+            file.delete(); //清除历史文件
+        }
+        fullFileName = FileUtils.downLoadFromUrl(wordTemplateVM.getTemplateUrl(), wordTemplateVM.getFileName(), FileUtils.getExcelTemplatePath());
+
+        if(wordTemplateVM.getContractClass().equals("03")){
+            List<OilContractSumScoreVo> reportList = new ArrayList<>();
+            ArrayList<LinkedHashMap<String,Object>> list = (ArrayList<LinkedHashMap<String,Object>>) wordTemplateVM.getDatas().get("data");
+            for(LinkedHashMap<String,Object> entry : list){
+
+                reportList.add(new OilContractSumScoreVo(entry.get("SupplierName").toString(),
+                    entry.get("SumScore").toString(),entry.get("SumScore1").toString(),entry.get("SumScore2").toString(),
+                    entry.get("SumScore3").toString(), entry.get("SumScore4").toString(),
+                    entry.get("Conclusion").toString().equals("1") ? "是" : "",
+                    entry.get("Conclusion").toString().equals("2") ? "是" : "",
+                    entry.get("Conclusion").toString().equals("3") ? "是" : ""));
+            }
+            Map<String, String> data = new HashMap<>();
+            data.put("title", "大港油田公司服务商考核评价表");
+
+            Date d = new Date();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
+
+            data.put("info", sdf.format(d));
+            ExcelUtils.getInstance().exportObjects2Excel(fullFileName, 0, reportList, data, OilContractSumScoreVo.class, false, outputStream);
+
+        }else{
+            List<OilContractSumScoreVo2> reportList = new ArrayList<>();
+            ArrayList<LinkedHashMap<String,Object>> list = (ArrayList<LinkedHashMap<String,Object>>) wordTemplateVM.getDatas().get("data");
+            for(LinkedHashMap<String,Object> entry : list){
+                reportList.add(new OilContractSumScoreVo2(entry.get("SupplierName").toString(),
+                    entry.get("SumScore").toString(),entry.get("SumScore1").toString(),entry.get("SumScore2").toString(),
+                    entry.get("SumScore3").toString(), entry.get("SumScore4").toString(), entry.get("SumScore5").toString(),
+                    entry.get("Conclusion").toString().equals("1") ? "是" : "",
+                    entry.get("Conclusion").toString().equals("2") ? "是" : "",
+                    entry.get("Conclusion").toString().equals("3") ? "是" : ""));
+            }
+            Map<String, String> data = new HashMap<>();
+            data.put("title", "大港油田公司物资供应商考核评价表(全部、一级、二级)");
+            Date d = new Date();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
+            data.put("info", sdf.format(d));
+            ExcelUtils.getInstance().exportObjects2Excel(fullFileName, 0, reportList, data, OilContractSumScoreVo2.class, false, outputStream);
+
+        }
+        outputStream.flush();
+        outputStream.close();
+    }
+}

+ 88 - 0
src/main/java/com/common/workflow/web/rest/vm/ExcelTemplateVM.java

@@ -0,0 +1,88 @@
+package com.common.workflow.web.rest.vm;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+public class ExcelTemplateVM {
+
+        private Map<String, Object> datas = new HashMap<>();
+        private ArrayList<String> contentList = new ArrayList<String>();
+        private String templateUrl;
+        private String fileName;
+        private String watermark;
+        private String recordName;
+        private String detailFileName;
+        private String detailTemplateUrl;
+        private String contractClass;
+
+    public String getContractClass() {
+        return contractClass;
+    }
+
+    public void setContractClass(String contractClass) {
+        this.contractClass = contractClass;
+    }
+
+    public Map<String, Object> getDatas() {
+            return datas;
+        }
+
+        public void setDatas(Map<String, Object> datas) {
+            this.datas = datas;
+        }
+
+        public String getTemplateUrl() {
+            return templateUrl;
+        }
+
+        public void setTemplateUrl(String templateUrl) {
+            this.templateUrl = templateUrl;
+        }
+
+        public String getFileName() {
+            return fileName;
+        }
+
+        public void setFileName(String fileName) {
+            this.fileName = fileName;
+        }
+
+        public String getWatermark() {
+            return watermark;
+        }
+
+        public void setWatermark(String watermark) {
+            this.watermark = watermark;
+        }
+
+        public ArrayList<String> getContentList() {
+            return contentList;
+        }
+
+        public void setContentList(ArrayList<String> content) {
+            this.contentList = content;
+        }
+
+        public String getRecordName() {
+            return recordName;
+        }
+
+        public void setRecordName(String recordName) {
+            this.recordName = recordName;
+        }
+
+        public String getDetailFileName() {
+            return detailFileName;
+        }
+
+        public void setDetailFileName(String detailFileName) {
+            this.detailFileName = detailFileName;
+        }
+
+        public String getDetailTemplateUrl() {
+            return detailTemplateUrl;
+        }
+
+        public void setDetailTemplateUrl(String detailTemplateUrl) {
+            this.detailTemplateUrl = detailTemplateUrl;
+        }
+    }

+ 118 - 0
src/main/java/com/common/workflow/web/rest/vm/OilContractSumScoreVo.java

@@ -0,0 +1,118 @@
+package com.common.workflow.web.rest.vm;
+import com.github.crab2died.annotation.ExcelField;
+import liquibase.change.DatabaseChange;
+public class OilContractSumScoreVo {
+    // 服务商名称
+    @ExcelField(title = "服务商名称", order = 1)
+    private String supplierName;
+    // 评价得分
+    @ExcelField(title = "评价得分", order = 2)
+    private String sumScore;
+    // 项目管理
+    @ExcelField(title = "项目管理", order = 3)
+    private String sumScore1;
+    // HSE管理
+    @ExcelField(title = "HSE管理", order = 4)
+    private String sumScore2;
+    // 合同履行
+    @ExcelField(title = "合同履行", order = 5)
+    private String sumScore3;
+    // 企业诚信
+    @ExcelField(title = "企业诚信", order = 6)
+    private String sumScore4;
+    // 优秀
+    @ExcelField(title = "优秀", order = 7)
+    private String conclusion1;
+    // 合格
+    @ExcelField(title = "合格", order = 8)
+    private String conclusion2;
+    // 不合格
+    @ExcelField(title = "不合格", order = 9)
+    private String conclusion3;
+
+    public String getSupplierName() {
+        return supplierName;
+    }
+
+    public void setSupplierName(String supplierName) {
+        this.supplierName = supplierName;
+    }
+
+    public String getSumScore() {
+        return sumScore;
+    }
+
+    public void setSumScore(String sumScore) {
+        this.sumScore = sumScore;
+    }
+
+    public String getSumScore1() {
+        return sumScore1;
+    }
+
+    public void setSumScore1(String sumScore1) {
+        this.sumScore1 = sumScore1;
+    }
+
+    public String getSumScore2() {
+        return sumScore2;
+    }
+
+    public void setSumScore2(String sumScore2) {
+        this.sumScore2 = sumScore2;
+    }
+
+    public String getSumScore3() {
+        return sumScore3;
+    }
+
+    public void setSumScore3(String sumScore3) {
+        this.sumScore3 = sumScore3;
+    }
+
+    public String getSumScore4() {
+        return sumScore4;
+    }
+
+    public void setSumScore4(String sumScore4) {
+        this.sumScore4 = sumScore4;
+    }
+
+    public String getConclusion1() {
+        return conclusion1;
+    }
+
+    public void setConclusion1(String conclusion1) {
+        this.conclusion1 = conclusion1;
+    }
+
+    public String getConclusion2() {
+        return conclusion2;
+    }
+
+    public void setConclusion2(String conclusion2) {
+        this.conclusion2 = conclusion2;
+    }
+
+    public String getConclusion3() {
+        return conclusion3;
+    }
+
+    public void setConclusion3(String conclusion3) {
+        this.conclusion3 = conclusion3;
+    }
+
+    public OilContractSumScoreVo(String supplierName, String sumScore,
+                                 String sumScore1, String sumScore2, String sumScore3, String sumScore4,
+                                 String conclusion1, String conclusion2, String conclusion3){
+        this.supplierName = supplierName;
+        this.sumScore = sumScore;
+        this.sumScore1 = sumScore1;
+        this.sumScore2 = sumScore2;
+        this.sumScore3 = sumScore3;
+        this.sumScore4 = sumScore4;
+        this.conclusion1 = conclusion1;
+        this.conclusion2 = conclusion2;
+        this.conclusion3 = conclusion3;
+    }
+}

+ 129 - 0
src/main/java/com/common/workflow/web/rest/vm/OilContractSumScoreVo2.java

@@ -0,0 +1,129 @@
+package com.common.workflow.web.rest.vm;
+import com.github.crab2died.annotation.ExcelField;
+public class OilContractSumScoreVo2 {
+    // 服务商名称
+    @ExcelField(title = "服务商名称", order = 1)
+    private String supplierName;
+    // 评价得分
+    @ExcelField(title = "评价得分", order = 2)
+    private String sumScore;
+    // 产品质量
+    @ExcelField(title = "产品质量", order = 3)
+    private String sumScore1;
+    // 合同履约
+    @ExcelField(title = "合同履约", order = 4)
+    private String sumScore2;
+    // 售后服务
+    @ExcelField(title = "售后服务", order = 5)
+    private String sumScore3;
+    // 诚信经营
+    @ExcelField(title = "诚信经营", order = 6)
+    private String sumScore4;
+    // 协同响应
+    @ExcelField(title = "协同响应", order = 7)
+    private String sumScore5;
+    // 优秀
+    @ExcelField(title = "优秀", order = 8)
+    private String conclusion1;
+    // 合格
+    @ExcelField(title = "合格", order = 9)
+    private String conclusion2;
+    // 不合格
+    @ExcelField(title = "不合格", order = 10)
+    private String conclusion3;
+
+    public String getSupplierName() {
+        return supplierName;
+    }
+
+    public void setSupplierName(String supplierName) {
+        this.supplierName = supplierName;
+    }
+
+    public String getSumScore() {
+        return sumScore;
+    }
+
+    public void setSumScore(String sumScore) {
+        this.sumScore = sumScore;
+    }
+
+    public String getSumScore1() {
+        return sumScore1;
+    }
+
+    public void setSumScore1(String sumScore1) {
+        this.sumScore1 = sumScore1;
+    }
+
+    public String getSumScore2() {
+        return sumScore2;
+    }
+
+    public void setSumScore2(String sumScore2) {
+        this.sumScore2 = sumScore2;
+    }
+
+    public String getSumScore3() {
+        return sumScore3;
+    }
+
+    public void setSumScore3(String sumScore3) {
+        this.sumScore3 = sumScore3;
+    }
+
+    public String getSumScore4() {
+        return sumScore4;
+    }
+
+    public void setSumScore4(String sumScore4) {
+        this.sumScore4 = sumScore4;
+    }
+
+    public String getConclusion1() {
+        return conclusion1;
+    }
+
+    public void setConclusion1(String conclusion1) {
+        this.conclusion1 = conclusion1;
+    }
+
+    public String getConclusion2() {
+        return conclusion2;
+    }
+
+    public void setConclusion2(String conclusion2) {
+        this.conclusion2 = conclusion2;
+    }
+
+    public String getConclusion3() {
+        return conclusion3;
+    }
+
+    public void setConclusion3(String conclusion3) {
+        this.conclusion3 = conclusion3;
+    }
+
+    public String getSumScore5() {
+        return sumScore5;
+    }
+
+    public void setSumScore5(String sumScore5) {
+        this.sumScore5 = sumScore5;
+    }
+
+    public OilContractSumScoreVo2(String supplierName, String sumScore,
+                                 String sumScore1, String sumScore2, String sumScore3, String sumScore4,String sumScore5,
+                                 String conclusion1, String conclusion2, String conclusion3){
+        this.supplierName = supplierName;
+        this.sumScore = sumScore;
+        this.sumScore1 = sumScore1;
+        this.sumScore2 = sumScore2;
+        this.sumScore3 = sumScore3;
+        this.sumScore4 = sumScore4;
+        this.sumScore5 = sumScore5;
+        this.conclusion1 = conclusion1;
+        this.conclusion2 = conclusion2;
+        this.conclusion3 = conclusion3;
+    }
+}