diff --git a/src/main/java/cn/timer/api/controller/insure/InsureContorll.java b/src/main/java/cn/timer/api/controller/insure/InsureContorll.java index 2841da5..ea25431 100644 --- a/src/main/java/cn/timer/api/controller/insure/InsureContorll.java +++ b/src/main/java/cn/timer/api/controller/insure/InsureContorll.java @@ -868,7 +868,7 @@ public class InsureContorll { @PostMapping(value = "/importUser") - @ApiOperation(value = "导入用户--8小时端", httpMethod = "post", notes = "导入用户") + @ApiOperation(value = "导入用户--运营后台", httpMethod = "post", notes = "导入用户") public Result<Object> importUser(@RequestParam("orgCode") String orgCode, @RequestParam("file") MultipartFile file) { SimpleDateFormat dtf = new SimpleDateFormat("yyyyMMdd"); QyzxEntInfoM company = QyzxEntInfoM.builder().id(Integer.valueOf(orgCode)).build().selectById(); @@ -914,14 +914,14 @@ public class InsureContorll { case "证件号": String idNo = Optional.ofNullable(ExcelUtils.getString(cell)).orElse(""); if (Strings.isNullOrEmpty(idNo) && idNo.length() != 18) { - return ResultUtil.error(y.getName()+"身份证格式不正确"); + return ResultUtil.error(y.getName() + "身份证格式不正确"); } - if(!idNo.matches("^(\\d{6})(\\d{4})(\\d{2})(\\d{2})(\\d{3})([0-9]|X)$")) { - return ResultUtil.error(y.getName()+"身份证格式不正确"); + if (!idNo.matches("^(\\d{6})(\\d{4})(\\d{2})(\\d{2})(\\d{3})([0-9]|X)$")) { + return ResultUtil.error(y.getName() + "身份证格式不正确"); } try { - y.setBirthday(dtf.parse(idNo.substring(6,14))); + y.setBirthday(dtf.parse(idNo.substring(6, 14))); } catch (ParseException e) { e.printStackTrace(); } @@ -940,15 +940,15 @@ public class InsureContorll { break; } } - if (StringUtils.isNullOrEmpty(y.getName())||StringUtils.isNullOrEmpty(y.getZjNum())) { + if (StringUtils.isNullOrEmpty(y.getName()) || StringUtils.isNullOrEmpty(y.getZjNum())) { continue; } yg.add(y); } List<YgglMainEmp> userList = YgglMainEmp.builder().build().selectList(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, orgCode)); - List<String> idNumList=userList.stream().map(YgglMainEmp::getZjNum).collect(Collectors.toList()); - List<YgglMainEmp> newList= yg.stream().filter(v->!idNumList.contains(v.getZjNum())).collect(Collectors.toList()); - if(newList.size()>0) { + List<String> idNumList = userList.stream().map(YgglMainEmp::getZjNum).collect(Collectors.toList()); + List<YgglMainEmp> newList = yg.stream().filter(v -> !idNumList.contains(v.getZjNum())).collect(Collectors.toList()); + if (newList.size() > 0) { newList.forEach(u -> u.insert()); } //假期规则初始化 @@ -961,4 +961,146 @@ public class InsureContorll { return ResultUtil.data("成功添加"); } + @PostMapping(value = "/importPolicy") + @ApiOperation(value = "导入保单--运营后台", httpMethod = "post", notes = "导入用户") + public Result<Object> importPolicy(@RequestParam("file") MultipartFile file) { + SimpleDateFormat dtf = new SimpleDateFormat("yyyyMMdd"); + + if (file.getSize() <= 0) { + return ResultUtil.error("请上传文件"); + } + + try { + XSSFWorkbook xw = new XSSFWorkbook(file.getInputStream()); + XSSFSheet sheetAt = xw.getSheetAt(0); + //默认第一行为标题行,i = 0 + XSSFRow titleRow = sheetAt.getRow(0); + InsurePolicy policy = InsurePolicy.builder().build(); + QyzxEntInfoM company = null; + InsureUser user; + List<InsureUser> userList = Lists.newArrayList(); + // 循环获取每一行数据 + for (int i = 1; i < sheetAt.getPhysicalNumberOfRows(); i++) { + XSSFRow row = sheetAt.getRow(i); + user = InsureUser.builder().build(); + // 读取每一格内容 + for (int index = 0; index < row.getPhysicalNumberOfCells(); index++) { + XSSFCell titleCell = titleRow.getCell(index); + XSSFCell cell = row.getCell(index); + cell.setCellType(CellType.STRING); + switch (ExcelUtils.getString(titleCell)) { + case "申报日期": + Date createTime = null; + try { + createTime = dtf3.parse(ExcelUtils.getString(cell)); + } catch (ParseException e) { + e.printStackTrace(); + } + policy.setCreateTime(createTime); + break; + case "保单号": + policy.setPolicyNo(Optional.ofNullable(ExcelUtils.getString(cell)).orElse("")); + user.setPolicyNo(Optional.ofNullable(ExcelUtils.getString(cell)).orElse("")); + break; + case "申报类型": + if (ExcelUtils.getString(cell).equals("新增")) { + user.setApplyType(1); + } else if (ExcelUtils.getString(cell).equals("批改")) { + user.setApplyType(3); + } + break; + case "方案名称": + break; + case "有效时间": + Date start = null; + try { + start = dtf3.parse(ExcelUtils.getString(cell)); + } catch (ParseException e) { + e.printStackTrace(); + } + user.setPolicyDateStart(start); + policy.setPolicyDateStart(start); + break; + case "有效期止": + Date end = null; + try { + end = dtf3.parse(ExcelUtils.getString(cell)); + } catch (ParseException e) { + e.printStackTrace(); + } + user.setPolicyDateStart(end); + policy.setPolicyDateStart(end); + break; + case "被保险人姓名": + user.setInsuredEContact(ExcelUtils.getString(cell)); + break; + case "证件类型": + if (ExcelUtils.getString(cell).equals("身份证")) { + + } + break; + case "证件号码": + user.setInsuredNo(ExcelUtils.getString(cell)); + break; + case "二、三轮车车架号": + user.setTricycleFrameNumber(!ExcelUtils.getString(cell).equals("无") ? ExcelUtils.getString(cell) : null); + break; + case "职业类别": + if (ExcelUtils.getString(cell).equals("A类")) { + user.setBenefitOccupationCategory("63119"); + } else if (ExcelUtils.getString(cell).equals("B类")) { + user.setBenefitOccupationCategory("63120"); + } else if (ExcelUtils.getString(cell).equals("C类")) { + user.setBenefitOccupationCategory("63121"); + } + break; + case "企业全称": + company = QyzxEntInfoM.builder().build().selectOne(new QueryWrapper<QyzxEntInfoM>().lambda().eq(QyzxEntInfoM::getAttestName, ExcelUtils.getString(cell))); + if (company == null) { + return ResultUtil.error("企业不存在"); + } + user.setOrgCode(company.getId()); + break; + case "总保费": + user.setPrice(ExcelUtils.getString(cell)); + break; + } + } + userList.add(user); + } + InsurePolicy oldPolicy = InsurePolicy.builder().build().selectOne(new QueryWrapper<InsurePolicy>().lambda().eq(InsurePolicy::getPolicyNo, policy.getPolicyNo())); + if (oldPolicy == null) { + policy.insert(); + } else { + policy = oldPolicy; + } + if (userList.size() <= 0) { + return ResultUtil.error("导入错误,保单已存在"); + } + for (InsureUser insureUser : userList) { + /*根据名字,身份,所属企业获取员工*/ + YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda() + .eq(YgglMainEmp::getName, insureUser.getInsuredEContact()) + .eq(YgglMainEmp::getZjNum, insureUser.getInsuredNo()) + .eq(YgglMainEmp::getOrgCode, insureUser.getOrgCode())); + if (ygglMainEmp != null) { + ygglMainEmp.setIsInsure(1); + } else { + /*如果不存在员工就创建一名员工*/ + ygglMainEmp.builder().build(); + ygglMainEmp.setName(insureUser.getInsuredEContact()); + ygglMainEmp.setZjType(0); + ygglMainEmp.setZjNum(insureUser.getInsuredNo()); + ygglMainEmp.setOrgCode(insureUser.getOrgCode()); + } + insureUser.setPolicyId(policy.getId()); + ygglMainEmp.insertOrUpdate(); + insureUser.insert(); + } + } catch (IOException e) { + e.printStackTrace(); + } + return ResultUtil.data("成功导入"); + } + }