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