Bläddra i källkod

教材申领成功后添加领取人记录

phoenix 1 år sedan
förälder
incheckning
fce4e981a5
21 ändrade filer med 567 tillägg och 248 borttagningar
  1. 30 0
      src/main/java/com/xjrsoft/module/liteflow/node/AddClaimUserNode.java
  2. 0 116
      src/main/java/com/xjrsoft/module/textbook/controller/WfExerciseBookController.java
  3. 0 102
      src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookSubscriptionController.java
  4. 48 0
      src/main/java/com/xjrsoft/module/textbook/dto/AddTextbookClaimUserDto.java
  5. 1 1
      src/main/java/com/xjrsoft/module/textbook/dto/TeacherCheckByclassDto.java
  6. 26 0
      src/main/java/com/xjrsoft/module/textbook/dto/TextbookClaimUserPageDto.java
  7. 32 0
      src/main/java/com/xjrsoft/module/textbook/dto/UpdateTextbookClaimUserDto.java
  8. 0 7
      src/main/java/com/xjrsoft/module/textbook/dto/WfTextbookClaimPageDto.java
  9. 98 0
      src/main/java/com/xjrsoft/module/textbook/entity/TextbookClaimUser.java
  10. 17 0
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookClaimUserMapper.java
  11. 17 0
      src/main/java/com/xjrsoft/module/textbook/service/ITextbookClaimUserService.java
  12. 1 1
      src/main/java/com/xjrsoft/module/textbook/service/ITextbookStudentClaimService.java
  13. 2 0
      src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookClaimService.java
  14. 25 0
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookClaimUserServiceImpl.java
  15. 31 21
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java
  16. 58 0
      src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookClaimServiceImpl.java
  17. 79 0
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookClaimUserPageVo.java
  18. 49 0
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookClaimUserVo.java
  19. 1 0
      src/test/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImplTest.java
  20. 23 0
      src/test/java/com/xjrsoft/module/textbook/service/impl/WfTextbookClaimServiceImplTest.java
  21. 29 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

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

@@ -0,0 +1,30 @@
+package com.xjrsoft.module.liteflow.node;
+
+import cn.hutool.core.convert.Convert;
+import com.xjrsoft.module.textbook.service.IWfTextbookClaimService;
+import com.yomahub.liteflow.core.NodeComponent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 教材申领审核通过后进行领取人记录添加规则
+ */
+@Component("add_claim_user_node")
+public class AddClaimUserNode extends NodeComponent {
+    @Autowired
+    private IWfTextbookClaimService wfTextbookClaimService;
+
+    @Override
+    public void process() throws Exception {
+        // 获取表单中数据编号
+        Map<String, Object> params = this.getFirstContextBean();
+        Object value = util.getFormDatKey(params,"id");
+        Long formId = Convert.toLong(value);
+        if (formId != null) {
+            // 数据处理
+            wfTextbookClaimService.dataHandleAddClaimUserNode(formId);
+        }
+    }
+}

+ 0 - 116
src/main/java/com/xjrsoft/module/textbook/controller/WfExerciseBookController.java

