纪新园 2 лет назад
Родитель
Сommit
ba4fdd09fc

+ 12 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/ContainersCommodityController.java

@@ -34,6 +34,8 @@ import org.springblade.los.business.sea.vo.ContainersCommodityVO;
 import org.springblade.los.business.sea.service.IContainersCommodityService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.List;
+
 /**
  * 业务-海运进出口配箱-箱号装货明细,用于 赫伯罗德(HLAG)危普混装 控制器
  *
@@ -111,6 +113,16 @@ public class ContainersCommodityController extends BladeController {
 		return containersCommodityService.submit(containersCommodity);
 	}
 
+	/**
+	 * 新增或修改 业务-海运进出口配箱-箱号装货明细,用于 赫伯罗德(HLAG)危普混装(批量)
+	 */
+	@PostMapping("/submitList")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入containersCommodity")
+	public R submitList(@Valid @RequestBody List<ContainersCommodity> containersCommodity) {
+		return containersCommodityService.submitList(containersCommodity);
+	}
+
 
 	/**
 	 * 删除 业务-海运进出口配箱-箱号装货明细,用于 赫伯罗德(HLAG)危普混装

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IContainersCommodityService.java

@@ -22,6 +22,8 @@ import org.springblade.los.business.sea.vo.ContainersCommodityVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 业务-海运进出口配箱-箱号装货明细,用于 赫伯罗德(HLAG)危普混装 服务类
  *
@@ -45,4 +47,6 @@ public interface IContainersCommodityService extends IService<ContainersCommodit
 	 * @return
 	 */
 	R submit(ContainersCommodity containersCommodity);
+
+    R submitList(List<ContainersCommodity> containersCommodity);
 }

+ 32 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/ContainersCommodityServiceImpl.java

@@ -79,4 +79,36 @@ public class ContainersCommodityServiceImpl extends ServiceImpl<ContainersCommod
 		return R.data(containersCommodity);
 	}
 
+	@Override
+	public R submitList(List<ContainersCommodity> containersCommodityList) {
+		String deptId = "";
+		String deptName = "";
+		//获取部门ids对应中文名
+		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+			deptId = AuthUtil.getDeptId();
+			R<List<String>> res = sysClient.getDeptNames(AuthUtil.getDeptId());
+			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+				deptName = String.join(",", res.getData());
+			}
+		}
+		for (ContainersCommodity containersCommodity : containersCommodityList) {
+			if (containersCommodity.getId() == null) {
+				containersCommodity.setCreateTime(new Date());
+				containersCommodity.setCreateUser(AuthUtil.getUserId());
+				containersCommodity.setCreateUserName(AuthUtil.getUserName());
+				if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+					containersCommodity.setBranchId(deptId);
+					containersCommodity.setCreateDept(deptId);
+					containersCommodity.setCreateDeptName(deptName);
+				}
+			} else {
+				containersCommodity.setUpdateUser(AuthUtil.getUserId());
+				containersCommodity.setUpdateTime(new Date());
+				containersCommodity.setUpdateUserName(AuthUtil.getUserName());
+			}
+		}
+		this.saveOrUpdateBatch(containersCommodityList);
+		return R.data(containersCommodityList);
+	}
+
 }

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

@@ -753,7 +753,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					//查询所有该商品的库存
 					List<PjStockDesc> stockDescList = finalPjStockDescList.stream().filter(i -> goodsIds.contains(i.getGoodsId())).collect(Collectors.toList());
 					if (stockDescList.size() > 0) {
-						 balanceQuantity = stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+						balanceQuantity = stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 					}
 				}
 
@@ -797,6 +797,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		pjOrder.setStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
 		pjOrder.setXcxStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
 		pjOrder.setShortcutWarehousingStatus("1");
+		pjOrder.setCheckStatus("审核完成");
 		baseMapper.updateById(pjOrder);
 		return R.data(pjOrder);
 	}
@@ -882,17 +883,26 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				StringBuilder retrieval = new StringBuilder();
 				List<Long> goodsId = order.getOrderItemsList().stream().map(PjOrderItems::getGoodsId).collect(Collectors.toList());
 				List<PjStockDesc> pjStockDescList = stockDescService.list(new LambdaQueryWrapper<PjStockDesc>()
-					.eq(PjStockDesc::getStorageId, order.getStorageId())
+					.eq(ObjectUtils.isNotNull(order.getStorageId()), PjStockDesc::getStorageId, order.getStorageId())
 					.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
 					.eq(PjStockDesc::getIsDeleted, 0)
 					.in(PjStockDesc::getGoodsId, goodsId));
+				if (ObjectUtils.isNotNull(order.getStorageId())) {
+					if (goodsId.size() != pjStockDescList.size()) {
+						List<PjStockDesc> difference = pjStockDescList.stream().filter(e -> !goodsId.contains(e.getGoodsId())).collect(Collectors.toList());
+						if (difference.size() > 0) {
+							String name = difference.stream().map(PjStockDesc::getCname).collect(Collectors.joining(","));
+							throw new RuntimeException(name + "未查到库存,请修改");
+						}
+					}
+				}
 				for (PjOrderItems item : order.getOrderItemsList()) {
 					BigDecimal balanceQuantity = new BigDecimal("0.00");
 					BigDecimal inventoryAmount = new BigDecimal("0.00");
 					if (pjStockDescList.size() > 0) {
-						balanceQuantity = pjStockDescList.stream().filter(e-> e.getGoodsId().equals(item.getGoodsId())).map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull)
+						balanceQuantity = pjStockDescList.stream().filter(e -> e.getGoodsId().equals(item.getGoodsId())).map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull)
 							.reduce(BigDecimal.ZERO, BigDecimal::add);
