Jelajahi Sumber

更改定价后更改学生领取的价格

大数据与最优化研究所 6 bulan lalu
induk
melakukan
747895a3c4

+ 5 - 2
src/main/java/com/xjrsoft/module/textbook/entity/TextbookStudentClaim.java

@@ -91,6 +91,11 @@ public class TextbookStudentClaim implements Serializable {
      */
     @ApiModelProperty("教材管理编号")
     private Long textbookId;
+    /**
+     * 关联入库主键
+     */
+    @ApiModelProperty("关联入库主键")
+    private Long textbookWarehouseRecordId;
     /**
      * 教材确认领取的价格
      */
@@ -111,6 +116,4 @@ public class TextbookStudentClaim implements Serializable {
      */
     @ApiModelProperty("备注")
     private String remark;
-
-
 }

+ 49 - 13
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookStudentClaimServiceImpl.java

@@ -838,6 +838,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         wfTextbookClaimLambdaQueryWrapper
                 .selectAs(WfTextbookClaimItem::getTextbookId, ClassClaimTextbookIssuePrice::getTextbookId)
                 .selectAs(TextbookWarehouseRecord::getSubtotal, ClassClaimTextbookIssuePrice::getPrice)
+                .selectAs(TextbookIssueRecord::getTextbookWarehouseRecordId, ClassClaimTextbookIssuePrice::getTextbookWarehouseRecordId)
                 .innerJoin(WfTextbookClaimItem.class, WfTextbookClaimItem::getWfTextbookClaimId, WfTextbookClaim::getId)
                 .innerJoin(TextbookIssueRecord.class,
                         wrapper -> wrapper
@@ -847,12 +848,13 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 .innerJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getId, TextbookIssueRecord::getTextbookWarehouseRecordId)
                 .eq(WfTextbookClaim::getBaseSemesterId, dto.getBaseSemesterId())
                 .eq(WfTextbookClaim::getClassId, dto.getClassId())
+                .eq(WfTextbookClaim::getClaimType, ClaimTypeEnum.ClaimClass.getCode())
                 .eq(WfTextbookClaim::getWorkflowStatus, 1)
         ;
         List<ClassClaimTextbookIssuePrice> classClaimTextbookIssuePrices = wfTextbookClaimMapper.selectJoinList(ClassClaimTextbookIssuePrice.class, wfTextbookClaimLambdaQueryWrapper);
 
-        Map<Long, BigDecimal> textBookPriceMap = classClaimTextbookIssuePrices.stream()
-                .collect(Collectors.toMap(ClassClaimTextbookIssuePrice::getTextbookId, ClassClaimTextbookIssuePrice::getPrice, (p1, p2) -> p2));
+        Map<Long, ClassClaimTextbookIssuePrice> textBookPriceMap = classClaimTextbookIssuePrices.stream()
+                .collect(Collectors.toMap(ClassClaimTextbookIssuePrice::getTextbookId, c -> c, (p1, p2) -> p2));
 
         List<TextbookStudentClaim> insertList = new ArrayList<>();
         List<TextbookStudentClaim> updateList = new ArrayList<>();
@@ -861,12 +863,16 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         TextbookStudentClaim updateTextbookStudentClaim;
         Date nowDate = new Date();
         Long loginUserId = StpUtil.getLoginIdAsLong();
+        ClassClaimTextbookIssuePrice classClaimTextbookIssuePrice = null;
         for (Long textbookId : dto.getTextbookIds()) {
             for (Long userId : dto.getUserIds()) {
-                BigDecimal price = BigDecimal.ZERO;
                 if (MapUtils.isNotEmpty(textBookPriceMap) && ObjectUtils.isNotEmpty(textBookPriceMap.get(textbookId))) {
-                    price = textBookPriceMap.get(textbookId);
+                    classClaimTextbookIssuePrice = textBookPriceMap.get(textbookId);
+                }
+                if(ObjectUtils.isEmpty(classClaimTextbookIssuePrice)){
+                    throw new MyException("有一本教材并没有发放,无法确认领取。");
                 }
+                BigDecimal price = classClaimTextbookIssuePrice.getPrice();
                 oldTextbookStudentClaim = byUserIdAndTextbookId.get("" + userId + textbookId);
                 if (ObjectUtils.isNotEmpty(oldTextbookStudentClaim)
                         && (ObjectUtils.isEmpty(oldTextbookStudentClaim.getClaimSource()) || oldTextbookStudentClaim.getClaimSource() != 1)
@@ -877,9 +883,11 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     updateTextbookStudentClaim.setModifyDate(nowDate);
                     updateTextbookStudentClaim.setModifyUserId(loginUserId);
                     if (dto.getIsClaim() == 0) {
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(0L);
                         updateTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
                     if (dto.getIsClaim() == 1) {
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(classClaimTextbookIssuePrice.getTextbookWarehouseRecordId());
                         updateTextbookStudentClaim.setPrice(price);
                     }
                     updateTextbookStudentClaim.setClaimSource(2);
@@ -894,9 +902,11 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     insertTextbookStudentClaim.setCreateDate(nowDate);
                     insertTextbookStudentClaim.setCreateUserId(loginUserId);
                     if (dto.getIsClaim() == 0) {
+                        insertTextbookStudentClaim.setTextbookWarehouseRecordId(0L);
                         insertTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
                     if (dto.getIsClaim() == 1) {
+                        insertTextbookStudentClaim.setTextbookWarehouseRecordId(classClaimTextbookIssuePrice.getTextbookWarehouseRecordId());
                         insertTextbookStudentClaim.setPrice(price);
                     }
                     insertTextbookStudentClaim.setClaimSource(2);
@@ -964,6 +974,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         wfTextbookClaimLambdaQueryWrapper
                 .selectAs(WfTextbookClaimItem::getTextbookId, ClassClaimTextbookIssuePrice::getTextbookId)
                 .selectAs(TextbookWarehouseRecord::getSubtotal, ClassClaimTextbookIssuePrice::getPrice)
+                .selectAs(TextbookIssueRecord::getTextbookWarehouseRecordId, ClassClaimTextbookIssuePrice::getTextbookWarehouseRecordId)
                 .innerJoin(WfTextbookClaimItem.class, WfTextbookClaimItem::getWfTextbookClaimId, WfTextbookClaim::getId)
                 .innerJoin(TextbookIssueRecord.class,
                         wrapper -> wrapper
@@ -973,40 +984,49 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 .innerJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getId, TextbookIssueRecord::getTextbookWarehouseRecordId)
                 .in(WfTextbookClaim::getBaseSemesterId, baseSemesterIds)
                 .in(WfTextbookClaim::getClassId, classIds)
+                .eq(WfTextbookClaim::getClaimType, ClaimTypeEnum.ClaimClass.getCode())
                 .eq(WfTextbookClaim::getWorkflowStatus, 1)
         ;
 
         List<ClassClaimTextbookIssuePrice> classClaimTextbookIssuePrices = wfTextbookClaimMapper.selectJoinList(ClassClaimTextbookIssuePrice.class, wfTextbookClaimLambdaQueryWrapper);
 
-        Map<Long, BigDecimal> textBookPriceMap = classClaimTextbookIssuePrices.stream()
-                .collect(Collectors.toMap(ClassClaimTextbookIssuePrice::getTextbookId, ClassClaimTextbookIssuePrice::getPrice, (p1, p2) -> p2));
+        Map<Long, ClassClaimTextbookIssuePrice> textBookPriceMap = classClaimTextbookIssuePrices.stream()
+                .collect(Collectors.toMap(ClassClaimTextbookIssuePrice::getTextbookId, c -> c, (c1, c2) -> c2));
 
         List<TextbookStudentClaim> insertList = new ArrayList<>();
         List<TextbookStudentClaim> updateList = new ArrayList<>();
         TextbookStudentClaim oldTextbookStudentClaim;
         TextbookStudentClaim insertTextbookStudentClaim;
         TextbookStudentClaim updateTextbookStudentClaim;
+        ClassClaimTextbookIssuePrice classClaimTextbookIssuePrice = null;
         Date nowDate = new Date();
         Long loginUserId = StpUtil.getLoginIdAsLong();
         for (TeacherConfirmDto dto : dtos) {
-            BigDecimal price = BigDecimal.ZERO;
             if (MapUtils.isNotEmpty(textBookPriceMap) && ObjectUtils.isNotEmpty(textBookPriceMap.get(dto.getTextbookId()))) {
-                price = textBookPriceMap.get(dto.getTextbookId());
+                classClaimTextbookIssuePrice = textBookPriceMap.get(dto.getTextbookId());
+            }
+            if(ObjectUtils.isEmpty(classClaimTextbookIssuePrice)){
+                throw new MyException("有一本教材并没有发放,无法确认领取。");
             }
+            BigDecimal price = classClaimTextbookIssuePrice.getPrice();
             if (ObjectUtils.isNotEmpty(dto.getTextbookStudentClaimId())
                     && dto.getTextbookStudentClaimId() != 0) {
                 oldTextbookStudentClaim = byClaimSource.get(dto.getTextbookStudentClaimId());
                 if (ObjectUtils.isNotEmpty(oldTextbookStudentClaim)
-                        && (ObjectUtils.isEmpty(oldTextbookStudentClaim.getClaimSource()) || oldTextbookStudentClaim.getClaimSource() != 1)) {
+                        && (ObjectUtils.isEmpty(oldTextbookStudentClaim.getClaimSource())
+                        || oldTextbookStudentClaim.getClaimSource() != 1)
+                ) {
                     updateTextbookStudentClaim = new TextbookStudentClaim();
                     updateTextbookStudentClaim.setId(dto.getTextbookStudentClaimId());
                     updateTextbookStudentClaim.setIsClaim(dto.getIsClaim());
                     updateTextbookStudentClaim.setModifyUserId(loginUserId);
                     updateTextbookStudentClaim.setModifyDate(nowDate);
                     if (dto.getIsClaim() == 0) {
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(0L);
                         updateTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
                     if (dto.getIsClaim() == 1) {
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(classClaimTextbookIssuePrice.getTextbookWarehouseRecordId());
                         updateTextbookStudentClaim.setPrice(price);
                     }
                     updateTextbookStudentClaim.setClaimSource(2);
@@ -1023,9 +1043,11 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     updateTextbookStudentClaim.setModifyDate(nowDate);
                     updateTextbookStudentClaim.setModifyUserId(loginUserId);
                     if (dto.getIsClaim() == 0) {
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(0L);
                         updateTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
                     if (dto.getIsClaim() == 1) {
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(classClaimTextbookIssuePrice.getTextbookWarehouseRecordId());
                         updateTextbookStudentClaim.setPrice(price);
                     }
                     updateTextbookStudentClaim.setClaimSource(2);
@@ -1040,9 +1062,11 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     insertTextbookStudentClaim.setCreateDate(nowDate);
                     insertTextbookStudentClaim.setCreateUserId(loginUserId);
                     if (dto.getIsClaim() == 0) {
+                        insertTextbookStudentClaim.setTextbookWarehouseRecordId(0L);
                         insertTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
                     if (dto.getIsClaim() == 1) {
+                        insertTextbookStudentClaim.setTextbookWarehouseRecordId(classClaimTextbookIssuePrice.getTextbookWarehouseRecordId());
                         insertTextbookStudentClaim.setPrice(price);
                     }
                     insertTextbookStudentClaim.setClaimSource(2);
@@ -1110,6 +1134,7 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
         MPJLambdaWrapper<WfTextbookClaim> wfTextbookClaimLambdaQueryWrapper = new MPJLambdaWrapper<>();
         wfTextbookClaimLambdaQueryWrapper
                 .selectAs(WfTextbookClaimItem::getTextbookId, ClassClaimTextbookIssuePrice::getTextbookId)
+                .selectAs(TextbookIssueRecord::getTextbookWarehouseRecordId, ClassClaimTextbookIssuePrice::getTextbookWarehouseRecordId)
                 .selectAs(TextbookWarehouseRecord::getSubtotal, ClassClaimTextbookIssuePrice::getPrice)
                 .innerJoin(WfTextbookClaimItem.class, WfTextbookClaimItem::getWfTextbookClaimId, WfTextbookClaim::getId)
                 .innerJoin(TextbookIssueRecord.class,
@@ -1120,25 +1145,30 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                 .innerJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getId, TextbookIssueRecord::getTextbookWarehouseRecordId)
                 .eq(WfTextbookClaim::getBaseSemesterId, dto.getBaseSemesterId())
                 .eq(WfTextbookClaim::getClassId, baseStudentSchoolRoll.getClassId())
+                .eq(WfTextbookClaim::getClaimType, ClaimTypeEnum.ClaimClass.getCode())
                 .eq(WfTextbookClaim::getWorkflowStatus, 1)
         ;
         List<ClassClaimTextbookIssuePrice> classClaimTextbookIssuePrices = wfTextbookClaimMapper.selectJoinList(ClassClaimTextbookIssuePrice.class, wfTextbookClaimLambdaQueryWrapper);
 
-        Map<Long, BigDecimal> textBookPriceMap = classClaimTextbookIssuePrices.stream()
-                .collect(Collectors.toMap(ClassClaimTextbookIssuePrice::getTextbookId, ClassClaimTextbookIssuePrice::getPrice, (p1, p2) -> p2));
+        Map<Long, ClassClaimTextbookIssuePrice> textBookPriceMap = classClaimTextbookIssuePrices.stream()
+                .collect(Collectors.toMap(ClassClaimTextbookIssuePrice::getTextbookId, c -> c, (c1, c2) -> c2));
 
         List<TextbookStudentClaim> insertList = new ArrayList<>();
         List<TextbookStudentClaim> updateList = new ArrayList<>();
         TextbookStudentClaim oldTextbookStudentClaim;
         TextbookStudentClaim insertTextbookStudentClaim;
         TextbookStudentClaim updateTextbookStudentClaim;
+        ClassClaimTextbookIssuePrice classClaimTextbookIssuePrice = null;
         Date nowDate = new Date();
         Long loginUserId = StpUtil.getLoginIdAsLong();
         for (StudentConfirmDetailDto studentConfirmDetailDto : dto.getStudentConfirmDetail()) {
-            BigDecimal price = BigDecimal.ZERO;
             if (MapUtils.isNotEmpty(textBookPriceMap) && ObjectUtils.isNotEmpty(textBookPriceMap.get(studentConfirmDetailDto.getTextbookId()))) {
-                price = textBookPriceMap.get(studentConfirmDetailDto.getTextbookId());
+                classClaimTextbookIssuePrice = textBookPriceMap.get(studentConfirmDetailDto.getTextbookId());
+            }
+            if(ObjectUtils.isEmpty(classClaimTextbookIssuePrice)){
+                throw new MyException("有一本教材并没有发放,无法确认领取。");
             }
+            BigDecimal price = classClaimTextbookIssuePrice.getPrice();
             if (ObjectUtils.isNotEmpty(studentConfirmDetailDto.getTextbookStudentClaimId())
                     && studentConfirmDetailDto.getTextbookStudentClaimId() != 0
             ) {
@@ -1151,9 +1181,11 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     updateTextbookStudentClaim.setModifyUserId(loginUserId);
                     updateTextbookStudentClaim.setModifyDate(nowDate);
                     if (dto.getIsClaim() == 0) {
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(0L);
                         updateTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
                     if (dto.getIsClaim() == 1) {
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(classClaimTextbookIssuePrice.getTextbookWarehouseRecordId());
                         updateTextbookStudentClaim.setPrice(price);
                     }
                     updateTextbookStudentClaim.setClaimSource(2);
@@ -1168,9 +1200,11 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     updateTextbookStudentClaim.setModifyDate(nowDate);
                     updateTextbookStudentClaim.setModifyUserId(loginUserId);
                     if (dto.getIsClaim() == 0) {
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(0L);
                         updateTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
                     if (dto.getIsClaim() == 1) {
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(classClaimTextbookIssuePrice.getTextbookWarehouseRecordId());
                         updateTextbookStudentClaim.setPrice(price);
                     }
                     updateTextbookStudentClaim.setClaimSource(2);
@@ -1185,9 +1219,11 @@ public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<Textbook
                     insertTextbookStudentClaim.setCreateDate(nowDate);
                     insertTextbookStudentClaim.setCreateUserId(loginUserId);
                     if (dto.getIsClaim() == 0) {
+                        insertTextbookStudentClaim.setTextbookWarehouseRecordId(0L);
                         insertTextbookStudentClaim.setPrice(BigDecimal.ZERO);
                     }
                     if (dto.getIsClaim() == 1) {
+                        insertTextbookStudentClaim.setTextbookWarehouseRecordId(classClaimTextbookIssuePrice.getTextbookWarehouseRecordId());
                         insertTextbookStudentClaim.setPrice(price);
                     }
                     insertTextbookStudentClaim.setClaimSource(2);

+ 30 - 4
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookWarehouseRecordServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -15,14 +16,12 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseCourseSubject;
 import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.student.entity.BaseStudent;
 import com.xjrsoft.module.system.entity.DictionaryDetail;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.textbook.dto.*;
 import com.xjrsoft.module.textbook.entity.*;
-import com.xjrsoft.module.textbook.mapper.TextbookDiscountAlterRecordMapper;
-import com.xjrsoft.module.textbook.mapper.TextbookSubscriptionItemMapper;
-import com.xjrsoft.module.textbook.mapper.TextbookWarehouseRecordDetailMapper;
-import com.xjrsoft.module.textbook.mapper.TextbookWarehouseRecordMapper;
+import com.xjrsoft.module.textbook.mapper.*;
 import com.xjrsoft.module.textbook.service.ITextbookWarehouseRecordService;
 import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordExcelVo;
 import com.xjrsoft.module.textbook.vo.TextbookWarehouseRecordPageVo;
@@ -57,6 +56,9 @@ public class TextbookWarehouseRecordServiceImpl extends MPJBaseServiceImpl<Textb
     private final TextbookSubscriptionItemMapper textbookSubscriptionItemMapper;
 
     private final TextbookDiscountAlterRecordMapper textbookDiscountAlterRecordMapper;
+    private final TextbookIssueRecordMapper textbookIssueRecordMapper;
+
+    private final TextbookStudentClaimMapper textbookStudentClaimMapper;
 
     @Override
     public IPage<TextbookWarehouseRecordPageVo> getPage(TextbookWarehouseRecordPageDto dto) {
@@ -232,6 +234,30 @@ public class TextbookWarehouseRecordServiceImpl extends MPJBaseServiceImpl<Textb
         updateTextbookWarehouseRecord.setModifyDate(new Date());
         textbookWarehouseRecordMapper.updateById(updateTextbookWarehouseRecord);
 
+        // 需要找到使用当前入库记录的出库记录,改变其值
+        LambdaQueryWrapper<TextbookIssueRecord> textbookIssueRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        textbookIssueRecordLambdaQueryWrapper
+                .eq(TextbookIssueRecord::getTextbookWarehouseRecordId, textbookWarehouseRecord.getId())
+                .eq(TextbookIssueRecord::getDeleteMark, DeleteMark.NODELETE.getCode())
+                ;
+        List<TextbookIssueRecord> textbookIssueRecords = textbookIssueRecordMapper.selectList(textbookIssueRecordLambdaQueryWrapper);
+
+        TextbookIssueRecord updateTextbookIssueRecord;
+        for (TextbookIssueRecord textbookIssueRecord : textbookIssueRecords){
+            updateTextbookIssueRecord = new TextbookIssueRecord();
+            updateTextbookIssueRecord.setId(textbookIssueRecord.getId());
+            updateTextbookIssueRecord.setActualTotalPrice(updateTextbookWarehouseRecord.getSubtotal().multiply(BigDecimal.valueOf(textbookIssueRecord.getActualIssueNumber())));
+            textbookIssueRecordMapper.updateById(updateTextbookIssueRecord);
+        }
+
+        // 需要找到使用当前入库记录的出库记录对应的学生确认领取,改变其值
+        LambdaUpdateWrapper<TextbookStudentClaim> textbookStudentClaimLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+        textbookStudentClaimLambdaUpdateWrapper
+                .set(TextbookStudentClaim::getPrice, updateTextbookWarehouseRecord.getSubtotal())
+                .eq(TextbookStudentClaim::getTextbookWarehouseRecordId, textbookWarehouseRecord.getId())
+                ;
+        textbookStudentClaimMapper.update(new TextbookStudentClaim(), textbookStudentClaimLambdaUpdateWrapper);
+
         TextbookDiscountAlterRecord textbookDiscountAlterRecord = new TextbookDiscountAlterRecord();
         textbookDiscountAlterRecord.setTextbookWarehouseRecordId(textbookWarehouseRecord.getId());
         textbookDiscountAlterRecord.setOldPrice(textbookWarehouseRecord.getPrice());

+ 8 - 3
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookClaimServiceImpl.java

@@ -406,7 +406,7 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
             WfTextbookClaimItem wfTextbookClaimItem = wfTextbookClaimItemMap.get(textbookClaimItem.getTextbookClaimItemId());
 
             if (ObjectUtils.isEmpty(wfTextbookClaimItem)) {
-                throw new MyException("未找到申领详细数据");
+                throw new MyException("申领详细数据发生更改,请刷新页面");
             }
 
             //判断总发放数量是否超出该申请项的申请数量
@@ -426,7 +426,7 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
             for (ConfirmDistributeDto.TextbookWarehouseRecords textbookWarehouseRecords : textbookClaimItem.getTextbookWarehouseRecords()) {
                 TextbookWarehouseRecord textbookWarehouseRecord = textbookWarehouseRecordMap.get(textbookWarehouseRecords.getTextbookWarehouseRecordId());
                 if (ObjectUtils.isEmpty(textbookWarehouseRecord)) {
-                    throw new MyException("未找到入库详细数据");
+                    throw new MyException("未找到对应入库详细数据");
                 }
 
                 if (textbookWarehouseRecord.getRemainNumber() < textbookWarehouseRecords.getConfirmNumber()) {
@@ -512,12 +512,16 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
                 // 如果申领项是个人申领,发放的时候应该直接帮助学生确认领取
                 if (ClaimTypeEnum.ClaimStudent.getCode().equals(wfTextbookClaim.getClaimType())) {
                     oldTextbookStudentClaim = byUserIdAndTextbookId.get("" + wfTextbookClaim.getApplicantUserId() + wfTextbookClaimItem.getTextbookId());
-                    if (ObjectUtils.isNotEmpty(oldTextbookStudentClaim) && (ObjectUtils.isEmpty(oldTextbookStudentClaim.getClaimSource()) || oldTextbookStudentClaim.getClaimSource() != 1)) {
+                    if (ObjectUtils.isNotEmpty(oldTextbookStudentClaim)
+                            && (ObjectUtils.isEmpty(oldTextbookStudentClaim.getClaimSource())
+                            || oldTextbookStudentClaim.getClaimSource() != 1)
+                    ) {
                         updateTextbookStudentClaim = new TextbookStudentClaim();
                         updateTextbookStudentClaim.setId(oldTextbookStudentClaim.getId());
                         updateTextbookStudentClaim.setIsClaim(1);
                         updateTextbookStudentClaim.setModifyDate(nowDate);
                         updateTextbookStudentClaim.setModifyUserId(loginUserId);
+                        updateTextbookStudentClaim.setTextbookWarehouseRecordId(textbookWarehouseRecord.getId());
                         updateTextbookStudentClaim.setPrice(textbookWarehouseRecord.getSubtotal());
                         updateTextbookStudentClaim.setClaimSource(2);
                         updateList.add(updateTextbookStudentClaim);
@@ -530,6 +534,7 @@ public class WfTextbookClaimServiceImpl extends MPJBaseServiceImpl<WfTextbookCla
                         insertTextbookStudentClaim.setIsClaim(1);
                         insertTextbookStudentClaim.setCreateDate(nowDate);
                         insertTextbookStudentClaim.setCreateUserId(loginUserId);
+                        insertTextbookStudentClaim.setTextbookWarehouseRecordId(textbookWarehouseRecord.getId());
                         insertTextbookStudentClaim.setPrice(textbookWarehouseRecord.getSubtotal());
                         insertTextbookStudentClaim.setClaimSource(2);
                         insertList.add(insertTextbookStudentClaim);

+ 3 - 0
src/main/java/com/xjrsoft/module/textbook/vo/ClassClaimTextbookIssuePrice.java

@@ -17,6 +17,9 @@ public class ClassClaimTextbookIssuePrice {
     @ApiModelProperty("教材管理编号")
     private Long textbookId;
 
+    @ApiModelProperty("教材发放的入库的编号")
+    private Long textbookWarehouseRecordId;
+
     @ApiModelProperty("教材发放的入库的价格")
     private BigDecimal price;
 }

+ 2 - 0
src/main/resources/sqlScript/20250603sql.sql

@@ -7,3 +7,5 @@ alter table textbook_discount_alter_record
 alter table textbook_discount_alter_record
     add new_price decimal(15, 6) null comment '新的价格' after old_price;
 
+alter table textbook_student_claim
+    add textbook_warehouse_record_id bigint null comment '关联入库主键' after textbook_id;