Browse Source

1.小程序详情查询库存改为合并显示
2.增加单据作废接口

纪新园 6 days ago
parent
commit
586e6a2074

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

@@ -97,7 +97,7 @@ public class OrderController extends BladeController {
 		BladeUser selectedUser = AuthUtil.getUser();
 		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.select(PjOrder::getId, PjOrder::getOrdNo, PjOrder::getSrcOrdNo, PjOrder::getBusinessSource,
-				PjOrder::getSalesCompanyName, PjOrder::getCustomerName, PjOrder::getSalerName, PjOrder::getStorageName,
+				PjOrder::getSalesCompanyName, PjOrder::getCustomerName, PjOrder::getCustomerId, PjOrder::getSalerName, PjOrder::getStorageName,
 				PjOrder::getNumberRows, PjOrder::getGoodsNameJoin, PjOrder::getGoodsTotalNum, PjOrder::getTotalMoney,
 				PjOrder::getPaymentAmountTl, PjOrder::getStatus, PjOrder::getActualPaymentStatus, PjOrder::getReturnsStatus,
 				PjOrder::getBusinesDate, PjOrder::getPaymentDate, PjOrder::getCreateUser, PjOrder::getCreateTime,
@@ -107,7 +107,8 @@ public class OrderController extends BladeController {
 				PjOrder::getGoodsTotalShipAmount, PjOrder::getOutGoodsTotalShipNum, PjOrder::getOutGoodsTotalShipAmount,
 				PjOrder::getGoodsTotalShipNum, PjOrder::getSalesAmount, PjOrder::getRefno, PjOrder::getPrimaryGoodsTotalNum,
 				PjOrder::getPrimaryFundingAmount, PjOrder::getUseAdvanceChargeAmount, PjOrder::getProduceAdvanceChargeAmount, PjOrder::getVersion,
-				PjOrder::getDeliveryBusinesDate, PjOrder::getSalesCompanyId, PjOrder::getBillType, PjOrder::getRemarks, PjOrder::getPaymentRecoveredBalance)
+				PjOrder::getDeliveryBusinesDate, PjOrder::getSalesCompanyId, PjOrder::getBillType, PjOrder::getRemarks,
+				PjOrder::getPaymentRecoveredBalance,PjOrder::getGenerateTask)
 			.eq(PjOrder::getTenantId, selectedUser.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
@@ -179,7 +180,7 @@ public class OrderController extends BladeController {
 		boolean whetherDatabaseSharding = ParameterUtils.whetherDatabaseSharding();
 		// selectedUser
 		String userRole = AuthUtil.getUserRole();
-		if (!userRole.contains("admin") && !userRole.contains("老板")&& !userRole.contains("客服")) {
+		if (!userRole.contains("admin") && !userRole.contains("老板") && !userRole.contains("客服")) {
 			if (userRole.contains("业务员")) {
 				if (ObjectUtils.isNotNull(userStorageId) && whetherDatabaseSharding) {
 					lambdaQueryWrapper.and(e -> e.eq(PjOrder::getSalerId, selectedUser.getUserId()).or().apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')"));
@@ -189,7 +190,7 @@ public class OrderController extends BladeController {
 				}
 			} else if (userRole.contains("客户")) {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, selectedUser.getUserId());
-			} else if (ObjectUtils.isNotNull(userStorageId) && whetherDatabaseSharding){
+			} else if (ObjectUtils.isNotNull(userStorageId) && whetherDatabaseSharding) {
 				lambdaQueryWrapper.apply("find_in_set(storage_id,'" + userStorageId + "')");
 			}
 		}
@@ -262,7 +263,7 @@ public class OrderController extends BladeController {
 		BladeUser exportUser = AuthUtil.getUser();
 		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.select(PjOrder::getId, PjOrder::getOrdNo, PjOrder::getSrcOrdNo, PjOrder::getBusinessSource,
-				PjOrder::getSalesCompanyName, PjOrder::getCustomerName, PjOrder::getSalerName, PjOrder::getStorageName,
+				PjOrder::getSalesCompanyName, PjOrder::getCustomerName, PjOrder::getCustomerId, PjOrder::getSalerName, PjOrder::getStorageName,
 				PjOrder::getNumberRows, PjOrder::getGoodsNameJoin, PjOrder::getGoodsTotalNum, PjOrder::getTotalMoney,
 				PjOrder::getPaymentAmountTl, PjOrder::getStatus, PjOrder::getActualPaymentStatus, PjOrder::getReturnsStatus,
 				PjOrder::getBusinesDate, PjOrder::getPaymentDate, PjOrder::getCreateUser, PjOrder::getCreateTime,
@@ -1536,4 +1537,20 @@ public class OrderController extends BladeController {
 		return orderService.getExpenditurePrice(order);
 	}
 
+	/**
+	 * 单据作废
+	 */
+	@GetMapping("/voidedDocument")
+	@RepeatSubmit
+	public R voidedDocument(@RequestParam("id") Long id) {
+		PjOrder order = orderService.getById(id);
+		if (order == null){
+			throw new RuntimeException("未查到单据信息");
+		}
+		if ("已生成".equals(order.getGenerateTask())){
+			throw new RuntimeException("单据已生成,作废失败");
+		}
+		return R.status(orderService.removeById(id));
+	}
+
 }

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

@@ -78,7 +78,7 @@ public class ReturnsController {
 				PjOrder::getPaymentAmountTl,PjOrder::getStatus,PjOrder::getActualPaymentStatus,PjOrder::getReturnsStatus,
 				PjOrder::getBusinesDate,PjOrder::getPaymentDate,PjOrder::getCreateUser,PjOrder::getCreateTime,
 				PjOrder::getUpdateUser,PjOrder::getUpdateTime,PjOrder::getReturnsNumber,PjOrder::getReturnsAmount,
-				PjOrder::getSrcNo)
+				PjOrder::getSrcNo,PjOrder::getGenerateTask)
 			.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())

+ 29 - 16
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/controller/StockDescController.java

@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -53,10 +54,7 @@ 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.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -111,9 +109,9 @@ public class StockDescController extends BladeController {
 			.like(ObjectUtil.isNotEmpty(stockDesc.getDot()), PjStockDesc::getDot, stockDesc.getDot())
 			.orderByDesc(PjStockDesc::getBalanceQuantity);
 		String appWhetherZeroInventory = iSysClient.getParamService("app.whether.zero.inventory");
-		if ("0".equals(appWhetherZeroInventory)){
+		if ("0".equals(appWhetherZeroInventory)) {
 			lambdaQueryWrapper.ne(PjStockDesc::getBalanceQuantity, 0);
-		}else{
+		} else {
 			if ("0".equals(stockDesc.getWhether())) {
 				lambdaQueryWrapper.ne(PjStockDesc::getBalanceQuantity, 0);
 			}
@@ -299,7 +297,7 @@ public class StockDescController extends BladeController {
 		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
 			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = goodsDescService.list(new LambdaQueryWrapper<PjGoodsDesc>()
 				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
@@ -451,7 +449,7 @@ public class StockDescController extends BladeController {
 		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
 			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = goodsDescService.list(new LambdaQueryWrapper<PjGoodsDesc>()
 				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
@@ -525,8 +523,8 @@ public class StockDescController extends BladeController {
 		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
 			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageName()), PjStockDesc::getStorageName, stockDesc.getStorageName());
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageName()), PjStockDesc::getStorageName, stockDesc.getStorageName());
 		List<PjProductLaunch> pjProductLaunchList = new ArrayList<>();
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = new ArrayList<>();
@@ -676,7 +674,7 @@ public class StockDescController extends BladeController {
 		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
 			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		List<StockBrandExcel> mapList = new ArrayList<>();
 		if (!list.isEmpty()) {
@@ -798,7 +796,7 @@ public class StockDescController extends BladeController {
 		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
 			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		List<StockBrandExcel> stockBrandExcelList = new ArrayList<>();
 		if (!list.isEmpty()) {
@@ -924,7 +922,7 @@ public class StockDescController extends BladeController {
 		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
 			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		return R.data(list);
 	}
@@ -947,7 +945,7 @@ public class StockDescController extends BladeController {
 		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
 			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		return R.data(list);
 	}
@@ -1038,7 +1036,7 @@ public class StockDescController extends BladeController {
 		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
 			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		PjProductLaunch productLaunch = null;
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			PjGoodsDesc pjGoodsDescs = goodsDescService.getOne(new LambdaQueryWrapper<PjGoodsDesc>()
@@ -1062,6 +1060,8 @@ public class StockDescController extends BladeController {
 		}
 		lambdaQueryWrapper.orderByDesc(PjStockDesc::getBalanceQuantity);
 		IPage<PjStockDesc> pages = stockDescService.page(Condition.getPage(query), lambdaQueryWrapper);
+		IPage<PjStockDesc> stockDescIPage = new Page<>();
+		List<PjStockDesc> stockDescList = new ArrayList<>();
 		if (!pages.getRecords().isEmpty()) {
 			List<PjGoodsFiles> goodsFilesList = new ArrayList<>();
 			List<PjBrandFiles> pjBrandFilesList = new ArrayList<>();
@@ -1121,7 +1121,20 @@ public class StockDescController extends BladeController {
 					}
 				}
 			}
+			List<PjStockDesc> stockDescs = pages.getRecords().stream().collect(Collectors.collectingAndThen(
+				Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(p -> p.getGoodsId() + "," + p.getStorageId()))), ArrayList::new));
+			for (PjStockDesc item : stockDescs) {
+				BigDecimal balanceQuantity = pages.getRecords().stream().filter(e -> e.getStorageId().equals(item.getStorageId()) &&
+					e.getGoodsId().equals(item.getGoodsId())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+				item.setBalanceQuantity(balanceQuantity);
+				stockDescList.add(item);
+			}
 		}
-		return R.data(pages);
+		stockDescIPage.setRecords(stockDescList);
+		stockDescIPage.setTotal(pages.getTotal());
+		stockDescIPage.setPages(pages.getPages());
+		stockDescIPage.setCurrent(pages.getCurrent());
+		stockDescIPage.setSize(pages.getSize());
+		return R.data(stockDescIPage);
 	}
 }