Forráskód Böngészése

学校详情接口

大数据与最优化研究所 11 hónapja
szülő
commit
0d5241ceda
19 módosított fájl, 1409 hozzáadás és 31 törlés
  1. 126 0
      src/main/java/com/xjrsoft/module/base/controller/OdsZzxxgkjcsjController.java
  2. 108 0
      src/main/java/com/xjrsoft/module/base/dto/AddOdsZzxxgkjcsjDto.java
  3. 26 0
      src/main/java/com/xjrsoft/module/base/dto/OdsZzxxgkjcsjListDto.java
  4. 26 0
      src/main/java/com/xjrsoft/module/base/dto/OdsZzxxgkjcsjPageDto.java
  5. 32 0
      src/main/java/com/xjrsoft/module/base/dto/UpdateOdsZzxxgkjcsjDto.java
  6. 158 0
      src/main/java/com/xjrsoft/module/base/entity/OdsZzxxgkjcsj.java
  7. 17 0
      src/main/java/com/xjrsoft/module/base/mapper/OdsZzxxgkjcsjMapper.java
  8. 17 0
      src/main/java/com/xjrsoft/module/base/service/IOdsZzxxgkjcsjService.java
  9. 4 0
      src/main/java/com/xjrsoft/module/base/service/impl/BaseClassCourseServiceImpl.java
  10. 25 0
      src/main/java/com/xjrsoft/module/base/service/impl/OdsZzxxgkjcsjServiceImpl.java
  11. 188 0
      src/main/java/com/xjrsoft/module/base/vo/OdsZzxxgkjcsjListVo.java
  12. 188 0
      src/main/java/com/xjrsoft/module/base/vo/OdsZzxxgkjcsjPageVo.java
  13. 109 0
      src/main/java/com/xjrsoft/module/base/vo/OdsZzxxgkjcsjVo.java
  14. 0 8
      src/main/java/com/xjrsoft/module/textbook/controller/TextbookController.java
  15. 2 14
      src/main/java/com/xjrsoft/module/textbook/service/ITextbookService.java
  16. 0 6
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java
  17. 8 3
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookStudentClaimServiceImpl.java
  18. 350 0
      src/main/resources/sqlScript/textbook_sql.sql
  19. 25 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

+ 126 - 0
src/main/java/com/xjrsoft/module/base/controller/OdsZzxxgkjcsjController.java

