From 894e2c6d4d9a6a1d5b8906e83d82c6e190d28f3a Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期四, 27 二月 2025 14:53:09 +0800
Subject: [PATCH] 服务和供应品采购代码迁移
---
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesExpendsMapper.java | 16
cnas-require/src/main/java/com/ruoyi/require/excel/StoreExcel.java | 37 +
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesExpends.java | 53 ++
cnas-require/src/main/java/com/ruoyi/require/dto/ProcurementSuppliesExpendDto.java | 11
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesExpendsServiceImpl.java | 90 ++++
cnas-require/src/main/java/com/ruoyi/require/service/impl/SuppliersDirectoryContentsServiceImpl.java | 76 +++
cnas-require/src/main/java/com/ruoyi/require/pojo/SuppliersDirectoryContents.java | 52 ++
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesStoreController.java | 80 ++++
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesListController.java | 10
cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java | 6
cnas-require/src/main/java/com/ruoyi/require/mapper/SuppliersDirectoryContentsMapper.java | 16
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesConsumablesMapper.java | 9
cnas-require/src/main/java/com/ruoyi/require/service/SuppliersDirectoryContentsService.java | 22 +
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesStoreService.java | 21 +
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesContentsController.java | 75 +++
ruoyi-framework/src/main/java/com/ruoyi/framework/common/PrintChina.java | 60 +++
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesStoreMapper.java | 27 +
cnas-require/src/main/java/com/ruoyi/require/controller/SuppliersDirectoryContentsController.java | 77 +++
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesConsumablesService.java | 7
ruoyi-framework/src/main/java/com/ruoyi/framework/annotation/ValueTableShow.java | 15
cnas-require/src/main/java/com/ruoyi/require/dto/StoreDto.java | 22 +
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesConsumablesServiceImpl.java | 14
cnas-require/src/main/resources/mapper/ProcurementSuppliesStoreMapper.xml | 84 ++++
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesStore.java | 52 ++
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesExpendsService.java | 22 +
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesExpendsController.java | 49 ++
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesConsumables.java | 50 ++
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesStoreServiceImpl.java | 125 ++++++
28 files changed, 1,169 insertions(+), 9 deletions(-)
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java
index 47bf3f2..06ada10 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java
@@ -99,10 +99,8 @@
* @return
*/
@ApiOperation(value = "濮旀墭鍗曟煡璇㈡垚鍝佽鍗�")
- @PostMapping("/getInsOrderOnInspection")
- public Result<IPage<InsOrder>> getInsOrderOnInspection(@RequestBody Map<String, Object> data) throws Exception {
- Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
- InsOrder insOrder = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InsOrder.class);
+ @GetMapping("/getInsOrderOnInspection")
+ public Result<IPage<InsOrder>> getInsOrderOnInspection(Page page ,InsOrder insOrder) throws Exception {
return Result.success(inspectionOrderService.getInsOrderOnInspection(page, insOrder));
}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesContentsController.java b/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesContentsController.java
new file mode 100644
index 0000000..aff3aa5
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesContentsController.java
@@ -0,0 +1,75 @@
+package com.ruoyi.require.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.require.pojo.ProcurementSuppliesContents;
+import com.ruoyi.require.service.ProcurementSuppliesContentsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Api(tags = "鏈嶅姟鍜屼緵搴斿搧閲囪喘鍏徃鍒楄〃")
+@RestController
+@RequestMapping("/procurementSuppliesContents")
+@AllArgsConstructor
+public class ProcurementSuppliesContentsController {
+
+ private ProcurementSuppliesContentsService procurementSuppliesService;
+
+ @ApiOperation(value = "鏌ヨ鐩綍鍒楄〃")
+ @GetMapping("/directoryListing")
+ public Result directoryListing() {
+ return Result.success(procurementSuppliesService.directoryListing());
+ }
+
+ @ApiOperation(value = "鏍规嵁id鏌ヨ")
+ @GetMapping("/selectProcurementSuppliesContentById")
+ public Result selectProcurementSuppliesContentById(Integer id) {
+ return Result.success(procurementSuppliesService.getById(id));
+ }
+
+ @ApiOperation(value = "娣诲姞瀛愯妭鐐�")
+ @PostMapping("/addProcurementSuppliesContents")
+ public Result addProcurementSuppliesContents(@RequestBody ProcurementSuppliesContents procurementSupplies) {
+ procurementSupplies.setUpdateTime(LocalDateTime.now());
+ procurementSuppliesService.save(procurementSupplies);
+ return Result.success(procurementSupplies.getId());
+ }
+
+ @ApiOperation(value = "鏇存柊瀛愯妭鐐�")
+ @PostMapping("/updateProcurementSuppliesContents")
+ public Result updateProcurementSuppliesContents(@RequestBody ProcurementSuppliesContents procurementSupplies) {
+ return Result.success(procurementSuppliesService.updateById(procurementSupplies));
+ }
+
+ @ApiOperation(value = "鍒犻櫎瀛愯妭鐐�")
+ @DeleteMapping("/deleteProcurementSuppliesContentById")
+ public Result deleteProcurementSuppliesContentById(Integer id) {
+ List<ProcurementSuppliesContents> list = procurementSuppliesService.list(new LambdaQueryWrapper<ProcurementSuppliesContents>()
+ .eq(ProcurementSuppliesContents::getParentId, id));
+ if(list.size() > 0) {
+ throw new ErrorException("璇ヨ妭鐐瑰惈鏈夊瓙鑺傜偣,璇峰厛鍒犻櫎瀛愯妭鐐�");
+ }
+ procurementSuppliesService.removeById(id);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鏌ヨ鎵�鏈夎妭鐐�")
+ @GetMapping("/getNodeNames")
+ public Result getNodeNames() {
+ return Result.success(procurementSuppliesService.getNodeNames());
+ }
+
+ @ApiOperation(value = "鑾峰彇鎵�鏈変汉鍛�")
+ @GetMapping("/getUserList")
+ public Result getUserList() {
+ return Result.success(procurementSuppliesService.getUserList());
+ }
+
+
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesExpendsController.java b/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesExpendsController.java
new file mode 100644
index 0000000..d8dd387
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesExpendsController.java
@@ -0,0 +1,49 @@
+package com.ruoyi.require.controller;
+
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.require.dto.ProcurementSuppliesExpendDto;
+import com.ruoyi.require.service.ProcurementSuppliesExpendsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 03:47:19
+ */
+@Api(tags = "鏈嶅姟鍜屼緵搴斿搧閲囪喘鑰楁潗娑堣��")
+@RestController
+@RequestMapping("/procurementSuppliesExpends")
+public class ProcurementSuppliesExpendsController {
+ @Autowired
+ private ProcurementSuppliesExpendsService procurementSuppliesExpendsService;
+
+ @ApiOperation(value = "鏌ヨ鎵�鏈夎褰�")
+ @GetMapping("/procurementSuppliesExpendlist")
+ public Result procurementSuppliesExpendlist(Long procurementSuppliesListId) {
+ return Result.success(procurementSuppliesExpendsService.selectAll(procurementSuppliesListId));
+ }
+
+ @ApiOperation(value = "鏂板娑堣�楄褰�")
+ @PostMapping("/addProcurementSuppliesExpends")
+ public Result addProcurementSuppliesExpends(@RequestBody ProcurementSuppliesExpendDto dto) throws ServiceException {
+ Integer added = procurementSuppliesExpendsService.addExpends(dto);
+
+ if ( added == 0) {
+ return Result.fail("褰撳墠搴撳瓨涓嶈冻");
+ }
+ return Result.success(added);
+ }
+
+ @ApiOperation(value = "鍒犻櫎娑堣�楄褰�")
+ @DeleteMapping("/deleteProcurementSuppliesExpends")
+ public Result deleteProcurementSuppliesExpends(Long expendId) throws ServiceException {
+ return Result.success(procurementSuppliesExpendsService.deleteExpends(expendId));
+ }
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesListController.java b/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesListController.java
index 27b5729..8311a65 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesListController.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesListController.java
@@ -79,14 +79,14 @@
}
@ApiOperation(value = "鍒犻櫎鑰楁潗")
- @PostMapping("/deleteProcurementSuppliesList")
- public Result deleteProcurementSuppliesList(@RequestBody ProcurementSuppliesListDto dto) {
- return Result.success(listMapper.deleteById(dto.getId()));
+ @DeleteMapping("/deleteProcurementSuppliesList")
+ public Result deleteProcurementSuppliesList(Long id) {
+ return Result.success(listMapper.deleteById(id));
}
@ApiOperation(value = "瀵煎嚭鑰楁潗鍒楄〃")
- @PostMapping("/exportProcurementSuppliesList/{parentId}")
- public void exportProcurementSuppliesList( @PathVariable Integer parentId ,HttpServletResponse response) throws Exception {
+ @GetMapping("/exportProcurementSuppliesList")
+ public void exportProcurementSuppliesList(Integer parentId ,HttpServletResponse response) throws Exception {
procurementSuppliesListService.exportProcurementSuppliesList(parentId,response);
}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesStoreController.java b/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesStoreController.java
new file mode 100644
index 0000000..08d86e4
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesStoreController.java
@@ -0,0 +1,80 @@
+package com.ruoyi.require.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.require.dto.StoreDto;
+import com.ruoyi.require.pojo.ProcurementSuppliesConsumables;
+import com.ruoyi.require.pojo.ProcurementSuppliesStore;
+import com.ruoyi.require.service.ProcurementSuppliesConsumablesService;
+import com.ruoyi.require.service.ProcurementSuppliesStoreService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Api(tags = "鏈嶅姟鍜屼緵搴斿搧閲囪喘鑰楁潗鍏ュ簱")
+@RestController
+@RequestMapping("/procurementSuppliesStore")
+@AllArgsConstructor
+public class ProcurementSuppliesStoreController {
+
+ private ProcurementSuppliesStoreService storeService;
+
+ private ProcurementSuppliesConsumablesService consumablesService;
+
+
+ @ApiOperation(value = "鑰楁潗鍏ュ簱鍒嗛〉鏌ヨ")
+ @GetMapping("/storeList")
+ public Result storeList(Page page,StoreDto storeDto) throws Exception {
+ return Result.success(storeService.selectStoreList(page, storeDto));
+ }
+
+ @ApiOperation(value = "娣诲姞鑰楁潗鍏ュ簱鍒楄〃")
+ @PostMapping("/addStore")
+ public Result addStore(@RequestBody Map<String,Object> map) {
+ storeService.addStore(map);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鍒犻櫎鑰楁潗鍏ュ簱")
+ @DeleteMapping("/deleteStore")
+ public Result deleteStore(@RequestParam("id") Integer id,@RequestParam("consumablesId") Integer consumablesId) {
+ storeService.deleteStore(id,consumablesId);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鏇存柊鑰楁潗鍏ュ簱")
+ @PostMapping("/updateStore")
+ public Result updateStore(@RequestBody Map<String,Object> map) {
+ storeService.updateStore(map);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鏍规嵁id鏌ヨ鑰楁潗鍏ュ簱")
+ @GetMapping("/selectStoreById")
+ public Result selectStore(Integer id) {
+ HashMap<String, Object> map = new HashMap<>();
+ ProcurementSuppliesStore procurementSuppliesStore = storeService.getById(id);
+ List<ProcurementSuppliesConsumables> list = consumablesService.list(new LambdaQueryWrapper<ProcurementSuppliesConsumables>()
+ .eq(ProcurementSuppliesConsumables::getStoreId, id));
+ map.put("store", procurementSuppliesStore);
+ map.put("consumables", list);
+ return Result.success(map);
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @GetMapping("/exportExcel")
+ public void exportExcel(Integer parentId, HttpServletResponse response) throws IOException {
+ storeService.exportExcel(parentId, response);
+ }
+
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/controller/SuppliersDirectoryContentsController.java b/cnas-require/src/main/java/com/ruoyi/require/controller/SuppliersDirectoryContentsController.java
new file mode 100644
index 0000000..2b7aeb5
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/controller/SuppliersDirectoryContentsController.java
@@ -0,0 +1,77 @@
+package com.ruoyi.require.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.require.pojo.SuppliersDirectoryContents;
+import com.ruoyi.require.service.SuppliersDirectoryContentsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟鍜屼緵搴斿搧閲囪喘鐩綍 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-17 06:14:51
+ */
+@Api(tags = "渚涘簲鍟嗙鐞嗘爲")
+@RestController
+@RequestMapping("/suppliersDirectoryContents")
+public class SuppliersDirectoryContentsController {
+
+ @Autowired
+ private SuppliersDirectoryContentsService suppliersDirectoryContentsService;
+
+ @ApiOperation(value = "鏌ヨ鐩綍鍒楄〃")
+ @GetMapping("/suppliersDirectoryContentsListing")
+ public Result suppliersDirectoryContentsListing() {
+ return Result.success(suppliersDirectoryContentsService.directoryListing());
+
+ }
+
+ @ApiOperation(value = "鏍规嵁id鏌ヨ")
+ @GetMapping("/selectSuppliersDirectoryContentsById")
+ public Result selectSuppliersDirectoryContentsById(Integer id) {
+ return Result.success(suppliersDirectoryContentsService.getById(id));
+ }
+
+ @ApiOperation(value = "娣诲姞瀛愯妭鐐�")
+ @PostMapping("/addSuppliersDirectoryContents")
+ public Result addSuppliersDirectoryContents(@RequestBody SuppliersDirectoryContents suppliersDirectoryContents ) {
+ suppliersDirectoryContents.setUpdateTime(LocalDateTime.now());
+ suppliersDirectoryContentsService.save(suppliersDirectoryContents);
+ return Result.success(suppliersDirectoryContents.getId());
+ }
+
+ @ApiOperation(value = "鏇存柊瀛愯妭鐐�")
+ @PostMapping("/updateSuppliersDirectoryContents")
+ public Result updateSuppliersDirectoryContents(@RequestBody SuppliersDirectoryContents suppliersDirectoryContents) {
+ return Result.success(suppliersDirectoryContentsService.updateById(suppliersDirectoryContents));
+ }
+
+ @ApiOperation(value = "鍒犻櫎瀛愯妭鐐�")
+ @DeleteMapping("/deleteSuppliersDirectoryContentsById")
+ public Result deleteSuppliersDirectoryContentsById(Integer id) {
+ List<SuppliersDirectoryContents> list = suppliersDirectoryContentsService.list(new LambdaQueryWrapper<SuppliersDirectoryContents>()
+ .eq(SuppliersDirectoryContents::getParentId, id));
+ if(list.size() > 0) {
+ throw new ErrorException("璇ヨ妭鐐瑰惈鏈夊瓙鑺傜偣,璇峰厛鍒犻櫎瀛愯妭鐐�");
+ }
+ suppliersDirectoryContentsService.removeById(id);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鏌ヨ鎵�鏈夎妭鐐�")
+ @GetMapping("/getSuppliersDirectoryContentsNodeNames")
+ public Result getSuppliersDirectoryContentsNodeNames() {
+ return Result.success(suppliersDirectoryContentsService.getSuppliersDirectoryContentsNodeNames());
+ }
+
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/dto/ProcurementSuppliesExpendDto.java b/cnas-require/src/main/java/com/ruoyi/require/dto/ProcurementSuppliesExpendDto.java
new file mode 100644
index 0000000..6022164
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/dto/ProcurementSuppliesExpendDto.java
@@ -0,0 +1,11 @@
+package com.ruoyi.require.dto;
+
+import com.ruoyi.require.pojo.ProcurementSuppliesExpends;
+import lombok.Data;
+
+@Data
+public class ProcurementSuppliesExpendDto extends ProcurementSuppliesExpends {
+ private String listName; // 椤圭洰鑰楁潗鍚嶇О
+ private String enterUserName; // 褰曞叆浜哄悕绉�
+ private String updateUserName; // 鏇存柊浜哄悕绉�
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/dto/StoreDto.java b/cnas-require/src/main/java/com/ruoyi/require/dto/StoreDto.java
new file mode 100644
index 0000000..818c205
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/dto/StoreDto.java
@@ -0,0 +1,22 @@
+package com.ruoyi.require.dto;
+
+import com.ruoyi.require.pojo.ProcurementSuppliesStore;
+import lombok.Data;
+
+@Data
+public class StoreDto extends ProcurementSuppliesStore {
+
+
+ private String consumablesName;
+
+ private Integer storeNumber;
+
+ private Double totalPrice;
+
+ private String registrantName;
+
+ private String storageUserName;
+
+ private Integer consumablesId;
+
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/excel/StoreExcel.java b/cnas-require/src/main/java/com/ruoyi/require/excel/StoreExcel.java
new file mode 100644
index 0000000..d0d7b88
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/excel/StoreExcel.java
@@ -0,0 +1,37 @@
+package com.ruoyi.require.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+public class StoreExcel {
+ @ExcelProperty("鍏ュ簱鍗曞彿")
+ private String oddNumbers;
+
+ @ExcelProperty("鑰楁潗鍚嶇О")
+ private String consumablesName;
+
+ @ExcelProperty("鍏ュ簱鏁伴噺")
+ private Integer storeNumber;
+
+ @ExcelProperty("鍏ュ簱鎬讳环")
+ private Double totalPrice;
+
+ @ExcelProperty("鍏ュ簱浜�")
+ private String storageUserName;
+
+ @ExcelProperty("鍏ュ簱鏃ユ湡")
+ private LocalDate storageTime;
+
+ @ExcelProperty("璇存槑")
+ private String remark;
+
+ @ExcelProperty("鐧昏浜�")
+ private String registrantName;
+
+ @ExcelProperty("鐧昏鏃ユ湡")
+ private LocalDate registrantTime;
+
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesConsumablesMapper.java b/cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesConsumablesMapper.java
new file mode 100644
index 0000000..8d9eddf
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesConsumablesMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.require.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.require.pojo.ProcurementSuppliesConsumables;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ProcurementSuppliesConsumablesMapper extends BaseMapper<ProcurementSuppliesConsumables> {
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesExpendsMapper.java b/cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesExpendsMapper.java
new file mode 100644
index 0000000..08df116
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesExpendsMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.require.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.require.pojo.ProcurementSuppliesExpends;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 03:47:19
+ */
+public interface ProcurementSuppliesExpendsMapper extends BaseMapper<ProcurementSuppliesExpends> {
+
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesStoreMapper.java b/cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesStoreMapper.java
new file mode 100644
index 0000000..93b16ec
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesStoreMapper.java
@@ -0,0 +1,27 @@
+package com.ruoyi.require.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 com.ruoyi.require.dto.StoreDto;
+import com.ruoyi.require.excel.StoreExcel;
+import com.ruoyi.require.pojo.ProcurementSuppliesStore;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface ProcurementSuppliesStoreMapper extends BaseMapper<ProcurementSuppliesStore> {
+
+ IPage<StoreDto> selectStoreList(Page page, @Param("ew") QueryWrapper<StoreDto> ew);
+
+ /**
+ * 鍜屾爲鍏宠仈鐨勬潯浠讹紝锛岋紝鐩墠娌℃湁鍏宠仈鍏崇郴 WHERE s.contents_id = #{contentsId}
+ * @param contentsId
+ * @return
+ */
+ List<StoreExcel> exportExcel(Integer contentsId);
+
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/mapper/SuppliersDirectoryContentsMapper.java b/cnas-require/src/main/java/com/ruoyi/require/mapper/SuppliersDirectoryContentsMapper.java
new file mode 100644
index 0000000..b2e8b89
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/mapper/SuppliersDirectoryContentsMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.require.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.require.pojo.SuppliersDirectoryContents;
+
+/**
+ * <p>
+ * 鏈嶅姟鍜屼緵搴斿搧閲囪喘鐩綍 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-17 06:14:51
+ */
+public interface SuppliersDirectoryContentsMapper extends BaseMapper<SuppliersDirectoryContents> {
+
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesConsumables.java b/cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesConsumables.java
new file mode 100644
index 0000000..3bd0a29
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesConsumables.java
@@ -0,0 +1,50 @@
+package com.ruoyi.require.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@TableName("procurement_supplies_consumables")
+@ApiModel("鑰楁潗閲囪喘鏄庣粏琛�")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ProcurementSuppliesConsumables {
+
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("鑰楁潗涓昏〃id")
+ private Integer storeId;
+
+ @ApiModelProperty("鑰楁潗鍚嶇О")
+ private String consumablesName;
+
+ @ApiModelProperty("鍗曚环")
+ private Double unitPrice;
+
+ @ApiModelProperty("鍏ュ簱鏁伴噺")
+ private Integer storeNumber;
+
+ @ApiModelProperty("鎬讳环")
+ private Double totalPrice;
+
+ @ApiModelProperty("璐у彿")
+ private String itemNumber;
+
+ @ApiModelProperty("绫诲埆")
+ private String type;
+
+ @ApiModelProperty("瑙勬牸")
+ private String specifications;
+
+ @ApiModelProperty("鍙傝�冧緵搴斿晢")
+ private String supplier;
+
+ @ApiModelProperty("璁¢噺鍗曚綅")
+ private String unit;
+
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesExpends.java b/cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesExpends.java
new file mode 100644
index 0000000..731a523
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesExpends.java
@@ -0,0 +1,53 @@
+package com.ruoyi.require.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 03:47:19
+ */
+@Getter
+@Setter
+@TableName("procurement_supplies_expends")
+@ApiModel(value = "ProcurementSuppliesExpends瀵硅薄", description = "")
+public class ProcurementSuppliesExpends implements Serializable {
+
+
+ @ApiModelProperty("涓昏〃Id")
+ @TableId(value = "expend_id", type = IdType.AUTO)
+ private Long expendId;
+
+ @ApiModelProperty("鑰楁潗Id")
+ private Long listId;
+
+ @ApiModelProperty("娑堣�楁暟閲�")
+ private Integer amount;
+
+ @ApiModelProperty("褰曞叆浜篿d")
+ private Integer enterUserId;
+
+ @ApiModelProperty("鏇存柊浜篿d")
+ private Integer updateUserId;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesStore.java b/cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesStore.java
new file mode 100644
index 0000000..076cf31
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesStore.java
@@ -0,0 +1,52 @@
+package com.ruoyi.require.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+@Data
+@TableName("procurement_supplies_store")
+@ApiModel("鑰楁潗鍏ュ簱琛�")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ProcurementSuppliesStore implements Serializable {
+
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("鐩綍id")
+ private Integer contentsId;
+
+ @ApiModelProperty("鍏ュ簱鍗曞彿")
+ private String oddNumbers;
+
+ @ApiModelProperty("鍏ュ簱搴撳瓨")
+ private String inventory;
+
+ @ApiModelProperty("鍏ュ簱鎬婚噾棰�")
+ private Double totalAmount;
+
+ @ApiModelProperty("鍏ュ簱浜�")
+ private Integer storageUser;
+
+ @ApiModelProperty("鍏ュ簱鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private LocalDate storageTime;
+
+ @ApiModelProperty("鍏ュ簱璇存槑")
+ private String remark;
+
+ @ApiModelProperty("鐧昏浜�")
+ private Integer registrant;
+
+ @ApiModelProperty("鐧昏鏃堕棿")
+ private LocalDate registrantTime;
+
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/pojo/SuppliersDirectoryContents.java b/cnas-require/src/main/java/com/ruoyi/require/pojo/SuppliersDirectoryContents.java
new file mode 100644
index 0000000..8d43ecc
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/pojo/SuppliersDirectoryContents.java
@@ -0,0 +1,52 @@
+package com.ruoyi.require.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟鍜屼緵搴斿搧閲囪喘鐩綍
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-17 06:14:51
+ */
+@Getter
+@Setter
+@TableName("suppliers_directory_contents")
+@ApiModel(value = "SuppliersDirectoryContents瀵硅薄", description = "鏈嶅姟鍜屼緵搴斿搧閲囪喘鐩綍")
+public class SuppliersDirectoryContents implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("鑺傜偣鍚嶇О")
+ private String nodeName;
+
+ @ApiModelProperty("浠e彿")
+ private String code;
+
+ @ApiModelProperty("鏇存柊浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鐖惰妭鐐�")
+ private Integer parentId;
+
+
+ @TableField(exist = false)
+ private List<SuppliersDirectoryContents> children;
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesConsumablesService.java b/cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesConsumablesService.java
new file mode 100644
index 0000000..ade7f0c
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesConsumablesService.java
@@ -0,0 +1,7 @@
+package com.ruoyi.require.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.require.pojo.ProcurementSuppliesConsumables;
+
+public interface ProcurementSuppliesConsumablesService extends IService<ProcurementSuppliesConsumables> {
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesExpendsService.java b/cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesExpendsService.java
new file mode 100644
index 0000000..f5ef01a
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesExpendsService.java
@@ -0,0 +1,22 @@
+package com.ruoyi.require.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.require.dto.ProcurementSuppliesExpendDto;
+import com.ruoyi.require.pojo.ProcurementSuppliesExpends;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 03:47:19
+ */
+public interface ProcurementSuppliesExpendsService extends IService<ProcurementSuppliesExpends> {
+ public List<ProcurementSuppliesExpendDto> selectAll(Long procurementSuppliesListId);
+ public Integer addExpends(ProcurementSuppliesExpendDto expendDto) throws ServiceException;
+ public Integer deleteExpends(Long id);
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesStoreService.java b/cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesStoreService.java
new file mode 100644
index 0000000..931890c
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesStoreService.java
@@ -0,0 +1,21 @@
+package com.ruoyi.require.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.require.dto.StoreDto;
+import com.ruoyi.require.pojo.ProcurementSuppliesStore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Map;
+
+public interface ProcurementSuppliesStoreService extends IService<ProcurementSuppliesStore> {
+ void addStore(Map<String,Object> map);
+ void updateStore(Map<String,Object> map);
+
+ void deleteStore(Integer id, Integer consumablesId);
+ IPage<StoreDto> selectStoreList(Page page, StoreDto storeDto);
+
+ void exportExcel(Integer contentsId, HttpServletResponse response) throws IOException;
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/SuppliersDirectoryContentsService.java b/cnas-require/src/main/java/com/ruoyi/require/service/SuppliersDirectoryContentsService.java
new file mode 100644
index 0000000..a6db661
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/SuppliersDirectoryContentsService.java
@@ -0,0 +1,22 @@
+package com.ruoyi.require.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.require.pojo.SuppliersDirectoryContents;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟鍜屼緵搴斿搧閲囪喘鐩綍 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-17 06:14:51
+ */
+public interface SuppliersDirectoryContentsService extends IService<SuppliersDirectoryContents> {
+
+ ArrayList<SuppliersDirectoryContents> directoryListing();
+ List<Map<String, Object>> getSuppliersDirectoryContentsNodeNames();
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesConsumablesServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesConsumablesServiceImpl.java
new file mode 100644
index 0000000..deeb125
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesConsumablesServiceImpl.java
@@ -0,0 +1,14 @@
+package com.ruoyi.require.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.require.mapper.ProcurementSuppliesConsumablesMapper;
+import com.ruoyi.require.pojo.ProcurementSuppliesConsumables;
+import com.ruoyi.require.service.ProcurementSuppliesConsumablesService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class ProcurementSuppliesConsumablesServiceImpl extends ServiceImpl<ProcurementSuppliesConsumablesMapper, ProcurementSuppliesConsumables>
+ implements ProcurementSuppliesConsumablesService {
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesExpendsServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesExpendsServiceImpl.java
new file mode 100644
index 0000000..0d1c184
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesExpendsServiceImpl.java
@@ -0,0 +1,90 @@
+package com.ruoyi.require.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.require.dto.ProcurementSuppliesExpendDto;
+import com.ruoyi.require.mapper.ProcurementSuppliesExpendsMapper;
+import com.ruoyi.require.mapper.ProcurementSuppliesListMapper;
+import com.ruoyi.require.pojo.ProcurementSuppliesExpends;
+import com.ruoyi.require.pojo.ProcurementSuppliesList;
+import com.ruoyi.require.service.ProcurementSuppliesExpendsService;
+import com.ruoyi.system.mapper.UserMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 03:47:19
+ */
+@Service
+public class ProcurementSuppliesExpendsServiceImpl extends ServiceImpl<ProcurementSuppliesExpendsMapper, ProcurementSuppliesExpends> implements ProcurementSuppliesExpendsService {
+ @Autowired
+ private ProcurementSuppliesExpendsMapper expendsMapper;
+
+ @Autowired
+ private UserMapper userMapper;
+
+ @Autowired
+ private ProcurementSuppliesListMapper listMapper;
+
+ @Override
+ public List<ProcurementSuppliesExpendDto> selectAll(Long procurementSuppliesListId) {
+ List<ProcurementSuppliesExpendDto> res = new ArrayList<>();
+ List<ProcurementSuppliesExpends> list = expendsMapper.selectList(new QueryWrapper<ProcurementSuppliesExpends>().lambda().eq(ProcurementSuppliesExpends::getListId, procurementSuppliesListId));
+ for (ProcurementSuppliesExpends procurementSuppliesExpend : list) {
+ ProcurementSuppliesExpendDto dto = new ProcurementSuppliesExpendDto();
+ BeanUtils.copyProperties(procurementSuppliesExpend, dto);
+
+ User enterUser = userMapper.selectById(procurementSuppliesExpend.getEnterUserId());
+ User updateUser = userMapper.selectById(procurementSuppliesExpend.getUpdateUserId());
+ dto.setEnterUserName(enterUser.getName());
+ dto.setUpdateUserName(updateUser.getName());
+ res.add(dto);
+ }
+
+ return res;
+ }
+
+ @Override
+ @Transactional
+ public Integer addExpends(ProcurementSuppliesExpendDto expendDto) throws ServiceException {
+ ProcurementSuppliesList list = listMapper.selectProcurementSuppliesListForUpdate(expendDto.getListId());
+
+ ProcurementSuppliesExpends expends = new ProcurementSuppliesExpends();
+ BeanUtils.copyProperties(expendDto, expends);
+ expends.setEnterUserId(SecurityUtils.getUserId().intValue());
+ expends.setUpdateUserId(SecurityUtils.getUserId().intValue());
+ if (list.getCurrentAmount() < expendDto.getAmount()) {
+ return 0;
+ }
+
+ list.setCurrentAmount(list.getCurrentAmount() - expendDto.getAmount());
+
+ listMapper.updateById(list);
+ return expendsMapper.insert(expends);
+ }
+
+ @Override
+ @Transactional
+ public Integer deleteExpends(Long id) {
+ ProcurementSuppliesExpends expend = expendsMapper.selectById(id);
+ ProcurementSuppliesList list = listMapper.selectProcurementSuppliesListForUpdate(expend.getListId());
+ list.setCurrentAmount(list.getCurrentAmount() + expend.getAmount());
+ list.setUpdateUser(SecurityUtils.getUserId().intValue());
+ listMapper.updateById(list);
+ return expendsMapper.deleteById(id);
+ }
+}
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..9e7a548
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesStoreServiceImpl.java
@@ -0,0 +1,125 @@
+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.framework.common.PrintChina;
+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();
+ }
+}
diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/SuppliersDirectoryContentsServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/SuppliersDirectoryContentsServiceImpl.java
new file mode 100644
index 0000000..ce0bde8
--- /dev/null
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/SuppliersDirectoryContentsServiceImpl.java
@@ -0,0 +1,76 @@
+package com.ruoyi.require.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.require.mapper.SuppliersDirectoryContentsMapper;
+import com.ruoyi.require.pojo.SuppliersDirectoryContents;
+import com.ruoyi.require.service.SuppliersDirectoryContentsService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鏈嶅姟鍜屼緵搴斿搧閲囪喘鐩綍 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-17 06:14:51
+ */
+@Service
+public class SuppliersDirectoryContentsServiceImpl extends ServiceImpl<SuppliersDirectoryContentsMapper, SuppliersDirectoryContents> implements SuppliersDirectoryContentsService {
+
+ @Override
+ public ArrayList<SuppliersDirectoryContents> directoryListing() {
+ ArrayList<SuppliersDirectoryContents> list = new ArrayList<>();
+ // 鏌ュ嚭涓�绾х洰褰�
+ List<SuppliersDirectoryContents> firstLevel = baseMapper.selectList(new LambdaQueryWrapper<SuppliersDirectoryContents>()
+ .isNull(SuppliersDirectoryContents::getParentId));
+
+ // 鏌ュ嚭鍚湁鐖惰妭鐐圭殑 骞堕�氳繃鐖惰妭鐐瑰垎缁�
+ List<SuppliersDirectoryContents> seconds = baseMapper.selectList(new LambdaQueryWrapper<SuppliersDirectoryContents>()
+ .isNotNull(SuppliersDirectoryContents::getParentId));
+ if(firstLevel.size() > 0){
+ Map<Integer, List<SuppliersDirectoryContents>> collect = seconds.stream()
+ .collect(Collectors.groupingBy(SuppliersDirectoryContents::getParentId));
+ // 鏍规嵁鍒嗙粍鐨刱ey 璧嬪�煎搴旂殑children
+ for (int i = 0; i < firstLevel.size(); i++) {
+ recursion(firstLevel.get(i),collect);
+ list.add(firstLevel.get(i));
+ }
+ }
+ return list;
+ }
+
+ @Override
+ public List<Map<String, Object>> getSuppliersDirectoryContentsNodeNames() {
+ List<SuppliersDirectoryContents> procurementSuppliesContents = baseMapper.selectList(null);
+ List<Map<String, Object>> collect = new ArrayList<>();
+ if(procurementSuppliesContents.size() > 0) {
+ collect = procurementSuppliesContents.stream().map(item -> {
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("id", item.getId());
+ map.put("nodeName", item.getNodeName());
+ return map;
+ }).collect(Collectors.toList());
+ }
+ return collect;
+ }
+
+
+ public SuppliersDirectoryContents recursion(SuppliersDirectoryContents firstLevel, Map<Integer, List<SuppliersDirectoryContents>> collect) {
+ // 灏嗙埗鑺傜偣鐨刢hildren璧嬪��
+ if(collect.containsKey(firstLevel.getId())) {
+ List<SuppliersDirectoryContents> procurementSupplies = collect.get(firstLevel.getId());
+ firstLevel.setChildren(procurementSupplies);
+ for (int i = 0; i < procurementSupplies.size(); i++) {
+ recursion(procurementSupplies.get(i),collect);
+ }
+ }
+ return firstLevel;
+ }
+}
diff --git a/cnas-require/src/main/resources/mapper/ProcurementSuppliesStoreMapper.xml b/cnas-require/src/main/resources/mapper/ProcurementSuppliesStoreMapper.xml
new file mode 100644
index 0000000..20f4dd9
--- /dev/null
+++ b/cnas-require/src/main/resources/mapper/ProcurementSuppliesStoreMapper.xml
@@ -0,0 +1,84 @@
+<?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="com.ruoyi.require.mapper.ProcurementSuppliesStoreMapper">
+ <resultMap id="map" type="com.ruoyi.require.dto.StoreDto">
+ <id column="id" property="id"/>
+ <result column="consumables_id" property="consumablesId"/>
+ <result column="odd_numbers" property="oddNumbers"/>
+ <result column="consumables_name" property="consumablesName"/>
+ <result column="store_number" property="storeNumber"/>
+ <result column="total_price" property="totalPrice"/>
+ <result column="storage_user" property="storageUser"/>
+ <result column="storage_time" property="storageTime"/>
+ <result column="remark" property="remark"/>
+ <result column="registrant" property="registrant"/>
+ <result column="registrant_time" property="registrantTime"/>
+ <result column="storageUserName" property="storageUserName"/>
+ <result column="registrantName" property="registrantName"/>
+ </resultMap>
+
+ <resultMap id="storeExcelMap" type="com.ruoyi.require.excel.StoreExcel">
+ <result column="odd_numbers" property="oddNumbers"/>
+ <result column="consumables_name" property="consumablesName"/>
+ <result column="store_number" property="storeNumber"/>
+ <result column="total_price" property="totalPrice"/>
+ <result column="storage_time" property="storageTime"/>
+ <result column="remark" property="remark"/>
+ <result column="registrant_time" property="registrantTime"/>
+ <result column="storageUserName" property="storageUserName"/>
+ <result column="registrantName" property="registrantName"/>
+ </resultMap>
+
+
+ <select id="selectStoreList" resultMap="map">
+select * from (
+ SELECT
+ s.id,
+ c.id AS consumables_id,
+ s.contents_id,
+ s.odd_numbers,
+ c.consumables_name,
+ c.store_number,
+ c.total_price,
+ s.storage_user,
+ s.storage_time,
+ s.remark,
+ s.registrant,
+ s.registrant_time,
+ u.name AS storageUserName,
+ u1.name AS registrantName
+ FROM
+ `procurement_supplies_store` s
+ LEFT JOIN procurement_supplies_consumables c ON s.id = c.store_id
+ LEFT JOIN user u ON u.id = s.storage_user
+ LEFT JOIN user u1 ON u1.id = s.registrant
+ )a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+
+ <select id="exportExcel" resultMap="storeExcelMap">
+ SELECT * FROM (
+ SELECT
+ s.odd_numbers,
+ c.consumables_name,
+ c.store_number,
+ c.total_price,
+ s.storage_time,
+ s.remark,
+ s.registrant_time,
+ u.name AS storageUserName,
+ u1.name AS registrantName
+ FROM
+ `procurement_supplies_store` s
+ LEFT JOIN procurement_supplies_consumables c ON s.id = c.store_id
+ LEFT JOIN user u ON u.id = s.storage_user
+ LEFT JOIN user u1 ON u1.id = s.registrant
+
+ ) a
+ </select>
+
+
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/annotation/ValueTableShow.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/annotation/ValueTableShow.java
new file mode 100644
index 0000000..cd1a804
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/annotation/ValueTableShow.java
@@ -0,0 +1,15 @@
+package com.ruoyi.framework.annotation;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ValueTableShow {
+
+ int value() default 1;
+
+ String name() default "";
+
+ int width() default 0;
+
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/common/PrintChina.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/common/PrintChina.java
new file mode 100644
index 0000000..d02315e
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/common/PrintChina.java
@@ -0,0 +1,60 @@
+package com.ruoyi.framework.common;
+
+import com.ruoyi.framework.annotation.ValueTableShow;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.lang.reflect.Field;
+import java.util.*;
+
+/*鏉庢灄
+* 閫氳繃娉ㄨВ蹇�熺敓鎴恡able琛ㄥご*/
+
+public class PrintChina {
+
+ public static <T> List<Map<String, Object>> printChina(Class<T> tClass) {
+ //灏嗗疄浣撶被鐨勫睘鎬у拰娉ㄩ噴杞崲鎴愬弬鏁�
+ List<Field> fieldList = new ArrayList<>();
+ while (tClass != null){
+ fieldList.addAll(new ArrayList<>(Arrays.asList(tClass.getDeclaredFields())));
+ tClass = (Class<T>) tClass.getSuperclass();
+ }
+ Field[] fields = new Field[fieldList.size()];
+ fieldList.toArray(fields);
+ ArrayList<Map<String, Object>> list = new ArrayList<>();
+ for (Field field : fields) {
+ Map<String, Object> soundVo = new HashMap<>();
+ boolean bool = field.isAnnotationPresent(ApiModelProperty.class);
+ boolean bool2 = field.isAnnotationPresent(ValueTableShow.class);
+ if (bool2) {
+ int order = field.getAnnotation(ValueTableShow.class).value();
+ String value = field.getAnnotation(ValueTableShow.class).name();
+ int width = field.getAnnotation(ValueTableShow.class).width();
+ if (bool){
+ value = value.isEmpty() ? field.getAnnotation(ApiModelProperty.class).value() : value;
+ }
+ soundVo.put("label", field.getName());
+ soundVo.put("value", value);
+ if(width>0){
+ soundVo.put("width", width);
+ }
+ soundVo.put("order", order + "");
+ if(list.isEmpty()){
+ list.add(soundVo);
+ }else{
+ boolean isAdd = false;
+ for (int i = 0; i < list.size(); i++) {
+ Map<String, Object> map = list.get(i);
+ if(order < Integer.parseInt(map.get("order").toString())){
+ list.add(i, soundVo);
+ isAdd = true;
+ break;
+ }
+ }
+ if (!isAdd) list.add(soundVo);
+ }
+ }
+ }
+ return list;
+ }
+
+}
--
Gitblit v1.9.3