Pārlūkot izejas kodu

批量导入参保人员

jz.kai 5 gadi atpakaļ
vecāks
revīzija
aef62e86e0

+ 1 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/base/dao/CompanyMemberDAO.java

@@ -15,4 +15,5 @@ public interface CompanyMemberDAO {
 	int delete(String id);
 	List<CompanyMember> list();
 	List<CompanyMember> search(Map<String, Object> searchParams, List<Sort> sortList);
+	List<CompanyMember> search2(Map<String, Object> searchParams, List<Sort> sortList);
 }

+ 16 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/business/entity/InsurancePolicyMember.java

@@ -1,6 +1,7 @@
 package com.jpsoft.picc.modules.business.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jpsoft.picc.modules.base.entity.CompanyMember;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -22,6 +23,7 @@ public class InsurancePolicyMember {
     private Date createTime;
     private String updateBy;
     private Date updateTime;
+    private CompanyMember companyMember;
 
     /**
      * 获取编号
@@ -176,4 +178,18 @@ public class InsurancePolicyMember {
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
+
+    /**
+     *获取企业人员
+     */
+    public CompanyMember getCompanyMember(){
+        return companyMember;
+    }
+
+    /**
+     *设置企业人员
+     */
+    public void setCompanyMember(CompanyMember companyMember){
+        this.companyMember = companyMember;
+    }
 }

+ 3 - 1
picc-common/src/main/resources/mapper/business/InsurancePolicyMember.xml

@@ -14,6 +14,7 @@
 			<result property="createTime" column="create_time" />
 			<result property="updateBy" column="update_by" />
 			<result property="updateTime" column="update_time" />
+			<association property="companyMember" column="member_id" select="com.jpsoft.picc.modules.base.dao.CompanyMemberDAO.get"/>
 			</resultMap>
 	<insert id="insert" parameterType="com.jpsoft.picc.modules.business.entity.InsurancePolicyMember">
 	<!--
@@ -83,13 +84,14 @@ id_,policy_id,member_id,status_,is_add,del_flag,create_by,create_time,update_by,
 		select count(*) from business_insurance_policy_member where id_=#{0}
 	</select>
 	<select id="list" resultMap="InsurancePolicyMemberMap">
-		select * from business_insurance_policy_member
+		select * from business_insurance_policy_member where del_flag = false
 	</select>
 	<select id="search" parameterType="hashmap" resultMap="InsurancePolicyMemberMap">
 		<![CDATA[
 			select * from business_insurance_policy_member
 		]]>
 		<where>
+			and del_flag = false
 			<if test="searchParams.id != null">
 				and ID_ like #{searchParams.id}
 			</if>

+ 4 - 2
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/CompanyMemberController.java

