|
@@ -1,15 +1,27 @@
|
|
|
package cn.com.ctop.toutiao.modules.material.controller;
|
|
|
|
|
|
import cn.com.ctop.common.module.utils.Check;
|
|
|
+import cn.com.ctop.common.module.utils.ExportExcelUtils;
|
|
|
+import cn.com.ctop.common.module.utils.HttpUtils;
|
|
|
import cn.com.ctop.toutiao.modules.material.service.FirstDeliveryValidService;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
+import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.OutputStream;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -85,4 +97,84 @@ public class FirstDeliveryValidController {
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 导出数据
|
|
|
+ */
|
|
|
+ @GetMapping("/excel")
|
|
|
+ public void getExcelReport(HttpServletResponse response, String date) {
|
|
|
+ if (Check.isNull(date)) {
|
|
|
+ log.error("缺失参数!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String[] split = date.split("-");
|
|
|
+ String year = split[0];
|
|
|
+ Integer month = Integer.valueOf(split[1]);
|
|
|
+ List<JSONObject> projectInfo = firstDeliveryValidService.getDataForProject(year, month.toString());
|
|
|
+ List<JSONObject> clipInfo = firstDeliveryValidService.getDataForClip(year, month.toString());
|
|
|
+ try {
|
|
|
+ List<List<Object>> projectExcelList = new ArrayList<>();
|
|
|
+ List<List<Object>> clipExcelList = new ArrayList<>();
|
|
|
+ if (!projectInfo.isEmpty()) {
|
|
|
+ projectInfo.forEach(data -> {
|
|
|
+ List<Object> temp = new ArrayList<>();
|
|
|
+ temp.add(data.getString("projectName"));
|
|
|
+ temp.add(data.getString("leaderName"));
|
|
|
+ temp.add(data.getString("projectLeader"));
|
|
|
+ temp.add(data.getString("rebateType"));
|
|
|
+ temp.add(data.getString("settlement1l"));
|
|
|
+ temp.add(data.getString("settlement2l"));
|
|
|
+ temp.add(data.getBigDecimal("materialCount"));
|
|
|
+ temp.add(data.getBigDecimal("validMaterials"));
|
|
|
+ if (data.getBigDecimal("validRatioValue").compareTo(data.getBigDecimal("materialValidRatioValue")) < 0) {
|
|
|
+ temp.add(data.getString("validRatio") + "-GREEN");
|
|
|
+ } else {
|
|
|
+ temp.add(data.getString("validRatio") + "-G");
|
|
|
+ }
|
|
|
+ temp.add(data.getString("materialValidRatio"));
|
|
|
+ projectExcelList.add(temp);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (!clipInfo.isEmpty()) {
|
|
|
+ clipInfo.forEach(data -> {
|
|
|
+ List<Object> temp = new ArrayList<>();
|
|
|
+ temp.add(data.getString("projectName"));
|
|
|
+ temp.add(data.getString("leaderName"));
|
|
|
+ temp.add(data.getString("projectLeader"));
|
|
|
+ temp.add(data.getString("clipName"));
|
|
|
+ temp.add(data.getString("shotName"));
|
|
|
+ temp.add(data.getString("planName"));
|
|
|
+ temp.add(data.getString("designLeader"));
|
|
|
+ temp.add(data.getString("rebateType"));
|
|
|
+ temp.add(data.getString("settlement1l"));
|
|
|
+ temp.add(data.getString("settlement2l"));
|
|
|
+ temp.add(data.getBigDecimal("materialCount"));
|
|
|
+ temp.add(data.getBigDecimal("validMaterials"));
|
|
|
+ if (data.getBigDecimal("validRatioValue").compareTo(data.getBigDecimal("materialValidRatioValue")) < 0) {
|
|
|
+ temp.add(data.getString("validRatio") + "-GREEN");
|
|
|
+ } else {
|
|
|
+ temp.add(data.getString("validRatio") + "-G");
|
|
|
+ }
|
|
|
+ temp.add(data.getString("materialValidRatio"));
|
|
|
+ clipExcelList.add(temp);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ OutputStream os = response.getOutputStream();
|
|
|
+ ExportExcelUtils eeu = new ExportExcelUtils();
|
|
|
+ XSSFWorkbook workbook = new XSSFWorkbook();
|
|
|
+ String[] titles = {"项目名称", "项目设计负责人", "项目运营负责人", "政策类型", "一级行业", "二级行业", "素材首投量",
|
|
|
+ "有效素材首投量", "有效率", "媒体考核有效率"};
|
|
|
+ String[] overtimeTitles = {"项目名称", "项目设计负责人", "项目运营负责人", "剪辑", "拍摄", "编导", "设计leader", "政策类型", "一级行业",
|
|
|
+ "二级行业", "素材首投量", "有效素材首投量", "有效率", "媒体考核有效率"};
|
|
|
+ eeu.exportExcelForFirstDelivery(workbook, 0, "分项目", titles, projectExcelList);
|
|
|
+ eeu.exportExcelForFirstDelivery(workbook, 1, "分设计", overtimeTitles, clipExcelList);
|
|
|
+ HttpUtils.setResponseHeader(response, "clockIn.xlsx");
|
|
|
+ workbook.write(os);
|
|
|
+ os.flush();
|
|
|
+ os.close();
|
|
|
+ } catch (IOException e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|