@@ -0,0 +1,126 @@
+package com.xjrsoft.module.base.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.base.dto.AddOdsZzxxgkjcsjDto;
+import com.xjrsoft.module.base.dto.UpdateOdsZzxxgkjcsjDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.alibaba.excel.EasyExcel;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import org.springframework.http.ResponseEntity;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+
+import com.xjrsoft.module.base.dto.OdsZzxxgkjcsjListDto;
+import com.xjrsoft.module.base.entity.OdsZzxxgkjcsj;
+import com.xjrsoft.module.base.service.IOdsZzxxgkjcsjService;
+import com.xjrsoft.module.base.vo.OdsZzxxgkjcsjListVo;
+
+import com.xjrsoft.module.base.vo.OdsZzxxgkjcsjVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+* @title: 学校基本数据子类表
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/base" + "/odsZzxxgkjcsj")
+@Api(value = "/base"  + "/odsZzxxgkjcsj",tags = "学校基本数据子类表代码")
+@AllArgsConstructor
+public class OdsZzxxgkjcsjController {
+
+
+    private final IOdsZzxxgkjcsjService odsZzxxgkjcsjService;
+
+    @GetMapping(value = "/list")
+    @ApiOperation(value="学校基本数据子类表列表(不分页)")
+    @SaCheckPermission("odszzxxgkjcsj:detail")
+    public RT<List<OdsZzxxgkjcsjListVo>> list(@Valid OdsZzxxgkjcsjListDto dto){
+
+        LambdaQueryWrapper<OdsZzxxgkjcsj> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(OdsZzxxgkjcsj::getId)
+                    .select(OdsZzxxgkjcsj.class,x -> VoToColumnUtil.fieldsToColumns(OdsZzxxgkjcsjListVo.class).contains(x.getProperty()));
+
+        List<OdsZzxxgkjcsj> list = odsZzxxgkjcsjService.list(queryWrapper);
+        List<OdsZzxxgkjcsjListVo> listVos = BeanUtil.copyToList(list, OdsZzxxgkjcsjListVo.class);
+        return RT.ok(listVos);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询学校基本数据子类表信息")
+    @SaCheckPermission("odszzxxgkjcsj:detail")
+    public RT<OdsZzxxgkjcsjVo> info(@RequestParam Long id){
+        OdsZzxxgkjcsj odsZzxxgkjcsj = odsZzxxgkjcsjService.getById(id);
+        if (odsZzxxgkjcsj == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(odsZzxxgkjcsj, OdsZzxxgkjcsjVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增学校基本数据子类表")
+    @SaCheckPermission("odszzxxgkjcsj:add")
+    public RT<Boolean> add(@Valid @RequestBody AddOdsZzxxgkjcsjDto dto){
+        OdsZzxxgkjcsj odsZzxxgkjcsj = BeanUtil.toBean(dto, OdsZzxxgkjcsj.class);
+        boolean isSuccess = odsZzxxgkjcsjService.save(odsZzxxgkjcsj);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改学校基本数据子类表")
+    @SaCheckPermission("odszzxxgkjcsj:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateOdsZzxxgkjcsjDto dto){
+
+        OdsZzxxgkjcsj odsZzxxgkjcsj = BeanUtil.toBean(dto, OdsZzxxgkjcsj.class);
+        return RT.ok(odsZzxxgkjcsjService.updateById(odsZzxxgkjcsj));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除学校基本数据子类表")
+    @SaCheckPermission("odszzxxgkjcsj:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(odsZzxxgkjcsjService.removeBatchByIds(ids));
+
+    }
+    @PostMapping("/import")
+    @ApiOperation(value = "导入")
+    public RT<Boolean> importData(@RequestParam MultipartFile file) throws IOException {
+        List<OdsZzxxgkjcsjListVo> savedDataList = EasyExcel.read(file.getInputStream()).head(OdsZzxxgkjcsjListVo.class).sheet().doReadSync();
+        Boolean result = odsZzxxgkjcsjService.saveBatch(BeanUtil.copyToList(savedDataList, OdsZzxxgkjcsj.class));
+        return RT.ok(result);
+    }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "导出")
+    public ResponseEntity<byte[]> exportData(@Valid OdsZzxxgkjcsjListDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+        List<OdsZzxxgkjcsjListVo> customerList = (List<OdsZzxxgkjcsjListVo>) list(dto).getData();
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, OdsZzxxgkjcsjListVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "OdsZzxxgkjcsj" + ExcelTypeEnum.XLSX.getValue());
+    }
+}

+ 108 - 0
src/main/java/com/xjrsoft/module/base/dto/AddOdsZzxxgkjcsjDto.java

@@ -0,0 +1,108 @@
+package com.xjrsoft.module.base.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 学校基本数据子类表
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@Data
+public class AddOdsZzxxgkjcsjDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 学校名称
+    */
+    @ApiModelProperty("学校名称")
+    private String schoolName;
+    /**
+    * 学校代码
+    */
+    @ApiModelProperty("学校代码")
+    private String schoolCode;
+    /**
+    * 学校机构代码
+    */
+    @ApiModelProperty("学校机构代码")
+    private String schoolInstitutionCode;
+    /**
+    * 学校类别
+    */
+    @ApiModelProperty("学校类别")
+    private String schoolType;
+    /**
+    * 学校举办者名称
+    */
+    @ApiModelProperty("学校举办者名称")
+    private String organizerName;
+    /**
+    * 学校举办者性质
+    */
+    @ApiModelProperty("学校举办者性质")
+    private String schoolOrganizerNature;
+    /**
+    * 学校负责人姓名
+    */
+    @ApiModelProperty("学校负责人姓名")
+    private String superintendent;
+    /**
+    * 建校年月
+    */
+    @ApiModelProperty("建校年月")
+    private Date establishDate;
+    /**
+    * 学校所在地行政区域
+    */
+    @ApiModelProperty("学校所在地行政区域")
+    private String location;
+    /**
+    * 学校主管部门
+    */
+    @ApiModelProperty("学校主管部门")
+    private String supervisoryDepartment;
+    /**
+    * 学校园出口带宽
+    */
+    @ApiModelProperty("学校园出口带宽")
+    private String exitBandwidth;
+    /**
+    * 校园主干网带宽
+    */
+    @ApiModelProperty("校园主干网带宽")
+    private String backboneBandwidth;
+    /**
+    * 有线网络接入数
+    */
+    @ApiModelProperty("有线网络接入数")
+    private Integer wiredAccess;
+    /**
+    * 无线网络接入数
+    */
+    @ApiModelProperty("无线网络接入数")
+    private Integer wirelessAccess;
+    /**
+    * 多媒体教室数
+    */
+    @ApiModelProperty("多媒体教室数")
+    private Integer multimediaClassrooms;
+    /**
+    * 是否双优学校
+    */
+    @ApiModelProperty("是否双优学校")
+    private String isDoubleExcellence;
+
+}

+ 26 - 0
src/main/java/com/xjrsoft/module/base/dto/OdsZzxxgkjcsjListDto.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.base.dto;
+
+import com.xjrsoft.common.page.ListInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+* @title: 学校基本数据子类表列表查询入参
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OdsZzxxgkjcsjListDto extends ListInput {
+
+
+}

+ 26 - 0
src/main/java/com/xjrsoft/module/base/dto/OdsZzxxgkjcsjPageDto.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.base.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+* @title: 学校基本数据子类表分页查询入参
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OdsZzxxgkjcsjPageDto extends PageInput {
+
+
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/base/dto/UpdateOdsZzxxgkjcsjDto.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.base.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 学校基本数据子类表
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@Data
+public class UpdateOdsZzxxgkjcsjDto extends AddOdsZzxxgkjcsjDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+}

+ 158 - 0
src/main/java/com/xjrsoft/module/base/entity/OdsZzxxgkjcsj.java

@@ -0,0 +1,158 @@
+package com.xjrsoft.module.base.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 学校基本数据子类表
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@Data
+@TableName("ods_zzxxgkjcsj")
+@ApiModel(value = "ods_zzxxgkjcsj", description = "学校基本数据子类表")
+public class OdsZzxxgkjcsj 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 String schoolName;
+    /**
+    * 学校代码
+    */
+    @ApiModelProperty("学校代码")
+    private String schoolCode;
+    /**
+    * 学校机构代码
+    */
+    @ApiModelProperty("学校机构代码")
+    private String schoolInstitutionCode;
+    /**
+    * 学校类别
+    */
+    @ApiModelProperty("学校类别")
+    private String schoolType;
+    /**
+    * 学校举办者名称
+    */
+    @ApiModelProperty("学校举办者名称")
+    private String organizerName;
+    /**
+    * 学校举办者性质
+    */
+    @ApiModelProperty("学校举办者性质")
+    private String schoolOrganizerNature;
+    /**
+    * 学校负责人姓名
+    */
+    @ApiModelProperty("学校负责人姓名")
+    private String superintendent;
+    /**
+    * 建校年月
+    */
+    @ApiModelProperty("建校年月")
+    private Date establishDate;
+    /**
+    * 学校所在地行政区域
+    */
+    @ApiModelProperty("学校所在地行政区域")
+    private String location;
+    /**
+    * 学校主管部门
+    */
+    @ApiModelProperty("学校主管部门")
+    private String supervisoryDepartment;
+    /**
+    * 学校园出口带宽
+    */
+    @ApiModelProperty("学校园出口带宽")
+    private String exitBandwidth;
+    /**
+    * 校园主干网带宽
+    */
+    @ApiModelProperty("校园主干网带宽")
+    private String backboneBandwidth;
+    /**
+    * 有线网络接入数
+    */
+    @ApiModelProperty("有线网络接入数")
+    private Integer wiredAccess;
+    /**
+    * 无线网络接入数
+    */
+    @ApiModelProperty("无线网络接入数")
+    private Integer wirelessAccess;
+    /**
+    * 多媒体教室数
+    */
+    @ApiModelProperty("多媒体教室数")
+    private Integer multimediaClassrooms;
+    /**
+    * 是否双优学校
+    */
+    @ApiModelProperty("是否双优学校")
+    private String isDoubleExcellence;
+
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/base/mapper/OdsZzxxgkjcsjMapper.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.base.entity.OdsZzxxgkjcsj;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 学校基本数据子类表
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@Mapper
+public interface OdsZzxxgkjcsjMapper extends MPJBaseMapper<OdsZzxxgkjcsj> {
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/base/service/IOdsZzxxgkjcsjService.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.base.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.base.entity.OdsZzxxgkjcsj;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 学校基本数据子类表
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+
+public interface IOdsZzxxgkjcsjService extends MPJBaseService<OdsZzxxgkjcsj> {
+}

+ 4 - 0
src/main/java/com/xjrsoft/module/base/service/impl/BaseClassCourseServiceImpl.java

@@ -87,6 +87,10 @@ public class BaseClassCourseServiceImpl extends MPJBaseServiceImpl<BaseClassCour
 
         isSuccess = this.saveBatch(baseClassCourseList);
 
+
+        // 课程教材添加成功,添加领取状态
+
+
         return isSuccess;
         //baseClassCourseMapper.updateAddClassCourseTextbooks(classId, courseId, textbookId);
     }

+ 25 - 0
src/main/java/com/xjrsoft/module/base/service/impl/OdsZzxxgkjcsjServiceImpl.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.base.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.base.entity.OdsZzxxgkjcsj;
+import com.xjrsoft.module.base.mapper.OdsZzxxgkjcsjMapper;
+import com.xjrsoft.module.base.service.IOdsZzxxgkjcsjService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+/**
+* @title: 学校基本数据子类表
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class OdsZzxxgkjcsjServiceImpl extends MPJBaseServiceImpl<OdsZzxxgkjcsjMapper, OdsZzxxgkjcsj> implements IOdsZzxxgkjcsjService {
+}

+ 188 - 0
src/main/java/com/xjrsoft/module/base/vo/OdsZzxxgkjcsjListVo.java

@@ -0,0 +1,188 @@
+package com.xjrsoft.module.base.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import com.xjrsoft.common.annotation.Trans;
+import com.xjrsoft.common.enums.TransType;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* @title: 学校基本数据子类表列表列表入参
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@Data
+public class OdsZzxxgkjcsjListVo {
+
+    /**
+    * 
+    */
+    @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 String schoolName;
+    /**
+    * 学校代码
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校代码")
+    @ApiModelProperty("学校代码")
+    private String schoolCode;
+    /**
+    * 学校机构代码
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校机构代码")
+    @ApiModelProperty("学校机构代码")
+    private String schoolInstitutionCode;
+    /**
+    * 学校类别
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校类别")
+    @ApiModelProperty("学校类别")
+    private String schoolType;
+    /**
+    * 学校举办者名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校举办者名称")
+    @ApiModelProperty("学校举办者名称")
+    private String organizerName;
+    /**
+    * 学校举办者性质
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校举办者性质")
+    @ApiModelProperty("学校举办者性质")
+    private String schoolOrganizerNature;
+    /**
+    * 学校负责人姓名
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校负责人姓名")
+    @ApiModelProperty("学校负责人姓名")
+    private String superintendent;
+    /**
+    * 建校年月
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("建校年月")
+    @ApiModelProperty("建校年月")
+    private Date establishDate;
+    /**
+    * 学校所在地行政区域
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校所在地行政区域")
+    @ApiModelProperty("学校所在地行政区域")
+    private String location;
+    /**
+    * 学校主管部门
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校主管部门")
+    @ApiModelProperty("学校主管部门")
+    private String supervisoryDepartment;
+    /**
+    * 学校园出口带宽
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校园出口带宽")
+    @ApiModelProperty("学校园出口带宽")
+    private String exitBandwidth;
+    /**
+    * 校园主干网带宽
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("校园主干网带宽")
+    @ApiModelProperty("校园主干网带宽")
+    private String backboneBandwidth;
+    /**
+    * 有线网络接入数
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("有线网络接入数")
+    @ApiModelProperty("有线网络接入数")
+    private Integer wiredAccess;
+    /**
+    * 无线网络接入数
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("无线网络接入数")
+    @ApiModelProperty("无线网络接入数")
+    private Integer wirelessAccess;
+    /**
+    * 多媒体教室数
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("多媒体教室数")
+    @ApiModelProperty("多媒体教室数")
+    private Integer multimediaClassrooms;
+    /**
+    * 是否双优学校
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("是否双优学校")
+    @ApiModelProperty("是否双优学校")
+    private String isDoubleExcellence;
+
+}

+ 188 - 0
src/main/java/com/xjrsoft/module/base/vo/OdsZzxxgkjcsjPageVo.java

@@ -0,0 +1,188 @@
+package com.xjrsoft.module.base.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import com.xjrsoft.common.annotation.Trans;
+import com.xjrsoft.common.enums.TransType;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* @title: 学校基本数据子类表分页列表出参
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@Data
+public class OdsZzxxgkjcsjPageVo {
+
+    /**
+    * 
+    */
+    @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 String schoolName;
+    /**
+    * 学校代码
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校代码")
+    @ApiModelProperty("学校代码")
+    private String schoolCode;
+    /**
+    * 学校机构代码
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校机构代码")
+    @ApiModelProperty("学校机构代码")
+    private String schoolInstitutionCode;
+    /**
+    * 学校类别
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校类别")
+    @ApiModelProperty("学校类别")
+    private String schoolType;
+    /**
+    * 学校举办者名称
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校举办者名称")
+    @ApiModelProperty("学校举办者名称")
+    private String organizerName;
+    /**
+    * 学校举办者性质
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校举办者性质")
+    @ApiModelProperty("学校举办者性质")
+    private String schoolOrganizerNature;
+    /**
+    * 学校负责人姓名
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校负责人姓名")
+    @ApiModelProperty("学校负责人姓名")
+    private String superintendent;
+    /**
+    * 建校年月
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("建校年月")
+    @ApiModelProperty("建校年月")
+    private Date establishDate;
+    /**
+    * 学校所在地行政区域
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校所在地行政区域")
+    @ApiModelProperty("学校所在地行政区域")
+    private String location;
+    /**
+    * 学校主管部门
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校主管部门")
+    @ApiModelProperty("学校主管部门")
+    private String supervisoryDepartment;
+    /**
+    * 学校园出口带宽
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学校园出口带宽")
+    @ApiModelProperty("学校园出口带宽")
+    private String exitBandwidth;
+    /**
+    * 校园主干网带宽
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("校园主干网带宽")
+    @ApiModelProperty("校园主干网带宽")
+    private String backboneBandwidth;
+    /**
+    * 有线网络接入数
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("有线网络接入数")
+    @ApiModelProperty("有线网络接入数")
+    private Integer wiredAccess;
+    /**
+    * 无线网络接入数
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("无线网络接入数")
+    @ApiModelProperty("无线网络接入数")
+    private Integer wirelessAccess;
+    /**
+    * 多媒体教室数
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("多媒体教室数")
+    @ApiModelProperty("多媒体教室数")
+    private Integer multimediaClassrooms;
+    /**
+    * 是否双优学校
+    */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("是否双优学校")
+    @ApiModelProperty("是否双优学校")
+    private String isDoubleExcellence;
+
+}

+ 109 - 0
src/main/java/com/xjrsoft/module/base/vo/OdsZzxxgkjcsjVo.java

@@ -0,0 +1,109 @@
+package com.xjrsoft.module.base.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+/**
+* @title: 学校基本数据子类表表单出参
+* @Author dzx
+* @Date: 2024-12-12
+* @Version 1.0
+*/
+@Data
+public class OdsZzxxgkjcsjVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 学校名称
+    */
+    @ApiModelProperty("学校名称")
+    private String schoolName;
+    /**
+    * 学校代码
+    */
+    @ApiModelProperty("学校代码")
+    private String schoolCode;
+    /**
+    * 学校机构代码
+    */
+    @ApiModelProperty("学校机构代码")
+    private String schoolInstitutionCode;
+    /**
+    * 学校类别
+    */
+    @ApiModelProperty("学校类别")
+    private String schoolType;
+    /**
+    * 学校举办者名称
+    */
+    @ApiModelProperty("学校举办者名称")
+    private String organizerName;
+    /**
+    * 学校举办者性质
+    */
+    @ApiModelProperty("学校举办者性质")
+    private String schoolOrganizerNature;
+    /**
+    * 学校负责人姓名
+    */
+    @ApiModelProperty("学校负责人姓名")
+    private String superintendent;
+    /**
+    * 建校年月
+    */
+    @ApiModelProperty("建校年月")
+    private Date establishDate;
+    /**
+    * 学校所在地行政区域
+    */
+    @ApiModelProperty("学校所在地行政区域")
+    private String location;
+    /**
+    * 学校主管部门
+    */
+    @ApiModelProperty("学校主管部门")
+    private String supervisoryDepartment;
+    /**
+    * 学校园出口带宽
+    */
+    @ApiModelProperty("学校园出口带宽")
+    private String exitBandwidth;
+    /**
+    * 校园主干网带宽
+    */
+    @ApiModelProperty("校园主干网带宽")
+    private String backboneBandwidth;
+    /**
+    * 有线网络接入数
+    */
+    @ApiModelProperty("有线网络接入数")
+    private Integer wiredAccess;
+    /**
+    * 无线网络接入数
+    */
+    @ApiModelProperty("无线网络接入数")
+    private Integer wirelessAccess;
+    /**
+    * 多媒体教室数
+    */
+    @ApiModelProperty("多媒体教室数")
+    private Integer multimediaClassrooms;
+    /**
+    * 是否双优学校
+    */
+    @ApiModelProperty("是否双优学校")
+    private String isDoubleExcellence;
+
+
+
+}

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

@@ -4,18 +4,15 @@ 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.TextbookTypeEnum;
 import com.xjrsoft.common.model.result.R;
 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.base.entity.BaseClassCourse;
 import com.xjrsoft.module.base.entity.BaseCourseSubject;
 import com.xjrsoft.module.student.entity.BaseClassMajorSet;
 import com.xjrsoft.module.student.service.IBaseClassMajorSetService;
@@ -38,13 +35,9 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.text.ParseException;
-import java.text.ParsePosition;
 import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.ZoneId;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -63,7 +56,6 @@ public class TextbookController {
 
     private final ITextbookStudentClaimService textbookStudentClaimService;
 
-
     private final IBaseClassMajorSetService baseClassMajorSetService;
 
     @GetMapping(value = "/page")

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

@@ -3,22 +3,10 @@ package com.xjrsoft.module.textbook.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
-import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
-import com.xjrsoft.module.textbook.dto.TextbookClaimExportQueryDto;
-import com.xjrsoft.module.textbook.dto.TextbookPageDto;
-import com.xjrsoft.module.textbook.dto.TextbookStandingExportQuerytDto;
-import com.xjrsoft.module.textbook.dto.TextbookSubscriptionExportQueryDto;
-import com.xjrsoft.module.textbook.dto.TextbookSubscriptionListDto;
+import com.xjrsoft.module.textbook.dto.*;
 import com.xjrsoft.module.textbook.entity.Textbook;
 import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
-import com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo;
-import com.xjrsoft.module.textbook.vo.TextbookPageVo;
-import com.xjrsoft.module.textbook.vo.TextbookStandingExportQueryVo;
-import com.xjrsoft.module.textbook.vo.TextbookSubscriptionListVo;
-import com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo;
-import com.xjrsoft.module.textbook.vo.TextbookVo;
-import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo;
-import com.xjrsoft.module.textbook.vo.WfTextbookClaimListVo;
+import com.xjrsoft.module.textbook.vo.*;
 
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;

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

@@ -1,6 +1,5 @@
 package com.xjrsoft.module.textbook.service.impl;
 
-import camundajar.impl.scala.concurrent.impl.FutureConvertersImpl;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -32,12 +31,9 @@ import com.xjrsoft.module.base.entity.BaseCourseSubject;
 import com.xjrsoft.module.base.entity.BaseSemester;
 import com.xjrsoft.module.base.mapper.BaseClassCourseMapper;
 import com.xjrsoft.module.base.mapper.BaseCourseSubjectMapper;
-import com.xjrsoft.module.base.mapper.BaseMajorSetMapper;
 import com.xjrsoft.module.base.mapper.BaseSemesterMapper;
 import com.xjrsoft.module.base.service.IBaseClassService;
-import com.xjrsoft.module.student.entity.BaseClassMajorSet;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
-import com.xjrsoft.module.student.mapper.BaseClassMajorSetMapper;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.textbook.dto.*;
 import com.xjrsoft.module.textbook.entity.*;
@@ -96,7 +92,6 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
 
     private final TextbookCoreAttributeMapper textbookCoreAttributeMapper;
 
-    private final BaseClassMajorSetMapper baseClassMajorSetMapper;
     private final BaseClassCourseMapper baseClassCourseMapper;
 
     @Override
@@ -337,7 +332,6 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
         }
         return true;
     }*/
