Browse Source

Merge remote-tracking branch 'origin/dev' into dev

fanxp 1 year ago
parent
commit
a47ef9030f
28 changed files with 1677 additions and 20 deletions
  1. 35 0
      src/main/java/com/xjrsoft/common/enums/RoomApplicantTypeEnum.java
  2. 45 0
      src/main/java/com/xjrsoft/common/enums/StudyStatusEnum.java
  3. 31 0
      src/main/java/com/xjrsoft/module/liteflow/node/WfRoomApplicanNode.java
  4. 116 0
      src/main/java/com/xjrsoft/module/room/controller/WfRoomApplicantController.java
  5. 116 0
      src/main/java/com/xjrsoft/module/room/controller/WfRoomStayOvernightController.java
  6. 78 0
      src/main/java/com/xjrsoft/module/room/dto/AddWfRoomApplicantDto.java
  7. 103 0
      src/main/java/com/xjrsoft/module/room/dto/AddWfRoomStayOvernightDto.java
  8. 32 0
      src/main/java/com/xjrsoft/module/room/dto/UpdateWfRoomApplicantDto.java
  9. 32 0
      src/main/java/com/xjrsoft/module/room/dto/UpdateWfRoomStayOvernightDto.java
  10. 26 0
      src/main/java/com/xjrsoft/module/room/dto/WfRoomApplicantPageDto.java
  11. 26 0
      src/main/java/com/xjrsoft/module/room/dto/WfRoomStayOvernightPageDto.java
  12. 128 0
      src/main/java/com/xjrsoft/module/room/entity/WfRoomApplicant.java
  13. 153 0
      src/main/java/com/xjrsoft/module/room/entity/WfRoomStayOvernight.java
  14. 17 0
      src/main/java/com/xjrsoft/module/room/mapper/WfRoomApplicantMapper.java
  15. 17 0
      src/main/java/com/xjrsoft/module/room/mapper/WfRoomStayOvernightMapper.java
  16. 15 0
      src/main/java/com/xjrsoft/module/room/service/IWfRoomApplicantService.java
  17. 17 0
      src/main/java/com/xjrsoft/module/room/service/IWfRoomStayOvernightService.java
  18. 60 0
      src/main/java/com/xjrsoft/module/room/service/impl/WfRoomApplicantServiceImpl.java
  19. 25 0
      src/main/java/com/xjrsoft/module/room/service/impl/WfRoomStayOvernightServiceImpl.java
  20. 146 0
      src/main/java/com/xjrsoft/module/room/vo/WfRoomApplicantPageVo.java
  21. 79 0
      src/main/java/com/xjrsoft/module/room/vo/WfRoomApplicantVo.java
  22. 181 0
      src/main/java/com/xjrsoft/module/room/vo/WfRoomStayOvernightPageVo.java
  23. 104 0
      src/main/java/com/xjrsoft/module/room/vo/WfRoomStayOvernightVo.java
  24. 1 17
      src/main/java/com/xjrsoft/module/student/controller/StudentHonorsController.java
  25. 6 2
      src/main/resources/mapper/oa/NewsMapper.xml
  26. 8 1
      src/main/resources/mapper/student/StudentHonorsMapper.xml
  27. 24 0
      src/test/java/com/xjrsoft/module/room/service/impl/WfRoomApplicantServiceImplTest.java
  28. 56 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

+ 35 - 0
src/main/java/com/xjrsoft/common/enums/RoomApplicantTypeEnum.java

@@ -0,0 +1,35 @@
+package com.xjrsoft.common.enums;
+
+/**
+ * @description: 寝室申请类型room_applicant_type
+ * @author: phoenix
+ * @create: 2023/12/21 11:27
+ * @Version 1.0
+ */
+public enum RoomApplicantTypeEnum {
+    /**
+     * 留宿
+     * */
+    RaOvernightStay("ra_overnight_stay", "留宿"),
+
+    /**
+     * 不留宿
+     * */
+    RaNoOvernightStay("ra_no_overnight_stay", "不留宿");
+
+    final String code;
+    final String value;
+
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    RoomApplicantTypeEnum(final String code, final String message) {
+        this.code = code;
+        this.value = message;
+    }
+}

+ 45 - 0
src/main/java/com/xjrsoft/common/enums/StudyStatusEnum.java

