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