-
     /**
      * 添加作业本规则
      *

+ 8 - 3
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookStudentClaimServiceImpl.java

@@ -56,6 +56,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
     private final XjrUserMapper xjrUserMapper;
 
     private final TextbookStudentClaimMapper textbookStudentClaimMapper;
+
     private final IBaseSemesterService baseSemesterService;
 
     private final IBaseClassService baseClassService;
@@ -95,16 +96,20 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 .disableSubLogicDel()
                 .selectAs(BaseSemester::getName, TextbookStudentSemesterVo::getBaseSemesterIdCN)
                 .select(TextbookStudentClaim.class, x -> VoToColumnUtil.fieldsToColumns(TextbookStudentSemesterVo.class).contains(x.getProperty()))
-                .leftJoin(BaseSemester.class, BaseSemester::getId, TextbookStudentClaim::getBaseSemesterId)
+                .innerJoin(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) {
+        if (ObjectUtil.isNull(textbookStudentSemesterVoList) && textbookStudentSemesterVoList.isEmpty()) {
             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);
         }

+ 350 - 0
src/main/resources/sqlScript/textbook_sql.sql

@@ -0,0 +1,350 @@
+-- ----------------------------
+-- 2024-12-13 14:36
+-- 教材信息表
+-- ----------------------------
+DROP TABLE IF EXISTS textbook;
+CREATE TABLE `textbook`
+(
+    id                         bigint         not null comment '主键编号'
+    primary key,
+    create_user_id             bigint         null comment '创建人',
+    create_date                datetime       null comment '创建时间',
+    modify_user_id             bigint         null comment '修改人',
+    modify_date                datetime       null comment '修改时间',
+    delete_mark                int            not null comment '删除标记',
+    enabled_mark               int            not null comment '有效标志',
+    sort_code                  int            null comment '序号',
+    issn                       varchar(200)   null comment '国际标准刊号',
+    isbn                       varchar(200)   null comment '国际标准书号',
+    book_name                  varchar(200)   null comment '书名',
+    publishing_house           varchar(200)   null comment '出版社',
+    editor_in_chief            varchar(200)   null comment '主编',
+    subject_group_id           bigint         null comment '学科组管理编号(subject_group)',
+    base_semester_id           bigint         null comment '学期ID(base_semester)',
+    course_subject_id          bigint         null comment '课程编号(base_course_subject)',
+    grade_id                   bigint         null comment '入学年级(base_grade)',
+    version                    varchar(100)   null comment '版本',
+    is_textbook_plan           varchar(20)    null comment '是否为规划教材(xjr_dictionary_item[judgment_method_1])',
+    textbook_type              varchar(20)    null comment '教材分类(xjr_dictionary_item[textbook_type])',
+    specifications_models      varchar(100)   null comment '规格型号',
+    appraisal_price            decimal(10, 2) null comment '估价(元)',
+    price                      decimal(10, 2) null comment '定价(元)',
+    discount                   float          null comment '折扣',
+    subtotal                   decimal(10, 2) null comment '小计(元)',
+    stock                      int            null comment '库存',
+    textbook_core_attribute_id bigint         not null comment '教材核心信息管理id(textbook_core_attribute)',
+    use_type                   int            null comment '使用类型(单位:学期)',
+    publishing_date            datetime       null comment '出版日期',
+    is_secd                    int            null comment '是否校企合作开发教材',
+    category                   varchar(50)    null comment '分类号',
+    plan_batch                 varchar(50)    null comment '规划批次',
+    work_total_count           int            null comment '编著作总数',
+    textbook_category          varchar(30)    null comment '教材类型'
+    )
+    comment '教材管理';
+
+create table if not exists tl.textbook_claim_user
+(
+    id                   bigint        not null comment '主键编号'
+    primary key,
+    create_user_id       bigint        null comment '创建人',
+    create_date          datetime      null comment '创建时间',
+    modify_user_id       bigint        null comment '修改人',
+    modify_date          datetime      null comment '修改时间',
+    delete_mark          int           not null comment '删除标记',
+    enabled_mark         int           not null comment '有效标志',
+    sort_code            int           null comment '序号',
+    wf_textbook_claim_id bigint        null comment '教材申领编号',
+    user_id              bigint        null comment '用户编号',
+    user_type            int default 2 null comment '用户类型(1:学生 2=教师)'
+)
+    comment '教材领取人员';
+
+create table if not exists tl.textbook_class_relation
+(
+    id             bigint   not null comment '主键编号'
+    primary key,
+    create_user_id bigint   null comment '创建人',
+    create_date    datetime null comment '创建时间',
+    modify_user_id bigint   null comment '修改人',
+    modify_date    datetime null comment '修改时间',
+    delete_mark    int      not null comment '删除标记',
+    enabled_mark   int      not null comment '有效标志',
+    sort_code      int      null comment '序号',
+    textbook_id    bigint   null comment '教材管理编号',
+    class_id       bigint   null comment '班级编号'
+)
+    comment '教材班级引用';
+
+create table if not exists tl.textbook_core_attribute
+(
+    id               bigint       not null comment '主键编号'
+    primary key,
+    create_user_id   bigint       null comment '创建人',
+    create_date      datetime     null comment '创建时间',
+    modify_user_id   bigint       null comment '修改人',
+    modify_date      datetime     null comment '修改时间',
+    delete_mark      int          not null comment '删除标记',
+    enabled_mark     int          not null comment '有效标志',
+    sort_code        int          null comment '序号',
+    issn             varchar(200) null comment '国际标准刊号',
+    isbn             varchar(200) null comment '国际标准书号',
+    book_name        varchar(200) null comment '书名',
+    publishing_house varchar(200) null comment '出版社',
+    editor_in_chief  varchar(200) null comment '主编'
+    )
+    comment '教材核心信息管理';
+
+create table if not exists tl.textbook_issue_record
+(
+    id               bigint        not null comment '主键编号'
+    primary key,
+    create_user_id   bigint        null comment '创建人',
+    create_date      datetime      null comment '创建时间',
+    modify_user_id   bigint        null comment '修改人',
+    modify_date      datetime      null comment '修改时间',
+    delete_mark      int           not null comment '删除标记',
+    enabled_mark     int           not null comment '有效标志',
+    sort_code        int           null comment '序号',
+    textbook_id      bigint        null comment '教材管理编号',
+    data_id          bigint        null comment '数据编号(根据出库方式,编号来自不同数据表)',
+    data_item_id     bigint        null comment '数据项项编号(根据出库方式,编号来自不同数据表)',
+    issue_number     int           null comment '出库数量',
+    remaining_number int           null comment '剩余数量',
+    receive_user_id  bigint        null comment '领取用户编号',
+    issue_user_id    bigint        null comment '出库用户编号',
+    issue_mode       varchar(20)   null comment '出库方式(xjr_dictionary_item[issue_mode])',
+    remark           varchar(1000) null comment '备注'
+    )
+    comment '教材出库记录';
+
+create table if not exists tl.textbook_student_claim
+(
+    id               bigint        not null comment '主键编号'
+    primary key,
+    create_user_id   bigint        null comment '创建人',
+    create_date      datetime      null comment '创建时间',
+    modify_user_id   bigint        null comment '修改人',
+    modify_date      datetime      null comment '修改时间',
+    delete_mark      int           not null comment '删除标记',
+    enabled_mark     int           not null comment '有效标志',
+    sort_code        int           null comment '序号',
+    base_semester_id bigint        null comment '学期ID(base_semester)',
+    class_id         bigint        null comment '班级编号',
+    student_user_id  bigint        null comment '学生用户编号',
+    textbook_id      bigint        null comment '教材管理编号',
+    is_claim         int default 0 not null comment '是否领取(1:已领取 0:未领取)',
+    remark           varchar(1000) null comment '备注'
+    )
+    comment '学生教材认领记录';
+
+create table if not exists tl.textbook_subscription_record
+(
+    id                               bigint   not null comment '主键编号'
+    primary key,
+    create_user_id                   bigint   null comment '创建人',
+    create_date                      datetime null comment '创建时间',
+    modify_user_id                   bigint   null comment '修改人',
+    modify_date                      datetime null comment '修改时间',
+    delete_mark                      int      not null comment '删除标记',
+    enabled_mark                     int      not null comment '有效标志',
+    sort_code                        int      null comment '序号',
+    textbook_id                      bigint   null comment '教材管理编号',
+    wf_textbook_subscription_id      bigint   null comment '教材教辅征订编号',
+    wf_textbook_subscription_item_id bigint   null comment '教材教辅征订项编号'
+)
+    comment '教材征订记录';
+
+create table if not exists tl.textbook_warehouse_record
+(
+    id               bigint         not null comment '主键编号'
+    primary key,
+    create_user_id   bigint         null comment '创建人',
+    create_date      datetime       null comment '创建时间',
+    modify_user_id   bigint         null comment '修改人',
+    modify_date      datetime       null comment '修改时间',
+    delete_mark      int            not null comment '删除标记',
+    enabled_mark     int            not null comment '有效标志',
+    sort_code        int            null comment '序号',
+    textbook_id      bigint         null comment '教材管理编号',
+    data_id          bigint         null comment '数据编号(根据入库方式,编号来自不同数据表)',
+    data_item_id     bigint         null comment '数据项项编号(根据入库方式,编号来自不同数据表)',
+    warehouse_number int            null comment '入库数量',
+    source           varchar(200)   null comment '来源',
+    price            decimal(10, 2) null comment '定价(元)',
+    discount         float          null comment '折扣',
+    subtotal         decimal(10, 2) null comment '小计(元)',
+    total_price      decimal(10, 2) null comment '总价(元)',
+    warehouse_mode   varchar(20)    null comment '入库方式(xjr_dictionary_item[warehouse_mode])',
+    remark           varchar(1000)  null comment '备注'
+    )
+    comment '教材入库记录';
+
+create table if not exists tl.wf_textbook_claim
+(
+    id                bigint        not null comment '主键编号'
+    primary key,
+    create_user_id    bigint        null comment '创建人',
+    create_date       datetime      null comment '创建时间',
+    modify_user_id    bigint        null comment '修改人',
+    modify_date       datetime      null comment '修改时间',
+    delete_mark       int           not null comment '删除标记',
+    enabled_mark      int           not null comment '有效标志',
+    sort_code         int           null comment '序号',
+    applicant_user_id bigint        null comment '申请人',
+    class_id          bigint        null comment '班级编号',
+    base_semester_id  bigint        null comment '学期ID(base_semester)',
+    student_user_id   bigint        null comment '学生编号',
+    claim_address     varchar(1000) null comment '领取地点',
+    claim_type        varchar(20)   null comment '申领类型(xjr_dictionary_item[claim_type])',
+    receive_user_id   varchar(1000) null comment '代领取人',
+    claim_user_id     bigint        null comment '领取用户编号(申请人帮领取人申请去领取)',
+    status            int default 0 not null comment '状态(1:结束 0:未结束)',
+    textbook_type     varchar(20)   null comment '教材分类(xjr_dictionary_item[textbook_type])'
+    )
+    comment '教材申领';
+
+create table if not exists tl.wf_textbook_claim_item
+(
+    id                   bigint        not null comment '主键编号'
+    primary key,
+    create_user_id       bigint        null comment '创建人',
+    create_date          datetime      null comment '创建时间',
+    modify_user_id       bigint        null comment '修改人',
+    modify_date          datetime      null comment '修改时间',
+    delete_mark          int           not null comment '删除标记',
+    enabled_mark         int           not null comment '有效标志',
+    sort_code            int           null comment '序号',
+    wf_textbook_claim_id bigint        null comment '教材申领编号',
+    textbook_id          bigint        null comment '教材管理编号',
+    applicant_number     int default 0 null comment '申请数量',
+    issue_number         int default 0 null comment '已发放数量'
+)
+    comment '教材申领项';
+
+create table if not exists tl.wf_textbook_recede
+(
+    id                bigint        not null comment '主键编号'
+    primary key,
+    create_user_id    bigint        null comment '创建人',
+    create_date       datetime      null comment '创建时间',
+    modify_user_id    bigint        null comment '修改人',
+    modify_date       datetime      null comment '修改时间',
+    delete_mark       int           not null comment '删除标记',
+    enabled_mark      int           not null comment '有效标志',
+    sort_code         int           null comment '序号',
+    applicant_user_id bigint        null comment '申请人',
+    base_semester_id  bigint        null comment '学期ID(base_semester)',
+    class_id          bigint        null comment '班级编号',
+    recede_type       varchar(20)   null comment '退书类型(xjr_dictionary_item[recede_type])',
+    recede_address    varchar(1000) null comment '退还地点',
+    status            int default 0 not null comment '状态(1:结束 0:未结束)'
+    )
+    comment '退书申请';
+
+create table if not exists tl.wf_textbook_recede_item
+(
+    id                    bigint   not null comment '主键编号'
+    primary key,
+    create_user_id        bigint   null comment '创建人',
+    create_date           datetime null comment '创建时间',
+    modify_user_id        bigint   null comment '修改人',
+    modify_date           datetime null comment '修改时间',
+    delete_mark           int      not null comment '删除标记',
+    enabled_mark          int      not null comment '有效标志',
+    sort_code             int      null comment '序号',
+    wf_textbook_recede_id bigint   null comment '退书申请编号',
+    textbook_id           bigint   null comment '教材管理编号',
+    number                int      null comment '数量'
+)
+    comment '退书申请项';
+
+create table if not exists tl.wf_textbook_subscription
+(
+    id                  bigint        not null comment '主键编号'
+    primary key,
+    create_user_id      bigint        null comment '创建人',
+    create_date         datetime      null comment '创建时间',
+    modify_user_id      bigint        null comment '修改人',
+    modify_date         datetime      null comment '修改时间',
+    delete_mark         int           not null comment '删除标记',
+    enabled_mark        int           not null comment '有效标志',
+    sort_code           int           null comment '序号',
+    applicant_user_id   bigint        null comment '申请人',
+    dept_id             bigint        null comment '所在部门编号',
+    base_semester_id    bigint        null comment '学期ID(base_semester)',
+    subject_group_id    bigint        null comment '学科组管理编号(subject_group)',
+    remark              varchar(1000) null comment '备注',
+    status              int default 0 not null comment '状态(1:结束 0:未结束)',
+    subscription_method int           null comment '征订方式(1:按班级征订 2:按教材征订)'
+    )
+    comment '教材教辅征订';
+
+create table if not exists tl.wf_textbook_subscription_item
+(
+    id                          bigint         not null comment '主键编号'
+    primary key,
+    create_user_id              bigint         null comment '创建人',
+    create_date                 datetime       null comment '创建时间',
+    modify_user_id              bigint         null comment '修改人',
+    modify_date                 datetime       null comment '修改时间',
+    delete_mark                 int            not null comment '删除标记',
+    enabled_mark                int            not null comment '有效标志',
+    sort_code                   int            null comment '序号',
+    wf_textbook_subscription_id bigint         null comment '教材教辅征订编号',
+    subscription_type           varchar(20)    null comment '征订类型(xjr_dictionary_item[subscription_type])',
+    issn                        varchar(200)   null comment '国际标准刊号',
+    isbn                        varchar(200)   null comment '国际标准书号',
+    book_name                   varchar(200)   null comment '书名',
+    publishing_house            varchar(200)   null comment '出版社',
+    editor_in_chief             varchar(200)   null comment '主编',
+    appraisal_price             decimal(10, 2) null comment '估价(元)',
+    is_textbook_plan            varchar(20)    null comment '是否为规划教材(xjr_dictionary_item[judgment_method_1])',
+    course_subject_id           bigint         null comment '课程编号(base_course_subject)',
+    class_ids                   varchar(1000)  null comment '班级编号(多个)',
+    student_subscription_number int            null comment '学生用书征订数量',
+    teacher_subscription_number int            null comment '教师教材征订数量',
+    teacher_reference_number    int            null comment '教师教参用书征订数量',
+    is_support_resources        varchar(20)    null comment '是否有配套教学资源(xjr_dictionary_item[judgment_method_1])',
+    version                     varchar(100)   null comment '版本',
+    textbook_id                 bigint         null comment '教材id',
+    in_stockroom_num            int default 0  null comment '当前征订任务征订项已经入库数量',
+    alteration_type             int default 0  null comment '变更类型(0:未变更,1:变更征订数量,2:变更课程)'
+    )
+    comment '教材教辅征订项';
+
+create table if not exists tl.wf_textbook_subscription_item_history
+(
+    id                               bigint         not null comment '主键编号'
+    primary key,
+    create_user_id                   bigint         null comment '创建人',
+    create_date                      datetime       null comment '创建时间',
+    modify_user_id                   bigint         null comment '修改人',
+    modify_date                      datetime       null comment '修改时间',
+    delete_mark                      int            not null comment '删除标记',
+    enabled_mark                     int            not null comment '有效标志',
+    sort_code                        int            null comment '序号',
+    wf_textbook_subscription_item_id bigint         null comment '教材教辅征订项编号',
+    wf_textbook_subscription_id      bigint         null comment '教材教辅征订编号',
+    subscription_type                varchar(20)    null comment '征订类型(xjr_dictionary_item[subscription_type])',
+    issn                             varchar(200)   null comment '国际标准刊号',
+    isbn                             varchar(200)   null comment '国际标准书号',
+    book_name                        varchar(200)   null comment '书名',
+    publishing_house                 varchar(200)   null comment '出版社',
+    editor_in_chief                  varchar(200)   null comment '主编',
+    appraisal_price                  decimal(10, 2) null comment '估价(元)',
+    is_textbook_plan                 varchar(20)    null comment '是否为规划教材(xjr_dictionary_item[judgment_method_1])',
+    course_subject_id                bigint         null comment '课程编号(base_course_subject)',
+    class_ids                        varchar(1000)  null comment '班级编号(多个)',
+    student_subscription_number      int            null comment '学生用书征订数量',
+    teacher_subscription_number      int            null comment '教师教材征订数量',
+    teacher_reference_number         int            null comment '教师教参用书征订数量',
+    is_support_resources             varchar(20)    null comment '是否有配套教学资源(xjr_dictionary_item[judgment_method_1])',
+    version                          varchar(100)   null comment '版本',
+    textbook_id                      bigint         null comment '教材id',
+    in_stockroom_num                 int default 0  null comment '当前征订任务征订项已经入库数量',
+    alteration_type                  int default 0  null comment '变更类型(0:未变更,1:变更征订数量,2:变更课程)',
+    history_version                  int default 1  null comment '当前征订任务征订项已经入库数量'
+    )
+    comment '教材教辅征订项变更历史';
+

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

@@ -4037,4 +4037,29 @@ public class FreeMarkerGeneratorTest {
 
         apiGeneratorService.generateCodes(params);
     }
+
+    @Test
+    public void gcOdsZzxxgkjcsj() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("ods_zzxxgkjcsj");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("dzx");//作者名称
+        params.setPackageName("base");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(false);//是否生成分页接口
+        params.setImport(true);//是否生成导入接口
+        params.setExport(true);//是否生成导出接口
+        params.setOutMainDir(false);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
 }