lazhaoqian 4 سال پیش
والد
کامیت
d3787e8c2a

+ 6 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IStorageClient.java

@@ -23,6 +23,7 @@ public interface IStorageClient {
 	String API_PREFIX = "/client";
 	String FIND_BY_ID = API_PREFIX + "/findById";
 	String STORAGE_MESSAGE = API_PREFIX + "/storageMessage";
+	String STORAGE_NAME = API_PREFIX + "/storageName";
 
     @GetMapping(FIND_BY_ID)
 	StorageDesc findById(@RequestParam(value = "id",required = true) Long id);
@@ -34,5 +35,9 @@ public interface IStorageClient {
 	 */
 	@GetMapping(STORAGE_MESSAGE)
 	List<Map<String,Object>> getStorageMessage(@RequestParam(value = "id",required = true) Long id);
-
+	/***
+	 * 根据仓库名获取仓库
+	 */
+	@GetMapping(STORAGE_NAME)
+	StorageDesc getName(@RequestParam(value = "name",required = true) String name);
 }

+ 2 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderItemsClient.java

@@ -15,6 +15,7 @@ public interface IOrderItemsClient {
 	String API_PREFIX = "/client";
 	String ACTUAL_QUANTITY = API_PREFIX + "actualQuantity";
 	String ACTUAL_WEIGHT = API_PREFIX + "actualWeight";
+	String RECEIVED = API_PREFIX + "/received";
 
 
 	/**
@@ -33,4 +34,5 @@ public interface IOrderItemsClient {
 	R updateActualWeight(@RequestParam("orderItemsId") Long orderItemsId,
 						   @RequestParam("actualWeight")BigDecimal actualWeight,
 						   @RequestParam("deliveryType")int deliveryType);
+
 }

+ 4 - 4
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsTypeController.java

@@ -154,8 +154,8 @@ public class CorpsTypeController extends BladeController {
 	@GetMapping("/tree")
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "树形结构", notes = "树形结构")
-	public R<List<CorpsTypeVO>> tree(String tenantId, BladeUser bladeUser) {
-		List<CorpsTypeVO> tree = corpsTypeService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
+	public R<List<CorpsTypeVO>> tree(String tenantId, BladeUser bladeUser,String corpType) {
+		List<CorpsTypeVO> tree = corpsTypeService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()),corpType);
 		return R.data(tree);
 	}
 	/**
@@ -164,8 +164,8 @@ public class CorpsTypeController extends BladeController {
 	@GetMapping("/lazy-tree")
 	@ApiOperationSupport(order = 9)
 	@ApiOperation(value = "懒加载树形结构", notes = "树形结构")
-	public R<List<CorpsTypeVO>> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) {
-		List<CorpsTypeVO> tree = corpsTypeService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
+	public R<List<CorpsTypeVO>> lazyTree(String tenantId, Long parentId, BladeUser bladeUser,String corpType) {
+		List<CorpsTypeVO> tree = corpsTypeService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId,corpType);
 		return R.data(tree);
 	}
 

+ 2 - 2
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsTypeMapper.java

@@ -46,7 +46,7 @@ public interface CorpsTypeMapper extends BaseMapper<CorpsType> {
 	 * @param tenantId
 	 * @return
 	 */
-	List<CorpsTypeVO> tree(String tenantId);
+	List<CorpsTypeVO> tree(String tenantId,String corpType);
 
 	/**
 	 * 懒加载
@@ -54,7 +54,7 @@ public interface CorpsTypeMapper extends BaseMapper<CorpsType> {
 	 * @param parentId
 	 * @return
 	 */
-	List<CorpsTypeVO> lazyTree(String tenantId, Long parentId);
+	List<CorpsTypeVO> lazyTree(String tenantId, Long parentId,String corpType);
 
 	/**
 	 * 获取客户类别的名称

+ 2 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsTypeMapper.xml

@@ -123,6 +123,7 @@
         WHERE
         is_deleted = 0
         and status = 0
+        and corp_type = #{corpType}
         <if test="tenantId!=null and tenantId!=''">
             and tenant_id = #{tenantId}
         </if>
@@ -148,6 +149,7 @@
         WHERE
         dept.parent_id = #{param2} AND dept.is_deleted = 0
         and dept.status = 0
+        and dept.corp_type = #{param3}
         <if test="param1!=null and param1!=''">
             and dept.tenant_id = #{param1}
         </if>

+ 2 - 2
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsTypeService.java

@@ -47,7 +47,7 @@ public interface ICorpsTypeService extends IService<CorpsType> {
 	 * @param tenantId
 	 * @return
 	 */
-	List<CorpsTypeVO> tree(String tenantId);
+	List<CorpsTypeVO> tree(String tenantId,String corpType);
 
 	/**
 	 * 获取类别详情
@@ -62,7 +62,7 @@ public interface ICorpsTypeService extends IService<CorpsType> {
 	 * @param parentId
 	 * @return
 	 */
-	List<CorpsTypeVO> lazyTree(String tenantId, Long parentId);
+	List<CorpsTypeVO> lazyTree(String tenantId, Long parentId,String corpType);
 
 	/**
 	 * 验证类别名称唯一新

+ 4 - 4
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsTypeServiceImpl.java

@@ -115,11 +115,11 @@ public class CorpsTypeServiceImpl extends ServiceImpl<CorpsTypeMapper, CorpsType
 	}
 
 	@Override
-	public List<CorpsTypeVO> tree(String tenantId) {
+	public List<CorpsTypeVO> tree(String tenantId,String corpType) {
 		if (StringUtils.isBlank(tenantId)){
 			tenantId = SecureUtil.getTenantId();
 		}
-		return ForestNodeMerger.merge(baseMapper.tree(tenantId));
+		return ForestNodeMerger.merge(baseMapper.tree(tenantId,corpType));
 	}
 
 	@Override
@@ -133,11 +133,11 @@ public class CorpsTypeServiceImpl extends ServiceImpl<CorpsTypeMapper, CorpsType
 	}
 
 	@Override
-	public List<CorpsTypeVO> lazyTree(String tenantId, Long parentId) {
+	public List<CorpsTypeVO> lazyTree(String tenantId, Long parentId,String corpType) {
 		if (StringUtils.isBlank(tenantId)){
 			tenantId = SecureUtil.getTenantId();
 		}
-		return baseMapper.lazyTree(tenantId,parentId);
+		return baseMapper.lazyTree(tenantId,parentId,corpType);
 	}
 
 	@Override

+ 7 - 0
blade-service/blade-client/src/main/java/org/springblade/client/storage/feign/StorageClient.java

@@ -1,6 +1,7 @@
 package org.springblade.client.storage.feign;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
@@ -16,6 +17,7 @@ import org.springblade.core.mp.support.BladePage;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -46,5 +48,10 @@ public class StorageClient implements IStorageClient {
 		return storageDescService.getStorageMessage(id);
 	}
 
+	@Override
+	public StorageDesc getName(String name) {
+		return storageDescService.getOne(new QueryWrapper<StorageDesc>().eq("cname",name).eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted",0));
+	}
+
 
 }

+ 11 - 9
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -125,13 +125,8 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 	 * @return
 	 */
 	public List<DeliveryItems> affirmDeliveryItemsList(Long pId,Delivery delivery,List<DeliveryItems> deliveryItemsList){
-		if (delivery.getSrcId() == null){
-			Order order = orderDescClient.getById(delivery.getSrcId());
-			BigDecimal reduce = deliveryItemsList.stream().filter(e -> e.getContractAmount() != null).map(DeliveryItems::getContractAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-			if (reduce.compareTo(order.getSettlmentAmount()) >0){
-				throw  new RuntimeException("发货金额不可以超过已收金额");
-			}
-		}
+		//判断要发货物的金额和已收金额的大小
+
 		for (DeliveryItems deliveryItems : deliveryItemsList) {
 			if (deliveryItems.getItemId() == null){
 				throw new RuntimeException("发货明细中商品id不能为空");
@@ -165,6 +160,13 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 			if (!actualQuantity.isSuccess()){
 				throw new RuntimeException("更新订单发货数量出错," + actualQuantity.getMsg());
 			}
+			// todo 出口贸易确认发货修改发票重量
+			if (delivery.getTradeType().equals(OrderTypeEnum.IMPORT.getType())){
+				R actualWeight = orderItemsClient.updateActualWeight(deliveryItems.getSrcId(), deliveryItems.getInvoiceWeight(), delivery.getDeliveryType());
+				if (!actualWeight.isSuccess()){
+					throw new RuntimeException("更新订单发票重量出错," + actualQuantity.getMsg());
+				}
+			}
 			//更新发货明细库存字段
 			deliveryItems.setInventoryNumber(stockGoods.getSurplusRouteQuantity());
 			baseMapper.updateById(deliveryItems);
@@ -192,8 +194,8 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 			billNo = deliveryItems.getBillNo();//提单号
 			contractNumber = deliveryItems.getContractNumber();//合同号
 		}else if (tradeType.equals(OrderTypeEnum.DOMESTIC.getType())){//国内
-			corpId = null;
-			storageId = null;
+			//corpId = null;
+			//storageId = null;
 		}else if (tradeType.equals(OrderTypeEnum.EXPORT.getType())){//出口
 			storageId = null;
 			corpId = null;

+ 5 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/excel/StockGoodsExcel.java

@@ -46,4 +46,9 @@ public class StockGoodsExcel implements Serializable {
 	 */
 	@ExcelProperty("客户名称")
 	private String corpName;
+	/**
+	 * 仓库名称
+	 */
+	@ExcelProperty("仓库名称")
+	private String storageName;
 }

+ 12 - 1
blade-service/blade-stock/src/main/java/org/springblade/stock/service/impl/StockGoodsServiceImpl.java

@@ -24,8 +24,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.GoodsDesc;
+import org.springblade.client.entity.StorageDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IGoodsDescClient;
+import org.springblade.client.feign.IStorageClient;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
@@ -58,6 +60,7 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 	private ICorpsDescClient corpsDescClient;//获取客户信息
 	private IGoodsDescClient goodsDescClient;//商品信息
 	private IUserClient userClient;//用户信息
+	private IStorageClient storageClient;
 	@Override
 	public IPage<StockGoodsVO> selectStockGoodsPage(IPage<StockGoodsVO> page, StockGoodsVO stockGoods) {
 		return page.setRecords(baseMapper.selectStockGoodsPage(page, stockGoods));
@@ -152,9 +155,17 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 			}else {
 				continue;
 			}
+			//获取仓库id
+			StorageDesc storageDesc = storageClient.getName(datum.getStorageName());
+			if (storageDesc != null){
+				stockGoods.setStorageId(storageDesc.getId());
+			}else {
+				continue;
+			}
 			//查询库存账
 			StockGoods goods = baseMapper.selectOne(new QueryWrapper<StockGoods>().eq("goods_id", stockGoods.getGoodsId())
-				.eq("corp_id", stockGoods.getCorpId()).eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0));
+				.eq("corp_id", stockGoods.getCorpId()).eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0)
+			.eq("item_type",stockGoods.getItemType()).eq("storage_id",stockGoods.getStorageId()));
 			if (goods == null){
 				stockGoods.setCreateTime(new Date());
 				stockGoods.setCreateUser(SecureUtil.getUserId());