/** * 插入导入的记录 * * @param url * @return */ public ApiResponse insertImportOriginBigData(String url, String importType) { boolean flag = true; if (importType.equals("increment")) { flag = incrementOriginBigDataInsert(url); } else if (importType.equals("cover")) { flag = coverOriginBigDataInsert(url); } if (flag == true) { Map<String, Object> details = Params.of("showResult", "导入数据成功!"); return ApiResponse.success("提交成功!", details); } else { Map<String, Object> details = Params.of("showResult", "请检查数据!"); return ApiResponse.success("提交失败!", details); } } //增量数据记录导入 public boolean incrementOriginBigDataInsert(String file) { String userId = SecurityContext.getCurrentUser().getId(); String companyId = String.valueOf(SecurityContext.getCurrentUser().getProperty("COMPANY_ID")); boolean flag = true; //查询大数据类型 Map<String, Object> param = new HashMap<String, Object>(); param.put("code", "ORIGIN_BIG_DATA_TYPE"); List<AttCommonWordBook> attCommonWordBookList = dao.queryForList(AttCommonWordBook.class, "query.att_common_wordbook.code", param); List<AttOriginBigData> list = new ArrayList<AttOriginBigData>(); try { BufferedReader br = null;// 编码方式为utf-8,txt保存时编码方式也要选择为utf-8 try { br = new BufferedReader((new InputStreamReader(new FileInputStream(new File(file)), "GBK"))); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } String line; try { while ((line = br.readLine()) != null) { String originBigData = line.trim();//得到每行数据 String[] originBigDataArray = originBigData.split("\\|");//解析每行数据 if(originBigDataArray.length!=10) { flag = false; return flag; } if (originBigDataArray != null && originBigDataArray.length > 0) { AttOriginBigData attOriginBigData = new AttOriginBigData(); String id = Dao.getUUID(); attOriginBigData.setId(id); /** 打卡日期 **/ if (originBigDataArray[0].contains("null")) { attOriginBigData.setLockinDay(""); } else { attOriginBigData.setLockinDay(originBigDataArray[0]); } /** 导入组织全称 **/ if (originBigDataArray[1].contains("null")) { attOriginBigData.setOrgName(""); } else { attOriginBigData.setOrgName(originBigDataArray[1]); } /** 导入科室 **/ if (originBigDataArray[2].contains("null")) { attOriginBigData.setOfficeName(""); } else { attOriginBigData.setOfficeName(originBigDataArray[2]); } if (originBigDataArray[3].contains("null")) { attOriginBigData.setEmpCode(""); } else { Map<String, Object> params = new HashMap<String, Object>(); params.put("empCode", originBigDataArray[3]); params.put("companyId", companyId); EmployeeBaseInfo employeeBaseInfo = dao.queryForObjectQuietly(EmployeeBaseInfo.class, "query.getEmpInfo", params); if (employeeBaseInfo != null) { /** 员工姓名 **/ attOriginBigData.setEmpName(employeeBaseInfo.getEmpName()); attOriginBigData.setOfficeId(employeeBaseInfo.getOfficeId()); attOriginBigData.setDeptId(employeeBaseInfo.getDepartmentId()); } /** 员工编号 **/ attOriginBigData.setEmpCode(originBigDataArray[3]); } /** 导入手机号 **/ if (originBigDataArray[4].contains("null")) { attOriginBigData.setPhone(""); } else { attOriginBigData.setPhone(originBigDataArray[4]); } /** 上班时间 **/ if (originBigDataArray[5].contains("null")) { attOriginBigData.setMinLockinTime(""); } else { attOriginBigData.setMinLockinTime(originBigDataArray[5]); } /** 下班时间 **/ if (originBigDataArray[6].contains("null")) { attOriginBigData.setMaxLockinTime(""); } else { attOriginBigData.setMaxLockinTime(originBigDataArray[6]); } /** 停留时长 **/ if (originBigDataArray[7].contains("null")) { attOriginBigData.setDuration(Double.valueOf(0)); } else { attOriginBigData.setDuration(Double.valueOf(originBigDataArray[7])); } /** 上班情况 **/ if (originBigDataArray[8].contains("null")) { attOriginBigData.setOnWorkType(""); } else { /** 上班情况ID(对应ATT_COMMON_WORDBOOK.ID) **/ if (attCommonWordBookList != null && attCommonWordBookList.size() > 0) { for (AttCommonWordBook attCommonWordBook : attCommonWordBookList) { if (attCommonWordBook.getName().equals(originBigDataArray[8])) { attOriginBigData.setOnWorkTypeId(attCommonWordBook.getId()); } } } attOriginBigData.setOnWorkType(originBigDataArray[8]); } /** 下班情况 **/ if (originBigDataArray[9].contains("null")) { attOriginBigData.setOutWorkType(""); } else { /** 下班情况ID(对应ATT_COMMON_WORDBOOK.ID) **/ if (attCommonWordBookList != null && attCommonWordBookList.size() > 0) { for (AttCommonWordBook attCommonWordBook : attCommonWordBookList) { if (attCommonWordBook.getName().equals(originBigDataArray[9])) { attOriginBigData.setOutWorkTypeId(attCommonWordBook.getId()); } } } attOriginBigData.setOutWorkType(originBigDataArray[9]); } /** 创建人 **/ attOriginBigData.setCreatedBy(userId); /** 创建时间 **/ attOriginBigData.setCreatedDate(new Date()); /** 最后修改人 **/ attOriginBigData.setLastUpdatedBy(userId); /** 最后修改时间 **/ attOriginBigData.setLastUpdatedDate(new Date()); /**是否删除**/ attOriginBigData.setIsDelete(0); list.add(attOriginBigData); } } } catch (IOException e) { e.printStackTrace(); } int result[] = dao.batchInsert(AttOriginBigData.class, list); for (int i : result) { if (i == 0) { flag = false; } } } catch (Exception e) { e.printStackTrace(); } return flag; } //覆盖数据记录导入 public boolean coverOriginBigDataInsert(String file) { String userId = SecurityContext.getCurrentUser().getId(); String companyId = String.valueOf(SecurityContext.getCurrentUser().getProperty("COMPANY_ID")); boolean flag = true; //查询大数据类型 Map<String, Object> param = new HashMap<String, Object>(); param.put("code", "ORIGIN_BIG_DATA_TYPE"); List<AttCommonWordBook> attCommonWordBookList = dao.queryForList(AttCommonWordBook.class, "query.att_common_wordbook.code", param); List<AttOriginBigData> list = new ArrayList<AttOriginBigData>(); try { BufferedReader br = null;// 编码方式为utf-8,txt保存时编码方式也要选择为utf-8 try { br = new BufferedReader((new InputStreamReader(new FileInputStream(new File(file)), "GBK"))); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } String line; try { while ((line = br.readLine()) != null) { String originBigData = line.trim();//得到每行数据 String[] originBigDataArray = originBigData.split("\\|");//解析每行数据 if(originBigDataArray.length!=10) { flag = false; return flag; } /** 打卡日期 **/ String lockinDay = ""; String orgName= ""; String officeName = ""; String empCode = ""; if (originBigDataArray[0].contains("null")) { lockinDay = ""; } else { lockinDay = originBigDataArray[0]; } /** 导入组织全称 **/ if (originBigDataArray[1].contains("null")) { orgName=""; } else { orgName=originBigDataArray[1]; } /** 导入科室 **/ if (originBigDataArray[2].contains("null")) { officeName = ""; } else { officeName = originBigDataArray[2]; } if (originBigDataArray[3].contains("null")) { empCode = ""; } else { /** 员工编号 **/ empCode = originBigDataArray[3]; } //查询是否存在导入信息 Map<String, Object> originBigDataParam = new HashMap<String, Object>(); originBigDataParam.put("empCode", empCode); originBigDataParam.put("orgName", orgName); originBigDataParam.put("officeName", officeName); originBigDataParam.put("lockinDay", lockinDay); //查询是否存在导入记录 List<AttOriginBigData> oldOriginBigDataList = dao.queryForList(AttOriginBigData.class, "query.att_origin_big_data_by", originBigDataParam); if (oldOriginBigDataList != null && oldOriginBigDataList.size() > 0) { for (AttOriginBigData oldOriginBigData : oldOriginBigDataList) { //如果存在导入记录,将数据删除,重新导入 if (oldOriginBigData != null) { oldOriginBigData.setIsDelete(1); oldOriginBigData.setLastUpdatedDate(new Date()); oldOriginBigData.setLastUpdatedBy(userId); dao.update(AttOriginBigData.class, oldOriginBigData); } } } if (originBigDataArray != null && originBigDataArray.length > 0) { AttOriginBigData attOriginBigData = new AttOriginBigData(); String id = Dao.getUUID(); attOriginBigData.setId(id); /** 打卡日期 **/ attOriginBigData.setLockinDay(lockinDay); /** 导入组织全称 **/ attOriginBigData.setOrgName(orgName); /** 导入科室 **/ attOriginBigData.setOfficeName(officeName); if (empCode != "") { Map<String, Object> params = new HashMap<String, Object>(); params.put("empCode", empCode); params.put("companyId", companyId); EmployeeBaseInfo employeeBaseInfo = dao.queryForObjectQuietly(EmployeeBaseInfo.class, "query.getEmpInfo", params); if (employeeBaseInfo != null) { /** 员工姓名 **/ attOriginBigData.setEmpName(employeeBaseInfo.getEmpName()); attOriginBigData.setOfficeId(employeeBaseInfo.getOfficeId()); attOriginBigData.setDeptId(employeeBaseInfo.getDepartmentId()); } } /** 员工编号 **/ attOriginBigData.setEmpCode(empCode); /** 导入手机号 **/ if (originBigDataArray[4].contains("null")) { attOriginBigData.setPhone(""); } else { attOriginBigData.setPhone(originBigDataArray[4]); } /** 上班时间 **/ if (originBigDataArray[5].contains("null")) { attOriginBigData.setMinLockinTime(""); } else { attOriginBigData.setMinLockinTime(originBigDataArray[5]); } /** 下班时间 **/ if (originBigDataArray[6].contains("null")) { attOriginBigData.setMaxLockinTime(""); } else { attOriginBigData.setMaxLockinTime(originBigDataArray[6]); } /** 停留时长 **/ if (originBigDataArray[7].contains("null")) { attOriginBigData.setDuration(Double.valueOf(0)); } else { attOriginBigData.setDuration(Double.valueOf(originBigDataArray[7])); } /** 上班情况 **/ if (originBigDataArray[8].contains("null")) { attOriginBigData.setOnWorkType(""); } else { /** 上班情况ID(对应ATT_COMMON_WORDBOOK.ID) **/ if (attCommonWordBookList != null && attCommonWordBookList.size() > 0) { for (AttCommonWordBook attCommonWordBook : attCommonWordBookList) { if (attCommonWordBook.getName().equals(originBigDataArray[8])) { attOriginBigData.setOnWorkTypeId(attCommonWordBook.getId()); } } } attOriginBigData.setOnWorkType(originBigDataArray[8]); } /** 下班情况 **/ if (originBigDataArray[9].contains("null")) { attOriginBigData.setOutWorkType(""); } else { /** 下班情况ID(对应ATT_COMMON_WORDBOOK.ID) **/ if (attCommonWordBookList != null && attCommonWordBookList.size() > 0) { for (AttCommonWordBook attCommonWordBook : attCommonWordBookList) { if (attCommonWordBook.getName().equals(originBigDataArray[9])) { attOriginBigData.setOutWorkTypeId(attCommonWordBook.getId()); } } } attOriginBigData.setOutWorkType(originBigDataArray[9]); } /** 创建人 **/ attOriginBigData.setCreatedBy(userId); /** 创建时间 **/ attOriginBigData.setCreatedDate(new Date()); /** 最后修改人 **/ attOriginBigData.setLastUpdatedBy(userId); /** 最后修改时间 **/ attOriginBigData.setLastUpdatedDate(new Date()); /**是否删除**/ attOriginBigData.setIsDelete(0); list.add(attOriginBigData); } } } catch (IOException e) { e.printStackTrace(); } int result[] = dao.batchInsert(AttOriginBigData.class, list); for (int i : result) { if (i == 0) { flag = false; } } } catch (Exception e) { e.printStackTrace(); } return flag; } public List<Map<String, Object>> getattCommonWordBookList(){ if(dao==null){ dao = Dao.get(); } return dao.queryForListMap("query.att_common_wordbook.code", Params.of("code", "ORIGIN_BIG_DATA_TYPE")); }
java导入text文件
最新推荐文章于 2024-07-15 03:03:01 发布