Procházet zdrojové kódy

2024年12月4日17:12:23

纪新园 před 11 měsíci
rodič
revize
81bfbdd708
14 změnil soubory, kde provedl 699 přidání a 476 odebrání
  1. 5 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IGoodsDescClient.java
  2. 5 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderItem.java
  3. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/aea/entity/AeaBills.java
  4. 10 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjShipItems.java
  5. 10 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjStockDesc.java
  6. 8 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/feign/GoodsDescClient.java
  7. 20 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/aea/service/impl/AeaBillsServiceImpl.java
  8. 51 27
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  9. 91 35
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/AgencyOrderController.java
  10. 33 26
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java
  11. 1 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  12. 8 6
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  13. 443 378
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java
  14. 8 4
      blade-service/blade-stock/src/main/java/org/springblade/stock/feign/StockGoodsClient.java

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

@@ -34,6 +34,8 @@ public interface IGoodsDescClient {
 	String GET_TERRAC_ECODE = API_PREFIX + "getTerraceCode";
 	String GET_GOODS_DESC_DETIAL = API_PREFIX + "getGoodsDescDetail";
 	String GET_GOODS_DESC = API_PREFIX + "getGoodsDesc";
+
+	String GET_GOODS_DESC_BY_ID = API_PREFIX + "getGoodsDescById";
 	String GET_GOODS_DESC_BY_CNAME = API_PREFIX + "getGoodsDescByCname";
 	String GOODS_ITEMSID = API_PREFIX + "selectItemsIdGoods";
 	String GOODS_ALL = API_PREFIX + "selectGoodsDescAll";
@@ -194,6 +196,9 @@ public interface IGoodsDescClient {
 	@GetMapping(GET_GOODS_DESC)
 	GoodsDesc getGoodsDesc(@RequestParam("Id") Long Id, @RequestParam("tenantId") String tenantId);
 
+	@GetMapping(GET_GOODS_DESC_BY_ID)
+	GoodsDesc getGoodsDescById(@RequestParam("Id") Long Id, @RequestParam("tenantId") String tenantId);
+
 
 	/**
 	 * 获取商品信息

+ 5 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderItem.java

@@ -81,6 +81,11 @@ public class OrderItem implements Serializable {
 	@ApiModelProperty(value = "箱号")
 	private String ctnNo;
 	/**
+	 * 铅封号
+	 */
+	@ApiModelProperty(value = "铅封号")
+	private String sealNo;
+	/**
 	 * 尺寸
 	 */
 	@ApiModelProperty(value = "尺寸")

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

@@ -1340,6 +1340,12 @@ public class AeaBills implements Serializable {
 	private List<FeeCenterReports> feeCenterList;
 
 	/**
+	 * 费用中心(Amend)
+	 */
+	@TableField(exist = false)
+	private List<FeeCenter> feeCenterAmendList;
+
+	/**
 	 * 报表表头信息
 	 */
 	@TableField(exist = false)

+ 10 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjShipItems.java

@@ -208,6 +208,16 @@ public class PjShipItems implements Serializable {
 	@ApiModelProperty(value = "发货数")
 	private BigDecimal sendNum;
 	/**
+	 * 融资数量
+	 */
+	@ApiModelProperty(value = "融资数量")
+	private BigDecimal sendNumFinancing;
+	/**
+	 * 自有数量
+	 */
+	@ApiModelProperty(value = "自有数量")
+	private BigDecimal sendNumHave;
+	/**
 	 * 参考库存
 	 */
 	@ApiModelProperty(value = "参考库存")

+ 10 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjStockDesc.java

@@ -164,6 +164,16 @@ public class PjStockDesc implements Serializable {
 	@ApiModelProperty(value = "结余数量")
 	private BigDecimal balanceQuantity;
 	/**
+	 * 结余数量(融资)
+	 */
+	@ApiModelProperty(value = "结余数量(融资)")
+	private BigDecimal balanceQuantityFinancing;
+	/**
+	 * 结余数量(自有)
+	 */
+	@ApiModelProperty(value = "结余数量(自有)")
+	private BigDecimal balanceQuantityHave;
+	/**
 	 * 所属公司id
 	 */
 	@ApiModelProperty(value = "所属公司id")

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

@@ -220,6 +220,14 @@ public class GoodsDescClient implements IGoodsDescClient {
 		return goodsDescService.getGoodsDesc(id, tenantId);
 	}
 
+	@Override
+	public GoodsDesc getGoodsDescById(Long id, String tenantId) {
+		return goodsDescService.getOne(new LambdaQueryWrapper<GoodsDesc>()
+			.eq(GoodsDesc::getTenantId,tenantId)
+			.eq(GoodsDesc::getIsDeleted,0)
+			.eq(GoodsDesc::getId,id));
+	}
+
 	/**
 	 * 获取商品信息
 	 *

+ 20 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/aea/service/impl/AeaBillsServiceImpl.java

@@ -42,6 +42,8 @@ import org.springblade.los.business.aea.entity.AeaBills;
 import org.springblade.los.business.aea.mapper.AeaBillsMapper;
 import org.springblade.los.business.aea.service.IAeaBillsService;
 import org.springblade.los.business.aea.vo.AeaBillsVO;
+import org.springblade.los.business.amends.entity.Amends;
+import org.springblade.los.business.amends.mapper.AmendsMapper;
 import org.springblade.los.business.files.entity.FilesCenter;
 import org.springblade.los.business.files.service.IFilesCenterService;
 import org.springblade.los.business.sea.entity.Bills;
@@ -113,6 +115,8 @@ public class AeaBillsServiceImpl extends ServiceImpl<AeaBillsMapper, AeaBills> i
 
 	private final FinPeriodMapper finPeriodMapper;
 
+	private final AmendsMapper amendsMapper;
+
 	@Override
 	public IPage<AeaBillsVO> selectAeaBillsPage(IPage<AeaBillsVO> page, AeaBillsVO aeaBills) {
 		return page.setRecords(baseMapper.selectAeaBillsPage(page, aeaBills));
@@ -578,6 +582,22 @@ public class AeaBillsServiceImpl extends ServiceImpl<AeaBillsMapper, AeaBills> i
 			.eq(FeeCenter::getPid, detail.getId())
 			.eq(FeeCenter::getDc, "D")
 		));
+		detail.setFeeCenterAmendList(new ArrayList<>());
+		List<Amends> amendsList = amendsMapper.selectList(new LambdaQueryWrapper<Amends>()
+			.eq(Amends::getTenantId, AuthUtil.getTenantId())
+			.eq(Amends::getIsDeleted, 0)
+			.eq(Amends::getStatus, 3)
+			.eq(Amends::getOrigId, detail.getId()));
+		if (!amendsList.isEmpty()) {
+			List<Long> ids = amendsList.stream().map(Amends::getId).distinct().collect(Collectors.toList());
+			detail.setFeeCenterAmendList(feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+				.eq(FeeCenter::getIsDeleted, 0)
+				.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+				.in(FeeCenter::getPid, ids)
+			));
+		} else {
+			detail.setFeeCenterAmendList(new ArrayList<>());
+		}
 		return detail;
 	}
 

+ 51 - 27
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -35,6 +35,8 @@ import org.springblade.los.basic.corps.entity.BCorps;
 import org.springblade.los.basic.corps.service.IBCorpsService;
 import org.springblade.los.basic.cur.entity.BCurrency;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
+import org.springblade.los.basic.vessels.entity.BVessels;
+import org.springblade.los.basic.vessels.mapper.VesselsMapper;
 import org.springblade.los.billno.entity.BusinessBillNo;
 import org.springblade.los.billno.service.IBusinessBillNoService;
 import org.springblade.los.business.amends.entity.Amends;
@@ -142,6 +144,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 
 	private final ISeaBillsDetailService seaBillsDetailService;
 
+	private final VesselsMapper vesselsMapper;
+
 	@Override
 	public IPage<BillsVO> selectBillsPage(IPage<BillsVO> page, BillsVO bills) {
 		return page.setRecords(baseMapper.selectBillsPage(page, bills));
@@ -178,6 +182,26 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		} else {
 			bills.setBillDate(bills.getEta());
 		}
+		if (ObjectUtils.isNotNull(bills.getVesselCnName())) {
+			BVessels vessels = vesselsMapper.selectOne(new LambdaQueryWrapper<BVessels>()
+				.eq(BVessels::getTenantId, AuthUtil.getTenantId())
+				.eq(BVessels::getIsDeleted, 0)
+				.eq(BVessels::getCnName, bills.getVesselCnName()));
+			if (vessels != null) {
+				bills.setVesselId(vessels.getId());
+				bills.setVesselCnName(vessels.getCnName());
+				bills.setVesselEnName(vessels.getEnName());
+			} else {
+				BVessels bVessels = new BVessels();
+				bVessels.setCnName(bills.getVesselCnName());
+				bVessels.setCode(bills.getVesselEnName());
+				bVessels.setEnName(bills.getVesselEnName());
+				vesselsMapper.insert(bVessels);
+				bills.setVesselId(bVessels.getId());
+				bills.setVesselCnName(bVessels.getCnName());
+				bills.setVesselEnName(bVessels.getEnName());
+			}
+		}
 		if (ObjectUtils.isNotNull(bills.getBillDate())) {
 			LocalDate date = bills.getBillDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
 			int year = date.getYear();
@@ -416,36 +440,36 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		BigDecimal teu = new BigDecimal("0.00");
 		StringBuilder boxTypeSum = new StringBuilder();
 //		if (ObjectUtils.isNull(bills.getCfsQuantity()) || bills.getCfsQuantity().compareTo(new BigDecimal("0.00")) == 0) {
-			if (ObjectUtils.isNotNull(bills.getPreContainersList())) {
-				for (PreContainers item : bills.getPreContainersList()) {
-					item.setPid(bills.getId());
-					if (item.getCntrTypeCode().contains("20")) {
-						V20 += item.getQuantity();
-					} else if (item.getCntrTypeCode().contains("45")) {
-						V45 += item.getQuantity();
-					} else if (item.getCntrTypeCode().contains("48")) {
-						V48 += item.getQuantity();
-					} else if (item.getCntrTypeCode().contains("40")) {
-						V40 += item.getQuantity();
-					} else if (item.getCntrTypeCode().contains("40") && item.getCntrTypeCode().contains("HC")) {
-						V40HC += item.getQuantity();
-					} else {
-						other += item.getQuantity();
-					}
-					boxTypeSum.append(item.getCntrTypeCode()).append("*").append(item.getQuantity()).append(",");
-					if (ObjectUtils.isNotNull(item.getQuantity()) && ObjectUtils.isNotNull(item.getTeu())) {
-						teu = teu.add(new BigDecimal(item.getQuantity()).multiply(item.getTeu()));
-					}
-				}
-				R res = preContainersService.submitList(bills.getPreContainersList());
-				if (!res.isSuccess()) {
-					throw new RuntimeException("保存失败");
+		if (ObjectUtils.isNotNull(bills.getPreContainersList())) {
+			for (PreContainers item : bills.getPreContainersList()) {
+				item.setPid(bills.getId());
+				if (item.getCntrTypeCode().contains("20")) {
+					V20 += item.getQuantity();
+				} else if (item.getCntrTypeCode().contains("45")) {
+					V45 += item.getQuantity();
+				} else if (item.getCntrTypeCode().contains("48")) {
+					V48 += item.getQuantity();
+				} else if (item.getCntrTypeCode().contains("40")) {
+					V40 += item.getQuantity();
+				} else if (item.getCntrTypeCode().contains("40") && item.getCntrTypeCode().contains("HC")) {
+					V40HC += item.getQuantity();
+				} else {
+					other += item.getQuantity();
 				}
-				if (boxTypeSum.length() > 0) {
-					boxTypeSum = new StringBuilder(boxTypeSum.substring(0, boxTypeSum.length() - 1));
-					bills.setQuantityCntrDescr(boxTypeSum.toString());
+				boxTypeSum.append(item.getCntrTypeCode()).append("*").append(item.getQuantity()).append(",");
+				if (ObjectUtils.isNotNull(item.getQuantity()) && ObjectUtils.isNotNull(item.getTeu())) {
+					teu = teu.add(new BigDecimal(item.getQuantity()).multiply(item.getTeu()));
 				}
 			}
+			R res = preContainersService.submitList(bills.getPreContainersList());
+			if (!res.isSuccess()) {
+				throw new RuntimeException("保存失败");
+			}
+			if (boxTypeSum.length() > 0) {
+				boxTypeSum = new StringBuilder(boxTypeSum.substring(0, boxTypeSum.length() - 1));
+				bills.setQuantityCntrDescr(boxTypeSum.toString());
+			}
+		}
 //		}
 		bills.setQuantityV20(V20);
 		bills.setQuantityV40(V40);

+ 91 - 35
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/AgencyOrderController.java

@@ -1,7 +1,6 @@
 package org.springblade.purchase.sales.controller;
 
 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.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -42,6 +41,7 @@ import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 平台代理订单 控制器
@@ -95,7 +95,19 @@ public class AgencyOrderController extends BladeController {
 		lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.AGENCY_ORDER.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
+		if (AuthUtil.getUserRole().contains("客户")) {
+			Long corpId = null;
+			CorpsAttn corpsAttn = corpsAttnClient.getUser(AuthUtil.getUserId(), AuthUtil.getTenantId());
+			if (corpsAttn != null) {
+				R<CorpsDesc> res = corpsDescClient.getCorpMessage(corpsAttn.getPid());
+				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+					corpId = res.getData().getId();
+				}
+			}
+			lambdaQueryWrapper.eq(Order::getCorpId, corpId);//客户id
+		} else {
+			lambdaQueryWrapper.eq(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());//合同日期结束
@@ -104,9 +116,9 @@ public class AgencyOrderController extends BladeController {
 		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());//发货日期结束
-		if (ObjectUtils.isNotNull(order.getBusinesDateList()) && !order.getBusinesDateList().isEmpty()){
-			lambdaQueryWrapper.ge( Order::getBusinesDate, order.getBusinesDateList().get(0));
-			lambdaQueryWrapper.le( Order::getBusinesDate, order.getBusinesDateList().get(1));
+		if (ObjectUtils.isNotNull(order.getBusinesDateList()) && !order.getBusinesDateList().isEmpty()) {
+			lambdaQueryWrapper.ge(Order::getBusinesDate, order.getBusinesDateList().get(0));
+			lambdaQueryWrapper.le(Order::getBusinesDate, order.getBusinesDateList().get(1));
 		}
 		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDeliveryStartDate()), Order::getRequiredDeliveryDate, order.getDeliveryStartDate());//要求发货日期开始
 		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()), Order::getRequiredDeliveryDate, order.getDeliveryEndDate());//要求发货日期结束
@@ -130,38 +142,82 @@ public class AgencyOrderController extends BladeController {
 		lambdaQueryWrapper.orderByDesc(Order::getId);
 		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(page.getRecords())) {
-			page.getRecords().stream().forEach(item -> {
-				if (item.getCorpId() != null) {
-					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());//客户
-					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
-						item.setCorpsName(corpMessage.getData().getCname());
+			List<Long> userIds = new ArrayList<>();
+			List<Long> corpIds = new ArrayList<>();
+			List<Long> ids = page.getRecords().stream().map(Order::getId).collect(Collectors.toList());
+			List<Long> corpId = page.getRecords().stream().map(Order::getCorpId).distinct().collect(Collectors.toList());
+			if (!corpId.isEmpty()) {
+				corpIds.addAll(corpId);
+			}
+			List<Long> belongToCorpId = page.getRecords().stream().map(Order::getBelongToCorpId).filter(toCorpId -> !corpIds.contains(toCorpId)).collect(Collectors.toList());
+			if (!belongToCorpId.isEmpty()) {
+				corpIds.addAll(belongToCorpId);
+			}
+			List<Long> productionPlant = page.getRecords().stream().map(Order::getProductionPlant).filter(plant -> !corpIds.contains(plant)).collect(Collectors.toList());
+			if (!productionPlant.isEmpty()) {
+				corpIds.addAll(productionPlant);
+			}
+			List<Long> createUser = page.getRecords().stream().map(Order::getCreateUser).distinct().collect(Collectors.toList());
+			if (!createUser.isEmpty()) {
+				userIds.addAll(createUser);
+			}
+			List<Long> updateUser = page.getRecords().stream().map(Order::getUpdateUser).filter(id -> !userIds.contains(id)).collect(Collectors.toList());
+			if (!updateUser.isEmpty()) {
+				userIds.addAll(updateUser);
+			}
+			String corp = "";
+			List<CorpsDesc> corpsDescList = new ArrayList<>();
+			for (Long item : corpId) {
+				corp = corp + item + ",";
+			}
+			if (ObjectUtils.isNotNull(corp)) {
+				corpsDescList = corpsDescClient.selectByCorpIds(corp.substring(0, corp.length() - 1));
+			}
+			String user = "";
+			List<User> userList = new ArrayList<>();
+			for (Long item : userIds) {
+				user = user + item + ",";
+			}
+			if (ObjectUtils.isNotNull(user)) {
+				userList = userClient.selectUserList(user.substring(0, user.length() - 1));
+			}
+
+			List<OrderItems> list = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
+				.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(OrderItems::getIsDeleted, 0)
+				.in(OrderItems::getPid, ids));
+			for (Order item : page.getRecords()) {
+				if (!corpsDescList.isEmpty()) {
+					if (item.getCorpId() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getCorpId())).findFirst()
+							.ifPresent(corpsDesc -> item.setCorpsName(corpsDesc.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.getBelongToCorpId() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId())).findFirst()
+							.ifPresent(corpsDesc -> item.setBelongToCorpName(corpsDesc.getCname()));
 					}
-				}
-				if (item.getProductionPlant() != null) {
-					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getProductionPlant());//销售公司
-					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
-						item.setProductionPlantName(corpMessage.getData().getCname());
+					if (item.getProductionPlant() != null) {
+						corpsDescList.stream().filter(e -> e.getId().equals(item.getProductionPlant())).findFirst()
+							.ifPresent(corpsDesc -> item.setProductionPlantName(corpsDesc.getCname()));
 					}
 				}
-				R<User> user = userClient.userInfoById(item.getCreateUser());//制单人
-				if (user.isSuccess() && user.getData() != null) {
-					item.setCreateUserName(user.getData().getName());
+				if (!userList.isEmpty()) {
+					corpsDescList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst()
+						.ifPresent(corpsDesc -> item.setCreateUserName(corpsDesc.getCname()));
+					corpsDescList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst()
+						.ifPresent(corpsDesc -> item.setUpdateUserName(corpsDesc.getCname()));
 				}
 				//获取订单明细
-				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.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));//销售金额
-					item.setPurchaseAmount(list.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO, BigDecimal::add));//采购金额
-					item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//发货数量
+				if (!list.isEmpty()) {
+					List<OrderItems> orderItemsList = list.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
+					if (CollectionUtils.isNotEmpty(orderItemsList)) {
+						item.setOrderQuantity(orderItemsList.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//数量合计
+						item.setAmount(orderItemsList.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));//销售金额
+						item.setPurchaseAmount(orderItemsList.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO, BigDecimal::add));//采购金额
+						item.setActualQuantity(orderItemsList.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));//发货数量
+					}
 				}
-			});
+			}
 		}
 		return R.data(page);
 	}
@@ -289,13 +345,13 @@ public class AgencyOrderController extends BladeController {
 			goodsIds.append(item.getItemId()).append(",");
 		}
 		List<GoodsDesc> goodsDescList = new ArrayList<>();
-		if (ObjectUtils.isNotNull(goodsIds.toString())){
-			goodsDescList = goodsDescClient.selectItemsIdGoods(goodsIds.substring(0,goodsIds.length()-1));
+		if (ObjectUtils.isNotNull(goodsIds.toString())) {
+			goodsDescList = goodsDescClient.selectItemsIdGoods(goodsIds.substring(0, goodsIds.length() - 1));
 		}
 		for (OrderItems item : page) {
-			if (!goodsDescList.isEmpty()){
-				GoodsDesc goodsDesc = goodsDescList.stream().filter(e-> e.getId().equals(item.getItemId())).findFirst().orElse(null);
-				if (goodsDesc != null){
+			if (!goodsDescList.isEmpty()) {
+				GoodsDesc goodsDesc = goodsDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().orElse(null);
+				if (goodsDesc != null) {
 					item.setCname(goodsDesc.getCname());
 					item.setCode(goodsDesc.getCode());
 					item.setTypeno(goodsDesc.getTypeno());

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

@@ -142,6 +142,7 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 				stockGoods.setGoodsId(goods.getData().getId());
 				stockGoods.setItemType(goods.getData().getTypeno());
 				stockGoods.setWarehouseId(warehouseId);
+				stockGoods.setTenantId(goodsType.getTenantId());
 				List<StockGoods> stock = stockGoodsClient.selectStockList(stockGoods);
 				if (stock != null && !stock.isEmpty()) {
 					orderItems.setStorageQuantity(stock.get(0).getSurplusRouteQuantity());
@@ -287,13 +288,17 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 		List<AgencyOrderItemsExcel> itemsExcelList = new ArrayList<>();
 		StockGoods stockGoods = new StockGoods();
 		stockGoods.setBrand(brand);
+		stockGoods.setTenantId(AuthUtil.getTenantId());
 		List<StockGoods> stockGoodsList = stockGoodsClient.selectStockList(stockGoods);
 		for (StockGoods item : stockGoodsList) {
 			AgencyOrderItemsExcel agencyOrderItemsExcel = new AgencyOrderItemsExcel();
-			agencyOrderItemsExcel.setCode(item.getCode());
-			agencyOrderItemsExcel.setCname(item.getCname());
-			agencyOrderItemsExcel.setBrandItem(item.getBrandItem());
-			agencyOrderItemsExcel.setTypeno(item.getTypeno());
+			GoodsDesc goodsDesc = goodsDescClient.getGoodsDescById(item.getGoodsId(), AuthUtil.getTenantId());
+			if (goodsDesc != null) {
+				agencyOrderItemsExcel.setCode(goodsDesc.getCode());
+				agencyOrderItemsExcel.setCname(goodsDesc.getCname());
+				agencyOrderItemsExcel.setBrandItem(goodsDesc.getBrandItem());
+				agencyOrderItemsExcel.setTypeno(goodsDesc.getTypeno());
+			}
 			agencyOrderItemsExcel.setStorageQuantity(item.getBalanceQuantity());
 			itemsExcelList.add(agencyOrderItemsExcel);
 		}
@@ -304,28 +309,30 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	public R importAgency(List<AgencyOrderItemsExcel> excelList) {
 		List<OrderItems> list = new ArrayList<>();//导入成功
 		excelList.forEach(item -> {
-			R<GoodsDesc> goods = goodsDescClient.GoodsByCode(item.getCode());
-			if (goods.isSuccess() && goods.getData() != null) {
-				OrderItems orderItems = new OrderItems();
-				orderItems.setCode(item.getCode());
-				orderItems.setOrderQuantity(item.getOrderQuantity());
-				orderItems.setCname(goods.getData().getCname());//商品名称
-				orderItems.setItemId(goods.getData().getId());//商品id
-				orderItems.setTypeno(goods.getData().getTypeno());//商品规格
-				orderItems.setItemType(goods.getData().getTypeno());//商品规格
-				orderItems.setIntegralMultiples(goods.getData().getIntegralMultiples());//积分倍数
-				orderItems.setBrandItem(goods.getData().getBrandItem());//花纹
-				orderItems.setSize(goods.getData().getSize());//尺寸
-				orderItems.setPriceCategory("一般");//价格类别
-				orderItems.setCorpId(goods.getData().getCorpId());//供应id
-				orderItems.setCorpName(goods.getData().getCorpName());//供应商名称
-				orderItems.setCntrVolumn(goods.getData().getCntrVolumn());//箱体积
-				orderItems.setCartonWeight(goods.getData().getCartonWeight());//箱重量
-				GoodsType goodsType = goodsDescClient.goodTypeId(goods.getData().getId());
-				orderItems.setPriceCategory(goodsType.getCname());//商品类别名称
-				list.add(orderItems);
-			} else {
-				throw new RuntimeException("商品名称" + item.getCname() + "不存在");
+			if (ObjectUtils.isNotNull(item.getOrderQuantity()) && item.getOrderQuantity().compareTo(new BigDecimal(0)) != 0) {
+				R<GoodsDesc> goods = goodsDescClient.GoodsByCode(item.getCode());
+				if (goods.isSuccess() && goods.getData() != null) {
+					OrderItems orderItems = new OrderItems();
+					orderItems.setCode(item.getCode());
+					orderItems.setOrderQuantity(item.getOrderQuantity());
+					orderItems.setCname(goods.getData().getCname());//商品名称
+					orderItems.setItemId(goods.getData().getId());//商品id
+					orderItems.setTypeno(goods.getData().getTypeno());//商品规格
+					orderItems.setItemType(goods.getData().getTypeno());//商品规格
+					orderItems.setIntegralMultiples(goods.getData().getIntegralMultiples());//积分倍数
+					orderItems.setBrandItem(goods.getData().getBrandItem());//花纹
+					orderItems.setSize(goods.getData().getSize());//尺寸
+					orderItems.setPriceCategory("一般");//价格类别
+					orderItems.setCorpId(goods.getData().getCorpId());//供应id
+					orderItems.setCorpName(goods.getData().getCorpName());//供应商名称
+					orderItems.setCntrVolumn(goods.getData().getCntrVolumn());//箱体积
+					orderItems.setCartonWeight(goods.getData().getCartonWeight());//箱重量
+					GoodsType goodsType = goodsDescClient.goodTypeId(goods.getData().getId());
+					orderItems.setPriceCategory(goodsType.getCname());//商品类别名称
+					list.add(orderItems);
+				} else {
+					throw new RuntimeException("商品名称" + item.getCname() + "不存在");
+				}
 			}
 		});
 		return R.data(list);

+ 1 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -8303,6 +8303,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			auditProecessDTO.setSendUserId(AuthUtil.getUserId());
 			auditProecessDTO.setSendName(AuthUtil.getUserName());
 			auditProecessDTO.setSendTime(new Date());
+			auditProecessDTO.setBillTime(salesOrder.getBusinesDate());
 			R financeProcess = iCheckClient.createFinanceProcess(auditProecessDTO);
 			if (!financeProcess.isSuccess()) {
 				throw new SecurityException("操作失败,请联系管理员");

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

@@ -1100,6 +1100,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					stockDesc.setCreateTime(new Date());
 					stockDesc.setCreateUser(AuthUtil.getUserId());
 					stockDesc.setBalanceQuantity(e.getSendNum());
+					stockDesc.setBalanceQuantityHave(e.getSendNum());
 					stockDesc.setStoreInventory(e.getSendNum());
 					stockDesc.setInventoryAmount(e.getSendNum().multiply(e.getPrice()));
 					if (stockDesc.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
@@ -1112,6 +1113,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					stockDesc.setUpdateTime(new Date());
 					stockDesc.setUpdateUser(AuthUtil.getUserId());
 					stockDesc.setBalanceQuantity(stockOne.getBalanceQuantity().add(e.getSendNum()));
+					stockDesc.setBalanceQuantityHave(stockOne.getBalanceQuantityHave().add(e.getSendNum()));
 					stockDesc.setStoreInventory(stockDesc.getBalanceQuantity());
 					stockDesc.setInventoryAmount(e.getSendNum().multiply(e.getPrice()));
 					stockDesc.setInventoryAmount(stockDesc.getInventoryAmount().add(stockOne.getInventoryAmount()));
@@ -3697,11 +3699,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		String statu = sysClient.getParamService("whether.financing");
 //		String financingBrand = sysClient.getParamService("financing.brand");
 		if (order.getBsType().equals(OrderTypeEnum.SALES.getType())) {//销售
-			if (ObjectUtils.isNotNull(statu) && "1".equals(statu)) {
+			/*if (ObjectUtils.isNotNull(statu) && "1".equals(statu)) {
 				if (ObjectUtils.isNull(order.getStorageId())) {
 					throw new RuntimeException("请先维护仓库");
 				}
-			}
+			}*/
 			if (order.getId() == null) {
 				if (ObjectUtils.isNull(order.getBillType())) {
 					if (ObjectUtils.isNotNull(order.getStorageId())) {
@@ -3950,14 +3952,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		}
 		else if (order.getBsType().equals(OrderTypeEnum.PURCHASE.getType())) {
 			//采购
-			if (ObjectUtils.isNotNull(order.getStorageId())) {
+			/*if (ObjectUtils.isNotNull(order.getStorageId())) {
 				PjStorageDesc storageDesc = storageDescMapper.selectById(order.getStorageId());
 				if (storageDesc != null && "0".equals(storageDesc.getWhetherFinancing())){
 					order.setStorageName(storageDesc.getCname());
 				}else{
 					throw new RuntimeException("请选择自有仓库");
 				}
-			}
+			}*/
 			if (order.getId() == null) {
 				order.setOrdNo(billNo);
 				order.setCreateTime(new Date());
@@ -4087,14 +4089,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		}
 		else if (order.getBsType().equals(OrderTypeEnum.FINANCING.getType())) {
 			//仓库名称
-			if (ObjectUtils.isNotNull(order.getStorageId())) {
+			/*if (ObjectUtils.isNotNull(order.getStorageId())) {
 				PjStorageDesc storageDesc = storageDescMapper.selectById(order.getStorageId());
 				if (storageDesc != null && "1".equals(storageDesc.getWhetherFinancing())){
 					order.setStorageName(storageDesc.getCname());
 				}else{
 					throw new RuntimeException("请选择融资仓库");
 				}
-			}
+			}*/
 			if (order.getId() == null) {
 				order.setOrdNo(billNo);
 				order.setCreateTime(new Date());

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 443 - 378
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java


+ 8 - 4
blade-service/blade-stock/src/main/java/org/springblade/stock/feign/StockGoodsClient.java

@@ -346,10 +346,14 @@ public class StockGoodsClient implements IStockGoodsClient {
 
 	@Override
 	public List<StockGoods> selectStockList(StockGoods stockGoods) {
-		stockGoods.setTenantId(AuthUtil.getTenantId());
-		stockGoods.setIsDeleted(0);
-		QueryWrapper<StockGoods> queryWrapper = Condition.getQueryWrapper(stockGoods);
-		List<StockGoods> list = stockGoodsService.list(queryWrapper);
+		LambdaQueryWrapper<StockGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(StockGoods::getTenantId,stockGoods.getTenantId())
+			.eq(StockGoods::getIsDeleted,0)
+			.eq(ObjectUtils.isNotNull(stockGoods.getGoodsId()),StockGoods::getGoodsId,stockGoods.getGoodsId())
+			.eq(ObjectUtils.isNotNull(stockGoods.getItemType()),StockGoods::getItemType,stockGoods.getItemType())
+			.eq(ObjectUtils.isNotNull(stockGoods.getWarehouseId()),StockGoods::getWarehouseId,stockGoods.getWarehouseId())
+			.eq(ObjectUtils.isNotNull(stockGoods.getBrand()),StockGoods::getBrand,stockGoods.getBrand());
+		List<StockGoods> list = stockGoodsService.list(lambdaQueryWrapper);
 		list.forEach(e -> {
 			//获取仓库信息
 			if (e.getStorageId() != null) {

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů