大数据与最优化研究所 1 éve
szülő
commit
2435ac42c1
28 módosított fájl, 526 hozzáadás és 54 törlés
  1. 1 1
      src/main/java/com/xjrsoft/module/liteflow/node/AddTextbookNode.java
  2. 64 0
      src/main/java/com/xjrsoft/module/textbook/controller/TextbookController.java
  3. 188 0
      src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookSubscriptionController.java
  4. 13 2
      src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookSubscriptionDto.java
  5. 6 1
      src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookSubscriptionItemDto.java
  6. 3 0
      src/main/java/com/xjrsoft/module/textbook/dto/TextbookPageDto.java
  7. 25 0
      src/main/java/com/xjrsoft/module/textbook/dto/TextbookSubscriptionListDto.java
  8. 11 1
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfTextbookSubscriptionDto.java
  9. 1 1
      src/main/java/com/xjrsoft/module/textbook/dto/WfTextbookSubscriptionPageDto.java
  10. 5 1
      src/main/java/com/xjrsoft/module/textbook/entity/Textbook.java
  11. 10 1
      src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookSubscription.java
  12. 6 2
      src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookSubscriptionItem.java
  13. 1 0
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookIssueRecordMapper.java
  14. 2 1
      src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookSubscriptionItemMapper.java
  15. 2 1
      src/main/java/com/xjrsoft/module/textbook/mapper/WfTextbookSubscriptionMapper.java
  16. 1 1
      src/main/java/com/xjrsoft/module/textbook/service/ITextbookService.java
  17. 3 11
      src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookSubscriptionService.java
  18. 3 10
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java
  19. 4 16
      src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookSubscriptionServiceImpl.java
  20. 26 0
      src/main/java/com/xjrsoft/module/textbook/vo/GradeClassListVo.java
  21. 25 0
      src/main/java/com/xjrsoft/module/textbook/vo/GradeClassTreeVo.java
  22. 5 0
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookPageVo.java
  23. 63 0
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookSubscriptionListVo.java
  24. 5 0
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookVo.java
  25. 1 1
      src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionItemVo.java
  26. 45 1
      src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionPageVo.java
  27. 6 1
      src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionVo.java
  28. 1 1
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

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

@@ -25,7 +25,7 @@ AddTextbookNode extends NodeComponent {
         Long formId = Convert.toLong(value);
         if (formId != null) {
             // 数据处理
-            textbookService.dataHandleAddTextbookNode(formId);
+            //textbookService.dataHandleAddTextbookNode(formId);
         }
     }
 }

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

@@ -5,15 +5,25 @@ 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.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.asset.entity.WfAssetManage;
+import com.xjrsoft.module.asset.vo.WfAssetManageVo;
+import com.xjrsoft.module.base.entity.BaseCourseSubject;
 import com.xjrsoft.module.base.entity.BaseSemester;
 import com.xjrsoft.module.base.service.IBaseSemesterService;
+import com.xjrsoft.module.student.entity.BaseClassMajorSet;
+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.TextbookClassRelation;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
 import com.xjrsoft.module.textbook.service.ITextbookService;
 import com.xjrsoft.module.textbook.vo.*;
 import io.swagger.annotations.Api;
@@ -28,6 +38,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -55,6 +66,59 @@ public class TextbookController {
         return RT.ok(pageOutput);
     }
 
