Browse Source

退书规则

phoenix 1 year ago
parent
commit
c799d7cb30
82 changed files with 1445 additions and 401 deletions
  1. 35 0
      src/main/java/com/xjrsoft/common/enums/RecedeTypeEnum.java
  2. 0 1
      src/main/java/com/xjrsoft/module/liteflow/node/WfRoomApplicanNode.java
  3. 30 0
      src/main/java/com/xjrsoft/module/liteflow/node/WfTextbookRecedeNode.java
  4. 5 4
      src/main/java/com/xjrsoft/module/room/controller/RoomBedCheckRecordController.java
  5. 3 8
      src/main/java/com/xjrsoft/module/room/dto/AddRoomBedCheckRecordDto.java
  6. 23 0
      src/main/java/com/xjrsoft/module/room/dto/RoomBedCheckRecordPageDto.java
  7. 4 10
      src/main/java/com/xjrsoft/module/room/entity/RoomBedCheckRecord.java
  8. 5 1
      src/main/java/com/xjrsoft/module/room/service/IRoomBedCheckRecordService.java
  9. 64 16
      src/main/java/com/xjrsoft/module/room/service/impl/RoomBedCheckRecordServiceImpl.java
  10. 15 14
      src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordPageVo.java
  11. 0 6
      src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordRelationVo.java
  12. 53 27
      src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordVo.java
  13. 1 1
      src/main/java/com/xjrsoft/module/textbook/controller/SubjectGroupController.java
  14. 1 1
      src/main/java/com/xjrsoft/module/textbook/controller/SubjectGroupCourseController.java
  15. 5 5
      src/main/java/com/xjrsoft/module/textbook/controller/TextbookController.java
  16. 2 2
      src/main/java/com/xjrsoft/module/textbook/controller/TextbookWarehouseRecordController.java
  17. 1 1
      src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookClaimController.java
  18. 108 0
      src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookRecedeController.java
  19. 0 7
      src/main/java/com/xjrsoft/module/textbook/dto/AddTextbookDto.java
  20. 0 7
      src/main/java/com/xjrsoft/module/textbook/dto/AddWfExerciseBookDto.java
  21. 0 7
      src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookClaimDto.java
  22. 62 0
      src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookRecedeDto.java
  23. 48 0
      src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookRecedeItemDto.java
  24. 0 7
      src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookSubscriptionDto.java
  25. 0 9
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateSubjectGroupCourseDto.java
  26. 0 9
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateTextbookClaimUserDto.java
  27. 0 11
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateTextbookDto.java
  28. 0 9
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateTextbookIssueRecordDto.java
  29. 0 9
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateTextbookStudentClaimDto.java
  30. 0 10
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfExerciseBookDto.java
  31. 23 0
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfTextbookRecedeDto.java
  32. 0 10
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfTextbookSubscriptionDto.java
  33. 26 0
      src/main/java/com/xjrsoft/module/textbook/dto/WfTextbookRecedePageDto.java
  34. 13 16
      src/main/java/com/xjrsoft/module/textbook/entity/TextbookIssueRecord.java
  35. 16 0
      src/main/java/com/xjrsoft/module/textbook/entity/TextbookWarehouseRecord.java
  36. 0 3
      src/main/java/com/xjrsoft/module/textbook/entity/WfExerciseBook.java
  37. 0 3
      src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookClaim.java
  38. 117 0
      src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookRecede.java
  39. 98 0
      src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookRecedeItem.java
  40. 0 3
      src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookSubscription.java
  41. 0 1
      src/main/java/com/xjrsoft/module/textbook/mapper/SubjectGroupCourseMapper.java
  42. 0 1
      src/main/java/com/xjrsoft/module/textbook/mapper/SubjectGroupMapper.java
  43. 0 1
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookClaimUserMapper.java
  44. 0 1
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookClassRelationMapper.java
  45. 0 1
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookIssueRecordMapper.java
  46. 4 4
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookMapper.java
  47. 2 2
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookStudentClaimMapper.java
  48. 0 1
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookSubscriptionRecordMapper.java
  49. 1 1
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookWarehouseRecordMapper.java
  50. 0 1
      src/main/java/com/xjrsoft/module/textbook/mapper/WfExerciseBookItemMapper.java
  51. 0 1
      src/main/java/com/xjrsoft/module/textbook/mapper/WfExerciseBookMapper.java
  52. 1 1
      src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookClaimItemMapper.java
  53. 1 1
      src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookClaimMapper.java
  54. 16 0
      src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookRecedeItemMapper.java
  55. 16 0
      src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookRecedeMapper.java
  56. 0 1
      src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookSubscriptionItemMapper.java
  57. 0 1
      src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookSubscriptionMapper.java
  58. 0 3
      src/main/java/com/xjrsoft/module/textbook/service/ISubjectGroupCourseService.java
  59. 0 3
      src/main/java/com/xjrsoft/module/textbook/service/ITextbookClaimUserService.java
  60. 2 3
      src/main/java/com/xjrsoft/module/textbook/service/ITextbookService.java
  61. 5 2
      src/main/java/com/xjrsoft/module/textbook/service/ITextbookStudentClaimService.java
  62. 1 1
      src/main/java/com/xjrsoft/module/textbook/service/ITextbookWarehouseRecordService.java
  63. 2 2
      src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookClaimService.java
  64. 41 0
      src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookRecedeService.java
  65. 0 6
      src/main/java/com/xjrsoft/module/textbook/service/impl/SubjectGroupCourseServiceImpl.java
  66. 1 7
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookClaimUserServiceImpl.java
  67. 0 6
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookIssueRecordServiceImpl.java
  68. 1 1
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java
  69. 25 56
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookStudentClaimServiceImpl.java
  70. 2 2
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookWarehouseRecordServiceImpl.java
  71. 4 3
      src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookClaimServiceImpl.java
  72. 150 0
      src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookRecedeServiceImpl.java
  73. 0 5
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookVo.java
  74. 0 5
      src/main/java/com/xjrsoft/module/textbook/vo/WfExerciseBookVo.java
  75. 49 0
      src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookRecedeItemVo.java
  76. 125 0
      src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookRecedePageVo.java
  77. 65 0
      src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookRecedeVo.java
  78. 0 5
      src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionVo.java
  79. 1 1
      src/main/resources/mapper/textbook/TextbookIssueRecordMapper.xml
  80. 75 35
      src/main/resources/mapper/textbook/TextbookMapper.xml
  81. 26 0
      src/test/java/com/xjrsoft/module/textbook/service/impl/WfTextbookRecedeServiceImplTest.java
  82. 71 19
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

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

@@ -0,0 +1,35 @@
+package com.xjrsoft.common.enums;
+
+/**
+ * @description:退书类型recede_type
+ * @author: phoenix
+ * @create: 2023/12/21 11:27
+ * @Version 1.0
+ */
+public enum RecedeTypeEnum {
+    /**
+     * 退到教务处
+     * */
+    RecedeDeansOffice("recede_deans_office", "退到教务处"),
+
+    /**
+     * 退到书店
+     * */
+    RecedeBookstore("recede_bookstore", "退到书店");
+
+    final String code;
+    final String value;
+
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    RecedeTypeEnum(final String code, final String message) {
+        this.code = code;
+        this.value = message;
+    }
+}

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

@@ -2,7 +2,6 @@ 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;

+ 30 - 0
src/main/java/com/xjrsoft/module/liteflow/node/WfTextbookRecedeNode.java

@@ -0,0 +1,30 @@
+package com.xjrsoft.module.liteflow.node;
+
+import cn.hutool.core.convert.Convert;
+import com.xjrsoft.module.textbook.service.IWfTextbookRecedeService;
+import com.yomahub.liteflow.core.NodeComponent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 退书申请
+ */
+@Component("wf_textbook_recede")
+public class WfTextbookRecedeNode extends NodeComponent {
+    @Autowired
+    private IWfTextbookRecedeService wfTextbookRecedeService;
+
+    @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) {
+            // 数据处理
+            wfTextbookRecedeService.dataHandle(formId);
+        }
+    }
+}

+ 5 - 4
src/main/java/com/xjrsoft/module/room/controller/RoomBedCheckRecordController.java

