Browse Source

2023年7月13日18:10:59

纪新园 2 năm trước cách đây
mục cha
commit
fe0daba361
16 tập tin đã thay đổi với 264 bổ sung172 xóa
  1. 11 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  2. 1 0
      blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/entity/StockGoods.java
  3. 2 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java
  4. 7 7
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java
  5. 2 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/tool/JdyTool.java
  6. 2 2
      blade-service/blade-project/src/main/java/org/springblade/project/controller/ProjectFilesController.java
  7. 91 66
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java
  8. 2 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  9. 27 9
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  10. 36 20
      blade-service/blade-stock/src/main/java/org/springblade/stock/config/MyBatisPlusConfig.java
  11. 1 40
      blade-service/blade-stock/src/main/java/org/springblade/stock/feign/StockGoodsClient.java
  12. 2 0
      blade-service/blade-stock/src/main/java/org/springblade/stock/mapper/StockGoodsMapper.java
  13. 2 0
      blade-service/blade-stock/src/main/java/org/springblade/stock/service/IStockGoodsService.java
  14. 54 5
      blade-service/blade-stock/src/main/java/org/springblade/stock/service/impl/StockGoodsServiceImpl.java
  15. 5 0
      blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml
  16. 19 19
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

+ 11 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java

@@ -1404,6 +1404,17 @@ public class Order implements Serializable {
 	@TableField(exist = false)
 	private Integer showAll;
 
+	/**
+	 * 配件数量(福达)
+	 */
+	@ApiModelProperty(value = "配件数量")
+	private BigDecimal storageQuantityPj;
+	/**
+	 * 配件采购数量(福达)
+	 */
+	@ApiModelProperty(value = "配件采购数量")
+	private BigDecimal purchaseQuantityPj;
+
 	public String get$buyerId() {
 		return $buyerId;
 	}

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

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.annotation.Version;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.stock.vo.GoodsDescDto;
 
 import java.io.Serializable;

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

@@ -219,8 +219,8 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 		}
 
 		//从缓存中获得库存
-		redisClient.basicData("all");
-		List<StockGoods> stockGoodsList = castToList(redisTemplate.opsForValue().get("stockGoods"), StockGoods.class);
+//		redisClient.basicData("all");
+		List<StockGoods> stockGoodsList = stockGoodsClient.selectStockGoodsAll();;
 
 		if (CollectionUtils.isNotEmpty(collect)) {
 			List<DeliveryItems> deliveryItemsList1 = new ArrayList<>();

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

@@ -1159,7 +1159,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 					//测试账套-工厂发货生成凭证
 					this.testTakeGoodsSaveVoucher(brand, select, accountName, corpName, corpNumber, wareHouse, acoount, orderNo);
 				} catch (Exception exception) {
-					throw new SecurityException(exception.getMessage());
+					throw new RuntimeException(exception.getMessage());
 				}
 			}
 		}
@@ -1812,7 +1812,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 		List<JdyTool.AccountGroup> list = new ArrayList<>();
 		if (!CollectionUtils.isNotEmpty(getAccountGroup.getData())) {
-			throw new SecurityException("操作失败,暂无账套信息");
+			throw new RuntimeException("操作失败,暂无账套信息");
 		}
 		//获取此账号下,全部账套
 		getAccountGroup.getData().forEach(e -> {
@@ -1821,7 +1821,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		//匹配账套
 		List<JdyTool.AccountGroup> groupList = list.stream().filter(e -> e.getAccountName().equals(accountName)).collect(Collectors.toList());
 		if (!CollectionUtils.isNotEmpty(groupList)) {
-			throw new SecurityException("未找到: " + accountName + " 的套账信息");
+			throw new RuntimeException("未找到: " + accountName + " 的套账信息");
 		}
 		JdyTool.AccountGroup group = groupList.get(0);
 
@@ -1840,7 +1840,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		JdyTool.voucher voucher = toTakeJinDie(brand, delivery.getBusinessDate(), orderNo, acoount,
 			copsName, corpNumber, warehouse, jdTenant.getAccountId(), group.getGroupName(), jdTenant);
 		if (voucher == null) {
-			throw new SecurityException("获取凭证信息失败");
+			throw new RuntimeException("获取凭证信息失败");
 		}
 		delivery.setVoucherId(voucher.getId());
 		delivery.setVoucherId(voucher.getVoucherno());
@@ -2069,7 +2069,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			.eq(JdModule::getTenantId, AuthUtil.getTenantId());
 		JdModule dModule = moduleMapper.selectOne(dLambdaQueryWrapper);
 		if (dModule == null) {
-			throw new SecurityException("获取销售订单科目号失败");
+			throw new RuntimeException("获取销售订单科目号失败");
 		}
 
 		d.setExplanation(dModule.getAbstractStatic() + "-" + orderNo);
@@ -2116,7 +2116,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			.eq(JdModule::getTenantId, AuthUtil.getTenantId());
 		JdModule cModule = moduleMapper.selectOne(cLambdaQueryWrapper);
 		if (cModule == null) {
-			throw new SecurityException("获取销售订单科目号失败");
+			throw new RuntimeException("获取销售订单科目号失败");
 		}
 
 		c.setExplanation(cModule.getAbstractStatic() + "-" + orderNo);
@@ -2158,7 +2158,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			String saveUrl = "http://api.kingdee.com/jdy/gl/voucher_save?access_token=" + token;
 			return JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
 		} catch (Exception exception) {
-			throw new SecurityException("操作失败,保存金蝶错误:" + exception.getMessage());
+			throw new RuntimeException("操作失败,保存金蝶错误:" + exception.getMessage());
 		}
 
 	}

+ 2 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/tool/JdyTool.java

@@ -49,14 +49,14 @@ public class JdyTool
 
 		if(saveResponse.getSuccess()==false)
 		{
-			throw new SecurityException("调用凭证API失败,请检查日志");
+			throw new RuntimeException("调用凭证API失败,请检查日志");
 		}
 		else
 		{
 
 			if(error)
 			{
-				throw new SecurityException("保存凭证失败,请检查日志");
+				throw new RuntimeException("保存凭证失败,请检查日志");
 			}
 		}
 

+ 2 - 2
blade-service/blade-project/src/main/java/org/springblade/project/controller/ProjectFilesController.java

@@ -35,8 +35,8 @@ public class ProjectFilesController
 		filesService.save(serviceProjectFiles);
 		return R.success("保存成功");
 	}
