纪新园 2 лет назад
Родитель
Сommit
02aa1b7327

+ 6 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java

@@ -696,6 +696,12 @@ public class Delivery implements Serializable {
 	private String tripartiteInspection;
 
 	/**
+	 * 生成凭证状态
+	 */
+	@ApiModelProperty(value = "生成凭证状态")
+	private String voucherStatus;
+
+	/**
 	 * 是否生成凭证
 	 */
 	@TableField(exist = false)

+ 12 - 4
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryController.java

@@ -107,7 +107,8 @@ public class DeliveryController extends BladeController {
 		lambdaQueryWrapper.eq(Delivery::getTenantId,SecureUtil.getTenantId());
 		lambdaQueryWrapper.eq(Delivery::getBillType,OrderTypeEnum.SHIP.getType());
 		lambdaQueryWrapper.eq(Delivery::getTradeType,OrderTypeEnum.DOMESTIC.getType());
-		if (ObjectUtils.isNotNull(delivery.getGenerate())){
+		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(delivery.getVoucherStatus()),Delivery::getVoucherStatus,delivery.getVoucherStatus());
+		/*if (ObjectUtils.isNotNull(delivery.getGenerate())){
 			if ("1".equals(delivery.getGenerate())){
 				lambdaQueryWrapper.isNotNull(Delivery::getVoucherNo);
 			}else{
@@ -115,7 +116,7 @@ public class DeliveryController extends BladeController {
 			}
 		}else{
 			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(delivery.getVoucherNo()),Delivery::getVoucherNo,delivery.getVoucherNo());
-		}
+		}*/
 		lambdaQueryWrapper.eq(delivery.getSalesCompany()!=null,Delivery::getSalesCompany,delivery.getSalesCompany());
 		lambdaQueryWrapper.like(StringUtils.isNotBlank(delivery.getPurchaseMode()),Delivery::getPurchaseMode,delivery.getPurchaseMode());
 		lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getCreateStartTime()),Delivery::getCreateTime,delivery.getCreateStartTime());//制单日期开始
