From 9a34f1cf8528b51112f62af5b646db717f612e45 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期一, 01 七月 2024 18:12:06 +0800 Subject: [PATCH] 用户管理界面,下载导入模板,用户导入接口上传,增加corba.properties配置读取类。 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java | 294 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 199 insertions(+), 95 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java index dc1e27b..3bce07c 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java @@ -1,6 +1,5 @@ package com.vci.frameworkcore.compatibility.impl; -import com.vci.client.common.objects.UserObject; import com.vci.common.util.ThreeDES; import com.vci.corba.common.PLException; import com.vci.corba.common.data.UserEntityInfo; @@ -12,21 +11,23 @@ import com.vci.frameworkcore.compatibility.SmUserQueryServiceI; import com.vci.frameworkcore.model.dto.SmUserDTO; import com.vci.frameworkcore.model.SmUserDO; +import com.vci.frameworkcore.model.po.SmUserPO; import com.vci.frameworkcore.pagemodel.OrgDepartmentVO; import com.vci.frameworkcore.pagemodel.SmPasswordStrategyVO; import com.vci.frameworkcore.pagemodel.SmRoleVO; import com.vci.frameworkcore.pagemodel.SmUserVO; +import com.vci.frameworkcore.properties.ConfigReader; import com.vci.omd.utils.ObjectTool; +import com.vci.starter.poi.bo.ReadExcelOption; +import com.vci.starter.poi.bo.WriteExcelData; +import com.vci.starter.poi.bo.WriteExcelOption; +import com.vci.starter.poi.constant.ExcelLangCodeConstant; +import com.vci.starter.poi.util.ExcelUtil; import com.vci.starter.web.enumpck.BooleanEnum; import com.vci.starter.web.enumpck.UserSecretEnum; import com.vci.starter.web.exception.VciBaseException; -import com.vci.starter.web.pagemodel.DataGrid; -import com.vci.starter.web.pagemodel.PageHelper; -import com.vci.starter.web.pagemodel.Tree; -import com.vci.starter.web.pagemodel.TreeQueryObject; -import com.vci.starter.web.util.BeanUtil; -import com.vci.starter.web.util.VciBaseUtil; -import com.vci.starter.web.util.VciDateUtil; +import com.vci.starter.web.pagemodel.*; +import com.vci.starter.web.util.*; import com.vci.starter.web.wrapper.VciQueryWrapperForDO; import com.vci.web.enumpck.UserTypeEnum; import com.vci.web.service.WebBoServiceI; @@ -34,16 +35,18 @@ import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.util.HSSFColor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.io.File; import java.util.*; -import java.util.regex.Pattern; import java.util.stream.Collectors; -import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST; import static com.vci.web.util.WebUtil.arryAndSqlToBusinessObject; /** @@ -112,6 +115,11 @@ public static final String QUERY_FIELD_ROLE = "roleUser.plroleuid"; /** + * 蹇呭~鍒� + */ + private ArrayList<Integer> ColumnNameisRed = new ArrayList<Integer>(); + + /** * 鐢ㄦ埛鍒嗛〉鏌ヨ鏃惰幏鍙栭儴闂ㄦ斁鍒拌繖閲岄伩鍏嶉噸澶嶆煡璇� */ private Map<String,List<OrgDepartmentVO>> orgDepartmentVOMap; @@ -125,6 +133,11 @@ * 鐢ㄦ埛鍒嗛〉鏌ヨ鏃惰幏鍙栧瘑鐮佺瓥鐣ユ斁鍒拌繖閲岄伩鍏嶅娆℃煡璇� */ private Map<String,SmPasswordStrategyVO> smPwdStrategyVOMap; + + /** + * 鏃ュ織 + */ + private Logger logger = LoggerFactory.getLogger(getClass()); /** * 妫�鏌ョ敤鎴锋槸鍚﹀瓨鍦紝鍙互鏍规嵁鐢ㄦ埛鍚嶏紝涔熷彲浠ユ牴鎹敤鎴穙id @@ -238,6 +251,7 @@ throw new VciBaseException("鑾峰彇鐢ㄦ埛澶辫触锛�"+e.getMessage()); } } + /** * 鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇鐢ㄦ埛鐨勪俊鎭� * @param userOid 鐢ㄦ埛涓婚敭 @@ -299,9 +313,9 @@ smUserVO.setId(userInfo.userName); smUserVO.setName(userInfo.trueName); smUserVO.setSecretGrade(userInfo.secretGrade); - smUserVO.setSecretGradeText(UserSecretEnum.getSecretText(smUserVO.getSecretGrade())); + smUserVO.setSecretGradeText(UserSecretEnum.getSecretText(userInfo.secretGrade)); smUserVO.setUserType(String.valueOf(userInfo.userType)); - smUserVO.setUserTypeText(UserTypeEnum.getTextByValue(smUserVO.getUserType())); + smUserVO.setUserTypeText(UserTypeEnum.getTextByValue(String.valueOf(userInfo.userType))); smUserVO.setDescription(userInfo.desc); smUserVO.setEmail(userInfo.email); smUserVO.setStatus(userInfo.status); @@ -519,14 +533,14 @@ } pageHelper.addDefaultAsc("PLTRUENAME"); //TODO:涓轰簡鏂逛究璋冭瘯锛屾墍浠ヨ繖鍎垮厛娉ㄩ噴鍐欐鍚庨潰璁板緱鏇存敼 - //String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName(); + String loginUserId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); //鍒嗛〉鏌ヨ UserInfo[] userInfos = platformClientUtil.getFrameworkService().fetchUserInfoByCondition( conditionMap.get("name"), conditionMap.get("id"), conditionMap.get("pkDepartment"), conditionMap.get("pkPerson"), - "developer", //褰撳墠鐧诲綍鐨勭敤鎴峰悕 + loginUserId, //褰撳墠鐧诲綍鐨勭敤鎴峰悕 pageHelper.getPage(), pageHelper.getLimit() ); @@ -543,7 +557,7 @@ conditionMap.get("id"), conditionMap.get("pkDepartment"), conditionMap.get("pkPerson"), - "developer" //褰撳墠鐧诲綍鐨勭敤鎴峰悕 + loginUserId //褰撳墠鐧诲綍鐨勭敤鎴峰悕 ) ); } @@ -642,42 +656,6 @@ addRoleQuerySql(queryMap,queryWrapperForDO); queryWrapperForDO.eq("plstatus", "0"); queryWrapperForDO.eq("plusertype", "2"); - queryWrapperForDO.setDistinct(true); - return queryWrapperForDO; - } - - /** - * 鑾峰彇鏌ヨ灏佽鍣紝榛樿鍙煡plusertype!=1鐨� - * @param queryField 鏌ヨ灞炴�� - * @param queryValue 鏌ヨ鐨勫�� - * @param queryMap 鏌ヨ鏉′欢锛屽鏋滄槸瑙掕壊鐨勫睘鎬э紝闇�瑕佷娇鐢╬krole.xxx - * @param pageHelper 鍒嗛〉瀵硅薄 - * @param notIn 鏄惁涓轰笉鍖呭惈 - * @return 鏌ヨ灏佽鍣� - */ - private VciQueryWrapperForDO getQueryWrapper2(String queryField,String queryValue,Map<String,String> queryMap,PageHelper pageHelper,boolean notIn){ - if(pageHelper == null){ - pageHelper = new PageHelper(-1); - } - pageHelper.addDefaultAsc("plusername"); - VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(queryMap,SmUserDO.class,pageHelper); - if(StringUtils.isNotBlank(queryField)) { - if (queryValue.contains(",")) { - if (notIn) { - queryWrapperForDO.notIn(queryField, VciBaseUtil.toInSql(VciBaseUtil.str2List(queryValue).toArray(new String[0]))); - } else { - queryWrapperForDO.in(queryField, VciBaseUtil.toInSql(VciBaseUtil.str2List(queryValue).toArray(new String[0]))); - } - } else { - if (notIn) { - queryWrapperForDO.neq(queryField, queryValue); - } else { - queryWrapperForDO.eq(queryField, queryValue); - } - } - } - addRoleQuerySql(queryMap,queryWrapperForDO); - queryWrapperForDO.neq("plusertype", "2"); queryWrapperForDO.setDistinct(true); return queryWrapperForDO; } @@ -1053,19 +1031,20 @@ smUserDTO.getName(),"濮撳悕" ); //鏍¢獙 - check(smUserDTO,true); + check(smUserDTO,true,false); //鐢熸垚瀛樺偍鐨凞O瀵硅薄 Date date = new Date(); smUserDTO.setPwdUpdateTime(date); smUserDTO.setStatus((short) 0); smUserDTO.setCreateTime(date); smUserDTO.setLastModifyTime(date); - //userObject.setCreateUser(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName()); - smUserDTO.setCreator("developer"); - //userObject.setUpdateUser(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName()); - smUserDTO.setLastModifier("developer"); + String loginUserName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); + smUserDTO.setCreator(loginUserName); + //smUserDTO.setCreator("developer"); + smUserDTO.setLastModifier(loginUserName); + //smUserDTO.setLastModifier("developer"); UserInfo userInfo = changeSmUserDTOToUserInfo(smUserDTO); - UserEntityInfo userEntityInfo = new UserEntityInfo("developer", ""); + UserEntityInfo userEntityInfo = new UserEntityInfo(loginUserName, ""); String oid = platformClientUtil.getFrameworkService().saveUser(userInfo, userEntityInfo); if (Func.isEmpty(oid)) { return false; @@ -1096,7 +1075,7 @@ smUserDTO.getName(),"濮撳悕" ); //鏍¢獙 - check(smUserDTO,false); + check(smUserDTO,false,false); //鏌ヨ鏁版嵁搴撲腑鐨� SmUserVO dbSmUserVO = getUserByUserOid(smUserDTO.getOid()); //鏍规嵁涓婚敭娌℃煡璇㈠埌浜嗙敤鎴� @@ -1105,10 +1084,10 @@ } smUserDTO.setLastModifyTime(new Date()); - //userObject.setUpdateUser(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName()); - smUserDTO.setLastModifier("developer"); + String loginUserName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); + smUserDTO.setLastModifier(loginUserName); UserInfo userInfo = changeSmUserDTOToUserInfo(smUserDTO); - boolean updateBoolean = platformClientUtil.getFrameworkService().updateUser(userInfo, new UserEntityInfo("developer", null)); + boolean updateBoolean = platformClientUtil.getFrameworkService().updateUser(userInfo, new UserEntityInfo(loginUserName, null)); //淇敼鎴愬姛锛屽苟涓旂敤鎴峰叧鑱旈儴闂ㄦ湁鎵�鏇存敼 if(updateBoolean && Func.isNotEmpty(smUserDTO.getPkDepartment()) && !smUserDTO.getPkDepartment().equals(dbSmUserVO.getPkDepartment())){ //鎵ц淇濆瓨鐢ㄦ埛閮ㄩ棬鍏宠仈鍏崇郴 @@ -1120,10 +1099,12 @@ /** * 妫�鏌ョ敤鎴蜂俊鎭槸鍚︾鍚堣鑼� * @param smUserDTO - * @param isAdd + * @param isAdd 鏄惁鏂板 + * @param isImport 鏄惁瀵煎叆 */ - private void check(SmUserDTO smUserDTO, boolean isAdd){ - if(!smUserDTO.getPassword().equals(smUserDTO.getConfirmPassword())){ + private void check(SmUserDTO smUserDTO, boolean isAdd,boolean isImport){ + //瀵煎叆鐨勬病鏈夌‘璁ゅ瘑鐮� + if(!isImport && !smUserDTO.getPassword().equals(smUserDTO.getConfirmPassword())){ throw new VciBaseException("瀵嗙爜鍜岀‘璁ゅ瘑鐮佷笉鐩哥瓑"); } if(smUserDTO.getId().getBytes().length > 128){ @@ -1150,8 +1131,10 @@ if (Func.isNotBlank(smUserDTO.getEmail()) && !smUserDTO.getEmail().matches("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$")){ throw new VciBaseException("鐢靛瓙閭鏍煎紡閿欒"); } - //鏄柊澧炴墠鍋氱敤鎴峰悕鏌ラ噸澶勭悊锛屽洜涓虹敤鎴峰悕涓�缁忓垱寤猴紝涓嶅厑璁镐慨鏀� - if(isAdd){ + /*鏄柊澧炴墠鍋氱敤鎴峰悕鏌ラ噸澶勭悊锛屼慨鏀逛笉闇�瑕佹煡閲嶏紙涓�缁忓垱寤轰笉鍏佽淇敼鐢ㄦ埛鍚嶏級锛� + 瀵煎叆鐨勪篃涓嶉渶瑕佸湪杩欏効鏌ラ噸锛屽洜涓哄湪瀵煎叆閫昏緫閲岄潰闇�瑕佽繑鍥為噸澶嶇殑琛� + */ + if(isAdd && !isImport){ //鏍规嵁鐢ㄦ埛鍚嶏紙璐﹀彿锛夋煡閲� SmUserVO dbSmUserVO = getUserByUserId(smUserDTO.getId()); if(Func.isNotEmpty(dbSmUserVO) && Func.isNotBlank(dbSmUserVO.getOid())){ @@ -1161,7 +1144,7 @@ //鏍规嵁褰撳墠鍒涘缓杩欎釜鐢ㄦ埛鐨勪汉鎵�缁戝畾瀵嗙爜绛栫暐鏉ヨ繘琛屽瘑鐮佹牎楠� try { //TODO:涓轰簡鏂逛究璋冭瘯锛屾墍浠ヨ繖鍎垮厛娉ㄩ噴鍐欐鍚庨潰璁板緱鏇存敼 - //String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName(); + //String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); String userName = "developer"; String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(userName, smUserDTO.getPassword(),null); if (!StringUtils.isBlank(error)) { @@ -1200,33 +1183,6 @@ return userInfo; } - /*** - * 鐢ㄦ埛浠庡鎴风瀵硅薄鍒癱orba瀵硅薄 - * - * @param user - * @return - */ - public UserInfo changeUserObjectToUserInfo(UserObject user) { - UserInfo userInfo = new UserInfo(); - userInfo.id = user.getId() == null ? "" : user.getId(); - userInfo.userName = user.getUserName() == null ? "" : user.getUserName(); - userInfo.pwd = user.getPwd() == null ? "" : user.getPwd(); - userInfo.trueName = user.getTrueName() == null ? "" : user.getTrueName(); - userInfo.specialties = user.getSpecialties() == null ? "" : user.getSpecialties(); - userInfo.email = user.getEmail() == null ? "" : user.getEmail(); - userInfo.desc = user.getDesc() == null ? "" : user.getDesc(); - userInfo.userType = user.getUserType(); - userInfo.status = user.getStatus(); - userInfo.createTime = user.getCreateTime(); - userInfo.createUser = user.getCreateUser() == null ? "" : user.getCreateUser(); - userInfo.updateTime = user.getUpdateTime(); - userInfo.updateUser = user.getUpdateUser() == null ? "" : user.getUpdateUser(); - userInfo.pwdUpdateTime = user.getPwdUpdateTime(); - userInfo.grantor = user.getGrantor() == null ? "" : user.getGrantor(); - userInfo.isDeptLeader = user.getIsDeptLeader() == null ? "0" : user.getIsDeptLeader(); - return userInfo; - } - /** * 鍒犻櫎鐢ㄦ埛 * @param ids @@ -1255,9 +1211,157 @@ return platformClientUtil.getFrameworkService().stopUsers(ids, flag,null); } + /** + * 涓嬭浇瀵煎叆浜哄憳鐨別xcel妯℃澘銆� + * @param downloadFileName 涓嬭浇鏃剁晫闈紶杩囨潵鎸囧畾鏂囦欢鍚嶇殑 + * @return 鏂囦欢鍦ㄦ湰鍦扮殑鍏ㄨ矾寰� + * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呮枃浠跺嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 + */ @Override - public void downloadImportTemplate() { + public String downloadImportTemplate(String downloadFileName) { + // 璁剧疆琛ㄥ崟鍒楀悕 + List<String> columns = new ArrayList<>(Arrays.asList("璐﹀彿", "瀵嗙爜", "濮撳悕", "鐢靛瓙閭", "涓撲笟", "鎻忚堪", "閮ㄩ棬(涓婁笅绾ч儴闂ㄤ箣闂翠互鍙嶆枩鏉犻殧寮�(/))")); + //鑾峰彇鏄惁瀵煎嚭瀵嗙骇閰嶇疆椤� + String flag = ConfigReader.getConfigValue("exportSecretGrade"); + if (flag != null && flag.equalsIgnoreCase("true")) { + columns = new ArrayList<>(Arrays.asList("璐﹀彿", "瀵嗙爜", "濮撳悕", "鐢靛瓙閭", "涓撲笟", "鎻忚堪", "閮ㄩ棬(涓婁笅绾ч儴闂ㄤ箣闂翠互鍙嶆枩鏉犻殧寮�(/))" ,"瀵嗙骇")); + } + //璁剧疆蹇呭~鍒� + ColumnNameisRed.clear(); + ColumnNameisRed.add(0); + ColumnNameisRed.add(1); + ColumnNameisRed.add(2); + //鍐檈xcel + String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + downloadFileName + ".xls"; + try { + new File(excelPath).createNewFile(); + } catch (Throwable e) { + throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[]{excelPath}, e); + } + //璁剧疆鍒� + List<WriteExcelData> excelDataList = new ArrayList<>(); + for (int index = 0; index < columns.size(); index++) { + //鍒ゆ柇鏄惁涓哄繀濉垪锛岀粰蹇呭~鍒楄缃鑹� + if(ColumnNameisRed.contains(index)){ + WriteExcelData excelData = new WriteExcelData(0, index, columns.get(index)); + excelData.setFontColor(String.valueOf(HSSFColor.HSSFColorPredefined.RED.getIndex())); + excelDataList.add(excelData); + }else{ + excelDataList.add(new WriteExcelData(0,index, columns.get(index))); + } + } + WriteExcelOption excelOption = new WriteExcelOption(excelDataList); + ExcelUtil.writeDataToFile(excelPath, excelOption); + return excelPath; + } + /** + * 瀵煎叆鎴愬憳 + * @param file + * @return + * @throws VciBaseException + */ + @Override + public BaseResult importUser(File file) throws VciBaseException { + VciBaseUtil.alertNotNull(file,"excel鏂囦欢"); + if(!file.exists()){ + throw new VciBaseException("瀵煎叆鐨別xcel鏂囦欢涓嶅瓨鍦�,{0}",new String[]{file.getPath()}); + } + try{ + //1銆佽鍙杄xcel涓殑鏁版嵁锛岀粍鎴愬璞� + ReadExcelOption excelOption = new ReadExcelOption(); + //褰撳墠鐧诲綍鐨勭敤鎴疯处鍙� + //String loginUserId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); + String loginUserId = "developer"; + UserEntityInfo userEntityInfo = new UserEntityInfo(loginUserId,null); + //鏄惁瀵煎叆瀵嗙骇閰嶇疆 + boolean exportSecretGrade = Boolean.parseBoolean(ConfigReader.getConfigValue("exportSecretGrade")); + List<SmUserPO> poList = ExcelUtil.readDataObjectFromExcel(file, SmUserPO.class,excelOption,(value, po, fieldName)->{ + Integer secretValue = UserSecretEnum.getSecretValueByText(po.getSecretGradeText()); + //鏄惁蹇呴』瀵煎叆瀵嗙骇 + if(exportSecretGrade){ + if(secretValue == null){ + throw new VciBaseException("浼犲叆鐨勫瘑绾т笉绗﹀悎瑙勫垯!"); + } + po.setSecretGrade(secretValue); + } + }); + //鍘婚櫎閮芥槸绌虹殑鎯呭喌 + if(CollectionUtils.isEmpty(poList)){ + return BaseResult.fail(ExcelLangCodeConstant.IMPORT_CONTENT_NULL,new String[]{}); + } + //鏁版嵁搴撴煡璇㈡槸鍚︽湁宸插瓨鍦ㄧ殑鐢ㄦ埛锛屾柟渚垮悗缁仛鍒ら噸澶勭悊 + List<SmUserVO> smUserVOList = this.listUserByUserIds(poList.stream().map(SmUserPO::getId).collect(Collectors.toSet())); + List<String> repeatUserId = new ArrayList<>(); + if(Func.isNotEmpty(smUserVOList)){ + repeatUserId = smUserVOList.stream().map(SmUserVO::getId).collect(Collectors.toList()); + } + //褰撳墠excel涓槸鍚﹂噸澶嶇敤鐨勫垽閲峂ap:锛坘ey锛氳处鍙凤紝value锛氳鍙凤級 + Map<String, String> excelReapeat = new HashMap<>(); + //鍏堣幏鍙栧叏閮ㄩ儴闂ㄥ悕绉扮殑鐖跺瓙瀵瑰簲鍏崇郴锛歬ey涓洪儴闂ㄥ瓙鐖剁骇鍚嶇О璺緞锛寁alue涓洪儴闂ㄤ俊鎭� + Map<String,OrgDepartmentVO> deptVOMap = orgDeptQueryService.getDeptAllTreeMap(); + //鍒ゆ柇蹇呭~灞炴�ф槸鍚︿负绌猴紝鐢ㄦ埛鏄惁宸插瓨鍦紝浠ュ強閮ㄩ棬鏄惁濉敊绛夋牎楠岄�昏緫 + List<String> finalRepeatUserId = repeatUserId; + poList.stream().forEach(smUserPO -> { + //鍏堝蹇呭~灞炴�у垽绌哄鐞� + if(Func.isBlank(smUserPO.getId())){ + throw new VciBaseException("绗��"+smUserPO.getRowIndex()+"銆戣锛寀sernameerror"); + }else if(Func.isBlank(smUserPO.getName())){ + throw new VciBaseException("绗��"+smUserPO.getRowIndex()+"銆戣锛宯ameerror"); + }else if(Func.isBlank(smUserPO.getPassword())){ + throw new VciBaseException("绗��"+smUserPO.getRowIndex()+"銆戣锛宲assworderror"); + }else if (Func.isNotEmpty(smUserVOList) && finalRepeatUserId.contains(smUserPO.getId())){//2銆佸垽鏂敤鎴峰悕鏄惁閲嶅 + throw new VciBaseException("绗��"+smUserPO.getRowIndex()+"銆戣锛岀敤鎴峰悕鍦ㄧ郴缁熶腑宸茬粡瀛樺湪,璇蜂慨鏀�!"); + }else if(Func.isNotBlank(smUserPO.getPkDepartmentName())){//澶勭悊濉啓浜嗛儴闂ㄧ殑鏁版嵁琛� + OrgDepartmentVO orgDepartmentVO = deptVOMap.get(smUserPO.getPkDepartmentName()); + //閮ㄩ棬涓虹┖灏辫鏄庣敤鎴峰~鍐欓敊璇� + if(Func.isEmpty(orgDepartmentVO) && Func.isBlank(orgDepartmentVO.getOid())){ + throw new VciBaseException("绗��"+smUserPO.getRowIndex()+"銆戣鏁版嵁锛岄儴闂ㄨ缃敊璇紝鍘熷洜锛氭湭鏌ヨ鍒拌璺緞涓嬬殑閮ㄩ棬"); + } + }else if(excelReapeat.containsKey(smUserPO.getId())){//琛ㄦ牸涓垽閲� + throw new VciBaseException("绗��"+excelReapeat.get(smUserPO.getId())+"銆戣鍜岀銆�"+smUserPO.getRowIndex()+"銆戣鏁版嵁锛岃处鍙烽噸澶�"); + } + excelReapeat.put(smUserPO.getId(),smUserPO.getRowIndex()); + }); + //淇濆瓨閫昏緫 + poList.stream().forEach(smUserPO->{ + SmUserDTO smUserDTO = new SmUserDTO(); + BeanUtil.convert(smUserPO,smUserDTO); + //鐢ㄦ埛淇℃伅鏄惁瑙勮寖妫�鏌� + this.check(smUserDTO,true,true); + //鐢熸垚瀛樺偍鐨凞O瀵硅薄 + Date date = new Date(); + smUserDTO.setPwdUpdateTime(date); + smUserDTO.setStatus((short) 0); + smUserDTO.setCreateTime(date); + smUserDTO.setLastModifyTime(date); + smUserDTO.setCreator(loginUserId); + smUserDTO.setLastModifier(loginUserId); + //淇濆瓨鐢ㄦ埛 + String oid = null; + try { + //淇濆瓨鐢ㄦ埛鑾峰彇鍒扮敤鎴穙id + oid = platformClientUtil.getFrameworkService().saveUser(changeSmUserDTOToUserInfo(smUserDTO), userEntityInfo); + //淇濆瓨鐢ㄦ埛閮ㄩ棬鍏宠仈鍏崇郴 + if(Func.isNotBlank(oid) && Func.isNotBlank(smUserDTO.getPkDepartmentName())){ + orgDeptQueryService.saveUsersDept( + new String[]{oid}, + deptVOMap.get(smUserDTO.getPkDepartmentName()).getOid() + ); + } + } catch (PLException e) { + e.printStackTrace(); + throw new VciBaseException("鎵ц鍒扮銆�"+smUserPO.getRowIndex()+"銆戣淇濆瓨閫昏緫鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e)); + } + }); + }catch (Exception e){ + if(logger.isErrorEnabled()){ + logger.error("璇诲彇excel鍐呭鏃舵垨淇濆瓨鐢ㄦ埛淇℃伅鏃跺嚭鐜颁簡閿欒锛屽叿浣撳師鍥狅細",e.getMessage()); + } + e.printStackTrace(); + return BaseResult.fail(LangBaseUtil.getErrorMsg(e),new String[]{},e); + } + return BaseResult.success("鐢ㄦ埛瀵煎叆鎴愬姛锛�"); } } -- Gitblit v1.9.3