lazhaoqian пре 4 година
родитељ
комит
ff4e2fd291

+ 31 - 0
blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/entity/StockGoods.java

@@ -22,6 +22,7 @@ import java.io.Serializable;
 import java.util.Date;
 
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -178,6 +179,36 @@ public class StockGoods implements Serializable {
 	*/
 		@ApiModelProperty(value = "是否已删除(0 否 1是)")
 		private Integer isDeleted;
+	/**
+	 * 批次号
+	 */
+		@ApiModelProperty(value = "批次号")
+		private String lotNo;
+	/**
+	 * 入库日期
+	 */
+		@ApiModelProperty(value = "入库日期")
+		private Date inDate;
+	/**
+	 * 客户id
+	 */
+		@ApiModelProperty(value = "客户id")
+		private Long corpId;
+	/**
+	 * 产品型号
+	 */
+		@ApiModelProperty(value = "产品型号")
+		private String itemType;
+	/**
+	 * 结余数量
+	 */
+		@ApiModelProperty(value = "结余数量")
+		private BigDecimal enRouteQuantity;
+	/**
+	 * 可用数量
+	 */
+		@ApiModelProperty(value = "可用数量")
+		private BigDecimal surplusRouteQuantity;
 
 
 }

+ 0 - 184
blade-service/blade-stock/src/main/java/org/springblade/stock/entity/StockGoods.java

@@ -1,184 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 庄骞 (smallchill@163.com)
- */
-package org.springblade.stock.entity;
-
-import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.util.Date;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * 库存账实体类
- *
- * @author BladeX
- * @since 2021-09-26
- */
-@Data
-@TableName("business_stock_goods")
-@ApiModel(value = "StockGoods对象", description = "库存账")
-public class StockGoods implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	* 主键
-	*/
-		@ApiModelProperty(value = "主键")
-		private Long id;
-	/**
-	* 仓库/库区id
-	*/
-		@ApiModelProperty(value = "仓库/库区id")
-		private Long storageId;
-	/**
-	* 商品id
-	*/
-		@ApiModelProperty(value = "商品id")
-		private Long goodsId;
-	/**
-	* 入库数量
-	*/
-		@ApiModelProperty(value = "入库数量")
-		private BigDecimal inQuantity;
-	/**
-	* 出库数量
-	*/
-		@ApiModelProperty(value = "出库数量")
-		private BigDecimal outQuantity;
-	/**
-	* 锁定数量
-	*/
-		@ApiModelProperty(value = "锁定数量")
-		private BigDecimal lockingQuantity;
-	/**
-	* 结余数量
-	*/
-		@ApiModelProperty(value = "结余数量")
-		private BigDecimal balanceQuantity;
-	/**
-	* 入库重量
-	*/
-		@ApiModelProperty(value = "入库重量")
-		private BigDecimal inWeight;
-	/**
-	* 出库重量
-	*/
-		@ApiModelProperty(value = "出库重量")
-		private BigDecimal outWeight;
-	/**
-	* 锁定重量
-	*/
-		@ApiModelProperty(value = "锁定重量")
-		private BigDecimal lockingWeight;
-	/**
-	* 结余数量
-	*/
-		@ApiModelProperty(value = "结余数量")
-		private BigDecimal balanceWeight;
-	/**
-	* 入库体积
-	*/
-		@ApiModelProperty(value = "入库体积")
-		private BigDecimal inVolumn;
-	/**
-	* 出库体积
-	*/
-		@ApiModelProperty(value = "出库体积")
-		private BigDecimal outVolumn;
-	/**
-	* 锁定体积
-	*/
-		@ApiModelProperty(value = "锁定体积")
-		private BigDecimal lockingVolumn;
-	/**
-	* 结余体积
-	*/
-		@ApiModelProperty(value = "结余体积")
-		private BigDecimal balanceVolumn;
-	/**
-	* 原始订单号
-	*/
-		@ApiModelProperty(value = "原始订单号")
-		private String orgOrderNo;
-	/**
-	* 来源订单号
-	*/
-		@ApiModelProperty(value = "来源订单号")
-		private String srcOrderNo;
-	/**
-	* 来源id
-	*/
-		@ApiModelProperty(value = "来源id")
-		private Long srcId;
-	/**
-	* 备注
-	*/
-		@ApiModelProperty(value = "备注")
-		private String remarks;
-	/**
-	* 版本
-	*/
-		@ApiModelProperty(value = "版本")
-		private String version;
-	/**
-	 * 租户id
-	 */
-		@ApiModelProperty(value = "租户id")
-		private String tenantId;
-	/**
-	* 创建人
-	*/
-		@ApiModelProperty(value = "创建人")
-		private Long createUser;
-	/**
-	* 创建部门
-	*/
-		@ApiModelProperty(value = "创建部门")
-		private Long createDept;
-	/**
-	* 创建时间
-	*/
-		@ApiModelProperty(value = "创建时间")
-		private Date createTime;
-	/**
-	* 修改人
-	*/
-		@ApiModelProperty(value = "修改人")
-		private Long updateUser;
-	/**
-	* 修改时间
-	*/
-		@ApiModelProperty(value = "修改时间")
-		private Date updateTime;
-	/**
-	* 状态(0 正常 1停用)
-	*/
-		@ApiModelProperty(value = "状态(0 正常 1停用)")
-		private Integer status;
-	/**
-	* 是否已删除(0 否 1是)
-	*/
-		@ApiModelProperty(value = "是否已删除(0 否 1是)")
-		private Integer isDeleted;
-
-
-}

