Browse Source

Merge remote-tracking branch 'origin/dev' into dev

纪新园 7 months ago
parent
commit
1b2bf29887

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

@@ -570,7 +570,9 @@ public class OrderController extends BladeController {
 			if (AuthUtil.getUserRole().contains("业务员")) {
 				lambdaQueryWrapper.eq(PjOrder::getSalerId, AuthUtil.getUserId());
 			} else if (AuthUtil.getUserRole().contains("客户")) {
-				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
+				PjCorpsAttn pjCorpsAttn = UserUtils.getUserCorpsAttn();
+				// lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
+				lambdaQueryWrapper.eq(PjOrder::getCustomerId, pjCorpsAttn.getPid());
 			}
 		}
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);

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

@@ -18,6 +18,7 @@ import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
 import okhttp3.*;
 import org.springblade.client.entity.Message;
 import org.springblade.client.feign.IMessageClient;
+import org.springblade.common.enums.BsTypeEnum;
 import org.springblade.common.enums.CommonEnum;
 import org.springblade.common.enums.NumberEnum;
 import org.springblade.core.mp.support.Condition;
@@ -80,6 +81,7 @@ import org.springblade.salesPart.ship.service.IShipItemsService;
 import org.springblade.salesPart.shopping.mapper.ShoppingMallDetailMapper;
 import org.springblade.salesPart.stock.service.IStockDescService;
 import org.springblade.salesPart.storage.mapper.StorageDescMapper;
+import org.springblade.salesPart.util.UserUtils;
 import org.springblade.salesPart.util.WxParamUtil;
 import org.springblade.salesPart.vo.*;
 import org.springblade.system.entity.Dept;
