Kaynağa Gözat

教材征订变更

大数据与最优化研究所 8 ay önce
ebeveyn
işleme
6c95c2d557
21 değiştirilmiş dosya ile 1033 ekleme ve 23 silme
  1. 8 0
      src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookSubscriptionController.java
  2. 114 0
      src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookSubscriptionItemHistoryController.java
  3. 10 1
      src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookSubscriptionItemDto.java
  4. 138 0
      src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookSubscriptionItemHistoryDto.java
  5. 24 0
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfTextbookSubscriptionItemDto.java
  6. 23 0
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfTextbookSubscriptionItemHistoryDto.java
  7. 30 0
      src/main/java/com/xjrsoft/module/textbook/dto/WfTextbookSubscriptionItemHistoryPageDto.java
  8. 6 1
      src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookSubscriptionItem.java
  9. 188 0
      src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookSubscriptionItemHistory.java
  10. 16 0
      src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookSubscriptionItemHistoryMapper.java
  11. 14 0
      src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookSubscriptionItemHistoryService.java
  12. 6 6
      src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookSubscriptionService.java
  13. 19 0
      src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookSubscriptionItemHistoryServiceImpl.java
  14. 50 9
      src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookSubscriptionServiceImpl.java
  15. 18 4
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookInstockroomListVo.java
  16. 154 0
      src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionItemHistoryPageVo.java
  17. 139 0
      src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionItemHistoryVo.java
  18. 5 1
      src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionItemVo.java
  19. 46 0
      src/main/resources/sqlScript/20240620_sql.sql
  20. 25 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java
  21. 0 1
      src/test/java/com/xjrsoft/xjrsoftboot/log.log

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

@@ -210,6 +210,14 @@ public class WfTextbookSubscriptionController {
 
     }
 
+    @PutMapping("/alteration")
+    @ApiOperation(value = "变更")
+    @SaCheckPermission("wftextbooksubscription:edit")
+    public RT<Boolean> alteration(@Valid @RequestBody UpdateWfTextbookSubscriptionItemDto dto){
+        return RT.ok(wfTextbookSubscriptionService.alteration(dto));
+    }
+
+
     @PutMapping(value = "/change-status")
     @ApiOperation(value = "修改教材教辅征订状态")
     @SaCheckPermission("wftextbooksubscription:edit")

+ 114 - 0
src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookSubscriptionItemHistoryController.java

@@ -0,0 +1,114 @@
+package com.xjrsoft.module.textbook.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+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.entity.BaseCourseSubject;
+import com.xjrsoft.module.system.entity.DictionaryDetail;
+import com.xjrsoft.module.teacher.entity.XjrUser;
+import com.xjrsoft.module.textbook.dto.AddWfTextbookSubscriptionItemHistoryDto;
+import com.xjrsoft.module.textbook.dto.UpdateWfTextbookSubscriptionItemHistoryDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+import com.xjrsoft.module.textbook.dto.WfTextbookSubscriptionItemHistoryPageDto;
+import com.xjrsoft.module.textbook.entity.Textbook;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItemHistory;
+import com.xjrsoft.module.textbook.service.IWfTextbookSubscriptionItemHistoryService;
+import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionItemHistoryPageVo;
+
+import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionItemHistoryVo;
+import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionItemVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+* @title: 教材教辅征订项变更历史
+* @Author phoenix
+* @Date: 2024-06-20
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/student" + "/wfTextbookSubscriptionItemHistory")
+@Api(value = "/student"  + "/wfTextbookSubscriptionItemHistory",tags = "教材教辅征订项变更历史代码")
+@AllArgsConstructor
+public class WfTextbookSubscriptionItemHistoryController {
+
+
+    private final IWfTextbookSubscriptionItemHistoryService wfTextbookSubscriptionItemHistoryService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="教材教辅征订项变更历史列表(分页)")
+    @SaCheckPermission("wftextbooksubscriptionitemhistory:detail")
+    public RT<PageOutput<WfTextbookSubscriptionItemHistoryPageVo>> page(@Valid WfTextbookSubscriptionItemHistoryPageDto dto){
+
+        MPJLambdaWrapper<WfTextbookSubscriptionItemHistory> mpjLambdaWrapper = new MPJLambdaWrapper<>();
+        mpjLambdaWrapper
+                .select(WfTextbookSubscriptionItemHistory::getId)
+                .selectAs(BaseCourseSubject::getName, WfTextbookSubscriptionItemHistoryPageVo::getCourseName)
+                .selectAs(XjrUser::getName, WfTextbookSubscriptionItemHistoryPageVo::getCreateUserIdCn)
+                .select(WfTextbookSubscriptionItemHistory.class, x -> VoToColumnUtil.fieldsToColumns(WfTextbookSubscriptionItemHistoryPageVo.class).contains(x.getProperty()))
+                .select(Textbook.class, x -> VoToColumnUtil.fieldsToColumns(WfTextbookSubscriptionItemHistoryPageVo.class).contains(x.getProperty()))
+                .leftJoin(Textbook.class, Textbook::getId, WfTextbookSubscriptionItemHistory::getTextbookId)
+//                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, Textbook::getTextbookType,
+//                        ext -> ext.selectAs(DictionaryDetail::getName, WfTextbookSubscriptionItemHistoryPageVo::getTextbookTypeCn))
+                .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, Textbook::getCourseSubjectId)
+                .leftJoin(XjrUser.class, XjrUser::getId, WfTextbookSubscriptionItemHistory::getCreateUserId)
+                .eq(WfTextbookSubscriptionItemHistory::getWfTextbookSubscriptionItemId, dto.getWfTextbookSubscriptionItemId())
+                .orderByAsc(WfTextbookSubscriptionItemHistory::getHistoryVersion)
+                ;
+        IPage<WfTextbookSubscriptionItemHistoryPageVo> page = wfTextbookSubscriptionItemHistoryService.selectJoinListPage(ConventPage.getPage(dto), WfTextbookSubscriptionItemHistoryPageVo.class, mpjLambdaWrapper);
+        PageOutput<WfTextbookSubscriptionItemHistoryPageVo> pageOutput = ConventPage.getPageOutput(page, WfTextbookSubscriptionItemHistoryPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询教材教辅征订项变更历史信息")
+    @SaCheckPermission("wftextbooksubscriptionitemhistory:detail")
+    public RT<WfTextbookSubscriptionItemHistoryVo> info(@RequestParam Long id){
+        WfTextbookSubscriptionItemHistory wfTextbookSubscriptionItemHistory = wfTextbookSubscriptionItemHistoryService.getById(id);
+        if (wfTextbookSubscriptionItemHistory == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(wfTextbookSubscriptionItemHistory, WfTextbookSubscriptionItemHistoryVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增教材教辅征订项变更历史")
+    @SaCheckPermission("wftextbooksubscriptionitemhistory:add")
+    public RT<Boolean> add(@Valid @RequestBody AddWfTextbookSubscriptionItemHistoryDto dto){
+        WfTextbookSubscriptionItemHistory wfTextbookSubscriptionItemHistory = BeanUtil.toBean(dto, WfTextbookSubscriptionItemHistory.class);
+        boolean isSuccess = wfTextbookSubscriptionItemHistoryService.save(wfTextbookSubscriptionItemHistory);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改教材教辅征订项变更历史")
+    @SaCheckPermission("wftextbooksubscriptionitemhistory:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateWfTextbookSubscriptionItemHistoryDto dto){
+
+        WfTextbookSubscriptionItemHistory wfTextbookSubscriptionItemHistory = BeanUtil.toBean(dto, WfTextbookSubscriptionItemHistory.class);
+        return RT.ok(wfTextbookSubscriptionItemHistoryService.updateById(wfTextbookSubscriptionItemHistory));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除教材教辅征订项变更历史")
+    @SaCheckPermission("wftextbooksubscriptionitemhistory:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(wfTextbookSubscriptionItemHistoryService.removeBatchByIds(ids));
+
+    }
+
+}

+ 10 - 1
src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookSubscriptionItemDto.java

@@ -109,5 +109,14 @@ public class AddWfTextbookSubscriptionItemDto implements Serializable {
     */
     @ApiModelProperty("版本")
     private String version;
-
+    /**
+     * 已入库数量
+     */
+    @ApiModelProperty("已入库数量")
+    private Integer inStockroomNum;
+    /**
+     * 变更类型(0:未变更,1:变更征订数量,2:变更课程)
+     */
+    @ApiModelProperty("变更类型(0:未变更,1:变更征订数量,2:变更课程)")
+    private Integer alterationType;
 }

+ 138 - 0
src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookSubscriptionItemHistoryDto.java

@@ -0,0 +1,138 @@
+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 phoenix
+* @Date: 2024-06-20
+* @Version 1.0
+*/
+@Data
+public class AddWfTextbookSubscriptionItemHistoryDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 教材教辅征订项编号
+    */
+    @ApiModelProperty("教材教辅征订项编号")
+    private Long wfTextbookSubscriptionItemId;
+    /**
+    * 教材教辅征订编号
+    */
+    @ApiModelProperty("教材教辅征订编号")
+    private Long wfTextbookSubscriptionId;
+    /**
+    * 征订类型(xjr_dictionary_item[subscription_type])
+    */
+    @ApiModelProperty("征订类型(xjr_dictionary_item[subscription_type])")
+    private String subscriptionType;
+    /**
+    * 国际标准刊号
+    */
+    @ApiModelProperty("国际标准刊号")
+    private String issn;
+    /**
+    * 国际标准书号
+    */
+    @ApiModelProperty("国际标准书号")
+    private String isbn;
+    /**
+    * 书名
+    */
+    @ApiModelProperty("书名")
+    private String bookName;
+    /**
+    * 出版社
+    */
+    @ApiModelProperty("出版社")
+    private String publishingHouse;
+    /**
+    * 主编
+    */
+    @ApiModelProperty("主编")
+    private String editorInChief;
+    /**
+    * 估价(元)
+    */
+    @ApiModelProperty("估价(元)")
+    private BigDecimal appraisalPrice;
+    /**
+    * 是否为规划教材(xjr_dictionary_item[judgment_method_1])
+    */
+    @ApiModelProperty("是否为规划教材(xjr_dictionary_item[judgment_method_1])")
+    private String isTextbookPlan;
+    /**
+    * 课程编号(base_course_subject)
+    */
+    @ApiModelProperty("课程编号(base_course_subject)")
+    private Long courseSubjectId;
+    /**
+    * 班级编号(多个)
+    */
+    @ApiModelProperty("班级编号(多个)")
+    private String classIds;
+    /**
+    * 学生用书征订数量
+    */
+    @ApiModelProperty("学生用书征订数量")
+    private Integer studentSubscriptionNumber;
+    /**
+    * 教师教材征订数量
+    */
+    @ApiModelProperty("教师教材征订数量")
+    private Integer teacherSubscriptionNumber;
+    /**
+    * 教师教参用书征订数量
+    */
+    @ApiModelProperty("教师教参用书征订数量")
+    private Integer teacherReferenceNumber;
+    /**
+    * 是否有配套教学资源(xjr_dictionary_item[judgment_method_1])
+    */
+    @ApiModelProperty("是否有配套教学资源(xjr_dictionary_item[judgment_method_1])")
+    private String isSupportResources;
+    /**
+    * 版本
+    */
+    @ApiModelProperty("版本")
+    private String version;
+    /**
+    * 教材id
+    */
+    @ApiModelProperty("教材id")
+    private Long textbookId;
+    /**
+    * 当前征订任务征订项已经入库数量
+    */
+    @ApiModelProperty("当前征订任务征订项已经入库数量")
+    private Integer inStockroomNum;
+    /**
+    * 变更类型(0:未变更,1:变更征订数量,2:变更课程)
+    */
+    @ApiModelProperty("变更类型(0:未变更,1:变更征订数量,2:变更课程)")
+    private Integer alterationType;
+    /**
+    * 当前征订任务征订项已经入库数量
+    */
+    @ApiModelProperty("当前征订任务征订项已经入库数量")
+    private Integer historyVersion;
+
+}

+ 24 - 0
src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfTextbookSubscriptionItemDto.java

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.textbook.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+
+/**
+* @title: 教材教辅征订项
+* @Author szs
+* @Date: 2024-06-04
+* @Version 1.0
+*/
+@Data
+public class UpdateWfTextbookSubscriptionItemDto extends AddWfTextbookSubscriptionItemDto {
+    /**
+     * 主键编号
+     */
+    @ApiModelProperty("主键编号")
+    private Long id;
+
+}

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

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.textbook.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+* @title: 教材教辅征订项变更历史
+* @Author phoenix
+* @Date: 2024-06-20
+* @Version 1.0
+*/
+@Data
+public class UpdateWfTextbookSubscriptionItemHistoryDto extends AddWfTextbookSubscriptionItemHistoryDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 30 - 0
src/main/java/com/xjrsoft/module/textbook/dto/WfTextbookSubscriptionItemHistoryPageDto.java

@@ -0,0 +1,30 @@
+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 phoenix
+* @Date: 2024-06-20
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class WfTextbookSubscriptionItemHistoryPageDto extends PageInput {
+    /**
+     * 教材教辅征订项编号
+     */
+    @ApiModelProperty("教材教辅征订项编号")
+    private Long wfTextbookSubscriptionItemId;
+
+}

+ 6 - 1
src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookSubscriptionItem.java

@@ -165,5 +165,10 @@ public class WfTextbookSubscriptionItem implements Serializable {
      * 已入库数量
      */
     @ApiModelProperty("已入库数量")
-    private Integer instockroomNum;
+    private Integer inStockroomNum;
+    /**
+     * 变更类型(0:未变更,1:变更征订数量,2:变更课程)
+     */
+    @ApiModelProperty("变更类型(0:未变更,1:变更征订数量,2:变更课程)")
+    private Integer alterationType;
 }

+ 188 - 0
src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookSubscriptionItemHistory.java

@@ -0,0 +1,188 @@
+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 phoenix
+* @Date: 2024-06-20
+* @Version 1.0
+*/
+@Data
+@TableName("wf_textbook_subscription_item_history")
+@ApiModel(value = "wf_textbook_subscription_item_history", description = "教材教辅征订项变更历史")
+public class WfTextbookSubscriptionItemHistory 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 wfTextbookSubscriptionItemId;
+    /**
+    * 教材教辅征订编号
+    */
+    @ApiModelProperty("教材教辅征订编号")
+    private Long wfTextbookSubscriptionId;
+    /**
+    * 征订类型(xjr_dictionary_item[subscription_type])
+    */
+    @ApiModelProperty("征订类型(xjr_dictionary_item[subscription_type])")
+    private String subscriptionType;
+    /**
+    * 国际标准刊号
+    */
+    @ApiModelProperty("国际标准刊号")
+    private String issn;
+    /**
+    * 国际标准书号
+    */
+    @ApiModelProperty("国际标准书号")
+    private String isbn;
+    /**
+    * 书名
+    */
+    @ApiModelProperty("书名")
+    private String bookName;
+    /**
+    * 出版社
+    */
+    @ApiModelProperty("出版社")
+    private String publishingHouse;
+    /**
+    * 主编
+    */
+    @ApiModelProperty("主编")
+    private String editorInChief;
+    /**
+    * 估价(元)
+    */
+    @ApiModelProperty("估价(元)")
+    private BigDecimal appraisalPrice;
+    /**
+    * 是否为规划教材(xjr_dictionary_item[judgment_method_1])
+    */
+    @ApiModelProperty("是否为规划教材(xjr_dictionary_item[judgment_method_1])")
+    private String isTextbookPlan;
+    /**
+    * 课程编号(base_course_subject)
+    */
+    @ApiModelProperty("课程编号(base_course_subject)")
+    private Long courseSubjectId;
+    /**
+    * 班级编号(多个)
+    */
+    @ApiModelProperty("班级编号(多个)")
+    private String classIds;
+    /**
+    * 学生用书征订数量
+    */
+    @ApiModelProperty("学生用书征订数量")
+    private Integer studentSubscriptionNumber;
+    /**
+    * 教师教材征订数量
+    */
+    @ApiModelProperty("教师教材征订数量")
+    private Integer teacherSubscriptionNumber;
+    /**
+    * 教师教参用书征订数量
+    */
+    @ApiModelProperty("教师教参用书征订数量")
+    private Integer teacherReferenceNumber;
+    /**
+    * 是否有配套教学资源(xjr_dictionary_item[judgment_method_1])
+    */
+    @ApiModelProperty("是否有配套教学资源(xjr_dictionary_item[judgment_method_1])")
+    private String isSupportResources;
+    /**
+    * 版本
+    */
+    @ApiModelProperty("版本")
+    private String version;
+    /**
+    * 教材id
+    */
+    @ApiModelProperty("教材id")
+    private Long textbookId;
+    /**
+    * 当前征订任务征订项已经入库数量
+    */
+    @ApiModelProperty("当前征订任务征订项已经入库数量")
+    private Integer inStockroomNum;
+    /**
+    * 变更类型(0:未变更,1:变更征订数量,2:变更课程)
+    */
+    @ApiModelProperty("变更类型(0:未变更,1:变更征订数量,2:变更课程)")
+    private Integer alterationType;
+    /**
+    * 当前征订任务征订项已经入库数量
+    */
+    @ApiModelProperty("当前征订任务征订项已经入库数量")
+    private Integer historyVersion;
+
+
+}

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

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.textbook.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItemHistory;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 教材教辅征订项变更历史
+* @Author phoenix
+* @Date: 2024-06-20
+* @Version 1.0
+*/
+@Mapper
+public interface WfTextbookSubscriptionItemHistoryMapper extends MPJBaseMapper<WfTextbookSubscriptionItemHistory> {
+
+}

+ 14 - 0
src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookSubscriptionItemHistoryService.java

@@ -0,0 +1,14 @@
+package com.xjrsoft.module.textbook.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItemHistory;
+
+/**
+* @title: 教材教辅征订项变更历史
+* @Author phoenix
+* @Date: 2024-06-20
+* @Version 1.0
+*/
+
+public interface IWfTextbookSubscriptionItemHistoryService extends MPJBaseService<WfTextbookSubscriptionItemHistory> {
+}

+ 6 - 6
src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookSubscriptionService.java

@@ -1,10 +1,7 @@
 package com.xjrsoft.module.textbook.service;
 
 import com.github.yulichang.base.MPJBaseService;
-import com.xjrsoft.module.textbook.dto.TextbookInstockroomDto;
-import com.xjrsoft.module.textbook.dto.TextbookInstockroomListDto;
-import com.xjrsoft.module.textbook.dto.TextbookSubscriptionExportQueryListDto;
-import com.xjrsoft.module.textbook.dto.UpdateWfTextbookSubscriptionDto;
+import com.xjrsoft.module.textbook.dto.*;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
 import com.xjrsoft.module.textbook.vo.TextbookInstockroomListVo;
 import com.xjrsoft.module.textbook.vo.TextbookSubscriptionExportQueryListVo;
@@ -30,15 +27,18 @@ public interface IWfTextbookSubscriptionService extends MPJBaseService<WfTextboo
 
     /**
     * 更新
-    *
     * @param wfTextbookSubscription
     * @return
     */
     Boolean update(WfTextbookSubscription wfTextbookSubscription);
 
+    /**
+     * 变更
+     */
+    Boolean alteration(UpdateWfTextbookSubscriptionItemDto dto);
+
     /**
     * 删除
-    *
     * @param ids
     * @return
     */

+ 19 - 0
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookSubscriptionItemHistoryServiceImpl.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.textbook.service.impl;
+
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItemHistory;
+import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionItemHistoryMapper;
+import com.xjrsoft.module.textbook.service.IWfTextbookSubscriptionItemHistoryService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+* @title: 教材教辅征订项变更历史
+* @Author phoenix
+* @Date: 2024-06-20
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class WfTextbookSubscriptionItemHistoryServiceImpl extends MPJBaseServiceImpl<WfTextbookSubscriptionItemHistoryMapper, WfTextbookSubscriptionItemHistory> implements IWfTextbookSubscriptionItemHistoryService {
+}

+ 50 - 9
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookSubscriptionServiceImpl.java

@@ -13,11 +13,9 @@ import com.xjrsoft.module.base.entity.BaseCourseSubject;
 import com.xjrsoft.module.base.mapper.BaseClassMapper;
 import com.xjrsoft.module.system.entity.DictionaryDetail;
 import com.xjrsoft.module.textbook.dto.*;
-import com.xjrsoft.module.textbook.entity.Textbook;
-import com.xjrsoft.module.textbook.entity.TextbookSubscriptionRecord;
-import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
-import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
+import com.xjrsoft.module.textbook.entity.*;
 import com.xjrsoft.module.textbook.mapper.TextbookSubscriptionRecordMapper;
+import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionItemHistoryMapper;
 import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionItemMapper;
 import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionMapper;
 import com.xjrsoft.module.textbook.service.ITextbookService;
@@ -27,6 +25,7 @@ import com.xjrsoft.module.textbook.vo.TextbookSubscriptionExportQueryListVo;
 import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionItemVo;
 import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionVo;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -48,6 +47,8 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
 
     private final TextbookSubscriptionRecordMapper textbookTextbookSubscriptionRecordMapper;
 
+    private final WfTextbookSubscriptionItemHistoryMapper wfTextbookSubscriptionItemHistoryMapper;
+
     private final ITextbookService textbookService;
 
     private final BaseClassMapper baseClassMapper;
@@ -104,6 +105,46 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
         return true;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean alteration(UpdateWfTextbookSubscriptionItemDto dto) {
+        WfTextbookSubscriptionItem old = wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.selectById(dto.getId());
+        if(old == null){
+            return false;
+        }
+
+        //将历史记录保存到历史变更记录表
+        LambdaQueryWrapper<WfTextbookSubscriptionItemHistory> wfTextbookSubscriptionItemHistoryLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        wfTextbookSubscriptionItemHistoryLambdaQueryWrapper
+                .eq(WfTextbookSubscriptionItemHistory::getWfTextbookSubscriptionItemId, old.getId())
+                .orderByDesc(WfTextbookSubscriptionItemHistory::getHistoryVersion)
+                .last("limit 1")
+                ;
+        WfTextbookSubscriptionItemHistory lastOne = wfTextbookSubscriptionItemHistoryMapper.selectOne(wfTextbookSubscriptionItemHistoryLambdaQueryWrapper);
+
+        WfTextbookSubscriptionItemHistory wfTextbookSubscriptionItemHistory = new WfTextbookSubscriptionItemHistory();
+        BeanUtils.copyProperties(old, wfTextbookSubscriptionItemHistory);
+        wfTextbookSubscriptionItemHistory.setId(null);
+        wfTextbookSubscriptionItemHistory.setWfTextbookSubscriptionItemId(old.getId());
+        wfTextbookSubscriptionItemHistory.setCreateDate(new Date());
+        wfTextbookSubscriptionItemHistory.setCreateUserId(StpUtil.getLoginIdAsLong());
+        if(lastOne != null){
+            wfTextbookSubscriptionItemHistory.setHistoryVersion(lastOne.getHistoryVersion() + 1);
+        } else {
+            wfTextbookSubscriptionItemHistory.setHistoryVersion(1);
+        }
+
+        wfTextbookSubscriptionItemHistoryMapper.insert(wfTextbookSubscriptionItemHistory);
+
+        //变更当前记录
+        WfTextbookSubscriptionItem updateItem = new WfTextbookSubscriptionItem();
+        BeanUtils.copyProperties(dto, updateItem);
+
+        wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.updateById(updateItem);
+
+        return true;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean delete(List<Long> ids) {
@@ -155,6 +196,7 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
 
         MPJLambdaWrapper<WfTextbookSubscriptionItem> mpjLambdaWrapper = new MPJLambdaWrapper<>();
         mpjLambdaWrapper
+                .select(WfTextbookSubscriptionItem::getId)
                 .selectAs(BaseCourseSubject::getName, WfTextbookSubscriptionItemVo::getCourseSubjectIdCn)
                 .select(WfTextbookSubscriptionItem.class, x -> VoToColumnUtil.fieldsToColumns(WfTextbookSubscriptionItemVo.class).contains(x.getProperty()))
                 .select(Textbook.class, x -> VoToColumnUtil.fieldsToColumns(WfTextbookSubscriptionItemVo.class).contains(x.getProperty()))
@@ -271,7 +313,7 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
         MPJLambdaWrapper<WfTextbookSubscriptionItem> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
                 .select(WfTextbookSubscriptionItem::getId)
-                .selectAs(BaseCourseSubject::getName, TextbookInstockroomListVo::getCourseSubjectIdCn)
+                .selectAs(BaseCourseSubject::getName, TextbookInstockroomListVo::getCourseName)
                 .selectAs(DictionaryDetail::getName, TextbookInstockroomListVo::getTextbookTypeCn)
                 .select("(t.student_subscription_number + t.teacher_subscription_number) as subscriptionNumber")
                 .select(Textbook.class, x -> VoToColumnUtil.fieldsToColumns(TextbookInstockroomListVo.class).contains(x.getProperty()))
@@ -280,11 +322,10 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
                 .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, Textbook::getCourseSubjectId)
                 .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, Textbook::getTextbookType)
                 .eq(WfTextbookSubscriptionItem::getWfTextbookSubscriptionId, dto.getWfTextbookSubscriptionId())
-                .orderByAsc(WfTextbookSubscriptionItem::getInstockroomNum)
+                .orderByAsc(WfTextbookSubscriptionItem::getInStockroomNum)
         ;
-        List<TextbookInstockroomListVo> list = wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.selectJoinList(TextbookInstockroomListVo.class, queryWrapper);
 
-        return list;
+        return wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.selectJoinList(TextbookInstockroomListVo.class, queryWrapper);
     }
 
     @Override
@@ -319,7 +360,7 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
             WfTextbookSubscriptionItem old = itemMap.get(dto.getId());
             WfTextbookSubscriptionItem updateItem = new WfTextbookSubscriptionItem();
             updateItem.setId(old.getId());
-            updateItem.setInstockroomNum(old.getInstockroomNum() + dto.getInNum());
+            updateItem.setInStockroomNum(old.getInStockroomNum() + dto.getInNum());
             updateItem.setModifyDate(now);
             updateItem.setModifyUserId(loginId);
             wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.updateById(updateItem);

+ 18 - 4
src/main/java/com/xjrsoft/module/textbook/vo/TextbookInstockroomListVo.java

@@ -35,10 +35,12 @@ public class TextbookInstockroomListVo {
     @ApiModelProperty("课程编号(base_course_subject)")
     private Long courseSubjectId;
     /**
-     * 课程编号(base_course_subject)
+     * 课程
      */
-    @ApiModelProperty("课程编号(base_course_subject)")
-    private String courseSubjectIdCn;
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("课程")
+    @ApiModelProperty("课程")
+    private String courseName;
     /**
      * 书名
      */
@@ -88,5 +90,17 @@ public class TextbookInstockroomListVo {
      * 已入库数量
      */
     @ApiModelProperty("已入库数量")
-    private Integer instockroomNum;
+    private Integer inStockroomNum;
+    /**
+     * 使用类型(单位:学期)
+     */
+    @ApiModelProperty("使用类型(单位:学期)")
+    private Integer useType;
+    /**
+     * 版本
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("版本")
+    @ApiModelProperty("版本")
+    private String version;
 }

+ 154 - 0
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionItemHistoryPageVo.java

@@ -0,0 +1,154 @@
+package com.xjrsoft.module.textbook.vo;
+
+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 phoenix
+* @Date: 2024-06-20
+* @Version 1.0
+*/
+@Data
+public class WfTextbookSubscriptionItemHistoryPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    private Long createUserId;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private String createUserIdCn;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    private Date createDate;
+    /**
+    * 教材教辅征订项编号
+    */
+    @ApiModelProperty("教材教辅征订项编号")
+    private Long wfTextbookSubscriptionItemId;
+    /**
+    * 教材教辅征订编号
+    */
+    @ApiModelProperty("教材教辅征订编号")
+    private Long wfTextbookSubscriptionId;
+    /**
+    * 征订类型(xjr_dictionary_item[subscription_type])
+    */
+    @ApiModelProperty("征订类型(xjr_dictionary_item[subscription_type])")
+    private String subscriptionType;
+    /**
+    * 国际标准刊号
+    */
+    @ApiModelProperty("国际标准刊号")
+    private String issn;
+    /**
+    * 国际标准书号
+    */
+    @ApiModelProperty("国际标准书号")
+    private String isbn;
+    /**
+    * 书名
+    */
+    @ApiModelProperty("书名")
+    private String bookName;
+    /**
+    * 出版社
+    */
+    @ApiModelProperty("出版社")
+    private String publishingHouse;
+    /**
+    * 主编
+    */
+    @ApiModelProperty("主编")
+    private String editorInChief;
+    /**
+    * 估价(元)
+    */
+    @ApiModelProperty("估价(元)")
+    private BigDecimal appraisalPrice;
+    /**
+    * 是否为规划教材(xjr_dictionary_item[judgment_method_1])
+    */
+    @ApiModelProperty("是否为规划教材(xjr_dictionary_item[judgment_method_1])")
+    private String isTextbookPlan;
+    /**
+    * 课程编号(base_course_subject)
+    */
+    @ApiModelProperty("课程编号(base_course_subject)")
+    private Long courseSubjectId;
+    /**
+     * 课程编号(base_course_subject)
+     */
+    @ApiModelProperty("课程编号(base_course_subject)")
+    private String courseName;
+    /**
+    * 班级编号(多个)
+    */
+    @ApiModelProperty("班级编号(多个)")
+    private String classIds;
+    /**
+    * 学生用书征订数量
+    */
+    @ApiModelProperty("学生用书征订数量")
+    private Integer studentSubscriptionNumber;
+    /**
+    * 教师教材征订数量
+    */
+    @ApiModelProperty("教师教材征订数量")
+    private Integer teacherSubscriptionNumber;
+    /**
+    * 教师教参用书征订数量
+    */
+    @ApiModelProperty("教师教参用书征订数量")
+    private Integer teacherReferenceNumber;
+    /**
+    * 是否有配套教学资源(xjr_dictionary_item[judgment_method_1])
+    */
+    @ApiModelProperty("是否有配套教学资源(xjr_dictionary_item[judgment_method_1])")
+    private String isSupportResources;
+    /**
+    * 版本
+    */
+    @ApiModelProperty("版本")
+    private String version;
+    /**
+    * 教材id
+    */
+    @ApiModelProperty("教材id")
+    private Long textbookId;
+    /**
+    * 当前征订任务征订项已经入库数量
+    */
+    @ApiModelProperty("当前征订任务征订项已经入库数量")
+    private Integer inStockroomNum;
+    /**
+    * 变更类型(0:未变更,1:变更征订数量,2:变更课程)
+    */
+    @ApiModelProperty("变更类型(0:未变更,1:变更征订数量,2:变更课程)")
+    private Integer alterationType;
+    /**
+    * 当前征订任务征订项已经入库数量
+    */
+    @ApiModelProperty("当前征订任务征订项已经入库数量")
+    private Integer historyVersion;
+
+}

+ 139 - 0
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionItemHistoryVo.java

@@ -0,0 +1,139 @@
+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 phoenix
+* @Date: 2024-06-20
+* @Version 1.0
+*/
+@Data
+public class WfTextbookSubscriptionItemHistoryVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 教材教辅征订项编号
+    */
+    @ApiModelProperty("教材教辅征订项编号")
+    private Long wfTextbookSubscriptionItemId;
+    /**
+    * 教材教辅征订编号
+    */
+    @ApiModelProperty("教材教辅征订编号")
+    private Long wfTextbookSubscriptionId;
+    /**
+    * 征订类型(xjr_dictionary_item[subscription_type])
+    */
+    @ApiModelProperty("征订类型(xjr_dictionary_item[subscription_type])")
+    private String subscriptionType;
+    /**
+    * 国际标准刊号
+    */
+    @ApiModelProperty("国际标准刊号")
+    private String issn;
+    /**
+    * 国际标准书号
+    */
+    @ApiModelProperty("国际标准书号")
+    private String isbn;
+    /**
+    * 书名
+    */
+    @ApiModelProperty("书名")
+    private String bookName;
+    /**
+    * 出版社
+    */
+    @ApiModelProperty("出版社")
+    private String publishingHouse;
+    /**
+    * 主编
+    */
+    @ApiModelProperty("主编")
+    private String editorInChief;
+    /**
+    * 估价(元)
+    */
+    @ApiModelProperty("估价(元)")
+    private BigDecimal appraisalPrice;
+    /**
+    * 是否为规划教材(xjr_dictionary_item[judgment_method_1])
+    */
+    @ApiModelProperty("是否为规划教材(xjr_dictionary_item[judgment_method_1])")
+    private String isTextbookPlan;
+    /**
+    * 课程编号(base_course_subject)
+    */
+    @ApiModelProperty("课程编号(base_course_subject)")
+    private Long courseSubjectId;
+    /**
+    * 班级编号(多个)
+    */
+    @ApiModelProperty("班级编号(多个)")
+    private String classIds;
+    /**
+    * 学生用书征订数量
+    */
+    @ApiModelProperty("学生用书征订数量")
+    private Integer studentSubscriptionNumber;
+    /**
+    * 教师教材征订数量
+    */
+    @ApiModelProperty("教师教材征订数量")
+    private Integer teacherSubscriptionNumber;
+    /**
+    * 教师教参用书征订数量
+    */
+    @ApiModelProperty("教师教参用书征订数量")
+    private Integer teacherReferenceNumber;
+    /**
+    * 是否有配套教学资源(xjr_dictionary_item[judgment_method_1])
+    */
+    @ApiModelProperty("是否有配套教学资源(xjr_dictionary_item[judgment_method_1])")
+    private String isSupportResources;
+    /**
+    * 版本
+    */
+    @ApiModelProperty("版本")
+    private String version;
+    /**
+    * 教材id
+    */
+    @ApiModelProperty("教材id")
+    private Long textbookId;
+    /**
+    * 当前征订任务征订项已经入库数量
+    */
+    @ApiModelProperty("当前征订任务征订项已经入库数量")
+    private Integer inStockroomNum;
+    /**
+    * 变更类型(0:未变更,1:变更征订数量,2:变更课程)
+    */
+    @ApiModelProperty("变更类型(0:未变更,1:变更征订数量,2:变更课程)")
+    private Integer alterationType;
+    /**
+    * 当前征订任务征订项已经入库数量
+    */
+    @ApiModelProperty("当前征订任务征订项已经入库数量")
+    private Integer historyVersion;
+
+
+
+}

+ 5 - 1
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionItemVo.java

@@ -134,6 +134,10 @@ public class WfTextbookSubscriptionItemVo {
      */
     @ApiModelProperty("教材编号")
     private Long textbookId;
-
+    /**
+     * 变更类型(0:未变更,1:变更征订数量,2:变更课程)
+     */
+    @ApiModelProperty("变更类型(0:未变更,1:变更征订数量,2:变更课程)")
+    private Integer alterationType;
 
 }

+ 46 - 0
src/main/resources/sqlScript/20240620_sql.sql

@@ -0,0 +1,46 @@
+create table if not exists 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

@@ -3287,4 +3287,29 @@ public class FreeMarkerGeneratorTest {
 
         apiGeneratorService.generateCodes(params);
     }
+
+    @Test
+    public void gcWfTextbookSubscriptionItemHistory() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("wf_textbook_subscription_item_history");//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("phoenix");//作者名称
+        params.setPackageName("teacher");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(false);//是否生成导入接口
+        params.setExport(false);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+    }
 }