+ 6 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/mapper/StockGoodsMapper.xml

@@ -31,6 +31,12 @@
         <result column="update_time" property="updateTime"/>
         <result column="status" property="status"/>
         <result column="is_deleted" property="isDeleted"/>
+        <result column="lot_no" property="lotNo"/>
+        <result column="in_date" property="inDate"/>
+        <result column="corp_id" property="corpId"/>
+        <result column="item_type" property="itemType"/>
+        <result column="en_route_quantity" property="enRouteQuantity"/>
+        <result column="surplus_route_quantity" property="surplusRouteQuantity"/>
     </resultMap>
 
 

+ 16 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/service/IStockGoodsService.java

@@ -38,4 +38,20 @@ public interface IStockGoodsService extends IService<StockGoods> {
 	 */
 	IPage<StockGoodsVO> selectStockGoodsPage(IPage<StockGoodsVO> page, StockGoodsVO stockGoods);
 
+	/**
+	 * 查询库存总账 是否存在
+	 * 查询条件:corpId  storageId goodsId  itemType lotNo
+	 */
+	StockGoods selectStock();
+	/**
+	 * 新增库存总账
+	 */
+	boolean saveStock();
+	/**
+	 * 修改库存总账
+	 */
+	boolean updateStock();
+
+
+
 }

+ 27 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/service/impl/StockGoodsServiceImpl.java

@@ -38,4 +38,31 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 		return page.setRecords(baseMapper.selectStockGoodsPage(page, stockGoods));
 	}
 
+	/**
+	 * 查询库存账
+	 * @return
+	 */
+	@Override
+	public StockGoods selectStock() {
+		return null;
+	}
+
+	/**
+	 * 新增库存账
+	 * @return
+	 */
+	@Override
+	public boolean saveStock() {
+		return false;
+	}
+
+	/**
+	 * 修改库存账
+	 * @return
+	 */
+	@Override
+	public boolean updateStock() {
+		return false;
+	}
+
 }

+ 6 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/enquiry/ShippingEnquiry.java

