Browse Source

待付款列表取消订单接口、管理后台客户审批通过时校验必填项是否填写、回滚待付款列表接口

liyuan 6 months ago
parent
commit
09bd84bb3e

+ 6 - 0
blade-common/src/main/java/org/springblade/common/enums/CommonEnum.java

@@ -69,6 +69,12 @@ public enum CommonEnum {
 	SPLIT_SYMBOL(","),
 
 	/**
+	 * 通过
+	 */
+	ADOPT("通过"),
+
+
+	/**
 	 * 中文分隔符号
 	 */
 	CHINESE_WORDS_SPLIT_SYMBOL("[^一-龥]");

+ 9 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/controller/CorpsDescController.java

@@ -27,6 +27,7 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.common.annotation.RepeatSubmit;
+import org.springblade.common.enums.CommonEnum;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
@@ -241,6 +242,14 @@ public class CorpsDescController extends BladeController {
 		if (StringUtils.isNotBlank(corpsDesc.getTenantId())) {
 			corpsDesc.setTenantId(SecureUtil.getTenantId());
 		}
+		if (CommonEnum.ADOPT.info.equals(corpsDesc.getCheckStatus())) {
+			if (Objects.isNull(corpsDesc.getSalesmanId())) {
+				return R.fail("请为客户维护业务员");
+			}
+			if (Objects.isNull(corpsDesc.getDeliveryWarehouseId())) {
+				return R.fail("请为客户维护发货仓库");
+			}
+		}
 		return corpsDescService.submit(corpsDesc);
 	}
 

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

@@ -749,10 +749,10 @@ public class OrderController extends BladeController {
 	/**
 	 * 销售列表不分页查询
 	 */
-	@GetMapping("/listAll")
+	@GetMapping("/listAll1")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "购物车列表不分页查询", notes = "传入shoppingCart")
-	public R<List<Map<String, Object>>> listAll() {
+	public R<List<Map<String, Object>>> listAll1() {
 		BladeUser user = AuthUtil.getUser();
 		PjCorpsAttn pjCorpsAttn = UserUtils.getUserCorpsAttn();
 		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -800,6 +800,60 @@ public class OrderController extends BladeController {
 	}
 
 	/**
+	 * 销售列表不分页查询
+	 */
+	@GetMapping("/listAll")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "购物车列表不分页查询", notes = "传入shoppingCart")
+	public R<List<Map<String, Object>>> listAll() {
+		BladeUser user = AuthUtil.getUser();
+		PjCorpsAttn pjCorpsAttn = UserUtils.getUserCorpsAttn();
+		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjOrder::getTenantId, user.getTenantId())
+			.eq(PjOrder::getIsDeleted, 0)
+			//公司
+			.eq(PjOrder::getSalesCompanyId, user.getDeptId())
+			.eq(PjOrder::getActualPaymentStatus, 1)
+			.eq(PjOrder::getCustomerId, pjCorpsAttn.getPid())
+			.in(PjOrder::getBsType, "XS","GX")
+			.orderByDesc(PjOrder::getCreateTime);
+		List<PjOrder> list = orderService.list(lambdaQueryWrapper);
+		if (list.isEmpty()) {
+			return R.data(Collections.emptyList());
+		}
+		List<Long> orderIds = list.stream().map(PjOrder::getId).distinct().collect(Collectors.toList());
+		List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>().in(PjOrderItems::getPid, orderIds));
+		List<Long> goodsIds = pjOrderItemsList.stream().map(PjOrderItems::getGoodsId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+		// 查找goods、product、brand、brandFigure 中的图片,每个类型只取一条
+		List<GoodsImgVo> goodsImgVoList = goodsDescService.selectGoodsImgVoList(user.getTenantId(), goodsIds);
+		//按照所属公司分组
+		Map<String, List<PjOrder>> map = list.stream().filter(item -> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(item.getSrcOrdNo()))
+			.collect(Collectors.groupingBy(PjOrder::getSrcOrdNo));
+		List<Map<String, Object>> mapList = new ArrayList<>(map.size());
+		for (Map.Entry<String, List<PjOrder>> orderMap : map.entrySet()) {
+			Map<String, Object> objectMap = new HashMap<>(2);
+			objectMap.put("name", orderMap.getKey());
+			mapList.add(objectMap);
+			if (orderMap.getValue().isEmpty()) {
+				objectMap.put("list", Collections.EMPTY_LIST);
+				continue;
+			}
+			List<PjOrder> nowOrderList  = orderMap.getValue().stream().sorted(Comparator.comparing(PjOrder::getCreateTime).reversed()).collect(Collectors.toList());
+			objectMap.put("list", nowOrderList);
+			for (PjOrder order : nowOrderList) {
+				List<PjOrderItems> nowOrderItemList = pjOrderItemsList.stream().filter(item -> order.getId().equals(item.getPid())).collect(Collectors.toList());
+				nowOrderItemList.forEach(o -> {
+					GoodsImgVo goodsImgVo = goodsImgVoList.stream().filter(e1 -> e1.getGoodsId().equals(o.getGoodsId())).findFirst().orElse(null);
+					o.setUrl(goodsImgVo == null ? null : goodsImgVo.getFirstNonEmptyUrl());
+				});
+				order.setOrderItemsList(nowOrderItemList);
+			}
+		}
+		return R.data(mapList);
+	}
+
+
+	/**
 	 * 采购订单请核
 	 */
 	@PostMapping("/checkOrderCG")
@@ -1400,4 +1454,10 @@ public class OrderController extends BladeController {
 		return R.data(mapList);
 	}
 
+
+	@PostMapping("/closeOrder")
+	public R<String> closeOrder(@RequestBody PjOrder order) {
+		return orderService.closeOrder(order);
+	}
+
 }