+    @GetMapping(value = "/page-subscription")
+    @ApiOperation(value="教材管理列表(分页,教材征订用)")
+    @SaCheckPermission("textbook:detail")
+    public RT<PageOutput<TextbookSubscriptionListVo>> pageSubscription(@Valid TextbookSubscriptionListDto dto){
+        List<String> classIdList = new ArrayList<>();
+        if(dto.getClassIds() != null && !dto.getClassIds().equals("")){
+            String[] classIdArr =  dto.getClassIds().split(",");
+            classIdList = Arrays.asList(classIdArr);
+        }
+
+        MPJLambdaWrapper<Textbook> textbookMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        textbookMPJLambdaWrapper
+                .select(Textbook::getId)
+                .selectAs(BaseCourseSubject::getName, TextbookSubscriptionListVo::getCourseSubjectIdCn)
+                .selectSum(BaseClassMajorSet::getTotalStudent, TextbookSubscriptionListVo::getNumber)
+                .select(Textbook.class, x -> VoToColumnUtil.fieldsToColumns(TextbookSubscriptionListVo.class).contains(x.getProperty()))
+                .leftJoin(TextbookClassRelation.class, TextbookClassRelation::getTextbookId, Textbook::getId)
+                .leftJoin(BaseClassMajorSet.class, BaseClassMajorSet::getClassId, TextbookClassRelation::getClassId)
+                .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, Textbook::getCourseSubjectId)
+                .in(!classIdList.isEmpty(),TextbookClassRelation::getClassId, classIdList)
+                .groupBy(Textbook::getId)
+        ;
+        IPage<TextbookSubscriptionListVo> page = textbookService.selectJoinListPage(ConventPage.getPage(dto),TextbookSubscriptionListVo.class,textbookMPJLambdaWrapper);
+        PageOutput<TextbookSubscriptionListVo> pageOutput = ConventPage.getPageOutput(page, TextbookSubscriptionListVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/List-subscription")
+    @ApiOperation(value="教材管理列表(不分页,教材征订用)")
+    @SaCheckPermission("textbook:detail")
+    public RT<List<TextbookSubscriptionListVo>> ListSubscription(@Valid TextbookSubscriptionListDto dto){
+        List<String> classIdList = new ArrayList<>();
+        if(dto.getClassIds() != null && !dto.getClassIds().equals("")){
+            String[] classIdArr =  dto.getClassIds().split(",");
+            classIdList = Arrays.asList(classIdArr);
+        }
+
+        MPJLambdaWrapper<Textbook> textbookMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        textbookMPJLambdaWrapper
+                .select(Textbook::getId)
+                .selectAs(BaseCourseSubject::getName, TextbookSubscriptionListVo::getCourseSubjectIdCn)
+                .selectSum(BaseClassMajorSet::getTotalStudent, TextbookSubscriptionListVo::getNumber)
+                .select(Textbook.class, x -> VoToColumnUtil.fieldsToColumns(TextbookSubscriptionListVo.class).contains(x.getProperty()))
+                .leftJoin(TextbookClassRelation.class, TextbookClassRelation::getTextbookId, Textbook::getId)
+                .leftJoin(BaseClassMajorSet.class, BaseClassMajorSet::getClassId, TextbookClassRelation::getClassId)
+                .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, Textbook::getCourseSubjectId)
+                .in(!classIdList.isEmpty(),TextbookClassRelation::getClassId, classIdList)
+                .groupBy(Textbook::getId)
+                ;
+        List<TextbookSubscriptionListVo> list = textbookService.selectJoinList(TextbookSubscriptionListVo.class,textbookMPJLambdaWrapper);
+        return RT.ok(list);
+    }
+
     @GetMapping(value = "/info-detail")
     @ApiOperation(value="根据id查询教材管理信息")
     @SaCheckPermission("textbook:detail")

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

@@ -0,0 +1,188 @@
+package com.xjrsoft.module.textbook.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.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.TreeUtil;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.base.entity.BaseGrade;
+import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.base.mapper.BaseClassMapper;
+import com.xjrsoft.module.oa.vo.NewsGradeClassTreeVo;
+import com.xjrsoft.module.student.vo.BaseClassQfCountVo;
+import com.xjrsoft.module.student.vo.BaseClassTreeVo;
+import com.xjrsoft.module.textbook.dto.AddWfTextbookSubscriptionDto;
+import com.xjrsoft.module.textbook.dto.UpdateWfTextbookSubscriptionDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.xjrsoft.module.textbook.vo.GradeClassListVo;
+import com.xjrsoft.module.textbook.vo.GradeClassTreeVo;
+import org.springframework.http.ResponseEntity;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+
+import com.xjrsoft.module.textbook.dto.WfTextbookSubscriptionPageDto;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
+import com.xjrsoft.module.textbook.service.IWfTextbookSubscriptionService;
+import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionPageVo;
+
+import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionVo;
+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.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+* @title: 教材教辅征订
+* @Author szs
+* @Date: 2024-06-04
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/textbook" + "/wfTextbookSubscription")
+@Api(value = "/textbook"  + "/wfTextbookSubscription",tags = "教材教辅征订代码")
+@AllArgsConstructor
+public class WfTextbookSubscriptionController {
+
+
+    private final IWfTextbookSubscriptionService wfTextbookSubscriptionService;
+
+    private final BaseClassMapper baseClassMapper;
+
+    @GetMapping(value = "/tree")
+    @ApiOperation(value = "学生年级班级树")
+    @SaCheckPermission("studentmanager:detail")
+    public RT<List<GradeClassTreeVo>> tree() {
+        List<GradeClassTreeVo> voList = new ArrayList<>();
+
+        voList.add(new GradeClassTreeVo() {{
+            setId("666666");
+            setName("班级");
+        }});
+
+        //获取班级List(包含年级信息)
+        MPJLambdaWrapper<BaseClass> baseClassMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        baseClassMPJLambdaWrapper
+                .selectAs(BaseClass::getId, GradeClassListVo::getClassId)
+                .selectAs(BaseClass::getName, GradeClassListVo::getClassName)
+                .selectAs(BaseClass::getGradeId, GradeClassListVo::getGradeId)
+                .selectAs(BaseGrade::getName, GradeClassListVo::getGradeName)
+                .leftJoin(BaseGrade.class, BaseGrade::getId, BaseClass::getGradeId)
+                .eq(BaseClass::getDeleteMark, 0)
+                .eq(BaseClass::getIsGraduate, 1)
+        ;
+        List<GradeClassListVo> gradeClassTreeVoList = baseClassMapper.selectJoinList(GradeClassListVo.class, baseClassMPJLambdaWrapper);
+
+        //年级Map
+        Map<String, GradeClassTreeVo> gradeMap = new HashMap<>();
+        for (GradeClassListVo gradeClassListVo : gradeClassTreeVoList){
+            if(gradeClassListVo.getGradeId() != null && gradeMap.get(gradeClassListVo.getGradeId()) == null){
+                gradeMap.put(gradeClassListVo.getGradeId(), new GradeClassTreeVo(){{
+                    setId(gradeClassListVo.getGradeId());
+                    setName(gradeClassListVo.getGradeName());
+                    setParentId("666666");
+                }});
+            }
+            voList.add(new GradeClassTreeVo() {{
+                setId(gradeClassListVo.getClassId());
+                setName(gradeClassListVo.getClassName());
+                setParentId(gradeClassListVo.getGradeId());
+            }});
+        }
+
+        List<GradeClassTreeVo> gradeList = new ArrayList<>(gradeMap.values());
+        voList.addAll(gradeList);
+
+        List<GradeClassTreeVo> treeVoList = TreeUtil.build(voList);
+
+        return RT.ok(treeVoList);
+    }
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="教材教辅征订列表(分页)")
+    @SaCheckPermission("wftextbooksubscription:detail")
+    public RT<PageOutput<WfTextbookSubscriptionPageVo>> page(@Valid WfTextbookSubscriptionPageDto dto){
+
+        MPJLambdaWrapper<WfTextbookSubscription> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper
+                .select(WfTextbookSubscription::getId)
+                .selectAs(BaseSemester::getName, WfTextbookSubscriptionPageVo::getBaseSemesterIdCn)
+                .select("(select sum(student_subscription_number) + sum(teacher_subscription_number) from wf_textbook_subscription_item a where a.wf_textbook_subscription_id = t.id) as sum")
+                .select(WfTextbookSubscription.class,x -> VoToColumnUtil.fieldsToColumns(WfTextbookSubscriptionPageVo.class).contains(x.getProperty()))
+                .leftJoin(BaseSemester.class, BaseSemester::getId, WfTextbookSubscription::getBaseSemesterId)
+                .orderByDesc(WfTextbookSubscription::getCreateDate)
+        ;
+        IPage<WfTextbookSubscription> page = wfTextbookSubscriptionService.selectJoinListPage(ConventPage.getPage(dto),WfTextbookSubscription.class, queryWrapper);
+        PageOutput<WfTextbookSubscriptionPageVo> pageOutput = ConventPage.getPageOutput(page, WfTextbookSubscriptionPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询教材教辅征订信息")
+    @SaCheckPermission("wftextbooksubscription:detail")
+    public RT<WfTextbookSubscriptionVo> info(@RequestParam Long id){
+        WfTextbookSubscription wfTextbookSubscription = wfTextbookSubscriptionService.getByIdDeep(id);
+        if (wfTextbookSubscription == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(wfTextbookSubscription, WfTextbookSubscriptionVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增教材教辅征订")
+    @SaCheckPermission("wftextbooksubscription:add")
+    public RT<Boolean> add(@Valid @RequestBody AddWfTextbookSubscriptionDto dto){
+        WfTextbookSubscription wfTextbookSubscription = BeanUtil.toBean(dto, WfTextbookSubscription.class);
+        boolean isSuccess = wfTextbookSubscriptionService.add(wfTextbookSubscription);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改教材教辅征订")
+    @SaCheckPermission("wftextbooksubscription:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateWfTextbookSubscriptionDto dto){
+
+        WfTextbookSubscription wfTextbookSubscription = BeanUtil.toBean(dto, WfTextbookSubscription.class);
+        return RT.ok(wfTextbookSubscriptionService.update(wfTextbookSubscription));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除教材教辅征订")
+    @SaCheckPermission("wftextbooksubscription:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(wfTextbookSubscriptionService.delete(ids));
+
+    }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "导出")
+    public ResponseEntity<byte[]> exportData(@Valid WfTextbookSubscriptionPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
+        List<WfTextbookSubscriptionPageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<WfTextbookSubscriptionPageVo>) page(dto).getData()).getList();
+        ByteArrayOutputStream bot = new ByteArrayOutputStream();
+        EasyExcel.write(bot, WfTextbookSubscriptionPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+
+        return RT.fileStream(bot.toByteArray(), "WfTextbookSubscription" + ExcelTypeEnum.XLSX.getValue());
+    }
+}

+ 13 - 2
src/main/java/com/xjrsoft/module/textbook/dto/AddWfTextbookSubscriptionDto.java

@@ -3,14 +3,21 @@ package com.xjrsoft.module.textbook.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
 
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Date;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
+
 
 
 /**
 * @title: 教材教辅征订
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Data
@@ -53,7 +60,11 @@ public class AddWfTextbookSubscriptionDto implements Serializable {
     */
     @ApiModelProperty("状态(1:结束 0:未结束)")
     private Integer status;
-
+    /**
+     * 征订方式(1:结束 2:未结束)
+     */
+    @ApiModelProperty("征订方式(1:按班级征订 2:按教材征订)")
+    private Integer subscription_method;
     /**
     * wfTextbookSubscriptionItem
     */

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

@@ -16,7 +16,7 @@ import java.util.Date;
 /**
 * @title: 教材教辅征订项
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Data
@@ -29,6 +29,11 @@ public class AddWfTextbookSubscriptionItemDto implements Serializable {
     */
     @ApiModelProperty("序号")
     private Integer sortCode;
+    /**
+     * 教材编号
+     */
+    @ApiModelProperty("教材编号")
+    private Long textbookId;
     /**
     * 教材教辅征订编号
     */

+ 3 - 0
src/main/java/com/xjrsoft/module/textbook/dto/TextbookPageDto.java

@@ -1,5 +1,7 @@
 package com.xjrsoft.module.textbook.dto;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
 import com.xjrsoft.common.page.PageInput;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -10,6 +12,7 @@ import java.time.LocalTime;
 import java.time.LocalDateTime;
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 
 /**

+ 25 - 0
src/main/java/com/xjrsoft/module/textbook/dto/TextbookSubscriptionListDto.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.textbook.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+* @title: 教材管理分页查询入参
+* @Author szs
+* @Date: 2023-12-25
+* @Version 1.0
+*/
+@Data
+public class TextbookSubscriptionListDto extends PageInput {
+    /**
+     * 使用班级
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("使用班级")
+    @ApiModelProperty("使用班级")
+    private String classIds;
+}

+ 11 - 1
src/main/java/com/xjrsoft/module/textbook/dto/UpdateWfTextbookSubscriptionDto.java

@@ -2,12 +2,22 @@ package com.xjrsoft.module.textbook.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+import java.util.Date;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
+
 
 
 /**
 * @title: 教材教辅征订
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Data

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

@@ -15,7 +15,7 @@ import java.util.Date;
 /**
 * @title: 教材教辅征订分页查询入参
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Data

+ 5 - 1
src/main/java/com/xjrsoft/module/textbook/entity/Textbook.java

@@ -184,5 +184,9 @@ public class Textbook implements Serializable {
     @EntityMapping(thisField = "id", joinField = "wfTextbookSubscriptionId")
     private List<TextbookSubscriptionRecord> textbookSubscriptionRecordList;
 
-
+    /**
+     * 使用类型(单位:学期)
+     */
+    @ApiModelProperty("使用类型(单位:学期)")
+    private Integer useType;
 }

+ 10 - 1
src/main/java/com/xjrsoft/module/textbook/entity/WfTextbookSubscription.java

@@ -10,6 +10,9 @@ 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;
 
@@ -17,7 +20,7 @@ import java.util.Date;
 /**
 * @title: 教材教辅征订
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Data
@@ -106,6 +109,12 @@ public class WfTextbookSubscription implements Serializable {
     @ApiModelProperty("状态(1:结束 0:未结束)")
     private Integer status;
 
+    /**
+     * 征订方式(1:结束 2:未结束)
+     */
+    @ApiModelProperty("征订方式(1:按班级征订 2:按教材征订)")
+    private Integer subscription_method;
+
     /**
     * wfTextbookSubscriptionItem
     */

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

@@ -20,7 +20,7 @@ import java.util.Date;
 /**
 * @title: 教材教辅征订项
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Data
@@ -159,5 +159,9 @@ public class WfTextbookSubscriptionItem implements Serializable {
     @ApiModelProperty("版本")
     private String version;
 
-
+    /**
+     * 教材编号
+     */
+    @ApiModelProperty("教材编号")
+    private Long textbookId;
 }

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

@@ -23,3 +23,4 @@ public interface TextbookIssueRecordMapper extends MPJBaseMapper<TextbookIssueRe
 
     List<TextbookIssueRecordPageVo> getList(@Param("dto") TextbookIssueRecordExportDto dto);
 }
+

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

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.textbook.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
 import org.apache.ibatis.annotations.Mapper;
@@ -7,7 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
 /**
 * @title: 教材教辅征订项
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Mapper

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

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.textbook.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
 import org.apache.ibatis.annotations.Mapper;
@@ -7,7 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
 /**
 * @title: 教材教辅征订
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Mapper

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

@@ -56,7 +56,7 @@ public interface ITextbookService extends MPJBaseService<Textbook> {
      * @param dataId
      * @return
      */
-    Boolean dataHandleAddTextbookNode(Long dataId);
+//    Boolean dataHandleAddTextbookNode(Long dataId);
 
     /**
      * 添加作业本规则

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

@@ -1,14 +1,15 @@
 package com.xjrsoft.module.textbook.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
-
+import lombok.Data;
 import java.util.List;
 
 /**
 * @title: 教材教辅征订
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 
@@ -36,13 +37,4 @@ public interface IWfTextbookSubscriptionService extends MPJBaseService<WfTextboo
     * @return
     */
     Boolean delete(List<Long> ids);
-
-    /**
-     * 根据Id查询征订项
-     *
-     * @param id
-     * @return
-     */
-    WfTextbookSubscription selectById(Long id);
-
 }

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

@@ -19,11 +19,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.ExerciseBookeTypeEnum;
-import com.xjrsoft.common.enums.SubscriptionTypeEnum;
 import com.xjrsoft.common.enums.TextbookTypeEnum;
 import com.xjrsoft.common.enums.WarehouseModeEnum;
 import com.xjrsoft.common.exception.MyException;
-import com.xjrsoft.common.utils.excel.CustomCellWriteWidthConfig;
 import com.xjrsoft.common.utils.excel.ExcelFillCellMergePrevColUtil;
 import com.xjrsoft.common.utils.excel.ExcelMergeUtil;
 import com.xjrsoft.module.base.entity.BaseClass;
@@ -34,8 +32,6 @@ import com.xjrsoft.module.base.mapper.BaseCourseSubjectMapper;
 import com.xjrsoft.module.base.mapper.BaseGradeMapper;
 import com.xjrsoft.module.base.mapper.BaseSemesterMapper;
 import com.xjrsoft.module.base.service.IBaseClassService;
-import com.xjrsoft.module.courseTable.entity.CourseTable;
-import com.xjrsoft.module.teacher.entity.BaseTeacher;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.textbook.dto.*;
 import com.xjrsoft.module.textbook.entity.*;
@@ -45,14 +41,12 @@ import com.xjrsoft.module.textbook.vo.*;
 import lombok.AllArgsConstructor;
 import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.IndexedColors;
 import org.apache.poi.ss.usermodel.VerticalAlignment;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.ByteArrayOutputStream;
-import java.io.IOException;
 import java.io.InputStream;
 import java.math.BigDecimal;
 import java.util.*;
@@ -212,11 +206,10 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
 
     @Override
     public Page<TextbookPageVo> getPage(Page<TextbookPageDto> page, TextbookPageDto dto) {
-        Page<TextbookPageVo> result = textbookTextbookMapper.getPage(page, dto);
-        return result;
+        return textbookTextbookMapper.getPage(page, dto);
     }
 
-    @Override
+   /* @Override
     @Transactional
     public Boolean dataHandleAddTextbookNode(Long dataId) {
         WfTextbookSubscription wfTextbookSubscription = iWfTextbookSubscriptionService.selectById(dataId);
@@ -328,7 +321,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
             }
         }
         return true;
-    }
+    }*/
 
     /**
      * 添加作业本规则

+ 4 - 16
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookSubscriptionServiceImpl.java

@@ -1,25 +1,24 @@
 package com.xjrsoft.module.textbook.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
-import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
 import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionItemMapper;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
 import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionMapper;
 import com.xjrsoft.module.textbook.service.IWfTextbookSubscriptionService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 
 /**
 * @title: 教材教辅征订
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Service
@@ -86,15 +85,4 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
 
         return true;
     }
-
-    @Override
-    public WfTextbookSubscription selectById(Long id) {
-        WfTextbookSubscription wfTextbookSubscription = this.getById(id);
-        LambdaQueryWrapper<WfTextbookSubscriptionItem> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                .eq(WfTextbookSubscriptionItem::getWfTextbookSubscriptionId,id);
-        List<WfTextbookSubscriptionItem> wfTextbookSubscriptionItemList = wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.selectList(queryWrapper);
-        wfTextbookSubscription.setWfTextbookSubscriptionItemList(wfTextbookSubscriptionItemList);
-        return wfTextbookSubscription;
-    }
 }

+ 26 - 0
src/main/java/com/xjrsoft/module/textbook/vo/GradeClassListVo.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.textbook.vo;
+
+import com.xjrsoft.common.model.tree.ITreeNode;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class GradeClassListVo{
+
+
+    @ApiModelProperty("班级ID")
+    private String classId;
+
+    @ApiModelProperty("班级名称")
+    private String className;
+
+    @ApiModelProperty("年级ID")
+    private String gradeId;
+
+    @ApiModelProperty("班级名称")
+    private String gradeName;
+}
+

+ 25 - 0
src/main/java/com/xjrsoft/module/textbook/vo/GradeClassTreeVo.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.textbook.vo;
+
+import com.xjrsoft.common.model.tree.ITreeNode;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class GradeClassTreeVo implements ITreeNode<GradeClassTreeVo,String>, Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    @ApiModelProperty("")
+    private String name;
+
+    @ApiModelProperty("")
+    private String parentId;
+
+    private List<GradeClassTreeVo> children;
+}
+

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

@@ -160,4 +160,9 @@ public class TextbookPageVo {
     @ExcelProperty("使用班级")
     @ApiModelProperty("使用班级")
     private String useClass;
+    /**
+     * 使用类型(单位:学期)
+     */
+    @ApiModelProperty("使用类型(单位:学期)")
+    private Integer useType;
 }