@@ -444,8 +445,15 @@ public class DeliveryController extends BladeController {
 	@RepeatSubmit
 	public R comfire(@RequestBody Delivery delivery)
 	{
-		deliveryService.comfire(delivery);
-		return R.data(delivery);
+		Delivery res = deliveryService.comfire(delivery);
+		return R.data(res);
+	}
+
+	@GetMapping("/voucher")
+	@RepeatSubmit
+	public R voucher(Delivery delivery)
+	{
+		return deliveryService.voucher(delivery);
 	}
 
 

+ 3 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/IDeliveryService.java

@@ -76,7 +76,7 @@ public interface IDeliveryService extends IService<Delivery> {
 	 * @param delivery
 	 * @return
 	 */
-	void comfire(Delivery delivery);
+	Delivery comfire(Delivery delivery);
 
 	/**
 	 * 撤销收货
@@ -103,4 +103,6 @@ public interface IDeliveryService extends IService<Delivery> {
 	List<StockInventory> selectStockInventory(String stockId, String goodsId);
 
 	List<StockInventory> selectStockInventoryList(String oldStockId,String newStockId, String goodsId);
+
+	R voucher(Delivery delivery);
 }

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

@@ -334,13 +334,23 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 						}
 					}
 				}
-				stockGoodsList1.add(stockGoods);
+				if (ObjectUtils.isNotNull(stockGoods)){
+					stockGoodsList1.add(stockGoods);
+				}
+				if (ObjectUtils.isNotNull(goods)){
+					stockGoodsList1.add(goods);
+				}
+				if (ObjectUtils.isNotNull(stock)){
+					stockGoodsList1.add(stock);
+				}
 				deliveryItemsList1.add(deliveryItems);
 //				baseMapper.updateById(deliveryItems);
 			}
-			R res = stockGoodsClient.updateStockList(stockGoodsList1);
-			if (!res.isSuccess()) {
-				throw new SecurityException(res.getMsg());
+			if (stockGoodsList1.size()>0){
+				R res = stockGoodsClient.saveOrUpdateBatchList(stockGoodsList1);
+				if (!res.isSuccess()) {
+					throw new SecurityException(res.getMsg());
+				}
 			}
 			this.saveOrUpdateBatch(deliveryItemsList1);
 		}

+ 203 - 49
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -64,7 +64,6 @@ import org.springblade.stock.entity.StockGoods;
 import org.springblade.stock.feign.IStockGoodsClient;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
-import org.springblade.system.user.feign.IUserClient;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -79,7 +78,10 @@ import java.net.URLEncoder;
 import java.security.SecureRandom;
 import java.security.cert.X509Certificate;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.concurrent.*;
 import java.util.stream.Collectors;
 
 /**
@@ -249,7 +251,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		List<DeliveryItems> deliveryItemsList = delivery.getDeliveryItemsList();
 		if (!CollectionUtils.isNotEmpty(deliveryItemsList)) {
 			BigDecimal totalActualQuantity = deliveryItemsList.stream().map(DeliveryItems::getActualQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			if (ObjectUtils.isNull(delivery.getPurchaseAmount())){
+			if (ObjectUtils.isNull(delivery.getPurchaseAmount())) {
 				delivery.setPurchaseAmount(deliveryItemsList.stream().map(DeliveryItems::getPurchaseAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 			}
 			delivery.setTotalQuantity(totalActualQuantity);
@@ -535,9 +537,9 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			List<DeliveryFiles> deliveryFilesList = deliveryFilesService.saveDeliveryFilesList(delivery.getId(), delivery.getDeliveryFilesList());
 			delivery.setDeliveryFilesList(deliveryFilesList);
 		}
-		if (ObjectUtils.isNotNull(delivery.getStorageId())){
+		if (ObjectUtils.isNotNull(delivery.getStorageId())) {
 			StorageType storageType = iStorageClient.getStorageType(delivery.getStorageId());
-			if (storageType != null ){
+			if (storageType != null) {
 				delivery.setStorageName(storageType.getCname());
 			}
 		}
@@ -698,8 +700,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	@GlobalTransactional(rollbackFor = Exception.class,timeoutMills = 12000000)
-	public void comfire(Delivery delivery) {
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public Delivery comfire(Delivery delivery) {
 		//防重校验
 		Long deliveryId = delivery.getId();
 		Delivery select = baseMapper.selectById(deliveryId);
@@ -1008,7 +1010,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 			});
 			R res = stockGoodsClient.saveOrUpdateBatchList(stockGoodsList1);
-			if (!res.isSuccess()){
+			if (!res.isSuccess()) {
 				throw new RuntimeException(res.getMsg());
 			}
 			//更新库存内容
@@ -1142,28 +1144,83 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				orderTemp.setDeliverTime(date);
 				orderDescClient.updateOrder(orderTemp);
 			}
-
 		}
 
-		//工厂发货凭证
-		if ("681169".equals(select.getTenantId())) {
-			String accountName = select.getBelongCompany();
-			if (ObjectUtils.isNull(accountName)) {
+		// 创建线程池
+		ExecutorService executor = Executors.newSingleThreadExecutor();
+		// 启动任务并提交给线程池
+		String finalBrand = brand;
+		String finalCorpName = corpName;
+		String finalCorpNumber = corpNumber;
+		String finalWareHouse = wareHouse;
+		try {
+			// 启动任务并提交给线程池
+			Future<?> future = executor.submit(new Callable<Void>() {
+				@Override
+				public Void call() throws Exception {
+					try {
+						String accountName = select.getBelongCompany();
+						if (ObjectUtils.isNull(accountName)) {
 //				accountName = "山东登马轮胎科技有限公司";
-				throw new RuntimeException("请维护所属公司");
-			}
-			JdTenant jdTenant = getJdTenant(accountName);
-			if (jdTenant != null) {
-				//todo
-				try {
-					//测试账套-工厂发货生成凭证
-					this.testTakeGoodsSaveVoucher(brand, select, accountName, corpName, corpNumber, wareHouse, acoount, orderNo);
-				} catch (Exception exception) {
-					throw new RuntimeException(exception.getMessage());
+							throw new RuntimeException("请维护所属公司");
+						}
+						JdTenant jdTenant = getJdTenant(accountName, select.getTenantId());
+						if (jdTenant != null) {
+							//测试账套-工厂发货生成凭证
+							voucher(finalBrand, select, accountName, finalCorpName, finalCorpNumber, finalWareHouse, acoount, orderNo);
+						}
+					} catch (Exception e) {
+						System.out.println(e.getMessage());
+					}
+					return null;
 				}
+			});
+			// 等待任务执行完毕
+			future.get();
+		} catch (InterruptedException | ExecutionException e) {
+			e.printStackTrace();
+		} finally {
+			// 关闭线程池
+			executor.shutdown();
+		}
+		return select;
+	}
+
+	public void voucher(String brand, Delivery select, String accountName, String copsName, String corpNumber, String warehouse, String acoount, String orderNo) {
+		try {
+			//测试账套-工厂发货生成凭证
+			Delivery delivery = this.testTakeGoodsSaveVoucher(brand, select, accountName, copsName, corpNumber, warehouse, "0.00", orderNo);
+			if (ObjectUtils.isNotNull(delivery)) {
+				delivery.setVoucherStatus("1");
+				baseMapper.updateById(delivery);
 			}
+		} catch (RuntimeException exception) {
+			LocalDateTime now = LocalDateTime.now();
+			DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+			String formatted = now.format(formatter);
+			Message sendMessage = new Message();
+			sendMessage.setParameter(select.getId() + "");
+			sendMessage.setUserName("外部用户");
+			sendMessage.setUserId(null);
+			sendMessage.setToUserId(AuthUtil.getUserId());
+			sendMessage.setToUserName(AuthUtil.getUserName());
+			sendMessage.setMessageType(1);
+			sendMessage.setTenantId(AuthUtil.getTenantId());
+			sendMessage.setCreateUser(null);
+			sendMessage.setCreateTime(new Date());
+			sendMessage.setUrl("/businessManagement/receipt/index");
+			sendMessage.setPageLabel("工厂发货");
+			sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+			sendMessage.setMessageBody("工厂发货生成凭证失败!单号:" + select.getSysNo()
+				+ "时间:" + formatted + "原因:" + exception.getMessage());
+			R save = messageClient.save(sendMessage);
+			System.out.println("发送结果:" + save);
+			if (!save.isSuccess()) {
+				throw new SecurityException("发送消息失败");
+			}
+		} catch (Exception e) {
+			System.out.println(e.getMessage());
 		}
-
 	}
 
 	@Override
@@ -1205,7 +1262,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			List<BusinessOverpaymentItem> list = new ArrayList<>();
 			List<StockGoods> stockGoodsList1 = new ArrayList<>();
 			List<DeliveryItems> deliveryItemsList1 = new ArrayList<>();
-			for(DeliveryItems e :deliveryItemsList){
+			for (DeliveryItems e : deliveryItemsList) {
 				if ("681169".equals(AuthUtil.getTenantId())) {
 					// ===================撤回益付款逻辑=========================
 					if (e.getPurchaseQuantity().compareTo(e.getActualQuantity()) > 0) {
@@ -1638,7 +1695,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		if ("A青岛达沃特轮胎有限公司".equals(accountName)) {
 			accountName = "青岛达沃特轮胎有限公司";
 		}
-		JdTenant jdTenant = getJdTenant(accountName);
+		JdTenant jdTenant = getJdTenant(accountName, AuthUtil.getTenantId());
 		if (jdTenant != null) {
 			try {
 				int index = saleOrderNo.indexOf(",");
@@ -1676,12 +1733,98 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 	@Override
 	public List<StockInventory> selectStockInventory(String stockId, String goodsId) {
-		return baseMapper.selectStockInventory( stockId,  goodsId);
+		return baseMapper.selectStockInventory(stockId, goodsId);
 	}
 
 	@Override
-	public List<StockInventory> selectStockInventoryList(String oldStockId,String newStockId, String goodsId) {
-		return baseMapper.selectStockInventoryList(oldStockId,newStockId,  goodsId);
+	public List<StockInventory> selectStockInventoryList(String oldStockId, String newStockId, String goodsId) {
+		return baseMapper.selectStockInventoryList(oldStockId, newStockId, goodsId);
+	}
+
+	@Override
+	public R voucher(Delivery delivery) {
+		//防重校验
+		Long deliveryId = delivery.getId();
+		Delivery select = baseMapper.selectById(deliveryId);
+		if (select == null) {
+			throw new SecurityException("未查到相关数据,操作失败");
+		}
+		String corpName = null;
+		String corpNumber = null;
+		String orderNo = select.getOrderNo();
+		String wareHouse = null;
+		String brand = null;
+		String acoount = select.getPurchaseAmount().toString();
+		Long corpId = select.getCorpId();
+		//获得商品品牌
+		List<DeliveryItems> deliveryItemsList = deliveryItemsMapper.selectList(new LambdaQueryWrapper<DeliveryItems>()
+			.eq(DeliveryItems::getIsDeleted, 0).eq(DeliveryItems::getPid, select.getId()));
+		if (deliveryItemsList.size() > 0) {
+			R<GoodsDescVO> goods = goodsDescClient.selectGoodsMessage(deliveryItemsList.get(0).getItemId());
+			if (goods.isSuccess() && goods.getData() != null) {
+				brand = goods.getData().getBrand();
+			}
+		}
+		//客户信息
+		List<CorpsDesc> corpsDescList = castToList(redisTemplate.opsForValue().get("corps"), CorpsDesc.class);
+		CorpsDesc corpsDesc = corpsDescList.stream().filter(c -> c.getId().equals(corpId)).findFirst().orElse(null);
+		if (corpsDesc != null) {
+			corpName = corpsDesc.getCname();
+			corpNumber = corpsDesc.getCode();
+		}
+		//仓库信息
+		List<StorageDesc> storageDescList = castToList(redisTemplate.opsForValue().get("storageDesc"), StorageDesc.class);
+		StorageDesc storageDesc = storageDescList.stream().filter(c -> c.getId().equals(select.getStorageId())).findFirst().orElse(null);
+		if (storageDesc != null) {
+			wareHouse = storageDesc.getCname();
+		}
+		//工厂发货凭证
+		if ("681169".equals(select.getTenantId())) {
+			try {
+				String accountName = select.getBelongCompany();
+				if (ObjectUtils.isNull(accountName)) {
+//				accountName = "山东登马轮胎科技有限公司";
+					throw new RuntimeException("请维护所属公司");
+				}
+				JdTenant jdTenant = getJdTenant(accountName, AuthUtil.getTenantId());
+				if (jdTenant != null) {
+					try {
+						//测试账套-工厂发货生成凭证
+						Delivery delivery1 = this.testTakeGoodsSaveVoucher(brand, select, accountName, corpName, corpNumber, wareHouse, acoount, orderNo);
+						if (ObjectUtils.isNotNull(delivery1)){
+							delivery1.setVoucherStatus("1");
+							baseMapper.updateById(delivery1);
+						}
+					} catch (RuntimeException exception) {
+						LocalDateTime now = LocalDateTime.now();
+						DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+						String formatted = now.format(formatter);
+						Message sendMessage = new Message();
+						sendMessage.setParameter(select.getId() + "");
+						sendMessage.setUserName("外部用户");
+						sendMessage.setUserId(null);
+						sendMessage.setToUserId(AuthUtil.getUserId());
+						sendMessage.setToUserName(AuthUtil.getUserName());
+						sendMessage.setMessageType(1);
+						sendMessage.setTenantId(AuthUtil.getTenantId());
+						sendMessage.setCreateUser(null);
+						sendMessage.setCreateTime(new Date());
+						sendMessage.setUrl("/businessManagement/receipt/index");
+						sendMessage.setPageLabel("工厂发货");
+						sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
+						sendMessage.setMessageBody("工厂发货生成凭证失败!单号:" + select.getSysNo()
+							+ "时间:" + formatted + "原因:" + exception.getMessage());
+						R save = messageClient.save(sendMessage);
+						if (!save.isSuccess()) {
+							throw new SecurityException("发送消息失败");
+						}
+					}
+				}
+			} catch (Exception e) {
+				throw new RuntimeException(e.getMessage());
+			}
+		}
+		return R.data("操作成功");
 	}
 
 
@@ -1746,7 +1889,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			return null;
 		}
 		//获取token
-		String token = this.getAccountGroupRequest();
+		String token = this.getAccountGroupRequest(AuthUtil.getTenantId());
 		//获取套账url
 		String getAccountUrl = "https://api.kingdee.com/jdy/sys/accountGroup?access_token=" + token;
 		Map<String, String> urlParams = new HashMap<>();
@@ -1796,14 +1939,16 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	}
 
 	//收货生成凭证
-	public void testTakeGoodsSaveVoucher(String brand, Delivery delivery, String accountName, String copsName, String corpNumber, String warehouse, String acoount, String orderNo) throws Exception {
-		// TODO 临时屏蔽
-//		if (!"test".equals(AuthUtil.getTenantId())) {
-//			return;
-//		}
+	public Delivery testTakeGoodsSaveVoucher(String brand, Delivery delivery, String accountName, String copsName, String corpNumber, String warehouse, String acoount, String orderNo) throws Exception {
+		String tenantId = "";
+		if (ObjectUtils.isNotNull(AuthUtil.getTenantId())) {
+			tenantId = AuthUtil.getTenantId();
+		} else {
+			tenantId = delivery.getTenantId();
+		}
 
 		//获取token
-		String token = this.getAccountGroupRequest();
+		String token = this.getAccountGroupRequest(tenantId);
 		//获取套账url
 		String getAccountUrl = "https://api.kingdee.com/jdy/sys/accountGroup?access_token=" + token;
 		Map<String, String> urlParams = new HashMap<>();
@@ -1830,20 +1975,21 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		LambdaQueryWrapper<JdTenant> jdTenantLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		jdTenantLambdaQueryWrapper
 			.eq(JdTenant::getIsEnable, 1)
-			.eq(JdTenant::getTenantId, AuthUtil.getTenantId())
+			.eq(JdTenant::getTenantId, tenantId)
 			.eq(JdTenant::getAccountName, accountName);
 		JdTenant jdTenant = jdTenantMapper.selectOne(jdTenantLambdaQueryWrapper);
 		if (jdTenant == null) {
-			return;
+			return new Delivery();
 		}
 		//2.收货,组装model,保存凭证
 		JdyTool.voucher voucher = toTakeJinDie(brand, delivery.getBusinessDate(), orderNo, acoount,
-			copsName, corpNumber, warehouse, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
+			copsName, corpNumber, warehouse, jdTenant.getAccountId(), group.getGroupName(), jdTenant, tenantId);
 		if (voucher == null) {
 			throw new RuntimeException("获取凭证信息失败");
 		}
 		delivery.setVoucherId(voucher.getId());
 		delivery.setVoucherId(voucher.getVoucherno());
+		return delivery;
 	}
 
 	public JdyTool.voucher toDeliverJinDie(String brand, Date date, String saleOrderNo, String purchaseOrder,
@@ -2036,7 +2182,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 		//组装数据,生成凭证
 		try {
-			String token = this.getAccountGroupRequest();
+			String token = this.getAccountGroupRequest(AuthUtil.getTenantId());
 			String saveUrl = "http://api.kingdee.com/jdy/gl/voucher_save?access_token=" + token;
 			return JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
 		} catch (Exception exception) {
@@ -2048,8 +2194,11 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	/**
 	 * 金蝶保存凭证测试-销售生成凭证
 	 */
-	public JdyTool.voucher toTakeJinDie(String brand, Date date, String orderNo, String acoount, String copsName, String corpNumber, String warehouse, String accountId, String groupName, JdTenant jdTenant) {
+	public JdyTool.voucher toTakeJinDie(String brand, Date date, String orderNo, String acoount, String copsName, String corpNumber, String warehouse, String accountId, String groupName, JdTenant jdTenant, String tenantId) {
 
+		if (ObjectUtils.isNull(tenantId)) {
+			tenantId = AuthUtil.getTenantId();
+		}
 
 		JDYitems item = new JDYitems();
 		item.setDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
@@ -2066,7 +2215,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			.eq(JdModule::getModule, "收货")
 			.eq(JdModule::getDc, "1")
 			.last("limit 1")
-			.eq(JdModule::getTenantId, AuthUtil.getTenantId());
+			.eq(JdModule::getTenantId, tenantId);
 		JdModule dModule = moduleMapper.selectOne(dLambdaQueryWrapper);
 		if (dModule == null) {
 			throw new RuntimeException("获取销售订单科目号失败");
@@ -2086,7 +2235,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		corpsQueryWrapper
 			.eq(JdCorps::getCorpsType, 4)
 			.eq(JdCorps::getAccountId, accountId)
-			.eq(JdCorps::getTenantId, AuthUtil.getTenantId())
+			.eq(JdCorps::getTenantId, tenantId)
 			.last("limit 1")
 			.eq(JdCorps::getCorpsName, warehouse);
 		JdCorps jdCorps = corpsMapper.selectOne(corpsQueryWrapper);
@@ -2113,7 +2262,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			.eq(JdModule::getModule, "收货")
 			.eq(JdModule::getDc, "-1")
 			.last("limit 1")
-			.eq(JdModule::getTenantId, AuthUtil.getTenantId());
+			.eq(JdModule::getTenantId, tenantId);
 		JdModule cModule = moduleMapper.selectOne(cLambdaQueryWrapper);
 		if (cModule == null) {
 			throw new RuntimeException("获取销售订单科目号失败");
@@ -2133,7 +2282,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		corpsQueryWrapper2
 			.eq(JdCorps::getCorpsType, 2)
 			.eq(JdCorps::getAccountId, accountId)
-			.eq(JdCorps::getTenantId, AuthUtil.getTenantId())
+			.eq(JdCorps::getTenantId, tenantId)
 			.last("limit 1")
 			.eq(JdCorps::getCorpsName, copsName);
 		JdCorps jdCorps2 = corpsMapper.selectOne(corpsQueryWrapper2);
@@ -2154,7 +2303,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		item.setEntries(entriesList);
 		jdYitems.add(item);
 		try {
-			String token = this.getAccountGroupRequest();
+			String token = this.getAccountGroupRequest(tenantId);
 			String saveUrl = "http://api.kingdee.com/jdy/gl/voucher_save?access_token=" + token;
 			return JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
 		} catch (Exception exception) {
@@ -2166,12 +2315,12 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	/**
 	 * 测试获取AccountGroupRequest
 	 */
-	public String getAccountGroupRequest() throws Exception {
+	public String getAccountGroupRequest(String tenantId) throws Exception {
 		//校验当前租户配置,如果存在配置,返回token
 		LambdaQueryWrapper<JdTenant> jdTenantLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		jdTenantLambdaQueryWrapper
 			.last("limit 1")
-			.eq(JdTenant::getTenantId, AuthUtil.getTenantId())
+			.eq(JdTenant::getTenantId, tenantId)
 			.eq(JdTenant::getIsEnable, 1);
 		JdTenant jdTenant = jdTenantMapper.selectOne(jdTenantLambdaQueryWrapper);
 		if (jdTenant == null) {
@@ -2374,12 +2523,17 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 	}
 
-	private JdTenant getJdTenant(String accountName) {
+	private JdTenant getJdTenant(String accountName, String tenantId) {
 		LambdaQueryWrapper<JdTenant> jdTenantLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		jdTenantLambdaQueryWrapper
 			.eq(JdTenant::getIsEnable, 1)
-			.eq(JdTenant::getTenantId, AuthUtil.getTenantId())
+
 			.eq(JdTenant::getAccountName, accountName);
+		if (ObjectUtils.isNotNull(tenantId)) {
+			jdTenantLambdaQueryWrapper.eq(JdTenant::getTenantId, tenantId);
+		} else {
+			jdTenantLambdaQueryWrapper.eq(JdTenant::getTenantId, AuthUtil.getTenantId());
+		}
 		JdTenant jdTenant = jdTenantMapper.selectOne(jdTenantLambdaQueryWrapper);
 		return jdTenant;
 	}

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

@@ -5681,6 +5681,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 							OrderItems srcItems = new OrderItems();
 							srcItems.setId(orderItems.getSrcItemId());
 							srcItems.setPurchaseQuantity(orderItems.getActualQuantity());
+							srcItems.setFudaPurchaseStatus("排产中");
 							orderItemsMapper.updateById(srcItems);
 						}
 					} else {
@@ -5689,6 +5690,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						if (null != srcItems) {
 							BigDecimal quantity = ObjectUtils.isNotNull(srcItems.getPurchaseQuantity()) ? srcItems.getPurchaseQuantity() : new BigDecimal("0.00");
 							srcItems.setPurchaseQuantity(quantity.add(orderItems.getActualQuantity()));
+							srcItems.setFudaPurchaseStatus("排产中");
 							orderItemsMapper.updateById(srcItems);
 						}
 					}

+ 7 - 5
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/component/impl/DefaultOrderSaveImpl.java

@@ -236,11 +236,6 @@ public class DefaultOrderSaveImpl implements IOrderSave {
 							}
 						}
 					}
-					order.setStorageQuantity(order.getOrderItemsList().stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-					order.setOrderQuantity(order.getOrderItemsList().stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-					order.setActualQuantity(order.getOrderItemsList().stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-					order.setPurchaseQuantity(order.getOrderItemsList().stream().map(OrderItems::getPurchaseQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-					order.setPurchaseAmount(order.getOrderItemsList().stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
 				}
 				order.setBuyerName(order.get$buyerId());
 				order.setDocumenterName(order.get$documenterId());
@@ -349,6 +344,13 @@ public class DefaultOrderSaveImpl implements IOrderSave {
 			}
 
 		}
+		if ("577435".equals(AuthUtil.getTenantId())){
+			order.setStorageQuantity(order.getOrderItemsList().stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+			order.setOrderQuantity(order.getOrderItemsList().stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+			order.setActualQuantity(order.getOrderItemsList().stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+			order.setPurchaseQuantity(order.getOrderItemsList().stream().map(OrderItems::getPurchaseQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+			order.setPurchaseAmount(order.getOrderItemsList().stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+		}
 		order.setUpdateTime(new Date());
 		order.setUpdateUser(AuthUtil.getUserId());
 		order.setBuyerName(order.get$buyerId());