From 173f44a1f9a59509996192e3446cbd26f2613b5e Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 10 十月 2025 15:55:32 +0800
Subject: [PATCH] yys  新增关键煤种锁仓模块

---
 main-business/src/main/resources/db/migration/postgresql/V20250624092100__create_table_key_coal_locks.sql |   47 +++++++
 main-business/src/main/java/com/ruoyi/business/utils/OrderUtils.java                                      |   51 ++++++++
 ruoyi-admin/src/main/resources/application-druid.yml                                                      |    2 
 main-business/src/main/java/com/ruoyi/business/entity/KeyCoalLocks.java                                   |   99 ++++++++++++++++
 main-business/src/main/java/com/ruoyi/business/service/KeyCoalLocksService.java                           |   21 +++
 main-business/src/main/resources/mapper/KeyCoalLocksMapper.xml                                            |    5 
 main-business/src/main/java/com/ruoyi/business/controller/KeyCoalLocksController.java                     |   69 +++++++++++
 main-business/src/main/java/com/ruoyi/business/service/impl/KeyCoalLocksServiceImpl.java                  |   45 +++++++
 main-business/src/main/java/com/ruoyi/business/mapper/KeyCoalLocksMapper.java                             |   13 ++
 9 files changed, 351 insertions(+), 1 deletions(-)

diff --git a/main-business/src/main/java/com/ruoyi/business/controller/KeyCoalLocksController.java b/main-business/src/main/java/com/ruoyi/business/controller/KeyCoalLocksController.java
new file mode 100644
index 0000000..fb96728
--- /dev/null
+++ b/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));
+    }
+
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/entity/KeyCoalLocks.java b/main-business/src/main/java/com/ruoyi/business/entity/KeyCoalLocks.java
new file mode 100644
index 0000000..603a166
--- /dev/null
+++ b/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;
+
+    /**
+     * 瑙i攣鏃堕棿
+     */
+    @TableField("expected_unlock_time")
+    private String expectedUnlockTime;
+
+    /**
+     * 澶囨敞
+     */
+    @TableField("remarks")
+    private String remarks;
+
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/mapper/KeyCoalLocksMapper.java b/main-business/src/main/java/com/ruoyi/business/mapper/KeyCoalLocksMapper.java
new file mode 100644
index 0000000..93e4380
--- /dev/null
+++ b/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> {
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/service/KeyCoalLocksService.java b/main-business/src/main/java/com/ruoyi/business/service/KeyCoalLocksService.java
new file mode 100644
index 0000000..6234d4d
--- /dev/null
+++ b/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);
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/KeyCoalLocksServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/KeyCoalLocksServiceImpl.java
new file mode 100644
index 0000000..7fbef8c
--- /dev/null
+++ b/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);}
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/utils/OrderUtils.java b/main-business/src/main/java/com/ruoyi/business/utils/OrderUtils.java
new file mode 100644
index 0000000..fe6e3ca
--- /dev/null
+++ b/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 {
+
+
+    /**
+     * 鏌ヨ褰撳ぉ锛堝熀浜巆reateTime瀛楁锛夌殑璁板綍鏁伴噺
+     * @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
+        );
+
+        // 杞崲涓篋ate绫诲瀷锛堝鏋滃疄浣撶被涓璫reateTime鏄疞ocalDateTime鍙洿鎺ヤ娇鐢級
+        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 + 鏃堕棿锛坹yyyMMdd锛� + 璁㈠崟鏁伴噺(001)
+        return preFix + LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE).replaceAll("-", "") + String.format("%03d", (aLong + 1));}
+}
diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250624092100__create_table_key_coal_locks.sql b/main-business/src/main/resources/db/migration/postgresql/V20250624092100__create_table_key_coal_locks.sql
new file mode 100644
index 0000000..5d8bf21
--- /dev/null
+++ b/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),           -- 瑙i攣鏃堕棿
+    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 '瑙i攣鏃堕棿';
+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 '閫昏緫鍒犻櫎';
\ No newline at end of file
diff --git a/main-business/src/main/resources/mapper/KeyCoalLocksMapper.xml b/main-business/src/main/resources/mapper/KeyCoalLocksMapper.xml
new file mode 100644
index 0000000..e02a5c3
--- /dev/null
+++ b/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>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index c41da97..f477198 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/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
             # 鏁版嵁搴撶储寮�

--
Gitblit v1.9.3