-						inventoryAmount = pjStockDescList.stream().filter(e-> e.getGoodsId().equals(item.getGoodsId())).map(PjStockDesc::getInventoryAmount).filter(Objects::nonNull)
+						inventoryAmount = pjStockDescList.stream().filter(e -> e.getGoodsId().equals(item.getGoodsId())).map(PjStockDesc::getInventoryAmount).filter(Objects::nonNull)
 							.reduce(BigDecimal.ZERO, BigDecimal::add);
 					}
 					BigDecimal inventoryCostPrice = new BigDecimal("0.00");
@@ -980,6 +990,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				order.setGrossProfit(order.getOrderItemsList().stream().filter(e -> e.getGrossProfit() != null).map(PjOrderItems::getGrossProfit).reduce(BigDecimal.ZERO, BigDecimal::add));
 				//成本
 				order.setCost(order.getOrderItemsList().stream().filter(e -> e.getCostprie() != null).map(PjOrderItems::getCostprie).reduce(BigDecimal.ZERO, BigDecimal::add));
+			} else {
+				order.setNumberRows(0);//行数
+				//总数量
+				order.setGoodsTotalNum(new BigDecimal("0"));
+				order.setSalesAmount(new BigDecimal("0.00"));
+				order.setTotalMoney(new BigDecimal("0.00"));
 			}
 		} else if (order.getBsType().equals(OrderTypeEnum.PURCHASE.getType())) {//采购
 			//仓库名称
@@ -1041,6 +1057,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 
 				order.setSalesAmount(totalMoney);
 				order.setTotalMoney(totalMoney);
+			} else {
+				order.setNumberRows(0);//行数
+				//总数量
+				order.setGoodsTotalNum(new BigDecimal("0"));
+				order.setSalesAmount(new BigDecimal("0.00"));
+				order.setTotalMoney(new BigDecimal("0.00"));
 			}
 		}
 		baseMapper.updateById(order);
@@ -1073,6 +1095,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			if (ObjectUtils.isNotNull(pjOrder.getStorageId())) {
 				//仓库名称
 				pjShip.setStorageName(storageDescMapper.selectById(pjOrder.getStorageId()).getCname());
+			} else {
+				throw new RuntimeException("请先选择仓库");
 			}
 		} else {
 			pjShip.setStorageId(null);

+ 31 - 13
blade-service/blade-stock/src/main/java/org/springblade/stock/api/ApiStockController.java

@@ -33,22 +33,40 @@ public class ApiStockController {
 
 	private final ISysClient sysClient;
 
-	// 登录凭证校验地址
-	public final static String password = "123456";
-
-	private static final String userName = "";
-
-
 	/**
-	 * 获取授权token
+	 * 获取商品库存
 	 *
 	 * @return 结果
 	 */
-	@GetMapping("/getToken")
-	public R<Map<String, Object>> weChatProgramLogin() {
-
-
-		return R.data(null);
+	@PostMapping("/getInventoryV1")
+	public R<List<Map<String, Object>>> getInventoryV1(@RequestBody ApiInventory codes) {
+		String whiteList = sysClient.getParamServiceDWT("white.list", "681169");
+		if (ObjectUtils.isNull(whiteList) || "0".equals(whiteList)) {
+			return R.fail("暂无权限");
+		}
+		if (ObjectUtils.isNotNull(codes) && ObjectUtils.isNotNull(codes.getCodes()) && codes.getCodes().size() > 0) {
+			List<Map<String, Object>> mapList = new ArrayList<>();
+			String join = String.join(",", codes.getCodes());
+			LambdaQueryWrapper<StockGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(StockGoods::getIsDeleted, 0)
+				.eq(StockGoods::getTenantId, "681169")
+				.apply("find_in_set(code,'" + join + "')");
+			List<StockGoods> list = stockGoodsService.list(lambdaQueryWrapper);
+			for (StockGoods item : list) {
+				Map<String, Object> map = new HashMap<>();
+				map.put("code", item.getCode());
+				if (ObjectUtils.isNotNull(item.getSurplusRouteQuantity())) {
+					BigDecimal roundedNumber = item.getSurplusRouteQuantity().setScale(0, BigDecimal.ROUND_HALF_UP);
+					map.put("available", roundedNumber);
+				} else {
+					map.put("available", 0);
+				}
+				mapList.add(map);
+			}
+			return R.data(mapList);
+		} else {
+			return R.data(new ArrayList<>());
+		}
 	}
 
 
@@ -75,7 +93,7 @@ public class ApiStockController {
 		if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
 			ipAddress = request.getRemoteAddr();
 		}
-		String whiteList = sysClient.getParamServiceDWT("white.list","681169");
+		String whiteList = sysClient.getParamServiceDWT("white.list", "681169");
 		if (ObjectUtils.isNull(whiteList) || !whiteList.contains(ipAddress)) {
 			return R.fail("暂无权限");
 		}