|
|
@@ -19,13 +19,16 @@ package org.springblade.deliver.goods.service.impl;
|
|
|
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;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.trade.purchase.order.enums.OrderTypeEnum;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springblade.client.entity.CorpsDesc;
|
|
|
+import org.springblade.client.entity.GoodsDesc;
|
|
|
import org.springblade.client.feign.ICorpsDescClient;
|
|
|
import org.springblade.client.feign.IGoodsDescClient;
|
|
|
+import org.springblade.client.feign.IRedisClient;
|
|
|
import org.springblade.client.vo.GoodsDescVO;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
@@ -40,10 +43,7 @@ import org.springblade.deliver.goods.mapper.DeliveryItemsMapper;
|
|
|
import org.springblade.deliver.goods.service.IDeliveryItemsService;
|
|
|
import org.springblade.deliver.goods.vo.*;
|
|
|
import org.springblade.finance.feign.IFinanceClient;
|
|
|
-import org.springblade.mocha.entity.BusinessOverpaymentItem;
|
|
|
-import org.springblade.mocha.entity.BusinessPointsItem;
|
|
|
-import org.springblade.mocha.entity.Overpayment;
|
|
|
-import org.springblade.mocha.entity.Points;
|
|
|
+import org.springblade.mocha.entity.*;
|
|
|
import org.springblade.mocha.enums.OverpaymentEnum;
|
|
|
import org.springblade.mocha.feign.IBusinessOverpaymentClient;
|
|
|
import org.springblade.mocha.feign.IBusinessPointsClient;
|
|
|
@@ -88,6 +88,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
//获取客户信息
|
|
|
private final ICorpsDescClient corpsDescClient;
|
|
|
private final RedisTemplate<String, Object> redisTemplate;
|
|
|
+ private final IRedisClient redisClient;//redis缓存处理
|
|
|
@Override
|
|
|
public IPage<DeliveryItemsVO> selectDeliveryItemsPage(IPage<DeliveryItemsVO> page, DeliveryItemsVO deliveryItems) {
|
|
|
return page.setRecords(baseMapper.selectDeliveryItemsPage(page, deliveryItems));
|
|
|
@@ -127,16 +128,37 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
public List<DeliveryItems> getDeliveryItems(Delivery delivery){
|
|
|
List<DeliveryItems> deliveryItemsList = baseMapper.selectList(new QueryWrapper<DeliveryItems>().eq("pid", delivery.getId())
|
|
|
.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).orderByAsc("id"));
|
|
|
+
|
|
|
+ String updateUserIds = "";//修改人id拼接
|
|
|
+ String createUserIds = "";//创建人id拼接
|
|
|
+ for (DeliveryItems items : deliveryItemsList){
|
|
|
+ if (ObjectUtil.isNotEmpty(items.getUpdateUser())){
|
|
|
+ updateUserIds = updateUserIds + items.getUpdateUser() + ",";
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(items.getCreateUser())){
|
|
|
+ createUserIds = createUserIds + items.getCreateUser() + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获得修改人信息
|
|
|
+ List<User> updateUserList = iUserClient.selectUserIds(updateUserIds);
|
|
|
+ //获得创建人信息
|
|
|
+ List<User> createUserList = iUserClient.selectUserIds(createUserIds);
|
|
|
+
|
|
|
if (CollectionUtils.isNotEmpty(deliveryItemsList)){
|
|
|
for (DeliveryItems deliveryItems : deliveryItemsList) {
|
|
|
-
|
|
|
- R<User> user1 = iUserClient.userInfoById(deliveryItems.getUpdateUser());
|
|
|
- if (user1.isSuccess() && user1.getData() != null){
|
|
|
- deliveryItems.setUpdateUserName(user1.getData().getName());
|
|
|
+ if (ObjectUtil.isNotEmpty(updateUserList)) {
|
|
|
+ User user = updateUserList.stream().anyMatch(e -> e.getId().equals(deliveryItems.getUpdateUser())) ? updateUserList.stream().filter(e -> e.getId().equals(deliveryItems.getUpdateUser())).findFirst().get() : null;
|
|
|
+ if (ObjectUtils.isNotNull(user)) {
|
|
|
+ deliveryItems.setUpdateUserName(user.getName());
|
|
|
+ }
|
|
|
}
|
|
|
- R<User> user = iUserClient.userInfoById(deliveryItems.getCreateUser());
|
|
|
- if (user.isSuccess() && user.getData() != null){
|
|
|
- deliveryItems.setCreateUserName(user.getData().getName());
|
|
|
+
|
|
|
+ if (ObjectUtil.isNotEmpty(createUserList)) {
|
|
|
+ User user = createUserList.stream().anyMatch(e -> e.getId().equals(deliveryItems.getCreateUser())) ? createUserList.stream().filter(e -> e.getId().equals(deliveryItems.getCreateUser())).findFirst().get() : null;
|
|
|
+ if (ObjectUtils.isNotNull(user)) {
|
|
|
+ deliveryItems.setUpdateUserName(user.getName());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (deliveryItems.getItemId() != null){
|
|
|
@@ -186,6 +208,10 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //从缓存中获得库存
|
|
|
+ redisClient.basicData("all");
|
|
|
+ List<StockGoods> stockGoodsList = castToList(redisTemplate.opsForValue().get("stockGoods"), StockGoods.class);
|
|
|
+
|
|
|
if (CollectionUtils.isNotEmpty(collect)) {
|
|
|
for (DeliveryItems deliveryItems : collect) {
|
|
|
if (deliveryItems.getItemId() == null) {
|
|
|
@@ -206,7 +232,19 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
baseMapper.updateById(deliveryItems);
|
|
|
}
|
|
|
StockGoods stockGoods = null;
|
|
|
- StockGoodsVO stock = this.getStock(delivery.getTradeType(), deliveryItems.getCorpId(), delivery.getStorageId(), deliveryItems);
|
|
|
+ StockGoodsVO stock = null;
|
|
|
+ StockGoods goods = null;
|
|
|
+ if ("681169".equals(AuthUtil.getTenantId())){
|
|
|
+ goods = stockGoodsList.stream().filter(s ->
|
|
|
+ s.getGoodsId().equals(deliveryItems.getItemId())
|
|
|
+ && s.getTradeType().equals("GN")
|
|
|
+ && s.getCorpId().equals(deliveryItems.getCorpId())
|
|
|
+ && s.getStorageId().equals(delivery.getStorageId())
|
|
|
+ ).findFirst().orElse(null);
|
|
|
+ }else {
|
|
|
+ stock = this.getStock(delivery.getTradeType(), deliveryItems.getCorpId(), delivery.getStorageId(), deliveryItems);
|
|
|
+ }
|
|
|
+
|
|
|
// todo 国内贸易暂定不更新库存
|
|
|
if (!delivery.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())) {
|
|
|
// 发货
|
|
|
@@ -235,12 +273,20 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
}
|
|
|
}
|
|
|
//更新发货明细库存字段
|
|
|
- if (stockGoods != null) {
|
|
|
- deliveryItems.setInventoryNumber(stockGoods.getSurplusRouteQuantity());
|
|
|
- } else if (stock != null) {
|
|
|
- deliveryItems.setInventoryNumber(stock.getSurplusRouteQuantity());
|
|
|
- } else {
|
|
|
- deliveryItems.setInventoryNumber(BigDecimal.ZERO);
|
|
|
+ if ("681169".equals(AuthUtil.getTenantId())){
|
|
|
+ if (goods != null) {
|
|
|
+ deliveryItems.setInventoryNumber(goods.getSurplusRouteQuantity());
|
|
|
+ }else {
|
|
|
+ deliveryItems.setInventoryNumber(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if (stockGoods != null) {
|
|
|
+ deliveryItems.setInventoryNumber(stockGoods.getSurplusRouteQuantity());
|
|
|
+ } else if (stock != null) {
|
|
|
+ deliveryItems.setInventoryNumber(stock.getSurplusRouteQuantity());
|
|
|
+ } else {
|
|
|
+ deliveryItems.setInventoryNumber(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
}
|
|
|
baseMapper.updateById(deliveryItems);
|
|
|
}
|