+ 63 - 0
src/main/java/com/xjrsoft/module/textbook/vo/TextbookSubscriptionListVo.java

@@ -0,0 +1,63 @@
+package com.xjrsoft.module.textbook.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+* @title: 教材管理表单出参
+* @Author szs
+* @Date: 2023-12-25
+* @Version 1.0
+*/
+@Data
+public class TextbookSubscriptionListVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+     * 课程编号(base_course_subject)
+     */
+    @ApiModelProperty("课程编号(base_course_subject)")
+    private Long courseSubjectId;
+    /**
+     * 课程编号(base_course_subject)
+     */
+    @ApiModelProperty("课程编号(base_course_subject)")
+    private String courseSubjectIdCn;
+    /**
+    * 书名
+    */
+    @ApiModelProperty("书名")
+    private String bookName;
+    /**
+    * 出版社
+    */
+    @ApiModelProperty("出版社")
+    private String publishingHouse;
+    /**
+    * 教材类型(xjr_dictionary_item[textbook_type])
+    */
+    @ApiModelProperty("教材类型(xjr_dictionary_item[textbook_type])")
+    private String textbookType;
+    /**
+     * 教材类型(xjr_dictionary_item[textbook_type])
+     */
+    @ApiModelProperty("教材类型(xjr_dictionary_item[textbook_type])")
+    private String textbookTypeCn;
+    /**
+     * 使用类型(单位:学期)
+     */
+    @ApiModelProperty("使用类型(单位:学期)")
+    private Integer useType;
+    /**
+     * 学生用书征订数量
+     */
+    @ApiModelProperty("学生用书征订数量")
+    private Integer number;
+}

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