@@ -290,9 +290,11 @@ public class CompanyMemberController {
     @ApiOperation(value="导入企业人员")
     @PostMapping("importXls")
     @ApiImplicitParams({
+            @ApiImplicitParam(name = "companyId",value = "企业ID", required = true, paramType = "form",dataType = "String"),
             @ApiImplicitParam(name = "uploadFile",value = "上传文件", required = true,paramType="form", dataType = "__file")
     })
-    public MessageResult<String> importXls(MultipartFile uploadFile,
+    public MessageResult<String> importXls(@RequestParam(value="companyId",defaultValue="") String companyId,
+                                           MultipartFile uploadFile,
                                            HttpServletRequest request){
         AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
 
@@ -314,7 +316,7 @@ public class CompanyMemberController {
                 String healthStatus = array[3].toString();
 
                 companyMember.setId(UUID.randomUUID().toString());
-//                if(StringUtils.isNotEmpty(companyId)) companyMember.setCompanyId(companyId);
+                if(StringUtils.isNotEmpty(companyId)) companyMember.setCompanyId(companyId);
                 if(StringUtils.isNotEmpty(name)) companyMember.setName(name);
                 if(StringUtils.isNotEmpty(cardType)) companyMember.setCardType(cardType);
                 if(StringUtils.isNotEmpty(cardNo)) companyMember.setCardNo(cardNo);

+ 228 - 1
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsurancePolicyUserController.java

@@ -1,9 +1,236 @@
 package com.jpsoft.picc.modules.auth.controller;
 
+import cn.hutool.core.convert.Convert;
+import com.github.pagehelper.Page;
+import com.jpsoft.picc.modules.base.entity.CompanyMember;
+import com.jpsoft.picc.modules.base.service.CompanyMemberService;
+import com.jpsoft.picc.modules.business.entity.InsurancePolicyMember;
+import com.jpsoft.picc.modules.business.service.InsurancePolicyMemberService;
+import com.jpsoft.picc.modules.common.dto.MessageResult;
+import com.jpsoft.picc.modules.common.dto.Sort;
+import com.jpsoft.picc.modules.common.utils.POIUtils;
+import com.jpsoft.picc.modules.common.utils.PojoUtils;
 import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.jasig.cas.client.authentication.AttributePrincipal;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
 
 @Api(description="每月参保人员")
 @RestController
+@RequestMapping("/auth/insurancePolicyUser")
 public class InsurancePolicyUserController {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private CompanyMemberService companyMemberService;
+
+    @Autowired
+    private InsurancePolicyMemberService insurancePolicyMemberService;
+
+    @ApiOperation(value="读取参保人员分页列表")
+    @RequestMapping(value = "pageList",method = RequestMethod.POST)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "PolicyId",value = "每月投保单ID", required = true, paramType = "form",dataType = "String")
+    })
+    public MessageResult<Map> pageList(
+            @RequestParam(value="PolicyId",defaultValue="") String PolicyId,
+            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+            @RequestParam(value="pageSize",defaultValue="20") int pageSize){
+        MessageResult<Map> msgResult = new MessageResult<>();
+
+        Map<String,Object> searchParams = new HashMap<>();
+
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("id_","asc"));
+
+        if (StringUtils.isNotEmpty(PolicyId)) {
+            searchParams.put("PolicyId",PolicyId);
+        }
+
+        Page<InsurancePolicyMember> page = insurancePolicyMemberService.pageSearch(searchParams,pageIndex,pageSize,sortList);
+
+        msgResult.setResult(true);
+        msgResult.setData(PojoUtils.pageWrapper(page));
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="添加参保人员")
+    @PostMapping("add")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "policyId",value = "每月投保单ID", required = true, paramType = "form",dataType = "String"),
+            @ApiImplicitParam(name = "memberId",value = "企业用户ID", required = true, paramType = "form",dataType = "String")
+    })
+    public MessageResult<InsurancePolicyMember> add(@RequestParam(value="policyId",defaultValue="") String policyId,
+                                                    @RequestParam(value="memberId",defaultValue="") String memberId,
+                                                    HttpServletRequest request){
+        AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
+
+        MessageResult<InsurancePolicyMember> msgResult = new MessageResult<>();
+        InsurancePolicyMember insurancePolicyMember = new InsurancePolicyMember();
+
+        try {
+            insurancePolicyMember.setId(UUID.randomUUID().toString());
+            if(StringUtils.isNotEmpty(policyId)) insurancePolicyMember.setPolicyId(policyId);
+            if(StringUtils.isNotEmpty(memberId)) insurancePolicyMember.setMemberId(memberId);
+            insurancePolicyMember.setStatus("0");
+            insurancePolicyMember.setDelFlag(false);
+            insurancePolicyMember.setCreateBy(principal.getName());
+            insurancePolicyMember.setCreateTime(new Date());
+
+            int affectCount = insurancePolicyMemberService.insert(insurancePolicyMember);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(insurancePolicyMember);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库添加失败");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="删除参保人员")
+    @PostMapping("delete")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id",value = "编号", required = true, paramType = "form",dataType = "String")
+    })
+    public MessageResult<Integer> delete(@RequestParam(value="id",defaultValue="") String id,
+                                         HttpServletRequest request){
+        AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
+
+        MessageResult<Integer> msgResult = new MessageResult<>();
+
+        try {
+            InsurancePolicyMember insurancePolicyMember = insurancePolicyMemberService.get(id);
+            insurancePolicyMember.setDelFlag(true);
+            insurancePolicyMember.setUpdateBy(principal.getName());
+            insurancePolicyMember.setUpdateTime(new Date());
+
+            int affectCount = insurancePolicyMemberService.update(insurancePolicyMember);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(affectCount);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("删除失败");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="批量导入参保人员")
+    @PostMapping("batchImport")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "companyId",value = "企业ID", required = true, paramType = "form",dataType = "String"),
+            @ApiImplicitParam(name = "policyId",value = "每月投保单ID", required = true, paramType = "form",dataType = "String"),
+            @ApiImplicitParam(name = "uploadFile",value = "上传文件", required = true,paramType="form", dataType = "__file")
+    })
+    public MessageResult<String> batchImport(@RequestParam(value="companyId",defaultValue="") String companyId,
+                                             @RequestParam(value="policyId",defaultValue="") String policyId,
+                                            MultipartFile uploadFile,
+                                            HttpServletRequest request){
+        AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
+
+        MessageResult<String> msgResult = new MessageResult<>();
+        CompanyMember companyMember = new CompanyMember();
+
+        try {
+            POIUtils aaa = new POIUtils(uploadFile.getInputStream());
+            List<Object[]> list = aaa.getAllData(0);
+
+            int affectCount = 0;
+            for(Object[] array : list){
+                String name = array[1].toString();
+                String cardType = array[2].toString();
+                String cardNo = array[3].toString();
+                Boolean sex = Convert.toBool(array[3]);
+                int age = Convert.toInt(array[3]);
+                String jobsId = array[3].toString();
+                String healthStatus = array[3].toString();
+
+                Map<String,Object> searchParams = new HashMap<>();
+                searchParams.put("companyId",companyId);
+                searchParams.put("name",name);
+                searchParams.put("cardNo",cardNo);
+                List<Sort> sortList = new ArrayList<>();
+                Page<CompanyMember> page = companyMemberService.pageSearch(searchParams,1,100,sortList);
+
+                if(page.size() == 1) {
+                    companyMember = page.get(0);
+                }else{
+                    companyMember.setId(UUID.randomUUID().toString());
+                    if(StringUtils.isNotEmpty(companyId)) companyMember.setCompanyId(companyId);
+                    if (StringUtils.isNotEmpty(name)) companyMember.setName(name);
+                    if (StringUtils.isNotEmpty(cardType)) companyMember.setCardType(cardType);
+                    if (StringUtils.isNotEmpty(cardNo)) companyMember.setCardNo(cardNo);
+                    if (sex != null) companyMember.setSex(sex);
+                    if (age != 0) companyMember.setAge(age);
+                    if (StringUtils.isNotEmpty(jobsId)) companyMember.setJobsId(jobsId);
+                    if (StringUtils.isNotEmpty(healthStatus)) companyMember.setHealthStatus(healthStatus);
+//                if(StringUtils.isNotEmpty(cardFiles)) companyMember.setCardFiles(cardFiles);
+//                if(StringUtils.isNotEmpty(status)) companyMember.setStatus(status);
+                    companyMember.setDelFlag(false);
+                    companyMember.setCreateBy(principal.getName());
+                    companyMember.setCreateTime(new Date());
+                }
+
+                InsurancePolicyMember insurancePolicyMember = new InsurancePolicyMember();
+                insurancePolicyMember.setId(UUID.randomUUID().toString());
+                if(StringUtils.isNotEmpty(policyId)) insurancePolicyMember.setPolicyId(policyId);
+                insurancePolicyMember.setMemberId(companyMember.getId());
+                insurancePolicyMember.setStatus("0");
+                insurancePolicyMember.setDelFlag(false);
+                insurancePolicyMember.setCreateBy(principal.getName());
+                insurancePolicyMember.setCreateTime(new Date());
+
+                if(insurancePolicyMemberService.insert(insurancePolicyMember) > 0){
+                    affectCount++;
+                }
+            }
+
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData("成功导入" + affectCount + "条记录。");
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库添加失败");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
 }