Browse Source

2022年9月20日 18:12

wangzhuo 3 years ago
parent
commit
437ef4176f
17 changed files with 384 additions and 24 deletions
  1. 6 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsDesc.java
  2. 11 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IGoodsDescClient.java
  3. 136 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/excel/SaleOrderExcel.java
  4. 9 1
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java
  5. 12 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/feign/GoodsDescClient.java
  6. 8 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.java
  7. 9 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.xml
  8. 8 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/IGoodsDescService.java
  9. 14 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java
  10. 87 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java
  11. 5 5
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/BidingItemsServiceImpl.java
  12. 33 18
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java
  13. 6 0
      blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java
  14. 7 0
      blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.java
  15. 11 0
      blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml
  16. 8 0
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java
  17. 14 0
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

+ 6 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsDesc.java

@@ -279,4 +279,10 @@ public class GoodsDesc implements Serializable {
 	 */
 	private BigDecimal commission;
 
+	/**
+	 * 规格型号
+	 */
+	@ApiModelProperty(value = "规格型号")
+	private String specificationAndModel;
+
 }

+ 11 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IGoodsDescClient.java

@@ -32,6 +32,17 @@ public interface IGoodsDescClient {
 	String GET_TERRAC_ECODE = API_PREFIX + "getTerraceCode";
 	String GET_GOODS_DESC_DETIAL = API_PREFIX+ "getGoodsDescDetail";
 	String GET_GOODS_DESC_BY_CNAME = API_PREFIX+ "getGoodsDescByCname";
+	String GOODS_ITEMSID = API_PREFIX+ "selectItemsIdGoods";
+
+	/**
+	 * 根据销售明细的商品id获得商品信息
+	 *
+	 * @param itemIds
+	 * @return
+	 */
+	@GetMapping(GOODS_ITEMSID)
+	List<GoodsDesc> selectItemsIdGoods(@RequestParam("itemIds") String itemIds);
+
 	/**
 	 * 获取商品信息
 	 *

+ 136 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/excel/SaleOrderExcel.java

@@ -0,0 +1,136 @@
+package org.springblade.purchase.sales.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *  销售订单导出
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class SaleOrderExcel {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 销售订单号
+	 */
+	@ExcelProperty(value = "客户名称")
+	private String orderNo;
+
+	/**
+	 * 客户名称
+	 */
+	@ExcelProperty(value = "客户名称")
+	private String corpId;
+
+	/**
+	 * 合同日期
+	 */
+	@ExcelProperty(value = "合同日期")
+	private Date businesDate;
+
+	/**
+	 * 毛利额
+	 */
+	@ExcelProperty(value = "毛利额")
+	private BigDecimal grossProfit;
+
+	/**
+	 * 毛利率
+	 */
+	@ExcelProperty(value = "毛利率")
+	private BigDecimal grossProfitRate;
+
+	/**
+	 * 销售金额
+	 */
+	@ExcelProperty(value = "销售金额")
+	private BigDecimal orderAmount;
+
+	/**
+	 * 应收金额
+	 */
+	@ExcelProperty(value = "应收金额")
+	private BigDecimal debitAmount;
+
+	/**
+	 * 未收金额
+	 */
+	@ExcelProperty(value = "未收金额")
+	private BigDecimal balanceAmount;
+
+	/**
+	 * 订单数量
+	 */
+	@ExcelProperty(value = "订单数量")
+	private BigDecimal orderQuantity;
+
+	/**
+	 * 已发数量
+	 */
+	@ExcelProperty(value = "已发数量")
+	private BigDecimal actualQuantity;
+
+	/**
+	 * 所属公司
+	 */
+	@ExcelProperty(value = "所属公司")
+	private String belongToCorpName;
+
+	/**
+	 * 生产工厂
+	 */
+	@ExcelProperty(value = "成产工厂")
+	private String productionPlantName;
+
+	/**
+	 * 到货地址
+	 */
+	@ExcelProperty(value = "到货地址")
+	private String arrivalAddress;
+
+	/**
+	 * 创建人
+	 */
+	@ExcelProperty(value = "创建人")
+	private String createUserName;
+
+	/**
+	 * 制单日期
+	 */
+	@ExcelProperty(value = "制单日期")
+	private Date createTime;
+
+	/**
+	 * 是否生成采购
+	 */
+	@ExcelProperty(value = "是否生成采购")
+	private String createPurchase;
+
+	/**
+	 * 是否生成收货
+	 */
+	@ExcelProperty(value = "是否生成收货")
+	private String createFreight;
+
+	/**
+	 * 是否特批
+	 */
+	@ExcelProperty(value = "是否特批")
+	private String specialCheck;
+
+	/**
+	 * 备注
+	 */
+	@ExcelProperty(value = "备注")
+	private String orderRemark;
+
+}