@@ -56,7 +56,7 @@ public class ShippingEnquiry extends BladeController {
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入order")
 	public R<OrderVO> detail(@PathVariable(value = "id") String id) {
-		return orderService.getOrderMessage(id);
+		return orderService.getShippingMessage(id);
 	}
 
 	/**
@@ -111,8 +111,12 @@ public class ShippingEnquiry extends BladeController {
 		if (order.getId() == null) {
 			return R.fail(ERROR_MSG);
 		}
+		Order orderMessage = orderService.getById(order.getId());
+		if (orderMessage != null && !orderMessage.getIfShipping().equals("无")){
+			return R.fail(500,"已提交船务询价,请勿重复提交");
+		}
 		order.setIfShipping("已提交");
-		return R.status(orderService.updateById(order));
+		return R.status(orderService.saveOrUpdate(order));
 	}
 
 	/**

+ 7 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java

@@ -69,5 +69,12 @@ public interface IOrderService extends IService<Order> {
 	 * @return
 	 */
 	R<OrderSubmitDto> saveShippingMessage(OrderSubmitDto submitDto);
+	/**
+	 * 获取船务询价详情
+	 *
+	 * @param id 订单id
+	 * @return
+	 */
+	R<OrderVO> getShippingMessage(String id);
 
 }

+ 66 - 13
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -180,7 +180,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			}
 		}
 		//获取订单明细信息
-		List<OrderItems> orderItemsList = this.getOrderItems(vo.getId());
+		List<OrderItems> orderItemsList = this.getOrderItems(vo.getId(),null);
 		if (CollectionUtils.isNotEmpty(orderItemsList)) {
 			vo.setItemsVOList(orderItemsList.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
 		}
@@ -191,13 +191,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 		//获取订单文件信息
 		List<OrderFiles> filesList = orderFilesService.list(Wrappers.<OrderFiles>lambdaQuery().eq(OrderFiles::getPid, vo.getId())
-			.orderByAsc(OrderFiles::getSort));
+			.eq(OrderFiles::getTenantId, SecureUtil.getTenantId()).eq(OrderFiles::getIsDeleted, 0).orderByAsc(OrderFiles::getSort));
 		if (CollectionUtils.isNotEmpty(filesList)) {
 			vo.setOrderFilesList(filesList);
 		}
 		//获取订单修改日志信息
 		List<OrderModify> modifyList = orderModifyService.list(Wrappers.<OrderModify>lambdaQuery().eq(OrderModify::getPid, vo.getId())
-			.orderByAsc(OrderModify::getSort));
+			.eq(OrderModify::getTenantId, SecureUtil.getTenantId()).eq(OrderModify::getIsDeleted, 0).orderByAsc(OrderModify::getSort));
 		if (CollectionUtils.isNotEmpty(modifyList)) {
 			vo.setOrderModifyList(modifyList);
 		}
@@ -258,14 +258,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			// 转VO
 			List<OrderVO> copy = BeanUtil.copy(records, OrderVO.class);
 			// 获取客户信息
-			/*R<List<CorpsDescVO>> listR = corpsDescClient.selCorpsDetails(AuthUtil.getTenantId());
-			if (!listR.isSuccess() || CollectionUtils.isEmpty(listR.getData())) {
-				throw new OrderException("找不到客户信息");
+			if (CollectionUtils.isNotEmpty(copy)){
+				copy.stream().forEach(item ->{
+					if (item.getCorpId() != null){
+						R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());
+						if (corpMessage.isSuccess() && corpMessage.getData() != null){
+							item.setCorpName(corpMessage.getData().getCname());
+						}
+					}
+				});
 			}
-			copy.forEach(li -> {
-				Optional<CorpsDescVO> first = listR.getData().stream().filter(corp -> Objects.equals(corp.getId(), li.getCorpId())).findFirst();
-				first.ifPresent(corpsDescVO -> li.setCorpName(corpsDescVO.getCname()));
-			});*/
 			List<OrderVO> orderVOList = records.stream().map(OrderMapstructMapper.INSTANCE::toVo).collect(Collectors.toList());
 			page.setRecords(copy);
 		}
@@ -298,16 +300,66 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return R.data(submitDto);
 	}
 
