Forráskód Böngészése

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

dzx 6 hónapja
szülő
commit
a2ed3c0b6f

+ 3 - 0
src/main/java/com/xjrsoft/module/oa/controller/NewsController.java

@@ -147,6 +147,9 @@ public class NewsController {
         if (news == null) {
             return RT.error("该内容不存在或已被删除!");
         }
+        if (EnabledMark.DISABLED.getCode() == news.getEnabledMark()) {
+            return RT.error("该内容已被作废!");
+        }
 
         List<NewsRelationVo> newsRelationVoList = new ArrayList<>();
         MPJLambdaWrapper<NewsRelation> queryWrapper = new MPJLambdaWrapper<>();

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

@@ -95,11 +95,11 @@ public class TextbookController {
         return RT.ok(pageOutput);
     }
 
-    @GetMapping(value = "/List-subscription")
+    @PostMapping(value = "/List-subscription")
     @ApiOperation(value = "教材管理列表(不分页,教材征订用)")
     @SaCheckPermission("textbook:detail")
     @XjrLog(value = "教材管理列表(不分页,教材征订用)")
-    public RT<List<TextbookSubscriptionListVo>> listSubscription(@Valid TextbookSubscriptionListDto dto) {
+    public RT<List<TextbookSubscriptionListVo>> listSubscription(@Valid @RequestBody TextbookSubscriptionListDto dto) {
         List<TextbookSubscriptionListVo> list = textbookService.getSubscriptionListByClass(dto);
         return RT.ok(list);
     }

+ 5 - 5
src/main/java/com/xjrsoft/module/textbook/dto/AddTextbookSubscriptionItemDto.java

@@ -43,11 +43,11 @@ public class AddTextbookSubscriptionItemDto implements Serializable {
      */
     @ApiModelProperty("教师用书征订数量")
     private Integer teacherNum;
-//    /**
-//     * 定价(元)
-//     */
-//    @ApiModelProperty("定价(元)")
-//    private BigDecimal sourcePrice;
+    /**
+     * 定价(元)
+     */
+    @ApiModelProperty("定价(元)")
+    private BigDecimal sourcePrice;
     /**
      * 小计(元)
      */

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

@@ -16,8 +16,10 @@ import lombok.Data;
 public class TextbookSubscriptionListDto {
     @ApiModelProperty("学期id")
     public Long baseSemesterId;
+
     @ApiModelProperty("学期id")
     public Long textbookSubscriptionId;
+
     /**
      * 使用班级
      */

+ 5 - 0
src/main/java/com/xjrsoft/module/textbook/dto/UpdateDiscountDto.java

@@ -3,6 +3,8 @@ package com.xjrsoft.module.textbook.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 @Data
 public class UpdateDiscountDto {
 
@@ -11,6 +13,9 @@ public class UpdateDiscountDto {
     @ApiModelProperty("入库记录主键id")
     private Long id;
 
+    @ApiModelProperty("新的定价")
+    private BigDecimal price;
+
     @ApiModelProperty("新的折扣")
     private Double discount;
 }

+ 11 - 0
src/main/java/com/xjrsoft/module/textbook/entity/TextbookDiscountAlterRecord.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 
@@ -75,6 +76,16 @@ public class TextbookDiscountAlterRecord implements Serializable {
      */
     @ApiModelProperty("入库编号")
     private Long textbookWarehouseRecordId;
+    /**
+     * 旧的价格
+     */
+    @ApiModelProperty("旧的价格")
+    private BigDecimal oldPrice;
+    /**
+     * 新的价格
+     */
+    @ApiModelProperty("新的价格")
+    private BigDecimal newPrice;
     /**
      * 旧的折扣
      */

+ 5 - 0
src/main/java/com/xjrsoft/module/textbook/entity/TextbookSubscriptionItem.java

@@ -96,6 +96,11 @@ public class TextbookSubscriptionItem implements Serializable {
      */
     @ApiModelProperty("在本次征订中本征订项的教材使用的班级数量")
     private Integer useClassNum;
+    /**
+     * 定价(元)
+     */
+    @ApiModelProperty("定价(元)")
+    private BigDecimal sourcePrice;
     /**
      * 实际折扣
      */

+ 0 - 1
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookServiceImpl.java

@@ -1186,7 +1186,6 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
 //            t.setStudentSubscriptionNumber(num.intValue());
 //
 //            t.setClassIds(dto.getClassIds());
-//
         }
 
         return textbookSubscriptionListVoList;

+ 63 - 26
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookSubscriptionServiceImpl.java

@@ -31,6 +31,7 @@ import com.xjrsoft.module.textbook.service.ITextbookSubscriptionService;
 import com.xjrsoft.module.textbook.vo.*;
 import com.xjrsoft.module.veb.util.ImportExcelUtil;
 import lombok.AllArgsConstructor;
+import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.*;
@@ -136,16 +137,13 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
         MPJLambdaWrapper<TextbookSubscriptionItem> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
                 .disableSubLogicDel()
-                .selectAs(Textbook::getPrice, TextbookInstockroomListVo::getPrice)
-                .selectAs(TextbookSubscriptionItem::getDiscount, TextbookInstockroomListVo::getDiscount)
+                .select(Textbook.class, x -> VoToColumnUtil.fieldsToColumns(TextbookInstockroomListVo.class).contains(x.getProperty()))
+                .select(TextbookSubscriptionItem.class, x -> VoToColumnUtil.fieldsToColumns(TextbookInstockroomListVo.class).contains(x.getProperty()))
                 .selectAs(TextbookSubscriptionItem::getPrice, TextbookInstockroomListVo::getActualPrice)
+                .selectAs(TextbookSubscriptionItem::getSourcePrice, TextbookInstockroomListVo::getPrice)
                 .selectAs(TextbookSubscriptionItem::getStudentNum, TextbookInstockroomListVo::getStudentSubscriptionNumber)
                 .selectAs(TextbookSubscriptionItem::getTeacherNum, TextbookInstockroomListVo::getTeacherSubscriptionNumber)
                 .selectAs(TextbookSubscriptionItem::getId, TextbookInstockroomListVo::getTextbookSubscriptionItemId)
-                .select(Textbook.class, x -> VoToColumnUtil.fieldsToColumns(TextbookInstockroomListVo.class).contains(x.getProperty()))
-                .select(TextbookSubscriptionItem.class, x -> VoToColumnUtil.fieldsToColumns(TextbookInstockroomListVo.class).contains(x.getProperty()))
-//                .selectAs(TextbookSubscriptionItem::getPrice, TextbookInstockroomListVo::getActualPrice)
-//                .selectAs(TextbookSubscriptionItem::getDiscount, TextbookInstockroomListVo::getDiscount)
                 .leftJoin(Textbook.class, Textbook::getId, TextbookSubscriptionItem::getTextbookId)
                 .leftJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getDataItemId, TextbookSubscriptionItem::getId)
                 .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, Textbook::getCourseSubjectId,
@@ -204,8 +202,6 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
         MPJLambdaWrapper<TextbookSubscriptionItem> textbookSubscriptionItemMPJLambdaWrapper = new MPJLambdaWrapper<>();
         textbookSubscriptionItemMPJLambdaWrapper
                 .select(TextbookSubscriptionItem::getId)
-                .selectAs(Textbook::getPrice, TextbookSubscriptionItemVo::getPricing)
-                .selectAs(TextbookSubscriptionItem::getPrice, TextbookSubscriptionItemVo::getPrice)
                 .select(TextbookSubscriptionItem.class, x -> VoToColumnUtil.fieldsToColumns(TextbookSubscriptionItemVo.class).contains(x.getProperty()))
                 .leftJoin(Textbook.class, Textbook::getId, TextbookSubscriptionItem::getTextbookId,
                         wrapper -> wrapper
@@ -219,6 +215,8 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
                                                 .selectAs(DictionaryDetail::getName, TextbookSubscriptionItemVo::getTextbookTypeCn)
                                 )
                 )
+                .selectAs(TextbookSubscriptionItem::getSourcePrice, TextbookSubscriptionItemVo::getPricing)
+                .selectAs(TextbookSubscriptionItem::getPrice, TextbookSubscriptionItemVo::getPrice)
                 .eq(TextbookSubscriptionItem::getTextbookSubscriptionId, id)
         ;
         List<TextbookSubscriptionItemVo> list = textbookSubscriptionTextbookSubscriptionItemMapper.selectJoinList(TextbookSubscriptionItemVo.class, textbookSubscriptionItemMPJLambdaWrapper);
@@ -431,6 +429,10 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
         TextbookSubscriptionItemClass textbookSubscriptionItemClass;
         for (TextbookSubscriptionItem textbookSubscriptionItem : textbookSubscription.getTextbookSubscriptionItemList()) {
 
+            if (ObjectUtils.isEmpty(textbookSubscriptionItem.getSourcePrice())) {
+                textbookSubscriptionItem.setSourcePrice(BigDecimal.ZERO);
+            }
+
             if (ObjectUtils.isEmpty(textbookSubscriptionItem.getPrice())) {
                 textbookSubscriptionItem.setPrice(BigDecimal.ZERO);
             }
@@ -516,12 +518,23 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
                 .eq(TextbookWarehouseRecord::getDeleteMark, DeleteMark.NODELETE.getCode())
         ;
         List<TextbookWarehouseRecord> textbookWarehouseRecords = textbookWarehouseRecordMapper.selectList(textbookWarehouseRecordLambdaQueryWrapper);
-        Map<Long, TextbookWarehouseRecord> textbookWarehouseRecordByItemIdMap = new HashMap<>();
-        for (TextbookWarehouseRecord twr : textbookWarehouseRecords) {
-            if (ObjectUtils.isNotEmpty(twr.getDataItemId()) && !textbookWarehouseRecordByItemIdMap.containsKey(twr.getDataItemId())) {
-                textbookWarehouseRecordByItemIdMap.put(twr.getDataItemId(), twr);
-            }
-        }
+
+        // 因为入库的时候可以修改定价,不同定价应该对应不同的入库记录
+        Map<Long, Map<BigDecimal, TextbookWarehouseRecord>> textbookWarehouseRecordByItemIdByPriceMap = textbookWarehouseRecords.stream()
+                .collect(Collectors.groupingBy(
+                        TextbookWarehouseRecord::getDataItemId, // 第一层分组:按征订项 ID 分组
+                        Collectors.toMap(
+                                TextbookWarehouseRecord::getPrice, // 第二层映射:按入库定价作为键
+                                wr -> wr,                      // 值为 TextbookStudentClaim 对象本身
+                                (existing, replacement) -> existing   // 如果有重复键,保留现有的值
+                        )
+                ));
+
+//        for (TextbookWarehouseRecord twr : textbookWarehouseRecords) {
+//            if (ObjectUtils.isNotEmpty(twr.getDataItemId()) && !textbookWarehouseRecordByItemIdMap.containsKey(twr.getDataItemId())) {
+//                textbookWarehouseRecordByItemIdMap.put(twr.getDataItemId(), twr);
+//            }
+//        }
 
         // 处理入库单号
         StringBuilder sb = new StringBuilder();
@@ -550,22 +563,27 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
         TextbookSubscriptionItem old = null;
         TextbookSubscriptionItem updateItem;
         TextbookWarehouseRecord textbookWarehouseRecord;
+        Map<BigDecimal, TextbookWarehouseRecord> oldTextbookWarehouseRecordByPrice = null;
         TextbookWarehouseRecord oldTextbookWarehouseRecord = null;
         TextbookWarehouseRecordDetail textbookWarehouseRecordDetail;
         for (TextbookInstockroomDto dto : dtos) {
             if (ObjectUtils.isNotEmpty(dto.getTextbookSubscriptionItemId())) {
                 old = itemByIdMap.get(dto.getTextbookSubscriptionItemId());
-                oldTextbookWarehouseRecord = textbookWarehouseRecordByItemIdMap.get(dto.getTextbookSubscriptionItemId());
+                oldTextbookWarehouseRecordByPrice = textbookWarehouseRecordByItemIdByPriceMap.get(dto.getTextbookSubscriptionItemId());
+                if(MapUtils.isNotEmpty(oldTextbookWarehouseRecordByPrice)){
+                    oldTextbookWarehouseRecord = oldTextbookWarehouseRecordByPrice.get(dto.getPrice());
+                }
             }
 
             if (ObjectUtils.isEmpty(old)) {
                 continue;
             }
 
+            // 现在入库价格改动不影响征订项的价格相关属性
             updateItem = new TextbookSubscriptionItem();
             updateItem.setId(old.getId());
-            updateItem.setDiscount(ObjectUtils.isNotEmpty(dto.getDiscount()) ? dto.getDiscount() : 10);
-            updateItem.setPrice(dto.getPrice().multiply(BigDecimal.valueOf(dto.getDiscount() / 10)));
+//            updateItem.setDiscount(ObjectUtils.isNotEmpty(dto.getDiscount()) ? dto.getDiscount() : 10);
+//            updateItem.setPrice(dto.getPrice().multiply(BigDecimal.valueOf(dto.getDiscount() / 10)));
             updateItem.setInStockNum(old.getInStockNum() + dto.getInNum());
             updateItem.setModifyDate(new Date());
             updateItem.setModifyUserId(StpUtil.getLoginIdAsLong());
@@ -660,8 +678,18 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
         ;
         List<TextbookWarehouseRecord> textbookWarehouseRecords = textbookWarehouseRecordMapper.selectList(textbookWarehouseRecordLambdaQueryWrapper);
 
-        Map<Long, TextbookWarehouseRecord> textbookWarehouseRecordByItemIdMap = textbookWarehouseRecords.stream()
-                .collect(Collectors.toMap(TextbookWarehouseRecord::getDataItemId, t -> t, (t1, t2) -> t2));
+//        Map<Long, TextbookWarehouseRecord> textbookWarehouseRecordByItemIdMap = textbookWarehouseRecords.stream()
+//                .collect(Collectors.toMap(TextbookWarehouseRecord::getDataItemId, t -> t, (t1, t2) -> t2));
+        // 因为入库的时候可以修改定价,不同定价应该对应不同的入库记录
+        Map<Long, Map<BigDecimal, TextbookWarehouseRecord>> textbookWarehouseRecordByItemIdByPriceMap = textbookWarehouseRecords.stream()
+                .collect(Collectors.groupingBy(
+                        TextbookWarehouseRecord::getDataItemId, // 第一层分组:按征订项 ID 分组
+                        Collectors.toMap(
+                                TextbookWarehouseRecord::getPrice, // 第二层映射:按入库定价作为键
+                                wr -> wr,                      // 值为 TextbookStudentClaim 对象本身
+                                (existing, replacement) -> existing   // 如果有重复键,保留现有的值
+                        )
+                ));
 
         // 处理入库单号
         StringBuilder sb = new StringBuilder();
@@ -692,7 +720,8 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
         // 处理入库细节
         TextbookSubscriptionItem oldItem;
         TextbookSubscriptionItem updateItem;
-        TextbookWarehouseRecord oldTextbookWarehouseRecord;
+        Map<BigDecimal, TextbookWarehouseRecord> oldTextbookWarehouseRecordByPrice;
+        TextbookWarehouseRecord oldTextbookWarehouseRecord = null;
         TextbookWarehouseRecord textbookWarehouseRecord;
         TextbookWarehouseRecordDetail textbookWarehouseRecordDetail;
         Date nowDate = new Date();
@@ -717,14 +746,17 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
                 throw new MyException("第" + (i + 4) + "行数据主键被修改,请重新下载模板");
             }
 
-            oldTextbookWarehouseRecord = textbookWarehouseRecordByItemIdMap.get(Long.parseLong(vo.getTextbookSubscriptionItemId()));
+            oldTextbookWarehouseRecordByPrice = textbookWarehouseRecordByItemIdByPriceMap.get(Long.parseLong(vo.getTextbookSubscriptionItemId()));
+            if(MapUtils.isNotEmpty(oldTextbookWarehouseRecordByPrice)){
+                oldTextbookWarehouseRecord = oldTextbookWarehouseRecordByPrice.get(vo.getPrice());
+            }
 
             updateItem = new TextbookSubscriptionItem();
             updateItem.setId(oldItem.getId());
-            if (ObjectUtils.isEmpty(oldItem.getInStockNum()) || oldItem.getInStockNum() <= 0) {
-                updateItem.setDiscount(ObjectUtils.isNotEmpty(vo.getDiscount()) ? vo.getDiscount() : 10);
-                updateItem.setPrice(vo.getPrice().multiply(BigDecimal.valueOf(vo.getDiscount() / 10)));
-            }
+//            if (ObjectUtils.isEmpty(oldItem.getInStockNum()) || oldItem.getInStockNum() <= 0) {
+//                updateItem.setDiscount(ObjectUtils.isNotEmpty(vo.getDiscount()) ? vo.getDiscount() : 10);
+//                updateItem.setPrice(vo.getPrice().multiply(BigDecimal.valueOf(vo.getDiscount() / 10)));
+//            }
             updateItem.setInStockNum(oldItem.getInStockNum() + vo.getInNum());
             updateItem.setModifyDate(nowDate);
             updateItem.setModifyUserId(loginId);
@@ -812,6 +844,11 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
 
             TextbookSubscriptionItemClass textbookSubscriptionItemClass;
             for (TextbookSubscriptionItem textbookSubscriptionItem : textbookSubscription.getTextbookSubscriptionItemList()) {
+
+                if (ObjectUtils.isEmpty(textbookSubscriptionItem.getSourcePrice())) {
+                    textbookSubscriptionItem.setSourcePrice(BigDecimal.ZERO);
+                }
+
                 if (ObjectUtils.isEmpty(textbookSubscriptionItem.getPrice())) {
                     textbookSubscriptionItem.setPrice(BigDecimal.ZERO);
                 }
@@ -1086,7 +1123,7 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
         ImportExcelUtil.createBigHead(workbook, sheet, "教材入库导入模板", 0, importConfigs.size() - 1);
 
         // 提示必填
-        String cautionHead = "说明:教材的基础信息不能修改,请输入实际折扣和入库数量,然后直接导入当前excel";
+        String cautionHead = "说明:教材的基础信息不能修改,请输入定价,实际折扣和入库数量,然后直接导入当前excel";
         ImportExcelUtil.createCautionHead(workbook, sheet, 1, cautionHead, importConfigs.size() - 1, 12, IndexedColors.RED.getIndex());
 
         // 表头

+ 20 - 17
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookWarehouseRecordServiceImpl.java

@@ -204,26 +204,27 @@ public class TextbookWarehouseRecordServiceImpl extends MPJBaseServiceImpl<Textb
 
         // 如果是征订入库
         // 根据入库记录找到对应的征订
-        MPJLambdaWrapper<TextbookWarehouseRecord> textbookWarehouseRecordMPJLambdaWrapper = new MPJLambdaWrapper<>();
-        textbookWarehouseRecordMPJLambdaWrapper
-                .disableSubLogicDel()
-                .select(TextbookSubscriptionItem::getId)
-                .select(TextbookSubscriptionItem.class, x -> VoToColumnUtil.fieldsToColumns(TextbookSubscriptionItem.class).contains(x.getProperty()))
-                .innerJoin(TextbookSubscriptionItem.class, TextbookSubscriptionItem::getId, TextbookWarehouseRecord::getDataItemId)
-                .eq(TextbookWarehouseRecord::getId, dto.getId())
-        ;
-        TextbookSubscriptionItem textbookSubscriptionItem = textbookWarehouseRecordMapper.selectJoinOne(TextbookSubscriptionItem.class, textbookWarehouseRecordMPJLambdaWrapper);
-        if (ObjectUtils.isNotEmpty(textbookSubscriptionItem)) {
-            TextbookSubscriptionItem updateTextbookSubscriptionItem = new TextbookSubscriptionItem();
-            updateTextbookSubscriptionItem.setId(textbookSubscriptionItem.getId());
-            updateTextbookSubscriptionItem.setDiscount(ObjectUtils.isNotEmpty(dto.getDiscount()) ? dto.getDiscount() : 10);
-            updateTextbookSubscriptionItem.setPrice(textbookWarehouseRecord.getPrice().multiply(BigDecimal.valueOf(dto.getDiscount() / 10)));
-            updateTextbookSubscriptionItem.setModifyDate(new Date());
-            textbookSubscriptionItemMapper.updateById(updateTextbookSubscriptionItem);
-        }
+//        MPJLambdaWrapper<TextbookWarehouseRecord> textbookWarehouseRecordMPJLambdaWrapper = new MPJLambdaWrapper<>();
+//        textbookWarehouseRecordMPJLambdaWrapper
+//                .disableSubLogicDel()
+//                .select(TextbookSubscriptionItem::getId)
+//                .select(TextbookSubscriptionItem.class, x -> VoToColumnUtil.fieldsToColumns(TextbookSubscriptionItem.class).contains(x.getProperty()))
+//                .innerJoin(TextbookSubscriptionItem.class, TextbookSubscriptionItem::getId, TextbookWarehouseRecord::getDataItemId)
+//                .eq(TextbookWarehouseRecord::getId, dto.getId())
+//        ;
+//        TextbookSubscriptionItem textbookSubscriptionItem = textbookWarehouseRecordMapper.selectJoinOne(TextbookSubscriptionItem.class, textbookWarehouseRecordMPJLambdaWrapper);
+//        if (ObjectUtils.isNotEmpty(textbookSubscriptionItem)) {
+//            TextbookSubscriptionItem updateTextbookSubscriptionItem = new TextbookSubscriptionItem();
+//            updateTextbookSubscriptionItem.setId(textbookSubscriptionItem.getId());
+//            updateTextbookSubscriptionItem.setDiscount(ObjectUtils.isNotEmpty(dto.getDiscount()) ? dto.getDiscount() : 10);
+//            updateTextbookSubscriptionItem.setPrice(textbookWarehouseRecord.getPrice().multiply(BigDecimal.valueOf(dto.getDiscount() / 10)));
+//            updateTextbookSubscriptionItem.setModifyDate(new Date());
+//            textbookSubscriptionItemMapper.updateById(updateTextbookSubscriptionItem);
+//        }
 
         TextbookWarehouseRecord updateTextbookWarehouseRecord = new TextbookWarehouseRecord();
         updateTextbookWarehouseRecord.setId(textbookWarehouseRecord.getId());
+        updateTextbookWarehouseRecord.setPrice(ObjectUtils.isNotEmpty(dto.getPrice()) ? dto.getPrice() : BigDecimal.ZERO);
         updateTextbookWarehouseRecord.setDiscount(ObjectUtils.isNotEmpty(dto.getDiscount()) ? dto.getDiscount() : 10);
         updateTextbookWarehouseRecord.setSubtotal(textbookWarehouseRecord.getPrice().multiply(BigDecimal.valueOf(dto.getDiscount() / 10)));
         updateTextbookWarehouseRecord.setTotalPrice(updateTextbookWarehouseRecord.getSubtotal().multiply(BigDecimal.valueOf(textbookWarehouseRecord.getWarehouseNumber())));
@@ -233,6 +234,8 @@ public class TextbookWarehouseRecordServiceImpl extends MPJBaseServiceImpl<Textb
 
         TextbookDiscountAlterRecord textbookDiscountAlterRecord = new TextbookDiscountAlterRecord();
         textbookDiscountAlterRecord.setTextbookWarehouseRecordId(textbookWarehouseRecord.getId());
+        textbookDiscountAlterRecord.setOldPrice(textbookWarehouseRecord.getPrice());
+        textbookDiscountAlterRecord.setNewPrice(dto.getPrice());
         textbookDiscountAlterRecord.setOldDiscount(textbookWarehouseRecord.getDiscount());
         textbookDiscountAlterRecord.setNewDiscount(dto.getDiscount());
         textbookDiscountAlterRecord.setCreateDate(new Date());

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

@@ -17,7 +17,7 @@ import java.math.BigDecimal;
 @Data
 public class TextbookSubscriptionExportQueryListVo {
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("主键")
+    @ExcelProperty("征订项编号")
     @ApiModelProperty("征订项编号")
     private String textbookSubscriptionItemId;
 
@@ -79,6 +79,7 @@ public class TextbookSubscriptionExportQueryListVo {
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("定价(元)")
     @ApiModelProperty("定价(元)")
+    @Required
     private BigDecimal price;
 
     @ContentStyle(dataFormat = 49)

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

@@ -0,0 +1,9 @@
+alter table textbook_subscription_item
+    add source_price decimal(15, 6) null comment '定价(元)' after discount;
+
+alter table textbook_discount_alter_record
+    add old_price decimal(15, 6) null comment '旧的价格' after textbook_warehouse_record_id;
+
+alter table textbook_discount_alter_record
+    add new_price decimal(15, 6) null comment '新的价格' after old_price;
+