cnas-device/pom.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,37 @@ <?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"> <parent> <artifactId>ruoyi</artifactId> <groupId>com.ruoyi</groupId> <version>3.8.9</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>cnas-device</artifactId> <dependencies> <!--ä¸å¡æ¨¡å--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>inspect-server</artifactId> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-system</artifactId> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-framework</artifactId> </dependency> </dependencies> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> </project> cnas-require/src/main/java/com/ruoyi/requier/controller/DeviceMetricController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package com.ruoyi.requier.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.Result; import com.ruoyi.requier.pojo.DeviceMetric; import com.ruoyi.requier.service.IDeviceMetricService; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController @AllArgsConstructor @RequestMapping("/deviceMetrics") public class DeviceMetricController { @Autowired private IDeviceMetricService deviceMetricService; @PostMapping("/saveOrUpdateDeviceMetric") public Result create(@RequestBody DeviceMetric deviceMetric) { return Result.success(deviceMetricService.saveOrUpdate(deviceMetric)); } @GetMapping("/selectDeviceMetric") public Result read(@RequestParam("deviceId") Integer deviceId, @RequestParam("type") String type) { return Result.success(deviceMetricService.list(Wrappers.<DeviceMetric>lambdaQuery() .eq(DeviceMetric::getDeviceId,deviceId) .eq(DeviceMetric::getType,type))); } @DeleteMapping("/deleteDeviceMetrics") public Result delete(@RequestParam("id") Integer id) { return Result.success(deviceMetricService.removeById(id)); } } cnas-require/src/main/java/com/ruoyi/requier/controller/DeviceMetricRecordController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,134 @@ package com.ruoyi.requier.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.numgen.NumberGenerator; import com.ruoyi.common.utils.FileSaveUtil; import com.ruoyi.requier.dto.DeviceMetricRecordDto; import com.ruoyi.requier.pojo.Device; import com.ruoyi.requier.pojo.DeviceMetricRecord; import com.ruoyi.requier.pojo.DeviceMetricsCopy; import com.ruoyi.requier.service.DeviceMetricRecordService; import com.ruoyi.requier.service.DeviceMetricsCopyService; import com.ruoyi.requier.service.DeviceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Locale; /** * <p> * è®¾å¤æ ¡å - æ ¡åè®°å½ å端æ§å¶å¨ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2024-09-27 10:20:01 */ @Api(tags = "è®¾å¤ - è®¾å¤æ ¡å") @RestController @RequestMapping("/deviceMetricRecord") public class DeviceMetricRecordController { @Autowired private DeviceMetricRecordService deviceMetricRecordService; @Autowired private DeviceMetricsCopyService deviceMetricsCopyService; @Autowired private NumberGenerator<DeviceMetricRecord> numberGenerator; @Autowired private DeviceService deviceService; @ApiOperation("è®¾å¤æ ¡åå页æ¥è¯¢") @GetMapping("/deviceMetricRecordPage") public Result deviceMetricRecordPage(@RequestParam("deviceId") Integer deviceId, Page page, @RequestParam("type") String type) { return Result.success(deviceMetricRecordService.page(page, Wrappers.<DeviceMetricRecord>lambdaQuery() .eq(DeviceMetricRecord::getDeviceId, deviceId) .eq(DeviceMetricRecord::getType, type))); } @ApiOperation("è®¾å¤æ ¡å æ°å¢ æ´æ°") @PostMapping("/addOrUpdateDeviceMetricRecord") public Result addOrUpdateDeviceMetricRecord(@RequestBody DeviceMetricRecordDto deviceMetricRecordDto) { if (ObjectUtils.isEmpty(deviceMetricRecordDto.getProcessNumber())) { String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date()); String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date()); String processNumber = numberGenerator.generateNumberWithPrefix(5, "SBJZ" + year + month, DeviceMetricRecord::getProcessNumber); deviceMetricRecordDto.setProcessNumber(processNumber); } deviceMetricRecordService.saveOrUpdate(deviceMetricRecordDto); if (deviceMetricRecordDto.getType().equals("calibrate")) { deviceService.update(Wrappers.<Device>lambdaUpdate() .set(Device::getCalibrationServices,deviceMetricRecordDto.getUnitOfMeasure()) .eq(Device::getId,deviceMetricRecordDto.getDeviceId())); } if (CollectionUtils.isNotEmpty(deviceMetricRecordDto.getDeviceMetricsCopyList())) { deviceMetricRecordDto.getDeviceMetricsCopyList().forEach(i -> i.setDeviceMetricsId(deviceMetricRecordDto.getId())); deviceMetricsCopyService.saveOrUpdateBatch(deviceMetricRecordDto.getDeviceMetricsCopyList()); } return Result.success(); } @ApiOperation("è®¾å¤æ ¡å å é¤") @DeleteMapping("/deleteDeviceMetricRecord") public Result deleteDeviceMetricRecord(@RequestParam("id") Integer id) { DeviceMetricRecord deviceMetricRecord = deviceMetricRecordService.getById(id); deviceMetricsCopyService.remove(Wrappers.<DeviceMetricsCopy>lambdaQuery() .eq(DeviceMetricsCopy::getDeviceMetricsId, id)); // å 餿件 FileSaveUtil.DeleteFile(deviceMetricRecord.getSystemFileName()); boolean b = deviceMetricRecordService.removeById(id); // ä¿®æ¹è®¾å¤çæ ¡åæºæ if (deviceMetricRecord.getType().equals("calibrate")) { List<DeviceMetricRecord> list = deviceMetricRecordService.list(Wrappers.<DeviceMetricRecord>lambdaQuery() .eq(DeviceMetricRecord::getType,"calibrate") .eq(DeviceMetricRecord::getDeviceId, deviceMetricRecord.getDeviceId())); int size = list.size(); // 设置设å¤ä¸çæ ¡åæºæä¸ºä¸æ¬¡çæºæ deviceService.update(Wrappers.<Device>lambdaUpdate() .set(Device::getCalibrationServices,size == 0 ? null : list.get(size - 1).getUnitOfMeasure()) .eq(Device::getId,deviceMetricRecord.getDeviceId())); } return Result.success(b); } @ApiOperation("è®¾å¤æ ¡å æ ¡åæ¡ç®æ¥è¯¢") @GetMapping("/showDeviceMetricsCopy") public Result showDeviceMetricsCopy(@RequestParam("id") Integer id, @RequestParam("type") String type) { return Result.success(deviceMetricsCopyService.list(Wrappers.<DeviceMetricsCopy>lambdaQuery() .eq(DeviceMetricsCopy::getDeviceMetricsId, id) .eq(DeviceMetricsCopy::getType, type))); } @GetMapping("/deviceMetricRecordExport") public Result deviceMetricRecordExport(@RequestParam("deviceId") Integer deviceId, @RequestParam("type") String type, HttpServletResponse response) throws IOException { List<DeviceMetricRecord> list = deviceMetricRecordService.page(new Page<>(-1,-1), Wrappers.<DeviceMetricRecord>lambdaQuery() .eq(DeviceMetricRecord::getDeviceId, deviceId) .eq(DeviceMetricRecord::getType, type)).getRecords(); list.forEach(i -> i.setStatus(i.getStatus().equals("0yes") ? "åæ ¼" : "ä¸åæ ¼")); response.setHeader("requestType", "excel"); response.setHeader("Access-Control-Expose-Headers", "requestType"); // 设置åå æ ¼æ ·å¼ // ä¿åå°ç¬¬ä¸ä¸ªsheetä¸ EasyExcel.write(response.getOutputStream()) .head(DeviceMetricRecord.class) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // èªéåºå宽 .sheet() .doWrite(list); return Result.success(); } } cnas-require/src/main/java/com/ruoyi/requier/dto/DeviceMetricRecordDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.ruoyi.requier.dto; import com.ruoyi.requier.pojo.DeviceMetricRecord; import com.ruoyi.requier.pojo.DeviceMetricsCopy; import lombok.Data; import java.util.List; @Data public class DeviceMetricRecordDto extends DeviceMetricRecord { private List<DeviceMetricsCopy> deviceMetricsCopyList; } cnas-require/src/main/java/com/ruoyi/requier/mapper/DeviceMetricMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ package com.ruoyi.requier.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.requier.pojo.DeviceMetric; import org.apache.ibatis.annotations.Mapper; @Mapper public interface DeviceMetricMapper extends BaseMapper<DeviceMetric> { } cnas-require/src/main/java/com/ruoyi/requier/mapper/DeviceMetricsCopyMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.requier.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.requier.pojo.DeviceMetricsCopy; /** * <p> * è®¾å¤æ ¡å - æ ¡åè®°å½ - æ ¡åæ¡ç® Mapper æ¥å£ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2024-09-27 10:20:11 */ public interface DeviceMetricsCopyMapper extends BaseMapper<DeviceMetricsCopy> { } cnas-require/src/main/java/com/ruoyi/requier/pojo/DeviceMetric.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.ruoyi.requier.pojo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.time.LocalDateTime; @Data @TableName("device_metrics") public class DeviceMetric implements Serializable { @TableId(value = "id", type = IdType.AUTO) private Integer id; //id private Integer deviceId; // 设å¤ID private String measurementParameter; // 计éåæ° private String rangeOfMeasurement; // éç¨èå´ private String maxPermissibleError; // æå¤§å 许误差 private String judgmentCriteria; // å¤å®æ å private String createdBy; // å建人 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime creationTime; // å建æ¶é´ @ApiModelProperty("calibrateï¼æ ¡åï¼examineï¼æ ¸æ¥") private String type; // ç±»å } cnas-require/src/main/java/com/ruoyi/requier/pojo/DeviceMetricRecord.java
@@ -94,8 +94,8 @@ @ApiModelProperty("å建æ¶é´ / ç»è®°æ¥æ") @TableField(fill = FieldFill.INSERT) @ExcelProperty(value = "ç»è®°æ¥æ",index = 9) @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ColumnWidth(20) private LocalDateTime createTime; cnas-require/src/main/java/com/ruoyi/requier/pojo/DeviceMetricsCopy.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,73 @@ package com.ruoyi.requier.pojo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import 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.LocalDateTime; /** * <p> * è®¾å¤æ ¡å - æ ¡åè®°å½ - æ ¡åæ¡ç® * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2024-09-27 10:20:11 */ @Getter @Setter @TableName("device_metrics_copy") @ApiModel(value = "DeviceMetricsCopy对象", description = "è®¾å¤æ ¡å - æ ¡åè®°å½ - æ ¡åæ¡ç®") @ExcelIgnoreUnannotated public class DeviceMetricsCopy implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("id") @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty("è®¾å¤æ ¡å - æ ¡åè®°å½id") private Integer deviceMetricsId; @ApiModelProperty("计éåæ°") private String measurementParameter; @ApiModelProperty("éç¨èå´") private String rangeOfMeasurement; @ApiModelProperty("æå¤§å 许误差") private String maxPermissibleError; @ApiModelProperty("å¤å®æ å") private String judgmentCriteria; @ApiModelProperty("å建人") private String createdBy; @ApiModelProperty("å建æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDateTime creationTime; @ApiModelProperty("æ¯å¦æ ¡å") private String isCalibration; @ApiModelProperty("å¤å®ç»æ") private String result; @ApiModelProperty("åé¡¹ç»æè¯´æ") private String singleResultStatement; @ApiModelProperty("calibrateï¼æ ¡åï¼examineï¼æ ¸æ¥") private String type; } cnas-require/src/main/java/com/ruoyi/requier/service/DeviceMetricRecordService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.requier.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.requier.pojo.DeviceMetricRecord; /** * <p> * è®¾å¤æ ¡å - æ ¡åè®°å½ æå¡ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2024-09-27 10:20:01 */ public interface DeviceMetricRecordService extends IService<DeviceMetricRecord> { } cnas-require/src/main/java/com/ruoyi/requier/service/DeviceMetricsCopyService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.requier.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.requier.pojo.DeviceMetricsCopy; /** * <p> * è®¾å¤æ ¡å - æ ¡åè®°å½ - æ ¡åæ¡ç® æå¡ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2024-09-27 10:20:11 */ public interface DeviceMetricsCopyService extends IService<DeviceMetricsCopy> { } cnas-require/src/main/java/com/ruoyi/requier/service/IDeviceMetricService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,7 @@ package com.ruoyi.requier.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.requier.pojo.DeviceMetric; public interface IDeviceMetricService extends IService<DeviceMetric> { } cnas-require/src/main/java/com/ruoyi/requier/service/impl/DeviceMetricRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.requier.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.requier.mapper.DeviceMetricRecordMapper; import com.ruoyi.requier.pojo.DeviceMetricRecord; import com.ruoyi.requier.service.DeviceMetricRecordService; import org.springframework.stereotype.Service; /** * <p> * è®¾å¤æ ¡å - æ ¡åè®°å½ æå¡å®ç°ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2024-09-27 10:20:01 */ @Service public class DeviceMetricRecordServiceImpl extends ServiceImpl<DeviceMetricRecordMapper, DeviceMetricRecord> implements DeviceMetricRecordService { } cnas-require/src/main/java/com/ruoyi/requier/service/impl/DeviceMetricServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,11 @@ package com.ruoyi.requier.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.requier.mapper.DeviceMetricMapper; import com.ruoyi.requier.pojo.DeviceMetric; import com.ruoyi.requier.service.IDeviceMetricService; import org.springframework.stereotype.Service; @Service public class DeviceMetricServiceImpl extends ServiceImpl<DeviceMetricMapper, DeviceMetric> implements IDeviceMetricService { } cnas-require/src/main/java/com/ruoyi/requier/service/impl/DeviceMetricsCopyServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.requier.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.requier.mapper.DeviceMetricsCopyMapper; import com.ruoyi.requier.pojo.DeviceMetricsCopy; import com.ruoyi.requier.service.DeviceMetricsCopyService; import org.springframework.stereotype.Service; /** * <p> * è®¾å¤æ ¡å - æ ¡åè®°å½ - æ ¡åæ¡ç® æå¡å®ç°ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2024-09-27 10:20:11 */ @Service public class DeviceMetricsCopyServiceImpl extends ServiceImpl<DeviceMetricsCopyMapper, DeviceMetricsCopy> implements DeviceMetricsCopyService { } cnas-require/src/main/resources/mapper/DeviceMetricRecordMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.requier.mapper.DeviceMetricRecordMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.requier.pojo.DeviceMetricRecord"> <id column="id" property="id" /> <result column="unit_of_measure" property="unitOfMeasure" /> <result column="calibration_date" property="calibrationDate" /> <result column="next_calibration_date" property="nextCalibrationDate" /> <result column="calculating_apparatus" property="calculatingApparatus" /> <result column="standard_range" property="standardRange" /> <result column="calibration_standard_uncertainty" property="calibrationStandardUncertainty" /> <result column="by_document" property="byDocument" /> <result column="certificate_serial_number" property="certificateSerialNumber" /> <result column="status" property="status" /> <result column="file_name" property="fileName" /> <result column="system_file_name" property="systemFileName" /> <result column="remark" property="remark" /> </resultMap> </mapper> cnas-require/src/main/resources/mapper/DeviceMetricsCopyMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.requier.mapper.DeviceMetricsCopyMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.requier.pojo.DeviceMetricsCopy"> <id column="id" property="id" /> <result column="measurement_parameter" property="measurementParameter" /> <result column="range_of_measurement" property="rangeOfMeasurement" /> <result column="max_permissible_error" property="maxPermissibleError" /> <result column="judgment_criteria" property="judgmentCriteria" /> <result column="created_by" property="createdBy" /> <result column="creation_time" property="creationTime" /> <result column="is_calibration" property="isCalibration" /> <result column="result" property="result" /> <result column="single_result_statement" property="singleResultStatement" /> </resultMap> </mapper> pom.xml
@@ -394,10 +394,10 @@ <module>inspect-server</module> <module>performance-server</module> <module>cnas-manage</module> <module>cnas-device</module> <module>cnas-process</module> <module>cnas-require</module> <module>cnas_server</module> <module>cnas-device</module> <module>cnas-personnel</module> </modules> <packaging>pom</packaging>