cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExaminePlanController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,273 @@ package com.ruoyi.device.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.device.dto.DeviceExaminePlanDto; import com.ruoyi.device.dto.DeviceExamineRecordContrastDto; import com.ruoyi.device.dto.DeviceExamineRecordDto; import com.ruoyi.device.pojo.DeviceExaminePlan; import com.ruoyi.device.pojo.DeviceExaminePlanDetails; import com.ruoyi.device.service.DeviceExaminePlanDetailsService; import com.ruoyi.device.service.DeviceExaminePlanService; import com.ruoyi.device.service.DeviceExamineRecordContrastService; import com.ruoyi.device.service.DeviceExamineRecordService; import com.ruoyi.framework.exception.ErrorException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.Map; /** * <p> * è®¾å¤æ ¸æ¥è®¡å主表 å端æ§å¶å¨ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:04 */ @Api(tags = "è®¾å¤æ ¸æ¥è®¡å") @AllArgsConstructor @RestController @RequestMapping("/deviceExaminePlan") public class DeviceExaminePlanController { private DeviceExaminePlanService deviceExaminePlanService; private DeviceExaminePlanDetailsService deviceExaminePlanDetailsService; private DeviceExamineRecordService deviceExamineRecordService; private DeviceExamineRecordContrastService deviceExamineRecordContrastService; /** * æ°å¢è®¾å¤æ ¸æ¥è®¡å * @return */ @ApiOperation(value = "æ°å¢è®¾å¤æ ¸æ¥è®¡å") @PostMapping("/addDeviceExaminePlan") public Result addDeviceExaminePlan(@RequestBody DeviceExaminePlanDto examinePlanDto){ return Result.success(deviceExaminePlanService.addDeviceExaminePlan(examinePlanDto)); } /** * ä¿®æ¹è®¾å¤æ ¸æ¥è®¡å * @param examinePlanDto è®¾å¤æ ¸æ¥è®¡å */ @ApiOperation("æ¹éä¿®æ¹è®¾å¤æ ¸æ¥è®¡å") @PostMapping("/updateDeviceExaminePlan") public Result updateDeviceExaminePlan(@RequestBody DeviceExaminePlanDto examinePlanDto) { return Result.success(deviceExaminePlanService.updateDeviceExaminePlan(examinePlanDto)); } /** * æ¥è¯¢è®¾å¤æ ¸æ¥è®¡å详æ */ @ApiOperation("æ¥è¯¢è®¾å¤æ ¸æ¥è®¡å详æ ") @GetMapping("/getDeviceExaminePlan") public Result<DeviceExaminePlanDto> getDeviceExaminePlan(Integer planId) { return Result.success(deviceExaminePlanService.getDeviceExaminePlan(planId)); } /** * å¯¼å ¥è®¾å¤æ ¸æ¥è®¡å * @return */ @ApiOperation(value = "å¯¼å ¥è®¾å¤æ ¸æ¥è®¡å") @PostMapping("/importDeviceExaminePlan") public Result importDeviceExaminePlan(MultipartFile file){ return Result.success(deviceExaminePlanService.importDeviceExaminePlan(file)); } /** * è®¾å¤æ ¸æ¥è®¡åå é¤ * @return */ @ApiOperation(value = "è®¾å¤æ ¸æ¥è®¡åå é¤") @GetMapping("/delQualitySupervise") public Result delQualitySupervise(Integer planId){ return Result.success(deviceExaminePlanService.removeById(planId)); } /** * è®¾å¤æ ¸æ¥è®¡åæ¹å * @return */ @ApiOperation(value = "æäº¤æ¹å") @PostMapping("/submitRatifyDeviceExaminePlan") public Result submitRatifyDeviceExaminePlan(@RequestBody DeviceExaminePlan DeviceExaminePlan){ return Result.success(deviceExaminePlanService.submitRatifyDeviceExaminePlan(DeviceExaminePlan)); } /** * è®¾å¤æ ¸æ¥è®¡åæ¹å * @return */ @ApiOperation(value = "è®¾å¤æ ¸æ¥è®¡åæ¹å") @PostMapping("/ratifyDeviceExaminePlan") public Result ratifyDeviceExaminePlan(@RequestBody DeviceExaminePlan DeviceExaminePlan){ return Result.success(deviceExaminePlanService.ratifyDeviceExaminePlan(DeviceExaminePlan)); } /** * è®¾å¤æ ¸æ¥è®¡åå表 * @return */ @ApiOperation(value = "è®¾å¤æ ¸æ¥è®¡åå表") @PostMapping("/pageDeviceExaminePlan") public Result<IPage<DeviceExaminePlanDto>> pageDeviceExaminePlan(Page page, DeviceExaminePlan DeviceExaminePlan) { return Result.success(deviceExaminePlanService.pageDeviceExaminePlan(page, DeviceExaminePlan)); } /** * è®¾å¤æ ¸æ¥è®¡å详æ å表 * @return */ @ApiOperation(value = "è®¾å¤æ ¸æ¥è®¡å详æ å表") @PostMapping("/pageDeviceExaminePlanDetail") public Result<IPage<DeviceExaminePlanDetails>> pageDeviceExaminePlanDetail(Page page, DeviceExaminePlanDetails deviceExaminePlanDetails) { return Result.success(deviceExaminePlanService.pageDeviceExaminePlanDetail(page, deviceExaminePlanDetails)); } /** * æ°å¢è®¾å¤æ ¸æ¥è®¡å详æ * @return */ @ApiOperation(value = "æ°å¢è®¾å¤æ ¸æ¥è®¡å详æ ") @PostMapping("/addDeviceExaminePlanDetail") public Result addDeviceExaminePlanDetail(@RequestBody DeviceExaminePlanDetails deviceExaminePlanDetail){ if (deviceExaminePlanDetail.getPlanId() == null) { throw new ErrorException("缺å°è®¾å¤æ ¸æ¥è®¡å主表id"); } return Result.success(deviceExaminePlanDetailsService.save(deviceExaminePlanDetail)); } /** * ä¿®æ¹è®¾å¤æ ¸æ¥è®¡å详æ * @return */ @ApiOperation(value = "ä¿®æ¹è®¾å¤æ ¸æ¥è®¡å详æ ") @PostMapping("/updateDeviceExaminePlanDetail") public Result updateDeviceExaminePlanDetail(@RequestBody DeviceExaminePlanDetails deviceExaminePlanDetail){ return Result.success(deviceExaminePlanDetailsService.updateById(deviceExaminePlanDetail)); } /** * å é¤è®¾å¤æ ¸æ¥è®¡å详æ * @return */ @ApiOperation(value = "å é¤è®¾å¤æ ¸æ¥è®¡å详æ ") @GetMapping("/delDeviceExaminePlanDetail") public Result delDeviceExaminePlanDetail(Integer planDetailsId){ return Result.success(deviceExaminePlanDetailsService.removeById(planDetailsId)); } /** * 导åºè®¾å¤æ ¸æ¥è®¡å * @param planId è®¾å¤æ ¸æ¥è®¡åid * @return */ @ApiOperation(value = "导åºè®¾å¤æ ¸æ¥è®¡å") @GetMapping("/exportDeviceExaminePlanDetail") public void exportDeviceExaminePlanDetail(Integer planId, HttpServletResponse response){ deviceExaminePlanService.exportDeviceExaminePlanDetail(planId, response); } /*********************************************** æ¥å **************************************************/ /** * æ¥è¯¢æ ¸æ¥è®°å½ * @return */ @ApiOperation(value = "æ¥è¯¢æ ¸æ¥è®°å½") @GetMapping("/getExamineRecord") public Result<DeviceExamineRecordDto> getExamineRecord(Integer planDetailsId){ return Result.success(deviceExamineRecordService.getExamineRecord(planDetailsId)); } /** * æ°å¢æ ¸æ¥è®°å½ * @return */ @ApiOperation(value = "æ°å¢æ ¸æ¥è®°å½") @PostMapping("/addExamineRecord") public Result addExamineRecord(@RequestBody DeviceExamineRecordDto deviceExamineRecordDto){ return Result.success(deviceExamineRecordService.addExamineRecord(deviceExamineRecordDto)); } /** * 夿 ¸æ ¸æ¥è®°å½ * @return */ @ApiOperation(value = "夿 ¸æ ¸æ¥è®°å½") @PostMapping("/reviewExamineRecord") public Result reviewExamineRecord(@RequestBody DeviceExamineRecordDto deviceExamineRecordDto){ return Result.success(deviceExamineRecordService.reviewExamineRecord(deviceExamineRecordDto)); } /** * 导åºå¤æ ¸æ ¸æ¥è®°å½ * @param planDetailsId * @return */ @ApiOperation(value = "导åºå¤æ ¸æ ¸æ¥è®°å½") @GetMapping("/exportReviewExamineRecordDetail") public void exportReviewExamineRecordDetail(Integer planDetailsId, HttpServletResponse response){ deviceExamineRecordService.exportReviewExamineRecordDetail(planDetailsId, response); } /*********************************************** æ¥åå¯¹æ¯ **************************************************/ /** * æ¥è¯¢æ ¸æ¥å¯¹æ¯è®°å½ * @return */ @ApiOperation(value = "æ¥è¯¢æ ¸æ¥å¯¹æ¯è®°å½") @GetMapping("/getExamineRecordContrast") public Result<DeviceExamineRecordContrastDto> getExamineRecordContrast(Integer planDetailsId){ return Result.success(deviceExamineRecordContrastService.getExamineRecordContrast(planDetailsId)); } /** * æ°å¢æ ¸æ¥å¯¹æ¯è®°å½ * @return */ @ApiOperation(value = "æ°å¢æ ¸æ¥å¯¹æ¯è®°å½") @PostMapping("/addExamineRecordContrast") public Result addExamineRecordContrast(@RequestBody DeviceExamineRecordContrastDto deviceExamineRecordContrastDto){ return Result.success(deviceExamineRecordContrastService.addExamineRecordContrast(deviceExamineRecordContrastDto)); } /** * å®¡æ ¸æ ¸æ¥å¯¹æ¯è®°å½ * @return */ @ApiOperation(value = "å®¡æ ¸æ ¸æ¥å¯¹æ¯è®°å½") @PostMapping("/reviewExamineRecordContrast") public Result reviewExamineRecordContrast(@RequestBody DeviceExamineRecordContrastDto deviceExamineRecordContrastDto){ return Result.success(deviceExamineRecordContrastService.reviewExamineRecordContrast(deviceExamineRecordContrastDto)); } /** * 导åºå®¡æ ¸æ ¸æ¥å¯¹æ¯è®°å½ * @param planDetailsId * @return */ @ApiOperation(value = "导åºå®¡æ ¸æ ¸æ¥å¯¹æ¯è®°å½") @GetMapping("/exportReviewExamineRecordContrast") public Result exportReviewExamineRecordContrast(Integer planDetailsId, HttpServletResponse response){ deviceExamineRecordContrastService.exportReviewExamineRecordContrast(planDetailsId, response); return Result.success(); } } cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExaminePlanDetailsDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.device.dto; import com.ruoyi.device.pojo.DeviceExaminePlanDetails; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * Author: yuan * Date: 2024-12-17 ææäº 15:34:44 * Description: */ @Data public class DeviceExaminePlanDetailsDto extends DeviceExaminePlanDetails { @ApiModelProperty("åºå·") private Integer index; } cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExaminePlanDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package com.ruoyi.device.dto; import com.ruoyi.device.pojo.DeviceExaminePlan; import com.ruoyi.device.pojo.DeviceExaminePlanDetails; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @Author zhuo * @Date 2024/12/16 */ @Data public class DeviceExaminePlanDto extends DeviceExaminePlan { @ApiModelProperty("ç¼å¶äºº") private String writeName; @ApiModelProperty("æ¹å人") private String ratifyName; @ApiModelProperty("ç¼å¶æ¶é´") private String writeTimeStr; @ApiModelProperty("æ¹åæ¶é´") private String ratifyTimeStr; @ApiModelProperty("年度") private String year; private List<DeviceExaminePlanDetails> examinePlanDetailsList; } cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordContrastDetailsDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.device.dto; import com.ruoyi.device.pojo.DeviceExamineRecordContrastDetails; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * Author: yuan * Date: 2024-12-17 ææäº 13:59:37 * Description: */ @Data public class DeviceExamineRecordContrastDetailsDto extends DeviceExamineRecordContrastDetails { @ApiModelProperty("åºå·") private Integer index; } cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordContrastDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package com.ruoyi.device.dto; import com.ruoyi.device.pojo.DeviceExamineRecordContrast; import com.ruoyi.device.pojo.DeviceExamineRecordContrastDetails; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @Author zhuo * @Date 2024/12/16 */ @Data public class DeviceExamineRecordContrastDto extends DeviceExamineRecordContrast { @ApiModelProperty("æ ¸æ¥è®°å½å¯¹æ¯è¯¦æ ") private List<DeviceExamineRecordContrastDetails> recordContrastDetailsList; @ApiModelProperty("A设å¤åç§°") private String aDeviceName; @ApiModelProperty("A设å¤ç¼å·") private String aDeviceNumber; @ApiModelProperty("b设å¤åç§°") private String bDeviceName; @ApiModelProperty("b设å¤ç¼å·") private String bDeviceNumber; @ApiModelProperty("c设å¤åç§°") private String cDeviceName; @ApiModelProperty("c设å¤ç¼å·") private String cDeviceNumber; @ApiModelProperty("æ ¸æ¥æ¥æ") private String checkerTimeStr; @ApiModelProperty("å®¡æ ¸æ¥æ") private String reviewTimeStr; @ApiModelProperty("å®éªå®¤") private String labName; } cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.ruoyi.device.dto; import com.ruoyi.device.pojo.DeviceExamineRecord; import com.ruoyi.device.pojo.DeviceExamineRecordDetail; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @Author zhuo * @Date 2024/12/16 */ @Data public class DeviceExamineRecordDto extends DeviceExamineRecord { @ApiModelProperty("æ ¸æ¥è®°å½è¯¦æ ") private List<DeviceExamineRecordDetail> recordDetailList; @ApiModelProperty("设å¤åç§°") private String deviceName; @ApiModelProperty("设å¤ç¼å·") private String deviceNumber; @ApiModelProperty("æå䏿¬¡ä¿®æ¹æ¥æ") private String updateTimeStr; } cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExaminePlanDetailsMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package com.ruoyi.device.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.device.pojo.DeviceExaminePlanDetails; import org.apache.ibatis.annotations.Param; /** * <p> * è®¾å¤æ ¸æ¥è®¡å详æ 表 Mapper æ¥å£ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:16 */ public interface DeviceExaminePlanDetailsMapper extends BaseMapper<DeviceExaminePlanDetails> { /** * è®¾å¤æ ¸æ¥è®¡å详æ å表 * @param page * @param ew * @return */ IPage<DeviceExaminePlanDetails> pageDeviceExaminePlanDetail(Page page, @Param("ew") QueryWrapper<DeviceExaminePlanDetails> ew); } cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExaminePlanMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package com.ruoyi.device.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.device.dto.DeviceExaminePlanDto; import com.ruoyi.device.pojo.DeviceExaminePlan; import org.apache.ibatis.annotations.Param; /** * <p> * è®¾å¤æ ¸æ¥è®¡å主表 Mapper æ¥å£ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:04 */ public interface DeviceExaminePlanMapper extends BaseMapper<DeviceExaminePlan> { /** * è®¾å¤æ ¸æ¥è®¡åå表 * @param page * @param ew * @return */ IPage<DeviceExaminePlanDto> deviceExaminePlanDetailsMapper(Page page, @Param("ew") QueryWrapper<DeviceExaminePlan> ew); /** * æ¥è¯¢è®¾å¤æ ¸æ¥è®¡å详æ * @param deviceExaminePlanId è®¾å¤æ ¸æ¥è®¡åid * @return */ DeviceExaminePlanDto selectExamineExaminePlanDto(@Param("deviceExaminePlanId") Integer deviceExaminePlanId); } cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordContrastDetailsMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.device.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.device.pojo.DeviceExamineRecordContrastDetails; /** * <p> * è®¾å¤æ ¸æ¥è®°å½å¯¹æ¯è¯¦æ 表 Mapper æ¥å£ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:57 */ public interface DeviceExamineRecordContrastDetailsMapper extends BaseMapper<DeviceExamineRecordContrastDetails> { } cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordContrastMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.ruoyi.device.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.device.dto.DeviceExamineRecordContrastDto; import com.ruoyi.device.pojo.DeviceExamineRecordContrast; import org.apache.ibatis.annotations.Param; /** * <p> * è®¾å¤æ ¸æ¥è®°å½å¯¹æ¯è¡¨ Mapper æ¥å£ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:43 */ public interface DeviceExamineRecordContrastMapper extends BaseMapper<DeviceExamineRecordContrast> { /** * æ¥è¯¢æ ¸æ¥å¯¹æ¯è®°å½ * @param planDetailsId * @return */ DeviceExamineRecordContrastDto getExamineRecordContrast(Integer planDetailsId); /** * æ¥è¯¢å¯¹æ¯è®°å½ç¨äºå¯¼åº * @param planDetailsId * @return */ DeviceExamineRecordContrastDto selectExamineRecordContrastDto(@Param("planDetailsId") Integer planDetailsId); } cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordDetailMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.device.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.device.pojo.DeviceExamineRecordDetail; /** * <p> * è®¾å¤æ ¸æ¥è®°å½è¯¦æ 表 Mapper æ¥å£ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:15:11 */ public interface DeviceExamineRecordDetailMapper extends BaseMapper<DeviceExamineRecordDetail> { } cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.ruoyi.device.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.device.dto.DeviceExamineRecordDto; import com.ruoyi.device.pojo.DeviceExamineRecord; import org.apache.ibatis.annotations.Param; /** * <p> * è®¾å¤æ ¸æ¥è®°å½è¡¨ Mapper æ¥å£ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:28 */ public interface DeviceExamineRecordMapper extends BaseMapper<DeviceExamineRecord> { /** * æ¥è¯¢è®¾å¤æ ¸æ¥è®°å½ * @param planDetailsId * @return */ DeviceExamineRecordDto getExamineRecord(Integer planDetailsId); /** * 夿 ¸æ ¸æ¥è®°å½ * @param planDetailsId 夿 ¸æ ¸æ¥è®°å½id * @return */ DeviceExamineRecordDto selectReviewExamineRecordDto(@Param("planDetailsId") Integer planDetailsId); } cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExternalApplyMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.ruoyi.device.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.device.pojo.DeviceExternalApply; import org.apache.ibatis.annotations.Param; /** * <p> * å©ç¨å¤é¨è®¾å¤ç³è¯·è¡¨ Mapper æ¥å£ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-17 10:28:43 */ public interface DeviceExternalApplyMapper extends BaseMapper<DeviceExternalApply> { /** * å©ç¨å¤é¨è®¾å¤ç³è¯·å表 * @param page * @param ew * @return */ IPage<DeviceExternalApply> pageDeviceExternalApply(Page page, @Param("ew") QueryWrapper<DeviceExternalApply> ew); /** * å¯¼åºæ¥è¯¢å©ç¨å¤é¨è®¾å¤ç³è¯· * @param externalApplyId å¤é¨è®¾å¤ç³è¯·è¡¨id * @return */ DeviceExternalApply selectDeviceExternalById(@Param("externalApplyId") Integer externalApplyId); } cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExaminePlan.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ package com.ruoyi.device.pojo; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import java.time.LocalDateTime; /** * <p> * è®¾å¤æ ¸æ¥è®¡å主表 * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:04 */ @Getter @Setter @TableName("device_examine_plan") @ApiModel(value = "DeviceExaminePlan对象", description = "è®¾å¤æ ¸æ¥è®¡å主表") public class DeviceExaminePlan{ @TableId(value = "plan_id", type = IdType.AUTO) private Integer planId; @ApiModelProperty("计ååç§°") private String planName; @ApiModelProperty("计ååç§°") private String planYear; @ApiModelProperty("ç¼å¶äºº") private Integer writeUserId; @ApiModelProperty("ç¼å¶æ¶é´") private LocalDateTime writeTime; @ApiModelProperty("æ¹å人") private Integer ratifyUserId; @ApiModelProperty("æ¹åæ¶é´") private LocalDateTime ratifyTime; @ApiModelProperty("æ¹åç¶æ,0 ä¸éè¿, 1 éè¿") private Integer ratifyStatus; @ApiModelProperty("æ¹åä¿¡æ¯") private String ratifyRemark; @ApiModelProperty("å建人") @TableField(fill = FieldFill.INSERT) private Integer createUser; @ApiModelProperty("å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("ä¿®æ¹äºº") @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @ApiModelProperty("ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; } cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExaminePlanDetails.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,76 @@ package com.ruoyi.device.pojo; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import java.time.LocalDateTime; /** * <p> * è®¾å¤æ ¸æ¥è®¡å详æ 表 * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:16 */ @Getter @Setter @TableName("device_examine_plan_details") @ApiModel(value = "DeviceExaminePlanDetails对象", description = "è®¾å¤æ ¸æ¥è®¡å详æ 表") public class DeviceExaminePlanDetails { @TableId(value = "plan_details_id", type = IdType.AUTO) private Integer planDetailsId; @ApiModelProperty("主表id") private Integer planId; @ApiModelProperty("设å¤id") private Integer deviceId; @ApiModelProperty("设å¤ç¼å·") private String deviceNumber; @ApiModelProperty("计ååç§°") private String deviceName; @ApiModelProperty("æ ¸æ¥æ¶é´") private String checkTime; @ApiModelProperty("æ ¸æ¥ææ ") private String checkIndex; @ApiModelProperty("æ ¸æ¥æ¹æ³") private String checkMethod; @ApiModelProperty("ç»æå¦ä½å¤å®") private String howResults; @ApiModelProperty("æ ¸æ¥è´£ä»»äººid") private Integer checkChargerUserId; @ApiModelProperty("æ ¸æ¥è´£ä»»äºº") private String checkChargerUser; @ApiModelProperty("夿³¨") private String remark; @ApiModelProperty("å建人") @TableField(fill = FieldFill.INSERT) private Integer createUser; @ApiModelProperty("å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("ä¿®æ¹äºº") @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @ApiModelProperty("ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; } cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecord.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,139 @@ package com.ruoyi.device.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-12-16 07:14:28 */ @Getter @Setter @TableName("device_examine_record") @ApiModel(value = "DeviceExamineRecord对象", description = "è®¾å¤æ ¸æ¥è®°å½è¡¨") public class DeviceExamineRecord implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "record_id", type = IdType.AUTO) private Integer recordId; @ApiModelProperty("è®¾å¤æ ¸æ¥è¯¦æ id") private Integer planDetailsId; @ApiModelProperty("精度ç级") private String accuracyGrade; @ApiModelProperty("使ç¨ç©è´¨åç§°") private String materialName; @ApiModelProperty("使ç¨ç©è´¨ç®¡çç¼å·") private String materialNumber; @ApiModelProperty("使ç¨ç©è´¨ç²¾åº¦/ä¸ç¡®å®åº¦") private String materialAccuracyUncertainty; @ApiModelProperty("使ç¨ç©è´¨è§æ ¼åå·") private String materialModel; @ApiModelProperty("使ç¨ç©è´¨æ ¸æ¥æ¹å¼") private String materialCheckMethod; @ApiModelProperty("使ç¨ç©è´¨æ ¸æ¥é¡¹ç®") private String materialCheckItems; @ApiModelProperty("温度") private String temperature; @ApiModelProperty("湿度") private String humidity; @ApiModelProperty("å¤å®") private String determine; @ApiModelProperty("夿³¨") private String remark; @ApiModelProperty("æ ¸æ¥äººid") private Integer checkerUserId; @ApiModelProperty("æ ¸æ¥äºº") private String checkerUser; @ApiModelProperty("夿 ¸äººid") private Integer reviewUserId; @ApiModelProperty("夿 ¸äºº") private String reviewUser; @ApiModelProperty("å®¡æ ¸ç¶æ0,ä¸éè¿, 1éè¿") private Integer reviewStatus; @ApiModelProperty("å®¡æ ¸å¤æ³¨") private String reviewRemark; @ApiModelProperty("æµè¯ç¹1") private String dataValue1; @ApiModelProperty("æµè¯ç¹2") private String dataValue2; @ApiModelProperty("æµè¯ç¹3") private String dataValue3; @ApiModelProperty("æµè¯ç¹4") private String dataValue4; @ApiModelProperty("æµè¯ç¹5") private String dataValue5; @ApiModelProperty("æµè¯ç¹6") private String dataValue6; @ApiModelProperty("æå¤§åå·®1") private String maximun1; @ApiModelProperty("æå¤§åå·®2") private String maximun2; @ApiModelProperty("æå¤§åå·®3") private String maximun3; @ApiModelProperty("æå¤§åå·®4") private String maximun4; @ApiModelProperty("æå¤§åå·®5") private String maximun5; @ApiModelProperty("æå¤§åå·®6") private String maximun6; @ApiModelProperty("ç¸å¯¹åå·®1") private String relative1; @ApiModelProperty("ç¸å¯¹åå·®2") private String relative2; @ApiModelProperty("ç¸å¯¹åå·®3") private String relative3; @ApiModelProperty("ç¸å¯¹åå·®4") private String relative4; @ApiModelProperty("ç¸å¯¹åå·®5") private String relative5; @ApiModelProperty("ç¸å¯¹åå·®6") private String relative6; @ApiModelProperty("å建人") @TableField(fill = FieldFill.INSERT) private Integer createUser; @ApiModelProperty("å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("ä¿®æ¹äºº") @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @ApiModelProperty("ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; } cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordContrast.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,97 @@ package com.ruoyi.device.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-12-16 07:14:43 */ @Getter @Setter @TableName("device_examine_record_contrast") @ApiModel(value = "DeviceExamineRecordContrast对象", description = "è®¾å¤æ ¸æ¥è®°å½å¯¹æ¯è¡¨") public class DeviceExamineRecordContrast implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "record_contrast_id", type = IdType.AUTO) private Integer recordContrastId; @ApiModelProperty("æ ¸æ¥æ¹å¼") private String checkMethod; @ApiModelProperty("è®¾å¤æ ¸æ¥è¯¦æ id") private Integer planDetailsId; @ApiModelProperty("设å¤idA") private Integer aDeviceId; @ApiModelProperty("设å¤idb") private Integer bDeviceId; @ApiModelProperty("设å¤idc") private Integer cDeviceId; @ApiModelProperty("èå´ä¸ç¡®å®åº¦A") private String aRangeUncertainty; @ApiModelProperty("èå´ä¸ç¡®å®åº¦b") private String bRangeUncertainty; @ApiModelProperty("èå´ä¸ç¡®å®åº¦c") private String cRangeUncertainty; @ApiModelProperty("综åå¤å®") private String judgment; @ApiModelProperty("æ ¸æ¥äººid") private Integer checkerUserId; @ApiModelProperty("æ ¸æ¥äºº") private String checkerUser; @ApiModelProperty("æ ¸æ¥æ¥æ") private LocalDateTime checkerTime; @ApiModelProperty("å®¡æ ¸äººid") private Integer reviewUserId; @ApiModelProperty("å®¡æ ¸äºº") private String reviewUser; @ApiModelProperty("å®¡æ ¸ç¶æ0,ä¸éè¿, 1éè¿") private Integer reviewStatus; @ApiModelProperty("å®¡æ ¸å¤æ³¨") private String reviewRemark; @ApiModelProperty("å®¡æ ¸æ¥æ") private LocalDateTime reviewTime; @ApiModelProperty("å建人") @TableField(fill = FieldFill.INSERT) private Integer createUser; @ApiModelProperty("å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("ä¿®æ¹äºº") @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @ApiModelProperty("ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; } cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordContrastDetails.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package com.ruoyi.device.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-12-16 07:14:57 */ @Getter @Setter @TableName("device_examine_record_contrast_details") @ApiModel(value = "DeviceExamineRecordContrastDetails对象", description = "è®¾å¤æ ¸æ¥è®°å½å¯¹æ¯è¯¦æ 表") public class DeviceExamineRecordContrastDetails implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "record_contrast_details_id", type = IdType.AUTO) private Integer recordContrastDetailsId; @ApiModelProperty("è®¾å¤æ ¸æ¥è¯¦æ id") private Integer recordContrastId; @ApiModelProperty("æ ¸æ¥é¡¹ç®") private String checkItems; @ApiModelProperty("a仪å¨ç¤ºå¼") private String indicationA; @ApiModelProperty("b仪å¨ç¤ºå¼") private String indicationB; @ApiModelProperty("c仪å¨ç¤ºå¼") private String indicationC; @ApiModelProperty("å·®å¼") private String dValue; @ApiModelProperty("åå·®") private String deviation; @ApiModelProperty("å¤å®") private String determine; @ApiModelProperty("å建人") @TableField(fill = FieldFill.INSERT) private Integer createUser; @ApiModelProperty("å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("ä¿®æ¹äºº") @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @ApiModelProperty("ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; } cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordDetail.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package com.ruoyi.device.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-12-16 07:15:11 */ @Getter @Setter @TableName("device_examine_record_detail") @ApiModel(value = "DeviceExamineRecordDetail对象", description = "è®¾å¤æ ¸æ¥è®°å½è¯¦æ 表") public class DeviceExamineRecordDetail implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "record_detail_id", type = IdType.AUTO) private Integer recordDetailId; @ApiModelProperty("è®¾è®¾å¤æ ¸æ¥è®°å½id") private Integer recordId; @ApiModelProperty("æµè¯ç¹") private String testPoint; @ApiModelProperty("å 容å¼1") private String dataValue1; @ApiModelProperty("å 容å¼2") private String dataValue2; @ApiModelProperty("å 容å¼3") private String dataValue3; @ApiModelProperty("å 容å¼4") private String dataValue4; @ApiModelProperty("å 容å¼5") private String dataValue5; @ApiModelProperty("å 容å¼6") private String dataValue6; @ApiModelProperty("å建人") @TableField(fill = FieldFill.INSERT) private Integer createUser; @ApiModelProperty("å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("ä¿®æ¹äºº") @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @ApiModelProperty("ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; } cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExternalApply.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,123 @@ package com.ruoyi.device.pojo; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import java.time.LocalDate; import java.time.LocalDateTime; /** * <p> * å©ç¨å¤é¨è®¾å¤ç³è¯·è¡¨ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-17 10:28:43 */ @Getter @Setter @TableName("device_external_apply") @ApiModel(value = "DeviceExternalApply对象", description = "å©ç¨å¤é¨è®¾å¤ç³è¯·è¡¨") public class DeviceExternalApply{ @TableId(value = "external_apply_id", type = IdType.AUTO) private Integer externalApplyId; @ApiModelProperty("åä½åç§°") private String unitName; @ApiModelProperty("å°å") private String address; @ApiModelProperty("仪å¨åç§°") private String deviceName; @ApiModelProperty("仪å¨åå·") private String deviceModel; @ApiModelProperty("é ä»¶") private String parts; @ApiModelProperty("对æ¹ä»ªå¨ç¼å·") private String instrumentNumber; @ApiModelProperty("ææ¯ææ ") private String technicalIndex; @ApiModelProperty("ææ¯è¦æ±") private String technicalRequirements; @ApiModelProperty("å©ç¨åå ") private String useReason; @ApiModelProperty("0ç³è¯·äººid") private Integer applicantUserId; @ApiModelProperty("0ç³è¯·äºº") private String applicantUser; @ApiModelProperty("0ç³è¯·æ¶é´") private LocalDate applicantDate; @ApiModelProperty("1é¨é¨è´è´£äººæè§") private String departmentHeadOpinion; @ApiModelProperty("1é¨é¨è´è´£äººid") private Integer departmentHeadUserId; @ApiModelProperty("1é¨é¨è´è´£äºº") private String departmentHeadUser; @ApiModelProperty("1é¨é¨è´è´£äººå¡«åæ¶é´") private LocalDate departmentHeadDate; @ApiModelProperty("2计é室æè§") private String meteringRoomOpinion; @ApiModelProperty("2计é室人id") private Integer meteringRoomUserId; @ApiModelProperty("2计é室人") private String meteringRoomUser; @ApiModelProperty("2计éå®¤äººå¡«åæ¶é´") private LocalDate meteringRoomDate; @ApiModelProperty("3æ¹å人æè§") private String approverOpinion; @ApiModelProperty("3æ¹å人id") private Integer approverUserId; @ApiModelProperty("3æ¹å人") private String approverUser; @ApiModelProperty("3æ¹åäººå¡«åæ¶é´") private LocalDate approverDate; @ApiModelProperty("æ¯å¦ç»æ,0: æªç»æ, 1:ç»æ") private Integer isFinish; @ApiModelProperty("å建人") @TableField(fill = FieldFill.INSERT) private Integer createUser; @ApiModelProperty("å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("ä¿®æ¹äºº") @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @ApiModelProperty("ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @TableField(exist = false,select = false) @ApiModelProperty("æµç¨, 0:ç³è¯·, 1ç³è¯·é¨é¨è´è´£äººæè§, 2:计é室æè§, 3:æ¹å人") private Integer flowType; } cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanDetailsService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.device.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.device.pojo.DeviceExaminePlanDetails; /** * <p> * è®¾å¤æ ¸æ¥è®¡å详æ 表 æå¡ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:16 */ public interface DeviceExaminePlanDetailsService extends IService<DeviceExaminePlanDetails> { } cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,88 @@ package com.ruoyi.device.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.device.dto.DeviceExaminePlanDto; import com.ruoyi.device.pojo.DeviceExaminePlan; import com.ruoyi.device.pojo.DeviceExaminePlanDetails; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; /** * <p> * è®¾å¤æ ¸æ¥è®¡å主表 æå¡ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:04 */ public interface DeviceExaminePlanService extends IService<DeviceExaminePlan> { /** * æ°å¢è®¾å¤æ ¸æ¥è®¡å * @param examinePlanDto * @return */ boolean addDeviceExaminePlan(DeviceExaminePlanDto examinePlanDto); /** * å¯¼å ¥è®¾å¤æ ¸æ¥è®¡å * @param file * @return */ boolean importDeviceExaminePlan(MultipartFile file); /** * æäº¤æ¹å * @param deviceExaminePlan * @return */ boolean submitRatifyDeviceExaminePlan(DeviceExaminePlan deviceExaminePlan); /** * è®¾å¤æ ¸æ¥è®¡åæ¹å * @param DeviceExaminePlan * @return */ boolean ratifyDeviceExaminePlan(DeviceExaminePlan DeviceExaminePlan); /** * è®¾å¤æ ¸æ¥è®¡åå表 * @param page * @param DeviceExaminePlan * @return */ IPage<DeviceExaminePlanDto> pageDeviceExaminePlan(Page page, DeviceExaminePlan DeviceExaminePlan); /** * è®¾å¤æ ¸æ¥è®¡å详æ å表 * @param page * @param DeviceExaminePlanDetails * @return */ IPage<DeviceExaminePlanDetails> pageDeviceExaminePlanDetail(Page page, DeviceExaminePlanDetails DeviceExaminePlanDetails); /** * 导åºè®¾å¤æ ¸æ¥è®¡å * @param deviceExaminePlanId è®¾å¤æ ¸æ¥è®¡åid * @param response ååº */ void exportDeviceExaminePlanDetail(Integer deviceExaminePlanId, HttpServletResponse response); /** * æ¹éä¿®æ¹è®¾å¤æ ¸æ¥è®¡å * @param examinePlanDto * @return */ boolean updateDeviceExaminePlan(DeviceExaminePlanDto examinePlanDto); /** * æ¥è¯¢è®¾å¤æ ¸æ¥è®¡å详æ * @param planId * @return */ DeviceExaminePlanDto getDeviceExaminePlan(Integer planId); } cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordContrastDetailsService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.device.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.device.pojo.DeviceExamineRecordContrastDetails; /** * <p> * è®¾å¤æ ¸æ¥è®°å½å¯¹æ¯è¯¦æ 表 æå¡ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:57 */ public interface DeviceExamineRecordContrastDetailsService extends IService<DeviceExamineRecordContrastDetails> { } cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordContrastService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@ package com.ruoyi.device.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.device.dto.DeviceExamineRecordContrastDto; import com.ruoyi.device.pojo.DeviceExamineRecordContrast; import javax.servlet.http.HttpServletResponse; /** * <p> * è®¾å¤æ ¸æ¥è®°å½å¯¹æ¯è¡¨ æå¡ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:43 */ public interface DeviceExamineRecordContrastService extends IService<DeviceExamineRecordContrast> { /** * æ¥è¯¢æ ¸æ¥å¯¹æ¯è®°å½ * @return */ DeviceExamineRecordContrastDto getExamineRecordContrast(Integer planDetailsId); /** * æ°å¢æ ¸æ¥å¯¹æ¯è®°å½ * @return * */ boolean addExamineRecordContrast(DeviceExamineRecordContrastDto deviceExamineRecordContrastDto); /** * å®¡æ ¸æ ¸æ¥å¯¹æ¯è®°å½ * @return */ boolean reviewExamineRecordContrast(DeviceExamineRecordContrastDto deviceExamineRecordContrastDto); /** * 导åºå®¡æ ¸æ ¸æ¥å¯¹æ¯è®°å½ * * @param recordId å®¡æ ¸æ ¸æ¥å¯¹æ¯è®°å½id * @param response * @return */ void exportReviewExamineRecordContrast(Integer recordId, HttpServletResponse response); } cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordDetailService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.device.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.device.pojo.DeviceExamineRecordDetail; /** * <p> * è®¾å¤æ ¸æ¥è®°å½è¯¦æ 表 æå¡ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:15:11 */ public interface DeviceExamineRecordDetailService extends IService<DeviceExamineRecordDetail> { } cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package com.ruoyi.device.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.device.dto.DeviceExamineRecordDto; import com.ruoyi.device.pojo.DeviceExamineRecord; import javax.servlet.http.HttpServletResponse; /** * <p> * è®¾å¤æ ¸æ¥è®°å½è¡¨ æå¡ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:28 */ public interface DeviceExamineRecordService extends IService<DeviceExamineRecord> { /** * æ¥è¯¢æ ¸æ¥è®°å½ * @return */ DeviceExamineRecordDto getExamineRecord(Integer planDetailsId); /** * æ°å¢æ ¸æ¥è®°å½ * @return */ boolean addExamineRecord(DeviceExamineRecordDto deviceExamineRecordDto); /** * 夿 ¸æ ¸æ¥è®°å½ * @return */ boolean reviewExamineRecord(DeviceExamineRecordDto deviceExamineRecordDto); /** * 导åºå¤æ ¸æ ¸æ¥è®°å½ * @param planDetailsId * @param response ååº */ void exportReviewExamineRecordDetail(Integer planDetailsId, HttpServletResponse response); } cnas-device/src/main/java/com/ruoyi/device/service/DeviceExternalApplyService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,42 @@ package com.ruoyi.device.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.device.pojo.DeviceExternalApply; import javax.servlet.http.HttpServletResponse; /** * <p> * å©ç¨å¤é¨è®¾å¤ç³è¯·è¡¨ æå¡ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-17 10:28:43 */ public interface DeviceExternalApplyService extends IService<DeviceExternalApply> { /** * å©ç¨å¤é¨è®¾å¤ç³è¯·å表 * @param page * @param deviceExternalApply * @return */ IPage<DeviceExternalApply> pageDeviceExternalApply(Page page, DeviceExternalApply deviceExternalApply); /** * æ°å¢å©ç¨å¤é¨è®¾å¤ç³è¯· * @param deviceExternalApply * @return */ boolean addDeviceExternalApply(DeviceExternalApply deviceExternalApply); /** * 导åºå©ç¨å¤é¨è®¾å¤ç³è¯· * * @param externalApplyId å¤é¨è®¾å¤ç³è¯·id * @param response */ void exportDeviceExternalApply(Integer externalApplyId, HttpServletResponse response); } cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanDetailsServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.device.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.device.mapper.DeviceExaminePlanDetailsMapper; import com.ruoyi.device.pojo.DeviceExaminePlanDetails; import com.ruoyi.device.service.DeviceExaminePlanDetailsService; import org.springframework.stereotype.Service; /** * <p> * è®¾å¤æ ¸æ¥è®¡å详æ 表 æå¡å®ç°ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:16 */ @Service public class DeviceExaminePlanDetailsServiceImpl extends ServiceImpl<DeviceExaminePlanDetailsMapper, DeviceExaminePlanDetails> implements DeviceExaminePlanDetailsService { } cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,346 @@ package com.ruoyi.device.service.impl; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; 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.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.ruoyi.common.core.domain.entity.InformationNotification; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.WxCpUtils; import com.ruoyi.device.dto.DeviceExaminePlanDetailsDto; import com.ruoyi.device.dto.DeviceExaminePlanDto; import com.ruoyi.device.excel.upload.DeviceExaminePlanUpload; import com.ruoyi.device.mapper.DeviceExaminePlanDetailsMapper; import com.ruoyi.device.mapper.DeviceExaminePlanMapper; import com.ruoyi.device.mapper.DeviceMapper; import com.ruoyi.device.pojo.Device; import com.ruoyi.device.pojo.DeviceExaminePlan; import com.ruoyi.device.pojo.DeviceExaminePlanDetails; import com.ruoyi.device.service.DeviceExaminePlanDetailsService; import com.ruoyi.device.service.DeviceExaminePlanService; import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import com.ruoyi.inspect.util.UserUtils; import com.ruoyi.system.mapper.UserMapper; import com.ruoyi.system.service.InformationNotificationService; import org.springframework.beans.BeanUtils; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * <p> * è®¾å¤æ ¸æ¥è®¡å主表 æå¡å®ç°ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:04 */ @Service @Transactional(rollbackFor = Exception.class) public class DeviceExaminePlanServiceImpl extends ServiceImpl<DeviceExaminePlanMapper, DeviceExaminePlan> implements DeviceExaminePlanService { @Resource private DeviceExaminePlanDetailsMapper deviceExaminePlanDetailsMapper; @Resource private DeviceExaminePlanDetailsService deviceExaminePlanDetailsService; @Resource private ThreadPoolTaskExecutor threadPoolTaskExecutor; @Resource private InformationNotificationService informationNotificationService; @Resource private DeviceMapper deviceMapper; @Resource private UserMapper userMapper; /** * æ°å¢è®¾å¤æ ¸æ¥è®¡å * @param examinePlanDto * @return */ @Override public boolean addDeviceExaminePlan(DeviceExaminePlanDto examinePlanDto) { // å½åç»å½ç¨æ· Integer userId = SecurityUtils.getUserId().intValue(); // æä»¶åç§° examinePlanDto.setWriteUserId(userId); examinePlanDto.setWriteTime(LocalDateTime.now()); baseMapper.insert(examinePlanDto); // æ·»å 详æ if (CollectionUtils.isNotEmpty(examinePlanDto.getExaminePlanDetailsList())) { for (DeviceExaminePlanDetails deviceExaminePlanDetails : examinePlanDto.getExaminePlanDetailsList()) { deviceExaminePlanDetails.setPlanId(examinePlanDto.getPlanId()); } deviceExaminePlanDetailsService.saveBatch(examinePlanDto.getExaminePlanDetailsList()); } return true; } /** * å¯¼å ¥è®¾å¤æ ¸æ¥è®¡å * @param file * @return */ @Override public boolean importDeviceExaminePlan(MultipartFile file) { // å½åç»å½ç¨æ· Integer userId = SecurityUtils.getUserId().intValue(); // æä»¶åç§° String fileName = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf(".")); DeviceExaminePlan examinePlan = new DeviceExaminePlan(); examinePlan.setPlanName(fileName); examinePlan.setWriteUserId(userId); examinePlan.setWriteTime(LocalDateTime.now()); baseMapper.insert(examinePlan); List<DeviceExaminePlanDetails> examinePlanDetails = new ArrayList<>(); // å¯¼å ¥éä»¶å 容 try { // excelè§£æ EasyExcel.read(file.getInputStream(), DeviceExaminePlanUpload.class, new AnalysisEventListener<DeviceExaminePlanUpload>() { @Override public void invoke(DeviceExaminePlanUpload detailsUpload, AnalysisContext analysisContext) { // 夿æ¯å¦ä¸ºç©º if (StringUtils.isNotBlank(detailsUpload.getDeviceName()) && StringUtils.isNotBlank(detailsUpload.getDeviceNumber())) { // 对象å¤å¶ DeviceExaminePlanDetails planDetails = new DeviceExaminePlanDetails(); BeanUtils.copyProperties(detailsUpload, planDetails); planDetails.setPlanId(examinePlan.getPlanId()); examinePlanDetails.add(planDetails); } } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }).sheet().doRead(); for (DeviceExaminePlanDetails examinePlanDetail : examinePlanDetails) { Device device = deviceMapper.selectOne(Wrappers.<Device>lambdaQuery() .eq(Device::getManagementNumber, examinePlanDetail.getDeviceNumber().trim())); if (device == null) { throw new ErrorException("设å¤ç¼å·" + examinePlanDetail.getDeviceNumber() + "æªæ¥è¯¢å°è®¾å¤, è¯·éæ°å¯¼å ¥"); } User user = userMapper.selectOne(Wrappers.<User>lambdaQuery() .eq(User::getName, examinePlanDetail.getCheckChargerUser())); if (user == null) { throw new ErrorException("设å¤ç¼å·" + examinePlanDetail.getDeviceNumber() + "æªæ¥è¯¢å°æ ¸æ¥äºº"); } examinePlanDetail.setDeviceId(device.getId()); examinePlanDetail.setCheckChargerUserId(user.getId()); } deviceExaminePlanDetailsService.saveBatch(examinePlanDetails); } catch (IOException e) { throw new RuntimeException(e); } return true; } /** * æäº¤æ¹å * @param deviceExaminePlan * @return */ @Override public boolean submitRatifyDeviceExaminePlan(DeviceExaminePlan deviceExaminePlan) { baseMapper.update(null, Wrappers.<DeviceExaminePlan>lambdaUpdate() .eq(DeviceExaminePlan::getPlanId, deviceExaminePlan.getPlanId()) .set(DeviceExaminePlan::getRatifyUserId, deviceExaminePlan.getRatifyUserId()) .set(DeviceExaminePlan::getRatifyRemark, null) .set(DeviceExaminePlan::getRatifyStatus, null) .set(DeviceExaminePlan::getRatifyTime, null) ); DeviceExaminePlan examinePlan = baseMapper.selectById(deviceExaminePlan.getPlanId()); // åéæ¶æ¯ Integer userId = SecurityUtils.getUserId().intValue(); User user = userMapper.selectById(userId); // æ¶æ¯åé InformationNotification info = new InformationNotification(); // åé人 info.setCreateUser(user.getName()); info.setMessageType("6"); info.setTheme("CNASè®¾å¤æ ¸æ¥è®¡åæ¹åéç¥"); info.setContent(examinePlan.getPlanName() + "çè®¾å¤æ ¸æ¥è®¡åå¾ æ¹å"); info.setSenderId(userId); // æ¥æ¶äºº info.setConsigneeId(examinePlan.getRatifyUserId()); info.setJumpPath("a6-device"); informationNotificationService.addInformationNotification(info); // åéä¼ä¸å¾®ä¿¡éç¥ threadPoolTaskExecutor.execute(() -> { // æ¥è¯¢æ¥æ¶äºº User personnel = userMapper.selectById(examinePlan.getRatifyUserId()); String message = ""; message += "CNASè®¾å¤æ ¸æ¥è®¡åæ¹åéç¥"; message += "\n请å»èµæºç®¡ç-设å¤ä¸å±ç®å½-è®¾å¤æ ¸æ¥è®¡åå¡«å"; message += "\n" + examinePlan.getPlanName() + "çæ ¡åæ ¸æ¥åå¾ æ¹å"; //åéä¼ä¸å¾®ä¿¡æ¶æ¯éç¥ try { WxCpUtils.inform(personnel.getAccount(), message, null); } catch (Exception e) { throw new RuntimeException(e); } }); return false; } /** * è®¾å¤æ ¸æ¥è®¡åæ¹å * @param deviceExaminePlan * @return */ @Override public boolean ratifyDeviceExaminePlan(DeviceExaminePlan deviceExaminePlan) { // å½åç»å½ç¨æ· baseMapper.update(null, Wrappers.<DeviceExaminePlan>lambdaUpdate() .eq(DeviceExaminePlan::getPlanId, deviceExaminePlan.getPlanId()) .set(DeviceExaminePlan::getRatifyRemark, deviceExaminePlan.getRatifyRemark()) .set(DeviceExaminePlan::getRatifyStatus, deviceExaminePlan.getRatifyStatus()) .set(DeviceExaminePlan::getRatifyTime, LocalDateTime.now()) ); return true; } /** * è®¾å¤æ ¸æ¥è®¡åå表 * @param page * @param deviceExaminePlan * @return */ @Override public IPage<DeviceExaminePlanDto> pageDeviceExaminePlan(Page page, DeviceExaminePlan deviceExaminePlan) { return baseMapper.deviceExaminePlanDetailsMapper(page, QueryWrappers.queryWrappers(deviceExaminePlan)); } /** * è®¾å¤æ ¸æ¥è®¡å详æ å表 * @param page * @param deviceExaminePlanDetails * @return */ @Override public IPage<DeviceExaminePlanDetails> pageDeviceExaminePlanDetail(Page page, DeviceExaminePlanDetails deviceExaminePlanDetails) { if (deviceExaminePlanDetails.getPlanId() == null) { return new Page(); } return deviceExaminePlanDetailsMapper.pageDeviceExaminePlanDetail(page, QueryWrappers.queryWrappers(deviceExaminePlanDetails)); } /** * 导åºè®¾å¤æ ¸æ¥è®¡å * @param deviceExaminePlanId è®¾å¤æ ¸æ¥è®¡åid * @param response ååºä½ */ @Override public void exportDeviceExaminePlanDetail(Integer deviceExaminePlanId, HttpServletResponse response) { // æ¥è¯¢è®¾å¤æ ¸æ¥è®¡å DeviceExaminePlanDto deviceExaminePlanDto = baseMapper.selectExamineExaminePlanDto(deviceExaminePlanId); // æ¥è¯¢è®¾å¤æ ¸æ¥è®¡å详æ List<DeviceExaminePlanDetails> deviceExaminePlanDetailsList = deviceExaminePlanDetailsMapper.selectList(Wrappers.<DeviceExaminePlanDetails>lambdaQuery().eq(DeviceExaminePlanDetails::getPlanId, deviceExaminePlanId)); // 设置åºå· ArrayList<DeviceExaminePlanDetailsDto> deviceExaminePlanDetailsDtoList = new ArrayList<>(); deviceExaminePlanDetailsList.forEach(deviceExamineRecordContrastDetail -> { DeviceExaminePlanDetailsDto deviceExaminePlanDetailsDto = new DeviceExaminePlanDetailsDto(); BeanUtils.copyProperties(deviceExamineRecordContrastDetail, deviceExaminePlanDetailsDto); deviceExaminePlanDetailsDto.setIndex(deviceExaminePlanDetailsList.indexOf(deviceExamineRecordContrastDetail) + 1); deviceExaminePlanDetailsDtoList.add(deviceExaminePlanDetailsDto); }); // è·åè·¯å¾ InputStream inputStream = this.getClass().getResourceAsStream("/static/word/examine-plan-detail.docx"); Configure configure = Configure.builder() .bind("deviceExaminePlanDetailsDtoList", new HackLoopTableRenderPolicy()) .build(); XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( new HashMap<String, Object>() {{ put("deviceExaminePlan", deviceExaminePlanDto); put("deviceExaminePlanDetailsDtoList", deviceExaminePlanDetailsDtoList); //è·åæ ¸æ¥äººçç¾åå°å put("writeUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExaminePlanDto.getWriteUserId())); //è·å审æ¥äººçç¾åå°å put("reviewUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExaminePlanDto.getRatifyUserId())); }}); 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("导åºå¤±è´¥"); } } @Override public boolean updateDeviceExaminePlan(DeviceExaminePlanDto examinePlanDto) { // å½åç»å½ç¨æ· Integer userId = SecurityUtils.getUserId().intValue(); // æä»¶åç§° examinePlanDto.setWriteUserId(userId); examinePlanDto.setWriteTime(LocalDateTime.now()); baseMapper.updateById(examinePlanDto); deviceExaminePlanDetailsService.remove(Wrappers.<DeviceExaminePlanDetails>lambdaQuery() .eq(DeviceExaminePlanDetails::getPlanId, examinePlanDto.getPlanId())); // æ·»å 详æ if (CollectionUtils.isNotEmpty(examinePlanDto.getExaminePlanDetailsList())) { for (DeviceExaminePlanDetails deviceExaminePlanDetails : examinePlanDto.getExaminePlanDetailsList()) { deviceExaminePlanDetails.setPlanId(examinePlanDto.getPlanId()); } deviceExaminePlanDetailsService.saveBatch(examinePlanDto.getExaminePlanDetailsList()); } return true; } @Override public DeviceExaminePlanDto getDeviceExaminePlan(Integer planId) { DeviceExaminePlan examinePlan = baseMapper.selectById(planId); DeviceExaminePlanDto deviceExaminePlanDto = new DeviceExaminePlanDto(); BeanUtils.copyProperties(examinePlan, deviceExaminePlanDto); // æ¥è¯¢è¯¦æ List<DeviceExaminePlanDetails> list = deviceExaminePlanDetailsService.list(Wrappers.<DeviceExaminePlanDetails>lambdaQuery() .eq(DeviceExaminePlanDetails::getPlanId, planId) .orderByAsc(DeviceExaminePlanDetails::getCheckTime)); deviceExaminePlanDto.setExaminePlanDetailsList(list); return deviceExaminePlanDto; } } cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastDetailsServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.device.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.device.mapper.DeviceExamineRecordContrastDetailsMapper; import com.ruoyi.device.pojo.DeviceExamineRecordContrastDetails; import com.ruoyi.device.service.DeviceExamineRecordContrastDetailsService; import org.springframework.stereotype.Service; /** * <p> * è®¾å¤æ ¸æ¥è®°å½å¯¹æ¯è¯¦æ 表 æå¡å®ç°ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:57 */ @Service public class DeviceExamineRecordContrastDetailsServiceImpl extends ServiceImpl<DeviceExamineRecordContrastDetailsMapper, DeviceExamineRecordContrastDetails> implements DeviceExamineRecordContrastDetailsService { } cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,193 @@ package com.ruoyi.device.service.impl; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.device.dto.DeviceExamineRecordContrastDetailsDto; import com.ruoyi.device.dto.DeviceExamineRecordContrastDto; import com.ruoyi.device.mapper.DeviceExaminePlanDetailsMapper; import com.ruoyi.device.mapper.DeviceExamineRecordContrastMapper; import com.ruoyi.device.pojo.DeviceExaminePlanDetails; import com.ruoyi.device.pojo.DeviceExamineRecordContrast; import com.ruoyi.device.pojo.DeviceExamineRecordContrastDetails; import com.ruoyi.device.service.DeviceExamineRecordContrastDetailsService; import com.ruoyi.device.service.DeviceExamineRecordContrastService; import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import com.ruoyi.inspect.util.UserUtils; import com.ruoyi.system.mapper.UserMapper; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * <p> * è®¾å¤æ ¸æ¥è®°å½å¯¹æ¯è¡¨ æå¡å®ç°ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:14:43 */ @Service @Transactional(rollbackFor = Exception.class) public class DeviceExamineRecordContrastServiceImpl extends ServiceImpl<DeviceExamineRecordContrastMapper, DeviceExamineRecordContrast> implements DeviceExamineRecordContrastService { @Resource private DeviceExamineRecordContrastDetailsService deviceExamineRecordContrastDetailsService; @Resource private DeviceExaminePlanDetailsMapper deviceExaminePlanDetailsMapper; @Resource private UserMapper userMapper; /** * æ¥è¯¢æ ¸æ¥å¯¹æ¯è®°å½ * @return */ @Override public DeviceExamineRecordContrastDto getExamineRecordContrast(Integer planDetailsId) { DeviceExamineRecordContrastDto contrastDto = baseMapper.getExamineRecordContrast(planDetailsId); // 夿æ¯å¦ä¸ºç©º if (contrastDto == null) { contrastDto = new DeviceExamineRecordContrastDto(); // æ¥è¯¢è®¾å¤è¯¦æ DeviceExaminePlanDetails deviceExaminePlanDetails = deviceExaminePlanDetailsMapper.selectById(planDetailsId); contrastDto.setPlanDetailsId(deviceExaminePlanDetails.getPlanDetailsId()); } else { // æ¥è¯¢è¯¦æ List<DeviceExamineRecordContrastDetails> list = deviceExamineRecordContrastDetailsService.list(Wrappers.<DeviceExamineRecordContrastDetails>lambdaQuery() .eq(DeviceExamineRecordContrastDetails::getRecordContrastId, contrastDto.getRecordContrastId())); contrastDto.setRecordContrastDetailsList(list); } return contrastDto; } /** * æ°å¢æ ¸æ¥å¯¹æ¯è®°å½ * @return */ @Override public boolean addExamineRecordContrast(DeviceExamineRecordContrastDto dto) { if (dto.getPlanDetailsId() == null) { throw new ErrorException("缺å°è®¡å详ç»ä¿¡æ¯id"); } if (dto.getRecordContrastId() == null) { Integer userId = SecurityUtils.getUserId().intValue(); User user = userMapper.selectById(userId); dto.setCheckerUserId(userId); dto.setCheckerUser(user.getName()); // æ¥è¯¢å®¡æ¥äººid if (dto.getReviewUserId() != null) { User reviewUser = userMapper.selectById(dto.getReviewUserId()); dto.setReviewUser(reviewUser.getName()); } } this.saveOrUpdate(dto); // å é¤å ¨é¨è¯¦æ deviceExamineRecordContrastDetailsService.remove(Wrappers.<DeviceExamineRecordContrastDetails>lambdaQuery() .eq(DeviceExamineRecordContrastDetails::getRecordContrastId, dto.getRecordContrastId())); //æ·»å 详æ if (CollectionUtils.isNotEmpty(dto.getRecordContrastDetailsList())) { for (DeviceExamineRecordContrastDetails details : dto.getRecordContrastDetailsList()) { details.setRecordContrastId(dto.getRecordContrastId()); } deviceExamineRecordContrastDetailsService.saveBatch(dto.getRecordContrastDetailsList()); } return false; } /** * å®¡æ ¸æ ¸æ¥å¯¹æ¯è®°å½ * @return */ @Override public boolean reviewExamineRecordContrast(DeviceExamineRecordContrastDto dto) { if (dto.getPlanDetailsId() == null) { throw new ErrorException("缺å°è®¡å详ç»ä¿¡æ¯id"); } LambdaUpdateWrapper<DeviceExamineRecordContrast> wrapper = Wrappers.<DeviceExamineRecordContrast>lambdaUpdate() .eq(DeviceExamineRecordContrast::getPlanDetailsId, dto.getPlanDetailsId()) .set(DeviceExamineRecordContrast::getReviewStatus, dto.getReviewStatus()) .set(DeviceExamineRecordContrast::getReviewRemark, dto.getReviewRemark()) .set(DeviceExamineRecordContrast::getReviewTime, LocalDateTime.now()); // 为0æ¸ é¤å®¡æ ¸äºº if (dto.getReviewStatus().equals(0)) { wrapper.set(DeviceExamineRecordContrast::getReviewUserId, null) .set(DeviceExamineRecordContrast::getReviewUser, null); } this.update(wrapper); return true; } /** * 导åºå®¡æ ¸æ ¸æ¥å¯¹æ¯è®°å½ * * @param planDetailsId 详æ id * @param response */ @Override public void exportReviewExamineRecordContrast(Integer planDetailsId, HttpServletResponse response) { // æ¥è¯¢å¯¹æ¯è®°å½ DeviceExamineRecordContrastDto deviceExamineRecordContrast = baseMapper.selectExamineRecordContrastDto(planDetailsId); // æ¥è¯¢å¯¹æ¯è®°å½è¯¦æ List<DeviceExamineRecordContrastDetails> deviceExamineRecordContrastDetailList = deviceExamineRecordContrastDetailsService.list(Wrappers.<DeviceExamineRecordContrastDetails>lambdaQuery().eq(DeviceExamineRecordContrastDetails::getRecordContrastId, deviceExamineRecordContrast.getRecordContrastId())); // 设置åºå· ArrayList<DeviceExamineRecordContrastDetailsDto> deviceExamineRecordContrastDetailsDtoList = new ArrayList<>(); deviceExamineRecordContrastDetailList.forEach(deviceExamineRecordContrastDetail -> { DeviceExamineRecordContrastDetailsDto deviceExamineRecordContrastDetailsDto = new DeviceExamineRecordContrastDetailsDto(); BeanUtils.copyProperties(deviceExamineRecordContrastDetail, deviceExamineRecordContrastDetailsDto); deviceExamineRecordContrastDetailsDto.setIndex(deviceExamineRecordContrastDetailList.indexOf(deviceExamineRecordContrastDetail) + 1); deviceExamineRecordContrastDetailsDtoList.add(deviceExamineRecordContrastDetailsDto); }); // è·åè·¯å¾ InputStream inputStream = this.getClass().getResourceAsStream("/static/word/review-examine-record-contrast.docx"); Configure configure = Configure.builder() .bind("deviceExamineRecordContrastDetailsDtoList", new HackLoopTableRenderPolicy()) .build(); XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( new HashMap<String, Object>() {{ put("deviceExamineRecordContrast", deviceExamineRecordContrast); put("deviceExamineRecordContrastDetailsDtoList", deviceExamineRecordContrastDetailsDtoList); //è·åæ ¸æ¥äººçç¾åå°å put("checkerUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExamineRecordContrast.getCheckerUserId())); //è·å审æ¥äººçç¾åå°å put("reviewUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExamineRecordContrast.getReviewUserId())); }}); 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-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordDetailServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.device.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.device.mapper.DeviceExamineRecordDetailMapper; import com.ruoyi.device.pojo.DeviceExamineRecordDetail; import com.ruoyi.device.service.DeviceExamineRecordDetailService; import org.springframework.stereotype.Service; /** * <p> * è®¾å¤æ ¸æ¥è®°å½è¯¦æ 表 æå¡å®ç°ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-16 07:15:11 */ @Service public class DeviceExamineRecordDetailServiceImpl extends ServiceImpl<DeviceExamineRecordDetailMapper, DeviceExamineRecordDetail> implements DeviceExamineRecordDetailService { } cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,198 @@ package com.ruoyi.device.service.impl; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.device.dto.DeviceExamineRecordDto; import com.ruoyi.device.mapper.DeviceExaminePlanDetailsMapper; import com.ruoyi.device.mapper.DeviceExamineRecordMapper; import com.ruoyi.device.mapper.DeviceMapper; import com.ruoyi.device.pojo.Device; import com.ruoyi.device.pojo.DeviceExaminePlanDetails; import com.ruoyi.device.pojo.DeviceExamineRecord; import com.ruoyi.device.pojo.DeviceExamineRecordDetail; import com.ruoyi.device.service.DeviceExamineRecordDetailService; import com.ruoyi.device.service.DeviceExamineRecordService; import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import com.ruoyi.inspect.util.UserUtils; import com.ruoyi.system.mapper.UserMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; 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-12-16 07:14:28 */ @Service @Transactional(rollbackFor = Exception.class) public class DeviceExamineRecordServiceImpl extends ServiceImpl<DeviceExamineRecordMapper, DeviceExamineRecord> implements DeviceExamineRecordService { @Resource private DeviceExamineRecordDetailService deviceExamineRecordDetailService; @Resource private DeviceExaminePlanDetailsMapper deviceExaminePlanDetailsMapper; @Resource private DeviceMapper deviceMapper; @Resource private UserMapper userMapper; /** * æ¥è¯¢æ ¸æ¥è®°å½ * * @return */ @Override public DeviceExamineRecordDto getExamineRecord(Integer planDetailsId) { DeviceExamineRecordDto deviceExamineRecord = baseMapper.getExamineRecord(planDetailsId); // 夿æ¯å¦ä¸ºç©º if (deviceExamineRecord == null) { deviceExamineRecord = new DeviceExamineRecordDto(); // æ¥è¯¢è®¾å¤è¯¦æ DeviceExaminePlanDetails deviceExaminePlanDetails = deviceExaminePlanDetailsMapper.selectById(planDetailsId); Device device = deviceMapper.selectById(deviceExaminePlanDetails.getDeviceId()); if (device != null) { deviceExamineRecord.setDeviceName(device.getDeviceName()); deviceExamineRecord.setDeviceNumber(device.getManagementNumber()); deviceExamineRecord.setPlanDetailsId(deviceExaminePlanDetails.getPlanDetailsId()); } } else { // æ¥è¯¢è¯¦æ List<DeviceExamineRecordDetail> list = deviceExamineRecordDetailService.list(Wrappers.<DeviceExamineRecordDetail>lambdaQuery() .eq(DeviceExamineRecordDetail::getRecordId, deviceExamineRecord.getRecordId())); deviceExamineRecord.setRecordDetailList(list); } return deviceExamineRecord; } /** * æ°å¢æ ¸æ¥è®°å½ * * @return */ @Override public boolean addExamineRecord(DeviceExamineRecordDto deviceExamineRecordDto) { if (deviceExamineRecordDto.getPlanDetailsId() == null) { throw new ErrorException("缺å°è®¡å详ç»ä¿¡æ¯id"); } if (deviceExamineRecordDto.getRecordId() == null) { Integer userId = SecurityUtils.getUserId().intValue(); User user = userMapper.selectById(SecurityUtils.getUserId()); deviceExamineRecordDto.setCheckerUserId(userId); deviceExamineRecordDto.setCheckerUser(user.getName()); // æ¥è¯¢å®¡æ¥äººid if (deviceExamineRecordDto.getReviewUserId() != null) { User reviewUser = userMapper.selectById(deviceExamineRecordDto.getReviewUserId()); deviceExamineRecordDto.setReviewUser(reviewUser.getName()); } } this.saveOrUpdate(deviceExamineRecordDto); // å é¤å ¨é¨è¯¦æ deviceExamineRecordDetailService.remove(Wrappers.<DeviceExamineRecordDetail>lambdaQuery() .eq(DeviceExamineRecordDetail::getRecordId, deviceExamineRecordDto.getRecordId())); //æ·»å 详æ if (CollectionUtils.isNotEmpty(deviceExamineRecordDto.getRecordDetailList())) { for (DeviceExamineRecordDetail deviceExamineRecordDetail : deviceExamineRecordDto.getRecordDetailList()) { deviceExamineRecordDetail.setRecordId(deviceExamineRecordDto.getRecordId()); } deviceExamineRecordDetailService.saveBatch(deviceExamineRecordDto.getRecordDetailList()); } return true; } /** * 夿 ¸æ ¸æ¥è®°å½ * * @return */ @Override public boolean reviewExamineRecord(DeviceExamineRecordDto dto) { if (dto.getPlanDetailsId() == null) { throw new ErrorException("缺å°è®¡å详ç»ä¿¡æ¯id"); } LambdaUpdateWrapper<DeviceExamineRecord> wrapper = Wrappers.<DeviceExamineRecord>lambdaUpdate() .eq(DeviceExamineRecord::getPlanDetailsId, dto.getPlanDetailsId()) .set(DeviceExamineRecord::getReviewStatus, dto.getReviewStatus()) .set(DeviceExamineRecord::getReviewRemark, dto.getReviewRemark()); // 为0æ¸ é¤å®¡æ ¸äºº if (dto.getReviewStatus().equals(0)) { wrapper.set(DeviceExamineRecord::getReviewUserId, null) .set(DeviceExamineRecord::getReviewUser, null); } this.update(wrapper); return true; } /** * 导åºå¤æ ¸æ ¸æ¥è®°å½ * * @param planDetailsId 夿 ¸æ ¸æ¥è®°å½id * @return */ @Override public void exportReviewExamineRecordDetail(Integer planDetailsId, HttpServletResponse response) { // æ¥è¯¢å¤æ ¸æ ¸æ¥è®°å½ DeviceExamineRecordDto deviceExamineRecordDto = baseMapper.selectReviewExamineRecordDto(planDetailsId); // æ¥è¯¢å¤æ ¸æ ¸æ¥è®°å½è¯¦æ List<DeviceExamineRecordDetail> deviceExamineRecordDetailList = deviceExamineRecordDetailService.list(Wrappers.<DeviceExamineRecordDetail>lambdaQuery().eq(DeviceExamineRecordDetail::getRecordId, deviceExamineRecordDto.getRecordId())); // è·åè·¯å¾ InputStream inputStream = this.getClass().getResourceAsStream("/static/word/examine-record.docx"); Configure configure = Configure.builder() .bind("deviceExamineRecordDetailList", new HackLoopTableRenderPolicy()) .build(); XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( new HashMap<String, Object>() {{ put("deviceExamineRecordDto", deviceExamineRecordDto); put("deviceExamineRecordDetailList", deviceExamineRecordDetailList); //è·åæ ¸æ¥äººçç¾åå°å put("checkerUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExamineRecordDto.getCheckerUserId())); //è·å审æ¥äººçç¾åå°å put("reviewUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExamineRecordDto.getReviewUserId())); }}); try { response.setContentType("application/msword"); String deviceName = StringUtils.isNotEmpty(deviceExamineRecordDto.getDeviceName()) ? deviceExamineRecordDto.getDeviceName() : ""; String fileName = URLEncoder.encode( deviceName+ "æ ¸æ¥è®°å½", "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-device/src/main/java/com/ruoyi/device/service/impl/DeviceExternalApplyServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,161 @@ package com.ruoyi.device.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.common.core.domain.entity.User; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.device.mapper.DeviceExternalApplyMapper; import com.ruoyi.device.pojo.DeviceExternalApply; import com.ruoyi.device.service.DeviceExternalApplyService; import com.ruoyi.inspect.util.UserUtils; import com.ruoyi.system.mapper.UserMapper; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.time.LocalDate; import java.util.HashMap; /** * <p> * å©ç¨å¤é¨è®¾å¤ç³è¯·è¡¨ æå¡å®ç°ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-12-17 10:28:43 */ @Service public class DeviceExternalApplyServiceImpl extends ServiceImpl<DeviceExternalApplyMapper, DeviceExternalApply> implements DeviceExternalApplyService { @Resource private UserMapper userMapper; /** * å©ç¨å¤é¨è®¾å¤ç³è¯·å表 * @param page * @param deviceExternalApply * @return */ @Override public IPage<DeviceExternalApply> pageDeviceExternalApply(Page page, DeviceExternalApply deviceExternalApply) { return baseMapper.pageDeviceExternalApply(page, QueryWrappers.queryWrappers(deviceExternalApply)); } /** * æ°å¢å©ç¨å¤é¨è®¾å¤ç³è¯· * @param deviceExternalApply * @return */ @Override public boolean addDeviceExternalApply(DeviceExternalApply deviceExternalApply) { DeviceExternalApply apply = new DeviceExternalApply(); // å½åç»å½ç¨æ·ä¿¡æ¯åé¨é¨ User user = userMapper.selectById(SecurityUtils.getUserId().intValue()); switch (deviceExternalApply.getFlowType()) { case 0: BeanUtils.copyProperties(deviceExternalApply, apply); // ç³è¯· apply.setUseReason(deviceExternalApply.getUseReason()); apply.setApplicantUserId(user.getId()); apply.setApplicantUser(user.getName()); apply.setApplicantDate(LocalDate.now()); // å¤çäººä¿¡æ¯ User departmentHeadUser = userMapper.selectById(deviceExternalApply.getDepartmentHeadUserId()); apply.setApplicantUserId(departmentHeadUser.getId()); apply.setApplicantUser(departmentHeadUser.getName()); baseMapper.insert(apply); break; case 1: apply.setExternalApplyId(deviceExternalApply.getExternalApplyId()); // ç³è¯·é¨é¨è´è´£äººæè§ apply.setDepartmentHeadOpinion(deviceExternalApply.getDepartmentHeadOpinion()); apply.setDepartmentHeadDate(LocalDate.now()); // 计éå®¤ä¿¡æ¯ User meteringRoomUser = userMapper.selectById(deviceExternalApply.getMeteringRoomUserId()); apply.setMeteringRoomUserId(meteringRoomUser.getId()); apply.setMeteringRoomUser(meteringRoomUser.getName()); baseMapper.updateById(apply); break; case 2: apply.setExternalApplyId(deviceExternalApply.getExternalApplyId()); // 计é室æè§ apply.setMeteringRoomOpinion(deviceExternalApply.getMeteringRoomOpinion()); apply.setMeteringRoomDate(LocalDate.now()); // æ¹åäººä¿¡æ¯ User approverUser = userMapper.selectById(deviceExternalApply.getApproverUserId()); apply.setApproverUserId(approverUser.getId()); apply.setApproverUser(approverUser.getName()); baseMapper.updateById(apply); break; case 3: apply.setExternalApplyId(deviceExternalApply.getExternalApplyId()); //æ¹å人 apply.setApproverOpinion(deviceExternalApply.getApproverOpinion()); apply.setApproverDate(LocalDate.now()); apply.setIsFinish(1); baseMapper.updateById(apply); break; } return true; } /** * 导åºå©ç¨å¤é¨è®¾å¤ç³è¯· * * @param externalApplyId å¤é¨è®¾å¤ç³è¯·id * @param response */ @Override public void exportDeviceExternalApply(Integer externalApplyId, HttpServletResponse response) { // æ¥è¯¢å¤é¨è®¾å¤ç³è¯· DeviceExternalApply deviceAccidentReport = baseMapper.selectDeviceExternalById(externalApplyId); // è·åè·¯å¾ InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-external-apply.docx"); Configure configure = Configure.builder() .build(); XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( new HashMap<String, Object>() {{ put("deviceAccidentReport", deviceAccidentReport); // ç³è¯·äººç¾å put("applicantUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getApplicantUserId())); // é¨é¨è´è´£äººç¾å put("departmentHeadUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getDepartmentHeadUserId())); // 计é室人ç¾å put("meteringRoomUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getMeteringRoomUserId())); // æ¹å人ç¾å put("approverUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getApproverUserId())); }}); 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-device/src/main/resources/mapper/DeviceExaminePlanDetailsMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ <?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.device.mapper.DeviceExaminePlanDetailsMapper"> <!--è®¾å¤æ ¸æ¥è®¡å详æ å表--> <select id="pageDeviceExaminePlanDetail" resultType="com.ruoyi.device.pojo.DeviceExaminePlanDetails"> select * from ( select * from device_examine_plan_details order by check_time asc ) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> </select> </mapper> cnas-device/src/main/resources/mapper/DeviceExaminePlanMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ <?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.device.mapper.DeviceExaminePlanMapper"> <!-- è®¾å¤æ ¸æ¥è®¡åå表 --> <select id="deviceExaminePlanDetailsMapper" resultType="com.ruoyi.device.dto.DeviceExaminePlanDto"> select * from (select cqm.*, u1.name write_name, u3.name ratify_name from device_examine_plan cqm left join user u1 on u1.id = cqm.write_user_id left join user u3 on u3.id = cqm.ratify_user_id order by cqm.create_time desc) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> </select> <select id="selectExamineExaminePlanDto" resultType="com.ruoyi.device.dto.DeviceExaminePlanDto"> select cqm.*, date_format(cqm.write_time, '%Y-%m-%d') writeTimeStr, date_format(cqm.ratify_time, '%Y-%m-%d') ratifyTimeStr, date_format(cqm.create_time, '%Y') year, u1.name write_name, u3.name ratify_name from device_examine_plan cqm left join user u1 on u1.id = cqm.write_user_id left join user u3 on u3.id = cqm.ratify_user_id where cqm.plan_id = #{deviceExaminePlanId} </select> </mapper> cnas-device/src/main/resources/mapper/DeviceExamineRecordContrastMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ <?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.device.mapper.DeviceExamineRecordContrastMapper"> <!-- æ¥è¯¢æ ¸æ¥å¯¹æ¯è®°å½ --> <select id="getExamineRecordContrast" resultType="com.ruoyi.device.dto.DeviceExamineRecordContrastDto"> select derc.*, d1.device_name aDeviceName, d1.management_number aDeviceNumber, d2.device_name bDeviceName, d2.management_number bDeviceNumber, d3.device_name cDeviceName, d3.management_number cDeviceNumber from device_examine_record_contrast derc left join device d1 on d1.id = derc.a_device_id left join device d2 on d2.id = derc.a_device_id left join device d3 on d3.id = derc.a_device_id where derc.plan_details_id = #{planDetailsId} </select> <select id="selectExamineRecordContrastDto" resultType="com.ruoyi.device.dto.DeviceExamineRecordContrastDto"> select derc.*, d1.device_name aDeviceName, d1.management_number aDeviceNumber, d2.device_name bDeviceName, d2.management_number bDeviceNumber, d3.device_name cDeviceName, d3.management_number cDeviceNumber, DATE_FORMAT(derc.create_time, '%Y-%m-%d') checkerTimeStr, DATE_FORMAT(derc.review_time, '%Y-%m-%d') reviewTimeStr, d1.storage_point labName from device_examine_record_contrast derc left join device d1 on d1.id = derc.a_device_id left join device d2 on d2.id = derc.a_device_id left join device d3 on d3.id = derc.a_device_id where derc.plan_details_id = #{planDetailsId} </select> </mapper> cnas-device/src/main/resources/mapper/DeviceExamineRecordMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ <?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.device.mapper.DeviceExamineRecordMapper"> <select id="getExamineRecord" resultType="com.ruoyi.device.dto.DeviceExamineRecordDto"> select der.*, d.device_name, d.management_number deviceNumber from device_examine_record der left join device_examine_plan_details depd on depd.plan_details_id = der.plan_details_id left join device d on d.id = depd.device_id where der.plan_details_id = #{planDetailsId} </select> <select id="selectReviewExamineRecordDto" resultType="com.ruoyi.device.dto.DeviceExamineRecordDto"> select der.*, Date_Format(der.update_time, '%Y-%m-%d') updateTimeStr, d.device_name, d.management_number deviceNumber from device_examine_record der left join device_examine_plan_details depd on depd.plan_details_id = der.plan_details_id left join device d on d.id = depd.device_id where der.plan_details_id = #{planDetailsId} </select> </mapper> cnas-device/src/main/resources/mapper/DeviceExternalApplyMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ <?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.device.mapper.DeviceExternalApplyMapper"> <!--å©ç¨å¤é¨è®¾å¤ç³è¯·å表--> <select id="pageDeviceExternalApply" resultType="com.ruoyi.device.pojo.DeviceExternalApply"> select * from ( select * from device_external_apply order by create_time desc ) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> </select> <select id="selectDeviceExternalById" resultType="com.ruoyi.device.pojo.DeviceExternalApply"> select dea.* from device_external_apply dea where dea.external_apply_id = #{externalApplyId} </select> </mapper>