From 94e23a3d587846f10ea9517bd2e6705093d6a99a Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 28 一月 2026 17:57:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/main/java/com/ruoyi/safe/service/impl/SafeHazardRecordServiceImpl.java |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/safe/service/impl/SafeHazardRecordServiceImpl.java b/src/main/java/com/ruoyi/safe/service/impl/SafeHazardRecordServiceImpl.java
new file mode 100644
index 0000000..2d6fa1d
--- /dev/null
+++ b/src/main/java/com/ruoyi/safe/service/impl/SafeHazardRecordServiceImpl.java
@@ -0,0 +1,93 @@
+package com.ruoyi.safe.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.safe.dto.SafeHazardRecordDto;
+import com.ruoyi.safe.mapper.SafeHazardMapper;
+import com.ruoyi.safe.pojo.SafeHazard;
+import com.ruoyi.safe.pojo.SafeHazardRecord;
+import com.ruoyi.safe.mapper.SafeHazardRecordMapper;
+import com.ruoyi.safe.service.SafeHazardRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * <p>
+ * 瀹夊叏鐢熶骇--鍗遍櫓鐗╂枡绠℃帶 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-01-28 01:13:40
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class SafeHazardRecordServiceImpl extends ServiceImpl<SafeHazardRecordMapper, SafeHazardRecord> implements SafeHazardRecordService {
+
+    @Autowired
+    private SafeHazardRecordMapper safeHazardRecordMapper;
+    @Autowired
+    private SafeHazardMapper safeHazardMapper;
+
+    @Override
+    public IPage<SafeHazardRecordDto> pageSafeHazardRecord(Page page, SafeHazardRecordDto safeHazardRecordDto) {
+        return safeHazardRecordMapper.pageSafeHazardRecord(page, safeHazardRecordDto);
+    }
+
+    @Override
+    public int borrow(SafeHazardRecord safeHazardRecord) {
+        //鍒ゆ柇鏁伴噺鏄惁婊¤冻
+        SafeHazard safeHazard = safeHazardMapper.selectById(safeHazardRecord.getSafeHazardId());
+        if (safeHazard.getStockQty().compareTo(safeHazardRecord.getApplyQty())<0) {
+            throw new RuntimeException("搴撳瓨鏁伴噺涓嶈冻");
+        }
+        //棰嗙敤
+        safeHazardRecord.setApplyUserId(SecurityUtils.getUserId().intValue());
+        safeHazardRecord.setApplyTime(LocalDate.now());
+        safeHazardRecordMapper.insert(safeHazardRecord);
+        String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
+        String no = "LY" + String.format("%s%03d", datePrefix, safeHazardRecord.getId());
+        safeHazardRecord.setMaterialRecordCode(no);
+        safeHazardRecordMapper.updateById(safeHazardRecord);
+        //鍑忓簱瀛�
+        safeHazard.setStockQty(safeHazard.getStockQty().subtract(safeHazardRecord.getApplyQty()));
+        safeHazardMapper.updateById(safeHazard);
+        return 0;
+    }
+
+    @Override
+    public int returnSafeHazardRecord(SafeHazardRecord safeHazardRecord) {
+        SafeHazard safeHazard = safeHazardMapper.selectById(safeHazardRecord.getSafeHazardId());
+        //褰掕繕
+        safeHazardRecord.setReturnUserId(SecurityUtils.getUserId().intValue());
+        safeHazardRecord.setReturnTime(LocalDate.now());
+        safeHazardRecordMapper.updateById(safeHazardRecord);
+        //澧炲簱瀛�
+        safeHazard.setStockQty(safeHazard.getStockQty().add(safeHazardRecord.getApplyQty()));
+        safeHazardMapper.updateById(safeHazard);
+        return 0;
+    }
+
+    @Override
+    public int delSafeHazardRecord(List<Integer> ids) {
+        List<SafeHazardRecord> safeHazardRecords = safeHazardRecordMapper.selectBatchIds(ids);
+        for (SafeHazardRecord safeHazardRecord : safeHazardRecords) {
+            //鍒ゆ柇鏄惁鏈夊綊杩�
+            if (ObjectUtils.isNull(safeHazardRecord.getReturnUserId())){
+                //娌℃湁褰掕繕,鍒犻櫎棰嗙敤璁板綍闇�瑕佸鍔犲簱瀛�
+                SafeHazard safeHazard = safeHazardMapper.selectById(safeHazardRecord.getSafeHazardId());
+                safeHazard.setStockQty(safeHazard.getStockQty().add(safeHazardRecord.getApplyQty()));
+                safeHazardMapper.updateById(safeHazard);
+            }
+        }
+        safeHazardRecordMapper.deleteBatchIds(ids);
+        return 0;
+    }
+}

--
Gitblit v1.9.3