浏览代码

2024年12月5日17:09:52

纪新园 1 年之前
父节点
当前提交
f12c7eeec1
共有 18 个文件被更改,包括 565 次插入191 次删除
  1. 5 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java
  2. 6 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrderItems.java
  3. 8 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java
  4. 3 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.java
  5. 12 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.xml
  6. 2 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsDescService.java
  7. 5 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java
  8. 99 59
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/AgencyOrderController.java
  9. 81 3
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java
  10. 30 16
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java
  11. 2 2
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  12. 1 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.xml
  13. 62 59
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java
  14. 2 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderItemsMapper.xml
  15. 119 6
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  16. 6 8
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/controller/ProductLaunchController.java
  17. 28 32
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java
  18. 94 2
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

+ 5 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -1870,7 +1870,11 @@ public class Bills implements Serializable {
 	 */
 	@TableField(exist = false)
 	private String to;
-
+	/**
+	 * HLCL免费箱使
+	 */
+	@TableField(exist = false)
+	private String hlclBoxenvoy;
 
 
 }

+ 6 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrderItems.java

@@ -314,6 +314,12 @@ public class PjOrderItems implements Serializable {
 	private BigDecimal primaryGoodsTotalAmount;
 
 	/**
+	 * 赎回数量
+	 */
+	@ApiModelProperty(value = "赎回数量")
+	private BigDecimal redeemNum;
+
+	/**
 	 * 返利后单价
 	 */
 	@ApiModelProperty(value = "返利后单价")

+ 8 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java

@@ -1117,6 +1117,14 @@ public class CorpsDescController extends BladeController {
 		return R.data(userList);
 	}
 
+	/**
+	 * 根据用户id查询客户详情
+	 */
+	@GetMapping("/getCorpListAll")
+	public R getCorpListAll() {
+		return R.data(corpsDescService.getCorpListAll());
+	}
+
 
 	/**
 	 * 将Object转换成List类型

+ 3 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.java

@@ -8,6 +8,7 @@ import org.springblade.client.dto.CorpsDescDto;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.vo.CorpsDescVO;
 import org.springblade.core.datascope.annotation.DataAuth;
+import org.springblade.core.tool.api.R;
 
 import java.util.List;
 import java.util.Map;
@@ -116,4 +117,6 @@ public interface CorpsDescMapper extends BaseMapper<CorpsDesc> {
 	List<CorpsDescDto> selectPartsCorpsStatistics(@Param("CorpsDesc")CorpsDescDto corpsDescDto);
 
 	List<CorpsDescVO> selectCorpsDescPageZD(IPage page, @Param("CorpsDesc") CorpsDescVO corpsDesc);
+
+    List<Map<String,Object>> getCorpListAll(@Param("tenantId")String tenantId, @Param("type")String type);
 }

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

@@ -822,4 +822,16 @@
             ORDER BY tel DESC
         </if>
     </select>
+    <select id="getCorpListAll" resultType="java.util.Map">
+        select  id   as fleetId,
+                cname      as fleetName,
+                short_name as fleetShortName
+        from basic_corps_desc
+        where
+            is_deleted = 0
+          and tenant_id =#{tenantId}
+          and corp_type =#{type}
+    </select>
+
+
 </mapper>

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

@@ -228,4 +228,6 @@ public interface ICorpsDescService extends IService<CorpsDesc> {
 	R importCorp(List<CorpsImportExcel> excelList);
 
 	R submitWeb(CorpsDesc corpsDesc);
+
+	List<Map<String,Object>> getCorpListAll();
 }

+ 5 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -1153,6 +1153,11 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 	}
 
 	@Override
+	public List<Map<String,Object>> getCorpListAll() {
+		return baseMapper.getCorpListAll(AuthUtil.getTenantId(),"CD");
+	}
+
+	@Override
 	public IPage<CorpsDescDto> selectPartsCorpsDescPage(IPage<CorpsDescDto> page, CorpsDescDto corpsDescDto) {
 		//获取客户子类别
 		if (StringUtils.isNotBlank(corpsDescDto.getCorpsTypeId())) {

+ 99 - 59
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/AgencyOrderController.java

@@ -41,6 +41,7 @@ import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -109,6 +110,7 @@ public class AgencyOrderController extends BladeController {
 			lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
 		}
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getStorageId()), Order::getStorageId, order.getStorageId());//仓库id
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getBrand()), Order::getBrand, order.getBrand());//仓库id
 		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()), Order::getBusinesDate, order.getContractStartDate());//合同日期开始
 		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractEndDate()), Order::getBusinesDate, order.getContractEndDate());//合同日期结束
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()), Order::getSrcOrderNo, order.getSrcOrderNo());//订单来源
@@ -145,43 +147,42 @@ public class AgencyOrderController extends BladeController {
 			List<Long> userIds = new ArrayList<>();
 			List<Long> corpIds = new ArrayList<>();
 			List<Long> ids = page.getRecords().stream().map(Order::getId).collect(Collectors.toList());
-			List<Long> corpId = page.getRecords().stream().map(Order::getCorpId).distinct().collect(Collectors.toList());
+			List<Long> corpId = page.getRecords().stream().map(Order::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
 			if (!corpId.isEmpty()) {
 				corpIds.addAll(corpId);
 			}
-			List<Long> belongToCorpId = page.getRecords().stream().map(Order::getBelongToCorpId).filter(toCorpId -> !corpIds.contains(toCorpId)).collect(Collectors.toList());
+			List<Long> belongToCorpId = page.getRecords().stream().map(Order::getBelongToCorpId).filter(Objects::nonNull).filter(toCorpId -> !corpIds.contains(toCorpId)).collect(Collectors.toList());
 			if (!belongToCorpId.isEmpty()) {
 				corpIds.addAll(belongToCorpId);
 			}
-			List<Long> productionPlant = page.getRecords().stream().map(Order::getProductionPlant).filter(plant -> !corpIds.contains(plant)).collect(Collectors.toList());
+			List<Long> productionPlant = page.getRecords().stream().map(Order::getProductionPlant).filter(Objects::nonNull).filter(plant -> !corpIds.contains(plant)).collect(Collectors.toList());
 			if (!productionPlant.isEmpty()) {
 				corpIds.addAll(productionPlant);
 			}
-			List<Long> createUser = page.getRecords().stream().map(Order::getCreateUser).distinct().collect(Collectors.toList());
+			List<Long> createUser = page.getRecords().stream().map(Order::getCreateUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
 			if (!createUser.isEmpty()) {
 				userIds.addAll(createUser);
 			}
-			List<Long> updateUser = page.getRecords().stream().map(Order::getUpdateUser).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
+			List<Long> updateUser = page.getRecords().stream().map(Order::getUpdateUser).filter(Objects::nonNull).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
 			if (!updateUser.isEmpty()) {
 				userIds.addAll(updateUser);
 			}
-			String corp = "";
+			StringBuilder corp = new StringBuilder();
 			List<CorpsDesc> corpsDescList = new ArrayList<>();
-			for (Long item : corpId) {
-				corp = corp + item + ",";
+			for (Long item : corpIds) {
+				corp.append(item).append(",");
 			}
-			if (ObjectUtils.isNotNull(corp)) {
+			if (ObjectUtils.isNotNull(corp.toString())) {
 				corpsDescList = corpsDescClient.selectByCorpIds(corp.substring(0, corp.length() - 1));
 			}
-			String user = "";
+			StringBuilder user = new StringBuilder();
 			List<User> userList = new ArrayList<>();
 			for (Long item : userIds) {
-				user = user + item + ",";
+				user.append(item).append(",");
 			}
-			if (ObjectUtils.isNotNull(user)) {
+			if (ObjectUtils.isNotNull(user.toString())) {
 				userList = userClient.selectUserList(user.substring(0, user.length() - 1));
 			}
-
 			List<OrderItems> list = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
 				.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
 				.eq(OrderItems::getIsDeleted, 0)
@@ -202,10 +203,10 @@ public class AgencyOrderController extends BladeController {
 					}
 				}
 				if (!userList.isEmpty()) {
-					corpsDescList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst()
-						.ifPresent(corpsDesc -> item.setCreateUserName(corpsDesc.getCname()));
-					corpsDescList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst()
-						.ifPresent(corpsDesc -> item.setUpdateUserName(corpsDesc.getCname()));
+					userList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst()
+						.ifPresent(corpsDesc -> item.setCreateUserName(corpsDesc.getRealName()));
+					userList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst()
+						.ifPresent(corpsDesc -> item.setUpdateUserName(corpsDesc.getRealName()));
 				}
 				//获取订单明细
 				if (!list.isEmpty()) {
@@ -332,12 +333,20 @@ public class AgencyOrderController extends BladeController {
 	 * 销售获取平台代理订单明细列表
 	 */
 	@GetMapping("/getAgencyOrderItem")
-	public R<List<OrderItems>> getAgencyOrderItem(@RequestParam Long id) {
+	public R<List<OrderItems>> getAgencyOrderItem(@RequestParam(value = "id") Long id,
+												  @RequestParam(value = "code", required = false) String code,
+												  @RequestParam(value = "cname", required = false) String cname) {
 		LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(OrderItems::getTenantId, SecureUtil.getTenantId());//租户id
 		lambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0);//订单是否有效
 		lambdaQueryWrapper.eq(OrderItems::getBillType, OrderTypeEnum.AGENCY_ORDER.getType());//订单类型
 		lambdaQueryWrapper.eq(OrderItems::getPid, id);
+		if (ObjectUtils.isNotNull(code) || ObjectUtils.isNotNull(cname)) {
+			List<Long> goodsId = goodsDescClient.getGoodId(code, cname, "", "", "", "", "");
+			if (!goodsId.isEmpty()) {
+				lambdaQueryWrapper.in(OrderItems::getItemId, goodsId);
+			}
+		}
 		lambdaQueryWrapper.orderByDesc(OrderItems::getId);
 		List<OrderItems> page = orderItemsService.list(lambdaQueryWrapper);
 		StringBuilder goodsIds = new StringBuilder();
@@ -399,7 +408,8 @@ public class AgencyOrderController extends BladeController {
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()), Order::getSysNo, order.getSysNo());//系统编号
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()), Order::getCreateUser, order.getCreateUser());//制单人
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getBelongToCorpId()), Order::getBelongToCorpId, order.getBelongToCorpId());//销售公司
-		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getChargeMember()), Order::getBelongToCorpId, order.getBelongToCorpId());//业务员
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getProductionPlant()), Order::getProductionPlant, order.getProductionPlant());//销售公司
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getChargeMember()), Order::getChargeMember, order.getChargeMember());//业务员
 		if (order.getGathering() != null && order.getGathering() == 0) {
 			lambdaQueryWrapper.eq(Order::getBalanceAmount, BigDecimal.ZERO);
 		} else if (order.getGathering() != null && order.getGathering() == 1) {
@@ -407,58 +417,88 @@ public class AgencyOrderController extends BladeController {
 		}
 		lambdaQueryWrapper.orderByDesc(Order::getId);
 		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
-
-		StringBuilder corpIds = new StringBuilder();//客户拼接ids
-		StringBuilder belongToCorpIds = new StringBuilder();//销售公司ids
-		StringBuilder productionPlantIds = new StringBuilder();//生产工厂ids
-		StringBuilder createUserIds = new StringBuilder();//创建人id拼接
-
-		for (Order orders : page.getRecords()) {
-			if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
-				corpIds.append(orders.getCorpId()).append(",");
+		if (!page.getRecords().isEmpty()) {
+			List<Long> userIds = new ArrayList<>();
+			List<Long> corpIds = new ArrayList<>();
+			List<Long> ids = page.getRecords().stream().map(Order::getId).collect(Collectors.toList());
+			List<Long> corpId = page.getRecords().stream().map(Order::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			if (!corpId.isEmpty()) {
+				corpIds.addAll(corpId);
+			}
+			List<Long> belongToCorpId = page.getRecords().stream().map(Order::getBelongToCorpId).filter(Objects::nonNull).filter(toCorpId -> !corpIds.contains(toCorpId)).collect(Collectors.toList());
+			if (!belongToCorpId.isEmpty()) {
+				corpIds.addAll(belongToCorpId);
+			}
+			List<Long> productionPlant = page.getRecords().stream().map(Order::getProductionPlant).filter(Objects::nonNull).filter(plant -> !corpIds.contains(plant)).collect(Collectors.toList());
+			if (!productionPlant.isEmpty()) {
+				corpIds.addAll(productionPlant);
 			}
-			if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
-				belongToCorpIds.append(orders.getBelongToCorpId()).append(",");
+			List<Long> createUser = page.getRecords().stream().map(Order::getCreateUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			if (!createUser.isEmpty()) {
+				userIds.addAll(createUser);
+			}
+			List<Long> updateUser = page.getRecords().stream().map(Order::getUpdateUser).filter(Objects::nonNull).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
+			if (!updateUser.isEmpty()) {
+				userIds.addAll(updateUser);
 			}
-			if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
-				productionPlantIds.append(orders.getProductionPlant()).append(",");
+			StringBuilder corp = new StringBuilder();
+			List<CorpsDesc> corpsDescList = new ArrayList<>();
+			for (Long item : corpIds) {
+				corp.append(item).append(",");
 			}
-			if (ObjectUtil.isNotEmpty(orders.getCreateUser())) {
-				createUserIds.append(orders.getCreateUser()).append(",");
+			if (ObjectUtils.isNotNull(corp.toString())) {
+				corpsDescList = corpsDescClient.selectByCorpIds(corp.substring(0, corp.length() - 1));
 			}
-		}
-
-		List<CorpsDesc> corpsDescList = corpsDescClient.selectByCorpIds(corpIds.toString());
-		List<CorpsDesc> belongToCorpList = corpsDescClient.selectByCorpIds(belongToCorpIds.toString());
-		List<CorpsDesc> productionPlantList = corpsDescClient.selectByCorpIds(productionPlantIds.toString());
-		//获得创建人信息
-		List<User> createUserList = userClient.selectUserIds(createUserIds.toString());
-		if (CollectionUtils.isNotEmpty(page.getRecords())) {
-			page.getRecords().forEach(item -> {
-				if (ObjectUtil.isNotEmpty(corpsDescList)) {
-					corpsDescList.stream().filter(e -> e.getId().equals(item.getCorpId()))
-						.findFirst().ifPresent(corpsDesc -> item.setCorpsName(corpsDesc.getCname()));
-				}
-				if (item.getBelongToCorpId() != null) {
-					if (ObjectUtil.isNotEmpty(belongToCorpList)) {
-						belongToCorpList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId()))
+			StringBuilder user = new StringBuilder();
+			List<User> userList = new ArrayList<>();
+			for (Long item : userIds) {
+				user.append(item).append(",");
+			}
+			if (ObjectUtils.isNotNull(user.toString())) {
+				userList = userClient.selectUserList(user.substring(0, user.length() - 1));
+			}
+			List<OrderItems> list = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
+				.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(OrderItems::getIsDeleted, 0)
+				.in(OrderItems::getPid, ids));
+			for (Order item : page.getRecords()) {
+				if (!corpsDescList.isEmpty()) {
+					if (ObjectUtils.isNotNull(item.getCorpId())) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getCorpId()))
+							.findFirst().ifPresent(corpsDesc -> item.setCorpsName(corpsDesc.getCname()));
+					}
+					if (item.getBelongToCorpId() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId()))
 							.findFirst().ifPresent(corpsDesc -> item.setBelongToCorpName(corpsDesc.getCname()));
 					}
-				}
-				if (item.getProductionPlant() != null) {
-					if (ObjectUtil.isNotEmpty(productionPlantList)) {
-						productionPlantList.stream().filter(e -> e.getId().equals(item.getProductionPlant()))
+					if (item.getProductionPlant() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getProductionPlant()))
 							.findFirst().ifPresent(corpsDesc -> item.setProductionPlantName(corpsDesc.getCname()));
 					}
 				}
-				//制单人
-				if (item.getCreateUser() != null) {
-					if (ObjectUtil.isNotEmpty(createUserList)) {
-						createUserList.stream().filter(e -> e.getId().equals(item.getCreateUser()))
+				if (!userList.isEmpty()) {
+					//制单人
+					if (item.getCreateUser() != null) {
+						userList.stream().filter(e -> e.getId().equals(item.getCreateUser()))
 							.findFirst().ifPresent(corpsDesc -> item.setCreateUserName(corpsDesc.getName()));
 					}
+					//修改人
+					if (item.getUpdateUser() != null) {
+						userList.stream().filter(e -> e.getId().equals(item.getUpdateUser()))
+							.findFirst().ifPresent(corpsDesc -> item.setUpdateUserName(corpsDesc.getName()));
+					}
 				}
-			});
+				//获取订单明细
+				if (!list.isEmpty()) {
+					List<OrderItems> orderItemsList = list.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
+					if (CollectionUtils.isNotEmpty(orderItemsList)) {
+						item.setOrderQuantity(orderItemsList.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//数量合计
+						item.setAmount(orderItemsList.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));//销售金额
+						item.setPurchaseAmount(orderItemsList.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO, BigDecimal::add));//采购金额
+						item.setActualQuantity(orderItemsList.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//发货数量
+					}
+				}
+			}
 		}
 		return R.data(page);
 	}

