|
|
|
@ -16,18 +16,27 @@
|
|
|
|
|
*/ |
|
|
|
|
package com.logpm.distribution.service.impl; |
|
|
|
|
|
|
|
|
|
import com.logpm.distribution.entity.DistributionStockListEntity; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import com.logpm.basic.feign.IBasicTenantCodeClient; |
|
|
|
|
import com.logpm.distribution.entity.*; |
|
|
|
|
import com.logpm.distribution.excel.DistributionUnpackingDetailsExcel; |
|
|
|
|
import com.logpm.distribution.service.*; |
|
|
|
|
import com.logpm.distribution.vo.DistributionStockArticleVO; |
|
|
|
|
import com.logpm.distribution.vo.DistributionStockListVO; |
|
|
|
|
import com.logpm.distribution.excel.DistributionStockListExcel; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionStockListMapper; |
|
|
|
|
import com.logpm.distribution.service.IDistributionStockListService; |
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
|
import org.springblade.core.tool.utils.RandomType; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -40,6 +49,12 @@ import java.util.List;
|
|
|
|
|
@AllArgsConstructor |
|
|
|
|
public class DistributionStockListServiceImpl extends BaseServiceImpl<DistributionStockListMapper, DistributionStockListEntity> implements IDistributionStockListService { |
|
|
|
|
|
|
|
|
|
private final IDistributionParcelDetailsService distributionParcelDetailsService; |
|
|
|
|
private final IDistributionStockService distributionStockService; |
|
|
|
|
private final IBasicTenantCodeClient basicTenantCodeClient; |
|
|
|
|
private final IDistributionUnpackingDetailsService distributionUnpackingDetailsService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<DistributionStockListVO> selectDistributionStockListPage(IPage<DistributionStockListVO> page, DistributionStockListVO distributionStockList) { |
|
|
|
|
return page.setRecords(baseMapper.selectDistributionStockListPage(page, distributionStockList)); |
|
|
|
@ -61,4 +76,59 @@ public class DistributionStockListServiceImpl extends BaseServiceImpl<Distributi
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @param distributionStockList |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public Boolean parcels(DistributionStockListEntity distributionStockList) { |
|
|
|
|
List<DistributionStockEntity> list = new ArrayList<>(); |
|
|
|
|
List<DistributionUnpackingDetailsEntity> detailsEntities = new ArrayList<>(); |
|
|
|
|
distributionStockList.getParcels().forEach( i ->{ |
|
|
|
|
//查询包件信息
|
|
|
|
|
DistributionParcelDetailsEntity one = distributionParcelDetailsService.getOne(Wrappers.<DistributionParcelDetailsEntity>query().lambda() |
|
|
|
|
.eq(DistributionParcelDetailsEntity::getId, i.getParcelsId()) |
|
|
|
|
.eq(DistributionParcelDetailsEntity::getIsDeleted, 0) |
|
|
|
|
); |
|
|
|
|
for (Integer integer = 0; integer < i.getUnpackingQuantity(); integer++) { |
|
|
|
|
//添加拆包信息
|
|
|
|
|
DistributionStockEntity distributionStock = new DistributionStockEntity(); |
|
|
|
|
distributionStock.setStockListId(Long.parseLong(one.getStockArticleId())); |
|
|
|
|
distributionStock.setParcelListId(Long.parseLong(one.getParcelListId())); |
|
|
|
|
distributionStock.setConditions(1); //1 在库
|
|
|
|
|
distributionStock.setUnpackingQuantity(1); |
|
|
|
|
distributionStock.setUnit(one.getUnit()); |
|
|
|
|
distributionStock.setGoodsAllocation(one.getGoodsAllocation()); |
|
|
|
|
// String s1 = basicTenantCodeClient.shelfCode(AuthUtil.getTenantId(), "7");
|
|
|
|
|
String random = Func.random(15, RandomType.INT); |
|
|
|
|
// distributionStock.setCoding(s1+random);
|
|
|
|
|
distributionStock.setCoding(random); |
|
|
|
|
list.add(distributionStock); |
|
|
|
|
//添加拆包记录
|
|
|
|
|
DistributionStockListEntity one1 = baseMapper.selectById( distributionStockList.getId()); |
|
|
|
|
DistributionUnpackingDetailsEntity distributionUnpackingDetails= new DistributionUnpackingDetailsEntity(one.getStockArticleId(),one1.getOrderSelfNumbering(),distributionStockList.getId(),one.getName(),i.getUnpackingQuantity()); |
|
|
|
|
detailsEntities.add(distributionUnpackingDetails); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
if(list.size() > 0){ |
|
|
|
|
//修改库存品信息
|
|
|
|
|
int total = distributionStockList.getParcels().stream().mapToInt(DistributionStockEntity::getUnpackingQuantity).sum(); |
|
|
|
|
DistributionStockListEntity distributionStockList1 = new DistributionStockListEntity(); |
|
|
|
|
distributionStockList1.setId(distributionStockList.getId()); |
|
|
|
|
distributionStockList1.setUnpack(true); |
|
|
|
|
distributionStockList1.setQuantityStock(total); |
|
|
|
|
distributionStockList1.setOutboundQuantity(0); |
|
|
|
|
baseMapper.updateById(distributionStockList1); |
|
|
|
|
//添加拆包
|
|
|
|
|
distributionStockService.saveBatch(list); |
|
|
|
|
} |
|
|
|
|
if(detailsEntities.size() > 0){ |
|
|
|
|
//添加拆包记录
|
|
|
|
|
distributionUnpackingDetailsService.saveBatch(detailsEntities); |
|
|
|
|
} |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|