diff --git a/.gitignore b/.gitignore
index 3df9a13..60a30de 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,8 @@
# Compiled class file
*.class
+**/.flattened-pom.xml
+
# Log file
*.log
@@ -68,7 +70,13 @@ local.properties
.texlipse
# STS (Spring Tool Suite)
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
.springBeans
+.sts4-cache
# Code Recommenders
.recommenders/
@@ -86,3 +94,24 @@ local.properties
# Typically, this file would be tracked if it contains build/dependency configurations:
#.project
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+*.log
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+
+
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/pom.xml b/itc-pcitc-demo/itc-pcitc-demo-api/pom.xml
new file mode 100644
index 0000000..8f8713f
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/pom.xml
@@ -0,0 +1,82 @@
+
+
+ 4.0.0
+
+
+ com.geg
+ itc-pcitc-demo
+ ${revision}
+
+
+ itc-pcitc-demo-api
+ itc-pcitc-demo-api
+ itc-pcitc-demo-api
+
+
+ ${java.version}
+ ${java.version}
+
+
+
+
+ com.geg
+ itc-pcitc-dependencies-api
+ ${revision}
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${java.version}
+ ${java.version}
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ src/main/java
+
+ **/*.yml
+ **/*.properties
+ **/*.xml
+
+ false
+
+
+ src/main/resources
+
+ **/*.yml
+ **/*.properties
+ **/*.xml
+ **/*.vm
+ **/*.ftl
+ **/*.jpg
+ **/*.png
+ **/*.xls
+ **/*.xlsx
+
+ false
+
+
+
+
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/client/IDemoApplianceClient.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/client/IDemoApplianceClient.java
new file mode 100644
index 0000000..e6df9c1
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/client/IDemoApplianceClient.java
@@ -0,0 +1,22 @@
+package com.xjrsoft.module.prdManage.client;
+
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.xjrsoft.module.prdManage.dto.DemoAppliancePageDto;
+import com.xjrsoft.module.prdManage.vo.DemoApplianceVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @author: yjw
+ * @since: 2025/3/4
+ */
+@FeignClient(value = "demo-service",
+ path = GlobalConstant.CLIENT_API_PRE + "prdManage/demoAppliance")
+public interface IDemoApplianceClient {
+
+ @PostMapping("/getListByQuery")
+ List getListByQuery(@RequestBody DemoAppliancePageDto dto);
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/dto/AddDemoApplianceDto.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/dto/AddDemoApplianceDto.java
new file mode 100644
index 0000000..a164172
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/dto/AddDemoApplianceDto.java
@@ -0,0 +1,67 @@
+package com.xjrsoft.module.prdManage.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: 示例-家电管理
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Data
+public class AddDemoApplianceDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime purchaseDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer warrantyPeriod;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer powerRating;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String brand;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Double sellingPrice;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String status;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/dto/DemoAppliancePageDto.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/dto/DemoAppliancePageDto.java
new file mode 100644
index 0000000..5a65f25
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/dto/DemoAppliancePageDto.java
@@ -0,0 +1,35 @@
+package com.xjrsoft.module.prdManage.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 分页查询入参
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DemoAppliancePageDto extends PageInput {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/dto/UpdateDemoApplianceDto.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/dto/UpdateDemoApplianceDto.java
new file mode 100644
index 0000000..99ee8f3
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/dto/UpdateDemoApplianceDto.java
@@ -0,0 +1,72 @@
+package com.xjrsoft.module.prdManage.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: 示例-家电管理
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Data
+public class UpdateDemoApplianceDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime purchaseDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer warrantyPeriod;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer powerRating;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String brand;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Double sellingPrice;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String status;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/vo/DemoAppliancePageVo.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/vo/DemoAppliancePageVo.java
new file mode 100644
index 0000000..64f0b81
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/vo/DemoAppliancePageVo.java
@@ -0,0 +1,68 @@
+package com.xjrsoft.module.prdManage.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 分页列表出参
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Data
+public class DemoAppliancePageVo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime purchaseDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer warrantyPeriod;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer powerRating;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String brand;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Double sellingPrice;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String status;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/vo/DemoApplianceVo.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/vo/DemoApplianceVo.java
new file mode 100644
index 0000000..7afe8c0
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/prdManage/vo/DemoApplianceVo.java
@@ -0,0 +1,70 @@
+package com.xjrsoft.module.prdManage.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 表单出参
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Data
+public class DemoApplianceVo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime purchaseDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer warrantyPeriod;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer powerRating;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String brand;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Double sellingPrice;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String status;
+
+
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/dto/AddDemoCustomerDto.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/dto/AddDemoCustomerDto.java
new file mode 100644
index 0000000..54b0ee7
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/dto/AddDemoCustomerDto.java
@@ -0,0 +1,57 @@
+package com.xjrsoft.module.relationManage.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: demo_客户管理
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+public class AddDemoCustomerDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String address;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String company;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String position;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/dto/DemoCustomerPageDto.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/dto/DemoCustomerPageDto.java
new file mode 100644
index 0000000..c9c63cd
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/dto/DemoCustomerPageDto.java
@@ -0,0 +1,40 @@
+package com.xjrsoft.module.relationManage.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 分页查询入参
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DemoCustomerPageDto extends PageInput {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/dto/UpdateDemoCustomerDto.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/dto/UpdateDemoCustomerDto.java
new file mode 100644
index 0000000..db65601
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/dto/UpdateDemoCustomerDto.java
@@ -0,0 +1,61 @@
+package com.xjrsoft.module.relationManage.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: demo_客户管理
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+public class UpdateDemoCustomerDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String address;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String company;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String position;
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerPageVo.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerPageVo.java
new file mode 100644
index 0000000..7f3e1a1
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerPageVo.java
@@ -0,0 +1,56 @@
+package com.xjrsoft.module.relationManage.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 分页列表出参
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+public class DemoCustomerPageVo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String address;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String company;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String position;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerVo.java b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerVo.java
new file mode 100644
index 0000000..2aa1ce7
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerVo.java
@@ -0,0 +1,74 @@
+package com.xjrsoft.module.relationManage.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 表单出参
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+public class DemoCustomerVo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String address;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String company;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String position;
+
+ @ApiModelProperty("")
+ private LocalDateTime createDate;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long createUserId;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long deptId;
+
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/target/maven-archiver/pom.properties b/itc-pcitc-demo/itc-pcitc-demo-api/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..a62939d
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Wed Sep 24 16:46:40 CST 2025
+version=2.0.4
+groupId=com.geg
+artifactId=itc-pcitc-demo-api
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/itc-pcitc-demo/itc-pcitc-demo-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..e69de29
diff --git a/itc-pcitc-demo/itc-pcitc-demo-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/itc-pcitc-demo/itc-pcitc-demo-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..d74fd7f
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,11 @@
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\prdManage\dto\AddDemoApplianceDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\prdManage\vo\DemoApplianceVo.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\prdManage\client\IDemoApplianceClient.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\relationManage\vo\DemoCustomerVo.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\prdManage\dto\DemoAppliancePageDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\relationManage\dto\DemoCustomerPageDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\prdManage\vo\DemoAppliancePageVo.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\relationManage\dto\AddDemoCustomerDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\relationManage\dto\UpdateDemoCustomerDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\relationManage\vo\DemoCustomerPageVo.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-api\src\main\java\com\xjrsoft\module\prdManage\dto\UpdateDemoApplianceDto.java
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/pom.xml b/itc-pcitc-demo/itc-pcitc-demo-service/pom.xml
new file mode 100644
index 0000000..bb3976d
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/pom.xml
@@ -0,0 +1,118 @@
+
+
+ 4.0.0
+
+
+ com.geg
+ itc-pcitc-demo
+ ${revision}
+
+
+ itc-pcitc-demo-service
+ itc-pcitc-demo-service
+ itc-pcitc-demo-service
+
+
+ ${java.version}
+ ${java.version}
+ pcitc/itc-pcitc-demo
+
+
+
+
+
+ com.geg
+ itc-pcitc-dependencies-service
+ ${revision}
+
+
+
+ app
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.7.6
+
+
+
+ repackage
+
+
+
+ false
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${java.version}
+ ${java.version}
+
+
+
+
+ com.spotify
+ docker-maven-plugin
+ 1.0.0
+
+ ${docker-registry}
+ 600000
+ ${docker-image-name}:${maven.build.timestamp}
+ java
+ ${dockerDirectory}
+ ${docker-image-name}:${maven.build.timestamp}
+ false
+
+ ${docker-jar-name}
+ linux/arm64
+
+ linux/arm64
+
+
+ /
+ ${project.build.directory}
+ ${docker-jar-name}
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ src/main/java
+
+ **/*.yml
+ **/*.properties
+ **/*.xml
+
+ false
+
+
+ src/main/resources
+
+ **/*
+
+ false
+
+
+
+
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/Dockerfile b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/Dockerfile
new file mode 100644
index 0000000..1cc66f3
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/Dockerfile
@@ -0,0 +1,39 @@
+#FROM --platform=linux/arm64 docker.xuanyuan.run/library/openjdk:8-jre
+FROM harbor.kubesphere.com/public/jar8u112:v1
+
+
+RUN mkdir -p /root/logs/java/ \
+ && mkdir -p /scm/logs/ \
+ && mkdir -p /opt/app/ \
+ && mkdir -p /uploadFile/ \
+ && mkdir -p /var/log/app \
+ && mkdir -p /opt/app/logs \
+ && mkdir -p /opt/agent/config
+
+ENV TZ "Asia/Shanghai"
+
+ADD ./skywalking-agent.jar /opt/agent/skywalking-agent.jar
+ADD ./agent.config /opt/agent/config/agent.config
+
+RUN echo "set fileencodings=utf-8,gbk,gb2312,gb18030,cp936,latin1 \n set fenc=utf-8 \n set tenc=utf-8 \n set enc=utf-8 \n" |tee ~/.vimrc
+
+
+ARG JAR_FILE
+ARG PRO_FILE
+ARG SOURCE_NAME
+
+ADD ./startApp.sh /opt/app/
+RUN chmod u+x /opt/app/*.sh
+ADD ./${SOURCE_NAME} /opt/app/app.jar
+RUN test -f /opt/app/app.jar || { echo "Error: JAR file not found at ${SOURCE_NAME}"; exit 1; }
+
+#应用名称
+ENV APP_NAME=itc-pcitc-demo
+#skywalking-oap-server地址
+ENV SKYWALKING_SERVER=172.20.0.12:11800
+ENV ENV_APP_FILE_PATH=/opt/app/app.jar
+ENV ENV_APP_PRO_FILE=test
+
+EXPOSE 8090 5005
+
+ENTRYPOINT ["/opt/app/startApp.sh"]
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/agent.config b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/agent.config
new file mode 100644
index 0000000..ed3fb29
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/agent.config
@@ -0,0 +1,4 @@
+# 应用名称(在 SkyWalking UI 中显示的服务名)
+agent.service_name=your-springboot-app
+# SkyWalking OAP 服务地址(默认本地)
+collector.backend_service=localhost:11800
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/docker-system.sh b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/docker-system.sh
new file mode 100644
index 0000000..788312d
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/docker-system.sh
@@ -0,0 +1,126 @@
+#!/bin/bash
+
+# 定义变量
+CONTAINER_NAME="itc-ms-system"
+IMAGE_NAME="pcitc/itc-ms-system"
+IMAGE_VERSION="2025-08-04-0940"
+IMAGE_FULL="$IMAGE_NAME:$IMAGE_VERSION"
+PORT=8091 # 服务暴露端口
+CONTAINER_PORT=8091 # 服务暴露端口
+TZ="Asia/Shanghai" # 时区设置
+# 环境变量配置
+ENV_APP_PRO_FILE="test"
+file="$CONTAINER_NAME-version.txt"
+
+# 检查文件是否存在(假设 $file 是目标文件变量,已在别处定义)
+if [ ! -f "$file" ]; then
+ echo "文件 $file 不存在"
+ touch "$file" # 变量加引号,处理含空格的文件名
+ echo "$IMAGE_FULL" >> "$file"
+ echo "记录版本【$IMAGE_FULL】到 $file"
+else
+ # 检查参数数量(建议移到脚本开头统一检查)
+ if [ $# -eq 2 ]; then
+ IMAGE_FULL="$IMAGE_NAME:$2"
+ echo "$IMAGE_FULL" >> "$file"
+ echo "记录版本【$IMAGE_FULL】到 $file"
+ else
+ # 修正赋值语法:等号两侧无空格
+ last_version=$(tail -n 1 "$file")
+ IMAGE_FULL="$last_version"
+ # 建议添加对 $IMAGE_FULL 的后续处理(如使用该变量)
+ fi
+fi
+
+# 显示帮助信息
+show_help() {
+ echo "使用方法: $0 [操作类型]"
+ echo "操作类型:"
+ echo " deploy - 部署并启动服务容器"
+ echo " remove - 停止并删除容器及数据/日志目录"
+ echo " logs - 查看容器日志"
+ echo " help - 显示帮助信息"
+}
+
+
+
+# 部署服务
+deploy_service() {
+ echo "部署镜像【$IMAGE_FULL】"
+ # 检查容器是否已存在,存在则停止并删除
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "停止并删除现有容器: $CONTAINER_NAME"
+ docker stop $CONTAINER_NAME >/dev/null
+ docker rm $CONTAINER_NAME >/dev/null
+ fi
+
+ # 启动服务容器
+ echo "启动服务容器..."
+ docker run -d --privileged --restart always \
+ --name $CONTAINER_NAME \
+ -p $PORT:$CONTAINER_PORT \
+ -e ENV_APP_PRO_FILE=$ENV_APP_PRO_FILE \
+ $IMAGE_FULL
+
+ # 检查启动状态
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME -f status=running)" ]; then
+ echo "服务启动成功!"
+ echo "容器名称: $CONTAINER_NAME"
+ echo "访问地址: http://localhost:$PORT"
+ echo "环境变量: ENV_APP_PRO_FILE=$ENV_APP_PRO_FILE"
+ else
+ echo "服务启动失败,日志如下:"
+ docker logs $CONTAINER_NAME
+ exit 1
+ fi
+}
+
+# 删除服务
+remove_service() {
+ # 检查容器是否存在
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "停止容器: $CONTAINER_NAME"
+ docker stop $CONTAINER_NAME >/dev/null
+
+ echo "删除容器: $CONTAINER_NAME"
+ docker rm $CONTAINER_NAME >/dev/null
+ else
+ echo "容器 $CONTAINER_NAME 不存在"
+ fi
+}
+
+# 查看日志
+show_logs() {
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "查看 $CONTAINER_NAME 容器日志 (按 Ctrl+C 退出)..."
+ docker logs -f $CONTAINER_NAME
+ else
+ echo "容器 $CONTAINER_NAME 不存在"
+ fi
+}
+
+# 主逻辑
+if [ $# -lt 1 ]; then
+ show_help
+ exit 1
+fi
+
+case "$1" in
+ deploy)
+ deploy_service
+ ;;
+ remove)
+ remove_service
+ ;;
+ logs)
+ show_logs
+ ;;
+ help)
+ show_help
+ ;;
+ *)
+ echo "无效的操作类型: $1"
+ show_help
+ exit 1
+ ;;
+esac
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/docker-user.sh b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/docker-user.sh
new file mode 100644
index 0000000..2cc8222
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/docker-user.sh
@@ -0,0 +1,126 @@
+#!/bin/bash
+
+# 定义变量
+CONTAINER_NAME="itc-ms-user"
+IMAGE_NAME="pcitc/itc-ms-user"
+IMAGE_VERSION="2025-08-04-0954"
+IMAGE_FULL="$IMAGE_NAME:$IMAGE_VERSION"
+PORT=8092 # 服务暴露端口
+CONTAINER_PORT=8092 # 服务暴露端口
+TZ="Asia/Shanghai" # 时区设置
+# 环境变量配置
+ENV_APP_PRO_FILE="test"
+file="$CONTAINER_NAME-version.txt"
+
+# 检查文件是否存在(假设 $file 是目标文件变量,已在别处定义)
+if [ ! -f "$file" ]; then
+ echo "文件 $file 不存在"
+ touch "$file" # 变量加引号,处理含空格的文件名
+ echo "$IMAGE_FULL" >> "$file"
+ echo "记录版本【$IMAGE_FULL】到 $file"
+else
+ # 检查参数数量(建议移到脚本开头统一检查)
+ if [ $# -eq 2 ]; then
+ IMAGE_FULL="$IMAGE_NAME:$2"
+ echo "$IMAGE_FULL" >> "$file"
+ echo "记录版本【$IMAGE_FULL】到 $file"
+ else
+ # 修正赋值语法:等号两侧无空格
+ last_version=$(tail -n 1 "$file")
+ IMAGE_FULL="$last_version"
+ # 建议添加对 $IMAGE_FULL 的后续处理(如使用该变量)
+ fi
+fi
+
+# 显示帮助信息
+show_help() {
+ echo "使用方法: $0 [操作类型]"
+ echo "操作类型:"
+ echo " deploy - 部署并启动服务容器"
+ echo " remove - 停止并删除容器及数据/日志目录"
+ echo " logs - 查看容器日志"
+ echo " help - 显示帮助信息"
+}
+
+
+
+# 部署服务
+deploy_service() {
+ echo "部署镜像【$IMAGE_FULL】"
+ # 检查容器是否已存在,存在则停止并删除
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "停止并删除现有容器: $CONTAINER_NAME"
+ docker stop $CONTAINER_NAME >/dev/null
+ docker rm $CONTAINER_NAME >/dev/null
+ fi
+
+ # 启动服务容器
+ echo "启动服务容器..."
+ docker run -d --privileged --restart always \
+ --name $CONTAINER_NAME \
+ -p $PORT:$CONTAINER_PORT \
+ -e ENV_APP_PRO_FILE=$ENV_APP_PRO_FILE \
+ $IMAGE_FULL
+
+ # 检查启动状态
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME -f status=running)" ]; then
+ echo "服务启动成功!"
+ echo "容器名称: $CONTAINER_NAME"
+ echo "访问地址: http://localhost:$PORT"
+ echo "环境变量: ENV_APP_PRO_FILE=$ENV_APP_PRO_FILE"
+ else
+ echo "服务启动失败,日志如下:"
+ docker logs $CONTAINER_NAME
+ exit 1
+ fi
+}
+
+# 删除服务
+remove_service() {
+ # 检查容器是否存在
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "停止容器: $CONTAINER_NAME"
+ docker stop $CONTAINER_NAME >/dev/null
+
+ echo "删除容器: $CONTAINER_NAME"
+ docker rm $CONTAINER_NAME >/dev/null
+ else
+ echo "容器 $CONTAINER_NAME 不存在"
+ fi
+}
+
+# 查看日志
+show_logs() {
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "查看 $CONTAINER_NAME 容器日志 (按 Ctrl+C 退出)..."
+ docker logs -f $CONTAINER_NAME
+ else
+ echo "容器 $CONTAINER_NAME 不存在"
+ fi
+}
+
+# 主逻辑
+if [ $# -lt 1 ]; then
+ show_help
+ exit 1
+fi
+
+case "$1" in
+ deploy)
+ deploy_service
+ ;;
+ remove)
+ remove_service
+ ;;
+ logs)
+ show_logs
+ ;;
+ help)
+ show_help
+ ;;
+ *)
+ echo "无效的操作类型: $1"
+ show_help
+ exit 1
+ ;;
+esac
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/startApp.sh b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/startApp.sh
new file mode 100644
index 0000000..adef435
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/docker/startApp.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+#cp /etc/hosts /etc/hosts.temp
+
+# 初始化环境变量(设置默认值,避免空变量)
+APP_NAME=${APP_NAME:-"default-springboot-app"} # 默认服务名
+SKYWALKING_SERVER=${SKYWALKING_SERVER:-"localhost:11800"} # 默认SkyWalking服务地址
+ENV_APP_PRO_FILE=${ENV_APP_PRO_FILE:-"test"} # 默认环境为test
+
+# 初始化Java启动参数(包含是否使用-server模式)
+java_base="java -javaagent:/opt/agent/skywalking-agent.jar -Dskywalking.agent.service_name=$APP_NAME"
+export java_base="$java_base -Dskywalking.collector.backend_service=$SKYWALKING_SERVER"
+
+java_start="$java_base -jar"
+
+# 根据环境变量区分开发/生产环境配置
+if [ "$ENV_APP_PRO_FILE" = "prod" ]; then
+ # 生产环境JVM参数
+ export JAVA_OPTS="-Xms1024m -Xmx4096m -Xmn512m -Xss512k -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
+ export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:G1HeapRegionSize=32m -XX:G1ReservePercent=20"
+ export JAVA_OPTS="$JAVA_OPTS -XX:MaxGCPauseMillis=500 -XX:G1MixedGCCountTarget=10"
+
+ export JAVA_OPTS="$JAVA_OPTS -verbose:gc -Xloggc:/var/log/app/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps"
+ export JAVA_OPTS="$JAVA_OPTS -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
+
+ # 生产环境使用-server模式
+ java_start="$java_base -jar -server"
+else
+ # 开发环境JVM参数
+ export JAVA_OPTS="-Xms512m -Xmx1024m -Xmn256m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"
+ export JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseParNewGC"
+ export JAVA_OPTS="$JAVA_OPTS -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:CMSMaxAbortablePrecleanTime=5000"
+ export JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly"
+ export JAVA_OPTS="$JAVA_OPTS -verbose:gc -Xloggc:./logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps"
+ # 开发环境开启远程调试
+ export JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
+fi
+
+# 公共配置(编码、时区等)
+export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8"
+export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
+export JAVA_OPTS="$JAVA_OPTS -Duser.language=zh -Duser.country=CN -Duser.timezone=Asia/Shanghai"
+
+# SpringBoot 环境配置
+export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=$ENV_APP_PRO_FILE"
+
+# 输出启动参数
+echo "启动参数:$java_start $JAVA_OPTS $ENV_APP_FILE_PATH"
+
+# 执行启动命令(用双引号包裹每个变量)
+exec $java_start $JAVA_OPTS $ENV_APP_FILE_PATH
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/ITCDemoApplication.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/ITCDemoApplication.java
new file mode 100644
index 0000000..42109db
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/ITCDemoApplication.java
@@ -0,0 +1,26 @@
+package com.xjrsoft;
+
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+
+import com.pictc.utils.SpringTools;
+import com.xjrsoft.common.annotation.UniqueNameGenerator;
+
+/**
+ * @author Zexy
+ */
+@SpringBootApplication
+@EnableAspectJAutoProxy(exposeProxy = true)
+@ComponentScan(nameGenerator = UniqueNameGenerator.class)
+@EnableFeignClients
+@EnableDiscoveryClient
+public class ITCDemoApplication {
+
+ public static void main(String[] args) {
+ SpringTools.logStarter(ITCDemoApplication.class, args);
+ }
+
+}
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/common/TransactionConfig.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/common/TransactionConfig.java
new file mode 100644
index 0000000..40e08b4
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/common/TransactionConfig.java
@@ -0,0 +1,25 @@
+package com.xjrsoft.common;
+
+import javax.sql.DataSource;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.PlatformTransactionManager;
+
+//@Configuration
+//public class TransactionConfig {
+//
+// @Primary // 指定为主要的事务管理器
+// @Bean
+// public PlatformTransactionManager camundaTransactionManager(DataSource camundaDataSource) {
+// return new DataSourceTransactionManager(camundaDataSource);
+// }
+//
+// // 其他数据源的事务管理器
+// @Bean
+// public PlatformTransactionManager businessTransactionManager(DataSource businessDataSource) {
+// return new DataSourceTransactionManager(businessDataSource);
+// }
+//}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/common/schedule/DemoSysncTask.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/common/schedule/DemoSysncTask.java
new file mode 100644
index 0000000..8ddb939
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/common/schedule/DemoSysncTask.java
@@ -0,0 +1,30 @@
+package com.xjrsoft.common.schedule;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+@RequiredArgsConstructor
+@Component
+@ConditionalOnProperty(name = {"schedule.enabled","schedule.sync-xx.enabled"}, havingValue = "true")
+@Slf4j
+@EnableScheduling
+public class DemoSysncTask {
+
+//
+// @Scheduled(cron = "${schedule.sync-xx.cron:0 0/60 * * * *}") //60分钟跑一次
+// public void sync(){
+// log.info("同步XX数据 => " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+// try{
+// //todo 任务具体实现
+// } catch (Exception e){
+// log.error("同步XX数据失败:" + e);
+// }
+// }
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/common/util/SpringContextUtil.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/common/util/SpringContextUtil.java
new file mode 100644
index 0000000..744614b
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/common/util/SpringContextUtil.java
@@ -0,0 +1,28 @@
+package com.xjrsoft.common.util;
+
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SpringContextUtil implements ApplicationContextAware {
+
+ private static ApplicationContext context;
+
+ @Override
+ public void setApplicationContext(ApplicationContext applicationContext) {
+ SpringContextUtil.context = applicationContext;
+ }
+
+ public static ApplicationContext getApplicationContext() {
+ return context;
+ }
+
+ public static T getBean(Class beanClass) {
+ return context.getBean(beanClass);
+ }
+
+ public static Object getBean(String beanName) {
+ return context.getBean(beanName);
+ }
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/controller/Testfrom3Controller.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/controller/Testfrom3Controller.java
new file mode 100644
index 0000000..2721ffe
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/controller/Testfrom3Controller.java
@@ -0,0 +1,132 @@
+package com.xjrsoft.module.dev.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.model.result.R;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.dev.dto.AddTestfrom3Dto;
+import com.xjrsoft.module.dev.dto.UpdateTestfrom3Dto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.alibaba.excel.EasyExcel;
+import com.xjrsoft.common.utils.ExcelUtil;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import org.springframework.http.ResponseEntity;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+
+import com.xjrsoft.module.dev.dto.Testfrom3PageDto;
+import com.xjrsoft.module.dev.entity.Testfrom3;
+import com.xjrsoft.module.dev.service.ITestfrom3Service;
+import com.xjrsoft.module.dev.vo.Testfrom3PageVo;
+
+import com.xjrsoft.module.datalog.service.DatalogService;
+import com.xjrsoft.module.dev.vo.Testfrom3Vo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+* @title: 测试3
+* @Author 管理员
+* @Date: 2025-09-25
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/dev" + "/testfrom3")
+@Api(value = "/dev" + "/testfrom3",tags = "测试3代码")
+@AllArgsConstructor
+public class Testfrom3Controller {
+
+
+ private final ITestfrom3Service testfrom3Service;
+ private final DatalogService dataService;
+
+ @GetMapping(value = "/page")
+ @ApiOperation(value="Testfrom3列表(分页)")
+ @SaCheckPermission("testfrom3:list")
+ public R page(@Valid Testfrom3PageDto dto){
+
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper
+ .like(StrUtil.isNotBlank(dto.getDanXingWenBen8163()),Testfrom3::getDanXingWenBen8163,dto.getDanXingWenBen8163())
+ .like(StrUtil.isNotBlank(dto.getDanXingWenBen3634()),Testfrom3::getDanXingWenBen3634,dto.getDanXingWenBen3634())
+ .like(StrUtil.isNotBlank(dto.getDanXingWenBen5097()),Testfrom3::getDanXingWenBen5097,dto.getDanXingWenBen5097())
+ .orderByDesc(Testfrom3::getId)
+ .select(Testfrom3.class,x -> VoToColumnUtil.fieldsToColumns(Testfrom3PageVo.class).contains(x.getProperty()));
+ IPage page = testfrom3Service.page(ConventPage.getPage(dto), queryWrapper);
+ PageOutput pageOutput = ConventPage.getPageOutput(page, Testfrom3PageVo.class);
+ return R.ok(pageOutput);
+ }
+
+ @GetMapping(value = "/info")
+ @ApiOperation(value="根据id查询Testfrom3信息")
+ @SaCheckPermission("testfrom3:detail")
+ public R info(@RequestParam Long id){
+ Testfrom3 testfrom3 = testfrom3Service.getById(id);
+ if (testfrom3 == null) {
+ return R.error("找不到此数据!");
+ }
+ return R.ok(BeanUtil.toBean(testfrom3, Testfrom3Vo.class));
+ }
+
+
+ @PostMapping
+ @ApiOperation(value = "新增Testfrom3")
+ @SaCheckPermission("testfrom3:add")
+ public R add(@Valid @RequestBody UpdateTestfrom3Dto dto){
+ UpdateTestfrom3Dto res = dataService.insert(dto);
+ return R.ok(res.getId());
+ }
+
+ @PutMapping
+ @ApiOperation(value = "修改Testfrom3")
+ @SaCheckPermission("testfrom3:edit")
+ public R update(@Valid @RequestBody UpdateTestfrom3Dto dto){
+ return R.ok(dataService.updateById(dto));
+ }
+
+ @DeleteMapping
+ @ApiOperation(value = "删除")
+ @SaCheckPermission("testfrom3:delete")
+ public R delete(@Valid @RequestBody List ids){
+ return R.ok(dataService.deleteByIds(UpdateTestfrom3Dto.class, ids));
+
+ }
+ @PostMapping("/import")
+ @ApiOperation(value = "导入")
+ @SaCheckPermission("testfrom3:import")
+ public R importData(@RequestParam MultipartFile file) throws IOException {
+ List savedDataList = EasyExcel.read(file.getInputStream()).head(Testfrom3PageVo.class).sheet().doReadSync();
+ ExcelUtil.transExcelData(savedDataList, true);
+ dataService.insertBatch(BeanUtil.copyToList(savedDataList,UpdateTestfrom3Dto.class));
+ return R.ok();
+ }
+
+ @GetMapping("/export")
+ @ApiOperation(value = "导出")
+ @SaCheckPermission("testfrom3:export")
+ public ResponseEntity exportData(@Valid Testfrom3PageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+ List customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput) page(dto).getData()).getList();
+ ExcelUtil.transExcelData(customerList, false);
+ ByteArrayOutputStream bot = new ByteArrayOutputStream();
+ EasyExcel.write(bot, Testfrom3PageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+ ByteArrayOutputStream resultBot = ExcelUtil.renderExportRequiredHead(bot);
+
+ return R.fileStream(resultBot.toByteArray(), "Testfrom3" + ExcelTypeEnum.XLSX.getValue());
+ }
+}
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/dto/AddTestfrom3Dto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/dto/AddTestfrom3Dto.java
new file mode 100644
index 0000000..1f691fa
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/dto/AddTestfrom3Dto.java
@@ -0,0 +1,56 @@
+package com.xjrsoft.module.dev.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.pictc.annotations.datalog.LogField;
+import com.pictc.annotations.datalog.LogTable;
+
+
+
+
+/**
+* @title: 测试3
+* @Author 管理员
+* @Date: 2025-09-25
+* @Version 1.0
+*/
+@Data
+@LogTable(source="testfrom_3",name="测试3")
+public class AddTestfrom3Dto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ @LogField(name="单行文本",index=0)
+ private String danXingWenBen8163;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ @LogField(name="单行文本",index=0)
+ private String danXingWenBen3634;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ @LogField(name="单行文本",index=0)
+ private String danXingWenBen5097;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @LogField(name="",index=0)
+ private Long tenantId;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/dto/Testfrom3PageDto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/dto/Testfrom3PageDto.java
new file mode 100644
index 0000000..4c72b93
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/dto/Testfrom3PageDto.java
@@ -0,0 +1,40 @@
+package com.xjrsoft.module.dev.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+
+
+/**
+* @title: 分页查询入参
+* @Author 管理员
+* @Date: 2025-09-25
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class Testfrom3PageDto extends PageInput {
+
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen8163;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen3634;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen5097;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/dto/UpdateTestfrom3Dto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/dto/UpdateTestfrom3Dto.java
new file mode 100644
index 0000000..4e38411
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/dto/UpdateTestfrom3Dto.java
@@ -0,0 +1,68 @@
+package com.xjrsoft.module.dev.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+
+
+import com.pictc.annotations.datalog.LogTable;
+import com.pictc.annotations.datalog.LogField;
+import com.pictc.annotations.datalog.LogJoin;
+import com.pictc.annotations.datalog.LogJoinColumn;
+import com.pictc.annotations.datalog.JoinCaseType;
+import com.pictc.annotations.datalog.JoinType;
+import com.pictc.annotations.datalog.ValueDirectionType;
+
+
+
+
+/**
+* @title: 测试3
+* @Author 管理员
+* @Date: 2025-09-25
+* @Version 1.0
+*/
+@Data
+@LogTable(source="testfrom_3",name="测试3")
+public class UpdateTestfrom3Dto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @LogField(name="",index=0)
+ @ApiModelProperty("")
+ private Long id;
+ /**
+ * 单行文本
+ */
+ @LogField(name="单行文本",index=1)
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen8163;
+ /**
+ * 单行文本
+ */
+ @LogField(name="单行文本",index=2)
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen3634;
+ /**
+ * 单行文本
+ */
+ @LogField(name="单行文本",index=3)
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen5097;
+ /**
+ *
+ */
+ @LogField(name="",index=4)
+ @ApiModelProperty("")
+ private Long tenantId;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/entity/Testfrom3.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/entity/Testfrom3.java
new file mode 100644
index 0000000..e918df2
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/entity/Testfrom3.java
@@ -0,0 +1,97 @@
+package com.xjrsoft.module.dev.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+
+
+/**
+* @title: 测试3
+* @Author 管理员
+* @Date: 2025-09-25
+* @Version 1.0
+*/
+@Data
+@TableName("testfrom_3")
+@ApiModel(value = "测试3对象", description = "测试3")
+public class Testfrom3 implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableId
+ private Long id;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen8163;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen3634;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen5097;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUserId;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.UPDATE)
+ private Long modifyUserId;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.UPDATE)
+ private LocalDateTime modifyDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT)
+ @TableLogic
+ private Integer deleteMark;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer enabledMark;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long tenantId;
+
+
+}
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/mapper/Testfrom3Mapper.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/mapper/Testfrom3Mapper.java
new file mode 100644
index 0000000..0444824
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/mapper/Testfrom3Mapper.java
@@ -0,0 +1,17 @@
+package com.xjrsoft.module.dev.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.dev.entity.Testfrom3;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: mapper
+* @Author 管理员
+* @Date: 2025-09-25
+* @Version 1.0
+*/
+@Mapper
+public interface Testfrom3Mapper extends BaseMapper {
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/ITestfrom3Service.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/ITestfrom3Service.java
new file mode 100644
index 0000000..4e02909
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/ITestfrom3Service.java
@@ -0,0 +1,19 @@
+package com.xjrsoft.module.dev.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.github.yulichang.extension.mapping.base.MPJDeepService;
+import com.github.yulichang.extension.mapping.base.MPJRelationService;
+import com.xjrsoft.module.dev.entity.Testfrom3;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2025-09-25
+* @Version 1.0
+*/
+
+public interface ITestfrom3Service extends IService {
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/impl/Testfrom3ServiceImpl.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/impl/Testfrom3ServiceImpl.java
new file mode 100644
index 0000000..37a5514
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/service/impl/Testfrom3ServiceImpl.java
@@ -0,0 +1,25 @@
+package com.xjrsoft.module.dev.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.dev.entity.Testfrom3;
+import com.xjrsoft.module.dev.mapper.Testfrom3Mapper;
+import com.xjrsoft.module.dev.service.ITestfrom3Service;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2025-09-25
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class Testfrom3ServiceImpl extends ServiceImpl implements ITestfrom3Service {
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/vo/Testfrom3PageVo.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/vo/Testfrom3PageVo.java
new file mode 100644
index 0000000..4e046d9
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/vo/Testfrom3PageVo.java
@@ -0,0 +1,53 @@
+package com.xjrsoft.module.dev.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import com.xjrsoft.common.annotation.Trans;
+import com.xjrsoft.common.enums.TransType;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+
+/**
+* @title: 分页列表出参
+* @Author 管理员
+* @Date: 2025-09-25
+* @Version 1.0
+*/
+@Data
+public class Testfrom3PageVo {
+
+ /**
+ *
+ */
+ @ExcelIgnore
+ @ApiModelProperty("")
+ private String id;
+ /**
+ * 单行文本
+ */
+ @ContentStyle(dataFormat = 49)
+ @ExcelProperty("单行文本")
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen8163;
+ /**
+ * 单行文本
+ */
+ @ContentStyle(dataFormat = 49)
+ @ExcelProperty("单行文本")
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen3634;
+ /**
+ * 单行文本
+ */
+ @ContentStyle(dataFormat = 49)
+ @ExcelProperty("单行文本")
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen5097;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/vo/Testfrom3Vo.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/vo/Testfrom3Vo.java
new file mode 100644
index 0000000..dbc5c09
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/dev/vo/Testfrom3Vo.java
@@ -0,0 +1,73 @@
+package com.xjrsoft.module.dev.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+* @title: 表单出参
+* @Author 管理员
+* @Date: 2025-09-25
+* @Version 1.0
+*/
+@Data
+public class Testfrom3Vo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long id;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen8163;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen3634;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen5097;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long createUserId;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime createDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long modifyUserId;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime modifyDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer enabledMark;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long tenantId;
+
+
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/controller/DemoApplianceController.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/controller/DemoApplianceController.java
new file mode 100644
index 0000000..233bfb9
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/controller/DemoApplianceController.java
@@ -0,0 +1,98 @@
+package com.xjrsoft.module.prdManage.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.xjrsoft.common.model.result.R;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.prdManage.dto.AddDemoApplianceDto;
+import com.xjrsoft.module.prdManage.dto.DemoAppliancePageDto;
+import com.xjrsoft.module.prdManage.dto.UpdateDemoApplianceDto;
+import com.xjrsoft.module.prdManage.entity.DemoAppliance;
+import com.xjrsoft.module.prdManage.service.IDemoApplianceService;
+import com.xjrsoft.module.prdManage.vo.DemoAppliancePageVo;
+import com.xjrsoft.module.prdManage.vo.DemoApplianceVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+* @title: 示例-家电管理
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/prdManage" + "/demoAppliance")
+@Api(value = "/prdManage" + "/demoAppliance",tags = "示例-家电管理代码")
+@AllArgsConstructor
+public class DemoApplianceController {
+
+
+private final IDemoApplianceService demoApplianceService;
+
+ @GetMapping(value = "/page")
+ @ApiOperation(value="DemoAppliance列表(分页)")
+ @SaCheckPermission("demoAppliance:list")
+ public R page(@Valid DemoAppliancePageDto dto){
+
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper
+ .like(StrUtil.isNotBlank(dto.getName()),DemoAppliance::getName,dto.getName())
+ .like(StrUtil.isNotBlank(dto.getSerialNumber()),DemoAppliance::getSerialNumber,dto.getSerialNumber())
+ .like(StrUtil.isNotBlank(dto.getCategory()),DemoAppliance::getCategory,dto.getCategory())
+ .orderByDesc(DemoAppliance::getId)
+ .select(DemoAppliance.class,x -> VoToColumnUtil.fieldsToColumns(DemoAppliancePageVo.class).contains(x.getProperty()));
+ IPage page = demoApplianceService.page(ConventPage.getPage(dto), queryWrapper);
+ PageOutput pageOutput = ConventPage.getPageOutput(page, DemoAppliancePageVo.class);
+ return R.ok(pageOutput);
+ }
+
+ @GetMapping(value = "/info")
+ @ApiOperation(value="根据id查询DemoAppliance信息")
+ @SaCheckPermission("demoAppliance:detail")
+ public R info(@RequestParam Integer id){
+ DemoAppliance demoAppliance = demoApplianceService.getById(id);
+ if (demoAppliance == null) {
+ return R.error("找不到此数据!");
+ }
+ return R.ok(BeanUtil.toBean(demoAppliance, DemoApplianceVo.class));
+ }
+
+
+ @PostMapping
+ @ApiOperation(value = "新增DemoAppliance")
+ @SaCheckPermission("demoAppliance:add")
+ public R add(@Valid @RequestBody AddDemoApplianceDto dto){
+ DemoAppliance demoAppliance = BeanUtil.toBean(dto, DemoAppliance.class);
+ boolean isSuccess = demoApplianceService.save(demoAppliance);
+ return R.ok(demoAppliance.getId());
+ }
+
+ @PutMapping
+ @ApiOperation(value = "修改DemoAppliance")
+ @SaCheckPermission("demoAppliance:edit")
+ public R update(@Valid @RequestBody UpdateDemoApplianceDto dto){
+
+ DemoAppliance demoAppliance = BeanUtil.toBean(dto, DemoAppliance.class);
+ return R.ok(demoApplianceService.updateById(demoAppliance));
+
+ }
+
+ @DeleteMapping
+ @ApiOperation(value = "删除")
+ @SaCheckPermission("demoAppliance:delete")
+ public R delete(@Valid @RequestBody List ids){
+ return R.ok(demoApplianceService.removeBatchByIds(ids));
+
+ }
+
+ }
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/controller/Testfrom2Controller.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/controller/Testfrom2Controller.java
new file mode 100644
index 0000000..f881948
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/controller/Testfrom2Controller.java
@@ -0,0 +1,113 @@
+package com.xjrsoft.module.prdManage.controller;
+
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.xjrsoft.common.model.result.R;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.datalog.service.DatalogService;
+import com.xjrsoft.module.prdManage.dto.AddTestfrom2Dto;
+import com.xjrsoft.module.prdManage.dto.Testfrom2PageDto;
+import com.xjrsoft.module.prdManage.dto.UpdateTestfrom2Dto;
+import com.xjrsoft.module.prdManage.entity.Testfrom2;
+import com.xjrsoft.module.prdManage.service.ITestfrom2Service;
+import com.xjrsoft.module.prdManage.vo.Testfrom2PageVo;
+import com.xjrsoft.module.prdManage.vo.Testfrom2Vo;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+
+/**
+* @title: 测试
+* @Author 管理员
+* @Date: 2025-08-20
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/dev" + "/testfrom2")
+@Api(value = "/dev" + "/testfrom2",tags = "测试代码")
+@AllArgsConstructor
+public class Testfrom2Controller {
+
+
+ private final ITestfrom2Service testfrom2Service;
+
+ private final DatalogService dataService;
+
+
+ @GetMapping(value = "/page")
+ @ApiOperation(value="Testfrom2列表(分页)")
+ @SaCheckPermission("testfrom2:list")
+ public R page(@Valid Testfrom2PageDto dto){
+
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper
+ .like(StrUtil.isNotBlank(dto.getDanXingWenBen7818()),Testfrom2::getDanXingWenBen7818,dto.getDanXingWenBen7818())
+ .like(StrUtil.isNotBlank(dto.getDanXingWenBen9043()),Testfrom2::getDanXingWenBen9043,dto.getDanXingWenBen9043())
+ .orderByDesc(Testfrom2::getId)
+ .select(Testfrom2.class,x -> VoToColumnUtil.fieldsToColumns(Testfrom2PageVo.class).contains(x.getProperty()));
+ IPage page = testfrom2Service.page(ConventPage.getPage(dto), queryWrapper);
+ PageOutput pageOutput = ConventPage.getPageOutput(page, Testfrom2PageVo.class);
+ return R.ok(pageOutput);
+ }
+
+ @GetMapping(value = "/info")
+ @ApiOperation(value="根据id查询Testfrom2信息")
+ @SaCheckPermission("testfrom2:detail")
+ public R info(@RequestParam Long id){
+ Testfrom2 testfrom2 = testfrom2Service.getById(id);
+ if (testfrom2 == null) {
+ return R.error("找不到此数据!");
+ }
+ return R.ok(BeanUtil.toBean(testfrom2, Testfrom2Vo.class));
+ }
+
+
+ @PostMapping
+ @ApiOperation(value = "新增Testfrom2")
+ @SaCheckPermission("testfrom2:add")
+ public R add(@Valid @RequestBody AddTestfrom2Dto dto){
+ // Testfrom2 testfrom2 = BeanUtil.toBean(dto, Testfrom2.class);
+ //boolean isSuccess = testfrom2Service.save(testfrom2);
+ AddTestfrom2Dto res = dataService.insert(dto);
+ return R.ok(res.getId());
+ }
+
+ @PutMapping
+ @ApiOperation(value = "修改Testfrom2")
+ @SaCheckPermission("testfrom2:edit")
+ public R update(@Valid @RequestBody AddTestfrom2Dto dto){
+
+ // Testfrom2 testfrom2 = BeanUtil.toBean(dto, Testfrom2.class);
+ return R.ok(dataService.updateById(dto));
+
+ }
+
+ @DeleteMapping
+ @ApiOperation(value = "删除")
+ @SaCheckPermission("testfrom2:delete")
+ public R delete(@Valid @RequestBody List ids){
+ //return R.ok(testfrom2Service.removeBatchByIds(ids));
+ return R.ok(dataService.deleteByIds(AddTestfrom2Dto.class, ids));
+ }
+
+}
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/AddDemoApplianceDto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/AddDemoApplianceDto.java
new file mode 100644
index 0000000..01f2d6d
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/AddDemoApplianceDto.java
@@ -0,0 +1,70 @@
+package com.xjrsoft.module.prdManage.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.pictc.annotations.datalog.LogTable;
+
+
+/**
+* @title: 示例-家电管理
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@LogTable(name="家电管理",source = "")
+@Data
+public class AddDemoApplianceDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime purchaseDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer warrantyPeriod;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer powerRating;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String brand;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Double sellingPrice;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String status;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/AddTestfrom2Dto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/AddTestfrom2Dto.java
new file mode 100644
index 0000000..60434d1
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/AddTestfrom2Dto.java
@@ -0,0 +1,56 @@
+package com.xjrsoft.module.prdManage.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.pictc.annotations.datalog.LogField;
+import com.pictc.annotations.datalog.LogTable;
+
+
+
+
+/**
+* @title: 测试
+* @Author 管理员
+* @Date: 2025-09-15
+* @Version 1.0
+*/
+@Data
+@LogTable(source="testfrom_2",name="测试")
+public class AddTestfrom2Dto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long id;
+
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ @LogField(name="单行文本",index=0)
+ private String danXingWenBen7818;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ @LogField(name="单行文本",index=0)
+ private String danXingWenBen9043;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @LogField(name="",index=0)
+ private Long tenantId;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/DemoAppliancePageDto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/DemoAppliancePageDto.java
new file mode 100644
index 0000000..5a65f25
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/DemoAppliancePageDto.java
@@ -0,0 +1,35 @@
+package com.xjrsoft.module.prdManage.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 分页查询入参
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DemoAppliancePageDto extends PageInput {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/Testfrom2PageDto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/Testfrom2PageDto.java
new file mode 100644
index 0000000..e78f858
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/Testfrom2PageDto.java
@@ -0,0 +1,35 @@
+package com.xjrsoft.module.prdManage.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+
+
+/**
+* @title: 分页查询入参
+* @Author 管理员
+* @Date: 2025-09-15
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class Testfrom2PageDto extends PageInput {
+
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen7818;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen9043;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/UpdateDemoApplianceDto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/UpdateDemoApplianceDto.java
new file mode 100644
index 0000000..99ee8f3
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/UpdateDemoApplianceDto.java
@@ -0,0 +1,72 @@
+package com.xjrsoft.module.prdManage.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: 示例-家电管理
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Data
+public class UpdateDemoApplianceDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime purchaseDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer warrantyPeriod;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer powerRating;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String brand;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Double sellingPrice;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String status;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/UpdateTestfrom2Dto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/UpdateTestfrom2Dto.java
new file mode 100644
index 0000000..a86c37c
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/dto/UpdateTestfrom2Dto.java
@@ -0,0 +1,47 @@
+package com.xjrsoft.module.prdManage.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+
+
+
+/**
+* @title: 测试
+* @Author 管理员
+* @Date: 2025-09-15
+* @Version 1.0
+*/
+@Data
+public class UpdateTestfrom2Dto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long id;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen7818;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen9043;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long tenantId;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/entity/DemoAppliance.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/entity/DemoAppliance.java
new file mode 100644
index 0000000..22dce8f
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/entity/DemoAppliance.java
@@ -0,0 +1,80 @@
+package com.xjrsoft.module.prdManage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: 示例-家电管理
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Data
+@TableName("demo_appliance")
+@ApiModel(value = "示例-家电管理对象", description = "示例-家电管理")
+public class DemoAppliance implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableId(type = IdType.ASSIGN_ID)
+ private Integer id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime purchaseDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer warrantyPeriod;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer powerRating;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String brand;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Double sellingPrice;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String status;
+
+
+}
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/entity/Testfrom2.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/entity/Testfrom2.java
new file mode 100644
index 0000000..55d432a
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/entity/Testfrom2.java
@@ -0,0 +1,47 @@
+package com.xjrsoft.module.prdManage.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.github.yulichang.autoconfigure.conditional.JoinSqlInjectorCondition;
+import com.pictc.annotations.datalog.JoinCaseType;
+import com.pictc.annotations.datalog.JoinType;
+import com.pictc.annotations.datalog.LogJoin;
+import com.pictc.annotations.datalog.LogJoinColumn;
+import com.pictc.annotations.datalog.ValueDirectionType;
+import com.pictc.orm.BaseMasterEntity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+* @title: 测试
+* @Author 管理员
+* @Date: 2025-09-15
+* @Version 1.0
+*/
+@Data
+@TableName("testfrom_2")
+@ApiModel(value = "测试对象", description = "测试")
+public class Testfrom2 extends BaseMasterEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen7818;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen9043;
+
+ @LogJoin(name = "",
+ columns = {
+ @LogJoinColumn(field = "",relatedField = "", valueDirection = ValueDirectionType.RIGHT)
+ }, caseType = JoinCaseType.FULL, target = DemoAppliance.class, type = JoinType.MANY)
+ private DemoAppliance appliance;
+
+}
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/mapper/DemoApplianceMapper.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/mapper/DemoApplianceMapper.java
new file mode 100644
index 0000000..7993209
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/mapper/DemoApplianceMapper.java
@@ -0,0 +1,16 @@
+package com.xjrsoft.module.prdManage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xjrsoft.module.prdManage.entity.DemoAppliance;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: mapper
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Mapper
+public interface DemoApplianceMapper extends BaseMapper {
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/mapper/Testfrom2Mapper.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/mapper/Testfrom2Mapper.java
new file mode 100644
index 0000000..2c93c8d
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/mapper/Testfrom2Mapper.java
@@ -0,0 +1,17 @@
+package com.xjrsoft.module.prdManage.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xjrsoft.module.prdManage.entity.Testfrom2;
+
+/**
+* @title: mapper
+* @Author 管理员
+* @Date: 2025-08-20
+* @Version 1.0
+*/
+@Mapper
+public interface Testfrom2Mapper extends BaseMapper {
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/IDemoApplianceService.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/IDemoApplianceService.java
new file mode 100644
index 0000000..97832d3
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/IDemoApplianceService.java
@@ -0,0 +1,14 @@
+package com.xjrsoft.module.prdManage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xjrsoft.module.prdManage.entity.DemoAppliance;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+
+public interface IDemoApplianceService extends IService {
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/ITestfrom2Service.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/ITestfrom2Service.java
new file mode 100644
index 0000000..de4972e
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/ITestfrom2Service.java
@@ -0,0 +1,14 @@
+package com.xjrsoft.module.prdManage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xjrsoft.module.prdManage.entity.Testfrom2;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2025-08-20
+* @Version 1.0
+*/
+
+public interface ITestfrom2Service extends IService {
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/impl/DemoApplianceServiceImpl.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/impl/DemoApplianceServiceImpl.java
new file mode 100644
index 0000000..2962646
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/impl/DemoApplianceServiceImpl.java
@@ -0,0 +1,19 @@
+package com.xjrsoft.module.prdManage.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xjrsoft.module.prdManage.entity.DemoAppliance;
+import com.xjrsoft.module.prdManage.mapper.DemoApplianceMapper;
+import com.xjrsoft.module.prdManage.service.IDemoApplianceService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class DemoApplianceServiceImpl extends ServiceImpl implements IDemoApplianceService {
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/impl/Testfrom2ServiceImpl.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/impl/Testfrom2ServiceImpl.java
new file mode 100644
index 0000000..10a102d
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/service/impl/Testfrom2ServiceImpl.java
@@ -0,0 +1,21 @@
+package com.xjrsoft.module.prdManage.service.impl;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xjrsoft.module.prdManage.entity.Testfrom2;
+import com.xjrsoft.module.prdManage.mapper.Testfrom2Mapper;
+import com.xjrsoft.module.prdManage.service.ITestfrom2Service;
+
+import lombok.AllArgsConstructor;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2025-08-20
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class Testfrom2ServiceImpl extends ServiceImpl implements ITestfrom2Service {
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/DemoAppliancePageVo.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/DemoAppliancePageVo.java
new file mode 100644
index 0000000..64f0b81
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/DemoAppliancePageVo.java
@@ -0,0 +1,68 @@
+package com.xjrsoft.module.prdManage.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 分页列表出参
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Data
+public class DemoAppliancePageVo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime purchaseDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer warrantyPeriod;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer powerRating;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String brand;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Double sellingPrice;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String status;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/DemoApplianceVo.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/DemoApplianceVo.java
new file mode 100644
index 0000000..7afe8c0
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/DemoApplianceVo.java
@@ -0,0 +1,70 @@
+package com.xjrsoft.module.prdManage.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 表单出参
+* @Author 管理员
+* @Date: 2025-03-12
+* @Version 1.0
+*/
+@Data
+public class DemoApplianceVo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String serialNumber;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String category;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime purchaseDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer warrantyPeriod;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer powerRating;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String brand;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Double sellingPrice;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String status;
+
+
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/Testfrom2PageVo.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/Testfrom2PageVo.java
new file mode 100644
index 0000000..af29450
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/Testfrom2PageVo.java
@@ -0,0 +1,38 @@
+package com.xjrsoft.module.prdManage.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import com.xjrsoft.common.annotation.Trans;
+import com.xjrsoft.common.enums.TransType;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+
+/**
+* @title: 分页列表出参
+* @Author 管理员
+* @Date: 2025-08-20
+* @Version 1.0
+*/
+@Data
+public class Testfrom2PageVo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String id;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen1620;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen1247;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/Testfrom2Vo.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/Testfrom2Vo.java
new file mode 100644
index 0000000..de86f33
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/prdManage/vo/Testfrom2Vo.java
@@ -0,0 +1,68 @@
+package com.xjrsoft.module.prdManage.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+* @title: 表单出参
+* @Author 管理员
+* @Date: 2025-08-20
+* @Version 1.0
+*/
+@Data
+public class Testfrom2Vo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long id;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen1620;
+ /**
+ * 单行文本
+ */
+ @ApiModelProperty("单行文本")
+ private String danXingWenBen1247;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long createUserId;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime createDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long modifyUserId;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private LocalDateTime modifyDate;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Integer enabledMark;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long tenantId;
+
+
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/controller/DemoCustomerManageController.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/controller/DemoCustomerManageController.java
new file mode 100644
index 0000000..d9f6d92
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/controller/DemoCustomerManageController.java
@@ -0,0 +1,99 @@
+package com.xjrsoft.module.relationManage.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.xjrsoft.common.model.result.R;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.relationManage.dto.AddDemoCustomerDto;
+import com.xjrsoft.module.relationManage.dto.DemoCustomerPageDto;
+import com.xjrsoft.module.relationManage.dto.UpdateDemoCustomerDto;
+import com.xjrsoft.module.relationManage.entity.DemoCustomer;
+import com.xjrsoft.module.relationManage.service.IDemoCustomerManageService;
+import com.xjrsoft.module.relationManage.vo.DemoCustomerPageVo;
+import com.xjrsoft.module.relationManage.vo.DemoCustomerVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+* @title: demo_客户管理
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/relationManage" + "/demoCustomerManage")
+@Api(value = "/relationManage" + "/demoCustomerManage",tags = "demo_客户管理代码")
+@AllArgsConstructor
+public class DemoCustomerManageController {
+
+
+private final IDemoCustomerManageService demoCustomerManageService;
+
+ @GetMapping(value = "/page")
+ @ApiOperation(value="DemoCustomer列表(分页)")
+ @SaCheckPermission("demoCustomerManage:list")
+ public R page(@Valid DemoCustomerPageDto dto){
+
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper
+ .like(StrUtil.isNotBlank(dto.getName()),DemoCustomer::getName,dto.getName())
+ .like(StrUtil.isNotBlank(dto.getGender()),DemoCustomer::getGender,dto.getGender())
+ .like(StrUtil.isNotBlank(dto.getPhone()),DemoCustomer::getPhone,dto.getPhone())
+ .like(StrUtil.isNotBlank(dto.getEmail()),DemoCustomer::getEmail,dto.getEmail())
+ .orderByDesc(DemoCustomer::getId)
+ .select(DemoCustomer.class,x -> VoToColumnUtil.fieldsToColumns(DemoCustomerPageVo.class).contains(x.getProperty()));
+ IPage page = demoCustomerManageService.page(ConventPage.getPage(dto), queryWrapper);
+ PageOutput pageOutput = ConventPage.getPageOutput(page, DemoCustomerPageVo.class);
+ return R.ok(pageOutput);
+ }
+
+ @GetMapping(value = "/info")
+ @ApiOperation(value="根据id查询DemoCustomer信息")
+ @SaCheckPermission("demoCustomerManage:detail")
+ public R info(@RequestParam Long id){
+ DemoCustomer demoCustomer = demoCustomerManageService.getById(id);
+ if (demoCustomer == null) {
+ return R.error("找不到此数据!");
+ }
+ return R.ok(BeanUtil.toBean(demoCustomer, DemoCustomerVo.class));
+ }
+
+
+ @PostMapping
+ @ApiOperation(value = "新增DemoCustomer")
+ @SaCheckPermission("demoCustomerManage:add")
+ public R add(@Valid @RequestBody AddDemoCustomerDto dto){
+ DemoCustomer demoCustomer = BeanUtil.toBean(dto, DemoCustomer.class);
+ boolean isSuccess = demoCustomerManageService.save(demoCustomer);
+ return R.ok(demoCustomer.getId());
+ }
+
+ @PutMapping
+ @ApiOperation(value = "修改DemoCustomer")
+ @SaCheckPermission("demoCustomerManage:edit")
+ public R update(@Valid @RequestBody UpdateDemoCustomerDto dto){
+
+ DemoCustomer demoCustomer = BeanUtil.toBean(dto, DemoCustomer.class);
+ return R.ok(demoCustomerManageService.updateById(demoCustomer));
+
+ }
+
+ @DeleteMapping
+ @ApiOperation(value = "删除")
+ @SaCheckPermission("demoCustomerManage:delete")
+ public R delete(@Valid @RequestBody List ids){
+ return R.ok(demoCustomerManageService.removeBatchByIds(ids));
+
+ }
+
+ }
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/dto/AddDemoCustomerDto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/dto/AddDemoCustomerDto.java
new file mode 100644
index 0000000..54b0ee7
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/dto/AddDemoCustomerDto.java
@@ -0,0 +1,57 @@
+package com.xjrsoft.module.relationManage.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: demo_客户管理
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+public class AddDemoCustomerDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String address;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String company;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String position;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/dto/DemoCustomerPageDto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/dto/DemoCustomerPageDto.java
new file mode 100644
index 0000000..c9c63cd
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/dto/DemoCustomerPageDto.java
@@ -0,0 +1,40 @@
+package com.xjrsoft.module.relationManage.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 分页查询入参
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DemoCustomerPageDto extends PageInput {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/dto/UpdateDemoCustomerDto.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/dto/UpdateDemoCustomerDto.java
new file mode 100644
index 0000000..db65601
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/dto/UpdateDemoCustomerDto.java
@@ -0,0 +1,61 @@
+package com.xjrsoft.module.relationManage.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: demo_客户管理
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+public class UpdateDemoCustomerDto implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String address;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String company;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String position;
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/entity/DemoCustomer.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/entity/DemoCustomer.java
new file mode 100644
index 0000000..51941c1
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/entity/DemoCustomer.java
@@ -0,0 +1,90 @@
+package com.xjrsoft.module.relationManage.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: demo_客户管理
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+@TableName("demo_customer")
+@ApiModel(value = "demo_客户管理对象", description = "demo_客户管理")
+public class DemoCustomer implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableId
+ private Long id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String address;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String company;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String position;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createDate;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUserId;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT)
+ private Long deptId;
+
+}
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/mapper/DemoCustomerMapper.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/mapper/DemoCustomerMapper.java
new file mode 100644
index 0000000..74eab06
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/mapper/DemoCustomerMapper.java
@@ -0,0 +1,16 @@
+package com.xjrsoft.module.relationManage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xjrsoft.module.relationManage.entity.DemoCustomer;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: mapper
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Mapper
+public interface DemoCustomerMapper extends BaseMapper {
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/service/IDemoCustomerManageService.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/service/IDemoCustomerManageService.java
new file mode 100644
index 0000000..853866a
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/service/IDemoCustomerManageService.java
@@ -0,0 +1,14 @@
+package com.xjrsoft.module.relationManage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xjrsoft.module.relationManage.entity.DemoCustomer;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+
+public interface IDemoCustomerManageService extends IService {
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/service/impl/DemoCustomerManageServiceImpl.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/service/impl/DemoCustomerManageServiceImpl.java
new file mode 100644
index 0000000..0fced8c
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/service/impl/DemoCustomerManageServiceImpl.java
@@ -0,0 +1,19 @@
+package com.xjrsoft.module.relationManage.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xjrsoft.module.relationManage.entity.DemoCustomer;
+import com.xjrsoft.module.relationManage.mapper.DemoCustomerMapper;
+import com.xjrsoft.module.relationManage.service.IDemoCustomerManageService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class DemoCustomerManageServiceImpl extends ServiceImpl implements IDemoCustomerManageService {
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerPageVo.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerPageVo.java
new file mode 100644
index 0000000..7f3e1a1
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerPageVo.java
@@ -0,0 +1,56 @@
+package com.xjrsoft.module.relationManage.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 分页列表出参
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+public class DemoCustomerPageVo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String address;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String company;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String position;
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerVo.java b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerVo.java
new file mode 100644
index 0000000..2aa1ce7
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/java/com/xjrsoft/module/relationManage/vo/DemoCustomerVo.java
@@ -0,0 +1,74 @@
+package com.xjrsoft.module.relationManage.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 表单出参
+* @Author 管理员
+* @Date: 2025-03-11
+* @Version 1.0
+*/
+@Data
+public class DemoCustomerVo {
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long id;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String name;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String gender;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String phone;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String email;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String address;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String company;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private String position;
+
+ @ApiModelProperty("")
+ private LocalDateTime createDate;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long createUserId;
+
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ private Long deptId;
+
+
+}
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/banner.txt b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/banner.txt
new file mode 100644
index 0000000..f0052df
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/banner.txt
@@ -0,0 +1,6 @@
+ ██████╗ ███████╗ ██████╗ ██╗████████╗ ██████╗
+██╔════╝ ██╔════╝██╔════╝ ██║╚══██╔══╝██╔════╝
+██║ ███╗█████╗ ██║ ███╗█████╗██║ ██║ ██║
+██║ ██║██╔══╝ ██║ ██║╚════╝██║ ██║ ██║
+╚██████╔╝███████╗╚██████╔╝ ██║ ██║ ╚██████╗
+ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/bootstrap-local.yml b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/bootstrap-local.yml
new file mode 100644
index 0000000..f75a2a3
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/bootstrap-local.yml
@@ -0,0 +1,49 @@
+spring:
+ cloud:
+ nacos: #nacos监控
+ config:
+ server-addr: 127.0.0.1:8848 # nacos 配置中心地址
+ namespace: ITC-MS
+ group: DNE
+ username: nacos
+ password: nacos
+ extension-configs:
+ - data-id: global-local.yml
+ refresh: true
+ group: DNE
+
+ - data-id: discovery-local.yml
+ refresh: true
+ group: DNE
+
+ - data-id: datasource-local.yml
+ refresh: true
+ group: DNE
+
+ - data-id: seata-local.yml
+ refresh: true
+ group: DNE
+
+ - data-id: redis-local.yml
+ refresh: true
+ group: DNE
+
+ - data-id: magic-api.yml
+ refresh: true
+ group: DNE
+
+ - data-id: sa-token.yml
+ refresh: true
+ group: DNE
+
+ - data-id: camunda.yml
+ refresh: true
+ group: DNE
+
+ - data-id: sentinel-local.yml
+ refresh: true
+ group: DNE
+
+datalog:
+ db:
+ url: jdbc:kingbase8://127.0.0.1:54321/itc?currentSchema=dne_log_sit
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/bootstrap.yml b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..58e6e70
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/src/main/resources/bootstrap.yml
@@ -0,0 +1,56 @@
+server:
+ port: 8099
+
+spring:
+ application:
+ name: demo-service
+ main:
+ allow-bean-definition-overriding: true
+ profiles:
+ active: local
+ cloud:
+ nacos: #nacos监控
+ config:
+ server-addr: 10.0.252.1:8848 # nacos 配置中心地址
+ namespace: ITC-MS
+ group: DNE
+ username: nacos
+ password: Yudean@2025
+ file-extension: yml # 默认配置 ${spring.application.name}-${spring.profiles.active}.${file-extension}
+ refresh-enabled: true
+ extension-configs:
+ - data-id: global.yml
+ refresh: true
+ group: DNE
+
+ - data-id: discovery.yml
+ refresh: true
+ group: DNE
+
+ - data-id: datasource.yml
+ refresh: true
+ group: DNE
+
+ - data-id: seata.yml
+ refresh: true
+ group: DNE
+
+ - data-id: redis.yml
+ refresh: true
+ group: DNE
+
+ - data-id: magic-api.yml
+ refresh: true
+ group: DNE
+
+ - data-id: sa-token.yml
+ refresh: true
+ group: DNE
+
+ - data-id: camunda.yml
+ refresh: true
+ group: DNE
+
+ - data-id: sentinel.yml
+ refresh: true
+ group: DNE
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/app.jar.original b/itc-pcitc-demo/itc-pcitc-demo-service/target/app.jar.original
new file mode 100644
index 0000000..310fe81
Binary files /dev/null and b/itc-pcitc-demo/itc-pcitc-demo-service/target/app.jar.original differ
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/Dockerfile b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/Dockerfile
new file mode 100644
index 0000000..1cc66f3
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/Dockerfile
@@ -0,0 +1,39 @@
+#FROM --platform=linux/arm64 docker.xuanyuan.run/library/openjdk:8-jre
+FROM harbor.kubesphere.com/public/jar8u112:v1
+
+
+RUN mkdir -p /root/logs/java/ \
+ && mkdir -p /scm/logs/ \
+ && mkdir -p /opt/app/ \
+ && mkdir -p /uploadFile/ \
+ && mkdir -p /var/log/app \
+ && mkdir -p /opt/app/logs \
+ && mkdir -p /opt/agent/config
+
+ENV TZ "Asia/Shanghai"
+
+ADD ./skywalking-agent.jar /opt/agent/skywalking-agent.jar
+ADD ./agent.config /opt/agent/config/agent.config
+
+RUN echo "set fileencodings=utf-8,gbk,gb2312,gb18030,cp936,latin1 \n set fenc=utf-8 \n set tenc=utf-8 \n set enc=utf-8 \n" |tee ~/.vimrc
+
+
+ARG JAR_FILE
+ARG PRO_FILE
+ARG SOURCE_NAME
+
+ADD ./startApp.sh /opt/app/
+RUN chmod u+x /opt/app/*.sh
+ADD ./${SOURCE_NAME} /opt/app/app.jar
+RUN test -f /opt/app/app.jar || { echo "Error: JAR file not found at ${SOURCE_NAME}"; exit 1; }
+
+#应用名称
+ENV APP_NAME=itc-pcitc-demo
+#skywalking-oap-server地址
+ENV SKYWALKING_SERVER=172.20.0.12:11800
+ENV ENV_APP_FILE_PATH=/opt/app/app.jar
+ENV ENV_APP_PRO_FILE=test
+
+EXPOSE 8090 5005
+
+ENTRYPOINT ["/opt/app/startApp.sh"]
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/agent.config b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/agent.config
new file mode 100644
index 0000000..ed3fb29
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/agent.config
@@ -0,0 +1,4 @@
+# 应用名称(在 SkyWalking UI 中显示的服务名)
+agent.service_name=your-springboot-app
+# SkyWalking OAP 服务地址(默认本地)
+collector.backend_service=localhost:11800
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/banner.txt b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/banner.txt
new file mode 100644
index 0000000..f0052df
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/banner.txt
@@ -0,0 +1,6 @@
+ ██████╗ ███████╗ ██████╗ ██╗████████╗ ██████╗
+██╔════╝ ██╔════╝██╔════╝ ██║╚══██╔══╝██╔════╝
+██║ ███╗█████╗ ██║ ███╗█████╗██║ ██║ ██║
+██║ ██║██╔══╝ ██║ ██║╚════╝██║ ██║ ██║
+╚██████╔╝███████╗╚██████╔╝ ██║ ██║ ╚██████╗
+ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/bootstrap-local.yml b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/bootstrap-local.yml
new file mode 100644
index 0000000..f75a2a3
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/bootstrap-local.yml
@@ -0,0 +1,49 @@
+spring:
+ cloud:
+ nacos: #nacos监控
+ config:
+ server-addr: 127.0.0.1:8848 # nacos 配置中心地址
+ namespace: ITC-MS
+ group: DNE
+ username: nacos
+ password: nacos
+ extension-configs:
+ - data-id: global-local.yml
+ refresh: true
+ group: DNE
+
+ - data-id: discovery-local.yml
+ refresh: true
+ group: DNE
+
+ - data-id: datasource-local.yml
+ refresh: true
+ group: DNE
+
+ - data-id: seata-local.yml
+ refresh: true
+ group: DNE
+
+ - data-id: redis-local.yml
+ refresh: true
+ group: DNE
+
+ - data-id: magic-api.yml
+ refresh: true
+ group: DNE
+
+ - data-id: sa-token.yml
+ refresh: true
+ group: DNE
+
+ - data-id: camunda.yml
+ refresh: true
+ group: DNE
+
+ - data-id: sentinel-local.yml
+ refresh: true
+ group: DNE
+
+datalog:
+ db:
+ url: jdbc:kingbase8://127.0.0.1:54321/itc?currentSchema=dne_log_sit
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/bootstrap.yml b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/bootstrap.yml
new file mode 100644
index 0000000..58e6e70
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/bootstrap.yml
@@ -0,0 +1,56 @@
+server:
+ port: 8099
+
+spring:
+ application:
+ name: demo-service
+ main:
+ allow-bean-definition-overriding: true
+ profiles:
+ active: local
+ cloud:
+ nacos: #nacos监控
+ config:
+ server-addr: 10.0.252.1:8848 # nacos 配置中心地址
+ namespace: ITC-MS
+ group: DNE
+ username: nacos
+ password: Yudean@2025
+ file-extension: yml # 默认配置 ${spring.application.name}-${spring.profiles.active}.${file-extension}
+ refresh-enabled: true
+ extension-configs:
+ - data-id: global.yml
+ refresh: true
+ group: DNE
+
+ - data-id: discovery.yml
+ refresh: true
+ group: DNE
+
+ - data-id: datasource.yml
+ refresh: true
+ group: DNE
+
+ - data-id: seata.yml
+ refresh: true
+ group: DNE
+
+ - data-id: redis.yml
+ refresh: true
+ group: DNE
+
+ - data-id: magic-api.yml
+ refresh: true
+ group: DNE
+
+ - data-id: sa-token.yml
+ refresh: true
+ group: DNE
+
+ - data-id: camunda.yml
+ refresh: true
+ group: DNE
+
+ - data-id: sentinel.yml
+ refresh: true
+ group: DNE
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/docker-system.sh b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/docker-system.sh
new file mode 100644
index 0000000..788312d
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/docker-system.sh
@@ -0,0 +1,126 @@
+#!/bin/bash
+
+# 定义变量
+CONTAINER_NAME="itc-ms-system"
+IMAGE_NAME="pcitc/itc-ms-system"
+IMAGE_VERSION="2025-08-04-0940"
+IMAGE_FULL="$IMAGE_NAME:$IMAGE_VERSION"
+PORT=8091 # 服务暴露端口
+CONTAINER_PORT=8091 # 服务暴露端口
+TZ="Asia/Shanghai" # 时区设置
+# 环境变量配置
+ENV_APP_PRO_FILE="test"
+file="$CONTAINER_NAME-version.txt"
+
+# 检查文件是否存在(假设 $file 是目标文件变量,已在别处定义)
+if [ ! -f "$file" ]; then
+ echo "文件 $file 不存在"
+ touch "$file" # 变量加引号,处理含空格的文件名
+ echo "$IMAGE_FULL" >> "$file"
+ echo "记录版本【$IMAGE_FULL】到 $file"
+else
+ # 检查参数数量(建议移到脚本开头统一检查)
+ if [ $# -eq 2 ]; then
+ IMAGE_FULL="$IMAGE_NAME:$2"
+ echo "$IMAGE_FULL" >> "$file"
+ echo "记录版本【$IMAGE_FULL】到 $file"
+ else
+ # 修正赋值语法:等号两侧无空格
+ last_version=$(tail -n 1 "$file")
+ IMAGE_FULL="$last_version"
+ # 建议添加对 $IMAGE_FULL 的后续处理(如使用该变量)
+ fi
+fi
+
+# 显示帮助信息
+show_help() {
+ echo "使用方法: $0 [操作类型]"
+ echo "操作类型:"
+ echo " deploy - 部署并启动服务容器"
+ echo " remove - 停止并删除容器及数据/日志目录"
+ echo " logs - 查看容器日志"
+ echo " help - 显示帮助信息"
+}
+
+
+
+# 部署服务
+deploy_service() {
+ echo "部署镜像【$IMAGE_FULL】"
+ # 检查容器是否已存在,存在则停止并删除
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "停止并删除现有容器: $CONTAINER_NAME"
+ docker stop $CONTAINER_NAME >/dev/null
+ docker rm $CONTAINER_NAME >/dev/null
+ fi
+
+ # 启动服务容器
+ echo "启动服务容器..."
+ docker run -d --privileged --restart always \
+ --name $CONTAINER_NAME \
+ -p $PORT:$CONTAINER_PORT \
+ -e ENV_APP_PRO_FILE=$ENV_APP_PRO_FILE \
+ $IMAGE_FULL
+
+ # 检查启动状态
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME -f status=running)" ]; then
+ echo "服务启动成功!"
+ echo "容器名称: $CONTAINER_NAME"
+ echo "访问地址: http://localhost:$PORT"
+ echo "环境变量: ENV_APP_PRO_FILE=$ENV_APP_PRO_FILE"
+ else
+ echo "服务启动失败,日志如下:"
+ docker logs $CONTAINER_NAME
+ exit 1
+ fi
+}
+
+# 删除服务
+remove_service() {
+ # 检查容器是否存在
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "停止容器: $CONTAINER_NAME"
+ docker stop $CONTAINER_NAME >/dev/null
+
+ echo "删除容器: $CONTAINER_NAME"
+ docker rm $CONTAINER_NAME >/dev/null
+ else
+ echo "容器 $CONTAINER_NAME 不存在"
+ fi
+}
+
+# 查看日志
+show_logs() {
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "查看 $CONTAINER_NAME 容器日志 (按 Ctrl+C 退出)..."
+ docker logs -f $CONTAINER_NAME
+ else
+ echo "容器 $CONTAINER_NAME 不存在"
+ fi
+}
+
+# 主逻辑
+if [ $# -lt 1 ]; then
+ show_help
+ exit 1
+fi
+
+case "$1" in
+ deploy)
+ deploy_service
+ ;;
+ remove)
+ remove_service
+ ;;
+ logs)
+ show_logs
+ ;;
+ help)
+ show_help
+ ;;
+ *)
+ echo "无效的操作类型: $1"
+ show_help
+ exit 1
+ ;;
+esac
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/docker-user.sh b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/docker-user.sh
new file mode 100644
index 0000000..2cc8222
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/docker-user.sh
@@ -0,0 +1,126 @@
+#!/bin/bash
+
+# 定义变量
+CONTAINER_NAME="itc-ms-user"
+IMAGE_NAME="pcitc/itc-ms-user"
+IMAGE_VERSION="2025-08-04-0954"
+IMAGE_FULL="$IMAGE_NAME:$IMAGE_VERSION"
+PORT=8092 # 服务暴露端口
+CONTAINER_PORT=8092 # 服务暴露端口
+TZ="Asia/Shanghai" # 时区设置
+# 环境变量配置
+ENV_APP_PRO_FILE="test"
+file="$CONTAINER_NAME-version.txt"
+
+# 检查文件是否存在(假设 $file 是目标文件变量,已在别处定义)
+if [ ! -f "$file" ]; then
+ echo "文件 $file 不存在"
+ touch "$file" # 变量加引号,处理含空格的文件名
+ echo "$IMAGE_FULL" >> "$file"
+ echo "记录版本【$IMAGE_FULL】到 $file"
+else
+ # 检查参数数量(建议移到脚本开头统一检查)
+ if [ $# -eq 2 ]; then
+ IMAGE_FULL="$IMAGE_NAME:$2"
+ echo "$IMAGE_FULL" >> "$file"
+ echo "记录版本【$IMAGE_FULL】到 $file"
+ else
+ # 修正赋值语法:等号两侧无空格
+ last_version=$(tail -n 1 "$file")
+ IMAGE_FULL="$last_version"
+ # 建议添加对 $IMAGE_FULL 的后续处理(如使用该变量)
+ fi
+fi
+
+# 显示帮助信息
+show_help() {
+ echo "使用方法: $0 [操作类型]"
+ echo "操作类型:"
+ echo " deploy - 部署并启动服务容器"
+ echo " remove - 停止并删除容器及数据/日志目录"
+ echo " logs - 查看容器日志"
+ echo " help - 显示帮助信息"
+}
+
+
+
+# 部署服务
+deploy_service() {
+ echo "部署镜像【$IMAGE_FULL】"
+ # 检查容器是否已存在,存在则停止并删除
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "停止并删除现有容器: $CONTAINER_NAME"
+ docker stop $CONTAINER_NAME >/dev/null
+ docker rm $CONTAINER_NAME >/dev/null
+ fi
+
+ # 启动服务容器
+ echo "启动服务容器..."
+ docker run -d --privileged --restart always \
+ --name $CONTAINER_NAME \
+ -p $PORT:$CONTAINER_PORT \
+ -e ENV_APP_PRO_FILE=$ENV_APP_PRO_FILE \
+ $IMAGE_FULL
+
+ # 检查启动状态
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME -f status=running)" ]; then
+ echo "服务启动成功!"
+ echo "容器名称: $CONTAINER_NAME"
+ echo "访问地址: http://localhost:$PORT"
+ echo "环境变量: ENV_APP_PRO_FILE=$ENV_APP_PRO_FILE"
+ else
+ echo "服务启动失败,日志如下:"
+ docker logs $CONTAINER_NAME
+ exit 1
+ fi
+}
+
+# 删除服务
+remove_service() {
+ # 检查容器是否存在
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "停止容器: $CONTAINER_NAME"
+ docker stop $CONTAINER_NAME >/dev/null
+
+ echo "删除容器: $CONTAINER_NAME"
+ docker rm $CONTAINER_NAME >/dev/null
+ else
+ echo "容器 $CONTAINER_NAME 不存在"
+ fi
+}
+
+# 查看日志
+show_logs() {
+ if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
+ echo "查看 $CONTAINER_NAME 容器日志 (按 Ctrl+C 退出)..."
+ docker logs -f $CONTAINER_NAME
+ else
+ echo "容器 $CONTAINER_NAME 不存在"
+ fi
+}
+
+# 主逻辑
+if [ $# -lt 1 ]; then
+ show_help
+ exit 1
+fi
+
+case "$1" in
+ deploy)
+ deploy_service
+ ;;
+ remove)
+ remove_service
+ ;;
+ logs)
+ show_logs
+ ;;
+ help)
+ show_help
+ ;;
+ *)
+ echo "无效的操作类型: $1"
+ show_help
+ exit 1
+ ;;
+esac
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/startApp.sh b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/startApp.sh
new file mode 100644
index 0000000..adef435
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/target/classes/startApp.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+#cp /etc/hosts /etc/hosts.temp
+
+# 初始化环境变量(设置默认值,避免空变量)
+APP_NAME=${APP_NAME:-"default-springboot-app"} # 默认服务名
+SKYWALKING_SERVER=${SKYWALKING_SERVER:-"localhost:11800"} # 默认SkyWalking服务地址
+ENV_APP_PRO_FILE=${ENV_APP_PRO_FILE:-"test"} # 默认环境为test
+
+# 初始化Java启动参数(包含是否使用-server模式)
+java_base="java -javaagent:/opt/agent/skywalking-agent.jar -Dskywalking.agent.service_name=$APP_NAME"
+export java_base="$java_base -Dskywalking.collector.backend_service=$SKYWALKING_SERVER"
+
+java_start="$java_base -jar"
+
+# 根据环境变量区分开发/生产环境配置
+if [ "$ENV_APP_PRO_FILE" = "prod" ]; then
+ # 生产环境JVM参数
+ export JAVA_OPTS="-Xms1024m -Xmx4096m -Xmn512m -Xss512k -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
+ export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:G1HeapRegionSize=32m -XX:G1ReservePercent=20"
+ export JAVA_OPTS="$JAVA_OPTS -XX:MaxGCPauseMillis=500 -XX:G1MixedGCCountTarget=10"
+
+ export JAVA_OPTS="$JAVA_OPTS -verbose:gc -Xloggc:/var/log/app/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps"
+ export JAVA_OPTS="$JAVA_OPTS -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
+
+ # 生产环境使用-server模式
+ java_start="$java_base -jar -server"
+else
+ # 开发环境JVM参数
+ export JAVA_OPTS="-Xms512m -Xmx1024m -Xmn256m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"
+ export JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseParNewGC"
+ export JAVA_OPTS="$JAVA_OPTS -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:CMSMaxAbortablePrecleanTime=5000"
+ export JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly"
+ export JAVA_OPTS="$JAVA_OPTS -verbose:gc -Xloggc:./logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps"
+ # 开发环境开启远程调试
+ export JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
+fi
+
+# 公共配置(编码、时区等)
+export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8"
+export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
+export JAVA_OPTS="$JAVA_OPTS -Duser.language=zh -Duser.country=CN -Duser.timezone=Asia/Shanghai"
+
+# SpringBoot 环境配置
+export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=$ENV_APP_PRO_FILE"
+
+# 输出启动参数
+echo "启动参数:$java_start $JAVA_OPTS $ENV_APP_FILE_PATH"
+
+# 执行启动命令(用双引号包裹每个变量)
+exec $java_start $JAVA_OPTS $ENV_APP_FILE_PATH
\ No newline at end of file
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/maven-archiver/pom.properties b/itc-pcitc-demo/itc-pcitc-demo-service/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..1f99e1c
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Wed Sep 24 16:46:33 CST 2025
+version=2.0.4
+groupId=com.geg
+artifactId=itc-pcitc-demo-service
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/itc-pcitc-demo/itc-pcitc-demo-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..e69de29
diff --git a/itc-pcitc-demo/itc-pcitc-demo-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/itc-pcitc-demo/itc-pcitc-demo-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..df34b25
--- /dev/null
+++ b/itc-pcitc-demo/itc-pcitc-demo-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,34 @@
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\vo\DemoAppliancePageVo.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\relationManage\dto\UpdateDemoCustomerDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\service\impl\DemoApplianceServiceImpl.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\relationManage\service\impl\DemoCustomerManageServiceImpl.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\dto\UpdateTestfrom2Dto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\mapper\DemoApplianceMapper.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\common\TransactionConfig.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\dto\DemoAppliancePageDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\entity\Testfrom2.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\common\schedule\DemoSysncTask.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\relationManage\entity\DemoCustomer.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\dto\UpdateDemoApplianceDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\relationManage\vo\DemoCustomerPageVo.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\controller\Testfrom2Controller.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\vo\Testfrom2PageVo.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\relationManage\controller\DemoCustomerManageController.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\relationManage\service\IDemoCustomerManageService.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\service\IDemoApplianceService.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\service\ITestfrom2Service.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\relationManage\mapper\DemoCustomerMapper.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\vo\Testfrom2Vo.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\dto\Testfrom2PageDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\entity\DemoAppliance.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\service\impl\Testfrom2ServiceImpl.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\relationManage\dto\AddDemoCustomerDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\relationManage\vo\DemoCustomerVo.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\ITCDemoApplication.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\common\util\SpringContextUtil.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\mapper\Testfrom2Mapper.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\dto\AddTestfrom2Dto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\dto\AddDemoApplianceDto.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\controller\DemoApplianceController.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\prdManage\vo\DemoApplianceVo.java
+F:\ges-scm\code\dev\geg-gas-pcitc\itc-pcitc-demo\itc-pcitc-demo-service\src\main\java\com\xjrsoft\module\relationManage\dto\DemoCustomerPageDto.java
diff --git a/itc-pcitc-demo/pom.xml b/itc-pcitc-demo/pom.xml
new file mode 100644
index 0000000..3bb6309
--- /dev/null
+++ b/itc-pcitc-demo/pom.xml
@@ -0,0 +1,28 @@
+
+
+ 4.0.0
+
+
+ com.geg
+ itc-pcitc-back
+ ${revision}
+
+
+ itc-pcitc-demo
+ itc-pcitc-demo
+ itc-pcitc-demo
+ pom
+
+
+ itc-pcitc-demo-service
+ itc-pcitc-demo-api
+
+
+
+ ${java.version}
+ ${java.version}
+ UTF-8
+
+
\ No newline at end of file
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/pom.xml b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/pom.xml
new file mode 100644
index 0000000..196ebf9
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/pom.xml
@@ -0,0 +1,118 @@
+
+
+ 4.0.0
+
+
+ com.geg
+ itc-pcitc-dependencies
+ ${revision}
+
+
+ itc-pcitc-dependencies-api
+ itc-pcitc-dependencies-api
+
+
+ ${java.version}
+ ${java.version}
+ 2.0.4
+
+
+
+
+ com.geg
+ itc-ms-common-api
+ ${revision}
+
+
+
+ com.geg
+ itc-ms-user-api
+ ${revision}
+
+
+
+ com.geg
+ itc-ms-workflow-api
+ ${revision}
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+ com.alibaba
+ easyexcel
+
+
+
+ org.ssssssss
+ magic-api-spring-boot-starter
+
+
+
+ com.alibaba
+ fastjson
+
+
+
+ me.zhyd.oauth
+ JustAuth
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${java.version}
+ ${java.version}
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ src/main/java
+
+ **/*.yml
+ **/*.properties
+ **/*.xml
+
+ false
+
+
+ src/main/resources
+
+ **/*.yml
+ **/*.properties
+ **/*.xml
+ **/*.vm
+ **/*.ftl
+ **/*.jpg
+ **/*.png
+ **/*.xls
+ **/*.xlsx
+
+ false
+
+
+
+
\ No newline at end of file
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinCaseType.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinCaseType.java
new file mode 100644
index 0000000..65e992a
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinCaseType.java
@@ -0,0 +1,7 @@
+package com.pictc.annotations.datalog;
+
+public enum JoinCaseType {
+
+ FULL,NONE
+
+}
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinType.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinType.java
new file mode 100644
index 0000000..268e81a
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinType.java
@@ -0,0 +1,13 @@
+package com.pictc.annotations.datalog;
+
+/**
+ * @author 张福财
+ * @date 2025年8月28日 下午6:00:10
+ * @Description: 关联类型 ONE_ONE ONE_MANY
+ */
+public enum JoinType {
+
+ ONE,
+ MANY
+
+}
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinValueType.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinValueType.java
new file mode 100644
index 0000000..597f3b9
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/JoinValueType.java
@@ -0,0 +1,13 @@
+package com.pictc.annotations.datalog;
+
+/**
+ * @author 张福财
+ * @date 2025年8月26日 上午9:18:35
+ * @Description: 关联值类型
+ */
+public enum JoinValueType {
+
+ FEILD, //字段关联
+ STATIC //字段等于静态值
+
+}
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogField.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogField.java
new file mode 100644
index 0000000..f6de151
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogField.java
@@ -0,0 +1,41 @@
+package com.pictc.annotations.datalog;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.springframework.core.annotation.AliasFor;
+
+/**
+ * @author 张福财
+ * @date 2025年8月26日 下午5:33:01
+ * @Description: 数据日志属性配置
+ */
+@Target({ElementType.METHOD, ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface LogField {
+
+ @AliasFor("name")
+ String value() default "";
+
+ /**
+ * @Description: 业务名称
+ * @return String 返回类型
+ */
+ @AliasFor("value")
+ String name() default "";
+
+ /**
+ * @Description: 数据库字段
+ * @return String 返回类型
+ */
+ String column() default "";
+
+ /**
+ * @Description: 位置
+ * @return int 返回类型
+ */
+ int index() default 0;
+
+}
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoin.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoin.java
new file mode 100644
index 0000000..7b03ee5
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoin.java
@@ -0,0 +1,63 @@
+package com.pictc.annotations.datalog;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @author 张福财
+ * @date 2025年8月26日 上午9:37:23
+ * @Description: 关联关系
+ */
+@Target({ElementType.METHOD, ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+public @interface LogJoin {
+
+ /**
+ * @Description: 业务名称
+ * @return String 返回类型
+ */
+ String name();
+
+ /**
+ * @Description: 关联对象
+ * @return Class> 返回类型
+ */
+ Class> target();
+
+ /**
+ * @Description: 关联类型
+ * @return JoinType 返回类型
+ */
+ JoinType type();
+
+ /**
+ * @Description: 级联类型:DEL(删除)、UPD(修改)、FULL(全部);
+ * @return JoinType 返回类型
+ */
+ JoinCaseType caseType() default JoinCaseType.FULL;
+
+ /**
+ * @Description: 关联列
+ * @return DataLogJoinColumn[] 返回类型
+ */
+ LogJoinColumn[] columns() default {};
+
+ /**
+ * @Description: 数据来源:默认通过target配置的表名去关联查询;如果sourceType = TQ 时配置查询ID
+ * @return String 返回类型
+ */
+ String source() default "";
+
+ /**
+ * @Description: TODO(这里用一句话描述这个方法的作用)
+ * @return
+ * @return QJoinSource 返回类型
+ */
+ SourceType sourceType() default SourceType.TABLE;
+
+
+}
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoinColumn.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoinColumn.java
new file mode 100644
index 0000000..1b83476
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogJoinColumn.java
@@ -0,0 +1,48 @@
+package com.pictc.annotations.datalog;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @author 张福财
+ * @date 2025年8月26日 上午9:37:45
+ * @Description: 关联属性配置
+ */
+@Target({ElementType.METHOD, ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+public @interface LogJoinColumn {
+
+ /**
+ * @Description: 属性
+ * @return String 返回类型
+ */
+ String field() default "";
+
+ /**
+ * @Description: 关联属性
+ * @return String 返回类型
+ */
+ String relatedField() default "";
+
+
+ /**
+ * @Description: 赋值方向
+ * @return ValueDirectionType 返回类型
+ */
+ ValueDirectionType valueDirection() default ValueDirectionType.LEFT;
+
+ /**
+ * @Description: 关联值类型:JoinValueType: FEILD【字段关联】、STATIC【字段等于静态值】
+ * @return String 返回类型
+ */
+ JoinValueType valueType() default JoinValueType.FEILD;
+
+ String staticValue() default "";
+
+ Class> staticType() default String.class;
+
+}
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogTable.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogTable.java
new file mode 100644
index 0000000..cfb2884
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/LogTable.java
@@ -0,0 +1,48 @@
+package com.pictc.annotations.datalog;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.springframework.core.annotation.AliasFor;
+
+/**
+ * @author 张福财
+ * @date 2025年8月25日 下午6:09:03
+ * @Description: TODO(这里用一句话描述这个类的作用)
+ */
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+public @interface LogTable {
+
+ /**
+ * @Description: 业务名称
+ * @return String 返回类型
+ */
+ @AliasFor("name")
+ String value() default "";
+
+
+ /**
+ * @Description: 业务名称
+ * @return String 返回类型
+ */
+ @AliasFor("value")
+ String name() default "";
+
+ /**
+ * @Description: 表名或者查询ID
+ * @return String 返回类型
+ */
+ String source();
+
+ /**
+ * @Description:
+ * @return QJoinSource 返回类型
+ */
+ SourceType sourceType() default SourceType.TABLE;
+
+}
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/SourceType.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/SourceType.java
new file mode 100644
index 0000000..781e4c7
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/SourceType.java
@@ -0,0 +1,13 @@
+package com.pictc.annotations.datalog;
+
+/**
+ * @author 张福财
+ * @date 2025年8月28日 下午4:24:27
+ * @Description: 数据来源,默认从关联表,获取从SQL配置表
+ */
+public enum SourceType {
+
+ TABLE,
+ TSQL
+
+}
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/ValueDirectionType.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/ValueDirectionType.java
new file mode 100644
index 0000000..75f6cc7
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/annotations/datalog/ValueDirectionType.java
@@ -0,0 +1,13 @@
+package com.pictc.annotations.datalog;
+
+/**
+ * @author 张福财
+ * @date 2025年8月28日 下午2:40:03
+ * @Description: 赋值方向
+ * 左边为主表
+ * 右边为子表
+ */
+public enum ValueDirectionType {
+ LEFT, //向左
+ RIGHT
+}
diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/common/mybatis/JsonTypeHandler.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/common/mybatis/JsonTypeHandler.java
new file mode 100644
index 0000000..d0c00f8
--- /dev/null
+++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-api/src/main/java/com/pictc/common/mybatis/JsonTypeHandler.java
@@ -0,0 +1,115 @@
+package com.pictc.common.mybatis;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.List;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
+
+
+@MappedTypes({Object.class})
+@MappedJdbcTypes(JdbcType.VARCHAR)
+public class JsonTypeHandler extends AbstractJsonTypeHandler