@@ -113,4 +113,9 @@ public class TextbookVo {
     @ApiModelProperty("使用班级")
     private List<TextbookClassRelationVo> textbookClassRelationList;
 
+    /**
+     * 使用类型(单位:学期)
+     */
+    @ApiModelProperty("使用类型(单位:学期)")
+    private Integer useType;
 }

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

@@ -12,7 +12,7 @@ import java.util.Date;
 /**
 * @title: 教材教辅征订项表单出参
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Data

+ 45 - 1
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionPageVo.java

@@ -1,5 +1,8 @@
 package com.xjrsoft.module.textbook.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -14,7 +17,7 @@ import java.util.Date;
 /**
 * @title: 教材教辅征订分页列表出参
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Data
@@ -23,72 +26,113 @@ public class WfTextbookSubscriptionPageVo {
     /**
     * 主键编号
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("主键编号")
     @ApiModelProperty("主键编号")
     private String id;
     /**
     * 创建人
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("创建人")
     @ApiModelProperty("创建人")
     private Long createUserId;
     /**
     * 创建时间
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("创建时间")
     @ApiModelProperty("创建时间")
     private Date createDate;
     /**
     * 修改人
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("修改人")
     @ApiModelProperty("修改人")
     private Long modifyUserId;
     /**
     * 修改时间
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("修改时间")
     @ApiModelProperty("修改时间")
     private Date modifyDate;
     /**
     * 删除标记
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("删除标记")
     @ApiModelProperty("删除标记")
     private Integer deleteMark;
     /**
     * 有效标志
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("有效标志")
     @ApiModelProperty("有效标志")
     private Integer enabledMark;
     /**
     * 序号
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("序号")
     @ApiModelProperty("序号")
     private Integer sortCode;
     /**
     * 申请人
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人")
     @ApiModelProperty("申请人")
     private Long applicantUserId;
     /**
     * 所在部门编号
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("所在部门编号")
     @ApiModelProperty("所在部门编号")
     private Long deptId;
     /**
     * 学期ID(base_semester)
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学期ID(base_semester)")
     @ApiModelProperty("学期ID(base_semester)")
     private Long baseSemesterId;
+    /**
+     * 学期ID(base_semester)
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学期ID(base_semester)")
+    @ApiModelProperty("学期ID(base_semester)")
+    private String baseSemesterIdCn;
     /**
     * 学科组管理编号(subject_group)
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("学科组管理编号(subject_group)")
     @ApiModelProperty("学科组管理编号(subject_group)")
     private Long subjectGroupId;
     /**
     * 备注
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("备注")
     @ApiModelProperty("备注")
     private String remark;
     /**
     * 状态(1:结束 0:未结束)
     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("状态(1:结束 0:未结束)")
     @ApiModelProperty("状态(1:结束 0:未结束)")
     private Integer status;
+    /**
+     * 征订方式(1:结束 2:未结束)
+     */
+    @ApiModelProperty("征订方式(1:按班级征订 2:按教材征订)")
+    private Integer subscription_method;
 
+    private Integer sum;
 }

+ 6 - 1
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionVo.java

@@ -3,12 +3,17 @@ package com.xjrsoft.module.textbook.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Date;
+import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
 
 /**
 * @title: 教材教辅征订表单出参
 * @Author szs
-* @Date: 2023-12-25
+* @Date: 2024-06-04
 * @Version 1.0
 */
 @Data

+ 1 - 1
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -1300,7 +1300,7 @@ public class FreeMarkerGeneratorTest {
         params.setTableConfigs(tableConfigs);
         params.setPage(true);//是否生成分页接口
         params.setImport(false);//是否生成导入接口
-        params.setExport(false);//是否生成导出接口
+        params.setExport(true);//是否生成导出接口
         params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
         params.setDs(ds);