FengChaoYu 9 mesi fa
parent
commit
25645aa24e

+ 1 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/parts/WebsitPartsStockLogic.java

@@ -30,7 +30,7 @@ public class WebsitPartsStockLogic {
         return materialMapper.websitGroupList(wechat.getCompanyWechatId(), websitId, partsWebsitId);
     }
 
-    public Object existWebsitStockList(String websitId, String partsWebsitId, String partsNumber, String partsName, String materialGroupName) {
+    public List<WebsitPartsStockBean> existWebsitStockList(String websitId, String partsWebsitId, String partsNumber, String partsName, String materialGroupName) {
         CurrentCompanyWechat wechat = commonLogic.getCurrentCompanyWechat();
         List<WebsitPartsStockBean> partsStockBeans = materialMapper.existWebsitStockList(wechat.getCompanyWechatId(), websitId, partsWebsitId, partsNumber, partsName, materialGroupName);
         for (WebsitPartsStockBean partsStockBean : partsStockBeans) {

+ 16 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WebsitSalesLogic.java

@@ -308,6 +308,22 @@ public class WebsitSalesLogic {
 
             item.setConvertQty(convertQty)
                     .setConvertPrice(convertPrice);
+            // 检查数量是否大于当前库存数
+            final List<WebsitStock> websitStocks = websitStockService.lambdaQuery()
+                    .eq(WebsitStock::getCompanyWechatId, sales.getCompanyWechatId())
+                    .eq(WebsitStock::getWebsitId, sales.getWebsitId())
+                    .in(WebsitStock::getGoodsId, itemList.stream().map(WebsitSalesItem::getGoodsId).collect(Collectors.toList()))
+                    .list();
+            if (CollectionUtil.isNotEmpty(websitStocks)) {
+                final Map<String, WebsitStock> stockMap = websitStocks.stream()
+                        .collect(Collectors.toMap(WebsitStock::getGoodsId, Function.identity()));
+                for (WebsitSalesItem salesItem : itemList) {
+                    final WebsitStock stock = stockMap.get(salesItem.getGoodsId());
+                    if (Objects.nonNull(stock) && salesItem.getSalesQty().compareTo(stock.getQty()) > 0) {
+                        throw new RemoteServiceException(salesItem.getGoodsName() + " 销售数量不能大于库存数量");
+                    }
+                }
+            }
         }
 
     }

+ 5 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/manage/WorkerOldRefundManageLogic.java

@@ -358,6 +358,8 @@ public class WorkerOldRefundManageLogic {
             throw new RemoteServiceException("导入数据不能空");
         }
         for (WebsitPartsSettlementRecord settlementRecord : partsSettlementRecords) {
+            settlementRecord.setCompanyWechatId(adminUser.getCompanyWechatId())
+                    .setCompanyWechatName(adminUser.getCompanyName());
             if (StringUtils.isBlank(settlementRecord.getPgId()) || StringUtils.isBlank(settlementRecord.getWorkState()) ) {
                 throw new RemoteServiceException("导入的序号" + settlementRecord.getNo() + "数据异常,导入中止");
             }
@@ -388,6 +390,7 @@ public class WorkerOldRefundManageLogic {
         List<WebsitPartsOldRefundManage> updateList = new ArrayList<>();
         for (List<String> pgIdList : splitList) {
             final List<WebsitPartsOldRefundManage> partsOldRefundManageList = websitPartsOldRefundManageService.lambdaQuery()
+                    .eq(WebsitPartsOldRefundManage::getCompanyWechatId, adminUser.getCompanyWechatId())
                     .in(WebsitPartsOldRefundManage::getPgId, pgIdList)
                     .eq(WebsitPartsOldRefundManage::getRepairFlag, repairFlag)
                     .eq(WebsitPartsOldRefundManage::getSettlementState, false)
@@ -417,6 +420,7 @@ public class WorkerOldRefundManageLogic {
         if(Collections.isEmpty(objects)) {
             throw new RemoteServiceException("导入数据不能为空");
         }
+        AdminUserCom adminUser = commonLogic.getAdminUser();
         StringBuilder msg = new StringBuilder();
         LinkedHashSet<String> pgIds = new LinkedHashSet<>();
         for (Object data : objects) {
@@ -429,6 +433,7 @@ public class WorkerOldRefundManageLogic {
         List<List<String>> splitList = CollUtil.split(pgIds, 500);
         for (List<String> pgIdList : splitList) {
             final List<WebsitPartsOldRefundManage> partsOldRefundManageList = websitPartsOldRefundManageService.lambdaQuery()
+                    .eq(WebsitPartsOldRefundManage::getCompanyWechatId, adminUser.getCompanyWechatId())
                     .in(WebsitPartsOldRefundManage::getPgId, pgIdList)
                     .eq(WebsitPartsOldRefundManage::getRepairFlag, repairFlag)
                     .list();