+ 0 - 1
src/test/java/com/xjrsoft/xjrsoftboot/log.log

@@ -1 +0,0 @@
-鑫怡","orgIndexCode":"567891198765191-2022-early_class-FB3001","orgName":"铜梁职教中心/走读学生/3+2班/2022级/22艺术设计1","doorName":"出门方向从右到左第4台进(进门方向)","doorIndexCode":"66a018915db34f359886642d71e7cb86","doorRegionIndexCode":"root000000","picUri":"/pic?fd00=e802l5f-do771a*63eb3017-460f647ba*022s=**812==*p317=8t1371273070=0l6*2419=4o2*062-144oe9-pi0cd4=00180","svrIndexCode":"30a36469-6434-4c95-9474-f935146cafd5","eventType":196893,"inAndOutType":1,"readerDevIndexCode":"e909e0b292984a10ba1358530359d100","readerDevName":"出门方向从右到左第4台进(进门方向)","devIndexCode":"65afb7ca6b4a4b189bb40f686551585c","devName":"出门方向从右到左第4台进(进门方向)","identityCardUri":null,"receiveTime":"2024-06-18T12:29:13.842+08:00","jobNo":"500225200612136228","studentId":null,"certNo":null,"temp":null},{"eventId":"5531c065102d41a4c0988de4597ffbd4","eventName":"acs.acs.eventType.successFace","eventTime":"2024-06-18T12:28:49+08:00","personId":"654321987655145","cardNo":null,"personName":"田慧淋","orgIndexCode":"567891198765135-2023-early_class-FB3001","orgName":"铜梁职教中心/走读学生/3+2班/2023级/23物联网","doorName":"出门方向从右到左第3台进(进门方向)","doorIndexCode":"4368606854fa4fc98740ea9605e68bd5","doorRegionIndexCode":"root000000","picUri":"/pic?fd00=e802l5f-do371a*52eb3617-460f647ba*022s=**812==*p017=8t1371972070=0l2*2514=3o2*952-180oe9-pi0cd4=00180","svrIndexCode":"30a36469-6434-4c95-9474-f935146cafd5","eventType":196893,"inAndOutType":1,"readerDevIndexCode":"8371a888128d420c9d2c2b4622b7c754","readerDevName":"出门方向从右到左第3台进(进门方向)","devIndexCode":"f2cae097aed349acb3e966622b73eaf6","devName":"出门方向从右到左第3台进(进门方向)","identityCardUri":null,"receiveTime":"2024-06-18T12:29:05.767+08:00","jobNo":"500224200801036940","studentId":null,"certNo":null,"temp":null}],"total":17060,"totalPage":171,"pageNo":9}}