Browse Source

新系统bug 达沃特凭证 收发货速度优化 2023年5月23日17:34:28

纪新园 2 years ago
parent
commit
b843af0dda

+ 4 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -256,6 +256,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 								&& s.getCorpId().equals(deliveryItems.getCorpId())
 								&& s.getStorageId().equals(delivery.getStorageId())
 						).findFirst().orElse(null);
+						stock = this.getStock(delivery.getTradeType(), deliveryItems.getCorpId(), delivery.getStorageId(), deliveryItems);
 					}else{
 						stock = this.getStock(delivery.getTradeType(), deliveryItems.getCorpId(), delivery.getStorageId(), deliveryItems);
 					}
@@ -447,6 +448,8 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 		}
 		stockGoods.setOutQuantity(stockGoods.getOutQuantity().add(deliveryItems.getActualQuantity()));//出库数量 加
 		if (ObjectUtils.isNotNull(sysClient.getParamService("inventory")) && "1".equals(sysClient.getParamService("inventory"))) {
+			stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(deliveryItems.getActualQuantity()));//结余数量 减
+			stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().subtract(deliveryItems.getActualQuantity()));//可用数量 减
 			stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().subtract(deliveryItems.getActualQuantity()));//锁定数量 减
 		} else {
 			stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(deliveryItems.getActualQuantity()));//结余数量 减
@@ -914,6 +917,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 	 * @param operate        操作 1 确认调拨 2 撤销调拨
 	 * @return
 	 */
+	@Override
 	public R affirmAllot(Long storageId, Long allotStorageId, List<DeliveryItems> list, int operate, String tradeType) {
 		//查询库存 判断原仓库是否有足够的库存调拨
 		if (operate == 1) {

+ 11 - 7
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -930,10 +930,9 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 					}
 				}
 
-				//更新库存内容
-				iDeliveryItemsService.updateById(e);
-
 			});
+			//更新库存内容
+			iDeliveryItemsService.updateBatchById(deliveryItemsList);
 			if ("681169".equals(AuthUtil.getTenantId())) {
 				// ===================增加益付款逻辑=========================
 				if (CollectionUtils.isNotEmpty(list)) {
@@ -1088,8 +1087,9 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		//工厂发货凭证
 		if ("681169".equals(select.getTenantId())) {
 			String accountName = select.getBelongCompany();
-			if ("A青岛达沃特轮胎有限公司".equals(accountName)) {
-				accountName = "青岛达沃特轮胎有限公司";
+			if (ObjectUtils.isNull(accountName)) {
+//				accountName = "山东登马轮胎科技有限公司";
+				throw new RuntimeException("请维护所属公司");
 			}
 			JdTenant jdTenant = getJdTenant(accountName);
 			if (jdTenant != null) {
@@ -1477,6 +1477,10 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		if (corpIds.size() > 1) {
 			throw new RuntimeException("操作失败,已选数据存在多个客户");
 		}
+		long status = deliveryList.stream().filter(e -> !"已到货".equals(e.getDeliveryStatus())).count();
+		if (status > 0) {
+			throw new RuntimeException("已选数据存在未确认到货数据,生成凭证失败");
+		}
 		if (corpIds.size() > 0) {
 			//客户信息
 			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpIds.get(0));
@@ -2058,7 +2062,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		ApiRequest requestSecret = new ApiRequest(HttpMethod.POST_FORM, "api.kingdee.com", "/jdyconnector/app_management/push_app_authorize");
 		Map<String, String> querysSecret = new LinkedHashMap<>();
 
-		querysSecret.put("outerInstanceId", "127580462150455296");
+		querysSecret.put("outerInstanceId", "131805614467846144");
 
 		requestSecret.setQuerys(querysSecret);
 		ApiResult resultsSecret = ApigwClient.getInstance().send(requestSecret);
@@ -2094,7 +2098,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			throw new SecurityException("当前密码错误次数超过限定值,请稍后再试");
 		}
 		return tokenDTO.getData().getAccess_token();*/
-		return jsonObject.getJSONObject("data").getString("app-token");
+		return jsonObject.getJSONObject("data").getString("access_token");
 	}
 
 	public String doGet(String url, Map<String, String> urlParams)

+ 59 - 33
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/PriceItemClient.java

@@ -1,109 +1,135 @@
 package org.springblade.mocha.feign;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.GoodsDesc;
+import org.springblade.client.feign.IGoodsDescClient;
 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.springblade.core.tool.utils.Func;
 import org.springblade.mocha.entity.PriceItem;
 import org.springblade.mocha.service.IPriceItemService;
-import org.springblade.mocha.service.IPriceService;
+import org.springblade.stock.entity.StockGoods;
+import org.springblade.stock.feign.IStockGoodsClient;
+import org.springblade.system.feign.ISysClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
 import java.math.BigDecimal;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 @NonDS
 @ApiIgnore()
 @RestController
 @AllArgsConstructor
-public class PriceItemClient implements IPriceItemClient{
-
-	private IPriceItemService priceItemService;
+public class PriceItemClient implements IPriceItemClient {
 
+	private final IPriceItemService priceItemService;
 
+	private final ISysClient sysClient;
 
+	private final IStockGoodsClient stockGoodsClient;
 
+	/**
+	 * 商品信息
+	 */
+	private final IGoodsDescClient goodsDescClient;
 
 	/**
 	 * 修改价格管理的销售价格
-	 * @param code  商品编码
-	 * @param price 销售价格
+	 *
+	 * @param code     商品编码
+	 * @param price    销售价格
 	 * @param tenantId 租户id
 	 * @return
 	 */
 	@Override
 	@GetMapping(UPDATE_PRICE_ITEM)
 	public R updatePriceItem(String code, BigDecimal price, String tenantId) {
-		return priceItemService.updatePriceItem(code,price,tenantId);
+		return priceItemService.updatePriceItem(code, price, tenantId);
 	}
 
 	/**
 	 * 根据商品编码获取销售价格信息
+	 *
 	 * @param code
 	 * @return
 	 */
 	@Override
 	@GetMapping(GET_MARKET_PRICE)
 	public R getMarketPrice(String code) {
-		return R.data(priceItemService.getMarketPrice(SecureUtil.getTenantId(),code));
+		return R.data(priceItemService.getMarketPrice(SecureUtil.getTenantId(), code));
 	}
 
 	/**
 	 * 获取商品采购价格
+	 *
 	 * @param code
 	 * @return
 	 */
 	@Override
 	@GetMapping(GET_PURCHASE_PRICE)
 	public R getPurchasePrice(String code) {
-		return R.data(priceItemService.getPurchasePrice(SecureUtil.getTenantId(),code));
+		List<Map<String, BigDecimal>> mapList = new ArrayList<>();
+		if (ObjectUtils.isNotNull(sysClient.getParamService("inventory")) && "1".equals(sysClient.getParamService("inventory"))) {
+			R<GoodsDesc> r = goodsDescClient.GoodsByCode(code);
+			if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
+				StockGoods stockGoods = new StockGoods();
+				stockGoods.setGoodsId(r.getData().getId());
+				StockGoods stock = stockGoodsClient.getOneStock(stockGoods);
+				if (ObjectUtils.isNotNull(stock)) {
+					Map<String, BigDecimal> map = new HashMap<>();
+					map.put("purchasePrice", stock.getStockPrice());
+					map.put("purchaseRebatePrice", stock.getStockPrice());
+					mapList.add(map);
+				}
+			}
+			return R.data(mapList);
+		} else {
+			return R.data(priceItemService.getPurchasePrice(SecureUtil.getTenantId(), code));
+		}
 	}
 
 	/**
 	 * 获取销售价格
+	 *
 	 * @param code
 	 * @return
 	 */
 	@Override
-	public List<Map<String,BigDecimal>> getSalePrice(String code, Integer isFreight, Integer isLabel) {
-		List<Map<String,BigDecimal>> mapList=new ArrayList<>();
-		LambdaQueryWrapper<PriceItem> priceItemLambdaQueryWrapper=new LambdaQueryWrapper<>();
+	public List<Map<String, BigDecimal>> getSalePrice(String code, Integer isFreight, Integer isLabel) {
+		List<Map<String, BigDecimal>> mapList = new ArrayList<>();
+		LambdaQueryWrapper<PriceItem> priceItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		priceItemLambdaQueryWrapper
-			.eq(PriceItem::getIsDeleted,0)
+			.eq(PriceItem::getIsDeleted, 0)
 			.eq(PriceItem::getTenantId, AuthUtil.getTenantId())
-			.eq(PriceItem::getCode,code);
+			.eq(PriceItem::getCode, code);
 		List<PriceItem> priceItemList = priceItemService.list(priceItemLambdaQueryWrapper);
 
-		if(CollectionUtils.isNotEmpty(priceItemList))
-		{
-			priceItemList.forEach(e->{
-				BigDecimal saleMoney=BigDecimal.ZERO;
-				BigDecimal reduce=e.getSalesPrice();
-				BigDecimal freight=BigDecimal.ZERO;
-				BigDecimal label=BigDecimal.ZERO;
-				if(isFreight!=null && isFreight==1)
-				{
-					freight=e.getFreightFees();
+		if (CollectionUtils.isNotEmpty(priceItemList)) {
+			priceItemList.forEach(e -> {
+				BigDecimal saleMoney = BigDecimal.ZERO;
+				BigDecimal reduce = e.getSalesPrice();
+				BigDecimal freight = BigDecimal.ZERO;
+				BigDecimal label = BigDecimal.ZERO;
+				if (isFreight != null && isFreight == 1) {
+					freight = e.getFreightFees();
 				}
-				if(isLabel!=null && isLabel==1)
-				{
-					label=e.getLabelFees();
+				if (isLabel != null && isLabel == 1) {
+					label = e.getLabelFees();
 				}
-				saleMoney=(reduce.add(freight)).add(label);
+				saleMoney = (reduce.add(freight)).add(label);
 
-				Map<String,BigDecimal> map=new HashMap<>();
-				map.put("salePrice",saleMoney);
+				Map<String, BigDecimal> map = new HashMap<>();
+				map.put("salePrice", saleMoney);
 				mapList.add(map);
 			});
 		}

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/BidingItemsMapper.xml

@@ -32,6 +32,6 @@
     <select id="selectPcList" resultMap="bidingItemsResultMap">
         select * from business_biding_items where is_deleted = 0 and pid = #{biding.id}
         and distinguish = #{biding.distinguish}
-        order by ranking desc
+        order by ranking asc
     </select>
 </mapper>

+ 2 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/BidingItemsServiceImpl.java

@@ -98,7 +98,7 @@ public class BidingItemsServiceImpl extends ServiceImpl<BidingItemsMapper, Bidin
 			return list;
 		}
 		List<BidingItems> sortedList = list.stream()
-			.sorted(Comparator.comparing(BidingItems::getSeaFreight).reversed())
+			.sorted(Comparator.comparing(BidingItems::getSeaFreight))
 			.collect(Collectors.toList());
 		int sort = 1;
 		List<BidingItems> list1 = new ArrayList<>();
@@ -159,7 +159,7 @@ public class BidingItemsServiceImpl extends ServiceImpl<BidingItemsMapper, Bidin
 				.eq(BidingItems::getDistinguish, distinguish)
 				.eq(BidingItems::getIsDeleted, 0)
 				.eq(BidingItems::getTenantId, AuthUtil.getTenantId())
-				.orderByDesc(BidingItems::getRanking));
+				.orderByAsc(BidingItems::getRanking));
 		} else if ("pc".equals(appOrPc)) {
 			biding.setDistinguish(distinguish);
 			list = baseMapper.selectPcList(biding);

+ 30 - 9
blade-service/blade-system/src/main/java/org/springblade/system/controller/ParamServiceController.java

@@ -16,23 +16,25 @@
  */
 package org.springblade.system.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
-import javax.validation.Valid;
-
+import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
-import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.system.entity.ParamService;
-import org.springblade.system.vo.ParamServiceVO;
 import org.springblade.system.service.IParamServiceService;
-import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.system.vo.ParamServiceVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
 
 /**
  * 业务参数配置表 控制器
@@ -82,6 +84,25 @@ public class ParamServiceController extends BladeController {
 	}
 
 	/**
+	 * 获取参数值
+	 */
+	@GetMapping("/retrieveParameters")
+	public R<Boolean> retrieveParameters(String param) {
+		ParamService paramService = paramServiceService.getOne(new LambdaQueryWrapper<ParamService>()
+			.eq(ParamService::getParamKey, param));
+		if (ObjectUtils.isNotNull(paramService)) {
+			if (!"681169".equals(paramService.getTenantId())) {
+				return R.data(!ObjectUtils.isNull(paramService.getParamValue()) && Boolean.parseBoolean(paramService.getParamValue()));
+			} else {
+				return R.data(true);
+			}
+		}else{
+			return R.data(false);
+		}
+	}
+
+
+	/**
 	 * 新增 业务参数配置表
 	 */
 	@PostMapping("/save")
@@ -111,7 +132,7 @@ public class ParamServiceController extends BladeController {
 		return R.status(paramServiceService.saveOrUpdate(paramService));
 	}
 
-	
+
 	/**
 	 * 删除 业务参数配置表
 	 */
@@ -122,5 +143,5 @@ public class ParamServiceController extends BladeController {
 		return R.status(paramServiceService.removeByIds(Func.toLongList(ids)));
 	}
 
-	
+
 }

+ 4 - 3
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -2524,7 +2524,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		ApiRequest requestSecret = new ApiRequest(HttpMethod.POST_FORM, "api.kingdee.com", "/jdyconnector/app_management/push_app_authorize");
 		Map<String, String> querysSecret = new LinkedHashMap<>();
 
-		querysSecret.put("outerInstanceId", "127580462150455296");
+		querysSecret.put("outerInstanceId", "131805614467846144");
 
 		requestSecret.setQuerys(querysSecret);
 		ApiResult resultsSecret = ApigwClient.getInstance().send(requestSecret);
@@ -2545,7 +2545,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		ApiResult results = ApigwClient.getInstance().send(request);
      	System.out.println("金蝶返回数据======》"+results.getBody());
 		JSONObject jsonObject = JSONObject.parseObject(results.getBody());
-		System.out.println("app-token======>"+jsonObject.getJSONObject("data").getString("app-token"));
+		System.out.println("app-token======>"+jsonObject.getJSONObject("data").getString("access_token"));
 
 		/*//获取测试账套token的url
 		String getTokenUrl = "https://api.kingdee.com/auth/user/access_token?client_id=" + jdTenant.getClientId() +
@@ -2560,7 +2560,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			throw new SecurityException("当前密码错误次数超过限定值");
 		}
 		return tokenDTO.getData().getAccess_token();*/
-		return jsonObject.getJSONObject("data").getString("app-token");
+//		return jsonObject.getJSONObject("data").getString("app-token");
+		return jsonObject.getJSONObject("data").getString("access_token");
 	}
 
 /*	//测试获取套账

+ 3 - 3
blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/service/impl/ClaimServiceImpl.java

@@ -561,7 +561,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 		ApiRequest requestSecret = new ApiRequest(HttpMethod.POST_FORM, "api.kingdee.com", "/jdyconnector/app_management/push_app_authorize");
 		Map<String, String> querysSecret = new LinkedHashMap<>();
 
-		querysSecret.put("outerInstanceId", "127580462150455296");
+		querysSecret.put("outerInstanceId", "131805614467846144");
 
 		requestSecret.setQuerys(querysSecret);
 		ApiResult resultsSecret = ApigwClient.getInstance().send(requestSecret);
@@ -582,7 +582,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 		ApiResult results = ApigwClient.getInstance().send(request);
      	System.out.println("金蝶返回数据======》"+results.getBody());
 		JSONObject jsonObject = JSONObject.parseObject(results.getBody());
-		System.out.println("app-token======>"+jsonObject.getJSONObject("data").getString("app-token"));
+		System.out.println("app-token======>"+jsonObject.getJSONObject("data").getString("access_token"));
 
 	/*	//获取测试账套token的url
 		String getTokenUrl = "https://api.kingdee.com/auth/user/access_token?client_id=" + jdTenant.getClientId() +
@@ -597,7 +597,7 @@ public class ClaimServiceImpl extends ServiceImpl<ClaimMapper, Claim> implements
 			throw new SecurityException("当前密码错误次数超过限定值");
 		}
 		return tokenDTO.getData().getAccess_token();*/
-		return jsonObject.getJSONObject("data").getString("app-token");
+		return jsonObject.getJSONObject("data").getString("access_token");
 	}
 
 	public String doGet(String url, Map<String, String> urlParams)