+ 81 - 3
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -65,7 +65,9 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -173,8 +175,84 @@ public class OrderController extends BladeController {
 		}
 		lambdaQueryWrapper.orderByDesc(Order::getId);
 		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
-
-		String corpIds = "";//客户拼接ids
+		if (CollectionUtils.isNotEmpty(page.getRecords())) {
+			List<Long> userIds = new ArrayList<>();
+			List<Long> corpIds = new ArrayList<>();
+			List<Long> ids = page.getRecords().stream().map(Order::getId).collect(Collectors.toList());
+			List<Long> corpId = page.getRecords().stream().map(Order::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			if (!corpId.isEmpty()) {
+				corpIds.addAll(corpId);
+			}
+			List<Long> belongToCorpId = page.getRecords().stream().map(Order::getBelongToCorpId).filter(Objects::nonNull).filter(toCorpId -> !corpIds.contains(toCorpId)).collect(Collectors.toList());
+			if (!belongToCorpId.isEmpty()) {
+				corpIds.addAll(belongToCorpId);
+			}
+			List<Long> productionPlant = page.getRecords().stream().map(Order::getProductionPlant).filter(Objects::nonNull).filter(plant -> !corpIds.contains(plant)).collect(Collectors.toList());
+			if (!productionPlant.isEmpty()) {
+				corpIds.addAll(productionPlant);
+			}
+			List<Long> createUser = page.getRecords().stream().map(Order::getCreateUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			if (!createUser.isEmpty()) {
+				userIds.addAll(createUser);
+			}
+			List<Long> updateUser = page.getRecords().stream().map(Order::getUpdateUser).filter(Objects::nonNull).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
+			if (!updateUser.isEmpty()) {
+				userIds.addAll(updateUser);
+			}
+			StringBuilder corp = new StringBuilder();
+			List<CorpsDesc> corpsDescList = new ArrayList<>();
+			for (Long item : corpIds) {
+				corp.append(item).append(",");
+			}
+			if (ObjectUtils.isNotNull(corp.toString())) {
+				corpsDescList = corpsDescClient.selectByCorpIds(corp.substring(0, corp.length() - 1));
+			}
+			StringBuilder user = new StringBuilder();
+			List<User> userList = new ArrayList<>();
+			for (Long item : userIds) {
+				user.append(item).append(",");
+			}
+			if (ObjectUtils.isNotNull(user.toString())) {
+				userList = userClient.selectUserList(user.substring(0, user.length() - 1));
+			}
+			List<OrderItems> list = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
+				.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(OrderItems::getIsDeleted, 0)
+				.in(OrderItems::getPid, ids));
+			for (Order item : page.getRecords()) {
+				if (!corpsDescList.isEmpty()) {
+					if (item.getCorpId() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getCorpId())).findFirst()
+							.ifPresent(corpsDesc -> item.setCorpsName(corpsDesc.getCname()));
+					}
+					if (item.getBelongToCorpId() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId())).findFirst()
+							.ifPresent(corpsDesc -> item.setBelongToCorpName(corpsDesc.getCname()));
+					}
+					if (item.getProductionPlant() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getProductionPlant())).findFirst()
+							.ifPresent(corpsDesc -> item.setProductionPlantName(corpsDesc.getCname()));
+					}
+				}
+				if (!userList.isEmpty()) {
+					userList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst()
+						.ifPresent(corpsDesc -> item.setCreateUserName(corpsDesc.getRealName()));
+					userList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst()
+						.ifPresent(corpsDesc -> item.setUpdateUserName(corpsDesc.getRealName()));
+				}
+				//获取订单明细
+				if (!list.isEmpty()) {
+					List<OrderItems> orderItemsList = list.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
+					if (CollectionUtils.isNotEmpty(orderItemsList)) {
+						item.setOrderQuantity(orderItemsList.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//数量合计
+						item.setAmount(orderItemsList.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));//销售金额
+						item.setPurchaseAmount(orderItemsList.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO, BigDecimal::add));//采购金额
+						item.setActualQuantity(orderItemsList.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//发货数量
+					}
+				}
+			}
+		}
+		/*String corpIds = "";//客户拼接ids
 		String belongToCorpIds = "";//销售公司ids
 		String productionPlantIds = "";//生产工厂ids
 		String createUserIds = "";//创建人id拼接
@@ -234,7 +312,7 @@ public class OrderController extends BladeController {
 					item.setActualWeight(list.stream().map(OrderItems::getActualWeight).reduce(BigDecimal.ZERO, BigDecimal::add));//已发重量(吨)
 				}
 			});
-		}
+		}*/
 		return R.data(page);
 	}
 

