| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | public static final String QUERY_FIELD_ROLE = "roleUser.plroleuid"; |
| | | |
| | | /** |
| | | * å¿
å¡«å |
| | | */ |
| | | private ArrayList<Integer> ColumnNameisRed = new ArrayList<Integer>(); |
| | | |
| | | /** |
| | | * ç¨æ·å页æ¥è¯¢æ¶è·åé¨é¨æ¾å°è¿éé¿å
é夿¥è¯¢ |
| | | */ |
| | | private Map<String,List<OrgDepartmentVO>> orgDepartmentVOMap; |
| | |
| | | * ç¨æ·å页æ¥è¯¢æ¶è·åå¯ç çç¥æ¾å°è¿éé¿å
夿¬¡æ¥è¯¢ |
| | | */ |
| | | private Map<String,SmPasswordStrategyVO> smPwdStrategyVOMap; |
| | | |
| | | /** |
| | | * æ¥å¿ |
| | | */ |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | /** |
| | | * æ£æ¥ç¨æ·æ¯å¦åå¨ï¼å¯ä»¥æ ¹æ®ç¨æ·åï¼ä¹å¯ä»¥æ ¹æ®ç¨æ·oid |
| | |
| | | throw new VciBaseException("è·åç¨æ·å¤±è´¥ï¼"+e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®ç¨æ·ä¸»é®è·åç¨æ·çä¿¡æ¯ |
| | | * @param userOid ç¨æ·ä¸»é® |
| | |
| | | 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); |
| | |
| | | } |
| | | 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() |
| | | ); |
| | |
| | | conditionMap.get("id"), |
| | | conditionMap.get("pkDepartment"), |
| | | conditionMap.get("pkPerson"), |
| | | "developer" //å½åç»å½çç¨æ·å |
| | | loginUserId //å½åç»å½çç¨æ·å |
| | | ) |
| | | ); |
| | | } |
| | |
| | | addRoleQuerySql(queryMap,queryWrapperForDO); |
| | | queryWrapperForDO.eq("plstatus", "0"); |
| | | queryWrapperForDO.eq("plusertype", "2"); |
| | | queryWrapperForDO.setDistinct(true); |
| | | return queryWrapperForDO; |
| | | } |
| | | |
| | | /** |
| | | * è·åæ¥è¯¢å°è£
å¨ï¼é»è®¤åªæ¥plusertype!=1ç |
| | | * @param queryField æ¥è¯¢å±æ§ |
| | | * @param queryValue æ¥è¯¢çå¼ |
| | | * @param queryMap æ¥è¯¢æ¡ä»¶ï¼å¦ææ¯è§è²ç屿§ï¼éè¦ä½¿ç¨pkrole.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; |
| | | } |
| | |
| | | smUserDTO.getName(),"å§å" |
| | | ); |
| | | //æ ¡éª |
| | | check(smUserDTO,true); |
| | | check(smUserDTO,true,false); |
| | | //çæåå¨çDO对象 |
| | | 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; |
| | |
| | | smUserDTO.getName(),"å§å" |
| | | ); |
| | | //æ ¡éª |
| | | check(smUserDTO,false); |
| | | check(smUserDTO,false,false); |
| | | //æ¥è¯¢æ°æ®åºä¸ç |
| | | SmUserVO dbSmUserVO = getUserByUserOid(smUserDTO.getOid()); |
| | | //æ ¹æ®ä¸»é®æ²¡æ¥è¯¢å°äºç¨æ· |
| | |
| | | } |
| | | |
| | | 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())){ |
| | | //æ§è¡ä¿åç¨æ·é¨é¨å
³èå
³ç³» |
| | |
| | | /** |
| | | * æ£æ¥ç¨æ·ä¿¡æ¯æ¯å¦ç¬¦åè§è |
| | | * @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){ |
| | |
| | | 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())){ |
| | |
| | | //æ ¹æ®å½åå建è¿ä¸ªç¨æ·ç人æç»å®å¯ç çç¥æ¥è¿è¡å¯ç æ ¡éª |
| | | 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)) { |
| | |
| | | return userInfo; |
| | | } |
| | | |
| | | /*** |
| | | * ç¨æ·ä»å®¢æ·ç«¯å¯¹è±¡å°corba对象 |
| | | * |
| | | * @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 |
| | |
| | | return platformClientUtil.getFrameworkService().stopUsers(ids, flag,null); |
| | | } |
| | | |
| | | /** |
| | | * ä¸è½½å¯¼å
¥äººåçexcel模æ¿ã |
| | | * @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); |
| | | //åexcel |
| | | 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("导å
¥çexcelæä»¶ä¸åå¨,{0}",new String[]{file.getPath()}); |
| | | } |
| | | try{ |
| | | //1ã读åexcelä¸çæ°æ®ï¼ç»æå¯¹è±¡ |
| | | 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䏿¯å¦éå¤ç¨çå¤éMap:ï¼keyï¼è´¦å·ï¼valueï¼è¡å·ï¼ |
| | | Map<String, String> excelReapeat = new HashMap<>(); |
| | | //å
è·åå
¨é¨é¨é¨åç§°çç¶å对åºå
³ç³»ï¼key为é¨é¨åç¶çº§åç§°è·¯å¾ï¼value为é¨é¨ä¿¡æ¯ |
| | | Map<String,OrgDepartmentVO> deptVOMap = orgDeptQueryService.getDeptAllTreeMap(); |
| | | //夿å¿
填屿§æ¯å¦ä¸ºç©ºï¼ç¨æ·æ¯å¦å·²åå¨ï¼ä»¥åé¨é¨æ¯å¦å¡«éçæ ¡éªé»è¾ |
| | | List<String> finalRepeatUserId = repeatUserId; |
| | | poList.stream().forEach(smUserPO -> { |
| | | //å
对å¿
填屿§å¤ç©ºå¤ç |
| | | if(Func.isBlank(smUserPO.getId())){ |
| | | throw new VciBaseException("第ã"+smUserPO.getRowIndex()+"ãè¡ï¼usernameerror"); |
| | | }else if(Func.isBlank(smUserPO.getName())){ |
| | | throw new VciBaseException("第ã"+smUserPO.getRowIndex()+"ãè¡ï¼nameerror"); |
| | | }else if(Func.isBlank(smUserPO.getPassword())){ |
| | | throw new VciBaseException("第ã"+smUserPO.getRowIndex()+"ãè¡ï¼passworderror"); |
| | | }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); |
| | | //çæåå¨çDO对象 |
| | | 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 { |
| | | //ä¿åç¨æ·è·åå°ç¨æ·oid |
| | | 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("ç¨æ·å¯¼å
¥æåï¼"); |
| | | } |
| | | |
| | | } |