Compare commits
11 Commits
c596861a56
...
0.0.45
| Author | SHA1 | Date | |
|---|---|---|---|
| 7b57cb0f01 | |||
|
|
5575f0c17d | ||
|
|
fa1d63413f | ||
| 32624f336b | |||
| 524fccc4ed | |||
|
|
8135acf16a | ||
|
|
6cbe3f37ee | ||
|
|
c6b3b35997 | ||
|
|
2b013feaf1 | ||
| d736f2d3e1 | |||
| 5bed391e64 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -34,3 +34,5 @@ build/
|
|||||||
|
|
||||||
### VS Code ###
|
### VS Code ###
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|
||||||
|
/config.properties
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
#Updated config.properties
|
#Updated config.properties
|
||||||
#Wed Mar 26 16:33:45 CST 2025
|
#Wed Mar 26 16:33:45 CST 2025
|
||||||
cloud.u8.enabled=true
|
cloud.u8.enabled=true
|
||||||
db.server.database=supplier_ms
|
#db.server.database=supplier_ms
|
||||||
db.server.host=db-server1.ecctrl.com
|
#db.server.host=10.84.209.8
|
||||||
db.server.password=ecep.62335656
|
#db.server.password=ecep.62335656
|
||||||
db.server.port=3306
|
#db.server.port=3306
|
||||||
db.server.username=ecep
|
#db.server.username=ecep
|
||||||
username_password.remember=true
|
username_password.remember=true
|
||||||
|
|||||||
4
docs/add_function_columns.sql
Normal file
4
docs/add_function_columns.sql
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
-- 添加CONTROLLER、ICON和DESCRIPTION字段到FUNC表
|
||||||
|
ALTER TABLE supplier_ms.FUNC
|
||||||
|
ADD COLUMN DESCRIPTION VARCHAR(255);
|
||||||
|
|
||||||
2
docs/structs.sql
Normal file
2
docs/structs.sql
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE supplier_ms.EMPLOYEE_ROLE
|
||||||
|
ADD COLUMN IS_ACTIVE BOOLEAN DEFAULT TRUE;
|
||||||
17
pom.xml
17
pom.xml
@@ -163,7 +163,22 @@
|
|||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>gitea</id>
|
||||||
|
<url>http://10.84.210.110/api/packages/songqq/maven</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
<distributionManagement>
|
||||||
|
<repository>
|
||||||
|
<id>gitea</id>
|
||||||
|
<url>http://10.84.210.110/api/packages/songqq/maven</url>
|
||||||
|
</repository>
|
||||||
|
<snapshotRepository>
|
||||||
|
<id>gitea</id>
|
||||||
|
<url>http://10.84.210.110/api/packages/songqq/maven</url>
|
||||||
|
</snapshotRepository>
|
||||||
|
</distributionManagement>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public class AppV2 {
|
|||||||
System.out.println("AppV2.done");
|
System.out.println("AppV2.done");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final String DEFAULT_DB_HOST = "10.84.209.145"; // "db-server1.ecctrl.com"
|
public static final String DEFAULT_DB_HOST = "10.84.209.154"; // "db-server1.ecctrl.com"
|
||||||
public static final String DEFAULT_DB_PORT = "3306";
|
public static final String DEFAULT_DB_PORT = "3306";
|
||||||
public static final String DEFAULT_DB_USERNAME = "supplier_ms";
|
public static final String DEFAULT_DB_USERNAME = "supplier_ms";
|
||||||
public static final String DEFAULT_DB_PASSWORD = "[TPdseO!JKMmlrpf";
|
public static final String DEFAULT_DB_PASSWORD = "[TPdseO!JKMmlrpf";
|
||||||
|
|||||||
@@ -1,25 +1,29 @@
|
|||||||
package com.ecep.contract.manager;
|
package com.ecep.contract.manager;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
|
||||||
import com.ecep.contract.manager.ds.other.model.EmployeeRole;
|
|
||||||
import com.ecep.contract.manager.ds.other.service.EmployeeService;
|
|
||||||
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
|
||||||
import javafx.application.Platform;
|
|
||||||
import javafx.beans.property.SimpleListProperty;
|
|
||||||
import javafx.beans.property.SimpleObjectProperty;
|
|
||||||
import javafx.collections.FXCollections;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
|
import com.ecep.contract.manager.ds.other.model.EmployeeRole;
|
||||||
|
import com.ecep.contract.manager.ds.other.service.EmployeeService;
|
||||||
|
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
||||||
|
|
||||||
|
import javafx.application.Platform;
|
||||||
|
import javafx.beans.property.SimpleListProperty;
|
||||||
|
import javafx.beans.property.SimpleObjectProperty;
|
||||||
|
import javafx.collections.FXCollections;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当前登录用户
|
* 当前登录用户
|
||||||
*/
|
*/
|
||||||
|
@ToString(of = {"id", "name", "email", "phone", "roles"})
|
||||||
public class CurrentEmployee extends EmployeeViewModel {
|
public class CurrentEmployee extends EmployeeViewModel {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(CurrentEmployee.class);
|
private static final Logger logger = LoggerFactory.getLogger(CurrentEmployee.class);
|
||||||
/**
|
/**
|
||||||
@@ -69,6 +73,8 @@ public class CurrentEmployee extends EmployeeViewModel {
|
|||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
update(employee);
|
update(employee);
|
||||||
rolesProperty().setAll(roles);
|
rolesProperty().setAll(roles);
|
||||||
|
// 发布事件
|
||||||
|
SpringApp.context.publishEvent(new CurrentEmployeeInitialedEvent(this));
|
||||||
future.complete(null);
|
future.complete(null);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.ecep.contract.manager;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import org.springframework.context.ApplicationEvent;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public class CurrentEmployeeInitialedEvent extends ApplicationEvent {
|
||||||
|
private final CurrentEmployee employee;
|
||||||
|
|
||||||
|
public CurrentEmployeeInitialedEvent(CurrentEmployee employee) {
|
||||||
|
super(employee);
|
||||||
|
this.employee = employee;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CurrentEmployee getSource() {
|
||||||
|
return employee;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,7 +22,6 @@ import lombok.Getter;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@@ -31,7 +30,6 @@ import java.net.URL;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.function.Consumer;
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,74 +39,9 @@ import java.util.logging.Level;
|
|||||||
* Created by ecep on 2017/05/08.
|
* Created by ecep on 2017/05/08.
|
||||||
*/
|
*/
|
||||||
public class Desktop extends Application {
|
public class Desktop extends Application {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(Desktop.class);
|
public static final Logger logger = LoggerFactory.getLogger(Desktop.class);
|
||||||
public static Desktop instance;
|
public static Desktop instance;
|
||||||
|
|
||||||
/**
|
|
||||||
* 在默认浏览器中打开指定的URL。
|
|
||||||
* <p>
|
|
||||||
* 该函数使用JavaFX的HostServices类来调用系统默认的浏览器,并打开传入的URL。
|
|
||||||
*
|
|
||||||
* @param url 要在浏览器中打开的URL字符串。该参数不能为空,且应为有效的URL格式。
|
|
||||||
*/
|
|
||||||
public static void showInBrowse(String url) {
|
|
||||||
instance.getHostServices().showDocument(url);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 在系统的文件资源管理器中打开指定的文件夹。
|
|
||||||
* <p>
|
|
||||||
* 该方法首先尝试使用 java.awt.Desktop API 打开文件夹。如果该 API 不支持,
|
|
||||||
* 则在 Windows 系统中使用 explorer.exe 打开文件夹。
|
|
||||||
*
|
|
||||||
* @param dir 要打开的文件夹对象。如果为 null 或无效路径,可能会抛出异常。
|
|
||||||
* @throws RuntimeException 如果使用 java.awt.Desktop 打开文件夹时发生 IOException,
|
|
||||||
* 则将其包装为 RuntimeException 抛出。
|
|
||||||
*/
|
|
||||||
public static void showInExplorer(File dir) {
|
|
||||||
if (java.awt.Desktop.isDesktopSupported()) {
|
|
||||||
try {
|
|
||||||
java.awt.Desktop.getDesktop().open(dir);
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
// 在Windows中使用explorer.exe打开文件夹,路径用双引号括起来
|
|
||||||
Process process = Runtime.getRuntime().exec(
|
|
||||||
new String[] { "explorer.exe", "\"" + dir.getAbsolutePath() + "\"" }, null, new File("."));
|
|
||||||
// process.waitFor();
|
|
||||||
} catch (IOException e) {
|
|
||||||
if (logger.isDebugEnabled()) {
|
|
||||||
logger.debug("Unable open {}", dir.getAbsolutePath(), e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void checkAndShowInExplorer(String path, Consumer<String> consumer) {
|
|
||||||
if (!StringUtils.hasText(path)) {
|
|
||||||
consumer.accept("文件/目录为空,无法打开");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
File file = new File(path);
|
|
||||||
if (!file.exists()) {
|
|
||||||
if (file.isFile()) {
|
|
||||||
consumer.accept("文件 " + file.getAbsolutePath() + " 不存在,请确认");
|
|
||||||
} else {
|
|
||||||
consumer.accept("目录 " + file.getAbsolutePath() + " 不存在,请确认");
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
Desktop.showInExplorer(file);
|
|
||||||
consumer.accept("打开文件/目录 " + path);
|
|
||||||
} catch (Exception e) {
|
|
||||||
consumer.accept("打开文件错误:" + e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void shutdown() {
|
public static void shutdown() {
|
||||||
if (logger.isDebugEnabled()) {
|
if (logger.isDebugEnabled()) {
|
||||||
logger.debug("shutdown");
|
logger.debug("shutdown");
|
||||||
@@ -249,7 +182,6 @@ public class Desktop extends Application {
|
|||||||
|
|
||||||
beanFactory.registerSingleton("scheduledExecutorService", getExecutorService());
|
beanFactory.registerSingleton("scheduledExecutorService", getExecutorService());
|
||||||
beanFactory.registerSingleton("taskMonitorCenter", taskMonitorCenter);
|
beanFactory.registerSingleton("taskMonitorCenter", taskMonitorCenter);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1,17 +1,26 @@
|
|||||||
package com.ecep.contract.manager;
|
package com.ecep.contract.manager;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import java.io.BufferedReader;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import java.io.BufferedWriter;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import java.io.File;
|
||||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
import java.io.FileReader;
|
||||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
import java.io.*;
|
|
||||||
import java.net.CookieStore;
|
import java.net.CookieStore;
|
||||||
import java.net.HttpCookie;
|
import java.net.HttpCookie;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||||
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
|
|
||||||
public class MyPersistentCookieStore implements CookieStore {
|
public class MyPersistentCookieStore implements CookieStore {
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
package com.ecep.contract.manager;
|
package com.ecep.contract.manager;
|
||||||
|
|
||||||
import com.ecep.contract.manager.cloud.CloudRepositoriesConfig;
|
import java.time.Duration;
|
||||||
import com.ecep.contract.manager.ds.DsRepositoriesConfig;
|
import java.time.Instant;
|
||||||
import com.ecep.contract.manager.ui.MessageHolder;
|
import java.time.LocalDate;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import java.time.LocalDateTime;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import java.time.LocalTime;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import java.time.format.DateTimeFormatter;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import java.util.Locale;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
|
import java.util.Properties;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
|
|
||||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
|
||||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
@@ -38,17 +36,21 @@ import org.springframework.core.metrics.StartupStep;
|
|||||||
import org.springframework.scheduling.annotation.EnableAsync;
|
import org.springframework.scheduling.annotation.EnableAsync;
|
||||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
|
||||||
import java.time.*;
|
import com.ecep.contract.manager.cloud.CloudRepositoriesConfig;
|
||||||
import java.time.format.DateTimeFormatter;
|
import com.ecep.contract.manager.ds.DsRepositoriesConfig;
|
||||||
import java.util.List;
|
import com.ecep.contract.manager.ui.MessageHolder;
|
||||||
import java.util.Locale;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import java.util.Properties;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import java.util.concurrent.Executors;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
import java.util.concurrent.FutureTask;
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication(exclude = { org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration.class })
|
||||||
@EnableScheduling
|
@EnableScheduling
|
||||||
@EnableAsync
|
@EnableAsync
|
||||||
@EnableCaching
|
@EnableCaching
|
||||||
@@ -97,7 +99,6 @@ public class SpringApp {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
startup.start("");
|
startup.start("");
|
||||||
context = application.run();
|
context = application.run();
|
||||||
logger.debug("SpringApp.launch application.run().");
|
logger.debug("SpringApp.launch application.run().");
|
||||||
@@ -178,7 +179,8 @@ public class SpringApp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void environmentPrepared(ConfigurableBootstrapContext bootstrapContext, ConfigurableEnvironment environment) {
|
public void environmentPrepared(ConfigurableBootstrapContext bootstrapContext,
|
||||||
|
ConfigurableEnvironment environment) {
|
||||||
logger.debug("Desktop.environmentPrepared");
|
logger.debug("Desktop.environmentPrepared");
|
||||||
debug("初始化 Environment 中,请稍后...");
|
debug("初始化 Environment 中,请稍后...");
|
||||||
}
|
}
|
||||||
@@ -195,7 +197,6 @@ public class SpringApp {
|
|||||||
debug("Spring Application Context 初始化完毕,请稍后...");
|
debug("Spring Application Context 初始化完毕,请稍后...");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void started(ConfigurableApplicationContext context, Duration timeTaken) {
|
public void started(ConfigurableApplicationContext context, Duration timeTaken) {
|
||||||
logger.debug("Desktop.started");
|
logger.debug("Desktop.started");
|
||||||
@@ -231,7 +232,7 @@ public class SpringApp {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public CacheManager cacheManager() {
|
public CacheManager cacheManager() {
|
||||||
// return new ConcurrentMapCacheManager("myCache");
|
// return new ConcurrentMapCacheManager("myCache");
|
||||||
CaffeineCacheManager cacheManager = new CaffeineCacheManager();
|
CaffeineCacheManager cacheManager = new CaffeineCacheManager();
|
||||||
cacheManager.setAsyncCacheMode(true);
|
cacheManager.setAsyncCacheMode(true);
|
||||||
return cacheManager;
|
return cacheManager;
|
||||||
@@ -242,10 +243,12 @@ public class SpringApp {
|
|||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
JavaTimeModule javaTimeModule = new JavaTimeModule();
|
JavaTimeModule javaTimeModule = new JavaTimeModule();
|
||||||
javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ISO_LOCAL_DATE));
|
javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ISO_LOCAL_DATE));
|
||||||
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN)));
|
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(
|
||||||
|
DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN)));
|
||||||
javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
|
javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
|
||||||
javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ISO_LOCAL_DATE));
|
javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ISO_LOCAL_DATE));
|
||||||
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN)));
|
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(
|
||||||
|
DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN)));
|
||||||
javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ISO_LOCAL_TIME));
|
javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ISO_LOCAL_TIME));
|
||||||
objectMapper.registerModule(javaTimeModule);
|
objectMapper.registerModule(javaTimeModule);
|
||||||
return objectMapper;
|
return objectMapper;
|
||||||
@@ -253,7 +256,7 @@ public class SpringApp {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public ScheduledExecutorService scheduledExecutorService() {
|
public ScheduledExecutorService scheduledExecutorService() {
|
||||||
return Executors.newScheduledThreadPool(3);
|
return Desktop.instance.getExecutorService();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ecep.contract.manager.cloud.old;
|
package com.ecep.contract.manager.cloud.old;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.Desktop;
|
||||||
import com.ecep.contract.manager.SpringApp;
|
import com.ecep.contract.manager.SpringApp;
|
||||||
import com.ecep.contract.manager.cloud.rk.CloudRk;
|
import com.ecep.contract.manager.cloud.rk.CloudRk;
|
||||||
import com.ecep.contract.manager.cloud.rk.CloudRkService;
|
import com.ecep.contract.manager.cloud.rk.CloudRkService;
|
||||||
@@ -81,8 +82,6 @@ public class OldVersionService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CloudTycService cloudTycService;
|
private CloudTycService cloudTycService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ScheduledExecutorService scheduledExecutorService;
|
|
||||||
@Autowired
|
|
||||||
private CompanyContactRepository companyContactRepository;
|
private CompanyContactRepository companyContactRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CompanyCustomerRepository companyCustomerRepository;
|
private CompanyCustomerRepository companyCustomerRepository;
|
||||||
@@ -210,7 +209,8 @@ public class OldVersionService {
|
|||||||
*/
|
*/
|
||||||
public void scheduledTasks(TaskProgressView<Task<?>> taskProgressView) {
|
public void scheduledTasks(TaskProgressView<Task<?>> taskProgressView) {
|
||||||
// 15分钟运行一次合同合同任务
|
// 15分钟运行一次合同合同任务
|
||||||
scheduledExecutorService.scheduleAtFixedRate(() -> {
|
ScheduledExecutorService executorService = Desktop.instance.getExecutorService();
|
||||||
|
executorService.scheduleAtFixedRate(() -> {
|
||||||
if (logger.isDebugEnabled()) {
|
if (logger.isDebugEnabled()) {
|
||||||
logger.debug("createSyncTask");
|
logger.debug("createSyncTask");
|
||||||
}
|
}
|
||||||
@@ -220,16 +220,9 @@ public class OldVersionService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Task<Object> vendorTask = new OldVersionSyncVendorTask();
|
Desktop.instance.getTaskMonitorCenter().registerTask(new OldVersionSyncVendorTask()).schedule(5, TimeUnit.SECONDS);
|
||||||
Task<Object> customerTask = new OldVersionSyncCustomerTask();
|
Desktop.instance.getTaskMonitorCenter().registerTask(new OldVersionSyncCustomerTask()).schedule(5, TimeUnit.SECONDS);
|
||||||
|
|
||||||
scheduledExecutorService.schedule(() -> {
|
|
||||||
vendorTask.run();
|
|
||||||
customerTask.run();
|
|
||||||
}, 5, TimeUnit.SECONDS);
|
|
||||||
Platform.runLater(() -> {
|
|
||||||
taskProgressView.getTasks().addAll(vendorTask, customerTask);
|
|
||||||
});
|
|
||||||
}, 3, TimeUnit.DAYS.toSeconds(1), TimeUnit.SECONDS);
|
}, 3, TimeUnit.DAYS.toSeconds(1), TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
package com.ecep.contract.manager.cloud.old;
|
package com.ecep.contract.manager.cloud.old;
|
||||||
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
|
||||||
import javafx.concurrent.Task;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -16,10 +8,20 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.SpringApp;
|
||||||
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
|
import com.ecep.contract.manager.ds.contract.model.Contract;
|
||||||
|
import com.ecep.contract.manager.ui.MessageHolder;
|
||||||
|
import com.ecep.contract.manager.ui.Tasker;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class OldVersionSyncCustomerTask extends Task<Object> {
|
public class OldVersionSyncCustomerTask extends Tasker<Object> {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(OldVersionSyncCustomerTask.class);
|
private static final Logger logger = LoggerFactory.getLogger(OldVersionSyncCustomerTask.class);
|
||||||
|
|
||||||
private final OldVersionService service = SpringApp.getBean(OldVersionService.class);
|
private final OldVersionService service = SpringApp.getBean(OldVersionService.class);
|
||||||
@@ -40,7 +42,7 @@ public class OldVersionSyncCustomerTask extends Task<Object> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Object call() throws Exception {
|
protected Object execute(MessageHolder holder) throws Exception {
|
||||||
updateTitle("老版本-同步客户数据");
|
updateTitle("老版本-同步客户数据");
|
||||||
basePath = companyService.getCustomerBasePath();
|
basePath = companyService.getCustomerBasePath();
|
||||||
List<Runnable> runnable = Arrays.asList(this::loadOldNames, this::loadContacts, this::syncCustomers, this::syncContracts);
|
List<Runnable> runnable = Arrays.asList(this::loadOldNames, this::loadContacts, this::syncCustomers, this::syncContracts);
|
||||||
@@ -122,4 +124,5 @@ public class OldVersionSyncCustomerTask extends Task<Object> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
package com.ecep.contract.manager.cloud.old;
|
package com.ecep.contract.manager.cloud.old;
|
||||||
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
|
||||||
import javafx.concurrent.Task;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -16,7 +8,17 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
public class OldVersionSyncVendorTask extends Task<Object> {
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.SpringApp;
|
||||||
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
|
import com.ecep.contract.manager.ds.contract.model.Contract;
|
||||||
|
import com.ecep.contract.manager.ui.MessageHolder;
|
||||||
|
import com.ecep.contract.manager.ui.Tasker;
|
||||||
|
|
||||||
|
public class OldVersionSyncVendorTask extends Tasker<Object> {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(OldVersionSyncVendorTask.class);
|
private static final Logger logger = LoggerFactory.getLogger(OldVersionSyncVendorTask.class);
|
||||||
|
|
||||||
private final OldVersionService service = SpringApp.getBean(OldVersionService.class);
|
private final OldVersionService service = SpringApp.getBean(OldVersionService.class);
|
||||||
@@ -35,12 +37,11 @@ public class OldVersionSyncVendorTask extends Task<Object> {
|
|||||||
super.updateTitle(titlePrefix + title);
|
super.updateTitle(titlePrefix + title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Object call() throws Exception {
|
protected Object execute(MessageHolder holder) throws Exception {
|
||||||
basePath = companyService.getVendorBasePath();
|
basePath = companyService.getVendorBasePath();
|
||||||
|
List<Runnable> runnable = Arrays.asList(this::loadOldNames, this::loadContacts, this::syncVendors,
|
||||||
List<Runnable> runnable = Arrays.asList(this::loadOldNames, this::loadContacts, this::syncVendors, this::syncContracts);
|
this::syncContracts);
|
||||||
for (int i = 0; i < runnable.size(); i++) {
|
for (int i = 0; i < runnable.size(); i++) {
|
||||||
titlePrefix = "老版本-同步供应商数据-" + (i + 1) + "/" + runnable.size() + "-";
|
titlePrefix = "老版本-同步供应商数据-" + (i + 1) + "/" + runnable.size() + "-";
|
||||||
try {
|
try {
|
||||||
@@ -116,4 +117,5 @@ public class OldVersionSyncVendorTask extends Task<Object> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ package com.ecep.contract.manager.cloud.rk;
|
|||||||
import org.hibernate.Hibernate;
|
import org.hibernate.Hibernate;
|
||||||
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
import com.ecep.contract.manager.SpringApp;
|
||||||
import com.ecep.contract.manager.ds.company.controller.CompanyTableCell;
|
import com.ecep.contract.manager.ui.table.cell.CompanyTableCell;
|
||||||
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||||
|
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
|
|||||||
@@ -1,25 +1,19 @@
|
|||||||
package com.ecep.contract.manager.cloud.rk;
|
package com.ecep.contract.manager.cloud.rk;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
|
||||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
|
||||||
import org.springframework.data.jpa.repository.Modifying;
|
|
||||||
import org.springframework.data.repository.CrudRepository;
|
|
||||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
|
||||||
import org.springframework.stereotype.Repository;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.ds.MyRepository;
|
||||||
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface CloudRkRepository
|
public interface CloudRkRepository extends MyRepository<CloudRk, Integer> {
|
||||||
// curd
|
|
||||||
extends CrudRepository<CloudRk, Integer>, PagingAndSortingRepository<CloudRk, Integer>,
|
|
||||||
// JPA interfaces
|
|
||||||
JpaRepository<CloudRk, Integer>, JpaSpecificationExecutor<CloudRk> {
|
|
||||||
|
|
||||||
Stream<CloudRk> findByCloudLatestAfter(Instant timestamp);
|
Stream<CloudRk> findByCloudLatestAfter(Instant timestamp);
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.ecep.contract.manager.cloud.rk;
|
package com.ecep.contract.manager.cloud.rk;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.Desktop;
|
||||||
import com.ecep.contract.manager.cloud.CloudInfo;
|
import com.ecep.contract.manager.cloud.CloudInfo;
|
||||||
import com.ecep.contract.manager.ds.company.BlackReasonType;
|
import com.ecep.contract.manager.ds.company.BlackReasonType;
|
||||||
import com.ecep.contract.manager.ds.company.CompanyFileUtils;
|
import com.ecep.contract.manager.ds.company.CompanyFileUtils;
|
||||||
@@ -88,7 +88,6 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
return MyStringUtils.toLong(string, DEFAULT_SYNC_ELAPSE);
|
return MyStringUtils.toLong(string, DEFAULT_SYNC_ELAPSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
public static class EntInfo {
|
public static class EntInfo {
|
||||||
@@ -110,8 +109,6 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
private CompanyOldNameRepository companyOldNameRepository;
|
private CompanyOldNameRepository companyOldNameRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CompanyBlackReasonRepository companyBlackReasonRepository;
|
private CompanyBlackReasonRepository companyBlackReasonRepository;
|
||||||
@Autowired
|
|
||||||
private ScheduledExecutorService scheduledExecutorService;
|
|
||||||
|
|
||||||
@Cacheable(key = "#p0")
|
@Cacheable(key = "#p0")
|
||||||
public CloudRk findById(Integer id) {
|
public CloudRk findById(Integer id) {
|
||||||
@@ -133,8 +130,7 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
builder.like(company.get("name"), "%" + searchText + "%"),
|
builder.like(company.get("name"), "%" + searchText + "%"),
|
||||||
builder.like(company.get("shortName"), "%" + searchText + "%"),
|
builder.like(company.get("shortName"), "%" + searchText + "%"),
|
||||||
builder.like(root.get("cloudId"), "%" + searchText + "%"),
|
builder.like(root.get("cloudId"), "%" + searchText + "%"),
|
||||||
builder.like(root.get("description"), "%" + searchText + "%")
|
builder.like(root.get("description"), "%" + searchText + "%"));
|
||||||
);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,8 +138,7 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
* 更新黑名单列表
|
* 更新黑名单列表
|
||||||
*/
|
*/
|
||||||
public void updateBlackList(
|
public void updateBlackList(
|
||||||
Company company, CloudRk cloudRk, BlackListUpdateContext context
|
Company company, CloudRk cloudRk, BlackListUpdateContext context) throws IOException {
|
||||||
) throws IOException {
|
|
||||||
List<String> companyNames = new ArrayList<>();
|
List<String> companyNames = new ArrayList<>();
|
||||||
companyNames.add(company.getName());
|
companyNames.add(company.getName());
|
||||||
// fixed 平台API使用企业名称,可能记录的是曾用名
|
// fixed 平台API使用企业名称,可能记录的是曾用名
|
||||||
@@ -172,12 +167,14 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
try {
|
try {
|
||||||
if (data.has("blackReason")) {
|
if (data.has("blackReason")) {
|
||||||
for (JsonNode reason : data.get("blackReason")) {
|
for (JsonNode reason : data.get("blackReason")) {
|
||||||
toCompanyBlackReasonList(company, BlackReasonType.BLACK, reason, dbReasons, reasonList, context.getObjectMapper());
|
toCompanyBlackReasonList(company, BlackReasonType.BLACK, reason, dbReasons,
|
||||||
|
reasonList, context.getObjectMapper());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (data.has("greyReason")) {
|
if (data.has("greyReason")) {
|
||||||
for (JsonNode reason : data.get("greyReason")) {
|
for (JsonNode reason : data.get("greyReason")) {
|
||||||
toCompanyBlackReasonList(company, BlackReasonType.GRAY, reason, dbReasons, reasonList, context.getObjectMapper());
|
toCompanyBlackReasonList(company, BlackReasonType.GRAY, reason, dbReasons,
|
||||||
|
reasonList, context.getObjectMapper());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
@@ -214,11 +211,11 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
private void toCompanyBlackReasonList(
|
private void toCompanyBlackReasonList(
|
||||||
Company company, BlackReasonType type,
|
Company company, BlackReasonType type,
|
||||||
JsonNode reason, List<CompanyBlackReason> dbReasons,
|
JsonNode reason, List<CompanyBlackReason> dbReasons,
|
||||||
List<CompanyBlackReason> reasonList, ObjectMapper objectMapper
|
List<CompanyBlackReason> reasonList, ObjectMapper objectMapper) throws JsonMappingException {
|
||||||
) throws JsonMappingException {
|
|
||||||
ObjectNode object = (ObjectNode) reason;
|
ObjectNode object = (ObjectNode) reason;
|
||||||
String key = "rk-" + object.remove("id").asText();
|
String key = "rk-" + object.remove("id").asText();
|
||||||
CompanyBlackReason cbr = dbReasons.stream().filter(r -> r.getKey().equals(key)).findAny().orElseGet(CompanyBlackReason::new);
|
CompanyBlackReason cbr = dbReasons.stream().filter(r -> r.getKey().equals(key)).findAny()
|
||||||
|
.orElseGet(CompanyBlackReason::new);
|
||||||
objectMapper.updateValue(cbr, reason);
|
objectMapper.updateValue(cbr, reason);
|
||||||
cbr.setCompany(company);
|
cbr.setCompany(company);
|
||||||
cbr.setType(type);
|
cbr.setType(type);
|
||||||
@@ -241,8 +238,7 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
* @return true
|
* @return true
|
||||||
*/
|
*/
|
||||||
public boolean checkBlackListUpdateElapse(
|
public boolean checkBlackListUpdateElapse(
|
||||||
Company company, CloudRk cloudRk, BlackListUpdateContext context
|
Company company, CloudRk cloudRk, BlackListUpdateContext context) {
|
||||||
) {
|
|
||||||
Instant start = cloudRk.getCloudBlackListUpdated();
|
Instant start = cloudRk.getCloudBlackListUpdated();
|
||||||
if (start == null) {
|
if (start == null) {
|
||||||
return true;
|
return true;
|
||||||
@@ -280,7 +276,8 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询有 CloudId 的记录
|
// 查询有 CloudId 的记录
|
||||||
List<CloudRk> hasCouldIdList = list.stream().filter(v -> StringUtils.hasText(v.getCloudId())).collect(Collectors.toList());
|
List<CloudRk> hasCouldIdList = list.stream().filter(v -> StringUtils.hasText(v.getCloudId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
// 没有匹配到一条时
|
// 没有匹配到一条时
|
||||||
if (hasCouldIdList.isEmpty()) {
|
if (hasCouldIdList.isEmpty()) {
|
||||||
// 保留第一条,其他删除
|
// 保留第一条,其他删除
|
||||||
@@ -299,7 +296,8 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询有 CloudLatest 的记录
|
// 查询有 CloudLatest 的记录
|
||||||
List<CloudRk> hasLatestList = hasCouldIdList.stream().filter(v -> v.getCloudLatest() != null).collect(Collectors.toList());
|
List<CloudRk> hasLatestList = hasCouldIdList.stream().filter(v -> v.getCloudLatest() != null)
|
||||||
|
.collect(Collectors.toList());
|
||||||
// 没有匹配到一条时
|
// 没有匹配到一条时
|
||||||
if (hasLatestList.isEmpty()) {
|
if (hasLatestList.isEmpty()) {
|
||||||
// 保留第一条,其他删除
|
// 保留第一条,其他删除
|
||||||
@@ -338,7 +336,6 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
cloudRKRepository.delete(entity);
|
cloudRKRepository.delete(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回 在 {@link #getSyncElapse()} 毫秒前,更新的
|
* 返回 在 {@link #getSyncElapse()} 毫秒前,更新的
|
||||||
*
|
*
|
||||||
@@ -354,7 +351,7 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
/**
|
/**
|
||||||
* 返回距离上次更新超过 SysConfig:cloud.rk.black_list.elapse 秒的公司
|
* 返回距离上次更新超过 SysConfig:cloud.rk.black_list.elapse 秒的公司
|
||||||
*/
|
*/
|
||||||
// @Transactional
|
// @Transactional
|
||||||
public List<CloudRk> findNeedUpdate() {
|
public List<CloudRk> findNeedUpdate() {
|
||||||
Instant now = Instant.now();
|
Instant now = Instant.now();
|
||||||
long elapse = getSyncElapse();
|
long elapse = getSyncElapse();
|
||||||
@@ -368,26 +365,14 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
* @param taskProgressView 任务视图
|
* @param taskProgressView 任务视图
|
||||||
*/
|
*/
|
||||||
public void scheduledTasks(TaskProgressView<Task<?>> taskProgressView) {
|
public void scheduledTasks(TaskProgressView<Task<?>> taskProgressView) {
|
||||||
AtomicReference<Runnable> reference = new AtomicReference<>();
|
ScheduledExecutorService executorService = Desktop.instance.getExecutorService();
|
||||||
Runnable runnable = () -> {
|
// 第一次延时1分钟启动
|
||||||
CloudRkSyncTask task = new CloudRkSyncTask();
|
executorService.schedule(() -> {
|
||||||
Platform.runLater(() -> taskProgressView.getTasks().add(task));
|
// 定时 30分钟 运行一次
|
||||||
// 延迟10秒
|
executorService.scheduleAtFixedRate(() -> {
|
||||||
task.delay(10, CompletableFuture.delayedExecutor(1, TimeUnit.SECONDS, scheduledExecutorService))
|
Desktop.instance.getTaskMonitorCenter().registerTask(new CloudRkSyncTask()).submit();
|
||||||
.thenRun(() -> {
|
}, 0, 30, TimeUnit.MINUTES);
|
||||||
try {
|
}, 1, TimeUnit.MINUTES);
|
||||||
task.run();
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error(e.getMessage(), e);
|
|
||||||
}
|
|
||||||
// 30 分钟后再次运行
|
|
||||||
scheduledExecutorService.schedule(reference.get(), 30, TimeUnit.MINUTES);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
reference.set(runnable);
|
|
||||||
// 第一次延时启动
|
|
||||||
scheduledExecutorService.schedule(runnable, 1, TimeUnit.MINUTES);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@CacheEvict
|
@CacheEvict
|
||||||
@@ -401,12 +386,10 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO 这个可以无法更新缓存
|
// TODO 这个可以无法更新缓存
|
||||||
@Caching(
|
@Caching(evict = {
|
||||||
evict = {
|
|
||||||
@CacheEvict(key = "#p0.id"),
|
@CacheEvict(key = "#p0.id"),
|
||||||
@CacheEvict(key = "#p1.id"),
|
@CacheEvict(key = "#p1.id"),
|
||||||
}
|
})
|
||||||
)
|
|
||||||
public void resetTo(Company from, Company to) {
|
public void resetTo(Company from, Company to) {
|
||||||
List<CloudRk> list = cloudRKRepository.findAllByCompanyId(from.getId());
|
List<CloudRk> list = cloudRKRepository.findAllByCompanyId(from.getId());
|
||||||
for (CloudRk item : list) {
|
for (CloudRk item : list) {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import com.ecep.contract.manager.ds.company.model.Company;
|
|||||||
import com.ecep.contract.manager.ds.company.model.CompanyContact;
|
import com.ecep.contract.manager.ds.company.model.CompanyContact;
|
||||||
import com.ecep.contract.manager.ds.company.model.CompanyOldName;
|
import com.ecep.contract.manager.ds.company.model.CompanyOldName;
|
||||||
import com.ecep.contract.manager.ds.company.repository.CompanyContactRepository;
|
import com.ecep.contract.manager.ds.company.repository.CompanyContactRepository;
|
||||||
import com.ecep.contract.manager.ds.company.repository.CompanyOldNameRepository;
|
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyOldNameService;
|
import com.ecep.contract.manager.ds.company.service.CompanyOldNameService;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|||||||
@@ -1,29 +1,30 @@
|
|||||||
package com.ecep.contract.manager.cloud.tyc;
|
package com.ecep.contract.manager.cloud.tyc;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.hibernate.Hibernate;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
import com.ecep.contract.manager.SpringApp;
|
||||||
import com.ecep.contract.manager.ds.company.controller.CompanyTableCell;
|
import com.ecep.contract.manager.ui.table.cell.CompanyTableCell;
|
||||||
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||||
import com.ecep.contract.manager.ui.ManagerSkin;
|
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
|
||||||
import jakarta.persistence.criteria.Path;
|
import jakarta.persistence.criteria.Path;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.control.ContextMenu;
|
import javafx.scene.control.ContextMenu;
|
||||||
import javafx.scene.control.MenuItem;
|
import javafx.scene.control.MenuItem;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
import org.springframework.data.domain.Page;
|
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class CloudTycManagerSkin
|
public class CloudTycManagerSkin
|
||||||
extends AbstEntityManagerSkin<CloudTyc, CloudTycInfoViewModel, CloudTycManagerSkin, CloudTycManagerWindowController>
|
extends
|
||||||
implements ManagerSkin {
|
AbstEntityManagerSkin<CloudTyc, CloudTycInfoViewModel, CloudTycManagerSkin, CloudTycManagerWindowController> {
|
||||||
@Setter
|
@Setter
|
||||||
private CloudTycService cloudTycService;
|
private CloudTycService cloudTycService;
|
||||||
|
|
||||||
@@ -58,8 +59,7 @@ public class CloudTycManagerSkin
|
|||||||
Path<Object> company = root.get("company");
|
Path<Object> company = root.get("company");
|
||||||
return builder.or(
|
return builder.or(
|
||||||
builder.like(company.get("name"), "%" + searchText + "%"),
|
builder.like(company.get("name"), "%" + searchText + "%"),
|
||||||
builder.like(company.get("shortName"), "%" + searchText + "%")
|
builder.like(company.get("shortName"), "%" + searchText + "%"));
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Specification<CloudTyc> cloudIdSpec = (root, query, builder) -> {
|
Specification<CloudTyc> cloudIdSpec = (root, query, builder) -> {
|
||||||
|
|||||||
@@ -1,40 +1,26 @@
|
|||||||
package com.ecep.contract.manager.cloud.tyc;
|
package com.ecep.contract.manager.cloud.tyc;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.context.annotation.Scope;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
import com.ecep.contract.manager.SpringApp;
|
||||||
import com.ecep.contract.manager.cloud.CloudBaseInfo;
|
import com.ecep.contract.manager.cloud.CloudBaseInfo;
|
||||||
import com.ecep.contract.manager.cloud.CloudInfo;
|
import com.ecep.contract.manager.cloud.CloudInfo;
|
||||||
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ui.AbstManagerWindowController;
|
import com.ecep.contract.manager.ui.AbstManagerWindowController;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
|
||||||
import com.ecep.contract.manager.ui.util.DelayOnceExecutor;
|
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
|
||||||
import com.ecep.contract.manager.util.TableViewUtils;
|
|
||||||
import javafx.application.Platform;
|
|
||||||
import javafx.collections.FXCollections;
|
|
||||||
import javafx.collections.ObservableList;
|
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.control.*;
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.control.TableColumn;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import javafx.stage.WindowEvent;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Lazy;
|
|
||||||
import org.springframework.context.annotation.Scope;
|
|
||||||
import org.springframework.data.domain.Page;
|
|
||||||
import org.springframework.data.domain.PageRequest;
|
|
||||||
import org.springframework.data.domain.Sort;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
import static com.ecep.contract.manager.util.TableViewUtils.getTableViewVisibleRows;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 天眼查信息管理窗口控制器
|
* 天眼查信息管理窗口控制器
|
||||||
@@ -56,23 +42,28 @@ public class CloudTycManagerWindowController
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CompanyService companyService;
|
private CompanyService companyService;
|
||||||
|
|
||||||
|
@FXML
|
||||||
public TableColumn<CloudTycInfoViewModel, Number> idColumn;
|
public TableColumn<CloudTycInfoViewModel, Number> idColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<CloudTycInfoViewModel, LocalDateTime> latestUpdateColumn;
|
public TableColumn<CloudTycInfoViewModel, LocalDateTime> latestUpdateColumn;
|
||||||
|
|
||||||
|
@FXML
|
||||||
public TableColumn<CloudTycInfoViewModel, Company> companyColumn;
|
public TableColumn<CloudTycInfoViewModel, Company> companyColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<CloudTycInfoViewModel, String> cloudIdColumn;
|
public TableColumn<CloudTycInfoViewModel, String> cloudIdColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<CloudTycInfoViewModel, LocalDateTime> cloudLatestColumn;
|
public TableColumn<CloudTycInfoViewModel, LocalDateTime> cloudLatestColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<CloudTycInfoViewModel, Number> scoreColumn;
|
public TableColumn<CloudTycInfoViewModel, Number> scoreColumn;
|
||||||
|
|
||||||
|
@FXML
|
||||||
public TableColumn<CloudTycInfoViewModel, String> descriptionColumn;
|
public TableColumn<CloudTycInfoViewModel, String> descriptionColumn;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CloudTycService getViewModelService() {
|
public CloudTycService getViewModelService() {
|
||||||
return cloudTycService;
|
return cloudTycService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected CloudTycManagerSkin createDefaultSkin() {
|
protected CloudTycManagerSkin createDefaultSkin() {
|
||||||
return new CloudTycManagerSkin(this);
|
return new CloudTycManagerSkin(this);
|
||||||
@@ -80,7 +71,8 @@ public class CloudTycManagerWindowController
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void show(Stage stage) {
|
public void show(Stage stage) {
|
||||||
super.show(stage);getTitle().set("数据源:天眼查");
|
super.show(stage);
|
||||||
|
getTitle().set("数据源:天眼查");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -88,7 +80,8 @@ public class CloudTycManagerWindowController
|
|||||||
*/
|
*/
|
||||||
public void onDateTransferAction(ActionEvent event) {
|
public void onDateTransferAction(ActionEvent event) {
|
||||||
CompletableFuture.runAsync(() -> {
|
CompletableFuture.runAsync(() -> {
|
||||||
com.ecep.contract.manager.cloud.CloudInfoRepository cloudInfoRepository = SpringApp.getBean(com.ecep.contract.manager.cloud.CloudInfoRepository.class);
|
com.ecep.contract.manager.cloud.CloudInfoRepository cloudInfoRepository = SpringApp
|
||||||
|
.getBean(com.ecep.contract.manager.cloud.CloudInfoRepository.class);
|
||||||
cloudInfoRepository.findAll().forEach(v -> {
|
cloudInfoRepository.findAll().forEach(v -> {
|
||||||
try {
|
try {
|
||||||
CloudTyc cloudTyc = cloudTycService.getOrCreateCloudTyc(v);
|
CloudTyc cloudTyc = cloudTycService.getOrCreateCloudTyc(v);
|
||||||
|
|||||||
@@ -1,23 +1,17 @@
|
|||||||
package com.ecep.contract.manager.cloud.tyc;
|
package com.ecep.contract.manager.cloud.tyc;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
|
||||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
|
||||||
import org.springframework.data.jpa.repository.Modifying;
|
|
||||||
import org.springframework.data.repository.CrudRepository;
|
|
||||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
|
||||||
import org.springframework.stereotype.Repository;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.ds.MyRepository;
|
||||||
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface CloudTycRepository
|
public interface CloudTycRepository extends MyRepository<CloudTyc, Integer> {
|
||||||
// curd
|
|
||||||
extends CrudRepository<CloudTyc, Integer>, PagingAndSortingRepository<CloudTyc, Integer>,
|
|
||||||
// JPA interfaces
|
|
||||||
JpaRepository<CloudTyc, Integer>, JpaSpecificationExecutor<CloudTyc> {
|
|
||||||
|
|
||||||
List<CloudTyc> findAllByCompanyId(Integer companyId);
|
List<CloudTyc> findAllByCompanyId(Integer companyId);
|
||||||
|
|
||||||
@@ -27,5 +21,4 @@ public interface CloudTycRepository
|
|||||||
@Transactional
|
@Transactional
|
||||||
int deleteAllByCompany(Company company);
|
int deleteAllByCompany(Company company);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ public class CloudTycService implements ViewModelService<CloudTyc, CloudTycInfoV
|
|||||||
|
|
||||||
String url = baseUrl + cloudId;
|
String url = baseUrl + cloudId;
|
||||||
|
|
||||||
com.ecep.contract.manager.Desktop.showInBrowse(url);
|
com.ecep.contract.manager.util.DesktopUtils.showInBrowse(url);
|
||||||
|
|
||||||
// UITools.showExceptionAndWait("使用浏览器打开网址出现异常", e);
|
// UITools.showExceptionAndWait("使用浏览器打开网址出现异常", e);
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
package com.ecep.contract.manager.cloud.u8;
|
package com.ecep.contract.manager.cloud.u8;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
import java.util.Map;
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import com.ecep.contract.manager.ds.contract.tasker.AbstContractRepairTasker;
|
import java.util.stream.Stream;
|
||||||
import com.ecep.contract.manager.ui.MessageHolder;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.Map;
|
import com.ecep.contract.manager.ds.contract.tasker.AbstContractRepairTasker;
|
||||||
import java.util.Objects;
|
import com.ecep.contract.manager.ui.MessageHolder;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用友U8系统-同步全量合同
|
* 用友U8系统-同步全量合同
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package com.ecep.contract.manager.cloud.u8;
|
package com.ecep.contract.manager.cloud.u8;
|
||||||
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
import com.ecep.contract.manager.SpringApp;
|
||||||
import com.ecep.contract.manager.ds.company.controller.CompanyTableCell;
|
import com.ecep.contract.manager.ui.table.cell.CompanyTableCell;
|
||||||
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||||
import com.ecep.contract.manager.ui.ManagerSkin;
|
import com.ecep.contract.manager.ui.ManagerSkin;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||||
import jakarta.persistence.criteria.Path;
|
import jakarta.persistence.criteria.Path;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
|
|||||||
@@ -118,20 +118,20 @@ public class YongYouU8Service implements ViewModelService<CloudYu, CloudYuInfoVi
|
|||||||
executorService.scheduleAtFixedRate(() -> {
|
executorService.scheduleAtFixedRate(() -> {
|
||||||
ContractSyncTask task = new ContractSyncTask();
|
ContractSyncTask task = new ContractSyncTask();
|
||||||
MonitoredTask<Object> registerTask = Desktop.instance.getTaskMonitorCenter().registerTask(task);
|
MonitoredTask<Object> registerTask = Desktop.instance.getTaskMonitorCenter().registerTask(task);
|
||||||
executorService.schedule(registerTask, 5, TimeUnit.SECONDS);
|
registerTask.schedule(5, TimeUnit.SECONDS);
|
||||||
}, 3, TimeUnit.MINUTES.toSeconds(15), TimeUnit.SECONDS);
|
}, 3, TimeUnit.MINUTES.toSeconds(15), TimeUnit.SECONDS);
|
||||||
|
|
||||||
executorService.scheduleAtFixedRate(() -> {
|
executorService.scheduleAtFixedRate(() -> {
|
||||||
// 1小时运行一次同步供应商任务
|
// 1小时运行一次同步供应商任务
|
||||||
VendorSyncTask vendorTask = new VendorSyncTask();
|
VendorSyncTask vendorTask = new VendorSyncTask();
|
||||||
MonitoredTask<Object> registerVendorTask = Desktop.instance.getTaskMonitorCenter().registerTask(vendorTask);
|
MonitoredTask<Object> registerVendorTask = Desktop.instance.getTaskMonitorCenter().registerTask(vendorTask);
|
||||||
executorService.schedule(registerVendorTask, 60, TimeUnit.SECONDS);
|
registerVendorTask.schedule(60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
// 1小时运行一次同步客户任务
|
// 1小时运行一次同步客户任务
|
||||||
CustomerSyncTask customerTask = new CustomerSyncTask();
|
CustomerSyncTask customerTask = new CustomerSyncTask();
|
||||||
MonitoredTask<Object> registerCustomerTask = Desktop.instance.getTaskMonitorCenter()
|
MonitoredTask<Object> registerCustomerTask = Desktop.instance.getTaskMonitorCenter()
|
||||||
.registerTask(customerTask);
|
.registerTask(customerTask);
|
||||||
executorService.schedule(registerCustomerTask, 60, TimeUnit.SECONDS);
|
registerCustomerTask.schedule(60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
}, 3, TimeUnit.HOURS.toSeconds(1), TimeUnit.SECONDS);
|
}, 3, TimeUnit.HOURS.toSeconds(1), TimeUnit.SECONDS);
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ import javax.sql.DataSource;
|
|||||||
|
|
||||||
import static com.ecep.contract.manager.AppV2.*;
|
import static com.ecep.contract.manager.AppV2.*;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableJpaRepositories(bootstrapMode = BootstrapMode.LAZY)
|
@EnableJpaRepositories(bootstrapMode = BootstrapMode.LAZY)
|
||||||
public class DsRepositoriesConfig {
|
public class DsRepositoriesConfig {
|
||||||
@@ -41,7 +43,6 @@ public class DsRepositoriesConfig {
|
|||||||
logger.debug("db server url:{},user:{}", url, username);
|
logger.debug("db server url:{},user:{}", url, username);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return DataSourceBuilder.create()
|
return DataSourceBuilder.create()
|
||||||
.type(HikariDataSource.class)
|
.type(HikariDataSource.class)
|
||||||
.url(url)
|
.url(url)
|
||||||
|
|||||||
@@ -3,9 +3,8 @@ package com.ecep.contract.manager.ds.company.controller;
|
|||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import lombok.Setter;
|
|
||||||
|
|
||||||
public abstract class AbstCompanyBasedTabSkin
|
public abstract class AbstCompanyBasedTabSkin
|
||||||
extends AbstEntityBasedTabSkin<CompanyWindowController, Company, CompanyViewModel>
|
extends AbstEntityBasedTabSkin<CompanyWindowController, Company, CompanyViewModel>
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import com.ecep.contract.manager.ds.company.vo.CompanyBasedViewModel;
|
|||||||
import com.ecep.contract.manager.ds.company.vo.CompanyViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
|
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
|
||||||
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.TableOfTabSkin;
|
import com.ecep.contract.manager.ui.table.TableOfTabSkin;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
|
|||||||
@@ -16,8 +16,7 @@ import java.util.List;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class CompanyManagerSkin
|
public class CompanyManagerSkin
|
||||||
extends AbstEntityManagerSkin<Company, CompanyViewModel, CompanyManagerSkin, CompanyManagerWindowController>
|
extends AbstEntityManagerSkin<Company, CompanyViewModel, CompanyManagerSkin, CompanyManagerWindowController> {
|
||||||
implements ManagerSkin {
|
|
||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
private CompanyOldNameService companyOldNameService;
|
private CompanyOldNameService companyOldNameService;
|
||||||
|
|||||||
@@ -1,23 +1,24 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller;
|
package com.ecep.contract.manager.ds.company.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import java.time.LocalDate;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
|
||||||
import com.ecep.contract.manager.ds.company.tasker.CompanyFilesRebuildTasker;
|
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyViewModel;
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
|
||||||
import com.ecep.contract.manager.ui.AbstManagerWindowController;
|
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
|
||||||
import com.ecep.contract.manager.util.UITools;
|
|
||||||
import javafx.event.ActionEvent;
|
|
||||||
import javafx.scene.control.TableColumn;
|
|
||||||
import javafx.stage.Stage;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
|
import com.ecep.contract.manager.ds.company.tasker.CompanyFilesRebuildTasker;
|
||||||
|
import com.ecep.contract.manager.ds.company.vo.CompanyViewModel;
|
||||||
|
import com.ecep.contract.manager.ui.AbstManagerWindowController;
|
||||||
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
|
import com.ecep.contract.manager.util.UITools;
|
||||||
|
|
||||||
|
import javafx.event.ActionEvent;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.control.TableColumn;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Scope("prototype")
|
@Scope("prototype")
|
||||||
@@ -27,11 +28,17 @@ public class CompanyManagerWindowController
|
|||||||
extends AbstManagerWindowController<Company, CompanyViewModel, CompanyManagerSkin> {
|
extends AbstManagerWindowController<Company, CompanyViewModel, CompanyManagerSkin> {
|
||||||
|
|
||||||
// columns
|
// columns
|
||||||
|
@FXML
|
||||||
public TableColumn<CompanyViewModel, Number> idColumn;
|
public TableColumn<CompanyViewModel, Number> idColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<CompanyViewModel, String> nameColumn;
|
public TableColumn<CompanyViewModel, String> nameColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<CompanyViewModel, String> uniscidColumn;
|
public TableColumn<CompanyViewModel, String> uniscidColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<CompanyViewModel, String> entStatusColumn;
|
public TableColumn<CompanyViewModel, String> entStatusColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<CompanyViewModel, LocalDate> createdColumn;
|
public TableColumn<CompanyViewModel, LocalDate> createdColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<CompanyViewModel, String> memoColumn;
|
public TableColumn<CompanyViewModel, String> memoColumn;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@@ -1,23 +1,19 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller;
|
package com.ecep.contract.manager.ds.company.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.controller.bank_account.BankAccountWindowController;
|
import com.ecep.contract.manager.ds.company.controller.bank_account.BankAccountWindowController;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
|
||||||
import com.ecep.contract.manager.ds.company.model.CompanyBankAccount;
|
import com.ecep.contract.manager.ds.company.model.CompanyBankAccount;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyBankAccountService;
|
import com.ecep.contract.manager.ds.company.service.CompanyBankAccountService;
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyBankAccountViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyBankAccountViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.model.Bank;
|
import com.ecep.contract.manager.ds.other.model.Bank;
|
||||||
import com.ecep.contract.manager.ds.other.service.BankService;
|
import com.ecep.contract.manager.ds.other.service.BankService;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.BankTableCell;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.input.KeyCode;
|
import javafx.scene.input.KeyCode;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.hibernate.Hibernate;
|
import org.hibernate.Hibernate;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子合同
|
* 子合同
|
||||||
@@ -63,21 +59,7 @@ public class CompanyTabSkinBankAccount
|
|||||||
|
|
||||||
bankAccountTable_idColumn.setCellValueFactory(param -> param.getValue().getId());
|
bankAccountTable_idColumn.setCellValueFactory(param -> param.getValue().getId());
|
||||||
bankAccountTable_bankColumn.setCellValueFactory(param -> param.getValue().getBank());
|
bankAccountTable_bankColumn.setCellValueFactory(param -> param.getValue().getBank());
|
||||||
bankAccountTable_bankColumn.setCellFactory(param -> new TableCell<>() {
|
bankAccountTable_bankColumn.setCellFactory(param -> new BankTableCell<>(getBankService()));
|
||||||
@Override
|
|
||||||
protected void updateItem(Bank item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (empty || item == null) {
|
|
||||||
setText(null);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getBankService().findById(item.getId());
|
|
||||||
setItem(item);
|
|
||||||
}
|
|
||||||
setText(item.getName());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
bankAccountTable_openingBankColumn.setCellValueFactory(param -> param.getValue().getOpeningBank());
|
bankAccountTable_openingBankColumn.setCellValueFactory(param -> param.getValue().getOpeningBank());
|
||||||
bankAccountTable_accountColumn.setCellValueFactory(param -> param.getValue().getAccount());
|
bankAccountTable_accountColumn.setCellValueFactory(param -> param.getValue().getAccount());
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.company.controller;
|
|||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.company.model.CompanyOldName;
|
import com.ecep.contract.manager.ds.company.model.CompanyOldName;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyOldNameService;
|
import com.ecep.contract.manager.ds.company.service.CompanyOldNameService;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.geometry.Insets;
|
import javafx.geometry.Insets;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
|
|||||||
@@ -8,19 +8,16 @@ import com.ecep.contract.manager.ds.company.model.Company;
|
|||||||
import com.ecep.contract.manager.ds.company.model.CompanyBlackReason;
|
import com.ecep.contract.manager.ds.company.model.CompanyBlackReason;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyBlackReasonService;
|
import com.ecep.contract.manager.ds.company.service.CompanyBlackReasonService;
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyBlackReasonViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyBlackReasonViewModel;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.input.KeyCode;
|
import javafx.scene.input.KeyCode;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子合同
|
* 子合同
|
||||||
|
|||||||
@@ -1,23 +1,18 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller;
|
package com.ecep.contract.manager.ds.company.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.controller.contact.CompanyContactWindowController;
|
import com.ecep.contract.manager.ds.company.controller.contact.CompanyContactWindowController;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
|
||||||
import com.ecep.contract.manager.ds.company.model.CompanyContact;
|
import com.ecep.contract.manager.ds.company.model.CompanyContact;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyContactService;
|
import com.ecep.contract.manager.ds.company.service.CompanyContactService;
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyContactViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyContactViewModel;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.input.KeyCode;
|
import javafx.scene.input.KeyCode;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子合同
|
* 子合同
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller;
|
package com.ecep.contract.manager.ds.company.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.Desktop;
|
|
||||||
import com.ecep.contract.manager.cloud.u8.YongYouU8Service;
|
import com.ecep.contract.manager.cloud.u8.YongYouU8Service;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.contract.controller.ContractGroupTableCell;
|
|
||||||
import com.ecep.contract.manager.ds.contract.controller.ContractKindTableCell;
|
|
||||||
import com.ecep.contract.manager.ds.contract.controller.ContractTypeTableCell;
|
|
||||||
import com.ecep.contract.manager.ds.contract.controller.ContractWindowController;
|
import com.ecep.contract.manager.ds.contract.controller.ContractWindowController;
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
import com.ecep.contract.manager.ds.contract.model.Contract;
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractKind;
|
import com.ecep.contract.manager.ds.contract.model.ContractKind;
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractType;
|
import com.ecep.contract.manager.ds.contract.model.ContractType;
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.ContractGroupService;
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.ContractKindService;
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.ContractTypeService;
|
||||||
import com.ecep.contract.manager.ds.contract.tasker.ContractRepairByCompanyTask;
|
import com.ecep.contract.manager.ds.contract.tasker.ContractRepairByCompanyTask;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.*;
|
||||||
import com.ecep.contract.manager.ui.util.ContractGroupStringConverter;
|
import com.ecep.contract.manager.ui.util.ContractGroupStringConverter;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
@@ -80,6 +80,12 @@ public class CompanyTabSkinContract
|
|||||||
@Setter
|
@Setter
|
||||||
private ContractService contractService;
|
private ContractService contractService;
|
||||||
@Setter
|
@Setter
|
||||||
|
private ContractGroupService contractGroupService;
|
||||||
|
@Setter
|
||||||
|
private ContractKindService contractKindService;
|
||||||
|
@Setter
|
||||||
|
private ContractTypeService contractTypeService;
|
||||||
|
@Setter
|
||||||
private YongYouU8Service u8Service;
|
private YongYouU8Service u8Service;
|
||||||
@Setter
|
@Setter
|
||||||
private EmployeeStringConverter employeeStringConverter;
|
private EmployeeStringConverter employeeStringConverter;
|
||||||
@@ -126,7 +132,7 @@ public class CompanyTabSkinContract
|
|||||||
|
|
||||||
ObservableList<ContractGroup> contractGroups = FXCollections.observableArrayList();
|
ObservableList<ContractGroup> contractGroups = FXCollections.observableArrayList();
|
||||||
contractGroups.add(null);
|
contractGroups.add(null);
|
||||||
contractGroups.addAll(contractService.findAllGroups());
|
contractGroups.addAll(getViewModelService().findAllGroups());
|
||||||
contractGroupSelector.setItems(contractGroups);
|
contractGroupSelector.setItems(contractGroups);
|
||||||
contractGroupSelector.setConverter(new ContractGroupStringConverter(contractGroups));
|
contractGroupSelector.setConverter(new ContractGroupStringConverter(contractGroups));
|
||||||
contractSearchKeyField.setOnKeyReleased(event -> {
|
contractSearchKeyField.setOnKeyReleased(event -> {
|
||||||
@@ -139,13 +145,13 @@ public class CompanyTabSkinContract
|
|||||||
CompletableFuture.runAsync(() -> {
|
CompletableFuture.runAsync(() -> {
|
||||||
// 计算主合同编号
|
// 计算主合同编号
|
||||||
for (ContractViewModel model : dataSet) {
|
for (ContractViewModel model : dataSet) {
|
||||||
Contract contract = contractService.findById(model.getId().get());
|
Contract contract = getViewModelService().findById(model.getId().get());
|
||||||
if (contract == null) {
|
if (contract == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
if (contractService.updateParentCode(contract)) {
|
if (getViewModelService().updateParentCode(contract)) {
|
||||||
Contract updated = contractService.save(contract);
|
Contract updated = getViewModelService().save(contract);
|
||||||
model.update(updated);
|
model.update(updated);
|
||||||
}
|
}
|
||||||
} catch (NoSuchElementException e) {
|
} catch (NoSuchElementException e) {
|
||||||
@@ -160,13 +166,13 @@ public class CompanyTabSkinContract
|
|||||||
contractTable_nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
contractTable_nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
||||||
contractTable_stateColumn.setCellValueFactory(param -> param.getValue().getState());
|
contractTable_stateColumn.setCellValueFactory(param -> param.getValue().getState());
|
||||||
contractTable_groupColumn.setCellValueFactory(param -> param.getValue().getGroup());
|
contractTable_groupColumn.setCellValueFactory(param -> param.getValue().getGroup());
|
||||||
contractTable_groupColumn.setCellFactory(param -> new ContractGroupTableCell(getViewModelService()));
|
contractTable_groupColumn.setCellFactory(param -> new ContractGroupTableCell<>(getContractGroupService()));
|
||||||
|
|
||||||
contractTable_typeColumn.setCellValueFactory(param -> param.getValue().getType());
|
contractTable_typeColumn.setCellValueFactory(param -> param.getValue().getType());
|
||||||
contractTable_typeColumn.setCellFactory(param -> new ContractTypeTableCell(getViewModelService()));
|
contractTable_typeColumn.setCellFactory(param -> new ContractTypeTableCell<>(getContractTypeService()));
|
||||||
|
|
||||||
contractTable_kindColumn.setCellValueFactory(param -> param.getValue().getKind());
|
contractTable_kindColumn.setCellValueFactory(param -> param.getValue().getKind());
|
||||||
contractTable_kindColumn.setCellFactory(param -> new ContractKindTableCell(getViewModelService()));
|
contractTable_kindColumn.setCellFactory(param -> new ContractKindTableCell<>(getContractKindService()));
|
||||||
|
|
||||||
|
|
||||||
contractTable_parentCodeColumn.setCellValueFactory(param -> param.getValue().getParentCode());
|
contractTable_parentCodeColumn.setCellValueFactory(param -> param.getValue().getParentCode());
|
||||||
@@ -174,18 +180,18 @@ public class CompanyTabSkinContract
|
|||||||
contractTable_startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate());
|
contractTable_startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate());
|
||||||
contractTable_endDateColumn.setCellValueFactory(param -> param.getValue().getEndDate());
|
contractTable_endDateColumn.setCellValueFactory(param -> param.getValue().getEndDate());
|
||||||
contractTable_setupPersonColumn.setCellValueFactory(param -> param.getValue().getSetupPerson());
|
contractTable_setupPersonColumn.setCellValueFactory(param -> param.getValue().getSetupPerson());
|
||||||
contractTable_setupPersonColumn.setCellFactory(TextFieldTableCell.forTableColumn(getEmployeeStringConverter()));
|
contractTable_setupPersonColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService()));
|
||||||
|
|
||||||
contractTable_setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate());
|
contractTable_setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate());
|
||||||
// contractTable_setupDateColumn.setSortable(true);
|
// contractTable_setupDateColumn.setSortable(true);
|
||||||
// contractTable_setupDateColumn.setSortType(TableColumn.SortType.DESCENDING);
|
// contractTable_setupDateColumn.setSortType(TableColumn.SortType.DESCENDING);
|
||||||
contractTable_inurePersonColumn.setCellValueFactory(param -> param.getValue().getInurePerson());
|
contractTable_inurePersonColumn.setCellValueFactory(param -> param.getValue().getInurePerson());
|
||||||
contractTable_inurePersonColumn.setCellFactory(TextFieldTableCell.forTableColumn(getEmployeeStringConverter()));
|
contractTable_inurePersonColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService()));
|
||||||
|
|
||||||
contractTable_inureDateColumn.setCellValueFactory(param -> param.getValue().getInureDate());
|
contractTable_inureDateColumn.setCellValueFactory(param -> param.getValue().getInureDate());
|
||||||
|
|
||||||
contractTable_varyPersonColumn.setCellValueFactory(param -> param.getValue().getVaryPerson());
|
contractTable_varyPersonColumn.setCellValueFactory(param -> param.getValue().getVaryPerson());
|
||||||
contractTable_varyPersonColumn.setCellFactory(TextFieldTableCell.forTableColumn(getEmployeeStringConverter()));
|
contractTable_varyPersonColumn.setCellFactory(param->new EmployeeTableCell<>(getEmployeeService()));
|
||||||
|
|
||||||
contractTable_varyDateColumn.setCellValueFactory(param -> param.getValue().getVaryDate());
|
contractTable_varyDateColumn.setCellValueFactory(param -> param.getValue().getVaryDate());
|
||||||
contractTable_createdColumn.setCellValueFactory(param -> param.getValue().getCreated());
|
contractTable_createdColumn.setCellValueFactory(param -> param.getValue().getCreated());
|
||||||
@@ -205,7 +211,7 @@ public class CompanyTabSkinContract
|
|||||||
|
|
||||||
private void onTableUpdateAction(ActionEvent event) {
|
private void onTableUpdateAction(ActionEvent event) {
|
||||||
ContractRepairByCompanyTask task = new ContractRepairByCompanyTask();
|
ContractRepairByCompanyTask task = new ContractRepairByCompanyTask();
|
||||||
task.setContractService(contractService);
|
task.setContractService(getViewModelService());
|
||||||
task.setCompany(getParent());
|
task.setCompany(getParent());
|
||||||
UITools.showTaskDialogAndWait("同步合同", task, null);
|
UITools.showTaskDialogAndWait("同步合同", task, null);
|
||||||
if (task.isRepaired()) {
|
if (task.isRepaired()) {
|
||||||
@@ -236,7 +242,7 @@ public class CompanyTabSkinContract
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Desktop.showInExplorer(file);
|
DesktopUtils.showInExplorer(file);
|
||||||
setStatus("打开文件/目录 " + path);
|
setStatus("打开文件/目录 " + path);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
setStatus("打开文件错误:" + e.getMessage());
|
setStatus("打开文件错误:" + e.getMessage());
|
||||||
@@ -255,6 +261,27 @@ public class CompanyTabSkinContract
|
|||||||
return contractService;
|
return contractService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ContractTypeService getContractTypeService() {
|
||||||
|
if (contractTypeService == null) {
|
||||||
|
contractTypeService = getBean(ContractTypeService.class);
|
||||||
|
}
|
||||||
|
return contractTypeService;
|
||||||
|
}
|
||||||
|
|
||||||
|
private ContractKindService getContractKindService() {
|
||||||
|
if (contractKindService == null) {
|
||||||
|
contractKindService = getBean(ContractKindService.class);
|
||||||
|
}
|
||||||
|
return contractKindService;
|
||||||
|
}
|
||||||
|
|
||||||
|
private ContractGroupService getContractGroupService() {
|
||||||
|
if (contractGroupService == null) {
|
||||||
|
contractGroupService = getBean(ContractGroupService.class);
|
||||||
|
}
|
||||||
|
return contractGroupService;
|
||||||
|
}
|
||||||
|
|
||||||
private EmployeeStringConverter getEmployeeStringConverter() {
|
private EmployeeStringConverter getEmployeeStringConverter() {
|
||||||
if (employeeStringConverter == null) {
|
if (employeeStringConverter == null) {
|
||||||
employeeStringConverter = getBean(EmployeeStringConverter.class);
|
employeeStringConverter = getBean(EmployeeStringConverter.class);
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller;
|
package com.ecep.contract.manager.ds.company.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.Desktop;
|
|
||||||
import com.ecep.contract.manager.MyProperties;
|
import com.ecep.contract.manager.MyProperties;
|
||||||
import com.ecep.contract.manager.cloud.tyc.CloudTycService;
|
import com.ecep.contract.manager.cloud.tyc.CloudTycService;
|
||||||
import com.ecep.contract.manager.ds.company.CompanyFileType;
|
import com.ecep.contract.manager.ds.company.CompanyFileType;
|
||||||
@@ -9,9 +8,10 @@ import com.ecep.contract.manager.ds.company.model.CompanyFile;
|
|||||||
import com.ecep.contract.manager.ds.company.model.CompanyFileTypeLocal;
|
import com.ecep.contract.manager.ds.company.model.CompanyFileTypeLocal;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyFileService;
|
import com.ecep.contract.manager.ds.company.service.CompanyFileService;
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
@@ -343,7 +343,7 @@ public class CompanyTabSkinFile
|
|||||||
setStatus("文件不存在 " + file.getName());
|
setStatus("文件不存在 " + file.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Desktop.showInExplorer(file);
|
DesktopUtils.showInExplorer(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import com.ecep.contract.manager.ds.company.service.InvoiceService;
|
|||||||
import com.ecep.contract.manager.ds.company.vo.InvoiceViewModel;
|
import com.ecep.contract.manager.ds.company.vo.InvoiceViewModel;
|
||||||
import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherService;
|
import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherService;
|
||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
import javafx.scene.control.TableColumn;
|
import javafx.scene.control.TableColumn;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import com.ecep.contract.manager.ds.company.model.CompanyOldName;
|
|||||||
import com.ecep.contract.manager.ds.company.service.CompanyOldNameService;
|
import com.ecep.contract.manager.ds.company.service.CompanyOldNameService;
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller;
|
package com.ecep.contract.manager.ds.company.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.Desktop;
|
|
||||||
import com.ecep.contract.manager.cloud.rk.CloudRk;
|
import com.ecep.contract.manager.cloud.rk.CloudRk;
|
||||||
import com.ecep.contract.manager.cloud.rk.CloudRkInfoViewModel;
|
import com.ecep.contract.manager.cloud.rk.CloudRkInfoViewModel;
|
||||||
import com.ecep.contract.manager.cloud.rk.CloudRkService;
|
import com.ecep.contract.manager.cloud.rk.CloudRkService;
|
||||||
@@ -17,8 +16,9 @@ import com.ecep.contract.manager.ds.company.service.CompanyExtendInfoService;
|
|||||||
import com.ecep.contract.manager.ds.company.vo.CompanyExtendInfoViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyExtendInfoViewModel;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.MessageHolder;
|
import com.ecep.contract.manager.ui.MessageHolder;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.util.DelayOnceExecutor;
|
import com.ecep.contract.manager.ui.util.DelayOnceExecutor;
|
||||||
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
@@ -376,7 +376,7 @@ public class CompanyTabSkinOther
|
|||||||
Company company = getEntity();
|
Company company = getEntity();
|
||||||
url = String.format(CloudTycService.URL_COMPANY_SEARCH, company.getName());
|
url = String.format(CloudTycService.URL_COMPANY_SEARCH, company.getName());
|
||||||
}
|
}
|
||||||
Desktop.showInBrowse(url);
|
DesktopUtils.showInBrowse(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onTycCloudPaneHyperLinkInnerViewClickedAction(ActionEvent event) {
|
public void onTycCloudPaneHyperLinkInnerViewClickedAction(ActionEvent event) {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller;
|
package com.ecep.contract.manager.ds.company.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.cloud.u8.YongYouU8Service;
|
import com.ecep.contract.manager.cloud.u8.YongYouU8Service;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Invoice;
|
import com.ecep.contract.manager.ds.company.model.Invoice;
|
||||||
import com.ecep.contract.manager.ds.company.service.InvoiceService;
|
import com.ecep.contract.manager.ds.company.service.InvoiceService;
|
||||||
import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher;
|
import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher;
|
||||||
@@ -10,19 +9,16 @@ import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherViewModel;
|
|||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
import com.ecep.contract.manager.ui.table.cell.InvoiceTableCell;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.control.cell.TextFieldTableCell;
|
import javafx.scene.control.cell.TextFieldTableCell;
|
||||||
import javafx.scene.input.KeyCode;
|
import javafx.scene.input.KeyCode;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子合同
|
* 子合同
|
||||||
|
|||||||
@@ -1,41 +0,0 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller;
|
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
|
|
||||||
import static com.ecep.contract.manager.SpringApp.getBean;
|
|
||||||
|
|
||||||
public class CompanyTableCell<V> extends javafx.scene.control.TableCell<V, com.ecep.contract.manager.ds.company.model.Company> {
|
|
||||||
|
|
||||||
|
|
||||||
private CompanyService companyService;
|
|
||||||
|
|
||||||
|
|
||||||
public CompanyTableCell() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public CompanyTableCell(CompanyService companyService) {
|
|
||||||
this.companyService = companyService;
|
|
||||||
}
|
|
||||||
|
|
||||||
private CompanyService getCompanyService() {
|
|
||||||
if (companyService == null) {
|
|
||||||
companyService = getBean(CompanyService.class);
|
|
||||||
}
|
|
||||||
return companyService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateItem(Company item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (empty || item == null) {
|
|
||||||
setText(null);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getCompanyService().findById(item.getId());
|
|
||||||
}
|
|
||||||
setText(item.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller;
|
package com.ecep.contract.manager.ds.company.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.Desktop;
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
import com.ecep.contract.manager.SpringApp;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyFileService;
|
import com.ecep.contract.manager.ds.company.service.CompanyFileService;
|
||||||
@@ -15,9 +14,10 @@ import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
|||||||
import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorWindowController;
|
import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorWindowController;
|
||||||
import com.ecep.contract.manager.ds.vendor.model.CompanyVendor;
|
import com.ecep.contract.manager.ds.vendor.model.CompanyVendor;
|
||||||
import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService;
|
import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityController;
|
import com.ecep.contract.manager.ui.AbstEntityController;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.beans.property.SimpleObjectProperty;
|
import javafx.beans.property.SimpleObjectProperty;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
@@ -307,7 +307,7 @@ public class CompanyWindowController
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Desktop.checkAndShowInExplorer(company.getPath(), this::setStatus);
|
DesktopUtils.checkAndShowInExplorer(company.getPath(), this::setStatus);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller;
|
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Invoice;
|
|
||||||
import com.ecep.contract.manager.ds.company.service.InvoiceService;
|
|
||||||
import javafx.scene.control.TableCell;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
|
|
||||||
import static com.ecep.contract.manager.SpringApp.getBean;
|
|
||||||
|
|
||||||
class InvoiceTableCell<V> extends TableCell<V, Invoice> {
|
|
||||||
private InvoiceService invoiceService;
|
|
||||||
|
|
||||||
public InvoiceTableCell() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public InvoiceTableCell(InvoiceService invoiceService) {
|
|
||||||
this.invoiceService = invoiceService;
|
|
||||||
}
|
|
||||||
|
|
||||||
private InvoiceService getInvoiceService() {
|
|
||||||
if (invoiceService == null) {
|
|
||||||
invoiceService = getBean(InvoiceService.class);
|
|
||||||
}
|
|
||||||
return invoiceService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateItem(Invoice item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (item == null || empty) {
|
|
||||||
setText(null);
|
|
||||||
setGraphic(null);
|
|
||||||
} else {
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getInvoiceService().findById(item.getId());
|
|
||||||
}
|
|
||||||
setText(item.getCode());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -5,13 +5,12 @@ import com.ecep.contract.manager.ds.company.CompanyStringConverter;
|
|||||||
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.company.model.CompanyBankAccount;
|
import com.ecep.contract.manager.ds.company.model.CompanyBankAccount;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyBankAccountService;
|
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyBankAccountViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyBankAccountViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.BankStringConverter;
|
import com.ecep.contract.manager.ds.other.BankStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.service.BankService;
|
import com.ecep.contract.manager.ds.other.service.BankService;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import com.ecep.contract.manager.ds.company.model.CompanyOldName;
|
|||||||
import com.ecep.contract.manager.ds.company.service.CompanyOldNameService;
|
import com.ecep.contract.manager.ds.company.service.CompanyOldNameService;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
import javafx.util.converter.LocalDateStringConverter;
|
import javafx.util.converter.LocalDateStringConverter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.ecep.contract.manager.ds.company.controller.old_name;
|
package com.ecep.contract.manager.ds.company.controller.old_name;
|
||||||
|
|
||||||
import com.ecep.contract.manager.Desktop;
|
|
||||||
import com.ecep.contract.manager.MyProperties;
|
import com.ecep.contract.manager.MyProperties;
|
||||||
import com.ecep.contract.manager.ds.company.CompanyFileType;
|
import com.ecep.contract.manager.ds.company.CompanyFileType;
|
||||||
import com.ecep.contract.manager.ds.company.model.CompanyFile;
|
import com.ecep.contract.manager.ds.company.model.CompanyFile;
|
||||||
@@ -9,8 +8,9 @@ import com.ecep.contract.manager.ds.company.service.CompanyFileService;
|
|||||||
import com.ecep.contract.manager.ds.company.service.CompanyOldNameService;
|
import com.ecep.contract.manager.ds.company.service.CompanyOldNameService;
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel;
|
||||||
import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
|
import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
@@ -318,7 +318,7 @@ public class CompanyOldNameTabSkinFile
|
|||||||
setStatus("文件不存在 " + file.getName());
|
setStatus("文件不存在 " + file.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Desktop.showInExplorer(file);
|
DesktopUtils.showInExplorer(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
|
|||||||
import com.ecep.contract.manager.ui.AbstEntityController;
|
import com.ecep.contract.manager.ui.AbstEntityController;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
import com.ecep.contract.manager.ui.ViewModelService;
|
||||||
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
@@ -25,8 +26,6 @@ import org.springframework.util.StringUtils;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
import static com.ecep.contract.manager.Desktop.showInExplorer;
|
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Scope("prototype")
|
@Scope("prototype")
|
||||||
@Component
|
@Component
|
||||||
@@ -125,7 +124,7 @@ public class CompanyOldNameWindowController extends AbstEntityController<Company
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
File file = new File(companyOldName.getPath());
|
File file = new File(companyOldName.getPath());
|
||||||
showInExplorer(file);
|
DesktopUtils.showInExplorer(file);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,25 @@
|
|||||||
package com.ecep.contract.manager.ds.company.model;
|
package com.ecep.contract.manager.ds.company.model;
|
||||||
|
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
|
|
||||||
import com.ecep.contract.manager.ds.other.model.NamedEntity;
|
|
||||||
import jakarta.persistence.*;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
import lombok.ToString;
|
|
||||||
import org.hibernate.annotations.ColumnDefault;
|
|
||||||
import org.hibernate.proxy.HibernateProxy;
|
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import org.hibernate.annotations.ColumnDefault;
|
||||||
|
import org.hibernate.proxy.HibernateProxy;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
|
||||||
|
import com.ecep.contract.manager.ds.other.model.NamedEntity;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.GeneratedValue;
|
||||||
|
import jakarta.persistence.GenerationType;
|
||||||
|
import jakarta.persistence.Id;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
import jakarta.persistence.Version;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公司信息类,保存企业信息
|
* 公司信息类,保存企业信息
|
||||||
*/
|
*/
|
||||||
@@ -32,21 +39,22 @@ public class Company implements IdentityEntity, NamedEntity, com.ecep.contract.
|
|||||||
*/
|
*/
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统一社会信用代码
|
* 统一社会信用代码
|
||||||
* <p>
|
* <p>
|
||||||
* 编码结构
|
* 编码结构
|
||||||
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* 1 | 1 | 6 | 9 | 1 <br>
|
* 1 | 1 | 6 | 9 | 1 < br > 登记管理部门代码 | 机构类别代码 | 登记管理机关行政区划码 | 主体标识码 | 校验码
|
||||||
* 登记管理部门代码|机构类别代码|登记管理机关行政区划码|主体标识码|校验码
|
|
||||||
* </pre>
|
* </pre>
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>登记管理部门代码(第 1 位):<br>
|
* <li>登记管理部门代码(第 1 位):<br>
|
||||||
* 例如,9 代表工商部门登记的企业等。</li>
|
* 例如,9 代表工商部门登记的企业等。</li>
|
||||||
* <li>机构类别代码(第 2 位):不同的数字表示不同类型的机构。如 1 表示企业,2 表示个体工商户等。</li>
|
* <li>机构类别代码(第 2 位):不同的数字表示不同类型的机构。如 1 表示企业,2 表示个体工商户等。</li>
|
||||||
* <li>登记管理机关行政区划码(第 3 - 8 位):这 6 位数字代表了登记管理机关所在的行政区划,与身份证号码的前 6 位类似,可对应到具体的地区。</li>
|
* <li>登记管理机关行政区划码(第 3 - 8 位):这 6 位数字代表了登记管理机关所在的行政区划,与身份证号码的前 6
|
||||||
* <li>主体标识码(组织机构代码,第 9 - 17 位):它是对中华人民共和国境内依法注册、依法登记的机关、企事业单位、社会团体和民办非企业单位等机构颁发的一个在全国范围内唯一的、始终不变的代码。</li>
|
* 位类似,可对应到具体的地区。</li>
|
||||||
|
* <li>主体标识码(组织机构代码,第 9 - 17
|
||||||
|
* 位):它是对中华人民共和国境内依法注册、依法登记的机关、企事业单位、社会团体和民办非企业单位等机构颁发的一个在全国范围内唯一的、始终不变的代码。</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
@@ -176,19 +184,27 @@ public class Company implements IdentityEntity, NamedEntity, com.ecep.contract.
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final boolean equals(Object object) {
|
public final boolean equals(Object object) {
|
||||||
if (this == object) return true;
|
if (this == object)
|
||||||
if (object == null) return false;
|
return true;
|
||||||
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
|
if (object == null)
|
||||||
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
|
return false;
|
||||||
if (thisEffectiveClass != oEffectiveClass) return false;
|
Class<?> oEffectiveClass = object instanceof HibernateProxy
|
||||||
|
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
|
||||||
|
: object.getClass();
|
||||||
|
Class<?> thisEffectiveClass = this instanceof HibernateProxy
|
||||||
|
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
|
||||||
|
: this.getClass();
|
||||||
|
if (thisEffectiveClass != oEffectiveClass)
|
||||||
|
return false;
|
||||||
Company company = (Company) object;
|
Company company = (Company) object;
|
||||||
return getId() != null && Objects.equals(getId(), company.getId());
|
return getId() != null && Objects.equals(getId(), company.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final int hashCode() {
|
public final int hashCode() {
|
||||||
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
|
return this instanceof HibernateProxy
|
||||||
|
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
|
||||||
|
: getClass().hashCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,9 +3,8 @@ package com.ecep.contract.manager.ds.contract.controller;
|
|||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
import com.ecep.contract.manager.ds.contract.model.Contract;
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import lombok.Setter;
|
|
||||||
|
|
||||||
public abstract class AbstContractBasedTabSkin
|
public abstract class AbstContractBasedTabSkin
|
||||||
extends AbstEntityBasedTabSkin<ContractWindowController, Contract, ContractViewModel>
|
extends AbstEntityBasedTabSkin<ContractWindowController, Contract, ContractViewModel>
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import com.ecep.contract.manager.ds.contract.service.ContractService;
|
|||||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
|
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
|
||||||
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.TableOfTabSkin;
|
import com.ecep.contract.manager.ui.table.TableOfTabSkin;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
|
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller;
|
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
|
||||||
import javafx.scene.control.TableCell;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
|
|
||||||
import static com.ecep.contract.manager.SpringApp.getBean;
|
|
||||||
|
|
||||||
public class ContractGroupTableCell extends TableCell<ContractViewModel, ContractGroup> {
|
|
||||||
private ContractService contractService;
|
|
||||||
|
|
||||||
public ContractGroupTableCell() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public ContractGroupTableCell(ContractService contractService) {
|
|
||||||
this.contractService = contractService;
|
|
||||||
}
|
|
||||||
|
|
||||||
ContractService getContractService() {
|
|
||||||
if (contractService == null) {
|
|
||||||
contractService = getBean(ContractService.class);
|
|
||||||
}
|
|
||||||
return contractService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateItem(ContractGroup item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (empty || item == null) {
|
|
||||||
setText("");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getContractService().findGroupById(item.getId());
|
|
||||||
}
|
|
||||||
setText(item.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller;
|
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractKind;
|
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
|
||||||
import javafx.scene.control.TableCell;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
|
|
||||||
import static com.ecep.contract.manager.SpringApp.getBean;
|
|
||||||
|
|
||||||
public class ContractKindTableCell extends TableCell<ContractViewModel, ContractKind> {
|
|
||||||
private ContractService contractService;
|
|
||||||
|
|
||||||
public ContractKindTableCell() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public ContractKindTableCell(ContractService contractService) {
|
|
||||||
this.contractService = contractService;
|
|
||||||
}
|
|
||||||
|
|
||||||
ContractService getContractService() {
|
|
||||||
if (contractService == null) {
|
|
||||||
contractService = getBean(ContractService.class);
|
|
||||||
}
|
|
||||||
return contractService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateItem(ContractKind item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (empty || item == null) {
|
|
||||||
setText("");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getContractService().findKindById(item.getId());
|
|
||||||
}
|
|
||||||
setText(item.getName());
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,42 +1,75 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller;
|
package com.ecep.contract.manager.ds.contract.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.controller.CompanyTableCell;
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.ContractGroupService;
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.ContractKindService;
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.ContractTypeService;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.*;
|
||||||
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ds.contract.ContractPayWay;
|
import com.ecep.contract.manager.ds.contract.ContractPayWay;
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
import com.ecep.contract.manager.ds.contract.model.Contract;
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
|
||||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||||
import com.ecep.contract.manager.ui.ComboBoxUtils;
|
import com.ecep.contract.manager.ui.ComboBoxUtils;
|
||||||
import com.ecep.contract.manager.ui.ManagerSkin;
|
import com.ecep.contract.manager.ui.ManagerSkin;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
|
|
||||||
import jakarta.persistence.criteria.Path;
|
import jakarta.persistence.criteria.Path;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.scene.control.cell.TextFieldTableCell;
|
import javafx.scene.control.cell.TextFieldTableCell;
|
||||||
import javafx.util.converter.CurrencyStringConverter;
|
import javafx.util.converter.CurrencyStringConverter;
|
||||||
import javafx.util.converter.LocalDateTimeStringConverter;
|
import javafx.util.converter.LocalDateTimeStringConverter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
|
||||||
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
|
|
||||||
public class ContractManagerSkin
|
public class ContractManagerSkin
|
||||||
extends AbstEntityManagerSkin<Contract, ContractViewModel, ContractManagerSkin, ContractManagerWindowController>
|
extends AbstEntityManagerSkin<Contract, ContractViewModel, ContractManagerSkin, ContractManagerWindowController>
|
||||||
implements ManagerSkin {
|
implements ManagerSkin {
|
||||||
@Setter
|
@Setter
|
||||||
private ContractService contractService;
|
private CompanyService companyService;
|
||||||
|
@Setter
|
||||||
|
private ContractGroupService contractGroupService;
|
||||||
|
@Setter
|
||||||
|
private ContractKindService contractKindService;
|
||||||
|
@Setter
|
||||||
|
private ContractTypeService contractTypeService;
|
||||||
|
|
||||||
|
|
||||||
public ContractManagerSkin(ContractManagerWindowController controller) {
|
public ContractManagerSkin(ContractManagerWindowController controller) {
|
||||||
super(controller);
|
super(controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ContractService getContractService() {
|
public ContractService getContractService() {
|
||||||
if (contractService == null) {
|
return controller.getViewModelService();
|
||||||
contractService = getBean(ContractService.class);
|
|
||||||
}
|
}
|
||||||
return contractService;
|
|
||||||
|
public CompanyService getCompanyService() {
|
||||||
|
if (companyService == null) {
|
||||||
|
companyService = getBean(CompanyService.class);
|
||||||
|
}
|
||||||
|
return companyService;
|
||||||
|
}private ContractTypeService getContractTypeService() {
|
||||||
|
if (contractTypeService == null) {
|
||||||
|
contractTypeService = getBean(ContractTypeService.class);
|
||||||
|
}
|
||||||
|
return contractTypeService;
|
||||||
|
}
|
||||||
|
private ContractKindService getContractKindService() {
|
||||||
|
if (contractKindService == null) {
|
||||||
|
contractKindService = getBean(ContractKindService.class);
|
||||||
|
}
|
||||||
|
return contractKindService;
|
||||||
|
}
|
||||||
|
private ContractGroupService getContractGroupService() {
|
||||||
|
if (contractGroupService == null) {
|
||||||
|
contractGroupService = getBean(ContractGroupService.class);
|
||||||
|
}
|
||||||
|
return contractGroupService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -52,10 +85,7 @@ public class ContractManagerSkin
|
|||||||
builder.equal(payWay, ContractPayWay.PAY),
|
builder.equal(payWay, ContractPayWay.PAY),
|
||||||
builder.or(
|
builder.or(
|
||||||
builder.equal(parentCode, ""),
|
builder.equal(parentCode, ""),
|
||||||
parentCode.isNull()
|
parentCode.isNull())));
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,7 +101,7 @@ public class ContractManagerSkin
|
|||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Override
|
@Override
|
||||||
public void initializeTable() {
|
public void initializeTable() {
|
||||||
ComboBoxUtils.initialComboBox(controller.groupSelector, contractService.findAllGroups(), true);
|
ComboBoxUtils.initialComboBox(controller.groupSelector, getContractService().findAllGroups(), true);
|
||||||
controller.groupSelector.valueProperty().addListener((observable, oldValue, newValue) -> {
|
controller.groupSelector.valueProperty().addListener((observable, oldValue, newValue) -> {
|
||||||
loadTableDataSet(false);
|
loadTableDataSet(false);
|
||||||
});
|
});
|
||||||
@@ -80,32 +110,33 @@ public class ContractManagerSkin
|
|||||||
controller.nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
controller.nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
||||||
controller.codeColumn.setCellValueFactory(param -> param.getValue().getCode());
|
controller.codeColumn.setCellValueFactory(param -> param.getValue().getCode());
|
||||||
controller.groupColumn.setCellValueFactory(param -> param.getValue().getGroup());
|
controller.groupColumn.setCellValueFactory(param -> param.getValue().getGroup());
|
||||||
controller.groupColumn.setCellFactory(param -> new ContractGroupTableCell(contractService));
|
controller.groupColumn.setCellFactory(param -> new ContractGroupTableCell<>(getContractGroupService()));
|
||||||
controller.typeColumn.setCellValueFactory(param -> param.getValue().getType());
|
controller.typeColumn.setCellValueFactory(param -> param.getValue().getType());
|
||||||
controller.typeColumn.setCellFactory(param -> new ContractTypeTableCell(contractService));
|
controller.typeColumn.setCellFactory(param -> new ContractTypeTableCell<>(getContractTypeService()));
|
||||||
controller.kindColumn.setCellValueFactory(param -> param.getValue().getKind());
|
controller.kindColumn.setCellValueFactory(param -> param.getValue().getKind());
|
||||||
controller.kindColumn.setCellFactory(param -> new ContractKindTableCell(contractService));
|
controller.kindColumn.setCellFactory(param -> new ContractKindTableCell<>(getContractKindService()));
|
||||||
|
|
||||||
controller.parentCodeColumn.setCellValueFactory(param -> param.getValue().getParentCode());
|
controller.parentCodeColumn.setCellValueFactory(param -> param.getValue().getParentCode());
|
||||||
|
|
||||||
|
|
||||||
controller.setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate());
|
controller.setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate());
|
||||||
controller.orderDateColumn.setCellValueFactory(param -> param.getValue().getOrderDate());
|
controller.orderDateColumn.setCellValueFactory(param -> param.getValue().getOrderDate());
|
||||||
controller.startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate());
|
controller.startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate());
|
||||||
|
|
||||||
|
|
||||||
controller.employeeColumn.setCellValueFactory(param -> param.getValue().getEmployee());
|
controller.employeeColumn.setCellValueFactory(param -> param.getValue().getEmployee());
|
||||||
controller.employeeColumn.setCellFactory(TextFieldTableCell.forTableColumn(getBean(EmployeeStringConverter.class)));
|
controller.employeeColumn
|
||||||
|
.setCellFactory(param -> new EmployeeTableCell<>(controller.getEmployeeService()));
|
||||||
|
|
||||||
controller.createdColumn.setCellValueFactory(param -> param.getValue().getCreated());
|
controller.createdColumn.setCellValueFactory(param -> param.getValue().getCreated());
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN);
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN);
|
||||||
controller.createdColumn.setCellFactory(TextFieldTableCell.forTableColumn(new LocalDateTimeStringConverter(formatter, null)));
|
controller.createdColumn
|
||||||
|
.setCellFactory(TextFieldTableCell.forTableColumn(new LocalDateTimeStringConverter(formatter, null)));
|
||||||
|
|
||||||
controller.amountColumn.setCellValueFactory(param -> param.getValue().getAmount());
|
controller.amountColumn.setCellValueFactory(param -> param.getValue().getAmount());
|
||||||
controller.amountColumn.setCellFactory(TextFieldTableCell.forTableColumn(new CurrencyStringConverter(getLocale(), "#,##0")));
|
controller.amountColumn
|
||||||
|
.setCellFactory(TextFieldTableCell.forTableColumn(new CurrencyStringConverter(getLocale(), "#,##0")));
|
||||||
|
|
||||||
controller.companyColumn.setCellValueFactory(param -> param.getValue().getCompany());
|
controller.companyColumn.setCellValueFactory(param -> param.getValue().getCompany());
|
||||||
controller.companyColumn.setCellFactory(param -> new CompanyTableCell<>());
|
controller.companyColumn.setCellFactory(param -> new CompanyTableCell<>(getCompanyService()));
|
||||||
|
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
controller.composeViewBtn.selectedProperty().addListener((observable, oldValue, newValue) -> {
|
controller.composeViewBtn.selectedProperty().addListener((observable, oldValue, newValue) -> {
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller;
|
package com.ecep.contract.manager.ds.contract.controller;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.context.annotation.Scope;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
import com.ecep.contract.manager.ds.contract.model.Contract;
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
||||||
@@ -12,20 +20,13 @@ import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
|||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ui.AbstManagerWindowController;
|
import com.ecep.contract.manager.ui.AbstManagerWindowController;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
|
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.control.CheckBox;
|
import javafx.scene.control.CheckBox;
|
||||||
import javafx.scene.control.ComboBox;
|
import javafx.scene.control.ComboBox;
|
||||||
import javafx.scene.control.TableColumn;
|
import javafx.scene.control.TableColumn;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Lazy;
|
|
||||||
import org.springframework.context.annotation.Scope;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Scope("prototype")
|
@Scope("prototype")
|
||||||
@@ -65,7 +66,6 @@ public class ContractManagerWindowController
|
|||||||
@Override
|
@Override
|
||||||
protected ContractManagerSkin createDefaultSkin() {
|
protected ContractManagerSkin createDefaultSkin() {
|
||||||
ContractManagerSkin skin = new ContractManagerSkin(this);
|
ContractManagerSkin skin = new ContractManagerSkin(this);
|
||||||
skin.setContractService(contractService);
|
|
||||||
return skin;
|
return skin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorWindowControl
|
|||||||
import com.ecep.contract.manager.ds.vendor.model.CompanyVendor;
|
import com.ecep.contract.manager.ds.vendor.model.CompanyVendor;
|
||||||
import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService;
|
import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService;
|
||||||
import com.ecep.contract.manager.ds.vendor.service.VendorGroupService;
|
import com.ecep.contract.manager.ds.vendor.service.VendorGroupService;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller;
|
package com.ecep.contract.manager.ds.contract.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
import org.hibernate.Hibernate;
|
||||||
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
import com.ecep.contract.manager.SpringApp;
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
import com.ecep.contract.manager.ds.contract.model.Contract;
|
||||||
import com.ecep.contract.manager.ds.contract.model.ExtendVendorInfo;
|
import com.ecep.contract.manager.ds.contract.model.ExtendVendorInfo;
|
||||||
@@ -9,34 +14,38 @@ import com.ecep.contract.manager.ds.vendor.model.VendorGroup;
|
|||||||
import com.ecep.contract.manager.ds.vendor.service.VendorGroupService;
|
import com.ecep.contract.manager.ds.vendor.service.VendorGroupService;
|
||||||
import com.ecep.contract.manager.ui.ComboBoxUtils;
|
import com.ecep.contract.manager.ui.ComboBoxUtils;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
|
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
import javafx.beans.property.BooleanProperty;
|
import javafx.beans.property.BooleanProperty;
|
||||||
import javafx.scene.control.*;
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.control.CheckBox;
|
||||||
|
import javafx.scene.control.ComboBox;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.scene.control.Tab;
|
||||||
|
import javafx.scene.control.TextField;
|
||||||
import javafx.util.converter.NumberStringConverter;
|
import javafx.util.converter.NumberStringConverter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
|
|
||||||
@FxmlPath("/ui/contract/contract-tab-ext-vendor-info.fxml")
|
@FxmlPath("/ui/contract/contract-tab-ext-vendor-info.fxml")
|
||||||
public class ContractTabSkinExtendVendorInfo
|
public class ContractTabSkinExtendVendorInfo
|
||||||
extends AbstContractBasedTabSkin
|
extends AbstContractBasedTabSkin {
|
||||||
implements TabSkin {
|
|
||||||
|
|
||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
private ExtendVendorInfoService extendVendorInfoService;
|
private ExtendVendorInfoService extendVendorInfoService;
|
||||||
@Setter
|
@Setter
|
||||||
private VendorGroupService vendorGroupService;
|
private VendorGroupService vendorGroupService;
|
||||||
|
|
||||||
|
@FXML
|
||||||
public ComboBox<VendorGroup> vendorGroupField;
|
public ComboBox<VendorGroup> vendorGroupField;
|
||||||
|
@FXML
|
||||||
public Label vendorGroupLabel;
|
public Label vendorGroupLabel;
|
||||||
|
@FXML
|
||||||
public TextField sequenceNumberField;
|
public TextField sequenceNumberField;
|
||||||
|
@FXML
|
||||||
public CheckBox assignedProviderField;
|
public CheckBox assignedProviderField;
|
||||||
|
@FXML
|
||||||
public CheckBox prePurchaseField;
|
public CheckBox prePurchaseField;
|
||||||
|
|
||||||
CompletableFuture<ExtendVendorInfo> loadedFuture;
|
CompletableFuture<ExtendVendorInfo> loadedFuture;
|
||||||
@@ -114,8 +123,8 @@ public class ContractTabSkinExtendVendorInfo
|
|||||||
return v.getDescription();
|
return v.getDescription();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
sequenceNumberField.textProperty().bindBidirectional(viewModel.getCodeSequenceNumber(),
|
||||||
sequenceNumberField.textProperty().bindBidirectional(viewModel.getCodeSequenceNumber(), new NumberStringConverter());
|
new NumberStringConverter());
|
||||||
assignedProviderField.selectedProperty().bindBidirectional(viewModel.getAssignedProvider());
|
assignedProviderField.selectedProperty().bindBidirectional(viewModel.getAssignedProvider());
|
||||||
assignedProviderField.disableProperty().bind(Bindings.createBooleanBinding(() -> {
|
assignedProviderField.disableProperty().bind(Bindings.createBooleanBinding(() -> {
|
||||||
VendorGroup group = viewModel.getGroup().get();
|
VendorGroup group = viewModel.getGroup().get();
|
||||||
@@ -128,7 +137,6 @@ public class ContractTabSkinExtendVendorInfo
|
|||||||
prePurchaseField.selectedProperty().bindBidirectional(viewModel.getPrePurchase());
|
prePurchaseField.selectedProperty().bindBidirectional(viewModel.getPrePurchase());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void save() {
|
public void save() {
|
||||||
if (loadedFuture != null) {
|
if (loadedFuture != null) {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller;
|
package com.ecep.contract.manager.ds.contract.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.Desktop;
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
import com.ecep.contract.manager.SpringApp;
|
||||||
import com.ecep.contract.manager.cloud.u8.ctx.ContractCtx;
|
import com.ecep.contract.manager.cloud.u8.ctx.ContractCtx;
|
||||||
import com.ecep.contract.manager.ds.company.CompanyFileUtils;
|
import com.ecep.contract.manager.ds.company.CompanyFileUtils;
|
||||||
@@ -14,10 +13,11 @@ import com.ecep.contract.manager.ds.contract.service.ContractFileService;
|
|||||||
import com.ecep.contract.manager.ds.contract.tasker.ContractFilesRebuildTasker;
|
import com.ecep.contract.manager.ds.contract.tasker.ContractFilesRebuildTasker;
|
||||||
import com.ecep.contract.manager.ds.contract.tasker.CustomerContractCostFormUpdateTask;
|
import com.ecep.contract.manager.ds.contract.tasker.CustomerContractCostFormUpdateTask;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractFileViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractFileViewModel;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell;
|
import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell;
|
||||||
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
@@ -573,7 +573,7 @@ public class ContractTabSkinFiles
|
|||||||
setStatus("文件不存在 " + file.getName());
|
setStatus("文件不存在 " + file.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Desktop.showInExplorer(file);
|
DesktopUtils.showInExplorer(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onFileTableContextMenuShowing(WindowEvent windowEvent) {
|
public void onFileTableContextMenuShowing(WindowEvent windowEvent) {
|
||||||
|
|||||||
@@ -9,8 +9,7 @@ import com.ecep.contract.manager.ds.contract.service.ContractService;
|
|||||||
import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractItemViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractItemViewModel;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.beans.property.SimpleListProperty;
|
import javafx.beans.property.SimpleListProperty;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
@@ -22,7 +21,6 @@ import lombok.Setter;
|
|||||||
import org.hibernate.Hibernate;
|
import org.hibernate.Hibernate;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|||||||
@@ -1,23 +1,21 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller;
|
package com.ecep.contract.manager.ds.contract.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
import com.ecep.contract.manager.ds.contract.model.Contract;
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractItem;
|
import com.ecep.contract.manager.ds.contract.model.ContractItem;
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractItemService;
|
import com.ecep.contract.manager.ds.contract.service.ContractItemService;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractItemViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractItemViewModel;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ProjectCostItemViewModel;
|
|
||||||
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell;
|
import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell;
|
||||||
import com.ecep.contract.manager.ds.other.controller.inventory.InventoryWindowController;
|
import com.ecep.contract.manager.ds.other.controller.inventory.InventoryWindowController;
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ds.other.model.Inventory;
|
import com.ecep.contract.manager.ds.other.model.Inventory;
|
||||||
import com.ecep.contract.manager.ds.other.service.InventoryService;
|
import com.ecep.contract.manager.ds.other.service.InventoryService;
|
||||||
import com.ecep.contract.manager.ds.other.vo.InventoryViewModel;
|
import com.ecep.contract.manager.ds.other.vo.InventoryViewModel;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.scene.control.ContextMenu;
|
import javafx.scene.control.ContextMenu;
|
||||||
import javafx.scene.control.MenuItem;
|
import javafx.scene.control.MenuItem;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.ecep.contract.manager.ds.contract.service.ContractPayPlanService;
|
|||||||
import com.ecep.contract.manager.ds.contract.vo.ContractPayPlanViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractPayPlanViewModel;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
import com.ecep.contract.manager.ui.ViewModelService;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||||
import javafx.scene.control.ContextMenu;
|
import javafx.scene.control.ContextMenu;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
import javafx.scene.control.TableColumn;
|
import javafx.scene.control.TableColumn;
|
||||||
|
|||||||
@@ -7,10 +7,9 @@ import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService;
|
|||||||
import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.input.KeyCode;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel;
|
|||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell;
|
import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.control.cell.TextFieldTableCell;
|
import javafx.scene.control.cell.TextFieldTableCell;
|
||||||
|
|||||||
@@ -5,17 +5,14 @@ import com.ecep.contract.manager.ds.contract.model.Contract;
|
|||||||
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.input.KeyCode;
|
import javafx.scene.input.KeyCode;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子合同
|
* 子合同
|
||||||
|
|||||||
@@ -11,17 +11,15 @@ import com.ecep.contract.manager.ds.contract.model.ContractFile;
|
|||||||
import com.ecep.contract.manager.ds.contract.service.ContractBidVendorService;
|
import com.ecep.contract.manager.ds.contract.service.ContractBidVendorService;
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractFileService;
|
import com.ecep.contract.manager.ds.contract.service.ContractFileService;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractBidVendorViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractBidVendorViewModel;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.util.StringConverter;
|
import javafx.util.StringConverter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.controlsfx.control.textfield.TextFields;
|
import org.controlsfx.control.textfield.TextFields;
|
||||||
import org.hibernate.Hibernate;
|
import org.hibernate.Hibernate;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller;
|
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractType;
|
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
|
||||||
import javafx.scene.control.TableCell;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
|
|
||||||
import static com.ecep.contract.manager.SpringApp.getBean;
|
|
||||||
|
|
||||||
public class ContractTypeTableCell extends TableCell<ContractViewModel, ContractType> {
|
|
||||||
private ContractService contractService;
|
|
||||||
|
|
||||||
public ContractTypeTableCell() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public ContractTypeTableCell(ContractService contractService) {
|
|
||||||
this.contractService = contractService;
|
|
||||||
}
|
|
||||||
|
|
||||||
ContractService getContractService() {
|
|
||||||
if (contractService == null) {
|
|
||||||
contractService = getBean(ContractService.class);
|
|
||||||
}
|
|
||||||
return contractService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateItem(ContractType item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (empty || item == null) {
|
|
||||||
setText("");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getContractService().findTypeById(item.getId());
|
|
||||||
}
|
|
||||||
setText(item.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -13,6 +13,7 @@ import com.ecep.contract.manager.ds.vendor.service.VendorGroupService;
|
|||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.Message;
|
import com.ecep.contract.manager.ui.Message;
|
||||||
import com.ecep.contract.manager.ui.MessageHolder;
|
import com.ecep.contract.manager.ui.MessageHolder;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.beans.property.SimpleListProperty;
|
import javafx.beans.property.SimpleListProperty;
|
||||||
@@ -23,6 +24,7 @@ import javafx.collections.ListChangeListener;
|
|||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.stage.*;
|
import javafx.stage.*;
|
||||||
@@ -103,24 +105,7 @@ public class ContractVerifyWindowController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class EmployeeTableCell extends TableCell<Model, Employee> {
|
|
||||||
@Override
|
|
||||||
protected void updateItem(Employee item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (empty || item == null) {
|
|
||||||
setText(null);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = employeeService.findById(item.getId());
|
|
||||||
Model model = getTableRow().getItem();
|
|
||||||
if (model != null) {
|
|
||||||
model.getEmployee().set(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
setText(item.toPrettyString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static class StateTableCell extends TableCell<Model, ObservableList<MessageExt>> {
|
static class StateTableCell extends TableCell<Model, ObservableList<MessageExt>> {
|
||||||
Label message2Label(MessageExt message) {
|
Label message2Label(MessageExt message) {
|
||||||
@@ -177,29 +162,46 @@ public class ContractVerifyWindowController extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EmployeeService employeeService;
|
private EmployeeService employeeService;
|
||||||
|
|
||||||
|
@FXML
|
||||||
public DatePicker setupDateBeginSelector;
|
public DatePicker setupDateBeginSelector;
|
||||||
|
@FXML
|
||||||
public DatePicker setupDateEndSelector;
|
public DatePicker setupDateEndSelector;
|
||||||
// 企业验证开关
|
// 企业验证开关
|
||||||
|
@FXML
|
||||||
public CheckMenuItem verifyCompanyStatusChecker;
|
public CheckMenuItem verifyCompanyStatusChecker;
|
||||||
|
@FXML
|
||||||
public CheckMenuItem verifyCompanyPathChecker;
|
public CheckMenuItem verifyCompanyPathChecker;
|
||||||
|
@FXML
|
||||||
public CheckMenuItem verifyCompanyCreditChecker;
|
public CheckMenuItem verifyCompanyCreditChecker;
|
||||||
// 供应商验证开关
|
// 供应商验证开关
|
||||||
|
@FXML
|
||||||
public CheckMenuItem verifyVendorChecker;
|
public CheckMenuItem verifyVendorChecker;
|
||||||
|
@FXML
|
||||||
public CheckMenuItem verifyVendorFileChecker;
|
public CheckMenuItem verifyVendorFileChecker;
|
||||||
// 客户验证开关
|
// 客户验证开关
|
||||||
|
@FXML
|
||||||
public CheckMenuItem verifyCustomerChecker;
|
public CheckMenuItem verifyCustomerChecker;
|
||||||
|
@FXML
|
||||||
public CheckMenuItem verifyCustomerFileChecker;
|
public CheckMenuItem verifyCustomerFileChecker;
|
||||||
|
@FXML
|
||||||
public CheckMenuItem verifyCustomerSubContractDateChecker;
|
public CheckMenuItem verifyCustomerSubContractDateChecker;
|
||||||
|
|
||||||
|
@FXML
|
||||||
public CheckMenuItem onlyShowVerifiedChecker;
|
public CheckMenuItem onlyShowVerifiedChecker;
|
||||||
|
|
||||||
|
|
||||||
|
@FXML
|
||||||
public TableView<Model> viewTable;
|
public TableView<Model> viewTable;
|
||||||
private final ObservableList<Model> viewTableDataSet = FXCollections.observableArrayList();
|
private final ObservableList<Model> viewTableDataSet = FXCollections.observableArrayList();
|
||||||
|
@FXML
|
||||||
public TableColumn<Model, String> viewTable_codeColumn;
|
public TableColumn<Model, String> viewTable_codeColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<Model, String> viewTable_nameColumn;
|
public TableColumn<Model, String> viewTable_nameColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<Model, Employee> viewTable_employeeColumn;
|
public TableColumn<Model, Employee> viewTable_employeeColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<Model, LocalDate> viewTable_setupDateColumn;
|
public TableColumn<Model, LocalDate> viewTable_setupDateColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<Model, ObservableList<MessageExt>> viewTable_stateColumn;
|
public TableColumn<Model, ObservableList<MessageExt>> viewTable_stateColumn;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -220,7 +222,7 @@ public class ContractVerifyWindowController extends BaseController {
|
|||||||
viewTable_codeColumn.setCellValueFactory(param -> param.getValue().getCode());
|
viewTable_codeColumn.setCellValueFactory(param -> param.getValue().getCode());
|
||||||
viewTable_nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
viewTable_nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
||||||
viewTable_employeeColumn.setCellValueFactory(param -> param.getValue().getEmployee());
|
viewTable_employeeColumn.setCellValueFactory(param -> param.getValue().getEmployee());
|
||||||
viewTable_employeeColumn.setCellFactory(param -> new EmployeeTableCell());
|
viewTable_employeeColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService()));
|
||||||
viewTable_setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate());
|
viewTable_setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate());
|
||||||
// viewTable_stateColumn.setCellValueFactory(param -> param.getValue().getMessages().map(messages -> {
|
// viewTable_stateColumn.setCellValueFactory(param -> param.getValue().getMessages().map(messages -> {
|
||||||
// return messages.stream().map(Message::getMessage).collect(Collectors.joining(", "));
|
// return messages.stream().map(Message::getMessage).collect(Collectors.joining(", "));
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller;
|
package com.ecep.contract.manager.ds.contract.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.Desktop;
|
|
||||||
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
import com.ecep.contract.manager.ds.company.controller.CompanyWindowController;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
@@ -12,6 +11,7 @@ import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
|||||||
import com.ecep.contract.manager.ds.project.service.ProjectService;
|
import com.ecep.contract.manager.ds.project.service.ProjectService;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityController;
|
import com.ecep.contract.manager.ui.AbstEntityController;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
@@ -184,7 +184,7 @@ public class ContractWindowController
|
|||||||
setStatus("目录错误,不存在");
|
setStatus("目录错误,不存在");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Desktop.showInExplorer(file);
|
DesktopUtils.showInExplorer(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onContractOpenRelativeCompanyAction(ActionEvent event) {
|
public void onContractOpenRelativeCompanyAction(ActionEvent event) {
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import com.ecep.contract.manager.ds.contract.vo.ContractBidVendorViewModel;
|
|||||||
import com.ecep.contract.manager.ds.contract.vo.ContractFileViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractFileViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.vo.BaseViewModel;
|
import com.ecep.contract.manager.ds.other.vo.BaseViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller.purchase_bill;
|
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
|
||||||
import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherItemViewModel;
|
|
||||||
import javafx.scene.control.TableCell;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
|
|
||||||
class ContractTableCell extends TableCell<PurchaseBillVoucherItemViewModel, Contract> {
|
|
||||||
private final PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems;
|
|
||||||
ContractService contractService;
|
|
||||||
|
|
||||||
public ContractTableCell(PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems) {
|
|
||||||
this.purchaseBillVoucherTabSkinItems = purchaseBillVoucherTabSkinItems;
|
|
||||||
}
|
|
||||||
|
|
||||||
ContractService getContractService() {
|
|
||||||
if (contractService == null) {
|
|
||||||
contractService = purchaseBillVoucherTabSkinItems.getBean(ContractService.class);
|
|
||||||
}
|
|
||||||
return contractService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateItem(Contract item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (item == null || empty) {
|
|
||||||
setText(null);
|
|
||||||
setGraphic(null);
|
|
||||||
} else {
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getContractService().findById(item.getId());
|
|
||||||
getTableRow().getItem().getContract().set(item);
|
|
||||||
}
|
|
||||||
setText(item.getCode());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -7,14 +7,20 @@ import com.ecep.contract.manager.ds.contract.model.Contract;
|
|||||||
import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher;
|
import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher;
|
||||||
import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucherItem;
|
import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucherItem;
|
||||||
import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem;
|
import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem;
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
||||||
import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherItemService;
|
import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherItemService;
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.PurchaseOrderItemService;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherItemViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherItemViewModel;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.controller.InventoryTableCell;
|
|
||||||
import com.ecep.contract.manager.ds.other.model.Inventory;
|
import com.ecep.contract.manager.ds.other.model.Inventory;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
import com.ecep.contract.manager.ds.other.service.InventoryService;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
|
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.ContractTableCell;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.InventoryTableCell;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.InvoiceTableCell;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.PurchaseOrderItemTableCell;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
@@ -22,7 +28,6 @@ import javafx.scene.control.TableCell;
|
|||||||
import javafx.scene.control.TableColumn;
|
import javafx.scene.control.TableColumn;
|
||||||
import javafx.util.Callback;
|
import javafx.util.Callback;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
|
|
||||||
@FxmlPath("/ui/contract/purchase-bill-voucher-tab-item.fxml")
|
@FxmlPath("/ui/contract/purchase-bill-voucher-tab-item.fxml")
|
||||||
@@ -44,6 +49,14 @@ public class PurchaseBillVoucherTabSkinItems
|
|||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
private PurchaseBillVoucherItemService service;
|
private PurchaseBillVoucherItemService service;
|
||||||
|
@Setter
|
||||||
|
private ContractService contractService;
|
||||||
|
@Setter
|
||||||
|
private InventoryService inventoryService;
|
||||||
|
@Setter
|
||||||
|
private InvoiceService invoiceService;
|
||||||
|
@Setter
|
||||||
|
private PurchaseOrderItemService purchaseOrderItemService;
|
||||||
|
|
||||||
public PurchaseBillVoucherTabSkinItems(PurchaseBillVoucherWindowController controller) {
|
public PurchaseBillVoucherTabSkinItems(PurchaseBillVoucherWindowController controller) {
|
||||||
super(controller);
|
super(controller);
|
||||||
@@ -57,6 +70,34 @@ public class PurchaseBillVoucherTabSkinItems
|
|||||||
return service;
|
return service;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ContractService getContractService() {
|
||||||
|
if (contractService == null) {
|
||||||
|
contractService = SpringApp.getBean(ContractService.class);
|
||||||
|
}
|
||||||
|
return contractService;
|
||||||
|
}
|
||||||
|
|
||||||
|
InventoryService getInventoryService() {
|
||||||
|
if (inventoryService == null) {
|
||||||
|
inventoryService = SpringApp.getBean(InventoryService.class);
|
||||||
|
}
|
||||||
|
return inventoryService;
|
||||||
|
}
|
||||||
|
|
||||||
|
InvoiceService getInvoiceService() {
|
||||||
|
if (invoiceService == null) {
|
||||||
|
invoiceService = SpringApp.getBean(InvoiceService.class);
|
||||||
|
}
|
||||||
|
return invoiceService;
|
||||||
|
}
|
||||||
|
|
||||||
|
PurchaseOrderItemService getPurchaseOrderItemService() {
|
||||||
|
if (purchaseOrderItemService == null) {
|
||||||
|
purchaseOrderItemService = SpringApp.getBean(PurchaseOrderItemService.class);
|
||||||
|
}
|
||||||
|
return purchaseOrderItemService;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Specification<PurchaseBillVoucherItem> getSpecification(PurchaseBillVoucher parent) {
|
public Specification<PurchaseBillVoucherItem> getSpecification(PurchaseBillVoucher parent) {
|
||||||
return SpecificationUtils.and(getSpecification(), (root, query, builder) -> {
|
return SpecificationUtils.and(getSpecification(), (root, query, builder) -> {
|
||||||
@@ -74,13 +115,13 @@ public class PurchaseBillVoucherTabSkinItems
|
|||||||
idColumn.setCellValueFactory(param -> param.getValue().getId());
|
idColumn.setCellValueFactory(param -> param.getValue().getId());
|
||||||
refIdColumn.setCellValueFactory(param -> param.getValue().getRefId());
|
refIdColumn.setCellValueFactory(param -> param.getValue().getRefId());
|
||||||
inventoryColumn.setCellValueFactory(param -> param.getValue().getInventory());
|
inventoryColumn.setCellValueFactory(param -> param.getValue().getInventory());
|
||||||
inventoryColumn.setCellFactory(col -> new InventoryTableCell<>());
|
inventoryColumn.setCellFactory(col -> new InventoryTableCell<>(getInventoryService()));
|
||||||
invoiceColumn.setCellValueFactory(param -> param.getValue().getInvoice());
|
invoiceColumn.setCellValueFactory(param -> param.getValue().getInvoice());
|
||||||
invoiceColumn.setCellFactory(col -> new InvoiceTableCell());
|
invoiceColumn.setCellFactory(col -> new InvoiceTableCell<>(getInvoiceService()));
|
||||||
contractColumn.setCellValueFactory(param -> param.getValue().getContract());
|
contractColumn.setCellValueFactory(param -> param.getValue().getContract());
|
||||||
contractColumn.setCellFactory(col -> new ContractTableCell(this));
|
contractColumn.setCellFactory(col -> new ContractTableCell<>(getContractService()));
|
||||||
orderItemColumn.setCellValueFactory(param -> param.getValue().getOrderItem());
|
orderItemColumn.setCellValueFactory(param -> param.getValue().getOrderItem());
|
||||||
orderItemColumn.setCellFactory(col -> new PurchaseOrderItemTableCell(this));
|
orderItemColumn.setCellFactory(col -> new PurchaseOrderItemTableCell<>(getPurchaseOrderItemService()));
|
||||||
NumberCellFactory v1 = new NumberCellFactory("%,.1f", null);
|
NumberCellFactory v1 = new NumberCellFactory("%,.1f", null);
|
||||||
NumberCellFactory v2 = new NumberCellFactory("%,.2f", null);
|
NumberCellFactory v2 = new NumberCellFactory("%,.2f", null);
|
||||||
|
|
||||||
@@ -96,32 +137,6 @@ public class PurchaseBillVoucherTabSkinItems
|
|||||||
super.initializeTab();
|
super.initializeTab();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class InvoiceTableCell extends TableCell<PurchaseBillVoucherItemViewModel, Invoice> {
|
|
||||||
private InvoiceService invoiceService;
|
|
||||||
|
|
||||||
InvoiceService getInvoiceService() {
|
|
||||||
if (invoiceService == null) {
|
|
||||||
invoiceService = SpringApp.getBean(InvoiceService.class);
|
|
||||||
}
|
|
||||||
return invoiceService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateItem(Invoice item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (item == null || empty) {
|
|
||||||
setText(null);
|
|
||||||
setGraphic(null);
|
|
||||||
} else {
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getInvoiceService().findById(item.getId());
|
|
||||||
getTableRow().getItem().getInvoice().set(item);
|
|
||||||
}
|
|
||||||
setText(item.getCode());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static class NumberCellFactory implements Callback<TableColumn<PurchaseBillVoucherItemViewModel, Double>, TableCell<PurchaseBillVoucherItemViewModel, Double>> {
|
static class NumberCellFactory implements Callback<TableColumn<PurchaseBillVoucherItemViewModel, Double>, TableCell<PurchaseBillVoucherItemViewModel, Double>> {
|
||||||
private final String format;
|
private final String format;
|
||||||
|
|
||||||
|
|||||||
@@ -1,71 +0,0 @@
|
|||||||
package com.ecep.contract.manager.ds.contract.controller.purchase_bill;
|
|
||||||
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem;
|
|
||||||
import com.ecep.contract.manager.ds.contract.service.PurchaseOrderItemService;
|
|
||||||
import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService;
|
|
||||||
import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherItemViewModel;
|
|
||||||
import com.ecep.contract.manager.ds.other.model.Inventory;
|
|
||||||
import com.ecep.contract.manager.ds.other.service.InventoryCatalogService;
|
|
||||||
import com.ecep.contract.manager.ds.other.service.InventoryService;
|
|
||||||
import javafx.scene.control.TableCell;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
|
|
||||||
class PurchaseOrderItemTableCell extends TableCell<PurchaseBillVoucherItemViewModel, PurchaseOrderItem> {
|
|
||||||
private final PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems;
|
|
||||||
PurchaseOrdersService service;
|
|
||||||
PurchaseOrderItemService itemService;
|
|
||||||
private InventoryService inventoryService;
|
|
||||||
private InventoryCatalogService inventoryCatalogService;
|
|
||||||
|
|
||||||
public PurchaseOrderItemTableCell(PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems) {
|
|
||||||
this.purchaseBillVoucherTabSkinItems = purchaseBillVoucherTabSkinItems;
|
|
||||||
}
|
|
||||||
|
|
||||||
InventoryService getInventoryService() {
|
|
||||||
if (inventoryService == null) {
|
|
||||||
inventoryService = SpringApp.getBean(InventoryService.class);
|
|
||||||
}
|
|
||||||
return inventoryService;
|
|
||||||
}
|
|
||||||
|
|
||||||
InventoryCatalogService getInventoryCatalogService() {
|
|
||||||
if (inventoryCatalogService == null) {
|
|
||||||
inventoryCatalogService = SpringApp.getBean(InventoryCatalogService.class);
|
|
||||||
}
|
|
||||||
return inventoryCatalogService;
|
|
||||||
}
|
|
||||||
|
|
||||||
PurchaseOrdersService getPurchaseOrdersService() {
|
|
||||||
if (service == null)
|
|
||||||
service = purchaseBillVoucherTabSkinItems.getBean(PurchaseOrdersService.class);
|
|
||||||
return service;
|
|
||||||
}
|
|
||||||
|
|
||||||
PurchaseOrderItemService getPurchaseOrderItemService() {
|
|
||||||
if (itemService == null)
|
|
||||||
itemService = purchaseBillVoucherTabSkinItems.getBean(PurchaseOrderItemService.class);
|
|
||||||
return itemService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateItem(PurchaseOrderItem item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (item == null || empty) {
|
|
||||||
setText(null);
|
|
||||||
setGraphic(null);
|
|
||||||
} else {
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getPurchaseOrderItemService().findById(item.getId());
|
|
||||||
getTableRow().getItem().getOrderItem().set(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
Inventory inventory = item.getInventory();
|
|
||||||
if (!Hibernate.isInitialized(inventory)) {
|
|
||||||
inventory = getInventoryService().findById(inventory.getId());
|
|
||||||
item.setInventory(inventory);
|
|
||||||
}
|
|
||||||
setText(inventory.toPrettyString() + " x " + item.getQuantity());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -7,8 +7,8 @@ import com.ecep.contract.manager.ds.contract.service.ContractFileService;
|
|||||||
import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.beans.property.SimpleObjectProperty;
|
import javafx.beans.property.SimpleObjectProperty;
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel;
|
|||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import jakarta.persistence.criteria.Join;
|
import jakarta.persistence.criteria.Join;
|
||||||
import jakarta.persistence.criteria.JoinType;
|
import jakarta.persistence.criteria.JoinType;
|
||||||
|
|||||||
@@ -11,12 +11,12 @@ import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService;
|
|||||||
import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderItemViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderItemViewModel;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.controller.InventoryTableCell;
|
import com.ecep.contract.manager.ui.table.cell.InventoryTableCell;
|
||||||
import com.ecep.contract.manager.ds.other.model.Inventory;
|
import com.ecep.contract.manager.ds.other.model.Inventory;
|
||||||
import com.ecep.contract.manager.ds.other.service.InventoryService;
|
import com.ecep.contract.manager.ds.other.service.InventoryService;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import com.ecep.contract.manager.ds.contract.service.ContractFileService;
|
|||||||
import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.beans.property.SimpleObjectProperty;
|
import javafx.beans.property.SimpleObjectProperty;
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ import com.ecep.contract.manager.ds.contract.vo.SalesBillVoucherViewModel;
|
|||||||
import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ import com.ecep.contract.manager.ds.contract.service.SalesOrderItemService;
|
|||||||
import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.SalesOrderItemViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.SalesOrderItemViewModel;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.ecep.contract.manager.ds.contract.service;
|
|||||||
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
||||||
import com.ecep.contract.manager.ds.contract.repository.ContractGroupRepository;
|
import com.ecep.contract.manager.ds.contract.repository.ContractGroupRepository;
|
||||||
|
import com.ecep.contract.manager.ds.other.service.IEntityService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -10,6 +11,9 @@ import org.springframework.cache.annotation.CacheEvict;
|
|||||||
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
import org.springframework.cache.annotation.Caching;
|
import org.springframework.cache.annotation.Caching;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -20,30 +24,46 @@ import java.util.List;
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Service
|
@Service
|
||||||
@CacheConfig(cacheNames = "contract-group")
|
@CacheConfig(cacheNames = "contract-group")
|
||||||
public class ContractGroupService {
|
public class ContractGroupService implements IEntityService<ContractGroup> {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(ContractGroupService.class);
|
private static final Logger logger = LoggerFactory.getLogger(ContractGroupService.class);
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private ContractGroupRepository contractGroupRepository;
|
private ContractGroupRepository repository;
|
||||||
|
|
||||||
@Cacheable(key = "#p0")
|
@Cacheable(key = "#p0")
|
||||||
public ContractGroup findById(Integer id) {
|
public ContractGroup findById(Integer id) {
|
||||||
return contractGroupRepository.findById(id).orElse(null);
|
return repository.findById(id).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<ContractGroup> findAll(Specification<ContractGroup> spec, Pageable pageable) {
|
||||||
|
return repository.findAll(spec, pageable);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Specification<ContractGroup> getSpecification(String searchText) {
|
||||||
|
return (root, query, builder)->{
|
||||||
|
return builder.or(
|
||||||
|
builder.like(root.get("code"), "%" + searchText + "%"),
|
||||||
|
builder.like(root.get("name"), "%" + searchText + "%"),
|
||||||
|
builder.like(root.get("title"), "%" + searchText + "%")
|
||||||
|
);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public ContractGroup findByName(String name) {
|
public ContractGroup findByName(String name) {
|
||||||
return contractGroupRepository.findByName(name).orElse(null);
|
return repository.findByName(name).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Cacheable(key = "'code-'+#p0")
|
@Cacheable(key = "'code-'+#p0")
|
||||||
public ContractGroup findByCode(String code) {
|
public ContractGroup findByCode(String code) {
|
||||||
return contractGroupRepository.findByCode(code).orElse(null);
|
return repository.findByCode(code).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Cacheable(key = "'groups'")
|
@Cacheable(key = "'groups'")
|
||||||
public List<ContractGroup> findAll() {
|
public List<ContractGroup> findAll() {
|
||||||
return contractGroupRepository.findAll();
|
return repository.findAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Caching(evict = {
|
@Caching(evict = {
|
||||||
@@ -52,7 +72,7 @@ public class ContractGroupService {
|
|||||||
@CacheEvict(key = "'code-'+#p0.code"),
|
@CacheEvict(key = "'code-'+#p0.code"),
|
||||||
})
|
})
|
||||||
public ContractGroup save(ContractGroup group) {
|
public ContractGroup save(ContractGroup group) {
|
||||||
return contractGroupRepository.save(group);
|
return repository.save(group);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Caching(evict = {
|
@Caching(evict = {
|
||||||
@@ -60,7 +80,7 @@ public class ContractGroupService {
|
|||||||
@CacheEvict(key = "'groups'"),
|
@CacheEvict(key = "'groups'"),
|
||||||
})
|
})
|
||||||
public void delete(Integer id) {
|
public void delete(Integer id) {
|
||||||
contractGroupRepository.deleteById(id);
|
repository.deleteById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Caching(evict = {
|
@Caching(evict = {
|
||||||
@@ -69,7 +89,7 @@ public class ContractGroupService {
|
|||||||
@CacheEvict(key = "'code-'+#p0.code"),
|
@CacheEvict(key = "'code-'+#p0.code"),
|
||||||
})
|
})
|
||||||
public void delete(ContractGroup group) {
|
public void delete(ContractGroup group) {
|
||||||
contractGroupRepository.delete(group);
|
repository.delete(group);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ContractGroup newContractGroup() {
|
public ContractGroup newContractGroup() {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.ecep.contract.manager.ds.contract.service;
|
|||||||
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractKind;
|
import com.ecep.contract.manager.ds.contract.model.ContractKind;
|
||||||
import com.ecep.contract.manager.ds.contract.repository.ContractKindRepository;
|
import com.ecep.contract.manager.ds.contract.repository.ContractKindRepository;
|
||||||
|
import com.ecep.contract.manager.ds.other.service.IEntityService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -10,6 +11,9 @@ import org.springframework.cache.annotation.CacheEvict;
|
|||||||
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
import org.springframework.cache.annotation.Caching;
|
import org.springframework.cache.annotation.Caching;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -20,41 +24,62 @@ import java.util.List;
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Service
|
@Service
|
||||||
@CacheConfig(cacheNames = "contract-kind")
|
@CacheConfig(cacheNames = "contract-kind")
|
||||||
public class ContractKindService {
|
public class ContractKindService implements IEntityService<ContractKind> {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(ContractKindService.class);
|
private static final Logger logger = LoggerFactory.getLogger(ContractKindService.class);
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private ContractKindRepository contractKindRepository;
|
private ContractKindRepository repository;
|
||||||
|
|
||||||
@Cacheable(key = "'kind-'+#p0")
|
@Cacheable(key = "'kind-'+#p0")
|
||||||
public ContractKind findById(Integer id) {
|
public ContractKind findById(Integer id) {
|
||||||
return contractKindRepository.findById(id).orElse(null);
|
return repository.findById(id).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<ContractKind> findAll(Specification<ContractKind> spec, Pageable pageable) {
|
||||||
|
return repository.findAll(spec, pageable);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Specification<ContractKind> getSpecification(String searchText) {
|
||||||
|
return (root, query, builder) -> {
|
||||||
|
return builder.or(
|
||||||
|
builder.like(root.get("code"), "%" + searchText + "%"),
|
||||||
|
builder.like(root.get("name"), "%" + searchText + "%"),
|
||||||
|
builder.like(root.get("title"), "%" + searchText + "%")
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(ContractKind entity) {
|
||||||
|
repository.delete(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ContractKind findByName(String name) {
|
public ContractKind findByName(String name) {
|
||||||
return contractKindRepository.findByName(name).orElse(null);
|
return repository.findByName(name).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Cacheable(key = "'kind-code-'+#p0")
|
@Cacheable(key = "'code-'+#p0")
|
||||||
public ContractKind findByCode(String code) {
|
public ContractKind findByCode(String code) {
|
||||||
return contractKindRepository.findByCode(code).orElse(null);
|
return repository.findByCode(code).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Cacheable(key = "'kinds'")
|
@Cacheable(key = "'kinds'")
|
||||||
public List<ContractKind> findAll() {
|
public List<ContractKind> findAll() {
|
||||||
return contractKindRepository.findAll();
|
return repository.findAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Caching(
|
@Caching(
|
||||||
evict = {
|
evict = {
|
||||||
@CacheEvict(key = "'kinds'"),
|
@CacheEvict(key = "'kinds'"),
|
||||||
@CacheEvict(key = "'kind-'+#p0.id"),
|
@CacheEvict(key = "'kind-'+#p0.id"),
|
||||||
@CacheEvict(key = "'kind-code-'+#p0.name"),
|
@CacheEvict(key = "'code-'+#p0.name"),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
public ContractKind save(ContractKind kind) {
|
public ContractKind save(ContractKind kind) {
|
||||||
return contractKindRepository.save(kind);
|
return repository.save(kind);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Caching(
|
@Caching(
|
||||||
@@ -64,6 +89,6 @@ public class ContractKindService {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
public void delete(Integer id) {
|
public void delete(Integer id) {
|
||||||
contractKindRepository.deleteById(id);
|
repository.deleteById(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@ package com.ecep.contract.manager.ds.contract.service;
|
|||||||
|
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractType;
|
import com.ecep.contract.manager.ds.contract.model.ContractType;
|
||||||
import com.ecep.contract.manager.ds.contract.repository.ContractTypeRepository;
|
import com.ecep.contract.manager.ds.contract.repository.ContractTypeRepository;
|
||||||
|
import com.ecep.contract.manager.ds.other.service.IEntityService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -10,6 +11,9 @@ import org.springframework.cache.annotation.CacheEvict;
|
|||||||
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
import org.springframework.cache.annotation.Caching;
|
import org.springframework.cache.annotation.Caching;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -20,30 +24,35 @@ import java.util.List;
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Service
|
@Service
|
||||||
@CacheConfig(cacheNames = "contract-type")
|
@CacheConfig(cacheNames = "contract-type")
|
||||||
public class ContractTypeService {
|
public class ContractTypeService implements IEntityService<ContractType> {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(ContractTypeService.class);
|
private static final Logger logger = LoggerFactory.getLogger(ContractTypeService.class);
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private ContractTypeRepository contractTypeRepository;
|
private ContractTypeRepository repository;
|
||||||
|
|
||||||
@Cacheable(key = "#p0")
|
@Cacheable(key = "#p0")
|
||||||
public ContractType findById(Integer id) {
|
public ContractType findById(Integer id) {
|
||||||
return contractTypeRepository.findById(id).orElse(null);
|
return repository.findById(id).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<ContractType> findAll(Specification<ContractType> spec, Pageable pageable) {
|
||||||
|
return repository.findAll(spec, pageable);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ContractType findByName(String name) {
|
public ContractType findByName(String name) {
|
||||||
return contractTypeRepository.findByName(name).orElse(null);
|
return repository.findByName(name).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Cacheable(key = "'code-'+#p0")
|
@Cacheable(key = "'code-'+#p0")
|
||||||
public ContractType findByCode(String code) {
|
public ContractType findByCode(String code) {
|
||||||
return contractTypeRepository.findByCode(code).orElse(null);
|
return repository.findByCode(code).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Cacheable(key = "'types'")
|
@Cacheable(key = "'types'")
|
||||||
public List<ContractType> findAll() {
|
public List<ContractType> findAll() {
|
||||||
return contractTypeRepository.findAll();
|
return repository.findAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Caching(evict = {
|
@Caching(evict = {
|
||||||
@@ -52,7 +61,7 @@ public class ContractTypeService {
|
|||||||
@CacheEvict(key = "'types'"),
|
@CacheEvict(key = "'types'"),
|
||||||
})
|
})
|
||||||
public ContractType save(ContractType type) {
|
public ContractType save(ContractType type) {
|
||||||
return contractTypeRepository.save(type);
|
return repository.save(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Caching(evict = {
|
@Caching(evict = {
|
||||||
@@ -60,7 +69,7 @@ public class ContractTypeService {
|
|||||||
@CacheEvict(key = "'types'"),
|
@CacheEvict(key = "'types'"),
|
||||||
})
|
})
|
||||||
public void delete(Integer id) {
|
public void delete(Integer id) {
|
||||||
contractTypeRepository.deleteById(id);
|
repository.deleteById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Caching(evict = {
|
@Caching(evict = {
|
||||||
@@ -69,6 +78,17 @@ public class ContractTypeService {
|
|||||||
@CacheEvict(key = "'types'"),
|
@CacheEvict(key = "'types'"),
|
||||||
})
|
})
|
||||||
public void delete(ContractType type) {
|
public void delete(ContractType type) {
|
||||||
contractTypeRepository.delete(type);
|
repository.delete(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Specification<ContractType> getSpecification(String searchText) {
|
||||||
|
return (root, query, builder) -> {
|
||||||
|
return builder.or(
|
||||||
|
builder.like(root.get("code"), "%" + searchText + "%"),
|
||||||
|
builder.like(root.get("name"), "%" + searchText + "%")
|
||||||
|
);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,10 +5,9 @@ import com.ecep.contract.manager.ds.customer.model.CompanyCustomer;
|
|||||||
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
||||||
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
|
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
|
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
|
||||||
import com.ecep.contract.manager.ds.other.vo.BaseViewModel;
|
|
||||||
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
|
|
||||||
public abstract class AbstCompanyCustomerTableTabSkin<T extends IdentityEntity, TV extends IdentityViewModel<T>>
|
public abstract class AbstCompanyCustomerTableTabSkin<T extends IdentityEntity, TV extends IdentityViewModel<T>>
|
||||||
extends AbstEntityTableTabSkin<CompanyCustomerWindowController, CompanyCustomer, CompanyCustomerViewModel, T, TV>
|
extends AbstEntityTableTabSkin<CompanyCustomerWindowController, CompanyCustomer, CompanyCustomerViewModel, T, TV>
|
||||||
|
|||||||
@@ -1,29 +1,19 @@
|
|||||||
package com.ecep.contract.manager.ds.customer.controller;
|
package com.ecep.contract.manager.ds.customer.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ui.table.cell.CompanyTableCell;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ds.customer.model.CompanyCustomer;
|
import com.ecep.contract.manager.ds.customer.model.CompanyCustomer;
|
||||||
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
||||||
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
|
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||||
import com.ecep.contract.manager.ui.ManagerSkin;
|
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.MyStringUtils;
|
|
||||||
import com.ecep.contract.manager.util.TableViewUtils;
|
|
||||||
import javafx.application.Platform;
|
|
||||||
import javafx.beans.binding.Bindings;
|
|
||||||
import lombok.Setter;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
import org.springframework.data.domain.Page;
|
|
||||||
import org.springframework.data.domain.Sort;
|
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
import java.util.List;
|
import javafx.application.Platform;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
public class CompanyCustomerManagerSkin
|
public class CompanyCustomerManagerSkin
|
||||||
extends AbstEntityManagerSkin<CompanyCustomer, CompanyCustomerViewModel, CompanyCustomerManagerSkin, CompanyCustomerManagerWindowController>
|
extends
|
||||||
implements ManagerSkin {
|
AbstEntityManagerSkin<CompanyCustomer, CompanyCustomerViewModel, CompanyCustomerManagerSkin, CompanyCustomerManagerWindowController> {
|
||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
private CompanyService companyService;
|
private CompanyService companyService;
|
||||||
@@ -46,18 +36,14 @@ public class CompanyCustomerManagerSkin
|
|||||||
@Override
|
@Override
|
||||||
public void initializeTable() {
|
public void initializeTable() {
|
||||||
controller.idColumn.setCellValueFactory(param -> param.getValue().getId());
|
controller.idColumn.setCellValueFactory(param -> param.getValue().getId());
|
||||||
controller.companyColumn.setCellValueFactory(param -> Bindings.createStringBinding(() -> {
|
controller.companyColumn.setCellValueFactory(param -> param.getValue().getCompany());
|
||||||
Company company = param.getValue().getCompany().get();
|
controller.companyColumn.setCellFactory(param-> new CompanyTableCell<>(getCompanyService()));
|
||||||
if (company != null && !Hibernate.isInitialized(company)) {
|
|
||||||
company = companyService.findById(company.getId());
|
|
||||||
}
|
|
||||||
return company == null ? "-" : company.getName();
|
|
||||||
}, param.getValue().getCompany()));
|
|
||||||
|
|
||||||
controller.developDateColumn.setCellValueFactory(param -> param.getValue().getDevelopDate());
|
controller.developDateColumn.setCellValueFactory(param -> param.getValue().getDevelopDate());
|
||||||
controller.pathColumn.setCellValueFactory(param -> param.getValue().getPath());
|
controller.pathColumn.setCellValueFactory(param -> param.getValue().getPath());
|
||||||
|
|
||||||
controller.createdColumn.setCellValueFactory(param -> param.getValue().getCreated().map(MyDateTimeUtils::format));
|
controller.createdColumn
|
||||||
|
.setCellValueFactory(param -> param.getValue().getCreated().map(MyDateTimeUtils::format));
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
getTableView().getSortOrder().add(controller.idColumn);
|
getTableView().getSortOrder().add(controller.idColumn);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,25 +1,10 @@
|
|||||||
package com.ecep.contract.manager.ds.customer.controller;
|
package com.ecep.contract.manager.ds.customer.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import java.io.File;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import java.time.LocalDate;
|
||||||
import com.ecep.contract.manager.ds.customer.model.CompanyCustomer;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
|
|
||||||
import com.ecep.contract.manager.ui.AbstManagerWindowController;
|
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
|
||||||
import com.ecep.contract.manager.util.UITools;
|
|
||||||
import javafx.application.Platform;
|
|
||||||
import javafx.collections.FXCollections;
|
|
||||||
import javafx.collections.ObservableList;
|
|
||||||
import javafx.event.ActionEvent;
|
|
||||||
import javafx.geometry.Insets;
|
|
||||||
import javafx.scene.control.*;
|
|
||||||
import javafx.scene.layout.Priority;
|
|
||||||
import javafx.scene.layout.VBox;
|
|
||||||
import javafx.stage.FileChooser;
|
|
||||||
import javafx.stage.Stage;
|
|
||||||
import org.hibernate.Hibernate;
|
import org.hibernate.Hibernate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
@@ -29,10 +14,31 @@ import org.springframework.data.domain.PageRequest;
|
|||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.io.File;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import java.time.LocalDate;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import com.ecep.contract.manager.ds.customer.model.CompanyCustomer;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
||||||
|
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
|
||||||
|
import com.ecep.contract.manager.ui.AbstManagerWindowController;
|
||||||
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
|
import com.ecep.contract.manager.util.UITools;
|
||||||
|
|
||||||
|
import javafx.application.Platform;
|
||||||
|
import javafx.collections.FXCollections;
|
||||||
|
import javafx.collections.ObservableList;
|
||||||
|
import javafx.event.ActionEvent;
|
||||||
|
import javafx.geometry.Insets;
|
||||||
|
import javafx.scene.control.ButtonType;
|
||||||
|
import javafx.scene.control.Dialog;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.scene.control.ListView;
|
||||||
|
import javafx.scene.control.ProgressBar;
|
||||||
|
import javafx.scene.control.TableColumn;
|
||||||
|
import javafx.scene.layout.Priority;
|
||||||
|
import javafx.scene.layout.VBox;
|
||||||
|
import javafx.stage.FileChooser;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Scope("prototype")
|
@Scope("prototype")
|
||||||
@@ -43,7 +49,7 @@ public class CompanyCustomerManagerWindowController
|
|||||||
|
|
||||||
// columns
|
// columns
|
||||||
public TableColumn<CompanyCustomerViewModel, Number> idColumn;
|
public TableColumn<CompanyCustomerViewModel, Number> idColumn;
|
||||||
public TableColumn<CompanyCustomerViewModel, String> companyColumn;
|
public TableColumn<CompanyCustomerViewModel, Company> companyColumn;
|
||||||
public TableColumn<CompanyCustomerViewModel, String> catalogColumn;
|
public TableColumn<CompanyCustomerViewModel, String> catalogColumn;
|
||||||
public TableColumn<CompanyCustomerViewModel, LocalDate> developDateColumn;
|
public TableColumn<CompanyCustomerViewModel, LocalDate> developDateColumn;
|
||||||
public TableColumn<CompanyCustomerViewModel, String> pathColumn;
|
public TableColumn<CompanyCustomerViewModel, String> pathColumn;
|
||||||
@@ -72,7 +78,6 @@ public class CompanyCustomerManagerWindowController
|
|||||||
return skin;
|
return skin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 对所有客户的文件进行重置
|
* 对所有客户的文件进行重置
|
||||||
* <p>
|
* <p>
|
||||||
@@ -108,7 +113,6 @@ public class CompanyCustomerManagerWindowController
|
|||||||
dialog.initOwner(table.getScene().getWindow());
|
dialog.initOwner(table.getScene().getWindow());
|
||||||
dialog.show();
|
dialog.show();
|
||||||
|
|
||||||
|
|
||||||
CompletableFuture.runAsync(() -> {
|
CompletableFuture.runAsync(() -> {
|
||||||
Pageable pageRequest = PageRequest.ofSize(50);
|
Pageable pageRequest = PageRequest.ofSize(50);
|
||||||
while (!canceled.get()) {
|
while (!canceled.get()) {
|
||||||
@@ -166,5 +170,4 @@ public class CompanyCustomerManagerWindowController
|
|||||||
UITools.showTaskDialogAndWait("导出Excel", tasker, null);
|
UITools.showTaskDialogAndWait("导出Excel", tasker, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import com.ecep.contract.manager.ds.customer.model.CompanyCustomer;
|
|||||||
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
||||||
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
|
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.ecep.contract.manager.ds.customer.controller;
|
package com.ecep.contract.manager.ds.customer.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.Desktop;
|
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyContactService;
|
import com.ecep.contract.manager.ds.company.service.CompanyContactService;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ds.customer.model.CompanyCustomer;
|
import com.ecep.contract.manager.ds.customer.model.CompanyCustomer;
|
||||||
@@ -9,6 +8,8 @@ import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
|
|||||||
import com.ecep.contract.manager.ui.AbstEntityController;
|
import com.ecep.contract.manager.ui.AbstEntityController;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
import com.ecep.contract.manager.ui.ViewModelService;
|
||||||
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
|
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.layout.BorderPane;
|
import javafx.scene.layout.BorderPane;
|
||||||
@@ -115,7 +116,7 @@ public class CompanyCustomerWindowController extends AbstEntityController<Compan
|
|||||||
setStatus("目录错误,不存在");
|
setStatus("目录错误,不存在");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Desktop.showInExplorer(file);
|
DesktopUtils.showInExplorer(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import com.ecep.contract.manager.ds.customer.vo.CustomerEntityViewModel;
|
|||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import javafx.scene.control.MenuItem;
|
import javafx.scene.control.MenuItem;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.ecep.contract.manager.ds.customer.controller;
|
package com.ecep.contract.manager.ds.customer.controller;
|
||||||
|
|
||||||
import com.ecep.contract.manager.Desktop;
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
import com.ecep.contract.manager.SpringApp;
|
||||||
import com.ecep.contract.manager.ds.company.CompanyFileUtils;
|
import com.ecep.contract.manager.ds.company.CompanyFileUtils;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
@@ -13,9 +12,10 @@ import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService;
|
|||||||
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
||||||
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerFileViewModel;
|
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerFileViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.model.BaseEnumEntity;
|
import com.ecep.contract.manager.ds.other.model.BaseEnumEntity;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.Message;
|
import com.ecep.contract.manager.ui.Message;
|
||||||
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
@@ -160,7 +160,7 @@ public class CustomerTabSkinFile
|
|||||||
setStatus("文件不存在 " + file.getName());
|
setStatus("文件不存在 " + file.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Desktop.showInExplorer(file);
|
DesktopUtils.showInExplorer(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void moveFileToCustomer(List<File> files) {
|
private void moveFileToCustomer(List<File> files) {
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ import com.ecep.contract.manager.ds.customer.model.CompanyCustomer;
|
|||||||
import com.ecep.contract.manager.ds.customer.model.CustomerCatalog;
|
import com.ecep.contract.manager.ds.customer.model.CustomerCatalog;
|
||||||
import com.ecep.contract.manager.ds.customer.vo.CustomerEntityViewModel;
|
import com.ecep.contract.manager.ds.customer.vo.CustomerEntityViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell;
|
import com.ecep.contract.manager.ds.project.service.ProjectService;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell;
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ds.project.controller.satisfaction_survey.CustomerSatisfactionSurveyWindowController;
|
import com.ecep.contract.manager.ds.project.controller.satisfaction_survey.CustomerSatisfactionSurveyWindowController;
|
||||||
import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey;
|
import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey;
|
||||||
@@ -13,6 +14,7 @@ import com.ecep.contract.manager.ds.project.model.Project;
|
|||||||
import com.ecep.contract.manager.ds.project.service.CustomerSatisfactionSurveyService;
|
import com.ecep.contract.manager.ds.project.service.CustomerSatisfactionSurveyService;
|
||||||
import com.ecep.contract.manager.ds.project.vo.CustomerSatisfactionSurveyViewModel;
|
import com.ecep.contract.manager.ds.project.vo.CustomerSatisfactionSurveyViewModel;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.ProjectTableCell;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import javafx.scene.control.MenuItem;
|
import javafx.scene.control.MenuItem;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
@@ -39,7 +41,8 @@ public class CustomerTabSkinSatisfactionSurvey
|
|||||||
|
|
||||||
public MenuItem entityTable_menu_refresh;
|
public MenuItem entityTable_menu_refresh;
|
||||||
public MenuItem entityTable_menu_del;
|
public MenuItem entityTable_menu_del;
|
||||||
|
@Setter
|
||||||
|
private ProjectService projectService;
|
||||||
@Setter
|
@Setter
|
||||||
private CustomerSatisfactionSurveyService satisfactionSurveyService;
|
private CustomerSatisfactionSurveyService satisfactionSurveyService;
|
||||||
|
|
||||||
@@ -60,7 +63,7 @@ public class CustomerTabSkinSatisfactionSurvey
|
|||||||
bindNumberColumn(idColumn, CustomerSatisfactionSurveyViewModel::getId);
|
bindNumberColumn(idColumn, CustomerSatisfactionSurveyViewModel::getId);
|
||||||
bindColumn(codeColumn, CustomerSatisfactionSurveyViewModel::getCode);
|
bindColumn(codeColumn, CustomerSatisfactionSurveyViewModel::getCode);
|
||||||
projectColumn.setCellValueFactory(param -> param.getValue().getProject());
|
projectColumn.setCellValueFactory(param -> param.getValue().getProject());
|
||||||
projectColumn.setCellFactory(cell -> new ProjectTableCell<>());
|
projectColumn.setCellFactory(cell -> new ProjectTableCell<>(getProjectService()));
|
||||||
bindLocalDateColumn(dateColumn, CustomerSatisfactionSurveyViewModel::getDate);
|
bindLocalDateColumn(dateColumn, CustomerSatisfactionSurveyViewModel::getDate);
|
||||||
bindNumberColumn(totalScoreColumn, CustomerSatisfactionSurveyViewModel::getTotalScore);
|
bindNumberColumn(totalScoreColumn, CustomerSatisfactionSurveyViewModel::getTotalScore);
|
||||||
applicantColumn.setCellValueFactory(param -> param.getValue().getApplicant());
|
applicantColumn.setCellValueFactory(param -> param.getValue().getApplicant());
|
||||||
@@ -86,6 +89,12 @@ public class CustomerTabSkinSatisfactionSurvey
|
|||||||
return satisfactionSurveyService;
|
return satisfactionSurveyService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ProjectService getProjectService() {
|
||||||
|
if (projectService == null) {
|
||||||
|
projectService = getBean(ProjectService.class);
|
||||||
|
}
|
||||||
|
return projectService;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected CustomerSatisfactionSurveyService getViewModelService() {
|
protected CustomerSatisfactionSurveyService getViewModelService() {
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
package com.ecep.contract.manager.ds.customer.controller;
|
|
||||||
|
|
||||||
import com.ecep.contract.manager.ds.project.model.Project;
|
|
||||||
import com.ecep.contract.manager.ds.project.service.ProjectService;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
|
|
||||||
import static com.ecep.contract.manager.SpringApp.getBean;
|
|
||||||
|
|
||||||
public class ProjectTableCell<V> extends javafx.scene.control.TableCell<V, com.ecep.contract.manager.ds.project.model.Project> {
|
|
||||||
private ProjectService projectService;
|
|
||||||
|
|
||||||
public ProjectTableCell() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProjectTableCell(ProjectService projectService) {
|
|
||||||
this.projectService = projectService;
|
|
||||||
}
|
|
||||||
|
|
||||||
ProjectService getProjectService() {
|
|
||||||
if (projectService == null) {
|
|
||||||
projectService = getBean(ProjectService.class);
|
|
||||||
}
|
|
||||||
return projectService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateItem(Project item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (empty || item == null) {
|
|
||||||
setText(null);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getProjectService().findById(item.getId());
|
|
||||||
}
|
|
||||||
setText(item.toPrettyString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ecep.contract.manager.ds.customer.model;
|
package com.ecep.contract.manager.ds.customer.model;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -17,7 +18,7 @@ import lombok.ToString;
|
|||||||
@Setter
|
@Setter
|
||||||
@ToString
|
@ToString
|
||||||
@Table(name = "COMPANY_CUSTOMER_EVALUATION_FORM_FILE")
|
@Table(name = "COMPANY_CUSTOMER_EVALUATION_FORM_FILE")
|
||||||
public class CompanyCustomerEvaluationFormFile implements com.ecep.contract.manager.ds.other.model.Entity {
|
public class CompanyCustomerEvaluationFormFile implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity {
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "ID", nullable = false)
|
@Column(name = "ID", nullable = false)
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
package com.ecep.contract.manager.ds.other.controller;
|
package com.ecep.contract.manager.ds.other.controller;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import org.controlsfx.control.TaskProgressView;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.BeansException;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.context.annotation.Scope;
|
||||||
|
import org.springframework.context.event.EventListener;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.CurrentEmployee;
|
||||||
|
import com.ecep.contract.manager.CurrentEmployeeInitialedEvent;
|
||||||
import com.ecep.contract.manager.Desktop;
|
import com.ecep.contract.manager.Desktop;
|
||||||
import com.ecep.contract.manager.cloud.old.OldVersionService;
|
import com.ecep.contract.manager.cloud.old.OldVersionService;
|
||||||
import com.ecep.contract.manager.cloud.rk.CloudRkManagerWindowController;
|
import com.ecep.contract.manager.cloud.rk.CloudRkManagerWindowController;
|
||||||
@@ -16,14 +32,15 @@ import com.ecep.contract.manager.ds.other.controller.department.DepartmentManage
|
|||||||
import com.ecep.contract.manager.ds.other.controller.employee.EmployeeManagerWindowController;
|
import com.ecep.contract.manager.ds.other.controller.employee.EmployeeManagerWindowController;
|
||||||
import com.ecep.contract.manager.ds.other.controller.inventory.InventoryManagerWindowController;
|
import com.ecep.contract.manager.ds.other.controller.inventory.InventoryManagerWindowController;
|
||||||
import com.ecep.contract.manager.ds.other.controller.permission.EmployeeFunctionsManagerWindowController;
|
import com.ecep.contract.manager.ds.other.controller.permission.EmployeeFunctionsManagerWindowController;
|
||||||
import com.ecep.contract.manager.ds.other.controller.permission.EmployeeRolesManagerWindowController;
|
import com.ecep.contract.manager.ds.other.controller.permission.EmployeeRoleManagerWindowController;
|
||||||
import com.ecep.contract.manager.ds.project.controller.ProjectManagerWindowController;
|
import com.ecep.contract.manager.ds.project.controller.ProjectManagerWindowController;
|
||||||
import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorManagerWindowController;
|
import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorManagerWindowController;
|
||||||
import com.ecep.contract.manager.ui.BaseController;
|
import com.ecep.contract.manager.ui.BaseController;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.task.TaskMonitorViewController;
|
import com.ecep.contract.manager.ui.task.TaskMonitorViewController;
|
||||||
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.FxmlUtils;
|
import com.ecep.contract.manager.util.FxmlUtils;
|
||||||
import javafx.application.Platform;
|
|
||||||
import javafx.concurrent.Task;
|
import javafx.concurrent.Task;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
@@ -36,18 +53,6 @@ import javafx.scene.layout.VBox;
|
|||||||
import javafx.stage.Modality;
|
import javafx.stage.Modality;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import javafx.stage.WindowEvent;
|
import javafx.stage.WindowEvent;
|
||||||
import org.controlsfx.control.TaskProgressView;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.BeansException;
|
|
||||||
import org.springframework.context.annotation.Lazy;
|
|
||||||
import org.springframework.context.annotation.Scope;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Scope("prototype")
|
@Scope("prototype")
|
||||||
@@ -69,6 +74,7 @@ public class HomeWindowController extends BaseController {
|
|||||||
public Button openVendorManagerWindow;
|
public Button openVendorManagerWindow;
|
||||||
public Button openCustomManagerWindow;
|
public Button openCustomManagerWindow;
|
||||||
public TaskProgressView<Task<?>> taskProgressView;
|
public TaskProgressView<Task<?>> taskProgressView;
|
||||||
|
public Label taskMonitorLabel;
|
||||||
public Label employeeStatusLabel;
|
public Label employeeStatusLabel;
|
||||||
|
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
@@ -94,9 +100,14 @@ public class HomeWindowController extends BaseController {
|
|||||||
((Label) placeholder).setText("没有运行的任务");
|
((Label) placeholder).setText("没有运行的任务");
|
||||||
|
|
||||||
employeeStatusLabel.textProperty().bind(Desktop.instance.getActiveEmployee().getName());
|
employeeStatusLabel.textProperty().bind(Desktop.instance.getActiveEmployee().getName());
|
||||||
|
Desktop.instance.getTaskMonitorCenter().bindStatusLabel(taskMonitorLabel);
|
||||||
|
Desktop.instance.getActiveEmployee().initialize();
|
||||||
|
}
|
||||||
|
|
||||||
Desktop.instance.getActiveEmployee().initialize().thenRun(() -> {
|
@EventListener
|
||||||
if (Desktop.instance.getActiveEmployee().isSystemAdministrator()) {
|
public void onCurrentEmployeeInitialed(CurrentEmployeeInitialedEvent event) {
|
||||||
|
CurrentEmployee currentEmployee = event.getEmployee();
|
||||||
|
if (currentEmployee.isSystemAdministrator()) {
|
||||||
if (logger.isInfoEnabled()) {
|
if (logger.isInfoEnabled()) {
|
||||||
logger.info("You are administrator, try schedule sync tasks.");
|
logger.info("You are administrator, try schedule sync tasks.");
|
||||||
}
|
}
|
||||||
@@ -115,7 +126,6 @@ public class HomeWindowController extends BaseController {
|
|||||||
}
|
}
|
||||||
}, 15, TimeUnit.SECONDS);
|
}, 15, TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -165,7 +175,7 @@ public class HomeWindowController extends BaseController {
|
|||||||
public void openInBrowse(ActionEvent event) {
|
public void openInBrowse(ActionEvent event) {
|
||||||
MenuItem source = (MenuItem) event.getSource();
|
MenuItem source = (MenuItem) event.getSource();
|
||||||
String url = (String) source.getUserData();
|
String url = (String) source.getUserData();
|
||||||
Desktop.showInBrowse(url);
|
DesktopUtils.showInBrowse(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openGroupRKResourceWindow(ActionEvent event) {
|
public void openGroupRKResourceWindow(ActionEvent event) {
|
||||||
@@ -189,7 +199,7 @@ public class HomeWindowController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onShowRolesManagerWindowAction(ActionEvent event) {
|
public void onShowRolesManagerWindowAction(ActionEvent event) {
|
||||||
showInOwner(EmployeeRolesManagerWindowController.class);
|
showInOwner(EmployeeRoleManagerWindowController.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onShowFunctionManagerWindowAction(ActionEvent event) {
|
public void onShowFunctionManagerWindowAction(ActionEvent event) {
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
package com.ecep.contract.manager.ds.other.controller;
|
|
||||||
|
|
||||||
import com.ecep.contract.manager.SpringApp;
|
|
||||||
import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderItemViewModel;
|
|
||||||
import com.ecep.contract.manager.ds.other.model.Inventory;
|
|
||||||
import com.ecep.contract.manager.ds.other.model.InventoryCatalog;
|
|
||||||
import com.ecep.contract.manager.ds.other.service.InventoryCatalogService;
|
|
||||||
import com.ecep.contract.manager.ds.other.service.InventoryService;
|
|
||||||
import javafx.scene.control.TableCell;
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
|
|
||||||
public class InventoryTableCell<V> extends TableCell<V, Inventory> {
|
|
||||||
private InventoryService inventoryService;
|
|
||||||
private InventoryCatalogService inventoryCatalogService;
|
|
||||||
|
|
||||||
InventoryService getInventoryService() {
|
|
||||||
if (inventoryService == null) {
|
|
||||||
inventoryService = SpringApp.getBean(InventoryService.class);
|
|
||||||
}
|
|
||||||
return inventoryService;
|
|
||||||
}
|
|
||||||
|
|
||||||
InventoryCatalogService getInventoryCatalogService() {
|
|
||||||
if (inventoryCatalogService == null) {
|
|
||||||
inventoryCatalogService = SpringApp.getBean(InventoryCatalogService.class);
|
|
||||||
}
|
|
||||||
return inventoryCatalogService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateItem(Inventory item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (empty || item == null) {
|
|
||||||
setText("");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getInventoryService().findById(item.getId());
|
|
||||||
}
|
|
||||||
InventoryCatalog catalog = item.getCatalog();
|
|
||||||
if (catalog != null && !Hibernate.isInitialized(catalog)) {
|
|
||||||
catalog = getInventoryCatalogService().findById(catalog.getId());
|
|
||||||
item.setCatalog(catalog);
|
|
||||||
}
|
|
||||||
setText((catalog != null ? (catalog.getName() + " ") : "") + item.toPrettyString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.other.controller.bank;
|
|||||||
import com.ecep.contract.manager.ds.other.model.Bank;
|
import com.ecep.contract.manager.ds.other.model.Bank;
|
||||||
import com.ecep.contract.manager.ds.other.vo.BankViewModel;
|
import com.ecep.contract.manager.ds.other.vo.BankViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.ManagerSkin;
|
import com.ecep.contract.manager.ui.ManagerSkin;
|
||||||
import javafx.scene.control.TableColumn;
|
import javafx.scene.control.TableColumn;
|
||||||
import javafx.scene.control.cell.TextFieldTableCell;
|
import javafx.scene.control.cell.TextFieldTableCell;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.ecep.contract.manager.ds.other.model.Department;
|
|||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ds.other.vo.DepartmentViewModel;
|
import com.ecep.contract.manager.ds.other.vo.DepartmentViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.ManagerSkin;
|
import com.ecep.contract.manager.ui.ManagerSkin;
|
||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import com.ecep.contract.manager.ds.other.service.EmployeeRoleService;
|
|||||||
import com.ecep.contract.manager.ds.other.service.EmployeeService;
|
import com.ecep.contract.manager.ds.other.service.EmployeeService;
|
||||||
import com.ecep.contract.manager.ds.other.service.PermissionService;
|
import com.ecep.contract.manager.ds.other.service.PermissionService;
|
||||||
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
public abstract class AbstEmployeeBasedTabSkin
|
public abstract class AbstEmployeeBasedTabSkin
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import com.ecep.contract.manager.ds.other.service.EmployeeService;
|
|||||||
import com.ecep.contract.manager.ds.other.vo.EmployeeBasedViewModel;
|
import com.ecep.contract.manager.ds.other.vo.EmployeeBasedViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import com.ecep.contract.manager.ds.other.service.DepartmentService;
|
|||||||
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||||
import com.ecep.contract.manager.ui.ManagerSkin;
|
import com.ecep.contract.manager.ui.ManagerSkin;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.DepartmentTableCell;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.control.cell.CheckBoxTableCell;
|
import javafx.scene.control.cell.CheckBoxTableCell;
|
||||||
import javafx.scene.control.cell.ComboBoxTableCell;
|
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
|
|
||||||
public class EmployeeManagerSkin
|
public class EmployeeManagerSkin
|
||||||
@@ -20,6 +20,15 @@ public class EmployeeManagerSkin
|
|||||||
super(controller);
|
super(controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DepartmentService departmentService;
|
||||||
|
|
||||||
|
DepartmentService getDepartmentService() {
|
||||||
|
if (departmentService == null) {
|
||||||
|
departmentService = getBean(DepartmentService.class);
|
||||||
|
}
|
||||||
|
return departmentService;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Specification<Employee> getSpecification() {
|
public Specification<Employee> getSpecification() {
|
||||||
Specification<Employee> spec = super.getSpecification();
|
Specification<Employee> spec = super.getSpecification();
|
||||||
@@ -33,12 +42,6 @@ public class EmployeeManagerSkin
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initializeTable() {
|
public void initializeTable() {
|
||||||
EntityStringConverter<Department> departmentStringConverter = new EntityStringConverter<>();
|
|
||||||
DepartmentService departmentService = getBean(DepartmentService.class);
|
|
||||||
departmentStringConverter.setInitialized(department -> {
|
|
||||||
return departmentService.findById(department.getId());
|
|
||||||
});
|
|
||||||
|
|
||||||
controller.idColumn.setCellValueFactory(param -> param.getValue().getId());
|
controller.idColumn.setCellValueFactory(param -> param.getValue().getId());
|
||||||
controller.nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
controller.nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
||||||
controller.aliasColumn.setCellValueFactory(param -> param.getValue().getAlias());
|
controller.aliasColumn.setCellValueFactory(param -> param.getValue().getAlias());
|
||||||
@@ -46,7 +49,7 @@ public class EmployeeManagerSkin
|
|||||||
controller.accountColumn.setCellValueFactory(param -> param.getValue().getAccount());
|
controller.accountColumn.setCellValueFactory(param -> param.getValue().getAccount());
|
||||||
|
|
||||||
controller.departmentColumn.setCellValueFactory(param -> param.getValue().getDepartment());
|
controller.departmentColumn.setCellValueFactory(param -> param.getValue().getDepartment());
|
||||||
controller.departmentColumn.setCellFactory(ComboBoxTableCell.forTableColumn(departmentStringConverter));
|
controller.departmentColumn.setCellFactory(param -> new DepartmentTableCell<>(getDepartmentService()));
|
||||||
|
|
||||||
|
|
||||||
controller.emailColumn.setCellValueFactory(param -> param.getValue().getEmail());
|
controller.emailColumn.setCellValueFactory(param -> param.getValue().getEmail());
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.ecep.contract.manager.ui.FxmlPath;
|
|||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.concurrent.Task;
|
import javafx.concurrent.Task;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.CheckBox;
|
import javafx.scene.control.CheckBox;
|
||||||
import javafx.scene.control.TableColumn;
|
import javafx.scene.control.TableColumn;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
@@ -27,17 +28,29 @@ import java.time.LocalDate;
|
|||||||
public class EmployeeManagerWindowController
|
public class EmployeeManagerWindowController
|
||||||
extends AbstManagerWindowController<Employee, EmployeeViewModel, EmployeeManagerSkin> {
|
extends AbstManagerWindowController<Employee, EmployeeViewModel, EmployeeManagerSkin> {
|
||||||
|
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, Number> idColumn;
|
public TableColumn<EmployeeViewModel, Number> idColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, String> accountColumn;
|
public TableColumn<EmployeeViewModel, String> accountColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, Department> departmentColumn;
|
public TableColumn<EmployeeViewModel, Department> departmentColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, String> nameColumn;
|
public TableColumn<EmployeeViewModel, String> nameColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, String> aliasColumn;
|
public TableColumn<EmployeeViewModel, String> aliasColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, String> codeColumn;
|
public TableColumn<EmployeeViewModel, String> codeColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, String> emailColumn;
|
public TableColumn<EmployeeViewModel, String> emailColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, LocalDate> createdColumn;
|
public TableColumn<EmployeeViewModel, LocalDate> createdColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, LocalDate> entryDateColumn;
|
public TableColumn<EmployeeViewModel, LocalDate> entryDateColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, LocalDate> leaveDateColumn;
|
public TableColumn<EmployeeViewModel, LocalDate> leaveDateColumn;
|
||||||
|
@FXML
|
||||||
public TableColumn<EmployeeViewModel, Boolean> activeColumn;
|
public TableColumn<EmployeeViewModel, Boolean> activeColumn;
|
||||||
|
@FXML
|
||||||
public CheckBox activeCheckBox;
|
public CheckBox activeCheckBox;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import com.ecep.contract.manager.ds.other.model.Employee;
|
|||||||
import com.ecep.contract.manager.ds.other.model.EmployeeAuthBind;
|
import com.ecep.contract.manager.ds.other.model.EmployeeAuthBind;
|
||||||
import com.ecep.contract.manager.ds.other.service.EmployeeAuthBindService;
|
import com.ecep.contract.manager.ds.other.service.EmployeeAuthBindService;
|
||||||
import com.ecep.contract.manager.ds.other.vo.EmployeeAuthBindViewModel;
|
import com.ecep.contract.manager.ds.other.vo.EmployeeAuthBindViewModel;
|
||||||
import com.ecep.contract.manager.ui.EditableEntityTableTabSkin;
|
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.scene.control.ContextMenu;
|
import javafx.scene.control.ContextMenu;
|
||||||
import javafx.scene.control.MenuItem;
|
import javafx.scene.control.MenuItem;
|
||||||
@@ -19,8 +19,7 @@ import java.util.List;
|
|||||||
|
|
||||||
@FxmlPath("/ui/employee/employee-auth-bind.fxml")
|
@FxmlPath("/ui/employee/employee-auth-bind.fxml")
|
||||||
public class EmployeeTabSkinAuthBind
|
public class EmployeeTabSkinAuthBind
|
||||||
extends AbstEmployeeTableTabSkin<EmployeeAuthBind, EmployeeAuthBindViewModel>
|
extends AbstEmployeeTableTabSkin<EmployeeAuthBind, EmployeeAuthBindViewModel> {
|
||||||
implements EditableEntityTableTabSkin<EmployeeAuthBind, EmployeeAuthBindViewModel> {
|
|
||||||
public TableColumn<EmployeeAuthBindViewModel, Number> idColumn;
|
public TableColumn<EmployeeAuthBindViewModel, Number> idColumn;
|
||||||
public TableColumn<EmployeeAuthBindViewModel, String> ipColumn;
|
public TableColumn<EmployeeAuthBindViewModel, String> ipColumn;
|
||||||
public TableColumn<EmployeeAuthBindViewModel, String> macColumn;
|
public TableColumn<EmployeeAuthBindViewModel, String> macColumn;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.other.controller.employee;
|
|||||||
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.model.Department;
|
import com.ecep.contract.manager.ds.other.model.Department;
|
||||||
import com.ecep.contract.manager.ds.other.service.DepartmentService;
|
import com.ecep.contract.manager.ds.other.service.DepartmentService;
|
||||||
import com.ecep.contract.manager.ui.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
import javafx.scene.control.Tab;
|
import javafx.scene.control.Tab;
|
||||||
import javafx.util.converter.LocalDateStringConverter;
|
import javafx.util.converter.LocalDateStringConverter;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user