| src/main/java/com/ruoyi/safe/controller/SafeHazardController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/safe/controller/SafeHazardRecordController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/safe/dto/SafeHazardRecordDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/safe/mapper/SafeHazardRecordMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/safe/pojo/SafeHazardRecord.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/safe/service/SafeHazardRecordService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/safe/service/impl/SafeHazardRecordServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/safe/SafeHazardRecordMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/safe/controller/SafeHazardController.java
@@ -40,11 +40,13 @@ public R add(@RequestBody SafeHazard safeHazard) { return R.ok(safeHazardService.save(safeHazard)); } @ApiOperation("ä¿®æ¹å±é©æºå°è´¦") @PutMapping () public R update(@RequestBody SafeHazard safeHazard) { return R.ok(safeHazardService.updateById(safeHazard)); } @ApiOperation("å é¤å±é©æºå°è´¦") @DeleteMapping("/{ids}") public R delSafeHazard(@RequestBody List<Integer> ids) { src/main/java/com/ruoyi/safe/controller/SafeHazardRecordController.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.SafeHazardRecordDto; import com.ruoyi.safe.pojo.SafeHazard; import com.ruoyi.safe.pojo.SafeHazardRecord; import com.ruoyi.safe.service.SafeHazardRecordService; import com.ruoyi.safe.service.SafeHazardService; 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 01:13:40 */ @RestController @RequestMapping("/safeHazardRecord") @Api(tags = "å®å ¨ç产--å±é©ç©æç®¡æ§") public class SafeHazardRecordController { @Autowired private SafeHazardRecordService safeHazardRecordService; @GetMapping("/page") @ApiOperation("å页æ¥è¯¢") public R page(Page page, SafeHazardRecordDto safeHazardRecordDto) { return R.ok(safeHazardRecordService.pageSafeHazardRecord(page, safeHazardRecordDto)); } @ApiOperation("é¢ç¨") @PostMapping("/borrow") public R borrow(@RequestBody SafeHazardRecord safeHazardRecord) { return R.ok(safeHazardRecordService.borrow(safeHazardRecord)); } @ApiOperation("å½è¿") @PutMapping("/return") public R returnSafeHazardRecord(@RequestBody SafeHazardRecord safeHazardRecord) { return R.ok(safeHazardRecordService.returnSafeHazardRecord(safeHazardRecord)); } @ApiOperation("å é¤") @DeleteMapping("/{ids}") public R delSafeHazardRecord(@RequestBody List<Integer> ids) { return R.ok(safeHazardRecordService.delSafeHazardRecord(ids)); } } src/main/java/com/ruoyi/safe/dto/SafeHazardRecordDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package com.ruoyi.safe.dto; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.safe.pojo.SafeHazardRecord; 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.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; @Data public class SafeHazardRecordDto extends SafeHazardRecord { @ApiModelProperty("é¢ç¨äºº") private String applyUserName; @ApiModelProperty("å½è¿äºº") private String returnUserName; @ApiModelProperty("å±é©æºåç§°") private String name; @ApiModelProperty("å±é©æºç¼ç ") private String code; @ApiModelProperty("å±é©æºç±»å") private String type; @ApiModelProperty("é£é©ç级") private String riskLevel; @ApiModelProperty("æå¨ä½ç½®") private String location; } src/main/java/com/ruoyi/safe/mapper/SafeHazardRecordMapper.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.SafeHazardRecordDto; import com.ruoyi.safe.pojo.SafeHazardRecord; 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 01:13:40 */ @Mapper public interface SafeHazardRecordMapper extends BaseMapper<SafeHazardRecord> { IPage<SafeHazardRecordDto> pageSafeHazardRecord(Page page, @Param("c") SafeHazardRecordDto safeHazardRecordDto); } src/main/java/com/ruoyi/safe/pojo/SafeHazardRecord.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,88 @@ 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.math.BigDecimal; 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; /** * <p> * å®å ¨ç产--å±é©ç©æç®¡æ§ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 01:13:40 */ @Getter @Setter @TableName("safe_hazard_record") @ApiModel(value = "SafeHazardRecord对象", description = "å®å ¨ç产--å±é©ç©æç®¡æ§") public class SafeHazardRecord implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty("åå·") private String materialRecordCode; @ApiModelProperty("å ³èå±é©æºå°è´¦ ID") private Integer safeHazardId; @ApiModelProperty("é¢ç¨äºº ID") private Integer applyUserId; @ApiModelProperty("é¢ç¨æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate applyTime; @ApiModelProperty("é¢ç¨æ°é") private BigDecimal applyQty; @ApiModelProperty("é¢ç¨ç¨é") private String applyPurpose; @ApiModelProperty("å½è¿äºº ID") private Integer returnUserId; @ApiModelProperty("å½è¿æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate returnTime; @ApiModelProperty("å½è¿æ åµè¯´æ") private String returnRemark; @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) private Integer updateUser; @TableField(fill = FieldFill.INSERT) private Integer tenantId; } src/main/java/com/ruoyi/safe/service/SafeHazardRecordService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ 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.SafeHazardRecordDto; import com.ruoyi.safe.pojo.SafeHazardRecord; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** * <p> * å®å ¨ç产--å±é©ç©æç®¡æ§ æå¡ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 01:13:40 */ public interface SafeHazardRecordService extends IService<SafeHazardRecord> { IPage<SafeHazardRecordDto> pageSafeHazardRecord(Page page, SafeHazardRecordDto safeHazardRecordDto); int borrow(SafeHazardRecord safeHazardRecord); int returnSafeHazardRecord(SafeHazardRecord safeHazardRecord); int delSafeHazardRecord(List<Integer> ids); } src/main/java/com/ruoyi/safe/service/impl/SafeHazardRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,88 @@ package com.ruoyi.safe.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.safe.dto.SafeHazardRecordDto; import com.ruoyi.safe.mapper.SafeHazardMapper; import com.ruoyi.safe.pojo.SafeHazard; import com.ruoyi.safe.pojo.SafeHazardRecord; import com.ruoyi.safe.mapper.SafeHazardRecordMapper; import com.ruoyi.safe.service.SafeHazardRecordService; 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.util.List; /** * <p> * å®å ¨ç产--å±é©ç©æç®¡æ§ æå¡å®ç°ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-28 01:13:40 */ @Service @Transactional(rollbackFor = Exception.class) public class SafeHazardRecordServiceImpl extends ServiceImpl<SafeHazardRecordMapper, SafeHazardRecord> implements SafeHazardRecordService { @Autowired private SafeHazardRecordMapper safeHazardRecordMapper; @Autowired private SafeHazardMapper safeHazardMapper; @Override public IPage<SafeHazardRecordDto> pageSafeHazardRecord(Page page, SafeHazardRecordDto safeHazardRecordDto) { return safeHazardRecordMapper.pageSafeHazardRecord(page, safeHazardRecordDto); } @Override public int borrow(SafeHazardRecord safeHazardRecord) { //夿æ°éæ¯å¦æ»¡è¶³ SafeHazard safeHazard = safeHazardMapper.selectById(safeHazardRecord.getSafeHazardId()); if (safeHazard.getStockQty().compareTo(safeHazardRecord.getApplyQty())<0) { throw new RuntimeException("åºåæ°éä¸è¶³"); } //é¢ç¨ safeHazardRecord.setApplyUserId(SecurityUtils.getUserId().intValue()); safeHazardRecord.setApplyTime(LocalDate.now()); safeHazardRecordMapper.insert(safeHazardRecord); //ååºå safeHazard.setStockQty(safeHazard.getStockQty().subtract(safeHazardRecord.getApplyQty())); safeHazardMapper.updateById(safeHazard); return 0; } @Override public int returnSafeHazardRecord(SafeHazardRecord safeHazardRecord) { SafeHazard safeHazard = safeHazardMapper.selectById(safeHazardRecord.getSafeHazardId()); //å½è¿ safeHazardRecord.setReturnUserId(SecurityUtils.getUserId().intValue()); safeHazardRecord.setReturnTime(LocalDate.now()); safeHazardRecordMapper.updateById(safeHazardRecord); //å¢åºå safeHazard.setStockQty(safeHazard.getStockQty().add(safeHazardRecord.getApplyQty())); safeHazardMapper.updateById(safeHazard); return 0; } @Override public int delSafeHazardRecord(List<Integer> ids) { List<SafeHazardRecord> safeHazardRecords = safeHazardRecordMapper.selectBatchIds(ids); for (SafeHazardRecord safeHazardRecord : safeHazardRecords) { //夿æ¯å¦æå½è¿ if (ObjectUtils.isNull(safeHazardRecord.getReturnUserId())){ //没æå½è¿,å é¤é¢ç¨è®°å½éè¦å¢å åºå SafeHazard safeHazard = safeHazardMapper.selectById(safeHazardRecord.getSafeHazardId()); safeHazard.setStockQty(safeHazard.getStockQty().add(safeHazardRecord.getApplyQty())); safeHazardMapper.updateById(safeHazard); } } safeHazardRecordMapper.deleteBatchIds(ids); return 0; } } src/main/resources/mapper/safe/SafeHazardRecordMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,54 @@ <?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.SafeHazardRecordMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.safe.pojo.SafeHazardRecord"> <id column="id" property="id" /> <result column="material_record_code" property="materialRecordCode" /> <result column="safe_hazard_id" property="safeHazardId" /> <result column="apply_user_id" property="applyUserId" /> <result column="apply_time" property="applyTime" /> <result column="apply_qty" property="applyQty" /> <result column="apply_purpose" property="applyPurpose" /> <result column="return_user_id" property="returnUserId" /> <result column="return_time" property="returnTime" /> <result column="return_remark" property="returnRemark" /> <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="pageSafeHazardRecord" resultType="com.ruoyi.safe.dto.SafeHazardRecordDto"> select shr.*, su1.nick_name applyUserName, su2.nick_name returnUserName, sh.name, sh.code, sh.type, sh.risk_level, sh.location from safe_hazard_record shr left join sys_user su1 on shr.apply_user_id = su1.user_id left join sys_user su2 on shr.return_user_id = su2.user_id left join safe_hazard sh on shr.safe_hazard_id = sh.id where 1=1 <if test="c.materialRecordCode != null and c.materialRecordCode != ''"> and shr.material_record_code like concat('%', #{c.materialRecordCode}, '%') </if> <if test="c.name != null and c.name != ''"> and sh.name like concat('%', #{c.name}, '%') </if> <if test="c.code != null and c.code != ''"> and sh.code like concat('%', #{c.code}, '%') </if> <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>