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> 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"); // 设置åå æ ¼æ ·å¼ // ä¿åå°ç¬¬ä¸ä¸ªsheetä¸ 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 = "é弿º¯æºè®¡å导åºword") @GetMapping("/exportWordOfValueTraceabilityPlan") public void exportWordOfValueTraceabilityPlan(HttpServletResponse response) throws IOException { feCalibrationScheduleService.exportWordOfValueTraceabilityPlan(response); } } 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(); } } 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"); // 设置åå æ ¼æ ·å¼ // ä¿åå°ç¬¬ä¸ä¸ªsheetä¸ EasyExcel.write(response.getOutputStream()) .head(FeStandardSubstanceExcel.class) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // èªéåºå宽 .sheet("sheet") .doWrite(studentList); } } 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); } } 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; } 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; } 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; } 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; } 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); } 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> { } 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); } 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); } 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); } 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; } 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; } 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("å家代表") @ExcelProperty("å家代表") 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; } 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; } 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; } 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); /** * é弿º¯æºè®¡å导åºword * * @param response ååºæ·»å word */ void exportWordOfValueTraceabilityPlan(HttpServletResponse response); } 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> { } 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); } 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); } 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); } 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("导åºå¤±è´¥"); } } } 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 { } 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å¯ä»¥é²æ¢ä¸æä¹±ç å½ç¶åeasyexcel没æå ³ç³» 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("导åºå¤±è´¥"); } } } 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); } } 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); } } 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; } 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; } 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; } 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> 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); } } 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> 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> 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); } } 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); } }