+ 9 - 1
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java

@@ -59,6 +59,7 @@ public interface IUserClient {
 	String USER_INFO_BY_NAME=API_PREFIX+"/user-info-by-name";
 	String LIST_USER_BY_ROLE_ID=API_PREFIX+"/listUserByRoleId";
 	String GET_USER_PAGE=API_PREFIX+"/getUserPage";
+	String USER_BY_IDS = API_PREFIX+ "/selectUserIds";
 
 	@GetMapping(LIST_USER_BY_ROLE_ID)
 	R<List<User>> listUserByRoleId(@RequestParam("roleId")Long roleId);
@@ -72,7 +73,14 @@ public interface IUserClient {
 	@GetMapping(USER_INFO_BY_NAME)
 	List<User> userInfoByName(@RequestParam("userName") String userName,@RequestParam("tenantId") String tenantId);
 
-
+	/**
+	 * 根据修改人或创建人获取用户信息
+	 *
+	 * @param userIds
+	 * @return
+	 */
+	@GetMapping(USER_BY_IDS)
+	List<User> selectUserIds(@RequestParam("userIds") String userIds);
 
 	/**
 	 * 获取用户信息

+ 12 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/feign/GoodsDescClient.java

@@ -45,6 +45,18 @@ public class GoodsDescClient implements IGoodsDescClient {
 	private final IGoodsTypeService goodsDescType;
 
 	/**
+	 * 根据销售明细的商品id获得商品信息
+	 *
+	 * @param itemIds
+	 * @return
+	 */
+	@Override
+	@GetMapping(GOODS_ITEMSID)
+	public List<GoodsDesc> selectItemsIdGoods(String itemIds){
+		return goodsDescService.selectItemsIdGoods(itemIds);
+	}
+
+	/**
 	 * 获取商品信息
 	 *
 	 * @param id 商品id

+ 8 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.java

@@ -52,6 +52,14 @@ public interface GoodsDescMapper extends BaseMapper<GoodsDesc> {
 	List<GoodsDescVO> selectGoods (IPage page,@Param("GoodsDesc") GoodsDesc goodsDesc);
 
 	/**
+	 * 根据销售明细的商品id获得商品信息
+	 *
+	 * @param goods
+	 * @return
+	 */
+	List<GoodsDesc> selectItemsIdGoods(@Param("goods") List<Long> goods);
+
+	/**
 	 * 订单获取商品信息
 	 * @param Id
 	 * @return

+ 9 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsDescMapper.xml

@@ -206,6 +206,15 @@
             </foreach>
         </if>
     </select>
+    <select id="selectItemsIdGoods" resultMap="goodsDescResultMap">
+        SELECT
+            *
+        FROM basic_goods_desc
+        WHERE id in
+        <foreach item="id" collection="goods" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
     <select id="selectGoodsMessage" resultType="org.springblade.client.vo.GoodsDescVO">
         select
         *

+ 8 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/IGoodsDescService.java

@@ -86,6 +86,14 @@ public interface IGoodsDescService extends IService<GoodsDesc> {
 	IPage<GoodsDescVO> selectGoods(IPage<GoodsDescVO> page, GoodsDesc goodsDesc);
 
 	/**
+	 * 根据销售明细的商品id获得商品信息
+	 *
+	 * @param itemIds
+	 * @return
+	 */
+	List<GoodsDesc> selectItemsIdGoods(String itemIds);
+
+	/**
 	 * 订单获取商品信息
 	 *
 	 * @param id

+ 14 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java

@@ -182,6 +182,20 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 		return page.setRecords(baseMapper.selectGoods(page, goodsDesc));
 	}
 
+	/**
+	 * 根据销售明细的商品id获得商品信息
+	 *
+	 * @param itemIds
+	 * @return
+	 */
+	@Override
+	public List<GoodsDesc> selectItemsIdGoods(String itemIds){
+		List<Long> collect = Arrays.stream(itemIds.split(","))
+			.map(s -> Long.parseLong(s.trim()))
+			.collect(Collectors.toList());
+		return baseMapper.selectItemsIdGoods(collect);
+	}
+
 	@Override
 	public GoodsDescVO selectGoodsMessage(Long id) {
 

+ 87 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -33,11 +33,13 @@ import org.springblade.client.entity.FeesDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IFeesDescClient;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.deliver.goods.entity.Delivery;
@@ -48,6 +50,7 @@ import org.springblade.finance.vojo.Acc;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderFees;
 import org.springblade.purchase.sales.entity.OrderItems;
+import org.springblade.purchase.sales.excel.SaleOrderExcel;
 import org.springblade.purchase.sales.service.*;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO;
@@ -56,6 +59,7 @@ import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.util.List;
@@ -201,6 +205,89 @@ public class OrderController extends BladeController {
 	}
 
 	/**
+	 * 销售订单导出
+	 */
+	@GetMapping("saleOrderExport")
+	@ApiOperation(value = "销售订单导出", notes = "传入order")
+	public void saleOrderExport(OrderVO order, HttpServletResponse response){
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getTenantId, SecureUtil.getTenantId());//租户id
+		lambdaQueryWrapper.eq(Order::getIsDeleted, 0);//订单是否有效
+		lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.SALES.getType());//订单类型
+		lambdaQueryWrapper.eq(Order::getTradeType, OrderTypeEnum.DOMESTIC.getType());//贸易类型
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()), Order::getOrderNo, order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getStorageId()), Order::getStorageId, order.getStorageId());//仓库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());//订单来源
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getShippingAddress()), Order::getShippingAddress, order.getShippingAddress());//发货地址
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()), Order::getArrivalAddress, order.getArrivalAddress());//到货地址
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getActualDeliveryDateStart()), Order::getActualDeliveryDate, order.getActualDeliveryDateStart());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getActualDeliveryDateEnd()), Order::getActualDeliveryDate, order.getActualDeliveryDateEnd());//发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDeliveryStartDate()), Order::getRequiredDeliveryDate, order.getDeliveryStartDate());//要求发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()), Order::getRequiredDeliveryDate, order.getDeliveryEndDate());//要求发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getArrivalDateStart()), Order::getRequiredArrivalDate, order.getArrivalDateStart());//要求到货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getArrivalDateEnd()), Order::getRequiredArrivalDate, order.getArrivalDateEnd());//要求到货日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()), Order::getOrderStatus, order.getOrderStatus());//单据状态
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()), Order::getSysNo, order.getSysNo());//系统编号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()), Order::getCreateUser, order.getCreateUser());//制单人
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getCreateTimeStart()), Order::getCreateTime, order.getCreateTimeStart());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getCreateTimeEnd()), Order::getCreateTime, order.getCreateTimeEnd());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDateValidityStart()), Order::getDateValidity, order.getDateValidityStart());//有效日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDateValidityEnd()), Order::getDateValidity, order.getDateValidityEnd());//有效日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()), Order::getBusinesDate, order.getOrderStartDate());//订单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()), Order::getBusinesDate, order.getOrderEndDate());//订单日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfLoad()), Order::getPortOfLoad, order.getPortOfLoad());//装货港
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfDestination()), Order::getPortOfDestination, order.getPortOfDestination());//目的港
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPlannedDeliveryStart()), Order::getPlannedDeliveryDate, order.getPlannedDeliveryStart());//计划交货开始
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPlannedDeliveryEnd()), Order::getPlannedDeliveryDate, order.getPlannedDeliveryEnd());//计划交货结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderRemark()), Order::getOrderRemark, order.getOrderRemark());//备注
+		if (order.getGathering() != null && order.getGathering() == 0){
+			lambdaQueryWrapper.eq(Order::getBalanceAmount,BigDecimal.ZERO);
+		}else if (order.getGathering() != null && order.getGathering() == 1){
+			lambdaQueryWrapper.gt(Order::getBalanceAmount,BigDecimal.ZERO);
+		}
+		lambdaQueryWrapper.orderByDesc(Order::getId);
+		List<Order> page = orderService.list(lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(page)) {
+			page.forEach(item -> {
+				if (item.getCorpId() != null) {
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());//客户
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+						item.setCorpsName(corpMessage.getData().getCname());
+					}
+				}
+				if (item.getBelongToCorpId() != null) {
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getBelongToCorpId());//销售公司
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+						item.setBelongToCorpName(corpMessage.getData().getCname());
+					}
+				}
+				if (item.getProductionPlant() != null) {
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getProductionPlant());//销售公司
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+						item.setProductionPlantName(corpMessage.getData().getCname());
+					}
+				}
+				R<User> user = userClient.userInfoById(item.getCreateUser());//制单人
+				if (user.isSuccess() && user.getData() != null) {
+					item.setCreateUserName(user.getData().getName());
+				}
+				//获取订单明细
+				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
+				if (CollectionUtils.isNotEmpty(list)) {
+					item.setOrderQuantity(list.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//数量合计
+					item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//发货数量
+				}
+			});
+		}
+
+		List<SaleOrderExcel> list = BeanUtil.copy(page, SaleOrderExcel.class);
+		ExcelUtil.export(response, "销售订单", "销售订单", list, SaleOrderExcel.class);
+	}
+
+	/**
 	 * 新增 销售或采购订单表
 	 */
 	@PostMapping("/save")

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

