From 2d7cadfa2b4202a22562ebd429d4d22d8c9e75c1 Mon Sep 17 00:00:00 2001 From: KiriAky 107 Date: Tue, 7 Jul 2026 09:07:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=9E=E4=BD=93=E7=B1=BB?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5=E7=AD=96=E7=95=A5=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将Customer、Medicine、MedicineCategory、Menu、Role、Stock、 StockInDetail、StockInRecord、StockOutDetail、StockOutRecord、 Supplier、User、Warehouse等实体类的时间字段策略从自动填充改为 FieldStrategy.NEVER,禁止自动插入和更新时间戳 - 在AuthServiceImpl中手动设置用户创建和更新时间 fix(frontend): 修复登录页面默认凭据和路由跳转逻辑 - 移除登录页面的默认用户名密码预填值 - 修复退出登录时的路由跳转问题,在MainLayout中添加router.push('/login') - 调整用户状态管理中的路由跳转逻辑,避免重复跳转 feat(frontend): 添加出入库单据新增页面路由 - 新增stock-in/add路由指向StockInForm组件 - 新增stock-out/add路由指向StockOutForm组件 - 为新建入库单和出库单功能提供页面入口 --- .../java/com/kronecker/backend/entity/Customer.java | 5 +++-- .../java/com/kronecker/backend/entity/Medicine.java | 5 +++-- .../kronecker/backend/entity/MedicineCategory.java | 5 +++-- .../main/java/com/kronecker/backend/entity/Menu.java | 5 +++-- .../main/java/com/kronecker/backend/entity/Role.java | 5 +++-- .../java/com/kronecker/backend/entity/Stock.java | 5 +++-- .../com/kronecker/backend/entity/StockInDetail.java | 5 +++-- .../com/kronecker/backend/entity/StockInRecord.java | 5 +++-- .../com/kronecker/backend/entity/StockOutDetail.java | 5 +++-- .../com/kronecker/backend/entity/StockOutRecord.java | 5 +++-- .../java/com/kronecker/backend/entity/Supplier.java | 5 +++-- .../main/java/com/kronecker/backend/entity/User.java | 5 +++-- .../java/com/kronecker/backend/entity/Warehouse.java | 5 +++-- .../backend/service/impl/AuthServiceImpl.java | 2 ++ frontend/src/layout/MainLayout.vue | 1 + frontend/src/router/index.js | 12 ++++++++++++ frontend/src/stores/user.js | 1 - frontend/src/views/login/LoginView.vue | 4 ++-- 18 files changed, 56 insertions(+), 29 deletions(-) diff --git a/backend/src/main/java/com/kronecker/backend/entity/Customer.java b/backend/src/main/java/com/kronecker/backend/entity/Customer.java index 78a3994..33cf602 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/Customer.java +++ b/backend/src/main/java/com/kronecker/backend/entity/Customer.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.time.LocalDateTime; @@ -16,9 +17,9 @@ public class Customer { private String address; private String type; private String remark; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/Medicine.java b/backend/src/main/java/com/kronecker/backend/entity/Medicine.java index eaf2b25..7d5d3d8 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/Medicine.java +++ b/backend/src/main/java/com/kronecker/backend/entity/Medicine.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -25,9 +26,9 @@ public class Medicine { private Integer shelfLife; private Integer warningStock; private String description; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/MedicineCategory.java b/backend/src/main/java/com/kronecker/backend/entity/MedicineCategory.java index 56bf400..80f5a8e 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/MedicineCategory.java +++ b/backend/src/main/java/com/kronecker/backend/entity/MedicineCategory.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.time.LocalDateTime; @@ -14,9 +15,9 @@ public class MedicineCategory { private String code; private Integer sortOrder; private String description; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/Menu.java b/backend/src/main/java/com/kronecker/backend/entity/Menu.java index a8f4a67..8a8f182 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/Menu.java +++ b/backend/src/main/java/com/kronecker/backend/entity/Menu.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.time.LocalDateTime; import java.util.List; @@ -19,9 +20,9 @@ public class Menu { private String permissionCode; private Integer sortOrder; private Integer visible; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/Role.java b/backend/src/main/java/com/kronecker/backend/entity/Role.java index 72d1eb7..683b19c 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/Role.java +++ b/backend/src/main/java/com/kronecker/backend/entity/Role.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.time.LocalDateTime; @@ -13,9 +14,9 @@ public class Role { private String code; private String description; private Integer status; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/Stock.java b/backend/src/main/java/com/kronecker/backend/entity/Stock.java index 80f8435..1525548 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/Stock.java +++ b/backend/src/main/java/com/kronecker/backend/entity/Stock.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; @@ -18,9 +19,9 @@ public class Stock { private BigDecimal costPrice; private LocalDate productionDate; private LocalDate expiryDate; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/StockInDetail.java b/backend/src/main/java/com/kronecker/backend/entity/StockInDetail.java index 9b41fde..583082a 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/StockInDetail.java +++ b/backend/src/main/java/com/kronecker/backend/entity/StockInDetail.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; @@ -19,9 +20,9 @@ public class StockInDetail { private BigDecimal totalPrice; private LocalDate productionDate; private LocalDate expiryDate; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/StockInRecord.java b/backend/src/main/java/com/kronecker/backend/entity/StockInRecord.java index 09e2e5a..56e8adf 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/StockInRecord.java +++ b/backend/src/main/java/com/kronecker/backend/entity/StockInRecord.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; @@ -20,9 +21,9 @@ public class StockInRecord { private LocalDate inDate; private Integer status; private String remark; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/StockOutDetail.java b/backend/src/main/java/com/kronecker/backend/entity/StockOutDetail.java index 2900f4c..9e1f0bc 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/StockOutDetail.java +++ b/backend/src/main/java/com/kronecker/backend/entity/StockOutDetail.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -16,9 +17,9 @@ public class StockOutDetail { private Integer quantity; private BigDecimal unitPrice; private BigDecimal totalPrice; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/StockOutRecord.java b/backend/src/main/java/com/kronecker/backend/entity/StockOutRecord.java index 37e06e3..36d7f20 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/StockOutRecord.java +++ b/backend/src/main/java/com/kronecker/backend/entity/StockOutRecord.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; @@ -21,9 +22,9 @@ public class StockOutRecord { private Integer outType; private Integer status; private String remark; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/Supplier.java b/backend/src/main/java/com/kronecker/backend/entity/Supplier.java index b5d465b..5a473e8 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/Supplier.java +++ b/backend/src/main/java/com/kronecker/backend/entity/Supplier.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.time.LocalDateTime; @@ -20,9 +21,9 @@ public class Supplier { private String licenseNumber; private Integer status; private String remark; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/User.java b/backend/src/main/java/com/kronecker/backend/entity/User.java index 1cfe56c..3ea6699 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/User.java +++ b/backend/src/main/java/com/kronecker/backend/entity/User.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.time.LocalDateTime; @@ -17,9 +18,9 @@ public class User { private String avatar; private Integer status; private LocalDateTime lastLoginTime; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/entity/Warehouse.java b/backend/src/main/java/com/kronecker/backend/entity/Warehouse.java index 48f9725..c798726 100644 --- a/backend/src/main/java/com/kronecker/backend/entity/Warehouse.java +++ b/backend/src/main/java/com/kronecker/backend/entity/Warehouse.java @@ -1,6 +1,7 @@ package com.kronecker.backend.entity; import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import lombok.Data; import java.time.LocalDateTime; @@ -15,9 +16,9 @@ public class Warehouse { private String manager; private Integer status; private String remark; - @TableField(fill = FieldFill.INSERT) + @TableField(insertStrategy = FieldStrategy.NEVER) private LocalDateTime createTime; - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) private LocalDateTime updateTime; @TableLogic private Integer isDeleted; diff --git a/backend/src/main/java/com/kronecker/backend/service/impl/AuthServiceImpl.java b/backend/src/main/java/com/kronecker/backend/service/impl/AuthServiceImpl.java index 72d7ca0..634cce3 100644 --- a/backend/src/main/java/com/kronecker/backend/service/impl/AuthServiceImpl.java +++ b/backend/src/main/java/com/kronecker/backend/service/impl/AuthServiceImpl.java @@ -77,6 +77,8 @@ public class AuthServiceImpl implements AuthService { user.setPhone(dto.getPhone()); user.setEmail(dto.getEmail()); user.setStatus(1); + user.setCreateTime(LocalDateTime.now()); + user.setUpdateTime(LocalDateTime.now()); userMapper.insert(user); // 分配默认角色(普通员工,role code = staff, id = 3) diff --git a/frontend/src/layout/MainLayout.vue b/frontend/src/layout/MainLayout.vue index 2f2b622..e3df38d 100644 --- a/frontend/src/layout/MainLayout.vue +++ b/frontend/src/layout/MainLayout.vue @@ -16,6 +16,7 @@ const isCollapse = computed(() => appStore.sidebarCollapsed) function handleCommand(command) { if (command === 'logout') { userStore.logout() + router.push('/login') } } diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js index 9d848f8..0fd66dd 100644 --- a/frontend/src/router/index.js +++ b/frontend/src/router/index.js @@ -28,6 +28,18 @@ const constantRoutes = [ component: () => import('@/views/dashboard/DashboardView.vue'), meta: { title: '仪表盘', icon: 'Odometer' }, }, + { + path: 'stock-in/add', + name: 'StockInAdd', + component: () => import('@/views/stockIn/StockInForm.vue'), + meta: { title: '新建入库单' }, + }, + { + path: 'stock-out/add', + name: 'StockOutAdd', + component: () => import('@/views/stockOut/StockOutForm.vue'), + meta: { title: '新建出库单' }, + }, ], }, { diff --git a/frontend/src/stores/user.js b/frontend/src/stores/user.js index eaecb97..937b36d 100644 --- a/frontend/src/stores/user.js +++ b/frontend/src/stores/user.js @@ -86,7 +86,6 @@ export const useUserStore = defineStore('user', () => { permissions.value = [] localStorage.removeItem('token') localStorage.removeItem('refreshToken') - router.push('/login') } function hasPermission(perm) { diff --git a/frontend/src/views/login/LoginView.vue b/frontend/src/views/login/LoginView.vue index 2821462..1b4dcdf 100644 --- a/frontend/src/views/login/LoginView.vue +++ b/frontend/src/views/login/LoginView.vue @@ -10,8 +10,8 @@ const userStore = useUserStore() const loginFormRef = ref(null) const loading = ref(false) const loginForm = reactive({ - username: 'admin', - password: 'admin123', + username: '', + password: '', remember: false, })