package com.chinaztt.mes.warehouse.service.impl;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.chinaztt.mes.warehouse.dto.ReceivingMainDTO;
|
import com.chinaztt.mes.warehouse.dto.StockAddDTO;
|
import com.chinaztt.mes.warehouse.entity.*;
|
import com.chinaztt.mes.warehouse.mapper.*;
|
import com.chinaztt.mes.warehouse.service.ReceivingMainService;
|
import com.chinaztt.mes.warehouse.util.StockUtils;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 收货主表
|
*
|
* @author cxf
|
* @date 2020-10-12 14:11:33
|
*/
|
@Service
|
@AllArgsConstructor
|
@Transactional(rollbackFor = Exception.class)
|
public class ReceivingMainServiceImpl extends ServiceImpl<ReceivingMainMapper, ReceivingMain> implements ReceivingMainService {
|
private ReceivingDetailMapper receivingDetailMapper;
|
private DeliveryDetailMapper deliveryDetailMapper;
|
private StockUtils stockUtils;
|
private ReceivingMainMapper receivingMainMapper;
|
private StockInCodeMapper stockInCodeMapper;
|
|
@Override
|
public boolean deleteById(Long id) {
|
baseMapper.deleteById(id);
|
receivingDetailMapper.delete(Wrappers.<ReceivingDetail>query().lambda().eq(ReceivingDetail::getReceivingMainId, id));
|
deliveryDetailMapper.delete(Wrappers.<DeliveryDetail>query().lambda().eq(DeliveryDetail::getReceivingMainId, id));
|
return true;
|
}
|
|
@Override
|
public IPage<List<ReceivingMainDTO>> getWarehouseReceivingMainPage(Page page, QueryWrapper<ReceivingMainDTO> gen, String date) {
|
return baseMapper.getWarehouseReceivingMainPage(page, gen, date);
|
}
|
|
@Override
|
public List<Stock> fullUpdate(Long mainId) {
|
List<Stock> stockList = new ArrayList<Stock>();
|
List<ReceivingDetail> receivingDetailList = receivingDetailMapper.selectList
|
(Wrappers.<ReceivingDetail>query().lambda().eq(ReceivingDetail::getReceivingMainId, mainId));
|
if (CollectionUtil.isNotEmpty(receivingDetailList)) {
|
ReceivingMain receivingMain = receivingMainMapper.selectById(mainId);
|
StockInCode stockInCode = stockInCodeMapper.selectById(receivingMain.getReceiveType());
|
for (ReceivingDetail receivingDetail : receivingDetailList) {
|
StockAddDTO stockAdd = new StockAddDTO();
|
stockAdd.setPartsId(receivingDetail.getPartId());
|
stockAdd.setNewLocationId(receivingDetail.getLocationId());
|
stockAdd.setNewPartBatchNo(receivingDetail.getPartBatchNo());
|
|
Stock stock = stockUtils.query(stockAdd);
|
stockUtils.updateById(stock.getId(), receivingDetail.getReceiveQty(), BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, receivingMain.getPurchaseNo(), stockInCode.getStockCodeName());
|
stockList.add(stock);
|
}
|
receivingMain.setReceiveStatus(true);
|
receivingMainMapper.updateById(receivingMain);
|
}
|
return stockList;
|
}
|
|
}
|