Pārlūkot izejas kodu

fix:完善更新,新增逻辑。新增导入模板处理

qingwudarao 6 mēneši atpakaļ
vecāks
revīzija
6e3edb5ce8

+ 48 - 8
ruoyi-modules/ruoyi-commodityManagement/src/main/java/org/dromara/commodityManagement/service/impl/DaHuoNumberImpl.java

@@ -4,20 +4,26 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import org.dromara.commodityManagement.domain.DaHuoNumber;
+import org.dromara.commodityManagement.domain.Template;
 import org.dromara.commodityManagement.domain.bo.DaHuoNumberBo;
+import org.dromara.commodityManagement.domain.vo.DaHuoNumberImportVo;
 import org.dromara.commodityManagement.domain.vo.DaHuoNumberVo;
 import org.dromara.commodityManagement.mapper.DaHuoNumberMapper;
 import org.dromara.commodityManagement.mapper.TemplateMapper;
 import org.dromara.commodityManagement.service.DaHuoNumberService;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.excel.core.ExcelResult;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
+import static org.dromara.commodityManagement.emum.ItemType.DAHUO_TYPE;
+
 @Service
 @RequiredArgsConstructor
 public class DaHuoNumberImpl implements DaHuoNumberService {
@@ -25,12 +31,10 @@ public class DaHuoNumberImpl implements DaHuoNumberService {
     private final DaHuoNumberMapper daHuoNumberMapper;
     private final TemplateMapper templateMapper;
 
-    private static final String DAHUO_TYPE = "1";
-
     @Override
     public TableDataInfo<DaHuoNumberVo> selectPageDaHuoNumberList(DaHuoNumberBo daHuoNumberBo, PageQuery pageQuery) {
         QueryWrapper<DaHuoNumber> qw = new QueryWrapper<>();
-        qw.eq("type", DAHUO_TYPE);
+        qw.eq("type", DAHUO_TYPE.getType());
         qw.eq(StringUtils.isNotBlank(daHuoNumberBo.getName()), "name", daHuoNumberBo.getName());
         qw.eq(StringUtils.isNotBlank(daHuoNumberBo.getKuanhao()), "kuanhao", daHuoNumberBo.getKuanhao());
         qw.eq(StringUtils.isNotBlank(daHuoNumberBo.getHuaxinghao()), "huaxinghao", daHuoNumberBo.getHuaxinghao());
@@ -43,22 +47,41 @@ public class DaHuoNumberImpl implements DaHuoNumberService {
     @Override
     public int insertDaHuoNumber(DaHuoNumberBo daHuoNumberBo) {
         DaHuoNumber daHuoNumber = MapstructUtils.convert(daHuoNumberBo, DaHuoNumber.class);
+        int allRow = 0;
+        allRow += daHuoNumberMapper.insert(daHuoNumber);
+        Long row = daHuoNumberMapper.selectLastId();
         if (daHuoNumber.getTemplate() != null) {
-            templateMapper.insert(daHuoNumber.getTemplate());
+            for (Template template : daHuoNumber.getTemplate()){
+                template.setItem_id(row);
+                allRow += templateMapper.insert(template);
+            }
         }
-        return daHuoNumberMapper.insert(daHuoNumber);
+        return allRow;
     }
 
     @Override
     public int updateDaHuoNumber(DaHuoNumberBo daHuoNumberBo) {
         DaHuoNumber daHuoNumber = MapstructUtils.convert(daHuoNumberBo, DaHuoNumber.class);
-        QueryWrapper<DaHuoNumber> qw = new QueryWrapper<>();
-        qw.eq("id", daHuoNumber.getId());
-        return daHuoNumberMapper.update(daHuoNumber, qw);
+        if (daHuoNumber.getTemplate() != null){
+            for (Template template : daHuoNumber.getTemplate()){
+                switch (template.getDelUpdateOrAdd()){
+                    case 1:
+                        templateMapper.deleteById(template);break;
+                    case 2:
+                        templateMapper.updateById(template);break;
+                    case 3:
+                        templateMapper.insert(template);break;
+                }
+            }
+        }
+        return daHuoNumberMapper.updateById(daHuoNumber);
     }
 
     @Override
     public int deleteDaHuoNumberByIds(Long[] daHuoNumberIds) {
+        for (Long daHuoNumberId : daHuoNumberIds) {
+            templateMapper.delete(new QueryWrapper<Template>().eq("item_id", daHuoNumberId));
+        }
         return daHuoNumberMapper.deleteByIds(Arrays.asList(daHuoNumberIds));
     }
 
@@ -71,4 +94,21 @@ public class DaHuoNumberImpl implements DaHuoNumberService {
     public List<DaHuoNumber> selectDaHuoNumberList() {
         return daHuoNumberMapper.selectList();
     }
+
+    @Override
+    public int insertImportExcel(ExcelResult<DaHuoNumberImportVo> result){
+        for (DaHuoNumberImportVo importVo : result.getList()){
+            String[] templateNames = importVo.getTemplate().split(",");
+            List<Template> templates = new ArrayList<>();
+            for (String templateName : templateNames){
+                templates.add(new Template(templateName));
+            }
+            DaHuoNumberBo daHuoNumber = MapstructUtils.convert(importVo, DaHuoNumberBo.class);
+            if (daHuoNumber != null) {
+                daHuoNumber.setTemplate(templates);
+            }
+            insertDaHuoNumber(daHuoNumber);
+        }
+        return 1;
+    }
 }