导出报表完善,页面增加序号。

master
yangwl 4 years ago
parent c8acd6d009
commit f6c260ae58

@ -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<String, List<Map<String,String>>> 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<String, List<Map<String,String>>> getMap() {
return map;
}
public void setMap(Map<String, List<Map<String,String>>> 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 +
'}';
}
}

@ -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<String,Object>();
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<String, Object>();
map.put("begin", begin);
map.put("end", end);
map.put("barcode", barcode);
List<ReportData> reportDataList = producttypeService.selectReport(map);
// List<DemoData> 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<String, String> 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<String, List<Map<String, String>>> map1 = demoData_r.getMap();
// if (map1 == null) map1 = new HashMap<>();
// //包不包含都要添加主要是看v的创建方式
//
// List<Map<String, String>> 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<String, List<Map<String,String>>> map1 = new HashMap<>();
// List<Map<String,String>> 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<String> paraName = new ArrayList<>();
List<String> barcodes = new ArrayList<>();
List<String> stations = new ArrayList<>();
@ -53,7 +111,6 @@ public class ReportDataController extends BaseController {
//去重
//条码List
List<String> barcodeList = barcodes.stream().distinct().collect(Collectors.toList());
//参数List
List<String> paraNameList = paraName.stream().distinct().collect(Collectors.toList());
//工位名集合
@ -63,21 +120,23 @@ public class ReportDataController extends BaseController {
List<Map<String,Object>> list = new ArrayList<>();
//定义结果集map
Map<String,Object> 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<String, Object>();
map.put("begin", begin);
map.put("end", end);
map.put("barcode", barcode);
AjaxResult ajaxResult=new AjaxResult();
List<ReportData> reportDataList = producttypeService.selectReport(map);
List<String> paraName = new ArrayList<>();
List<String> barcodes = new ArrayList<>();
List<String> 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<String> barcodeList = barcodes.stream().distinct().collect(Collectors.toList());
//参数List
List<String> paraNameList = paraName.stream().distinct().collect(Collectors.toList());
//工位名集合
List<String> stationList = stations.stream().distinct().collect(Collectors.toList());
//定义结果集合
List<Map<String,Object>> list = new ArrayList<>();
//定义结果集map
Map<String,Object> 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<String,Object> treeMap = new TreeMap<>(map1);
list.add(treeMap);
}
List<String> arrayList=new ArrayList();
if (list!=null) {
Set<String> k = list.get(0).keySet();
Iterator<String> 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<arrayList.size();s++){
row.createCell(s);
XSSFCell cell = row.createCell(s);
cell.setCellValue(arrayList.get(s));
sheet.setColumnWidth(s, 4000);
}
XSSFRow rows ;
XSSFCell cells;
for (int i=0;i<list.size();i++){
rows = sheet.createRow(i + 1);
for (int j = 0; j < arrayList.size(); j++) {
cells = rows.createCell(j);
String value = (String) list.get(i).get(arrayList.get(j));
cells.setCellValue(value);
}
}
try {
targetFile="条码信息"+ new SimpleDateFormat("yyyyMMdd").format(new Date()) + ".xlsx";
// File file = new File();
FileOutputStream fileOutputStream = new FileOutputStream(ExcelUtil.getAbsoluteFilew(targetFile));
wb.write(fileOutputStream);
wb.close();
fileOutputStream.close();
}catch (IOException e){
e.printStackTrace();
}
return ajaxResult.success(targetFile);
}
}

