diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/DemoData.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/DemoData.java new file mode 100644 index 00000000..cefc6fa8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/DemoData.java @@ -0,0 +1,66 @@ +package com.ruoyi.web.controller.common; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +public class DemoData { + private String BarCode; + + private Map>> map; + + private String date; + + public void setDate(String date) { + this.date = date; + } + + public String getBarCode() { + return BarCode; + } + + public void setBarCode(String barCode) { + BarCode = barCode; + } + + public Map>> getMap() { + return map; + } + + public void setMap(Map>> map) { + this.map = map; + } + + public DemoData(String barCode) { + BarCode = barCode; + } + + public String getDate() { + return date; + } + + public DemoData() { + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DemoData demoData = (DemoData) o; + return Objects.equals(BarCode, demoData.BarCode); + } + + @Override + public int hashCode() { + return Objects.hash(BarCode); + } + + @Override + public String toString() { + return "DemoData{" + + BarCode + '\'' + + ", map=" + map + + '}'; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/nanjing/ReportDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/nanjing/ReportDataController.java index 192df853..bf3d2358 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/nanjing/ReportDataController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/nanjing/ReportDataController.java @@ -1,11 +1,23 @@ package com.ruoyi.web.controller.nanjing; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.mysql.cj.xdevapi.JsonArray; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.nanjing.domain.Demo; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; + +import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.nanjing.domain.ReportData; import com.ruoyi.nanjing.domain.TBdProductinfo; import com.ruoyi.nanjing.service.ITBdProducttypeService; +import com.ruoyi.web.controller.common.DemoData; +import org.apache.catalina.User; +import org.apache.poi.ss.formula.functions.T; +import org.apache.poi.xssf.usermodel.*; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -15,6 +27,12 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -25,24 +43,64 @@ public class ReportDataController extends BaseController { private String prefix = "nanjing/Report"; @Autowired private ITBdProducttypeService producttypeService; + @RequiresPermissions("nanjing:report:view") @GetMapping() - public String reportData(ModelMap map) - { + public String reportData(ModelMap map) { return prefix + "/Report"; // return "redirect:"+"http://127.0.0.1:18080/RDP-SERVER/rdppage/main/d354a3beb6dae7938155b3f9a962e479"; } + @PostMapping("/report") @ResponseBody - public String reportData(String begin,String end,String barcode) - { - Map map = new HashMap(); - map.put("begin",begin); - map.put("end",end); - map.put("barcode",barcode); + public TableDataInfo reportData(String begin, String end, String barcode) { + Map map = new HashMap(); + map.put("begin", begin); + map.put("end", end); + map.put("barcode", barcode); List reportDataList = producttypeService.selectReport(map); +// List list = new ArrayList<>(); +// for (ReportData data : reportDataList) { +// DemoData demoData = new DemoData(data.getBarcode()); +// String datetime= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(data.getBeginTime()); +// demoData.setDate(datetime); +// Map v_map = new HashMap<>(); +// v_map.put(data.getParameaning(), data.getValue());//最后一层添加值 +// if (list.contains(demoData)) { +// //包含的情况,继续判断Map的key是否存在 +// //真实值 +// DemoData demoData_r = list.get(list.indexOf(demoData)); +// //huoqu +// Map>> map1 = demoData_r.getMap(); +// if (map1 == null) map1 = new HashMap<>(); +// //包不包含都要添加,主要是看v的创建方式 +// +// List> strings; +// if (map1.containsKey(data.getStationName())) { +// //包含压装工位的情况,就用v的集合添加 +// strings = map1.get(data.getStationName()); +// +// } else { +// strings = new ArrayList<>(); +// +// } +// strings.add(v_map); +// map1.put(data.getStationName(), strings); +// +// } else { +// Map>> map1 = new HashMap<>(); +// List> list1 = new ArrayList<>(); +// list1.add(v_map); +// map1.put(data.getStationName(), list1); +// demoData.setMap(map1); +// list.add(demoData); +// +// } +// } +// JSONObject jsonObject=new JSONObject(); +// System.out.println(jsonObject.toJSONString(list)); List paraName = new ArrayList<>(); List barcodes = new ArrayList<>(); List stations = new ArrayList<>(); @@ -53,7 +111,6 @@ public class ReportDataController extends BaseController { //去重 //条码List List barcodeList = barcodes.stream().distinct().collect(Collectors.toList()); - //参数List List paraNameList = paraName.stream().distinct().collect(Collectors.toList()); //工位名集合 @@ -63,21 +120,23 @@ public class ReportDataController extends BaseController { List> list = new ArrayList<>(); //定义结果集map Map map1 = new HashMap<>(); - + int number=0; for(String item:barcodeList){ - map1.put("barcode",item); + number=number+1; + map1.put("产品条码",item); + map1.put("序号",number); for (String station:stationList) { for(String param:paraNameList){ for (ReportData rpd:reportDataList) { -// if (rpd.getBarcode().equals(item)&&rpd.getStationName().equals(station)){ -// map1.put(station,rpd.getStationName()); -// } + map1.put("时间",rpd.getBeginTime()); + map1.put("状态",rpd.getState()); if (rpd.getBarcode().equals(item)&&rpd.getStationName().equals(station)&&rpd.getParameaning().equals(param)){ if(rpd.getValue()==null){ rpd.setValue("-"); } - map1.put(station,param); - map1.put(param,rpd.getValue()); + String paramName = rpd.getStationName()+"-"+rpd.getParameaning(); +// map1.put(station,param); + map1.put(paramName,rpd.getValue()); break; } } @@ -102,6 +161,120 @@ public class ReportDataController extends BaseController { String info = JSONArray.toJSONString(list); // System.out.println(info); System.out.println("条码信息查询Json格式:"+info); - return info; + return getDataTable(list); + } + + + @PostMapping("/export") + @ResponseBody + public AjaxResult export(String begin, String end, String barcode){ + Map map = new HashMap(); + map.put("begin", begin); + map.put("end", end); + map.put("barcode", barcode); + AjaxResult ajaxResult=new AjaxResult(); + List reportDataList = producttypeService.selectReport(map); + List paraName = new ArrayList<>(); + List barcodes = new ArrayList<>(); + List stations = new ArrayList<>(); + //取出参数名 + reportDataList.forEach(x->barcodes.add(x.getBarcode())); + reportDataList.forEach(x->paraName.add(x.getParameaning())); + reportDataList.forEach(x->stations.add(x.getStationName())); + //去重 + //条码List + List barcodeList = barcodes.stream().distinct().collect(Collectors.toList()); + //参数List + List paraNameList = paraName.stream().distinct().collect(Collectors.toList()); + //工位名集合 + List stationList = stations.stream().distinct().collect(Collectors.toList()); + + //定义结果集合 + List> list = new ArrayList<>(); + //定义结果集map + Map map1 = new HashMap<>(); + + int number=0; + for(String item:barcodeList){ + number=number+1; + map1.put("序号",String.valueOf(number)); + map1.put("产品条码",item); + for (String station:stationList) { + for(String param:paraNameList){ + for (ReportData rpd:reportDataList) { + map1.put("时间",rpd.getBeginTime()); + if (rpd.getBarcode().equals(item)&&rpd.getStationName().equals(station)&&rpd.getParameaning().equals(param)){ + if(rpd.getValue()==null){ + rpd.setValue("-"); + } + String paramName = rpd.getStationName()+"-"+rpd.getParameaning(); +// map1.put(station,param); + map1.put(paramName,rpd.getValue()); + break; + } + } + } + } + //排序的作用 + TreeMap treeMap = new TreeMap<>(map1); + list.add(treeMap); + + } + List arrayList=new ArrayList(); + if (list!=null) { + Set k = list.get(0).keySet(); + Iterator it = k.iterator(); + while (it.hasNext()) { + String key = it.next(); + + //有了键,就可以通过map集合的get方法获取对应的值 +// if (key=="barcode"){ +// key="产品条码"; +// }if (key=="beginTime"){ +// key="时间"; +// } + arrayList.add(key); + + } + } +// ExcelUtil.createWorkBook(list,list1); + XSSFWorkbook wb = new XSSFWorkbook(); + XSSFSheet sheet = wb.createSheet("First sheet"); + sheet.setDefaultRowHeight((short) (2 * 256)); + XSSFFont font = wb.createFont(); + font.setFontName("宋体"); + font.setFontHeightInPoints((short) 16); + XSSFRow row = sheet.createRow(0); + String targetFile=null; + for (int s=0;s - - - - - - 生产线数据采集系统 - - - - - - - - - - - - -
- - - - - - -
- -
- - - - 刷新 -
- - - -
- -
- -
- -
- - - - - - - - - - - - - - - + + + + + + + 生产线数据采集系统 + + + + + + + + + + + + +
+ + + + + + +
+ +
+ + + + 刷新 +
+ + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + diff --git a/ruoyi-admin/src/main/resources/templates/nanjing/LineType/LineType.html b/ruoyi-admin/src/main/resources/templates/nanjing/LineType/LineType.html index 848d30d3..41301fa3 100644 --- a/ruoyi-admin/src/main/resources/templates/nanjing/LineType/LineType.html +++ b/ruoyi-admin/src/main/resources/templates/nanjing/LineType/LineType.html @@ -49,6 +49,7 @@ + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/nanjing/StationParaInfo/StationParaInfo.html b/ruoyi-admin/src/main/resources/templates/nanjing/StationParaInfo/StationParaInfo.html index 27eeafcc..5b1165fb 100644 --- a/ruoyi-admin/src/main/resources/templates/nanjing/StationParaInfo/StationParaInfo.html +++ b/ruoyi-admin/src/main/resources/templates/nanjing/StationParaInfo/StationParaInfo.html @@ -41,6 +41,7 @@ +