-	@DeleteMapping("delete")
-	public R delete(@RequestParam(name = "id", required = true) Long id)
+	@PostMapping("/delete")
+	public R delete(@RequestParam Long id)
 	{
 		List<Long> ids= Arrays.asList(id);
 		filesService.deleteLogic(ids);

+ 91 - 66
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -1292,7 +1292,7 @@ public class ExportOrderController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "出口销售获得采购状态", notes = "传入id")
 	public R<List<Order>> listPurchaseStatus(@RequestParam(value = "id") String id) {
-		if (ObjectUtils.isEmpty(id)){
+		if (ObjectUtils.isEmpty(id)) {
 			throw new SecurityException("缺少必要参数");
 		}
 		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -1318,7 +1318,8 @@ public class ExportOrderController extends BladeController {
 			.eq(Order::getBillType, OrderTypeEnum.SALES.getType())
 			.eq(Order::getTradeType, OrderTypeEnum.EXPORT.getType())
 			.isNotNull(Order::getProductionScheduling)
-			.apply("storage_quantity > purchase_quantity");//销售数量大于采购数量
+			.and(i -> i.apply("storage_quantity > purchase_quantity").or()
+				.apply("storage_quantity_pj > purchase_quantity_pj"));//销售数量大于采购数量
 		List<Order> orderList = orderService.list(lambdaQueryWrapper);
 		return R.data(orderList);
 	}
@@ -1334,17 +1335,18 @@ public class ExportOrderController extends BladeController {
 		lambdaQueryWrapper.eq(OrderItems::getTenantId, SecureUtil.getTenantId());//租户id
 		lambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0);//订单是否有效
 		lambdaQueryWrapper.eq(OrderItems::getBillType, OrderTypeEnum.SALES.getType());//订单类型
-		if (ObjectUtils.isNotNull(orderItems.getPid())){
+		if (ObjectUtils.isNotNull(orderItems.getPid())) {
 			//主表id
 			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(orderItems.getPid()), OrderItems::getPid, orderItems.getPid());
-		}else{
-			if (ObjectUtils.isNotEmpty(orderItems.getShowAll()) && orderItems.getShowAll() == 0){
+		} else {
+			if (ObjectUtils.isNotEmpty(orderItems.getShowAll()) && orderItems.getShowAll() == 0) {
 				LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
 				orderLambdaQueryWrapper.eq(Order::getIsDeleted, 0)
 					.eq(Order::getTenantId, AuthUtil.getTenantId())
 					.eq(Order::getBillType, OrderTypeEnum.SALES.getType())
 					.eq(Order::getTradeType, OrderTypeEnum.EXPORT.getType())
-					.apply("storage_quantity > purchase_quantity");//销售数量大于采购数量
+					.and(i -> i.apply("storage_quantity > purchase_quantity").or()
+						.apply("storage_quantity_pj > purchase_quantity_pj"));//销售数量大于采购数量
 				List<Order> orderList = orderService.list(orderLambdaQueryWrapper);
 				List<Long> orderId = orderList.stream().map(Order::getId).collect(Collectors.toList());
 				//主表id
@@ -1362,16 +1364,16 @@ public class ExportOrderController extends BladeController {
 		}
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(orderItems.getCorpId()), OrderItems::getCorpId, orderItems.getCorpId());//供应商
 		//0代表不显示全部
-		if(ObjectUtils.isNotEmpty(orderItems.getShowAll()) && orderItems.getShowAll() == 0) {
+		if (ObjectUtils.isNotEmpty(orderItems.getShowAll()) && orderItems.getShowAll() == 0) {
 			//采购状态
 			lambdaQueryWrapper.eq(OrderItems::getFudaPurchaseStatus, "待采购");
 			//销售数量大于采购数量
 			lambdaQueryWrapper.apply("order_quantity > purchase_quantity");
-		}else{
+		} else {
 			//采购状态
 			lambdaQueryWrapper.ne(OrderItems::getFudaPurchaseStatus, "待采购");
 			//销售数量大于采购数量
-			lambdaQueryWrapper.ne(OrderItems::getPurchaseQuantity,new BigDecimal("0.00"));
+			lambdaQueryWrapper.ne(OrderItems::getPurchaseQuantity, new BigDecimal("0.00"));
 		}
 		lambdaQueryWrapper.orderByAsc(OrderItems::getSort);
 		List<OrderItems> pages = orderItemsService.list(lambdaQueryWrapper);
@@ -1403,41 +1405,53 @@ public class ExportOrderController extends BladeController {
 				orderItems_.setAmount(orderItems_.getPrice().multiply(orderItems_.getActualQuantity()));
 			}
 			orderItemsList.add(orderItems_);
-			LambdaQueryWrapper<OrderParts> orderPartsLambdaQueryWrapper = new LambdaQueryWrapper<>();
-			orderPartsLambdaQueryWrapper.eq(OrderParts::getIsDeleted, 0)
-				.eq(OrderParts::getTenantId, AuthUtil.getTenantId())
-				.eq(OrderParts::getPid, orderItems_.getId());
-			List<OrderParts> orderPartsList = orderPartsService.list(orderPartsLambdaQueryWrapper);
-			for (OrderParts orderParts : orderPartsList) {
-				OrderItems orderItems1 = new OrderItems();
-				orderItems1.setId(orderParts.getId());
-				orderItems1.setBillNo(orderItems_.getBillNo());
-				orderItems1.setBusinesDate(orderItems_.getBusinesDate());
-				orderItems1.setPlannedDeliveryDate(orderItems_.getPlannedDeliveryDate());
-				orderItems1.setCarry(orderItems_.getCarry());
-				orderItems1.setItemId(orderParts.getGoodId());
-				orderItems1.setCname(orderParts.getGoodName());
-				orderItems1.setPurchaseQuantity(orderParts.getPurchasesNumber());
-				orderItems1.setOrderQuantity(orderParts.getGoodNumber());
-
-				if (ObjectUtils.isNotNull(orderParts.getPurchasesNumber())) {
-					orderItems1.setActualQuantity(orderParts.getGoodNumber().subtract(orderParts.getPurchasesNumber()));
-				} else {
-					orderItems1.setActualQuantity(orderParts.getGoodNumber());
-				}
-				if (ObjectUtils.isNotNull(orderParts.getPrice())) {
-					orderItems1.setPrice(orderParts.getPrice());
-					orderItems1.setAmount(orderParts.getPrice().multiply(orderItems1.getActualQuantity()));
-				} else {
-					orderItems1.setPrice(orderParts.getPrice());
-					orderItems1.setAmount(orderParts.getPrice().multiply(orderItems1.getActualQuantity()));
-				}
+		}
+		LambdaQueryWrapper<OrderParts> orderPartsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		orderPartsLambdaQueryWrapper.eq(OrderParts::getIsDeleted, 0)
+			.eq(OrderParts::getTenantId, AuthUtil.getTenantId())
+			.eq(OrderParts::getSrcPid, orderItems.getPid());
+		//0代表不显示全部
+		if (ObjectUtils.isNotEmpty(orderItems.getShowAll()) && orderItems.getShowAll() == 0) {
+			orderPartsLambdaQueryWrapper.apply("good_number > purchases_number");
+		} else {
+			orderPartsLambdaQueryWrapper.ne(OrderParts::getPurchasesNumber, new BigDecimal("0.00"));
+		}
+		List<OrderParts> orderPartsList = orderPartsService.list(orderPartsLambdaQueryWrapper);
+		List<OrderItems> orderItemsList1 = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
+			.eq(OrderItems::getIsDeleted, 0)
+			.eq(OrderItems::getPid, orderItems.getPid()));
+		for (OrderParts orderParts : orderPartsList) {
+			OrderItems orderItems1 = new OrderItems();
+			orderItems1.setDetailType("PJ");
+			orderItems1.setId(orderParts.getPid());
+			if (orderItemsList1.size() > 0) {
+				orderItems1.setBillNo(orderItemsList1.get(0).getBillNo());
+				orderItems1.setBusinesDate(orderItemsList1.get(0).getBusinesDate());
+				orderItems1.setPlannedDeliveryDate(orderItemsList1.get(0).getPlannedDeliveryDate());
+				orderItems1.setCarry(orderItemsList1.get(0).getCarry());
+			}
+			orderItems1.setItemId(orderParts.getGoodId());
+			orderItems1.setCname(orderParts.getGoodName());
+			orderItems1.setPurchaseQuantity(orderParts.getPurchasesNumber());
+			orderItems1.setOrderQuantity(orderParts.getGoodNumber());
 
-				orderItems1.setPriceCategory(orderParts.getGoodTypeName());
-				orderItems1.setEname(orderParts.getEname());
-				orderItems1.setPartsCost(orderParts.getPartsCost());
-				orderItemsList.add(orderItems1);
+			if (ObjectUtils.isNotNull(orderParts.getPurchasesNumber())) {
+				orderItems1.setActualQuantity(orderParts.getGoodNumber().subtract(orderParts.getPurchasesNumber()));
+			} else {
+				orderItems1.setActualQuantity(orderParts.getGoodNumber());
+			}
+			if (ObjectUtils.isNotNull(orderParts.getPrice())) {
+				orderItems1.setPrice(orderParts.getPrice());
+				orderItems1.setAmount(orderParts.getPrice().multiply(orderItems1.getActualQuantity()));
+			} else {
+				orderItems1.setPrice(orderParts.getPrice());
+				orderItems1.setAmount(orderParts.getPrice().multiply(orderItems1.getActualQuantity()));
 			}
+
+			orderItems1.setPriceCategory(orderParts.getGoodTypeName());
+			orderItems1.setEname(orderParts.getEname());
+			orderItems1.setPartsCost(orderParts.getPartsCost());
+			orderItemsList.add(orderItems1);
 		}
 		return R.data(orderItemsList);
 	}
@@ -1465,7 +1479,7 @@ public class ExportOrderController extends BladeController {
 		}
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(orderItems.getCorpId()), OrderItems::getCorpId, orderItems.getCorpId());//供应商
 
-		if(ObjectUtils.isNotEmpty(orderItems.getShowAll()) && orderItems.getShowAll() == 0) {//0代表不显示全部
+		if (ObjectUtils.isNotEmpty(orderItems.getShowAll()) && orderItems.getShowAll() == 0) {//0代表不显示全部
 			lambdaQueryWrapper.eq(OrderItems::getFudaPurchaseStatus, "待采购");//采购状态
 			lambdaQueryWrapper.apply("order_quantity > purchase_quantity");//销售数量大于采购数量
 		}
@@ -1499,29 +1513,40 @@ public class ExportOrderController extends BladeController {
 				orderItems_.setAmount(orderItems_.getPrice().multiply(orderItems_.getActualQuantity()));
 			}
 			orderItemsList.add(orderItems_);
-			LambdaQueryWrapper<OrderParts> orderPartsLambdaQueryWrapper = new LambdaQueryWrapper<>();
-			orderPartsLambdaQueryWrapper.eq(OrderParts::getIsDeleted, 0)
-				.eq(OrderParts::getTenantId, AuthUtil.getTenantId())
-				.eq(OrderParts::getPid, orderItems_.getId());
-			List<OrderParts> orderPartsList = orderPartsService.list(orderPartsLambdaQueryWrapper);
-			for (OrderParts orderParts : orderPartsList) {
-				OrderItems orderItems1 = new OrderItems();
-				orderItems1.setId(orderParts.getId());
-				orderItems1.setBillNo(orderItems_.getBillNo());
-				orderItems1.setBusinesDate(orderItems_.getBusinesDate());
-				orderItems1.setPlannedDeliveryDate(orderItems_.getPlannedDeliveryDate());
-				orderItems1.setCarry(orderItems_.getCarry());
-				orderItems1.setItemId(orderParts.getGoodId());
-				orderItems1.setCname(orderParts.getGoodName());
-				orderItems1.setPrice(orderParts.getPrice());
-				orderItems1.setPurchaseQuantity(orderParts.getPurchasesNumber());
-				orderItems1.setOrderQuantity(orderParts.getGoodNumber());
-				orderItems1.setAmount(orderParts.getAmout());
-				orderItems1.setPriceCategory(orderParts.getGoodTypeName());
-				orderItems1.setEname(orderParts.getEname());
-				orderItems1.setPartsCost(orderParts.getPartsCost());
-				orderItemsList.add(orderItems1);
+		}
+		LambdaQueryWrapper<OrderParts> orderPartsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		orderPartsLambdaQueryWrapper.eq(OrderParts::getIsDeleted, 0)
+			.eq(OrderParts::getTenantId, AuthUtil.getTenantId())
+			.eq(OrderParts::getPid, orderItems.getId());
+		//0代表不显示全部
+		if (ObjectUtils.isNotEmpty(orderItems.getShowAll()) && orderItems.getShowAll() == 0) {
+			orderPartsLambdaQueryWrapper.apply("good_number > purchases_number");
+		} else {
+			orderPartsLambdaQueryWrapper.ne(OrderParts::getPurchasesNumber, new BigDecimal("0.00"));
+		}
+		List<OrderParts> orderPartsList = orderPartsService.list(orderPartsLambdaQueryWrapper);
+		List<OrderItems> orderItemsList1 = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
+			.eq(OrderItems::getIsDeleted, 0)
+			.eq(OrderItems::getPid, orderItems.getPid()));
+		for (OrderParts orderParts : orderPartsList) {
+			OrderItems orderItems1 = new OrderItems();
+			orderItems1.setId(orderParts.getId());
+			if (orderItemsList1.size() > 0) {
+				orderItems1.setBillNo(orderItemsList1.get(0).getBillNo());
+				orderItems1.setBusinesDate(orderItemsList1.get(0).getBusinesDate());
+				orderItems1.setPlannedDeliveryDate(orderItemsList1.get(0).getPlannedDeliveryDate());
+				orderItems1.setCarry(orderItemsList1.get(0).getCarry());
 			}
+			orderItems1.setItemId(orderParts.getGoodId());
+			orderItems1.setCname(orderParts.getGoodName());
+			orderItems1.setPrice(orderParts.getPrice());
+			orderItems1.setPurchaseQuantity(orderParts.getPurchasesNumber());
+			orderItems1.setOrderQuantity(orderParts.getGoodNumber());
+			orderItems1.setAmount(orderParts.getAmout());
+			orderItems1.setPriceCategory(orderParts.getGoodTypeName());
+			orderItems1.setEname(orderParts.getEname());
+			orderItems1.setPartsCost(orderParts.getPartsCost());
+			orderItemsList.add(orderItems1);
 		}
 		List<ProcurementTasksExcel> excelList = BeanUtil.copy(orderItemsList, ProcurementTasksExcel.class);
 		ExcelUtil.export(response, "采购任务", "采购任务", excelList, ProcurementTasksExcel.class);
@@ -1629,7 +1654,7 @@ public class ExportOrderController extends BladeController {
 		order.setTenantId(SecureUtil.getTenantId());
 		Order detail = orderService.getOrderMessage(order);
 		Order order1 = new Order();
-		BeanUtil.copyProperties(detail,order1);
+		BeanUtil.copyProperties(detail, order1);
 		order1.setId(null);
 		order1.setSysNo(null);
 		order1.setOrderNo(null);

+ 2 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -110,6 +110,8 @@
         <result column="corp_debt" property="corpDebt"/>
         <result column="num_to_english" property="numToEnglish"/>
         <result column="generate" property="generate"/>
+        <result column="storage_quantity_pj" property="storageQuantityPj"/>
+        <result column="purchase_quantity_pj" property="purchaseQuantityPj"/>
     </resultMap>
 
 

+ 27 - 9
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -432,6 +432,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				item.setBusinesDate(order.getBusinesDate());
 				item.setPlannedDeliveryDate(order.getPlannedDeliveryDate());
 				item.setCarry(order.getBuyerName());
+				item.setDetailType("MX");
 				if (item.getId() == null) {
 					item.setTenantId(SecureUtil.getTenantId());
 					item.setCreateUser(SecureUtil.getUserId());
@@ -591,14 +592,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					parts.setTenantId(SecureUtil.getTenantId());
 					parts.setCreateTime(new Date());
 					parts.setCreateUser(SecureUtil.getUserId());
-					parts.setPid(itemId);
-					parts.setSrcPid(orderId);
+					parts.setPid(orderId);
+					parts.setSrcPid(itemId);
 					orderPartsMapper.insert(parts);
 				} else {
 					parts.setUpdateTime(new Date());
 					parts.setUpdateUser(SecureUtil.getUserId());
-					parts.setPid(itemId);
-					parts.setSrcPid(orderId);
+					parts.setPid(orderId);
+					parts.setSrcPid(itemId);
 					orderPartsMapper.updateById(parts);
 				}
 			});
@@ -1195,8 +1196,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
 
 				//从缓存中获得库存
-				redisClient.basicData("all");
-				List<StockGoods> stockGoodsList = castToList(redisTemplate.opsForValue().get("stockGoods"), StockGoods.class);
+//				redisClient.basicData("all");
+//				List<StockGoods> stockGoodsList = castToList(redisTemplate.opsForValue().get("stockGoods"), StockGoods.class);
+				List<StockGoods> stockGoodsList = stockGoodsClient.selectStockGoodsAll();
 				List<StockGoods> stockGoods = new ArrayList<>();
 				if (CollectionUtils.isNotEmpty(orderItems)) {
 					for (OrderItems item : orderItems) {
@@ -1933,9 +1935,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
 
 				//从缓存中获得库存
-				redisClient.basicData("all");
-				List<StockGoods> stockGoodsList = castToList(redisTemplate.opsForValue().get("stockGoods"), StockGoods.class);
-
+//				redisClient.basicData("all");
+//				List<StockGoods> stockGoodsList = castToList(redisTemplate.opsForValue().get("stockGoods"), StockGoods.class);
+				List<StockGoods> stockGoodsList = stockGoodsClient.selectStockGoodsAll();
 				if (CollectionUtils.isNotEmpty(orderItems)) {
 					List<StockGoods> stockGoods = new ArrayList<>();
 					StockGoods oneStock = null;
@@ -5355,6 +5357,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			lambdaQueryWrapper.eq(OrderItems::getPid, selectOrder.getId()).eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getTenantId, AuthUtil.getTenantId());
 			// 获取销售单明细数据
 			List<OrderItems> orderItemsList = orderItemsMapper.selectList(lambdaQueryWrapper);
+			BigDecimal sum = new BigDecimal("0.00");
 			for (OrderItems orderItems : orderItemsList) {
 				orderItems.setFudaPurchaseStatus("待采购");
 				orderItemsMapper.updateById(orderItems);
@@ -5363,18 +5366,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				if (ObjectUtils.isNotNull(orderItems.getPartsCapValue())) {
 					JSONArray objects = JSONArray.parseArray(orderItems.getPartsCapValue());
 					List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
+					if (ObjectUtils.isNotNull(categoryConstantInfos) && categoryConstantInfos.size() > 0) {
+						sum = sum.add(categoryConstantInfos.stream().map(OrderParts::getGoodNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+					}
 					saveOrderParts(categoryConstantInfos, orderItems.getId(), "3", order.getId(), orderItems.getOrderQuantity());
 				}
 				//阀门配件
 				if (ObjectUtils.isNotNull(orderItems.getPartsValveValue())) {
 					JSONArray objects = JSONArray.parseArray(orderItems.getPartsValveValue());
 					List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
+					if (ObjectUtils.isNotNull(categoryConstantInfos) && categoryConstantInfos.size() > 0) {
+						sum = sum.add(categoryConstantInfos.stream().map(OrderParts::getGoodNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+					}
 					saveOrderParts(categoryConstantInfos, orderItems.getId(), "4", order.getId(), orderItems.getOrderQuantity());
 				}
 			}
 			selectOrder.setProductionScheduling("待采购");
 			selectOrder.setOrderStatus("待采购");
 			selectOrder.setProductionSchedulingDate(new Date());
+			selectOrder.setStorageQuantityPj(sum);
 			baseMapper.updateById(selectOrder);
 			//循环发送消息
 			Message sendMessage = new Message();
@@ -5537,6 +5547,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					orderListAll.add(order);
 				}
 			} else {
+				order = baseMapper.selectById(orderItems.getPid());
 				if (ObjectUtils.isNotNull(order)) {
 					OrderItems orderItems_ = new OrderItems();
 					BeanUtil.copyProperties(items, orderItems_);
@@ -5690,12 +5701,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				Order order1 = baseMapper.selectById(pid);
 				BigDecimal purchaseQuantity = orderItemsList.stream().filter(e -> e.getSrcId().equals(pid) && "MX".equals(e.getDetailType()))
 					.map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+				BigDecimal purchaseQuantityPj = orderItemsList.stream().filter(e -> e.getSrcId().equals(pid) && "PJ".equals(e.getDetailType()))
+					.map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
 				if (ObjectUtils.isNotNull(order1)) {
 					if (1 == order.getPurchaseStatusType()) {
 						order1.setProductionScheduling("排产中");
 						order1.setOrderStatus("排产中");
 						order1.setProductionSchedulingDate(order.getProductionSchedulingDate());
 						order1.setPurchaseQuantity(order1.getPurchaseQuantity().add(purchaseQuantity));
+						order1.setPurchaseQuantityPj(order1.getPurchaseQuantityPj().add(purchaseQuantityPj));
 						deliveryClient.saveDeliveryData(order1.getId(), order1.getOrderNo(), "排产中");
 					} else if (2 == order.getPurchaseStatusType()) {
 						order1.setProductionScheduling("预计货好");
@@ -5838,11 +5853,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				Order order1 = baseMapper.selectById(pid);
 				BigDecimal purchaseQuantity = orderItemsList.stream().filter(e -> e.getSrcId().equals(pid) && "MX".equals(e.getDetailType()))
 					.map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+				BigDecimal purchaseQuantityPj = orderItemsList.stream().filter(e -> e.getSrcId().equals(pid) && "PJ".equals(e.getDetailType()))
+					.map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
 				if (ObjectUtils.isNotNull(order1)) {
 					order1.setProductionScheduling("待采购");
 					order1.setOrderStatus("待采购");
 					order1.setProductionSchedulingDate(null);
 					order1.setPurchaseQuantity(order1.getPurchaseQuantity().subtract(purchaseQuantity));
+					order1.setPurchaseQuantityPj(order1.getPurchaseQuantityPj().subtract(purchaseQuantityPj));
 					baseMapper.updateById(order1);
 					deliveryClient.saveDeliveryData(order1.getId(), order1.getOrderNo(), "待采购");
 				}

+ 36 - 20
blade-service/blade-stock/src/main/java/org/springblade/stock/config/MyBatisPlusConfig.java

@@ -1,46 +1,62 @@
 package org.springblade.stock.config;
 
-import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
-import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
-import net.sf.jsqlparser.expression.Expression;
-import net.sf.jsqlparser.expression.StringValue;
-import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.Func;
+import org.springblade.core.mp.config.MybatisPlusConfiguration;
+import org.springblade.core.mp.intercept.QueryInterceptor;
+import org.springblade.core.mp.plugins.BladePaginationInterceptor;
+import org.springblade.core.mp.props.MybatisPlusProperties;
+import org.springblade.core.tool.utils.ObjectUtil;
+import org.springframework.beans.factory.ObjectProvider;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.core.annotation.AnnotationAwareOrderComparator;
 
 /**
  * @author :jixinyuan
  * @date : 2023/7/4
  */
 @Configuration
-public class MyBatisPlusConfig {
+public class MyBatisPlusConfig extends MybatisPlusConfiguration {
 
 
-	@Bean
+	/*@Bean
+	@ConditionalOnMissingBean({MybatisPlusInterceptor.class})
 	public MybatisPlusInterceptor MybatisPlusInterceptor() {
 		MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
-		TenantLineHandler tenantLineHandler = new TenantLineHandler() {
-			@Override
-			public Expression getTenantId() {
-				return new StringValue(Func.toStr(AuthUtil.getTenantId(), "000000"));
-			}
-		};
-		mybatisPlusInterceptor.addInnerInterceptor(new TenantLineInnerInterceptor(tenantLineHandler));//自动填充租户插件
+		mybatisPlusInterceptor.addInnerInterceptor(tenantLineInnerInterceptor());//自动填充租户插件
 		mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());//乐观锁插件
 		mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//自动分页插件
 		mybatisPlusInterceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());//防止全表更新或删除
 		return mybatisPlusInterceptor;
+	}*/
+
+	@Bean
+	public MybatisPlusProperties mybatisPlusProperties() {
+		return  new MybatisPlusProperties();
 	}
 
 	@Bean
-	public ConfigurationCustomizer configurationCustomizer() {
-		return configuration -> configuration.setUseDeprecatedExecutor(false);
+	@ConditionalOnMissingBean({MybatisPlusInterceptor.class})
+	public MybatisPlusInterceptor mybatisPlusInterceptor(ObjectProvider<QueryInterceptor[]> queryInterceptors, TenantLineInnerInterceptor tenantLineInnerInterceptor) {
+		MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+		if (this.mybatisPlusProperties().getTenantMode()) {
+			interceptor.addInnerInterceptor(tenantLineInnerInterceptor);
+		}
+		interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
+		BladePaginationInterceptor paginationInterceptor = new BladePaginationInterceptor();
+		QueryInterceptor[] queryInterceptorArray = (QueryInterceptor[]) queryInterceptors.getIfAvailable();
+		if (ObjectUtil.isNotEmpty(queryInterceptorArray)) {
+			AnnotationAwareOrderComparator.sort(queryInterceptorArray);
+			paginationInterceptor.setQueryInterceptors(queryInterceptorArray);
+		}
+
+		paginationInterceptor.setMaxLimit(this.mybatisPlusProperties().getPageLimit());
+		paginationInterceptor.setOverflow(this.mybatisPlusProperties().getOverflow());
+		paginationInterceptor.setOptimizeJoin(this.mybatisPlusProperties().getOptimizeJoin());
+		interceptor.addInnerInterceptor(paginationInterceptor);
+		return interceptor;
 	}
 }

+ 1 - 40
blade-service/blade-stock/src/main/java/org/springblade/stock/feign/StockGoodsClient.java

@@ -388,46 +388,7 @@ public class StockGoodsClient implements IStockGoodsClient {
 	@Override
 	@PostMapping(POST_LIST_STOCK_BY_CONDITIONS)
 	public List<StockGoods> postListStockByCondition(StockGoods stockGoods) {
-		LambdaQueryWrapper<StockGoods> stockGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>();
-		stockGoodsLambdaQueryWrapper
-			.eq(stockGoods.getStorageId() != null, StockGoods::getStorageId, stockGoods.getStorageId())
-			.eq(stockGoods.getCorpId() != null, StockGoods::getCorpId, stockGoods.getCorpId())
-			.eq(stockGoods.getGoodsId() != null, StockGoods::getGoodsId, stockGoods.getGoodsId())
-			.eq(StringUtils.isNotBlank(stockGoods.getTradeType()), StockGoods::getTradeType, stockGoods.getTradeType())
-			.eq(StringUtils.isNotBlank(stockGoods.getItemType()), StockGoods::getItemType, stockGoods.getItemType())
-			.eq(StringUtils.isNotBlank(stockGoods.getContractNumber()), StockGoods::getContractNumber, stockGoods.getContractNumber())
-			.eq(StringUtils.isNotBlank(stockGoods.getBillNo()), StockGoods::getBillNo, stockGoods.getBillNo())
-			.eq(StringUtils.isNotBlank(stockGoods.getCntrNo()), StockGoods::getCntrNo, stockGoods.getCntrNo())
-			.eq(StockGoods::getIsDeleted, 0);
-		if (ObjectUtil.isNotEmpty(stockGoods.getTenantId()) && stockGoods.getTenantId().equals("681169")) {
-			stockGoodsLambdaQueryWrapper.eq(StockGoods::getTenantId, stockGoods.getTenantId());
-		} else {
-			if (ObjectUtils.isNotNull(sysClient.getParamService("synchronous"))
-				&& "1".equals(sysClient.getParamService("synchronous"))) {
-				stockGoodsLambdaQueryWrapper.eq(StockGoods::getTenantId, stockGoods.getTenantId());
-			} else {
-				stockGoodsLambdaQueryWrapper.eq(StockGoods::getTenantId, AuthUtil.getTenantId());
-			}
-		}
-
-		List<StockGoods> goodsList = stockGoodsService.list(stockGoodsLambdaQueryWrapper);
-		if (CollectionUtils.isNotEmpty(goodsList)) {
-			goodsList.forEach(e -> {
-				//获取仓库信息
-				if (e.getStorageId() != null) {
-					//仓库信息
-					StorageDesc storageDesc = iStorageClient.findById(e.getStorageId());
-					if (storageDesc != null) {
-						e.setStockName(storageDesc.getCname());
-					}
-
-				}
-			});
-
-			return goodsList;
-		} else {
-			return Collections.EMPTY_LIST;
-		}
+		return stockGoodsService.postListStockByCondition(stockGoods);
 	}
 
 	@Override

+ 2 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/mapper/StockGoodsMapper.java

@@ -17,9 +17,11 @@
 package org.springblade.stock.mapper;
 
 import com.baomidou.mybatisplus.annotation.SqlParser;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
+import org.springblade.core.tenant.annotation.TenantIgnore;
 import org.springblade.stock.entity.StockGoods;
 import org.springblade.stock.vo.AppStockPartsVO;
 import org.springblade.stock.vo.AppStockVO;

+ 2 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/service/IStockGoodsService.java

@@ -159,4 +159,6 @@ public interface IStockGoodsService extends IService<StockGoods> {
 	 * 新增或修改(批量)
 	 */
 	R saveOrUpdateBatch(List<StockGoods> stockGoods);
+
+	List<StockGoods> postListStockByCondition(StockGoods stockGoods);
 }

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

@@ -39,6 +39,7 @@ import org.springblade.core.tenant.annotation.TenantIgnore;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.purchase.sales.feign.IOrderDescClient;
 import org.springblade.purchase.sales.vo.OrderVO;
 import org.springblade.stock.entity.StockGoods;
@@ -48,12 +49,14 @@ import org.springblade.stock.service.IStockGoodsService;
 import org.springblade.stock.vo.AppStockPartsVO;
 import org.springblade.stock.vo.AppStockVO;
 import org.springblade.stock.vo.StockGoodsVO;
+import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -85,6 +88,8 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 
 	private final IOrderDescClient orderDescClient;
 
+	private final ISysClient sysClient;
+
 	@Override
 	public IPage<StockGoodsVO> selectStockGoodsPage(IPage<StockGoodsVO> page, StockGoodsVO stockGoods) {
 		return page.setRecords(baseMapper.selectStockGoodsPage(page, stockGoods));
@@ -428,16 +433,17 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	@Transactional(rollbackFor = Exception.class)
 	public R updateByIdNew(StockGoods stockGoods) {
+		int version = baseMapper.selectById(stockGoods.getId()).getVersion();
 		int count = baseMapper.update(stockGoods, new LambdaQueryWrapper<StockGoods>()
 			.eq(StockGoods::getId, stockGoods.getId())
-			.eq(StockGoods::getVersion, stockGoods.getVersion())
+			.eq(StockGoods::getVersion, version)
 			.setEntity(new StockGoods()));
 		if (count == 0) {
-			return R.fail(stockGoods.getCode() + "正在更新库存,请稍后再试");
+			return R.fail(stockGoods.getCode() + "系统正忙,请稍后再试");
 		} else {
 			StockGoods stockGoods1 = new StockGoods();
 			stockGoods1.setId(stockGoods.getId());
-			stockGoods1.setVersion(stockGoods.getVersion() + 1);
+			stockGoods1.setVersion(version + 1);
 			baseMapper.updateById(stockGoods1);
 			return R.success("操作成功");
 		}
@@ -450,7 +456,7 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 		for (StockGoods item : stockGoods) {
 			R status = this.updateByIdNew(item);
 			if (!status.isSuccess()) {
-				return R.fail(item.getCode() + "正在更新库存,请稍后再试");
+				return R.fail(item.getCode() + "系统正忙,请稍后再试");
 			}
 		}
 		return R.success("操作成功");
@@ -466,11 +472,54 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 			} else {
 				R status = this.updateByIdNew(item);
 				if (!status.isSuccess()) {
-					return R.fail(item.getCode() + "正在更新库存,请稍后再试");
+					return R.fail(item.getCode() + "系统正忙,请稍后再试");
 				}
 			}
 		}
 		return R.success("操作成功");
 	}
 
+	@Override
+	public List<StockGoods> postListStockByCondition(StockGoods stockGoods) {
+		LambdaQueryWrapper<StockGoods> stockGoodsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		stockGoodsLambdaQueryWrapper
+			.eq(stockGoods.getStorageId() != null, StockGoods::getStorageId, stockGoods.getStorageId())
+			.eq(stockGoods.getCorpId() != null, StockGoods::getCorpId, stockGoods.getCorpId())
+			.eq(stockGoods.getGoodsId() != null, StockGoods::getGoodsId, stockGoods.getGoodsId())
+			.eq(StringUtils.isNotBlank(stockGoods.getTradeType()), StockGoods::getTradeType, stockGoods.getTradeType())
+			.eq(StringUtils.isNotBlank(stockGoods.getItemType()), StockGoods::getItemType, stockGoods.getItemType())
+			.eq(StringUtils.isNotBlank(stockGoods.getContractNumber()), StockGoods::getContractNumber, stockGoods.getContractNumber())
+			.eq(StringUtils.isNotBlank(stockGoods.getBillNo()), StockGoods::getBillNo, stockGoods.getBillNo())
+			.eq(StringUtils.isNotBlank(stockGoods.getCntrNo()), StockGoods::getCntrNo, stockGoods.getCntrNo())
+			.eq(StockGoods::getIsDeleted, 0);
+		if (ObjectUtil.isNotEmpty(stockGoods.getTenantId()) && stockGoods.getTenantId().equals("681169")) {
+			stockGoodsLambdaQueryWrapper.eq(StockGoods::getTenantId, stockGoods.getTenantId());
+		} else {
+			if (ObjectUtils.isNotNull(sysClient.getParamService("synchronous"))
+				&& "1".equals(sysClient.getParamService("synchronous"))) {
+				stockGoodsLambdaQueryWrapper.eq(StockGoods::getTenantId, stockGoods.getTenantId());
+			} else {
+				stockGoodsLambdaQueryWrapper.eq(StockGoods::getTenantId, AuthUtil.getTenantId());
+			}
+		}
+		List<StockGoods> goodsList = baseMapper.selectList(stockGoodsLambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(goodsList)) {
+			goodsList.forEach(e -> {
+				//获取仓库信息
+				if (e.getStorageId() != null) {
+					//仓库信息
+					StorageDesc storageDesc = storageClient.findById(e.getStorageId());
+					if (storageDesc != null) {
+						e.setStockName(storageDesc.getCname());
+					}
+
+				}
+			});
+
+			return goodsList;
+		} else {
+			return Collections.EMPTY_LIST;
+		}
+	}
+
 }

+ 5 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml

@@ -104,6 +104,11 @@
         <foreach item="id" collection="users" open="(" separator="," close=")">
             #{id}
         </foreach>
+        GROUP BY FIELD(
+            id,<foreach item="id" collection="users" open="" separator="," close="">
+                #{id}
+            </foreach>
+            )
     </select>
 
 </mapper>

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

@@ -1872,7 +1872,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		List<JdyTool.AccountGroup> list = new ArrayList<>();
 		List<JdyTool.AccountGroups> groupsList = getAccountGroup.getData();
 		if (!CollectionUtils.isNotEmpty(groupsList)) {
-			throw new SecurityException("操作失败,暂无账套信息");
+			throw new RuntimeException("操作失败,暂无账套信息");
 		}
 		getAccountGroup.getData().forEach(e -> {
 			list.addAll(e.getAccountGroups());
@@ -1893,7 +1893,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			.eq(JdTenant::getAccountName, accountName);
 		JdTenant tenant = this.getOne(jdTenantLambdaQueryWrapper, false);
 		if (tenant == null) {
-			throw new SecurityException("未检测到此租户的账套配置信息");
+			throw new RuntimeException("未检测到此租户的账套配置信息");
 		}
 		//获取token
 		String token = this.getAccountGroupRequest();
@@ -1909,7 +1909,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 		List<JdyTool.AccountGroup> list = new ArrayList<>();
 		if (!CollectionUtils.isNotEmpty(getAccountGroup.getData())) {
-			throw new SecurityException("操作失败,暂无账套信息");
+			throw new RuntimeException("操作失败,暂无账套信息");
 		}
 		//获取此账号下,全部账套
 		getAccountGroup.getData().forEach(e -> {
@@ -1918,7 +1918,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		//匹配账套
 		List<JdyTool.AccountGroup> groupList = list.stream().filter(e -> e.getAccountName().equals(accountName)).collect(Collectors.toList());
 		if (!CollectionUtils.isNotEmpty(groupList)) {
-			throw new SecurityException("未找到: " + accountName + " 的套账信息");
+			throw new RuntimeException("未找到: " + accountName + " 的套账信息");
 		}
 		JdyTool.AccountGroup group = groupList.get(0);
 		String accountId = group.getAccountId();
@@ -1936,7 +1936,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			.eq(JdTenant::getAccountName, accountName);
 		JdTenant tenant = this.getOne(jdTenantLambdaQueryWrapper, false);
 		if (tenant == null) {
-			throw new SecurityException("未检测到此租户的账套配置信息");
+			throw new RuntimeException("未检测到此租户的账套配置信息");
 		}
 		//获取token
 		String token = this.getAccountGroupRequest();
@@ -1952,7 +1952,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 		List<JdyTool.AccountGroup> list = new ArrayList<>();
 		if (!CollectionUtils.isNotEmpty(getAccountGroup.getData())) {
-			throw new SecurityException("操作失败,暂无账套信息");
+			throw new RuntimeException("操作失败,暂无账套信息");
 		}
 		//获取此账号下,全部账套
 		getAccountGroup.getData().forEach(e -> {
@@ -1961,7 +1961,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		//匹配账套
 		List<JdyTool.AccountGroup> groupList = list.stream().filter(e -> e.getAccountName().equals(accountName)).collect(Collectors.toList());
 		if (!CollectionUtils.isNotEmpty(groupList)) {
-			throw new SecurityException("未找到: " + accountName + " 的套账信息");
+			throw new RuntimeException("未找到: " + accountName + " 的套账信息");
 		}
 		JdyTool.AccountGroup group = groupList.get(0);
 		String accountId = group.getAccountId();
@@ -1979,7 +1979,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			.eq(JdTenant::getAccountName, accountName);
 		JdTenant tenant = this.getOne(jdTenantLambdaQueryWrapper, false);
 		if (tenant == null) {
-			throw new SecurityException("未检测到此租户的账套配置信息");
+			throw new RuntimeException("未检测到此租户的账套配置信息");
 		}
 		//获取token
 		String token = this.getAccountGroupRequest();
@@ -1995,7 +1995,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 		List<JdyTool.AccountGroup> list = new ArrayList<>();
 		if (!CollectionUtils.isNotEmpty(getAccountGroup.getData())) {
-			throw new SecurityException("操作失败,暂无账套信息");
+			throw new RuntimeException("操作失败,暂无账套信息");
 		}
 		//获取此账号下,全部账套
 		getAccountGroup.getData().forEach(e -> {
@@ -2004,7 +2004,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		//匹配账套
 		List<JdyTool.AccountGroup> groupList = list.stream().filter(e -> e.getAccountName().equals(accountName)).collect(Collectors.toList());
 		if (!CollectionUtils.isNotEmpty(groupList)) {
-			throw new SecurityException("未找到: " + accountName + " 的套账信息");
+			throw new RuntimeException("未找到: " + accountName + " 的套账信息");
 		}
 		JdyTool.AccountGroup group = groupList.get(0);
 		String accountId = group.getAccountId();
@@ -2036,10 +2036,10 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			.eq(JdModule::getTenantId, AuthUtil.getTenantId());
 		JdModule dModule = moduleMapper.selectOne(dLambdaQueryWrapper);
 		if (dModule == null) {
-			throw new SecurityException("获取采购订单科目号失败");
+			throw new RuntimeException("获取采购订单科目号失败");
 		}
 		if (dModule.getProjectCode() == null) {
-			throw new SecurityException("科目编码为空");
+			throw new RuntimeException("科目编码为空");
 		}
 		d.setExplanation(dModule.getAbstractStatic() + "-" + corpName);
 		d.setAccount_number(dModule.getProjectCode());
@@ -2059,7 +2059,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			.eq(JdModule::getTenantId, AuthUtil.getTenantId());
 		JdModule cModule = moduleMapper.selectOne(cLambdaQueryWrapper);
 		if (cModule == null) {
-			throw new SecurityException("获取采购订单科目号失败");
+			throw new RuntimeException("获取采购订单科目号失败");
 		}
 		if (subjectNumber != null && !subjectNumber.equals("")) {
 			cModule.setProjectCode(subjectNumber);
@@ -2124,7 +2124,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			String saveUrl = "http://api.kingdee.com/jdy/gl/voucher_save?access_token=" + token;
 			return JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
 		} catch (Exception exception) {
-			throw new SecurityException("操作失败,保存金蝶错误:" + exception.getMessage());
+			throw new RuntimeException("操作失败,保存金蝶错误:" + exception.getMessage());
 		}
 	}
 
@@ -2148,12 +2148,12 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			.eq(JdModule::getTenantId, AuthUtil.getTenantId());
 		JdModule dModule = moduleMapper.selectOne(dLambdaQueryWrapper);
 		if (dModule == null) {
-			throw new SecurityException("获取销售订单科目号失败");
+			throw new RuntimeException("获取销售订单科目号失败");
 		}
 		if (null != subjectNumber && !subjectNumber.equals("")) {
 			dModule.setProjectCode(subjectNumber);
 		} else {
-			throw new SecurityException("科目编码为空");
+			throw new RuntimeException("科目编码为空");
 		}
 		d.setExplanation(dModule.getAbstractStatic() + "-" + corpName);
 		d.setAccount_number(dModule.getProjectCode());
@@ -2174,7 +2174,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			.eq(JdModule::getTenantId, AuthUtil.getTenantId());
 		JdModule cModule = moduleMapper.selectOne(cLambdaQueryWrapper);
 		if (cModule == null) {
-			throw new SecurityException("获取销售订单科目号失败");
+			throw new RuntimeException("获取销售订单科目号失败");
 		}
 		c.setExplanation(cModule.getAbstractStatic() + "-" + corpName);
 		c.setAccount_number(cModule.getProjectCode());
@@ -2220,7 +2220,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			String saveUrl = "http://api.kingdee.com/jdy/gl/voucher_save?access_token=" + token;
 			return JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
 		} catch (Exception exception) {
-			throw new SecurityException("操作失败,保存金蝶错误:" + exception.getMessage());
+			throw new RuntimeException("操作失败,保存金蝶错误:" + exception.getMessage());
 		}
 	}
 
@@ -2291,7 +2291,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			String saveUrl = "http://api.kingdee.com/jdy/gl/voucher_save?access_token=" + token;
 			return JdyTool.testSaveVoucher(token, saveUrl, accountId, groupName, jdYitems);
 		} catch (Exception exception) {
-			throw new SecurityException("操作失败,保存金蝶错误:" + exception.getMessage());
+			throw new RuntimeException("操作失败,保存金蝶错误:" + exception.getMessage());
 		}
 
 	}