@ -1,23 +1,13 @@
package com.ruoyi.web.controller.nanjing;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.ExcelUtil;
import com.ruoyi.nanjing.domain.ParaAllShow;
import com.ruoyi.nanjing.domain.ProRpList;
import com.ruoyi.nanjing.domain.TBdProductinfo;
import com.ruoyi.nanjing.domain.TBdSubstation;
import com.ruoyi.nanjing.service.ITBdSubstationService;
import com.ruoyi.nanjing.service.ITSyTracestateService;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
@ -28,8 +18,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@ -1,315 +1,315 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="renderer" content="webkit">
<title>生产线数据采集系统</title>
<!-- 避免IE使用兼容模式 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link th:href="@{favicon.ico}" rel="shortcut icon"/>
<link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
<link th:href="@{/css/jquery.contextMenu.min.css}" rel="stylesheet"/>
<link th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
<link th:href="@{/css/animate.css}" rel="stylesheet"/>
<link th:href="@{/css/style.css}" rel="stylesheet"/>
<link th:href="@{/css/skins.css}" rel="stylesheet"/>
<link th:href="@{/ruoyi/css/ry-ui.css?v=4.3.1}" rel="stylesheet"/>
</head>
<body class="fixed-sidebar full-height-layout gray-bg" style="overflow: hidden">
<div id="wrapper">
<!--左侧导航开始-->
<nav class="navbar-default navbar-static-side" role="navigation">
<div class="nav-close">
<i class="fa fa-times-circle"></i>
</div>
<a th:href="@{/index}">
<li class="logo hidden-xs">
<span class="logo-lg">Refresh</span>
</li>
</a>
<div class="sidebar-collapse">
<ul class="nav" id="side-menu">
<li>
<div class="user-panel">
<a class="menuItem noactive" title="个人中心" th:href="@{/system/user/profile}">
<div class="hide" th:text="个人中心"></div>
<div class="pull-left image">
<img th:src="(${user.avatar} == '') ? @{/img/icn.png} : @{${user.avatar}}" th:onerror="this.src='img/icn.png'" class="img-circle" alt="User Image">
</div>
</a>
<div class="pull-left info">
<p>[[${user.loginName}]]</p>
<!-- <a href="#"><i class="fa fa-circle text-success"></i> 在线</a>-->
<a th:href="@{logout}" style="padding-left:5px;"><i class="fa fa-sign-out text-danger"></i> 注销</a>
</div>
</div>
</li>
<!-- <li>-->
<!-- <a class="menuItem" th:href="@{/system/main}"><i class="fa fa-home"></i> <span class="nav-label">首页</span> </a>-->
<!-- </li>-->
<li th:each="menu : ${menus}">
<a th:class="@{${menu.url != '' && menu.url != '#'} ? ${menu.target}}" th:href="@{${menu.url == ''} ? |#| : ${menu.url}}">
<i class="fa fa-bar-chart-o" th:class="${menu.icon}"></i>
<span class="nav-label" th:text="${menu.menuName}">一级菜单</span>
<span th:class="${menu.url == '' || menu.url == '#'} ? |fa arrow|"></span>
</a>
<ul class="nav nav-second-level collapse">
<li th:each="cmenu : ${menu.children}">
<a th:if="${#lists.isEmpty(cmenu.children)}" th:class="${cmenu.target == ''} ? |menuItem| : ${cmenu.target}" th:utext="${cmenu.menuName}" th:href="@{${cmenu.url}}">二级菜单</a>
<a th:if="${not #lists.isEmpty(cmenu.children)}" href="#">[[${cmenu.menuName}]]<span class="fa arrow"></span></a>
<ul th:if="${not #lists.isEmpty(cmenu.children)}" class="nav nav-third-level">
<li th:each="emenu : ${cmenu.children}">
<a th:if="${#lists.isEmpty(emenu.children)}" th:class="${emenu.target == ''} ? |menuItem| : ${emenu.target}" th:text="${emenu.menuName}" th:href="@{${emenu.url}}">三级菜单</a>
<a th:if="${not #lists.isEmpty(emenu.children)}" href="#">[[${emenu.menuName}]]<span class="fa arrow"></span></a>
<ul th:if="${not #lists.isEmpty(emenu.children)}" class="nav nav-four-level">
<li th:each="fmenu : ${emenu.children}"><a th:if="${#lists.isEmpty(fmenu.children)}" th:class="${fmenu.target == ''} ? |menuItem| : ${fmenu.target}" th:text="${fmenu.menuName}" th:href="@{${fmenu.url}}">四级菜单</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li th:if="${demoEnabled}">
<a href="#"><i class="fa fa-desktop"></i><span class="nav-label">实例演示</span><span class="fa arrow"></span></a>
<ul class="nav nav-second-level collapse">
<li> <a>表单<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/form/button}">按钮</a></li>
<li><a class="menuItem" th:href="@{/demo/form/grid}">栅格</a></li>
<li><a class="menuItem" th:href="@{/demo/form/select}">下拉框</a></li>
<li><a class="menuItem" th:href="@{/demo/form/timeline}">时间轴</a></li>
<li><a class="menuItem" th:href="@{/demo/form/basic}">基本表单</a></li>
<li><a class="menuItem" th:href="@{/demo/form/cards}">卡片列表</a></li>
<li><a class="menuItem" th:href="@{/demo/form/jasny}">功能扩展</a></li>
<li><a class="menuItem" th:href="@{/demo/form/sortable}">拖动排序</a></li>
<li><a class="menuItem" th:href="@{/demo/form/tabs_panels}">选项卡 & 面板</a></li>
<li><a class="menuItem" th:href="@{/demo/form/validate}">表单校验</a></li>
<li><a class="menuItem" th:href="@{/demo/form/wizard}">表单向导</a></li>
<li><a class="menuItem" th:href="@{/demo/form/upload}">文件上传</a></li>
<li><a class="menuItem" th:href="@{/demo/form/datetime}">日期和时间</a></li>
<li><a class="menuItem" th:href="@{/demo/form/summernote}">富文本编辑器</a></li>
<li><a class="menuItem" th:href="@{/demo/form/duallistbox}">左右互选组件</a></li>
<li><a class="menuItem" th:href="@{/demo/form/autocomplete}">搜索自动补全</a></li>
<li><a class="menuItem" th:href="@{/demo/form/cxselect}">多级联动下拉</a></li>
</ul>
</li>
<li> <a>表格<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/table/search}">查询条件</a></li>
<li><a class="menuItem" th:href="@{/demo/table/footer}">数据汇总</a></li>
<li><a class="menuItem" th:href="@{/demo/table/groupHeader}">组合表头</a></li>
<li><a class="menuItem" th:href="@{/demo/table/export}">表格导出</a></li>
<li><a class="menuItem" th:href="@{/demo/table/remember}">翻页记住选择</a></li>
<li><a class="menuItem" th:href="@{/demo/table/pageGo}">跳转至指定页</a></li>
<li><a class="menuItem" th:href="@{/demo/table/params}">自定义查询参数</a></li>
<li><a class="menuItem" th:href="@{/demo/table/multi}">初始多表格</a></li>
<li><a class="menuItem" th:href="@{/demo/table/button}">点击按钮加载表格</a></li>
<li><a class="menuItem" th:href="@{/demo/table/data}">直接加载表格数据</a></li>
<li><a class="menuItem" th:href="@{/demo/table/fixedColumns}">表格冻结列</a></li>
<li><a class="menuItem" th:href="@{/demo/table/event}">自定义触发事件</a></li>
<li><a class="menuItem" th:href="@{/demo/table/detail}">表格细节视图</a></li>
<li><a class="menuItem" th:href="@{/demo/table/child}">表格父子视图</a></li>
<li><a class="menuItem" th:href="@{/demo/table/image}">表格图片预览</a></li>
<li><a class="menuItem" th:href="@{/demo/table/curd}">动态增删改查</a></li>
<li><a class="menuItem" th:href="@{/demo/table/reorder}">表格拖拽操作</a></li>
<li><a class="menuItem" th:href="@{/demo/table/editable}">表格行内编辑</a></li>
<li><a class="menuItem" th:href="@{/demo/table/subdata}">主子表提交</a></li>
<li><a class="menuItem" th:href="@{/demo/table/refresh}">表格自动刷新</a></li>
<li><a class="menuItem" th:href="@{/demo/table/print}">表格打印配置</a></li>
<li><a class="menuItem" th:href="@{/demo/table/other}">表格其他操作</a></li>
</ul>
</li>
<li> <a>弹框<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/modal/dialog}">模态窗口</a></li>
<li><a class="menuItem" th:href="@{/demo/modal/layer}">弹层组件</a></li>
<li><a class="menuItem" th:href="@{/demo/modal/table}">弹层表格</a></li>
</ul>
</li>
<li> <a>操作<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/operate/table}">表格</a></li>
<li><a class="menuItem" th:href="@{/demo/operate/other}">其他</a></li>
</ul>
</li>
<li> <a>报表<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/report/echarts}">百度ECharts</a></li>
<li><a class="menuItem" th:href="@{/demo/report/peity}">peity</a></li>
<li><a class="menuItem" th:href="@{/demo/report/sparkline}">sparkline</a></li>
<li><a class="menuItem" th:href="@{/demo/report/metrics}">图表组合</a></li>
</ul>
</li>
<li> <a>图标<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/icon/fontawesome}">Font Awesome</a></li>
<li><a class="menuItem" th:href="@{/demo/icon/glyphicons}">Glyphicons</a></li>
</ul>
</li>
<li>
<a href="#"><i class="fa fa-sitemap"></i>四层菜单<span class="fa arrow"></span></a>
<ul class="nav nav-third-level collapse">
<li>
<a href="#" id="damian">三级菜单1<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li>
<a href="#">四级菜单1</a>
</li>
<li>
<a href="#">四级菜单2</a>
</li>
</ul>
</li>
<li><a href="#">三级菜单2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</nav>
<!--左侧导航结束-->
<!--右侧部分开始-->
<div id="page-wrapper" class="gray-bg dashbard-1">
<div class="row border-bottom">
<nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
<div class="navbar-header">
<a class="navbar-minimalize minimalize-styl-2" style="color:#FFF;" href="#" title="收起菜单">
<i class="fa fa-bars"></i>
</a>
</div>
<ul class="nav navbar-top-links navbar-right welcome-message">
<!-- <li><a title="视频教程" href="http://doc.ruoyi.vip/ruoyi/document/spjc.html" target="_blank"><i class="fa fa-video-camera"></i> 视频教程</a></li>-->
<!-- <li><a title="开发文档" href="http://doc.ruoyi.vip" target="_blank"><i class="fa fa-question-circle"></i> 开发文档</a></li>-->
<li><a title="全屏显示" href="javascript:void(0)" id="fullScreen"><i class="fa fa-arrows-alt"></i> 全屏显示</a></li>
<li class="dropdown user-menu">
<a href="javascript:void(0)" class="dropdown-toggle" data-hover="dropdown">
<img th:src="(${user.avatar} == '') ? @{/img/icn.png} : @{${user.avatar}}" th:onerror="this.src='img/icn.png'" class="user-image">
<span class="hidden-xs">[[${#strings.defaultString(user.userName, '-')}]]</span>
</a>
<ul class="dropdown-menu">
<li class="mt5">
<a th:href="@{/system/user/profile}" class="menuItem">
<i class="fa fa-user"></i> 个人中心</a>
</li>
<li>
<a onclick="resetPwd()">
<i class="fa fa-key"></i> 修改密码</a>
</li>
<li>
<a onclick="switchSkin()">
<i class="fa fa-dashboard"></i> 切换主题</a>
</li>
<li class="divider"></li>
<li>
<a th:href="@{logout}">
<i class="fa fa-sign-out"></i> 退出登录</a>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="row content-tabs">
<button class="roll-nav roll-left tabLeft">
<i class="fa fa-backward"></i>
</button>
<nav class="page-tabs menuTabs">
<div class="page-tabs-content">
<a href="javascript:;" class="active menuTab" th:data-id="@{/nanjing/SubStation}">工位管理</a>
</div>
</nav>
<button class="roll-nav roll-right tabRight">
<i class="fa fa-forward"></i>
</button>
<a href="javascript:void(0);" class="roll-nav roll-right tabReload"><i class="fa fa-refresh"></i> 刷新</a>
</div>
<a id="ax_close_max" class="ax_close_max" href="#" title="关闭全屏"> <i class="fa fa-times-circle-o"></i> </a>
<div class="row mainContent" id="content-main">
<iframe class="RuoYi_iframe" name="iframe0" width="100%" height="100%" th:data-id="@{/nanjing/SubStation}"
th:src="@{/nanjing/SubStation}" frameborder="0" seamless></iframe>
</div>
<div class="footer">
<div class="pull-right">© [[${copyrightYear}]] Copyright </div>
</div>
</div>
<!--右侧部分结束-->
</div>
<!-- 全局js -->
<script th:src="@{/js/jquery.min.js}"></script>
<script th:src="@{/js/bootstrap.min.js}"></script>
<script th:src="@{/js/plugins/metisMenu/jquery.metisMenu.js}"></script>
<script th:src="@{/js/plugins/slimscroll/jquery.slimscroll.min.js}"></script>
<script th:src="@{/js/jquery.contextMenu.min.js}"></script>
<script th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
<script th:src="@{/ruoyi/js/ry-ui.js?v=4.3.1}"></script>
<script th:src="@{/ruoyi/js/common.js?v=4.3.1}"></script>
<script th:src="@{/ruoyi/index.js}"></script>
<script th:src="@{/ajax/libs/fullscreen/jquery.fullscreen.js}"></script>
<script th:inline="javascript">
var ctx = [[@{/}]];
// 皮肤缓存
var skin = storage.get("skin");
// history表示去掉地址的#)否则地址以"#"形式展示
var mode = "history";
// 历史访问路径缓存
var historyPath = storage.get("historyPath");
// 是否页签与菜单联动
var isLinkage = true;
// 本地主题优先,未设置取系统配置
if($.common.isNotEmpty(skin)){
$("body").addClass(skin.split('|')[0]);
$("body").addClass(skin.split('|')[1]);
} else {
$("body").addClass([[${sideTheme}]]);
$("body").addClass([[${skinName}]]);
}
/* 用户管理-重置密码 */
function resetPwd() {
var url = ctx + 'system/user/profile/resetPwd';
$.modal.open("重置密码", url, '770', '380');
}
/* 切换主题 */
function switchSkin() {
layer.open({
type : 2,
shadeClose : true,
title : "切换主题",
area : ["530px", "386px"],
content : [ctx + "system/switchSkin", 'no']
})
}
/** 刷新时访问路径页签 */
function applyPath(url) {
$('a[href$="' + decodeURI(url) + '"]').click();
if (!$('a[href$="' + url + '"]').hasClass("noactive")) {
$('a[href$="' + url + '"]').parent("li").addClass("selected").parents("li").addClass("active").end().parents("ul").addClass("in");
}
}
$(function() {
if($.common.equals("history", mode) && window.performance.navigation.type == 1) {
var url = storage.get('publicPath');
if ($.common.isNotEmpty(url)) {
applyPath(url);
}
} else {
var hash = location.hash;
if ($.common.isNotEmpty(hash)) {
var url = hash.substring(1, hash.length);
applyPath(url);
}
}
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="renderer" content="webkit">
<title>生产线数据采集系统</title>
<!-- 避免IE使用兼容模式 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link th:href="@{favicon.ico}" rel="shortcut icon"/>
<link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
<link th:href="@{/css/jquery.contextMenu.min.css}" rel="stylesheet"/>
<link th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
<link th:href="@{/css/animate.css}" rel="stylesheet"/>
<link th:href="@{/css/style.css}" rel="stylesheet"/>
<link th:href="@{/css/skins.css}" rel="stylesheet"/>
<link th:href="@{/ruoyi/css/ry-ui.css?v=4.3.1}" rel="stylesheet"/>
</head>
<body class="fixed-sidebar full-height-layout gray-bg" style="overflow: hidden">
<div id="wrapper">
<!--左侧导航开始-->
<nav class="navbar-default navbar-static-side" role="navigation">
<div class="nav-close">
<i class="fa fa-times-circle"></i>
</div>
<!-- <a th:href="@{/index}">-->
<li class="logo hidden-xs">
<span class="logo-lg">生产线数据采集</span>
</li>
<!-- </a>-->
<div class="sidebar-collapse">
<ul class="nav" id="side-menu">
<li>
<div class="user-panel">
<a class="menuItem noactive" title="个人中心" th:href="@{/system/user/profile}">
<div class="hide" th:text="个人中心"></div>
<div class="pull-left image">
<img th:src="(${user.avatar} == '') ? @{/img/icn.png} : @{${user.avatar}}" th:onerror="this.src='img/icn.png'" class="img-circle" alt="User Image">
</div>
</a>
<div class="pull-left info">
<p>[[${user.loginName}]]</p>
<!-- <a href="#"><i class="fa fa-circle text-success"></i> 在线</a>-->
<a th:href="@{logout}" style="padding-left:5px;"><i class="fa fa-sign-out text-danger"></i> 注销</a>
</div>
</div>
</li>
<!-- <li>-->
<!-- <a class="menuItem" th:href="@{/system/main}"><i class="fa fa-home"></i> <span class="nav-label">首页</span> </a>-->
<!-- </li>-->
<li th:each="menu : ${menus}">
<a th:class="@{${menu.url != '' && menu.url != '#'} ? ${menu.target}}" th:href="@{${menu.url == ''} ? |#| : ${menu.url}}">
<i class="fa fa-bar-chart-o" th:class="${menu.icon}"></i>
<span class="nav-label" th:text="${menu.menuName}">一级菜单</span>
<span th:class="${menu.url == '' || menu.url == '#'} ? |fa arrow|"></span>
</a>
<ul class="nav nav-second-level collapse">
<li th:each="cmenu : ${menu.children}">
<a th:if="${#lists.isEmpty(cmenu.children)}" th:class="${cmenu.target == ''} ? |menuItem| : ${cmenu.target}" th:utext="${cmenu.menuName}" th:href="@{${cmenu.url}}">二级菜单</a>
<a th:if="${not #lists.isEmpty(cmenu.children)}" href="#">[[${cmenu.menuName}]]<span class="fa arrow"></span></a>
<ul th:if="${not #lists.isEmpty(cmenu.children)}" class="nav nav-third-level">
<li th:each="emenu : ${cmenu.children}">
<a th:if="${#lists.isEmpty(emenu.children)}" th:class="${emenu.target == ''} ? |menuItem| : ${emenu.target}" th:text="${emenu.menuName}" th:href="@{${emenu.url}}">三级菜单</a>
<a th:if="${not #lists.isEmpty(emenu.children)}" href="#">[[${emenu.menuName}]]<span class="fa arrow"></span></a>
<ul th:if="${not #lists.isEmpty(emenu.children)}" class="nav nav-four-level">
<li th:each="fmenu : ${emenu.children}"><a th:if="${#lists.isEmpty(fmenu.children)}" th:class="${fmenu.target == ''} ? |menuItem| : ${fmenu.target}" th:text="${fmenu.menuName}" th:href="@{${fmenu.url}}">四级菜单</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li th:if="${demoEnabled}">
<a href="#"><i class="fa fa-desktop"></i><span class="nav-label">实例演示</span><span class="fa arrow"></span></a>
<ul class="nav nav-second-level collapse">
<li> <a>表单<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/form/button}">按钮</a></li>
<li><a class="menuItem" th:href="@{/demo/form/grid}">栅格</a></li>
<li><a class="menuItem" th:href="@{/demo/form/select}">下拉框</a></li>
<li><a class="menuItem" th:href="@{/demo/form/timeline}">时间轴</a></li>
<li><a class="menuItem" th:href="@{/demo/form/basic}">基本表单</a></li>
<li><a class="menuItem" th:href="@{/demo/form/cards}">卡片列表</a></li>
<li><a class="menuItem" th:href="@{/demo/form/jasny}">功能扩展</a></li>
<li><a class="menuItem" th:href="@{/demo/form/sortable}">拖动排序</a></li>
<li><a class="menuItem" th:href="@{/demo/form/tabs_panels}">选项卡 & 面板</a></li>
<li><a class="menuItem" th:href="@{/demo/form/validate}">表单校验</a></li>
<li><a class="menuItem" th:href="@{/demo/form/wizard}">表单向导</a></li>
<li><a class="menuItem" th:href="@{/demo/form/upload}">文件上传</a></li>
<li><a class="menuItem" th:href="@{/demo/form/datetime}">日期和时间</a></li>
<li><a class="menuItem" th:href="@{/demo/form/summernote}">富文本编辑器</a></li>
<li><a class="menuItem" th:href="@{/demo/form/duallistbox}">左右互选组件</a></li>
<li><a class="menuItem" th:href="@{/demo/form/autocomplete}">搜索自动补全</a></li>
<li><a class="menuItem" th:href="@{/demo/form/cxselect}">多级联动下拉</a></li>
</ul>
</li>
<li> <a>表格<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/table/search}">查询条件</a></li>
<li><a class="menuItem" th:href="@{/demo/table/footer}">数据汇总</a></li>
<li><a class="menuItem" th:href="@{/demo/table/groupHeader}">组合表头</a></li>
<li><a class="menuItem" th:href="@{/demo/table/export}">表格导出</a></li>
<li><a class="menuItem" th:href="@{/demo/table/remember}">翻页记住选择</a></li>
<li><a class="menuItem" th:href="@{/demo/table/pageGo}">跳转至指定页</a></li>
<li><a class="menuItem" th:href="@{/demo/table/params}">自定义查询参数</a></li>
<li><a class="menuItem" th:href="@{/demo/table/multi}">初始多表格</a></li>
<li><a class="menuItem" th:href="@{/demo/table/button}">点击按钮加载表格</a></li>
<li><a class="menuItem" th:href="@{/demo/table/data}">直接加载表格数据</a></li>
<li><a class="menuItem" th:href="@{/demo/table/fixedColumns}">表格冻结列</a></li>
<li><a class="menuItem" th:href="@{/demo/table/event}">自定义触发事件</a></li>
<li><a class="menuItem" th:href="@{/demo/table/detail}">表格细节视图</a></li>
<li><a class="menuItem" th:href="@{/demo/table/child}">表格父子视图</a></li>
<li><a class="menuItem" th:href="@{/demo/table/image}">表格图片预览</a></li>
<li><a class="menuItem" th:href="@{/demo/table/curd}">动态增删改查</a></li>
<li><a class="menuItem" th:href="@{/demo/table/reorder}">表格拖拽操作</a></li>
<li><a class="menuItem" th:href="@{/demo/table/editable}">表格行内编辑</a></li>
<li><a class="menuItem" th:href="@{/demo/table/subdata}">主子表提交</a></li>
<li><a class="menuItem" th:href="@{/demo/table/refresh}">表格自动刷新</a></li>
<li><a class="menuItem" th:href="@{/demo/table/print}">表格打印配置</a></li>
<li><a class="menuItem" th:href="@{/demo/table/other}">表格其他操作</a></li>
</ul>
</li>
<li> <a>弹框<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/modal/dialog}">模态窗口</a></li>
<li><a class="menuItem" th:href="@{/demo/modal/layer}">弹层组件</a></li>
<li><a class="menuItem" th:href="@{/demo/modal/table}">弹层表格</a></li>
</ul>
</li>
<li> <a>操作<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/operate/table}">表格</a></li>
<li><a class="menuItem" th:href="@{/demo/operate/other}">其他</a></li>
</ul>
</li>
<li> <a>报表<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/report/echarts}">百度ECharts</a></li>
<li><a class="menuItem" th:href="@{/demo/report/peity}">peity</a></li>
<li><a class="menuItem" th:href="@{/demo/report/sparkline}">sparkline</a></li>
<li><a class="menuItem" th:href="@{/demo/report/metrics}">图表组合</a></li>
</ul>
</li>
<li> <a>图标<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li><a class="menuItem" th:href="@{/demo/icon/fontawesome}">Font Awesome</a></li>
<li><a class="menuItem" th:href="@{/demo/icon/glyphicons}">Glyphicons</a></li>
</ul>
</li>
<li>
<a href="#"><i class="fa fa-sitemap"></i>四层菜单<span class="fa arrow"></span></a>
<ul class="nav nav-third-level collapse">
<li>
<a href="#" id="damian">三级菜单1<span class="fa arrow"></span></a>
<ul class="nav nav-third-level">
<li>
<a href="#">四级菜单1</a>
</li>
<li>
<a href="#">四级菜单2</a>
</li>
</ul>
</li>
<li><a href="#">三级菜单2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</nav>
<!--左侧导航结束-->
<!--右侧部分开始-->
<div id="page-wrapper" class="gray-bg dashbard-1">
<div class="row border-bottom">
<nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
<div class="navbar-header">
<a class="navbar-minimalize minimalize-styl-2" style="color:#FFF;" href="#" title="收起菜单">
<i class="fa fa-bars"></i>
</a>
</div>
<ul class="nav navbar-top-links navbar-right welcome-message">
<!-- <li><a title="视频教程" href="http://doc.ruoyi.vip/ruoyi/document/spjc.html" target="_blank"><i class="fa fa-video-camera"></i> 视频教程</a></li>-->
<!-- <li><a title="开发文档" href="http://doc.ruoyi.vip" target="_blank"><i class="fa fa-question-circle"></i> 开发文档</a></li>-->
<li><a title="全屏显示" href="javascript:void(0)" id="fullScreen"><i class="fa fa-arrows-alt"></i> 全屏显示</a></li>
<li class="dropdown user-menu">
<a href="javascript:void(0)" class="dropdown-toggle" data-hover="dropdown">
<img th:src="(${user.avatar} == '') ? @{/img/icn.png} : @{${user.avatar}}" th:onerror="this.src='img/icn.png'" class="user-image">
<span class="hidden-xs">[[${#strings.defaultString(user.userName, '-')}]]</span>
</a>
<ul class="dropdown-menu">
<li class="mt5">
<a th:href="@{/system/user/profile}" class="menuItem">
<i class="fa fa-user"></i> 个人中心</a>
</li>
<li>
<a onclick="resetPwd()">
<i class="fa fa-key"></i> 修改密码</a>
</li>
<li>
<a onclick="switchSkin()">
<i class="fa fa-dashboard"></i> 切换主题</a>
</li>
<li class="divider"></li>
<li>
<a th:href="@{logout}">
<i class="fa fa-sign-out"></i> 退出登录</a>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="row content-tabs">
<button class="roll-nav roll-left tabLeft">
<i class="fa fa-backward"></i>
</button>
<nav class="page-tabs menuTabs">
<div class="page-tabs-content">
<a href="javascript:;" class="active menuTab" th:data-id="@{/nanjing/SubStation}">工位管理</a>
</div>
</nav>
<button class="roll-nav roll-right tabRight">
<i class="fa fa-forward"></i>
</button>
<a href="javascript:void(0);" class="roll-nav roll-right tabReload"><i class="fa fa-refresh"></i> 刷新</a>
</div>
<a id="ax_close_max" class="ax_close_max" href="#" title="关闭全屏"> <i class="fa fa-times-circle-o"></i> </a>
<div class="row mainContent" id="content-main">
<iframe class="RuoYi_iframe" name="iframe0" width="100%" height="100%" th:data-id="@{/nanjing/SubStation}"
th:src="@{/nanjing/SubStation}" frameborder="0" seamless></iframe>
</div>
<div class="footer">
<div class="pull-right">© [[${copyrightYear}]] Copyright </div>
</div>
</div>
<!--右侧部分结束-->
</div>
<!-- 全局js -->
<script th:src="@{/js/jquery.min.js}"></script>
<script th:src="@{/js/bootstrap.min.js}"></script>
<script th:src="@{/js/plugins/metisMenu/jquery.metisMenu.js}"></script>
<script th:src="@{/js/plugins/slimscroll/jquery.slimscroll.min.js}"></script>
<script th:src="@{/js/jquery.contextMenu.min.js}"></script>
<script th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
<script th:src="@{/ruoyi/js/ry-ui.js?v=4.3.1}"></script>
<script th:src="@{/ruoyi/js/common.js?v=4.3.1}"></script>
<script th:src="@{/ruoyi/index.js}"></script>
<script th:src="@{/ajax/libs/fullscreen/jquery.fullscreen.js}"></script>
<script th:inline="javascript">
var ctx = [[@{/}]];
// 皮肤缓存
var skin = storage.get("skin");
// history表示去掉地址的#)否则地址以"#"形式展示
var mode = "history";
// 历史访问路径缓存
var historyPath = storage.get("historyPath");
// 是否页签与菜单联动
var isLinkage = true;
// 本地主题优先,未设置取系统配置
if($.common.isNotEmpty(skin)){
$("body").addClass(skin.split('|')[0]);
$("body").addClass(skin.split('|')[1]);
} else {
$("body").addClass([[${sideTheme}]]);
$("body").addClass([[${skinName}]]);
}
/* 用户管理-重置密码 */
function resetPwd() {
var url = ctx + 'system/user/profile/resetPwd';
$.modal.open("重置密码", url, '770', '380');
}
/* 切换主题 */
function switchSkin() {
layer.open({
type : 2,
shadeClose : true,
title : "切换主题",
area : ["530px", "386px"],
content : [ctx + "system/switchSkin", 'no']
})
}
/** 刷新时访问路径页签 */
function applyPath(url) {
$('a[href$="' + decodeURI(url) + '"]').click();
if (!$('a[href$="' + url + '"]').hasClass("noactive")) {
$('a[href$="' + url + '"]').parent("li").addClass("selected").parents("li").addClass("active").end().parents("ul").addClass("in");
}
}
$(function() {
if($.common.equals("history", mode) && window.performance.navigation.type == 1) {
var url = storage.get('publicPath');
if ($.common.isNotEmpty(url)) {
applyPath(url);
}
} else {
var hash = location.hash;
if ($.common.isNotEmpty(hash)) {
var url = hash.substring(1, hash.length);
applyPath(url);
}
}
});
</script>
</body>
</html>

@ -49,6 +49,7 @@
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-table-export-js" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('nanjing:LineType:edit')}]];
var removeFlag = [[${@permission.hasPermi('nanjing:LineType:remove')}]];
@ -62,10 +63,21 @@
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "主支线管理",
search: false,
showExport: true,//工具栏上显示导出按钮
exportOptions: {
ignoreColumn: [-1, 5] //忽略最后一列
},
columns: [
// {
// checkbox: true
// },
{
title:'序号',
formatter: function (value, row, index) {
return index+1;
}
},
{
field: 'lineID',
title: '编号',

@ -33,6 +33,7 @@
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-table-export-js" />
<script th:inline="javascript">
var prefix = ctx + "nanjing/selectParaAll";
function searc() {
@ -86,12 +87,13 @@
pageSize: 50,
pageNumber: 1,
pageList: "[10, 15,25, 50, All]",
showToggle: true,
showRefresh: true,
showColumns: true,
showToggle: false,
showRefresh: false,
showColumns: false,
search: false,
pagination: true,
showExport: false,//工具栏上显示导出按钮
showExport: true,//工具栏上显示导出按钮
exportDataType: 'all',
columns: columnsArray1
});
@ -106,12 +108,13 @@
pageSize: 50,
pageNumber: 1,
pageList: "[10, 15,25, 50, All]",
showToggle: true,
showRefresh: true,
showColumns: true,
showToggle: false,
showRefresh: false,
showExport:true,
showColumns: false,
search: false,
pagination: true,
showExport: false,//工具栏上显示导出按钮
exportDataType: 'all',
columns: columnsArray2
});
},

@ -43,7 +43,7 @@
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;查询全部</a>
<!-- <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;查询全部</a>-->
<a class="btn btn-info btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="nanjing:ProRpList:export"><i class="fa fa-download"></i> 导出</a>
</li>
</ul>
@ -56,6 +56,7 @@
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-table-export-js" />
<script th:inline="javascript">
var prefix = ctx + "nanjing/selectProRpList";
$(function() {
@ -64,6 +65,10 @@
exportUrl: prefix + "/export",
modalName: "ProRpList",
pagination:false,
showExport: false,//工具栏上显示导出按钮
exportOptions: {
ignoreColumn: false //忽略第一列和最后一列
},
pageSize:100,
columns: [
{

@ -38,6 +38,7 @@
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-table-export-js" />
<script th:inline="javascript">
var prefix = ctx + "nanjing/SelectProductChangeInfo";
$(function() {
@ -45,10 +46,14 @@
url: prefix + "/list",
exportUrl: prefix + "/export",
modalName: "机种更换信息查询",
// showExport: true,//工具栏上显示导出按钮
// exportOptions: {
// ignoreColumn: false //忽略第一列和最后一列
// },
columns: [
{
field: 'id',
title: 'id'
title: '序号'
},
{
field: 'tBdProductinfo.productName',

@ -87,6 +87,13 @@
// {
// checkbox: true
// },
{
title: '序号',
formatter: function (value, row, index) {
return index+1;
}
},
{
field: 'id',
title: 'id',

@ -22,7 +22,8 @@
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="searchpara()"><i class="fa fa-search"></i>&nbsp;搜索</a>
</li>
<!-- <a class="btn btn-warning btn-rounded btn-sm" onclick="expro()"><i class="fa fa-download"></i>&nbsp;导出</a>-->
</li>
</ul>
</div>
</form>
@ -33,10 +34,13 @@
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-table-export-js" />
<script th:inline="javascript">
var stateDatas = [[${@dict.getType('is_not_yx')}]];
function searchpara(){
// console.log("点击查询按钮事件执行...");
// //方式1行转列
// //方式1行转列
var formData = new FormData();
formData.append("begin",$('#beginTime').val());
formData.append("end",$('#endTime').val());
@ -51,31 +55,62 @@
processData: false,
contentType: false,
success: function (json) {
var coulmnsData = [];
console.log(json)
// var coulmnsData = [];
var columnsArray = [];
columnsArray.push({field : "barcode",title : "产品条码",colspan: 1,rowspan: 2});
var columns = [];
if(json.length>0){
// console.log(Object.keys(json[0]).length);
for (var i = 0; i < (Object.keys(json[0])).length; i++) {//Object.keys(obj) 获取key名称
var property = (Object.keys(json[0]))[i];
if(property!='barcode'){
columnsArray.push({field : "序号",title : "序号",colspan: 1,rowspan: 1});
columnsArray.push({field : "产品条码",title : "产品条码",colspan: 1,rowspan: 1});
columnsArray.push({field : "状态",title : "状态",colspan: 1,rowspan: 1,
formatter: function (value, row, index) {
return $.table.selectDictLabel(stateDatas, value);
}
});
columnsArray.push({field : "时间",title : "开始时间",colspan: 1,rowspan: 1});
// columnsArray.push({field : "barCode",title : "产品条码",colspan: 1,rowspan: 1});
// var columns = [];
console.log(json.total)
if(json.total>0){
for (var i = 0; i < (Object.keys(json.rows[0])).length; i++) {//Object.keys(obj) 获取key名称
var property = (Object.keys(json.rows[0]))[i];
if(property!='产品条码'&&property!='时间'&&property!='序号'&&property!='状态'){
columnsArray.push({
"title": property,
"field": property,
switchable: true,
align:"center",
}
columns.push({
"title": property,
"field": property,
})
"title": property,
"field": property,
switchable: true,
align:"center",
}
);
}
}
// for (var i = 0;i<json.rows.length;i++){
// // console.log(json.rows[i].map)
// console.log(Object.keys(json.rows[i].map))
//
// // columnsArray.push(
// // [{
// //
// // }]
// // )
// }
// console.log(Object.keys(json[0]).length);
// for (var i = 0; i < (Object.keys(json[0])).length; i++) {//Object.keys(obj) 获取key名称
// var property = (Object.keys(json[0]))[i];
// if(property!='barcode'){
// columnsArray.push({
// "title": property,
// "field": property,
// switchable: true,
// align:"center",
// }
// );
// }
//
// }
}
coulmnsData.push(columnsArray);
coulmnsData.push(columns);
// coulmnsData.push(columnsArray);
// coulmnsData.push(columns);
// console.log(columnsArray);
$('#bootstrap-table').bootstrapTable('destroy').bootstrapTable({
id: "bootstrap-table",
@ -89,11 +124,15 @@
pageNumber: 1,
pageList: "[10, 15,25, 50, 100, All]",
// showToggle: true,
showRefresh: true,
showColumns: true,
// showRefresh: true,
// showColumns: true,
search: false,
pagination: true,
showExport: false,//工具栏上显示导出按钮
showExport: true,//工具栏上显示导出按钮
exportOptions: {
ignoreColumn: false //忽略第一列和最后一列
},
exportDataType: 'all',
fixedColumns: true,
fixedNumber: 4,
fixedLeftNumber: 4,
@ -106,41 +145,66 @@
}
});
// 方式2 不进行行转列
// var url = ctx + "nanjing/reportData/report";
// $('#bootstrap-table').bootstrapTable('destroy');
// $('#bootstrap-table').bootstrapTable({
// method:"post",
// url: url,
// pagination: true,
// search: true,
// contentType : "application/x-www-form-urlencoded",
// queryParams: {
// begin:$('#beginTime').val(),
// end:$('#endTime').val(),
// barcode:$('#barcode').val()
// },
// modalName: "条码信息查询",
// columns: [
// {
// field: 'id',
// title: '序号'
// },
// {
// field: 'barcode',
// title: '系统条码'
// },
// {
// field: 'parameaning',
// title: '参数名'
// },
// {
// field:'value',
// title:'参数值'
// },
// ],
// })
// var url = ctx + "nanjing/reportData/report";
// $('#bootstrap-table').bootstrapTable('destroy');
// $('#bootstrap-table').bootstrapTable({
// method:"post",
// url: url,
// pagination: true,
// search: true,
// contentType : "application/x-www-form-urlencoded",
// queryParams: {
// begin:$('#beginTime').val(),
// end:$('#endTime').val(),
// barcode:$('#barcode').val()
// },
// modalName: "条码信息查询",
// columns: [
// {
// field: 'id',
// title: '序号'
// },
// {
// field: 'barcode',
// title: '系统条码'
// },
// {
// field: 'parameaning',
// title: '参数名'
// },
// {
// field:'value',
// title:'参数值'
// },
// ],
// })
}
function expro() {
var formData = new FormData();
formData.append("begin",$('#beginTime').val());
formData.append("end",$('#endTime').val());
formData.append("barcode",$('#barcode').val());
$.modal.confirm("确定导出所有" + "信息" + "吗?", function() {
$.modal.loading("正在导出数据,请稍后...");
$.ajax({
type: "post",
url: ctx + "nanjing/reportData/export",
data: formData,
contentType: "application/json;charset=utf-8",
dataType: "json",
json: 'callback',
processData: false,
contentType: false,
success: function (result){
if (result.code == web_status.SUCCESS) {
window.location.href = ctx + "common/download?fileName=" + encodeURI(result.msg) + "&delete=" + true;
}
$.modal.closeLoading();
}
})
})
}
</script>
</body>
</html>

@ -41,6 +41,7 @@
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-table-export-js" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('nanjing:WorkTrayHistoryInfo:edit')}]];
var removeFlag = [[${@permission.hasPermi('nanjing:WorkTrayHistoryInfo:remove')}]];
@ -146,7 +147,10 @@
showColumns: true,
search: false,
pagination: true,
showExport: false,//工具栏上显示导出按钮
showExport: true,//工具栏上显示导出按钮
exportOptions: {
ignoreColumn: false //忽略第一列和最后一列
},
columns: columnsArray1
});

@ -26,6 +26,10 @@
托盘RFID码
<input type="text" name="rfidNO" id="rfidno"/>
</li>
<li>
<label> 部件码:</label>
<input type="text" class="text-input" id="productBarcode" name="productBarcode"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;查询全部</a>

@ -1,100 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.3.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-common</artifactId>
<description>
common通用工具
</description>
<dependencies>
<!-- Spring框架基本的核心工具 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<!-- SpringWeb模块 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<!--Shiro核心框架 -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- JSON工具类 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!-- io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- 文件上传工具类 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
<!-- yml解析器 -->
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</dependency>
<!-- servlet包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
</dependencies>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.3.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-common</artifactId>
<description>
common通用工具
</description>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.6</version>
</dependency>
<!-- Spring框架基本的核心工具 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<!-- SpringWeb模块 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<!--Shiro核心框架 -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- JSON工具类 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!-- io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- 文件上传工具类 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
<!-- yml解析器 -->
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</dependency>
<!-- servlet包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
</dependencies>
</project>

@ -521,6 +521,17 @@ public class ExcelUtil<T>
}
}
public static String getAbsoluteFilew(String filename)
{
String downloadPath = Global.getDownloadPath() + filename;
File desc = new File(downloadPath);
if (!desc.getParentFile().exists())
{
desc.getParentFile().mkdirs();
}
return downloadPath;
}
/**
*
*/

@ -7,13 +7,23 @@ import java.util.Date;
public class ReportData extends BaseEntity {
private static final long serialVersionUID = 1L;
private String barcode;
private String parameaning;
private String value;
private long id;
private Date beginTime;
private Date endTime;
private String beginTime;
private String endTime;
private String stationName;
private String state;
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getStationName() {
return stationName;
@ -55,19 +65,19 @@ public class ReportData extends BaseEntity {
this.id = id;
}
public Date getBeginTime() {
public String getBeginTime() {
return beginTime;
}
public void setBeginTime(Date beginTime) {
public void setBeginTime(String beginTime) {
this.beginTime = beginTime;
}
public Date getEndTime() {
public String getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
public void setEndTime(String endTime) {
this.endTime = endTime;
}

@ -78,7 +78,7 @@ public class TRpWorktrayhistoryinfo extends BaseEntity
}
/** 质量品级 */
@Excel(name = "状态")
@Excel(name = "状态", dictType="proState")
private String state;
@Excel(name = "记录时间",width = 30, dateFormat = "yyyy-MM-dd")
private Date insertTime;

@ -47,6 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join T_BD_SubStation t3 on t1.StationID=t3.StationID
<where>
<if test="rfidNO != '' and rfidNO != null "> t1.RFIDNO = ${rfidNO}</if>
<if test="productBarcode != '' and productBarcode != null "> t2.ProductBarcode = ${productBarcode}</if>
<if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
AND t1.InsertTime >= '${beginTime}'
</if>

Loading…
Cancel
Save