From 9b2c4a6e9683a704a872e282eb1deab39f665195 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期六, 15 二月 2025 15:41:19 +0800 Subject: [PATCH] 资源要求-计量溯源性功能迁移 --- cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceRecordMapper.java | 22 cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceRecord.java | 78 ++ cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceRecordService.java | 30 + cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceService.java | 19 ruoyi-framework/src/main/java/com/ruoyi/framework/exception/ErrorException.java | 9 cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceInspectionService.java | 16 cnas-require/pom.xml | 36 + cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceMapper.java | 22 cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java | 75 ++ pom.xml | 1 cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptance.java | 86 ++ cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceRecordServiceImpl.java | 79 ++ cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceServiceImpl.java | 116 ++++ cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptanceInspection.java | 47 + cnas-require/src/main/java/com/ruoyi/require/controller/FeCalibrationScheduleController.java | 97 +++ cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceMapper.java | 20 cnas-require/src/main/java/com/ruoyi/require/excel/FeStandardSubstanceExcel.java | 54 + inspect-server/pom.xml | 5 cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceController.java | 80 ++ cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceAcceptanceController.java | 89 +++ ruoyi-framework/src/main/java/com/ruoyi/framework/exception/MyFileException.java | 18 cnas-require/src/main/java/com/ruoyi/require/dto/AcceptanceDto.java | 15 cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceService.java | 33 + cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceServiceImpl.java | 26 cnas-require/src/main/java/com/ruoyi/require/vo/SubstanceRecordVo.java | 46 + cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceInspectionServiceImpl.java | 20 ruoyi-admin/pom.xml | 6 cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceInspectionMapper.java | 16 cnas-require/src/main/java/com/ruoyi/require/vo/AcceptanceVo.java | 46 + cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceRecordController.java | 63 ++ cnas-require/src/main/java/com/ruoyi/require/vo/AcceptanceDetailsVo.java | 22 cnas-require/src/main/java/com/ruoyi/require/excel/FeCalibrationScheduleExport.java | 36 + cnas-require/src/main/java/com/ruoyi/require/pojo/FeCalibrationSchedule.java | 85 ++ cnas-require/src/main/java/com/ruoyi/require/excel/FeLightningProtectionExcel.java | 22 cnas-require/src/main/java/com/ruoyi/require/service/FeCalibrationScheduleService.java | 29 + inspect-server/src/main/java/com/ruoyi/basic/util/HackLoopTableRenderPolicy.java | 154 +++++ cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstance.java | 81 ++ cnas-require/src/main/java/com/ruoyi/require/mapper/FeCalibrationScheduleMapper.java | 20 38 files changed, 1,719 insertions(+), 0 deletions(-) diff --git a/cnas-require/pom.xml b/cnas-require/pom.xml new file mode 100644 index 0000000..5fda62b --- /dev/null +++ b/cnas-require/pom.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi</artifactId> + <version>3.8.9</version> + </parent> + + <artifactId>cnas-require</artifactId> + + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + + <dependencies> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-common</artifactId> + </dependency> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-framework</artifactId> + </dependency> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>inspect-server</artifactId> + <version>3.8.9</version> + </dependency> + </dependencies> + +</project> \ No newline at end of file diff --git a/cnas-require/src/main/java/com/ruoyi/require/controller/FeCalibrationScheduleController.java b/cnas-require/src/main/java/com/ruoyi/require/controller/FeCalibrationScheduleController.java new file mode 100644 index 0000000..efa7963 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/controller/FeCalibrationScheduleController.java @@ -0,0 +1,97 @@ +package com.ruoyi.require.controller; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.read.listener.PageReadListener; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.require.excel.FeCalibrationScheduleExport; +import com.ruoyi.require.pojo.FeCalibrationSchedule; +import com.ruoyi.require.service.FeCalibrationScheduleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +/** + * <p> + * + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-13 02:53:05 + */ +@Api(tags = "閲忓�兼函婧愯鍒�") +@RestController +@RequestMapping("/feCalibrationSchedule") +public class FeCalibrationScheduleController { + + @Resource + private FeCalibrationScheduleService feCalibrationScheduleService; + + @ApiOperation(value = "閲忓�兼函婧愯鍒掓煡璇�") + @GetMapping("/getPageCalibrationSchedule") + public Result<IPage<FeCalibrationSchedule>> getPageCalibrationSchedule(Page page, String instrumentName, String managementNumber) { + IPage<FeCalibrationSchedule> ipage = feCalibrationScheduleService.page(page,instrumentName, managementNumber); + return Result.success(ipage); + } + + @ApiOperation(value = "閲忓�兼函婧愯鍒掓柊澧炵紪杈�") + @PostMapping("/addCalibrationSchedule") + public Result addCalibrationSchedule(@RequestBody FeCalibrationSchedule feCalibrationSchedule) { + return Result.success(feCalibrationScheduleService.saveOrUpdate(feCalibrationSchedule)); + } + + @ApiOperation(value = "閲忓�兼函婧愯鍒掑垹闄�") + @GetMapping("/removeCalibrationSchedule") + public Result removeCalibrationSchedule(Integer id) { + return Result.success(feCalibrationScheduleService.removeById(id)); + } + + + @ApiOperation(value = "閲忓�兼函婧愯鍒掑鍑�") + @PostMapping("exportOfValueTraceabilityPlan") + public void exportOfValueTraceabilityPlan(String instrumentName, String managementNumber, + HttpServletResponse response) throws Exception { + IPage<FeCalibrationSchedule> data = feCalibrationScheduleService.page(new Page<>(1, -1),instrumentName, managementNumber); + List<FeCalibrationScheduleExport> studentList = JSONObject.parseArray(JSON.toJSONString(data.getRecords()), FeCalibrationScheduleExport.class); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("requestType", "excel"); + response.setHeader("Access-Control-Expose-Headers", "requestType"); + // 璁剧疆鍗曞厓鏍兼牱寮� + // 淇濆瓨鍒扮涓�涓猻heet涓� + EasyExcel.write(response.getOutputStream()) + .head(FeCalibrationScheduleExport.class) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 鑷�傚簲鍒楀 + .sheet("sheet") + .doWrite(studentList); + } + + @ApiOperation(value = "importOfValueTraceabilityPlan") + @PostMapping("/importOfValueTraceabilityPlan") + public void importOfValueTraceabilityPlan(MultipartFile file) throws IOException { + if (file.isEmpty()) { + return; + } + EasyExcel.read(file.getInputStream(), FeCalibrationScheduleExport.class, new PageReadListener<FeCalibrationScheduleExport>(dataList -> { + List<FeCalibrationSchedule> studentList = JSONObject.parseArray(JSON.toJSONString(dataList), FeCalibrationSchedule.class); + feCalibrationScheduleService.saveOrUpdateBatch(studentList); + })).sheet().doRead(); + } + + +// Equipment quantity traceability management + @ApiOperation(value = "閲忓�兼函婧愯鍒掑鍑簑ord") + @GetMapping("/exportWordOfValueTraceabilityPlan") + public void exportWordOfValueTraceabilityPlan(HttpServletResponse response) throws IOException { + feCalibrationScheduleService.exportWordOfValueTraceabilityPlan(response); + } +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceAcceptanceController.java b/cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceAcceptanceController.java new file mode 100644 index 0000000..0e5d823 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceAcceptanceController.java @@ -0,0 +1,89 @@ +package com.ruoyi.require.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.require.dto.AcceptanceDto; +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptanceInspection; +import com.ruoyi.require.service.FeStandardSubstanceAcceptanceInspectionService; +import com.ruoyi.require.service.FeStandardSubstanceAcceptanceService; +import com.ruoyi.require.vo.AcceptanceVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 鏍囧噯鐗╄川楠屾敹 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 03:29:41 + */ +@Api(tags = "鏍囧噯鐗╄川楠屾敹") +@RestController +@RequestMapping("/feStandardSubstanceAcceptance") +public class FeStandardSubstanceAcceptanceController { + + @Autowired + private FeStandardSubstanceAcceptanceInspectionService inspectionService; + @Resource + private FeStandardSubstanceAcceptanceService feStandardSubstanceAcceptanceService; + + @ApiOperation(value = "鏂板") + @PostMapping("/addAcceptance") + @Transactional + public Result addAcceptance(@RequestBody AcceptanceDto dto) { + feStandardSubstanceAcceptanceService.addAcceptance(dto); + return Result.success(); + } + + @ApiOperation(value = "鏍囧噯鐗╄川楠屾敹鏌ヨ") + @GetMapping("/getPageAcceptance") + public Result<IPage<AcceptanceVo>> getPageAcceptance(Page page, String name) { + IPage<AcceptanceVo> ipage = feStandardSubstanceAcceptanceService.getPageAcceptance(page, name); + return Result.success(ipage); + } + + @ApiOperation(value = "鏍囧噯鐗╄川楠屾敹鍒犻櫎") + @GetMapping("/deleteAcceptance/{id}") + public Result deleteAcceptance(@PathVariable("id") Integer id) { + return Result.success(feStandardSubstanceAcceptanceService.deleteAcceptance(id)); + } + + @ApiOperation(value = "缂栬緫") + @PostMapping("/updateAcceptance") + public Result updateAcceptance(@RequestBody AcceptanceDto acceptanceDto) { + feStandardSubstanceAcceptanceService.updateById(acceptanceDto.getAcceptance()); + for (FeStandardSubstanceAcceptanceInspection v : acceptanceDto.getList()) { + if (v.getId()== null) { + inspectionService.save(v); + }else { + inspectionService.updateById(v); + } + } + return Result.success(); + } + + + @ApiOperation(value = "鏍囧噯鐗╄川楠屾敹鏌ヨ") + @GetMapping("/getAcceptanceDetails") + public Result getAcceptanceDetails(Integer id) { + return Result.success(feStandardSubstanceAcceptanceService.getAcceptanceDetails(id)); + } + + @ApiOperation("瀵煎嚭鏍囧噯鐗╄川楠屾敹") + @GetMapping("/exportFeStandardSubstanceAcceptance") + public Result exportFeStandardSubstanceAcceptance(HttpServletResponse response) { + feStandardSubstanceAcceptanceService.exportFeStandardSubstanceAcceptance(response); + + return Result.success(); + } + + +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceController.java b/cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceController.java new file mode 100644 index 0000000..8ccee1b --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceController.java @@ -0,0 +1,80 @@ +package com.ruoyi.require.controller; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.require.excel.FeStandardSubstanceExcel; +import com.ruoyi.require.pojo.FeStandardSubstance; +import com.ruoyi.require.service.FeStandardSubstanceService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * <p> + * 鏍囧噯鐗╄川娓呭崟 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-13 03:58:59 + */ +@Api(tags = "鏍囧噯鐗╄川娓呭崟") +@RestController +@RequestMapping("/feStandardSubstance") +public class FeStandardSubstanceController { + + + @Resource + private FeStandardSubstanceService feStandardSubstanceService; + + @ApiOperation(value = "鏍囧噯鐗╄川娓呭崟鏌ヨ") + @GetMapping("/getPageStandardSubstance") + public Result<IPage<FeStandardSubstance>> getPageStandardSubstance(Page page, FeStandardSubstance feStandardSubstance) { + IPage<FeStandardSubstance> ipage = feStandardSubstanceService.page(page, feStandardSubstance); + return Result.success(ipage); + } + + @ApiOperation(value = "鏍囧噯鐗╄川娓呭崟鏂板缂栬緫") + @PostMapping("/addStandardSubstance") + public Result addStandardSubstance(@RequestBody FeStandardSubstance feStandardSubstance) { + return Result.success(feStandardSubstanceService.saveOrUpdate(feStandardSubstance)); + } + + @ApiOperation(value = "鏍囧噯鐗╄川娓呭崟鍒犻櫎") + @GetMapping("/removeStandardSubstance") + public Result removeStandardSubstance(Integer id) { + return Result.success(feStandardSubstanceService.removeById(id)); + } + + @ApiOperation(value = "鏍囧噯鐗╄川娓呭崟鏌ヨ鎵�鏈�") + @GetMapping("/getStandardSubstanceAll") + public Result<List<FeStandardSubstance>> getStandardSubstanceAll( ) { + return Result.success(feStandardSubstanceService.list()); + } + + @ApiOperation(value = "鏍囧噯鐗╄川娓呭崟瀵煎嚭") + @GetMapping("exportOfStandardSubstanceList") + public void exportOfStandardSubstanceList(FeStandardSubstance feStandardSubstance, + HttpServletResponse response) throws Exception { + IPage<FeStandardSubstance> ipage = feStandardSubstanceService.page(new Page<>(1, -1), feStandardSubstance); + List<FeStandardSubstanceExcel> studentList = JSONObject.parseArray(JSON.toJSONString(ipage.getRecords()), FeStandardSubstanceExcel.class); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("requestType", "excel"); + response.setHeader("Access-Control-Expose-Headers", "requestType"); + // 璁剧疆鍗曞厓鏍兼牱寮� + // 淇濆瓨鍒扮涓�涓猻heet涓� + EasyExcel.write(response.getOutputStream()) + .head(FeStandardSubstanceExcel.class) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 鑷�傚簲鍒楀 + .sheet("sheet") + .doWrite(studentList); + } +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceRecordController.java b/cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceRecordController.java new file mode 100644 index 0000000..b2bcf7a --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceRecordController.java @@ -0,0 +1,63 @@ +package com.ruoyi.require.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.require.pojo.FeStandardSubstanceRecord; +import com.ruoyi.require.service.FeStandardSubstanceRecordService; +import com.ruoyi.require.vo.SubstanceRecordVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * <p> + * 鏍囧噯鐗╄川娓呭崟鍊熺敤褰掕繕璁板綍琛� 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 01:49:11 + */ +@Api(tags = "鏍囧噯鐗╄川娓呭崟鍊熺敤褰掕繕璁板綍") +@RestController +@RequestMapping("/feStandardSubstanceRecord") +public class FeStandardSubstanceRecordController { + + @Resource + private FeStandardSubstanceRecordService feStandardSubstanceRecordService; + + @ApiOperation(value = "鏍囧噯鐗╄川娓呭崟鍊熺敤") + @PostMapping("/borrowSubstance") + @Transactional + public Result borrowSubstance(@RequestBody FeStandardSubstanceRecord record) { + feStandardSubstanceRecordService.borrowSubstance(record); + return Result.success(); + } + + @ApiOperation(value = "鏍囧噯鐗╄川娓呭崟褰掕繕") + @PostMapping("/returnSubstance") + @Transactional + public Result returnSubstance(@RequestBody FeStandardSubstanceRecord record) { + feStandardSubstanceRecordService.returnSubstance(record); + return Result.success(); + } + + @ApiOperation(value = "鏍囧噯鐗╄川娓呭崟棰嗙敤鏌ヨ") + @PostMapping("/getSubstanceRecord") + public Result getSubstanceRecord(Integer id) { + return Result.success(feStandardSubstanceRecordService.getSubstanceRecord(id)); + } + + @ApiOperation(value = "鍒嗛〉鏌ヨ") + @PostMapping("/getPageSubstanceRecord") + public Result<IPage<SubstanceRecordVo>> getPageSubstanceRecord(Page page, @RequestBody SubstanceRecordVo vo) { + IPage<SubstanceRecordVo> ipage = feStandardSubstanceRecordService.getPage(page,vo); + return Result.success(ipage); + } +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/dto/AcceptanceDto.java b/cnas-require/src/main/java/com/ruoyi/require/dto/AcceptanceDto.java new file mode 100644 index 0000000..a369361 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/dto/AcceptanceDto.java @@ -0,0 +1,15 @@ +package com.ruoyi.require.dto; + +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptance; +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptanceInspection; +import lombok.Data; + +import java.util.List; + +@Data +public class AcceptanceDto { + + private FeStandardSubstanceAcceptance acceptance; + + private List<FeStandardSubstanceAcceptanceInspection> list; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/excel/FeCalibrationScheduleExport.java b/cnas-require/src/main/java/com/ruoyi/require/excel/FeCalibrationScheduleExport.java new file mode 100644 index 0000000..5048365 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/excel/FeCalibrationScheduleExport.java @@ -0,0 +1,36 @@ +package com.ruoyi.require.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class FeCalibrationScheduleExport { + @ExcelProperty("浠櫒鍚嶇О") + private String instrumentName; + + @ExcelProperty("瑙勬牸鍨嬪彿") + private String model; + + @ExcelProperty("绠$悊缂栧彿") + private Integer managementNumber; + + @ExcelProperty("鎶�鏈寚鏍�") + private String technicalIndicators; + + @ExcelProperty("妫�瀹氬懆鏈�") + private String verificationCyde; + + @ExcelProperty("妫�瀹氬崟浣�") + private String verificationUnit; + + @ExcelProperty("鏈�杩戞瀹氭椂闂�") + private LocalDateTime recentlyTime; + + @ExcelProperty("璁″垝涓嬫妫�瀹氭椂闂�") + private LocalDateTime nextTime; + + @ExcelProperty("澶囨敞") + private String remark; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/excel/FeLightningProtectionExcel.java b/cnas-require/src/main/java/com/ruoyi/require/excel/FeLightningProtectionExcel.java new file mode 100644 index 0000000..b47e79a --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/excel/FeLightningProtectionExcel.java @@ -0,0 +1,22 @@ +package com.ruoyi.require.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +@Data +public class FeLightningProtectionExcel { + @ExcelProperty("鍘熸枃浠跺悕") + private String fileName; + + @ExcelProperty("妫�娴嬫棩鏈�") + private String detectionDate; + + @ExcelProperty("鏈夋晥鏈�") + private String termValidity; + + @ExcelProperty("妫�娴嬪崟浣�") + private String detectionUnit; + + @ExcelProperty("鍒涘缓鏃堕棿") + private String createTime; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/excel/FeStandardSubstanceExcel.java b/cnas-require/src/main/java/com/ruoyi/require/excel/FeStandardSubstanceExcel.java new file mode 100644 index 0000000..2f0691c --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/excel/FeStandardSubstanceExcel.java @@ -0,0 +1,54 @@ +package com.ruoyi.require.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class FeStandardSubstanceExcel { + @ExcelProperty("鏍囧噯鐗╄川鍚嶇О") + private String name; + + @ExcelProperty("瑙勬牸鍨嬪彿") + private String model; + + @ExcelProperty("鐢熶骇鍘傚") + private String factoryManufacturer; + + @ExcelProperty("鍑哄満缂栧彿") + private String factoryNum; + + @ExcelProperty("绠$悊缂栧彿") + private String manageNum; + + @ExcelProperty("涓嶇‘瀹氬害") + private String uncertainty; + + @ExcelProperty("鏁伴噺") + private Long quantity; + + @ExcelProperty("璐疆鏃ユ湡") + private LocalDateTime acquisitionDate; + + @ExcelProperty("鏈夋晥鏈�") + private LocalDateTime effectiveDate; + + @ExcelProperty("鏂囨。缂栧彿") + private String fileNum; + + @ExcelProperty("瀛樻斁浣嶇疆") + private String position; + + @ExcelProperty("鍊熻皟鐘舵��") + private Integer state; + + @ExcelProperty("澶囨敞") + private String remark; + + @ExcelProperty("鍒涘缓浜�") + private String createUser; + + @ExcelProperty("鍒涘缓鏃ユ湡") + private LocalDateTime createTime; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/mapper/FeCalibrationScheduleMapper.java b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeCalibrationScheduleMapper.java new file mode 100644 index 0000000..9527638 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeCalibrationScheduleMapper.java @@ -0,0 +1,20 @@ +package com.ruoyi.require.mapper; + +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.pojo.FeCalibrationSchedule; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-13 02:53:05 + */ +public interface FeCalibrationScheduleMapper extends BaseMapper<FeCalibrationSchedule> { + + IPage<FeCalibrationSchedule> ipage(Page page, @Param("instrumentName") String instrumentName, @Param("managementNumber") String managementNumber); +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceInspectionMapper.java b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceInspectionMapper.java new file mode 100644 index 0000000..d65993b --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceInspectionMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.require.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptanceInspection; + +/** + * <p> + * 楠屾敹寮�绠辫褰� Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 03:30:09 + */ +public interface FeStandardSubstanceAcceptanceInspectionMapper extends BaseMapper<FeStandardSubstanceAcceptanceInspection> { + +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceMapper.java b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceMapper.java new file mode 100644 index 0000000..cc14a6c --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceMapper.java @@ -0,0 +1,22 @@ +package com.ruoyi.require.mapper; + +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.pojo.FeStandardSubstanceAcceptance; +import com.ruoyi.require.vo.AcceptanceVo; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 鏍囧噯鐗╄川楠屾敹 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 03:29:41 + */ +public interface FeStandardSubstanceAcceptanceMapper extends BaseMapper<FeStandardSubstanceAcceptance> { + + + IPage<AcceptanceVo> getPageAcceptance(Page page, @Param("name")String name); +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceMapper.java b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceMapper.java new file mode 100644 index 0000000..2340206 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceMapper.java @@ -0,0 +1,20 @@ +package com.ruoyi.require.mapper; + +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.pojo.FeStandardSubstance; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 鏍囧噯鐗╄川娓呭崟 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-13 03:58:59 + */ +public interface FeStandardSubstanceMapper extends BaseMapper<FeStandardSubstance> { + + IPage<FeStandardSubstance> getPage(Page page,@Param("ew")FeStandardSubstance feStandardSubstance); +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceRecordMapper.java b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceRecordMapper.java new file mode 100644 index 0000000..c847574 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceRecordMapper.java @@ -0,0 +1,22 @@ +package com.ruoyi.require.mapper; + +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.pojo.FeStandardSubstanceRecord; +import com.ruoyi.require.vo.SubstanceRecordVo; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 鏍囧噯鐗╄川娓呭崟鍊熺敤褰掕繕璁板綍琛� Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 01:49:11 + */ +public interface FeStandardSubstanceRecordMapper extends BaseMapper<FeStandardSubstanceRecord> { + + + IPage<SubstanceRecordVo> getPage(Page page,@Param("ew") SubstanceRecordVo vo); +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/pojo/FeCalibrationSchedule.java b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeCalibrationSchedule.java new file mode 100644 index 0000000..8cbbfea --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeCalibrationSchedule.java @@ -0,0 +1,85 @@ +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; + +/** + * <p> + * 浠櫒璁惧妫�瀹�/鏍″噯璁″垝琛� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-13 02:53:05 + */ +@Getter +@Setter +@TableName("cnas_fe_calibration_schedule") +@ApiModel(value = "FeCalibrationSchedule瀵硅薄", description = "浠櫒璁惧妫�瀹�/鏍″噯璁″垝琛�") +public class FeCalibrationSchedule implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("浠櫒鍚嶇О") + private String instrumentName; + + @ApiModelProperty("瑙勬牸鍨嬪彿") + private String model; + + @ApiModelProperty("绠$悊缂栧彿") + private String managementNumber; + + @ApiModelProperty("鎶�鏈寚鏍�") + private String technicalIndicators; + + @ApiModelProperty("妫�瀹氬懆鏈�") + private String verificationCyde; + + @ApiModelProperty("妫�瀹氬崟浣�") + private String verificationUnit; + + @ApiModelProperty("鏈�杩戞瀹氭椂闂�") + private LocalDateTime recentlyTime; + + @ApiModelProperty("璁″垝涓嬫妫�瀹氭椂闂�") + private LocalDateTime nextTime; + + @ApiModelProperty("澶囨敞") + private String remark; + + @ApiModelProperty("缂栧埗") + private String organization; + + @ApiModelProperty("缂栧埗鏃ユ湡") + private LocalDateTime organizationDate; + + @ApiModelProperty("鎵瑰噯") + private String approve; + + @ApiModelProperty("鎵瑰噯鏃ユ湡") + private LocalDateTime approveDate; + + @TableField(fill = FieldFill.INSERT) + private String createUser; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty("搴忓彿id, 瀵煎嚭浣跨敤") + @TableField(exist = false, select = false) + private Integer index; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstance.java b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstance.java new file mode 100644 index 0000000..0cd1cb7 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstance.java @@ -0,0 +1,81 @@ +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; + +/** + * <p> + * 鏍囧噯鐗╄川娓呭崟 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-13 03:58:59 + */ +@Getter +@Setter +@TableName("cnas_fe_standard_substance") +@ApiModel(value = "FeStandardSubstance瀵硅薄", description = "鏍囧噯鐗╄川娓呭崟") +public class FeStandardSubstance implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("鏍囧噯鐗╄川鍚嶇О") + private String name; + + @ApiModelProperty("瑙勬牸鍨嬪彿") + private String model; + + @ApiModelProperty("鐢熶骇鍘傚") + private String factoryManufacturer; + + @ApiModelProperty("鍑哄満缂栧彿") + private String factoryNum; + + @ApiModelProperty("绠$悊缂栧彿") + private String manageNum; + + @ApiModelProperty("涓嶇‘瀹氬害") + private String uncertainty; + + @ApiModelProperty("鏁伴噺") + private Long quantity; + + @ApiModelProperty("璐疆鏃ユ湡") + private LocalDateTime acquisitionDate; + + @ApiModelProperty("鏈夋晥鏈�") + private LocalDateTime effectiveDate; + + @ApiModelProperty("鏂囨。缂栧彿") + private String fileNum; + + @ApiModelProperty("瀛樻斁浣嶇疆") + private String position; + + @ApiModelProperty("鍊熻皟鐘舵�侊紙0:鏈�熻皟 1:宸插�熻皟锛�") + private Integer state; + + @ApiModelProperty("澶囨敞") + private String remark; + + @TableField(fill = FieldFill.INSERT) + private String createUser; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptance.java b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptance.java new file mode 100644 index 0000000..d6d10b0 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptance.java @@ -0,0 +1,86 @@ +package com.ruoyi.require.pojo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * <p> + * 鏍囧噯鐗╄川楠屾敹 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 03:29:41 + */ +@Getter +@Setter +@TableName("cnas_fe_standard_substance_acceptance") +@ApiModel(value = "FeStandardSubstanceAcceptance瀵硅薄", description = "鏍囧噯鐗╄川楠屾敹") +public class FeStandardSubstanceAcceptance implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("娓呭崟id") + @ExcelProperty("娓呭崟id") + private Integer substanceId; + + @ApiModelProperty("鍒拌揣鏃ユ湡") + @ExcelProperty("鍒拌揣鏃ユ湡") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate arriveDate; + + @ApiModelProperty("缁翠慨鍗曚綅") + @ExcelProperty("缁翠慨鍗曚綅") + private String maintenanceUnit; + + @ApiModelProperty("鍙傛暟") + @ExcelProperty("鍙傛暟") + private String perameters; + + @ApiModelProperty("瀹夎璋冭瘯鎯呭喌") + @ExcelProperty("瀹夎璋冭瘯鎯呭喌") + private String installation; + + @ApiModelProperty("楠屾敹鎯呭喌") + @ExcelProperty("楠屾敹鎯呭喌") + private String situation; + + @ApiModelProperty("鎺ュ彈绛惧瓧") + @ExcelProperty("鎺ュ彈绛惧瓧") + private String signature; + + @ApiModelProperty("鍘傚浠h〃") + @ExcelProperty("鍘傚浠h〃") + private String producer; + + @ApiModelProperty("鎺ユ敹浜�") + @ExcelProperty("鎺ユ敹浜�") + private String recipient; + + @ApiModelProperty("闄勪欢") + @ExcelProperty("闄勪欢") + private String file; + + @TableField(fill = FieldFill.INSERT) + private String createUser; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptanceInspection.java b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptanceInspection.java new file mode 100644 index 0000000..50adcc3 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptanceInspection.java @@ -0,0 +1,47 @@ +package com.ruoyi.require.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 楠屾敹寮�绠辫褰� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 03:30:09 + */ +@Getter +@Setter +@TableName("cnas_fe_standard_substance_acceptance_inspection") +@ApiModel(value = "FeStandardSubstanceAcceptanceInspection瀵硅薄", description = "楠屾敹寮�绠辫褰�") +public class FeStandardSubstanceAcceptanceInspection implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private Integer acceptanceId; + + private String name; + + private Integer number; + + @TableField(fill = FieldFill.INSERT) + private String createUser; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceRecord.java b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceRecord.java new file mode 100644 index 0000000..da5fa7c --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceRecord.java @@ -0,0 +1,78 @@ +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; + +/** + * <p> + * 鏍囧噯鐗╄川娓呭崟鍊熺敤褰掕繕璁板綍琛� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 01:49:11 + */ +@Getter +@Setter +@TableName("cnas_fe_standard_substance_record") +@ApiModel(value = "FeStandardSubstanceRecord瀵硅薄", description = "鏍囧噯鐗╄川娓呭崟鍊熺敤褰掕繕璁板綍琛�") +public class FeStandardSubstanceRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("鐗╄川id") + private Integer substanceId; + + @ApiModelProperty("鍊熺敤-瀹屽ソ鎬�") + private String integrity; + + @ApiModelProperty("鍊熺敤-鍊熺敤浜�") + private String borrowUser; + + @ApiModelProperty("鍊熺敤-鑱旂郴鏂瑰紡") + private String phone; + + @ApiModelProperty("鍊熺敤-鍊熷嚭鏃ユ湡") + private LocalDateTime borrowDate; + + @ApiModelProperty("褰掕繕鏃ユ湡") + private LocalDateTime borrowReturnDate; + + @ApiModelProperty("鍊熷嚭浜�") + private String lender; + + @ApiModelProperty("褰掕繕-妫�鏌ヤ汉") + private String rummager; + + @ApiModelProperty("0锛氬�熺敤 1:褰掕繕") + private String status; + + @ApiModelProperty("褰掕繕浜�") + private String returnedPerson; + + @ApiModelProperty("褰掕繕-鏃ユ湡") + private LocalDateTime returnDate; + + @ApiModelProperty("褰掕繕-瀹屽ソ鎬�") + private String returnIntegrity; + + @TableField(fill = FieldFill.INSERT) + private String createUser; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/FeCalibrationScheduleService.java b/cnas-require/src/main/java/com/ruoyi/require/service/FeCalibrationScheduleService.java new file mode 100644 index 0000000..aaebd46 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/service/FeCalibrationScheduleService.java @@ -0,0 +1,29 @@ +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.pojo.FeCalibrationSchedule; +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-13 02:53:05 + */ +public interface FeCalibrationScheduleService extends IService<FeCalibrationSchedule> { + + + IPage<FeCalibrationSchedule> page(Page page,String instrumentName, String managementNumber); + + /** + * 閲忓�兼函婧愯鍒掑鍑簑ord + * + * @param response 鍝嶅簲娣诲姞word + */ + void exportWordOfValueTraceabilityPlan(HttpServletResponse response); + +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceInspectionService.java b/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceInspectionService.java new file mode 100644 index 0000000..ea02235 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceInspectionService.java @@ -0,0 +1,16 @@ +package com.ruoyi.require.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptanceInspection; + +/** + * <p> + * 楠屾敹寮�绠辫褰� 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 03:30:09 + */ +public interface FeStandardSubstanceAcceptanceInspectionService extends IService<FeStandardSubstanceAcceptanceInspection> { + +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceService.java b/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceService.java new file mode 100644 index 0000000..ba3a70e --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceService.java @@ -0,0 +1,33 @@ +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.AcceptanceDto; +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptance; +import com.ruoyi.require.vo.AcceptanceDetailsVo; +import com.ruoyi.require.vo.AcceptanceVo; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 鏍囧噯鐗╄川楠屾敹 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 03:29:41 + */ +public interface FeStandardSubstanceAcceptanceService extends IService<FeStandardSubstanceAcceptance> { + + + void addAcceptance(AcceptanceDto dto); + + IPage<AcceptanceVo> getPageAcceptance(Page page, String name); + + AcceptanceDetailsVo getAcceptanceDetails(Integer id); + + Integer deleteAcceptance(Integer id); + + void exportFeStandardSubstanceAcceptance(HttpServletResponse response); +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceRecordService.java b/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceRecordService.java new file mode 100644 index 0000000..a77f503 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceRecordService.java @@ -0,0 +1,30 @@ +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.pojo.FeStandardSubstanceRecord; +import com.ruoyi.require.vo.SubstanceRecordVo; + +import java.util.List; + +/** + * <p> + * 鏍囧噯鐗╄川娓呭崟鍊熺敤褰掕繕璁板綍琛� 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 01:49:11 + */ +public interface FeStandardSubstanceRecordService extends IService<FeStandardSubstanceRecord> { + + + void borrowSubstance(FeStandardSubstanceRecord feStandardSubstanceRecord); + + void returnSubstance(FeStandardSubstanceRecord feStandardSubstanceRecord); + + List<FeStandardSubstanceRecord> getSubstanceRecord(Integer id); + + IPage<SubstanceRecordVo> getPage(Page page, SubstanceRecordVo vo); + +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceService.java b/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceService.java new file mode 100644 index 0000000..374db35 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceService.java @@ -0,0 +1,19 @@ +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.pojo.FeStandardSubstance; + +/** + * <p> + * 鏍囧噯鐗╄川娓呭崟 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-13 03:58:59 + */ +public interface FeStandardSubstanceService extends IService<FeStandardSubstance> { + + IPage<FeStandardSubstance> page(Page page, FeStandardSubstance feStandardSubstance); +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java new file mode 100644 index 0000000..80f9f06 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java @@ -0,0 +1,75 @@ +package com.ruoyi.require.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.ruoyi.basic.util.HackLoopTableRenderPolicy; +import com.ruoyi.require.mapper.FeCalibrationScheduleMapper; +import com.ruoyi.require.pojo.FeCalibrationSchedule; +import com.ruoyi.require.service.FeCalibrationScheduleService; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.List; + +/** + * <p> + * + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-13 02:53:05 + */ +@Service +public class FeCalibrationScheduleServiceImpl extends ServiceImpl<FeCalibrationScheduleMapper, FeCalibrationSchedule> implements FeCalibrationScheduleService { + + @Override + public IPage<FeCalibrationSchedule> page(Page page, String instrumentName, String managementNumber) { + IPage<FeCalibrationSchedule> ipage = this.baseMapper.ipage(page,instrumentName, managementNumber); + return ipage; + } + + @Override + public void exportWordOfValueTraceabilityPlan(HttpServletResponse response) { + List<FeCalibrationSchedule> feCalibrationSchedules = this.baseMapper.selectList(null); + + int size = feCalibrationSchedules.size(); + for (int i = 0; i < size; i++) { + FeCalibrationSchedule feCalibrationSchedule = feCalibrationSchedules.get(i); + feCalibrationSchedule.setIndex(i + 1); + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/value-traceability-plan.docx"); + Configure configure = Configure.builder() + .bind("feCalibrationSchedule", new HackLoopTableRenderPolicy()) + .build(); + FeCalibrationSchedule feCalibrationSchedule = size > 0 ? feCalibrationSchedules.get(0) : null; + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("feCalibrationSchedule", feCalibrationSchedules); + }} + ); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "浠櫒璁惧閲忓�兼函婧愮鐞嗘�讳綋璁″垝", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceInspectionServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceInspectionServiceImpl.java new file mode 100644 index 0000000..1e2cd6e --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceInspectionServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.require.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.require.mapper.FeStandardSubstanceAcceptanceInspectionMapper; +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptanceInspection; +import com.ruoyi.require.service.FeStandardSubstanceAcceptanceInspectionService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 楠屾敹寮�绠辫褰� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 03:30:09 + */ +@Service +public class FeStandardSubstanceAcceptanceInspectionServiceImpl extends ServiceImpl<FeStandardSubstanceAcceptanceInspectionMapper, FeStandardSubstanceAcceptanceInspection> implements FeStandardSubstanceAcceptanceInspectionService { + +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceServiceImpl.java new file mode 100644 index 0000000..291b440 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceServiceImpl.java @@ -0,0 +1,116 @@ +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.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.require.dto.AcceptanceDto; +import com.ruoyi.require.mapper.FeStandardSubstanceAcceptanceInspectionMapper; +import com.ruoyi.require.mapper.FeStandardSubstanceAcceptanceMapper; +import com.ruoyi.require.mapper.FeStandardSubstanceMapper; +import com.ruoyi.require.pojo.FeStandardSubstance; +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptance; +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptanceInspection; +import com.ruoyi.require.service.FeStandardSubstanceAcceptanceInspectionService; +import com.ruoyi.require.service.FeStandardSubstanceAcceptanceService; +import com.ruoyi.require.vo.AcceptanceDetailsVo; +import com.ruoyi.require.vo.AcceptanceVo; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.List; + +/** + * <p> + * 鏍囧噯鐗╄川楠屾敹 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 03:29:41 + */ +@Service +public class FeStandardSubstanceAcceptanceServiceImpl extends ServiceImpl<FeStandardSubstanceAcceptanceMapper, FeStandardSubstanceAcceptance> implements FeStandardSubstanceAcceptanceService { + + @Resource + private FeStandardSubstanceAcceptanceInspectionMapper feStandardSubstanceAcceptanceInspectionMapper; + @Resource + private FeStandardSubstanceAcceptanceInspectionService feStandardSubstanceAcceptanceInspectionService; + @Resource + private FeStandardSubstanceMapper feStandardSubstanceMapper; + + + + @Override + public void addAcceptance(AcceptanceDto dto) { + FeStandardSubstanceAcceptance acceptance = dto.getAcceptance(); + this.baseMapper.insert(acceptance); + List<FeStandardSubstanceAcceptanceInspection> list = dto.getList(); + if (CollectionUtils.isNotEmpty(list)) { + list.forEach(v -> { + v.setAcceptanceId(acceptance.getId()); + }); + feStandardSubstanceAcceptanceInspectionService.saveBatch(list); + } + } + + @Override + public IPage<AcceptanceVo> getPageAcceptance(Page page, String name) { + return this.baseMapper.getPageAcceptance(page,name); + } + + @Override + public AcceptanceDetailsVo getAcceptanceDetails(Integer id) { + FeStandardSubstanceAcceptance acceptance = this.baseMapper.selectById(id); + FeStandardSubstance substance = feStandardSubstanceMapper.selectById(acceptance.getSubstanceId()); + QueryWrapper<FeStandardSubstanceAcceptanceInspection> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("acceptance_id",id); + List<FeStandardSubstanceAcceptanceInspection> list = feStandardSubstanceAcceptanceInspectionMapper.selectList(queryWrapper); + AcceptanceDetailsVo vo = new AcceptanceDetailsVo(); + vo.setSubstance(substance); + vo.setAcceptance(acceptance); + vo.setList(list); + return vo; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Integer deleteAcceptance(Integer id) { + feStandardSubstanceAcceptanceInspectionMapper.delete(new QueryWrapper<FeStandardSubstanceAcceptanceInspection>() + .lambda().eq(FeStandardSubstanceAcceptanceInspection::getAcceptanceId,id)); + return this.baseMapper.deleteById(id); + } + + @Override + public void exportFeStandardSubstanceAcceptance(HttpServletResponse response) { + List<FeStandardSubstanceAcceptance> list = this.list(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 + try { + String fileName = URLEncoder.encode("鏍囧噯鐗╄川楠屾敹", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + // 鏂板缓ExcelWriter + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); + WriteSheet writeSheet = EasyExcel.writerSheet(0, "鏍囧噯鐗╄川楠屾敹").head(FeStandardSubstanceAcceptance.class).build(); + excelWriter.write(list, writeSheet); + // 鍏抽棴娴� + excelWriter.finish(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } catch (IOException e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceRecordServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceRecordServiceImpl.java new file mode 100644 index 0000000..134e4ba --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceRecordServiceImpl.java @@ -0,0 +1,79 @@ +package com.ruoyi.require.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.require.mapper.FeStandardSubstanceMapper; +import com.ruoyi.require.mapper.FeStandardSubstanceRecordMapper; +import com.ruoyi.require.pojo.FeStandardSubstance; +import com.ruoyi.require.pojo.FeStandardSubstanceRecord; +import com.ruoyi.require.service.FeStandardSubstanceRecordService; +import com.ruoyi.require.vo.SubstanceRecordVo; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +/** + * <p> + * 鏍囧噯鐗╄川娓呭崟鍊熺敤褰掕繕璁板綍琛� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-14 01:49:11 + */ +@Transactional(rollbackFor = Exception.class) +@Service +public class FeStandardSubstanceRecordServiceImpl extends ServiceImpl<FeStandardSubstanceRecordMapper, FeStandardSubstanceRecord> implements FeStandardSubstanceRecordService { + + @Resource + private FeStandardSubstanceMapper feStandardSubstanceMapper; + + @Override + public void borrowSubstance(FeStandardSubstanceRecord feStandardSubstanceRecord) { + FeStandardSubstance standardSubstance = feStandardSubstanceMapper.selectOne(Wrappers.<FeStandardSubstance>lambdaQuery() + .eq(FeStandardSubstance::getId, feStandardSubstanceRecord.getSubstanceId()) + .eq(FeStandardSubstance::getState, 0) + .last("limit 1")); + if (ObjectUtils.isEmpty(standardSubstance)){ + throw new ErrorException("璇ョ墿璐ㄥ凡琚�熷嚭锛�"); + } + this.baseMapper.insert(feStandardSubstanceRecord); + standardSubstance.setState(1); + feStandardSubstanceMapper.updateById(standardSubstance); + } + + @Override + public void returnSubstance(FeStandardSubstanceRecord feStandardSubstanceRecord) { + FeStandardSubstance standardSubstance = feStandardSubstanceMapper.selectOne(Wrappers.<FeStandardSubstance>lambdaQuery() + .eq(FeStandardSubstance::getId, feStandardSubstanceRecord.getSubstanceId()) + .eq(FeStandardSubstance::getState, 1)); + if (ObjectUtils.isEmpty(standardSubstance)){ + throw new ErrorException("璇ョ墿璐ㄦ湭琚鐢紝鏃犻渶褰掕繕锛�"); + } + standardSubstance.setState(0); + feStandardSubstanceMapper.updateById(standardSubstance); + System.out.println(feStandardSubstanceRecord); + baseMapper.update(feStandardSubstanceRecord, Wrappers.<FeStandardSubstanceRecord>lambdaUpdate() + .eq(FeStandardSubstanceRecord::getSubstanceId, feStandardSubstanceRecord.getSubstanceId()) + .eq(FeStandardSubstanceRecord::getStatus, 0)); + } + + @Override + public List<FeStandardSubstanceRecord> getSubstanceRecord(Integer id) { + QueryWrapper<FeStandardSubstanceRecord> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("substance_id",id); + List<FeStandardSubstanceRecord> list = this.baseMapper.selectList(queryWrapper); + return list; + } + + @Override + public IPage<SubstanceRecordVo> getPage(Page page, SubstanceRecordVo vo) { + return this.baseMapper.getPage(page,vo); + } +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceServiceImpl.java new file mode 100644 index 0000000..141246c --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceServiceImpl.java @@ -0,0 +1,26 @@ +package com.ruoyi.require.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.require.mapper.FeStandardSubstanceMapper; +import com.ruoyi.require.pojo.FeStandardSubstance; +import com.ruoyi.require.service.FeStandardSubstanceService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 鏍囧噯鐗╄川娓呭崟 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-13 03:58:59 + */ +@Service +public class FeStandardSubstanceServiceImpl extends ServiceImpl<FeStandardSubstanceMapper, FeStandardSubstance> implements FeStandardSubstanceService { + + @Override + public IPage<FeStandardSubstance> page(Page page, FeStandardSubstance feStandardSubstance) { + return this.baseMapper.getPage(page,feStandardSubstance); + } +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/vo/AcceptanceDetailsVo.java b/cnas-require/src/main/java/com/ruoyi/require/vo/AcceptanceDetailsVo.java new file mode 100644 index 0000000..44777a4 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/vo/AcceptanceDetailsVo.java @@ -0,0 +1,22 @@ +package com.ruoyi.require.vo; + +import com.ruoyi.require.pojo.FeStandardSubstance; +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptance; +import com.ruoyi.require.pojo.FeStandardSubstanceAcceptanceInspection; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class AcceptanceDetailsVo extends FeStandardSubstanceAcceptance { + + @ApiModelProperty("鐗╄川娓呭崟") + private FeStandardSubstance substance; + + @ApiModelProperty("楠屾敹鍗�") + private FeStandardSubstanceAcceptance acceptance; + + @ApiModelProperty("寮�绠辫褰�") + private List<FeStandardSubstanceAcceptanceInspection> list; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/vo/AcceptanceVo.java b/cnas-require/src/main/java/com/ruoyi/require/vo/AcceptanceVo.java new file mode 100644 index 0000000..09d0374 --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/vo/AcceptanceVo.java @@ -0,0 +1,46 @@ +package com.ruoyi.require.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class AcceptanceVo { + + @ApiModelProperty("妫�楠岃〃id") + private Integer id; + + @ApiModelProperty("鏍囧噯鐗╄川鍚嶇О") + private String name; + + @ApiModelProperty("瑙勬牸鍨嬪彿") + private String model; + + @ApiModelProperty("鐢熶骇鍘傚") + private String factoryManufacturer; + + @ApiModelProperty("鍑哄満缂栧彿") + private String factoryNum; + + @ApiModelProperty("绠$悊缂栧彿") + private String manageNum; + + @ApiModelProperty("涓嶇‘瀹氬害") + private String uncertainty; + + @ApiModelProperty("鏁伴噺") + private Long quantity; + + @ApiModelProperty("璐疆鏃ユ湡") + private LocalDateTime acquisitionDate; + + @ApiModelProperty("鏈夋晥鏈�") + private LocalDateTime effectiveDate; + + @ApiModelProperty("鏂囨。缂栧彿") + private String fileNum; + + @ApiModelProperty("瀛樻斁浣嶇疆") + private String position; +} diff --git a/cnas-require/src/main/java/com/ruoyi/require/vo/SubstanceRecordVo.java b/cnas-require/src/main/java/com/ruoyi/require/vo/SubstanceRecordVo.java new file mode 100644 index 0000000..00de20d --- /dev/null +++ b/cnas-require/src/main/java/com/ruoyi/require/vo/SubstanceRecordVo.java @@ -0,0 +1,46 @@ +package com.ruoyi.require.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class SubstanceRecordVo { + + @ApiModelProperty("id") + private Integer id; + + @ApiModelProperty("鏍囧噯鐗╄川鍚嶇О") + private String name; + + @ApiModelProperty("瑙勬牸鍨嬪彿") + private String model; + + @ApiModelProperty("鍑哄満缂栧彿") + private String factoryNum; + + @ApiModelProperty("鏁伴噺") + private Long quantity; + + @ApiModelProperty("棰嗙敤浜�") + private String borrowUser; + + @ApiModelProperty("鍊熷嚭鏃ユ湡") + private LocalDateTime borrowDate; + + @ApiModelProperty("褰掕繕鏃ユ湡") + private LocalDateTime returnDate; + + @ApiModelProperty("褰掕繕浜�") + private String returnedPerson; + + @ApiModelProperty("瀹屽ソ鎬�") + private String returnIntegrity; + + @ApiModelProperty("0锛氬�熺敤 1:褰掕繕") + private String status; + + @ApiModelProperty("澶囨敞") + private String remark; +} diff --git a/inspect-server/pom.xml b/inspect-server/pom.xml index fc8d299..38a4862 100644 --- a/inspect-server/pom.xml +++ b/inspect-server/pom.xml @@ -24,6 +24,11 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-system</artifactId> </dependency> + <dependency> + <groupId>com.deepoove</groupId> + <artifactId>poi-tl</artifactId> + <version>1.12.2</version> + </dependency> </dependencies> <properties> diff --git a/inspect-server/src/main/java/com/ruoyi/basic/util/HackLoopTableRenderPolicy.java b/inspect-server/src/main/java/com/ruoyi/basic/util/HackLoopTableRenderPolicy.java new file mode 100644 index 0000000..482f920 --- /dev/null +++ b/inspect-server/src/main/java/com/ruoyi/basic/util/HackLoopTableRenderPolicy.java @@ -0,0 +1,154 @@ +/* + * Copyright 2014-2020 Sayi + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.ruoyi.basic.util; + +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.exception.RenderException; +import com.deepoove.poi.policy.RenderPolicy; +import com.deepoove.poi.render.compute.RenderDataCompute; +import com.deepoove.poi.render.processor.DocumentProcessor; +import com.deepoove.poi.resolver.TemplateResolver; +import com.deepoove.poi.template.ElementTemplate; +import com.deepoove.poi.template.MetaTemplate; +import com.deepoove.poi.template.run.RunTemplate; +import com.deepoove.poi.util.ReflectionUtils; +import com.deepoove.poi.util.TableTools; +import org.apache.poi.xwpf.usermodel.*; +import org.apache.xmlbeans.XmlCursor; +import org.apache.xmlbeans.XmlObject; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVMerge; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; + +import java.util.Iterator; +import java.util.List; + +/** + * Hack for loop table row + * + * @author Sayi + * + */ +public class HackLoopTableRenderPolicy implements RenderPolicy { + + private String prefix; + private String suffix; + private boolean onSameLine; + + public HackLoopTableRenderPolicy() { + this(false); + } + + public HackLoopTableRenderPolicy(boolean onSameLine) { + this("[", "]", onSameLine); + } + + public HackLoopTableRenderPolicy(String prefix, String suffix) { + this(prefix, suffix, false); + } + + public HackLoopTableRenderPolicy(String prefix, String suffix, boolean onSameLine) { + this.prefix = prefix; + this.suffix = suffix; + this.onSameLine = onSameLine; + } + + @Override + public void render(ElementTemplate eleTemplate, Object data, XWPFTemplate template) { + RunTemplate runTemplate = (RunTemplate) eleTemplate; + XWPFRun run = runTemplate.getRun(); + try { + if (!TableTools.isInsideTable(run)) { + throw new IllegalStateException( + "The template tag " + runTemplate.getSource() + " must be inside a table"); + } + XWPFTableCell tagCell = (XWPFTableCell) ((XWPFParagraph) run.getParent()).getBody(); + XWPFTable table = tagCell.getTableRow().getTable(); + run.setText("", 0); + + int templateRowIndex = getTemplateRowIndex(tagCell); + if (null != data && data instanceof Iterable) { + Iterator<?> iterator = ((Iterable<?>) data).iterator(); + XWPFTableRow templateRow = table.getRow(templateRowIndex); + int insertPosition = templateRowIndex; + + TemplateResolver resolver = new TemplateResolver(template.getConfig().copy(prefix, suffix)); + boolean firstFlag = true; + while (iterator.hasNext()) { + insertPosition = templateRowIndex++; + XWPFTableRow nextRow = table.insertNewTableRow(insertPosition); + setTableRow(table, templateRow, insertPosition); + + // double set row + XmlCursor newCursor = templateRow.getCtRow().newCursor(); + newCursor.toPrevSibling(); + XmlObject object = newCursor.getObject(); + nextRow = new XWPFTableRow((CTRow) object, table); + if (!firstFlag) { + // update VMerge cells for non-first row + List<XWPFTableCell> tableCells = nextRow.getTableCells(); + for (XWPFTableCell cell : tableCells) { + CTTcPr tcPr = TableTools.getTcPr(cell); + CTVMerge vMerge = tcPr.getVMerge(); + if (null == vMerge) continue; + if (STMerge.RESTART == vMerge.getVal()) { + vMerge.setVal(STMerge.CONTINUE); + } + } + } else { + firstFlag = false; + } + setTableRow(table, nextRow, insertPosition); + + RenderDataCompute dataCompute = template.getConfig().getRenderDataComputeFactory() + .newCompute(iterator.next()); + List<XWPFTableCell> cells = nextRow.getTableCells(); + cells.forEach(cell -> { + List<MetaTemplate> templates = resolver.resolveBodyElements(cell.getBodyElements()); + new DocumentProcessor(template, resolver, dataCompute).process(templates); + }); + } + } + + table.removeRow(templateRowIndex); + afterloop(table, data); + } catch (Exception e) { + throw new RenderException("HackLoopTable for " + eleTemplate + "error: " + e.getMessage(), e); + } + } + + private int getTemplateRowIndex(XWPFTableCell tagCell) { + XWPFTableRow tagRow = tagCell.getTableRow(); + return onSameLine ? getRowIndex(tagRow) : (getRowIndex(tagRow) + 1); + } + + protected void afterloop(XWPFTable table, Object data) { + } + + @SuppressWarnings("unchecked") + private void setTableRow(XWPFTable table, XWPFTableRow templateRow, int pos) { + List<XWPFTableRow> rows = (List<XWPFTableRow>) ReflectionUtils.getValue("tableRows", table); + rows.set(pos, templateRow); + table.getCTTbl().setTrArray(pos, templateRow.getCtRow()); + } + + private int getRowIndex(XWPFTableRow row) { + List<XWPFTableRow> rows = row.getTable().getRows(); + return rows.indexOf(row); + } + +} diff --git a/pom.xml b/pom.xml index ab947ba..2bd747c 100644 --- a/pom.xml +++ b/pom.xml @@ -339,6 +339,7 @@ <module>basic-server</module> <module>inspect-server</module> <module>performance-server</module> + <module>cnas-require</module> </modules> <packaging>pom</packaging> diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 0009314..a63e7aa 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -87,6 +87,12 @@ <version>${ruoyi.version}</version> </dependency> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>cnas-require</artifactId> + <version>${ruoyi.version}</version> + </dependency> + </dependencies> <build> diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/exception/ErrorException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/exception/ErrorException.java new file mode 100644 index 0000000..4a39760 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/exception/ErrorException.java @@ -0,0 +1,9 @@ +package com.ruoyi.framework.exception; + +public class ErrorException extends RuntimeException{ + + public ErrorException(String msg){ + super(msg); + } + +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/exception/MyFileException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/exception/MyFileException.java new file mode 100644 index 0000000..95bfc18 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/exception/MyFileException.java @@ -0,0 +1,18 @@ +package com.ruoyi.framework.exception; + +public class MyFileException extends RuntimeException{ + public MyFileException() { + } + + public MyFileException(String message) { + super(message); + } + + public MyFileException(Throwable cause) { + super(cause); + } + + public MyFileException(String message, Throwable cause) { + super(message, cause); + } +} -- Gitblit v1.9.3