Bläddra i källkod

Merge remote-tracking branch 'origin/dev' into dev

fanxp 1 år sedan
förälder
incheckning
2e51c8210c
21 ändrade filer med 314 tillägg och 151 borttagningar
  1. 1 1
      src/main/java/com/xjrsoft/module/room/controller/RoomController.java
  2. 3 0
      src/main/java/com/xjrsoft/module/room/dto/DistributeClassPageDto.java
  3. 3 1
      src/main/java/com/xjrsoft/module/room/service/impl/RoomBedCheckRecordServiceImpl.java
  4. 1 1
      src/main/java/com/xjrsoft/module/room/service/impl/RoomBedServiceImpl.java
  5. 9 8
      src/main/java/com/xjrsoft/module/textbook/controller/TextbookIssueRecordController.java
  6. 4 0
      src/main/java/com/xjrsoft/module/textbook/controller/TextbookStudentClaimController.java
  7. 9 14
      src/main/java/com/xjrsoft/module/textbook/mapper/TextbookMapper.java
  8. 158 64
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java
  9. 14 2
      src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookStudentClaimServiceImpl.java
  10. 17 6
      src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookClaimServiceImpl.java
  11. 7 8
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookIssueRecordPageVo.java
  12. 14 4
      src/main/java/com/xjrsoft/module/textbook/vo/TextbookSubscriptionRecordVo.java
  13. 2 1
      src/main/resources/application-dev.yml
  14. 25 3
      src/main/resources/mapper/room/RoomBedMapper.xml
  15. 15 12
      src/main/resources/mapper/room/RoomStudentAppointMapper.xml
  16. 1 1
      src/main/resources/mapper/room/RoomValueWeekItemMapper.xml
  17. 27 21
      src/main/resources/mapper/textbook/TextbookMapper.xml
  18. 1 1
      src/main/resources/mapper/textbook/TextbookStudentClaimMapper.xml
  19. 1 1
      src/main/resources/mapper/textbook/WfTextbookClaimMapper.xml
  20. 1 1
      src/test/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImplTest.java
  21. 1 1
      src/test/java/com/xjrsoft/module/textbook/service/impl/WfTextbookRecedeServiceImplTest.java

+ 1 - 1
src/main/java/com/xjrsoft/module/room/controller/RoomController.java

