From cd5b5908546c3d6c98e7aec607af8db1f8565495 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 15 九月 2023 08:38:00 +0800
Subject: [PATCH] 修改   9.15

---
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java |   55 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 32 insertions(+), 23 deletions(-)

diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
index 793746c..3e7a1d7 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
@@ -14,13 +14,13 @@
 import com.yuanchu.mom.pojo.vo.SaleVo;
 import com.yuanchu.mom.service.SaleService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.vo.Result;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -48,6 +48,7 @@
 
     //鏂板閿�鍞崟
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public String addSale(String saleman, SaleDto saleDto) {
         Sale sale = new Sale();
         BeanUtils.copyProperties(saleDto, sale);
@@ -82,6 +83,7 @@
 
     //鏍规嵁閿�鍞崟id鍒犻櫎
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void delSale(Integer id) {
         Sale sale = saleMapper.selectById(id);
         sale.setState(0);
@@ -95,40 +97,47 @@
 
     //鏍规嵁id鎵归噺鍒犻櫎
     @Override
-    public void delAllSale(List<Integer> ids) {
-        List<Sale> sales = saleMapper.selectBatchIds(ids);
-        for (Sale sale : sales) {
-            sale.setState(0);
-            saleMapper.updateById(sale);
-            List<SaleMaterial> saleMaterials = saleMaterialMapper.selectSaleDatil(sale.getId());
-            for (SaleMaterial saleMaterial : saleMaterials) {
-                saleMaterial.setState(0);
-                saleMaterialMapper.updateById(saleMaterial);
-            }
-        }
+    @Transactional(rollbackFor = Exception.class)
+    public void delAllSale(String ids) {
+        //鎵归噺鍒犻櫎閿�鍞崟
+        saleMapper.delAllSale(ids);
+        //鎵归噺鍒犻櫎閿�鍞骇鍝佸崟
+        saleMaterialMapper.delAllSale(ids);
     }
 
     //鏍规嵁閿�鍞崟id淇敼淇℃伅
     @Override
-    public void updateSaleById(String saleman, Integer id, SaleVo saleVo) {
+    @Transactional(rollbackFor = Exception.class)
+    public String updateSaleById(String saleman, Integer id, SaleVo saleVo) {
+        //鏍¢獙,鍚屼竴涓骇鍝佺殑瑙勬牸鍨嬪彿涓嶈兘鐩稿悓
+        List<SaleMaterialDto> saleMaterialList = saleVo.getSaleMaterialList();
+        // 浣跨敤鍝堝笇闆嗗悎鏉ュ垽鏂槸鍚﹀瓨鍦ㄧ浉鍚屽瓧娈靛�肩粍鍚�
+        Set<String> seen = new HashSet<>();
+        for (SaleMaterialDto saleMaterial: saleMaterialList) {
+            String key = saleMaterial.getName() + "," + saleMaterial.getSpecifications();
+            if (seen.contains(key)) {
+                return "鍚屼竴涓骇鍝佺殑瑙勬牸鍨嬪彿涓嶈兘鐩稿悓";
+            } else {
+                seen.add(key);
+            }
+        }
         Sale sale = saleMapper.selectById(id);
         sale.setSaleman(saleman);
         BeanUtils.copyProperties(saleVo, sale);
         //鏇存柊閿�鍞崟
         saleMapper.updateById(sale);
-        List<SaleMaterial> saleMaterials = saleMaterialMapper.selectSaleDatil(id);
-        for (SaleMaterial saleMaterial : saleMaterials) {
-            List<SaleMaterialDto> saleMaterialDtos = saleVo.getSaleMaterialList();
-            for (SaleMaterialDto saleMaterialDto : saleMaterialDtos) {
-                BeanUtils.copyProperties(saleMaterialDto, saleMaterial);
-                //鏇存柊閿�鍞骇鍝佸崟
-                saleMaterialMapper.updateById(saleMaterial);
-            }
+        List<SaleMaterialDto> saleMaterialDtos = saleVo.getSaleMaterialList();
+        for (SaleMaterialDto saleMaterialDto : saleMaterialDtos) {
+            SaleMaterial saleMaterial = new SaleMaterial();
+            BeanUtils.copyProperties(saleMaterialDto, saleMaterial);
+            saleMaterialMapper.updateById(saleMaterial);
         }
+        return "淇敼鎴愬姛!";
     }
 
     //瀹℃牳
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void check(String checkname, Integer id, Integer type) {
         Sale sale = saleMapper.selectById(id);
         sale.setType(type);

--
Gitblit v1.9.3