+ 8 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderService.java

@@ -283,4 +283,12 @@ public interface IOrderService extends IService<PjOrder> {
 	 * @return 结果
 	 */
     IPage<PjOrder> appStatusShareList(PjOrder order, Query query);
+
+	/**
+	 * 预付款取消订单
+	 *
+	 * @param order 参数
+	 * @return 结果
+	 */
+	R<String> closeOrder(PjOrder order);
 }

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

@@ -19,6 +19,7 @@ import okhttp3.*;
 import org.springblade.client.entity.Message;
 import org.springblade.client.feign.IMessageClient;
 import org.springblade.common.enums.CommonEnum;
+import org.springblade.common.enums.NumberEnum;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
@@ -4726,63 +4727,29 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			});
 			e.setOrderItemsList(nowOrderItems);
 		}
-/*		// 从商品中获取图片
-		List<Long> goodsIds = itemsList.stream().map(PjOrderItems::getGoodsId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
-		List<PjGoodsFiles> pjGoodsFiles = goodsFilesService.list(new LambdaQueryWrapper<PjGoodsFiles>()
-			.eq(PjGoodsFiles::getTenantId, user.getTenantId())
-			.eq(PjGoodsFiles::getIsDeleted, 0)
-			.in(PjGoodsFiles::getPid, goodsIds)
-			.eq(PjGoodsFiles::getMainImage, 0));
-		// 从品牌中获取图片
-		List<Long> brandIds = itemsList.stream().map(PjOrderItems::getBrandId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
-		List<PjBrandFiles> brandFilesList = null;
-		List<BrandFigure> brandFigureList = null;
-		if (!brandIds.isEmpty()) {
-			brandFilesList = brandFilesService.list(new LambdaQueryWrapper<PjBrandFiles>()
-				.eq(PjBrandFiles::getMainImage, 0)
-				.eq(PjBrandFiles::getTenantId, user.getTenantId())
-				.eq(PjBrandFiles::getIsDeleted, 0)
-				.in(PjBrandFiles::getPid, brandIds)
-			);
-			brandFigureList = brandFigureService.list(new LambdaQueryWrapper<BrandFigure>()
-				.eq(BrandFigure::getTenantId, user.getTenantId())
-				.eq(BrandFigure::getIsDeleted, 0)
-				.in(BrandFigure::getPid, brandIds));
-		}
-		for (PjOrder e : pages.getRecords()) {
-			List<PjOrderItems> nowOrderItems = itemsList.stream().filter(e1 -> e1.getPid().equals(e.getId())).collect(Collectors.toList());
-			e.setOrderItemsList(nowOrderItems);
-			for (PjOrderItems item : nowOrderItems) {
-				// TODO: 与别的地方代码重复,需要优化
-				if (!org.springframework.util.StringUtils.isEmpty(item.getUrl())) {
-					continue;
-				}
-				PjGoodsFiles goodsFiles = pjGoodsFiles.stream().filter(goods -> goods.getPid().equals(item.getGoodsId())).findFirst().orElse(null);
-				if (goodsFiles != null) {
-					item.setUrl(goodsFiles.getUrl());
-					continue;
-				}
-				if (brandFilesList == null) {
-					continue;
-				}
-				if (brandFigureList == null) {
-					continue;
-				}
-				BrandFigure brandFigure = brandFigureList.stream().filter(brand -> brand.getPid().equals(item.getBrandId())).findFirst().orElse(null);
-				if (brandFigure != null) {
-					item.setUrl(brandFigure.getUrl());
-					continue;
-				}
-				PjBrandFiles brandFiles = brandFilesList.stream().filter(brand -> brand.getPid().equals(item.getBrandId())).findFirst().orElse(null);
-				if (brandFiles == null) {
-					continue;
-				}
-				item.setUrl(brandFiles.getUrl());
-			}
-		}*/
 		return pages;
 	}
 
+	@Override
+	public R<String> closeOrder(PjOrder order) {
+		BladeUser bladeUser = AuthUtil.getUser();
+		PjOrder srcOrder = baseMapper.selectOne(new LambdaQueryWrapper<PjOrder>().eq(PjOrder::getId, order.getId()).eq(PjOrder::getTenantId, bladeUser.getTenantId()));
+		if (org.springframework.util.ObjectUtils.isEmpty(srcOrder)){
+			return R.fail("未找到该订单");
+		}
+		if (srcOrder.getIsDeleted().equals(NumberEnum.ONE.number)){
+			return R.fail("订单已关闭");
+		}
+		srcOrder = new PjOrder();
+		srcOrder.setId(order.getId());
+		srcOrder.setTenantId(bladeUser.getTenantId());
+		srcOrder.setIsDeleted(NumberEnum.ONE.number);
+		srcOrder.setUpdateTime(new Date());
+		srcOrder.setUpdateUser(bladeUser.getUserId());
+		int updateCount = baseMapper.updateById(srcOrder);
+		return updateCount > 0 ? R.success("订单已关闭") : R.fail("订单关闭失败");
+	}
+
 	/**
 	 * 保存订单信息
 	 */