@@ -1,116 +0,0 @@
-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.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.xjrsoft.common.constant.GlobalConstant;
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
-import com.xjrsoft.common.page.ConventPage;
-import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.common.model.result.RT;
-import com.xjrsoft.common.utils.VoToColumnUtil;
-import com.xjrsoft.module.textbook.dto.AddWfExerciseBookDto;
-import com.xjrsoft.module.textbook.dto.UpdateWfExerciseBookDto;
-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.WfExerciseBookPageDto;
-import com.xjrsoft.module.textbook.entity.WfExerciseBook;
-import com.xjrsoft.module.textbook.service.IWfExerciseBookService;
-import com.xjrsoft.module.textbook.vo.WfExerciseBookPageVo;
-
-import com.xjrsoft.module.textbook.vo.WfExerciseBookVo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
-import java.util.List;
-
-/**
-* @title: 作业本征订
-* @Author szs
-* @Date: 2023-12-27
-* @Version 1.0
-*/
-@RestController
-@RequestMapping("/textbook" + "/wfExerciseBook")
-@Api(value = "/textbook"  + "/wfExerciseBook",tags = "作业本征订代码")
-@AllArgsConstructor
-public class WfExerciseBookController {
-
-
-    private final IWfExerciseBookService wfExerciseBookService;
-
-    @GetMapping(value = "/page")
-    @ApiOperation(value="作业本征订列表(分页)")
-    @SaCheckPermission("wfexercisebook:detail")
-    public RT<PageOutput<WfExerciseBookPageVo>> page(@Valid WfExerciseBookPageDto dto){
-
-        LambdaQueryWrapper<WfExerciseBook> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                    .orderByDesc(WfExerciseBook::getId)
-                .select(WfExerciseBook.class,x -> VoToColumnUtil.fieldsToColumns(WfExerciseBookPageVo.class).contains(x.getProperty()));
-        IPage<WfExerciseBook> page = wfExerciseBookService.page(ConventPage.getPage(dto), queryWrapper);
-        PageOutput<WfExerciseBookPageVo> pageOutput = ConventPage.getPageOutput(page, WfExerciseBookPageVo.class);
-        return RT.ok(pageOutput);
-    }
-
-    @GetMapping(value = "/info")
-    @ApiOperation(value="根据id查询作业本征订信息")
-    @SaCheckPermission("wfexercisebook:detail")
-    public RT<WfExerciseBookVo> info(@RequestParam Long id){
-        WfExerciseBook wfExerciseBook = wfExerciseBookService.getByIdDeep(id);
-        if (wfExerciseBook == null) {
-           return RT.error("找不到此数据!");
-        }
-        return RT.ok(BeanUtil.toBean(wfExerciseBook, WfExerciseBookVo.class));
-    }
-
-
-    @PostMapping
-    @ApiOperation(value = "新增作业本征订")
-    @SaCheckPermission("wfexercisebook:add")
-    public RT<Boolean> add(@Valid @RequestBody AddWfExerciseBookDto dto){
-        WfExerciseBook wfExerciseBook = BeanUtil.toBean(dto, WfExerciseBook.class);
-        boolean isSuccess = wfExerciseBookService.add(wfExerciseBook);
-    return RT.ok(isSuccess);
-    }
-
-    @PutMapping
-    @ApiOperation(value = "修改作业本征订")
-    @SaCheckPermission("wfexercisebook:edit")
-    public RT<Boolean> update(@Valid @RequestBody UpdateWfExerciseBookDto dto){
-
-        WfExerciseBook wfExerciseBook = BeanUtil.toBean(dto, WfExerciseBook.class);
-        return RT.ok(wfExerciseBookService.update(wfExerciseBook));
-
-    }
-
-    @DeleteMapping
-    @ApiOperation(value = "删除作业本征订")
-    @SaCheckPermission("wfexercisebook:delete")
-    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
-        return RT.ok(wfExerciseBookService.delete(ids));
-
-    }
-
-    @GetMapping("/export")
-    @ApiOperation(value = "导出")
-    public ResponseEntity<byte[]> exportData(@Valid WfExerciseBookPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
-        List<WfExerciseBookPageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<WfExerciseBookPageVo>) page(dto).getData()).getList();
-        ByteArrayOutputStream bot = new ByteArrayOutputStream();
-        EasyExcel.write(bot, WfExerciseBookPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
-
-        return RT.fileStream(bot.toByteArray(), "WfExerciseBook" + ExcelTypeEnum.XLSX.getValue());
-    }
-}

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