@@ -0,0 +1,45 @@
+package com.xjrsoft.common.enums;
+
+/**
+ * @description: 就读方式stduy_status
+ * @author: phoenix
+ * @create: 2023/12/21 11:27
+ * @Version 1.0
+ */
+public enum StudyStatusEnum {
+    /**
+     * 走读
+     * */
+    AttendDaySchool("FB3001", "走读"),
+
+    /**
+     * 住校
+     * */
+    InResidence("FB3002", "住校"),
+
+    /**
+     * 借宿
+     * */
+    PutUpNight("FB3003", "借宿"),
+
+    /**
+     * 其他
+     * */
+    ElseStudyStatus("FB3004", "其他");
+
+    final String code;
+    final String value;
+
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    StudyStatusEnum(final String code, final String message) {
+        this.code = code;
+        this.value = message;
+    }
+}

+ 31 - 0
src/main/java/com/xjrsoft/module/liteflow/node/WfRoomApplicanNode.java

@@ -0,0 +1,31 @@
+package com.xjrsoft.module.liteflow.node;
+
+import cn.hutool.core.convert.Convert;
+import com.xjrsoft.module.room.service.IWfRoomApplicantService;
+import com.xjrsoft.module.textbook.service.IWfTextbookClaimService;
+import com.yomahub.liteflow.core.NodeComponent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 申请留宿规则
+ */
+@Component("wf_room_applicant")
+public class WfRoomApplicanNode extends NodeComponent {
+    @Autowired
+    private IWfRoomApplicantService wfRoomApplicantService;
+
+    @Override
+    public void process() throws Exception {
+        // 获取表单中数据编号
+        Map<String, Object> params = this.getFirstContextBean();
+        Object value = util.getFormDatKey(params,"id");
+        Long formId = Convert.toLong(value);
+        if (formId != null) {
+            // 数据处理
+            wfRoomApplicantService.dataHandle(formId);
+        }
+    }
+}

+ 116 - 0
src/main/java/com/xjrsoft/module/room/controller/WfRoomApplicantController.java

