物资采购入库接口修改

master
litao 1 year ago
parent 1d840466ad
commit 5c69ee692f
  1. 27
      src/main/java/org/springblade/modules/business/contraller/supplies/InOrderController.java
  2. 51
      src/main/java/org/springblade/modules/business/service/impl/supplies/InOrderServiceImpl.java
  3. 1
      src/main/java/org/springblade/modules/business/service/supplies/IInOrderService.java

@ -40,7 +40,6 @@ public class InOrderController extends BladeController {
private final IInOrderService inOrderService;
private final IInOrderDetailService iInOrderDetailService;
private final IGoodsService goodsService;
/**
* 物品入库单表 详情
@ -139,30 +138,8 @@ public class InOrderController extends BladeController {
* 验收
*/
@PostMapping("/inOrder")
public R inOrder(@RequestBody InOrderDTO inOrderDTO) {
inOrderDTO.setStatus(4);
inOrderDTO.setApplyUserId(AuthUtil.getUserId());
inOrderDTO.setApplyTime(new Date());
List<InOrderDetail> detailList = inOrderDTO.getDetails();
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);
}
if (CollectionUtil.isNotEmpty(detailList)) {
iInOrderDetailService.updateBatchById(detailList);
}
return R.status(inOrderService.updateById(inOrderDTO));
public R inOrder(@RequestBody InOrder inOrder) {
return R.status(inOrderService.inOrder(inOrder));
}
/**

@ -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;
}
}

@ -34,4 +34,5 @@ public interface IInOrderService extends BaseService<InOrder> {
*/
List<InOrderExcel> exportInOrder(Wrapper<InOrder> queryWrapper);
boolean inOrder(InOrder inOrder);
}

Loading…
Cancel
Save