|
|
|
|
@ -2,15 +2,25 @@ package org.springblade.modules.business.service.impl.supplies; |
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
|
import org.springblade.core.tool.utils.CollectionUtil; |
|
|
|
|
import org.springblade.modules.business.pojo.entity.supplies.Goods; |
|
|
|
|
import org.springblade.modules.business.pojo.entity.supplies.InOrder; |
|
|
|
|
import org.springblade.modules.business.excel.supplies.InOrderExcel; |
|
|
|
|
import org.springblade.modules.business.mapper.InOrderMapper; |
|
|
|
|
import org.springblade.modules.business.pojo.entity.supplies.InOrderDetail; |
|
|
|
|
import org.springblade.modules.business.service.supplies.IGoodsService; |
|
|
|
|
import org.springblade.modules.business.service.supplies.IInOrderDetailService; |
|
|
|
|
import org.springblade.modules.business.service.supplies.IInOrderService; |
|
|
|
|
import org.springblade.modules.business.pojo.vo.supplies.InOrderVO; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 物品入库单表 服务实现类 |
|
|
|
|
@ -19,8 +29,12 @@ import java.util.List; |
|
|
|
|
* @since 2024-10-17 |
|
|
|
|
*/ |
|
|
|
|
@Service |
|
|
|
|
@AllArgsConstructor |
|
|
|
|
public class InOrderServiceImpl extends BaseServiceImpl<InOrderMapper, InOrder> implements IInOrderService { |
|
|
|
|
|
|
|
|
|
private final IInOrderDetailService iInOrderDetailService; |
|
|
|
|
private final IGoodsService goodsService; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<InOrderVO> selectInOrderPage(IPage<InOrderVO> page, InOrderVO inOrder) { |
|
|
|
|
return page.setRecords(baseMapper.selectInOrderPage(page, inOrder)); |
|
|
|
|
@ -36,4 +50,41 @@ public class InOrderServiceImpl extends BaseServiceImpl<InOrderMapper, InOrder> |
|
|
|
|
return inOrderList; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public boolean inOrder(InOrder inOrder) { |
|
|
|
|
// 采购明细
|
|
|
|
|
List<InOrderDetail> detailList = inOrder.getDetails(); |
|
|
|
|
inOrder.setInUserId(AuthUtil.getUserId()); |
|
|
|
|
inOrder.setInTime(new Date()); |
|
|
|
|
inOrder.setStatus(4); |
|
|
|
|
inOrder.setCode("编码格式待定"); |
|
|
|
|
inOrder.setInTypeNum(detailList.size()); |
|
|
|
|
boolean save = this.save(inOrder); |
|
|
|
|
|
|
|
|
|
// 获取本次提交所有物品
|
|
|
|
|
List<Long> ids = detailList.stream().map(InOrderDetail::getGoodsId).collect(Collectors.toList()); |
|
|
|
|
List<Goods> goodsList = goodsService.listByIds(ids); |
|
|
|
|
|
|
|
|
|
// 修改库存
|
|
|
|
|
if (CollectionUtil.isNotEmpty(goodsList)) { |
|
|
|
|
for (Goods goods : goodsList) { |
|
|
|
|
for (InOrderDetail inOrderDetail : detailList) { |
|
|
|
|
if (goods.getId().equals(inOrderDetail.getGoodsId())) { |
|
|
|
|
goods.setNum(goods.getNum() + inOrderDetail.getNum()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
goodsService.updateBatchById(goodsList); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 采购明细赋值采购单ID
|
|
|
|
|
if (CollectionUtil.isNotEmpty(detailList)) { |
|
|
|
|
detailList.forEach(detail -> detail.setOrderId(inOrder.getId())); |
|
|
|
|
iInOrderDetailService.saveBatch(detailList); |
|
|
|
|
} |
|
|
|
|
return save; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|