@@ -45,7 +45,7 @@ public class RoomBedCheckRecordController {
     @ApiOperation(value="查寝记录列表(分页)")
     @SaCheckPermission("roombedcheckrecord:detail")
     public RT<PageOutput<RoomBedCheckRecordPageVo>> page(@Valid RoomBedCheckRecordPageDto dto){
-        IPage<RoomBedCheckRecord> page = roomBedCheckRecordService.getPage(dto);
+        IPage<RoomBedCheckRecordPageVo> page = roomBedCheckRecordService.getPage(dto);
         PageOutput<RoomBedCheckRecordPageVo> pageOutput = ConventPage.getPageOutput(page, RoomBedCheckRecordPageVo.class);
         return RT.ok(pageOutput);
     }
@@ -54,11 +54,12 @@ public class RoomBedCheckRecordController {
     @ApiOperation(value="根据id查询查寝记录信息")
     @SaCheckPermission("roombedcheckrecord:detail")
     public RT<RoomBedCheckRecordVo> info(@RequestParam Long id){
-        RoomBedCheckRecord roomBedCheckRecord = roomBedCheckRecordService.getByIdDeep(id);
-        if (roomBedCheckRecord == null) {
+        RoomBedCheckRecordVo roomBedCheckRecordVo = roomBedCheckRecordService.getInfo(id);
+        if (roomBedCheckRecordVo == null) {
            return RT.error("找不到此数据!");
         }
-        return RT.ok(BeanUtil.toBean(roomBedCheckRecord, RoomBedCheckRecordVo.class));
+
+        return RT.ok(roomBedCheckRecordVo);
     }
 
 

+ 3 - 8
src/main/java/com/xjrsoft/module/room/dto/AddRoomBedCheckRecordDto.java

@@ -2,15 +2,10 @@ 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.io.Serializable;
 import java.util.Date;
-import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
+import java.util.List;
 
 
 
@@ -49,7 +44,7 @@ public class AddRoomBedCheckRecordDto implements Serializable {
     * 情况
     */
     @ApiModelProperty("情况")
-    private String condition;
+    private String record;
     /**
     * 备注
     */

+ 23 - 0
src/main/java/com/xjrsoft/module/room/dto/RoomBedCheckRecordPageDto.java

@@ -1,9 +1,14 @@
 package com.xjrsoft.module.room.dto;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
 import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.Date;
+
 
 /**
 * @title: 查寝记录分页查询入参
@@ -15,4 +20,22 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = false)
 public class RoomBedCheckRecordPageDto extends PageInput {
 
+    private Long classId;
+
+    /**
+     * 查寝时间-开始
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("查寝时间-开始")
+    @ApiModelProperty("查寝时间-开始")
+    private Date checkRecordTimeStart;
+    /**
+     * 查寝时间-结束
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("查寝时间-结束")
+    @ApiModelProperty("查寝时间-结束")
+    private Date checkRecordTimeEnd;
+
+
 }

+ 4 - 10
src/main/java/com/xjrsoft/module/room/entity/RoomBedCheckRecord.java

@@ -1,20 +1,14 @@
 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.baomidou.mybatisplus.annotation.*;
 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;
+import java.util.List;
 
 
 /**
@@ -97,7 +91,7 @@ public class RoomBedCheckRecord implements Serializable {
     * 情况
     */
     @ApiModelProperty("情况")
-    private String condition;
+    private String record;
     /**
     * 备注
     */

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

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.room.dto.RoomBedCheckRecordPageDto;
 import com.xjrsoft.module.room.entity.RoomBedCheckRecord;
+import com.xjrsoft.module.room.vo.RoomBedCheckRecordPageVo;
+import com.xjrsoft.module.room.vo.RoomBedCheckRecordVo;
 
 import java.util.List;
 
@@ -44,5 +46,7 @@ public interface IRoomBedCheckRecordService extends MPJBaseService<RoomBedCheckR
      * @param dto
      * @return
      */
-    IPage<RoomBedCheckRecord> getPage(RoomBedCheckRecordPageDto dto);
+    IPage<RoomBedCheckRecordPageVo> getPage(RoomBedCheckRecordPageDto dto);
+
+    RoomBedCheckRecordVo getInfo(Long id);
 }

+ 64 - 16
src/main/java/com/xjrsoft/module/room/service/impl/RoomBedCheckRecordServiceImpl.java

@@ -1,14 +1,26 @@
 package com.xjrsoft.module.room.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.room.dto.RoomBedCheckRecordPageDto;
 import com.xjrsoft.module.room.entity.RoomBedCheckRecord;
 import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
 import com.xjrsoft.module.room.mapper.RoomBedCheckRecordMapper;
 import com.xjrsoft.module.room.mapper.RoomBedCheckRecordRelationMapper;
 import com.xjrsoft.module.room.service.IRoomBedCheckRecordService;
+import com.xjrsoft.module.room.vo.RoomBedCheckRecordPageVo;
+import com.xjrsoft.module.room.vo.RoomBedCheckRecordRelationVo;
+import com.xjrsoft.module.room.vo.RoomBedCheckRecordVo;
+import com.xjrsoft.module.system.entity.File;
+import com.xjrsoft.module.system.service.IFileService;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -30,6 +42,8 @@ public class RoomBedCheckRecordServiceImpl extends MPJBaseServiceImpl<RoomBedChe
 
     private final RoomBedCheckRecordRelationMapper roomBedCheckRecordRoomBedCheckRecordRelationMapper;
 
+    private final IFileService fileService;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -89,21 +103,55 @@ public class RoomBedCheckRecordServiceImpl extends MPJBaseServiceImpl<RoomBedChe
     }
 
     @Override
-    public IPage<RoomBedCheckRecord> getPage(RoomBedCheckRecordPageDto dto) {
-        //查询当前用户的班级
-//        LambdaQueryWrapper<BaseClass> queryWrapper = new LambdaQueryWrapper<>();
-//        queryWrapper
-//                .eq(BaseClass::getTeacherId, StpUtil.getLoginIdAsLong())
-//                .orderByDesc(BaseClass::getId);
-//        BaseClass
-//
-//        MPJLambdaWrapper<RoomBedCheckRecord> query = new MPJLambdaWrapper<>();
-//
-//        LambdaQueryWrapper<RoomBedCheckRecord> queryWrapper = new LambdaQueryWrapper<>();
-//        queryWrapper
-//                .orderByDesc(RoomBedCheckRecord::getId)
-//                .select(RoomBedCheckRecord.class,x -> VoToColumnUtil.fieldsToColumns(RoomBedCheckRecordPageVo.class).contains(x.getProperty()));
-        //IPage<RoomBedCheckRecord> page = this.getPage(ConventPage.getPage(dto), queryWrapper);
-        return null;
+    public IPage<RoomBedCheckRecordPageVo> getPage(RoomBedCheckRecordPageDto dto) {
+        MPJLambdaWrapper<RoomBedCheckRecord> queryRoomBedCheckRecord = new MPJLambdaWrapper<>();
+        queryRoomBedCheckRecord
+                .select(RoomBedCheckRecord::getId)
+                .selectAs(XjrUser::getName,RoomBedCheckRecordPageVo::getUserIdCN)
+                .selectAs(BaseClass::getName,RoomBedCheckRecordPageVo::getClassIdCN)
+                .select(RoomBedCheckRecord.class,x -> VoToColumnUtil.fieldsToColumns(RoomBedCheckRecordPageVo.class).contains(x.getProperty()))
+                .leftJoin(XjrUser.class,XjrUser::getId,RoomBedCheckRecord::getUserId)
+                .leftJoin(BaseClass.class,BaseClass::getId,RoomBedCheckRecord::getClassId)
+                .eq(RoomBedCheckRecord::getUserId, StpUtil.getLoginIdAsLong())
+                .eq(ObjectUtil.isNotNull(dto.getClassId()), RoomBedCheckRecord::getUserId, StpUtil.getLoginIdAsLong())
+                .between(ObjectUtil.isNotNull(dto.getCheckRecordTimeStart()) && ObjectUtil.isNotNull(dto.getCheckRecordTimeEnd()), RoomBedCheckRecord::getCheckRecordTime, dto.getCheckRecordTimeStart(), dto.getCheckRecordTimeEnd())
+                .disableSubLogicDel()
+                .orderByDesc(RoomBedCheckRecord::getId);
+
+        IPage<RoomBedCheckRecordPageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), RoomBedCheckRecordPageVo.class, queryRoomBedCheckRecord);
+        return page;
+    }
+
+    @Override
+    public RoomBedCheckRecordVo getInfo(Long id) {
+        MPJLambdaWrapper<RoomBedCheckRecord> queryRoomBedCheckRecord = new MPJLambdaWrapper<>();
+        queryRoomBedCheckRecord
+                .select(RoomBedCheckRecord::getId)
+                .selectAs(XjrUser::getName,RoomBedCheckRecordVo::getUserIdCN)
+                .selectAs(BaseClass::getName,RoomBedCheckRecordVo::getClassIdCN)
+                .select(RoomBedCheckRecord.class,x -> VoToColumnUtil.fieldsToColumns(RoomBedCheckRecordVo.class).contains(x.getProperty()))
+                .leftJoin(XjrUser.class,XjrUser::getId,RoomBedCheckRecord::getUserId)
+                .leftJoin(BaseClass.class,BaseClass::getId,RoomBedCheckRecord::getClassId)
+                .eq(RoomBedCheckRecord::getId, id)
+                .disableSubLogicDel()
+                .orderByDesc(RoomBedCheckRecord::getId);
+
+        RoomBedCheckRecordVo roomBedCheckRecordVo = this.selectJoinOne(RoomBedCheckRecordVo.class, queryRoomBedCheckRecord);
+        if(roomBedCheckRecordVo == null){
+            return null;
+        }
+
+        MPJLambdaWrapper<RoomBedCheckRecordRelation> queryRelation = new MPJLambdaWrapper<>();
+        queryRelation
+                .select(RoomBedCheckRecordRelation::getId)
+                .select(RoomBedCheckRecordRelation.class,x -> VoToColumnUtil.fieldsToColumns(RoomBedCheckRecordRelationVo.class).contains(x.getProperty()))
+                .eq(RoomBedCheckRecordRelation::getRoomBedCheckRecordId,roomBedCheckRecordVo.getId())
+                .orderByDesc(RoomBedCheckRecordRelation::getId);
+        List<RoomBedCheckRecordRelationVo> roomBedCheckRecordRelationVoList = roomBedCheckRecordRoomBedCheckRecordRelationMapper.selectJoinList(RoomBedCheckRecordRelationVo.class, queryRelation);
+        roomBedCheckRecordVo.setRoomBedCheckRecordRelationList(roomBedCheckRecordRelationVoList);
+
+        roomBedCheckRecordVo.setFileList(fileService.list(Wrappers.<File>query().lambda().eq(File::getFolderId, roomBedCheckRecordVo.getFileId())));
+
+        return roomBedCheckRecordVo;
     }
 }

+ 15 - 14
src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordPageVo.java

@@ -2,14 +2,10 @@ package com.xjrsoft.module.room.vo;
 
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ContentStyle;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.github.yulichang.annotation.EntityMapping;
-import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
-import java.util.List;
 
 /**
 * @title: 查寝记录分页列表出参
@@ -34,13 +30,26 @@ public class RoomBedCheckRecordPageVo {
     @ExcelProperty("填写人")
     @ApiModelProperty("填写人")
     private Long userId;
+    /**
+     * 填写人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("填写人")
+    @ApiModelProperty("填写人")
+    private String userIdCN;
     /**
     * 班级编号
     */
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("班级编号")
     @ApiModelProperty("班级编号")
-    private Long classId;
+    private Long classId;/**
+     * 班级编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级编号")
+    @ApiModelProperty("班级编号")
+    private String classIdCN;
     /**
     * 查寝时间
     */
