From 4f45f29e6b53f4c01b414409c5000ff4e212b3d9 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 05 六月 2026 13:36:54 +0800
Subject: [PATCH] 增加eip

---
 basic-server/src/main/java/com/ruoyi/basic/service/impl/EipCableServiceImpl.java |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 118 insertions(+), 0 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/EipCableServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/EipCableServiceImpl.java
new file mode 100644
index 0000000..f63a81e
--- /dev/null
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/EipCableServiceImpl.java
@@ -0,0 +1,118 @@
+package com.ruoyi.basic.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.constant.EipCableTypeConstants;
+import com.ruoyi.basic.dto.EipCableQueryDto;
+import com.ruoyi.basic.mapper.EipCableTestDataMapper;
+import com.ruoyi.basic.pojo.EipCableTestData;
+import com.ruoyi.basic.service.EipCableService;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * EIP 绾跨紗瀵规帴 Service 瀹炵幇
+ */
+@Service
+public class EipCableServiceImpl implements EipCableService {
+
+    @Resource
+    private EipCableTestDataMapper eipCableTestDataMapper;
+
+    @Override
+    public IPage<EipCableTestData> pageByCableType(long pageNum, long pageSize, String cableType, EipCableQueryDto query) {
+        validateCableType(cableType);
+        Page<EipCableTestData> page = new Page<>(pageNum, pageSize);
+        LambdaQueryWrapper<EipCableTestData> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(EipCableTestData::getCableType, cableType)
+                .like(query.getSampleCode() != null && !query.getSampleCode().trim().isEmpty(),
+                        EipCableTestData::getSampleCode, query.getSampleCode())
+                .like(query.getTestType() != null && !query.getTestType().trim().isEmpty(),
+                        EipCableTestData::getTestType, query.getTestType())
+                .eq(query.getTestDate() != null, EipCableTestData::getTestDate, query.getTestDate())
+                .orderByDesc(EipCableTestData::getTestDate)
+                .orderByDesc(EipCableTestData::getId);
+        return eipCableTestDataMapper.selectPage(page, wrapper);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int syncCableData(String cableType) {
+        validateCableType(cableType);
+        String username = resolveUsername();
+        LocalDateTime now = LocalDateTime.now();
+        String batchNo = "EIP" + now.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
+        List<EipCableTestData> dataList = buildDemoData(cableType, batchNo, username, now);
+        int count = 0;
+        for (EipCableTestData data : dataList) {
+            count += eipCableTestDataMapper.insert(data);
+        }
+        return count;
+    }
+
+    private List<EipCableTestData> buildDemoData(String cableType, String batchNo, String username, LocalDateTime now) {
+        String cableTypeName = EipCableTypeConstants.getTypeName(cableType);
+        List<EipCableTestData> list = new ArrayList<>();
+        list.add(buildData(cableType, cableTypeName, batchNo, username, now, 1,
+                "鍘熸潗鏂欏浣撶數闃昏瘯楠�", "鍚堟牸", "閾滃浣撳師鏉愭枡鎵规A", "瀵间綋缁炲悎杩囩▼鎶芥", "鎴愬搧鍑哄巶渚嬭妫�楠�"));
+        list.add(buildData(cableType, cableTypeName, batchNo, username, now, 2,
+                "鍘熸潗鏂欑粷缂樺帤搴︽娴�", "鍚堟牸", "缁濈紭鏂欐壒娆", "缁濈紭鎸ゅ嚭杩囩▼鎶芥", "鎴愬搧鑰愬帇妫�楠�"));
+        list.add(buildData(cableType, cableTypeName, batchNo, username, now, 3,
+                "杩囩▼鑰愬帇璇曢獙", "鍚堟牸", "鎶ゅ鏂欐壒娆", "鎴愮紗杩囩▼宸℃", "鎴愬搧缁撴瀯灏哄妫�楠�"));
+        list.add(buildData(cableType, cableTypeName, batchNo, username, now, 4,
+                "鑰佸寲鎬ц兘璇曢獙", "鍚堟牸", "灞忚斀鏉愭枡鎵规D", "鐏姳璇曢獙杩囩▼妫�", "鎴愬搧鑰佸寲鎬ц兘妫�楠�"));
+        list.add(buildData(cableType, cableTypeName, batchNo, username, now, 5,
+                "鎴愬搧渚嬭璇曢獙", "鍚堟牸", "杈呮潗鎵规E", "鍖呰鍓嶇粓妫�", "鎴愬搧渚嬭鏀捐妫�楠�"));
+        return list;
+    }
+
+    private EipCableTestData buildData(String cableType, String cableTypeName, String batchNo, String username,
+                                       LocalDateTime now, int index, String testType, String testResult,
+                                       String rawMaterial, String processInspection, String finalInspection) {
+        EipCableTestData data = new EipCableTestData();
+        data.setCableType(cableType);
+        data.setCableTypeName(cableTypeName);
+        data.setSampleCode(cableType.toUpperCase() + "-" + now.format(DateTimeFormatter.ofPattern("yyyyMMdd")) + "-" + index);
+        data.setProductName(cableTypeName + "鏍峰搧" + index);
+        data.setSpecModel("ZC-" + (10 + index) + "kV-" + index + "*120");
+        data.setTestType(testType);
+        data.setTestResult(testResult);
+        data.setRawMaterial(rawMaterial);
+        data.setProcessInspection(processInspection);
+        data.setFinalInspection(finalInspection);
+        data.setTestDate(LocalDate.now().minusDays(index - 1L));
+        data.setSourceSystem("鍥界綉绾跨紗绫荤墿鑱旇瘯楠屽钩鍙�(妯℃嫙)");
+        data.setSyncBatchNo(batchNo);
+        data.setSyncStatus(1);
+        data.setRemark("妯℃嫙鍚屾鏁版嵁锛岀敤浜庡墠绔仈璋�");
+        data.setCreateBy(username);
+        data.setUpdateBy(username);
+        data.setCreateTime(now);
+        data.setUpdateTime(now);
+        return data;
+    }
+
+    private void validateCableType(String cableType) {
+        if (!EipCableTypeConstants.allTypes().contains(cableType)) {
+            throw new RuntimeException("涓嶆敮鎸佺殑绾跨紗绫诲瀷: " + cableType);
+        }
+    }
+
+    private String resolveUsername() {
+        try {
+            String username = SecurityUtils.getUsername();
+            return username == null || username.trim().isEmpty() ? "system" : username;
+        } catch (Exception e) {
+            return "system";
+        }
+    }
+}

--
Gitblit v1.9.3