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