Browse Source

确认收货功能

1021934019@qq.com 4 years ago
parent
commit
26cc1f8e93

+ 3 - 0
blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/entity/StockGoods.java

@@ -301,6 +301,9 @@ public class StockGoods implements Serializable {
 		@ApiModelProperty(value = "合同号")
 		private String contractNumber;
 
+	@ApiModelProperty(value = "箱号")
+		private String cntrNo;
+
 
 
 }

+ 34 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ImportDeliveryController.java

@@ -37,6 +37,8 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.deliver.goods.entity.Delivery;
 import org.springblade.deliver.goods.service.IDeliveryService;
 import org.springblade.deliver.goods.vo.DeliveryVO;
+import org.springblade.stock.feign.IStockGoodsClient;
+import org.springblade.stock.vo.StockGoodsVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
@@ -58,6 +60,7 @@ public class ImportDeliveryController extends BladeController {
 	private final IDeliveryService deliveryService;
 	private ICorpsDescClient corpsDescClient;//获取客户信息
 	private IUserClient iUserClient;//获取用户信息
+	private IStockGoodsClient stockGoodsClient;
 
 	/**
 	 * 详情
@@ -168,5 +171,36 @@ public class ImportDeliveryController extends BladeController {
 		return R.status(deliveryService.removeByIds(Func.toLongList(ids)));
 	}
 
+	@GetMapping("/findStockByConditions")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "查询库存", notes = "相关条件")
+	public StockGoodsVO findStockByConditions(@ApiParam(value = "供应商id", required = true) @RequestParam Long corpId,
+									  @ApiParam(value = "仓库id", required = true) @RequestParam Long storageId,
+									  @ApiParam(value = "货物id", required = true) @RequestParam Long goodId,
+									  @ApiParam(value = "箱号", required = true) @RequestParam String cntrNo,
+									  @ApiParam(value = "订单号", required = true) @RequestParam String billNo,
+									  @ApiParam(value = "合同号", required = true) @RequestParam String contractNumber) {
+
+		R<StockGoodsVO> stockGoodsVOR = stockGoodsClient.selectStock(corpId, storageId, goodId, null, null, cntrNo, billNo, contractNumber);
+		if(stockGoodsVOR.isSuccess())
+		{
+			StockGoodsVO data = stockGoodsVOR.getData();
+			return data;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	@PostMapping("comfire")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "确认收货", notes = "确认收货")
+	public R comfire(@RequestBody Delivery delivery)
+	{
+		deliveryService.comfire(delivery);
+		return R.success("操作成功");
+	}
+
 
 }

+ 7 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/IDeliveryService.java

@@ -59,4 +59,11 @@ public interface IDeliveryService extends IService<Delivery> {
 	 */
 	R submit(Delivery delivery);
 
+	/**
+	 * 确认收货
+	 * @param delivery
+	 * @return
+	 */
+	void comfire(Delivery delivery);
+
 }

+ 46 - 8
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -17,6 +17,7 @@
 package org.springblade.deliver.goods.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.BeanUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
@@ -26,15 +27,21 @@ import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.client.feign.ISerialClient;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.deliver.goods.entity.Delivery;
 import org.springblade.deliver.goods.entity.DeliveryFees;
 import org.springblade.deliver.goods.entity.DeliveryFiles;
 import org.springblade.deliver.goods.entity.DeliveryItems;
 import org.springblade.deliver.goods.mapper.DeliveryItemsMapper;
+import org.springblade.deliver.goods.service.IDeliveryItemsService;
 import org.springblade.deliver.goods.vo.DeliveryVO;
 import org.springblade.deliver.goods.mapper.DeliveryMapper;
 import org.springblade.deliver.goods.service.IDeliveryService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.stock.entity.StockGoods;
+import org.springblade.stock.feign.IStockGoodsClient;
+import org.springblade.stock.vo.StockGoodsVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
@@ -61,6 +68,9 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	private DeliveryFilesServiceImpl deliveryFilesService;//发货文件信息
 	private IUserClient userClient;//获取用户信息
 	private ICorpsDescClient corpsDescClient;//获取客户信息
+	private IStockGoodsClient stockGoodsClient;
+
+	private final DeliveryItemsServiceImpl iDeliveryItemsService;
 
 	@Override
 	public IPage<DeliveryVO> selectDeliveryPage(IPage<DeliveryVO> page, DeliveryVO delivery) {
@@ -93,14 +103,6 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		}
 		//保存发货明细信息
 		if (CollectionUtils.isNotEmpty(delivery.getDeliveryItemsList())){
-			//判断传入库存与数据库实际库存是否一致, 如果不一致,则抛出异常
-			delivery.getDeliveryItemsList().forEach(e->{
-				BigDecimal inventoryNumber = e.getInventoryNumber();
-
-
-			});
-
-
 			List<DeliveryItems> deliveryItemsList = deliveryItemsService.saveDeliveryItemsList(delivery.getId(), delivery.getDeliveryItemsList());
 			delivery.setDeliveryItemsList(deliveryItemsList);
 		}
@@ -200,5 +202,41 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		return R.data(delivery);
 	}
 
+	@Override
+	@Transactional
+	public void comfire(Delivery delivery)
+	{
+		    //保存收货单主表 和 收货单明细
+	       	this.submitDelivery(delivery);
+	       	//验证收货单库存与传入库存是否一致
+			List<DeliveryItems> deliveryItemsList = delivery.getDeliveryItemsList();
+		    deliveryItemsList.forEach(e->{
+		    	//传入库存
+				BigDecimal inventoryNumber = e.getInventoryNumber();
+				//实际库存
+				R<StockGoodsVO> stockGoodsVOR = stockGoodsClient.selectStock(delivery.getCorpId(), delivery.getStorageId(), e.getItemId(), null, null, e.getCntrNo(), e.getBillNo(), e.getContractNumber());
+				//todo 是否比较2个库存值, 暂未确定
+
+
+				StockGoodsVO data = stockGoodsVOR.getData();
+				//增加库存
+				if(Func.isEmpty(data))
+				{
+					iDeliveryItemsService.saveStock(delivery.getTradeType(),data.getCorpId(),data.getStorageId(),e);
+				}
+				//修改库存
+				else
+				{
+					iDeliveryItemsService.receiving(delivery.getTradeType(),data.getId(),e);
+				}
+
+
+			});
+
+
+
+		    //todo 修改原item数据
+	}
+
 
 }

+ 5 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/service/impl/StockGoodsServiceImpl.java

@@ -86,6 +86,11 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 		lambdaQueryWrapper.eq(Func.isNotEmpty(lotNo),StockGoods::getLotNo,lotNo);//批次号
 		lambdaQueryWrapper.eq(Func.isEmpty(lotNo),StockGoods::getLotNo,null);//批次号
 		lambdaQueryWrapper.eq(StockGoods::getTenantId,SecureUtil.getTenantId());//租户
+
+		lambdaQueryWrapper.eq(Func.isNotEmpty(cntrNo),StockGoods::getCntrNo,cntrNo);//收货单 箱号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(billNo),StockGoods::getBillNo,billNo);//收货单 提单号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(contractNumber),StockGoods::getContractNumber,contractNumber);//收货单 合同号
+
 		StockGoods stockGoods = baseMapper.selectOne(lambdaQueryWrapper);
 		return BeanUtil.copy(stockGoods, StockGoodsVO.class);
 	}