diff --git a/pom.xml b/pom.xml
index 3bb60fb..a2a6cda 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,4 +26,32 @@
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.6.0
+
+
+
+ com.dota.App
+
+
+
+ jar-with-dependencies
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/dota/App.java b/src/main/java/com/dota/App.java
new file mode 100644
index 0000000..660ae0b
--- /dev/null
+++ b/src/main/java/com/dota/App.java
@@ -0,0 +1,59 @@
+package com.dota;
+
+import javax.swing.*;
+import java.awt.*;
+
+public class App {
+ public static void main(String[] args) {
+ SwingUtilities.invokeLater(App::lanuch);
+ }
+
+ static String[] doctors = new String[]{"顾磊", "章亮", "唐婷婷", "杨祖怡", "李宁", "周晖"};
+
+ static void lanuch() {
+ JFrame jframe = new JFrame("排班系统");
+ jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ jframe.setSize(600,400);
+ jframe.setLayout(new BorderLayout(10, 10));
+
+ var dateField = new JTextField("2025-10-13");
+ var weekNumField = new JTextField("2");
+ var filePathField = new JTextField("C:\\Users\\yangz\\Documents\\医生排班.xlsx");
+ var doctorField = new JComboBox<>(doctors);
+ doctorField.setSelectedIndex(0);
+ var resText = new JTextArea("点击确定按钮,输出执行结果");
+ var btn = new JButton("确定");
+
+ // 输入区域
+ JPanel inputPanel = new JPanel(new GridLayout(4,2,10,5));
+ jframe.add(inputPanel, BorderLayout.NORTH);
+ inputPanel.add(new JLabel("排班日期"));
+ inputPanel.add(dateField);
+ inputPanel.add(new JLabel("排班周数"));
+ inputPanel.add(weekNumField);
+ inputPanel.add(new JLabel("第一个值班的医生"));
+ inputPanel.add(doctorField);
+ inputPanel.add(new JLabel("输出文件位置"));
+ inputPanel.add(filePathField);
+
+ //结果区域
+ JPanel resPanel = new JPanel();
+ jframe.add(resPanel, BorderLayout.CENTER);
+ resPanel.add(resText);
+
+ // 按钮区域
+ var btnPanel = new JPanel();
+ jframe.add(btnPanel, BorderLayout.SOUTH);
+ btnPanel.add(btn);
+
+ btn.addActionListener(e->{
+ resText.setText("运行中,请稍等");
+ Main.run(dateField.getText(), Integer.parseInt(weekNumField.getText()), (String) doctorField.getSelectedItem(), filePathField.getText());
+ resText.setText("运行结束,请查看排班文件");
+ });
+
+
+ jframe.setLocationRelativeTo(null);
+ jframe.setVisible(true);
+ }
+}
diff --git a/src/main/java/com/dota/Main.java b/src/main/java/com/dota/Main.java
index 5ab9f74..6e9b1bc 100644
--- a/src/main/java/com/dota/Main.java
+++ b/src/main/java/com/dota/Main.java
@@ -7,7 +7,6 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
-import java.text.DateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
@@ -31,6 +30,10 @@ public class Main {
static LocalDate day;
public static void main(String[] args) {
+ run("2025-10-13", 2, "周晖", "C:\\Users\\yangz\\Documents\\医生排班.xlsx");
+ }
+
+ static void run(String date, int weekNum, String name, String file){
init();
var doctorOrder = new Doctor[]{
gl, zl, ttt, zy, ln, zh
@@ -39,12 +42,8 @@ public class Main {
ln, zy, ttt, zl, zh, gl, tgy
};
-// var s = new ArrayList();
-// for (int i = -1; i < 2; i++) {
-// s.addAll(schedule(doctorOrder, outputOrder));
-// }
-// print(s);
- write("2025-10-13", 4, "顾磊", doctorOrder, outputOrder);
+ filePath = file;
+ write(date, weekNum, name, doctorOrder, outputOrder);
}