From 1d915922d8197aa5d5dc3e40e3088d983dd6e141 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 13 三月 2026 17:57:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New_kthg' into dev_New_kthg

---
 src/main/java/com/ruoyi/consumables/service/impl/ConsumablesOutRecordServiceImpl.java |  116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 116 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/consumables/service/impl/ConsumablesOutRecordServiceImpl.java b/src/main/java/com/ruoyi/consumables/service/impl/ConsumablesOutRecordServiceImpl.java
new file mode 100644
index 0000000..e4c9238
--- /dev/null
+++ b/src/main/java/com/ruoyi/consumables/service/impl/ConsumablesOutRecordServiceImpl.java
@@ -0,0 +1,116 @@
+package com.ruoyi.consumables.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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
+import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
+import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.EnumUtil;
+import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.consumables.dto.ConsumablesInventoryDto;
+import com.ruoyi.consumables.dto.ConsumablesOutRecordDto;
+import com.ruoyi.consumables.dto.ConsumablesUnInventoryDto;
+import com.ruoyi.consumables.execl.ConsumablesOutRecordExportData;
+import com.ruoyi.consumables.mapper.ConsumablesInventoryMapper;
+import com.ruoyi.consumables.mapper.ConsumablesOutRecordMapper;
+import com.ruoyi.consumables.mapper.ConsumablesUnInventoryMapper;
+import com.ruoyi.consumables.pojo.ConsumablesInRecord;
+import com.ruoyi.consumables.pojo.ConsumablesInventory;
+import com.ruoyi.consumables.pojo.ConsumablesOutRecord;
+import com.ruoyi.consumables.pojo.ConsumablesUnInventory;
+import com.ruoyi.consumables.service.ConsumablesOutRecordService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * <p>
+ * 鍑哄簱璁板綍琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-01-21 05:27:04
+ */
+@Service
+@AllArgsConstructor
+public class ConsumablesOutRecordServiceImpl extends ServiceImpl<ConsumablesOutRecordMapper, ConsumablesOutRecord> implements ConsumablesOutRecordService {
+    private ConsumablesOutRecordMapper consumablesOutRecordMapper;
+    private ConsumablesInventoryMapper consumablesInventoryMapper;
+    private ConsumablesUnInventoryMapper consumablesUnInventoryMapper;
+
+    @Override
+    public IPage<ConsumablesOutRecordDto> listPage(Page page, ConsumablesOutRecordDto ConsumablesOutRecordDto) {
+        return consumablesOutRecordMapper.listPage(page, ConsumablesOutRecordDto);
+    }
+
+    @Override
+    public int add(ConsumablesOutRecordDto ConsumablesOutRecordDto) {
+        String no = OrderUtils.countTodayByCreateTime(consumablesOutRecordMapper, "CK");
+        ConsumablesOutRecordDto.setOutboundBatches(no);
+        ConsumablesInRecord ConsumablesInRecord = new ConsumablesInRecord();
+        BeanUtils.copyProperties(ConsumablesOutRecordDto, ConsumablesInRecord);
+        return consumablesOutRecordMapper.insert(ConsumablesOutRecordDto);
+    }
+
+    @Override
+    public int update(Long id, ConsumablesOutRecordDto ConsumablesOutRecordDto) {
+        // 鍒ゆ柇瀵硅薄鏄惁瀛樺湪
+        ConsumablesOutRecord ConsumablesOutRecord = consumablesOutRecordMapper.selectById(id);
+        if (ConsumablesOutRecord == null){
+            throw new BaseException("璇ュ嚭搴撹褰曚笉瀛樺湪,鏃犳硶鏇存柊!!!");
+        }
+
+        String[] ignoreProperties = {"id", "outbound_batches"};//鎺掗櫎id灞炴��
+        BeanUtils.copyProperties(ConsumablesOutRecordDto, ConsumablesOutRecord, ignoreProperties);
+        return consumablesOutRecordMapper.updateById(ConsumablesOutRecord);
+    }
+
+    @Override
+    public int batchDelete(List<Long> ids) {
+        for (Long id : ids) {
+            ConsumablesOutRecord consumablesOutRecord = consumablesOutRecordMapper.selectById(id);
+            if (consumablesOutRecord.getType().equals("0")) {
+                ConsumablesInventory consumablesInventory = consumablesInventoryMapper.selectOne(new LambdaQueryWrapper<ConsumablesInventory>().eq(ConsumablesInventory::getProductModelId, consumablesOutRecord.getProductModelId()));
+                if (consumablesInventory == null) {
+                    throw new BaseException("搴撳瓨璁板綍涓病鏈夊搴旂殑浜у搧,鏃犳硶鍒犻櫎!!!");
+                }else {
+                    ConsumablesInventoryDto consumablesInRecordDto = new ConsumablesInventoryDto();
+                    consumablesInRecordDto.setProductModelId(consumablesInventory.getProductModelId());
+                    consumablesInRecordDto.setQualitity(consumablesOutRecord.getConsumablesOutNum());
+                    consumablesInventoryMapper.updateAddConsumablesInventory(consumablesInRecordDto);
+                }
+            }else if (consumablesOutRecord.getType().equals("1")) {
+                ConsumablesUnInventory consumablesUnInventory = consumablesUnInventoryMapper.selectOne(new LambdaQueryWrapper<ConsumablesUnInventory>().eq(ConsumablesUnInventory::getProductModelId, consumablesOutRecord.getProductModelId()));
+                if (consumablesUnInventory == null) {
+                    throw new BaseException("搴撳瓨璁板綍涓病鏈夊搴旂殑浜у搧,鏃犳硶鍒犻櫎!!!");
+                }else {
+                    ConsumablesUnInventoryDto consumablesUnInventoryDto = new ConsumablesUnInventoryDto();
+                    consumablesUnInventoryDto.setProductModelId(consumablesUnInventory.getProductModelId());
+                    consumablesUnInventoryDto.setQualitity(consumablesOutRecord.getConsumablesOutNum());
+                    consumablesUnInventoryMapper.updateAddConsumablesUnInventory(consumablesUnInventoryDto);
+                }
+            }
+        }
+        return consumablesOutRecordMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void exportConsumablesOutRecord(HttpServletResponse response, ConsumablesOutRecordDto ConsumablesOutRecordDto) {
+        List<ConsumablesOutRecordExportData> list = consumablesOutRecordMapper.listConsumablesOutRecordExportData(ConsumablesOutRecordDto);
+        for (ConsumablesOutRecordExportData consumablesInRecordExportData : list) {
+            if (consumablesInRecordExportData.getType().equals("0")) {
+                consumablesInRecordExportData.setRecordType(EnumUtil.fromCode(StockOutQualifiedRecordTypeEnum.class, Integer.parseInt(consumablesInRecordExportData.getRecordType())).getValue());
+            }else {
+                consumablesInRecordExportData.setRecordType(EnumUtil.fromCode(StockInUnQualifiedRecordTypeEnum.class, Integer.parseInt(consumablesInRecordExportData.getRecordType())).getValue());
+            }
+        }
+        ExcelUtil<ConsumablesOutRecordExportData> util = new ExcelUtil<>(ConsumablesOutRecordExportData.class);
+        util.exportExcel(response,list, "鍑哄簱璁板綍淇℃伅");
+    }
+}

--
Gitblit v1.9.3