feat: 实现SMB文件服务并优化合同文件管理
- 新增SmbFileService服务类,支持SMB/CIFS协议的文件操作 - 修改合同文件管理逻辑,支持SMB路径检查与目录创建 - 优化BankTableCell实现工厂模式并更新相关文档 - 调整Redis配置并添加连接测试 - 修复合同发票视图模型的时间处理问题 - 更新项目版本至0.0.134-SNAPSHOT
This commit is contained in:
@@ -154,4 +154,70 @@ public class [业务]WindowController extends AbstEntityController<[Vo类型], [
|
||||
// 窗口显示后的逻辑
|
||||
}
|
||||
}
|
||||
```
|
||||
```
|
||||
|
||||
## 13. TableCell 工厂模式规范
|
||||
|
||||
### 13.1 工厂方法命名
|
||||
|
||||
- TableCell类应提供静态工厂方法`forTableColumn`,用于创建单元格工厂
|
||||
- 方法命名必须为`forTableColumn`,保持一致性
|
||||
|
||||
### 13.2 工厂方法参数
|
||||
|
||||
- 工厂方法应接收服务层参数,如`BankService`
|
||||
- 参数类型应与TableCell构造函数所需的服务类型一致
|
||||
|
||||
### 13.3 工厂方法返回类型
|
||||
|
||||
- 返回类型应为`Callback<javafx.scene.control.TableColumn<V, T>, javafx.scene.control.TableCell<V, T>>`
|
||||
- 其中`V`为ViewModel类型,`T`为单元格值类型
|
||||
|
||||
### 13.4 工厂方法实现
|
||||
|
||||
- 在工厂方法内部,创建并返回TableCell实例
|
||||
- 使用泛型参数确保类型安全
|
||||
|
||||
### 13.5 使用方式
|
||||
|
||||
- 在设置表格列的单元格工厂时,应调用TableCell的静态工厂方法
|
||||
- 避免直接使用`new TableCell<>(service)`的方式创建实例
|
||||
|
||||
### 13.6 示例代码
|
||||
|
||||
```java
|
||||
/**
|
||||
* 银行单元格
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
public class BankTableCell<T> extends AsyncUpdateTableCell<T, Integer, BankVo> {
|
||||
/**
|
||||
* 创建单元格工厂
|
||||
*
|
||||
* @param bankService 银行服务
|
||||
* @return 单元格工厂
|
||||
*/
|
||||
public static <V> Callback<javafx.scene.control.TableColumn<V, Integer>, javafx.scene.control.TableCell<V, Integer>> forTableColumn(
|
||||
BankService bankService) {
|
||||
return param -> new BankTableCell<V>(bankService);
|
||||
}
|
||||
|
||||
public BankTableCell(BankService service) {
|
||||
setService(service);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BankService getServiceBean() {
|
||||
return getBean(BankService.class);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 13.7 使用示例
|
||||
|
||||
```java
|
||||
// 推荐方式:使用工厂方法
|
||||
column.setCellFactory(BankTableCell.forTableColumn(getBankService()));
|
||||
|
||||
// 不推荐方式:直接实例化
|
||||
// column.setCellFactory(param -> new BankTableCell<>(getBankService()));
|
||||
Reference in New Issue
Block a user