@@ -63,9 +63,7 @@ public class BidingItemsServiceImpl extends ServiceImpl<BidingItemsMapper, Bidin
 		lambdaQueryWrapper.in(BidingAgent::getAgentId, corpsAttn.getPid());
 		BidingAgent bidingAgent = bidingAgentMapper.selectOne(lambdaQueryWrapper);
 
-		if (bidingAgent == null){
-			throw new SecurityException("数据异常");
-		}else {
+		if (ObjectUtil.isNotEmpty(bidingAgent)){
 			if (bidingAgent.getNonEditable() == null){//为空代表第一次添加标书对比
 				bidingAgent.setNonEditable(0);
 			} else if (bidingAgent.getNonEditable() == 0){//为零代表已经添加标书 此次为修改
@@ -95,8 +93,10 @@ public class BidingItemsServiceImpl extends ServiceImpl<BidingItemsMapper, Bidin
 				baseMapper.updateById(item);
 			}
 		});
-		//更新代理明细信息
-		bidingAgentMapper.updateById(bidingAgent);
+		if (ObjectUtil.isNotEmpty(bidingAgent)){
+			//更新代理明细信息
+			bidingAgentMapper.updateById(bidingAgent);
+		}
 		return list;
 	}
 

+ 33 - 18
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -34,6 +34,7 @@ import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.mocha.entity.SalesPolicy;
 import org.springblade.mocha.entity.SalesPolicyItem;
 import org.springblade.mocha.feign.IPriceItemClient;
