From 0bac87005199be1c535b36b031b2b8f59e1461c0 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期三, 15 五月 2024 09:41:48 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberImport.java          |   32 ++++++++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java          |    3 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java         |   17 +++++++-
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java |   30 +++++++++++++++
 4 files changed, 79 insertions(+), 3 deletions(-)

diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
index 2550487..78dad97 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -10,18 +10,21 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.admin.request.LaborMemberDTO;
+import com.doumee.dao.admin.request.MemberImport;
 import com.doumee.dao.admin.request.MemberQuery;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.MemberRole;
 import com.doumee.service.business.MemberService;
 import com.doumee.service.business.ext.ERPSyncService;
 import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromHKServiceImpl;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 /**
@@ -156,7 +159,15 @@
         return ApiResponse.success(null);
     }
 
-
+    @ApiOperation(value = "浜哄憳淇℃伅瀵煎叆" ,notes = "淇濆崟鐢宠")
+    @PostMapping("/importExcel")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
+    })
+    @RequiresPermissions("business:worktype:create")
+    public ApiResponse<String> importExcel (@ApiParam(value = "file") MultipartFile file, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(memberService.importBatch(file,this.getLoginUser(token)));
+    }
 
     @ApiOperation("鎵归噺鎷夐粦")
     @GetMapping("/batchBlock")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberImport.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberImport.java
new file mode 100644
index 0000000..910d847
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberImport.java
@@ -0,0 +1,32 @@
+package com.doumee.dao.admin.request;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鍛樺伐淇℃伅瀵煎叆琛�
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+@Data
+@ApiModel("鍛樺伐淇℃伅瀵煎叆")
+public class MemberImport {
+
+    @ExcelColumn(name="搴忓彿",value = "sn")
+    private Integer sn;
+
+    @ExcelColumn(name="濮撳悕",value = "name")
+    private String name;
+
+    @ExcelColumn(name="韬唤璇佸彿",value = "idcardNo")
+    private String idcardNo;
+
+    @ExcelColumn(name="鎵�灞炵粍缁�" , value = "companyName")
+    private String companyName;
+
+    @ExcelColumn(name="宸ュ彿" , value = "code")
+    private String code;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
index 8193db2..c7b31f0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -14,6 +14,7 @@
 import com.doumee.dao.web.reqeust.VisitMemberDTO;
 import com.doumee.dao.web.response.MemberVO;
 import com.doumee.dao.web.response.WxAuthorizeVO;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -203,4 +204,6 @@
     void updateWorkStatus(Member member);
 
     void batchRoleAuth(Member memberRole);
+
+    String importBatch(MultipartFile file, LoginUserInfo loginUser);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index d6d06ff..b0e9327 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -29,6 +29,7 @@
 import com.doumee.core.wx.WXConstant;
 import com.doumee.dao.admin.request.LaborEmpowerDTO;
 import com.doumee.dao.admin.request.LaborMemberDTO;
+import com.doumee.dao.admin.request.MemberImport;
 import com.doumee.dao.admin.request.MemberQuery;
 import com.doumee.dao.admin.response.StagingDataVO;
 import com.doumee.dao.business.*;
@@ -58,6 +59,7 @@
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.Date;
 import java.util.*;
@@ -1686,6 +1688,34 @@
         return stagingHeadVO;
     }
 
+    @Override
+    public String importBatch(MultipartFile file, LoginUserInfo loginUserInfo){
+
+        List<Member> list =  memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+                .selectAll(Member.class)
+                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
+                .eq(Member::getIsdeleted,Constants.ZERO)
+        );
+        ExcelImporter ie = null;
+        List<MemberImport> dataList =null;
+        try {
+            ie = new ExcelImporter(file,0,0);
+            dataList = ie.getDataList(MemberImport.class,null);
+        }  catch (Exception e) {
+            e.printStackTrace();
+        }
+        if(dataList == null || dataList.size() ==0){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
+        }
+        List<String> idCardList = dataList.stream().map(m->m.getIdcardNo()).collect(Collectors.toList());
+        Set<String> set = new HashSet<>(idCardList);
+        if(idCardList.size() != set.size()){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁瀛樺湪韬唤璇佸彿鐩稿悓鏁版嵁锛�");
+        }
+
+        return "瀵煎叆鎴愬姛";
+    }
+
 
 
 }

--
Gitblit v1.9.3