@@ -1,102 +0,0 @@
-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.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.xjrsoft.common.constant.GlobalConstant;
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
-import com.xjrsoft.common.page.ConventPage;
-import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.common.model.result.RT;
-import com.xjrsoft.common.utils.VoToColumnUtil;
-import com.xjrsoft.module.textbook.dto.AddWfTextbookSubscriptionDto;
-import com.xjrsoft.module.textbook.dto.UpdateWfTextbookSubscriptionDto;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-
-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.List;
-
-/**
-* @title: 教材教辅征订
-* @Author szs
-* @Date: 2023-12-25
-* @Version 1.0
-*/
-@RestController
-@RequestMapping("/textbook" + "/wfTextbookSubscription")
-@Api(value = "/textbook"  + "/wfTextbookSubscription",tags = "教材教辅征订代码")
-@AllArgsConstructor
-public class WfTextbookSubscriptionController {
-
-
-    private final IWfTextbookSubscriptionService wfTextbookSubscriptionService;
-
-    @GetMapping(value = "/page")
-    @ApiOperation(value="教材教辅征订列表(分页)")
-    @SaCheckPermission("wftextbooksubscription:detail")
-    public RT<PageOutput<WfTextbookSubscriptionPageVo>> page(@Valid WfTextbookSubscriptionPageDto dto){
-
-        LambdaQueryWrapper<WfTextbookSubscription> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                    .orderByDesc(WfTextbookSubscription::getId)
-                .select(WfTextbookSubscription.class,x -> VoToColumnUtil.fieldsToColumns(WfTextbookSubscriptionPageVo.class).contains(x.getProperty()));
-        IPage<WfTextbookSubscription> page = wfTextbookSubscriptionService.page(ConventPage.getPage(dto), 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));
-
-    }
-
-}

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

@@ -0,0 +1,48 @@
+package com.xjrsoft.module.textbook.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 教材领取人员
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+public class AddTextbookClaimUserDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 教材申领编号
+    */
+    @ApiModelProperty("教材申领编号")
+    private Long wfTextbookClaimId;
+    /**
+    * 用户编号
+    */
+    @ApiModelProperty("用户编号")
+    private Long userId;
+    /**
+    * 用户类型(1:学生 2=教师)
+    */
+    @ApiModelProperty("用户类型(1:学生 2=教师)")
+    private Integer userType;
+
+}

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

@@ -20,6 +20,6 @@ public class TeacherCheckByclassDto{
     /**
      * 领取情况(1=全部数据,2=该教材全部领取,3=该教材部分未领取)
      */
-    @ApiModelProperty("领取情况")
+    @ApiModelProperty("领取情况(1=全部数据,2=该教材全部领取,3=该教材部分未领取)")
     private Integer claimStatus;
 }

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

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.textbook.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+* @title: 教材领取人员分页查询入参
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TextbookClaimUserPageDto extends PageInput {
+
+
+}

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

@@ -0,0 +1,32 @@
+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;
+
+
+
+/**
+* @title: 教材领取人员
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+public class UpdateTextbookClaimUserDto extends AddTextbookClaimUserDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

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

@@ -1,15 +1,8 @@
 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;
 
 
 /**

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

@@ -0,0 +1,98 @@
+package com.xjrsoft.module.textbook.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 教材领取人员
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+@TableName("textbook_claim_user")
+@ApiModel(value = "textbook_claim_user", description = "教材领取人员")
+public class TextbookClaimUser 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 wfTextbookClaimId;
+    /**
+    * 用户编号
+    */
+    @ApiModelProperty("用户编号")
+    private Long userId;
+    /**
+    * 用户类型(1:学生 2=教师)
+    */
+    @ApiModelProperty("用户类型(1:学生 2=教师)")
+    private Integer userType;
+
+
+}

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

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.textbook.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.textbook.entity.TextbookClaimUser;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 教材领取人员
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Mapper
+public interface TextbookClaimUserMapper extends MPJBaseMapper<TextbookClaimUser> {
+
+}

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

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.textbook.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.textbook.entity.TextbookClaimUser;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 教材领取人员
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+
+public interface ITextbookClaimUserService extends MPJBaseService<TextbookClaimUser> {
+}

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

@@ -59,7 +59,7 @@ public interface ITextbookStudentClaimService extends MPJBaseService<TextbookStu
 
     /**
      * 教师查看一本教材的学生领取情况页面
-     * @param 
+     * @param
      * @return
      */
     List<TextbookClaimVO> getTeacherGetStuNoClaimList(Long studentUserId);

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

