feat(contract): 新增合同发票管理功能
实现合同发票的增删改查功能,包括: 1. 添加ContractInvoiceVo实体类及相关ViewModel 2. 创建合同发票数据库表CONTRACT_INVOICE 3. 实现前后端发票管理服务ContractInvoiceService 4. 开发发票管理界面及标签页 5. 添加发票表格单元格组件 6. 完善销售订单表结构,增加客户联系人字段 7. 更新pom.xml版本至0.0.122-SNAPSHOT 修复销售订单界面搜索字段命名不一致问题
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.CheckBox?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.TableColumn?>
|
||||
<?import javafx.scene.control.TableView?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.layout.BorderPane?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
|
||||
<BorderPane id="root" fx:id="root" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<top>
|
||||
<HBox alignment="CENTER_LEFT" prefHeight="40.0" prefWidth="900.0" spacing="10.0">
|
||||
<Button mnemonicParsing="false" onAction="#onTableCreateNewAction" text="新建">
|
||||
<HBox.margin>
|
||||
<Insets left="10.0" />
|
||||
</HBox.margin>
|
||||
</Button>
|
||||
<Button mnemonicParsing="false" onAction="#onTableRefreshAction" text="刷新">
|
||||
<HBox.margin>
|
||||
<Insets left="10.0" />
|
||||
</HBox.margin>
|
||||
</Button>
|
||||
<Button mnemonicParsing="false" onAction="#onTableDeleteAction" text="删除">
|
||||
<HBox.margin>
|
||||
<Insets left="10.0" />
|
||||
</HBox.margin>
|
||||
</Button>
|
||||
<TextField fx:id="searchField" promptText="搜索..." HBox.hgrow="ALWAYS">
|
||||
<HBox.margin>
|
||||
<Insets left="10.0" right="10.0" />
|
||||
</HBox.margin>
|
||||
</TextField>
|
||||
</HBox>
|
||||
</top>
|
||||
<center>
|
||||
<TableView fx:id="table" prefHeight="600.0" prefWidth="900.0">
|
||||
<columns>
|
||||
<TableColumn fx:id="idColumn" prefWidth="80.0" text="ID" />
|
||||
<TableColumn fx:id="codeColumn" prefWidth="120.0" text="发票编号" />
|
||||
<TableColumn fx:id="nameColumn" prefWidth="150.0" text="发票名称" />
|
||||
<TableColumn fx:id="contractColumn" prefWidth="100.0" text="合同ID" />
|
||||
<TableColumn fx:id="contractItemColumn" prefWidth="100.0" text="合同项目ID" />
|
||||
</columns>
|
||||
</TableView>
|
||||
</center>
|
||||
<bottom>
|
||||
<HBox alignment="CENTER" prefHeight="40.0" prefWidth="900.0" spacing="10.0">
|
||||
<Label fx:id="pageInfoLabel" text="第 1 页,共 1 页" />
|
||||
<Button mnemonicParsing="false" onAction="#onPrevPageAction" text="上一页" />
|
||||
<Button mnemonicParsing="false" onAction="#onNextPageAction" text="下一页" />
|
||||
<Button mnemonicParsing="false" onAction="#onFirstPageAction" text="首页" />
|
||||
<Button mnemonicParsing="false" onAction="#onLastPageAction" text="末页" />
|
||||
<TextField fx:id="pageField" prefWidth="60.0" text="1" />
|
||||
<Button mnemonicParsing="false" onAction="#onGotoPageAction" text="跳转" />
|
||||
</HBox>
|
||||
</bottom>
|
||||
</BorderPane>
|
||||
100
client/src/main/resources/ui/contract/contract-invoice.fxml
Normal file
100
client/src/main/resources/ui/contract/contract-invoice.fxml
Normal file
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.ScrollPane?>
|
||||
<?import javafx.scene.control.Tab?>
|
||||
<?import javafx.scene.control.TabPane?>
|
||||
<?import javafx.scene.control.TextArea?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.layout.BorderPane?>
|
||||
<?import javafx.scene.layout.ColumnConstraints?>
|
||||
<?import javafx.scene.layout.GridPane?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.RowConstraints?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
|
||||
<?import javafx.scene.control.DatePicker?>
|
||||
<?import javafx.scene.control.ComboBox?>
|
||||
<BorderPane id="root" fx:id="root" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1"
|
||||
fx:controller="com.ecep.contract.controller.contract.ContractInvoiceWindowController">
|
||||
<top>
|
||||
<HBox alignment="CENTER_LEFT" prefHeight="40.0" prefWidth="900.0" spacing="10.0">
|
||||
<Button fx:id="saveBtn" mnemonicParsing="false" text="保存">
|
||||
<HBox.margin>
|
||||
<Insets left="10.0" />
|
||||
</HBox.margin>
|
||||
</Button>
|
||||
<Button mnemonicParsing="false" onAction="#refresh" text="刷新">
|
||||
<HBox.margin>
|
||||
<Insets left="10.0" />
|
||||
</HBox.margin>
|
||||
</Button>
|
||||
<Label fx:id="statusLabel" prefWidth="200.0">
|
||||
<HBox.margin>
|
||||
<Insets left="10.0" />
|
||||
</HBox.margin>
|
||||
</Label>
|
||||
</HBox>
|
||||
</top>
|
||||
<center>
|
||||
<TabPane fx:id="tabPane" prefHeight="660.0" prefWidth="900.0" tabClosingPolicy="UNAVAILABLE">
|
||||
<Tab fx:id="baseInfoTab" text="基本信息">
|
||||
<ScrollPane fitToWidth="true">
|
||||
<VBox maxWidth="800.0" prefWidth="800.0">
|
||||
<GridPane hgap="10.0" vgap="10.0">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints halignment="RIGHT" hgrow="NEVER" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="ALWAYS" minWidth="0.0" prefWidth="200.0" />
|
||||
<ColumnConstraints halignment="RIGHT" hgrow="NEVER" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="ALWAYS" minWidth="0.0" prefWidth="200.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints prefHeight="30.0" vgrow="NEVER" />
|
||||
<RowConstraints prefHeight="30.0" vgrow="NEVER" />
|
||||
<RowConstraints prefHeight="30.0" vgrow="NEVER" />
|
||||
<RowConstraints prefHeight="30.0" vgrow="NEVER" />
|
||||
<RowConstraints prefHeight="30.0" vgrow="NEVER" />
|
||||
<RowConstraints prefHeight="30.0" vgrow="NEVER" />
|
||||
<RowConstraints prefHeight="100.0" vgrow="ALWAYS" />
|
||||
</rowConstraints>
|
||||
<Label text="ID:" GridPane.columnIndex="0" GridPane.rowIndex="0" />
|
||||
<Label fx:id="idLabel" GridPane.columnIndex="1" GridPane.rowIndex="0" />
|
||||
<Label text="发票编号:" GridPane.columnIndex="2" GridPane.rowIndex="0" />
|
||||
<TextField fx:id="codeField" GridPane.columnIndex="3" GridPane.rowIndex="0" />
|
||||
<Label text="发票名称:" GridPane.columnIndex="0" GridPane.rowIndex="1" />
|
||||
<TextField fx:id="nameField" GridPane.columnIndex="1" GridPane.columnSpan="3" GridPane.rowIndex="1" />
|
||||
<Label text="合同ID:" GridPane.columnIndex="0" GridPane.rowIndex="2" />
|
||||
<TextField fx:id="contractField" GridPane.columnIndex="1" GridPane.rowIndex="2" />
|
||||
<Label text="合同项目ID:" GridPane.columnIndex="2" GridPane.rowIndex="2" />
|
||||
<TextField fx:id="contractItemField" GridPane.columnIndex="3" GridPane.rowIndex="2" />
|
||||
<Label text="发票ID:" GridPane.columnIndex="0" GridPane.rowIndex="3" />
|
||||
<TextField fx:id="invoiceField" GridPane.columnIndex="1" GridPane.rowIndex="3" />
|
||||
<Label text="发票金额:" GridPane.columnIndex="2" GridPane.rowIndex="3" />
|
||||
<TextField fx:id="amountField" GridPane.columnIndex="3" GridPane.rowIndex="3" />
|
||||
<Label text="发票日期:" GridPane.columnIndex="0" GridPane.rowIndex="4" />
|
||||
<DatePicker fx:id="invoiceDatePicker" GridPane.columnIndex="1" GridPane.rowIndex="4" />
|
||||
<Label text="发票类型:" GridPane.columnIndex="2" GridPane.rowIndex="4" />
|
||||
<ComboBox fx:id="invoiceTypeComboBox" GridPane.columnIndex="3" GridPane.rowIndex="4" />
|
||||
<Label text="发票状态:" GridPane.columnIndex="0" GridPane.rowIndex="5" />
|
||||
<ComboBox fx:id="statusComboBox" GridPane.columnIndex="1" GridPane.rowIndex="5" />
|
||||
<Label text="用友ID:" GridPane.columnIndex="2" GridPane.rowIndex="5" />
|
||||
<TextField fx:id="ufIdField" GridPane.columnIndex="3" GridPane.rowIndex="5" />
|
||||
<Label text="开票单位:" GridPane.columnIndex="0" GridPane.rowIndex="6" />
|
||||
<TextField fx:id="invoiceUnitField" GridPane.columnIndex="1" GridPane.rowIndex="6" />
|
||||
<Label text="接收单位:" GridPane.columnIndex="2" GridPane.rowIndex="6" />
|
||||
<TextField fx:id="receiveUnitField" GridPane.columnIndex="3" GridPane.rowIndex="6" />
|
||||
<Label text="备注:" GridPane.columnIndex="0" GridPane.rowIndex="7" />
|
||||
<TextArea fx:id="remarkTextArea" GridPane.columnIndex="1" GridPane.columnSpan="3" GridPane.rowIndex="7" />
|
||||
</GridPane>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</VBox.margin>
|
||||
</VBox>
|
||||
</ScrollPane>
|
||||
</Tab>
|
||||
<Tab fx:id="entityTab" text="实体信息" />
|
||||
</TabPane>
|
||||
</center>
|
||||
</BorderPane>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<AnchorPane xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1"
|
||||
fx:controller="com.ecep.contract.controller.tab.ContractTabSkinInvoices">
|
||||
<children>
|
||||
<HBox spacing="3.0">
|
||||
<children>
|
||||
<TextField fx:id="searchKeyField" promptText="搜索..." />
|
||||
<Button fx:id="searchBtn" text="搜索"/>
|
||||
<Button fx:id="refreshBtn" text="刷新"/>
|
||||
<Button fx:id="addBtn" text="新增发票"/>
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="7.0" right="10.0" top="10.0"/>
|
||||
</padding>
|
||||
</HBox>
|
||||
|
||||
|
||||
<TableView fx:id="table" AnchorPane.bottomAnchor="5.0" AnchorPane.leftAnchor="5.0" AnchorPane.rightAnchor="5.0"
|
||||
AnchorPane.topAnchor="42.0">
|
||||
<columns>
|
||||
<TableColumn fx:id="idColumn" text="ID"/>
|
||||
<TableColumn fx:id="codeColumn" text="编号"/>
|
||||
<TableColumn fx:id="nameColumn" text="名称"/>
|
||||
<TableColumn fx:id="invoiceColumn" text="发票"/>
|
||||
<TableColumn fx:id="amountColumn" text="金额"/>
|
||||
<TableColumn fx:id="remarkColumn" text="备注"/>
|
||||
<TableColumn fx:id="creatorColumn" text="创建人"/>
|
||||
<TableColumn fx:id="createDateColumn" text="创建日期"/>
|
||||
<TableColumn fx:id="updaterColumn" text="更新人"/>
|
||||
<TableColumn fx:id="updateDateColumn" text="更新日期"/>
|
||||
</columns>
|
||||
</TableView>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
@@ -10,7 +10,7 @@
|
||||
<children>
|
||||
<HBox spacing="3.0">
|
||||
<children>
|
||||
<TextField fx:id="contractSearchKeyField" promptText="检索关键字"/>
|
||||
<TextField fx:id="searchKeyField" promptText="检索关键字"/>
|
||||
<Button fx:id="searchBtn" mnemonicParsing="false" text="检索"/>
|
||||
</children>
|
||||
<padding>
|
||||
@@ -23,7 +23,6 @@
|
||||
<columns>
|
||||
<TableColumn fx:id="idColumn" prefWidth="75.0" text="ID"/>
|
||||
<TableColumn fx:id="codeColumn" prefWidth="120" text="编号"/>
|
||||
<TableColumn fx:id="customerColumn" prefWidth="100.0" text="客户"/>
|
||||
<TableColumn fx:id="customerAddressColumn" prefWidth="150.0" text="客户地址"/>
|
||||
<TableColumn fx:id="taxRateColumn" prefWidth="60.0" text="税率"/>
|
||||
<TableColumn fx:id="refIdColumn" prefWidth="60.0" text="RefID"/>
|
||||
|
||||
Reference in New Issue
Block a user