@@ -4578,28 +4580,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		List<Long> ids = new ArrayList<>();
 		if (detail != null) {
 			ids.add(detail.getId());
-			if ("XS".equals(detail.getBsType())) {
-				PjOrder detailShare = baseMapper.selectOne(new LambdaQueryWrapper<PjOrder>()
-					.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
-					.eq(PjOrder::getIsDeleted, 0)
-					.eq(PjOrder::getBsType, "GX")
-					.eq(PjOrder::getSrcOrdNo, detail.getSrcOrdNo()));
-				if (detailShare != null) {
-					ids.add(detailShare.getId());
-					detail.setGoodsTotalNum(detail.getGoodsTotalShipNum().add(detailShare.getGoodsTotalNum()));
-					detail.setTotalMoney(detail.getTotalMoney().add(detailShare.getTotalMoney()));
-				}
-			} else {
-				PjOrder detailShare = baseMapper.selectOne(new LambdaQueryWrapper<PjOrder>()
-					.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
-					.eq(PjOrder::getIsDeleted, 0)
-					.eq(PjOrder::getBsType, "XS")
-					.eq(PjOrder::getSrcOrdNo, detail.getSrcOrdNo()));
-				if (detailShare != null) {
-					ids.add(detailShare.getId());
-					detail.setGoodsTotalNum(detail.getGoodsTotalShipNum().add(detailShare.getGoodsTotalNum()));
-					detail.setTotalMoney(detail.getTotalMoney().add(detailShare.getTotalMoney()));
-				}
+			PjOrder detailShare = baseMapper.selectOne(new LambdaQueryWrapper<PjOrder>()
+				.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+				.eq(PjOrder::getIsDeleted, 0)
+				.eq(PjOrder::getBsType, BsTypeEnum.SALE.info.equals(detail.getBsType()) ? BsTypeEnum.SHARING.info : BsTypeEnum.SALE.info)
+				.eq(PjOrder::getSrcOrdNo, detail.getSrcOrdNo()));
+			if (detailShare != null) {
+				ids.add(detailShare.getId());
+				detail.setGoodsTotalNum(detail.getGoodsTotalShipNum().add(detailShare.getGoodsTotalNum()));
+				detail.setTotalMoney(detail.getTotalMoney().add(detailShare.getTotalMoney()));
+				detail.setSalesAmount(detail.getSalesAmount().add(detailShare.getSalesAmount()));
 			}
 			//获得销售明细
 			LambdaQueryWrapper<PjOrderItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -4675,18 +4665,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 
 	@Override
 	public IPage<PjOrder> appStatusShareList(PjOrder order, Query query) {
+		BladeUser user = AuthUtil.getUser();
 		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.select(PjOrder::getSrcOrdNo,PjOrder::getCustomerId,
 			PjOrder::getId,PjOrder::getCustomerName, PjOrder::getRecAddress,
 			PjOrder::getPhone, PjOrder::getContacts,PjOrder::getChargeType,
 			PjOrder::getTotalMoney,PjOrder::getStatus,PjOrder::getXcxStatus,
 			PjOrder::getSalesCompanyName,PjOrder::getOrdNo,PjOrder::getGoodsTotalNum,
-			PjOrder::getCreateTime);
-		lambdaQueryWrapper.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+			PjOrder::getCreateTime, PjOrder::getReceivableType);
+		lambdaQueryWrapper.eq(PjOrder::getTenantId, user.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.in(PjOrder::getBsType, "XS", "GX")
 			// 公司
-			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())
+			.eq(PjOrder::getSalesCompanyId, user.getDeptId())
 			// 状态
 			.eq(ObjectUtils.isNotEmpty(order.getActualPaymentStatus()), PjOrder::getActualPaymentStatus, order.getActualPaymentStatus())
 			// 所属公司
@@ -4694,8 +4685,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			.and(ObjectUtils.isNotNull(order.getRetrieval()), i -> i.like(PjOrder::getGoodsNameJoin, order.getRetrieval())
 				.or().like(PjOrder::getShortcutJoin, order.getRetrieval()))
 			.apply(ObjectUtils.isNotEmpty(order.getXcxStatus()), "find_in_set(xcx_status,'" + order.getXcxStatus() + "')");
-		if (AuthUtil.getUserRole().contains("客户")) {
-			lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
+		if (user.getRoleName().contains("客户")) {
+			PjCorpsAttn pjCorpsAttn = UserUtils.getUserCorpsAttn();
+			// lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
+			lambdaQueryWrapper.eq(PjOrder::getCustomerId, pjCorpsAttn.getPid());
 		}
 		lambdaQueryWrapper.groupBy(PjOrder::getSrcOrdNo);
 		query.setDescs("create_time");
@@ -4703,9 +4696,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		if (pages.getRecords().isEmpty()) {
 			return pages;
 		}
-		List<Long> orderIds = pages.getRecords().stream().map(PjOrder::getId).collect(Collectors.toList());
+		LambdaQueryWrapper<PjOrder> srcOrderWrapper = new LambdaQueryWrapper<>();
+		srcOrderWrapper.select(PjOrder::getSrcOrdNo,PjOrder::getId);
+		srcOrderWrapper.eq(PjOrder::getTenantId, user.getTenantId())
+			.in(PjOrder::getSrcOrdNo, pages.getRecords().stream().map(PjOrder::getSrcOrdNo).filter(Objects::nonNull).distinct().collect(Collectors.toList()));
+		List<PjOrder> srcOrderList = orderMapper.selectList(srcOrderWrapper);
+		List<Long> orderIds = srcOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
 		LambdaQueryWrapper<PjOrderItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
-		itemsLambdaQueryWrapper.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+		itemsLambdaQueryWrapper.eq(PjOrderItems::getTenantId, user.getTenantId())
 			.eq(PjOrderItems::getIsDeleted, 0)
 			.in(PjOrderItems::getPid, orderIds);
 		List<PjOrderItems> itemsList = orderItemsService.list(itemsLambdaQueryWrapper);
@@ -4713,14 +4711,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			return pages;
 		}
 		List<Long> goodsIds = itemsList.stream().map(PjOrderItems::getGoodsId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
-		BladeUser user = AuthUtil.getUser();
 		// 查找goods、product、brand、brandFigure 中的图片,每个类型只取一条
 		List<GoodsImgVo> goodsImgVoList = goodsDescMapper.selectGoodsImgVoList(user.getTenantId(), goodsIds);
 		if (goodsImgVoList.isEmpty()) {
 			return pages;
 		}
 		for (PjOrder e : pages.getRecords()) {
-			List<PjOrderItems> nowOrderItems = itemsList.stream().filter(e1 -> e1.getPid().equals(e.getId())).collect(Collectors.toList());
+			List<Long> nowOrderIds = srcOrderList.stream().filter(e1 -> e1.getSrcOrdNo().equals(e.getSrcOrdNo())).map(PjOrder::getId).collect(Collectors.toList());
+			List<PjOrderItems> nowOrderItems = itemsList.stream().filter(e1 -> nowOrderIds.contains(e1.getPid())).collect(Collectors.toList());
 			nowOrderItems.forEach(o -> {
 				GoodsImgVo goodsImgVo = goodsImgVoList.stream().filter(e1 -> e1.getGoodsId().equals(o.getGoodsId())).findFirst().orElse(null);
 				o.setUrl(goodsImgVo == null ? null : goodsImgVo.getFirstNonEmptyUrl());