@@ -64,4 +64,6 @@ public interface IWfTextbookClaimService extends MPJBaseService<WfTextbookClaim>
      */
     Boolean confirmDistribute(ConfirmDistributeDto dto);
 
+    Boolean dataHandleAddClaimUserNode(Long id);
+
 }

+ 25 - 0
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookClaimUserServiceImpl.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.textbook.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.textbook.entity.TextbookClaimUser;
+import com.xjrsoft.module.textbook.mapper.TextbookClaimUserMapper;
+import com.xjrsoft.module.textbook.service.ITextbookClaimUserService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+/**
+* @title: 教材领取人员
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class TextbookClaimUserServiceImpl extends MPJBaseServiceImpl<TextbookClaimUserMapper, TextbookClaimUser> implements ITextbookClaimUserService {
+}

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

@@ -181,6 +181,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
     public Boolean dataHandleAddTextbookNode(Long dataId) {
         WfTextbookSubscription wfTextbookSubscription = iWfTextbookSubscriptionService.selectById(dataId);
         if (ObjectUtil.isNotNull(wfTextbookSubscription) && ObjectUtil.isNotNull(wfTextbookSubscription.getWfTextbookSubscriptionItemList()) && wfTextbookSubscription.getWfTextbookSubscriptionItemList().size() > 0) {
+            //遍历征订项
             for (WfTextbookSubscriptionItem wfTextbookSubscriptionItem : wfTextbookSubscription.getWfTextbookSubscriptionItemList()) {
                 Long semesterId = wfTextbookSubscription.getBaseSemesterId();
                 String issn = wfTextbookSubscriptionItem.getIssn();
@@ -190,7 +191,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                         .eq(Textbook::getBaseSemesterId, semesterId);
                 List<Textbook> textbookList = this.list(queryWrapper);
                 //征订的教材没有在教材管理
-                if (ObjectUtil.isNull(textbookList) || textbookList.size() <= 0) {//该书不存在于教材管理
+                if (ObjectUtil.isNull(textbookList) || textbookList.size() == 0) {
                     Textbook textbook = new Textbook() {{
                         setIssn(wfTextbookSubscriptionItem.getIssn());
                         setIsbn(wfTextbookSubscriptionItem.getIsbn());
@@ -212,11 +213,12 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                     }};
 
                     //班级不为空
+                    List<Long> classIdList = new ArrayList<>();
                     if (ObjectUtil.isNotNull(wfTextbookSubscriptionItem.getClassIds()) && !wfTextbookSubscriptionItem.getClassIds().equals("")) {
                         //将班级ids转换为List
                         String classIds = wfTextbookSubscriptionItem.getClassIds();
                         String[] classIdStrs = classIds.split(",");
-                        List<Long> classIdList = new ArrayList<>();
+
                         for (String classIdStr : classIdStrs) {
                             classIdList.add(Long.parseLong(classIdStr));
                         }
@@ -229,7 +231,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                         List<BaseClass> baseClassList = baseClassService.list(queryWrapper1);
                         if (ObjectUtil.isNotNull(baseClassList) && baseClassList.size() == 1) {
                             textbook.setGradeId(baseClassList.get(0).getGradeId());
-                        }
+                        }}
 
                         //插入教材数据
                         textbookTextbookMapper.insert(textbook);
@@ -241,11 +243,11 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                                 setClassId(classId);
                             }});
                         }
-                    }
+
                     //添加教材征订记录
                     textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
                         setTextbookId(textbook.getId());
-                        setWfTextbookSubscriptionId(wfTextbookSubscription.getId());
+                        setWfTextbookSubscriptionId(wfTextbookSubscriptionItem.getId());//该字段存入正定项的id,征订项中有所属征订记录
                     }});
                 } else {
 
@@ -267,7 +269,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                     //添加教材征订记录
                     textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
                         setTextbookId(textbook.getId());
-                        setWfTextbookSubscriptionId(wfTextbookSubscription.getId());
+                        setWfTextbookSubscriptionId(wfTextbookSubscriptionItem.getId());//该字段存入正定项的id,征订项中有所属征订记录
                     }});
                 }
             }
@@ -282,6 +284,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
      * @return
      */
     @Override