@@ -54,7 +63,7 @@ public class RoomBedCheckRecordPageVo {
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("情况")
     @ApiModelProperty("情况")
-    private String condition;
+    private String record;
     /**
     * 备注
     */
@@ -70,12 +79,4 @@ public class RoomBedCheckRecordPageVo {
     @ApiModelProperty("附件文件id")
     private Long fileId;
 
-    /**
-     * roomBedCheckRecordRelation
-     */
-    @ApiModelProperty("roomBedCheckRecordRelation子表")
-    @TableField(exist = false)
-    @EntityMapping(thisField = "id", joinField = "roomBedCheckRecordId")
-    private List<RoomBedCheckRecordRelation> roomBedCheckRecordRelationList;
-
 }

+ 0 - 6
src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordRelationVo.java

@@ -3,12 +3,6 @@ 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

+ 53 - 27
src/main/java/com/xjrsoft/module/room/vo/RoomBedCheckRecordVo.java

@@ -1,14 +1,13 @@
 package com.xjrsoft.module.room.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.xjrsoft.module.system.entity.File;
 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;
-import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
+import java.util.List;
 
 /**
 * @title: 查寝记录表单出参
@@ -20,46 +19,73 @@ import com.xjrsoft.module.room.entity.RoomBedCheckRecordRelation;
 public class RoomBedCheckRecordVo {
 
     /**
-    * 主键编号
-    */
+     * 主键编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主键编号")
     @ApiModelProperty("主键编号")
-    private Long id;
-    /**
-    * 序号
-    */
-    @ApiModelProperty("序号")
-    private Integer sortCode;
+    private String id;
     /**
-    * 填写人
-    */
+     * 填写人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("填写人")
     @ApiModelProperty("填写人")
     private Long userId;
     /**
-    * 班级编号
-    */
+     * 填写人
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("填写人")
+    @ApiModelProperty("填写人")
+    private String userIdCN;
+    /**
+     * 班级编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级编号")
+    @ApiModelProperty("班级编号")
+    private Long classId;/**
+     * 班级编号
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级编号")
     @ApiModelProperty("班级编号")
-    private Long classId;
+    private String classIdCN;
     /**
-    * 查寝时间
-    */
+     * 查寝时间
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("查寝时间")
     @ApiModelProperty("查寝时间")
     private Date checkRecordTime;
     /**
-    * 情况
-    */
+     * 情况
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("情况")
     @ApiModelProperty("情况")
-    private String condition;
+    private String record;
     /**
-    * 备注
-    */
+     * 备注
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("备注")
     @ApiModelProperty("备注")
     private String remark;
     /**
-    * 附件文件id
-    */
+     * 附件文件id
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("附件文件id")
     @ApiModelProperty("附件文件id")
     private Long fileId;
 
+    /**
+     * 文件集合
+     */
+    @ApiModelProperty("文件集合")
+    private List<File> fileList;
 
     /**
     * roomBedCheckRecordRelation

+ 1 - 1
src/main/java/com/xjrsoft/module/textbook/controller/SubjectGroupController.java

@@ -10,6 +10,7 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseCourseSubject;
+import com.xjrsoft.module.textbook.vo.SubjectGroupVo;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.textbook.dto.AddCourseToSubjectGroupDto;
 import com.xjrsoft.module.textbook.dto.AddSubjectGroupDto;
@@ -21,7 +22,6 @@ import com.xjrsoft.module.textbook.service.ISubjectGroupCourseService;
 import com.xjrsoft.module.textbook.service.ISubjectGroupService;
 import com.xjrsoft.module.textbook.vo.SubjectGroupCoursePageVo;
 import com.xjrsoft.module.textbook.vo.SubjectGroupPageVo;
-import com.xjrsoft.module.textbook.vo.SubjectGroupVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/xjrsoft/module/textbook/controller/SubjectGroupCourseController.java

@@ -10,6 +10,7 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseCourseSubject;
+import com.xjrsoft.module.textbook.vo.SubjectGroupCourseVo;
 import com.xjrsoft.module.textbook.dto.AddSubjectGroupCourseDto;
 import com.xjrsoft.module.textbook.dto.SubjectGroupCoursePageDto;
 import com.xjrsoft.module.textbook.dto.UpdateSubjectGroupCourseDto;
@@ -17,7 +18,6 @@ import com.xjrsoft.module.textbook.entity.SubjectGroup;
 import com.xjrsoft.module.textbook.entity.SubjectGroupCourse;
 import com.xjrsoft.module.textbook.service.ISubjectGroupCourseService;
 import com.xjrsoft.module.textbook.vo.SubjectGroupCoursePageVo;
-import com.xjrsoft.module.textbook.vo.SubjectGroupCourseVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;

+ 5 - 5
src/main/java/com/xjrsoft/module/textbook/controller/TextbookController.java

@@ -9,17 +9,17 @@ import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
-import com.xjrsoft.module.textbook.dto.AddTextbookDto;
 import com.xjrsoft.module.textbook.dto.TextbookPageDto;
-import com.xjrsoft.module.textbook.dto.UpdateTextbookDto;
 import com.xjrsoft.module.textbook.entity.Textbook;
-import com.xjrsoft.module.textbook.service.ITextbookService;
-import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo;
-import com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo;
 import com.xjrsoft.module.textbook.vo.TextbookPageVo;
 import com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo;
 import com.xjrsoft.module.textbook.vo.TextbookVo;
 import com.xjrsoft.module.textbook.vo.WfTextbookClaimListVo;
+import com.xjrsoft.module.textbook.dto.AddTextbookDto;
+import com.xjrsoft.module.textbook.dto.UpdateTextbookDto;
+import com.xjrsoft.module.textbook.service.ITextbookService;
+import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo;
+import com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;

+ 2 - 2
src/main/java/com/xjrsoft/module/textbook/controller/TextbookWarehouseRecordController.java

@@ -8,12 +8,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.module.textbook.entity.TextbookWarehouseRecord;
+import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordPageVo;
 import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
 import com.xjrsoft.module.textbook.dto.TextbookWarehouseRecordPageDto;
 import com.xjrsoft.module.textbook.dto.UpdateTextbookWarehouseRecordDto;
-import com.xjrsoft.module.textbook.entity.TextbookWarehouseRecord;
 import com.xjrsoft.module.textbook.service.ITextbookWarehouseRecordService;
-import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordPageVo;
 import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;

+ 1 - 1
src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookClaimController.java

@@ -9,13 +9,13 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.QrCodeUtil;
 import com.xjrsoft.config.CommonPropertiesConfig;
+import com.xjrsoft.module.textbook.vo.WfTextbookClaimPageVo;
 import com.xjrsoft.module.textbook.dto.AddWfTextbookClaimDto;
 import com.xjrsoft.module.textbook.dto.ConfirmDistributeDto;
 import com.xjrsoft.module.textbook.dto.UpdateWfTextbookClaimDto;
 import com.xjrsoft.module.textbook.dto.WfTextbookClaimPageDto;
 import com.xjrsoft.module.textbook.entity.WfTextbookClaim;
 import com.xjrsoft.module.textbook.service.IWfTextbookClaimService;
-import com.xjrsoft.module.textbook.vo.WfTextbookClaimPageVo;
 import com.xjrsoft.module.textbook.vo.WfTextbookClaimVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;

+ 108 - 0
src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookRecedeController.java

@@ -0,0 +1,108 @@
+package com.xjrsoft.module.textbook.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.textbook.service.IWfTextbookRecedeService;
+import com.xjrsoft.module.textbook.dto.AddWfTextbookRecedeDto;
+import com.xjrsoft.module.textbook.dto.UpdateWfTextbookRecedeDto;
+import com.xjrsoft.module.textbook.dto.WfTextbookRecedePageDto;
+import com.xjrsoft.module.textbook.entity.WfTextbookRecede;
+import com.xjrsoft.module.textbook.vo.WfTextbookRecedePageVo;
+import com.xjrsoft.module.textbook.vo.WfTextbookRecedeVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+* @title: 推书申请
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/textbook" + "/wfTextbookRecede")
+@Api(value = "/textbook"  + "/wfTextbookRecede",tags = "推书申请代码")
+@AllArgsConstructor
+public class WfTextbookRecedeController {
+
+
+    private final IWfTextbookRecedeService wfTextbookRecedeService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="推书申请列表(分页)")
+    @SaCheckPermission("wftextbookrecede:detail")
+    public RT<PageOutput<WfTextbookRecedePageVo>> page(@Valid WfTextbookRecedePageDto dto){
+
+        LambdaQueryWrapper<WfTextbookRecede> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(WfTextbookRecede::getId)
+                .select(WfTextbookRecede.class,x -> VoToColumnUtil.fieldsToColumns(WfTextbookRecedePageVo.class).contains(x.getProperty()));
+        IPage<WfTextbookRecede> page = wfTextbookRecedeService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<WfTextbookRecedePageVo> pageOutput = ConventPage.getPageOutput(page, WfTextbookRecedePageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询推书申请信息")
+    @SaCheckPermission("wftextbookrecede:detail")
+    public RT<WfTextbookRecedeVo> info(@RequestParam Long id){
+        WfTextbookRecede wfTextbookRecede = wfTextbookRecedeService.getByIdDeep(id);
+        if (wfTextbookRecede == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(wfTextbookRecede, WfTextbookRecedeVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增推书申请")
+    @SaCheckPermission("wftextbookrecede:add")
+    public RT<Boolean> add(@Valid @RequestBody AddWfTextbookRecedeDto dto){
+        WfTextbookRecede wfTextbookRecede = BeanUtil.toBean(dto, WfTextbookRecede.class);
+        boolean isSuccess = wfTextbookRecedeService.add(wfTextbookRecede);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改推书申请")
+    @SaCheckPermission("wftextbookrecede:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateWfTextbookRecedeDto dto){
+
+        WfTextbookRecede wfTextbookRecede = BeanUtil.toBean(dto, WfTextbookRecede.class);
+        return RT.ok(wfTextbookRecedeService.update(wfTextbookRecede));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除推书申请")
+    @SaCheckPermission("wftextbookrecede:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(wfTextbookRecedeService.delete(ids));
+
+    }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "导出")
+    public ResponseEntity<byte[]> exportData(@Valid WfTextbookRecedePageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+        List<WfTextbookRecedePageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<WfTextbookRecedePageVo>) page(dto).getData()).getList();
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, WfTextbookRecedePageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "WfTextbookRecede" + ExcelTypeEnum.XLSX.getValue());
+    }
+}

+ 0 - 7
src/main/java/com/xjrsoft/module/textbook/dto/AddTextbookDto.java

@@ -3,16 +3,9 @@ package com.xjrsoft.module.textbook.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;
-import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
-import com.xjrsoft.module.textbook.entity.TextbookSubscriptionRecord;
-
 
 
 /**

+ 0 - 7
src/main/java/com/xjrsoft/module/textbook/dto/AddWfExerciseBookDto.java

@@ -3,15 +3,8 @@ package com.xjrsoft.module.textbook.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;
-import com.xjrsoft.module.textbook.entity.WfExerciseBookItem;
-
 
 
 /**

+ 0 - 7
src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookClaimDto.java

@@ -3,15 +3,8 @@ package com.xjrsoft.module.textbook.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;
-import com.xjrsoft.module.textbook.entity.WfTextbookClaimItem;
-
 
 
 /**

+ 62 - 0
src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookRecedeDto.java

@@ -0,0 +1,62 @@
+package com.xjrsoft.module.textbook.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.util.List;
+
+
+/**
+* @title: 推书申请
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Data
+public class AddWfTextbookRecedeDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 学期ID(base_semester)
+    */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+    * 班级编号
+    */
+    @ApiModelProperty("班级编号")
+    private Long classId;
+    /**
+    * 退书类型(xjr_dictionary_item[recede_type])
+    */
+    @ApiModelProperty("退书类型(xjr_dictionary_item[recede_type])")
+    private String recedeType;
+    /**
+    * 退还地点
+    */
+    @ApiModelProperty("退还地点")
+    private String recedeAddress;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+    /**
+    * wfTextbookRecedeItem
+    */
+    @ApiModelProperty("wfTextbookRecedeItem子表")
+    private List<AddWfTextbookRecedeItemDto> wfTextbookRecedeItemList;
+}

+ 48 - 0
src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookRecedeItemDto.java

@@ -0,0 +1,48 @@
+package com.xjrsoft.module.textbook.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-03
+* @Version 1.0
+*/
+@Data
+public class AddWfTextbookRecedeItemDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 退书申请编号
+    */
+    @ApiModelProperty("退书申请编号")
+    private Long wfTextbookRecedeId;
+    /**
+    * 教材管理编号
+    */
+    @ApiModelProperty("教材管理编号")
+    private Long textbookId;
+    /**
+    * 数量
+    */
+    @ApiModelProperty("数量")
+    private Integer number;
+
+}

+ 0 - 7
src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookSubscriptionDto.java

@@ -3,15 +3,8 @@ package com.xjrsoft.module.textbook.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;
-import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
-
 
 
 /**

+ 0 - 9
src/main/java/com/xjrsoft/module/textbook/dto/UpdateSubjectGroupCourseDto.java

@@ -2,15 +2,6 @@ package com.xjrsoft.module.textbook.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;
-
 
 
 /**

+ 0 - 9
src/main/java/com/xjrsoft/module/textbook/dto/UpdateTextbookClaimUserDto.java

@@ -2,15 +2,6 @@ package com.xjrsoft.module.textbook.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;
-
 
 
 /**

+ 0 - 11
src/main/java/com/xjrsoft/module/textbook/dto/UpdateTextbookDto.java

@@ -2,17 +2,6 @@ package com.xjrsoft.module.textbook.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;
-import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
-import com.xjrsoft.module.textbook.entity.TextbookSubscriptionRecord;
-
 
 
 /**

+ 0 - 9
src/main/java/com/xjrsoft/module/textbook/dto/UpdateTextbookIssueRecordDto.java

@@ -2,15 +2,6 @@ package com.xjrsoft.module.textbook.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;
-
 
 
 /**

+ 0 - 9
src/main/java/com/xjrsoft/module/textbook/dto/UpdateTextbookStudentClaimDto.java

@@ -2,15 +2,6 @@ package com.xjrsoft.module.textbook.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;
-
 
 
 /**

+ 0 - 10
src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfExerciseBookDto.java

@@ -2,16 +2,6 @@ package com.xjrsoft.module.textbook.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;
-import com.xjrsoft.module.textbook.entity.WfExerciseBookItem;
-
 
 
 /**

+ 23 - 0
src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfTextbookRecedeDto.java

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.textbook.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+* @title: 推书申请
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Data
+public class UpdateWfTextbookRecedeDto extends AddWfTextbookRecedeDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 0 - 10
src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfTextbookSubscriptionDto.java

@@ -2,16 +2,6 @@ package com.xjrsoft.module.textbook.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;
-import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
-
 
 
 /**

+ 26 - 0
src/main/java/com/xjrsoft/module/textbook/dto/WfTextbookRecedePageDto.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.textbook.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-03
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class WfTextbookRecedePageDto extends PageInput {
+
+
+}

+ 13 - 16
src/main/java/com/xjrsoft/module/textbook/entity/TextbookIssueRecord.java

@@ -1,19 +1,11 @@
 package com.xjrsoft.module.textbook.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 com.baomidou.mybatisplus.annotation.*;
 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;
 
 
@@ -79,15 +71,20 @@ public class TextbookIssueRecord implements Serializable {
     @ApiModelProperty("序号")
     private Integer sortCode;
     /**
-    * 教材申领编号
+     * 教材管理编号
+     */
+    @ApiModelProperty("教材管理编号")
+    private Long textbookId;
+    /**
+    * 数据编号(根据出库方式,编号来自不同数据表)
     */
