纪新园 1 год назад
Родитель
Сommit
8dd466c45d

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Containers.java

@@ -417,6 +417,12 @@ public class Containers implements Serializable {
 	private String cyCntrCode;
 
 	/**
+	 * 配箱类型
+	 */
+	@TableField(exist = false)
+	private String type;
+
+	/**
 	 * 箱号装货明细
 	 */
 	@TableField(exist = false)

+ 56 - 14
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersServiceImpl.java

@@ -245,16 +245,41 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 			.eq(ContainersBills::getIsDeleted, 0)
 			.in(ContainersBills::getPid, toLongList));
 		if (ObjectUtils.isNotNull(containersBillsList)) {
-			for (ContainersBills item : containersBillsList) {
-				Bills bills = billsMapper.selectById(item.getPpId());
-				bills.setCfsQuantity((ObjectUtils.isNotNull(bills.getCfsQuantity()) ? bills.getCfsQuantity() : new BigDecimal("0.00")).subtract(item.getQuantity()));
-				bills.setCfsMeasurement((ObjectUtils.isNotNull(bills.getCfsMeasurement()) ? bills.getCfsMeasurement() : new BigDecimal("0.00")).subtract(item.getMeasurement()));
-				bills.setCfsGrossWeight((ObjectUtils.isNotNull(bills.getCfsGrossWeight()) ? bills.getCfsGrossWeight() : new BigDecimal("0.00")).subtract(item.getGrossWeight()));
-				bills.setUpdateUserName(AuthUtil.getUserName());
-				bills.setUpdateUser(AuthUtil.getUserId());
-				bills.setUpdateTime(new Date());
-				billsMapper.updateById(bills);
+			List<Long> idList = containersBillsList.stream().map(ContainersBills::getPpId).collect(Collectors.toList());
+			if (idList.isEmpty()){
+				throw new RuntimeException("数据错误,请联系管理员");
+			}
+			List<Bills> billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
+				.eq(Bills::getTenantId,AuthUtil.getTenantId())
+				.eq(Bills::getIsDeleted,0)
+				.in(Bills::getId,idList));
+			for (Bills item : billsList){
+				BigDecimal quantity = containersBillsList.stream().filter(e-> e.getPpId().equals(item.getId()))
+					.map(ContainersBills::getQuantity).reduce(BigDecimal.ZERO,BigDecimal::add);
+				BigDecimal grossWeight = containersBillsList.stream().filter(e-> e.getPpId().equals(item.getId()))
+					.map(ContainersBills::getMeasurement).reduce(BigDecimal.ZERO,BigDecimal::add);
+				BigDecimal measurement = containersBillsList.stream().filter(e-> e.getPpId().equals(item.getId()))
+					.map(ContainersBills::getGrossWeight).reduce(BigDecimal.ZERO,BigDecimal::add);
+				item.setCfsQuantity((ObjectUtils.isNotNull(item.getCfsQuantity()) ? item.getCfsQuantity() : new BigDecimal("0.00")).subtract(quantity));
+				item.setCfsMeasurement((ObjectUtils.isNotNull(item.getCfsMeasurement()) ? item.getCfsMeasurement() : new BigDecimal("0.00")).subtract(measurement));
+				item.setCfsGrossWeight((ObjectUtils.isNotNull(item.getCfsGrossWeight()) ? item.getCfsGrossWeight() : new BigDecimal("0.00")).subtract(grossWeight));
+				item.setUpdateUserName(AuthUtil.getUserName());
+				item.setUpdateUser(AuthUtil.getUserId());
+				item.setUpdateTime(new Date());
+				billsMapper.updateById(item);
 			}
+			/*for (ContainersBills item : containersBillsList) {
+				Bills bills = billsList.stream().filter(e-> e.getId().equals(item.getPpId())).findFirst().orElse(null);
+				if (bills != null){
+					bills.setCfsQuantity((ObjectUtils.isNotNull(bills.getCfsQuantity()) ? bills.getCfsQuantity() : new BigDecimal("0.00")).subtract(item.getQuantity()));
+					bills.setCfsMeasurement((ObjectUtils.isNotNull(bills.getCfsMeasurement()) ? bills.getCfsMeasurement() : new BigDecimal("0.00")).subtract(item.getMeasurement()));
+					bills.setCfsGrossWeight((ObjectUtils.isNotNull(bills.getCfsGrossWeight()) ? bills.getCfsGrossWeight() : new BigDecimal("0.00")).subtract(item.getGrossWeight()));
+					bills.setUpdateUserName(AuthUtil.getUserName());
+					bills.setUpdateUser(AuthUtil.getUserId());
+					bills.setUpdateTime(new Date());
+				}
+
+			}*/
 			containersBillsService.removeByIds(containersBillsList.stream().map(ContainersBills::getId).collect(Collectors.toList()));
 		}
 		List<Containers> containersList = baseMapper.selectList(new LambdaQueryWrapper<Containers>()
@@ -289,7 +314,13 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 		if (containersList.isEmpty()) {
 			throw new RuntimeException("待分配箱数据为空,操作失败");
 		}
-		BigDecimal teu = new BigDecimal(containersList.size());
+		BigDecimal teu = new BigDecimal("0.00");
+
+		if ("1".equals(containers.getType())){
+			 teu = containersList.stream().map(Containers::getTeu).reduce(BigDecimal.ZERO,BigDecimal::add);
+		}else{
+			teu = new BigDecimal(containersList.size());
+		}
 		if (new BigDecimal("0").compareTo(teu) == 0) {
 			throw new RuntimeException("待分配箱数量不能为零");
 		}
@@ -330,10 +361,21 @@ public class ContainersServiceImpl extends ServiceImpl<ContainersMapper, Contain
 			containersBills.setCreateUserName(AuthUtil.getUserName());
 			containersBills.setTenantId(AuthUtil.getTenantId());
 			containersBills.setPid(containersList.get(i).getId());
-			containersList.get(i).setQuantity(average);
-			containersList.get(i).setGrossWeight(averageGrossWeight);
-			containersList.get(i).setNetWeight(averageNetWeight);
-			containersList.get(i).setMeasurement(averageMeasurement);
+			if ("1".equals(containers.getType())){
+				if (ObjectUtils.isNotNull(containersList.get(i).getTeu())){
+					containersList.get(i).setQuantity(average.multiply(containersList.get(i).getTeu()));
+					containersList.get(i).setGrossWeight(averageGrossWeight.multiply(containersList.get(i).getTeu()));
+					containersList.get(i).setNetWeight(averageNetWeight.multiply(containersList.get(i).getTeu()));
+					containersList.get(i).setMeasurement(averageMeasurement.multiply(containersList.get(i).getTeu()));
+				}else{
+					throw new RuntimeException("TEU数量为空,请重新添加");
+				}
+			}else{
+				containersList.get(i).setQuantity(average);
+				containersList.get(i).setGrossWeight(averageGrossWeight);
+				containersList.get(i).setNetWeight(averageNetWeight);
+				containersList.get(i).setMeasurement(averageMeasurement);
+			}
 			containersBills.setQuantity(average);
 			containersBills.setGrossWeight(averageGrossWeight);
 			containersBills.setNetWeight(averageNetWeight);

+ 5 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/AgencyOrderController.java

@@ -31,6 +31,7 @@ import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.finance.vojo.Acc;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
+import org.springblade.purchase.sales.enums.OrderStatusEnum;
 import org.springblade.purchase.sales.service.*;
 import org.springblade.purchase.sales.vo.OrderVO;
 import org.springblade.system.user.entity.User;
@@ -263,8 +264,8 @@ public class AgencyOrderController extends BladeController {
 		lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.AGENCY_ORDER.getType());//订单类型
 		lambdaQueryWrapper.eq(Order::getTradeType, OrderTypeEnum.DOMESTIC.getType());//贸易类型
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
-//		lambdaQueryWrapper.eq(Order::getOrderStatus, OrderStatusEnum.PASS.getType());//单据状态
-//		lambdaQueryWrapper.eq(Order::getStatus, 3);//单据状态
+		lambdaQueryWrapper.eq(Order::getOrderStatus, OrderStatusEnum.PASS.getType());//单据状态
+		lambdaQueryWrapper.eq(Order::getStatus, 3);//单据状态
 		lambdaQueryWrapper.eq(Order::getGenerate, 0);//单据状态
 		lambdaQueryWrapper.orderByDesc(Order::getId);
 		List<Order> page = orderService.list(lambdaQueryWrapper);
@@ -335,6 +336,8 @@ public class AgencyOrderController extends BladeController {
 		}
 		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()), Order::getBusinesDate, order.getContractStartDate());//合同日期开始
 		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractEndDate()), Order::getBusinesDate, order.getContractEndDate());//合同日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getActualDeliveryDateStart()), Order::getActualDeliveryDate, order.getActualDeliveryDateStart());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getActualDeliveryDateEnd()), Order::getActualDeliveryDate, order.getActualDeliveryDateEnd());//发货日期结束
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()), Order::getSrcOrderNo, order.getSrcOrderNo());//订单来源
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()), Order::getArrivalAddress, order.getArrivalAddress());//到货地址
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()), Order::getSysNo, order.getSysNo());//系统编号

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

