From d726f4b74afd197b6a8ba0f2afb65abcd6c234c7 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期六, 22 二月 2025 10:56:08 +0800 Subject: [PATCH] 移植设备核查计划 --- cnas-device/src/main/resources/mapper/DeviceExamineRecordMapper.xml | 25 cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecord.java | 139 +++ cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordService.java | 43 cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExaminePlanDetailsMapper.java | 27 cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordDetail.java | 70 + cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordContrastService.java | 46 + cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordContrastDetailsService.java | 16 cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordContrastDetails.java | 70 + cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExaminePlan.java | 67 + cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanServiceImpl.java | 346 +++++++ cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanService.java | 88 ++ cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordContrastDetailsDto.java | 16 cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordContrastDto.java | 47 + cnas-device/src/main/resources/mapper/DeviceExaminePlanDetailsMapper.xml | 18 cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExaminePlanDetailsDto.java | 16 cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExternalApplyMapper.java | 34 cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordDetailMapper.java | 16 cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordMapper.java | 31 cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordContrast.java | 97 ++ cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExternalApply.java | 123 ++ cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanDetailsService.java | 16 cnas-device/src/main/java/com/ruoyi/device/service/DeviceExternalApplyService.java | 42 cnas-device/src/main/resources/mapper/DeviceExaminePlanMapper.xml | 33 cnas-device/src/main/resources/mapper/DeviceExternalApplyMapper.xml | 23 cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordDto.java | 28 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanDetailsServiceImpl.java | 20 cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordContrastDetailsMapper.java | 16 cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExaminePlanDto.java | 33 cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordDetailService.java | 16 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExaminePlanController.java | 273 ++++++ cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastServiceImpl.java | 193 ++++ cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExternalApplyServiceImpl.java | 161 +++ cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExaminePlanMapper.java | 35 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java | 198 ++++ cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordContrastMapper.java | 31 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordDetailServiceImpl.java | 20 cnas-device/src/main/resources/mapper/DeviceExamineRecordContrastMapper.xml | 39 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastDetailsServiceImpl.java | 20 cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExaminePlanDetails.java | 76 + 39 files changed, 2,608 insertions(+), 0 deletions(-) diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExaminePlanController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExaminePlanController.java new file mode 100644 index 0000000..5050b64 --- /dev/null +++ b/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(); + } +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExaminePlanDetailsDto.java b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExaminePlanDetailsDto.java new file mode 100644 index 0000000..4ab9e37 --- /dev/null +++ b/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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExaminePlanDto.java b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExaminePlanDto.java new file mode 100644 index 0000000..76eb24b --- /dev/null +++ b/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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordContrastDetailsDto.java b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordContrastDetailsDto.java new file mode 100644 index 0000000..e00c24e --- /dev/null +++ b/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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordContrastDto.java b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordContrastDto.java new file mode 100644 index 0000000..1600591 --- /dev/null +++ b/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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordDto.java b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceExamineRecordDto.java new file mode 100644 index 0000000..3b18d7c --- /dev/null +++ b/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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExaminePlanDetailsMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExaminePlanDetailsMapper.java new file mode 100644 index 0000000..b458685 --- /dev/null +++ b/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); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExaminePlanMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExaminePlanMapper.java new file mode 100644 index 0000000..2161630 --- /dev/null +++ b/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); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordContrastDetailsMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordContrastDetailsMapper.java new file mode 100644 index 0000000..07c67b8 --- /dev/null +++ b/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> { + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordContrastMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordContrastMapper.java new file mode 100644 index 0000000..c20a385 --- /dev/null +++ b/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); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordDetailMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordDetailMapper.java new file mode 100644 index 0000000..990c345 --- /dev/null +++ b/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> { + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExamineRecordMapper.java new file mode 100644 index 0000000..145a768 --- /dev/null +++ b/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); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExternalApplyMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceExternalApplyMapper.java new file mode 100644 index 0000000..b87c009 --- /dev/null +++ b/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 澶栭儴璁惧鐢宠琛╥d + * @return + */ + DeviceExternalApply selectDeviceExternalById(@Param("externalApplyId") Integer externalApplyId); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExaminePlan.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExaminePlan.java new file mode 100644 index 0000000..90bab05 --- /dev/null +++ b/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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExaminePlanDetails.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExaminePlanDetails.java new file mode 100644 index 0000000..3d43df1 --- /dev/null +++ b/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("鏍告煡璐d换浜篿d") + private Integer checkChargerUserId; + + @ApiModelProperty("鏍告煡璐d换浜�") + 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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecord.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecord.java new file mode 100644 index 0000000..4ec4ab5 --- /dev/null +++ b/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("鏍告煡浜篿d") + private Integer checkerUserId; + + @ApiModelProperty("鏍告煡浜�") + private String checkerUser; + + @ApiModelProperty("澶嶆牳浜篿d") + 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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordContrast.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordContrast.java new file mode 100644 index 0000000..86953ed --- /dev/null +++ b/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("鏍告煡浜篿d") + private Integer checkerUserId; + + @ApiModelProperty("鏍告煡浜�") + private String checkerUser; + + @ApiModelProperty("鏍告煡鏃ユ湡") + private LocalDateTime checkerTime; + + @ApiModelProperty("瀹℃牳浜篿d") + 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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordContrastDetails.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordContrastDetails.java new file mode 100644 index 0000000..cbe2c0f --- /dev/null +++ b/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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordDetail.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExamineRecordDetail.java new file mode 100644 index 0000000..f15c49d --- /dev/null +++ b/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("璁捐澶囨牳鏌ヨ褰昳d") + 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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExternalApply.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceExternalApply.java new file mode 100644 index 0000000..844619d --- /dev/null +++ b/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鐢宠浜篿d") + private Integer applicantUserId; + + @ApiModelProperty("0鐢宠浜�") + private String applicantUser; + + @ApiModelProperty("0鐢宠鏃堕棿") + private LocalDate applicantDate; + + @ApiModelProperty("1閮ㄩ棬璐熻矗浜烘剰瑙�") + private String departmentHeadOpinion; + + @ApiModelProperty("1閮ㄩ棬璐熻矗浜篿d") + 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鎵瑰噯浜篿d") + 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; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanDetailsService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanDetailsService.java new file mode 100644 index 0000000..e3a1924 --- /dev/null +++ b/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> { + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExaminePlanService.java new file mode 100644 index 0000000..c06f9de --- /dev/null +++ b/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); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordContrastDetailsService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordContrastDetailsService.java new file mode 100644 index 0000000..da272d0 --- /dev/null +++ b/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> { + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordContrastService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordContrastService.java new file mode 100644 index 0000000..58110a7 --- /dev/null +++ b/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); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordDetailService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordDetailService.java new file mode 100644 index 0000000..09fd611 --- /dev/null +++ b/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> { + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExamineRecordService.java new file mode 100644 index 0000000..91c7bd7 --- /dev/null +++ b/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); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExternalApplyService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceExternalApplyService.java new file mode 100644 index 0000000..670f7b9 --- /dev/null +++ b/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); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanDetailsServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanDetailsServiceImpl.java new file mode 100644 index 0000000..c7fcca5 --- /dev/null +++ b/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 { + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExaminePlanServiceImpl.java new file mode 100644 index 0000000..959c349 --- /dev/null +++ b/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瑙f瀽 + 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; + } +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastDetailsServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastDetailsServiceImpl.java new file mode 100644 index 0000000..db6c58a --- /dev/null +++ b/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 { + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordContrastServiceImpl.java new file mode 100644 index 0000000..2b2343b --- /dev/null +++ b/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()); + + // 鏌ヨ瀹℃煡浜篿d + 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("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordDetailServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordDetailServiceImpl.java new file mode 100644 index 0000000..1ef62d5 --- /dev/null +++ b/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 { + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExamineRecordServiceImpl.java new file mode 100644 index 0000000..afb5242 --- /dev/null +++ b/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()); + + // 鏌ヨ瀹℃煡浜篿d + 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("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExternalApplyServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceExternalApplyServiceImpl.java new file mode 100644 index 0000000..f6085b2 --- /dev/null +++ b/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("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-device/src/main/resources/mapper/DeviceExaminePlanDetailsMapper.xml b/cnas-device/src/main/resources/mapper/DeviceExaminePlanDetailsMapper.xml new file mode 100644 index 0000000..36852a8 --- /dev/null +++ b/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> diff --git a/cnas-device/src/main/resources/mapper/DeviceExaminePlanMapper.xml b/cnas-device/src/main/resources/mapper/DeviceExaminePlanMapper.xml new file mode 100644 index 0000000..cf4b0ae --- /dev/null +++ b/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> diff --git a/cnas-device/src/main/resources/mapper/DeviceExamineRecordContrastMapper.xml b/cnas-device/src/main/resources/mapper/DeviceExamineRecordContrastMapper.xml new file mode 100644 index 0000000..e41b339 --- /dev/null +++ b/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> diff --git a/cnas-device/src/main/resources/mapper/DeviceExamineRecordMapper.xml b/cnas-device/src/main/resources/mapper/DeviceExamineRecordMapper.xml new file mode 100644 index 0000000..4dd397b --- /dev/null +++ b/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> diff --git a/cnas-device/src/main/resources/mapper/DeviceExternalApplyMapper.xml b/cnas-device/src/main/resources/mapper/DeviceExternalApplyMapper.xml new file mode 100644 index 0000000..b3419fb --- /dev/null +++ b/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> -- Gitblit v1.9.3