@@ -278,32 +279,46 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 			orderItemsList = baseMapper.selectList(new QueryWrapper<OrderItems>().eq("pid", order.getId())
 				.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).in("id", order.getOrderItemIds()).orderByAsc("sort"));
 		}
+		String itemIds = "";//商品id拼接
+		String updateUserIds = "";//修改人id拼接
+		String createUserIds = "";//创建人id拼接
+		for (OrderItems items : orderItemsList){
+			itemIds = itemIds + items.getItemId() + ",";
+			updateUserIds = updateUserIds + items.getUpdateUser() + ",";
+			createUserIds = createUserIds + items.getCreateUser() + ",";
+		}
+
+		//获得商品信息
+		List<GoodsDesc> goodsDescList = goodsDescClient.selectItemsIdGoods(itemIds);
+		//获得修改人信息
+		List<User> updateUserList = iUserClient.selectUserIds(updateUserIds);
+		//获得创建人信息
+		List<User> createUserList = iUserClient.selectUserIds(createUserIds);
+
 		if (CollectionUtils.isNotEmpty(orderItemsList)) {
 			orderItemsList.forEach(item -> {
 
-				R<User> user1 = iUserClient.userInfoById(item.getUpdateUser());
-				if (user1.isSuccess() && user1.getData() != null) {
-					item.setUpdateUserName(user1.getData().getName());
-				}
-				R<User> user = iUserClient.userInfoById(item.getCreateUser());
-				if (user.isSuccess() && user.getData() != null) {
-					item.setCreateUserName(user.getData().getName());
+				if (ObjectUtil.isNotEmpty(updateUserList)) {
+					item.setUpdateUserName(updateUserList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst().get().getName());
 				}
 
+				if (ObjectUtil.isNotEmpty(createUserList)) {
+					item.setUpdateUserName(createUserList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().get().getName());
+
+				}
 
 				if (item.getItemId() != null) {
 					//获取商品编码,名称,规格编码,规格型号
-					R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getItemId());
-					if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
-						item.setCode(goodsMessage.getData().getCode());
-						item.setCname(goodsMessage.getData().getCname());
-						item.setTypeno(goodsMessage.getData().getTypeno());
-						item.setSpecificationAndModel(goodsMessage.getData().getSpecificationAndModel());
-						item.setEname(goodsMessage.getData().getEname());
-						item.setBrandItem(goodsMessage.getData().getBrandItem());
-						item.setSize(goodsMessage.getData().getSize());
-						item.setSpecsOne(goodsMessage.getData().getSpecsOne());
-						item.setSpecsTwo(goodsMessage.getData().getSpecsTwo());
+					if (ObjectUtil.isNotEmpty(goodsDescList)) {
+						item.setCode(goodsDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().get().getCode());
+						item.setCname(goodsDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().get().getCname());
+						item.setTypeno(goodsDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().get().getTypeno());
+						item.setEname(goodsDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().get().getEname());
+						item.setBrandItem(goodsDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().get().getBrandItem());
+						item.setSize(goodsDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().get().getSize());
+						item.setSpecsOne(goodsDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().get().getSpecsOne());
+						item.setSpecsTwo(goodsDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().get().getSpecsTwo());
+						item.setSpecificationAndModel(goodsDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().get().getSpecificationAndModel());
 
 					}
 				}

+ 6 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java

@@ -69,6 +69,12 @@ public class UserClient implements IUserClient {
 	}
 
 	@Override
+	@GetMapping(USER_BY_IDS)
+	public List<User> selectUserIds(String userIds){
+		return service.selectUserIds(userIds);
+	}
+
+	@Override
 	@GetMapping(USER_INFO_BY_NAME)
 	public List<User> userInfoByName(String userName,String tenantId)
 	{

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

@@ -76,4 +76,11 @@ public interface UserMapper extends BaseMapper<User> {
 	 */
 	List<Long> getUserIdByCorpId(@Param("corpId") Long corpId);
 
+	/**
+	 * 根据修改人或创建人获取用户信息
+	 *
+	 * @param users
+	 * @return
+	 */
+	List<User> selectUserIds(@Param("users") List<Long> users);
 }

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

@@ -89,4 +89,15 @@
         select user_id from basic_corps_attn where pid = #{corpId} and is_deleted = 0 and user_id is not null
     </select>
 
+    <select id="selectUserIds" resultMap="userResultMap">
+        SELECT
+            *
+        FROM
+            blade_user
+        WHERE id in
+        <foreach item="id" collection="users" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
 </mapper>

+ 8 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java

@@ -222,4 +222,12 @@ public interface IUserService extends BaseService<User> {
 	 */
 	List<Long> getUserIdByCorpId(Long corpId);
 
+	/**
+	 * 根据修改人或创建人获取用户信息
+	 *
+	 * @param userIds
+	 * @return
+	 */
+	List<User> selectUserIds(String userIds);
+
 }

+ 14 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@@ -442,6 +442,20 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 	}
 
 	/**
+	 * 根据修改人或创建人获取用户信息
+	 *
+	 * @param userIds
+	 * @return
+	 */
+	@Override
+	public List<User> selectUserIds(String userIds){
+		List<Long> collect = Arrays.stream(userIds.split(","))
+			.map(s -> Long.parseLong(s.trim()))
+			.collect(Collectors.toList());
+		return baseMapper.selectUserIds(collect);
+	}
+
+	/**
 	 * 查询顶级部门ID
 	 */
 	private String selectTopId(String deptId) {