From 4f3a98f19143865cdc1de4791e8a95d96bd40c65 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 01 八月 2025 13:27:59 +0800
Subject: [PATCH] yys 密码已重置

---
 cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesStoreServiceImpl.java |  124 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 124 insertions(+), 0 deletions(-)

diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesStoreServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesStoreServiceImpl.java
new file mode 100644
index 0000000..895edc5
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesStoreServiceImpl.java
@@ -0,0 +1,124 @@
+package com.ruoyi.require.service.impl;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.require.dto.StoreDto;
+import com.ruoyi.require.excel.StoreExcel;
+import com.ruoyi.require.mapper.ProcurementSuppliesConsumablesMapper;
+import com.ruoyi.require.mapper.ProcurementSuppliesStoreMapper;
+import com.ruoyi.require.pojo.ProcurementSuppliesConsumables;
+import com.ruoyi.require.pojo.ProcurementSuppliesStore;
+import com.ruoyi.require.service.ProcurementSuppliesStoreService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+@Service
+@AllArgsConstructor
+public class ProcurementSuppliesStoreServiceImpl extends ServiceImpl<ProcurementSuppliesStoreMapper, ProcurementSuppliesStore>
+        implements ProcurementSuppliesStoreService {
+
+    private ProcurementSuppliesConsumablesMapper consumablesMapper;
+
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void addStore(Map<String,Object> map) {
+        ProcurementSuppliesStore procurementSuppliesStore = JSONObject.parseObject(JSONObject.toJSONString(map.get("store")), ProcurementSuppliesStore.class);
+        procurementSuppliesStore.setRegistrant(SecurityUtils.getUserId().intValue());
+        procurementSuppliesStore.setRegistrantTime(LocalDate.now());
+        baseMapper.insert(procurementSuppliesStore);
+        List<ProcurementSuppliesConsumables> list = JSON.parseArray(JSONObject.toJSONString(map.get("consumables")), ProcurementSuppliesConsumables.class);
+        // 鐢熸垚璐у彿
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+        if(!Objects.isNull(list) && list.size() > 0) {
+            for (int i = 0; i < list.size(); i++) {
+                list.get(i).setStoreId(procurementSuppliesStore.getId());
+                String itemNumber ="HCRK" + LocalDate.now().format(dateTimeFormatter) +  String.format("%03d", i);
+                list.get(i).setItemNumber(itemNumber);
+                consumablesMapper.insert(list.get(i));
+            }
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateStore(Map<String,Object> map) {
+        ProcurementSuppliesStore procurementSuppliesStore = JSONObject.parseObject(JSONObject.toJSONString(map.get("store")), ProcurementSuppliesStore.class);
+        baseMapper.updateById(procurementSuppliesStore);
+        List<ProcurementSuppliesConsumables> list = JSON.parseArray(JSONObject.toJSONString(map.get("consumables")), ProcurementSuppliesConsumables.class);
+        consumablesMapper.delete(new LambdaQueryWrapper<ProcurementSuppliesConsumables>()
+                .eq(ProcurementSuppliesConsumables::getStoreId, procurementSuppliesStore.getId()));
+        if(!Objects.isNull(list) && list.size() > 0) {
+            for (int i = 0; i < list.size(); i++) {
+                list.get(i).setId(null);
+                list.get(i).setStoreId(procurementSuppliesStore.getId());
+                consumablesMapper.insert(list.get(i));
+            }
+        }
+    }
+
+    @Override
+    public void deleteStore(Integer id, Integer consumablesId) {
+        consumablesMapper.deleteById(consumablesId);
+        List<ProcurementSuppliesConsumables> consumables = consumablesMapper.selectList(new LambdaQueryWrapper<ProcurementSuppliesConsumables>()
+                .eq(ProcurementSuppliesConsumables::getStoreId, id));
+        // 鍒ゆ柇鏄惁杩樻湁鑰楁潗 娌℃湁灏卞皢涓昏〃Store鍒犻櫎
+        if(CollectionUtils.isEmpty(consumables)) {
+            baseMapper.deleteById(id);
+        }
+    }
+
+    @Override
+    public  IPage<StoreDto> selectStoreList(Page page, StoreDto storeDto) {
+        IPage<StoreDto> iPage = baseMapper.selectStoreList(page, QueryWrappers.queryWrappers(storeDto));
+        return iPage;
+    }
+
+    /**
+     * 瀵煎嚭excel
+     * @param contentsId
+     * @param response
+     */
+    @Override
+    public void exportExcel(Integer contentsId, HttpServletResponse response) throws IOException {
+        List<StoreExcel> storeExcels = baseMapper.exportExcel(contentsId);
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("UTF-8");
+        // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
+        String fileName = null;
+        try {
+            fileName = URLEncoder.encode("鑰楁潗鍏ュ簱", "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException(e);
+        }
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+        ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+        WriteSheet writeSheet = EasyExcel.writerSheet(0, "鑰楁潗鍏ュ簱").head(StoreExcel.class).build();
+        excelWriter.write(storeExcels, writeSheet);
+        excelWriter.finish();
+    }
+}

--
Gitblit v1.9.3