@@ -0,0 +1,116 @@
+package com.xjrsoft.module.room.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.room.dto.AddWfRoomApplicantDto;
+import com.xjrsoft.module.room.dto.UpdateWfRoomApplicantDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import org.springframework.http.ResponseEntity;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+
+import com.xjrsoft.module.room.dto.WfRoomApplicantPageDto;
+import com.xjrsoft.module.room.entity.WfRoomApplicant;
+import com.xjrsoft.module.room.service.IWfRoomApplicantService;
+import com.xjrsoft.module.room.vo.WfRoomApplicantPageVo;
+
+import com.xjrsoft.module.room.vo.WfRoomApplicantVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+* @title: 寝室申请
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/room" + "/wfRoomApplicant")
+@Api(value = "/room"  + "/wfRoomApplicant",tags = "寝室申请代码")
+@AllArgsConstructor
+public class WfRoomApplicantController {
+
+
+    private final IWfRoomApplicantService wfRoomApplicantService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="寝室申请列表(分页)")
+    @SaCheckPermission("wfroomapplicant:detail")
+    public RT<PageOutput<WfRoomApplicantPageVo>> page(@Valid WfRoomApplicantPageDto dto){
+
+        LambdaQueryWrapper<WfRoomApplicant> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(WfRoomApplicant::getId)
+                .select(WfRoomApplicant.class,x -> VoToColumnUtil.fieldsToColumns(WfRoomApplicantPageVo.class).contains(x.getProperty()));
+        IPage<WfRoomApplicant> page = wfRoomApplicantService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<WfRoomApplicantPageVo> pageOutput = ConventPage.getPageOutput(page, WfRoomApplicantPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询寝室申请信息")
+    @SaCheckPermission("wfroomapplicant:detail")
+    public RT<WfRoomApplicantVo> info(@RequestParam Long id){
+        WfRoomApplicant wfRoomApplicant = wfRoomApplicantService.getById(id);
+        if (wfRoomApplicant == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(wfRoomApplicant, WfRoomApplicantVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增寝室申请")
+    @SaCheckPermission("wfroomapplicant:add")
+    public RT<Boolean> add(@Valid @RequestBody AddWfRoomApplicantDto dto){
+        WfRoomApplicant wfRoomApplicant = BeanUtil.toBean(dto, WfRoomApplicant.class);
+        boolean isSuccess = wfRoomApplicantService.save(wfRoomApplicant);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改寝室申请")
+    @SaCheckPermission("wfroomapplicant:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateWfRoomApplicantDto dto){
+
+        WfRoomApplicant wfRoomApplicant = BeanUtil.toBean(dto, WfRoomApplicant.class);
+        return RT.ok(wfRoomApplicantService.updateById(wfRoomApplicant));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除寝室申请")
+    @SaCheckPermission("wfroomapplicant:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(wfRoomApplicantService.removeBatchByIds(ids));
+
+    }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "导出")
+    public ResponseEntity<byte[]> exportData(@Valid WfRoomApplicantPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+        List<WfRoomApplicantPageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<WfRoomApplicantPageVo>) page(dto).getData()).getList();
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, WfRoomApplicantPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "WfRoomApplicant" + ExcelTypeEnum.XLSX.getValue());
+    }
+}

+ 116 - 0
src/main/java/com/xjrsoft/module/room/controller/WfRoomStayOvernightController.java

@@ -0,0 +1,116 @@
+package com.xjrsoft.module.room.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.room.dto.AddWfRoomStayOvernightDto;
+import com.xjrsoft.module.room.dto.UpdateWfRoomStayOvernightDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import org.springframework.http.ResponseEntity;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+
+import com.xjrsoft.module.room.dto.WfRoomStayOvernightPageDto;
+import com.xjrsoft.module.room.entity.WfRoomStayOvernight;
+import com.xjrsoft.module.room.service.IWfRoomStayOvernightService;
+import com.xjrsoft.module.room.vo.WfRoomStayOvernightPageVo;
+
+import com.xjrsoft.module.room.vo.WfRoomStayOvernightVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+* @title: 留校住宿申请
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/room" + "/wfRoomStayOvernight")
+@Api(value = "/room"  + "/wfRoomStayOvernight",tags = "留校住宿申请代码")
+@AllArgsConstructor
+public class WfRoomStayOvernightController {
+
+
+    private final IWfRoomStayOvernightService wfRoomStayOvernightService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="留校住宿申请列表(分页)")
+    @SaCheckPermission("wfroomstayovernight:detail")
+    public RT<PageOutput<WfRoomStayOvernightPageVo>> page(@Valid WfRoomStayOvernightPageDto dto){
+
+        LambdaQueryWrapper<WfRoomStayOvernight> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(WfRoomStayOvernight::getId)
+                .select(WfRoomStayOvernight.class,x -> VoToColumnUtil.fieldsToColumns(WfRoomStayOvernightPageVo.class).contains(x.getProperty()));
+        IPage<WfRoomStayOvernight> page = wfRoomStayOvernightService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<WfRoomStayOvernightPageVo> pageOutput = ConventPage.getPageOutput(page, WfRoomStayOvernightPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询留校住宿申请信息")
+    @SaCheckPermission("wfroomstayovernight:detail")
+    public RT<WfRoomStayOvernightVo> info(@RequestParam Long id){
+        WfRoomStayOvernight wfRoomStayOvernight = wfRoomStayOvernightService.getById(id);
+        if (wfRoomStayOvernight == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(wfRoomStayOvernight, WfRoomStayOvernightVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增留校住宿申请")
+    @SaCheckPermission("wfroomstayovernight:add")
+    public RT<Boolean> add(@Valid @RequestBody AddWfRoomStayOvernightDto dto){
+        WfRoomStayOvernight wfRoomStayOvernight = BeanUtil.toBean(dto, WfRoomStayOvernight.class);
+        boolean isSuccess = wfRoomStayOvernightService.save(wfRoomStayOvernight);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改留校住宿申请")
+    @SaCheckPermission("wfroomstayovernight:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateWfRoomStayOvernightDto dto){
+
+        WfRoomStayOvernight wfRoomStayOvernight = BeanUtil.toBean(dto, WfRoomStayOvernight.class);
+        return RT.ok(wfRoomStayOvernightService.updateById(wfRoomStayOvernight));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除留校住宿申请")
+    @SaCheckPermission("wfroomstayovernight:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(wfRoomStayOvernightService.removeBatchByIds(ids));
+
+    }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "导出")
+    public ResponseEntity<byte[]> exportData(@Valid WfRoomStayOvernightPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+        List<WfRoomStayOvernightPageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<WfRoomStayOvernightPageVo>) page(dto).getData()).getList();
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, WfRoomStayOvernightPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "WfRoomStayOvernight" + ExcelTypeEnum.XLSX.getValue());
+    }
+}

+ 78 - 0
src/main/java/com/xjrsoft/module/room/dto/AddWfRoomApplicantDto.java

@@ -0,0 +1,78 @@
+package com.xjrsoft.module.room.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 寝室申请
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class AddWfRoomApplicantDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 班主任用户编号
+    */
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+    * 寝室申请类型(xjr_dictionary_item[room_applicant_type])
+    */
+    @ApiModelProperty("寝室申请类型(xjr_dictionary_item[room_applicant_type])")
+    private String recedeType;
+    /**
+    * 班级名称
+    */
+    @ApiModelProperty("班级名称")
+    private String className;
+    /**
+    * 寝室+床位名称
+    */
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 离宿事由(xjr_dictionary_item[nos_reason])
+    */
+    @ApiModelProperty("离宿事由(xjr_dictionary_item[nos_reason])")
+    private String nosReason;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+}

+ 103 - 0
src/main/java/com/xjrsoft/module/room/dto/AddWfRoomStayOvernightDto.java

@@ -0,0 +1,103 @@
+package com.xjrsoft.module.room.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 留校住宿申请
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class AddWfRoomStayOvernightDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 班主任用户编号
+    */
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+    * 寝室编号(room)
+    */
+    @ApiModelProperty("寝室编号(room)")
+    private Long roomId;
+    /**
+    * 寝室+床位名称
+    */
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 学号
+    */
+    @ApiModelProperty("学号")
+    private String studentId;
+    /**
+    * 性别
+    */
+    @ApiModelProperty("性别")
+    private String genderName;
+    /**
+    * 班级
+    */
+    @ApiModelProperty("班级")
+    private String className;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 结束时间
+    */
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+    /**
+    * 时长(天)
+    */
+    @ApiModelProperty("时长(天)")
+    private Integer duration;
+    /**
+    * 联系电话
+    */
+    @ApiModelProperty("联系电话")
+    private String mobile;
+    /**
+    * 监护人电话
+    */
+    @ApiModelProperty("监护人电话")
+    private String guardianMobile;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/room/dto/UpdateWfRoomApplicantDto.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.room.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 寝室申请
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class UpdateWfRoomApplicantDto extends AddWfRoomApplicantDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/room/dto/UpdateWfRoomStayOvernightDto.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.room.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 留校住宿申请
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class UpdateWfRoomStayOvernightDto extends AddWfRoomStayOvernightDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 26 - 0
src/main/java/com/xjrsoft/module/room/dto/WfRoomApplicantPageDto.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.room.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+* @title: 寝室申请分页查询入参
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class WfRoomApplicantPageDto extends PageInput {
+
+
+}

+ 26 - 0
src/main/java/com/xjrsoft/module/room/dto/WfRoomStayOvernightPageDto.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.room.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+* @title: 留校住宿申请分页查询入参
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class WfRoomStayOvernightPageDto extends PageInput {
+
+
+}

+ 128 - 0
src/main/java/com/xjrsoft/module/room/entity/WfRoomApplicant.java

@@ -0,0 +1,128 @@
+package com.xjrsoft.module.room.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 寝室申请
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+@TableName("wf_room_applicant")
+@ApiModel(value = "wf_room_applicant", description = "寝室申请")
+public class WfRoomApplicant implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    @TableId
+    private Long id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ApiModelProperty("有效标志")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 班主任用户编号
+    */
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+    * 寝室申请类型(xjr_dictionary_item[room_applicant_type])
+    */
+    @ApiModelProperty("寝室申请类型(xjr_dictionary_item[room_applicant_type])")
+    private String recedeType;
+    /**
+    * 班级名称
+    */
+    @ApiModelProperty("班级名称")
+    private String className;
+    /**
+    * 寝室+床位名称
+    */
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 离宿事由(xjr_dictionary_item[nos_reason])
+    */
+    @ApiModelProperty("离宿事由(xjr_dictionary_item[nos_reason])")
+    private String nosReason;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+
+}

+ 153 - 0
src/main/java/com/xjrsoft/module/room/entity/WfRoomStayOvernight.java

@@ -0,0 +1,153 @@
+package com.xjrsoft.module.room.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 留校住宿申请
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+@TableName("wf_room_stay_overnight")
+@ApiModel(value = "wf_room_stay_overnight", description = "留校住宿申请")
+public class WfRoomStayOvernight implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    @TableId
+    private Long id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ApiModelProperty("有效标志")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 班主任用户编号
+    */
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+    * 寝室编号(room)
+    */
+    @ApiModelProperty("寝室编号(room)")
+    private Long roomId;
+    /**
+    * 寝室+床位名称
+    */
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 学号
+    */
+    @ApiModelProperty("学号")
+    private String studentId;
+    /**
+    * 性别
+    */
+    @ApiModelProperty("性别")
+    private String genderName;
+    /**
+    * 班级
+    */
+    @ApiModelProperty("班级")
+    private String className;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 结束时间
+    */
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+    /**
+    * 时长(天)
+    */
+    @ApiModelProperty("时长(天)")
+    private Integer duration;
+    /**
+    * 联系电话
+    */
+    @ApiModelProperty("联系电话")
+    private String mobile;
+    /**
+    * 监护人电话
+    */
+    @ApiModelProperty("监护人电话")
+    private String guardianMobile;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/room/mapper/WfRoomApplicantMapper.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.room.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.room.entity.WfRoomApplicant;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 寝室申请
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Mapper
+public interface WfRoomApplicantMapper extends MPJBaseMapper<WfRoomApplicant> {
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/room/mapper/WfRoomStayOvernightMapper.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.room.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.room.entity.WfRoomStayOvernight;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 留校住宿申请
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Mapper
+public interface WfRoomStayOvernightMapper extends MPJBaseMapper<WfRoomStayOvernight> {
+
+}

+ 15 - 0
src/main/java/com/xjrsoft/module/room/service/IWfRoomApplicantService.java

@@ -0,0 +1,15 @@
+package com.xjrsoft.module.room.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.room.entity.WfRoomApplicant;
+
+/**
+* @title: 寝室申请
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+
+public interface IWfRoomApplicantService extends MPJBaseService<WfRoomApplicant> {
+    Boolean dataHandle(Long formId);
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/room/service/IWfRoomStayOvernightService.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.room.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.room.entity.WfRoomStayOvernight;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 留校住宿申请
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+
+public interface IWfRoomStayOvernightService extends MPJBaseService<WfRoomStayOvernight> {
+}

+ 60 - 0
src/main/java/com/xjrsoft/module/room/service/impl/WfRoomApplicantServiceImpl.java

@@ -0,0 +1,60 @@
+package com.xjrsoft.module.room.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.enums.RoomApplicantTypeEnum;
+import com.xjrsoft.common.enums.StudyStatusEnum;
+import com.xjrsoft.module.room.entity.WfRoomApplicant;
+import com.xjrsoft.module.room.mapper.WfRoomApplicantMapper;
+import com.xjrsoft.module.room.service.IWfRoomApplicantService;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
+import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+* @title: 寝室申请
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class WfRoomApplicantServiceImpl extends MPJBaseServiceImpl<WfRoomApplicantMapper, WfRoomApplicant> implements IWfRoomApplicantService {
+
+    private final BaseStudentSchoolRollMapper baseStudentSchoolRollMapper;
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean dataHandle(Long formId) {
+        WfRoomApplicant wfRoomApplicant = this.getById(formId);
+        //根据申请人编号修改该用户的就读状态(study_status)
+        //留宿
+        if(ObjectUtil.isNotNull(wfRoomApplicant)){
+            LambdaQueryWrapper<BaseStudentSchoolRoll> queryWrapperStuSchRoll = new LambdaQueryWrapper<>();
+            queryWrapperStuSchRoll
+                    .eq(BaseStudentSchoolRoll::getUserId,wfRoomApplicant.getApplicantUserId());
+            BaseStudentSchoolRoll baseStudentSchoolRoll = baseStudentSchoolRollMapper.selectOne(queryWrapperStuSchRoll);
+
+            if(ObjectUtil.isNotNull(baseStudentSchoolRoll)){
+                //申请住校
+                if(wfRoomApplicant.getRecedeType().equals(RoomApplicantTypeEnum.RaOvernightStay.getCode())) {
+                    baseStudentSchoolRollMapper.updateById(new BaseStudentSchoolRoll(){{
+                        setId(baseStudentSchoolRoll.getId());
+                        setStduyStatus(StudyStatusEnum.InResidence.getCode());
+                    }});
+                }
+
+                if(wfRoomApplicant.getRecedeType().equals(RoomApplicantTypeEnum.RaNoOvernightStay.getCode())) {
+                    baseStudentSchoolRollMapper.updateById(new BaseStudentSchoolRoll(){{
+                        setId(baseStudentSchoolRoll.getId());
+                        setStduyStatus(StudyStatusEnum.AttendDaySchool.getCode());
+                    }});
+                }
+            }
+        }
+
+        return true;
+    }
+}

+ 25 - 0
src/main/java/com/xjrsoft/module/room/service/impl/WfRoomStayOvernightServiceImpl.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.room.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.room.entity.WfRoomStayOvernight;
+import com.xjrsoft.module.room.mapper.WfRoomStayOvernightMapper;
+import com.xjrsoft.module.room.service.IWfRoomStayOvernightService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+/**
+* @title: 留校住宿申请
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class WfRoomStayOvernightServiceImpl extends MPJBaseServiceImpl<WfRoomStayOvernightMapper, WfRoomStayOvernight> implements IWfRoomStayOvernightService {
+}

+ 146 - 0
src/main/java/com/xjrsoft/module/room/vo/WfRoomApplicantPageVo.java

@@ -0,0 +1,146 @@
+package com.xjrsoft.module.room.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import com.xjrsoft.common.annotation.Trans;
+import com.xjrsoft.common.enums.TransType;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* @title: 寝室申请分页列表出参
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class WfRoomApplicantPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主键编号")
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+    * 创建人
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("创建人")
+    @ApiModelProperty("创建人")
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("创建时间")
+    @ApiModelProperty("创建时间")
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("修改人")
+    @ApiModelProperty("修改人")
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("修改时间")
+    @ApiModelProperty("修改时间")
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("删除标记")
+    @ApiModelProperty("删除标记")
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("有效标志")
+    @ApiModelProperty("有效标志")
+    private Integer enabledMark;
+    /**
+    * 序号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("序号")
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人")
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 班主任用户编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班主任用户编号")
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+    * 寝室申请类型(xjr_dictionary_item[room_applicant_type])
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("寝室申请类型(xjr_dictionary_item[room_applicant_type])")
+    @ApiModelProperty("寝室申请类型(xjr_dictionary_item[room_applicant_type])")
+    private String recedeType;
+    /**
+    * 班级名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级名称")
+    @ApiModelProperty("班级名称")
+    private String className;
+    /**
+    * 寝室+床位名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("寝室+床位名称")
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 开始时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("开始时间")
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 离宿事由(xjr_dictionary_item[nos_reason])
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("离宿事由(xjr_dictionary_item[nos_reason])")
+    @ApiModelProperty("离宿事由(xjr_dictionary_item[nos_reason])")
+    private String nosReason;
+    /**
+    * 备注
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("备注")
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("状态(1:结束 0:未结束)")
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+}

+ 79 - 0
src/main/java/com/xjrsoft/module/room/vo/WfRoomApplicantVo.java

@@ -0,0 +1,79 @@
+package com.xjrsoft.module.room.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+/**
+* @title: 寝室申请表单出参
+* @Author dzx
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class WfRoomApplicantVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 班主任用户编号
+    */
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+    * 寝室申请类型(xjr_dictionary_item[room_applicant_type])
+    */
+    @ApiModelProperty("寝室申请类型(xjr_dictionary_item[room_applicant_type])")
+    private String recedeType;
+    /**
+    * 班级名称
+    */
+    @ApiModelProperty("班级名称")
+    private String className;
+    /**
+    * 寝室+床位名称
+    */
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 离宿事由(xjr_dictionary_item[nos_reason])
+    */
+    @ApiModelProperty("离宿事由(xjr_dictionary_item[nos_reason])")
+    private String nosReason;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+
+
+}

+ 181 - 0
src/main/java/com/xjrsoft/module/room/vo/WfRoomStayOvernightPageVo.java

@@ -0,0 +1,181 @@
+package com.xjrsoft.module.room.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import com.xjrsoft.common.annotation.Trans;
+import com.xjrsoft.common.enums.TransType;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* @title: 留校住宿申请分页列表出参
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class WfRoomStayOvernightPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主键编号")
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+    * 创建人
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("创建人")
+    @ApiModelProperty("创建人")
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("创建时间")
+    @ApiModelProperty("创建时间")
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("修改人")
+    @ApiModelProperty("修改人")
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("修改时间")
+    @ApiModelProperty("修改时间")
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("删除标记")
+    @ApiModelProperty("删除标记")
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("有效标志")
+    @ApiModelProperty("有效标志")
+    private Integer enabledMark;
+    /**
+    * 序号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("序号")
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人")
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 班主任用户编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班主任用户编号")
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+    * 寝室编号(room)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("寝室编号(room)")
+    @ApiModelProperty("寝室编号(room)")
+    private Long roomId;
+    /**
+    * 寝室+床位名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("寝室+床位名称")
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 学号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学号")
+    @ApiModelProperty("学号")
+    private String studentId;
+    /**
+    * 性别
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("性别")
+    @ApiModelProperty("性别")
+    private String genderName;
+    /**
+    * 班级
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级")
+    @ApiModelProperty("班级")
+    private String className;
+    /**
+    * 开始时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("开始时间")
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 结束时间
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("结束时间")
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+    /**
+    * 时长(天)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("时长(天)")
+    @ApiModelProperty("时长(天)")
+    private Integer duration;
+    /**
+    * 联系电话
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("联系电话")
+    @ApiModelProperty("联系电话")
+    private String mobile;
+    /**
+    * 监护人电话
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("监护人电话")
+    @ApiModelProperty("监护人电话")
+    private String guardianMobile;
+    /**
+    * 备注
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("备注")
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("状态(1:结束 0:未结束)")
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+}

+ 104 - 0
src/main/java/com/xjrsoft/module/room/vo/WfRoomStayOvernightVo.java

@@ -0,0 +1,104 @@
+package com.xjrsoft.module.room.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+/**
+* @title: 留校住宿申请表单出参
+* @Author szs
+* @Date: 2024-01-02
+* @Version 1.0
+*/
+@Data
+public class WfRoomStayOvernightVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 班主任用户编号
+    */
+    @ApiModelProperty("班主任用户编号")
+    private Long headTeacherId;
+    /**
+    * 寝室编号(room)
+    */
+    @ApiModelProperty("寝室编号(room)")
+    private Long roomId;
+    /**
+    * 寝室+床位名称
+    */
+    @ApiModelProperty("寝室+床位名称")
+    private String roomBedNumber;
+    /**
+    * 学号
+    */
+    @ApiModelProperty("学号")
+    private String studentId;
+    /**
+    * 性别
+    */
+    @ApiModelProperty("性别")
+    private String genderName;
+    /**
+    * 班级
+    */
+    @ApiModelProperty("班级")
+    private String className;
+    /**
+    * 开始时间
+    */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+    * 结束时间
+    */
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+    /**
+    * 时长(天)
+    */
+    @ApiModelProperty("时长(天)")
+    private Integer duration;
+    /**
+    * 联系电话
+    */
+    @ApiModelProperty("联系电话")
+    private String mobile;
+    /**
+    * 监护人电话
+    */
+    @ApiModelProperty("监护人电话")
+    private String guardianMobile;
+    /**
+    * 备注
+    */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+
+
+}

+ 1 - 17
src/main/java/com/xjrsoft/module/student/controller/StudentHonorsController.java

@@ -2,9 +2,7 @@ package com.xjrsoft.module.student.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
@@ -20,14 +18,7 @@ import com.xjrsoft.module.student.vo.StudentHonorsVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.ArrayList;
@@ -52,18 +43,11 @@ public class StudentHonorsController {
     @ApiOperation(value="学生荣誉列表(分页)")
     @SaCheckPermission("studenthonors:detail")
     public RT<PageOutput<StudentHonorsPageVo>> page(@Valid StudentHonorsPageDto dto){
-        if(ObjectUtil.isNull(dto.getClassId()) && dto.getClassId() <= 0){
-            throw new MyException("请选择班级");
-        }
-        if(ObjectUtil.isNull(dto.getBaseSemesterId()) && dto.getBaseSemesterId() <= 0){
-            throw new MyException("请选择学期");
-        }
         Page<StudentHonorsPageVo> page = studentHonorsService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
         PageOutput<StudentHonorsPageVo> pageOutput = ConventPage.getPageOutput(page, StudentHonorsPageVo.class);
         return RT.ok(pageOutput);
     }
 
-
     @GetMapping(value = "/tree")
     @ApiOperation(value = "学生荣誉列表(树)")
     @SaCheckPermission("studenthonors:detail")

+ 6 - 2
src/main/resources/mapper/oa/NewsMapper.xml

@@ -21,7 +21,9 @@
             and t.full_head LIKE CONCAT('%',#{dto.fullHead},'%')
         </if>
         <if test="dto.keyword != null and dto.keyword != ''">
-            and t.keyword LIKE CONCAT('%',#{dto.keyword},'%')
+            and (t.keyword LIKE CONCAT('%',#{dto.keyword},'%')
+            or t.full_head LIKE CONCAT('%',#{dto.keyword},'%')
+            or t.author_name LIKE CONCAT('%',#{dto.keyword},'%'))
         </if>
         <if test="dto.loginId != null and dto.loginId > 0">
             and t.create_user_id = #{dto.loginId}
@@ -53,7 +55,9 @@
             and t.full_head LIKE CONCAT('%',#{dto.fullHead},'%')
         </if>
         <if test="dto.keyword != null and dto.keyword != ''">
-            and t.keyword LIKE CONCAT('%',#{dto.keyword},'%')
+            and (t.keyword LIKE CONCAT('%',#{dto.keyword},'%')
+                or t.full_head LIKE CONCAT('%',#{dto.keyword},'%')
+                or t.author_name LIKE CONCAT('%',#{dto.keyword},'%'))
         </if>
         order by
         t.send_start_date desc,t.release_time desc

+ 8 - 1
src/main/resources/mapper/student/StudentHonorsMapper.xml

@@ -10,7 +10,14 @@
         LEFT JOIN xjr_dictionary_detail t3 ON t1.honors_level = t3.code AND t3.item_id = 1731576278748352514
         LEFT JOIN xjr_dictionary_detail t4 ON t1.honors_type = t4.code AND t4.item_id = 1731577666295418881
         LEFT JOIN xjr_dictionary_detail t5 ON t1.honors_grade = t5.code AND t5.item_id = 1731577201793028098
-        WHERE t1.delete_mark = 0 AND t1.class_id = #{dto.classId} AND t1.base_semester_id = #{dto.baseSemesterId} and t1.status = 1
+        WHERE t1.delete_mark = 0
+          <if test="dto.classId != null and dto.classId > 0">
+              AND t1.class_id = #{dto.classId}
+          </if>
+            <if test="dto.baseSemesterId != null and dto.baseSemesterId > 0">
+                AND t1.base_semester_id = #{dto.baseSemesterId}
+            </if>
+          and t1.status = 1
     </select>
 
     <select id="getSemesterInfo" resultType="com.xjrsoft.module.student.vo.StudentHonorsListVo">

+ 24 - 0
src/test/java/com/xjrsoft/module/room/service/impl/WfRoomApplicantServiceImplTest.java

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.room.service.impl;
+
+import com.xjrsoft.module.room.service.IWfRoomApplicantService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+/**
+ * @description:TODO
+ * @author: phoenix
+ * @create: 2024/1/2 12:45
+ * @Version 1.0
+ */
+@SpringBootTest
+class WfRoomApplicantServiceImplTest {
+
+    @Autowired
+    private IWfRoomApplicantService iWfRoomApplicantService;
+
+    @Test
+    void dataHandle() {
+        iWfRoomApplicantService.dataHandle(1740639474371588096L);
+    }
+}

+ 56 - 0
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -1703,5 +1703,61 @@ public class FreeMarkerGeneratorTest {
         apiGeneratorService.generateCodes(params);
     }
 
+    /**
+     * 寝室申请
+     * @throws IOException
+     */
+    @Test
+    public void gcWfRoomApplicant() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("wf_room_applicant");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("dzx");//作者名称
+        params.setPackageName("room");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(false);//是否生成导入接口
+        params.setExport(true);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
 
+    /**
+     * 留校住宿申请
+     * @throws IOException
+     */
+    @Test
+    public void gcWfRoomStayOvernight() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("wf_room_stay_overnight");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("szs");//作者名称
+        params.setPackageName("room");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(false);//是否生成导入接口
+        params.setExport(true);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
 }