From e9bf5a0070b5fbdf9afd4475adbf51e46f579040 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期四, 17 四月 2025 17:20:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev_ztzb' into dev_ztzb --- cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerService.java | 71 +++++ ruoyi-admin/src/main/java/com/ruoyi/CodeGenerator.java | 4 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerDetailsServiceImpl.java | 20 + cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDetailsDto.java | 25 + cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerMapper.java | 36 ++ cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceImpowerDetails.java | 61 ++++ cnas-device/src/main/resources/mapper/DeviceImpowerDetailsMapper.xml | 17 + cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerDetailsMapper.java | 26 + cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerDetailsService.java | 16 + cnas-device/src/main/resources/mapper/DeviceImpowerMapper.xml | 14 + cnas-device/src/main/java/com/ruoyi/device/controller/DeviceImpowerController.java | 108 +++++++ cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java | 294 +++++++++++++++++++++ cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceImpower.java | 75 +++++ cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDto.java | 19 + 14 files changed, 784 insertions(+), 2 deletions(-) diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceImpowerController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceImpowerController.java new file mode 100644 index 0000000..354aaf1 --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceImpowerController.java @@ -0,0 +1,108 @@ +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.DeviceImpowerDto; +import com.ruoyi.device.pojo.DeviceImpower; +import com.ruoyi.device.service.DeviceImpowerService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 璁惧浣跨敤鎺堟潈琛� 鍓嶇鎺у埗鍣� + * </p> + * + * @author + * @since 2025-04-17 03:23:23 + */ +@Api(tags = "璁惧浣跨敤鎺堟潈琛�") +@RestController +@RequestMapping("/deviceImpower") +public class DeviceImpowerController { + + @Resource + private DeviceImpowerService deviceImpowerService; + + /** + * 鍒嗛〉鏌ヨ浣跨敤鎺堟潈 + * @return + */ + @ApiOperation("鍒嗛〉鏌ヨ浣跨敤鎺堟潈") + @GetMapping("selectDeviceImpowerByPage") + public Result<IPage<DeviceImpower>> selectDeviceImpowerByPage(Page page, DeviceImpowerDto itemParameter){ + return deviceImpowerService.selectDeviceImpowerByPage(page, itemParameter); + } + + /** + * 鏂板浣跨敤鎺堟潈 + * @param deviceImpowerDto 浣跨敤鎺堟潈 + */ + @ApiOperation("鏂板浣跨敤鎺堟潈") + @PostMapping("/addImpower") + public Result addImpower(@RequestBody DeviceImpowerDto deviceImpowerDto) { + return deviceImpowerService.addImpower(deviceImpowerDto); + } + + /** + * 淇敼浣跨敤鎺堟潈 + * @param deviceImpowerDto 浣跨敤鎺堟潈 + */ + @ApiOperation("淇敼浣跨敤鎺堟潈") + @PostMapping("/updateImpower") + public Result updateImpower(@RequestBody DeviceImpowerDto deviceImpowerDto) { + return deviceImpowerService.updateImpower(deviceImpowerDto); + } + + /** + * 鍒犻櫎浣跨敤鎺堟潈 + * @param deviceImpowerDto 浣跨敤鎺堟潈 + */ + @ApiOperation("鍒犻櫎浣跨敤鎺堟潈") + @DeleteMapping("/deleteImpower") + public Result deleteImpower(DeviceImpowerDto deviceImpowerDto) { + return deviceImpowerService.deleteImpower(deviceImpowerDto); + } + + /** + * 鏌ヨ浣跨敤鎺堟潈璇︽儏 + */ + @ApiOperation("鏌ヨ浣跨敤鎺堟潈璇︽儏") + @GetMapping("/getImpowerDetail") + public Result<DeviceImpowerDto> getImpowerDetail(Integer impowerId) { + return deviceImpowerService.getImpowerDetail(impowerId); + } + + /** + * 鎻愪氦鎵瑰噯 + */ + @ApiOperation("鎻愪氦鎵瑰噯") + @PostMapping("/submitReviewImpowerStatus") + public Result submitReviewImpowerStatus(@RequestBody DeviceImpowerDto deviceImpowerDto) { + return deviceImpowerService.submitReviewImpowerStatus(deviceImpowerDto); + } + + /** + * 浣跨敤鎺堟潈鎵瑰噯 + */ + @ApiOperation("浣跨敤鎺堟潈鎵瑰噯") + @PostMapping("/reviewImpowerStatus") + public Result reviewImpowerStatus(@RequestBody DeviceImpowerDto deviceImpowerDto) { + return deviceImpowerService.reviewImpowerStatus(deviceImpowerDto); + } + + /** + * 瀵煎嚭浣跨敤鎺堟潈 + */ + @ApiOperation("瀵煎嚭浣跨敤鎺堟潈") + @GetMapping("/exportDeviceImpower") + public Result exportDeviceImpower(@RequestParam("ImpowerId") Integer impowerId, HttpServletResponse response) { + return deviceImpowerService.exportDeviceImpowerDto(impowerId, response); + } + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDetailsDto.java b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDetailsDto.java new file mode 100644 index 0000000..502e986 --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDetailsDto.java @@ -0,0 +1,25 @@ +package com.ruoyi.device.dto; + +import com.ruoyi.device.pojo.DeviceImpowerDetails; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2025/4/17 + */ +@Data +public class DeviceImpowerDetailsDto extends DeviceImpowerDetails { + + @ApiModelProperty("搴忓彿") + private Integer index; + + @ApiModelProperty("浠櫒璁惧鍚嶇О") + private String deviceName; + + @ApiModelProperty("浠櫒璁惧鍨嬪彿") + private String specificationModel; + + @ApiModelProperty("浠櫒缂栧彿") + private String managementNumber; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDto.java b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDto.java new file mode 100644 index 0000000..ec362ab --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDto.java @@ -0,0 +1,19 @@ +package com.ruoyi.device.dto; + +import com.ruoyi.device.pojo.DeviceImpower; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author zhuo + * @Date 2025/4/17 + */ +@Data +public class DeviceImpowerDto extends DeviceImpower { + + + @ApiModelProperty("璇︽儏") + private List<DeviceImpowerDetailsDto> deviceImpowerDetails; +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerDetailsMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerDetailsMapper.java new file mode 100644 index 0000000..200e9a9 --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerDetailsMapper.java @@ -0,0 +1,26 @@ +package com.ruoyi.device.mapper; + +import com.ruoyi.device.dto.DeviceImpowerDetailsDto; +import com.ruoyi.device.pojo.DeviceImpowerDetails; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * <p> + * 璁惧閲忓�兼函婧愯鍒掕鎯呰〃 Mapper 鎺ュ彛 + * </p> + * + * @author + * @since 2025-04-17 03:23:39 + */ +public interface DeviceImpowerDetailsMapper extends BaseMapper<DeviceImpowerDetails> { + + /** + * 鏌ヨ璁惧浣跨敤璇︽儏 + * @param impowerId + * @return + */ + List<DeviceImpowerDetailsDto> deviceImpowerDetailsList(@Param("impowerId") Integer impowerId); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerMapper.java new file mode 100644 index 0000000..8fb2b91 --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerMapper.java @@ -0,0 +1,36 @@ +package com.ruoyi.device.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.device.dto.DeviceImpowerDto; +import com.ruoyi.device.dto.DeviceTraceabilityManagementDto; +import com.ruoyi.device.pojo.DeviceImpower; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 璁惧閲忓�兼函婧愯鍒掕〃 Mapper 鎺ュ彛 + * </p> + * + * @author + * @since 2025-04-17 03:23:23 + */ +public interface DeviceImpowerMapper extends BaseMapper<DeviceImpower> { + + /** + * 鍒嗛〉鏌ヨ浣跨敤鎺堟潈 + * @param page + * @param deviceImpowerDtoQueryWrapper + * @return + */ + IPage<DeviceImpower> selectDeviceParameterPage(@Param("page") Page page, @Param("ew") QueryWrapper<DeviceImpowerDto> deviceImpowerDtoQueryWrapper); + + /** + * 鏍规嵁id鏌ヨ璁惧浣跨敤鎺堟潈 + * @param traceabilityManagementId + * @return + */ + DeviceTraceabilityManagementDto selectDeviceTraceabilityManagementById(@Param("traceabilityManagementId") Integer traceabilityManagementId); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceImpower.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceImpower.java new file mode 100644 index 0000000..dc8b6d6 --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceImpower.java @@ -0,0 +1,75 @@ +package com.ruoyi.device.pojo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * <p> + * 璁惧閲忓�兼函婧愯鍒掕〃 + * </p> + * + * @author + * @since 2025-04-17 03:23:23 + */ +@Getter +@Setter +@TableName("device_impower") +@ApiModel(value = "DeviceImpower瀵硅薄", description = "璁惧閲忓�兼函婧愯鍒掕〃") +public class DeviceImpower implements Serializable { + + @ApiModelProperty("鎺堟潈id") + @TableId(value = "impower_id", type = IdType.AUTO) + private Integer impowerId; + + @ApiModelProperty("璁″垝骞翠唤") + private String impowerYear; + + @ApiModelProperty("缂栧埗浜篿d") + private Integer compilerId; + + @ApiModelProperty("缂栧埗浜�") + private String compiler; + + @ApiModelProperty("缂栧埗鏃堕棿") + private LocalDateTime datePreparation; + + @ApiModelProperty("瀹℃牳鐘舵�侊紝0鏈鏍革紝1瀹℃牳") + private Integer status; + + @ApiModelProperty("鎺堟潈id") + private Integer auditId; + + @ApiModelProperty("鎺堟潈浜�") + private String audit; + + @ApiModelProperty("鎺堟潈鏃ユ湡") + private LocalDateTime auditDate; + + @ApiModelProperty("鎺堟潈淇℃伅") + private String auditRemark; + + @ApiModelProperty("鍒涘缓浜篿d") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃ユ湡") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜篿d") + @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/DeviceImpowerDetails.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceImpowerDetails.java new file mode 100644 index 0000000..239db65 --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceImpowerDetails.java @@ -0,0 +1,61 @@ +package com.ruoyi.device.pojo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * <p> + * 璁惧閲忓�兼函婧愯鍒掕鎯呰〃 + * </p> + * + * @author + * @since 2025-04-17 03:23:39 + */ +@Getter +@Setter +@TableName("device_impower_details") +@ApiModel(value = "DeviceImpowerDetails瀵硅薄", description = "璁惧閲忓�兼函婧愯鍒掕鎯呰〃") +public class DeviceImpowerDetails implements Serializable { + + + @ApiModelProperty("璁惧閲忓�兼函婧愯鍒掕鎯卛d") + @TableId(value = "impower_detail_id", type = IdType.AUTO) + private Integer impowerDetailId; + + @ApiModelProperty("璁惧閲忓�兼函婧愯鍒抜d") + private Integer impowerId; + + @ApiModelProperty("璁惧id") + private Integer deviceId; + + @ApiModelProperty("妫�娴嬮」鐩�") + private String inspectionItem; + + @ApiModelProperty("琚巿鏉冧汉") + private String delegatedUser; + + @ApiModelProperty("鍒涘缓浜篿d") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃ユ湡") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜篿d") + @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/service/DeviceImpowerDetailsService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerDetailsService.java new file mode 100644 index 0000000..a19e5df --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerDetailsService.java @@ -0,0 +1,16 @@ +package com.ruoyi.device.service; + +import com.ruoyi.device.pojo.DeviceImpowerDetails; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * <p> + * 璁惧閲忓�兼函婧愯鍒掕鎯呰〃 鏈嶅姟绫� + * </p> + * + * @author + * @since 2025-04-17 03:23:39 + */ +public interface DeviceImpowerDetailsService extends IService<DeviceImpowerDetails> { + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerService.java new file mode 100644 index 0000000..d18475a --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerService.java @@ -0,0 +1,71 @@ +package com.ruoyi.device.service; + +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.DeviceImpowerDto; +import com.ruoyi.device.pojo.DeviceImpower; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.device.pojo.DeviceImpower; +import org.apache.ibatis.annotations.Param; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 璁惧浣跨敤鎺堟潈琛� 鏈嶅姟绫� + * </p> + * + * @author + * @since 2025-04-17 03:23:23 + */ +public interface DeviceImpowerService extends IService<DeviceImpower> { + + /** + * 鍒嗛〉鏌ヨ浣跨敤鎺堟潈 + * @param page 鍒嗛〉鍙傛暟 + * @param itemParameter 浣跨敤鎺堟潈 + * @return + */ + Result<IPage<DeviceImpower>> selectDeviceImpowerByPage(@Param("page") Page page, @Param("itemParameter") DeviceImpowerDto itemParameter); + + /** + * 鏂板浣跨敤鎺堟潈 + * @param deviceImpowerDto 浣跨敤鎺堟潈 + */ + Result addImpower(DeviceImpowerDto deviceImpowerDto); + + /** + * 淇敼浣跨敤鎺堟潈 + * @param deviceImpowerDto 浣跨敤鎺堟潈 + */ + Result updateImpower(DeviceImpowerDto deviceImpowerDto); + + /** + * 鍒犻櫎浣跨敤鎺堟潈 + * @param deviceImpowerDto 浣跨敤鎺堟潈 + */ + Result deleteImpower(DeviceImpowerDto deviceImpowerDto); + + /** + * 鏌ヨ浣跨敤鎺堟潈璇︽儏 + */ + Result<DeviceImpowerDto> getImpowerDetail(Integer impowerId); + + /** + * 鎻愪氦鎵瑰噯 + * @param deviceImpowerDto + * @return + */ + Result submitReviewImpowerStatus(DeviceImpowerDto deviceImpowerDto); + + /** + * 浣跨敤鎺堟潈瀹℃牳 + */ + Result reviewImpowerStatus(DeviceImpowerDto deviceImpowerDto); + + /** + * 浣跨敤鎺堟潈瀵煎嚭 + */ + Result exportDeviceImpowerDto(Integer impowerId, HttpServletResponse response); +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerDetailsServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerDetailsServiceImpl.java new file mode 100644 index 0000000..6ce1670 --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerDetailsServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.device.service.impl; + +import com.ruoyi.device.pojo.DeviceImpowerDetails; +import com.ruoyi.device.mapper.DeviceImpowerDetailsMapper; +import com.ruoyi.device.service.DeviceImpowerDetailsService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * <p> + * 璁惧閲忓�兼函婧愯鍒掕鎯呰〃 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author + * @since 2025-04-17 03:23:39 + */ +@Service +public class DeviceImpowerDetailsServiceImpl extends ServiceImpl<DeviceImpowerDetailsMapper, DeviceImpowerDetails> implements DeviceImpowerDetailsService { + +} diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java new file mode 100644 index 0000000..6ce3e62 --- /dev/null +++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java @@ -0,0 +1,294 @@ +package com.ruoyi.device.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.ruoyi.common.constant.MenuJumpPathConstants; +import com.ruoyi.common.core.domain.Result; +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.DeviceImpowerDetailsDto; +import com.ruoyi.device.dto.DeviceImpowerDto; +import com.ruoyi.device.mapper.DeviceImpowerDetailsMapper; +import com.ruoyi.device.pojo.DeviceImpower; +import com.ruoyi.device.mapper.DeviceImpowerMapper; +import com.ruoyi.device.pojo.DeviceImpower; +import com.ruoyi.device.pojo.DeviceImpowerDetails; +import com.ruoyi.device.service.DeviceImpowerService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.device.service.DeviceImpowerDetailsService; +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.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +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.HashMap; +import java.util.List; +import java.util.stream.Collectors; + +/** + * <p> + * 璁惧浣跨敤琛� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author + * @since 2025-04-17 03:23:23 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class DeviceImpowerServiceImpl extends ServiceImpl<DeviceImpowerMapper, DeviceImpower> implements DeviceImpowerService { + + + @Resource + private DeviceImpowerDetailsService deviceImpowerDetailsService; + + @Resource + private DeviceImpowerDetailsMapper deviceImpowerDetailsMapper; + @Resource + private ThreadPoolTaskExecutor threadPoolTaskExecutor; + @Resource + private InformationNotificationService informationNotificationService; + + @Resource + private UserMapper userMapper; + + /** + * 鍒嗛〉鏌ヨ璁惧浣跨敤 + * + * @param page + * @return + */ + @Override + public Result<IPage<DeviceImpower>> selectDeviceImpowerByPage(Page page, DeviceImpowerDto deviceImpowerDto) { + IPage<DeviceImpower> iPage = baseMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(deviceImpowerDto)); + return Result.success(iPage); + } + + + /** + * 鏂板璁惧浣跨敤 + * + * @param deviceImpowerDto 璁惧浣跨敤 + */ + @Override + public Result addImpower(DeviceImpowerDto deviceImpowerDto) { + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + deviceImpowerDto.setCompilerId(userId); + deviceImpowerDto.setCompiler(user.getName()); + deviceImpowerDto.setDatePreparation(LocalDateTime.now()); + + // 鏌ヨ瀹℃牳浜篿d + if (deviceImpowerDto.getAuditId() != null) { + User auditUser = userMapper.selectById(deviceImpowerDto.getAuditId()); + deviceImpowerDto.setAudit(auditUser.getName()); + } + this.saveOrUpdate(deviceImpowerDto); + + // 璇︽儏璧嬪�煎苟淇濆瓨 + List<DeviceImpowerDetailsDto> deviceImpowerDetails = deviceImpowerDto.getDeviceImpowerDetails(); + if (CollectionUtils.isNotEmpty(deviceImpowerDetails)) { // 璇︽儏涓嶄负绌� + List<DeviceImpowerDetails> collect = deviceImpowerDetails.stream().map(detailsDto -> { + detailsDto.setImpowerId(deviceImpowerDto.getImpowerId()); // 浣跨敤ID + DeviceImpowerDetails details = new DeviceImpowerDetails(); + BeanUtils.copyProperties(detailsDto, details); + return details; + }).collect(Collectors.toList()); + deviceImpowerDetailsService.saveBatch(collect); + } + + return Result.success(); + } + + /** + * 淇敼璁惧浣跨敤 + * + * @param deviceImpowerDto 璁惧浣跨敤 + */ + @Override + public Result updateImpower(DeviceImpowerDto deviceImpowerDto) { + // 鏌ヨ瀹℃牳浜篿d + if (deviceImpowerDto.getAuditId() != null) { + User auditUser = userMapper.selectById(deviceImpowerDto.getAuditId()); + deviceImpowerDto.setAudit(auditUser.getName()); + } + this.saveOrUpdate(deviceImpowerDto); + + // 鍒犻櫎鍘熸湰鐨勮鎯� + deviceImpowerDetailsService.remove(Wrappers.<DeviceImpowerDetails>lambdaQuery().eq(DeviceImpowerDetails::getImpowerId, deviceImpowerDto.getImpowerId())); + // 璇︽儏璧嬪�煎苟淇濆瓨 + List<DeviceImpowerDetailsDto> deviceImpowerDetails = deviceImpowerDto.getDeviceImpowerDetails(); + if (CollectionUtils.isNotEmpty(deviceImpowerDetails)) { // 璇︽儏涓嶄负绌� + List<DeviceImpowerDetails> collect = deviceImpowerDetails.stream().map(detailsDto -> { + detailsDto.setImpowerId(deviceImpowerDto.getImpowerId()); // 浣跨敤ID + DeviceImpowerDetails details = new DeviceImpowerDetails(); + BeanUtils.copyProperties(detailsDto, details); + return details; + }).collect(Collectors.toList()); + deviceImpowerDetailsService.saveBatch(collect); + } + return Result.success(); + } + + /** + * 鍒犻櫎璁惧浣跨敤 + * + * @param deviceImpowerDto 璁惧浣跨敤 + */ + @Override + public Result deleteImpower(DeviceImpowerDto deviceImpowerDto) { + this.removeById(deviceImpowerDto); + deviceImpowerDetailsService.remove(Wrappers.<DeviceImpowerDetails>lambdaQuery().eq(DeviceImpowerDetails::getImpowerId, deviceImpowerDto.getImpowerId())); + return Result.success(); + } + + /** + * 鏌ヨ璁惧浣跨敤璇︽儏 + * + * @param impowerId 璁惧浣跨敤id + */ + @Override + public Result<DeviceImpowerDto> getImpowerDetail(Integer impowerId) { + // 鏌ヨ璁惧浣跨敤 + DeviceImpower deviceImpower = baseMapper.selectById(impowerId); + // 鏌ヨ璇︽儏 + DeviceImpowerDto deviceImpowerDto = new DeviceImpowerDto(); + BeanUtils.copyProperties(deviceImpower, deviceImpowerDto); + deviceImpowerDto.setDeviceImpowerDetails(deviceImpowerDetailsMapper.deviceImpowerDetailsList(impowerId)); + return Result.success(deviceImpowerDto); + } + + /** + * 鎻愪氦鎵瑰噯 + * @param deviceImpowerDto + * @return + */ + @Override + public Result submitReviewImpowerStatus(DeviceImpowerDto deviceImpowerDto) { +// User audit = userMapper.selectById(deviceImpowerDto.getAuditId()); +// this.update(Wrappers.<DeviceImpower>lambdaUpdate() +// .eq(DeviceImpower::getImpowerId, deviceImpowerDto.getImpowerId()) +// .set(DeviceImpower::getAuditId, audit.getId()) +// .set(DeviceImpower::getAudit, audit.getName()) +// .set(DeviceImpower::getAuditDate, null) +// .set(DeviceImpower::getStatus, null) +// .set(DeviceImpower::getAuditRemark, null)); +// +// DeviceImpower deviceImpower = baseMapper.selectById(deviceImpowerDto.getImpowerId()); +// +// // 鍙戦�佹秷鎭� +// 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(deviceImpower.getPlanYear() + "骞寸殑璁惧浣跨敤寰呮壒鍑�"); +// info.setSenderId(userId); +// // 鎺ユ敹浜� +// info.setConsigneeId(audit.getId()); +// info.setJumpPath(MenuJumpPathConstants.DEVICE); +// informationNotificationService.addInformationNotification(info); +// +// // 鍙戦�佷紒涓氬井淇¢�氱煡 +// threadPoolTaskExecutor.execute(() -> { +// String message = ""; +// message += "CNAS璁惧浣跨敤鏍搁�氱煡"; +// message += "\n璇峰幓璧勬簮绠$悊-璁惧涓�灞傜洰褰�-璁惧浣跨敤濉啓"; +// message += "\n" + deviceImpower.getPlanYear() + "骞寸殑璁惧浣跨敤寰呮壒鍑�"; +// //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 +// try { +// WxCpUtils.inform(audit.getAccount(), message, null); +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// }); + return Result.success(); + } + + /** + * 瀹℃牳璁惧浣跨敤 + * + * @param deviceImpowerDto 璁惧浣跨敤 + */ + @Override + public Result reviewImpowerStatus(DeviceImpowerDto deviceImpowerDto) { + LambdaUpdateWrapper<DeviceImpower> wrapper = Wrappers.<DeviceImpower>lambdaUpdate() + .eq(DeviceImpower::getImpowerId, deviceImpowerDto.getImpowerId()) + .set(DeviceImpower::getAuditDate, LocalDateTime.now()) + .set(DeviceImpower::getStatus, deviceImpowerDto.getStatus()) // 瀹℃牳鐘舵�� + .set(DeviceImpower::getAuditRemark, deviceImpowerDto.getAuditRemark());// 瀹℃牳澶囨敞 + + this.update(wrapper); // 鏇存柊 + return Result.success(); + } + + /** + * 瀵煎嚭璁惧浣跨敤 + * + * @param ImpowerId 璁惧浣跨敤id + */ + @Override + public Result exportDeviceImpowerDto(Integer ImpowerId, HttpServletResponse response) { +// // 鏌ヨ璁惧淇濆吇璁″垝 +// DeviceImpowerDto deviceImpower = baseMapper.selectDeviceImpowerById(ImpowerId); +// +// // 鏌ヨ璁惧淇濆吇璁″垝璇︽儏 +// List<DeviceImpowerDetailsDto> deviceImpowerDetailsDtoList = deviceImpowerDetailsMapper.deviceImpowerDetailsList(ImpowerId); +// // 璁剧疆搴忓彿 +// deviceImpowerDetailsDtoList.forEach(deviceImpowerDetails -> { +// deviceImpowerDetails.setIndex(deviceImpowerDetailsDtoList.indexOf(deviceImpowerDetails) + 1); +// }); +// +// // 鑾峰彇璺緞 +// InputStream inputStream = this.getClass().getResourceAsStream("/static/word/traceability-management-details.docx"); +// Configure configure = Configure.builder() +// .bind("deviceImpowerDetailsDtoList", new HackLoopTableRenderPolicy()) +// .build(); +// XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( +// new HashMap<String, Object>() {{ +// put("deviceImpower", deviceImpower); +// put("deviceImpowerDetailsDtoList", deviceImpowerDetailsDtoList); +// // 缂栧埗浜虹鍚嶅湴鍧� +// put("compilerUrl", UserUtils.getFinalUserSignatureUrl(deviceImpower.getCompilerId())); +// // 瀹℃牳浜虹鍚嶅湴鍧� +// put("auditUrl", UserUtils.getFinalUserSignatureUrl(deviceImpower.getAuditId())); +// }}); +// +// try { +// response.setContentType("application/msword"); +// String finalFileName = deviceImpower.getFileName() == null ? "" : deviceImpower.getFileName() + "_"; +// String fileName = URLEncoder.encode( +// finalFileName+ "璁惧浣跨敤", "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("瀵煎嚭澶辫触"); +// } + return Result.success(); + } +} diff --git a/cnas-device/src/main/resources/mapper/DeviceImpowerDetailsMapper.xml b/cnas-device/src/main/resources/mapper/DeviceImpowerDetailsMapper.xml new file mode 100644 index 0000000..6e41e20 --- /dev/null +++ b/cnas-device/src/main/resources/mapper/DeviceImpowerDetailsMapper.xml @@ -0,0 +1,17 @@ +<?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.DeviceImpowerDetailsMapper"> + + <!-- 鏌ヨ璁惧浣跨敤璇︽儏 --> + <select id="deviceImpowerDetailsList" resultType="com.ruoyi.device.dto.DeviceImpowerDetailsDto"> + select + did.*, + d.device_name, + d.device_name, + d.specification_model, + d.management_number + from device_impower_details did + left join device d on did.device_id = d.id + where did.traceability_management_id = #{traceabilityManagementId} + </select> +</mapper> diff --git a/cnas-device/src/main/resources/mapper/DeviceImpowerMapper.xml b/cnas-device/src/main/resources/mapper/DeviceImpowerMapper.xml new file mode 100644 index 0000000..dc9a454 --- /dev/null +++ b/cnas-device/src/main/resources/mapper/DeviceImpowerMapper.xml @@ -0,0 +1,14 @@ +<?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.DeviceImpowerMapper"> + + + <select id="selectDeviceParameterPage" resultType="com.ruoyi.device.pojo.DeviceImpower"> + select + * + from device_impower + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/ruoyi-admin/src/main/java/com/ruoyi/CodeGenerator.java b/ruoyi-admin/src/main/java/com/ruoyi/CodeGenerator.java index f12e883..fa4d0dc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/CodeGenerator.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/CodeGenerator.java @@ -20,8 +20,8 @@ public static String database_username = "root"; public static String database_password= "123456"; public static String author = ""; - public static String model_name = "/inspect-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲 - public static String setParent = "com.ruoyi.inspect"; // 鍖呰矾寰� + public static String model_name = "/cnas-device"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲 + public static String setParent = "com.ruoyi.device"; // 鍖呰矾寰� public static String tablePrefix = ""; // 璁剧疆杩囨护琛ㄥ墠缂� public static void main(String[] args) { String projectPath = System.getProperty("user.dir"); -- Gitblit v1.9.3