Commit 75351615 authored by 喻训浩's avatar 喻训浩

fix:导出及程序下发

parent ad37167b
......@@ -4,13 +4,19 @@ import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.scada.base.equipmgt.domain.EquipInfo;
import net.vtstar.user.search.controller.vo.SearchVo;
import net.vtstar.utils.domain.Return;
import net.vtstar.zhongtong.avi.equipment.domain.vo.EquipRequestVO;
import net.vtstar.zhongtong.avi.equipment.service.EquipmentService;
import net.vtstar.zhongtong.avi.stamping.domain.LaserCuttingMachine;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -34,4 +40,45 @@ public class EquipmentController {
List<Map<String, Object>> data = (List<Map<String, Object>>) realTimeData;
return Return.success(new PageInfo<>(data));
}
@ApiOperation(value = "根据设备类型和车间code获得设备列表")
@GetMapping("/equip/findByType")
private Return findEquipByShopAndType(@RequestParam String workshopCode,@RequestParam String equipType){
List<EquipInfo> equipInfos = new ArrayList<>();
EquipInfo equipInfo = new EquipInfo();
equipInfo.setEquipCode("mingshao");
equipInfo.setEquipName("李氏集团");
EquipInfo equipInfo2 = new EquipInfo();
equipInfo2.setEquipCode("mingshao2");
equipInfo2.setEquipName("李氏集团2");
equipInfos.add(equipInfo);
equipInfos.add(equipInfo2);
return Return.success(equipInfos);
}
@ApiOperation(value = "程序传输")
@PostMapping("/program/transfer")
private Return programTransfer(@RequestParam("equipCode") String equipCode,
@RequestParam("equipName") String equipName,
@RequestParam(value = "remark",required = false) String remark,
MultipartFile file){
return Return.success();
}
@ApiOperation(value = "报表导出")
@PostMapping("/data/export")
private Return dataExport(@RequestBody SearchVo pageFilter,HttpServletResponse response) throws UnsupportedEncodingException {
try {
equipmentService.orderExport(response);
} catch (Exception e) {
String message = URLEncoder.encode("报表导出失败", "utf-8").replaceAll("\\+", "%20");
response.setHeader("status","601");
response.setHeader("message", message);
log.error(e.getMessage(),e);
return Return.failed("内部错误");
}
return Return.success();
}
}
package net.vtstar.zhongtong.avi.equipment.domain.vo;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Data
public class EquipRequestVO {
private String workshopCode;
private String equipType;
}
package net.vtstar.zhongtong.avi.equipment.service;
import net.vtstar.zhongtong.avi.stamping.domain.LaserCuttingMachine;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -19,8 +31,61 @@ public class EquipmentService {
machine.setEquipCode("511111");
machine.setCuttingSpeed(new BigDecimal(555));
machine.setGasPressure(new BigDecimal(477));
machine.setCreateTime(new Date());
machine.setLaserPower(new BigDecimal(77777));
ma.add(machine);
return (T) ma;
}
public void orderExport(HttpServletResponse response) throws IOException {
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("0");
sheet.setColumnWidth(0, 4000);
sheet.setColumnWidth(1, 5000);
sheet.setColumnWidth(2, 3000);
sheet.setColumnWidth(3, 2000);
sheet.setColumnWidth(4, 6000);
sheet.setColumnWidth(5, 3000);
sheet.setColumnWidth(6, 4000);
sheet.setColumnWidth(7, 4000);
sheet.setColumnWidth(8, 4000);
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cellStyle.setBorderTop(BorderStyle.DASHED);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setTopBorderColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
cellStyle.setBottomBorderColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
cellStyle.setLeftBorderColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
cellStyle.setRightBorderColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
XSSFFont titleFont = wb.createFont();
titleFont.setFontHeight(24);
titleFont.setBold(true);
String[] title = {"设备名称", "设备编码", "设备状态"};
int rowNumber = 0;
XSSFRow row = sheet.createRow(rowNumber);
rowNumber++;
for (int i = 0; i < title.length; i++) {
row.createCell(i).setCellValue(title[i]);
}
response.setCharacterEncoding("utf-8");
String filename = URLEncoder.encode("测试报表", "utf-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename=" + filename + ".xlsx");
response.setHeader("filename", filename + ".xlsx");
try {
ServletOutputStream outputStream = response.getOutputStream();
wb.write(outputStream);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
throw new IOException("报表导出失败!");
}
}
}
......@@ -16,6 +16,7 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
......@@ -63,6 +64,13 @@ public class WebFiledListener implements ApplicationListener<ContextRefreshedEve
fieldType = FieldType.STRING;
}
showFiled.setDateType(fieldType.toString());
int width = annotation.width();
if (0 == width){
showFiled.setWidth(null);
} else {
showFiled.setWidth(new BigDecimal(width));
}
showFileds.add(showFiled);
}
showFieldCache.put(clazzAnnotation.code(), showFileds);
......
......@@ -6,6 +6,7 @@ import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.math.BigDecimal;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.LOCAL_VARIABLE})
......@@ -30,4 +31,9 @@ public @interface Show {
* 数据类型
*/
FieldType dataType() default FieldType.STRING;
/**
* 表头宽度
*/
int width() default 0;
}
......@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel("前端展示字段")
public class ShowField {
......@@ -19,4 +21,7 @@ public class ShowField {
@ApiModelProperty("数据类型")
private String dateType;
@ApiModelProperty("表头宽度")
private BigDecimal width;
}
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