+    @Transactional
     public Boolean dataHandleAddExerciseBookNode(Long dataId) {
         WfExerciseBook wfExerciseBook = wfExerciseBookService.selectById(dataId);
         if (ObjectUtil.isNotNull(wfExerciseBook) && ObjectUtil.isNotNull(wfExerciseBook.getWfExerciseBookItemList()) && wfExerciseBook.getWfExerciseBookItemList().size() > 0) {
@@ -294,17 +297,21 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                         .eq(Textbook::getBaseSemesterId, semesterId);
                 List<Textbook> textbookList = this.list(queryWrapper);
                 //征订的作业本没有在教材管理
-                if (ObjectUtil.isNull(textbookList) || textbookList.size() <= 0) {
+                if (ObjectUtil.isNull(textbookList) || textbookList.size() == 0) {
                     Textbook textbook = new Textbook() {{
                         setBaseSemesterId(wfExerciseBook.getBaseSemesterId());
                         setBookName(wfExerciseBookItem.getSubscriptionType());
                         setTextbookType(TextbookTypeEnum.TExerciseBook.getCode());
                         //年级id
-                        LambdaQueryWrapper<BaseClass> queryWrapper1 = new LambdaQueryWrapper<>();
-                        queryWrapper1
-                                .eq(BaseClass::getId, wfExerciseBook.getClassId());
-                        BaseClass baseClass = baseClassService.getOne(queryWrapper1);
-                        setGradeId(baseClass.getGradeId());
+                        if (ObjectUtil.isNotNull(wfExerciseBook.getClassId()) && wfExerciseBook.getClassId() > 0){
+                            LambdaQueryWrapper<BaseClass> queryWrapper1 = new LambdaQueryWrapper<>();
+                            queryWrapper1
+                                    .eq(BaseClass::getId, wfExerciseBook.getClassId());
+                            BaseClass baseClass = baseClassService.getOne(queryWrapper1);
+                            if(ObjectUtil.isNotNull(baseClass)){
+                                setGradeId(baseClass.getGradeId());
+                            }
+                        }
                         setAppraisalPrice(wfExerciseBookItem.getAppraisalPrice());
                     }};
 
@@ -312,22 +319,25 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                     textbookTextbookMapper.insert(textbook);
 
                     //插入班级和教材关系
-                    textbookTextbookClassRelationMapper.insert(new TextbookClassRelation() {{
-                        setTextbookId(textbook.getId());
-                        setClassId(wfExerciseBook.getClassId());
-                    }});
+                    if(ObjectUtil.isNotNull(wfExerciseBook.getClassId()) && wfExerciseBook.getClassId() > 0){
+                        textbookTextbookClassRelationMapper.insert(new TextbookClassRelation() {{
+                            setTextbookId(textbook.getId());
+                            setClassId(wfExerciseBook.getClassId());
+                        }});
+                    }
+
 
                     //添加教材征订记录
                     textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
                         setTextbookId(textbook.getId());
-                        setWfTextbookSubscriptionId(wfExerciseBook.getId());
+                        setWfTextbookSubscriptionId(wfExerciseBookItem.getId());
                     }});
                 } else {
                     //征订的教材在教材管理,进行班级的和记录的管理
                     Textbook textbook = textbookList.get(0);
 
                     //班级不为空
-                    if (ObjectUtil.isNotNull(wfExerciseBook.getClassId()) && !wfExerciseBook.getClassId().equals("")) {
+                    if (ObjectUtil.isNotNull(wfExerciseBook.getClassId()) && wfExerciseBook.getClassId() > 0) {
                         textbookTextbookClassRelationMapper.insert(new TextbookClassRelation() {{
                             setTextbookId(textbook.getId());
                             setClassId(wfExerciseBook.getClassId());
@@ -337,7 +347,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                     //添加教材征订记录
                     textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
                         setTextbookId(textbook.getId());
-                        setWfTextbookSubscriptionId(wfExerciseBook.getId());
+                        setWfTextbookSubscriptionId(wfExerciseBookItem.getId());
                     }});
                 }
             }
@@ -423,9 +433,9 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
 
         //更新总的库存数量
         Textbook updateTextbook = new Textbook();
-        updateTextbook.setId(dto.getTextbookId());
+        updateTextbook.setId(textbook.getId());
         Integer oldStock = ObjectUtil.isNull(textbook.getStock()) ? 0 : textbook.getStock();
-        updateTextbook.setStock(oldStock + dto.getWarehouseNumber());
+        updateTextbook.setStock(oldStock + (ObjectUtil.isNull(dto.getWarehouseNumber()) ? 0 : dto.getWarehouseNumber()));
         boolean isSuccess = this.updateById(updateTextbook);
 
         TextbookWarehouseRecord textbookWarehouseRecord = BeanUtil.toBean(dto, TextbookWarehouseRecord.class);

+ 58 - 0
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookClaimServiceImpl.java

@@ -15,6 +15,7 @@ import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
 import com.xjrsoft.module.textbook.dto.ConfirmDistributeDto;
 import com.xjrsoft.module.textbook.dto.WfTextbookClaimPageDto;
 import com.xjrsoft.module.textbook.entity.*;
+import com.xjrsoft.module.textbook.mapper.TextbookClaimUserMapper;
 import com.xjrsoft.module.textbook.mapper.WfTextbookClaimItemMapper;
 import com.xjrsoft.module.textbook.mapper.WfTextbookClaimMapper;
 import com.xjrsoft.module.textbook.service.ITextbookIssueRecordService;
@@ -54,6 +55,8 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
 
     private final ITextbookIssueRecordService textbookIssueRecordService;
 
+    private final TextbookClaimUserMapper textbookClaimUserMapper;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -271,4 +274,59 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
         return true;
     }
 
