|
@@ -1,5 +1,6 @@
|
|
|
package com.gree.mall.manager.logic.material.stock;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -18,10 +19,7 @@ import com.gree.mall.manager.enums.material.WebsitGoodsTypeEnum;
|
|
|
import com.gree.mall.manager.enums.material.WorkerStockFlagEnum;
|
|
|
import com.gree.mall.manager.exception.RemoteServiceException;
|
|
|
import com.gree.mall.manager.logic.common.CommonLogic;
|
|
|
-import com.gree.mall.manager.plus.entity.User;
|
|
|
-import com.gree.mall.manager.plus.entity.WebsitGoods;
|
|
|
-import com.gree.mall.manager.plus.entity.WorkerGoods;
|
|
|
-import com.gree.mall.manager.plus.entity.WorkerStock;
|
|
|
+import com.gree.mall.manager.plus.entity.*;
|
|
|
import com.gree.mall.manager.plus.service.*;
|
|
|
import com.gree.mall.manager.utils.CommonUtils;
|
|
|
import com.gree.mall.manager.zfire.bean.ZfireParamBean;
|
|
@@ -29,12 +27,15 @@ import com.gree.mall.manager.zfire.util.FieldUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
|
@RequiredArgsConstructor
|
|
@@ -50,6 +51,8 @@ public class WorkerStockLogic {
|
|
|
private final UserService userService;
|
|
|
private final WebsitGoodsStockLogic websitGoodsStockLogic;
|
|
|
private final WebsitGoodsService websitGoodsService;
|
|
|
+ private final WorkerStockBakService workerStockBakService;
|
|
|
+ private final WorkerStockAccBakService workerStockAccBakService;
|
|
|
|
|
|
/**
|
|
|
* 师傅辅材库存列表
|
|
@@ -277,4 +280,61 @@ public class WorkerStockLogic {
|
|
|
websitGoodsStockLogic.handleWorkerStock(workerStockDTOS);
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
+ public void delStock(List<String> ids) {
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+
|
|
|
+ if (adminUser.getType() == 2) {
|
|
|
+ throw new RemoteServiceException("平台账号禁止操作");
|
|
|
+ }
|
|
|
+ final List<WorkerStock> stockList = workerStockService.lambdaQuery()
|
|
|
+ .eq(WorkerStock::getCompanyWechatId, adminUser.getCompanyWechatId())
|
|
|
+ .eq(WorkerStock::getId, ids)
|
|
|
+ .eq(WorkerStock::getGoodsType, WebsitGoodsTypeEnum.M.getKey())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ if (CollectionUtil.isNotEmpty(stockList)) {
|
|
|
+ final DateTime curDate = DateUtil.date();
|
|
|
+ List<WorkerStockBak> workerStockBakList = new ArrayList<>();
|
|
|
+ List<WorkerStockAccBak> workerStockAccBakList = new ArrayList<>();
|
|
|
+
|
|
|
+ List<WorkerStockAcc> workerStockRemoveAccs = new ArrayList<>();
|
|
|
+ // 按师傅分组
|
|
|
+ final Map<String, List<WorkerStock>> workerGroupMap = stockList.stream()
|
|
|
+ .collect(Collectors.groupingBy(WorkerStock::getWorkerId));
|
|
|
+
|
|
|
+ for (Map.Entry<String, List<WorkerStock>> workerStock : workerGroupMap.entrySet()) {
|
|
|
+ // 需要删除的商品编号
|
|
|
+ final List<String> goodsIds = workerStock.getValue().stream()
|
|
|
+ .map(WorkerStock::getGoodsId).collect(Collectors.toList());
|
|
|
+ final List<WorkerStockAcc> workerStockAccs = workerStockAccService.lambdaQuery()
|
|
|
+ .eq(WorkerStockAcc::getCompanyWechatId, adminUser.getCompanyWechatId())
|
|
|
+ .eq(WorkerStockAcc::getGoodsId, goodsIds)
|
|
|
+ .list();
|
|
|
+
|
|
|
+ for (WorkerStock stock : workerStock.getValue()) {
|
|
|
+ WorkerStockBak workerStockBak = new WorkerStockBak();
|
|
|
+ BeanUtils.copyProperties(stock, workerStockBak);
|
|
|
+ workerStockBak.setOperBy(adminUser.getJoinNickName())
|
|
|
+ .setOperTime(curDate);
|
|
|
+ workerStockBakList.add(workerStockBak);
|
|
|
+ }
|
|
|
+
|
|
|
+ for (WorkerStockAcc stockAcc : workerStockAccs) {
|
|
|
+ WorkerStockAccBak workerStockaccBak = new WorkerStockAccBak();
|
|
|
+ BeanUtils.copyProperties(stockAcc, workerStockaccBak);
|
|
|
+ workerStockAccBakList.add(workerStockaccBak);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (CollectionUtil.isNotEmpty(workerStockAccs)) {
|
|
|
+ workerStockRemoveAccs.addAll(workerStockAccs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ workerStockService.removeByIds(stockList.stream().map(WorkerStock::getId).collect(Collectors.toList()));
|
|
|
+ workerStockAccService.removeByIds(workerStockRemoveAccs.stream().map(WorkerStockAcc::getId).collect(Collectors.toList()));
|
|
|
+ workerStockBakService.saveBatch(workerStockBakList);
|
|
|
+ workerStockAccBakService.saveBatch(workerStockAccBakList);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|