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 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.query().lambda().eq(ReceivingDetail::getReceivingMainId, id)); deliveryDetailMapper.delete(Wrappers.query().lambda().eq(DeliveryDetail::getReceivingMainId, id)); return true; } @Override public IPage> getWarehouseReceivingMainPage(Page page, QueryWrapper gen, String date) { return baseMapper.getWarehouseReceivingMainPage(page, gen, date); } @Override public List fullUpdate(Long mainId) { List stockList = new ArrayList(); List receivingDetailList = receivingDetailMapper.selectList (Wrappers.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; } }