@@ -118,7 +118,7 @@ public class RoomController {
     public ResponseEntity<byte[]> exportData(@Valid RoomPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
         List<RoomExcelVo> customerList = roomService.getList(dto);
         ByteArrayOutputStream bot = new ByteArrayOutputStream();
-        EasyExcel.write(bot, RoomPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
+        EasyExcel.write(bot, RoomExcelVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
 
         return RT.fileStream(bot.toByteArray(), "Room" + ExcelTypeEnum.XLSX.getValue());
     }

+ 3 - 0
src/main/java/com/xjrsoft/module/room/dto/DistributeClassPageDto.java

@@ -22,4 +22,7 @@ public class DistributeClassPageDto extends PageInput {
     @ApiModelProperty("年级id")
     public Long classId;
 
+    @ApiModelProperty("入住性别")
+    public String gender;
+
 }

+ 3 - 1
src/main/java/com/xjrsoft/module/room/service/impl/RoomBedCheckRecordServiceImpl.java

@@ -222,8 +222,9 @@ public class RoomBedCheckRecordServiceImpl extends MPJBaseServiceImpl<RoomBedChe
         if(classIdList != null && classIdList.size() > 0){
             MPJLambdaWrapper<Room> queryRoomByClass = new MPJLambdaWrapper<>();
             queryRoomByClass
+                    .distinct()
                     .selectAs(Room::getId, RoomEchoVo::getRoomId)
-                    .select("CONCAT(t2.name,\"-\" , t3.name, t.room_name) as roomName")
+                    .select("CONCAT(t3.name,\"-\" , t4.name, t.room_name) as roomName")
                     .leftJoin(RoomBed.class, RoomBed::getRoomId, Room::getId)
                     .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, RoomBed::getStudentUserId)
                     .leftJoin(BaseOfficeBuild.class, BaseOfficeBuild::getId, Room::getOfficeBuildId)
@@ -235,6 +236,7 @@ public class RoomBedCheckRecordServiceImpl extends MPJBaseServiceImpl<RoomBedChe
         //根据宿管任命
         MPJLambdaWrapper<Room> queryRoomByTeacherAppoint = new MPJLambdaWrapper<>();
         queryRoomByTeacherAppoint
+                .distinct()
                 .selectAs(Room::getId, RoomEchoVo::getRoomId)
                 .select("CONCAT(t2.name,\"-\" , t3.name, t.room_name) as roomName")
                 .leftJoin(RoomTeacherAppoint.class, RoomTeacherAppoint::getRoomId, Room::getId)

+ 1 - 1
src/main/java/com/xjrsoft/module/room/service/impl/RoomBedServiceImpl.java

@@ -154,7 +154,7 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
                 .select(BaseStudent::getUserId)
                 .eq(BaseClass::getId, classId)
                 .eq(XjrUser::getGender, genderNumber)
-                .eq(BaseStudentSchoolRoll::getStduyStatus, "FB3001")
+                .eq(BaseStudentSchoolRoll::getStduyStatus, "FB3002")
                 .eq(BaseStudent::getDeleteMark, DeleteMark.NODELETE.getCode())
                 .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
                 .innerJoin(XjrUser.class, XjrUser::getId, BaseStudent::getUserId)

+ 9 - 8
src/main/java/com/xjrsoft/module/textbook/controller/TextbookIssueRecordController.java

@@ -19,17 +19,11 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 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 org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.io.ByteArrayOutputStream;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -101,6 +95,13 @@ public class TextbookIssueRecordController {
     @ApiOperation(value = "导出")
     public ResponseEntity<byte[]> exportData(@Valid TextbookIssueRecordPageDto dto, @RequestParam(defaultValue = "false") Boolean isTemplate) {
         List<TextbookIssueRecordPageVo> customerList = isTemplate != null && isTemplate ? new ArrayList<>() : ((PageOutput<TextbookIssueRecordPageVo>) page(dto).getData()).getList();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
+        for (TextbookIssueRecordPageVo textbookIssueRecordPageVo : customerList) {
+            if(textbookIssueRecordPageVo.getCreateDate() == null){
+                continue;
+            }
+            textbookIssueRecordPageVo.setCreateDateStr(sdf.format(textbookIssueRecordPageVo.getCreateDate()));
+        }
         ByteArrayOutputStream bot = new ByteArrayOutputStream();
         EasyExcel.write(bot, TextbookIssueRecordPageVo.class).automaticMergeHead(false).excelType(ExcelTypeEnum.XLSX).sheet().doWrite(customerList);
 

+ 4 - 0
src/main/java/com/xjrsoft/module/textbook/controller/TextbookStudentClaimController.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.textbook.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -18,6 +19,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -145,6 +147,8 @@ public class TextbookStudentClaimController {
             textbookStudentClaim.setId(dto.getTextbookStudentClaimId());
             textbookStudentClaim.setIsClaim(1);
             textbookStudentClaim.setRemark(dto.getRemark());
+            textbookStudentClaim.setModifyUserId(StpUtil.getLoginIdAsLong());
+            textbookStudentClaim.setModifyDate(new Date());
             textbookStudentClaimService.updateById(textbookStudentClaim);
         }
         return RT.ok(true);

+ 9 - 14
src/main/java/com/xjrsoft/module/textbook/mapper/TextbookMapper.java

@@ -2,16 +2,10 @@ package com.xjrsoft.module.textbook.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseMapper;
-import com.xjrsoft.module.textbook.vo.TextbookPageVo;
-import com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo;
-import com.xjrsoft.module.textbook.vo.TextbookVo;
-import com.xjrsoft.module.textbook.vo.WfTextbookClaimListVo;
 import com.xjrsoft.module.textbook.dto.TextbookPageDto;
 import com.xjrsoft.module.textbook.entity.Textbook;
 import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
-import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordListVo;
-import com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo;
-import com.xjrsoft.module.textbook.vo.TextbookSubscriptionClassVo;
+import com.xjrsoft.module.textbook.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -41,6 +35,14 @@ public interface TextbookMapper extends MPJBaseMapper<Textbook> {
      */
     List<TextbookSubscriptionRecordVo> subscriptionList(Long id);
 
+    /**
+     * 作业本征订记录
+     *
+     * @param id
+     * @return
+     */
+    List<TextbookSubscriptionRecordVo> exerciseBookSubscriptionList(Long id);
+
 
     /**
      * 查询征订记录中的使用班级
@@ -73,11 +75,4 @@ public interface TextbookMapper extends MPJBaseMapper<Textbook> {
      */
     List<TextbookIssueRecordListVo> issueList(Long id);
 
-    /**
-     * 领取记录
-     * @param id
-     * @return
-     */
-    List<WfTextbookClaimListVo> claimList(Long id);
-
 }

+ 158 - 64
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java

@@ -4,22 +4,24 @@ 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.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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.module.base.entity.BaseClass;
+import com.xjrsoft.module.base.entity.BaseSemester;
 import com.xjrsoft.module.base.service.IBaseClassService;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
 import com.xjrsoft.module.textbook.dto.TextbookPageDto;
 import com.xjrsoft.module.textbook.entity.*;
-import com.xjrsoft.module.textbook.mapper.TextbookClassRelationMapper;
-import com.xjrsoft.module.textbook.mapper.TextbookMapper;
-import com.xjrsoft.module.textbook.mapper.TextbookSubscriptionRecordMapper;
+import com.xjrsoft.module.textbook.mapper.*;
 import com.xjrsoft.module.textbook.service.ITextbookService;
 import com.xjrsoft.module.textbook.service.ITextbookWarehouseRecordService;
 import com.xjrsoft.module.textbook.service.IWfExerciseBookService;
@@ -31,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -57,23 +60,28 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
 
     private final ITextbookWarehouseRecordService textbookClassWarehouseService;
 
+    private final TextbookIssueRecordMapper textbookIssueRecordMapper;
+
+    private final TextbookStudentClaimMapper textbookStudentClaimMapper;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean add(Textbook textbook) {
+        textbook.setCreateDate(new Date());
         textbookTextbookMapper.insert(textbook);
         for (TextbookClassRelation textbookClassRelation : textbook.getTextbookClassRelationList()) {
             textbookClassRelation.setTextbookId(textbook.getId());
+            textbookClassRelation.setCreateDate(new Date());
             textbookTextbookClassRelationMapper.insert(textbookClassRelation);
         }
         if (textbook.getTextbookSubscriptionRecordList() != null) {
             for (TextbookSubscriptionRecord textbookSubscriptionRecord : textbook.getTextbookSubscriptionRecordList()) {
-                textbookSubscriptionRecord.setWfTextbookSubscriptionId(textbook.getId());
+                textbookSubscriptionRecord.setTextbookId(textbook.getId());
+                textbookSubscriptionRecord.setCreateDate(new Date());
                 textbookTextbookSubscriptionRecordMapper.insert(textbookSubscriptionRecord);
             }
         }
-
-
         return true;
     }
 
@@ -195,23 +203,28 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                 //征订的教材没有在教材管理
                 if (ObjectUtil.isNull(textbookList) || textbookList.size() == 0) {
                     Textbook textbook = new Textbook() {{
-                        setIssn(wfTextbookSubscriptionItem.getIssn());
-                        setIsbn(wfTextbookSubscriptionItem.getIsbn());
-                        setBookName(wfTextbookSubscriptionItem.getBookName());
-                        setPublishingHouse(wfTextbookSubscriptionItem.getPublishingHouse());
-                        setEditorInChief(wfTextbookSubscriptionItem.getEditorInChief());
-                        setSubjectGroupId(wfTextbookSubscription.getSubjectGroupId());
+                        setIssn((ObjectUtil.isNull(wfTextbookSubscriptionItem.getIssn()) || StringUtils.isBlank(wfTextbookSubscriptionItem.getIssn())) ? "/" : wfTextbookSubscriptionItem.getIssn());
+                        setIsbn((ObjectUtil.isNull(wfTextbookSubscriptionItem.getIsbn()) || StringUtils.isBlank(wfTextbookSubscriptionItem.getIsbn())) ? "/" : wfTextbookSubscriptionItem.getIsbn());
+                        setBookName((ObjectUtil.isNull(wfTextbookSubscriptionItem.getBookName()) || StringUtils.isBlank(wfTextbookSubscriptionItem.getBookName())) ? "/" : wfTextbookSubscriptionItem.getBookName());
+                        setPublishingHouse((ObjectUtil.isNull(wfTextbookSubscriptionItem.getPublishingHouse()) || StringUtils.isBlank(wfTextbookSubscriptionItem.getPublishingHouse())) ? "/" : wfTextbookSubscriptionItem.getPublishingHouse());
+                        setEditorInChief((ObjectUtil.isNull(wfTextbookSubscriptionItem.getEditorInChief()) || StringUtils.isBlank(wfTextbookSubscriptionItem.getEditorInChief())) ? "/" : wfTextbookSubscriptionItem.getEditorInChief());
+                        setSubjectGroupId((ObjectUtil.isNull(wfTextbookSubscription.getSubjectGroupId())) ? 0 : wfTextbookSubscription.getSubjectGroupId());
                         setBaseSemesterId(wfTextbookSubscription.getBaseSemesterId());
-                        setCourseSubjectId(wfTextbookSubscriptionItem.getCourseSubjectId());
-                        setVersion(wfTextbookSubscriptionItem.getVersion());
-                        setIsTextbookPlan(wfTextbookSubscriptionItem.getIsTextbookPlan());
+                        setCourseSubjectId((ObjectUtil.isNull(wfTextbookSubscriptionItem.getCourseSubjectId())) ? 0 : wfTextbookSubscriptionItem.getCourseSubjectId());
+                        setVersion((ObjectUtil.isNull(wfTextbookSubscriptionItem.getVersion()) || StringUtils.isBlank(wfTextbookSubscriptionItem.getVersion())) ? "/" : wfTextbookSubscriptionItem.getVersion());
+                        setIsTextbookPlan((ObjectUtil.isNull(wfTextbookSubscriptionItem.getIsTextbookPlan()) || StringUtils.isBlank(wfTextbookSubscriptionItem.getIsTextbookPlan())) ? "/" : wfTextbookSubscriptionItem.getIsTextbookPlan());
                         if (ObjectUtil.isNotNull(wfTextbookSubscriptionItem.getSubscriptionType()) && wfTextbookSubscriptionItem.getSubscriptionType().equals(SubscriptionTypeEnum.STextbook.getCode())) {
                             setTextbookType(TextbookTypeEnum.TTextbook.getCode());
                         }
                         if (ObjectUtil.isNotNull(wfTextbookSubscriptionItem.getSubscriptionType()) && wfTextbookSubscriptionItem.getSubscriptionType().equals(SubscriptionTypeEnum.SMaterials.getCode())) {
                             setTextbookType(TextbookTypeEnum.TMaterials.getCode());
                         }
-                        setAppraisalPrice(wfTextbookSubscriptionItem.getAppraisalPrice());
+                        setSpecificationsModels("/");
+                        setAppraisalPrice((ObjectUtil.isNull(wfTextbookSubscriptionItem.getAppraisalPrice())) ? new BigDecimal(0) : wfTextbookSubscriptionItem.getAppraisalPrice());
+                        setPrice(new BigDecimal(0));
+                        setDiscount(10D);
+                        setSubtotal(new BigDecimal(0));
+                        setStock(0);
                     }};
 
                     //班级不为空
@@ -234,14 +247,16 @@ 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());
-                        }}
-
+                        }
+                    }
                         //插入教材数据
+                        textbook.setCreateDate(new Date());
                         textbookTextbookMapper.insert(textbook);
 
                         //插入班级和教材关系
                         for (Long classId : classIdList) {
                             textbookTextbookClassRelationMapper.insert(new TextbookClassRelation() {{
+                                setCreateDate(new Date());
                                 setTextbookId(textbook.getId());
                                 setClassId(classId);
                             }});
@@ -249,8 +264,9 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
 
                     //添加教材征订记录
                     textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
+                        setCreateDate(new Date());
                         setTextbookId(textbook.getId());
-                        setWfTextbookSubscriptionId(wfTextbookSubscriptionItem.getId());//该字段存入正定项的id,征订项中有所属征订记录
+                        setWfTextbookSubscriptionId(wfTextbookSubscription.getId());//该字段存入征订项的id,征订项中有所属征订记录
                     }});
                 } else {
 
@@ -264,6 +280,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                         String[] classIdStrs = classIds.split(",");
                         for (String classIdStr : classIdStrs) {
                             textbookTextbookClassRelationMapper.insert(new TextbookClassRelation() {{
+                                setCreateDate(new Date());
                                 setTextbookId(textbook.getId());
                                 setClassId(Long.parseLong(classIdStr));
                             }});
@@ -271,8 +288,9 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                     }
                     //添加教材征订记录
                     textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
+                        setCreateDate(new Date());
                         setTextbookId(textbook.getId());
-                        setWfTextbookSubscriptionId(wfTextbookSubscriptionItem.getId());//该字段存入正定项的id,征订项中有所属征订记录
+                        setWfTextbookSubscriptionId(wfTextbookSubscription.getId());//该字段存入正定项的id,征订项中有所属征订记录
                     }});
                 }
             }
@@ -302,15 +320,21 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                 //征订的作业本没有在教材管理
                 if (ObjectUtil.isNull(textbookList) || textbookList.size() == 0) {
                     Textbook textbook = new Textbook() {{
-                        setBaseSemesterId(wfExerciseBook.getBaseSemesterId());
+                        setIssn("/");
+                        setIsbn("/");
                         if(ObjectUtil.isNotNull(wfExerciseBookItem.getSubscriptionType()) && wfExerciseBookItem.getSubscriptionType().equals(ExerciseBookeTypeEnum.ExerciseBook1.getCode())){
                             setBookName(ExerciseBookeTypeEnum.ExerciseBook1.getValue());
                         }
                         if(ObjectUtil.isNotNull(wfExerciseBookItem.getSubscriptionType()) && wfExerciseBookItem.getSubscriptionType().equals(ExerciseBookeTypeEnum.ExerciseBook2.getCode())){
                             setBookName(ExerciseBookeTypeEnum.ExerciseBook2.getValue());
                         }
-                        setSpecificationsModels(wfExerciseBookItem.getSpecificationsModels());
+                        setPublishingHouse("/");
+                        setEditorInChief("/");
+                        setBaseSemesterId(wfExerciseBook.getBaseSemesterId());
+                        setVersion("/");
+                        setIsTextbookPlan("/");
                         setTextbookType(TextbookTypeEnum.TExerciseBook.getCode());
+                        setSpecificationsModels((ObjectUtil.isNull(wfExerciseBookItem.getSpecificationsModels()) || StringUtils.isBlank(wfExerciseBookItem.getSpecificationsModels())) ? "/" : wfExerciseBookItem.getSpecificationsModels());
                         //年级id
                         if (ObjectUtil.isNotNull(wfExerciseBook.getClassId()) && wfExerciseBook.getClassId() > 0){
                             LambdaQueryWrapper<BaseClass> queryWrapper1 = new LambdaQueryWrapper<>();
@@ -321,15 +345,21 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                                 setGradeId(baseClass.getGradeId());
                             }
                         }
-                        setAppraisalPrice(wfExerciseBookItem.getAppraisalPrice());
+                        setAppraisalPrice((ObjectUtil.isNull(wfExerciseBookItem.getAppraisalPrice())) ? new BigDecimal(0) : wfExerciseBookItem.getAppraisalPrice());
+                        setPrice(new BigDecimal(0));
+                        setDiscount(10D);
+                        setSubtotal(new BigDecimal(0));
+                        setStock(0);
                     }};
 
                     //插入教材数据
+                    textbook.setCreateDate(new Date());
                     textbookTextbookMapper.insert(textbook);
 
                     //插入班级和教材关系
                     if(ObjectUtil.isNotNull(wfExerciseBook.getClassId()) && wfExerciseBook.getClassId() > 0){
                         textbookTextbookClassRelationMapper.insert(new TextbookClassRelation() {{
+                            setCreateDate(new Date());
                             setTextbookId(textbook.getId());
                             setClassId(wfExerciseBook.getClassId());
                         }});
@@ -338,8 +368,9 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
 
                     //添加教材征订记录
                     textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
+                        setCreateDate(new Date());
                         setTextbookId(textbook.getId());
-                        setWfTextbookSubscriptionId(wfExerciseBookItem.getId());
+                        setWfTextbookSubscriptionId(wfExerciseBook.getId());
                     }});
                 } else {
                     //征订的教材在教材管理,进行班级的和记录的管理
@@ -348,6 +379,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                     //班级不为空
                     if (ObjectUtil.isNotNull(wfExerciseBook.getClassId()) && wfExerciseBook.getClassId() > 0) {
                         textbookTextbookClassRelationMapper.insert(new TextbookClassRelation() {{
+                            setCreateDate(new Date());
                             setTextbookId(textbook.getId());
                             setClassId(wfExerciseBook.getClassId());
                         }});
@@ -355,8 +387,9 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
                     }
                     //添加教材征订记录
                     textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
+                        setCreateDate(new Date());
                         setTextbookId(textbook.getId());
-                        setWfTextbookSubscriptionId(wfExerciseBookItem.getId());
+                        setWfTextbookSubscriptionId(wfExerciseBook.getId());
                     }});
                 }
             }
@@ -366,31 +399,51 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
 
     @Override
     public List<TextbookSubscriptionRecordVo> subscriptionList(Long id) {
-        List<TextbookSubscriptionRecordVo> recordVos = textbookTextbookMapper.subscriptionList(id);
-        for (TextbookSubscriptionRecordVo recordVo : recordVos) {
-            if (ObjectUtil.isNull(recordVo) || StrUtil.isEmpty(recordVo.getClassIds())) {
-                recordVos.remove(recordVo);
-                if(recordVos.isEmpty()){
-                    break;
-                }
-                continue;
-            }
-            String[] split = recordVo.getClassIds().split(",");
-            List<String> ids = new ArrayList<>();
-            for (String classId : split) {
-                ids.add(classId.trim());
+        Textbook textbook = this.getById(id);
+        List<TextbookSubscriptionRecordVo> recordVos = new ArrayList<>();
+        //是作业本
+        if(textbook.getTextbookType().equals(TextbookTypeEnum.TExerciseBook.getCode())){
+            recordVos = textbookTextbookMapper.exerciseBookSubscriptionList(id);
+            for (TextbookSubscriptionRecordVo recordVo : recordVos) {
+                recordVo.setIssn("/");
+                recordVo.setPublishingHouse("/");
+                recordVo.setEditorInChief("/");
+                recordVo.setIsTextbookPlanCn("/");
+                recordVo.setCourseName("/");
+                recordVo.setGradeName("/");
+                recordVo.setTeacherSubscriptionNumber(0);
+                recordVo.setTeacherFeferenceNumber(0);
             }
-            List<TextbookSubscriptionClassVo> classInfo = textbookTextbookMapper.getClassInfo(ids);
-            String useClass = "";
-            for (int i = 0; i < classInfo.size(); i++) {
-                if (i >= 1) {
-                    useClass += ",";
+        }
+        //是教材或者教辅
+        if (textbook.getTextbookType().equals(TextbookTypeEnum.TTextbook.getCode()) || textbook.getTextbookType().equals(TextbookTypeEnum.TMaterials.getCode())){
+            recordVos = textbookTextbookMapper.subscriptionList(id);
+            for (TextbookSubscriptionRecordVo recordVo : recordVos) {
+                if (ObjectUtil.isNull(recordVo) || StrUtil.isEmpty(recordVo.getClassIds())) {
+                    recordVos.remove(recordVo);
+                    if(recordVos.isEmpty()){
+                        break;
+                    }
+                    continue;
+                }
+                String[] split = recordVo.getClassIds().split(",");
+                List<String> ids = new ArrayList<>();
+                for (String classId : split) {
+                    ids.add(classId.trim());
+                }
+                List<TextbookSubscriptionClassVo> classInfo = textbookTextbookMapper.getClassInfo(ids);
+                String useClass = "";
+                for (int i = 0; i < classInfo.size(); i++) {
+                    if (i >= 1) {
+                        useClass += ",";
+                    }
+                    TextbookSubscriptionClassVo classVo = classInfo.get(i);
+                    useClass += classVo.getName();
                 }
-                TextbookSubscriptionClassVo classVo = classInfo.get(i);
-                useClass += classVo.getName();
+                recordVo.setUseClass(useClass);
             }
-            recordVo.setUseClass(useClass);
         }
+
         return recordVos;
     }
 
@@ -428,11 +481,49 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
 
     @Override
     public List<WfTextbookClaimListVo> claimList(Long id) {
-        List<WfTextbookClaimListVo> result = textbookTextbookMapper.claimList(id);
-        if (!result.isEmpty()) {
-            return result;
+        List<WfTextbookClaimListVo> result = new ArrayList<>();
+        //教材领取分为两种
+        //教师领取
+        MPJLambdaWrapper<TextbookIssueRecord> queryIssueRecord = new MPJLambdaWrapper<>();
+        queryIssueRecord
+                .eq(TextbookIssueRecord::getTextbookId, id)
+                .eq(TextbookIssueRecord::getIssueMode, "im_teacher");
+        List<TextbookIssueRecord> textbookIssueRecordList =  textbookIssueRecordMapper.selectJoinList(TextbookIssueRecord.class, queryIssueRecord);
+        for(TextbookIssueRecord t : textbookIssueRecordList){
+            MPJLambdaWrapper<TextbookIssueRecord> queryTeaClaimVo = new MPJLambdaWrapper<>();
+            queryTeaClaimVo
+                    .selectAs(BaseSemester::getName, WfTextbookClaimListVo::getSemesterName)
+                    .selectAs(XjrUser::getName, WfTextbookClaimListVo::getName)
+                    .selectAs(XjrUser::getUserName, WfTextbookClaimListVo::getUserName)
+                    .selectAs(TextbookIssueRecord::getCreateDate, WfTextbookClaimListVo::getClaimDate)
+                    .leftJoin(XjrUser.class, XjrUser::getId, TextbookIssueRecord::getReceiveUserId)
+                    .leftJoin(WfTextbookClaim.class, WfTextbookClaim::getId, TextbookIssueRecord::getDataId)
+                    .leftJoin(BaseSemester.class, BaseSemester::getId, WfTextbookClaim::getBaseSemesterId)
+                    .eq(TextbookIssueRecord::getId, t.getId());
+            WfTextbookClaimListVo wfTextbookClaimListVo =  textbookIssueRecordMapper.selectJoinOne(WfTextbookClaimListVo.class, queryTeaClaimVo);
+            for (int j = 0; j < t.getIssueNumber(); j++){
+                wfTextbookClaimListVo.setClaimIdentity("教师");
+                wfTextbookClaimListVo.setClassName("/");
+                result.add(wfTextbookClaimListVo);
+            }
         }
-        return new ArrayList<>();
+        //学生领取
+        MPJLambdaWrapper<TextbookStudentClaim> queryStuClaimVo = new MPJLambdaWrapper<>();
+        queryStuClaimVo
+                .select("'学生' as claimIdentity")
+                .selectAs(BaseClass::getName, WfTextbookClaimListVo::getClassName)
+                .selectAs(BaseSemester::getName, WfTextbookClaimListVo::getSemesterName)
+                .selectAs(XjrUser::getName, WfTextbookClaimListVo::getName)
+                .selectAs(XjrUser::getUserName, WfTextbookClaimListVo::getUserName)
+                .selectAs(TextbookStudentClaim::getCreateDate, WfTextbookClaimListVo::getClaimDate)
+                .leftJoin(XjrUser.class, XjrUser::getId, TextbookStudentClaim::getStudentUserId)
+                .leftJoin(BaseSemester.class, BaseSemester::getId, TextbookStudentClaim::getBaseSemesterId)
+                .leftJoin(BaseClass.class, BaseClass::getId, TextbookStudentClaim::getClassId)
+                .eq(TextbookStudentClaim::getTextbookId, id);
+        List<WfTextbookClaimListVo> wfTextbookClaimListVoList = textbookStudentClaimMapper.selectJoinList(WfTextbookClaimListVo.class, queryStuClaimVo);
+
+        result.addAll(wfTextbookClaimListVoList);
+        return result;
     }
 
     @Override
@@ -444,27 +535,30 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
             throw new MyException("入库失败,该教材不存在");
         }
 
+        BigDecimal price = ObjectUtil.isNull(dto.getPrice()) ? new BigDecimal(0) : dto.getPrice();
+        Double discount = ObjectUtil.isNull(dto.getDiscount()) ? 10 : dto.getDiscount();
+        BigDecimal subtotal = price.multiply(new BigDecimal(discount / 10));
         //更新总的库存数量
-        Textbook updateTextbook = new Textbook();
-        updateTextbook.setId(textbook.getId());
-        Integer oldStock = ObjectUtil.isNull(textbook.getStock()) ? 0 : textbook.getStock();
-        updateTextbook.setStock(oldStock + (ObjectUtil.isNull(dto.getWarehouseNumber()) ? 0 : dto.getWarehouseNumber()));
-        BigDecimal price = ObjectUtil.isNull(dto.getPrice())?new BigDecimal(0):dto.getPrice();
-        updateTextbook.setPrice(price);
-        Double discount = ObjectUtil.isNull(dto.getDiscount())?10:dto.getDiscount();
-        updateTextbook.setDiscount(discount);
-        BigDecimal subtotal = price.multiply(new BigDecimal(discount/10));
-        updateTextbook.setSubtotal(subtotal);
-
-        boolean isSuccess = this.updateById(updateTextbook);
+        this.updateById(new Textbook(){
+            {
+                setId(textbook.getId());
+                Integer oldStock = ObjectUtil.isNull(textbook.getStock()) ? 0 : textbook.getStock();
+                setStock(oldStock + (ObjectUtil.isNull(dto.getWarehouseNumber()) ? 0 : dto.getWarehouseNumber()));
+                setPrice(price);
+                setDiscount(discount);
+                setSubtotal(subtotal);
+                setModifyDate(new Date());
+            }
+        });
 
         TextbookWarehouseRecord textbookWarehouseRecord = BeanUtil.toBean(dto, TextbookWarehouseRecord.class);
         textbookWarehouseRecord.setWarehouseMode(WarehouseModeEnum.WmManual.getCode());
         textbookWarehouseRecord.setDiscount(discount);
         textbookWarehouseRecord.setSubtotal(subtotal);
-        isSuccess = textbookClassWarehouseService.save(textbookWarehouseRecord);
+        textbookWarehouseRecord.setCreateDate(new Date());
+        textbookClassWarehouseService.save(textbookWarehouseRecord);
 
-        return isSuccess;
+        return true;
     }
 
 

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

@@ -36,6 +36,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -86,6 +87,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         //获取当前学生领取记录的所有学期
         MPJLambdaWrapper<TextbookStudentClaim> qwerySemester = new MPJLambdaWrapper<>();
         qwerySemester
+                .distinct()
                 .disableSubLogicDel()
                 .selectAs(BaseSemester::getName, TextbookStudentSemesterVo::getBaseSemesterIdCN)
                 .select(TextbookStudentClaim.class, x -> VoToColumnUtil.fieldsToColumns(TextbookStudentSemesterVo.class).contains(x.getProperty()))
@@ -126,13 +128,21 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         //为每本书添加数据
         for (TeacherCheckByclassVo t : teacherCheckByclassVoList.getRecords()) {
             MPJLambdaWrapper<WfTextbookClaim> qweryActualReceivedNum = new MPJLambdaWrapper<>();
-            qweryActualReceivedNum.disableSubLogicDel().selectSum(WfTextbookClaimItem::getIssueNumber, TeacherCheckByclassVo::getActualReceivedNum).leftJoin(WfTextbookClaimItem.class, WfTextbookClaimItem::getWfTextbookClaimId, WfTextbookClaim::getId).eq(WfTextbookClaim::getClassId, t.getClassId()).eq(WfTextbookClaimItem::getTextbookId, t.getTextbookId());
+            qweryActualReceivedNum
+                    .disableSubLogicDel()
+                    .selectAs(WfTextbookClaimItem::getIssueNumber, TeacherCheckByclassVo::getActualReceivedNum)
+                    .leftJoin(WfTextbookClaimItem.class, WfTextbookClaimItem::getWfTextbookClaimId, WfTextbookClaim::getId)
+                    .eq(WfTextbookClaim::getClassId, t.getClassId())
+                    .eq(WfTextbookClaimItem::getTextbookId, t.getTextbookId());
             TeacherCheckByclassVo teacherCheckByclassVo = wfTextbookClaimMapper.selectJoinOne(TeacherCheckByclassVo.class, qweryActualReceivedNum);
 
             t.setActualReceivedNum(teacherCheckByclassVo.getActualReceivedNum());
 
             LambdaQueryWrapper<TextbookStudentClaim> queryActualClaimNum = new LambdaQueryWrapper<>();
-            queryActualClaimNum.eq(TextbookStudentClaim::getClassId, t.getClassId()).eq(TextbookStudentClaim::getTextbookId, t.getTextbookId());
+            queryActualClaimNum
+                    .eq(TextbookStudentClaim::getClassId, t.getClassId())
+                    .eq(TextbookStudentClaim::getTextbookId, t.getTextbookId())
+                    .eq(TextbookStudentClaim::getIsClaim, 1);
             Long actualClaimNum = this.count(queryActualClaimNum);
             t.setActualClaimNum(actualClaimNum);
         }
@@ -173,6 +183,8 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
     public Boolean updateByIds(List<Long> textbookStudentClaimIds) {
         for (Long textbookStudentClaimId : textbookStudentClaimIds) {
             this.updateById(new TextbookStudentClaim() {{
+                setModifyUserId(StpUtil.getLoginIdAsLong());
+                setModifyDate(new Date());
                 setId(textbookStudentClaimId);
                 setIsClaim(1);
             }});

+ 17 - 6
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookClaimServiceImpl.java

@@ -31,6 +31,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -68,7 +69,6 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
             wfTextbookClaimItem.setWfTextbookClaimId(wfTextbookClaim.getId());
             wfTextbookClaimWfTextbookClaimItemMapper.insert(wfTextbookClaimItem);
         }
-
         return true;
     }
 
@@ -220,7 +220,7 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
                 throw new MyException(textbook.getBookName() + "发放总数量超出申领数量");
             }
 
-            //判断总发放数量是否超出该申请的申请数
+            //判断发放量是否多余库存
             Integer stock = ObjectUtil.isNull(textbook.getStock()) ? 0 : textbook.getStock();
             if (stock < confirmNumber) {
                 throw new MyException(textbook.getBookName() + "库存不足");
@@ -228,8 +228,9 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
 
             //增加出库记录
             textbookIssueRecordService.save(new TextbookIssueRecord() {{
+                setCreateDate(new Date());
                 setTextbookId(wfTextbookClaimItem.getTextbookId());
-                setDataItemId(wfTextbookClaim.getId());
+                setDataId(wfTextbookClaim.getId());
                 setDataItemId(wfTextbookClaimItem.getId());
                 setIssueNumber(confirmNumber);
                 setRemainingNumber(applicantNumber - issueNumber - confirmNumber);
@@ -246,12 +247,16 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
 
             //更新教材管理中的库存数量
             textbookService.updateById(new Textbook() {{
+                setModifyUserId(StpUtil.getLoginIdAsLong());
+                setModifyDate(new Date());
                 setId(textbook.getId());
                 setStock(stock - confirmNumber);
             }});
 
             //更新申领项中的已经发放数量
             wfTextbookClaimWfTextbookClaimItemMapper.updateById(new WfTextbookClaimItem() {{
+                setModifyUserId(StpUtil.getLoginIdAsLong());
+                setModifyDate(new Date());
                 setId(wfTextbookClaimItem.getId());
                 setIssueNumber(issueNumber + confirmNumber);
             }});
@@ -265,16 +270,18 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
                 if (ObjectUtil.isNull(userIdList) && userIdList.size() == 0) {
                     throw new MyException("申领班级有误,请核实");
                 }
-
+                //验证当前领取教材是否已经生成领取记录
                 LambdaQueryWrapper<TextbookStudentClaim> queryWrapperRecord = new LambdaQueryWrapper<>();
                 queryWrapperRecord
                         .eq(TextbookStudentClaim::getTextbookId, wfTextbookClaimItem.getTextbookId())
-                        .eq(TextbookStudentClaim::getStudentUserId, wfTextbookClaim.getClassId());
+                        .eq(TextbookStudentClaim::getClassId, wfTextbookClaim.getClassId());
                 Long count = textbookStudentClaimService.count(queryWrapperRecord);
                 //为0的时候表示该班级该书没有生成领取记录
                 if(count <= 0){
                     for (Long userId : userIdList) {
                         textbookStudentClaimService.save(new TextbookStudentClaim() {{
+                            setCreateUserId(StpUtil.getLoginIdAsLong());
+                            setCreateDate(new Date());
                             setStudentUserId(userId);
                             setBaseSemesterId(wfTextbookClaim.getBaseSemesterId());
                             setClassId(wfTextbookClaim.getClassId());
@@ -295,7 +302,9 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
                 && ObjectUtil.isNotNull(wfTextbookClaim.getClaimType())) {
             //所有需要添加的可领取人ID
             List<TextbookClaimUser> textbookClaimUserList = new ArrayList<>();
+            //申领人自己可以领取
             textbookClaimUserList.add(new TextbookClaimUser() {{
+                setCreateDate(new Date());
                 setWfTextbookClaimId(wfTextbookClaim.getId());
                 setUserId(wfTextbookClaim.getApplicantUserId());
                 setUserType(2);
@@ -303,6 +312,7 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
             //申领类型是学生申领,学生代表可领取
             if (wfTextbookClaim.getClaimType().equals(ClaimTypeEnum.ClaimStudent.getCode())) {
                 textbookClaimUserList.add(new TextbookClaimUser() {{
+                    setCreateDate(new Date());
                     setWfTextbookClaimId(wfTextbookClaim.getId());
                     setUserId(wfTextbookClaim.getStudentUserId());
                     setUserType(1);
@@ -312,8 +322,9 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
             if (wfTextbookClaim.getClaimType().equals(ClaimTypeEnum.ClaimTeacher.getCode())
                     && ObjectUtil.isNotNull(wfTextbookClaim.getApplicantUserId())
                     && ObjectUtil.isNotNull(wfTextbookClaim.getClaimUserId())
-                    && wfTextbookClaim.getApplicantUserId().equals(wfTextbookClaim.getClaimUserId())) {
+                    && !wfTextbookClaim.getApplicantUserId().equals(wfTextbookClaim.getClaimUserId())) {
                 textbookClaimUserList.add(new TextbookClaimUser() {{
+                    setCreateDate(new Date());
                     setWfTextbookClaimId(wfTextbookClaim.getId());
                     setUserId(wfTextbookClaim.getClaimUserId());
                     setUserType(2);

+ 7 - 8
src/main/java/com/xjrsoft/module/textbook/vo/TextbookIssueRecordPageVo.java

@@ -1,17 +1,11 @@
 package com.xjrsoft.module.textbook.vo;
 
-import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ContentStyle;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import com.xjrsoft.common.annotation.Trans;
-import com.xjrsoft.common.enums.TransType;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -93,10 +87,15 @@ public class TextbookIssueRecordPageVo {
     private String issueModeCn;
 
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("出库时间")
+    @ExcelIgnore
     @ApiModelProperty("出库时间")
     private Date createDate;
 
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("出库时间")
+    @ApiModelProperty("出库时间")
+    private String createDateStr;
+
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("领取人员")
     @ApiModelProperty("领取人员")

+ 14 - 4
src/main/java/com/xjrsoft/module/textbook/vo/TextbookSubscriptionRecordVo.java

@@ -90,12 +90,22 @@ public class TextbookSubscriptionRecordVo {
     private String courseName;
 
     /**
-     * 学科组名称
+     * 学科组管理编号(subject_group)
+     */
+    @ApiModelProperty("学科组管理编号(subject_group)")
+    private Long subjectGroupId;
+    /**
+     * 学科组管理编号(subject_group)
+     */
+    @ApiModelProperty("学科组管理编号(subject_group)")
+    private String subjectGroupIdCN;
+    /**
+     * 使用年级
      */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("学科组名称")
-    @ApiModelProperty("学科组名称")
-    private String groupName;
+    @ExcelProperty("使用年级")
+    @ApiModelProperty("使用年级")
+    private String gradeName;
 
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("有无配套教学资源")

+ 2 - 1
src/main/resources/application-dev.yml

@@ -65,7 +65,8 @@ xjrsoft:
     default-password: "cqtlzjzx2023" #默认密码(用户重置密码后为该密码)
     domain-api: http://10.150.10.139:8888/api #api域名地址
 #    domain-app: https://yxh-web.ngrok.yingcaibx.com/# #app域名地址
-    domain-app: http://172.19.17.106:5173/app/# #app域名地址
+    #domain-app: http://172.19.17.106:5173/app/# #app域名地址
+    domain-app: http://10.150.10.139:8888/app/# #app域名地址
     domain-web: http://10.150.10.139:8888 #web域名地址
 #    domain-api: http://127.0.0.1:9000/api #api域名地址
 #    domain-web: http://127.0.0.1:9000 #web域名地址

+ 25 - 3
src/main/resources/mapper/room/RoomBedMapper.xml

@@ -53,12 +53,31 @@
         (SELECT COUNT(*) FROM base_student c1
         LEFT JOIN base_student_school_roll c2 ON c1.user_id = c2.user_id
         LEFT JOIN xjr_dictionary_detail c3 ON c2.stduy_status = c3.code AND c3.item_id = 2023000000000000030
+        left join xjr_user c4 on c1.user_id = c4.id
         WHERE c1.delete_mark = 0 AND c2.delete_mark = 0
-        AND c3.code = 'FB3002' AND c2.class_id = t1.id) AS need_count,(
+        AND c3.code = 'FB3002' AND c2.class_id = t1.id
+        <if test="dto.gender != null">
+            <if test="dto.gender == 'SB10001'">
+                and c4.gender = 1
+            </if>
+            <if test="dto.gender == 'SB10002'">
+                and c4.gender = 2
+            </if>
+        </if>
+        ) AS need_count,(
         SELECT COUNT(*) FROM room_bed a1
         LEFT JOIN base_student_school_roll a2 ON a1.student_user_id = a2.user_id
+        left join xjr_user c4 on a2.user_id = c4.id
         WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
         AND a2.class_id = t1.id
+        <if test="dto.gender != null">
+            <if test="dto.gender == 'SB10001'">
+                and c4.gender = 1
+            </if>
+            <if test="dto.gender == 'SB10002'">
+                and c4.gender = 2
+            </if>
+        </if>
         ) AS distribute_count FROM base_class t1
         LEFT JOIN base_grade t2 ON t1.grade_id = t2.id
         LEFT JOIN xjr_department t3 ON t1.org_id = t3.id
@@ -82,6 +101,7 @@
         <if test="dto.classId != null">
             and t1.id = #{dto.classId}
         </if>
+
     </select>
     <select id="getDistributeRoomBedInfo" parameterType="com.xjrsoft.module.room.dto.DistributeRoomBedPageDto" resultType="com.xjrsoft.module.room.vo.DistributeRoomBedPageVo">
         SELECT t1.id,t1.sort_code,t2.name AS build_name,t1.floor_number,t1.room_name,t4.name AS gender_cn, t3.name AS check_in_status_cn,
@@ -174,12 +194,11 @@
     </select>
 
     <select id="getBedStudentInfo" parameterType="com.xjrsoft.module.room.dto.AdjustBedPageDto" resultType="com.xjrsoft.module.room.vo.AdjustBedStudentPageVo">
-        SELECT t1.id,t3.name AS build_name,t2.room_name,t5.name AS gender_cn,t1.bed_number,t4.name AS student_name,t4.id as student_user_id,t6.student_user_id as student_appoint_id,t2.is_max,t2.id as room_id FROM room_bed t1
+        SELECT t1.id,t3.name AS build_name,t2.room_name,t5.name AS gender_cn,t1.bed_number,t4.name AS student_name,t4.id as student_user_id,t2.is_max,t2.id as room_id FROM room_bed t1
         LEFT JOIN room t2 ON t1.room_id = t2.id
         LEFT JOIN base_office_build t3 ON t2.office_build_id = t3.id
         LEFT JOIN xjr_user t4 ON t1.student_user_id = t4.id
         LEFT JOIN xjr_dictionary_detail t5 ON t2.gender = t5.code AND t5.item_id = 2023000000000000004
-        LEFT JOIN room_student_appoint t6 ON t6.room_bed_id = t1.id
         LEFT JOIN base_student_school_roll t7 ON t4.id = t7.user_id
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
         <if test="dto.isEmptyRoom != null">
@@ -205,6 +224,9 @@
         <if test="dto.classId != null">
             and t7.class_id = #{dto.classId}
         </if>
+        <if test="dto.buildId != null">
+            and t3.id = #{dto.buildId}
+        </if>
         ORDER BY t2.sort_code,t1.sort_code
     </select>
 

+ 15 - 12
src/main/resources/mapper/room/RoomStudentAppointMapper.xml

@@ -5,22 +5,25 @@
 <mapper namespace="com.xjrsoft.module.room.mapper.RoomStudentAppointMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.room.dto.RoomStudentAppointPageDto" resultType="com.xjrsoft.module.room.vo.HeadTeaRoomCadreAppointPageVo">
         select
-        t2.room_id as roomId,
-        t3.room_name as roomName,
+        t.id as roomId,
         t4.name as genderCn,
-        t3.is_max as isMax
-        from base_class t
-        left join base_student_school_roll t1 on t1.class_id = t.id
-        inner join room_bed t2 on t2.student_user_id = t1.user_id
-        left join room t3 on t3.id = t2.room_id
-        left join xjr_dictionary_detail t4 on t4.code = t3.gender
-        where t1.delete_mark = 0 and t2.delete_mark = 0 and t.teacher_id = #{dto.teacherId}
+        t.room_name as roomName,
+        t.is_max as isMax
+        from room t
+        left join room_bed t1 on t1.room_id = t.id
+        left join base_student_school_roll t2 on t2.user_id = t1.student_user_id
+        left join base_class t3 on t3.id = t2.class_id
+        left join xjr_dictionary_detail t4 on t4.code = t.gender
+        where t.delete_mark = 0
+        and t1.delete_mark = 0
+        and t2.delete_mark = 0
+        and t3.teacher_id = #{dto.teacherId}
         <if test="dto.gender != null and dto.gender != ''">
-            and t3.gender = #{dto.gender}
+            and t.gender = #{dto.gender}
         </if>
         <if test="dto.roomId != null and dto.roomId > 0">
-            and t3.id = #{dto.roomId}
+            and t.id = #{dto.roomId}
         </if>
-        group by t2.room_id,t4.name
+        group by t.id,t4.name
     </select>
 </mapper>

+ 1 - 1
src/main/resources/mapper/room/RoomValueWeekItemMapper.xml

@@ -34,7 +34,7 @@
             and #{dto.endTime} >= t2.end_time
         </if>
         <if test="dto.userName != null and dto.userName != ''">
-            and t3.name like concat('%', #{dto.userId}, '%')
+            and t3.name like concat('%', #{dto.userName}, '%')
         </if>
         <if test="dto.roomType != null and dto.roomType != ''">
             and t1.room_type = #{dto.roomType}

+ 27 - 21
src/main/resources/mapper/textbook/TextbookMapper.xml

@@ -65,7 +65,12 @@
                t3.teacher_reference_number,
                t7.name AS is_support_resources_cn,
                t3.version,
-               t3.class_ids
+               t3.class_ids,
+               t3.student_subscription_number,
+               t3.teacher_subscription_number,
+               t3.teacher_reference_number,
+               t9.name as gradeName,
+               t10.group_name as subjectGroupIdCN
         FROM textbook_subscription_record t1
                  LEFT JOIN wf_textbook_subscription t2 ON t1.wf_textbook_subscription_id = t2.id
                  LEFT JOIN wf_textbook_subscription_item t3 ON t3.wf_textbook_subscription_id = t2.id
@@ -75,6 +80,27 @@
                  LEFT JOIN base_course_subject t6 ON t3.course_subject_id = t6.id
                  LEFT JOIN xjr_dictionary_detail t7
                            ON t3.is_support_resources = t7.code AND t7.item_id = 1737360269850038273
+                 LEFT JOIN textbook t8 ON t8.id = t1.textbook_id
+                 LEFT JOIN base_grade t9 ON t9.id = t8.grade_id
+                 LEFT JOIN subject_group t10 ON t10.id = t2.subject_group_id
+        WHERE t1.delete_mark = 0
+          AND t1.textbook_id = #{id}
+    </select>
+
+    <select id="exerciseBookSubscriptionList" resultType="com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo">
+        SELECT t2.create_date,
+               t4.name AS applicant_user,
+               t5.book_name,
+               t3.specifications_models,
+               t6.name as useClass,
+               t3.appraisal_price,
+               t3.subscription_number as studentSubscriptionNumber
+        FROM textbook_subscription_record t1
+                 LEFT JOIN wf_exercise_book t2 ON t1.wf_textbook_subscription_id = t2.id
+                 LEFT JOIN wf_exercise_book_item t3 ON t3.wf_exercise_book_id = t2.id
+                 LEFT JOIN xjr_user t4 ON t2.applicant_user_id = t4.id
+                 LEFT JOIN textbook t5 ON t5.id = t1.textbook_id
+                 LEFT JOIN base_class t6 ON t6.id = t2.class_id
         WHERE t1.delete_mark = 0
           AND t1.textbook_id = #{id}
     </select>
@@ -113,26 +139,6 @@
           AND t3.textbook_id = #{id}
         ORDER BY t1.sort_code;
     </select>
-    <select id="claimList" resultType="com.xjrsoft.module.textbook.vo.WfTextbookClaimListVo">
-        SELECT t2.name AS semester_name,
-               t5.name AS claim_identity,
-               t3.name AS class_name,
-               t5.name,
-               t5.user_name,
-               t4.create_date
-        FROM wf_textbook_claim t1
-                 LEFT JOIN base_semester t2 ON t1.base_semester_id = t2.id
-                 LEFT JOIN base_class t3 ON t1.class_id = t3.id
-                 LEFT JOIN textbook_issue_record t4 ON t4.data_id = t1.id
-                 LEFT JOIN xjr_user t5 ON t4.receive_user_id = t5.id
-                 LEFT JOIN xjr_user_role_relation t6 ON t5.id = t6.user_id
-                 LEFT JOIN xjr_role t7 ON t6.role_id = t7.id
-                 LEFT JOIN wf_textbook_claim_item t8 ON t8.wf_textbook_claim_id = t1.id
-        where t1.delete_mark = 0
-          and t8.delete_mark = 0
-          and t8.textbook_id = #{id}
-          and t1.status = 1
-    </select>
     <select id="getClassRelation" resultType="com.xjrsoft.module.textbook.entity.TextbookClassRelation">
         SELECT *
         FROM textbook_class_relation

+ 1 - 1
src/main/resources/mapper/textbook/TextbookStudentClaimMapper.xml

@@ -6,7 +6,7 @@
     <select id="getTextbookClaimList" parameterType="com.xjrsoft.module.textbook.dto.TextbookClaimStudentConfirmDto"
             resultType="com.xjrsoft.module.textbook.vo.TextbookClaimVO">
         SELECT t.id                   AS textbookStudentClaimId,
-        t1.price * t1.discount AS discountPrice,
+        t1.price * t1.discount/10 AS discountPrice,
         t.sort_code as sortCode,
         t.textbook_id as textbookId,
         t.is_claim as isClaim,

+ 1 - 1
src/main/resources/mapper/textbook/WfTextbookClaimMapper.xml

@@ -23,7 +23,7 @@
                  LEFT JOIN textbook_claim_user t6 ON (t6.wf_textbook_claim_id = t.id)
                  LEFT JOIN xjr_user t7 ON (t7.id = t6.user_id)
         WHERE t.delete_mark = 0 and t6.user_id = #{dto.userId}
-        order by t.id;
+        order by t.create_date desc;
     </select>
 
     <select id="infoDistribute" parameterType="java.lang.Long"

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

@@ -18,7 +18,7 @@ class TextbookServiceImplTest {
 
     @Test
     void dataHandleAddTextbookNode() {
-        textbookService.dataHandleAddTextbookNode(1742828225583706112L);
+        textbookService.dataHandleAddTextbookNode(1743294003445559296L);
     }
 
     @Test

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

@@ -19,6 +19,6 @@ class WfTextbookRecedeServiceImplTest {
 
     @Test
     void dataHandle() {
-        wfTextbookRecedeService.dataHandle(1743226403487281152L);
+        wfTextbookRecedeService.dataHandle(1743231402795659264L);
     }
 }