@@ -2909,7 +2909,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				order.setFundingAmount(actualFundingAmount);
 				if (fundingAmount.compareTo(actualFundingAmount) > 0) {
 					order.setUseAdvanceChargeAmountOld(order.getUseAdvanceChargeAmount());
-					BigDecimal amount = fundingAmount.subtract(actualFundingAmount);
+					BigDecimal amount = order.getTotalMoney().subtract(order.getGoodsTotalShipAmount());
 					if (order.getUseAdvanceChargeAmount().compareTo(actualFundingAmount) > 0) {
 						BigDecimal subAmount = order.getUseAdvanceChargeAmount().subtract(actualFundingAmount);
 						order.setUseAdvanceChargeAmount(actualFundingAmount);
@@ -3206,6 +3206,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 						.in(PjOrderItems::getGoodsId, goodsIds)
 						.eq(PjOrderItems::getBizType, "RZCG"));
 					List<Long> idList = itemsListRZCG.stream().map(PjOrderItems::getPid).distinct().collect(Collectors.toList());
+					if(idList.isEmpty()){
+						throw new RuntimeException("未查到融资商品");
+					}
 					List<PjOrder> orderList = baseMapper.selectList(new LambdaQueryWrapper<PjOrder>()
 						.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 						.eq(PjOrder::getIsDeleted, 0)

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

@@ -134,19 +134,19 @@ public class ShipController extends BladeController {
 		}
 		IPage<PjShip> pages = shipService.page(Condition.getPage(query), lambdaQueryWrapper);
 
-		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接
 		StringBuilder createUserIds = new StringBuilder();//创建人id拼接
+		List<Long> idList = new ArrayList<>();
 		for (PjShip items : pages.getRecords()) {
 			if (ObjectUtil.isNotEmpty(items.getUpdateUser())) {
-				updateUserIds.append(items.getUpdateUser()).append(",");
+				idList.add(items.getUpdateUser());
 			}
 			if (ObjectUtil.isNotEmpty(items.getCreateUser())) {
-				createUserIds.append(items.getCreateUser()).append(",");
+				idList.add(items.getCreateUser());
 			}
 		}
-
-		//获得修改人信息
-		List<User> updateUserList = userClient.selectUserIds(updateUserIds.toString());
+		for (Long item : idList){
+			createUserIds.append(item).append(",");
+		}
 		//获得创建人信息
 		List<User> createUserList = userClient.selectUserIds(createUserIds.toString());
 
@@ -155,8 +155,8 @@ public class ShipController extends BladeController {
 			List<PjShipItems> pjOrderItemsList = shipItemsService.list(new LambdaQueryWrapper<PjShipItems>().eq(PjShipItems::getIsDeleted, 0)
 				.in(PjShipItems::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 (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());
 					}

+ 3 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -5047,7 +5047,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				if (ObjectUtil.isEmpty(goodsDesc)) {
 					throw new RuntimeException("商品数据异常");
 				}
-
+				if ("1".equals(goodsDesc.getWhether()) && ObjectUtils.isNull(item.getDot())) {
+					throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
+				}
 				PjOrderItems orderItems = pjOrderItems.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
 				if (orderItems != null) {
 					if (ship.getBillno().contains("TK")) {

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

@@ -331,10 +331,10 @@ public class StockDescController extends BladeController {
 			stockDesc.setGoodsIds(ids);
 		}
 		stockDesc.setSalesCompanyIds(AuthUtil.getDeptId());
-		if ("0".equals(stockDesc.getWhether())){
+		if ("0".equals(stockDesc.getWhether())) {
 			IPage<PjStockDesc> pages = stockDescService.selectStockDescPage(Condition.getPage(query), stockDesc);
 			return R.data(pages);
-		}else{
+		} else {
 			IPage<PjStockDesc> pages = stockDescService.selectStockDescPageZero(Condition.getPage(query), stockDesc);
 			return R.data(pages);
 		}
@@ -854,4 +854,109 @@ public class StockDescController extends BladeController {
 		return stockDescService.submitProductLaunch(stockDesc);
 	}
 
+	/**
+	 * 小程序商品详情专用
+	 */
+	@GetMapping("/listV1")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入stockDesc")
+	public R<IPage<PjStockDesc>> listV1(PjStockDesc stockDesc, Query query) {
+		LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
+			.eq(PjStockDesc::getIsDeleted, 0)
+			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
+			.eq(ObjectUtil.isNotEmpty(stockDesc.getCode()), PjStockDesc::getCode, stockDesc.getCode())
+			.eq(ObjectUtil.isNotEmpty(stockDesc.getTypeno()), PjStockDesc::getTypeno, stockDesc.getTypeno())
+			.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
+			.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageName()), PjStockDesc::getStorageName, stockDesc.getStorageName())
+			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
+			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandName()), PjStockDesc::getBrandName, stockDesc.getBrandName())
+			.eq(ObjectUtil.isNotEmpty(stockDesc.getGoodsTypeId()), PjStockDesc::getGoodsTypeId, stockDesc.getGoodsTypeId())
+			.eq(ObjectUtil.isNotEmpty(stockDesc.getDot()), PjStockDesc::getDot, stockDesc.getDot())
+			.orderByDesc(PjStockDesc::getBalanceQuantity);
+		if ("0".equals(stockDesc.getWhether())) {
+			lambdaQueryWrapper.ne(PjStockDesc::getBalanceQuantity, 0);
+		}
+		PjProductLaunch productLaunch = null;
+		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
+			PjGoodsDesc pjGoodsDescs = goodsDescService.getOne(new LambdaQueryWrapper<PjGoodsDesc>()
+				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(PjGoodsDesc::getIsDeleted, 0)
+				.eq(PjGoodsDesc::getCname, stockDesc.getCname()));
+			if (pjGoodsDescs != null) {
+				productLaunch = productLaunchService.getOne(new LambdaQueryWrapper<PjProductLaunch>()
+					.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
+					.eq(PjProductLaunch::getIsDeleted, 0)
+					.in(PjProductLaunch::getGoodsId, pjGoodsDescs.getId())
+					.eq(PjProductLaunch::getSalesCompanyId, AuthUtil.getDeptId()));
+				lambdaQueryWrapper.eq(PjStockDesc::getCname, stockDesc.getCname());
+			} else {
+				lambdaQueryWrapper.eq(PjStockDesc::getCname, stockDesc.getCname());
+			}
+		}
+		lambdaQueryWrapper.orderByDesc(PjStockDesc::getBalanceQuantity);
+		IPage<PjStockDesc> pages = stockDescService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (!pages.getRecords().isEmpty()) {
+			List<PjGoodsFiles> goodsFilesList = new ArrayList<>();
+			List<PjBrandFiles> pjBrandFilesList = new ArrayList<>();
+			List<BrandFigure> brandFigureList = new ArrayList<>();
+			List<Long> goodsId = pages.getRecords().stream().map(PjStockDesc::getGoodsId).collect(Collectors.toList());
+			List<Long> brandIds = pages.getRecords().stream().map(PjStockDesc::getBrandId).collect(Collectors.toList());
+			if (!goodsId.isEmpty()) {
+				goodsFilesList = goodsFilesService.list(new LambdaQueryWrapper<PjGoodsFiles>()
+					.eq(PjGoodsFiles::getMainImage, 0)
+					.in(PjGoodsFiles::getPid, goodsId)
+					.eq(PjGoodsFiles::getTenantId, AuthUtil.getTenantId())
+					.eq(PjGoodsFiles::getIsDeleted, 0));
+			}
+			if (!brandIds.isEmpty()) {
+				pjBrandFilesList = brandFilesService.list(new QueryWrapper<PjBrandFiles>()
+					.in("pid", brandIds).eq("is_deleted", 0));
+				brandFigureList = brandFigureService.list(new QueryWrapper<BrandFigure>()
+					.in("pid", brandIds).eq("is_deleted", 0));
+			}
+			for (PjStockDesc item : pages.getRecords()) {
+				if (productLaunch != null) {
+					item.setPriceOne(productLaunch.getPriceOne());
+					item.setPriceTwo(productLaunch.getPriceTwo());
+					item.setPriceThree(productLaunch.getPriceThree());
+					item.setPriceFour(productLaunch.getPriceFour());
+				}
+				if (!goodsFilesList.isEmpty()) {
+					item.setGoodsFilesList(goodsFilesList.stream()
+						.filter(e -> e.getPid().equals(item.getGoodsId()))
+						.collect(Collectors.toList()));
+				} else {
+					if (ObjectUtils.isNotNull(item.getBrandId())) {
+						if (!brandFigureList.isEmpty()) {
+							List<BrandFigure> brandFigureList1 = brandFigureList.stream()
+								.filter(e -> e.getPid().equals(item.getBrandId()) && e.getFigure().equals(item.getBrandItem()))
+								.collect(Collectors.toList());
+							if (!brandFigureList1.isEmpty()) {
+								item.setGoodsFilesList(BeanUtil.copy(brandFigureList1, PjGoodsFiles.class));
+							} else {
+								List<PjBrandFiles> pjBrandFilesList1 = pjBrandFilesList.stream()
+									.filter(e -> e.getPid().equals(item.getBrandId()))
+									.collect(Collectors.toList());
+								if (!pjBrandFilesList1.isEmpty()) {
+									item.setGoodsFilesList(BeanUtil.copy(pjBrandFilesList1, PjGoodsFiles.class));
+								}
+							}
+
+						} else {
+							List<PjBrandFiles> pjBrandFilesList1 = pjBrandFilesList.stream()
+								.filter(e -> e.getPid().equals(item.getBrandId()))
+								.collect(Collectors.toList());
+							if (!pjBrandFilesList1.isEmpty()) {
+								item.setGoodsFilesList(BeanUtil.copy(pjBrandFilesList1, PjGoodsFiles.class));
+							}
+						}
+
+					}
+				}
+			}
+		}
+		return R.data(pages);
+	}
+
 }