Prechádzať zdrojové kódy

feat(eoeg): 添加用户名称填充功能并优化表单选择器

在 EOEG 锁开锁关申请的新增与编辑接口中,增加自动填充用户名称的功能,提升数据可读性。
同时修正前端锁编号选择器的显示问题,
去除多选属性以适配实际业务需求。
jiangbiao 13 hodín pred
rodič
commit
832740cc8a

+ 57 - 20
master/src/main/java/com/ruoyi/project/eoeg/controller/TEoegLockChangeController.java

@@ -1,24 +1,20 @@
 package com.ruoyi.project.eoeg.controller;
 
-import java.util.List;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-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.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
-import com.ruoyi.project.eoeg.domain.TEoegLockChange;
-import com.ruoyi.project.eoeg.service.ITEoegLockChangeService;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.project.eoeg.domain.TEoegLockChange;
+import com.ruoyi.project.eoeg.service.ITEoegLockChangeService;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * EOEG 锁开锁关申请Controller
@@ -32,6 +28,8 @@ public class TEoegLockChangeController extends BaseController
 {
     @Autowired
     private ITEoegLockChangeService tEoegLockChangeService;
+    @Autowired
+    private ISysUserService sysUserService;
 
     /**
      * 查询EOEG 锁开锁关申请列表
@@ -74,9 +72,13 @@ public class TEoegLockChangeController extends BaseController
     @PreAuthorize("@ss.hasPermi('eoeg:eoegChange:add')")
     @Log(title = "EOEG 锁开锁关申请", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody TEoegLockChange tEoegLockChange)
-    {
-        return toAjax(tEoegLockChangeService.insertTEoegLockChange(tEoegLockChange));
+    public AjaxResult add(@RequestBody TEoegLockChange tEoegLockChange) {
+        try {
+            fillUserNames(tEoegLockChange);
+            return toAjax(tEoegLockChangeService.insertTEoegLockChange(tEoegLockChange));
+        } catch (Exception e) {
+            return AjaxResult.error("添加失败:" + e.getMessage());
+        }
     }
 
     /**
@@ -85,11 +87,46 @@ public class TEoegLockChangeController extends BaseController
     @PreAuthorize("@ss.hasPermi('eoeg:eoegChange:edit')")
     @Log(title = "EOEG 锁开锁关申请", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody TEoegLockChange tEoegLockChange)
-    {
-        return toAjax(tEoegLockChangeService.updateTEoegLockChange(tEoegLockChange));
+    public AjaxResult edit(@RequestBody TEoegLockChange tEoegLockChange) {
+        try {
+            fillUserNames(tEoegLockChange);
+            return toAjax(tEoegLockChangeService.updateTEoegLockChange(tEoegLockChange));
+        } catch (Exception e) {
+            return AjaxResult.error("更新失败:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 填充用户名称字段
+     */
+    private void fillUserNames(TEoegLockChange tEoegLockChange) {
+        tEoegLockChange.setSafaerName(getUserNameById(tEoegLockChange.getSafaer()));
+        tEoegLockChange.setExecutorName(getUserNameById(tEoegLockChange.getExecutor()));
+        tEoegLockChange.setChangeConfirmerName(getUserNameById(tEoegLockChange.getChangeConfirmer()));
+        tEoegLockChange.setChangeExecutorName(getUserNameById(tEoegLockChange.getChangeExecutor()));
+    }
+
+    /**
+     * 根据ID获取用户名
+     */
+    private String getUserNameById(String userIdStr) {
+        if (userIdStr == null || userIdStr.trim().isEmpty()) {
+            throw new IllegalArgumentException("用户ID不能为空");
+        }
+        Long userId;
+        try {
+            userId = Long.valueOf(userIdStr);
+        } catch (NumberFormatException e) {
+            throw new IllegalArgumentException("用户ID格式不正确: " + userIdStr);
+        }
+        SysUser user = sysUserService.selectUserById(userId);
+        if (user == null) {
+            throw new IllegalArgumentException("找不到ID为 " + userId + " 的用户");
+        }
+        return user.getNickName();
     }
 
+
     /**
      * 删除EOEG 锁开锁关申请
      */

+ 11 - 1
master/src/main/java/com/ruoyi/project/eoeg/domain/TEoegLockChange.java

@@ -1,12 +1,13 @@
 package com.ruoyi.project.eoeg.domain;
 
-import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import com.ruoyi.framework.web.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
+import java.util.Date;
+
 /**
  * EOEG 锁开锁关申请对象 t_eoeg_lock_change
  *
@@ -217,12 +218,21 @@ public class TEoegLockChange extends BaseEntity
     /** 班长姓名 */
     @Excel(name = "班长姓名")
     private String monitorName;
+    private String deptName;
 
     /** 班长确认时间 */
     @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
     @Excel(name = "班长确认时间", width = 30, dateFormat = "yyyy-MM-dd")
     private Date monitorTime;
 
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
     public void setId(Long id)
     {
         this.id = id;

+ 1 - 1
ui/src/views/eoeg/eoegChange/index.vue

@@ -173,7 +173,7 @@
     <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="180px">
         <el-form-item label="破锁编号" prop="lockNo">
-          <el-select v-model="form.lockNo" placeholder="请选择锁编号" multiple clearable size="small" filterable
+          <el-select v-model="form.lockNo" placeholder="请选择锁编号" clearable size="small" filterable
                      style="width: 100%">
             <el-option v-for="item in lockList" :key="item.uniqueIdentifier" :label="item.uniqueIdentifier"
                        :value="item.uniqueIdentifier">