+    @Override
+    @Transactional
+    public Boolean dataHandleAddClaimUserNode(Long id) {
+        WfTextbookClaim wfTextbookClaim = this.getById(id);
+        if(ObjectUtil.isNotNull(wfTextbookClaim)
+                && ObjectUtil.isNotNull(wfTextbookClaim.getClaimType())){
+            //申领类型是学生申领,申请人,学生代表可领取
+            if(wfTextbookClaim.getClaimType().equals(ClaimTypeEnum.ClaimStudent.getCode())){
+                //所有需要添加的可领取人ID
+                List<TextbookClaimUser> textbookClaimUserList = new ArrayList<>();
+                textbookClaimUserList.add(new TextbookClaimUser(){{
+                    setWfTextbookClaimId(wfTextbookClaim.getId());
+                    setUserId(wfTextbookClaim.getApplicantUserId());
+                    setUserType(2);
+                }});
+                textbookClaimUserList.add(new TextbookClaimUser(){{
+                    setWfTextbookClaimId(wfTextbookClaim.getId());
+                    setUserId(wfTextbookClaim.getStudentUserId());
+                    setUserType(1);
+                }});
+                for (TextbookClaimUser textbookClaimUser : textbookClaimUserList) {
+                    textbookClaimUserMapper.insert(textbookClaimUser);
+                }
+            }
+
+            //申领类型是教师申领,申请人,领取人可领取
+            if(wfTextbookClaim.getClaimType().equals(ClaimTypeEnum.ClaimTeacher.getCode())){
+                //拆分代领取人
+                String receiveUserIdStr = wfTextbookClaim.getReceiveUserId();
+                if (ObjectUtil.isNotNull(receiveUserIdStr) && !receiveUserIdStr.equals("")) {
+                    String[] receiveUserIdStrs = receiveUserIdStr.split(",");
+                    List<TextbookClaimUser> textbookClaimUserList = new ArrayList<>();
+                    for (String str : receiveUserIdStrs) {
+                        textbookClaimUserList.add(new TextbookClaimUser(){{
+                            setWfTextbookClaimId(wfTextbookClaim.getId());
+                            setUserId(Long.parseLong(str));
+                            setUserType(2);
+                        }});
+                    }
+                    textbookClaimUserList.add(new TextbookClaimUser(){{
+                        setWfTextbookClaimId(wfTextbookClaim.getId());
+                        setUserId(wfTextbookClaim.getApplicantUserId());
+                        setUserType(2);
+                    }});
+                    LambdaQueryWrapper<XjrUser> queryWrapper = new LambdaQueryWrapper<>();
+                    for (TextbookClaimUser textbookClaimUser : textbookClaimUserList) {
+                        textbookClaimUserMapper.insert(textbookClaimUser);
+                    }
+                }
+            }
+
+        }
+        return true;
+    }
+
 }

