|
@@ -14,15 +14,16 @@ import com.xjrsoft.common.enums.WarehouseModeEnum;
|
|
|
import com.xjrsoft.common.exception.MyException;
|
|
|
import com.xjrsoft.common.page.ConventPage;
|
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
+import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
import com.xjrsoft.module.base.entity.BaseCourseSubject;
|
|
|
+import com.xjrsoft.module.base.entity.BaseGrade;
|
|
|
import com.xjrsoft.module.base.entity.BaseSemester;
|
|
|
+import com.xjrsoft.module.student.entity.BaseClassMajorSet;
|
|
|
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.TextbookSubscriptionClassMapper;
|
|
|
-import com.xjrsoft.module.textbook.mapper.TextbookSubscriptionItemMapper;
|
|
|
-import com.xjrsoft.module.textbook.mapper.TextbookSubscriptionMapper;
|
|
|
-import com.xjrsoft.module.textbook.mapper.TextbookWarehouseRecordMapper;
|
|
|
+import com.xjrsoft.module.textbook.mapper.*;
|
|
|
import com.xjrsoft.module.textbook.service.ITextbookSubscriptionService;
|
|
|
import com.xjrsoft.module.textbook.vo.*;
|
|
|
import lombok.AllArgsConstructor;
|
|
@@ -33,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
import java.util.regex.Matcher;
|
|
@@ -55,6 +57,8 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
|
|
|
private final TextbookSubscriptionClassMapper textbookSubscriptionClassMapper;
|
|
|
|
|
|
+ private final TextbookSubscriptionItemClassMapper textbookSubscriptionItemClassMapper;
|
|
|
+
|
|
|
private final TextbookWarehouseRecordMapper textbookWarehouseRecordMapper;
|
|
|
|
|
|
@Override
|
|
@@ -180,15 +184,16 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
int stuNum = 0;
|
|
|
int teaNum = 0;
|
|
|
BigDecimal totalPrice = BigDecimal.valueOf(0);
|
|
|
+ BigDecimal currentPrice;
|
|
|
for (TextbookSubscriptionItem textbookSubscriptionItem : textbookSubscriptionItemList) {
|
|
|
stuNum += textbookSubscriptionItem.getStudentNum();
|
|
|
teaNum += textbookSubscriptionItem.getTeacherNum();
|
|
|
|
|
|
- totalPrice.add(textbookSubscriptionItem.getPrice()
|
|
|
- .multiply(BigDecimal.valueOf(textbookSubscriptionItem.getDiscount()))
|
|
|
- .divide(BigDecimal.valueOf(10))
|
|
|
- .multiply(BigDecimal.valueOf(textbookSubscriptionItem.getTeacherNum() + textbookSubscriptionItem.getStudentNum())));
|
|
|
+ currentPrice = textbookSubscriptionItem.getPrice().multiply(BigDecimal.valueOf(textbookSubscriptionItem.getDiscount()).divide(BigDecimal.valueOf(10), RoundingMode.UNNECESSARY))
|
|
|
+ .multiply(BigDecimal.valueOf(textbookSubscriptionItem.getTeacherNum() + textbookSubscriptionItem.getStudentNum()))
|
|
|
+ ;
|
|
|
|
|
|
+ totalPrice = totalPrice.add(currentPrice);
|
|
|
}
|
|
|
TextbookSubscriptionDetailVo textbookSubscriptionDetailVo = new TextbookSubscriptionDetailVo();
|
|
|
textbookSubscriptionDetailVo.setId(String.valueOf(id));
|
|
@@ -226,6 +231,39 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public IPage<BaseclassPageVo> baseclassPage(BaseclassPageDto dto) {
|
|
|
+ // 查询征订记录总的征订班级
|
|
|
+ MPJLambdaWrapper<TextbookSubscriptionItem> baseClassMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ baseClassMPJLambdaWrapper
|
|
|
+ .disableSubLogicDel()
|
|
|
+ .distinct()
|
|
|
+ .selectAs(BaseGrade::getName, BaseclassPageVo::getGradeIdCn)
|
|
|
+ .selectAs(XjrUser::getName, BaseclassPageVo::getTeacherIdCn)
|
|
|
+ .select(" (select" +
|
|
|
+ " count(a.id)" +
|
|
|
+ " from base_student_school_roll a" +
|
|
|
+ " where a.class_id = t1.base_class_id" +
|
|
|
+ " and a.archives_status = 'FB2901'" +
|
|
|
+ " and a.delete_mark = 0" +
|
|
|
+ " ) as total_student")
|
|
|
+ .select(BaseClass.class, x -> VoToColumnUtil.fieldsToColumns(BaseclassPageVo.class).contains(x.getProperty()))
|
|
|
+
|
|
|
+ .innerJoin(TextbookSubscriptionItemClass.class, TextbookSubscriptionItemClass::getTextbookSubscriptionItemId, TextbookSubscriptionItem::getId)
|
|
|
+
|
|
|
+ .leftJoin(BaseClass.class, BaseClass::getId, TextbookSubscriptionItemClass::getBaseClassId)
|
|
|
+ .leftJoin(BaseGrade.class, BaseGrade::getId, BaseClass::getGradeId)
|
|
|
+ .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(TextbookSubscriptionClass::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ ;
|
|
|
+
|
|
|
+ return textbookSubscriptionTextbookSubscriptionItemMapper.selectJoinPage(ConventPage.getPage(dto), BaseclassPageVo.class, baseClassMPJLambdaWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<SubscriptionItemListDistributeVo> itemListConfirmDistribute(SubscriptionItemListDistributeDto dto) {
|
|
|
MPJLambdaWrapper<TextbookSubscriptionItem> textbookSubscriptionItemMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
@@ -253,27 +291,49 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
sum += textbookSubscriptionItem.getStudentNum() + textbookSubscriptionItem.getTeacherNum();
|
|
|
}
|
|
|
textbookSubscription.setSum(sum);
|
|
|
+ textbookSubscription.setCreateDate(new Date());
|
|
|
textbookSubscriptionTextbookSubscriptionMapper.insert(textbookSubscription);
|
|
|
|
|
|
- // 处理征订和班级关联表
|
|
|
- if (ObjectUtils.isNotEmpty(textbookSubscription.getSubscriptionMethod())
|
|
|
- && textbookSubscription.getSubscriptionMethod() == 1
|
|
|
- && StringUtils.isNotBlank(textbookSubscription.getBaseClassIds())
|
|
|
- ) {
|
|
|
- String[] classIdArr = textbookSubscription.getBaseClassIds().split(",");
|
|
|
- TextbookSubscriptionClass textbookSubscriptionClass;
|
|
|
- for (String str : classIdArr) {
|
|
|
- textbookSubscriptionClass = new TextbookSubscriptionClass();
|
|
|
- textbookSubscriptionClass.setTextbookSubscriptionId(textbookSubscription.getId());
|
|
|
- textbookSubscriptionClass.setBaseClassId(Long.parseLong(str));
|
|
|
- textbookSubscriptionClassMapper.insert(textbookSubscriptionClass);
|
|
|
- }
|
|
|
- }
|
|
|
+// // 处理征订和班级关联表
|
|
|
+// if (ObjectUtils.isNotEmpty(textbookSubscription.getSubscriptionMethod())
|
|
|
+// && textbookSubscription.getSubscriptionMethod() == 1
|
|
|
+// && StringUtils.isNotBlank(textbookSubscription.getBaseClassIds())
|
|
|
+// ) {
|
|
|
+// String[] classIdArr = textbookSubscription.getBaseClassIds().split(",");
|
|
|
+// TextbookSubscriptionClass textbookSubscriptionClass;
|
|
|
+// for (String str : classIdArr) {
|
|
|
+// textbookSubscriptionClass = new TextbookSubscriptionClass();
|
|
|
+// textbookSubscriptionClass.setTextbookSubscriptionId(textbookSubscription.getId());
|
|
|
+// textbookSubscriptionClass.setBaseClassId(Long.parseLong(str));
|
|
|
+// textbookSubscriptionClass.setCreateDate(new Date());
|
|
|
+// textbookSubscriptionClassMapper.insert(textbookSubscriptionClass);
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
// 处理征订表子表
|
|
|
+ TextbookSubscriptionItemClass textbookSubscriptionItemClass;
|
|
|
for (TextbookSubscriptionItem textbookSubscriptionItem : textbookSubscription.getTextbookSubscriptionItemList()) {
|
|
|
+ String[] classIdArr = new String[0];
|
|
|
+ if (ObjectUtils.isNotEmpty(textbookSubscription.getSubscriptionMethod())
|
|
|
+ && textbookSubscription.getSubscriptionMethod() == 1
|
|
|
+ && ObjectUtils.isNotEmpty(textbookSubscriptionItem.getBaseClassIds())
|
|
|
+ ) {
|
|
|
+ classIdArr = textbookSubscriptionItem.getBaseClassIds().split(",");
|
|
|
+ }
|
|
|
+
|
|
|
+ textbookSubscriptionItem.setUseClassNum(classIdArr.length);
|
|
|
textbookSubscriptionItem.setTextbookSubscriptionId(textbookSubscription.getId());
|
|
|
+ textbookSubscriptionItem.setCreateDate(new Date());
|
|
|
textbookSubscriptionTextbookSubscriptionItemMapper.insert(textbookSubscriptionItem);
|
|
|
+
|
|
|
+ // 处理征订项和班级关联表
|
|
|
+ for (String str : classIdArr) {
|
|
|
+ textbookSubscriptionItemClass = new TextbookSubscriptionItemClass();
|
|
|
+ textbookSubscriptionItemClass.setTextbookSubscriptionItemId(textbookSubscriptionItem.getId());
|
|
|
+ textbookSubscriptionItemClass.setBaseClassId(Long.parseLong(str));
|
|
|
+ textbookSubscriptionItemClass.setCreateDate(new Date());
|
|
|
+ textbookSubscriptionItemClassMapper.insert(textbookSubscriptionItemClass);
|
|
|
+ }
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
@@ -438,14 +498,35 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
.filter(item -> !textbookSubscriptionItemOldIds.contains(item))
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
+ TextbookSubscriptionItemClass textbookSubscriptionItemClass;
|
|
|
for (TextbookSubscriptionItem textbookSubscriptionItem : textbookSubscription.getTextbookSubscriptionItemList()) {
|
|
|
// 如果不等于空则修改
|
|
|
if (textbookSubscriptionItem.getId() != null) {
|
|
|
textbookSubscriptionTextbookSubscriptionItemMapper.updateById(textbookSubscriptionItem);
|
|
|
} else {
|
|
|
// 如果等于空 则新增
|
|
|
+ // 新增的时候应该处理班级关联
|
|
|
+ String[] classIdArr = new String[0];
|
|
|
+ if (ObjectUtils.isNotEmpty(textbookSubscription.getSubscriptionMethod())
|
|
|
+ && textbookSubscription.getSubscriptionMethod() == 1
|
|
|
+ && ObjectUtils.isNotEmpty(textbookSubscriptionItem.getBaseClassIds())
|
|
|
+ ) {
|
|
|
+ classIdArr = textbookSubscriptionItem.getBaseClassIds().split(",");
|
|
|
+ }
|
|
|
+
|
|
|
+ textbookSubscriptionItem.setUseClassNum(classIdArr.length);
|
|
|
textbookSubscriptionItem.setTextbookSubscriptionId(textbookSubscription.getId());
|
|
|
+ textbookSubscriptionItem.setCreateDate(new Date());
|
|
|
textbookSubscriptionTextbookSubscriptionItemMapper.insert(textbookSubscriptionItem);
|
|
|
+
|
|
|
+ // 处理征订项和班级关联表
|
|
|
+ for (String str : classIdArr) {
|
|
|
+ textbookSubscriptionItemClass = new TextbookSubscriptionItemClass();
|
|
|
+ textbookSubscriptionItemClass.setTextbookSubscriptionItemId(textbookSubscriptionItem.getId());
|
|
|
+ textbookSubscriptionItemClass.setBaseClassId(Long.parseLong(str));
|
|
|
+ textbookSubscriptionItemClass.setCreateDate(new Date());
|
|
|
+ textbookSubscriptionItemClassMapper.insert(textbookSubscriptionItemClass);
|
|
|
+ }
|
|
|
}
|
|
|
textbookSubscriptionItem.setStudentNum(ObjectUtils.isEmpty(textbookSubscriptionItem.getStudentNum()) ? 0 : textbookSubscriptionItem.getStudentNum());
|
|
|
textbookSubscriptionItem.setTeacherNum(ObjectUtils.isEmpty(textbookSubscriptionItem.getTeacherNum()) ? 0 : textbookSubscriptionItem.getTeacherNum());
|
|
@@ -454,32 +535,40 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
}
|
|
|
// 已经不存在的id 删除
|
|
|
if (ObjectUtils.isNotEmpty(textbookSubscriptionItemRemoveIds.isEmpty())) {
|
|
|
+ LambdaUpdateWrapper<TextbookSubscriptionItemClass> textbookSubscriptionItemClassLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ textbookSubscriptionItemClassLambdaUpdateWrapper
|
|
|
+ .in(TextbookSubscriptionItemClass::getTextbookSubscriptionItemId, textbookSubscriptionItemRemoveIds)
|
|
|
+ .eq(TextbookSubscriptionItemClass::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ ;
|
|
|
+ textbookSubscriptionItemClassMapper.delete(textbookSubscriptionItemClassLambdaUpdateWrapper);
|
|
|
textbookSubscriptionTextbookSubscriptionItemMapper.deleteBatchIds(textbookSubscriptionItemRemoveIds);
|
|
|
}
|
|
|
}
|
|
|
//********************************* TextbookSubscriptionItem 增删改 结束 *******************************************/
|
|
|
|
|
|
//********************************* TextbookSubscriptionClass 增删改 开始 *******************************************/
|
|
|
- LambdaUpdateWrapper<TextbookSubscriptionClass> textbookSubscriptionClassLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
- textbookSubscriptionClassLambdaUpdateWrapper
|
|
|
- .eq(TextbookSubscriptionClass::getTextbookSubscriptionId, textbookSubscription.getId())
|
|
|
- ;
|
|
|
- textbookSubscriptionClassMapper.delete(textbookSubscriptionClassLambdaUpdateWrapper);
|
|
|
-
|
|
|
- if (ObjectUtils.isNotEmpty(textbookSubscription.getSubscriptionMethod())
|
|
|
- && textbookSubscription.getSubscriptionMethod() == 1
|
|
|
- && StringUtils.isNotBlank(textbookSubscription.getBaseClassIds())
|
|
|
- ) {
|
|
|
- String[] classIdArr = textbookSubscription.getBaseClassIds().split(",");
|
|
|
- for (String str : classIdArr) {
|
|
|
- TextbookSubscriptionClass textbookSubscriptionClass = new TextbookSubscriptionClass();
|
|
|
- textbookSubscriptionClass.setTextbookSubscriptionId(textbookSubscription.getId());
|
|
|
- textbookSubscriptionClass.setBaseClassId(Long.parseLong(str));
|
|
|
- textbookSubscriptionClassMapper.insert(textbookSubscriptionClass);
|
|
|
- }
|
|
|
- }
|
|
|
+// LambdaUpdateWrapper<TextbookSubscriptionClass> textbookSubscriptionClassLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+// textbookSubscriptionClassLambdaUpdateWrapper
|
|
|
+// .eq(TextbookSubscriptionClass::getTextbookSubscriptionId, textbookSubscription.getId())
|
|
|
+// ;
|
|
|
+// textbookSubscriptionClassMapper.delete(textbookSubscriptionClassLambdaUpdateWrapper);
|
|
|
+//
|
|
|
+// if (ObjectUtils.isNotEmpty(textbookSubscription.getSubscriptionMethod())
|
|
|
+// && textbookSubscription.getSubscriptionMethod() == 1
|
|
|
+// && StringUtils.isNotBlank(textbookSubscription.getBaseClassIds())
|
|
|
+// ) {
|
|
|
+// String[] classIdArr = textbookSubscription.getBaseClassIds().split(",");
|
|
|
+// for (String str : classIdArr) {
|
|
|
+// TextbookSubscriptionClass textbookSubscriptionClass = new TextbookSubscriptionClass();
|
|
|
+// textbookSubscriptionClass.setTextbookSubscriptionId(textbookSubscription.getId());
|
|
|
+// textbookSubscriptionClass.setBaseClassId(Long.parseLong(str));
|
|
|
+// textbookSubscriptionClass.setCreateDate(new Date());
|
|
|
+// textbookSubscriptionClassMapper.insert(textbookSubscriptionClass);
|
|
|
+// }
|
|
|
+// }
|
|
|
//********************************* TextbookSubscriptionClass 增删改 结束 *******************************************/
|
|
|
|
|
|
+ textbookSubscription.setSum(sum);
|
|
|
textbookSubscriptionTextbookSubscriptionMapper.updateById(textbookSubscription);
|
|
|
return true;
|
|
|
}
|
|
@@ -502,9 +591,25 @@ public class TextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<Textbook
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean delete(List<Long> ids) {
|
|
|
- textbookSubscriptionTextbookSubscriptionMapper.deleteBatchIds(ids);
|
|
|
- textbookSubscriptionTextbookSubscriptionItemMapper.delete(Wrappers.lambdaQuery(TextbookSubscriptionItem.class).in(TextbookSubscriptionItem::getTextbookSubscriptionId, ids));
|
|
|
- textbookSubscriptionClassMapper.delete(Wrappers.lambdaQuery(TextbookSubscriptionClass.class).in(TextbookSubscriptionClass::getTextbookSubscriptionId, ids));
|
|
|
+ LambdaQueryWrapper<TextbookSubscriptionItem> textbookSubscriptionItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ textbookSubscriptionItemLambdaQueryWrapper
|
|
|
+ .in(TextbookSubscriptionItem::getTextbookSubscriptionId, ids)
|
|
|
+ ;
|
|
|
+ List<TextbookSubscriptionItem> textbookSubscriptionItemList = textbookSubscriptionTextbookSubscriptionItemMapper.selectList(textbookSubscriptionItemLambdaQueryWrapper);
|
|
|
+
|
|
|
+ List<Long> textbookSubscriptionItemIds = textbookSubscriptionItemList.stream()
|
|
|
+ .map(TextbookSubscriptionItem::getId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if(ObjectUtils.isNotEmpty(textbookSubscriptionItemIds)){
|
|
|
+ textbookSubscriptionItemClassMapper.delete(Wrappers.lambdaQuery(TextbookSubscriptionItemClass.class).in(TextbookSubscriptionItemClass::getTextbookSubscriptionItemId, textbookSubscriptionItemIds));
|
|
|
+ }
|
|
|
+
|
|
|
+ if(ObjectUtils.isNotEmpty(ids)) {
|
|
|
+ textbookSubscriptionTextbookSubscriptionItemMapper.delete(Wrappers.lambdaQuery(TextbookSubscriptionItem.class).in(TextbookSubscriptionItem::getTextbookSubscriptionId, ids));
|
|
|
+ textbookSubscriptionClassMapper.delete(Wrappers.lambdaQuery(TextbookSubscriptionClass.class).in(TextbookSubscriptionClass::getTextbookSubscriptionId, ids));
|
|
|
+ textbookSubscriptionTextbookSubscriptionMapper.deleteBatchIds(ids);
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|