package com.example.client.service;
|
|
import com.example.client.dto.ColumnDto;
|
import com.example.client.model.TableButton;
|
import com.example.client.utils.CommonTable;
|
import com.example.client.utils.ComplexTable;
|
import com.example.client.utils.Compute;
|
import com.example.server.progressTrack.Dto.ReportRecordDto;
|
import com.example.server.progressTrack.Dto.StatistReportsDto;
|
import com.example.server.progressTrack.model.DjJdgzNetworkLevel1;
|
import com.example.server.progressTrack.model.DjJdgzNetworkLevel1List;
|
import com.example.server.progressTrack.model.DjJdgzShip;
|
import com.example.server.progressTrack.model.DjJdgzTrackRecord;
|
import com.example.server.progressTrack.service.DjJdgzNetworkLevel1Service;
|
import com.example.server.progressTrack.service.DjJdgzShipService;
|
import com.example.server.progressTrack.service.DjJdgzTrackRecordService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.swing.*;
|
import javax.swing.event.TableModelEvent;
|
import java.awt.*;
|
import java.awt.event.*;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
|
@Service
|
public class StatisReportsService {
|
@Autowired
|
private DjJdgzTrackRecordService djJdgzTrackRecordService;
|
|
|
public void createTable(JFrame jFrame, Long level1NetworkId) {
|
JFrame frame1 = new JFrame("统计报表");
|
frame1.setSize(1200, 700);
|
frame1.setResizable(false);
|
frame1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
|
frame1.setLocationRelativeTo(null);
|
frame1.setVisible(true);
|
frame1.addWindowListener(new WindowAdapter() {
|
//添加第二个界面的关闭事件:
|
public void windowClosing(WindowEvent e) {
|
//添加事件:
|
jFrame.setEnabled(true);//将主界面再设置为可操作的
|
}
|
});
|
|
List<StatistReportsDto> list = djJdgzTrackRecordService.getReport(level1NetworkId);
|
|
//columnDto.add(new ColumnDto("ID", "id", -1, null,false));
|
/* columnDto.add(new ColumnDto("班组专业", "TeamGroupName", 280, null, false, null,null));
|
columnDto.add(new ColumnDto("项目总数", "AllNum", 150, null, false, null,null));
|
columnDto.add(new ColumnDto("进行中", "JxzNum", 150, null, false, null,null));
|
columnDto.add(new ColumnDto("临期", "LqNum", 150, null, false, null,null));
|
columnDto.add(new ColumnDto("逾期", "YqNum", 150, null, false, null,null));
|
columnDto.add(new ColumnDto("正常完成", "ZcwcNum", 150, null, false, null,null));
|
columnDto.add(new ColumnDto("超期完成", "CqwcNum", 150, null, false, null,null));
|
|
|
table = CommonTable.createCommonTable(list, columnDto);
|
|
|
table.setRowHeight(25);
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
JScrollPane scrollTable = new JScrollPane(table);*/
|
//frame1.add(scrollTable);
|
|
|
Object[][] headerRows = new Object[2][7];
|
headerRows[0] = new Object[]{"班组专业", "项目总数", "未完成", ComplexTable.mergeCellX, ComplexTable.mergeCellX, "已完成", ComplexTable.mergeCellX};
|
//此处2-5是不会显示出来的,因为1-4向下合并了一行 + 向右合并了一列 , 而2-5被这个矩形范围包括了
|
headerRows[1] = new Object[]{ComplexTable.mergeCellY, ComplexTable.mergeCellY, "进行中", "临期", "逾期", "正常完成", "超期完成"};
|
|
String[][] body = new String[list.size()][7];
|
|
for (int i = 0; i < list.size(); i++) {
|
StatistReportsDto data = list.get(i);
|
body[i][0] = data.getTeamGroupName();
|
body[i][1] = String.valueOf(data.getAllNum());
|
body[i][2] = String.valueOf(data.getJxzNum());
|
body[i][3] = String.valueOf(data.getLqNum());
|
body[i][4] = String.valueOf(data.getYqNum());
|
body[i][5] = String.valueOf(data.getZcwcNum());
|
body[i][6] = String.valueOf(data.getCqwcNum());
|
}
|
ComplexTable complexTable = new ComplexTable(headerRows, body, 171);
|
JScrollPane scrollTable = new JScrollPane(complexTable);
|
|
complexTable.addMouseListener(new MouseAdapter() {
|
@Override
|
public void mouseClicked(MouseEvent e) {
|
|
int row = complexTable.rowAtPoint(e.getPoint());
|
int column = complexTable.columnAtPoint(e.getPoint());
|
|
// 检查是否点击了有效单元格
|
if (row >= 0 && column >= 1) {
|
Object cellValue = complexTable.getValueAt(row, column);
|
Integer value = Integer.parseInt(cellValue.toString());
|
if (value > 0) {
|
Long teamgroupId = list.get(row).getTeamgroupId();
|
reportRecord(column,level1NetworkId,teamgroupId);
|
}
|
}
|
}
|
});
|
frame1.add(scrollTable);
|
frame1.setVisible(true);
|
}
|
|
private void reportRecord(int column, Long level1NetworkId,Long teamgroupId) {
|
JFrame frame1 = new JFrame("记录");
|
frame1.setSize(500, 400);
|
frame1.setResizable(false);
|
frame1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
|
frame1.setLocationRelativeTo(null);
|
frame1.setVisible(true);
|
|
List<ReportRecordDto> list = djJdgzTrackRecordService.getReportRecord(level1NetworkId,column,teamgroupId);
|
|
List<ColumnDto> columnDto = new ArrayList<>();
|
//columnDto.add(new ColumnDto("ID", "id", -1, null,false));
|
columnDto.add(new ColumnDto("序号", "", (500 - 10) / 3, "autoCreate", false, null, null));
|
columnDto.add(new ColumnDto("设备名称", "name", (500 - 10) / 3, null, false, null, null));
|
columnDto.add(new ColumnDto("节点名称", "processName", (500 - 10) / 3, null, false, null, null));
|
|
JTable table = CommonTable.createCommonTable(list, columnDto);
|
table.setRowHeight(25);
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
JScrollPane scrollPane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
|
scrollPane.setViewportView(table);
|
scrollPane.getViewport().setBackground(Color.WHITE);
|
scrollPane.setPreferredSize(new Dimension(500 - 20, 400));
|
|
frame1.add(scrollPane);
|
}
|
|
}
|