-    @ApiModelProperty("教材申领编号")
-    private Long wfTextbookClaimId;
+    @ApiModelProperty("数据编号(根据出库方式,编号来自不同数据表)")
+    private Long dataId;
     /**
-    * 教材申领项编号
+    * 数据项项编号(根据出库方式,编号来自不同数据表)
     */
-    @ApiModelProperty("教材申领项编号")
-    private Long wfTextbookClaimItemId;
+    @ApiModelProperty("数据项项编号(根据出库方式,编号来自不同数据表)")
+    private Long dataItemId;
     /**
     * 出库数量
     */

+ 16 - 0
src/main/java/com/xjrsoft/module/textbook/entity/TextbookWarehouseRecord.java

@@ -79,6 +79,16 @@ public class TextbookWarehouseRecord implements Serializable {
     */
     @ApiModelProperty("教材管理编号")
     private Long textbookId;
+    /**
+     * 数据编号(根据入库方式,编号来自不同数据表)
+     */
+    @ApiModelProperty("数据编号(根据入库方式,编号来自不同数据表)")
+    private Long dataId;
+    /**
+     * 数据项项编号(根据入库方式,编号来自不同数据表)
+     */
+    @ApiModelProperty("数据项项编号(根据入库方式,编号来自不同数据表)")
+    private Long dataItemId;
     /**
     * 入库数量
     */
@@ -114,5 +124,11 @@ public class TextbookWarehouseRecord implements Serializable {
      */
     @ApiModelProperty("入库方式")
     private String warehouseMode;
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
 
 }

+ 0 - 3
src/main/java/com/xjrsoft/module/textbook/entity/WfExerciseBook.java

@@ -10,9 +10,6 @@ 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;
 

+ 0 - 3
src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookClaim.java

@@ -10,9 +10,6 @@ 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;
 

+ 117 - 0
src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookRecede.java

@@ -0,0 +1,117 @@
+package com.xjrsoft.module.textbook.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.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 推书申请
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Data
+@TableName("wf_textbook_recede")
+@ApiModel(value = "wf_textbook_recede", description = "推书申请")
+public class WfTextbookRecede 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;
+    /**
+    * 学期ID(base_semester)
+    */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+    * 班级编号
+    */
+    @ApiModelProperty("班级编号")
+    private Long classId;
+    /**
+    * 退书类型(xjr_dictionary_item[recede_type])
+    */
+    @ApiModelProperty("退书类型(xjr_dictionary_item[recede_type])")
+    private String recedeType;
+    /**
+    * 退还地点
+    */
+    @ApiModelProperty("退还地点")
+    private String recedeAddress;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+    /**
+    * wfTextbookRecedeItem
+    */
+    @ApiModelProperty("wfTextbookRecedeItem子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "wfTextbookRecedeId")
+    private List<WfTextbookRecedeItem> wfTextbookRecedeItemList;
+
+}

+ 98 - 0
src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookRecedeItem.java

@@ -0,0 +1,98 @@
+package com.xjrsoft.module.textbook.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-03
+* @Version 1.0
+*/
+@Data
+@TableName("wf_textbook_recede_item")
+@ApiModel(value = "wf_textbook_recede_item", description = "推书申请项")
+public class WfTextbookRecedeItem 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 wfTextbookRecedeId;
+    /**
+    * 教材管理编号
+    */
+    @ApiModelProperty("教材管理编号")
+    private Long textbookId;
+    /**
+    * 数量
+    */
+    @ApiModelProperty("数量")
+    private Integer number;
+
+
+}

+ 0 - 3
src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookSubscription.java

@@ -10,9 +10,6 @@ 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;
 

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/SubjectGroupCourseMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.SubjectGroupCourse;
 import org.apache.ibatis.annotations.Mapper;

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/SubjectGroupMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.SubjectGroup;
 import org.apache.ibatis.annotations.Mapper;

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/TextbookClaimUserMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.TextbookClaimUser;
 import org.apache.ibatis.annotations.Mapper;

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/TextbookClassRelationMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
 import org.apache.ibatis.annotations.Mapper;

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/TextbookIssueRecordMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.dto.TextbookIssueRecordPageDto;

+ 4 - 4
src/main/java/com/xjrsoft/module/textbook/mapper/TextbookMapper.java

@@ -2,16 +2,16 @@ package com.xjrsoft.module.textbook.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.textbook.vo.TextbookPageVo;
+import com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo;
+import com.xjrsoft.module.textbook.vo.TextbookVo;
+import com.xjrsoft.module.textbook.vo.WfTextbookClaimListVo;
 import com.xjrsoft.module.textbook.dto.TextbookPageDto;
 import com.xjrsoft.module.textbook.entity.Textbook;
 import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
 import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo;
 import com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo;
-import com.xjrsoft.module.textbook.vo.TextbookPageVo;
 import com.xjrsoft.module.textbook.vo.TextbookSubscriptionClassVo;
-import com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo;
-import com.xjrsoft.module.textbook.vo.TextbookVo;
-import com.xjrsoft.module.textbook.vo.WfTextbookClaimListVo;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;

+ 2 - 2
src/main/java/com/xjrsoft/module/textbook/mapper/TextbookStudentClaimMapper.java

@@ -2,13 +2,13 @@ package com.xjrsoft.module.textbook.mapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.textbook.entity.TextbookStudentClaim;
+import com.xjrsoft.module.textbook.vo.TeacherCheckByclassVo;
 import com.xjrsoft.module.textbook.dto.TeacherCheckByStuDto;
 import com.xjrsoft.module.textbook.dto.TeacherCheckByclassDto;
 import com.xjrsoft.module.textbook.dto.TeacherCheckStuClaimDto;
 import com.xjrsoft.module.textbook.dto.TextbookClaimStudentConfirmDto;
-import com.xjrsoft.module.textbook.entity.TextbookStudentClaim;
 import com.xjrsoft.module.textbook.vo.TeacherCheckByStuVo;
-import com.xjrsoft.module.textbook.vo.TeacherCheckByclassVo;
 import com.xjrsoft.module.textbook.vo.TeacherCheckStuClaimVo;
 import com.xjrsoft.module.textbook.vo.TextbookClaimVO;
 import org.apache.ibatis.annotations.Mapper;

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/TextbookSubscriptionRecordMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.TextbookSubscriptionRecord;
 import org.apache.ibatis.annotations.Mapper;

+ 1 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/TextbookWarehouseRecordMapper.java

@@ -2,9 +2,9 @@ package com.xjrsoft.module.textbook.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordPageVo;
 import com.xjrsoft.module.textbook.dto.TextbookWarehouseRecordPageDto;
 import com.xjrsoft.module.textbook.entity.TextbookWarehouseRecord;
-import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordPageVo;
 import org.apache.ibatis.annotations.Mapper;
 
 /**

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/WfExerciseBookItemMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.WfExerciseBookItem;
 import org.apache.ibatis.annotations.Mapper;

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/WfExerciseBookMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.WfExerciseBook;
 import org.apache.ibatis.annotations.Mapper;

+ 1 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookClaimItemMapper.java

@@ -1,8 +1,8 @@
 package com.xjrsoft.module.textbook.mapper;
 
 import com.github.yulichang.base.MPJBaseMapper;
-import com.xjrsoft.module.textbook.entity.WfTextbookClaimItem;
 import com.xjrsoft.module.textbook.vo.WfTextbookClaimItemVo;
+import com.xjrsoft.module.textbook.entity.WfTextbookClaimItem;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;

+ 1 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookClaimMapper.java

@@ -2,9 +2,9 @@ package com.xjrsoft.module.textbook.mapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.textbook.vo.WfTextbookClaimPageVo;
 import com.xjrsoft.module.textbook.dto.WfTextbookClaimPageDto;
 import com.xjrsoft.module.textbook.entity.WfTextbookClaim;
-import com.xjrsoft.module.textbook.vo.WfTextbookClaimPageVo;
 import com.xjrsoft.module.textbook.vo.WfTextbookClaimVo;
 import org.apache.ibatis.annotations.Mapper;
 

+ 16 - 0
src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookRecedeItemMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.textbook.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.textbook.entity.WfTextbookRecedeItem;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 推书申请项
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Mapper
+public interface WfTextbookRecedeItemMapper extends MPJBaseMapper<WfTextbookRecedeItem> {
+
+}

+ 16 - 0
src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookRecedeMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.textbook.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.textbook.entity.WfTextbookRecede;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 推书申请
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Mapper
+public interface WfTextbookRecedeMapper extends MPJBaseMapper<WfTextbookRecede> {
+
+}

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookSubscriptionItemMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
 import org.apache.ibatis.annotations.Mapper;

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookSubscriptionMapper.java

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
 import org.apache.ibatis.annotations.Mapper;

+ 0 - 3
src/main/java/com/xjrsoft/module/textbook/service/ISubjectGroupCourseService.java

@@ -1,10 +1,7 @@
 package com.xjrsoft.module.textbook.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.textbook.entity.SubjectGroupCourse;
-import lombok.Data;
-import java.util.List;
 
 /**
 * @title: 学科组管理

+ 0 - 3
src/main/java/com/xjrsoft/module/textbook/service/ITextbookClaimUserService.java

@@ -1,10 +1,7 @@
 package com.xjrsoft.module.textbook.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.textbook.entity.TextbookClaimUser;
-import lombok.Data;
-import java.util.List;
 
 /**
 * @title: 教材领取人员

+ 2 - 3
src/main/java/com/xjrsoft/module/textbook/service/ITextbookService.java

@@ -6,13 +6,12 @@ import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
 import com.xjrsoft.module.textbook.dto.TextbookPageDto;
 import com.xjrsoft.module.textbook.entity.Textbook;
 import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
-import com.xjrsoft.module.textbook.vo.*;
-import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo;
-import com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo;
 import com.xjrsoft.module.textbook.vo.TextbookPageVo;
 import com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo;
 import com.xjrsoft.module.textbook.vo.TextbookVo;
 import com.xjrsoft.module.textbook.vo.WfTextbookClaimListVo;
+import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo;
+import com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo;
 
 import java.util.List;
 

+ 5 - 2
src/main/java/com/xjrsoft/module/textbook/service/ITextbookStudentClaimService.java

@@ -2,7 +2,10 @@ package com.xjrsoft.module.textbook.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseService;
-import com.xjrsoft.module.textbook.dto.*;
+import com.xjrsoft.module.textbook.dto.TeacherCheckByStuDto;
+import com.xjrsoft.module.textbook.dto.TeacherCheckByclassDto;
+import com.xjrsoft.module.textbook.dto.TeacherCheckStuClaimDto;
+import com.xjrsoft.module.textbook.dto.TextbookClaimStudentConfirmDto;
 import com.xjrsoft.module.textbook.entity.TextbookStudentClaim;
 import com.xjrsoft.module.textbook.vo.*;
 
@@ -22,7 +25,7 @@ public interface ITextbookStudentClaimService extends MPJBaseService<TextbookStu
      * @param dto
      * @return
      */
