From c8f004b42c0edc9cc6c6faec58770f32992b2b7d Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 07 七月 2025 21:37:02 +0800
Subject: [PATCH] art:技术状态鉴定规范-基础代码

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardDetailServiceImpl.java |   19 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationStandardService.java               |   46 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationStandardMapper.java                  |   24 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationStandardController.java          |  160 +++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationStandardDetailController.java    |  129 +++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandard.java                        |   78 +++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationStandardRequest.java                |   41 ++
 db/430设备管理数据库设计.pdma.json                                                                                                   |   22 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardServiceImpl.java       |  186 +++++++++++++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusEvaluationStandardEnum.java              |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationStandardDetailMapper.xml         |    5 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationStandardDetailMapper.java            |   17 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationStandardDetailService.java         |   14 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandardDetail.java                  |   73 +++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationStandardMapper.xml               |   11 
 15 files changed, 831 insertions(+), 2 deletions(-)

diff --git "a/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" "b/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
index 010a965..b34a96b 100644
--- "a/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
+++ "b/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
@@ -4,7 +4,7 @@
   "avatar": "",
   "version": "4.9.2",
   "createdTime": "2025-3-10 16:38:19",
-  "updatedTime": "2025-7-7 15:35:51",
+  "updatedTime": "2025-7-7 21:00:24",
   "dbConns": [],
   "profile": {
     "default": {
@@ -632,7 +632,7 @@
       "#DDE5FF"
     ],
     "DDLToggleCase": "L",
-    "menuWidth": "472px"
+    "menuWidth": "371px"
   },
   "entities": [
     {
@@ -23721,6 +23721,24 @@
           "id": "2C88A464-AC97-4512-94EE-CCD08ED27A64"
         },
         {
+          "defKey": "standard_version",
+          "defName": "鐗堟湰",
+          "comment": "V1,V2+",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "1ACB9237-2E42-44F0-AC09-BBB51D55A83D"
+        },
+        {
           "defKey": "remark",
           "defName": "澶囨敞",
           "comment": "",
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusEvaluationStandardEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusEvaluationStandardEnum.java
new file mode 100644
index 0000000..be0c917
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusEvaluationStandardEnum.java
@@ -0,0 +1,8 @@
+package org.jeecg.modules.eam.constant;
+
+public enum TechnicalStatusEvaluationStandardEnum {
+    WAIT_SUBMIT, //寰呮彁浜�
+    ENABLE, //鍚敤
+    DISABLE, //绂佺敤
+    ;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationStandardController.java
new file mode 100644
index 0000000..3697fa0
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationStandardController.java
@@ -0,0 +1,160 @@
+package org.jeecg.modules.eam.controller;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.modules.eam.constant.BusinessCodeConst;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandard;
+import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationStandardRequest;
+import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationStandardService;
+import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+/**
+ * @Description: 鎶�鏈姸鎬侀壌瀹氳鑼�
+ * @Author: jeecg-boot
+ * @Date: 2025-07-07
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags = "鎶�鏈姸鎬侀壌瀹氳鑼�")
+@RestController
+@RequestMapping("/eam/eamTechnicalStatusEvaluationStandard")
+public class EamTechnicalStatusEvaluationStandardController extends JeecgController<EamTechnicalStatusEvaluationStandard, IEamTechnicalStatusEvaluationStandardService> {
+    @Autowired
+    private IEamTechnicalStatusEvaluationStandardService eamTechnicalStatusEvaluationStandardService;
+    @Autowired
+    private ISysBusinessCodeRuleService businessCodeRuleService;
+
+    /**
+     * 鍒嗛〉鍒楄〃鏌ヨ
+     *
+     * @param eamTechnicalStatusEvaluationStandard
+     * @param pageNo
+     * @param pageSize
+     * @return
+     */
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-鍒嗛〉鍒楄〃鏌ヨ", notes = "鎶�鏈姸鎬侀壌瀹氳鑼�-鍒嗛〉鍒楄〃鏌ヨ")
+    @GetMapping(value = "/list")
+    public Result<?> queryPageList(EamTechnicalStatusEvaluationStandard eamTechnicalStatusEvaluationStandard,
+                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+        Page<EamTechnicalStatusEvaluationStandard> page = new Page<>(pageNo, pageSize);
+        IPage<EamTechnicalStatusEvaluationStandard> pageList = eamTechnicalStatusEvaluationStandardService.queryPageList(page, eamTechnicalStatusEvaluationStandard);
+        return Result.OK(pageList);
+    }
+
+    /**
+     * 娣诲姞
+     *
+     * @param request
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-娣诲姞")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-娣诲姞", notes = "鎶�鏈姸鎬侀壌瀹氳鑼�-娣诲姞")
+    @PostMapping(value = "/add")
+    public Result<?> add(@RequestBody EamTechnicalStatusEvaluationStandardRequest request) {
+        if (request == null) {
+            return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒");
+        }
+        if (CollectionUtil.isEmpty(request.getTableDetailList())) {
+            return Result.error("妫�鏌ラ」涓嶈兘涓虹┖锛�");
+        }
+        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE);
+        request.setStandardCode(codeSeq);
+        boolean b = eamTechnicalStatusEvaluationStandardService.addEamTechnicalStatusEvaluationStandard(request);
+        if (!b) {
+            return Result.error("娣诲姞澶辫触锛�");
+        }
+        return Result.OK("娣诲姞鎴愬姛锛�");
+    }
+
+    /**
+     * 缂栬緫
+     *
+     * @param request
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-缂栬緫")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-缂栬緫", notes = "鎶�鏈姸鎬侀壌瀹氳鑼�-缂栬緫")
+    @PutMapping(value = "/edit")
+    public Result<?> edit(@RequestBody EamTechnicalStatusEvaluationStandardRequest request) {
+        if (request == null) {
+            return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒");
+        }
+        if (CollectionUtil.isEmpty(request.getTableDetailList())) {
+            return Result.error("妫�鏌ラ」涓嶈兘涓虹┖锛�");
+        }
+        boolean b = eamTechnicalStatusEvaluationStandardService.editEamTechnicalStatusEvaluationStandard(request);
+        if (!b) {
+            return Result.error("缂栬緫澶辫触锛�");
+        }
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-閫氳繃id鍒犻櫎")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-閫氳繃id鍒犻櫎", notes = "鎶�鏈姸鎬侀壌瀹氳鑼�-閫氳繃id鍒犻櫎")
+    @DeleteMapping(value = "/delete")
+    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
+        eamTechnicalStatusEvaluationStandardService.removeById(id);
+        return Result.OK("鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-鎵归噺鍒犻櫎")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-鎵归噺鍒犻櫎", notes = "鎶�鏈姸鎬侀壌瀹氳鑼�-鎵归噺鍒犻櫎")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        this.eamTechnicalStatusEvaluationStandardService.removeByIds(Arrays.asList(ids.split(",")));
+        return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�");
+    }
+
+    /**
+     * 閫氳繃id鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-閫氳繃id鏌ヨ")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼�-閫氳繃id鏌ヨ", notes = "鎶�鏈姸鎬侀壌瀹氳鑼�-閫氳繃id鏌ヨ")
+    @GetMapping(value = "/queryById")
+    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
+        EamTechnicalStatusEvaluationStandard eamTechnicalStatusEvaluationStandard = eamTechnicalStatusEvaluationStandardService.getById(id);
+        return Result.OK(eamTechnicalStatusEvaluationStandard);
+    }
+
+    /**
+     * 閫氳繃excel瀵煎叆鏁版嵁
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, EamTechnicalStatusEvaluationStandard.class);
+    }
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationStandardDetailController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationStandardDetailController.java
new file mode 100644
index 0000000..9aaf3cd
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationStandardDetailController.java
@@ -0,0 +1,129 @@
+package org.jeecg.modules.eam.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandardDetail;
+import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationStandardDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+/**
+ * @Description: 鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�
+ * @Author: jeecg-boot
+ * @Date: 2025-07-07
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�")
+@RestController
+@RequestMapping("/eam/eamTechnicalStatusEvaluationStandardDetail")
+public class EamTechnicalStatusEvaluationStandardDetailController extends JeecgController<EamTechnicalStatusEvaluationStandardDetail, IEamTechnicalStatusEvaluationStandardDetailService> {
+    @Autowired
+    private IEamTechnicalStatusEvaluationStandardDetailService eamTechnicalStatusEvaluationStandardDetailService;
+
+    /**
+     * 鍒嗛〉鍒楄〃鏌ヨ
+     *
+     * @param eamTechnicalStatusEvaluationStandardDetail
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-鍒嗛〉鍒楄〃鏌ヨ")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-鍒嗛〉鍒楄〃鏌ヨ", notes = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-鍒嗛〉鍒楄〃鏌ヨ")
+    @GetMapping(value = "/list")
+    public Result<?> queryPageList(EamTechnicalStatusEvaluationStandardDetail eamTechnicalStatusEvaluationStandardDetail,
+                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                   HttpServletRequest req) {
+        QueryWrapper<EamTechnicalStatusEvaluationStandardDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusEvaluationStandardDetail, req.getParameterMap());
+        Page<EamTechnicalStatusEvaluationStandardDetail> page = new Page<EamTechnicalStatusEvaluationStandardDetail>(pageNo, pageSize);
+        IPage<EamTechnicalStatusEvaluationStandardDetail> pageList = eamTechnicalStatusEvaluationStandardDetailService.page(page, queryWrapper);
+        return Result.OK(pageList);
+    }
+
+    /**
+     * 娣诲姞
+     *
+     * @param eamTechnicalStatusEvaluationStandardDetail
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-娣诲姞")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-娣诲姞", notes = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-娣诲姞")
+    @PostMapping(value = "/add")
+    public Result<?> add(@RequestBody EamTechnicalStatusEvaluationStandardDetail eamTechnicalStatusEvaluationStandardDetail) {
+        eamTechnicalStatusEvaluationStandardDetailService.save(eamTechnicalStatusEvaluationStandardDetail);
+        return Result.OK("娣诲姞鎴愬姛锛�");
+    }
+
+    /**
+     * 缂栬緫
+     *
+     * @param eamTechnicalStatusEvaluationStandardDetail
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-缂栬緫")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-缂栬緫", notes = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-缂栬緫")
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<?> edit(@RequestBody EamTechnicalStatusEvaluationStandardDetail eamTechnicalStatusEvaluationStandardDetail) {
+        eamTechnicalStatusEvaluationStandardDetailService.updateById(eamTechnicalStatusEvaluationStandardDetail);
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-閫氳繃id鍒犻櫎")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-閫氳繃id鍒犻櫎", notes = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-閫氳繃id鍒犻櫎")
+    @DeleteMapping(value = "/delete")
+    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
+        eamTechnicalStatusEvaluationStandardDetailService.removeById(id);
+        return Result.OK("鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-鎵归噺鍒犻櫎")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-鎵归噺鍒犻櫎", notes = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-鎵归噺鍒犻櫎")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        this.eamTechnicalStatusEvaluationStandardDetailService.removeByIds(Arrays.asList(ids.split(",")));
+        return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�");
+    }
+
+    /**
+     * 閫氳繃id鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-閫氳繃id鏌ヨ")
+    @ApiOperation(value = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-閫氳繃id鏌ヨ", notes = "鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�-閫氳繃id鏌ヨ")
+    @GetMapping(value = "/queryById")
+    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
+        EamTechnicalStatusEvaluationStandardDetail eamTechnicalStatusEvaluationStandardDetail = eamTechnicalStatusEvaluationStandardDetailService.getById(id);
+        return Result.OK(eamTechnicalStatusEvaluationStandardDetail);
+    }
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandard.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandard.java
new file mode 100644
index 0000000..01e1c6b
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandard.java
@@ -0,0 +1,78 @@
+package org.jeecg.modules.eam.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 lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.util.Date;
+
+/**
+ * @Description: 鎶�鏈姸鎬侀壌瀹氳鑼�
+ * @Author: jeecg-boot
+ * @Date:   2025-07-07
+ * @Version: V1.0
+ */
+@Data
+@TableName("eam_technical_status_evaluation_standard")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="eam_technical_status_evaluation_standard瀵硅薄", description="鎶�鏈姸鎬侀壌瀹氳鑼�")
+public class EamTechnicalStatusEvaluationStandard {
+    
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+	private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+	private String createBy;
+	/**鍒涘缓鏃堕棿*/
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+	private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+	private String updateBy;
+	/**鏇存柊鏃堕棿*/
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+	private Date updateTime;
+	/**鍒犻櫎鏍囪*/
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+	private Integer delFlag;
+	/**瑙勮寖鍚嶇О*/
+    @ApiModelProperty(value = "瑙勮寖鍚嶇О")
+	private String standardName;
+	/**瑙勮寖缂栫爜*/
+    @ApiModelProperty(value = "瑙勮寖缂栫爜")
+	private String standardCode;
+	/**閴村畾鍛ㄦ湡*/
+    @ApiModelProperty(value = "閴村畾鍛ㄦ湡")
+	private Integer evaluationPeriod;
+	/**璁惧ID*/
+    @ApiModelProperty(value = "璁惧ID")
+	private String equipmentId;
+	/**瑙勮寖鐘舵��;寰呮彁浜ゃ�佸惎鐢ㄣ�佷綔搴�*/
+    @ApiModelProperty(value = "瑙勮寖鐘舵��;寰呮彁浜ゃ�佸惎鐢ㄣ�佷綔搴�")
+	private String standardStatus;
+	/**鏄惁鏈夊畨鍏ㄨ缃鏌�;鏄惁*/
+    @ApiModelProperty(value = "鏄惁鏈夊畨鍏ㄨ缃鏌�;鏄惁")
+	private String hasSafetyEquipmentCheck;
+	/**鏄惁鏈夎澶囩簿搴︽鏌�;鏄惁*/
+    @ApiModelProperty(value = "鏄惁鏈夎澶囩簿搴︽鏌�;鏄惁")
+	private String hasPrecisionCheck;
+	/**鏄惁鏈夊叾浠栨鏌�;鏄惁*/
+    @ApiModelProperty(value = "鏄惁鏈夊叾浠栨鏌�;鏄惁")
+	private String hasOtherCheck;
+	/**鐗堟湰 V1,V2+*/
+	@ApiModelProperty(value = "鐗堟湰 V1,V2")
+	private String standardVersion;
+	/**澶囨敞*/
+	@Excel(name = "澶囨敞", width = 15)
+    @ApiModelProperty(value = "澶囨敞")
+	private String remark;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandardDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandardDetail.java
new file mode 100644
index 0000000..d9dcbbf
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandardDetail.java
@@ -0,0 +1,73 @@
+package org.jeecg.modules.eam.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * @Description: 鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�
+ * @Author: jeecg-boot
+ * @Date:   2025-07-07
+ * @Version: V1.0
+ */
+@Data
+@TableName("eam_technical_status_evaluation_standard_detail")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="eam_technical_status_evaluation_standard_detail瀵硅薄", description="鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�")
+public class EamTechnicalStatusEvaluationStandardDetail {
+    
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+	private String id;
+	/**鍒涘缓浜�*/
+	@Excel(name = "鍒涘缓浜�", width = 15)
+    @ApiModelProperty(value = "鍒涘缓浜�")
+	private String createBy;
+	/**鍒涘缓鏃堕棿*/
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+	private Date createTime;
+	/**鏇存柊浜�*/
+	@Excel(name = "鏇存柊浜�", width = 15)
+    @ApiModelProperty(value = "鏇存柊浜�")
+	private String updateBy;
+	/**鏇存柊鏃堕棿*/
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+	private Date updateTime;
+	/**瑙勮寖ID*/
+	@Excel(name = "瑙勮寖ID", width = 15)
+    @ApiModelProperty(value = "瑙勮寖ID")
+	private String standardId;
+	/**妫�鏌ュ垎绫�;绮惧害妫�鏌ャ�佸畨鍏ㄨ缃鏌ャ�佸叾浠栨鏌�*/
+	@Excel(name = "妫�鏌ュ垎绫�;绮惧害妫�鏌ャ�佸畨鍏ㄨ缃鏌ャ�佸叾浠栨鏌�", width = 15)
+    @ApiModelProperty(value = "妫�鏌ュ垎绫�;绮惧害妫�鏌ャ�佸畨鍏ㄨ缃鏌ャ�佸叾浠栨鏌�")
+	private String checkCategory;
+	/**椤圭洰搴忓彿*/
+	@Excel(name = "椤圭洰搴忓彿", width = 15)
+    @ApiModelProperty(value = "椤圭洰搴忓彿")
+	private Integer itemCode;
+	/**妫�鏌ラ」鐩�*/
+	@Excel(name = "妫�鏌ラ」鐩�", width = 15)
+    @ApiModelProperty(value = "妫�鏌ラ」鐩�")
+	private String itemName;
+	/**鍏佸樊鍊�;绮惧害妫�鏌ュ睍绀�*/
+	@Excel(name = "鍏佸樊鍊�;绮惧害妫�鏌ュ睍绀�", width = 15)
+    @ApiModelProperty(value = "鍏佸樊鍊�;绮惧害妫�鏌ュ睍绀�")
+	private String toleranceValue;
+	/**妫�鏌ュ瓙椤圭洰;绮惧害妫�鏌ュ睍绀猴紝鍙互涓虹┖*/
+	@Excel(name = "妫�鏌ュ瓙椤圭洰;绮惧害妫�鏌ュ睍绀猴紝鍙互涓虹┖", width = 15)
+    @ApiModelProperty(value = "妫�鏌ュ瓙椤圭洰;绮惧害妫�鏌ュ睍绀猴紝鍙互涓虹┖")
+	private String subItemName;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationStandardDetailMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationStandardDetailMapper.java
new file mode 100644
index 0000000..a94812d
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationStandardDetailMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.eam.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandardDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�
+ * @Author: jeecg-boot
+ * @Date:   2025-07-07
+ * @Version: V1.0
+ */
+public interface EamTechnicalStatusEvaluationStandardDetailMapper extends BaseMapper<EamTechnicalStatusEvaluationStandardDetail> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationStandardMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationStandardMapper.java
new file mode 100644
index 0000000..4d7b91f
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusEvaluationStandardMapper.java
@@ -0,0 +1,24 @@
+package org.jeecg.modules.eam.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandard;
+
+/**
+ * @Description: 鎶�鏈姸鎬侀壌瀹氳鑼�
+ * @Author: jeecg-boot
+ * @Date:   2025-07-07
+ * @Version: V1.0
+ */
+public interface EamTechnicalStatusEvaluationStandardMapper extends BaseMapper<EamTechnicalStatusEvaluationStandard> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    IPage<EamTechnicalStatusEvaluationStandard> queryPageList(Page<EamTechnicalStatusEvaluationStandard> page, QueryWrapper<EamTechnicalStatusEvaluationStandard> queryWrapper);
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationStandardDetailMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationStandardDetailMapper.xml
new file mode 100644
index 0000000..4370e3c
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationStandardDetailMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationStandardDetailMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationStandardMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationStandardMapper.xml
new file mode 100644
index 0000000..b1aa00b
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusEvaluationStandardMapper.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationStandardMapper">
+    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandard">
+        select ems.*, e.equipment_code, e.equipment_name, e.equipment_model
+        from eam_technical_status_evaluation_standard ems
+        inner join eam_equipment e
+        on ems.equipment_id = e.id
+        ${ew.customSqlSegment}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationStandardRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationStandardRequest.java
new file mode 100644
index 0000000..5c9e196
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationStandardRequest.java
@@ -0,0 +1,41 @@
+package org.jeecg.modules.eam.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandardDetail;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="eam_technical_status_evaluation_standard瀵硅薄", description="鎶�鏈姸鎬侀壌瀹氳鑼�")
+public class EamTechnicalStatusEvaluationStandardRequest implements Serializable {
+    /**涓婚敭*/
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+    /**瑙勮寖缂栫爜*/
+    @ApiModelProperty(value = "瑙勮寖缂栫爜")
+    private String standardCode;
+    /**瑙勮寖鍚嶇О*/
+    @ApiModelProperty(value = "瑙勮寖鍚嶇О")
+    private String standardName;
+    /**閴村畾鍛ㄦ湡;鍗曚綅:骞�*/
+    @ApiModelProperty(value = "閴村畾鍛ㄦ湡;鍗曚綅:骞�")
+    private Integer evaluationPeriod;
+    /**璁惧ID*/
+    @ApiModelProperty(value = "璁惧ID")
+    private String equipmentId;
+    /**鍒楄〃 妫�鏌ラ」鏄庣粏*/
+    @ApiModelProperty(value = "鍒楄〃 妫�鏌ラ」鏄庣粏")
+    private List<EamTechnicalStatusEvaluationStandardDetail> tableDetailList;
+    /**鍒犻櫎 妫�鏌ラ」鏄庣粏*/
+    @ApiModelProperty(value = "鍒犻櫎 妫�鏌ラ」鏄庣粏")
+    private List<EamTechnicalStatusEvaluationStandardDetail> removeDetailList;
+
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationStandardDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationStandardDetailService.java
new file mode 100644
index 0000000..c3afc15
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationStandardDetailService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.eam.service;
+
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandardDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�
+ * @Author: jeecg-boot
+ * @Date:   2025-07-07
+ * @Version: V1.0
+ */
+public interface IEamTechnicalStatusEvaluationStandardDetailService extends IService<EamTechnicalStatusEvaluationStandardDetail> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationStandardService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationStandardService.java
new file mode 100644
index 0000000..a36717c
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationStandardService.java
@@ -0,0 +1,46 @@
+package org.jeecg.modules.eam.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandard;
+import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationStandardRequest;
+
+/**
+ * @Description: 鎶�鏈姸鎬侀壌瀹氳鑼�
+ * @Author: jeecg-boot
+ * @Date:   2025-07-07
+ * @Version: V1.0
+ */
+public interface IEamTechnicalStatusEvaluationStandardService extends IService<EamTechnicalStatusEvaluationStandard> {
+
+    /**
+     *
+     * @param page
+     * @param eamTechnicalStatusEvaluationStandard
+     * @return
+     */
+    IPage<EamTechnicalStatusEvaluationStandard> queryPageList(Page<EamTechnicalStatusEvaluationStandard> page, EamTechnicalStatusEvaluationStandard eamTechnicalStatusEvaluationStandard);
+
+    /**
+     * 鏂板
+     * @param request
+     * @return
+     */
+    boolean addEamTechnicalStatusEvaluationStandard(EamTechnicalStatusEvaluationStandardRequest request);
+
+    /**
+     * 閲嶅鏍¢獙
+     * @param equipmentId
+     * @param id
+     * @return
+     */
+    EamTechnicalStatusEvaluationStandard checkDuplicate(String equipmentId, String id);
+
+    /**
+     * 缂栬緫
+     * @param request
+     * @return
+     */
+    boolean editEamTechnicalStatusEvaluationStandard(EamTechnicalStatusEvaluationStandardRequest request);
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardDetailServiceImpl.java
new file mode 100644
index 0000000..7a8597b
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardDetailServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.eam.service.impl;
+
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandardDetail;
+import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationStandardDetailMapper;
+import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationStandardDetailService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 鎶�鏈姸鎬侀壌瀹氳鑼冩槑缁�
+ * @Author: jeecg-boot
+ * @Date:   2025-07-07
+ * @Version: V1.0
+ */
+@Service
+public class EamTechnicalStatusEvaluationStandardDetailServiceImpl extends ServiceImpl<EamTechnicalStatusEvaluationStandardDetailMapper, EamTechnicalStatusEvaluationStandardDetail> implements IEamTechnicalStatusEvaluationStandardDetailService {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardServiceImpl.java
new file mode 100644
index 0000000..8ba1b11
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardServiceImpl.java
@@ -0,0 +1,186 @@
+package org.jeecg.modules.eam.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.SimpleVersionGenerateUtil;
+import org.jeecg.modules.eam.base.entity.BaseFactory;
+import org.jeecg.modules.eam.base.entity.BaseFactoryUser;
+import org.jeecg.modules.eam.base.service.IBaseFactoryService;
+import org.jeecg.modules.eam.base.service.IBaseFactoryUserService;
+import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
+import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationStandardEnum;
+import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
+import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandard;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandardDetail;
+import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationStandardMapper;
+import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationStandardRequest;
+import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationStandardDetailService;
+import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationStandardService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description: 鎶�鏈姸鎬侀壌瀹氳鑼�
+ * @Author: jeecg-boot
+ * @Date: 2025-07-07
+ * @Version: V1.0
+ */
+@Service
+public class EamTechnicalStatusEvaluationStandardServiceImpl extends ServiceImpl<EamTechnicalStatusEvaluationStandardMapper, EamTechnicalStatusEvaluationStandard> implements IEamTechnicalStatusEvaluationStandardService {
+
+    @Autowired
+    private IBaseFactoryUserService baseFactoryUserService;
+    @Autowired
+    private IBaseFactoryService baseFactoryService;
+    @Autowired
+    private IEamTechnicalStatusEvaluationStandardDetailService standardDetailService;
+
+    @Override
+    public IPage<EamTechnicalStatusEvaluationStandard> queryPageList(Page<EamTechnicalStatusEvaluationStandard> page, EamTechnicalStatusEvaluationStandard query) {
+        QueryWrapper<EamTechnicalStatusEvaluationStandard> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("ems.del_flag", CommonConstant.DEL_FLAG_0);
+        //鐢ㄦ埛鏁版嵁鏉冮檺
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (sysUser == null) {
+            return page;
+        }
+        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
+            //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
+            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
+            queryWrapper.in("e.equipment_code", equipArr);
+        } else {
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶�
+            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.
+                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
+            if (!CollectionUtils.isEmpty(baseFactoryUserList)) {
+                List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList());
+                List<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
+                queryWrapper.in("e.factory_code", factoryCode);
+            } else {
+                return page;
+            }
+        }
+        if (query != null) {
+            //缂栫爜 妯$硦鏌ヨ
+            if (StringUtils.isNotBlank(query.getStandardCode())) {
+                queryWrapper.like("ems.standard_code", query.getStandardCode());
+            }
+            //鍚嶇О 妯$硦鏌ヨ
+            if (StringUtils.isNotBlank(query.getStandardName())) {
+                queryWrapper.like("ems.standard_name", query.getStandardName());
+            }
+            //璁惧
+            if (StringUtils.isNotBlank(query.getEquipmentId())) {
+                queryWrapper.eq("ems.equipment_id", query.getEquipmentId());
+            }
+
+            //淇濆吇鍒嗙被
+            if (StringUtils.isNotBlank(query.getStandardStatus())) {
+                queryWrapper.eq("ems.standard_status", query.getStandardStatus());
+            }
+        }
+        queryWrapper.orderByDesc("ems.create_time");
+        return this.getBaseMapper().queryPageList(page, queryWrapper);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean addEamTechnicalStatusEvaluationStandard(EamTechnicalStatusEvaluationStandardRequest request) {
+        EamTechnicalStatusEvaluationStandard entity = new EamTechnicalStatusEvaluationStandard();
+        BeanUtils.copyProperties(request, entity);
+        entity.setStandardStatus(TechnicalStatusEvaluationStandardEnum.WAIT_SUBMIT.name());
+        //鐗堟湰閫掑
+        entity.setStandardVersion(SimpleVersionGenerateUtil.getInitVersion());
+        //璁惧澶勭悊
+        entity.setEquipmentId(request.getEquipmentId());
+        //鍒犻櫎鏍囪
+        entity.setDelFlag(CommonConstant.DEL_FLAG_0);
+        //閲嶅鎬ф牎楠�
+        EamTechnicalStatusEvaluationStandard exist = checkDuplicate(entity.getEquipmentId(), null);
+        if(exist != null){
+            throw new JeecgBootException("瑙勮寖宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�");
+        }
+        this.getBaseMapper().insert(entity);
+        //澶勭悊鏄庣粏鏁版嵁
+        if(CollectionUtil.isNotEmpty(request.getTableDetailList())) {
+            request.getTableDetailList().forEach(tableDetail -> {
+                tableDetail.setStandardId(entity.getId());
+            });
+            standardDetailService.saveBatch(request.getTableDetailList());
+        }
+        return true;
+    }
+
+    @Override
+    public EamTechnicalStatusEvaluationStandard checkDuplicate(String equipmentId, String id) {
+        LambdaQueryWrapper<EamTechnicalStatusEvaluationStandard> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EamTechnicalStatusEvaluationStandard::getEquipmentId, equipmentId);
+        queryWrapper.eq(EamTechnicalStatusEvaluationStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
+        //寰呮彁浜ゃ�佸惎鐢ㄧ姸鎬�
+        queryWrapper.in(EamTechnicalStatusEvaluationStandard::getStandardStatus, Arrays.asList(TechnicalStatusEvaluationStandardEnum.ENABLE.name(), TechnicalStatusEvaluationStandardEnum.WAIT_SUBMIT.name()));
+        queryWrapper.orderByDesc(EamTechnicalStatusEvaluationStandard::getStandardVersion);
+        if(StringUtils.isNotBlank(id)){
+            queryWrapper.ne(EamTechnicalStatusEvaluationStandard::getId, id);
+        }
+        List<EamTechnicalStatusEvaluationStandard> list = this.getBaseMapper().selectList(queryWrapper);
+        if(CollectionUtil.isEmpty(list)) {
+            return null;
+        }
+        return list.get(0);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean editEamTechnicalStatusEvaluationStandard(EamTechnicalStatusEvaluationStandardRequest request) {
+        EamTechnicalStatusEvaluationStandard entity = this.getBaseMapper().selectById(request.getId());
+        if(entity == null){
+            throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�");
+        }
+        entity.setStandardName(request.getStandardName());
+        entity.setEvaluationPeriod(request.getEvaluationPeriod());
+        this.getBaseMapper().updateById(entity);
+        //澶勭悊璇︽儏
+        if(CollectionUtil.isNotEmpty(request.getTableDetailList())) {
+            List<EamTechnicalStatusEvaluationStandardDetail> addList = new ArrayList<>();
+            List<EamTechnicalStatusEvaluationStandardDetail> updateList = new ArrayList<>();
+            request.getTableDetailList().forEach(tableDetail -> {
+                tableDetail.setStandardId(entity.getId());
+                if(tableDetail.getId() == null){
+                    addList.add(tableDetail);
+                }else {
+                    updateList.add(tableDetail);
+                }
+            });
+            if(CollectionUtil.isNotEmpty(addList)){
+                standardDetailService.saveBatch(addList);
+            }
+            if(CollectionUtil.isNotEmpty(updateList)){
+                standardDetailService.updateBatchById(updateList);
+            }
+        }
+        if(CollectionUtil.isNotEmpty(request.getRemoveDetailList())) {
+            List<String> ids = request.getRemoveDetailList().stream().map(EamTechnicalStatusEvaluationStandardDetail::getId).collect(Collectors.toList());
+            standardDetailService.removeBatchByIds(ids);
+        }
+        return true;
+    }
+}

--
Gitblit v1.9.3