|
@@ -1,31 +1,25 @@
|
|
|
package com.xjrsoft.module.textbook.service.impl;
|
|
|
|
|
|
+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.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
+import com.xjrsoft.common.exception.MyException;
|
|
|
import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
-import com.xjrsoft.module.base.mapper.BaseClassMapper;
|
|
|
import com.xjrsoft.module.base.service.IBaseClassService;
|
|
|
+import com.xjrsoft.module.textbook.dto.AddTextbookClassWarehouseDto;
|
|
|
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.entity.TextbookSubscriptionRecord;
|
|
|
-import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
|
|
|
-import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
|
|
|
+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.service.ITextbookClassWarehouseService;
|
|
|
import com.xjrsoft.module.textbook.service.ITextbookService;
|
|
|
import com.xjrsoft.module.textbook.service.IWfTextbookSubscriptionService;
|
|
|
-import com.xjrsoft.module.textbook.vo.TextbookClassWarehouseListVo;
|
|
|
-import com.xjrsoft.module.textbook.vo.TextbookIssueRecordListVo;
|
|
|
-import com.xjrsoft.module.textbook.vo.TextbookPageVo;
|
|
|
-import com.xjrsoft.module.textbook.vo.TextbookSubscriptionClassVo;
|
|
|
-import com.xjrsoft.module.textbook.vo.TextbookSubscriptionRecordVo;
|
|
|
-import com.xjrsoft.module.textbook.vo.TextbookVo;
|
|
|
+import com.xjrsoft.module.textbook.vo.*;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -36,11 +30,11 @@ import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
-* @title: 教材管理
|
|
|
-* @Author szs
|
|
|
-* @Date: 2023-12-25
|
|
|
-* @Version 1.0
|
|
|
-*/
|
|
|
+ * @title: 教材管理
|
|
|
+ * @Author szs
|
|
|
+ * @Date: 2023-12-25
|
|
|
+ * @Version 1.0
|
|
|
+ */
|
|
|
@Service
|
|
|
@AllArgsConstructor
|
|
|
public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Textbook> implements ITextbookService {
|
|
@@ -49,10 +43,11 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
|
|
|
private final TextbookClassRelationMapper textbookTextbookClassRelationMapper;
|
|
|
private final TextbookSubscriptionRecordMapper textbookTextbookSubscriptionRecordMapper;
|
|
|
|
|
|
- private final IWfTextbookSubscriptionService iWfTextbookSubscriptionService;
|
|
|
+ private final IWfTextbookSubscriptionService iWfTextbookSubscriptionService;
|
|
|
|
|
|
private final IBaseClassService baseClassService;
|
|
|
- private final BaseClassMapper baseClassMapper;
|
|
|
+
|
|
|
+ private final ITextbookClassWarehouseService textbookClassWarehouseService;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -63,7 +58,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
|
|
|
textbookClassRelation.setTextbookId(textbook.getId());
|
|
|
textbookTextbookClassRelationMapper.insert(textbookClassRelation);
|
|
|
}
|
|
|
- if(textbook.getTextbookSubscriptionRecordList() != null){
|
|
|
+ if (textbook.getTextbookSubscriptionRecordList() != null) {
|
|
|
for (TextbookSubscriptionRecord textbookSubscriptionRecord : textbook.getTextbookSubscriptionRecordList()) {
|
|
|
textbookSubscriptionRecord.setWfTextbookSubscriptionId(textbook.getId());
|
|
|
textbookTextbookSubscriptionRecordMapper.insert(textbookSubscriptionRecord);
|
|
@@ -101,7 +96,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
|
|
|
}
|
|
|
}
|
|
|
//已经不存在的id 删除
|
|
|
- if(textbookClassRelationRemoveIds.size() > 0){
|
|
|
+ if (textbookClassRelationRemoveIds.size() > 0) {
|
|
|
textbookTextbookClassRelationMapper.deleteBatchIds(textbookClassRelationRemoveIds);
|
|
|
}
|
|
|
}
|
|
@@ -113,7 +108,7 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
|
|
|
List<TextbookSubscriptionRecord> textbookSubscriptionRecordList = textbookTextbookSubscriptionRecordMapper.selectList(Wrappers.lambdaQuery(TextbookSubscriptionRecord.class).eq(TextbookSubscriptionRecord::getWfTextbookSubscriptionId, textbook.getId()).select(TextbookSubscriptionRecord::getId));
|
|
|
List<Long> textbookSubscriptionRecordIds = textbookSubscriptionRecordList.stream().map(TextbookSubscriptionRecord::getId).collect(Collectors.toList());
|
|
|
//原有子表单 没有被删除的主键
|
|
|
- if(!textbookSubscriptionRecordIds.isEmpty()){
|
|
|
+ if (!textbookSubscriptionRecordIds.isEmpty()) {
|
|
|
List<Long> textbookSubscriptionRecordOldIds = textbook.getTextbookSubscriptionRecordList().stream().map(TextbookSubscriptionRecord::getId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
//找到需要删除的id
|
|
|
List<Long> textbookSubscriptionRecordRemoveIds = textbookSubscriptionRecordIds.stream().filter(item -> !textbookSubscriptionRecordOldIds.contains(item)).collect(Collectors.toList());
|
|
@@ -131,19 +126,32 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
|
|
|
}
|
|
|
}
|
|
|
//已经不存在的id 删除
|
|
|
- if(textbookSubscriptionRecordRemoveIds.size() > 0){
|
|
|
+ if (textbookSubscriptionRecordRemoveIds.size() > 0) {
|
|
|
+ textbookTextbookSubscriptionRecordMapper.deleteBatchIds(textbookSubscriptionRecordRemoveIds);
|
|
|
+ }
|
|
|
+ for (TextbookSubscriptionRecord textbookSubscriptionRecord : textbook.getTextbookSubscriptionRecordList()) {
|
|
|
+ //如果不等于空则修改
|
|
|
+ if (textbookSubscriptionRecord.getId() != null) {
|
|
|
+ textbookTextbookSubscriptionRecordMapper.updateById(textbookSubscriptionRecord);
|
|
|
+ }
|
|
|
+ //如果等于空 则新增
|
|
|
+ else {
|
|
|
+ //已经不存在的id 删除
|
|
|
+ textbookSubscriptionRecord.setWfTextbookSubscriptionId(textbook.getId());
|
|
|
+ textbookTextbookSubscriptionRecordMapper.insert(textbookSubscriptionRecord);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //已经不存在的id 删除
|
|
|
+ if (textbookSubscriptionRecordRemoveIds.size() > 0) {
|
|
|
textbookTextbookSubscriptionRecordMapper.deleteBatchIds(textbookSubscriptionRecordRemoveIds);
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
|
|
|
|
|
|
+ }
|
|
|
+ //********************************* TextbookSubscriptionRecord 增删改 结束 *******************************************/
|
|
|
|
|
|
+ return true;
|
|
|
}
|
|
|
- //********************************* TextbookSubscriptionRecord 增删改 结束 *******************************************/
|
|
|
-
|
|
|
- return true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -164,18 +172,18 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
|
|
|
@Override
|
|
|
public Boolean dataHandle(Long dataId) {
|
|
|
WfTextbookSubscription wfTextbookSubscription = iWfTextbookSubscriptionService.selectById(dataId);
|
|
|
- if(ObjectUtil.isNotNull(wfTextbookSubscription) && ObjectUtil.isNotNull(wfTextbookSubscription.getWfTextbookSubscriptionItemList()) && wfTextbookSubscription.getWfTextbookSubscriptionItemList().size() > 0){
|
|
|
+ if (ObjectUtil.isNotNull(wfTextbookSubscription) && ObjectUtil.isNotNull(wfTextbookSubscription.getWfTextbookSubscriptionItemList()) && wfTextbookSubscription.getWfTextbookSubscriptionItemList().size() > 0) {
|
|
|
for (WfTextbookSubscriptionItem wfTextbookSubscriptionItem : wfTextbookSubscription.getWfTextbookSubscriptionItemList()) {
|
|
|
String issn = wfTextbookSubscriptionItem.getIssn();
|
|
|
Long semesterId = wfTextbookSubscription.getBaseSemesterId();
|
|
|
Long subjectGroupId = wfTextbookSubscription.getSubjectGroupId();
|
|
|
LambdaQueryWrapper<Textbook> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper
|
|
|
- .eq(Textbook::getIssn,issn)
|
|
|
- .eq(Textbook::getBaseSemesterId,semesterId)
|
|
|
- .eq(Textbook::getSubjectGroupId,subjectGroupId);
|
|
|
+ .eq(Textbook::getIssn, issn)
|
|
|
+ .eq(Textbook::getBaseSemesterId, semesterId)
|
|
|
+ .eq(Textbook::getSubjectGroupId, subjectGroupId);
|
|
|
Long count = this.count(queryWrapper);
|
|
|
- if(count <= 0){//该书不存在教材管理
|
|
|
+ if (count <= 0) {//该书不存在教材管理
|
|
|
Textbook textbook = new Textbook();
|
|
|
textbook.setIssn(wfTextbookSubscriptionItem.getIssn());
|
|
|
textbook.setIsbn(wfTextbookSubscriptionItem.getIsbn());
|
|
@@ -190,15 +198,15 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
|
|
|
textbook.setTextbookType(wfTextbookSubscriptionItem.getSubscriptionType());
|
|
|
textbook.setAppraisalPrice(wfTextbookSubscriptionItem.getAppraisalPrice());
|
|
|
textbookTextbookMapper.insert(textbook);
|
|
|
- if(ObjectUtil.isNotNull(wfTextbookSubscriptionItem.getClassIds()) && !wfTextbookSubscriptionItem.getClassIds().equals("")){
|
|
|
+ if (ObjectUtil.isNotNull(wfTextbookSubscriptionItem.getClassIds()) && !wfTextbookSubscriptionItem.getClassIds().equals("")) {
|
|
|
String classIds = wfTextbookSubscriptionItem.getClassIds();
|
|
|
//查询年级
|
|
|
LambdaQueryWrapper<BaseClass> queryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
queryWrapper1
|
|
|
- .in(BaseClass::getId,classIds)
|
|
|
+ .in(BaseClass::getId, classIds)
|
|
|
.groupBy(BaseClass::getGradeId);
|
|
|
List<BaseClass> baseClassList = baseClassService.list(queryWrapper1);
|
|
|
- if(ObjectUtil.isNotNull(baseClassList) && baseClassList.size() == 1){
|
|
|
+ if (ObjectUtil.isNotNull(baseClassList) && baseClassList.size() == 1) {
|
|
|
textbook.setGradeId(baseClassList.get(0).getGradeId());
|
|
|
}
|
|
|
String[] classIdStrs = classIds.split(",");
|
|
@@ -278,5 +286,27 @@ public class TextbookServiceImpl extends MPJBaseServiceImpl<TextbookMapper, Text
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public Boolean deliverWarehouse(AddTextbookClassWarehouseDto dto) {
|
|
|
+ //根据id获取教材管理记录
|
|
|
+ Textbook textbook = this.getById(dto.getTextbookId());
|
|
|
+ if (ObjectUtil.isNull(textbook)) {
|
|
|
+ throw new MyException("入库失败,该教材不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新总的库存数量
|
|
|
+ Textbook updateTextbook = new Textbook();
|
|
|
+ updateTextbook.setId(dto.getTextbookId());
|
|
|
+ Integer oldStock = ObjectUtil.isNull(textbook.getStock()) ? 0 : textbook.getStock();
|
|
|
+ updateTextbook.setStock(oldStock + dto.getWarehouseNumber());
|
|
|
+ boolean isSuccess = this.updateById(updateTextbook);
|
|
|
+
|
|
|
+ TextbookClassWarehouse textbookClassWarehouse = BeanUtil.toBean(dto, TextbookClassWarehouse.class);
|
|
|
+ isSuccess = textbookClassWarehouseService.save(textbookClassWarehouse);
|
|
|
+
|
|
|
+ return isSuccess;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|