| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- package com.xjrsoft.module.textbook.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.github.yulichang.base.MPJBaseServiceImpl;
- import com.xjrsoft.common.model.result.RT;
- import com.xjrsoft.module.oa.entity.NewsRelation;
- import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
- import com.xjrsoft.module.textbook.dto.UpdateWfTextbookSubscriptionDto;
- import com.xjrsoft.module.textbook.entity.TextbookSubscriptionRecord;
- import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
- import com.xjrsoft.module.textbook.mapper.TextbookSubscriptionRecordMapper;
- import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionItemMapper;
- import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
- import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionMapper;
- import com.xjrsoft.module.textbook.service.ITextbookService;
- import com.xjrsoft.module.textbook.service.IWfTextbookSubscriptionService;
- import lombok.AllArgsConstructor;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.Date;
- import java.util.List;
- import java.util.Objects;
- import java.util.stream.Collectors;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- /**
- * @title: 教材教辅征订
- * @Author szs
- * @Date: 2024-06-04
- * @Version 1.0
- */
- @Service
- @AllArgsConstructor
- public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfTextbookSubscriptionMapper, WfTextbookSubscription> implements IWfTextbookSubscriptionService {
- private final WfTextbookSubscriptionMapper wfTextbookSubscriptionWfTextbookSubscriptionMapper;
- private final WfTextbookSubscriptionItemMapper wfTextbookSubscriptionWfTextbookSubscriptionItemMapper;
- private final TextbookSubscriptionRecordMapper textbookTextbookSubscriptionRecordMapper;
- private final ITextbookService textbookService;
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean add(WfTextbookSubscription wfTextbookSubscription) {
- wfTextbookSubscription.setStatus(1);
- wfTextbookSubscription.setCreateDate(new Date());
- wfTextbookSubscriptionWfTextbookSubscriptionMapper.insert(wfTextbookSubscription);
- for (WfTextbookSubscriptionItem wfTextbookSubscriptionItem : wfTextbookSubscription.getWfTextbookSubscriptionItemList()) {
- wfTextbookSubscriptionItem.setWfTextbookSubscriptionId(wfTextbookSubscription.getId());
- wfTextbookSubscriptionItem.setCreateDate(new Date());
- wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.insert(wfTextbookSubscriptionItem);
- }
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean update(WfTextbookSubscription wfTextbookSubscription) {
- wfTextbookSubscriptionWfTextbookSubscriptionMapper.updateById(wfTextbookSubscription);
- //********************************* WfTextbookSubscriptionItem 增删改 开始 *******************************************/
- {
- // 查出所有子级的id
- List<WfTextbookSubscriptionItem> wfTextbookSubscriptionItemList = wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.selectList(Wrappers.lambdaQuery(WfTextbookSubscriptionItem.class).eq(WfTextbookSubscriptionItem::getWfTextbookSubscriptionId, wfTextbookSubscription.getId()).select(WfTextbookSubscriptionItem::getId));
- List<Long> wfTextbookSubscriptionItemIds = wfTextbookSubscriptionItemList.stream().map(WfTextbookSubscriptionItem::getId).collect(Collectors.toList());
- //原有子表单 没有被删除的主键
- List<Long> wfTextbookSubscriptionItemOldIds = wfTextbookSubscription.getWfTextbookSubscriptionItemList().stream().map(WfTextbookSubscriptionItem::getId).filter(Objects::nonNull).collect(Collectors.toList());
- //找到需要删除的id
- List<Long> wfTextbookSubscriptionItemRemoveIds = wfTextbookSubscriptionItemIds.stream().filter(item -> !wfTextbookSubscriptionItemOldIds.contains(item)).collect(Collectors.toList());
- for (WfTextbookSubscriptionItem wfTextbookSubscriptionItem : wfTextbookSubscription.getWfTextbookSubscriptionItemList()) {
- //如果不等于空则修改
- if (wfTextbookSubscriptionItem.getId() != null) {
- wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.updateById(wfTextbookSubscriptionItem);
- }
- //如果等于空 则新增
- else {
- //已经不存在的id 删除
- wfTextbookSubscriptionItem.setWfTextbookSubscriptionId(wfTextbookSubscription.getId());
- wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.insert(wfTextbookSubscriptionItem);
- }
- }
- //已经不存在的id 删除
- if(wfTextbookSubscriptionItemRemoveIds.size() > 0){
- wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.deleteBatchIds(wfTextbookSubscriptionItemRemoveIds);
- }
- }
- //********************************* WfTextbookSubscriptionItem 增删改 结束 *******************************************/
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean delete(List<Long> ids) {
- wfTextbookSubscriptionWfTextbookSubscriptionMapper.deleteBatchIds(ids);
- wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.delete(Wrappers.lambdaQuery(WfTextbookSubscriptionItem.class).in(WfTextbookSubscriptionItem::getWfTextbookSubscriptionId, ids));
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean changeStatus(UpdateWfTextbookSubscriptionDto dto) {
- WfTextbookSubscription wfTextbookSubscription = this.getById(dto.getId());
- if(wfTextbookSubscription == null){
- return false;
- }
- //点击发起征订
- if(wfTextbookSubscription.getStatus() == 1 && dto.getStatus() == 2){
- WfTextbookSubscription newW = BeanUtil.toBean(dto, WfTextbookSubscription.class);
- return this.updateById(newW);
- }
- //点击完成征订
- if(wfTextbookSubscription.getStatus() == 2 && dto.getStatus() == 3){
- //添加征订记录
- List<WfTextbookSubscriptionItem> wfTextbookSubscriptionItemList = wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.selectList(Wrappers.<WfTextbookSubscriptionItem>query().lambda().eq(WfTextbookSubscriptionItem::getWfTextbookSubscriptionId, wfTextbookSubscription.getId()));
- for (WfTextbookSubscriptionItem w : wfTextbookSubscriptionItemList){
- textbookTextbookSubscriptionRecordMapper.insert(new TextbookSubscriptionRecord() {{
- setCreateDate(new Date());
- setTextbookId(w.getTextbookId());
- setWfTextbookSubscriptionId(wfTextbookSubscription.getId());
- setWfTextbookSubscriptionItemId(w.getId());//该字段存入征订项的id,征订项中有所属征订记录
- }});
- }
- WfTextbookSubscription newW = BeanUtil.toBean(dto, WfTextbookSubscription.class);
- return this.updateById(newW);
- }
- //点击确认入库
- if(wfTextbookSubscription.getStatus() == 3 && dto.getStatus() == 4){
- List<WfTextbookSubscriptionItem> wfTextbookSubscriptionItemList = wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.selectList(Wrappers.<WfTextbookSubscriptionItem>query().lambda().eq(WfTextbookSubscriptionItem::getWfTextbookSubscriptionId, wfTextbookSubscription.getId()));
- for (WfTextbookSubscriptionItem w : wfTextbookSubscriptionItemList){
- textbookService.deliverWarehouse(new AddTextbookWarehouseRecordDto(){{
- setTextbookId(w.getTextbookId());
- setWarehouseNumber((w.getStudentSubscriptionNumber() != null ? w.getStudentSubscriptionNumber() : 0) + (w.getStudentSubscriptionNumber() != null ? w.getTeacherSubscriptionNumber() : 0));
- setSource("wm_manual");
- }});
- }
- WfTextbookSubscription newW = BeanUtil.toBean(dto, WfTextbookSubscription.class);
- return this.updateById(newW);
- }
- return false;
- }
- }
|