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.CommonTable;
|
import com.example.client.utils.GBC;
|
import com.example.client.utils.MultiSelectComboBox;
|
import com.example.server.cabin.service.CabinService;
|
import com.example.server.progressTrack.Dto.NetworkNodeStatusDto;
|
import com.example.server.progressTrack.model.DjJdgzDismantTrack;
|
import com.example.server.progressTrack.model.DjJdgzNetworkLevel3;
|
import com.example.server.progressTrack.model.DjJdgzTrackRecord;
|
import com.example.server.progressTrack.service.DjJdgzDismantTrackService;
|
import com.example.server.progressTrack.service.DjJdgzNetworkLevel3Service;
|
import com.example.server.progressTrack.service.NetWorkDiagramService;
|
import com.example.server.teamGroup.service.SysTeamGroupClassService;
|
import com.mxgraph.swing.mxGraphComponent;
|
import com.mxgraph.view.mxGraph;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.swing.*;
|
import java.awt.*;
|
import java.awt.event.*;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
|
@Service
|
public class DismantTrackService {
|
@Autowired
|
private DjJdgzNetworkLevel3Service level3Service;
|
@Autowired
|
private SysTeamGroupClassService sysTeamGroupClassService;
|
@Autowired
|
private DjJdgzDismantTrackService djJdgzDismantTrackService;
|
@Autowired
|
private CabinService cabinService;
|
|
public JPanel createTable(Integer width, Integer height) {
|
height = height - 100;
|
JPanel panel = new JPanel();
|
|
JPanel jLeft = new JPanel(new BorderLayout());
|
JPanel top = new JPanel(new BorderLayout());
|
jLeft.setPreferredSize(new Dimension(width / 3 - 20, height));
|
top.setPreferredSize(new Dimension(width / 3 - 20, 100));
|
|
// 创建左侧表格
|
List<ColumnDto> columnDto = new ArrayList<>();
|
List<DjJdgzNetworkLevel3> list = level3Service.getList(null);
|
|
//columnDto.add(new ColumnDto("ID", "id", -1, null,false));
|
JComboBoxItem[] deptList = sysTeamGroupClassService.getDeptList();
|
JComboBoxItem[] teamList = sysTeamGroupClassService.getTeamList(null);
|
JComboBoxItem[] cabinList = cabinService.getList();
|
String[] typeList = new String[]{
|
"改装","加装","换装","改进性修理"
|
};
|
|
JLabel JLabel1 = new JLabel("部门");
|
JComboBox<JComboBoxItem> comboBox1 = new JComboBox<>(deptList);
|
comboBox1.setPreferredSize(new Dimension(100, 28));
|
|
JComboBoxItem[] teamList1 = sysTeamGroupClassService.getTeamList(deptList[0].getId());
|
|
JLabel JLabel2 = new JLabel("专业");
|
JComboBox<JComboBoxItem> comboBox2 = new JComboBox<>(teamList1);
|
comboBox2.setPreferredSize(new Dimension(100, 28));
|
|
JLabel JLabel3= new JLabel("舱室");
|
JComboBox<JComboBoxItem> comboBox3 = new JComboBox(cabinList);
|
comboBox3.setPreferredSize(new Dimension(100, 28));
|
|
JLabel JLabel4 = new JLabel("类别");
|
JComboBox<String> comboBox4 = new JComboBox<>(typeList);
|
comboBox3.setPreferredSize(new Dimension(100, 28));
|
|
JTextField sb = new JTextField();
|
|
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));
|
comboBox2.setSelectedIndex(-1);
|
}
|
}
|
}
|
});
|
top.add(JLabel1, new GBC(0, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
top.add(comboBox1, new GBC(1, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
top.add(JLabel2, new GBC(2, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
top.add(comboBox2, new GBC(3, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
|
top.add(JLabel3, new GBC(0, 1, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
top.add(comboBox3, new GBC(1, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
top.add(JLabel4, new GBC(2, 1, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
top.add(comboBox4, new GBC(3, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
|
top.add(sb, new GBC(0, 2, 2, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
|
jLeft.add(top,BorderLayout.NORTH);
|
|
columnDto.add(new ColumnDto("序号", "", width / 20 - 10, "autoCreate", false, null,null));
|
columnDto.add(new ColumnDto("部门", "deptId", width / 18, "dict", false, null,deptList));
|
columnDto.add(new ColumnDto("专业", "teamgroupId", width / 18, "dict", false, null,teamList));
|
columnDto.add(new ColumnDto("舱室", "cabinId", width / 18, "dicts", false, null,cabinList));
|
columnDto.add(new ColumnDto("类别", "type", width / 18, null, false, null,null));
|
columnDto.add(new ColumnDto("设备名称", "name", width / 18, null, false, null,null));
|
|
JTable subTable = CommonTable.createCommonTable(list, columnDto);
|
subTable.setRowHeight(25);
|
subTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
|
|
JScrollPane scrollTable = new JScrollPane(subTable);
|
jLeft.add(scrollTable, BorderLayout.CENTER);
|
|
JTable trackTable = new JTable();
|
JPanel track = this.createTrack(width,height,list.get(0),trackTable);
|
trackTable.setPreferredSize(new Dimension(width - width / 3, height));
|
|
// 创建水平分割面板
|
JSplitPane hSplitPane = new JSplitPane(
|
JSplitPane.HORIZONTAL_SPLIT,
|
jLeft,
|
track
|
);
|
hSplitPane.setDividerLocation(width / 4);
|
hSplitPane.setDividerSize(10);
|
hSplitPane.setOneTouchExpandable(true);
|
hSplitPane.setContinuousLayout(true);
|
|
panel.add(hSplitPane, BorderLayout.CENTER);
|
|
subTable.addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent e) {
|
// 仅当鼠标左键单击时响应
|
if (e.getButton() == MouseEvent.BUTTON1) {
|
// 得到选中的行列的索引值
|
int r = subTable.getSelectedRow();
|
DjJdgzNetworkLevel3 data = list.get(r);
|
}
|
}
|
});
|
|
return panel;
|
}
|
|
private JPanel createTrack(Integer width, Integer height, DjJdgzNetworkLevel3 djJdgzNetworkLevel3, JTable trackTable) {
|
JPanel panel = new JPanel();
|
|
JPanel topJpanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
|
topJpanel.setPreferredSize(new Dimension(width, 37));
|
topJpanel.setBackground(Color.WHITE);
|
|
JPanel centerJpanel = new JPanel();
|
centerJpanel.setPreferredSize(new Dimension(width - 20, height - 100));
|
centerJpanel.setBackground(Color.WHITE);
|
panel.add(topJpanel, BorderLayout.NORTH);
|
panel.add(centerJpanel, BorderLayout.CENTER);
|
|
JComboBoxItem[] cabinList = cabinService.getList();
|
String[] typeList = new String[]{
|
"改装","加装","换装","改进性修理"
|
};
|
|
JComboBox<JComboBoxItem> comboBox = new JComboBox(cabinList);
|
comboBox.setPreferredSize(new Dimension(100, 28));
|
|
JComboBox<String> comboBox2 = new JComboBox<>(typeList);
|
comboBox2.setPreferredSize(new Dimension(100, 28));
|
|
JButton btnTj = new JButton("统计报表");
|
JButton btnExport = new JButton("导出拆卸报表");
|
|
topJpanel.add(btnTj);
|
topJpanel.add(btnExport);
|
topJpanel.add(comboBox);
|
topJpanel.add(comboBox2);
|
|
comboBox.setPreferredSize(new Dimension(300, 28));
|
comboBox2.setPreferredSize(new Dimension(300, 28));
|
|
List<DjJdgzDismantTrack> list = djJdgzDismantTrackService.getList(djJdgzNetworkLevel3.getId(),null);
|
List<TableButton> buttonList = new ArrayList<>();
|
buttonList.add(new TableButton("edit", "编辑"));
|
|
// 创建左侧表格
|
List<ColumnDto> columnDto = new ArrayList<>();
|
//columnDto.add(new ColumnDto("ID", "id", -1, null,false));
|
columnDto.add(new ColumnDto("序号", "", 50, "autoCreate", false, null, null));
|
columnDto.add(new ColumnDto("部门", "deptId", 160, null, false, null, null));
|
columnDto.add(new ColumnDto("专业", "teamgroupId", 160, null, false, null, null));
|
columnDto.add(new ColumnDto("舱室", "cabinId", 120, null, false, null, null));
|
columnDto.add(new ColumnDto("部件名称", "name", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("拆卸时间", "dismantTime", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("拆卸单位", "dismantUnit", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("拆卸人员", "dismantStaff", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("拆卸助修艇员", "dismantAssistant", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("出舱时间", "exitTime", 200, "", true, buttonList, null));
|
columnDto.add(new ColumnDto("出舱单位", "exitUnit", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("出舱人员", "exitStaff", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("出舱助修艇员", "exitAssistant", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("退重时间", "returnWeightTime", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("称重员", "weigher", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("退重重量", "returnWeight", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("退重助修艇员", "returnWeightAssistant", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("入库时间", "warehouseTime", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("入库人员", "warehouseStaff", 200, null, false, null, null));
|
columnDto.add(new ColumnDto("当前存放位置", "currentLocation", 200, null, false, null, null));
|
|
trackTable = CommonTable.createCommonTable(list, columnDto);
|
trackTable.setRowHeight(25);
|
trackTable.setAutoCreateRowSorter(true);
|
trackTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
trackTable.addMouseListener(new MouseAdapter() {
|
@Override
|
public void mouseClicked(MouseEvent e) {
|
|
}
|
});
|
|
btnTj.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
|
}
|
});
|
|
btnExport.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
|
}
|
});
|
|
|
JScrollPane scrollPane = new JScrollPane(trackTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
|
scrollPane.setViewportView(trackTable);
|
scrollPane.getViewport().setBackground(Color.WHITE);
|
scrollPane.setPreferredSize(new Dimension(width - 20, height - 120));
|
centerJpanel.add(scrollPane);
|
|
return panel;
|
}
|
|
}
|