From bdeb03a42dace46b1211bf12f3ad66837814035d Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 23 三月 2026 11:39:01 +0800
Subject: [PATCH] feat: 更新系统
---
src/main/java/com/example/service/impl/DataExcelServiceImpl.java | 19 +++---
src/main/java/com/example/config/MyBatisPlusConfig.java | 6 ++
src/main/java/com/example/entity/DataTask.java | 31 ++++++++++
src/main/java/com/example/controller/DataExcelController.java | 9 ++-
src/main/resources/mapper/UserMapper.xml | 6 ++
src/main/java/com/example/security/UserContext.java | 5 +
src/main/java/com/example/common/BaseEntity.java | 6 ++
src/main/resources/mapper/DepartmentMapper.xml | 6 ++
src/main/java/com/example/controller/DepartmentController.java | 5 +
src/main/resources/mapper/DataExcelMapper.xml | 30 ++--------
src/main/java/com/example/service/DataExcelService.java | 2
src/main/java/com/example/controller/UserController.java | 6 +
src/main/resources/db/schema.sql | 33 +++++++++++
13 files changed, 125 insertions(+), 39 deletions(-)
diff --git a/src/main/java/com/example/common/BaseEntity.java b/src/main/java/com/example/common/BaseEntity.java
index 5eeee2c..dff29b2 100644
--- a/src/main/java/com/example/common/BaseEntity.java
+++ b/src/main/java/com/example/common/BaseEntity.java
@@ -21,10 +21,16 @@
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
+ @TableField(fill = FieldFill.INSERT)
+ private String createBy;
+
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private String updateBy;
+
@TableLogic
@TableField(fill = FieldFill.INSERT)
private Integer deleted;
diff --git a/src/main/java/com/example/config/MyBatisPlusConfig.java b/src/main/java/com/example/config/MyBatisPlusConfig.java
index 984c42e..9a97cc9 100644
--- a/src/main/java/com/example/config/MyBatisPlusConfig.java
+++ b/src/main/java/com/example/config/MyBatisPlusConfig.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import com.example.security.UserContext;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -27,15 +28,20 @@
return new MetaObjectHandler() {
@Override
public void insertFill(MetaObject metaObject) {
+ String username = UserContext.getCurrentUsername();
this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
this.strictInsertFill(metaObject, "deleted", Integer.class, 0);
this.strictInsertFill(metaObject, "version", Integer.class, 1);
+ this.strictInsertFill(metaObject, "createBy", String.class, username != null ? username : "绯荤粺");
+ this.strictInsertFill(metaObject, "updateBy", String.class, username != null ? username : "绯荤粺");
}
@Override
public void updateFill(MetaObject metaObject) {
+ String username = UserContext.getCurrentUsername();
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
+ this.strictUpdateFill(metaObject, "updateBy", String.class, username != null ? username : "绯荤粺");
}
};
}
diff --git a/src/main/java/com/example/controller/DataExcelController.java b/src/main/java/com/example/controller/DataExcelController.java
index 02ee4fa..7b44a8e 100644
--- a/src/main/java/com/example/controller/DataExcelController.java
+++ b/src/main/java/com/example/controller/DataExcelController.java
@@ -9,6 +9,7 @@
import com.example.security.UserContext;
import com.example.service.DataExcelService;
import com.example.service.DepartmentService;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -34,12 +35,12 @@
public Result<PageResult<DataExcel>> page(
@RequestParam(defaultValue = "1") Long current,
@RequestParam(defaultValue = "10") Long size,
- @RequestParam(required = false) String unitName,
+ @RequestParam(required = false) String unitCode,
@RequestParam(required = false) String transactionNo,
@RequestParam(required = false) String accountingPeriod) {
String currentDeptCode = UserContext.getCurrentDeptCode();
List<String> permissionDeptCodes = departmentService.getChildDeptCodes(currentDeptCode);
- IPage<DataExcel> page = dataExcelService.getDataExcelPage(current, size, unitName, transactionNo, accountingPeriod, permissionDeptCodes);
+ IPage<DataExcel> page = dataExcelService.getDataExcelPage(current, size, unitCode, transactionNo, accountingPeriod, permissionDeptCodes);
return Result.success(new PageResult<>(page.getTotal(), current, size, page.getRecords()));
}
@@ -59,12 +60,14 @@
@PostMapping
public Result<Boolean> save(@RequestBody DataExcel dataExcel) {
+ DataExcel dataExcel1 = new DataExcel();
String currentDeptCode = UserContext.getCurrentDeptCode();
List<String> permissionDeptCodes = departmentService.getChildDeptCodes(currentDeptCode);
if (!permissionDeptCodes.contains(dataExcel.getUnitCode())) {
return Result.error("鏃犳潈闄愬湪璇ラ儴闂ㄥ垱寤烘暟鎹�");
}
- return Result.success(dataExcelService.save(dataExcel));
+ BeanUtils.copyProperties(dataExcel,dataExcel1);
+ return Result.success(dataExcelService.save(dataExcel1));
}
@PutMapping
diff --git a/src/main/java/com/example/controller/DepartmentController.java b/src/main/java/com/example/controller/DepartmentController.java
index 524dab1..9844287 100644
--- a/src/main/java/com/example/controller/DepartmentController.java
+++ b/src/main/java/com/example/controller/DepartmentController.java
@@ -4,6 +4,7 @@
import com.example.entity.Department;
import com.example.security.UserContext;
import com.example.service.DepartmentService;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -44,6 +45,7 @@
@PostMapping
public Result<Boolean> save(@RequestBody Department department) {
+ Department dept1 = new Department();
String currentDeptCode = UserContext.getCurrentDeptCode();
List<String> deptCodes = departmentService.getChildDeptCodes(currentDeptCode);
if (!deptCodes.contains(department.getParentCode())) {
@@ -52,7 +54,8 @@
if (departmentService.checkDeptCodeExists(department.getDeptCode())) {
return Result.error("閮ㄩ棬缂栫爜宸插瓨鍦�");
}
- return Result.success(departmentService.save(department));
+ BeanUtils.copyProperties(department, dept1);
+ return Result.success(departmentService.save(dept1));
}
@PutMapping
diff --git a/src/main/java/com/example/controller/UserController.java b/src/main/java/com/example/controller/UserController.java
index 09f83a3..85ba94d 100644
--- a/src/main/java/com/example/controller/UserController.java
+++ b/src/main/java/com/example/controller/UserController.java
@@ -10,6 +10,7 @@
import com.example.service.DepartmentService;
import com.example.service.UserService;
import com.example.utils.Md5Util;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -62,6 +63,7 @@
@PostMapping
public Result<Boolean> save(@RequestBody User user) {
+ User user1 = new User();
String currentDeptCode = UserContext.getCurrentDeptCode();
List<String> deptCodes = departmentService.getChildDeptCodes(currentDeptCode);
if (!deptCodes.contains(user.getDeptCode())) {
@@ -75,7 +77,9 @@
} else {
user.setPassword(Md5Util.encrypt("123456"));
}
- return Result.success(userService.save(user));
+ BeanUtils.copyProperties(user,user1);
+ System.out.println(user1);
+ return Result.success(userService.save(user1));
}
@PutMapping
diff --git a/src/main/java/com/example/entity/DataTask.java b/src/main/java/com/example/entity/DataTask.java
new file mode 100644
index 0000000..51d9634
--- /dev/null
+++ b/src/main/java/com/example/entity/DataTask.java
@@ -0,0 +1,31 @@
+package com.example.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.example.common.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.time.LocalDateTime;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("data_task")
+public class DataTask extends BaseEntity {
+ private String unitCode;
+
+ private String unitName;
+ private Integer status;
+
+ private Integer taskCount;
+
+ private Integer successCount;
+
+ private String remark;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime lastTime;
+
+}
diff --git a/src/main/java/com/example/security/UserContext.java b/src/main/java/com/example/security/UserContext.java
index 39fc5f7..1be6f85 100644
--- a/src/main/java/com/example/security/UserContext.java
+++ b/src/main/java/com/example/security/UserContext.java
@@ -34,4 +34,9 @@
UserContext context = getUserContext();
return context != null ? context.getDeptCode() : null;
}
+
+ public static String getCurrentUsername() {
+ UserContext context = getUserContext();
+ return context != null ? context.getUsername() : null;
+ }
}
diff --git a/src/main/java/com/example/service/DataExcelService.java b/src/main/java/com/example/service/DataExcelService.java
index 91c7b9e..80e05d2 100644
--- a/src/main/java/com/example/service/DataExcelService.java
+++ b/src/main/java/com/example/service/DataExcelService.java
@@ -9,7 +9,7 @@
public interface DataExcelService extends IService<DataExcel> {
- IPage<DataExcel> getDataExcelPage(Long current, Long size, String unitName, String transactionNo, String accountingPeriod, List<String> permissionDeptCodes);
+ IPage<DataExcel> getDataExcelPage(Long current, Long size, String unitCode, String transactionNo, String accountingPeriod, List<String> permissionDeptCodes);
String importData(MultipartFile file, List<String> permissionDeptCodes);
}
diff --git a/src/main/java/com/example/service/impl/DataExcelServiceImpl.java b/src/main/java/com/example/service/impl/DataExcelServiceImpl.java
index 7d99fd8..634bb2f 100644
--- a/src/main/java/com/example/service/impl/DataExcelServiceImpl.java
+++ b/src/main/java/com/example/service/impl/DataExcelServiceImpl.java
@@ -22,12 +22,12 @@
public class DataExcelServiceImpl extends ServiceImpl<DataExcelMapper, DataExcel> implements DataExcelService {
@Override
- public IPage<DataExcel> getDataExcelPage(Long current, Long size, String unitName, String transactionNo, String accountingPeriod, List<String> permissionDeptCodes) {
+ public IPage<DataExcel> getDataExcelPage(Long current, Long size, String unitCode, String transactionNo, String accountingPeriod, List<String> permissionDeptCodes) {
Page<DataExcel> page = new Page<>(current, size);
page.setOptimizeJoinOfCountSql(false);
page.setOptimizeCountSql(false);
LambdaQueryWrapper<DataExcel> wrapper = new LambdaQueryWrapper<>();
- wrapper.like(unitName != null && !unitName.isEmpty(), DataExcel::getUnitName, unitName)
+ wrapper.eq(unitCode != null && !unitCode.isEmpty(), DataExcel::getUnitCode, unitCode)
.like(transactionNo != null && !transactionNo.isEmpty(), DataExcel::getTransactionNo, transactionNo)
.eq(accountingPeriod != null && !accountingPeriod.isEmpty(), DataExcel::getAccountingPeriod, accountingPeriod)
.in(permissionDeptCodes != null && !permissionDeptCodes.isEmpty(), DataExcel::getUnitCode, permissionDeptCodes)
@@ -41,6 +41,7 @@
List<DataExcel> updateList = new ArrayList<>();
List<String> errorMsgs = new ArrayList<>();
int[] counts = new int[2];
+ int[] counts2 = new int[2];
try {
EasyExcel.read(file.getInputStream(), DataExcelImport.class, new ReadListener<DataExcelImport>() {
@@ -54,7 +55,7 @@
errorMsgs.add("绗�" + data.getSeqNo() + "琛屾棤鏉冮檺瀵煎叆閮ㄩ棬缂栫爜: " + data.getUnitCode());
return;
}
-
+
DataExcel entity = new DataExcel();
entity.setSortNo(data.getSortNo());
entity.setSeqNo(data.getSeqNo());
@@ -73,13 +74,13 @@
entity.setBusinessRelation(data.getBusinessRelation());
entity.setRemark(data.getRemark());
entity.setStatus(1);
-
+
if (data.getSortNo() != null) {
DataExcel existData = baseMapper.selectBySortNo(data.getSortNo());
if (existData != null) {
entity.setId(existData.getId());
updateList.add(entity);
- counts[1]++;
+ counts2[0]++;
} else {
insertList.add(entity);
counts[0]++;
@@ -109,11 +110,11 @@
if (counts[0] > 0) {
result.append("鎴愬姛鏂板 ").append(counts[0]).append(" 鏉¤褰�");
}
- if (counts[1] > 0) {
+ if (counts2[0] > 0) {
if (result.length() > 0) {
result.append("锛�");
}
- result.append("鎴愬姛鏇存柊 ").append(counts[1]).append(" 鏉¤褰�");
+ result.append("鎴愬姛鏇存柊 ").append(counts2[0]).append(" 鏉¤褰�");
}
if (!errorMsgs.isEmpty()) {
if (result.length() > 0) {
@@ -121,11 +122,11 @@
}
result.append("瀵煎叆閮ㄥ垎澶辫触: ").append(String.join(", ", errorMsgs));
}
-
+
if (result.length() == 0) {
return "瀵煎叆澶辫触";
}
-
+
return result.toString();
}
}
diff --git a/src/main/resources/db/schema.sql b/src/main/resources/db/schema.sql
index b1e3d6b..ca439e8 100644
--- a/src/main/resources/db/schema.sql
+++ b/src/main/resources/db/schema.sql
@@ -9,6 +9,8 @@
status NUMBER(1) DEFAULT 1,
create_time DATE DEFAULT SYSDATE,
update_time DATE DEFAULT SYSDATE,
+ create_by VARCHAR2(50 CHAR),
+ update_by VARCHAR2(50 CHAR),
deleted NUMBER(1) DEFAULT 0,
version NUMBER(10) DEFAULT 1
);
@@ -25,6 +27,8 @@
status NUMBER(1) DEFAULT 1,
create_time DATE DEFAULT SYSDATE,
update_time DATE DEFAULT SYSDATE,
+ create_by VARCHAR2(50 CHAR),
+ update_by VARCHAR2(50 CHAR),
deleted NUMBER(1) DEFAULT 0,
version NUMBER(10) DEFAULT 1
);
@@ -51,14 +55,35 @@
status NUMBER(1) DEFAULT 1,
create_time DATE DEFAULT SYSDATE,
update_time DATE DEFAULT SYSDATE,
+ create_by VARCHAR2(50 CHAR),
+ update_by VARCHAR2(50 CHAR),
deleted NUMBER(1) DEFAULT 0,
version NUMBER(10) DEFAULT 1
+);
+
+-- 鏁版嵁浠诲姟琛�
+CREATE TABLE data_task (
+ id NUMBER(19) PRIMARY KEY,
+ unit_code VARCHAR2(50 CHAR),
+ unit_name VARCHAR2(200 CHAR),
+ status NUMBER(1) DEFAULT 0,
+ task_count NUMBER(10),
+ success_count NUMBER(10),
+ remark VARCHAR2(1000 CHAR),
+ create_time DATE DEFAULT SYSDATE,
+ update_time DATE DEFAULT SYSDATE,
+ create_by VARCHAR2(50 CHAR),
+ update_by VARCHAR2(50 CHAR),
+ deleted NUMBER(1) DEFAULT 0,
+ version NUMBER(10) DEFAULT 1,
+ last_time DATE DEFAULT SYSDATE
);
-- 鍒涘缓搴忓垪
CREATE SEQUENCE seq_sys_department START WITH 1 INCREMENT BY 1;
CREATE SEQUENCE seq_sys_user START WITH 1 INCREMENT BY 1;
CREATE SEQUENCE seq_data_excel START WITH 1 INCREMENT BY 1;
+CREATE SEQUENCE seq_data_task START WITH 1 INCREMENT BY 1;
-- 鍒涘缓瑙﹀彂鍣紙鑷姩濉厖ID锛�
CREATE OR REPLACE TRIGGER trg_sys_department
@@ -85,6 +110,14 @@
END;
/
+CREATE OR REPLACE TRIGGER trg_data_task
+BEFORE INSERT ON data_task
+FOR EACH ROW
+BEGIN
+ SELECT seq_data_task.NEXTVAL INTO :NEW.id FROM DUAL;
+END;
+/
+
-- 鎻掑叆鍒濆鍖栨暟鎹�
INSERT INTO sys_department (dept_code, dept_name, parent_code, sort_order, description, status) VALUES
('001', '鎬诲叕鍙�', '0', 1, '鎬诲叕鍙�', 1);
diff --git a/src/main/resources/mapper/DataExcelMapper.xml b/src/main/resources/mapper/DataExcelMapper.xml
index ebb23ed..5d3e8f6 100644
--- a/src/main/resources/mapper/DataExcelMapper.xml
+++ b/src/main/resources/mapper/DataExcelMapper.xml
@@ -23,6 +23,8 @@
<result column="status" property="status"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
+ <result column="create_by" property="createBy"/>
+ <result column="update_by" property="updateBy"/>
<result column="deleted" property="deleted"/>
<result column="version" property="version"/>
</resultMap>
@@ -80,6 +82,8 @@
<if test="status != null">status,</if>
create_time,
update_time,
+ create_by,
+ update_by,
deleted,
version
) VALUES (
@@ -103,32 +107,10 @@
<if test="status != null">#{status},</if>
SYSDATE,
SYSDATE,
+ #{createBy},
+ #{updateBy},
0,
1
)
</insert>
-
- <update id="updateById" parameterType="com.example.entity.DataExcel">
- UPDATE data_excel
- SET
- <if test="seqNo != null">seq_no = #{seqNo},</if>
- <if test="sortNo != null">sort_no = #{sortNo},</if>
- <if test="secondaryUnit != null">secondary_unit = #{secondaryUnit},</if>
- <if test="unitCode != null">unit_code = #{unitCode},</if>
- <if test="unitName != null">unit_name = #{unitName},</if>
- <if test="transactionNo != null">transaction_no = #{transactionNo},</if>
- <if test="summary != null">summary = #{summary},</if>
- <if test="amount != null">amount = #{amount},</if>
- <if test="accountingPeriod != null">accounting_period = #{accountingPeriod},</if>
- <if test="voucherNo != null">voucher_no = #{voucherNo},</if>
- <if test="bpContractNo != null">bp_contract_no = #{bpContractNo},</if>
- <if test="contractCenterNo != null">contract_center_no = #{contractCenterNo},</if>
- <if test="bpInvoiceNo != null">bp_invoice_no = #{bpInvoiceNo},</if>
- <if test="gkInvoiceNo != null">gk_invoice_no = #{gkInvoiceNo},</if>
- <if test="businessRelation != null">business_relation = #{businessRelation},</if>
- <if test="remark != null">remark = #{remark},</if>
- <if test="status != null">status = #{status},</if>
- update_time = SYSDATE
- WHERE id = #{id} AND deleted = 0
- </update>
</mapper>
diff --git a/src/main/resources/mapper/DepartmentMapper.xml b/src/main/resources/mapper/DepartmentMapper.xml
index 22fd895..afe287f 100644
--- a/src/main/resources/mapper/DepartmentMapper.xml
+++ b/src/main/resources/mapper/DepartmentMapper.xml
@@ -12,6 +12,8 @@
<result column="status" property="status"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
+ <result column="create_by" property="createBy"/>
+ <result column="update_by" property="updateBy"/>
<result column="deleted" property="deleted"/>
<result column="version" property="version"/>
</resultMap>
@@ -30,6 +32,8 @@
status,
create_time,
update_time,
+ create_by,
+ update_by,
deleted,
version
) VALUES (
@@ -42,6 +46,8 @@
#{status},
SYSDATE,
SYSDATE,
+ #{createBy},
+ #{updateBy},
0,
1
)
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index fc1551a..5422631 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -13,6 +13,8 @@
<result column="status" property="status"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
+ <result column="create_by" property="createBy"/>
+ <result column="update_by" property="updateBy"/>
<result column="deleted" property="deleted"/>
<result column="version" property="version"/>
<result column="dept_name" property="deptName"/>
@@ -56,6 +58,8 @@
status,
create_time,
update_time,
+ create_by,
+ update_by,
deleted,
version
) VALUES (
@@ -69,6 +73,8 @@
#{status},
SYSDATE,
SYSDATE,
+ #{createBy},
+ #{updateBy},
0,
1
)
--
Gitblit v1.9.1