From 5506edbe54883b31db3cc8e4a1d9d0795a18a3c9 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 27 十二月 2024 14:37:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1

---
 server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java |   72 ++++++++++++++++++++++++++++++++++--
 1 files changed, 68 insertions(+), 4 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
index 7c02437..1db15a7 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
@@ -24,9 +24,7 @@
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * 宸ョ淇℃伅琛⊿ervice瀹炵幇
@@ -115,6 +113,9 @@
         );
         return list;
     }
+
+
+
   
     @Override
     public PageData<Worktype> findPage(PageWrap<Worktype> pageWrap) {
@@ -181,7 +182,7 @@
         return worktypeMapper.selectCount(wrapper);
     }
     @Override
-    public List<String> importBatch(MultipartFile file ){
+    public List<String> importBatch(MultipartFile file){
         /*  List<Worktype> list = new ArrayList<>();
       if(id!=null){
             Worktype param = new Worktype();
@@ -206,11 +207,63 @@
             if(StringUtils.isBlank(model.getName())){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁瀛樺湪寮傚父");
             }
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(result)){
+                if(!checkHaveName(model.getName(),result)){
+                    result.add(model.getName());
+                }
+            }
 //            if(StringUtils.isNotBlank(model.getName()) && !isNewWorkTypeByName(model.getName(),list)){
                 result.add(model.getName());
 //            }
         }
         return result;
+    }
+
+
+    @Override
+    public Set<Integer> importBatchForSolutions(MultipartFile file , Integer insuranceId){
+        ExcelImporter ie = null;
+        List<WorktypeImport> dataList =null;
+        try {
+            ie = new ExcelImporter(file,1,0);
+            dataList = ie.getDataList(WorktypeImport.class,null);
+        }  catch (Exception e) {
+            e.printStackTrace();
+        }
+        if(dataList == null || dataList.size() ==0){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
+        }
+        List<Integer> result = new ArrayList<>();
+        List<Worktype> inWorkTypeList = null;
+        if(Objects.nonNull(insuranceId)){
+            inWorkTypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda().eq(Worktype::getIsdeleted,Constants.ZERO)
+                    .eq(Worktype::getInsuranceId,insuranceId).eq(Worktype::getDataType,Constants.TWO)
+            );
+        }
+        for(WorktypeImport model : dataList){
+            if(StringUtils.isBlank(model.getName())){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁瀛樺湪寮傚父");
+            }
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(inWorkTypeList)){
+                Integer workTypeId = getHasWorkTypeByName(model.getName(),inWorkTypeList);
+                if(Objects.nonNull(workTypeId)){
+                    result.add(workTypeId);
+                }
+            }
+        }
+        Set<Integer> resultSet = new HashSet<>(result);
+        return resultSet;
+    }
+
+    private boolean checkHaveName(String name, List<String> list) {
+        if(  list!=null && list.size()>0){
+            for(String m : list){
+                if(StringUtils.equals(name,m)){
+                    return true;
+                }
+            }
+        }
+        return  false;
     }
 
     private boolean isNewWorkTypeByName(String name, List<Worktype> list) {
@@ -223,4 +276,15 @@
         }
         return  false;
     }
+
+    private Integer getHasWorkTypeByName(String name, List<Worktype> list) {
+        if(  list!=null && list.size()>0){
+            for(Worktype m : list){
+                if(StringUtils.equals(name,m.getName())){
+                    return  m.getId();
+                }
+            }
+        }
+        return null;
+    }
 }

--
Gitblit v1.9.3