package com.example.client.service;
|
|
import com.example.client.dto.ColumnDto;
|
import com.example.client.dto.JComboBoxItem;
|
import com.example.client.model.TableButton;
|
import com.example.client.utils.*;
|
import com.example.server.cabin.service.CabinService;
|
import com.example.server.progressTrack.Dto.TableNodeDto;
|
import com.example.server.progressTrack.model.DjJdgzNetworkLevel1;
|
import com.example.server.progressTrack.model.DjJdgzNetworkLevel3;
|
import com.example.server.progressTrack.model.DjJdgzShip;
|
import com.example.server.progressTrack.service.*;
|
import com.example.server.teamGroup.service.SysTeamGroupClassService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.swing.*;
|
import javax.swing.event.TableModelEvent;
|
import javax.swing.table.DefaultTableCellRenderer;
|
import javax.swing.table.DefaultTableModel;
|
import java.awt.*;
|
import java.awt.event.*;
|
import java.util.List;
|
import java.util.*;
|
|
|
@Service
|
public class Level3View2Service {
|
@Autowired
|
private DjJdgzNetworkLevel3Service level3Service;
|
@Autowired
|
private DjJdgzShipService djJdgzShipService;
|
@Autowired
|
private SysTeamGroupClassService sysTeamGroupClassService;
|
@Autowired
|
private CabinService cabinService;
|
|
private JTable table;
|
private List<TableNodeDto> list;
|
private Map<String, Long> shipMap = new HashMap<>();
|
private List<ColumnDto> columnDto;
|
|
|
public JPanel createTable(Integer width, Integer height,JFrame frame) {
|
JPanel panel = new JPanel(new BorderLayout());
|
|
JPanel topJpanel = new JPanel();
|
GridBagLayout layout = new GridBagLayout();
|
topJpanel.setLayout(layout);
|
topJpanel.setPreferredSize(new Dimension(width, 100));
|
topJpanel.setBackground(Color.WHITE);
|
|
JPanel centerJpanel = new JPanel();
|
centerJpanel.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeight(100,frame)));
|
centerJpanel.setBackground(Color.WHITE);
|
panel.add(topJpanel, BorderLayout.NORTH);
|
panel.add(centerJpanel, BorderLayout.CENTER);
|
|
List<DjJdgzShip> shipList = djJdgzShipService.getList();
|
JComboBoxItem[] teamList = sysTeamGroupClassService.getTeamList(null);
|
JComboBoxItem[] cabinList = cabinService.getList();
|
JComboBoxItem[] deptList = sysTeamGroupClassService.getDeptList();
|
String[] typeList = new String[]{
|
"改装", "加装", "换装", "改进性修理", ""
|
};
|
|
JLabel JLabel0 = new JLabel("工程");
|
JComboBox comboBox = new JComboBox();
|
comboBox.setPreferredSize(new Dimension(185, 28));
|
|
JLabel JLabel1 = new JLabel("部门");
|
JComboBox<JComboBoxItem> comboBox1 = new JComboBox<>(deptList);
|
comboBox1.setPreferredSize(new Dimension(185, 28));
|
|
JComboBoxItem[] teamList1 = sysTeamGroupClassService.getTeamList(deptList[0].getId());
|
|
JLabel JLabel2 = new JLabel("专业");
|
JComboBox<JComboBoxItem> comboBox2 = new JComboBox<>(teamList1);
|
comboBox2.setPreferredSize(new Dimension(185, 28));
|
|
JLabel JLabel3 = new JLabel("舱室");
|
JComboBox<JComboBoxItem> comboBox3 = new JComboBox<>(cabinList);
|
comboBox3.setPreferredSize(new Dimension(185, 28));
|
|
JLabel JLabel4 = new JLabel("类别");
|
JComboBox<String> comboBox4 = new JComboBox<>(typeList);
|
comboBox4.setPreferredSize(new Dimension(185, 28));
|
|
JTextField sb = new JTextField(16);
|
JButton query = new JButton("查询");
|
|
List<ColorDescription> colorDescriptions = new ArrayList<>();
|
colorDescriptions.add(new ColorDescription("#3498DB", "进行中"));
|
colorDescriptions.add(new ColorDescription("#F1C40F", "临期"));
|
colorDescriptions.add(new ColorDescription("#E74C3C", "逾期"));
|
colorDescriptions.add(new ColorDescription("#2ECC71", "正常完成"));
|
colorDescriptions.add(new ColorDescription("#006400", "超期完成"));
|
|
// 创建下拉框
|
ColorDescriptionComboBox comboBox5 = new ColorDescriptionComboBox(colorDescriptions);
|
|
|
topJpanel.add(JLabel0, new GBC(0, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
topJpanel.add(comboBox, new GBC(1, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
topJpanel.add(JLabel1, new GBC(2, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
topJpanel.add(comboBox1, new GBC(3, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
topJpanel.add(JLabel2, new GBC(4, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
topJpanel.add(comboBox2, new GBC(5, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
topJpanel.add(JLabel3, new GBC(6, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
topJpanel.add(comboBox3, new GBC(7, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
topJpanel.add(JLabel4, new GBC(8, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
topJpanel.add(comboBox4, new GBC(9, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
|
topJpanel.add(sb, new GBC(0, 1, 2, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
topJpanel.add(query, new GBC(2, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
topJpanel.add(comboBox5, new GBC(3, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
|
list = level3Service.getNodeList(shipList.get(0).getId(), deptList[0].getId(), teamList[0].getId(), cabinList[0].getId(), typeList[0], null);
|
|
columnDto = new ArrayList<>();
|
//columnDto.add(new ColumnDto("ID", "id", -1, null,false));
|
columnDto.add(new ColumnDto("序号", "", 227, "autoCreate", false, null, null));
|
//columnDto.add(new ColumnDto("工程", "ProjectName", 150, null, false, null, null));
|
columnDto.add(new ColumnDto("设备名称", "name", 227, null, true, null, null));
|
columnDto.add(new ColumnDto("设备拆卸出舱", "time1Color", 227, "Circle", true, null, null));
|
columnDto.add(new ColumnDto("设备分交", "time2Color", 227, "Circle", true, null, null));
|
columnDto.add(new ColumnDto("拆检鉴定", "time3Color", 227, "Circle", true, null, null));
|
columnDto.add(new ColumnDto("设备返厂", "time4Color", 227, "Circle", true, null, null));
|
columnDto.add(new ColumnDto("回装", "time5Color", 227, "Circle", true, null, null));
|
|
table = CommonTable.createCommonTable(list, columnDto);
|
table.setRowHeight(25);
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
MouseMotionListener mouseMotionListener = new MouseMotionListener() {
|
@Override
|
public void mouseDragged(MouseEvent e) {
|
// 不需要处理鼠标拖动事件
|
}
|
|
@Override
|
public void mouseMoved(MouseEvent e) {
|
Point point = e.getPoint();
|
int row = table.rowAtPoint(point);
|
int column = table.columnAtPoint(point);
|
|
if (row <= list.size() && column > 1) {
|
String hexColor = (String) table.getValueAt(row, column);
|
String tooltip = getTooltipText(hexColor);
|
table.setToolTipText(tooltip);
|
} else {
|
table.setToolTipText(null);
|
}
|
}
|
};
|
|
table.addMouseMotionListener(mouseMotionListener);
|
|
comboBox.addItemListener(new ItemListener() {
|
public void itemStateChanged(final ItemEvent event) {
|
String content = comboBox.getSelectedItem().toString();
|
JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem();
|
JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem();
|
JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem();
|
String type = comboBox4.getSelectedItem().toString();
|
|
Long shipId = shipMap.get(content);
|
list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type, null);
|
|
CommonTable.refreshTable(list, columnDto, table);
|
table.setRowHeight(25);
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
}
|
});
|
comboBox1.addItemListener(new ItemListener() {
|
@Override
|
public void itemStateChanged(ItemEvent e) {
|
if (e.getStateChange() == ItemEvent.SELECTED) {
|
JComboBoxItem selectedItem = (JComboBoxItem) comboBox1.getSelectedItem();
|
if (selectedItem != null) {
|
Long selectedId = selectedItem.getId();
|
|
JComboBoxItem[] teamList = sysTeamGroupClassService.getTeamList(selectedId);
|
comboBox2.setModel(new DefaultComboBoxModel<>(teamList));
|
|
String content = comboBox.getSelectedItem().toString();
|
JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem();
|
JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem();
|
JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem();
|
String type = comboBox4.getSelectedItem().toString();
|
|
Long shipId = shipMap.get(content);
|
list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type, null);
|
CommonTable.refreshTable(list, columnDto, table);
|
table.setRowHeight(25);
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
|
}
|
}
|
}
|
});
|
|
comboBox2.addItemListener(new ItemListener() {
|
public void itemStateChanged(final ItemEvent event) {
|
String content = comboBox.getSelectedItem().toString();
|
JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem();
|
JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem();
|
JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem();
|
String type = comboBox4.getSelectedItem().toString();
|
|
Long shipId = shipMap.get(content);
|
list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type, null);
|
|
CommonTable.refreshTable(list, columnDto, table);
|
table.setRowHeight(25);
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
}
|
});
|
comboBox3.addItemListener(new ItemListener() {
|
public void itemStateChanged(final ItemEvent event) {
|
String content = comboBox.getSelectedItem().toString();
|
JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem();
|
JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem();
|
JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem();
|
String type = comboBox4.getSelectedItem().toString();
|
|
Long shipId = shipMap.get(content);
|
list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type, null);
|
|
CommonTable.refreshTable(list, columnDto, table);
|
table.setRowHeight(25);
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
}
|
});
|
comboBox4.addItemListener(new ItemListener() {
|
public void itemStateChanged(final ItemEvent event) {
|
String content = comboBox.getSelectedItem().toString();
|
JComboBoxItem dept = (JComboBoxItem) comboBox1.getSelectedItem();
|
JComboBoxItem team = (JComboBoxItem) comboBox2.getSelectedItem();
|
JComboBoxItem cabin = (JComboBoxItem) comboBox3.getSelectedItem();
|
String type = comboBox4.getSelectedItem().toString();
|
|
Long shipId = shipMap.get(content);
|
list = level3Service.getNodeList(shipId, dept.getId(), team.getId(), cabin.getId(), type, null);
|
|
CommonTable.refreshTable(list, columnDto, table);
|
table.setRowHeight(25);
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
}
|
});
|
|
query.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
list = level3Service.getNodeList(null, null, null, null, null, sb.getText());
|
|
CommonTable.refreshTable(list, columnDto, table);
|
table.setRowHeight(25);
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
}
|
});
|
|
for (int i = 0; i < shipList.size(); i++) {
|
shipMap.put(shipList.get(i).getShipNo(), shipList.get(i).getId());
|
comboBox.addItem(shipList.get(i).getShipNo());
|
}
|
comboBox.setSelectedItem(shipList.get(0).getShipNo());
|
|
|
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(width - 20, Compute.ComputeHeightWithScroll(100,frame)));
|
centerJpanel.add(scrollPane);
|
frame.addComponentListener(new ComponentAdapter() {
|
@Override
|
public void componentResized(ComponentEvent e) {
|
centerJpanel.setPreferredSize(new Dimension(width - 20, Compute.ComputeHeight(100,frame)));
|
scrollPane.setPreferredSize(new Dimension(width - 20,Compute.ComputeHeightWithScroll(100,frame)));
|
centerJpanel.revalidate();
|
centerJpanel.repaint();
|
scrollPane.revalidate();
|
scrollPane.repaint();
|
}
|
});
|
|
return panel;
|
}
|
|
private static String getTooltipText(String hexColor) {
|
switch (hexColor) {
|
case "#3498DB":
|
return "进行中";
|
case "#F1C40F":
|
return "临期";
|
case "#E74C3C":
|
return "逾期";
|
case "#2ECC71":
|
return "正常完成";
|
case "#006400":
|
return "超期完成";
|
default:
|
return "未开始";
|
}
|
}
|
|
}
|