+	@Override
+	public R<OrderVO> getShippingMessage(String id) {
+		String tenantId = AuthUtil.getTenantId();
+		//获取订单主表信息
+		Order orderMessage = baseMapper.selectOne(Wrappers.<Order>lambdaQuery().eq(Order::getId, id)
+			.eq(Order::getTenantId, tenantId));
+		if (Objects.isNull(orderMessage)) {
+			throw new OrderException("未找到订单信息");
+		}
+		OrderVO vo = OrderMapstructMapper.INSTANCE.toVo(orderMessage);
+		//获取创建人中文名
+		R<User> createUser = userClient.userInfoById(vo.getCreateUser());
+
+		if (createUser.isSuccess()) {
+			vo.setCreateUserName(createUser.getData().getName());
+		}
+		//获取客户中文名
+		if (orderMessage.getCorpId() != null){
+			R<List<Map<String,Object>>> corpMessage = corpsDescClient.getCorpsMessage(orderMessage.getCorpId().toString());
+			if (corpMessage.isSuccess() && corpMessage.getData() != null){
+				vo.setCorpsName(corpMessage.getData());
+			}
+		}
+		//获取订单明细信息
+		List<OrderItems> orderItemsList = this.getOrderItems(vo.getId(),SecureUtil.getUserId());
+		if (CollectionUtils.isNotEmpty(orderItemsList)) {
+			vo.setItemsVOList(orderItemsList.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
+		}
+		//获取订单费用信息
+		List<OrderFees> orderFeesList = this.getOrderFees(vo.getId());
+		if (CollectionUtils.isNotEmpty(orderFeesList)) {
+			vo.setOrderFeesList(orderFeesList);
+		}
+		//获取订单文件信息
+		List<OrderFiles> filesList = orderFilesService.list(Wrappers.<OrderFiles>lambdaQuery().eq(OrderFiles::getPid, vo.getId())
+			.eq(OrderFiles::getTenantId, SecureUtil.getTenantId()).eq(OrderFiles::getIsDeleted, 0).orderByAsc(OrderFiles::getSort));
+		if (CollectionUtils.isNotEmpty(filesList)) {
+			vo.setOrderFilesList(filesList);
+		}
+		//获取订单修改日志信息
+		List<OrderModify> modifyList = orderModifyService.list(Wrappers.<OrderModify>lambdaQuery().eq(OrderModify::getPid, vo.getId())
+			.eq(OrderModify::getTenantId, SecureUtil.getTenantId()).eq(OrderModify::getIsDeleted, 0).orderByAsc(OrderModify::getSort));
+		if (CollectionUtils.isNotEmpty(modifyList)) {
+			vo.setOrderModifyList(modifyList);
+		}
+		return R.data(vo);
+	}
+
 	/**
 	 * 获取订单明细数据
 	 *
 	 * @param orderId 订单id
+	 * @param createId 创建人
 	 * @return 子订单集合
 	 */
-	public List<OrderItems> getOrderItems(Long orderId) {
+	public List<OrderItems> getOrderItems(Long orderId,Long createId) {
 		// 查询订单明细信息
 		List<OrderItems> orderItemsList = orderItemsService.list(Wrappers.<OrderItems>lambdaQuery()
-			.eq(OrderItems::getPid, orderId).orderByAsc(OrderItems::getSort));
+			.eq(OrderItems::getPid, orderId).eq(OrderItems::getTenantId, SecureUtil.getTenantId())
+			.eq(OrderItems::getIsDeleted, 0).eq(Func.isNotEmpty(createId),OrderItems::getCreateUser,createId).orderByAsc(OrderItems::getSort));
 		// 获取商品id、名称用于匹配明细汉字
 		List<GoodsDescVO> goodsDescVOList = goodsDescClient.selectGoodsBasic().getData();
 		orderItemsList.forEach(item -> {
@@ -338,7 +390,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 */
 	public List<OrderFees> getOrderFees(Long orderId) {
 		// 查询费用明细
-		List<OrderFees> orderFeesList = orderFeesService.list(Wrappers.<OrderFees>lambdaQuery().eq(OrderFees::getPid, orderId));
+		List<OrderFees> orderFeesList = orderFeesService.list(Wrappers.<OrderFees>lambdaQuery().eq(OrderFees::getPid, orderId).eq(OrderFees::getIsDeleted,0)
+		.eq(OrderFees::getTenantId,SecureUtil.getTenantId()));
 
 
 		orderFeesList.forEach(item -> {