From 99b771bb51ee378a8a5afad2b023f45b4b06ede7 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Wed, 3 Sep 2025 11:45:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/xg/domain/XgDormRoom.java | 5 ++++ .../dromara/xg/domain/bo/XgDormRoomBo.java | 6 +++- .../dromara/xg/domain/vo/XgDormRoomVo.java | 30 +++++++++++++++++-- .../service/impl/XgDormRoomServiceImpl.java | 6 ++-- docs/开发文档/API/宿舍房间管理API.md | 18 ++++++++--- docs/设计文档/database/hzdyjs_xg0820.sql | 1 + web/src/api/xg/xgss/dormRoom/types.ts | 15 ++++++++++ .../xgss/xsssfjgl/components/RoomDialog.vue | 11 +++++++ web/src/views/xg/xgss/xsssfjgl/index.vue | 1 + 9 files changed, 84 insertions(+), 9 deletions(-) diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormRoom.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormRoom.java index 1346dc08..4dd7000c 100644 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormRoom.java +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormRoom.java @@ -67,6 +67,11 @@ public class XgDormRoom extends TenantEntity { */ private String roomStatus; + /** + * 排序号 + */ + private Long sort; + /** * 删除标志(0代表存在 1代表删除) */ diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormRoomBo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormRoomBo.java index c870cba6..a0eedb5d 100644 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormRoomBo.java +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormRoomBo.java @@ -70,6 +70,11 @@ public class XgDormRoomBo extends BaseEntity { */ private String roomStatus; + /** + * 排序号 + */ + private Long sort; + /** * 删除标志(0代表存在 1代表删除) */ @@ -80,5 +85,4 @@ public class XgDormRoomBo extends BaseEntity { */ private String remark; - } diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormRoomVo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormRoomVo.java index aae4aabc..f71cd261 100644 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormRoomVo.java +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormRoomVo.java @@ -11,8 +11,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.util.Date; - - +import com.fasterxml.jackson.annotation.JsonFormat; /** * 宿舍房间信息视图对象 xg_dorm_room @@ -82,6 +81,12 @@ public class XgDormRoomVo implements Serializable { @ExcelProperty(value = "房间状态(0可用 1维修中 2停用)") private String roomStatus; + /** + * 排序号 + */ + @ExcelProperty(value = "排序号") + private Long sort; + /** * 删除标志(0代表存在 1代表删除) */ @@ -94,5 +99,26 @@ public class XgDormRoomVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 创建者 + */ + private Long createBy; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 更新者 + */ + private Long updateBy; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; } diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormRoomServiceImpl.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormRoomServiceImpl.java index dddcfed0..81a5ab8e 100644 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormRoomServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormRoomServiceImpl.java @@ -144,8 +144,9 @@ public class XgDormRoomServiceImpl implements IXgDormRoomService { private LambdaQueryWrapper buildQueryWrapper(XgDormRoomBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.orderByAsc(XgDormRoom::getFloorNum); // 优先按楼层排序 - lqw.orderByAsc(XgDormRoom::getRoomName); // 其次按房间名称排序 + lqw.orderByAsc(XgDormRoom::getSort); // 第一优先级:按排序号升序 + lqw.orderByAsc(XgDormRoom::getFloorNum); // 第二优先级:按楼层升序 + lqw.orderByAsc(XgDormRoom::getRoomName); // 第三优先级:按房间名称升序 lqw.like(StringUtils.isNotBlank(bo.getRoomCode()), XgDormRoom::getRoomCode, bo.getRoomCode()); lqw.like(StringUtils.isNotBlank(bo.getRoomName()), XgDormRoom::getRoomName, bo.getRoomName()); lqw.eq(bo.getBuildingId() != null, XgDormRoom::getBuildingId, bo.getBuildingId()); @@ -154,6 +155,7 @@ public class XgDormRoomServiceImpl implements IXgDormRoomService { lqw.eq(bo.getActualBeds() != null, XgDormRoom::getActualBeds, bo.getActualBeds()); lqw.eq(bo.getRoomArea() != null, XgDormRoom::getRoomArea, bo.getRoomArea()); lqw.eq(StringUtils.isNotBlank(bo.getRoomStatus()), XgDormRoom::getRoomStatus, bo.getRoomStatus()); + lqw.eq(bo.getSort() != null, XgDormRoom::getSort, bo.getSort()); lqw.eq(StringUtils.isNotBlank(bo.getDeleted()), XgDormRoom::getDeleted, bo.getDeleted()); return lqw; } diff --git a/docs/开发文档/API/宿舍房间管理API.md b/docs/开发文档/API/宿舍房间管理API.md index b60ce95e..b26aec8f 100644 --- a/docs/开发文档/API/宿舍房间管理API.md +++ b/docs/开发文档/API/宿舍房间管理API.md @@ -302,6 +302,7 @@ xgss:dormRoom:list | floorNum | Integer | 否 | 楼层号,精确查询 | | roomType | String | 否 | 房间类型(1标准间 2单人间 3套间) | | roomStatus | String | 否 | 房间状态(0正常 1维修中 2停用) | +| sort | Integer | 否 | 排序号,精确查询 | #### 返回结果 @@ -320,6 +321,7 @@ xgss:dormRoom:list "actualBeds": 4, "roomArea": 20.5, "roomStatus": "0", + "sort": 0, "remark": "标准四人间", "createBy": 1, "createTime": "2025-07-22 09:15:30", @@ -337,6 +339,7 @@ xgss:dormRoom:list "actualBeds": 4, "roomArea": 20.5, "roomStatus": "0", + "sort": 0, "remark": "标准四人间", "createBy": 1, "createTime": "2025-07-22 09:15:30", @@ -363,6 +366,7 @@ xgss:dormRoom:list | actualBeds | Integer | 实际床位数 | | roomArea | Double | 房间面积(平方米) | | roomStatus | String | 房间状态(0正常 1维修中 2停用) | +| sort | Integer | 排序号,数字越小排序越靠前 | | remark | String | 备注 | | createBy | Long | 创建者ID | | createTime | Date | 创建时间 | @@ -371,11 +375,17 @@ xgss:dormRoom:list #### 排序规则 -房间列表按照以下顺序排序: -1. 优先按楼层号(floorNum)升序排列 -2. 其次按房间名称(roomName)升序排列 +房间列表按照以下优先级顺序排序: +1. **第一优先级**:按排序号(sort)升序排列 +2. **第二优先级**:按楼层号(floorNum)升序排列 +3. **第三优先级**:按房间名称(roomName)升序排列 -这确保了在宿舍管理系统中房间按照从低楼层到高楼层的顺序展示,相同楼层的房间按照名称顺序排列,提供更直观的浏览体验。 +**排序逻辑说明**: +- **自定义排序**:`sort` 字段允许管理员为房间设置自定义排序,数字越小排序越靠前 +- **默认排序**:当 `sort` 值相同或为0时,按楼层和房间名称的自然顺序排列 +- **灵活管理**:支持同一楼层内房间的个性化排序需求 + +这确保了宿舍管理系统既能保持传统的楼层顺序展示,又能支持管理员根据实际需要进行个性化排序调整。 #### 错误码 diff --git a/docs/设计文档/database/hzdyjs_xg0820.sql b/docs/设计文档/database/hzdyjs_xg0820.sql index 21c308f0..052f60d3 100644 --- a/docs/设计文档/database/hzdyjs_xg0820.sql +++ b/docs/设计文档/database/hzdyjs_xg0820.sql @@ -4531,6 +4531,7 @@ CREATE TABLE `xg_dorm_room` ( `actual_beds` int(11) DEFAULT '4' COMMENT '实际床位数', `room_area` decimal(10,2) DEFAULT NULL COMMENT '房间面积(平方米)', `room_status` char(1) DEFAULT '0' COMMENT '房间状态(0可用 1维修中 2停用)', + `sort` int(11) DEFAULT '0' COMMENT '排序号', `deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号', `create_by` bigint(20) DEFAULT NULL COMMENT '创建者', diff --git a/web/src/api/xg/xgss/dormRoom/types.ts b/web/src/api/xg/xgss/dormRoom/types.ts index 2ce0a6f9..4d8bdd5a 100644 --- a/web/src/api/xg/xgss/dormRoom/types.ts +++ b/web/src/api/xg/xgss/dormRoom/types.ts @@ -49,6 +49,11 @@ export interface DormRoomVO { */ roomStatus: string; + /** + * 排序号 + */ + sort: number; + /** * 删除标志(0代表存在 1代表删除) */ @@ -106,6 +111,11 @@ export interface DormRoomForm extends BaseEntity { */ roomStatus?: string; + /** + * 排序号 + */ + sort?: number; + /** * 删除标志(0代表存在 1代表删除) */ @@ -158,6 +168,11 @@ export interface DormRoomQuery extends PageQuery { */ roomStatus?: string; + /** + * 排序号 + */ + sort?: number; + /** * 删除标志(0代表存在 1代表删除) */ diff --git a/web/src/views/xg/xgss/xsssfjgl/components/RoomDialog.vue b/web/src/views/xg/xgss/xsssfjgl/components/RoomDialog.vue index 99977aaf..9b95928e 100644 --- a/web/src/views/xg/xgss/xsssfjgl/components/RoomDialog.vue +++ b/web/src/views/xg/xgss/xsssfjgl/components/RoomDialog.vue @@ -34,6 +34,16 @@ 停用 + + + @@ -78,6 +88,7 @@ const initFormData: DormRoomForm = { roomArea: 0, roomType: '1', roomStatus: '0', + sort: 0, remark: '' }; diff --git a/web/src/views/xg/xgss/xsssfjgl/index.vue b/web/src/views/xg/xgss/xsssfjgl/index.vue index d4c578c8..21d5a931 100644 --- a/web/src/views/xg/xgss/xsssfjgl/index.vue +++ b/web/src/views/xg/xgss/xsssfjgl/index.vue @@ -130,6 +130,7 @@ 类型:{{ room.roomType === '1' ? '标准间' : room.roomType === '2' ? '单人间' : '套间' }}
床位:{{ room.currentBeds || 0 }}/{{ room.actualBeds }}
+
排序:{{ room.sort || 0 }}
床位管理