-    TextbookClaimStudentConfirmVo  getStudentConfirmList(TextbookClaimStudentConfirmDto dto);
+    TextbookClaimStudentConfirmVo getStudentConfirmList(TextbookClaimStudentConfirmDto dto);
 
     /**
      * 学生教材领取学期页面

+ 1 - 1
src/main/java/com/xjrsoft/module/textbook/service/ITextbookWarehouseRecordService.java

@@ -2,9 +2,9 @@ package com.xjrsoft.module.textbook.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
-import com.xjrsoft.module.textbook.dto.TextbookWarehouseRecordPageDto;
 import com.xjrsoft.module.textbook.entity.TextbookWarehouseRecord;
 import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordPageVo;
+import com.xjrsoft.module.textbook.dto.TextbookWarehouseRecordPageDto;
 
 /**
 * @title: 教材入库

+ 2 - 2
src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookClaimService.java

@@ -2,10 +2,10 @@ package com.xjrsoft.module.textbook.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseService;
-import com.xjrsoft.module.textbook.dto.ConfirmDistributeDto;
-import com.xjrsoft.module.textbook.dto.WfTextbookClaimPageDto;
 import com.xjrsoft.module.textbook.entity.WfTextbookClaim;
 import com.xjrsoft.module.textbook.vo.WfTextbookClaimPageVo;
+import com.xjrsoft.module.textbook.dto.ConfirmDistributeDto;
+import com.xjrsoft.module.textbook.dto.WfTextbookClaimPageDto;
 import com.xjrsoft.module.textbook.vo.WfTextbookClaimVo;
 
 import java.util.List;

+ 41 - 0
src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookRecedeService.java

@@ -0,0 +1,41 @@
+package com.xjrsoft.module.textbook.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.textbook.entity.WfTextbookRecede;
+
+import java.util.List;
+
+/**
+* @title: 推书申请
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+
+public interface IWfTextbookRecedeService extends MPJBaseService<WfTextbookRecede> {
+    /**
+    * 新增
+    *
+    * @param wfTextbookRecede
+    * @return
+    */
+    Boolean add(WfTextbookRecede wfTextbookRecede);
+
+    /**
+    * 更新
+    *
+    * @param wfTextbookRecede
+    * @return
+    */
+    Boolean update(WfTextbookRecede wfTextbookRecede);
+
+    /**
+    * 删除
+    *
+    * @param ids
+    * @return
+    */
+    Boolean delete(List<Long> ids);
+
+    Boolean dataHandle(Long formId);
+}

+ 0 - 6
src/main/java/com/xjrsoft/module/textbook/service/impl/SubjectGroupCourseServiceImpl.java

@@ -1,17 +1,11 @@
 package com.xjrsoft.module.textbook.service.impl;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.module.textbook.entity.SubjectGroupCourse;
 import com.xjrsoft.module.textbook.mapper.SubjectGroupCourseMapper;
 import com.xjrsoft.module.textbook.service.ISubjectGroupCourseService;
 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: 学科组管理

+ 1 - 7
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookClaimUserServiceImpl.java

@@ -1,17 +1,11 @@
 package com.xjrsoft.module.textbook.service.impl;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
-import com.xjrsoft.module.textbook.entity.TextbookClaimUser;
 import com.xjrsoft.module.textbook.mapper.TextbookClaimUserMapper;
 import com.xjrsoft.module.textbook.service.ITextbookClaimUserService;
+import com.xjrsoft.module.textbook.entity.TextbookClaimUser;
 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: 教材领取人员

+ 0 - 6
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookIssueRecordServiceImpl.java

@@ -1,7 +1,6 @@
 package com.xjrsoft.module.textbook.service.impl;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.module.textbook.dto.TextbookIssueRecordPageDto;
 import com.xjrsoft.module.textbook.entity.TextbookIssueRecord;
@@ -10,11 +9,6 @@ import com.xjrsoft.module.textbook.service.ITextbookIssueRecordService;
 import com.xjrsoft.module.textbook.vo.TextbookIssueRecordPageVo;
 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: 教材出库记录

+ 1 - 1
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java

@@ -19,8 +19,8 @@ import com.xjrsoft.module.textbook.entity.*;
 import com.xjrsoft.module.textbook.mapper.TextbookClassRelationMapper;
 import com.xjrsoft.module.textbook.mapper.TextbookMapper;
 import com.xjrsoft.module.textbook.mapper.TextbookSubscriptionRecordMapper;
-import com.xjrsoft.module.textbook.service.ITextbookWarehouseRecordService;
 import com.xjrsoft.module.textbook.service.ITextbookService;
+import com.xjrsoft.module.textbook.service.ITextbookWarehouseRecordService;
 import com.xjrsoft.module.textbook.service.IWfExerciseBookService;
 import com.xjrsoft.module.textbook.service.IWfTextbookSubscriptionService;
 import com.xjrsoft.module.textbook.vo.*;

+ 25 - 56
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookStudentClaimServiceImpl.java

@@ -39,11 +39,11 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
-* @title: 学生教材认领记录
-* @Author szs
-* @Date: 2023-12-26
-* @Version 1.0
-*/
+ * @title: 学生教材认领记录
+ * @Author szs
+ * @Date: 2023-12-26
+ * @Version 1.0
+ */
 @Service
 @AllArgsConstructor
 public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<TextbookStudentClaimMapper, TextbookStudentClaim> implements ITextbookStudentClaimService {
@@ -63,18 +63,9 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
     public TextbookClaimStudentConfirmVo getStudentConfirmList(TextbookClaimStudentConfirmDto dto) {
         //获取当前登录学生的信息
         MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-        queryUser
-                .selectAs(XjrUser::getName, TextbookClaimStudentConfirmVo::getStudentName)
-                .selectAs(BaseStudent::getStudentId, TextbookClaimStudentConfirmVo::getStudentId)
-                .selectAs(BaseClass::getName, TextbookClaimStudentConfirmVo::getClassCN)
-                .leftJoin(BaseStudent.class, BaseStudent::getUserId, XjrUser::getId)
-                .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
-                .leftJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId)
-                .eq(XjrUser::getId, StpUtil.getLoginIdAsLong())
-                .disableSubLogicDel()
-                .orderByDesc(AttendanceRecord::getId);
+        queryUser.selectAs(XjrUser::getName, TextbookClaimStudentConfirmVo::getStudentName).selectAs(BaseStudent::getStudentId, TextbookClaimStudentConfirmVo::getStudentId).selectAs(BaseClass::getName, TextbookClaimStudentConfirmVo::getClassCN).leftJoin(BaseStudent.class, BaseStudent::getUserId, XjrUser::getId).leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId).leftJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId).eq(XjrUser::getId, StpUtil.getLoginIdAsLong()).disableSubLogicDel().orderByDesc(AttendanceRecord::getId);
         TextbookClaimStudentConfirmVo textbookClaimStudentConfirmVo = xjrUserMapper.selectJoinOne(TextbookClaimStudentConfirmVo.class, queryUser);
