|
@@ -103,8 +103,8 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
wrapper -> wrapper
|
|
|
.selectAs(DictionaryDetail::getName, TextbookInstockroomListVo::getTextbookTypeCn)
|
|
|
)
|
|
|
- .eq(TextbookSubscriptionItem::getTextbookSubscriptionId, dto.getTextbookSubscriptionId())
|
|
|
|
|
|
+ .eq(TextbookSubscriptionItem::getTextbookSubscriptionId, dto.getTextbookSubscriptionId())
|
|
|
.orderByAsc(TextbookSubscriptionItem::getInStockNum)
|
|
|
;
|
|
|
|
|
@@ -185,15 +185,18 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
int teaNum = 0;
|
|
|
BigDecimal totalPrice = BigDecimal.valueOf(0);
|
|
|
BigDecimal currentPrice;
|
|
|
+ BigDecimal currentTotalPrice;
|
|
|
for (TextbookSubscriptionItem textbookSubscriptionItem : textbookSubscriptionItemList) {
|
|
|
stuNum += textbookSubscriptionItem.getStudentNum();
|
|
|
teaNum += textbookSubscriptionItem.getTeacherNum();
|
|
|
|
|
|
- currentPrice = textbookSubscriptionItem.getPrice().multiply(BigDecimal.valueOf(textbookSubscriptionItem.getDiscount()).divide(BigDecimal.valueOf(10), RoundingMode.DOWN))
|
|
|
- .multiply(BigDecimal.valueOf(textbookSubscriptionItem.getTeacherNum() + textbookSubscriptionItem.getStudentNum()))
|
|
|
- ;
|
|
|
+ BigDecimal discount = BigDecimal.valueOf(textbookSubscriptionItem.getDiscount()).divide(BigDecimal.valueOf(10), 2, RoundingMode.DOWN);
|
|
|
+
|
|
|
+ currentPrice = textbookSubscriptionItem.getPrice().multiply(discount);
|
|
|
+
|
|
|
+ currentTotalPrice = currentPrice.multiply(BigDecimal.valueOf(textbookSubscriptionItem.getTeacherNum() + textbookSubscriptionItem.getStudentNum()));
|
|
|
|
|
|
- totalPrice = totalPrice.add(currentPrice);
|
|
|
+ totalPrice = totalPrice.add(currentTotalPrice);
|
|
|
}
|
|
|
TextbookSubscriptionDetailVo textbookSubscriptionDetailVo = new TextbookSubscriptionDetailVo();
|
|
|
textbookSubscriptionDetailVo.setId(String.valueOf(id));
|
|
@@ -256,8 +259,7 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
.leftJoin(XjrUser.class, XjrUser::getId, BaseClass::getTeacherId)
|
|
|
|
|
|
.eq(ObjectUtils.isNotEmpty(dto.getId()), TextbookSubscriptionItem::getTextbookSubscriptionId, dto.getId())
|
|
|
- .eq(ObjectUtils.isNotEmpty(dto.getTextbookSubscriptionItemId()), TextbookSubscriptionItem::getId, dto.getId())
|
|
|
- .eq(TextbookSubscriptionItem::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .eq(ObjectUtils.isNotEmpty(dto.getTextbookSubscriptionItemId()), TextbookSubscriptionItem::getId, dto.getTextbookSubscriptionItemId())
|
|
|
.eq(TextbookSubscriptionClass::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
;
|
|
|
|
|
@@ -373,7 +375,9 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
|
|
|
Map<Long, TextbookSubscriptionItem> itemByIdMap = new HashMap<>();
|
|
|
for (TextbookSubscriptionItem el : textbookSubscriptionItemList) {
|
|
|
- itemByIdMap.put(el.getId(), el);
|
|
|
+ if(ObjectUtils.isNotEmpty(el.getId()) && !itemByIdMap.containsKey(el.getId())){
|
|
|
+ itemByIdMap.put(el.getId(), el);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
TextbookSubscriptionItem old = null;
|
|
@@ -389,8 +393,10 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
TextbookSubscriptionItem updateItem = new TextbookSubscriptionItem();
|
|
|
updateItem.setId(old.getId());
|
|
|
updateItem.setDiscount(dto.getDiscount());
|
|
|
- updateItem.setPrice(old.getPrice().multiply(BigDecimal.valueOf(dto.getDiscount()).divide(BigDecimal.valueOf(10), 2, RoundingMode.DOWN)));
|
|
|
+ updateItem.setPrice(old.getPrice().multiply(BigDecimal.valueOf(dto.getDiscount() / 10)));
|
|
|
updateItem.setInStockNum(old.getInStockNum() + dto.getInNum());
|
|
|
+ updateItem.setModifyDate(new Date());
|
|
|
+ updateItem.setModifyUserId(StpUtil.getLoginIdAsLong());
|
|
|
textbookSubscriptionTextbookSubscriptionItemMapper.updateById(updateItem);
|
|
|
|
|
|
//新增入库记录
|
|
@@ -401,9 +407,11 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
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.setSubtotal(old.getPrice().multiply(BigDecimal.valueOf(dto.getDiscount() / 10)));
|
|
|
textbookWarehouseRecord.setTotalPrice(textbookWarehouseRecord.getSubtotal().multiply(BigDecimal.valueOf(dto.getInNum())));
|
|
|
textbookWarehouseRecord.setWarehouseMode(WarehouseModeEnum.WmManual.getCode());
|
|
|
+ updateItem.setCreateDate(new Date());
|
|
|
+ updateItem.setCreateUserId(StpUtil.getLoginIdAsLong());
|
|
|
textbookWarehouseRecordMapper.insert(textbookWarehouseRecord);
|
|
|
}
|
|
|
|
|
@@ -588,17 +596,36 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
throw new MyException("征订项已经被修改,刷新重试");
|
|
|
}
|
|
|
|
|
|
+ MPJLambdaWrapper<TextbookSubscription> textbookSubscriptionMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ textbookSubscriptionMPJLambdaWrapper
|
|
|
+ .select(TextbookSubscription.class, x -> VoToColumnUtil.fieldsToColumns(TextbookSubscription.class).contains(x.getProperty()))
|
|
|
+ .eq(TextbookSubscriptionItem::getId, dto.getId())
|
|
|
+ .innerJoin(TextbookSubscriptionItem.class, TextbookSubscriptionItem::getTextbookSubscriptionId, TextbookSubscription::getId)
|
|
|
+ ;
|
|
|
+
|
|
|
+ TextbookSubscription textbookSubscription = this.selectJoinOne(TextbookSubscription.class, textbookSubscriptionMPJLambdaWrapper);
|
|
|
+
|
|
|
// 判断变更状态
|
|
|
int alterationType = 0;
|
|
|
-
|
|
|
+ TextbookSubscription updateTotalNum = new TextbookSubscription();
|
|
|
if(!old.getStudentNum().equals(dto.getStudentNum())
|
|
|
- && !old.getTeacherNum().equals(dto.getTeacherNum())
|
|
|
+ || !old.getTeacherNum().equals(dto.getTeacherNum())
|
|
|
){
|
|
|
alterationType = 1;
|
|
|
+ if(ObjectUtils.isNotEmpty(textbookSubscription)){
|
|
|
+ updateTotalNum.setId(textbookSubscription.getId());
|
|
|
+ updateTotalNum.setSum(textbookSubscription.getSum() + (dto.getStudentNum() - old.getStudentNum()) + (dto.getTeacherNum() - old.getTeacherNum()));
|
|
|
+ this.updateById(updateTotalNum);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if(!old.getTextbookId().equals(dto.getTextbookId())){
|
|
|
alterationType = 2;
|
|
|
+ if(ObjectUtils.isNotEmpty(textbookSubscription)){
|
|
|
+ updateTotalNum.setId(textbookSubscription.getId());
|
|
|
+ updateTotalNum.setSum(textbookSubscription.getSum() - (old.getTeacherNum() + old.getStudentNum()) + (dto.getTeacherNum() + dto.getStudentNum()));
|
|
|
+ this.updateById(updateTotalNum);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 将历史记录保存到历史变更记录表
|
|
@@ -643,6 +670,9 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
textbookSubscriptionItemHistory.setAlterationType(alterationType);
|
|
|
textbookSubscriptionItemHistoryMapper.insert(textbookSubscriptionItemHistory);
|
|
|
|
|
|
+ // 变更征订总数量
|
|
|
+
|
|
|
+
|
|
|
//变更当前记录
|
|
|
TextbookSubscriptionItem updateItem = new TextbookSubscriptionItem();
|
|
|
BeanUtils.copyProperties(dto, updateItem);
|