package com.example.client.service; import com.example.client.dto.JComboBoxItem; import com.example.client.utils.CommonTable; import com.example.client.utils.GBC; import com.example.client.utils.RequiredLabel; import com.example.server.progressTrack.service.*; import com.example.server.teamGroup.service.SysTeamGroupClassService; import org.jdesktop.swingx.JXDatePicker; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.File; import java.util.Date; @Service public class ExportDismantTrackService { @Autowired private DjJdgzDismantTrackService djJdgzDismantTrackService; @Autowired private DjJdgzNetworkLevel1Service level1Service; @Autowired private DjJdgzNetworkLevel3Service djJdgzNetworkLevel3Service; @Autowired private DjJdgzNetworkLevel3ListService djJdgzNetworkLevel3ListService; @Autowired private SysTeamGroupClassService sysTeamGroupClassService; public void openDialog(JFrame jFrame) { JFrame frame1 = new JFrame("拆卸进度表导出条件"); frame1.setSize(1000, 600); 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);//将主界面再设置为可操作的 } }); GridBagLayout layout = new GridBagLayout(); frame1.setLayout(layout); JComboBoxItem[] statusList = { new JComboBoxItem(0, "进行中"), new JComboBoxItem(1, "已完成"), }; JComboBoxItem[] deptList = sysTeamGroupClassService.getDeptList(); JComboBoxItem[] teamGroupList = sysTeamGroupClassService.getList(); JComboBoxItem[] projectList = level1Service.getProjectList(); RequiredLabel JLabel0 = new RequiredLabel("请选择工程"); JComboBox comboBox = new JComboBox<>(projectList); comboBox.setPreferredSize(new Dimension(300, 28)); comboBox.setSelectedIndex(-1); JLabel JLabel01 = new JLabel("部门"); JComboBox comboBox1 = new JComboBox<>(deptList); comboBox1.setPreferredSize(new Dimension(300, 28)); comboBox1.setSelectedIndex(-1); JLabel JLabel1 = new JLabel("请选择专业"); JComboBox comboBox2 = new JComboBox<>(); comboBox2.setPreferredSize(new Dimension(300, 28)); comboBox2.setSelectedIndex(-1); JLabel JLabel2 = new JLabel("请选择设备"); JComboBox comboBox3 = new JComboBox<>(); comboBox3.setPreferredSize(new Dimension(300, 28)); comboBox3.setSelectedIndex(-1); JLabel JLabel4 = new JLabel("请选择完成情况"); JComboBox comboBox5 = new JComboBox<>(statusList); comboBox5.setPreferredSize(new Dimension(300, 28)); comboBox5.setSelectedIndex(-1); comboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { JComboBoxItem selectedItem = (JComboBoxItem) comboBox.getSelectedItem(); JComboBoxItem selectedItem1 = (JComboBoxItem) comboBox1.getSelectedItem(); JComboBoxItem selectedItem2 = (JComboBoxItem) comboBox2.getSelectedItem(); Long projectId = selectedItem == null ? null : selectedItem.getId(); Long deptId = selectedItem1 == null ? null : selectedItem1.getId(); Long teamId = selectedItem2 == null ? null : selectedItem2.getId(); JComboBoxItem[] level3List = djJdgzNetworkLevel3Service.getListByExport(projectId, deptId, teamId); comboBox3.setModel(new DefaultComboBoxModel<>(level3List)); comboBox3.setSelectedIndex(-1); } } }); comboBox1.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { JComboBoxItem selectedItem = (JComboBoxItem) comboBox.getSelectedItem(); JComboBoxItem selectedItem1 = (JComboBoxItem) comboBox1.getSelectedItem(); JComboBoxItem selectedItem2 = (JComboBoxItem) comboBox2.getSelectedItem(); Long projectId = selectedItem == null ? null : selectedItem.getId(); Long deptId = selectedItem1 == null ? null : selectedItem1.getId(); Long teamId = selectedItem2 == null ? null : selectedItem2.getId(); JComboBoxItem[] level3List = djJdgzNetworkLevel3Service.getListByExport(projectId, deptId, teamId); comboBox3.setModel(new DefaultComboBoxModel<>(level3List)); comboBox3.setSelectedIndex(-1); } } }); comboBox2.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { JComboBoxItem selectedItem = (JComboBoxItem) comboBox.getSelectedItem(); JComboBoxItem selectedItem1 = (JComboBoxItem) comboBox1.getSelectedItem(); JComboBoxItem selectedItem2 = (JComboBoxItem) comboBox2.getSelectedItem(); Long projectId = selectedItem == null ? null : selectedItem.getId(); Long deptId = selectedItem1 == null ? null : selectedItem1.getId(); Long teamId = selectedItem2 == null ? null : selectedItem2.getId(); JComboBoxItem[] level3List = djJdgzNetworkLevel3Service.getListByExport(projectId, deptId, teamId); comboBox3.setModel(new DefaultComboBoxModel<>(level3List)); comboBox3.setSelectedIndex(-1); } } }); JButton exportButton = new JButton("导出"); frame1.add(JLabel0, new GBC(0, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); frame1.add(comboBox, new GBC(1, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); frame1.add(JLabel01, new GBC(0, 1, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); frame1.add(comboBox1, new GBC(1, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); frame1.add(JLabel1, new GBC(0, 2, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); frame1.add(comboBox2, new GBC(1, 2, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); frame1.add(JLabel2, new GBC(0, 3, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); frame1.add(comboBox3, new GBC(1, 3, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); frame1.add(JLabel4, new GBC(0, 4, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); frame1.add(comboBox5, new GBC(1, 4, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); frame1.add(exportButton, new GBC(0, 5, 2, 1).setWeight(0, 0)); exportButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JComboBoxItem projectItem = (JComboBoxItem) comboBox.getSelectedItem(); JComboBoxItem deptItem = (JComboBoxItem) comboBox1.getSelectedItem(); JComboBoxItem teamGroupItem = (JComboBoxItem) comboBox2.getSelectedItem(); JComboBoxItem level3NetworkItem = (JComboBoxItem) comboBox3.getSelectedItem(); JComboBoxItem statusItem = (JComboBoxItem) comboBox5.getSelectedItem(); Long level1NetworkId = null; Long deptId = null; Long teamGroupId = null; Long level3NetworkId = null; Long level3NodeId = null; Integer status = null; if (projectItem != null) { level1NetworkId = projectItem.getId(); } else { JOptionPane.showMessageDialog(null, "没有选择工程", "提示", JOptionPane.WARNING_MESSAGE); return; } if (teamGroupItem != null) { teamGroupId = teamGroupItem.getId(); } if (level3NetworkItem != null) { level3NetworkId = level3NetworkItem.getId(); } if (deptItem != null) { deptId = deptItem.getId(); } if (statusItem != null) { status = Math.toIntExact(statusItem.getId()); } String filePath = "拆卸进度报表.xlsx"; djJdgzDismantTrackService.exportExcel(filePath,deptId, teamGroupId, level1NetworkId, level3NetworkId, status); JFileChooser fileChooser = new JFileChooser(); fileChooser.setSelectedFile(new File(filePath)); int result = fileChooser.showSaveDialog(frame1); if (result == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); // 将文件移动到用户选择的位置 File originalFile = new File(filePath); originalFile.renameTo(selectedFile); JOptionPane.showMessageDialog(frame1, "文件导出成功"); } else { JOptionPane.showMessageDialog(frame1, "文件导出取消"); } } }); } }