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 ###
|
||||
.vscode/
|
||||
|
||||
/config.properties
|
||||
@@ -1,9 +1,9 @@
|
||||
#Updated config.properties
|
||||
#Wed Mar 26 16:33:45 CST 2025
|
||||
cloud.u8.enabled=true
|
||||
db.server.database=supplier_ms
|
||||
db.server.host=db-server1.ecctrl.com
|
||||
db.server.password=ecep.62335656
|
||||
db.server.port=3306
|
||||
db.server.username=ecep
|
||||
#db.server.database=supplier_ms
|
||||
#db.server.host=10.84.209.8
|
||||
#db.server.password=ecep.62335656
|
||||
#db.server.port=3306
|
||||
#db.server.username=ecep
|
||||
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>
|
||||
</dependency>
|
||||
</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>
|
||||
<plugins>
|
||||
<plugin>
|
||||
|
||||
@@ -25,7 +25,7 @@ public class AppV2 {
|
||||
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_USERNAME = "supplier_ms";
|
||||
public static final String DEFAULT_DB_PASSWORD = "[TPdseO!JKMmlrpf";
|
||||
|
||||
@@ -1,25 +1,29 @@
|
||||
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.Locale;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
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 {
|
||||
private static final Logger logger = LoggerFactory.getLogger(CurrentEmployee.class);
|
||||
/**
|
||||
@@ -69,6 +73,8 @@ public class CurrentEmployee extends EmployeeViewModel {
|
||||
Platform.runLater(() -> {
|
||||
update(employee);
|
||||
rolesProperty().setAll(roles);
|
||||
// 发布事件
|
||||
SpringApp.context.publishEvent(new CurrentEmployeeInitialedEvent(this));
|
||||
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.LoggerFactory;
|
||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
@@ -31,7 +30,6 @@ import java.net.URL;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.logging.Level;
|
||||
|
||||
/**
|
||||
@@ -41,74 +39,9 @@ import java.util.logging.Level;
|
||||
* Created by ecep on 2017/05/08.
|
||||
*/
|
||||
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;
|
||||
|
||||
/**
|
||||
* 在默认浏览器中打开指定的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() {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("shutdown");
|
||||
@@ -249,7 +182,6 @@ public class Desktop extends Application {
|
||||
|
||||
beanFactory.registerSingleton("scheduledExecutorService", getExecutorService());
|
||||
beanFactory.registerSingleton("taskMonitorCenter", taskMonitorCenter);
|
||||
|
||||
});
|
||||
|
||||
try {
|
||||
|
||||
@@ -1,17 +1,26 @@
|
||||
package com.ecep.contract.manager;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
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;
|
||||
|
||||
import java.io.*;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.net.CookieStore;
|
||||
import java.net.HttpCookie;
|
||||
import java.net.URI;
|
||||
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 {
|
||||
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
package com.ecep.contract.manager;
|
||||
|
||||
import com.ecep.contract.manager.cloud.CloudRepositoriesConfig;
|
||||
import com.ecep.contract.manager.ds.DsRepositoriesConfig;
|
||||
import com.ecep.contract.manager.ui.MessageHolder;
|
||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
|
||||
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;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Locale;
|
||||
import java.util.Properties;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
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.EnableScheduling;
|
||||
|
||||
import java.time.*;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Properties;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.FutureTask;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import com.ecep.contract.manager.cloud.CloudRepositoriesConfig;
|
||||
import com.ecep.contract.manager.ds.DsRepositoriesConfig;
|
||||
import com.ecep.contract.manager.ui.MessageHolder;
|
||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
|
||||
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
|
||||
@EnableAsync
|
||||
@EnableCaching
|
||||
@@ -97,7 +99,6 @@ public class SpringApp {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
startup.start("");
|
||||
context = application.run();
|
||||
logger.debug("SpringApp.launch application.run().");
|
||||
@@ -178,7 +179,8 @@ public class SpringApp {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void environmentPrepared(ConfigurableBootstrapContext bootstrapContext, ConfigurableEnvironment environment) {
|
||||
public void environmentPrepared(ConfigurableBootstrapContext bootstrapContext,
|
||||
ConfigurableEnvironment environment) {
|
||||
logger.debug("Desktop.environmentPrepared");
|
||||
debug("初始化 Environment 中,请稍后...");
|
||||
}
|
||||
@@ -195,7 +197,6 @@ public class SpringApp {
|
||||
debug("Spring Application Context 初始化完毕,请稍后...");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void started(ConfigurableApplicationContext context, Duration timeTaken) {
|
||||
logger.debug("Desktop.started");
|
||||
@@ -231,7 +232,7 @@ public class SpringApp {
|
||||
|
||||
@Bean
|
||||
public CacheManager cacheManager() {
|
||||
// return new ConcurrentMapCacheManager("myCache");
|
||||
// return new ConcurrentMapCacheManager("myCache");
|
||||
CaffeineCacheManager cacheManager = new CaffeineCacheManager();
|
||||
cacheManager.setAsyncCacheMode(true);
|
||||
return cacheManager;
|
||||
@@ -242,10 +243,12 @@ public class SpringApp {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
JavaTimeModule javaTimeModule = new JavaTimeModule();
|
||||
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.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));
|
||||
objectMapper.registerModule(javaTimeModule);
|
||||
return objectMapper;
|
||||
@@ -253,7 +256,7 @@ public class SpringApp {
|
||||
|
||||
@Bean
|
||||
public ScheduledExecutorService scheduledExecutorService() {
|
||||
return Executors.newScheduledThreadPool(3);
|
||||
return Desktop.instance.getExecutorService();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ecep.contract.manager.cloud.old;
|
||||
|
||||
import com.ecep.contract.manager.Desktop;
|
||||
import com.ecep.contract.manager.SpringApp;
|
||||
import com.ecep.contract.manager.cloud.rk.CloudRk;
|
||||
import com.ecep.contract.manager.cloud.rk.CloudRkService;
|
||||
@@ -81,8 +82,6 @@ public class OldVersionService {
|
||||
@Autowired
|
||||
private CloudTycService cloudTycService;
|
||||
@Autowired
|
||||
private ScheduledExecutorService scheduledExecutorService;
|
||||
@Autowired
|
||||
private CompanyContactRepository companyContactRepository;
|
||||
@Autowired
|
||||
private CompanyCustomerRepository companyCustomerRepository;
|
||||
@@ -210,7 +209,8 @@ public class OldVersionService {
|
||||
*/
|
||||
public void scheduledTasks(TaskProgressView<Task<?>> taskProgressView) {
|
||||
// 15分钟运行一次合同合同任务
|
||||
scheduledExecutorService.scheduleAtFixedRate(() -> {
|
||||
ScheduledExecutorService executorService = Desktop.instance.getExecutorService();
|
||||
executorService.scheduleAtFixedRate(() -> {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("createSyncTask");
|
||||
}
|
||||
@@ -220,16 +220,9 @@ public class OldVersionService {
|
||||
return;
|
||||
}
|
||||
|
||||
Task<Object> vendorTask = new OldVersionSyncVendorTask();
|
||||
Task<Object> customerTask = new OldVersionSyncCustomerTask();
|
||||
Desktop.instance.getTaskMonitorCenter().registerTask(new OldVersionSyncVendorTask()).schedule(5, TimeUnit.SECONDS);
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
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.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -16,10 +8,20 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
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 final OldVersionService service = SpringApp.getBean(OldVersionService.class);
|
||||
@@ -40,7 +42,7 @@ public class OldVersionSyncCustomerTask extends Task<Object> {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object call() throws Exception {
|
||||
protected Object execute(MessageHolder holder) throws Exception {
|
||||
updateTitle("老版本-同步客户数据");
|
||||
basePath = companyService.getCustomerBasePath();
|
||||
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;
|
||||
|
||||
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.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -16,7 +8,17 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
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 final OldVersionService service = SpringApp.getBean(OldVersionService.class);
|
||||
@@ -35,12 +37,11 @@ public class OldVersionSyncVendorTask extends Task<Object> {
|
||||
super.updateTitle(titlePrefix + title);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected Object call() throws Exception {
|
||||
protected Object execute(MessageHolder holder) throws Exception {
|
||||
basePath = companyService.getVendorBasePath();
|
||||
|
||||
List<Runnable> runnable = Arrays.asList(this::loadOldNames, this::loadContacts, this::syncVendors, this::syncContracts);
|
||||
List<Runnable> runnable = Arrays.asList(this::loadOldNames, this::loadContacts, this::syncVendors,
|
||||
this::syncContracts);
|
||||
for (int i = 0; i < runnable.size(); i++) {
|
||||
titlePrefix = "老版本-同步供应商数据-" + (i + 1) + "/" + runnable.size() + "-";
|
||||
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 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.model.Company;
|
||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||
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.event.ActionEvent;
|
||||
|
||||
@@ -1,25 +1,19 @@
|
||||
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.util.List;
|
||||
import java.util.Optional;
|
||||
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
|
||||
public interface CloudRkRepository
|
||||
// curd
|
||||
extends CrudRepository<CloudRk, Integer>, PagingAndSortingRepository<CloudRk, Integer>,
|
||||
// JPA interfaces
|
||||
JpaRepository<CloudRk, Integer>, JpaSpecificationExecutor<CloudRk> {
|
||||
public interface CloudRkRepository extends MyRepository<CloudRk, Integer> {
|
||||
|
||||
Stream<CloudRk> findByCloudLatestAfter(Instant timestamp);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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.ds.company.BlackReasonType;
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public static class EntInfo {
|
||||
@@ -110,8 +109,6 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
||||
private CompanyOldNameRepository companyOldNameRepository;
|
||||
@Autowired
|
||||
private CompanyBlackReasonRepository companyBlackReasonRepository;
|
||||
@Autowired
|
||||
private ScheduledExecutorService scheduledExecutorService;
|
||||
|
||||
@Cacheable(key = "#p0")
|
||||
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("shortName"), "%" + 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(
|
||||
Company company, CloudRk cloudRk, BlackListUpdateContext context
|
||||
) throws IOException {
|
||||
Company company, CloudRk cloudRk, BlackListUpdateContext context) throws IOException {
|
||||
List<String> companyNames = new ArrayList<>();
|
||||
companyNames.add(company.getName());
|
||||
// fixed 平台API使用企业名称,可能记录的是曾用名
|
||||
@@ -172,12 +167,14 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
||||
try {
|
||||
if (data.has("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")) {
|
||||
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) {
|
||||
@@ -214,11 +211,11 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
||||
private void toCompanyBlackReasonList(
|
||||
Company company, BlackReasonType type,
|
||||
JsonNode reason, List<CompanyBlackReason> dbReasons,
|
||||
List<CompanyBlackReason> reasonList, ObjectMapper objectMapper
|
||||
) throws JsonMappingException {
|
||||
List<CompanyBlackReason> reasonList, ObjectMapper objectMapper) throws JsonMappingException {
|
||||
ObjectNode object = (ObjectNode) reason;
|
||||
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);
|
||||
cbr.setCompany(company);
|
||||
cbr.setType(type);
|
||||
@@ -241,8 +238,7 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
||||
* @return true
|
||||
*/
|
||||
public boolean checkBlackListUpdateElapse(
|
||||
Company company, CloudRk cloudRk, BlackListUpdateContext context
|
||||
) {
|
||||
Company company, CloudRk cloudRk, BlackListUpdateContext context) {
|
||||
Instant start = cloudRk.getCloudBlackListUpdated();
|
||||
if (start == null) {
|
||||
return true;
|
||||
@@ -280,7 +276,8 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
||||
}
|
||||
|
||||
// 查询有 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()) {
|
||||
// 保留第一条,其他删除
|
||||
@@ -299,7 +296,8 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
||||
}
|
||||
|
||||
// 查询有 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()) {
|
||||
// 保留第一条,其他删除
|
||||
@@ -338,7 +336,6 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
||||
cloudRKRepository.delete(entity);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 返回 在 {@link #getSyncElapse()} 毫秒前,更新的
|
||||
*
|
||||
@@ -354,7 +351,7 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
||||
/**
|
||||
* 返回距离上次更新超过 SysConfig:cloud.rk.black_list.elapse 秒的公司
|
||||
*/
|
||||
// @Transactional
|
||||
// @Transactional
|
||||
public List<CloudRk> findNeedUpdate() {
|
||||
Instant now = Instant.now();
|
||||
long elapse = getSyncElapse();
|
||||
@@ -368,26 +365,14 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
||||
* @param taskProgressView 任务视图
|
||||
*/
|
||||
public void scheduledTasks(TaskProgressView<Task<?>> taskProgressView) {
|
||||
AtomicReference<Runnable> reference = new AtomicReference<>();
|
||||
Runnable runnable = () -> {
|
||||
CloudRkSyncTask task = new CloudRkSyncTask();
|
||||
Platform.runLater(() -> taskProgressView.getTasks().add(task));
|
||||
// 延迟10秒
|
||||
task.delay(10, CompletableFuture.delayedExecutor(1, TimeUnit.SECONDS, scheduledExecutorService))
|
||||
.thenRun(() -> {
|
||||
try {
|
||||
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);
|
||||
ScheduledExecutorService executorService = Desktop.instance.getExecutorService();
|
||||
// 第一次延时1分钟启动
|
||||
executorService.schedule(() -> {
|
||||
// 定时 30分钟 运行一次
|
||||
executorService.scheduleAtFixedRate(() -> {
|
||||
Desktop.instance.getTaskMonitorCenter().registerTask(new CloudRkSyncTask()).submit();
|
||||
}, 0, 30, TimeUnit.MINUTES);
|
||||
}, 1, TimeUnit.MINUTES);
|
||||
}
|
||||
|
||||
@CacheEvict
|
||||
@@ -401,12 +386,10 @@ public class CloudRkService implements ViewModelService<CloudRk, CloudRkInfoView
|
||||
}
|
||||
|
||||
// TODO 这个可以无法更新缓存
|
||||
@Caching(
|
||||
evict = {
|
||||
@CacheEvict(key = "#p0.id"),
|
||||
@CacheEvict(key = "#p1.id"),
|
||||
}
|
||||
)
|
||||
@Caching(evict = {
|
||||
@CacheEvict(key = "#p0.id"),
|
||||
@CacheEvict(key = "#p1.id"),
|
||||
})
|
||||
public void resetTo(Company from, Company to) {
|
||||
List<CloudRk> list = cloudRKRepository.findAllByCompanyId(from.getId());
|
||||
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.CompanyOldName;
|
||||
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.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
@@ -1,29 +1,30 @@
|
||||
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.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.model.Company;
|
||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||
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 javafx.collections.ObservableList;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.scene.control.ContextMenu;
|
||||
import javafx.scene.control.MenuItem;
|
||||
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
|
||||
extends AbstEntityManagerSkin<CloudTyc, CloudTycInfoViewModel, CloudTycManagerSkin, CloudTycManagerWindowController>
|
||||
implements ManagerSkin {
|
||||
extends
|
||||
AbstEntityManagerSkin<CloudTyc, CloudTycInfoViewModel, CloudTycManagerSkin, CloudTycManagerWindowController> {
|
||||
@Setter
|
||||
private CloudTycService cloudTycService;
|
||||
|
||||
@@ -58,8 +59,7 @@ public class CloudTycManagerSkin
|
||||
Path<Object> company = root.get("company");
|
||||
return builder.or(
|
||||
builder.like(company.get("name"), "%" + searchText + "%"),
|
||||
builder.like(company.get("shortName"), "%" + searchText + "%")
|
||||
);
|
||||
builder.like(company.get("shortName"), "%" + searchText + "%"));
|
||||
};
|
||||
|
||||
Specification<CloudTyc> cloudIdSpec = (root, query, builder) -> {
|
||||
|
||||
@@ -1,40 +1,26 @@
|
||||
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.cloud.CloudBaseInfo;
|
||||
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.service.CompanyService;
|
||||
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.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.scene.control.*;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.TableColumn;
|
||||
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
|
||||
private CompanyService companyService;
|
||||
|
||||
|
||||
@FXML
|
||||
public TableColumn<CloudTycInfoViewModel, Number> idColumn;
|
||||
@FXML
|
||||
public TableColumn<CloudTycInfoViewModel, LocalDateTime> latestUpdateColumn;
|
||||
|
||||
@FXML
|
||||
public TableColumn<CloudTycInfoViewModel, Company> companyColumn;
|
||||
@FXML
|
||||
public TableColumn<CloudTycInfoViewModel, String> cloudIdColumn;
|
||||
@FXML
|
||||
public TableColumn<CloudTycInfoViewModel, LocalDateTime> cloudLatestColumn;
|
||||
@FXML
|
||||
public TableColumn<CloudTycInfoViewModel, Number> scoreColumn;
|
||||
|
||||
@FXML
|
||||
public TableColumn<CloudTycInfoViewModel, String> descriptionColumn;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public CloudTycService getViewModelService() {
|
||||
return cloudTycService;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CloudTycManagerSkin createDefaultSkin() {
|
||||
return new CloudTycManagerSkin(this);
|
||||
@@ -80,7 +71,8 @@ public class CloudTycManagerWindowController
|
||||
|
||||
@Override
|
||||
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) {
|
||||
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 -> {
|
||||
try {
|
||||
CloudTyc cloudTyc = cloudTycService.getOrCreateCloudTyc(v);
|
||||
|
||||
@@ -1,23 +1,17 @@
|
||||
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.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
|
||||
public interface CloudTycRepository
|
||||
// curd
|
||||
extends CrudRepository<CloudTyc, Integer>, PagingAndSortingRepository<CloudTyc, Integer>,
|
||||
// JPA interfaces
|
||||
JpaRepository<CloudTyc, Integer>, JpaSpecificationExecutor<CloudTyc> {
|
||||
public interface CloudTycRepository extends MyRepository<CloudTyc, Integer> {
|
||||
|
||||
List<CloudTyc> findAllByCompanyId(Integer companyId);
|
||||
|
||||
@@ -27,5 +21,4 @@ public interface CloudTycRepository
|
||||
@Transactional
|
||||
int deleteAllByCompany(Company company);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@ public class CloudTycService implements ViewModelService<CloudTyc, CloudTycInfoV
|
||||
|
||||
String url = baseUrl + cloudId;
|
||||
|
||||
com.ecep.contract.manager.Desktop.showInBrowse(url);
|
||||
com.ecep.contract.manager.util.DesktopUtils.showInBrowse(url);
|
||||
|
||||
// UITools.showExceptionAndWait("使用浏览器打开网址出现异常", e);
|
||||
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
package com.ecep.contract.manager.cloud.u8;
|
||||
|
||||
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.tasker.AbstContractRepairTasker;
|
||||
import com.ecep.contract.manager.ui.MessageHolder;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Stream;
|
||||
import com.ecep.contract.manager.ds.contract.tasker.AbstContractRepairTasker;
|
||||
import com.ecep.contract.manager.ui.MessageHolder;
|
||||
|
||||
/**
|
||||
* 用友U8系统-同步全量合同
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.ecep.contract.manager.cloud.u8;
|
||||
|
||||
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.model.Company;
|
||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||
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 javafx.collections.ObservableList;
|
||||
import javafx.event.ActionEvent;
|
||||
|
||||
@@ -118,20 +118,20 @@ public class YongYouU8Service implements ViewModelService<CloudYu, CloudYuInfoVi
|
||||
executorService.scheduleAtFixedRate(() -> {
|
||||
ContractSyncTask task = new ContractSyncTask();
|
||||
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);
|
||||
|
||||
executorService.scheduleAtFixedRate(() -> {
|
||||
// 1小时运行一次同步供应商任务
|
||||
VendorSyncTask vendorTask = new VendorSyncTask();
|
||||
MonitoredTask<Object> registerVendorTask = Desktop.instance.getTaskMonitorCenter().registerTask(vendorTask);
|
||||
executorService.schedule(registerVendorTask, 60, TimeUnit.SECONDS);
|
||||
registerVendorTask.schedule(60, TimeUnit.SECONDS);
|
||||
|
||||
// 1小时运行一次同步客户任务
|
||||
CustomerSyncTask customerTask = new CustomerSyncTask();
|
||||
MonitoredTask<Object> registerCustomerTask = Desktop.instance.getTaskMonitorCenter()
|
||||
.registerTask(customerTask);
|
||||
executorService.schedule(registerCustomerTask, 60, TimeUnit.SECONDS);
|
||||
registerCustomerTask.schedule(60, 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 java.util.Map;
|
||||
|
||||
@Configuration
|
||||
@EnableJpaRepositories(bootstrapMode = BootstrapMode.LAZY)
|
||||
public class DsRepositoriesConfig {
|
||||
@@ -41,7 +43,6 @@ public class DsRepositoriesConfig {
|
||||
logger.debug("db server url:{},user:{}", url, username);
|
||||
}
|
||||
|
||||
|
||||
return DataSourceBuilder.create()
|
||||
.type(HikariDataSource.class)
|
||||
.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.service.CompanyService;
|
||||
import com.ecep.contract.manager.ds.company.vo.CompanyViewModel;
|
||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import lombok.Setter;
|
||||
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
|
||||
public abstract class AbstCompanyBasedTabSkin
|
||||
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.other.model.IdentityEntity;
|
||||
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.TableOfTabSkin;
|
||||
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.ui.table.TableOfTabSkin;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
|
||||
@@ -16,8 +16,7 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public class CompanyManagerSkin
|
||||
extends AbstEntityManagerSkin<Company, CompanyViewModel, CompanyManagerSkin, CompanyManagerWindowController>
|
||||
implements ManagerSkin {
|
||||
extends AbstEntityManagerSkin<Company, CompanyViewModel, CompanyManagerSkin, CompanyManagerWindowController> {
|
||||
|
||||
@Setter
|
||||
private CompanyOldNameService companyOldNameService;
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
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 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 java.time.LocalDate;
|
||||
|
||||
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 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
|
||||
@Scope("prototype")
|
||||
@@ -27,11 +28,17 @@ public class CompanyManagerWindowController
|
||||
extends AbstManagerWindowController<Company, CompanyViewModel, CompanyManagerSkin> {
|
||||
|
||||
// columns
|
||||
@FXML
|
||||
public TableColumn<CompanyViewModel, Number> idColumn;
|
||||
@FXML
|
||||
public TableColumn<CompanyViewModel, String> nameColumn;
|
||||
@FXML
|
||||
public TableColumn<CompanyViewModel, String> uniscidColumn;
|
||||
@FXML
|
||||
public TableColumn<CompanyViewModel, String> entStatusColumn;
|
||||
@FXML
|
||||
public TableColumn<CompanyViewModel, LocalDate> createdColumn;
|
||||
@FXML
|
||||
public TableColumn<CompanyViewModel, String> memoColumn;
|
||||
|
||||
@Autowired
|
||||
|
||||
@@ -1,23 +1,19 @@
|
||||
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.model.Company;
|
||||
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.vo.CompanyBankAccountViewModel;
|
||||
import com.ecep.contract.manager.ds.other.model.Bank;
|
||||
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.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.input.KeyCode;
|
||||
import lombok.Setter;
|
||||
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_bankColumn.setCellValueFactory(param -> param.getValue().getBank());
|
||||
bankAccountTable_bankColumn.setCellFactory(param -> new TableCell<>() {
|
||||
@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_bankColumn.setCellFactory(param -> new BankTableCell<>(getBankService()));
|
||||
|
||||
bankAccountTable_openingBankColumn.setCellValueFactory(param -> param.getValue().getOpeningBank());
|
||||
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.CompanyOldName;
|
||||
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.geometry.Insets;
|
||||
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.service.CompanyBlackReasonService;
|
||||
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.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 子合同
|
||||
|
||||
@@ -1,23 +1,18 @@
|
||||
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.model.Company;
|
||||
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.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.TabSkin;
|
||||
import com.ecep.contract.manager.ui.ViewModelService;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 子合同
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
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.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.model.Contract;
|
||||
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.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.ContractTypeService;
|
||||
import com.ecep.contract.manager.ds.contract.tasker.ContractRepairByCompanyTask;
|
||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||
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.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.LocalDateTimeTableCell;
|
||||
import com.ecep.contract.manager.util.DesktopUtils;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import javafx.collections.FXCollections;
|
||||
@@ -80,6 +80,12 @@ public class CompanyTabSkinContract
|
||||
@Setter
|
||||
private ContractService contractService;
|
||||
@Setter
|
||||
private ContractGroupService contractGroupService;
|
||||
@Setter
|
||||
private ContractKindService contractKindService;
|
||||
@Setter
|
||||
private ContractTypeService contractTypeService;
|
||||
@Setter
|
||||
private YongYouU8Service u8Service;
|
||||
@Setter
|
||||
private EmployeeStringConverter employeeStringConverter;
|
||||
@@ -126,7 +132,7 @@ public class CompanyTabSkinContract
|
||||
|
||||
ObservableList<ContractGroup> contractGroups = FXCollections.observableArrayList();
|
||||
contractGroups.add(null);
|
||||
contractGroups.addAll(contractService.findAllGroups());
|
||||
contractGroups.addAll(getViewModelService().findAllGroups());
|
||||
contractGroupSelector.setItems(contractGroups);
|
||||
contractGroupSelector.setConverter(new ContractGroupStringConverter(contractGroups));
|
||||
contractSearchKeyField.setOnKeyReleased(event -> {
|
||||
@@ -139,13 +145,13 @@ public class CompanyTabSkinContract
|
||||
CompletableFuture.runAsync(() -> {
|
||||
// 计算主合同编号
|
||||
for (ContractViewModel model : dataSet) {
|
||||
Contract contract = contractService.findById(model.getId().get());
|
||||
Contract contract = getViewModelService().findById(model.getId().get());
|
||||
if (contract == null) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
if (contractService.updateParentCode(contract)) {
|
||||
Contract updated = contractService.save(contract);
|
||||
if (getViewModelService().updateParentCode(contract)) {
|
||||
Contract updated = getViewModelService().save(contract);
|
||||
model.update(updated);
|
||||
}
|
||||
} catch (NoSuchElementException e) {
|
||||
@@ -160,13 +166,13 @@ public class CompanyTabSkinContract
|
||||
contractTable_nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
||||
contractTable_stateColumn.setCellValueFactory(param -> param.getValue().getState());
|
||||
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.setCellFactory(param -> new ContractTypeTableCell(getViewModelService()));
|
||||
contractTable_typeColumn.setCellFactory(param -> new ContractTypeTableCell<>(getContractTypeService()));
|
||||
|
||||
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());
|
||||
@@ -174,18 +180,18 @@ public class CompanyTabSkinContract
|
||||
contractTable_startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate());
|
||||
contractTable_endDateColumn.setCellValueFactory(param -> param.getValue().getEndDate());
|
||||
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.setSortable(true);
|
||||
// contractTable_setupDateColumn.setSortType(TableColumn.SortType.DESCENDING);
|
||||
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_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_createdColumn.setCellValueFactory(param -> param.getValue().getCreated());
|
||||
@@ -205,7 +211,7 @@ public class CompanyTabSkinContract
|
||||
|
||||
private void onTableUpdateAction(ActionEvent event) {
|
||||
ContractRepairByCompanyTask task = new ContractRepairByCompanyTask();
|
||||
task.setContractService(contractService);
|
||||
task.setContractService(getViewModelService());
|
||||
task.setCompany(getParent());
|
||||
UITools.showTaskDialogAndWait("同步合同", task, null);
|
||||
if (task.isRepaired()) {
|
||||
@@ -236,7 +242,7 @@ public class CompanyTabSkinContract
|
||||
}
|
||||
|
||||
try {
|
||||
Desktop.showInExplorer(file);
|
||||
DesktopUtils.showInExplorer(file);
|
||||
setStatus("打开文件/目录 " + path);
|
||||
} catch (Exception e) {
|
||||
setStatus("打开文件错误:" + e.getMessage());
|
||||
@@ -255,6 +261,27 @@ public class CompanyTabSkinContract
|
||||
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() {
|
||||
if (employeeStringConverter == null) {
|
||||
employeeStringConverter = getBean(EmployeeStringConverter.class);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
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.cloud.tyc.CloudTycService;
|
||||
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.service.CompanyFileService;
|
||||
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.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.UITools;
|
||||
import javafx.application.Platform;
|
||||
@@ -343,7 +343,7 @@ public class CompanyTabSkinFile
|
||||
setStatus("文件不存在 " + file.getName());
|
||||
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.contract.service.PurchaseBillVoucherService;
|
||||
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.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Tab;
|
||||
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.vo.CompanyOldNameViewModel;
|
||||
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 javafx.application.Platform;
|
||||
import javafx.event.ActionEvent;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
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.CloudRkInfoViewModel;
|
||||
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.ui.FxmlPath;
|
||||
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.util.DesktopUtils;
|
||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import javafx.application.Platform;
|
||||
@@ -376,7 +376,7 @@ public class CompanyTabSkinOther
|
||||
Company company = getEntity();
|
||||
url = String.format(CloudTycService.URL_COMPANY_SEARCH, company.getName());
|
||||
}
|
||||
Desktop.showInBrowse(url);
|
||||
DesktopUtils.showInBrowse(url);
|
||||
}
|
||||
|
||||
public void onTycCloudPaneHyperLinkInnerViewClickedAction(ActionEvent event) {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.ecep.contract.manager.ds.company.controller;
|
||||
|
||||
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.service.InvoiceService;
|
||||
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.model.Employee;
|
||||
import com.ecep.contract.manager.ui.FxmlPath;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.ViewModelService;
|
||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.ui.table.cell.InvoiceTableCell;
|
||||
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.control.cell.TextFieldTableCell;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import lombok.Setter;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
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;
|
||||
|
||||
import com.ecep.contract.manager.Desktop;
|
||||
import com.ecep.contract.manager.SpringApp;
|
||||
import com.ecep.contract.manager.ds.company.model.Company;
|
||||
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.model.CompanyVendor;
|
||||
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.FxmlPath;
|
||||
import com.ecep.contract.manager.util.DesktopUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.event.ActionEvent;
|
||||
@@ -307,7 +307,7 @@ public class CompanyWindowController
|
||||
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.model.Company;
|
||||
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.vo.CompanyBankAccountViewModel;
|
||||
import com.ecep.contract.manager.ds.other.BankStringConverter;
|
||||
import com.ecep.contract.manager.ds.other.service.BankService;
|
||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import javafx.scene.control.Tab;
|
||||
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.CompanyService;
|
||||
import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
|
||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import javafx.scene.control.Tab;
|
||||
import javafx.util.converter.LocalDateStringConverter;
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
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.ds.company.CompanyFileType;
|
||||
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.vo.CompanyFileViewModel;
|
||||
import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel;
|
||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||
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.UITools;
|
||||
import javafx.application.Platform;
|
||||
@@ -318,7 +318,7 @@ public class CompanyOldNameTabSkinFile
|
||||
setStatus("文件不存在 " + file.getName());
|
||||
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.FxmlPath;
|
||||
import com.ecep.contract.manager.ui.ViewModelService;
|
||||
import com.ecep.contract.manager.util.DesktopUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.scene.control.*;
|
||||
@@ -25,8 +26,6 @@ import org.springframework.util.StringUtils;
|
||||
import java.io.File;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import static com.ecep.contract.manager.Desktop.showInExplorer;
|
||||
|
||||
@Lazy
|
||||
@Scope("prototype")
|
||||
@Component
|
||||
@@ -125,7 +124,7 @@ public class CompanyOldNameWindowController extends AbstEntityController<Company
|
||||
}
|
||||
}
|
||||
File file = new File(companyOldName.getPath());
|
||||
showInExplorer(file);
|
||||
DesktopUtils.showInExplorer(file);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,25 @@
|
||||
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.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;
|
||||
|
||||
/**
|
||||
* 公司信息类,保存企业信息
|
||||
*/
|
||||
@@ -21,7 +28,7 @@ import java.util.Objects;
|
||||
@Entity
|
||||
@Table(name = "COMPANY")
|
||||
@ToString
|
||||
public class Company implements IdentityEntity, NamedEntity, com.ecep.contract.manager.ds.other.model.Entity {
|
||||
public class Company implements IdentityEntity, NamedEntity, com.ecep.contract.manager.ds.other.model.Entity {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@@ -32,21 +39,22 @@ public class Company implements IdentityEntity, NamedEntity, com.ecep.contract.
|
||||
*/
|
||||
private String name;
|
||||
|
||||
|
||||
/**
|
||||
* 统一社会信用代码
|
||||
* <p>
|
||||
* 编码结构
|
||||
*
|
||||
* <pre>
|
||||
* 1 | 1 | 6 | 9 | 1 <br>
|
||||
* 登记管理部门代码|机构类别代码|登记管理机关行政区划码|主体标识码|校验码
|
||||
* 1 | 1 | 6 | 9 | 1 < br > 登记管理部门代码 | 机构类别代码 | 登记管理机关行政区划码 | 主体标识码 | 校验码
|
||||
* </pre>
|
||||
* <ul>
|
||||
* <li>登记管理部门代码(第 1 位):<br>
|
||||
* 例如,9 代表工商部门登记的企业等。</li>
|
||||
* <li>机构类别代码(第 2 位):不同的数字表示不同类型的机构。如 1 表示企业,2 表示个体工商户等。</li>
|
||||
* <li>登记管理机关行政区划码(第 3 - 8 位):这 6 位数字代表了登记管理机关所在的行政区划,与身份证号码的前 6 位类似,可对应到具体的地区。</li>
|
||||
* <li>主体标识码(组织机构代码,第 9 - 17 位):它是对中华人民共和国境内依法注册、依法登记的机关、企事业单位、社会团体和民办非企业单位等机构颁发的一个在全国范围内唯一的、始终不变的代码。</li>
|
||||
* <li>登记管理机关行政区划码(第 3 - 8 位):这 6 位数字代表了登记管理机关所在的行政区划,与身份证号码的前 6
|
||||
* 位类似,可对应到具体的地区。</li>
|
||||
* <li>主体标识码(组织机构代码,第 9 - 17
|
||||
* 位):它是对中华人民共和国境内依法注册、依法登记的机关、企事业单位、社会团体和民办非企业单位等机构颁发的一个在全国范围内唯一的、始终不变的代码。</li>
|
||||
* </ul>
|
||||
* </p>
|
||||
*/
|
||||
@@ -176,19 +184,27 @@ public class Company implements IdentityEntity, NamedEntity, com.ecep.contract.
|
||||
|
||||
@Override
|
||||
public final boolean equals(Object object) {
|
||||
if (this == object) return true;
|
||||
if (object == null) 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;
|
||||
if (this == object)
|
||||
return true;
|
||||
if (object == null)
|
||||
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;
|
||||
return getId() != null && Objects.equals(getId(), company.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
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.service.ContractService;
|
||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import lombok.Setter;
|
||||
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
|
||||
public abstract class AbstContractBasedTabSkin
|
||||
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.other.model.IdentityEntity;
|
||||
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.TableOfTabSkin;
|
||||
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.ui.table.TableOfTabSkin;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
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;
|
||||
|
||||
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.model.Contract;
|
||||
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 com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||
import com.ecep.contract.manager.ui.ComboBoxUtils;
|
||||
import com.ecep.contract.manager.ui.ManagerSkin;
|
||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
|
||||
import jakarta.persistence.criteria.Path;
|
||||
import javafx.application.Platform;
|
||||
import javafx.scene.control.cell.TextFieldTableCell;
|
||||
import javafx.util.converter.CurrencyStringConverter;
|
||||
import javafx.util.converter.LocalDateTimeStringConverter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
public class ContractManagerSkin
|
||||
extends AbstEntityManagerSkin<Contract, ContractViewModel, ContractManagerSkin, ContractManagerWindowController>
|
||||
implements ManagerSkin {
|
||||
@Setter
|
||||
private ContractService contractService;
|
||||
private CompanyService companyService;
|
||||
@Setter
|
||||
private ContractGroupService contractGroupService;
|
||||
@Setter
|
||||
private ContractKindService contractKindService;
|
||||
@Setter
|
||||
private ContractTypeService contractTypeService;
|
||||
|
||||
|
||||
public ContractManagerSkin(ContractManagerWindowController controller) {
|
||||
super(controller);
|
||||
}
|
||||
|
||||
public ContractService getContractService() {
|
||||
if (contractService == null) {
|
||||
contractService = getBean(ContractService.class);
|
||||
return controller.getViewModelService();
|
||||
}
|
||||
|
||||
public CompanyService getCompanyService() {
|
||||
if (companyService == null) {
|
||||
companyService = getBean(CompanyService.class);
|
||||
}
|
||||
return contractService;
|
||||
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
|
||||
@@ -52,10 +85,7 @@ public class ContractManagerSkin
|
||||
builder.equal(payWay, ContractPayWay.PAY),
|
||||
builder.or(
|
||||
builder.equal(parentCode, ""),
|
||||
parentCode.isNull()
|
||||
)
|
||||
)
|
||||
);
|
||||
parentCode.isNull())));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -71,7 +101,7 @@ public class ContractManagerSkin
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void initializeTable() {
|
||||
ComboBoxUtils.initialComboBox(controller.groupSelector, contractService.findAllGroups(), true);
|
||||
ComboBoxUtils.initialComboBox(controller.groupSelector, getContractService().findAllGroups(), true);
|
||||
controller.groupSelector.valueProperty().addListener((observable, oldValue, newValue) -> {
|
||||
loadTableDataSet(false);
|
||||
});
|
||||
@@ -80,32 +110,33 @@ public class ContractManagerSkin
|
||||
controller.nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
||||
controller.codeColumn.setCellValueFactory(param -> param.getValue().getCode());
|
||||
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.setCellFactory(param -> new ContractTypeTableCell(contractService));
|
||||
controller.typeColumn.setCellFactory(param -> new ContractTypeTableCell<>(getContractTypeService()));
|
||||
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.setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate());
|
||||
controller.orderDateColumn.setCellValueFactory(param -> param.getValue().getOrderDate());
|
||||
controller.startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate());
|
||||
|
||||
|
||||
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());
|
||||
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.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.setCellFactory(param -> new CompanyTableCell<>());
|
||||
controller.companyColumn.setCellFactory(param -> new CompanyTableCell<>(getCompanyService()));
|
||||
|
||||
Platform.runLater(() -> {
|
||||
controller.composeViewBtn.selectedProperty().addListener((observable, oldValue, newValue) -> {
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
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.contract.model.Contract;
|
||||
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.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.CheckBox;
|
||||
import javafx.scene.control.ComboBox;
|
||||
import javafx.scene.control.TableColumn;
|
||||
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
|
||||
@Scope("prototype")
|
||||
@@ -65,7 +66,6 @@ public class ContractManagerWindowController
|
||||
@Override
|
||||
protected ContractManagerSkin createDefaultSkin() {
|
||||
ContractManagerSkin skin = new ContractManagerSkin(this);
|
||||
skin.setContractService(contractService);
|
||||
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.service.CompanyVendorService;
|
||||
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.UITools;
|
||||
import javafx.beans.binding.Bindings;
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
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.ds.contract.model.Contract;
|
||||
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.ui.ComboBoxUtils;
|
||||
import com.ecep.contract.manager.ui.FxmlPath;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.binding.Bindings;
|
||||
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 lombok.Setter;
|
||||
import org.hibernate.Hibernate;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@FxmlPath("/ui/contract/contract-tab-ext-vendor-info.fxml")
|
||||
public class ContractTabSkinExtendVendorInfo
|
||||
extends AbstContractBasedTabSkin
|
||||
implements TabSkin {
|
||||
|
||||
extends AbstContractBasedTabSkin {
|
||||
|
||||
@Setter
|
||||
private ExtendVendorInfoService extendVendorInfoService;
|
||||
@Setter
|
||||
private VendorGroupService vendorGroupService;
|
||||
|
||||
@FXML
|
||||
public ComboBox<VendorGroup> vendorGroupField;
|
||||
@FXML
|
||||
public Label vendorGroupLabel;
|
||||
@FXML
|
||||
public TextField sequenceNumberField;
|
||||
@FXML
|
||||
public CheckBox assignedProviderField;
|
||||
@FXML
|
||||
public CheckBox prePurchaseField;
|
||||
|
||||
CompletableFuture<ExtendVendorInfo> loadedFuture;
|
||||
@@ -114,8 +123,8 @@ public class ContractTabSkinExtendVendorInfo
|
||||
return v.getDescription();
|
||||
}));
|
||||
|
||||
|
||||
sequenceNumberField.textProperty().bindBidirectional(viewModel.getCodeSequenceNumber(), new NumberStringConverter());
|
||||
sequenceNumberField.textProperty().bindBidirectional(viewModel.getCodeSequenceNumber(),
|
||||
new NumberStringConverter());
|
||||
assignedProviderField.selectedProperty().bindBidirectional(viewModel.getAssignedProvider());
|
||||
assignedProviderField.disableProperty().bind(Bindings.createBooleanBinding(() -> {
|
||||
VendorGroup group = viewModel.getGroup().get();
|
||||
@@ -128,7 +137,6 @@ public class ContractTabSkinExtendVendorInfo
|
||||
prePurchaseField.selectedProperty().bindBidirectional(viewModel.getPrePurchase());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void save() {
|
||||
if (loadedFuture != null) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
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.cloud.u8.ctx.ContractCtx;
|
||||
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.CustomerContractCostFormUpdateTask;
|
||||
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.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
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.UITools;
|
||||
import javafx.beans.binding.Bindings;
|
||||
@@ -573,7 +573,7 @@ public class ContractTabSkinFiles
|
||||
setStatus("文件不存在 " + file.getName());
|
||||
return;
|
||||
}
|
||||
Desktop.showInExplorer(file);
|
||||
DesktopUtils.showInExplorer(file);
|
||||
}
|
||||
|
||||
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.ContractItemViewModel;
|
||||
import com.ecep.contract.manager.ui.FxmlPath;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.ViewModelService;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.property.SimpleListProperty;
|
||||
import javafx.collections.ObservableList;
|
||||
@@ -22,7 +21,6 @@ import lombok.Setter;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
@@ -1,23 +1,21 @@
|
||||
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.ContractItem;
|
||||
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.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.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.model.Employee;
|
||||
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.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.TabSkin;
|
||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||
import javafx.application.Platform;
|
||||
import javafx.scene.control.ContextMenu;
|
||||
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.ui.FxmlPath;
|
||||
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.Tab;
|
||||
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.other.EmployeeStringConverter;
|
||||
import com.ecep.contract.manager.ui.FxmlPath;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.input.KeyCode;
|
||||
|
||||
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.model.Employee;
|
||||
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 javafx.scene.control.*;
|
||||
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.vo.ContractViewModel;
|
||||
import com.ecep.contract.manager.ui.FxmlPath;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.ViewModelService;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
import javafx.application.Platform;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
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.ContractFileService;
|
||||
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.TabSkin;
|
||||
import com.ecep.contract.manager.ui.ViewModelService;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.util.StringConverter;
|
||||
import lombok.Setter;
|
||||
import org.controlsfx.control.textfield.TextFields;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
|
||||
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.Message;
|
||||
import com.ecep.contract.manager.ui.MessageHolder;
|
||||
import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.property.SimpleListProperty;
|
||||
@@ -23,6 +24,7 @@ import javafx.collections.ListChangeListener;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.layout.HBox;
|
||||
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>> {
|
||||
Label message2Label(MessageExt message) {
|
||||
@@ -177,29 +162,46 @@ public class ContractVerifyWindowController extends BaseController {
|
||||
@Autowired
|
||||
private EmployeeService employeeService;
|
||||
|
||||
@FXML
|
||||
public DatePicker setupDateBeginSelector;
|
||||
@FXML
|
||||
public DatePicker setupDateEndSelector;
|
||||
// 企业验证开关
|
||||
@FXML
|
||||
public CheckMenuItem verifyCompanyStatusChecker;
|
||||
@FXML
|
||||
public CheckMenuItem verifyCompanyPathChecker;
|
||||
@FXML
|
||||
public CheckMenuItem verifyCompanyCreditChecker;
|
||||
// 供应商验证开关
|
||||
@FXML
|
||||
public CheckMenuItem verifyVendorChecker;
|
||||
@FXML
|
||||
public CheckMenuItem verifyVendorFileChecker;
|
||||
// 客户验证开关
|
||||
@FXML
|
||||
public CheckMenuItem verifyCustomerChecker;
|
||||
@FXML
|
||||
public CheckMenuItem verifyCustomerFileChecker;
|
||||
@FXML
|
||||
public CheckMenuItem verifyCustomerSubContractDateChecker;
|
||||
|
||||
@FXML
|
||||
public CheckMenuItem onlyShowVerifiedChecker;
|
||||
|
||||
|
||||
@FXML
|
||||
public TableView<Model> viewTable;
|
||||
private final ObservableList<Model> viewTableDataSet = FXCollections.observableArrayList();
|
||||
@FXML
|
||||
public TableColumn<Model, String> viewTable_codeColumn;
|
||||
@FXML
|
||||
public TableColumn<Model, String> viewTable_nameColumn;
|
||||
@FXML
|
||||
public TableColumn<Model, Employee> viewTable_employeeColumn;
|
||||
@FXML
|
||||
public TableColumn<Model, LocalDate> viewTable_setupDateColumn;
|
||||
@FXML
|
||||
public TableColumn<Model, ObservableList<MessageExt>> viewTable_stateColumn;
|
||||
|
||||
@Override
|
||||
@@ -220,7 +222,7 @@ public class ContractVerifyWindowController extends BaseController {
|
||||
viewTable_codeColumn.setCellValueFactory(param -> param.getValue().getCode());
|
||||
viewTable_nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
||||
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_stateColumn.setCellValueFactory(param -> param.getValue().getMessages().map(messages -> {
|
||||
// return messages.stream().map(Message::getMessage).collect(Collectors.joining(", "));
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
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.model.Company;
|
||||
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.ui.AbstEntityController;
|
||||
import com.ecep.contract.manager.ui.FxmlPath;
|
||||
import com.ecep.contract.manager.util.DesktopUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.event.ActionEvent;
|
||||
@@ -184,7 +184,7 @@ public class ContractWindowController
|
||||
setStatus("目录错误,不存在");
|
||||
return;
|
||||
}
|
||||
Desktop.showInExplorer(file);
|
||||
DesktopUtils.showInExplorer(file);
|
||||
}
|
||||
|
||||
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.other.EntityStringConverter;
|
||||
import com.ecep.contract.manager.ds.other.vo.BaseViewModel;
|
||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
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.PurchaseBillVoucherItem;
|
||||
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.PurchaseOrderItemService;
|
||||
import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherItemViewModel;
|
||||
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.ui.AbstEntityTableTabSkin;
|
||||
import com.ecep.contract.manager.ds.other.service.InventoryService;
|
||||
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 javafx.geometry.Pos;
|
||||
import javafx.scene.control.Tab;
|
||||
@@ -22,7 +28,6 @@ import javafx.scene.control.TableCell;
|
||||
import javafx.scene.control.TableColumn;
|
||||
import javafx.util.Callback;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.Hibernate;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
|
||||
@FxmlPath("/ui/contract/purchase-bill-voucher-tab-item.fxml")
|
||||
@@ -44,6 +49,14 @@ public class PurchaseBillVoucherTabSkinItems
|
||||
|
||||
@Setter
|
||||
private PurchaseBillVoucherItemService service;
|
||||
@Setter
|
||||
private ContractService contractService;
|
||||
@Setter
|
||||
private InventoryService inventoryService;
|
||||
@Setter
|
||||
private InvoiceService invoiceService;
|
||||
@Setter
|
||||
private PurchaseOrderItemService purchaseOrderItemService;
|
||||
|
||||
public PurchaseBillVoucherTabSkinItems(PurchaseBillVoucherWindowController controller) {
|
||||
super(controller);
|
||||
@@ -57,6 +70,34 @@ public class PurchaseBillVoucherTabSkinItems
|
||||
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
|
||||
public Specification<PurchaseBillVoucherItem> getSpecification(PurchaseBillVoucher parent) {
|
||||
return SpecificationUtils.and(getSpecification(), (root, query, builder) -> {
|
||||
@@ -74,13 +115,13 @@ public class PurchaseBillVoucherTabSkinItems
|
||||
idColumn.setCellValueFactory(param -> param.getValue().getId());
|
||||
refIdColumn.setCellValueFactory(param -> param.getValue().getRefId());
|
||||
inventoryColumn.setCellValueFactory(param -> param.getValue().getInventory());
|
||||
inventoryColumn.setCellFactory(col -> new InventoryTableCell<>());
|
||||
inventoryColumn.setCellFactory(col -> new InventoryTableCell<>(getInventoryService()));
|
||||
invoiceColumn.setCellValueFactory(param -> param.getValue().getInvoice());
|
||||
invoiceColumn.setCellFactory(col -> new InvoiceTableCell());
|
||||
invoiceColumn.setCellFactory(col -> new InvoiceTableCell<>(getInvoiceService()));
|
||||
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.setCellFactory(col -> new PurchaseOrderItemTableCell(this));
|
||||
orderItemColumn.setCellFactory(col -> new PurchaseOrderItemTableCell<>(getPurchaseOrderItemService()));
|
||||
NumberCellFactory v1 = new NumberCellFactory("%,.1f", null);
|
||||
NumberCellFactory v2 = new NumberCellFactory("%,.2f", null);
|
||||
|
||||
@@ -96,32 +137,6 @@ public class PurchaseBillVoucherTabSkinItems
|
||||
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>> {
|
||||
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.other.EmployeeStringConverter;
|
||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
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.EntityStringConverter;
|
||||
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.TabSkin;
|
||||
import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
import jakarta.persistence.criteria.Join;
|
||||
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.PurchaseOrderItemViewModel;
|
||||
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.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.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
import javafx.application.Platform;
|
||||
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.other.EmployeeStringConverter;
|
||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
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.other.EmployeeStringConverter;
|
||||
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.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
import javafx.application.Platform;
|
||||
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.SalesOrderItemViewModel;
|
||||
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.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
import javafx.application.Platform;
|
||||
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.repository.ContractGroupRepository;
|
||||
import com.ecep.contract.manager.ds.other.service.IEntityService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
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.Caching;
|
||||
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 java.util.List;
|
||||
@@ -20,30 +24,46 @@ import java.util.List;
|
||||
@Lazy
|
||||
@Service
|
||||
@CacheConfig(cacheNames = "contract-group")
|
||||
public class ContractGroupService {
|
||||
public class ContractGroupService implements IEntityService<ContractGroup> {
|
||||
private static final Logger logger = LoggerFactory.getLogger(ContractGroupService.class);
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private ContractGroupRepository contractGroupRepository;
|
||||
private ContractGroupRepository repository;
|
||||
|
||||
@Cacheable(key = "#p0")
|
||||
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) {
|
||||
return contractGroupRepository.findByName(name).orElse(null);
|
||||
return repository.findByName(name).orElse(null);
|
||||
}
|
||||
|
||||
@Cacheable(key = "'code-'+#p0")
|
||||
public ContractGroup findByCode(String code) {
|
||||
return contractGroupRepository.findByCode(code).orElse(null);
|
||||
return repository.findByCode(code).orElse(null);
|
||||
}
|
||||
|
||||
@Cacheable(key = "'groups'")
|
||||
public List<ContractGroup> findAll() {
|
||||
return contractGroupRepository.findAll();
|
||||
return repository.findAll();
|
||||
}
|
||||
|
||||
@Caching(evict = {
|
||||
@@ -52,7 +72,7 @@ public class ContractGroupService {
|
||||
@CacheEvict(key = "'code-'+#p0.code"),
|
||||
})
|
||||
public ContractGroup save(ContractGroup group) {
|
||||
return contractGroupRepository.save(group);
|
||||
return repository.save(group);
|
||||
}
|
||||
|
||||
@Caching(evict = {
|
||||
@@ -60,7 +80,7 @@ public class ContractGroupService {
|
||||
@CacheEvict(key = "'groups'"),
|
||||
})
|
||||
public void delete(Integer id) {
|
||||
contractGroupRepository.deleteById(id);
|
||||
repository.deleteById(id);
|
||||
}
|
||||
|
||||
@Caching(evict = {
|
||||
@@ -69,7 +89,7 @@ public class ContractGroupService {
|
||||
@CacheEvict(key = "'code-'+#p0.code"),
|
||||
})
|
||||
public void delete(ContractGroup group) {
|
||||
contractGroupRepository.delete(group);
|
||||
repository.delete(group);
|
||||
}
|
||||
|
||||
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.repository.ContractKindRepository;
|
||||
import com.ecep.contract.manager.ds.other.service.IEntityService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
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.Caching;
|
||||
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 java.util.List;
|
||||
@@ -20,41 +24,62 @@ import java.util.List;
|
||||
@Lazy
|
||||
@Service
|
||||
@CacheConfig(cacheNames = "contract-kind")
|
||||
public class ContractKindService {
|
||||
public class ContractKindService implements IEntityService<ContractKind> {
|
||||
private static final Logger logger = LoggerFactory.getLogger(ContractKindService.class);
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private ContractKindRepository contractKindRepository;
|
||||
private ContractKindRepository repository;
|
||||
|
||||
@Cacheable(key = "'kind-'+#p0")
|
||||
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) {
|
||||
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) {
|
||||
return contractKindRepository.findByCode(code).orElse(null);
|
||||
return repository.findByCode(code).orElse(null);
|
||||
}
|
||||
|
||||
@Cacheable(key = "'kinds'")
|
||||
public List<ContractKind> findAll() {
|
||||
return contractKindRepository.findAll();
|
||||
return repository.findAll();
|
||||
}
|
||||
|
||||
@Caching(
|
||||
evict = {
|
||||
@CacheEvict(key = "'kinds'"),
|
||||
@CacheEvict(key = "'kind-'+#p0.id"),
|
||||
@CacheEvict(key = "'kind-code-'+#p0.name"),
|
||||
@CacheEvict(key = "'code-'+#p0.name"),
|
||||
}
|
||||
)
|
||||
public ContractKind save(ContractKind kind) {
|
||||
return contractKindRepository.save(kind);
|
||||
return repository.save(kind);
|
||||
}
|
||||
|
||||
@Caching(
|
||||
@@ -64,6 +89,6 @@ public class ContractKindService {
|
||||
}
|
||||
)
|
||||
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.repository.ContractTypeRepository;
|
||||
import com.ecep.contract.manager.ds.other.service.IEntityService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
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.Caching;
|
||||
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 java.util.List;
|
||||
@@ -20,55 +24,71 @@ import java.util.List;
|
||||
@Lazy
|
||||
@Service
|
||||
@CacheConfig(cacheNames = "contract-type")
|
||||
public class ContractTypeService {
|
||||
public class ContractTypeService implements IEntityService<ContractType> {
|
||||
private static final Logger logger = LoggerFactory.getLogger(ContractTypeService.class);
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private ContractTypeRepository contractTypeRepository;
|
||||
private ContractTypeRepository repository;
|
||||
|
||||
@Cacheable(key = "#p0")
|
||||
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) {
|
||||
return contractTypeRepository.findByName(name).orElse(null);
|
||||
return repository.findByName(name).orElse(null);
|
||||
}
|
||||
|
||||
@Cacheable(key = "'code-'+#p0")
|
||||
public ContractType findByCode(String code) {
|
||||
return contractTypeRepository.findByCode(code).orElse(null);
|
||||
return repository.findByCode(code).orElse(null);
|
||||
}
|
||||
|
||||
@Cacheable(key = "'types'")
|
||||
public List<ContractType> findAll() {
|
||||
return contractTypeRepository.findAll();
|
||||
return repository.findAll();
|
||||
}
|
||||
|
||||
@Caching(evict = {
|
||||
@CacheEvict(key = "#p0.id"),
|
||||
@CacheEvict(key = "'code-'+#p0.code"),
|
||||
@CacheEvict(key = "'types'"),
|
||||
@CacheEvict(key = "#p0.id"),
|
||||
@CacheEvict(key = "'code-'+#p0.code"),
|
||||
@CacheEvict(key = "'types'"),
|
||||
})
|
||||
public ContractType save(ContractType type) {
|
||||
return contractTypeRepository.save(type);
|
||||
return repository.save(type);
|
||||
}
|
||||
|
||||
@Caching(evict = {
|
||||
@CacheEvict(key = "#p0"),
|
||||
@CacheEvict(key = "'types'"),
|
||||
@CacheEvict(key = "#p0"),
|
||||
@CacheEvict(key = "'types'"),
|
||||
})
|
||||
public void delete(Integer id) {
|
||||
contractTypeRepository.deleteById(id);
|
||||
repository.deleteById(id);
|
||||
}
|
||||
|
||||
@Caching(evict = {
|
||||
@CacheEvict(key = "#p0.id"),
|
||||
@CacheEvict(key = "'code-'+#p0.code"),
|
||||
@CacheEvict(key = "'types'"),
|
||||
@CacheEvict(key = "#p0.id"),
|
||||
@CacheEvict(key = "'code-'+#p0.code"),
|
||||
@CacheEvict(key = "'types'"),
|
||||
})
|
||||
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.vo.CompanyCustomerViewModel;
|
||||
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.ui.AbstEntityTableTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
|
||||
public abstract class AbstCompanyCustomerTableTabSkin<T extends IdentityEntity, TV extends IdentityViewModel<T>>
|
||||
extends AbstEntityTableTabSkin<CompanyCustomerWindowController, CompanyCustomer, CompanyCustomerViewModel, T, TV>
|
||||
|
||||
@@ -1,29 +1,19 @@
|
||||
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.customer.model.CompanyCustomer;
|
||||
import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService;
|
||||
import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel;
|
||||
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.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
|
||||
extends AbstEntityManagerSkin<CompanyCustomer, CompanyCustomerViewModel, CompanyCustomerManagerSkin, CompanyCustomerManagerWindowController>
|
||||
implements ManagerSkin {
|
||||
extends
|
||||
AbstEntityManagerSkin<CompanyCustomer, CompanyCustomerViewModel, CompanyCustomerManagerSkin, CompanyCustomerManagerWindowController> {
|
||||
|
||||
@Setter
|
||||
private CompanyService companyService;
|
||||
@@ -46,18 +36,14 @@ public class CompanyCustomerManagerSkin
|
||||
@Override
|
||||
public void initializeTable() {
|
||||
controller.idColumn.setCellValueFactory(param -> param.getValue().getId());
|
||||
controller.companyColumn.setCellValueFactory(param -> Bindings.createStringBinding(() -> {
|
||||
Company company = param.getValue().getCompany().get();
|
||||
if (company != null && !Hibernate.isInitialized(company)) {
|
||||
company = companyService.findById(company.getId());
|
||||
}
|
||||
return company == null ? "-" : company.getName();
|
||||
}, param.getValue().getCompany()));
|
||||
controller.companyColumn.setCellValueFactory(param -> param.getValue().getCompany());
|
||||
controller.companyColumn.setCellFactory(param-> new CompanyTableCell<>(getCompanyService()));
|
||||
|
||||
controller.developDateColumn.setCellValueFactory(param -> param.getValue().getDevelopDate());
|
||||
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(() -> {
|
||||
getTableView().getSortOrder().add(controller.idColumn);
|
||||
});
|
||||
|
||||
@@ -1,25 +1,10 @@
|
||||
package com.ecep.contract.manager.ds.customer.controller;
|
||||
|
||||
import com.ecep.contract.manager.ds.company.model.Company;
|
||||
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.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.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 java.io.File;
|
||||
import java.time.LocalDate;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import org.hibernate.Hibernate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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.stereotype.Component;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.LocalDate;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import com.ecep.contract.manager.ds.company.model.Company;
|
||||
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.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
|
||||
@Scope("prototype")
|
||||
@@ -43,7 +49,7 @@ public class CompanyCustomerManagerWindowController
|
||||
|
||||
// columns
|
||||
public TableColumn<CompanyCustomerViewModel, Number> idColumn;
|
||||
public TableColumn<CompanyCustomerViewModel, String> companyColumn;
|
||||
public TableColumn<CompanyCustomerViewModel, Company> companyColumn;
|
||||
public TableColumn<CompanyCustomerViewModel, String> catalogColumn;
|
||||
public TableColumn<CompanyCustomerViewModel, LocalDate> developDateColumn;
|
||||
public TableColumn<CompanyCustomerViewModel, String> pathColumn;
|
||||
@@ -72,7 +78,6 @@ public class CompanyCustomerManagerWindowController
|
||||
return skin;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 对所有客户的文件进行重置
|
||||
* <p>
|
||||
@@ -108,7 +113,6 @@ public class CompanyCustomerManagerWindowController
|
||||
dialog.initOwner(table.getScene().getWindow());
|
||||
dialog.show();
|
||||
|
||||
|
||||
CompletableFuture.runAsync(() -> {
|
||||
Pageable pageRequest = PageRequest.ofSize(50);
|
||||
while (!canceled.get()) {
|
||||
@@ -166,5 +170,4 @@ public class CompanyCustomerManagerWindowController
|
||||
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.vo.CompanyCustomerViewModel;
|
||||
import com.ecep.contract.manager.ds.other.EntityStringConverter;
|
||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import javafx.beans.binding.Bindings;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
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.CompanyService;
|
||||
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.FxmlPath;
|
||||
import com.ecep.contract.manager.ui.ViewModelService;
|
||||
import com.ecep.contract.manager.util.DesktopUtils;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
@@ -115,7 +116,7 @@ public class CompanyCustomerWindowController extends AbstEntityController<Compan
|
||||
setStatus("目录错误,不存在");
|
||||
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.EntityStringConverter;
|
||||
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 javafx.scene.control.MenuItem;
|
||||
import javafx.scene.control.Tab;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
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.ds.company.CompanyFileUtils;
|
||||
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.vo.CompanyCustomerFileViewModel;
|
||||
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.Message;
|
||||
import com.ecep.contract.manager.util.DesktopUtils;
|
||||
import com.ecep.contract.manager.util.MyDateTimeUtils;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
@@ -160,7 +160,7 @@ public class CustomerTabSkinFile
|
||||
setStatus("文件不存在 " + file.getName());
|
||||
return;
|
||||
}
|
||||
Desktop.showInExplorer(file);
|
||||
DesktopUtils.showInExplorer(file);
|
||||
}
|
||||
|
||||
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.vo.CustomerEntityViewModel;
|
||||
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.project.controller.satisfaction_survey.CustomerSatisfactionSurveyWindowController;
|
||||
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.vo.CustomerSatisfactionSurveyViewModel;
|
||||
import com.ecep.contract.manager.ui.FxmlPath;
|
||||
import com.ecep.contract.manager.ui.table.cell.ProjectTableCell;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
import javafx.scene.control.MenuItem;
|
||||
import javafx.scene.control.Tab;
|
||||
@@ -39,7 +41,8 @@ public class CustomerTabSkinSatisfactionSurvey
|
||||
|
||||
public MenuItem entityTable_menu_refresh;
|
||||
public MenuItem entityTable_menu_del;
|
||||
|
||||
@Setter
|
||||
private ProjectService projectService;
|
||||
@Setter
|
||||
private CustomerSatisfactionSurveyService satisfactionSurveyService;
|
||||
|
||||
@@ -60,7 +63,7 @@ public class CustomerTabSkinSatisfactionSurvey
|
||||
bindNumberColumn(idColumn, CustomerSatisfactionSurveyViewModel::getId);
|
||||
bindColumn(codeColumn, CustomerSatisfactionSurveyViewModel::getCode);
|
||||
projectColumn.setCellValueFactory(param -> param.getValue().getProject());
|
||||
projectColumn.setCellFactory(cell -> new ProjectTableCell<>());
|
||||
projectColumn.setCellFactory(cell -> new ProjectTableCell<>(getProjectService()));
|
||||
bindLocalDateColumn(dateColumn, CustomerSatisfactionSurveyViewModel::getDate);
|
||||
bindNumberColumn(totalScoreColumn, CustomerSatisfactionSurveyViewModel::getTotalScore);
|
||||
applicantColumn.setCellValueFactory(param -> param.getValue().getApplicant());
|
||||
@@ -86,6 +89,12 @@ public class CustomerTabSkinSatisfactionSurvey
|
||||
return satisfactionSurveyService;
|
||||
}
|
||||
|
||||
ProjectService getProjectService() {
|
||||
if (projectService == null) {
|
||||
projectService = getBean(ProjectService.class);
|
||||
}
|
||||
return projectService;
|
||||
}
|
||||
|
||||
@Override
|
||||
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;
|
||||
|
||||
import com.ecep.contract.manager.ds.other.model.IdentityEntity;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@@ -17,7 +18,7 @@ import lombok.ToString;
|
||||
@Setter
|
||||
@ToString
|
||||
@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
|
||||
@Column(name = "ID", nullable = false)
|
||||
private Integer id;
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
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.cloud.old.OldVersionService;
|
||||
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.inventory.InventoryManagerWindowController;
|
||||
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.vendor.controller.CompanyVendorManagerWindowController;
|
||||
import com.ecep.contract.manager.ui.BaseController;
|
||||
import com.ecep.contract.manager.ui.FxmlPath;
|
||||
import com.ecep.contract.manager.ui.task.TaskMonitorViewController;
|
||||
import com.ecep.contract.manager.util.DesktopUtils;
|
||||
import com.ecep.contract.manager.util.FxmlUtils;
|
||||
import javafx.application.Platform;
|
||||
|
||||
import javafx.concurrent.Task;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.scene.Node;
|
||||
@@ -36,18 +53,6 @@ import javafx.scene.layout.VBox;
|
||||
import javafx.stage.Modality;
|
||||
import javafx.stage.Stage;
|
||||
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
|
||||
@Scope("prototype")
|
||||
@@ -69,6 +74,7 @@ public class HomeWindowController extends BaseController {
|
||||
public Button openVendorManagerWindow;
|
||||
public Button openCustomManagerWindow;
|
||||
public TaskProgressView<Task<?>> taskProgressView;
|
||||
public Label taskMonitorLabel;
|
||||
public Label employeeStatusLabel;
|
||||
|
||||
public void initialize() {
|
||||
@@ -94,28 +100,32 @@ public class HomeWindowController extends BaseController {
|
||||
((Label) placeholder).setText("没有运行的任务");
|
||||
|
||||
employeeStatusLabel.textProperty().bind(Desktop.instance.getActiveEmployee().getName());
|
||||
Desktop.instance.getTaskMonitorCenter().bindStatusLabel(taskMonitorLabel);
|
||||
Desktop.instance.getActiveEmployee().initialize();
|
||||
}
|
||||
|
||||
Desktop.instance.getActiveEmployee().initialize().thenRun(() -> {
|
||||
if (Desktop.instance.getActiveEmployee().isSystemAdministrator()) {
|
||||
if (logger.isInfoEnabled()) {
|
||||
logger.info("You are administrator, try schedule sync tasks.");
|
||||
}
|
||||
Desktop.instance.getExecutorService().schedule(() -> {
|
||||
try {
|
||||
getBean(OldVersionService.class).scheduledTasks(taskProgressView);
|
||||
} catch (BeansException ignored) {
|
||||
}
|
||||
try {
|
||||
getBean(YongYouU8Service.class).scheduledTasks(taskProgressView);
|
||||
} catch (BeansException ignored) {
|
||||
}
|
||||
try {
|
||||
getBean(CloudRkService.class).scheduledTasks(taskProgressView);
|
||||
} catch (BeansException ignored) {
|
||||
}
|
||||
}, 15, TimeUnit.SECONDS);
|
||||
@EventListener
|
||||
public void onCurrentEmployeeInitialed(CurrentEmployeeInitialedEvent event) {
|
||||
CurrentEmployee currentEmployee = event.getEmployee();
|
||||
if (currentEmployee.isSystemAdministrator()) {
|
||||
if (logger.isInfoEnabled()) {
|
||||
logger.info("You are administrator, try schedule sync tasks.");
|
||||
}
|
||||
});
|
||||
Desktop.instance.getExecutorService().schedule(() -> {
|
||||
try {
|
||||
getBean(OldVersionService.class).scheduledTasks(taskProgressView);
|
||||
} catch (BeansException ignored) {
|
||||
}
|
||||
try {
|
||||
getBean(YongYouU8Service.class).scheduledTasks(taskProgressView);
|
||||
} catch (BeansException ignored) {
|
||||
}
|
||||
try {
|
||||
getBean(CloudRkService.class).scheduledTasks(taskProgressView);
|
||||
} catch (BeansException ignored) {
|
||||
}
|
||||
}, 15, TimeUnit.SECONDS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -165,7 +175,7 @@ public class HomeWindowController extends BaseController {
|
||||
public void openInBrowse(ActionEvent event) {
|
||||
MenuItem source = (MenuItem) event.getSource();
|
||||
String url = (String) source.getUserData();
|
||||
Desktop.showInBrowse(url);
|
||||
DesktopUtils.showInBrowse(url);
|
||||
}
|
||||
|
||||
public void openGroupRKResourceWindow(ActionEvent event) {
|
||||
@@ -189,7 +199,7 @@ public class HomeWindowController extends BaseController {
|
||||
}
|
||||
|
||||
public void onShowRolesManagerWindowAction(ActionEvent event) {
|
||||
showInOwner(EmployeeRolesManagerWindowController.class);
|
||||
showInOwner(EmployeeRoleManagerWindowController.class);
|
||||
}
|
||||
|
||||
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.vo.BankViewModel;
|
||||
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 javafx.scene.control.TableColumn;
|
||||
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.vo.DepartmentViewModel;
|
||||
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 javafx.collections.FXCollections;
|
||||
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.PermissionService;
|
||||
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
||||
import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import lombok.Setter;
|
||||
|
||||
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.EmployeeViewModel;
|
||||
import com.ecep.contract.manager.ds.other.vo.IdentityViewModel;
|
||||
import com.ecep.contract.manager.ui.AbstEntityTableTabSkin;
|
||||
import com.ecep.contract.manager.ui.TabSkin;
|
||||
import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin;
|
||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
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.ui.AbstEntityManagerSkin;
|
||||
import com.ecep.contract.manager.ui.ManagerSkin;
|
||||
import com.ecep.contract.manager.ui.table.cell.DepartmentTableCell;
|
||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.scene.control.cell.CheckBoxTableCell;
|
||||
import javafx.scene.control.cell.ComboBoxTableCell;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
|
||||
public class EmployeeManagerSkin
|
||||
@@ -20,6 +20,15 @@ public class EmployeeManagerSkin
|
||||
super(controller);
|
||||
}
|
||||
|
||||
DepartmentService departmentService;
|
||||
|
||||
DepartmentService getDepartmentService() {
|
||||
if (departmentService == null) {
|
||||
departmentService = getBean(DepartmentService.class);
|
||||
}
|
||||
return departmentService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Specification<Employee> getSpecification() {
|
||||
Specification<Employee> spec = super.getSpecification();
|
||||
@@ -33,12 +42,6 @@ public class EmployeeManagerSkin
|
||||
|
||||
@Override
|
||||
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.nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
||||
controller.aliasColumn.setCellValueFactory(param -> param.getValue().getAlias());
|
||||
@@ -46,7 +49,7 @@ public class EmployeeManagerSkin
|
||||
controller.accountColumn.setCellValueFactory(param -> param.getValue().getAccount());
|
||||
|
||||
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());
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.ecep.contract.manager.ui.FxmlPath;
|
||||
import com.ecep.contract.manager.util.UITools;
|
||||
import javafx.concurrent.Task;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.CheckBox;
|
||||
import javafx.scene.control.TableColumn;
|
||||
import javafx.stage.Stage;
|
||||
@@ -27,17 +28,29 @@ import java.time.LocalDate;
|
||||
public class EmployeeManagerWindowController
|
||||
extends AbstManagerWindowController<Employee, EmployeeViewModel, EmployeeManagerSkin> {
|
||||
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, Number> idColumn;
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, String> accountColumn;
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, Department> departmentColumn;
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, String> nameColumn;
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, String> aliasColumn;
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, String> codeColumn;
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, String> emailColumn;
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, LocalDate> createdColumn;
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, LocalDate> entryDateColumn;
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, LocalDate> leaveDateColumn;
|
||||
@FXML
|
||||
public TableColumn<EmployeeViewModel, Boolean> activeColumn;
|
||||
@FXML
|
||||
public CheckBox activeCheckBox;
|
||||
|
||||
@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.service.EmployeeAuthBindService;
|
||||
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.table.cell.EmployeeTableCell;
|
||||
import javafx.application.Platform;
|
||||
import javafx.scene.control.ContextMenu;
|
||||
import javafx.scene.control.MenuItem;
|
||||
@@ -19,8 +19,7 @@ import java.util.List;
|
||||
|
||||
@FxmlPath("/ui/employee/employee-auth-bind.fxml")
|
||||
public class EmployeeTabSkinAuthBind
|
||||
extends AbstEmployeeTableTabSkin<EmployeeAuthBind, EmployeeAuthBindViewModel>
|
||||
implements EditableEntityTableTabSkin<EmployeeAuthBind, EmployeeAuthBindViewModel> {
|
||||
extends AbstEmployeeTableTabSkin<EmployeeAuthBind, EmployeeAuthBindViewModel> {
|
||||
public TableColumn<EmployeeAuthBindViewModel, Number> idColumn;
|
||||
public TableColumn<EmployeeAuthBindViewModel, String> ipColumn;
|
||||
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.model.Department;
|
||||
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 javafx.scene.control.Tab;
|
||||
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