+ 79 - 0
src/main/java/com/xjrsoft/module/textbook/vo/TextbookClaimUserPageVo.java

@@ -0,0 +1,79 @@
+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 dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+public class TextbookClaimUserPageVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty("修改时间")
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ApiModelProperty("有效标志")
+    private Integer enabledMark;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 教材申领编号
+    */
+    @ApiModelProperty("教材申领编号")
+    private Long wfTextbookClaimId;
+    /**
+    * 用户编号
+    */
+    @ApiModelProperty("用户编号")
+    private Long userId;
+    /**
+    * 用户类型(1:学生 2=教师)
+    */
+    @ApiModelProperty("用户类型(1:学生 2=教师)")
+    private Integer userType;
+
+}

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

@@ -0,0 +1,49 @@
+package com.xjrsoft.module.textbook.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+/**
+* @title: 教材领取人员表单出参
+* @Author dzx
+* @Date: 2023-12-29
+* @Version 1.0
+*/
+@Data
+public class TextbookClaimUserVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 序号
+    */
+    @ApiModelProperty("序号")
+    private Integer sortCode;
+    /**
+    * 教材申领编号
+    */
+    @ApiModelProperty("教材申领编号")
+    private Long wfTextbookClaimId;
+    /**
+    * 用户编号
+    */
+    @ApiModelProperty("用户编号")
+    private Long userId;
+    /**
+    * 用户类型(1:学生 2=教师)
+    */
+    @ApiModelProperty("用户类型(1:学生 2=教师)")
+    private Integer userType;
+
+
+
+}

+ 1 - 0
src/test/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImplTest.java

@@ -25,4 +25,5 @@ class TextbookServiceImplTest {
     void dataHandleAddExerciseBookNode() {
         textbookService.dataHandleAddExerciseBookNode(1739576230844362752L);
     }
+
 }

+ 23 - 0
src/test/java/com/xjrsoft/module/textbook/service/impl/WfTextbookClaimServiceImplTest.java

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.textbook.service.impl;
+
+import com.xjrsoft.module.textbook.service.IWfTextbookClaimService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+/**
+ * @description:TODO
+ * @author: phoenix
+ * @create: 2023/12/29 10:34
+ * @Version 1.0
+ */
+@SpringBootTest
+class WfTextbookClaimServiceImplTest {
+
+    @Autowired
+    private IWfTextbookClaimService wfTextbookClaimService;
+    @Test
+    void dataHandleAddClaimUserNode() {
+        wfTextbookClaimService.dataHandleAddClaimUserNode(1739576121003929600L);
+    }
+}

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

@@ -1587,4 +1587,33 @@ public class FreeMarkerGeneratorTest {
         apiGeneratorService.generateCodes(params);
     }
 
+    /**
+     * 教材领取人员
+     * @throws IOException
+     */
+    @Test
+    public void gcTextbookClaimUser() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("textbook_claim_user");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("dzx");//作者名称
+        params.setPackageName("textbook");//包名
+        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);
+    }
+
 }