src/main/java/com/ruoyi/safe/controller/SafeCertificationFileController.java
@@ -51,7 +51,7 @@ */ @DeleteMapping("/del") @ApiOperation("å é¤") public R delQualityUnqualified(@RequestBody List<Integer> ids) { public R delSafeCertificationFile(@RequestBody List<Integer> ids) { if(CollectionUtils.isEmpty(ids)){ return R.fail("è¯·éæ©è³å°ä¸æ¡æ°æ®"); } src/main/java/com/ruoyi/safe/controller/SafeHiddenController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,57 @@ package com.ruoyi.safe.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.R; import com.ruoyi.safe.dto.SafeHiddenDto; import com.ruoyi.safe.pojo.SafeHazard; import com.ruoyi.safe.pojo.SafeHidden; import com.ruoyi.safe.service.SafeHazardService; import com.ruoyi.safe.service.SafeHiddenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * <p> * å®å ¨ç产--éæ£ææ¥ä¸æ¥ å端æ§å¶å¨ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 11:10:54 */ @RestController @RequestMapping("/safeHidden") @Api(tags = "å®å ¨ç产--éæ£ææ¥ä¸æ¥") public class SafeHiddenController { @Autowired private SafeHiddenService safeHiddenService; @GetMapping("/page") @ApiOperation("å页æ¥è¯¢") public R page(Page page, SafeHiddenDto safeHiddenDto) { return R.ok(safeHiddenService.pageSafeHidden(page, safeHiddenDto)); } @ApiOperation("æ°å¢éæ£ææ¥") @PostMapping() public R add(@RequestBody SafeHidden safeHidden) { return R.ok(safeHiddenService.add(safeHidden)); } @ApiOperation("ä¿®æ¹éæ£ææ¥(æ´æ¹/éªæ¶)") @PutMapping () public R update(@RequestBody SafeHidden safeHidden) { return R.ok(safeHiddenService.updateById(safeHidden)); } @ApiOperation("å é¤éæ£ææ¥") @DeleteMapping("/{ids}") public R delSafeHidden(@RequestBody List<Integer> ids) { return R.ok(safeHiddenService.delSafeHidden(ids)); } } src/main/java/com/ruoyi/safe/controller/SafeHiddenFileController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,71 @@ package com.ruoyi.safe.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.R; import com.ruoyi.safe.pojo.SafeHiddenFile; import com.ruoyi.safe.service.SafeHiddenFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * <p> * å®å ¨ç产--éæ£ææ¥ä¸æ¥--éä»¶ å端æ§å¶å¨ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 11:50:05 */ @RestController @RequestMapping("/safeHiddenFile") @Api(tags = "å®å ¨ç产--éæ£ææ¥ä¸æ¥--éä»¶") public class SafeHiddenFileController { @Resource private SafeHiddenFileService safeHiddenFileService; /** * æ°å¢ * @param safeHiddenFile * @return */ @PostMapping("/add") @ApiOperation("æ°å¢") public R add(@RequestBody SafeHiddenFile safeHiddenFile) { return R.ok(safeHiddenFileService.save(safeHiddenFile)); } /** * å é¤ * @param ids * @return */ @DeleteMapping("/del") @ApiOperation("å é¤") public R delSafeHiddenFile(@RequestBody List<Integer> ids) { if(CollectionUtils.isEmpty(ids)){ return R.fail("è¯·éæ©è³å°ä¸æ¡æ°æ®"); } //å 餿£éªéä»¶ return R.ok(safeHiddenFileService.removeBatchByIds(ids)); } /** *å页æ¥è¯¢ * @param page * @param safeHiddenFile * @return */ @GetMapping("/listPage") @ApiOperation("å页æ¥è¯¢") public R listPage(Page page, SafeHiddenFile safeHiddenFile) { return R.ok(safeHiddenFileService.page(page, Wrappers.<SafeHiddenFile>lambdaQuery().eq(SafeHiddenFile::getSafeHiddenId,safeHiddenFile.getSafeHiddenId()))); } } src/main/java/com/ruoyi/safe/dto/SafeHiddenDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.ruoyi.safe.dto; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.safe.pojo.SafeHidden; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; import lombok.Setter; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; @Data public class SafeHiddenDto extends SafeHidden { @ApiModelProperty("䏿¥äºº") private String createUserName; @ApiModelProperty("æ´æ¹è´£ä»»äºº") private String rectifyUserName; @ApiModelProperty("éªæ¶äºº") private String verifyUserName; } src/main/java/com/ruoyi/safe/mapper/SafeHiddenFileMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.ruoyi.safe.mapper; import com.ruoyi.safe.pojo.SafeHiddenFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * <p> * å®å ¨ç产--éæ£ææ¥ä¸æ¥--éä»¶ Mapper æ¥å£ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 11:50:05 */ @Mapper public interface SafeHiddenFileMapper extends BaseMapper<SafeHiddenFile> { } src/main/java/com/ruoyi/safe/mapper/SafeHiddenMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.ruoyi.safe.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.safe.dto.SafeHiddenDto; import com.ruoyi.safe.pojo.SafeHidden; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * <p> * å®å ¨ç产--éæ£ææ¥ä¸æ¥ Mapper æ¥å£ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 11:10:54 */ @Mapper public interface SafeHiddenMapper extends BaseMapper<SafeHidden> { IPage<SafeHiddenDto> pageSafeHidden(Page page, @Param("c") SafeHiddenDto safeHiddenDto); } src/main/java/com/ruoyi/safe/pojo/SafeHazard.java
@@ -8,10 +8,13 @@ import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import org.springframework.format.annotation.DateTimeFormat; /** * <p> @@ -70,12 +73,16 @@ private String remark; @TableField(fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @TableField(fill = FieldFill.INSERT) private Integer createUser; @TableField(fill = FieldFill.INSERT_UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; @TableField(fill = FieldFill.INSERT_UPDATE) src/main/java/com/ruoyi/safe/pojo/SafeHidden.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,110 @@ package com.ruoyi.safe.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.LocalDate; import java.time.LocalDateTime; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotBlank; /** * <p> * å®å ¨ç产--éæ£ææ¥ä¸æ¥ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 11:10:54 */ @Getter @Setter @TableName("safe_hidden") @ApiModel(value = "SafeHidden对象", description = "å®å ¨ç产--éæ£ææ¥ä¸æ¥") public class SafeHidden implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty("鿣ç¼å·") private String hiddenCode; @ApiModelProperty("éæ£ç±»å") private String type; @ApiModelProperty("鿣é£é©ç级") private String riskLevel; @ApiModelProperty("éæ£å ·ä½ä½ç½®") private String location; @ApiModelProperty("鿣æè¿°") private String hiddenDesc; @ApiModelProperty("æ´æ¹è´£ä»»äºº ID") @NotBlank(message = "æ´æ¹è´£ä»»äººä¸è½ä¸ºç©º") private Integer rectifyUserId; @ApiModelProperty("æ´æ¹äººèç³»çµè¯") private String rectifyUserMobile; @ApiModelProperty("æ´æ¹å®ææé(æ¥æ)") @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @NotBlank(message = "æ´æ¹å®ææéä¸è½ä¸ºç©º") private LocalDate rectifyTime; @ApiModelProperty("æ´æ¹å ·ä½æªæ½") private String rectifyMeasures; @ApiModelProperty("å®é æ´æ¹å®ææ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate rectifyActualTime; @ApiModelProperty("éªæ¶äºº ID") private Integer verifyUserId; @ApiModelProperty("éªæ¶ç»æ") private String verifyResult; @ApiModelProperty("éªæ¶æè§") private String verifyRemark; @ApiModelProperty("éªæ¶æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate verifyTime; @ApiModelProperty("䏿¥æ¶é´") @TableField(fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @ApiModelProperty("䏿¥äººid") @TableField(fill = FieldFill.INSERT) private Integer createUser; @TableField(fill = FieldFill.INSERT_UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @TableField(fill = FieldFill.INSERT) private Integer tenantId; } src/main/java/com/ruoyi/safe/pojo/SafeHiddenFile.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,57 @@ package com.ruoyi.safe.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 2026-01-28 11:50:05 */ @Getter @Setter @TableName("safe_hidden_file") @ApiModel(value = "SafeHiddenFile对象", description = "å®å ¨ç产--éæ£ææ¥ä¸æ¥--éä»¶") public class SafeHiddenFile implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty("å ³èéæ£ææ¥ä¸æ¥id") private Integer safeHiddenId; private String name; private String url; private Object fileSize; @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @TableField(fill = FieldFill.INSERT) private Integer createUser; @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @TableField(fill = FieldFill.INSERT) private Integer tenantId; } src/main/java/com/ruoyi/safe/service/SafeHiddenFileService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.safe.service; import com.ruoyi.safe.pojo.SafeHiddenFile; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * å®å ¨ç产--éæ£ææ¥ä¸æ¥--éä»¶ æå¡ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 11:50:05 */ public interface SafeHiddenFileService extends IService<SafeHiddenFile> { } src/main/java/com/ruoyi/safe/service/SafeHiddenService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.ruoyi.safe.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.safe.dto.SafeHiddenDto; import com.ruoyi.safe.pojo.SafeHidden; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** * <p> * å®å ¨ç产--éæ£ææ¥ä¸æ¥ æå¡ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 11:10:54 */ public interface SafeHiddenService extends IService<SafeHidden> { IPage<SafeHiddenDto> pageSafeHidden(Page page, SafeHiddenDto safeHiddenDto); int add(SafeHidden safeHidden); int delSafeHidden(List<Integer> ids); } src/main/java/com/ruoyi/safe/service/impl/SafeHiddenFileServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.safe.service.impl; import com.ruoyi.safe.pojo.SafeHiddenFile; import com.ruoyi.safe.mapper.SafeHiddenFileMapper; import com.ruoyi.safe.service.SafeHiddenFileService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * å®å ¨ç产--éæ£ææ¥ä¸æ¥--éä»¶ æå¡å®ç°ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 11:50:05 */ @Service public class SafeHiddenFileServiceImpl extends ServiceImpl<SafeHiddenFileMapper, SafeHiddenFile> implements SafeHiddenFileService { } src/main/java/com/ruoyi/safe/service/impl/SafeHiddenServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,79 @@ package com.ruoyi.safe.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.project.system.domain.SysNotice; import com.ruoyi.project.system.mapper.SysNoticeMapper; import com.ruoyi.project.system.service.ISysNoticeService; import com.ruoyi.project.system.service.impl.SysNoticeServiceImpl; import com.ruoyi.safe.dto.SafeHiddenDto; import com.ruoyi.safe.pojo.SafeHidden; import com.ruoyi.safe.mapper.SafeHiddenMapper; import com.ruoyi.safe.service.SafeHiddenService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.List; /** * <p> * å®å ¨ç产--éæ£ææ¥ä¸æ¥ æå¡å®ç°ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 11:10:54 */ @Service @Transactional(rollbackFor = Exception.class) public class SafeHiddenServiceImpl extends ServiceImpl<SafeHiddenMapper, SafeHidden> implements SafeHiddenService { @Autowired private SafeHiddenMapper safeHiddenMapper; @Autowired private ISysNoticeService sysNoticeService; @Override public IPage<SafeHiddenDto> pageSafeHidden(Page page, SafeHiddenDto safeHiddenDto) { return safeHiddenMapper.pageSafeHidden(page, safeHiddenDto); } @Override public int add(SafeHidden safeHidden) { safeHiddenMapper.insert(safeHidden); String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); String no = "YH" + String.format("%s%03d", datePrefix, safeHidden.getId()); safeHidden.setHiddenCode(no); safeHiddenMapper.updateById(safeHidden); //æ¶æ¯éç¥ sysNoticeService.simpleNoticeByUser("éæ£ææ¥ä¸æ¥æ´æ¹", "éæ£ç±»åï¼"+safeHidden.getType()+"\n"+ "鿣é£é©ç级ï¼"+safeHidden.getRiskLevel()+"\n"+ "éæ£å ·ä½ä½ç½®ï¼"+safeHidden.getLocation()+"\n"+ "鿣æè¿°ï¼"+safeHidden.getHiddenDesc()+"\n"+ "æ´æ¹å®ææé(æ¥æ)ï¼"+safeHidden.getRectifyTime(), Arrays.asList(Long.valueOf(safeHidden.getRectifyUserId())), "/collaborativeApproval/approvalProcess?id=" + safeHidden.getId()); return 0; } @Override public int delSafeHidden(List<Integer> ids) { List<SafeHidden> safeHiddens = safeHiddenMapper.selectBatchIds(ids); for (SafeHidden safeHidden : safeHiddens) { // å é¤å¯¹åºçæ¶æ¯éç¥ sysNoticeService.remove(new LambdaQueryWrapper<SysNotice>() .eq(SysNotice::getNoticeTitle, "éæ£ææ¥ä¸æ¥æ´æ¹") .eq(SysNotice::getSenderId, safeHidden.getCreateUser()) .apply("CAST(notice_content AS CHAR) LIKE CONCAT('%', {0}, '%')", safeHidden.getId())); } safeHiddenMapper.deleteBatchIds(ids); return 0; } } src/main/resources/mapper/safe/SafeHiddenFileMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.safe.mapper.SafeHiddenFileMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.safe.pojo.SafeHiddenFile"> <id column="id" property="id" /> <result column="safe_hidden_id" property="safeHiddenId" /> <result column="name" property="name" /> <result column="url" property="url" /> <result column="file_size" property="fileSize" /> <result column="create_time" property="createTime" /> <result column="create_user" property="createUser" /> <result column="update_time" property="updateTime" /> <result column="update_user" property="updateUser" /> <result column="tenant_id" property="tenantId" /> </resultMap> </mapper> src/main/resources/mapper/safe/SafeHiddenMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@ <?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.safe.mapper.SafeHiddenMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.safe.pojo.SafeHidden"> <id column="id" property="id" /> <result column="hidden_code" property="hiddenCode" /> <result column="type" property="type" /> <result column="risk_level" property="riskLevel" /> <result column="location" property="location" /> <result column="hidden_desc" property="hiddenDesc" /> <result column="rectify_user_id" property="rectifyUserId" /> <result column="rectify_user_mobile" property="rectifyUserMobile" /> <result column="rectify_time" property="rectifyTime" /> <result column="rectify_measures" property="rectifyMeasures" /> <result column="rectify_actual_time" property="rectifyActualTime" /> <result column="verify_user_id" property="verifyUserId" /> <result column="verify_result" property="verifyResult" /> <result column="verify_remark" property="verifyRemark" /> <result column="verify_time" property="verifyTime" /> <result column="create_time" property="createTime" /> <result column="create_user" property="createUser" /> <result column="update_time" property="updateTime" /> <result column="update_user" property="updateUser" /> <result column="tenant_id" property="tenantId" /> </resultMap> <select id="pageSafeHidden" resultType="com.ruoyi.safe.dto.SafeHiddenDto"> select sh.*, su1.nick_name createUserName, su2.nick_name rectifyUserName, su3.nick_name verifyUserName from safe_hidden sh left join sys_user su1 on sh.create_user = su1.user_id left join sys_user su2 on sh.rectify_user_id = su2.user_id left join sys_user su3 on sh.verify_user_id = su3.user_id where 1=1 <if test="c.type != null and c.type != ''"> and sh.type like concat('%', #{c.type}, '%') </if> <if test="c.riskLevel != null and c.riskLevel != ''"> and sh.risk_level like concat('%', #{c.riskLevel}, '%') </if> </select> </mapper>