-        if(ObjectUtil.isNull(textbookClaimStudentConfirmVo)){
+        if (ObjectUtil.isNull(textbookClaimStudentConfirmVo)) {
             throw new MyException("登录信息出错,请重新登录");
         }
 
@@ -94,22 +85,15 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
     public List<TextbookStudentSemesterVo> getStudentSemesterList() {
         //获取当前学生领取记录的所有学期
         MPJLambdaWrapper<TextbookStudentClaim> qwerySemester = new MPJLambdaWrapper<>();
-        qwerySemester
-                .disableSubLogicDel()
-                .selectAs(BaseSemester::getName,TextbookStudentSemesterVo::getBaseSemesterIdCN)
-                .leftJoin(BaseSemester.class,BaseSemester::getId,TextbookStudentClaim::getBaseSemesterId)
-                .eq(TextbookStudentClaim::getStudentUserId,StpUtil.getLoginIdAsLong());
-        List<TextbookStudentSemesterVo> textbookStudentSemesterVoList = this.selectJoinList(TextbookStudentSemesterVo.class,qwerySemester);
-        if(ObjectUtil.isNull(textbookStudentSemesterVoList) && textbookStudentSemesterVoList.size() == 0){
+        qwerySemester.disableSubLogicDel().selectAs(BaseSemester::getName, TextbookStudentSemesterVo::getBaseSemesterIdCN).leftJoin(BaseSemester.class, BaseSemester::getId, TextbookStudentClaim::getBaseSemesterId).eq(TextbookStudentClaim::getStudentUserId, StpUtil.getLoginIdAsLong());
+        List<TextbookStudentSemesterVo> textbookStudentSemesterVoList = this.selectJoinList(TextbookStudentSemesterVo.class, qwerySemester);
+        if (ObjectUtil.isNull(textbookStudentSemesterVoList) && textbookStudentSemesterVoList.size() == 0) {
             return null;
         }
         //为每个学期添加未领取人数
         for (TextbookStudentSemesterVo textbookStudentSemesterVo : textbookStudentSemesterVoList) {
             LambdaQueryWrapper<TextbookStudentClaim> queryWrapperNotClaimNum = new LambdaQueryWrapper<>();
-            queryWrapperNotClaimNum
-                    .eq(TextbookStudentClaim::getStudentUserId,StpUtil.getLoginIdAsLong())
-                    .eq(TextbookStudentClaim::getBaseSemesterId,textbookStudentSemesterVo.getBaseSemesterId())
-                    .eq(TextbookStudentClaim::getIsClaim,0);
+            queryWrapperNotClaimNum.eq(TextbookStudentClaim::getStudentUserId, StpUtil.getLoginIdAsLong()).eq(TextbookStudentClaim::getBaseSemesterId, textbookStudentSemesterVo.getBaseSemesterId()).eq(TextbookStudentClaim::getIsClaim, 0);
             Long notClaimNum = this.count(queryWrapperNotClaimNum);
             textbookStudentSemesterVo.setNotClaimNum(notClaimNum);
         }
@@ -120,10 +104,9 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
     public IPage<TeacherCheckByclassVo> getTeacherCheckByclassList(TeacherCheckByclassDto dto) {
         //根据当前班主任用户查出所管理的班级Id
         LambdaQueryWrapper<BaseClass> queryWrapperClassId = new LambdaQueryWrapper<>();
-        queryWrapperClassId
-                .eq(BaseClass::getTeacherId,StpUtil.getLoginIdAsLong());
+        queryWrapperClassId.eq(BaseClass::getTeacherId, StpUtil.getLoginIdAsLong());
         List<BaseClass> baseClassList = baseClassService.list(queryWrapperClassId);
-        if(ObjectUtil.isNull(baseClassList) && baseClassList.size() == 0){
+        if (ObjectUtil.isNull(baseClassList) && baseClassList.size() == 0) {
             return null;
         }
 
@@ -133,25 +116,18 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         }
         dto.setClassIdList(classIdList);
 
-        IPage<TeacherCheckByclassVo> teacherCheckByclassVoList = textbookStudentClaimMapper.getTeacherCheckByclassList(ConventPage.getPage(dto),dto);
+        IPage<TeacherCheckByclassVo> teacherCheckByclassVoList = textbookStudentClaimMapper.getTeacherCheckByclassList(ConventPage.getPage(dto), dto);
 
         //为每本书添加数据
-        for (TeacherCheckByclassVo t: teacherCheckByclassVoList.getRecords()) {
+        for (TeacherCheckByclassVo t : teacherCheckByclassVoList.getRecords()) {
             MPJLambdaWrapper<WfTextbookClaim> qweryActualReceivedNum = new MPJLambdaWrapper<>();
-            qweryActualReceivedNum
-                    .disableSubLogicDel()
-                    .selectSum(WfTextbookClaimItem::getIssueNumber,TeacherCheckByclassVo::getActualReceivedNum)
-                    .leftJoin(WfTextbookClaimItem.class,WfTextbookClaimItem::getWfTextbookClaimId,WfTextbookClaim::getId)
-                    .eq(WfTextbookClaim::getClassId,t.getClassId())
-                    .eq(WfTextbookClaimItem::getTextbookId,t.getTextbookId());
-            TeacherCheckByclassVo teacherCheckByclassVo = wfTextbookClaimMapper.selectJoinOne(TeacherCheckByclassVo.class,qweryActualReceivedNum);
+            qweryActualReceivedNum.disableSubLogicDel().selectSum(WfTextbookClaimItem::getIssueNumber, TeacherCheckByclassVo::getActualReceivedNum).leftJoin(WfTextbookClaimItem.class, WfTextbookClaimItem::getWfTextbookClaimId, WfTextbookClaim::getId).eq(WfTextbookClaim::getClassId, t.getClassId()).eq(WfTextbookClaimItem::getTextbookId, t.getTextbookId());
+            TeacherCheckByclassVo teacherCheckByclassVo = wfTextbookClaimMapper.selectJoinOne(TeacherCheckByclassVo.class, qweryActualReceivedNum);
 
             t.setActualReceivedNum(teacherCheckByclassVo.getActualReceivedNum());
 
             LambdaQueryWrapper<TextbookStudentClaim> queryActualClaimNum = new LambdaQueryWrapper<>();
-            queryActualClaimNum
-                    .eq(TextbookStudentClaim::getClassId, t.getClassId())
-                    .eq(TextbookStudentClaim::getTextbookId, t.getTextbookId());
+            queryActualClaimNum.eq(TextbookStudentClaim::getClassId, t.getClassId()).eq(TextbookStudentClaim::getTextbookId, t.getTextbookId());
             Long actualClaimNum = this.count(queryActualClaimNum);
             t.setActualClaimNum(actualClaimNum);
         }
@@ -162,10 +138,9 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
     public IPage<TeacherCheckByStuVo> getTeacherCheckByStuList(TeacherCheckByStuDto dto) {
         //根据当前班主任用户查出所管理的班级Id
         LambdaQueryWrapper<BaseClass> queryWrapperClassId = new LambdaQueryWrapper<>();
-        queryWrapperClassId
-                .eq(BaseClass::getTeacherId,StpUtil.getLoginIdAsLong());
+        queryWrapperClassId.eq(BaseClass::getTeacherId, StpUtil.getLoginIdAsLong());
         List<BaseClass> baseClassList = baseClassService.list(queryWrapperClassId);
-        if(ObjectUtil.isNull(baseClassList) && baseClassList.size() == 0){
+        if (ObjectUtil.isNull(baseClassList) && baseClassList.size() == 0) {
             return null;
         }
 
@@ -176,10 +151,10 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         dto.setClassIdList(classIdList);
 
         //将班上所有学生进行分组,查询出list集合
-        IPage<TeacherCheckByStuVo> teacherCheckByStuVoList = textbookStudentClaimMapper.getTeacherCheckByStuList(ConventPage.getPage(dto),dto);
+        IPage<TeacherCheckByStuVo> teacherCheckByStuVoList = textbookStudentClaimMapper.getTeacherCheckByStuList(ConventPage.getPage(dto), dto);
 
         //为每个学生添加教材领取记录集合
-        for (TeacherCheckByStuVo t: teacherCheckByStuVoList.getRecords()) {
+        for (TeacherCheckByStuVo t : teacherCheckByStuVoList.getRecords()) {
             List<TextbookClaimVO> textbookClaimVOList = textbookStudentClaimMapper.getTextbookClaimVOList(t.getStudentUserId());
             t.setTextbookClaimVOList(textbookClaimVOList);
         }
@@ -192,7 +167,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
     @Transactional
     public Boolean updateByIds(List<Long> textbookStudentClaimIds) {
         for (Long textbookStudentClaimId : textbookStudentClaimIds) {
-            this.updateById(new TextbookStudentClaim(){{
+            this.updateById(new TextbookStudentClaim() {{
                 setId(textbookStudentClaimId);
                 setIsClaim(1);
             }});
@@ -207,15 +182,9 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
     }
 
     @Override
-    public List<TextbookClaimVO> getTeacherGetStuNoClaimList( Long studentUserId) {
+    public List<TextbookClaimVO> getTeacherGetStuNoClaimList(Long studentUserId) {
         MPJLambdaWrapper<TextbookStudentClaim> queryTextbookClaimVOList = new MPJLambdaWrapper<>();
-        queryTextbookClaimVOList
-                .selectAs(TextbookStudentClaim::getId, TextbookClaimVO::getTextbookStudentClaimId)
-                .selectAs(Textbook::getBookName, TextbookClaimVO::getBookName)
-                .select(TextbookStudentClaim.class, x -> VoToColumnUtil.fieldsToColumns(TextbookClaimVO.class).contains(x.getProperty()))
-                .leftJoin(Textbook.class, Textbook::getId, TextbookStudentClaim::getTextbookId)
-                .eq(TextbookStudentClaim::getStudentUserId, studentUserId)
-                .disableSubLogicDel();
+        queryTextbookClaimVOList.selectAs(TextbookStudentClaim::getId, TextbookClaimVO::getTextbookStudentClaimId).selectAs(Textbook::getBookName, TextbookClaimVO::getBookName).select(TextbookStudentClaim.class, x -> VoToColumnUtil.fieldsToColumns(TextbookClaimVO.class).contains(x.getProperty())).leftJoin(Textbook.class, Textbook::getId, TextbookStudentClaim::getTextbookId).eq(TextbookStudentClaim::getStudentUserId, studentUserId).disableSubLogicDel();
         List<TextbookClaimVO> textbookClaimVOList = this.selectJoinList(TextbookClaimVO.class, queryTextbookClaimVOList);
         return textbookClaimVOList;
     }

+ 2 - 2
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookWarehouseRecordServiceImpl.java

@@ -2,11 +2,11 @@ package com.xjrsoft.module.textbook.service.impl;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
-import com.xjrsoft.module.textbook.dto.TextbookWarehouseRecordPageDto;
 import com.xjrsoft.module.textbook.entity.TextbookWarehouseRecord;
 import com.xjrsoft.module.textbook.mapper.TextbookWarehouseRecordMapper;
-import com.xjrsoft.module.textbook.service.ITextbookWarehouseRecordService;
 import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordPageVo;
+import com.xjrsoft.module.textbook.dto.TextbookWarehouseRecordPageDto;
+import com.xjrsoft.module.textbook.service.ITextbookWarehouseRecordService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 

+ 4 - 3
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookClaimServiceImpl.java

@@ -121,7 +121,7 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
     public IPage<WfTextbookClaimPageVo> getPage(WfTextbookClaimPageDto dto) {
 
         dto.setUserId(StpUtil.getLoginIdAsLong());
-        IPage<WfTextbookClaimPageVo> page = wfTextbookClaimWfTextbookClaimMapper.getPage(ConventPage.getPage(dto),dto);
+        IPage<WfTextbookClaimPageVo> page = wfTextbookClaimWfTextbookClaimMapper.getPage(ConventPage.getPage(dto), dto);
 
         for (WfTextbookClaimPageVo wfTextbookClaimPageVo : page.getRecords()) {
             //拆分代领取人
@@ -228,8 +228,9 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
 
             //增加出库记录
             textbookIssueRecordService.save(new TextbookIssueRecord() {{
-                setWfTextbookClaimId(wfTextbookClaim.getId());
-                setWfTextbookClaimItemId(wfTextbookClaimItem.getId());
+                setTextbookId(wfTextbookClaimItem.getTextbookId());
+                setDataItemId(wfTextbookClaim.getId());
+                setDataItemId(wfTextbookClaimItem.getId());
                 setIssueNumber(confirmNumber);
                 setRemainingNumber(applicantNumber - issueNumber - confirmNumber);
                 setReceiveUserId(dto.getReceiveUserId());

+ 150 - 0
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookRecedeServiceImpl.java

@@ -0,0 +1,150 @@
+package com.xjrsoft.module.textbook.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.enums.IssueModeEnum;
+import com.xjrsoft.common.enums.RecedeTypeEnum;
+import com.xjrsoft.common.enums.WarehouseModeEnum;
+import com.xjrsoft.module.textbook.entity.*;
+import com.xjrsoft.module.textbook.mapper.*;
+import com.xjrsoft.module.textbook.service.IWfTextbookRecedeService;
+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;
+
+/**
+* @title: 推书申请
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class WfTextbookRecedeServiceImpl extends MPJBaseServiceImpl<WfTextbookRecedeMapper, WfTextbookRecede> implements IWfTextbookRecedeService {
+    private final WfTextbookRecedeMapper wfTextbookRecedeWfTextbookRecedeMapper;
+
+    private final WfTextbookRecedeItemMapper wfTextbookRecedeWfTextbookRecedeItemMapper;
+
+    private final TextbookMapper textbookTextbookMapper;
+
+    private final TextbookWarehouseRecordMapper textbookWarehouseRecordMapper;
+
+    private final TextbookIssueRecordMapper textbookIssueRecordMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean add(WfTextbookRecede wfTextbookRecede) {
+        wfTextbookRecedeWfTextbookRecedeMapper.insert(wfTextbookRecede);
+        for (WfTextbookRecedeItem wfTextbookRecedeItem : wfTextbookRecede.getWfTextbookRecedeItemList()) {
+            wfTextbookRecedeItem.setWfTextbookRecedeId(wfTextbookRecede.getId());
+            wfTextbookRecedeWfTextbookRecedeItemMapper.insert(wfTextbookRecedeItem);
+        }
+
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean update(WfTextbookRecede wfTextbookRecede) {
+        wfTextbookRecedeWfTextbookRecedeMapper.updateById(wfTextbookRecede);
+        //********************************* WfTextbookRecedeItem  增删改  开始 *******************************************/
+        {
+            // 查出所有子级的id
+            List<WfTextbookRecedeItem> wfTextbookRecedeItemList = wfTextbookRecedeWfTextbookRecedeItemMapper.selectList(Wrappers.lambdaQuery(WfTextbookRecedeItem.class).eq(WfTextbookRecedeItem::getWfTextbookRecedeId, wfTextbookRecede.getId()).select(WfTextbookRecedeItem::getId));
+            List<Long> wfTextbookRecedeItemIds = wfTextbookRecedeItemList.stream().map(WfTextbookRecedeItem::getId).collect(Collectors.toList());
+            //原有子表单 没有被删除的主键
+            List<Long> wfTextbookRecedeItemOldIds = wfTextbookRecede.getWfTextbookRecedeItemList().stream().map(WfTextbookRecedeItem::getId).filter(Objects::nonNull).collect(Collectors.toList());
+            //找到需要删除的id
+            List<Long> wfTextbookRecedeItemRemoveIds = wfTextbookRecedeItemIds.stream().filter(item -> !wfTextbookRecedeItemOldIds.contains(item)).collect(Collectors.toList());
+
+            for (WfTextbookRecedeItem wfTextbookRecedeItem : wfTextbookRecede.getWfTextbookRecedeItemList()) {
+                //如果不等于空则修改
+                if (wfTextbookRecedeItem.getId() != null) {
+                    wfTextbookRecedeWfTextbookRecedeItemMapper.updateById(wfTextbookRecedeItem);
+                }
+                //如果等于空 则新增
+                else {
+                    //已经不存在的id 删除
+                    wfTextbookRecedeItem.setWfTextbookRecedeId(wfTextbookRecede.getId());
+                    wfTextbookRecedeWfTextbookRecedeItemMapper.insert(wfTextbookRecedeItem);
+                }
+            }
+            //已经不存在的id 删除
+            if(wfTextbookRecedeItemRemoveIds.size() > 0){
+                wfTextbookRecedeWfTextbookRecedeItemMapper.deleteBatchIds(wfTextbookRecedeItemRemoveIds);
+            }
+        }
+        //********************************* WfTextbookRecedeItem  增删改  结束 *******************************************/
+
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(List<Long> ids) {
+        wfTextbookRecedeWfTextbookRecedeMapper.deleteBatchIds(ids);
+        wfTextbookRecedeWfTextbookRecedeItemMapper.delete(Wrappers.lambdaQuery(WfTextbookRecedeItem.class).in(WfTextbookRecedeItem::getWfTextbookRecedeId, ids));
+
+        return true;
+    }
+
+    @Override
+    @Transactional
+    public Boolean dataHandle(Long formId) {
+        WfTextbookRecede wfTextbookRecede = this.getById(formId);
+        if(ObjectUtil.isNotNull(wfTextbookRecede)){
+            LambdaQueryWrapper<WfTextbookRecedeItem> queryWrapperItem = new LambdaQueryWrapper<>();
+            queryWrapperItem
+                    .eq(WfTextbookRecedeItem::getWfTextbookRecedeId, wfTextbookRecede.getId());
+            List<WfTextbookRecedeItem> wfTextbookRecedeItemList = wfTextbookRecedeWfTextbookRecedeItemMapper.selectList(queryWrapperItem);
+            if(ObjectUtil.isNotNull(wfTextbookRecedeItemList)){
+                //遍历每一个退书申请项
+                for (WfTextbookRecedeItem wfTextbookRecedeItem : wfTextbookRecedeItemList) {
+                    //获取所退书籍的信息
+                    Textbook textbook = textbookTextbookMapper.selectById(wfTextbookRecedeItem.getTextbookId());
+                    //退书类型是到教务处
+                    if(ObjectUtil.isNotNull(textbook) && wfTextbookRecede.getRecedeType().equals(RecedeTypeEnum.RecedeDeansOffice.getCode())){
+                        //修改库存
+                        textbookTextbookMapper.updateById(new Textbook(){{
+                            setId(wfTextbookRecedeItem.getTextbookId());
+                            setStock((ObjectUtil.isNull(textbook.getStock())?0:textbook.getStock()) + (ObjectUtil.isNull(wfTextbookRecedeItem.getNumber())?0:wfTextbookRecedeItem.getNumber()));
+                        }});
+                        //增加入库记录
+                        textbookWarehouseRecordMapper.insert(new TextbookWarehouseRecord(){{
+                            setTextbookId(wfTextbookRecedeItem.getTextbookId());
+                            setDataId(wfTextbookRecede.getId());
+                            setDataItemId(wfTextbookRecedeItem.getId());
+                            setWarehouseMode(WarehouseModeEnum.WmRecede.getCode());
+                            setWarehouseNumber(ObjectUtil.isNull(wfTextbookRecedeItem.getNumber())?0:wfTextbookRecedeItem.getNumber());
+                        }});
+                    }
+
+                    //退书类型是到书店
+                    if(ObjectUtil.isNotNull(textbook) && wfTextbookRecede.getRecedeType().equals(RecedeTypeEnum.RecedeBookstore.getCode())){
+                        //修改库存
+                        textbookTextbookMapper.updateById(new Textbook(){{
+                            setId(wfTextbookRecedeItem.getTextbookId());
+                            setStock((ObjectUtil.isNull(textbook.getStock())?0:textbook.getStock()) - (ObjectUtil.isNull(wfTextbookRecedeItem.getNumber())?0:wfTextbookRecedeItem.getNumber()) );
+                        }});
+                        //增加出库记录
+                        textbookIssueRecordMapper.insert(new TextbookIssueRecord(){{
+                            setTextbookId(wfTextbookRecedeItem.getTextbookId());
+                            setDataId(wfTextbookRecede.getId());
+                            setDataItemId(wfTextbookRecedeItem.getId());
+                            setIssueMode(IssueModeEnum.ImRecede.getCode());
+                            setIssueNumber(ObjectUtil.isNull(wfTextbookRecedeItem.getNumber())?0:wfTextbookRecedeItem.getNumber());
+                        }});
+                    }
+                }
+            }
+        }
+
+        return true;
+    }
+}

+ 0 - 5
src/main/java/com/xjrsoft/module/textbook/vo/TextbookVo.java

@@ -3,13 +3,8 @@ package com.xjrsoft.module.textbook.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;
-import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
-import com.xjrsoft.module.textbook.entity.TextbookSubscriptionRecord;
 
 /**
 * @title: 教材管理表单出参

+ 0 - 5
src/main/java/com/xjrsoft/module/textbook/vo/WfExerciseBookVo.java

@@ -3,12 +3,7 @@ package com.xjrsoft.module.textbook.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;
-import com.xjrsoft.module.textbook.entity.WfExerciseBookItem;
 
 /**
 * @title: 作业本征订表单出参

+ 49 - 0
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookRecedeItemVo.java

@@ -0,0 +1,49 @@
+package com.xjrsoft.module.textbook.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-03
+* @Version 1.0
+*/
+@Data
+public class WfTextbookRecedeItemVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 退书申请编号
+    */
+    @ApiModelProperty("退书申请编号")
+    private Long wfTextbookRecedeId;
+    /**
+    * 教材管理编号
+    */
+    @ApiModelProperty("教材管理编号")
+    private Long textbookId;
+    /**
+    * 数量
+    */
+    @ApiModelProperty("数量")
+    private Integer number;
+
+
+
+}

+ 125 - 0
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookRecedePageVo.java

@@ -0,0 +1,125 @@
+package com.xjrsoft.module.textbook.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-03
+* @Version 1.0
+*/
+@Data
+public class WfTextbookRecedePageVo {
+
+    /**
+    * 主键编号
+    */
+    @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;
+    /**
+    * 学期ID(base_semester)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学期ID(base_semester)")
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+    * 班级编号
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("班级编号")
+    @ApiModelProperty("班级编号")
+    private Long classId;
+    /**
+    * 退书类型(xjr_dictionary_item[recede_type])
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("退书类型(xjr_dictionary_item[recede_type])")
+    @ApiModelProperty("退书类型(xjr_dictionary_item[recede_type])")
+    private String recedeType;
+    /**
+    * 退还地点
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("退还地点")
+    @ApiModelProperty("退还地点")
+    private String recedeAddress;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("状态(1:结束 0:未结束)")
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+}

+ 65 - 0
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookRecedeVo.java

@@ -0,0 +1,65 @@
+package com.xjrsoft.module.textbook.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* @title: 推书申请表单出参
+* @Author szs
+* @Date: 2024-01-03
+* @Version 1.0
+*/
+@Data
+public class WfTextbookRecedeVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 申请人
+    */
+    @ApiModelProperty("申请人")
+    private Long applicantUserId;
+    /**
+    * 学期ID(base_semester)
+    */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+    * 班级编号
+    */
+    @ApiModelProperty("班级编号")
+    private Long classId;
+    /**
+    * 退书类型(xjr_dictionary_item[recede_type])
+    */
+    @ApiModelProperty("退书类型(xjr_dictionary_item[recede_type])")
+    private String recedeType;
+    /**
+    * 退还地点
+    */
+    @ApiModelProperty("退还地点")
+    private String recedeAddress;
+    /**
+    * 状态(1:结束 0:未结束)
+    */
+    @ApiModelProperty("状态(1:结束 0:未结束)")
+    private Integer status;
+
+
+    /**
+    * wfTextbookRecedeItem
+    */
+    @ApiModelProperty("wfTextbookRecedeItem子表")
+    private List<WfTextbookRecedeItemVo> wfTextbookRecedeItemList;
+
+}

+ 0 - 5
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionVo.java

@@ -3,12 +3,7 @@ package com.xjrsoft.module.textbook.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;
-import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
 
 /**
 * @title: 教材教辅征订表单出参

+ 1 - 1
src/main/resources/mapper/textbook/TextbookIssueRecordMapper.xml

@@ -7,7 +7,7 @@
         SELECT t1.id,t1.sort_code,t3.issn,t3.book_name,t3.publishing_house,t3.editor_in_chief,t7.group_name,t5.name AS grade_name,
         t6.name AS class_name,t8.name AS course_name,t10.name AS textbook_type_cn,t3.specifications_models,
         t11.name AS issue_mode_cn,t1.create_date,t9.name AS claim_user,t1.issue_number FROM textbook_issue_record t1
-        LEFT JOIN wf_textbook_claim_item t2 ON t1.wf_textbook_claim_item_id = t2.id
+        LEFT JOIN wf_textbook_claim_item t2 ON t1.data_item_id = t2.id
         LEFT JOIN textbook t3 ON t2.textbook_id = t3.id
         LEFT JOIN wf_textbook_claim t4 ON t2.wf_textbook_claim_id = t4.id
         LEFT JOIN base_grade t5 ON t3.grade_id = t5.id

+ 75 - 35
src/main/resources/mapper/textbook/TextbookMapper.xml

@@ -3,10 +3,13 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.textbook.mapper.TextbookMapper">
-    <select id="getPage" parameterType="com.xjrsoft.module.textbook.dto.TextbookPageDto" resultType="com.xjrsoft.module.textbook.vo.TextbookPageVo">
+    <select id="getPage" parameterType="com.xjrsoft.module.textbook.dto.TextbookPageDto"
+            resultType="com.xjrsoft.module.textbook.vo.TextbookPageVo">
         SELECT t1.id,t1.sort_code,t1.issn,t1.book_name,t1.publishing_house,t1.editor_in_chief,
-        t1.subject_group_id,t2.group_name,t3.name AS semester_name,t4.name AS course_name,t7.name AS is_textbook_plan_cn,
-        t5.name AS textbook_type_cn,t1.specifications_models,t1.appraisal_price,t1.price,t1.discount,t1.subtotal,t1.stock,
+        t1.subject_group_id,t2.group_name,t3.name AS semester_name,t4.name AS course_name,t7.name AS
+        is_textbook_plan_cn,
+        t5.name AS
+        textbook_type_cn,t1.specifications_models,t1.appraisal_price,t1.price,t1.discount,t1.subtotal,t1.stock,
         (SELECT GROUP_CONCAT(c2.name) FROM textbook_class_relation c1
         LEFT JOIN base_class c2 ON c1.class_id = c2.id
         WHERE c1.textbook_id = t1.id) AS use_class,
@@ -45,17 +48,32 @@
     </select>
 
     <select id="subscriptionList" resultType="com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo">
-        SELECT t2.create_date,t4.name AS applicant_user,t3.issn,t3.book_name,t3.publishing_house,
-        t3.editor_in_chief,t3.appraisal_price,t5.name AS is_textbook_plan_cn,t6.name AS course_name,
-        t3.student_subscription_number,t3.teacher_subscription_number,t3.teacher_reference_number,
-        t7.name AS is_support_resources_cn,t3.version, t3.class_ids FROM textbook_subscription_record t1
-        LEFT JOIN wf_textbook_subscription t2 ON t1.wf_textbook_subscription_id = t2.id
-        LEFT JOIN wf_textbook_subscription_item t3 ON t3.wf_textbook_subscription_id = t2.id
-        LEFT JOIN xjr_user t4 ON t2.applicant_user_id = t4.id
-        LEFT JOIN xjr_dictionary_detail t5 ON t3.is_textbook_plan = t5.code AND t5.item_id = 1737360269850038273
-        LEFT JOIN base_course_subject t6 ON t3.course_subject_id = t6.id
-        LEFT JOIN xjr_dictionary_detail t7 ON t3.is_support_resources = t7.code AND t7.item_id = 1737360269850038273
-        WHERE t1.delete_mark = 0 AND t1.textbook_id = #{id}
+        SELECT t2.create_date,
+               t4.name AS applicant_user,
+               t3.issn,
+               t3.book_name,
+               t3.publishing_house,
+               t3.editor_in_chief,
+               t3.appraisal_price,
+               t5.name AS is_textbook_plan_cn,
+               t6.name AS course_name,
+               t3.student_subscription_number,
+               t3.teacher_subscription_number,
+               t3.teacher_reference_number,
+               t7.name AS is_support_resources_cn,
+               t3.version,
+               t3.class_ids
+        FROM textbook_subscription_record t1
+                 LEFT JOIN wf_textbook_subscription t2 ON t1.wf_textbook_subscription_id = t2.id
+                 LEFT JOIN wf_textbook_subscription_item t3 ON t3.wf_textbook_subscription_id = t2.id
+                 LEFT JOIN xjr_user t4 ON t2.applicant_user_id = t4.id
+                 LEFT JOIN xjr_dictionary_detail t5
+                           ON t3.is_textbook_plan = t5.code AND t5.item_id = 1737360269850038273
+                 LEFT JOIN base_course_subject t6 ON t3.course_subject_id = t6.id
+                 LEFT JOIN xjr_dictionary_detail t7
+                           ON t3.is_support_resources = t7.code AND t7.item_id = 1737360269850038273
+        WHERE t1.delete_mark = 0
+          AND t1.textbook_id = #{id}
     </select>
 
     <select id="getClassInfo" resultType="com.xjrsoft.module.textbook.vo.TextbookSubscriptionClassVo">
@@ -66,34 +84,56 @@
     </select>
 
     <select id="getInfoByissn" resultType="com.xjrsoft.module.textbook.vo.TextbookVo">
-        SELECT * FROM textbook WHERE delete_mark = 0 AND issn = #{issn} order by create_date desc limit 0,1
+        SELECT *
+        FROM textbook
+        WHERE delete_mark = 0
+          AND issn = #{issn}
+        order by create_date desc limit 0,1
     </select>
     <select id="warehouseList" resultType="com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo">
-        SELECT t1.create_date AS warehouse_date,t2.name AS warehouse_user,t1.warehouse_number,t1.source FROM textbook_warehouse_record t1
-        LEFT JOIN xjr_user t2 ON t1.create_user_id = t2.id
-        WHERE t1.delete_mark = 0 AND t1.textbook_id = #{id} order by t1.sort_code
+        SELECT t1.create_date AS warehouse_date, t2.name AS warehouse_user, t1.warehouse_number, t1.source
+        FROM textbook_warehouse_record t1
+                 LEFT JOIN xjr_user t2 ON t1.create_user_id = t2.id
+        WHERE t1.delete_mark = 0
+          AND t1.textbook_id = #{id}
+        order by t1.sort_code
     </select>
     <select id="issueList" resultType="com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo">
-        SELECT t1.create_date AS issue_date,t2.name AS issue_user,t1.issue_number,t6.name AS issue_mode,t1.remark FROM textbook_issue_record t1
-        LEFT JOIN xjr_user t2 ON t1.create_user_id = t2.id
-        LEFT JOIN wf_textbook_claim_item t3 ON t1.wf_textbook_claim_item_id = t3.id
-        LEFT JOIN wf_textbook_recede_item t4 ON t3.textbook_id = t4.textbook_id
-        LEFT JOIN wf_textbook_recede t5 ON t5.id = t4.wf_textbook_recede_id
-        LEFT JOIN xjr_dictionary_detail t6 ON t6.code = t1.issue_mode AND t6.item_id = 1739821685805215745
-        WHERE t1.delete_mark = 0 AND t3.textbook_id = #{id} ORDER BY t1.sort_code;
+        SELECT t1.create_date AS issue_date, t2.name AS issue_user, t1.issue_number, t6.name AS issue_mode, t1.remark
+        FROM textbook_issue_record t1
+                 LEFT JOIN xjr_user t2 ON t1.create_user_id = t2.id
+                 LEFT JOIN wf_textbook_claim_item t3 ON t1.data_item_id = t3.id
+                 LEFT JOIN wf_textbook_recede_item t4 ON t3.textbook_id = t4.textbook_id
+                 LEFT JOIN wf_textbook_recede t5 ON t5.id = t4.wf_textbook_recede_id
+                 LEFT JOIN xjr_dictionary_detail t6 ON t6.code = t1.issue_mode AND t6.item_id = 1739821685805215745
+        WHERE t1.delete_mark = 0
+          AND t3.textbook_id = #{id}
+        ORDER BY t1.sort_code;
     </select>
     <select id="claimList" resultType="com.xjrsoft.module.textbook.vo.WfTextbookClaimListVo">
-        SELECT t2.name AS semester_name,t5.name AS claim_identity,t3.name AS class_name,t5.name,t5.user_name,t4.create_date FROM wf_textbook_claim t1
-        LEFT JOIN base_semester t2 ON t1.base_semester_id = t2.id
-        LEFT JOIN base_class t3 ON t1.class_id = t3.id
-        LEFT JOIN textbook_issue_record t4 ON t4.wf_textbook_claim_id = t1.id
-        LEFT JOIN xjr_user t5 ON t4.receive_user_id = t5.id
-        LEFT JOIN xjr_user_role_relation t6 ON t5.id = t6.user_id
-        LEFT JOIN xjr_role t7 ON t6.role_id = t7.id
-        LEFT JOIN wf_textbook_claim_item t8 ON t8.wf_textbook_claim_id = t1.id
-        where t1.delete_mark = 0 and t8.delete_mark = 0 and t8.textbook_id = #{id} and t1.status = 1
+        SELECT t2.name AS semester_name,
+               t5.name AS claim_identity,
+               t3.name AS class_name,
+               t5.name,
+               t5.user_name,
+               t4.create_date
+        FROM wf_textbook_claim t1
+                 LEFT JOIN base_semester t2 ON t1.base_semester_id = t2.id
+                 LEFT JOIN base_class t3 ON t1.class_id = t3.id
+                 LEFT JOIN textbook_issue_record t4 ON t4.wf_textbook_claim_id = t1.id
+                 LEFT JOIN xjr_user t5 ON t4.receive_user_id = t5.id
+                 LEFT JOIN xjr_user_role_relation t6 ON t5.id = t6.user_id
+                 LEFT JOIN xjr_role t7 ON t6.role_id = t7.id
+                 LEFT JOIN wf_textbook_claim_item t8 ON t8.wf_textbook_claim_id = t1.id
+        where t1.delete_mark = 0
+          and t8.delete_mark = 0
+          and t8.textbook_id = #{id}
+          and t1.status = 1
     </select>
     <select id="getClassRelation" resultType="com.xjrsoft.module.textbook.entity.TextbookClassRelation">
-        SELECT * FROM textbook_class_relation WHERE delete_mark = 0 AND textbook_id = #{id}
+        SELECT *
+        FROM textbook_class_relation
+        WHERE delete_mark = 0
+          AND textbook_id = #{id}
     </select>
 </mapper>

+ 26 - 0
src/test/java/com/xjrsoft/module/textbook/service/impl/WfTextbookRecedeServiceImplTest.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.textbook.service.impl;
+
+import com.xjrsoft.module.textbook.service.IWfTextbookRecedeService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * @description:TODO
+ * @author: phoenix
+ * @create: 2024/1/3 15:29
+ * @Version 1.0
+ */
+@SpringBootTest
+class WfTextbookRecedeServiceImplTest {
+
+    @Autowired
+    private IWfTextbookRecedeService wfTextbookRecedeService;
+
+    @Test
+    void dataHandle() {
+        wfTextbookRecedeService.dataHandle(1739838239871660032L);
+    }
+}

+ 71 - 19
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -16,7 +16,7 @@ import java.util.List;
 public class FreeMarkerGeneratorTest {
 
     private static final DataSource ds = new SimpleDataSource("jdbc:mysql://10.150.10.139:3306/tl?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true",
-            "root" , "Zwr~-f6H,u6QE^]C-AD_" );
+            "root", "Zwr~-f6H,u6QE^]C-AD_");
 
     @Test
     public void generateCodesTest() throws IOException {
@@ -63,6 +63,7 @@ public class FreeMarkerGeneratorTest {
 
         apiGeneratorService.generateCodes(params);
     }
+
     @Test
     public void generateCodesTest1() throws IOException {
         List<TableConfig> tableConfigs = new ArrayList<>();
@@ -829,6 +830,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 学籍异动类别
+     *
      * @throws IOException
      */
     @Test
@@ -860,6 +862,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 学籍异动类别
+     *
      * @throws IOException
      */
     @Test
@@ -892,7 +895,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 升学管理
-     *
      */
     @Test
     public void gcSchoolRollFurtherEducation() throws IOException {
@@ -923,7 +925,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 班级荣誉
-     *
      */
     @Test
     public void gcClassHonors() throws IOException {
@@ -954,7 +955,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 考勤配置
-     *
      */
     @Test
     public void gcAttendanceConfig() throws IOException {
@@ -984,7 +984,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 考勤记录
-     *
      */
     @Test
     public void gcAttendanceRecord() throws IOException {
@@ -1014,7 +1013,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 需要考勤的人员管理
-     *
      */
     @Test
     public void gcAttendancePersonneld() throws IOException {
@@ -1044,7 +1042,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 班主任事项请假
-     *
      */
     @Test
     public void gcHeadTeacherLeave() throws IOException {
@@ -1074,7 +1071,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 干部部门管理
-     *
      */
     @Test
     public void gcCadreDept() throws IOException {
@@ -1104,7 +1100,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 干部候选人
-     *
      */
     @Test
     public void gcWfCadreCandidate() throws IOException {
@@ -1134,7 +1129,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 教师请假
-     *
      */
     @Test
     public void gcWfTeacherleave() throws IOException {
@@ -1164,7 +1158,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 学科组管理
-     *
      */
     @Test
     public void gcSubjectGroup() throws IOException {
@@ -1194,7 +1187,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 学科组课程管理
-     *
      */
     @Test
     public void gcSubjectGroupCourse() throws IOException {
@@ -1224,7 +1216,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 学科组课程管理
-     *
      */
     @Test
     public void gcTextBookManage() throws IOException {
@@ -1272,7 +1263,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 教材教辅征订
-     *
      */
     @Test
     public void gcWfTextbookSubscription() throws IOException {
@@ -1310,7 +1300,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 学科组课程管理
-     *
      */
     @Test
     public void gcTextbookClassWarehouse() throws IOException {
@@ -1340,7 +1329,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 教材申领
-     *
      */
     @Test
     public void gcWfStudentTextbookClaim() throws IOException {
@@ -1378,7 +1366,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 学生教材认领记录
-     *
      */
     @Test
     public void gcTextbookStudentClaim() throws IOException {
@@ -1407,7 +1394,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 教材出库记录
-     *
      */
     @Test
     public void gcTextbookIssueRecord() throws IOException {
@@ -1436,7 +1422,6 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 作业本征订
-     *
      */
     @Test
     public void gcWfExerciseBook() throws IOException {
@@ -1474,6 +1459,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 寝室维护
+     *
      * @throws IOException
      */
     @Test
@@ -1503,6 +1489,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 寝室维护
+     *
      * @throws IOException
      */
     @Test
@@ -1532,6 +1519,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 学生班级详细信息维护
+     *
      * @throws IOException
      */
     @Test
@@ -1558,8 +1546,10 @@ public class FreeMarkerGeneratorTest {
 
         apiGeneratorService.generateCodes(params);
     }
+
     /**
      * 寝室维护
+     *
      * @throws IOException
      */
     @Test
@@ -1589,6 +1579,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 教材领取人员
+     *
      * @throws IOException
      */
     @Test
@@ -1618,6 +1609,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 宿管员管理
+     *
      * @throws IOException
      */
     @Test
@@ -1644,8 +1636,10 @@ public class FreeMarkerGeneratorTest {
 
         apiGeneratorService.generateCodes(params);
     }
+
     /**
      * 宿管员管理
+     *
      * @throws IOException
      */
     @Test
@@ -1676,6 +1670,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 寝室干部任命(任命学生)
+     *
      * @throws IOException
      */
     @Test
@@ -1705,6 +1700,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 寝室申请
+     *
      * @throws IOException
      */
     @Test
@@ -1734,6 +1730,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 留校住宿申请
+     *
      * @throws IOException
      */
     @Test
@@ -1746,6 +1743,21 @@ public class FreeMarkerGeneratorTest {
         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);
+    }
+
     @Test
     public void gcRoomRule() throws IOException {
         List<TableConfig> tableConfigs = new ArrayList<>();
@@ -1783,6 +1795,7 @@ public class FreeMarkerGeneratorTest {
 
     /**
      * 查寝记录
+     *
      * @throws IOException
      */
     @Test
@@ -1819,5 +1832,44 @@ public class FreeMarkerGeneratorTest {
         apiGeneratorService.generateCodes(params);
     }
 
+    /**
+     * 退书申请
+     * @throws IOException
+     */
+    @Test
+    public void gcWfTextbookRecede() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("wf_textbook_recede");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        mainTable = new TableConfig();
+        mainTable.setTableName("wf_textbook_recede_item");//init_sql中的表名
+        mainTable.setIsMain(false);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        mainTable.setRelationField("wf_textbook_recede_id");//设置外键
+        mainTable.setRelationTableField(GlobalConstant.DEFAULT_PK);//设置外键
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("szs");//作者名称
+        params.setPackageName("textbook");//包名
+        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);
+    }
+
 
 }
+