瀏覽代碼

寝室号生成调整

dzx 1 年之前
父節點
當前提交
b18d4ece9b

+ 3 - 0
src/main/java/com/xjrsoft/module/base/entity/BaseOfficeBuild.java

@@ -56,6 +56,9 @@ public class BaseOfficeBuild implements Serializable {
     @ApiModelProperty("楼栋类型(xjr_dictionary_item[build_type])")
     private String buildType;
 
+    @ApiModelProperty("楼栋号")
+    private Integer buildNumber;
+
     @ApiModelProperty("状态(1:可用 0:停用)")
     private Integer status;
 

+ 18 - 0
src/main/java/com/xjrsoft/module/base/mapper/BaseOfficeBuildMapper.java

@@ -0,0 +1,18 @@
+package com.xjrsoft.module.base.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.base.entity.BaseOfficeBuild;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 班级表 Mapper 接口
+ * </p>
+ *
+ * @author baomidou
+ * @since 2023-09-02 04:52:58
+ */
+@Mapper
+public interface BaseOfficeBuildMapper extends MPJBaseMapper<BaseOfficeBuild> {
+
+}

+ 6 - 3
src/main/java/com/xjrsoft/module/room/controller/RoomController.java

@@ -75,9 +75,12 @@ public class RoomController {
     @PostMapping
     @ApiOperation(value = "新增寝室")
     @SaCheckPermission("room:add")
-    public RT<Boolean> add(@Valid @RequestBody AddRoomDto dto){
-        boolean isSuccess = roomService.saveBatch(dto);
-        return RT.ok(isSuccess);
+    public RT<String> add(@Valid @RequestBody AddRoomDto dto){
+        String message = roomService.saveBatch(dto);
+        if("ok".equals(message)){
+            return RT.ok("true");
+        }
+        return RT.ok(message);
     }
 
     @PutMapping

+ 1 - 1
src/main/java/com/xjrsoft/module/room/service/IRoomService.java

@@ -27,7 +27,7 @@ public interface IRoomService extends MPJBaseService<Room> {
     /**
      * 批量添加
      */
-    Boolean saveBatch(AddRoomDto dto);
+    String saveBatch(AddRoomDto dto);
 
 
     /**

+ 9 - 0
src/main/java/com/xjrsoft/module/room/service/impl/RoomBedServiceImpl.java

@@ -279,6 +279,15 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
 
     @Override
     public Boolean adjustBed(AdjustStudentBedDto dto) {
+        //先清空学生原来的床位
+        UpdateWrapper<RoomBed> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("student_user_id", dto.getStudentUserId());
+        updateWrapper.setSql("student_user_id = null");
+        updateWrapper.setSql("is_check_in = 0");
+
+        RoomBed roomBed = roomBedMapper.selectOne(new QueryWrapper<RoomBed>().lambda().eq(RoomBed::getStudentUserId, dto.getStudentUserId()));
+        roomBedMapper.update(roomBed, updateWrapper);
+        //再把学生保存到新的床位
         roomBedMapper.updateById(new RoomBed(){{
             setId(dto.getBedId());
             setStudentUserId(dto.getStudentUserId());

+ 30 - 4
src/main/java/com/xjrsoft/module/room/service/impl/RoomServiceImpl.java

@@ -5,12 +5,18 @@ import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.toolkit.MPJWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.module.base.entity.BaseOfficeBuild;
+import com.xjrsoft.module.base.mapper.BaseOfficeBuildMapper;
 import com.xjrsoft.module.room.dto.AddRoomDto;
 import com.xjrsoft.module.room.dto.RoomPageDto;
 import com.xjrsoft.module.room.entity.Room;
 import com.xjrsoft.module.room.entity.RoomBed;
+import com.xjrsoft.module.room.entity.RoomRule;
+import com.xjrsoft.module.room.entity.RoomRuleItem;
 import com.xjrsoft.module.room.mapper.RoomBedMapper;
 import com.xjrsoft.module.room.mapper.RoomMapper;
+import com.xjrsoft.module.room.mapper.RoomRuleMapper;
 import com.xjrsoft.module.room.service.IRoomService;
 import com.xjrsoft.module.room.vo.RoomPageVo;
 import com.xjrsoft.module.student.entity.BaseStudent;
@@ -33,7 +39,8 @@ import java.util.Map;
 public class RoomServiceImpl extends MPJBaseServiceImpl<RoomMapper, Room> implements IRoomService {
     private final RoomMapper roomMapper;
     private final RoomBedMapper roomBedMapper;
-
+    private final RoomRuleMapper roomRuleRoomRuleMapper;
+    private final BaseOfficeBuildMapper baseOfficeBuildMapper;
     @Override
     public Page<RoomPageVo> getPage(Page<RoomPageDto> page, RoomPageDto dto) {
         Page<RoomPageVo> result = roomMapper.getPage(page, dto);
@@ -41,13 +48,32 @@ public class RoomServiceImpl extends MPJBaseServiceImpl<RoomMapper, Room> implem
     }
 
     @Override
-    public Boolean saveBatch(AddRoomDto dto) {
+    public String saveBatch(AddRoomDto dto) {
+        MPJLambdaWrapper<RoomRule> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.leftJoin(RoomRuleItem.class, RoomRuleItem::getRoomRuleId, RoomRule::getId)
+                .eq(RoomRuleItem::getOfficeBuildId, dto.getOfficeBuildId());
+        RoomRule roomRule = roomRuleRoomRuleMapper.selectJoinOne(RoomRule.class, queryWrapper);
+        if(roomRule == null){
+            return "该楼栋未配置规则,请先配置规则";
+        }
+        BaseOfficeBuild build = baseOfficeBuildMapper.selectById(dto.getOfficeBuildId());
+
         Integer maxSortCode = roomMapper.getMaxSortCode();
         Date createDate = new Date();
         long createUserId = StpUtil.getLoginIdAsLong();
         for (int i = 0; i < dto.getFloorRoomsCount(); i ++){
             for (String floorNumber : dto.getFloorNumber().split(",")) {
-                String roomName = floorNumber + String.format("%02d", (i + 1));
+                String roomName = "";
+                if(roomRule.getRule().contains("1")){
+                    roomName += build.getBuildNumber();
+                }
+                if(roomRule.getRule().contains("2")){
+                    roomName += floorNumber;
+                }
+                if(roomRule.getRule().contains("3")){
+                    roomName += String.format("%02d", (i + 1));
+                }
+
                 Map<String, Object> param = new HashMap<>();
                 param.put("room_name", roomName);
                 param.put("floor_number", Integer.parseInt(floorNumber));
@@ -85,7 +111,7 @@ public class RoomServiceImpl extends MPJBaseServiceImpl<RoomMapper, Room> implem
                 }
             }
         }
-        return true;
+        return "ok";
     }
 
     @Override