main-business/src/main/java/com/ruoyi/business/controller/KeyCoalLocksController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,69 @@ package com.ruoyi.business.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.business.dto.InspectionTaskDto; import com.ruoyi.business.entity.InspectionTask; import com.ruoyi.business.entity.KeyCoalLocks; import com.ruoyi.business.mapper.KeyCoalLocksMapper; import com.ruoyi.business.service.KeyCoalLocksService; import com.ruoyi.business.utils.OrderUtils; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @author :yys * @date : 2025/10/10 10:18 */ @RestController @RequestMapping("/keyCoalLocks") public class KeyCoalLocksController extends BaseController{ @Autowired private KeyCoalLocksService keyCoalLocksService; @Autowired private KeyCoalLocksMapper keyCoalLocksMapper; /** * å ³é®ç ¤ç§éä»è¡¨æ¥è¯¢ */ @GetMapping("/list") public R<IPage<KeyCoalLocks>> list(Page<KeyCoalLocks> page, KeyCoalLocks keyCoalLocks) { IPage<KeyCoalLocks> list = keyCoalLocksService.getListPage(page,keyCoalLocks); return R.ok(list); } /** * æ·»å å ³é®ç ¤ç§éä»è¡¨ */ @PostMapping("/add") public R add(@RequestBody KeyCoalLocks keyCoalLocks) { String code = OrderUtils.countTodayByCreateTime(keyCoalLocksMapper, "LK"); keyCoalLocks.setLockUser(getLoginUser().getUsername()); keyCoalLocks.setLockCode(code); return R.ok(keyCoalLocksService.save(keyCoalLocks)); } /** * ä¿®æ¹å ³é®ç ¤ç§éä»è¡¨ */ @PostMapping("/edit") public R update(@RequestBody KeyCoalLocks keyCoalLocks) { return R.ok(keyCoalLocksService.updateById(keyCoalLocks)); } /** * å é¤å ³é®ç ¤ç§éä»è¡¨ */ @DeleteMapping("/del") public R delete(@RequestBody List<Long> ids) { return R.ok(keyCoalLocksService.removeByIds(ids)); } } main-business/src/main/java/com/ruoyi/business/entity/KeyCoalLocks.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,99 @@ package com.ruoyi.business.entity; 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 com.ruoyi.common.core.domain.MyBaseEntity; import lombok.Data; import java.io.Serializable; import java.sql.Timestamp; /** * ç ¤ä»å®ä½ç±» */ @Data @TableName("key_coal_locks") public class KeyCoalLocks extends MyBaseEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id */ @TableId(value = "id", type = IdType.AUTO) private Long id; /** * éä»ç¼å· */ @TableField("lock_code") private String lockCode; /** * ç ¤ç§åç§° */ @TableField("coal_name") private String coalName; /** * ä¾åºå */ @TableField("supplier_name") private String supplierName; /** * æ»åºåé(å¨) */ @TableField("total_inventory") private Double totalInventory; /** * é仿°é(å¨) */ @TableField("lock_quantity") private Double lockQuantity; /** * å¯ç¨æ°é(å¨) */ @TableField("available_quantity") private Double availableQuantity; /** * éä»ç¶æ */ @TableField("lock_status") private String lockStatus; /** * éä»åå */ @TableField("lock_reason") private String lockReason; /** * éä»äºº */ @TableField("lock_user") private String lockUser; /** * é仿¶é´ */ @TableField("lock_time") private String lockTime; /** * è§£éæ¶é´ */ @TableField("expected_unlock_time") private String expectedUnlockTime; /** * 夿³¨ */ @TableField("remarks") private String remarks; } main-business/src/main/java/com/ruoyi/business/mapper/KeyCoalLocksMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.ruoyi.business.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.business.entity.KeyCoalLocks; import org.apache.ibatis.annotations.Mapper; /** * @author :yys * @date : 2025/10/10 10:14 */ @Mapper public interface KeyCoalLocksMapper extends BaseMapper<KeyCoalLocks> { } main-business/src/main/java/com/ruoyi/business/service/KeyCoalLocksService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.ruoyi.business.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.business.entity.InspectionTask; import com.ruoyi.business.entity.KeyCoalLocks; /** * @author :yys * @date : 2025/10/10 10:16 */ public interface KeyCoalLocksService extends IService<KeyCoalLocks> { /** * è·åå表 * @param page * @param keyCoalLocks * @return */ IPage<KeyCoalLocks> getListPage(Page<KeyCoalLocks> page, KeyCoalLocks keyCoalLocks); } main-business/src/main/java/com/ruoyi/business/service/impl/KeyCoalLocksServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,45 @@ package com.ruoyi.business.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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.business.entity.InspectionTask; import com.ruoyi.business.entity.KeyCoalLocks; import com.ruoyi.business.mapper.KeyCoalLocksMapper; import com.ruoyi.business.service.KeyCoalLocksService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * @author :yys * @date : 2025/10/10 10:17 */ @Service @Slf4j public class KeyCoalLocksServiceImpl extends ServiceImpl<KeyCoalLocksMapper, KeyCoalLocks> implements KeyCoalLocksService { @Autowired private KeyCoalLocksMapper keyCoalLocksMapper; @Override public IPage<KeyCoalLocks> getListPage(Page<KeyCoalLocks> page, KeyCoalLocks keyCoalLocks) { LambdaQueryWrapper<KeyCoalLocks> keyCoalLocksLambdaQueryWrapper = new LambdaQueryWrapper<>(); if(keyCoalLocks != null){ if(!StringUtils.isEmpty(keyCoalLocks.getCoalName())){ keyCoalLocksLambdaQueryWrapper.like(KeyCoalLocks::getCoalName,keyCoalLocks.getCoalName()); } if(!StringUtils.isEmpty(keyCoalLocks.getLockStatus())){ keyCoalLocksLambdaQueryWrapper.eq(KeyCoalLocks::getLockStatus,keyCoalLocks.getLockStatus()); } if(!StringUtils.isEmpty(keyCoalLocks.getSupplierName())){ keyCoalLocksLambdaQueryWrapper.like(KeyCoalLocks::getSupplierName,keyCoalLocks.getSupplierName()); } if(!StringUtils.isEmpty(keyCoalLocks.getLockTime())){ keyCoalLocksLambdaQueryWrapper.like(KeyCoalLocks::getLockTime,keyCoalLocks.getLockTime()); } } return keyCoalLocksMapper.selectPage(page,keyCoalLocksLambdaQueryWrapper);} } main-business/src/main/java/com/ruoyi/business/utils/OrderUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,51 @@ package com.ruoyi.business.utils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Date; /** * @author :yys * @date : 2025/9/15 15:31 */ public class OrderUtils { /** * æ¥è¯¢å½å¤©ï¼åºäºcreateTimeåæ®µï¼çè®°å½æ°é * @param mapper å®ä½ç±»å¯¹åºçBaseMapper * @param <T> å®ä½ç±»æ³å * @return å½å¤©è®°å½æ°é */ public static <T> String countTodayByCreateTime(BaseMapper<T> mapper,String preFix) { // è·åå½å¤©å¼å§æ¶é´ï¼00:00:00ï¼ LocalDateTime todayStart = LocalDateTime.of( LocalDateTime.now().toLocalDate(), LocalTime.MIN ); // è·åå½å¤©ç»ææ¶é´ï¼23:59:59.999ï¼ LocalDateTime todayEnd = LocalDateTime.of( LocalDateTime.now().toLocalDate(), LocalTime.MAX ); // 转æ¢ä¸ºDateç±»åï¼å¦æå®ä½ç±»ä¸createTimeæ¯LocalDateTimeå¯ç´æ¥ä½¿ç¨ï¼ Date startDate = Date.from(todayStart.atZone(ZoneId.systemDefault()).toInstant()); Date endDate = Date.from(todayEnd.atZone(ZoneId.systemDefault()).toInstant()); // æå»ºæ¥è¯¢æ¡ä»¶ QueryWrapper<T> queryWrapper = new QueryWrapper<>(); queryWrapper.ge("create_time", startDate) // 大äºçäºå½å¤©å¼å§ .lt("create_time", endDate); // å°äºå½å¤©ç»æï¼é¿å 毫ç§ç²¾åº¦é®é¢ï¼ // æ§è¡æ¥è¯¢ Long aLong = mapper.selectCount(queryWrapper); // æ¼æ¥è®¢åç¼å· preFix + æ¶é´ï¼yyyyMMddï¼ + è®¢åæ°é(001) return preFix + LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE).replaceAll("-", "") + String.format("%03d", (aLong + 1));} } main-business/src/main/resources/db/migration/postgresql/V20250624092100__create_table_key_coal_locks.sql
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ DROP TABLE IF EXISTS coal_lock; -- å建éä»è¡¨ CREATE TABLE coal_lock ( id int4 PRIMARY KEY, -- id lock_code varchar(255), -- éä»ç¼å· coal_name varchar(255), -- ç ¤ç§åç§° supplier_name varchar(255), -- ä¾åºå total_inventory varchar(255), -- æ»åºåé(å¨) lock_quantity varchar(255), -- é仿°é(å¨) available_quantity varchar(255), -- å¯ç¨æ°é(å¨) lock_status varchar(255), -- éä»ç¶æ lock_reason varchar(255), -- éä»åå lock_user varchar(255), -- éä»äºº lock_time varchar(255), -- é仿¶é´ expected_unlock_time varchar(255), -- è§£éæ¶é´ remarks varchar(255), -- 夿³¨ create_by varchar(255), -- å建è create_time timestamp(6), -- å建æ¶é´ update_by varchar(255), -- ä¿®æ¹è update_time timestamp(6), -- ä¿®æ¹æ¶é´ deleted int4 -- é»è¾å é¤ ); -- æ·»å 表注é COMMENT ON TABLE coal_lock IS 'éä»è¡¨'; -- æ·»å åæ®µæ³¨é COMMENT ON COLUMN coal_lock.id IS 'id'; COMMENT ON COLUMN coal_lock.lock_code IS 'éä»ç¼å·'; COMMENT ON COLUMN coal_lock.coal_name IS 'ç ¤ç§åç§°'; COMMENT ON COLUMN coal_lock.supplier_name IS 'ä¾åºå'; COMMENT ON COLUMN coal_lock.total_inventory IS 'æ»åºåé(å¨)'; COMMENT ON COLUMN coal_lock.lock_quantity IS 'é仿°é(å¨)'; COMMENT ON COLUMN coal_lock.available_quantity IS 'å¯ç¨æ°é(å¨)'; COMMENT ON COLUMN coal_lock.lock_status IS 'éä»ç¶æ'; COMMENT ON COLUMN coal_lock.lock_reason IS 'éä»åå '; COMMENT ON COLUMN coal_lock.lock_user IS 'éä»äºº'; COMMENT ON COLUMN coal_lock.lock_time IS 'é仿¶é´'; COMMENT ON COLUMN coal_lock.expected_unlock_time IS 'è§£éæ¶é´'; COMMENT ON COLUMN coal_lock.remarks IS '夿³¨'; COMMENT ON COLUMN coal_lock.create_by IS 'å建è '; COMMENT ON COLUMN coal_lock.create_time IS 'å建æ¶é´'; COMMENT ON COLUMN coal_lock.update_by IS 'ä¿®æ¹è '; COMMENT ON COLUMN coal_lock.update_time IS 'ä¿®æ¹æ¶é´'; COMMENT ON COLUMN coal_lock.deleted IS 'é»è¾å é¤'; main-business/src/main/resources/mapper/KeyCoalLocksMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,5 @@ <?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.business.mapper.KeyCoalLocksMapper"> </mapper> ruoyi-admin/src/main/resources/application-druid.yml
@@ -87,7 +87,7 @@ # redis é ç½® redis: # å°å host: 127.0.0.1 host: 192.168.1.185 # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # æ°æ®åºç´¢å¼