Commit 0c95606f authored by 温志超's avatar 温志超

日产能报表导出

parent e191dd30
......@@ -75,6 +75,17 @@ public class DailyProductionReportController extends BaseController {
return AjaxResult.success(data);
}
/**
* 日产能对比统计:统计方式车间导出
*/
@PreAuthorize("@ss.hasPermi('pro:materialReturn:export')")
@Log(title = "日产能对比统计:统计方式车间导出", businessType = BusinessType.EXPORT)
@PostMapping("/getListByWorkshop/export")
public void getListByWorkshopExport(HttpServletResponse response, DailyProductionReportRequest dailyProductionReportRequest) {
List data = dailyProductionReportService.getListByWorkshop(dailyProductionReportRequest);
dailyProductionReportService.export(response,data,"日产能对比统计-统计方式车间导出","车间名称","车间编码","车间", dailyProductionReportRequest);
}
@ApiOperation("日产能对比统计:统计方式工作中心")
@PreAuthorize("@ss.hasPermi('mes:pro:dailyProductionReport:get')")
......@@ -84,6 +95,21 @@ public class DailyProductionReportController extends BaseController {
List data = dailyProductionReportService.getListByWorkstation(dailyProductionReportRequest);
return AjaxResult.success(data);
}
/**
* 日产能对比统计:统计方式工作中心导出
*/
@PreAuthorize("@ss.hasPermi('pro:materialReturn:export')")
@Log(title = "日产能对比统计:统计方式工作中心导出", businessType = BusinessType.EXPORT)
@PostMapping("/getListByWorkstation/export")
public void getListByWorkstationExport(HttpServletResponse response, DailyProductionReportRequest dailyProductionReportRequest) {
List data = dailyProductionReportService.getListByWorkstation(dailyProductionReportRequest);
dailyProductionReportService.export(response,data,"日产能对比统计-统计方式工作中心导出","工作中心名称","工作中心编码","工作中心", dailyProductionReportRequest);
}
@ApiOperation("日产能对比统计:统计方式工作单元")
@PreAuthorize("@ss.hasPermi('mes:pro:dailyProductionReport:get')")
@Log(title = "日产能对比统计:统计方式工作单元", businessType = BusinessType.QUERY)
......@@ -93,6 +119,21 @@ public class DailyProductionReportController extends BaseController {
return AjaxResult.success(data);
}
/**
* 日产能对比统计:统计方式工作中心导出
*/
@PreAuthorize("@ss.hasPermi('pro:materialReturn:export')")
@Log(title = "日产能对比统计:统计方式工作单元导出", businessType = BusinessType.EXPORT)
@PostMapping("/getListByWorkunit/export")
public void getListByWorkunitExport(HttpServletResponse response, DailyProductionReportRequest dailyProductionReportRequest) {
List data = dailyProductionReportService.getListByWorkunit(dailyProductionReportRequest);
dailyProductionReportService.export(response,data,"日产能对比统计-统计方式工作单元导出","工作单元名称","工作单元编码","工作单元", dailyProductionReportRequest);
}
@ApiOperation("日产能对比统计:统计方式报工人员")
@PreAuthorize("@ss.hasPermi('mes:pro:dailyProductionReport:get')")
@Log(title = "日产能对比统计:统计方式报工人员", businessType = BusinessType.QUERY)
......@@ -102,4 +143,15 @@ public class DailyProductionReportController extends BaseController {
return AjaxResult.success(data);
}
/**
* 日产能对比统计:统计方式工作中心导出
*/
@PreAuthorize("@ss.hasPermi('pro:materialReturn:export')")
@Log(title = "日产能对比统计:统计方式工作单元导出", businessType = BusinessType.EXPORT)
@PostMapping("/getListByUser/export")
public void getListByUserExport(HttpServletResponse response, DailyProductionReportRequest dailyProductionReportRequest) {
List data = dailyProductionReportService.getListByUser(dailyProductionReportRequest);
dailyProductionReportService.export(response,data,"日产能对比统计-统计方式工作单元导出","报工人员名称","报工人员编码","报工人员", dailyProductionReportRequest);
}
}
......@@ -2,6 +2,7 @@ package com.ximai.mes.report.service.impl;
import com.ximai.common.utils.MessageUtils;
import com.ximai.common.utils.data.ExceptionUtil;
import com.ximai.common.utils.data.StringUtils;
import com.ximai.mes.report.mapper.DailyProductionReportMapper;
import com.ximai.mes.report.request.DailyProductionReportRequest;
import com.ximai.mes.report.service.DailyProductionReportService;
......@@ -175,6 +176,15 @@ public class DailyProductionReportServiceImp implements DailyProductionReportSer
//用于统计最后一行的日期综合统计性数据
Map<String,List<Map>> dateDataMap = processDataList.stream().collect(Collectors.groupingBy(map -> (String)map.get("报工日期")));
HashMap dateHashMap = new HashMap();
dateHashMap.put(key + "统计合格数量", new Double(0));
dateHashMap.put(key + "统计不合格数量",new Double(0));
dateHashMap.put(key + "统计报工数量",new Double(0));
for (Map data : returnList){
dateHashMap.put(key + "统计合格数量", (Double)dateHashMap.get(key + "统计合格数量") + (Double)data.get(key + "统计合格数量"));
dateHashMap.put(key + "统计不合格数量", (Double)dateHashMap.get(key + "统计不合格数量") + (Double)data.get(key + "统计不合格数量"));
dateHashMap.put(key + "统计报工数量", (Double)dateHashMap.get(key + "统计报工数量") + (Double)data.get(key + "统计报工数量"));
}
dateHashMap.put(key + "统计合格率",(new BigDecimal((Double) dateHashMap.get(key + "统计合格数量")).multiply(new BigDecimal(100))).divide(new BigDecimal((Double)dateHashMap.get(key + "统计报工数量")),2, RoundingMode.HALF_UP));
returnList.add(dateHashMap);
for (String date : dateList){
HashMap dateStatisticsHashMap = new HashMap();
......@@ -192,8 +202,6 @@ public class DailyProductionReportServiceImp implements DailyProductionReportSer
if(((Double)dateStatisticsHashMap.get("日期统计报工数量")) > 0){
dateStatisticsHashMap.put("日期统计合格率",
new BigDecimal((Double)dateStatisticsHashMap.get("日期统计合格数量")).multiply(new BigDecimal(100)).divide(new BigDecimal((Double)dateStatisticsHashMap.get("日期统计报工数量")),2, RoundingMode.HALF_UP));
}else{
dateStatisticsHashMap.put("日期统计合格率",BigDecimal.ZERO);
......@@ -264,56 +272,17 @@ public class DailyProductionReportServiceImp implements DailyProductionReportSer
r0i.setCellStyle(headerStyle);
//设置日期下的字段
XSSFCell r1i = row1.createCell(i);
r1i.setCellValue("报工数量");
r1i.setCellValue("统计报工数量");
r1i.setCellStyle(headerStyle);
XSSFCell r1i1 = row1.createCell(i+1);
r1i1.setCellValue("合格数量");
r1i1.setCellValue("统计合格数量");
r1i1.setCellStyle(headerStyle);
XSSFCell r1i2 = row1.createCell(i+2);
r1i2.setCellValue("不合格数量");
r1i2.setCellValue("统计不合格数量");
r1i2.setCellStyle(headerStyle);
XSSFCell r1i3 = row1.createCell(i+3);
r1i3.setCellValue("合格率");
r1i3.setCellValue("统计合格率");
r1i3.setCellStyle(headerStyle);
for (int t = 0 ; t< returnList.size() ; t++){
Map rowData = returnList.get(t);
XSSFRow rt = sheet.createRow(2+t);
if(rowData != null){
Map dataMap = (Map) rowData.get(date);
if(dataMap.keySet().size() > 0){
Double feedback = (Double) dataMap.get("报工数量");
Double unqualify = (Double) dataMap.get("不合格数量");
Double qualify = (Double) dataMap.get("合格数量");
BigDecimal fee = (BigDecimal) dataMap.get("合格率");
if(feedback == null){
feedback = (Double) dataMap.get("日期统计报工数量");
unqualify = (Double) dataMap.get("日期统计不合格数量");
qualify = (Double) dataMap.get("日期统计合格数量");
fee = (BigDecimal) dataMap.get("日期统计合格率");
}
XSSFCell ri = rt.createCell(i);
ri.setCellValue("a");
//ri.setCellStyle(contentStyle);
XSSFCell ri1 = rt.createCell(i+1);
ri1.setCellValue(qualify.doubleValue());
//ri1.setCellStyle(contentStyle);
XSSFCell ri2 = rt.createCell(i+2);
ri2.setCellValue(unqualify.doubleValue());
//ri2.setCellStyle(contentStyle);
XSSFCell ri3 = rt.createCell(i+3);
ri3.setCellValue(fee.doubleValue());
//ri3.setCellStyle(contentStyle);
}
XSSFCell ri0 = rt.createCell(0);
ri0.setCellValue((String)rowData.get(code));
XSSFCell ri1 = rt.createCell(1);
ri1.setCellValue((String)rowData.get(name));
XSSFCell ri = rt.createCell(i);
ri.setCellValue("a");
}
}
i = i + 4;
//末尾累加统计
if(dataList.size() == x){
......@@ -334,11 +303,101 @@ public class DailyProductionReportServiceImp implements DailyProductionReportSer
r1i2Over.setCellValue("不合格数量");
r1i2Over.setCellStyle(headerStyle);
XSSFCell r1i3Over = row1.createCell(i+3);
r1i3Over.setCellValue("合格率");
r1i3Over.setCellValue("合格率%");
r1i3Over.setCellStyle(headerStyle);
}
}
for (int t = 0 ; t< returnList.size() ; t++){
Map rowData = returnList.get(t);
//处理头部两列
XSSFRow rt = sheet.createRow(2+t);
XSSFCell ri0 = rt.createCell(0);
XSSFCell ri1 = rt.createCell(1);
ri0.setCellStyle(contentStyle);
ri1.setCellStyle(contentStyle);
String rowDataCode = (String)rowData.get(code);
if(StringUtils.isEmpty(rowDataCode)){
ri0.setCellValue("合计");
}else{
ri0.setCellValue((String)rowData.get(code));
ri1.setCellValue((String)rowData.get(name));
}
//处理尾部四列
XSSFCell rtSize2 = rt.createCell((dataList.size() * 4)+2);
rtSize2.setCellValue((Double) rowData.get(key+"统计报工数量"));
rtSize2.setCellStyle(contentStyle);
XSSFCell rtSize3 = rt.createCell((dataList.size() * 4)+3);
rtSize3.setCellValue((Double) rowData.get(key+"统计合格数量"));
rtSize3.setCellStyle(contentStyle);
XSSFCell rtSize4 = rt.createCell((dataList.size() * 4)+4);
rtSize4.setCellValue((Double) rowData.get(key+"统计不合格数量"));
rtSize4.setCellStyle(contentStyle);
XSSFCell rtSize5 = rt.createCell((dataList.size() * 4)+5);
rtSize5.setCellValue(((BigDecimal) rowData.get(key+"统计合格率")).doubleValue());
rtSize5.setCellStyle(contentStyle);
//处理中间
for (int size = 0 ;size < dataList.size() ; size ++){
String date = dataList.get(size);
int updateSize = updateSize = size * 4;
XSSFCell rti2 = rt.createCell(updateSize+2);
rti2.setCellStyle(contentStyle);
XSSFCell rti3 = rt.createCell(updateSize+3);
rti3.setCellStyle(contentStyle);
XSSFCell rti4 = rt.createCell(updateSize+4);
rti4.setCellStyle(contentStyle);
XSSFCell rti5 = rt.createCell(updateSize+5);
rti5.setCellStyle(contentStyle);
Map dateData = (Map) rowData.get(date);
if(dateData.isEmpty()){
rti2.setCellValue(0);
rti3.setCellValue(0);
rti4.setCellValue(0);
rti5.setCellValue(0);
}else{
//
Double feedback = (Double) dateData.get("报工数量");
Double unqualify = (Double) dateData.get("不合格数量");
Double qualify = (Double) dateData.get("合格数量");
BigDecimal fee = (BigDecimal) dateData.get("合格率");
if(feedback == null){
feedback = (Double) dateData.get("日期统计报工数量");
unqualify = (Double) dateData.get("日期统计不合格数量");
qualify = (Double) dateData.get("日期统计合格数量");
fee = (BigDecimal) dateData.get("日期统计合格率");
}
rti2.setCellValue(feedback);
rti3.setCellValue(qualify);
rti4.setCellValue(unqualify);
rti5.setCellValue(fee.doubleValue());
}
}
// XSSFCell rti = rt.createCell(i);
// rti.setCellValue(i);
// rti.setCellStyle(contentStyle);
// XSSFCell rti1 = rt.createCell(i+1);
// rti1.setCellValue(i+1);
// rti1.setCellStyle(contentStyle);
// XSSFCell rti2 = rt.createCell(i+2);
// rti2.setCellValue(i+2);
// rti2.setCellStyle(contentStyle);
// XSSFCell rti3 = rt.createCell(i+3);
// rti3.setCellValue(i+3);
// rti3.setCellStyle(contentStyle);
}
}
buildExcelDocument(filename+".xlsx", wb, response);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment