Browse Source

教材征订项入库

大数据与最优化研究所 1 month ago
parent
commit
c49a133005

+ 10 - 4
src/main/java/com/xjrsoft/module/textbook/dto/TextbookInstockroomDto.java

@@ -24,11 +24,17 @@ public class TextbookInstockroomDto {
      */
     @ApiModelProperty("教材教辅征订项编号")
     private Long textbookSubscriptionItemId;
+
     /**
-     * 国际标准刊
+     * 教材编
      */
-    @ApiModelProperty(value = "国际标准刊号",hidden = true)
-    private String issn;
+    @ApiModelProperty("教材编号")
+    private String textbookId;
+    /**
+     * 定价(元)
+     */
+    @ApiModelProperty("定价(元)")
+    private BigDecimal price;
     /**
      * 实际折扣
      */
@@ -38,7 +44,7 @@ public class TextbookInstockroomDto {
      * 实际价格(元)
      */
     @ApiModelProperty("实际价格(元)")
-    private BigDecimal price;
+    private BigDecimal subtotal;
     /**
      * 本次入库数量
      */

+ 17 - 14
src/main/java/com/xjrsoft/module/textbook/service/impl/TextbookSubscriptionServiceImpl.java

@@ -113,18 +113,14 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
 
     @Override
     public List<TextbookInstockroomOnceListVo> everyInstockroomList(TextbookInstockroomOnceListDto dto) {
-        MPJLambdaWrapper<TextbookSubscriptionItem> queryWrapper = new MPJLambdaWrapper<>();
+        MPJLambdaWrapper<TextbookWarehouseRecord> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
                 .select(TextbookSubscriptionItem::getId)
+                .selectAs(TextbookWarehouseRecord::getWarehouseNumber, TextbookInstockroomOnceListVo::getOnceInStockNum)
+                .selectAs(TextbookWarehouseRecord::getCreateDate, TextbookInstockroomOnceListVo::getCreateDate)
+                .selectAs(TextbookWarehouseRecord::getCreateUserId, TextbookInstockroomOnceListVo::getCreateUserId)
                 .select(Textbook.class, x -> VoToColumnUtil.fieldsToColumns(TextbookInstockroomOnceListVo.class).contains(x.getProperty()))
-                .select(TextbookSubscriptionItem.class, x -> VoToColumnUtil.fieldsToColumns(TextbookInstockroomOnceListVo.class).contains(x.getProperty()))
                 .leftJoin(Textbook.class, Textbook::getId, TextbookSubscriptionItem::getTextbookId)
-                .leftJoin(TextbookWarehouseRecord.class, TextbookWarehouseRecord::getDataItemId, TextbookSubscriptionItem::getId,
-                        wrapper -> wrapper
-                                .selectAs(TextbookWarehouseRecord::getWarehouseNumber, TextbookInstockroomOnceListVo::getOnceInStockNum)
-                                .selectAs(TextbookWarehouseRecord::getCreateDate, TextbookInstockroomOnceListVo::getCreateDate)
-                                .selectAs(TextbookWarehouseRecord::getCreateUserId, TextbookInstockroomOnceListVo::getCreateUserId)
-                )
                 .leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, Textbook::getCourseSubjectId,
                         wrapper -> wrapper
                                 .selectAs(BaseCourseSubject::getName, TextbookInstockroomOnceListVo::getCourseName)
@@ -137,7 +133,7 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
                 .orderByAsc(TextbookSubscriptionItem::getInStockNum)
         ;
 
-        return textbookSubscriptionTextbookSubscriptionItemMapper.selectJoinList(TextbookInstockroomOnceListVo.class, queryWrapper);
+        return textbookWarehouseRecordMapper.selectJoinList(TextbookInstockroomOnceListVo.class, queryWrapper);
     }
 
     @Override
@@ -351,7 +347,9 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
 
         List<Long> textbookSubscriptionItemIds = new ArrayList<>();
         for (TextbookInstockroomDto dto : dtos) {
-            textbookSubscriptionItemIds.add(dto.getTextbookSubscriptionItemId());
+            if(ObjectUtils.isNotEmpty(dto.getTextbookSubscriptionItemId())){
+                textbookSubscriptionItemIds.add(dto.getTextbookSubscriptionItemId());
+            }
         }
 
         if (textbookSubscriptionItemIds.isEmpty()) {
@@ -378,20 +376,20 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
             itemByIdMap.put(el.getId(), el);
         }
 
+        TextbookSubscriptionItem old = null;
         for (TextbookInstockroomDto dto : dtos) {
-            TextbookSubscriptionItem old = null;
-            if (dto.getTextbookSubscriptionItemId() != null && dto.getTextbookSubscriptionItemId() > 0) {
+            if (ObjectUtils.isNotEmpty(dto.getTextbookSubscriptionItemId())) {
                 old = itemByIdMap.get(dto.getTextbookSubscriptionItemId());
             }
 
-            if (old == null) {
+            if (ObjectUtils.isEmpty(old)) {
                 continue;
             }
 
             TextbookSubscriptionItem updateItem = new TextbookSubscriptionItem();
             updateItem.setId(old.getId());
             updateItem.setDiscount(dto.getDiscount());
-            updateItem.setPrice(dto.getPrice());
+            updateItem.setPrice(old.getPrice().multiply(BigDecimal.valueOf(dto.getDiscount()).divide(BigDecimal.valueOf(10), 2, RoundingMode.DOWN)));
             updateItem.setInStockNum(old.getInStockNum() + dto.getInNum());
             textbookSubscriptionTextbookSubscriptionItemMapper.updateById(updateItem);
 
@@ -401,9 +399,14 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
             textbookWarehouseRecord.setDataId(dto.getTextbookSubscriptionId());
             textbookWarehouseRecord.setDataItemId(dto.getTextbookSubscriptionItemId());
             textbookWarehouseRecord.setWarehouseNumber(dto.getInNum());
+            textbookWarehouseRecord.setPrice(old.getPrice());
+            textbookWarehouseRecord.setDiscount(dto.getDiscount());
+            textbookWarehouseRecord.setSubtotal(old.getPrice().multiply(BigDecimal.valueOf(dto.getDiscount()).divide(BigDecimal.valueOf(10), 2, RoundingMode.DOWN)));
+            textbookWarehouseRecord.setTotalPrice(textbookWarehouseRecord.getSubtotal().multiply(BigDecimal.valueOf(dto.getInNum())));
             textbookWarehouseRecord.setWarehouseMode(WarehouseModeEnum.WmManual.getCode());
             textbookWarehouseRecordMapper.insert(textbookWarehouseRecord);
         }
+
         return true;
     }