package com.example.client.service;
|
|
import cn.hutool.core.date.DateUtil;
|
import com.example.client.dto.ColumnDto;
|
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.model.DjJdgzTrackRecord;
|
import com.example.server.progressTrack.service.DjJdgzNetworkLevel1Service;
|
import com.example.server.progressTrack.service.DjJdgzNetworkLevel3ListService;
|
import com.example.server.progressTrack.service.DjJdgzNetworkLevel3Service;
|
import com.example.server.progressTrack.service.DjJdgzTrackRecordService;
|
import com.example.server.teamGroup.service.SysTeamGroupClassService;
|
import org.apache.commons.lang3.StringUtils;
|
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.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Service
|
public class ExportTrackRecordService {
|
@Autowired
|
private DjJdgzTrackRecordService djJdgzTrackRecordService;
|
@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(0L, "进行中"),
|
new JComboBoxItem(1L, "已完成"),
|
};
|
JComboBoxItem[] hasDelayRiskList = {
|
new JComboBoxItem(0L, "否"),
|
new JComboBoxItem(1L, "是"),
|
};
|
|
JComboBoxItem[] projectList = level1Service.getProjectList();
|
RequiredLabel JLabel0 = new RequiredLabel("请选择工程");
|
JComboBox<JComboBoxItem> comboBox = new JComboBox<>(projectList);
|
comboBox.setPreferredSize(new Dimension(300, 28));
|
comboBox.setSelectedIndex(-1);
|
|
JComboBoxItem[] teamGroupList = sysTeamGroupClassService.getList();
|
JLabel JLabel1 = new JLabel("请选择专业");
|
JComboBox<JComboBoxItem> comboBox2 = new JComboBox<>(teamGroupList);
|
comboBox2.setPreferredSize(new Dimension(300, 28));
|
comboBox2.setSelectedIndex(-1);
|
|
JLabel JLabel2 = new JLabel("请选择三级网络图");
|
JComboBox<JComboBoxItem> comboBox3 = new JComboBox<>();
|
comboBox3.setPreferredSize(new Dimension(300, 28));
|
comboBox3.setSelectedIndex(-1);
|
|
|
JLabel JLabel3 = new JLabel("请选择节点");
|
JComboBox<JComboBoxItem> comboBox4 = new JComboBox<>();
|
comboBox4.setPreferredSize(new Dimension(300, 28));
|
comboBox4.setSelectedIndex(-1);
|
|
JLabel JLabel4 = new JLabel("请选择完成情况");
|
JComboBox<JComboBoxItem> comboBox5 = new JComboBox<>(statusList);
|
comboBox5.setPreferredSize(new Dimension(300, 28));
|
comboBox5.setSelectedIndex(-1);
|
|
JLabel JLabel5 = new JLabel("请选择是否脱期");
|
JComboBox<JComboBoxItem> comboBox6 = new JComboBox<>(hasDelayRiskList);
|
comboBox6.setPreferredSize(new Dimension(300, 28));
|
comboBox6.setSelectedIndex(-1);
|
|
JLabel JLabel6 = new JLabel("起始日期");
|
JXDatePicker beginDate = new JXDatePicker();
|
beginDate.setPreferredSize(new Dimension(300, 28));
|
|
JLabel JLabel7 = new JLabel("结束日期");
|
JXDatePicker endDate = new JXDatePicker();
|
endDate.setPreferredSize(new Dimension(300, 28));
|
|
comboBox.addItemListener(new ItemListener() {
|
@Override
|
public void itemStateChanged(ItemEvent e) {
|
if (e.getStateChange() == ItemEvent.SELECTED) {
|
JComboBoxItem selectedItem = (JComboBoxItem) comboBox.getSelectedItem();
|
if (selectedItem != null) {
|
long selectedId = selectedItem.getId();
|
|
JComboBoxItem[] level3List = djJdgzNetworkLevel3Service.getListByLevel1(selectedId);
|
comboBox3.setModel(new DefaultComboBoxModel<>(level3List));
|
comboBox3.setSelectedIndex(-1);
|
}
|
}
|
}
|
});
|
|
comboBox3.addItemListener(new ItemListener() {
|
@Override
|
public void itemStateChanged(ItemEvent e) {
|
if (e.getStateChange() == ItemEvent.SELECTED) {
|
JComboBoxItem selectedItem = (JComboBoxItem) comboBox3.getSelectedItem();
|
if (selectedItem != null) {
|
long selectedId = selectedItem.getId();
|
|
JComboBoxItem[] level3NodeList = djJdgzNetworkLevel3ListService.getListBothItem(selectedId);
|
comboBox4.setModel(new DefaultComboBoxModel<>(level3NodeList));
|
comboBox4.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(JLabel1, new GBC(0, 1, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
frame1.add(comboBox2, new GBC(1, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
|
frame1.add(JLabel2, new GBC(0, 2, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
frame1.add(comboBox3, new GBC(1, 2, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
|
frame1.add(JLabel3, new GBC(0, 3, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
frame1.add(comboBox4, 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(JLabel5, new GBC(0, 5, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
frame1.add(comboBox6, new GBC(1, 5, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
|
frame1.add(JLabel6, new GBC(0, 6, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
frame1.add(beginDate, new GBC(1, 6, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
|
frame1.add(JLabel7, new GBC(0, 7, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5));
|
frame1.add(endDate, new GBC(1, 7, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5));
|
|
frame1.add(exportButton, new GBC(0, 8, 2, 1).setWeight(0, 0));
|
|
exportButton.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
JComboBoxItem projectItem = (JComboBoxItem) comboBox.getSelectedItem();
|
JComboBoxItem teamGroupItem = (JComboBoxItem) comboBox2.getSelectedItem();
|
JComboBoxItem level3NetworkItem = (JComboBoxItem) comboBox3.getSelectedItem();
|
JComboBoxItem level3NodeItem = (JComboBoxItem) comboBox4.getSelectedItem();
|
JComboBoxItem statusItem = (JComboBoxItem) comboBox5.getSelectedItem();
|
JComboBoxItem tq = (JComboBoxItem) comboBox6.getSelectedItem();
|
|
Date beginDate2 = beginDate.getDate();
|
Date endDate2 = endDate.getDate();
|
|
Long level1NetworkId = null;
|
String teamGroupId = null;
|
Long level3NetworkId = null;
|
Long level3NodeId = null;
|
Integer status = null;
|
Integer istq = null;
|
|
if (projectItem != null) {
|
level1NetworkId = projectItem.getId();
|
}else {
|
JOptionPane.showMessageDialog(null, "没有选择工程", "提示", JOptionPane.WARNING_MESSAGE);
|
return;
|
}
|
if (teamGroupItem != null) {
|
teamGroupId = String.valueOf(teamGroupItem.getId());
|
}
|
if (level3NetworkItem != null) {
|
level3NetworkId = level3NetworkItem.getId();
|
}
|
if (level3NodeItem != null) {
|
level3NodeId = level3NodeItem.getId();
|
}
|
if (statusItem != null) {
|
status = Math.toIntExact(statusItem.getId());
|
}
|
if (tq != null) {
|
istq = Math.toIntExact(tq.getId());
|
}
|
|
String filePath = "跟踪记录报表.xlsx";
|
djJdgzTrackRecordService.exportExcel(filePath, teamGroupId, level1NetworkId, level3NetworkId, level3NodeId, status, beginDate2, endDate2, istq);
|
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, "文件导出取消");
|
}
|
}
|
});
|
|
}
|
}
|