Browse Source

教材出库记录

dzx 1 year ago
parent
commit
2f45136e2c

+ 18 - 25
src/main/java/com/xjrsoft/module/textbook/controller/TextbookIssueRecordController.java

@@ -1,39 +1,36 @@
 package com.xjrsoft.module.textbook.controller;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 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.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.common.model.result.RT;
-import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.textbook.dto.AddTextbookIssueRecordDto;
-import com.xjrsoft.module.textbook.dto.UpdateTextbookIssueRecordDto;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.support.ExcelTypeEnum;
-import org.springframework.http.ResponseEntity;
-import java.io.ByteArrayOutputStream;
-import java.util.ArrayList;
-
 import com.xjrsoft.module.textbook.dto.TextbookIssueRecordPageDto;
+import com.xjrsoft.module.textbook.dto.UpdateTextbookIssueRecordDto;
 import com.xjrsoft.module.textbook.entity.TextbookIssueRecord;
 import com.xjrsoft.module.textbook.service.ITextbookIssueRecordService;
 import com.xjrsoft.module.textbook.vo.TextbookIssueRecordPageVo;
-
 import com.xjrsoft.module.textbook.vo.TextbookIssueRecordVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -56,11 +53,7 @@ public class TextbookIssueRecordController {
     @SaCheckPermission("textbookissuerecord:detail")
     public RT<PageOutput<TextbookIssueRecordPageVo>> page(@Valid TextbookIssueRecordPageDto dto){
 
-        LambdaQueryWrapper<TextbookIssueRecord> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                    .orderByDesc(TextbookIssueRecord::getId)
-                .select(TextbookIssueRecord.class,x -> VoToColumnUtil.fieldsToColumns(TextbookIssueRecordPageVo.class).contains(x.getProperty()));
-        IPage<TextbookIssueRecord> page = textbookIssueRecordService.page(ConventPage.getPage(dto), queryWrapper);
+        Page<TextbookIssueRecordPageVo> page = textbookIssueRecordService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
         PageOutput<TextbookIssueRecordPageVo> pageOutput = ConventPage.getPageOutput(page, TextbookIssueRecordPageVo.class);
         return RT.ok(pageOutput);
     }

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

@@ -22,5 +22,30 @@ import java.util.Date;
 @EqualsAndHashCode(callSuper = false)
 public class TextbookIssueRecordPageDto extends PageInput {
 
+    @ApiModelProperty("教材类型")
+    public String textbookType;
 
+    @ApiModelProperty("学期id")
+    public Long baseSemesterId;
+
+    @ApiModelProperty("学科组id")
+    public Long subjectGroupId;
+
+    @ApiModelProperty("课程id")
+    public Long courseSubjectId;
+
+    @ApiModelProperty("班级id")
+    public Long classId;
+
+    @ApiModelProperty("书名")
+    public String bookName;
+
+    @ApiModelProperty("书号")
+    public String issn;
+
+    @ApiModelProperty("规格型号")
+    public String specificationsModels;
+
+    @ApiModelProperty("规划教材")
+    public String isTextbookPlan;
 }

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

@@ -1,8 +1,11 @@
 package com.xjrsoft.module.textbook.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.textbook.dto.TextbookIssueRecordPageDto;
 import com.xjrsoft.module.textbook.entity.TextbookIssueRecord;
+import com.xjrsoft.module.textbook.vo.TextbookIssueRecordPageVo;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -13,5 +16,5 @@ import org.apache.ibatis.annotations.Mapper;
 */
 @Mapper
 public interface TextbookIssueRecordMapper extends MPJBaseMapper<TextbookIssueRecord> {
-
+    Page<TextbookIssueRecordPageVo> getPage(Page<TextbookIssueRecordPageDto> page, TextbookIssueRecordPageDto dto);
 }

+ 5 - 3
src/main/java/com/xjrsoft/module/textbook/service/ITextbookIssueRecordService.java

@@ -1,10 +1,10 @@
 package com.xjrsoft.module.textbook.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.textbook.dto.TextbookIssueRecordPageDto;
 import com.xjrsoft.module.textbook.entity.TextbookIssueRecord;
-import lombok.Data;
-import java.util.List;
+import com.xjrsoft.module.textbook.vo.TextbookIssueRecordPageVo;
 
 /**
 * @title: 教材出库记录
@@ -14,4 +14,6 @@ import java.util.List;
 */
 
 public interface ITextbookIssueRecordService extends MPJBaseService<TextbookIssueRecord> {
+
+    Page<TextbookIssueRecordPageVo> getPage(Page<TextbookIssueRecordPageDto> page, TextbookIssueRecordPageDto dto);
 }

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

@@ -1,10 +1,13 @@
 package com.xjrsoft.module.textbook.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.textbook.dto.TextbookIssueRecordPageDto;
 import com.xjrsoft.module.textbook.entity.TextbookIssueRecord;
 import com.xjrsoft.module.textbook.mapper.TextbookIssueRecordMapper;
 import com.xjrsoft.module.textbook.service.ITextbookIssueRecordService;
+import com.xjrsoft.module.textbook.vo.TextbookIssueRecordPageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -22,4 +25,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 @Service
 @AllArgsConstructor
 public class TextbookIssueRecordServiceImpl extends MPJBaseServiceImpl<TextbookIssueRecordMapper, TextbookIssueRecord> implements ITextbookIssueRecordService {
+    private final TextbookIssueRecordMapper textbookIssueRecordMapper;
+    @Override
+    public Page<TextbookIssueRecordPageVo> getPage(Page<TextbookIssueRecordPageDto> page, TextbookIssueRecordPageDto dto) {
+        return textbookIssueRecordMapper.getPage(page, dto);
+    }
 }

+ 56 - 91
src/main/java/com/xjrsoft/module/textbook/vo/TextbookIssueRecordPageVo.java

@@ -30,110 +30,75 @@ public class TextbookIssueRecordPageVo {
     @ExcelProperty("主键编号")
     @ApiModelProperty("主键编号")
     private String id;
-    /**
-    * 创建人
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("创建人")
-    @ApiModelProperty("创建人")
-    private Long createUserId;
-    /**
-    * 创建时间
-    */
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("创建时间")
-    @ApiModelProperty("创建时间")
-    private Date createDate;
-    /**
-    * 修改人
-    */
+    @ExcelProperty("序号")
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("修改人")
-    @ApiModelProperty("修改人")
-    private Long modifyUserId;
-    /**
-    * 修改时间
-    */
+    @ExcelProperty("书名")
+    @ApiModelProperty("书名")
+    private String bookName;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("修改时间")
-    @ApiModelProperty("修改时间")
-    private Date modifyDate;
-    /**
-    * 删除标记
-    */
+    @ExcelProperty("出版社")
+    @ApiModelProperty("出版社")
+    private String publishingHouse;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("删除标记")
-    @ApiModelProperty("删除标记")
-    private Integer deleteMark;
-    /**
-    * 有效标志
-    */
+    @ExcelProperty("作者(主编)")
+    @ApiModelProperty("作者(主编)")
+    private String editorInChief;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("有效标志")
-    @ApiModelProperty("有效标志")
-    private Integer enabledMark;
-    /**
-    * 序号
-    */
+    @ExcelProperty("学科组")
+    @ApiModelProperty("学科组")
+    private String groupName;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("序号")
-    @ApiModelProperty("序号")
-    private Integer sortCode;
-    /**
-    * 教材申领编号
-    */
+    @ExcelProperty("使用年级")
+    @ApiModelProperty("使用年级")
+    private String gradeName;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("教材申领编号")
-    @ApiModelProperty("教材申领编号")
-    private Long wfTextbookClaimId;
-    /**
-    * 教材申领项编号
-    */
+    @ExcelProperty("使用班级")
+    @ApiModelProperty("使用班级")
+    private String className;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("教材申领项编号")
-    @ApiModelProperty("教材申领项编号")
-    private Long wfTextbookClaimItemId;
-    /**
-    * 出库数量
-    */
+    @ExcelProperty("对应课程")
+    @ApiModelProperty("对应课程")
+    private String courseName;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("出库数量")
-    @ApiModelProperty("出库数量")
-    private Integer issueNumber;
-    /**
-    * 剩余数量
-    */
+    @ExcelProperty("类型")
+    @ApiModelProperty("类型")
+    private String textbookTypeCn;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("剩余数量")
-    @ApiModelProperty("剩余数量")
-    private Integer remainingNumber;
-    /**
-    * 领取用户编号
-    */
+    @ExcelProperty("规格型号")
+    @ApiModelProperty("规格型号")
+    private String specificationsModels;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("领取用户编号")
-    @ApiModelProperty("领取用户编号")
-    private Long receiveUserId;
-    /**
-    * 出库用户编号
-    */
+    @ExcelProperty("出库方式")
+    @ApiModelProperty("出库方式")
+    private String issueModeCn;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("出库用户编号")
-    @ApiModelProperty("出库用户编号")
-    private Long issueUserId;
-    /**
-    * 出库方式(xjr_dictionary_item[issue_mode])
-    */
+    @ExcelProperty("出库时间")
+    @ApiModelProperty("出库时间")
+    private Date createDate;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("出库方式(xjr_dictionary_item[issue_mode])")
-    @ApiModelProperty("出库方式(xjr_dictionary_item[issue_mode])")
-    private String issueMode;
-    /**
-    * 备注
-    */
+    @ExcelProperty("领取人员")
+    @ApiModelProperty("领取人员")
+    private String claimUser;
+
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("备注")
-    @ApiModelProperty("备注")
-    private String remark;
+    @ExcelProperty("出库数量")
+    @ApiModelProperty("出库数量")
+    private Integer issueNumber;
 
 }

+ 51 - 0
src/main/resources/mapper/textbook/TextbookIssueRecordMapper.xml

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.textbook.mapper.TextbookIssueRecordMapper">
+    <select id="getPage" parameterType="com.xjrsoft.module.textbook.dto.TextbookIssueRecordPageDto" resultType="com.xjrsoft.module.textbook.vo.TextbookIssueRecordPageVo">
+        SELECT t1.id,t1.sort_code,t3.issn,t3.book_name,t3.publishing_house,t3.editor_in_chief,t7.group_name,t5.name AS grade_name,
+        t6.name AS class_name,t8.name AS course_name,t10.name AS textbook_type_cn,t3.specifications_models,
+        t11.name AS issue_mode_cn,t1.create_date,t9.name AS claim_user,t1.issue_number FROM textbook_issue_record t1
+        LEFT JOIN wf_textbook_claim_item t2 ON t1.wf_textbook_claim_item_id = t2.id
+        LEFT JOIN textbook t3 ON t2.textbook_id = t3.id
+        LEFT JOIN wf_textbook_claim t4 ON t2.wf_textbook_claim_id = t4.id
+        LEFT JOIN base_grade t5 ON t3.grade_id = t5.id
+        LEFT JOIN base_class t6 ON t4.class_id = t6.id
+        LEFT JOIN subject_group t7 ON t3.subject_group_id = t7.id
+        LEFT JOIN base_course_subject t8 ON t3.course_subject_id = t8.id
+        LEFT JOIN xjr_user t9 ON t4.claim_user_id = t9.id
+        LEFT JOIN xjr_dictionary_detail t10 ON t3.textbook_type = t10.code AND t10.item_id = 1739209191193636865
+        LEFT JOIN xjr_dictionary_detail t11 ON t1.issue_mode = t11.code AND t11.item_id = 1739821685805215745
+        WHERE t1.delete_mark = 0
+        <if test="dto.textbookType != null and dto.textbookType != ''">
+            and t3.textbook_type = #{dto.textbookType}
+        </if>
+        <if test="dto.baseSemesterId != null">
+            and t3.base_semester_id = #{dto.baseSemesterId}
+        </if>
+        <if test="dto.subjectGroupId != null">
+            and t3.subject_group_id = #{dto.subjectGroupId}
+        </if>
+        <if test="dto.courseSubjectId != null">
+            and t3.course_subject_id = #{dto.courseSubjectId}
+        </if>
+        <if test="dto.classId != null">
+            and t4.class_id = #{dto.classId}
+        </if>
+        <if test="dto.bookName != null and dto.bookName != ''">
+            and t3.book_name like concat('%',#{dto.bookName}, '%')
+        </if>
+        <if test="dto.issn != null and dto.issn != ''">
+            and t3.issn like concat('%',#{dto.issn}, '%')
+        </if>
+        <if test="dto.specificationsModels != null and dto.specificationsModels != ''">
+            and t3.specifications_models like concat('%',#{dto.specificationsModels}, '%')
+        </if>
+        <if test="dto.isTextbookPlan != null and dto.isTextbookPlan != ''">
+            and t3.is_textbook_plan = #{dto.isTextbookPlan}
+        </if>
+        ORDER BY t1.sort_code
+    </select>
+
+</mapper>