+ 30 - 16
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -58,6 +58,7 @@ import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.math.RoundingMode;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 订单明细表 服务实现类
@@ -308,33 +309,46 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	@Override
 	public R importAgency(List<AgencyOrderItemsExcel> excelList) {
 		List<OrderItems> list = new ArrayList<>();//导入成功
-		excelList.forEach(item -> {
+		String codes = excelList.stream().filter(e -> ObjectUtils.isNotNull(e.getOrderQuantity())
+				&& e.getOrderQuantity().compareTo(new BigDecimal(0)) != 0)
+			.map(AgencyOrderItemsExcel::getCode).collect(Collectors.joining(","));
+		List<GoodsDesc> goodsDescList;
+		R<List<GoodsDesc>> res = goodsDescClient.getGoodsListByCode(codes);
+		if (res.isSuccess() && ObjectUtils.isNotNull(res.getData()) && !res.getData().isEmpty()) {
+			goodsDescList = res.getData();
+			if (goodsDescList.stream().map(GoodsDesc::getBrand).distinct().count() > 1) {
+				throw new RuntimeException("请导入同一品牌商品");
+			}
+		} else {
+			throw new RuntimeException("未查到商品数据");
+		}
+		for (AgencyOrderItemsExcel item : excelList) {
 			if (ObjectUtils.isNotNull(item.getOrderQuantity()) && item.getOrderQuantity().compareTo(new BigDecimal(0)) != 0) {
-				R<GoodsDesc> goods = goodsDescClient.GoodsByCode(item.getCode());
-				if (goods.isSuccess() && goods.getData() != null) {
+				GoodsDesc goods = goodsDescList.stream().filter(e -> e.getCode().equals(item.getCode())).findFirst().orElse(null);
+				if (goods != null) {
 					OrderItems orderItems = new OrderItems();
 					orderItems.setCode(item.getCode());
 					orderItems.setOrderQuantity(item.getOrderQuantity());
-					orderItems.setCname(goods.getData().getCname());//商品名称
-					orderItems.setItemId(goods.getData().getId());//商品id
-					orderItems.setTypeno(goods.getData().getTypeno());//商品规格
-					orderItems.setItemType(goods.getData().getTypeno());//商品规格
-					orderItems.setIntegralMultiples(goods.getData().getIntegralMultiples());//积分倍数
-					orderItems.setBrandItem(goods.getData().getBrandItem());//花纹
-					orderItems.setSize(goods.getData().getSize());//尺寸
+					orderItems.setCname(goods.getCname());//商品名称
+					orderItems.setItemId(goods.getId());//商品id
+					orderItems.setTypeno(goods.getTypeno());//商品规格
+					orderItems.setItemType(goods.getTypeno());//商品规格
+					orderItems.setIntegralMultiples(goods.getIntegralMultiples());//积分倍数
+					orderItems.setBrandItem(goods.getBrandItem());//花纹
+					orderItems.setSize(goods.getSize());//尺寸
 					orderItems.setPriceCategory("一般");//价格类别
-					orderItems.setCorpId(goods.getData().getCorpId());//供应id
-					orderItems.setCorpName(goods.getData().getCorpName());//供应商名称
-					orderItems.setCntrVolumn(goods.getData().getCntrVolumn());//箱体积
-					orderItems.setCartonWeight(goods.getData().getCartonWeight());//箱重量
-					GoodsType goodsType = goodsDescClient.goodTypeId(goods.getData().getId());
+					orderItems.setCorpId(goods.getCorpId());//供应id
+					orderItems.setCorpName(goods.getCorpName());//供应商名称
+					orderItems.setCntrVolumn(goods.getCntrVolumn());//箱体积
+					orderItems.setCartonWeight(goods.getCartonWeight());//箱重量
+					GoodsType goodsType = goodsDescClient.goodTypeId(goods.getId());
 					orderItems.setPriceCategory(goodsType.getCname());//商品类别名称
 					list.add(orderItems);
 				} else {
 					throw new RuntimeException("商品名称" + item.getCname() + "不存在");
 				}
 			}
-		});
+		}
 		return R.data(list);
 	}
 

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

@@ -8290,7 +8290,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			auditProecessDTO.setPageStatus(order.getPageStatus());
 			auditProecessDTO.setPageLabel(order.getPageLabel());
 			//审批数据
-			auditProecessDTO.setMorderNo(salesOrder.getSysNo());
+			auditProecessDTO.setMorderNo(salesOrder.getOrderNo());
 			auditProecessDTO.setOrderQuantity(salesOrder.getMinOrder());
 			auditProecessDTO.setAmount(salesOrder.getOrderAmount());
 			auditProecessDTO.setOrderRemark(salesOrder.getOrderRemark());
@@ -8299,7 +8299,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			auditProecessDTO.setActId(1);
 			auditProecessDTO.setSrcBillId(salesOrder.getId());
 			auditProecessDTO.setBillId(salesOrder.getId());
-			auditProecessDTO.setBillNo(salesOrder.getSysNo());
+			auditProecessDTO.setBillNo(salesOrder.getOrderNo());
 			auditProecessDTO.setSendUserId(AuthUtil.getUserId());
 			auditProecessDTO.setSendName(AuthUtil.getUserName());
 			auditProecessDTO.setSendTime(new Date());

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.xml

@@ -66,7 +66,7 @@
             and check_status = #{corpsDesc.checkStatus}
         </if>
         <if test="corpsDesc.cname!=null and corpsDesc.cname != ''">
-            and cname like CONCAT(CONCAT('%', #{corpsDesc.cname}), '%')
+            and (cname like CONCAT(CONCAT('%', #{corpsDesc.cname}), '%') or tel like CONCAT(CONCAT('%', #{corpsDesc.cname}), '%'))
         </if>
         <if test="corpsDesc.deliveryWarehouseId != null and corpsDesc.deliveryWarehouseId != ''">
             and delivery_warehouse_id = #{corpsDesc.deliveryWarehouseId}

+ 62 - 59
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java

@@ -26,6 +26,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CorpsDesc;
 import org.springblade.common.annotation.RepeatSubmit;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.excel.util.ExcelUtil;
@@ -36,6 +37,7 @@ 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.entity.Order;
 import org.springblade.salesPart.brand.service.IBrandFilesService;
 import org.springblade.salesPart.corps.service.ICorpsAttnService;
 import org.springblade.salesPart.corps.service.ICorpsDescService;
@@ -164,32 +166,38 @@ public class OrderController extends BladeController {
 			}
 		}
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
-
-		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接
-		StringBuilder createUserIds = new StringBuilder();//创建人id拼接
-		for (PjOrder items : pages.getRecords()) {
-			if (ObjectUtil.isNotEmpty(items.getUpdateUser())) {
-				updateUserIds.append(items.getUpdateUser()).append(",");
+		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
+			List<Long> userIds = new ArrayList<>();
+			List<Long> createUser = pages.getRecords().stream().map(PjOrder::getCreateUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			if (!createUser.isEmpty()) {
+				userIds.addAll(createUser);
 			}
-			if (ObjectUtil.isNotEmpty(items.getCreateUser())) {
-				createUserIds.append(items.getCreateUser()).append(",");
+			List<Long> updateUser = pages.getRecords().stream().map(PjOrder::getUpdateUser).filter(Objects::nonNull).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
+			if (!updateUser.isEmpty()) {
+				userIds.addAll(updateUser);
+			}
+			StringBuilder user = new StringBuilder();
+			List<User> userList = new ArrayList<>();
+			for (Long item : userIds) {
+				user.append(item).append(",");
+			}
+			if (ObjectUtils.isNotNull(user.toString())) {
+				userList = iUserClient.selectUserList(user.substring(0, user.length() - 1));
 			}
-		}
-		//获得修改人信息
-		List<User> updateUserList = iUserClient.selectUserIds(updateUserIds.toString());
-		//获得创建人信息
-		List<User> createUserList = iUserClient.selectUserIds(createUserIds.toString());
-
-		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 			List<Long> ids = pages.getRecords().stream().map(PjOrder::getId).collect(Collectors.toList());
 			List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>().eq(PjOrderItems::getIsDeleted, 0)
 				.in(PjOrderItems::getPid, ids));
-			pages.getRecords().forEach(item -> {
-				if (ObjectUtil.isNotEmpty(updateUserList)) {
-					User user = updateUserList.stream().anyMatch(e -> e.getId().equals(item.getUpdateUser())) ? updateUserList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst().get() : null;
-					if (user != null) {
-						item.setUpdateUserName(user.getName());
+			for (PjOrder item : pages.getRecords()){
+				if (ObjectUtil.isNotEmpty(userList)) {
+					if (ObjectUtils.isNotNull(item.getUpdateUser())) {
+						userList.stream().filter(e -> e.getId().equals(item.getUpdateUser()))
+							.findFirst().ifPresent(users -> item.setUpdateUserName(users.getRealName()));
+					}
+					if (ObjectUtils.isNotNull(item.getCreateUser())) {
+						userList.stream().filter(e -> e.getId().equals(item.getCreateUser()))
+							.findFirst().ifPresent(users -> item.setCreateUserName(users.getRealName()));
 					}
+
 				}
 				if (item.getGoodsTotalNum().compareTo(item.getReturnsNumber()) == 0) {
 					item.setReturnsStatus("全退");
@@ -198,12 +206,7 @@ public class OrderController extends BladeController {
 				} else {
 					item.setReturnsStatus("无");
 				}
-				if (ObjectUtil.isNotEmpty(createUserList)) {
-					User user = createUserList.stream().anyMatch(e -> e.getId().equals(item.getCreateUser())) ? createUserList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().get() : null;
-					if (user != null) {
-						item.setCreateUserName(user.getName());
-					}
-				}
+
 				if (!pjOrderItemsList.isEmpty()) {
 					long count = pjOrderItemsList.stream().filter(e -> e.getPid().equals(item.getId())).count();
 					item.setItem(count + "");
@@ -211,7 +214,7 @@ public class OrderController extends BladeController {
 				}
 				item.setSurplusShipNum(item.getGoodsTotalShipNum().subtract(item.getOutGoodsTotalShipNum()));
 				item.setSurplusShipAmount(item.getGoodsTotalShipAmount().subtract(item.getOutGoodsTotalShipAmount()));
-			});
+			}
 		}
 
 		return R.data(pages);
@@ -270,32 +273,40 @@ public class OrderController extends BladeController {
 		}
 		List<PjOrder> pages = orderService.list(lambdaQueryWrapper);
 
-		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接
-		StringBuilder createUserIds = new StringBuilder();//创建人id拼接
-		for (PjOrder items : pages) {
-			if (ObjectUtil.isNotEmpty(items.getUpdateUser())) {
-				updateUserIds.append(items.getUpdateUser()).append(",");
-			}
-			if (ObjectUtil.isNotEmpty(items.getCreateUser())) {
-				createUserIds.append(items.getCreateUser()).append(",");
-			}
-		}
 
-		//获得修改人信息
-		List<User> updateUserList = iUserClient.selectUserIds(updateUserIds.toString());
-		//获得创建人信息
-		List<User> createUserList = iUserClient.selectUserIds(createUserIds.toString());
-		List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
-			.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
-			.eq(PjOrderItems::getIsDeleted, 0)
-			.in(PjOrderItems::getPid, pages.stream().map(PjOrder::getId).distinct().collect(Collectors.toList())));
 		if (CollectionUtils.isNotEmpty(pages)) {
-			pages.forEach(item -> {
-				if (ObjectUtil.isNotEmpty(updateUserList)) {
-					User user = updateUserList.stream().anyMatch(e -> e.getId().equals(item.getUpdateUser())) ? updateUserList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst().get() : null;
-					if (user != null) {
-						item.setUpdateUserName(user.getName());
+			List<Long> userIds = new ArrayList<>();
+			List<Long> createUser = pages.stream().map(PjOrder::getCreateUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			if (!createUser.isEmpty()) {
+				userIds.addAll(createUser);
+			}
+			List<Long> updateUser = pages.stream().map(PjOrder::getUpdateUser).filter(Objects::nonNull).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
+			if (!updateUser.isEmpty()) {
+				userIds.addAll(updateUser);
+			}
+			StringBuilder user = new StringBuilder();
+			List<User> userList = new ArrayList<>();
+			for (Long item : userIds) {
+				user.append(item).append(",");
+			}
+			if (ObjectUtils.isNotNull(user.toString())) {
+				userList = iUserClient.selectUserList(user.substring(0, user.length() - 1));
+			}
+			List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+				.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(PjOrderItems::getIsDeleted, 0)
+				.in(PjOrderItems::getPid, pages.stream().map(PjOrder::getId).distinct().collect(Collectors.toList())));
+			for (PjOrder item : pages){
+				if (ObjectUtil.isNotEmpty(userList)) {
+					if (ObjectUtils.isNotNull(item.getUpdateUser())) {
+						userList.stream().filter(e -> e.getId().equals(item.getUpdateUser()))
+							.findFirst().ifPresent(users -> item.setUpdateUserName(users.getRealName()));
+					}
+					if (ObjectUtils.isNotNull(item.getCreateUser())) {
+						userList.stream().filter(e -> e.getId().equals(item.getCreateUser()))
+							.findFirst().ifPresent(users -> item.setCreateUserName(users.getRealName()));
 					}
+
 				}
 				List<Long> pjOrderItems = pjOrderItemsList.stream().filter(e -> e.getPid().equals(item.getId()))
 					.map(PjOrderItems::getGoodsId).filter(Objects::nonNull).collect(Collectors.toList());
@@ -307,15 +318,7 @@ public class OrderController extends BladeController {
 				} else {
 					item.setReturnsStatus("无");
 				}
-				if (ObjectUtil.isNotEmpty(createUserList)) {
-					User user = createUserList.stream().anyMatch(e -> e.getId().equals(item.getCreateUser())) ? createUserList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().get() : null;
-					if (user != null) {
-						item.setCreateUserName(user.getName());
-					}
-				}
-				/*item.setItem(orderItemsService.count(new LambdaQueryWrapper<PjOrderItems>().eq(PjOrderItems::getIsDeleted, 0)
-					.eq(PjOrderItems::getPid, item.getId())) + "");*/
-			});
+			}
 		}
 		List<PjOrderExportExcelXS> list = BeanUtil.copy(pages, PjOrderExportExcelXS.class);
 		for (PjOrderExportExcelXS item : list) {

+ 2 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderItemsMapper.xml

@@ -239,7 +239,7 @@
             and not FIND_IN_SET(po.`status`,'退款请核,已取消,已退款,售后中')
         </if>
         <if test='saleDetailDto.isContain !=null and saleDetailDto.isContain !="" and saleDetailDto.isContain == "1"'>
-            and ( (FIND_IN_SET(po.bs_type,'XS,CG,RZCG') and FIND_IN_SET(po.`status`,'待确认,待发货,已发货,退款请核,已取消,已退款,售后中,已收货,录入'))
+            and ( (FIND_IN_SET(po.bs_type,'XS,CG,RZCG') and FIND_IN_SET(po.`status`,'待确认,待发货,已发货,退款请核,已取消,已退款,售后中,已收货'))
             or (FIND_IN_SET(po.bs_type,'TKXS,TKCG') and FIND_IN_SET(po.`status`,'已完成')) )
         </if>
         <if test='saleDetailDto.isContain !=null and saleDetailDto.isContain !="" and saleDetailDto.isContain == "0"'>
@@ -452,7 +452,7 @@
             and not FIND_IN_SET(po.`status`,'退款请核,已取消,已退款,售后中')
         </if>
         <if test='isContain !=null and isContain !="" and isContain == "1"'>
-          and ( (FIND_IN_SET(po.bs_type,'XS,CG,RZCG') and FIND_IN_SET(po.`status`,'待确认,待发货,已发货,退款请核,已取消,已退款,售后中,已收货,录入'))
+          and ( (FIND_IN_SET(po.bs_type,'XS,CG,RZCG') and FIND_IN_SET(po.`status`,'待确认,待发货,已发货,退款请核,已取消,已退款,售后中,已收货'))
               or (FIND_IN_SET(po.bs_type,'TKXS,TKCG') and FIND_IN_SET(po.`status`,'已完成')) )
         </if>
         <if test='isContain !=null and isContain !="" and isContain == "0"'>

+ 119 - 6
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -3138,22 +3138,136 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public R confirmRedeem(PjOrder order) {
 		order.setWhetherRedeem("1");
 		order.setUpdateUserName(AuthUtil.getUserName());
 		order.setUpdateUser(AuthUtil.getUserId());
 		order.setUpdateTime(new Date());
 		baseMapper.updateById(order);
+		List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+			.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+			.eq(PjOrderItems::getIsDeleted, 0)
+			.eq(PjOrderItems::getPid, order.getId())
+			.apply("send_num > out_goods_total_ship_num"));
+		if (!orderItemsList.isEmpty()) {
+			List<Long> goodIds = orderItemsList.stream().map(PjOrderItems::getGoodsId).distinct().collect(Collectors.toList());
+			List<PjGoodsDesc> pjGoodsDescList = goodsDescMapper.selectList(new LambdaQueryWrapper<PjGoodsDesc>()
+				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(PjGoodsDesc::getIsDeleted, 0)
+				.in(PjGoodsDesc::getId, goodIds));
+			//修改库存账
+			LambdaQueryWrapper<PjStockDesc> stockLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			stockLambdaQueryWrapper
+				.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(PjStockDesc::getIsDeleted, 0)
+				.eq(PjStockDesc::getSalesCompanyId, order.getSalesCompanyId())
+				.in(PjStockDesc::getGoodsId, goodIds);
+			List<PjStockDesc> pjStockDescList = stockDescService.list(stockLambdaQueryWrapper);
+			List<PjStockDesc> pjStockDescArrayList = new ArrayList<>();
+			for (PjOrderItems item : orderItemsList) {
+				PjGoodsDesc goodsDesc = pjGoodsDescList.stream().filter(e -> e.getId().equals(item.getGoodsId())).findFirst().orElse(null);
+				if (ObjectUtil.isEmpty(goodsDesc)) {
+					throw new RuntimeException("商品数据异常");
+				}
+				if ("1".equals(goodsDesc.getWhether()) && ObjectUtils.isNull(item.getDot())) {
+					throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
+				}
+				//管理批次号
+				PjStockDesc stockOne = null;
+				if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && "1".equals(goodsDesc.getWhether())) {
+					stockOne = pjStockDescList.stream()
+						.filter(e -> e.getGoodsId().equals(item.getGoodsId())
+							&& e.getDot().equals(item.getDot())).findFirst().orElse(null);
+				} else {
+					stockOne = pjStockDescList.stream()
+						.filter(e -> e.getGoodsId().equals(item.getGoodsId())
+							&& ObjectUtils.isNull(e.getDot())).findFirst().orElse(null);
+				}
+				if (stockOne != null) {
+					BigDecimal redeemNum = item.getSendNum().subtract(item.getOutGoodsTotalShipNum());
+					item.setRedeemNum(redeemNum);
+					if (stockOne.getBalanceQuantityFinancing().compareTo(redeemNum) < 0) {
+						throw new RuntimeException("商品:" + goodsDesc.getCname() + "剩余融资库存小于融资单剩余融资数量");
+					}
+					stockOne.setBalanceQuantityHave(stockOne.getBalanceQuantityHave().subtract(redeemNum));
+					stockOne.setBalanceQuantityFinancing(stockOne.getBalanceQuantityFinancing().subtract(redeemNum));
+					stockOne.setVersion(stockOne.getVersion());
+					pjStockDescArrayList.add(stockOne);
+				} else {
+					throw new RuntimeException("商品:" + goodsDesc.getCname() + "未查到库存账");
+				}
+			}
+			orderItemsService.saveOrUpdateBatch(orderItemsList);
+			if (!pjStockDescArrayList.isEmpty()) {
+				stockDescService.updateBatchById(pjStockDescArrayList);
+			}
+		}
 		return R.data(order);
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public R revokeRedeem(PjOrder order) {
 		order.setWhetherRedeem("0");
 		order.setUpdateUserName(AuthUtil.getUserName());
 		order.setUpdateUser(AuthUtil.getUserId());
 		order.setUpdateTime(new Date());
 		baseMapper.updateById(order);
+		List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+			.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+			.eq(PjOrderItems::getIsDeleted, 0)
+			.eq(PjOrderItems::getPid, order.getId())
+			.apply("send_num > out_goods_total_ship_num"));
+		if (!orderItemsList.isEmpty()) {
+			List<Long> goodIds = orderItemsList.stream().map(PjOrderItems::getGoodsId).distinct().collect(Collectors.toList());
+			List<PjGoodsDesc> pjGoodsDescList = goodsDescMapper.selectList(new LambdaQueryWrapper<PjGoodsDesc>()
+				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(PjGoodsDesc::getIsDeleted, 0)
+				.in(PjGoodsDesc::getId, goodIds));
+			//修改库存账
+			LambdaQueryWrapper<PjStockDesc> stockLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			stockLambdaQueryWrapper
+				.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(PjStockDesc::getIsDeleted, 0)
+				.eq(PjStockDesc::getSalesCompanyId, order.getSalesCompanyId())
+				.in(PjStockDesc::getGoodsId, goodIds);
+			List<PjStockDesc> pjStockDescList = stockDescService.list(stockLambdaQueryWrapper);
+			List<PjStockDesc> pjStockDescArrayList = new ArrayList<>();
+			for (PjOrderItems item : orderItemsList) {
+				PjGoodsDesc goodsDesc = pjGoodsDescList.stream().filter(e -> e.getId().equals(item.getGoodsId())).findFirst().orElse(null);
+				if (ObjectUtil.isEmpty(goodsDesc)) {
+					throw new RuntimeException("商品数据异常");
+				}
+				if ("1".equals(goodsDesc.getWhether()) && ObjectUtils.isNull(item.getDot())) {
+					throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
+				}
+				//管理批次号
+				PjStockDesc stockOne = null;
+				if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && "1".equals(goodsDesc.getWhether())) {
+					stockOne = pjStockDescList.stream()
+						.filter(e -> e.getGoodsId().equals(item.getGoodsId())
+							&& e.getDot().equals(item.getDot())).findFirst().orElse(null);
+				} else {
+					stockOne = pjStockDescList.stream()
+						.filter(e -> e.getGoodsId().equals(item.getGoodsId())
+							&& ObjectUtils.isNull(e.getDot())).findFirst().orElse(null);
+				}
+				if (stockOne != null) {
+					item.setRedeemNum(new BigDecimal("0"));
+					stockOne.setBalanceQuantityHave(stockOne.getBalanceQuantityHave().subtract(item.getRedeemNum()));
+					stockOne.setBalanceQuantityFinancing(stockOne.getBalanceQuantityFinancing().add(item.getRedeemNum()));
+					stockOne.setVersion(stockOne.getVersion());
+					pjStockDescArrayList.add(stockOne);
+				} else {
+					throw new RuntimeException("商品:" + goodsDesc.getCname() + "未查到库存账");
+				}
+			}
+			orderItemsService.saveOrUpdateBatch(orderItemsList);
+			if (!pjStockDescArrayList.isEmpty()) {
+				stockDescService.updateBatchById(pjStockDescArrayList);
+			}
+		}
 		return R.data(order);
 	}
 
@@ -3173,7 +3287,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			if (storageDesc == null) {
 				throw new RuntimeException("未找到仓库信息");
 			}
-			if ("1".equals(storageDesc.getWhetherFinancing())){
+			/*if ("1".equals(storageDesc.getWhetherFinancing())){
 				LambdaQueryWrapper<PjOrderItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
 				itemsLambdaQueryWrapper.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
 					.eq(PjOrderItems::getIsDeleted, 0)
@@ -3231,7 +3345,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				}
 			}else{
 				return R.data(true);
-			}
+			}*/
+			return R.data(true);
 		} else {
 			return R.data(true);
 		}
@@ -3949,8 +4064,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				order.setSalesAmount(new BigDecimal("0.00"));
 				order.setTotalMoney(new BigDecimal("0.00"));
 			}
-		}
-		else if (order.getBsType().equals(OrderTypeEnum.PURCHASE.getType())) {
+		} else if (order.getBsType().equals(OrderTypeEnum.PURCHASE.getType())) {
 			//采购
 			/*if (ObjectUtils.isNotNull(order.getStorageId())) {
 				PjStorageDesc storageDesc = storageDescMapper.selectById(order.getStorageId());
@@ -4086,8 +4200,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				order.setSalesAmount(new BigDecimal("0.00"));
 				order.setTotalMoney(new BigDecimal("0.00"));
 			}
-		}
-		else if (order.getBsType().equals(OrderTypeEnum.FINANCING.getType())) {
+		} else if (order.getBsType().equals(OrderTypeEnum.FINANCING.getType())) {
 			//仓库名称
 			/*if (ObjectUtils.isNotNull(order.getStorageId())) {
 				PjStorageDesc storageDesc = storageDescMapper.selectById(order.getStorageId());

+ 6 - 8
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/controller/ProductLaunchController.java

@@ -582,18 +582,16 @@ public class ProductLaunchController extends BladeController {
 								.or().like(PjProductLaunch::getCnameInt, cname)
 								.or().like(PjProductLaunch::getBrandItem, cname)
 								.or().like(PjProductLaunch::getSpecificationAndModel, cname)
-//							.or().like(PjProductLaunch::getBrandName, chineseWords[0])
 						);
 						lambdaQueryWrapper.like(PjProductLaunch::getBrandName, chineseWords[0]);
-					}/*else{
-						lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, chineseWords[0])
-							.or().like(PjProductLaunch::getCnameInt, chineseWords[0])
-							.or().like(PjProductLaunch::getBrandItem, chineseWords[0])
-							.or().like(PjProductLaunch::getSpecificationAndModel, chineseWords[0])
+					}else{
+						lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, productLaunch.getCname())
+							.or().like(PjProductLaunch::getCnameInt, productLaunch.getCname())
+							.or().like(PjProductLaunch::getBrandItem, productLaunch.getCname())
+							.or().like(PjProductLaunch::getSpecificationAndModel, productLaunch.getCname())
 							.or().like(PjProductLaunch::getBrandName, chineseWords[0])
 						);
-//					lambdaQueryWrapper.like(PjProductLaunch::getBrandName, chineseWords[0]);
-					}*/
+					}
 				} else {
 					lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, productLaunch.getCname())
 						.or().like(PjProductLaunch::getCnameInt, productLaunch.getCname())

+ 28 - 32
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java

@@ -34,6 +34,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.entity.PjOrderItems;
 import org.springblade.salesPart.entity.PjShip;
 import org.springblade.salesPart.entity.PjShipItems;
@@ -52,10 +53,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -133,45 +131,43 @@ public class ShipController extends BladeController {
 			}
 		}
 		IPage<PjShip> pages = shipService.page(Condition.getPage(query), lambdaQueryWrapper);
-
-		StringBuilder createUserIds = new StringBuilder();//创建人id拼接
-		List<Long> idList = new ArrayList<>();
-		for (PjShip items : pages.getRecords()) {
-			if (ObjectUtil.isNotEmpty(items.getUpdateUser())) {
-				idList.add(items.getUpdateUser());
+		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
+			List<Long> userIds = new ArrayList<>();
+			List<Long> createUser = pages.getRecords().stream().map(PjShip::getCreateUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			if (!createUser.isEmpty()) {
+				userIds.addAll(createUser);
 			}
-			if (ObjectUtil.isNotEmpty(items.getCreateUser())) {
-				idList.add(items.getCreateUser());
+			List<Long> updateUser = pages.getRecords().stream().map(PjShip::getUpdateUser).filter(Objects::nonNull).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
+			if (!updateUser.isEmpty()) {
+				userIds.addAll(updateUser);
+			}
+			StringBuilder user = new StringBuilder();
+			List<User> userList = new ArrayList<>();
+			for (Long item : userIds) {
+				user.append(item).append(",");
+			}
+			if (ObjectUtils.isNotNull(user.toString())) {
+				userList = userClient.selectUserList(user.substring(0, user.length() - 1));
 			}
-		}
-		for (Long item : idList){
-			createUserIds.append(item).append(",");
-		}
-		//获得创建人信息
-		List<User> createUserList = userClient.selectUserIds(createUserIds.toString());
-
-		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 			List<Long> ids = pages.getRecords().stream().map(PjShip::getId).collect(Collectors.toList());
 			List<PjShipItems> pjOrderItemsList = shipItemsService.list(new LambdaQueryWrapper<PjShipItems>().eq(PjShipItems::getIsDeleted, 0)
 				.in(PjShipItems::getPid, ids));
-			pages.getRecords().forEach(item -> {
-				if (ObjectUtil.isNotEmpty(createUserList)) {
-					User user = createUserList.stream().anyMatch(e -> e.getId().equals(item.getUpdateUser())) ? createUserList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst().get() : null;
-					if (user != null) {
-						item.setUpdateUserName(user.getName());
+			for (PjShip item : pages.getRecords()){
+				if (ObjectUtil.isNotEmpty(userList)) {
+					if (ObjectUtils.isNotNull(item.getUpdateUser())) {
+						userList.stream().filter(e -> e.getId().equals(item.getUpdateUser()))
+							.findFirst().ifPresent(users -> item.setUpdateUserName(users.getRealName()));
 					}
-				}
-
-				if (ObjectUtil.isNotEmpty(createUserList)) {
-					User user = createUserList.stream().anyMatch(e -> e.getId().equals(item.getCreateUser())) ? createUserList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().get() : null;
-					if (user != null) {
-						item.setCreateUserName(user.getName());
+					if (ObjectUtils.isNotNull(item.getCreateUser())) {
+						userList.stream().filter(e -> e.getId().equals(item.getCreateUser()))
+							.findFirst().ifPresent(users -> item.setCreateUserName(users.getRealName()));
 					}
+
 				}
 				if (!pjOrderItemsList.isEmpty()) {
 					item.setItem(pjOrderItemsList.stream().filter(e -> e.getPid().equals(item.getId())).count() + "");
 				}
-			});
+			}
 		}
 
 		return R.data(pages);

+ 94 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

@@ -243,7 +243,99 @@ public class PurchaseOrderController extends BladeController {
 		queryWrapper.orderByDesc("src_order_no");
 		Page<Order> page = new Page<>(current, size);
 		IPage<Order> pages = orderService.page(page, queryWrapper);
-		List<Order> records = pages.getRecords();
+		if (CollectionUtils.isNotEmpty(page.getRecords())) {
+			List<Long> userIds = new ArrayList<>();
+			List<Long> corpIds = new ArrayList<>();
+			List<Long> ids = page.getRecords().stream().map(Order::getId).collect(Collectors.toList());
+			List<Long> corpIdList = page.getRecords().stream().map(Order::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			if (!corpIdList.isEmpty()) {
+				corpIds.addAll(corpIdList);
+			}
+			List<Long> belongToCorpId = page.getRecords().stream().map(Order::getBelongToCorpId).filter(Objects::nonNull).filter(toCorpId -> !corpIds.contains(toCorpId)).collect(Collectors.toList());
+			if (!belongToCorpId.isEmpty()) {
+				corpIds.addAll(belongToCorpId);
+			}
+			List<Long> purchaserId = page.getRecords().stream().map(Order::getPurchaserId).filter(Objects::nonNull).filter(plant -> !corpIds.contains(plant)).collect(Collectors.toList());
+			if (!purchaserId.isEmpty()) {
+				corpIds.addAll(purchaserId);
+			}
+			List<Long> createUserList = page.getRecords().stream().map(Order::getCreateUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			if (!createUserList.isEmpty()) {
+				userIds.addAll(createUserList);
+			}
+			List<Long> updateUser = page.getRecords().stream().map(Order::getUpdateUser).filter(Objects::nonNull).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
+			if (!updateUser.isEmpty()) {
+				userIds.addAll(updateUser);
+			}
+			StringBuilder corp = new StringBuilder();
+			List<CorpsDesc> corpsDescList = new ArrayList<>();
+			for (Long item : corpIds) {
+				corp.append(item).append(",");
+			}
+			if (ObjectUtils.isNotNull(corp.toString())) {
+				corpsDescList = corpsDescClient.selectByCorpIds(corp.substring(0, corp.length() - 1));
+			}
+			StringBuilder user = new StringBuilder();
+			List<User> userList = new ArrayList<>();
+			for (Long item : userIds) {
+				user.append(item).append(",");
+			}
+			if (ObjectUtils.isNotNull(user.toString())) {
+				userList = userClient.selectUserList(user.substring(0, user.length() - 1));
+			}
+			List<OrderItems> list = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
+				.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(OrderItems::getIsDeleted, 0)
+				.in(OrderItems::getPid, ids));
+			for (Order item : page.getRecords()) {
+				if (!corpsDescList.isEmpty()) {
+					if (item.getCorpId() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getCorpId())).findFirst()
+							.ifPresent(corpsDesc -> item.setStrCorpName(corpsDesc.getCname()));
+					}
+					if (item.getBelongToCorpId() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId())).findFirst()
+							.ifPresent(corpsDesc -> item.setBelongToCorpName(corpsDesc.getCname()));
+					}
+					if (item.getPurchaserId() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getPurchaserId())).findFirst()
+							.ifPresent(corpsDesc -> item.setStrPurchaserName(corpsDesc.getCname()));
+					}
+				}
+				if (!userList.isEmpty()) {
+					userList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst()
+						.ifPresent(corpsDesc -> item.setCreateUserName(corpsDesc.getRealName()));
+					userList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst()
+						.ifPresent(corpsDesc -> item.setUpdateUserName(corpsDesc.getRealName()));
+				}
+				//获取订单明细
+				if (!list.isEmpty()) {
+					List<OrderItems> orderItemsList = list.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
+					if (CollectionUtils.isNotEmpty(orderItemsList)) {
+						if (CollectionUtils.isNotEmpty(orderItemsList)) {
+							//子项总件数
+							BigDecimal orderQuantity = orderItemsList.stream().map(OrderItems::getOrderQuantity)
+								.filter(Objects::nonNull)
+								.reduce(BigDecimal.ZERO, BigDecimal::add);
+							item.setOrderQuantity(orderQuantity);
+							//子项总收货数
+							BigDecimal actualQuantity = orderItemsList.stream().map(OrderItems::getActualQuantity)
+								.filter(Objects::nonNull)
+								.reduce(BigDecimal.ZERO, BigDecimal::add);
+							item.setActualQuantity(actualQuantity);
+							//已收重量
+							BigDecimal actualWeight = orderItemsList.stream().map(OrderItems::getActualWeight)
+								.filter(Objects::nonNull)
+								.reduce(BigDecimal.ZERO, BigDecimal::add);
+							item.setActualWeight(actualWeight);
+							//明细信息
+							item.setItemsList(orderItemsList);
+						}
+					}
+				}
+			}
+		}
+		/*List<Order> records = pages.getRecords();
 
 		String belongToCorpIds = "";//所属公司
 		String createUserIds = "";//制单人
@@ -355,7 +447,7 @@ public class PurchaseOrderController extends BladeController {
 					e.setItemsList(orderItemsList);
 				}
 			});
-		}
+		}*/
 		return R.data(pages);
 	}