From 817206bae9cde6bf4f38387f07cd7a69e10fd8f5 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 19 十一月 2024 11:17:07 +0800
Subject: [PATCH] 系统模块配置增加functionType字段

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java |  317 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 274 insertions(+), 43 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 0c8ae50..8c2133d 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,5 +1,12 @@
 package com.vci.frameworkcore.compatibility.impl;
 
+import com.vci.common.utility.ObjectUtility;
+import com.vci.corba.framework.data.DeptInfo;
+import com.vci.corba.framework.data.RoleInfo;
+import com.vci.corba.framework.data.UserLogonInfo;
+import com.vci.corba.omd.etm.EnumItem;
+import com.vci.corba.omd.etm.EnumType;
+import com.vci.dto.SmUserDTO;
 import com.vci.common.util.ThreeDES;
 import com.vci.corba.common.PLException;
 import com.vci.corba.common.data.UserEntityInfo;
@@ -9,14 +16,14 @@
 import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI;
 import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI;
 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.frameworkcore.enumpck.OrgTypeEnum;
+import com.vci.model.SmUserDO;
+import com.vci.pagemodel.SmUserVO;
+import com.vci.po.SmUserPO;
+import com.vci.pagemodel.OrgDepartmentVO;
+import com.vci.pagemodel.SmPasswordStrategyVO;
+import com.vci.pagemodel.SmRoleVO;
+import com.vci.frameworkcore.properties.ConfigCorbaReader;
 import com.vci.omd.utils.ObjectTool;
 import com.vci.starter.poi.bo.ReadExcelOption;
 import com.vci.starter.poi.bo.WriteExcelData;
@@ -115,9 +122,14 @@
 	public static final String QUERY_FIELD_ROLE = "roleUser.plroleuid";
 
 	/**
+	 * 瀵嗙骇鐨勬灇涓緆ey
+	 */
+	private static final String ENUM_USERSECURITYENUM = "usersecurityenum";
+
+	/**
 	 * 蹇呭~鍒�
 	 */
-	private ArrayList<Integer> ColumnNameisRed = new ArrayList<Integer>();
+	private List<Integer> ColumnNameisRed = new ArrayList<Integer>();
 
 	/**
 	 * 鐢ㄦ埛鍒嗛〉鏌ヨ鏃惰幏鍙栭儴闂ㄦ斁鍒拌繖閲岄伩鍏嶉噸澶嶆煡璇�
@@ -183,7 +195,7 @@
 	 * @return 鐢ㄦ埛鐨勪俊鎭�
 	 * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
 	 */
-	private SmUserVO getUserByField(String queryField,String queryValue) throws VciBaseException{
+	private SmUserVO getUserByField(String queryField, String queryValue) throws VciBaseException{
 		VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(null, SmUserDO.class,null,true);
 		queryWrapper.eq(queryWrapper.getTableNick() + "." +queryField,queryValue);
 		queryWrapper.setDistinct(true);
@@ -313,7 +325,16 @@
 		smUserVO.setId(userInfo.userName);
 		smUserVO.setName(userInfo.trueName);
 		smUserVO.setSecretGrade(userInfo.secretGrade);
-		smUserVO.setSecretGradeText(UserSecretEnum.getSecretText(userInfo.secretGrade));
+		//瀵嗙骇澶勭悊
+		String secretGrade = "" + userInfo.secretGrade;
+		EnumType item = platformClientUtil.getEnumService().getEnumTypeByName(ENUM_USERSECURITYENUM);
+		EnumItem[] children = item.items;
+		for(EnumItem child: children){
+			if(child.value.equals(secretGrade)){
+				smUserVO.setSecretGradeText(child.name);
+				break;
+			}
+		}
 		smUserVO.setUserType(String.valueOf(userInfo.userType));
 		smUserVO.setUserTypeText(UserTypeEnum.getTextByValue(String.valueOf(userInfo.userType)));
 		smUserVO.setDescription(userInfo.desc);
@@ -353,6 +374,7 @@
 		}else {
 			smRoleVOList = smRoleQueryService.listRoleByUserOid(userInfo.id,null);
 		}
+
 		smUserVO.setPkPerson(
 				Func.isEmpty(smRoleVOList) ?
 						null:smRoleVOList.stream().map(SmRoleVO::getOid).collect(Collectors.joining(","))
@@ -365,11 +387,8 @@
 		smUserVO.setIsDeptLeader(userInfo.isDeptLeader.equals("0") ? "涓嶆槸":"鏄�");
 		//涓撲笟
 		smUserVO.setSpecialties(userInfo.specialties);
-		if(userInfo.status == 0){
-			smUserVO.setLockFlag(false);
-		}else{
-			smUserVO.setLockFlag(true);
-		}
+		UserLogonInfo lockObj = platformClientUtil.getFrameworkService().fetchUserLogonObj(userInfo.id);
+		smUserVO.setLockFlag(lockObj.plWrongNum == 0);
 		smUserVO.setCreator(userInfo.createUser);
 		smUserVO.setCreateTime(VciDateUtil.long2Date(userInfo.createTime));
 		smUserVO.setLastModifier(userInfo.updateUser);
@@ -537,7 +556,11 @@
 			smRoleVOMap = smRoleQueryService.batchListRoleByUserOids(idList,null);
 			smPwdStrategyVOMap = smPwdStrategyQueryService.batchSmPwdStrategyByUserOids(idList);
 			dataGrid.setData(userInfoArr2VO(userInfos));
-			//TODO: 杩欎釜缁熻鎬绘暟鏈夐棶棰橈紝甯﹁繃鍘荤殑鍙傛暟涓嶈兘鍍忎笂闈㈤偅涓猣etchUserInfoByCondition鏌ヨ涓�鏍风粺璁″鍗寸殑鎬绘暟
+			//鐢ㄥ畬浜嗘竻绌�
+			orgDepartmentVOMap = null;
+			smRoleVOMap = null;
+			smPwdStrategyVOMap = null;
+			//TODO: 杩欎釜缁熻鎬绘暟鏈夐棶棰橈紝甯﹁繃鍘荤殑鍙傛暟涓嶈兘鍍忎笂闈㈤偅涓猣etchUserInfoByCondition鏌ヨ涓�鏍风粺璁$殑鍗寸殑鎬绘暟
 			dataGrid.setTotal(
 					platformClientUtil.getFrameworkService().getUserTotalByCondition(
 						conditionMap.get("name"),
@@ -942,20 +965,182 @@
 		return treeList;
 	}
 
-	 /**
+	/**
+	 * 鑾峰彇瑙掕壊鏁版嵁
+	 * @param treeQueryObject
+	 * @return
+	 * @throws VciBaseException
+	 */
+	@Override
+	public List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) throws VciBaseException {
+		List<Tree> rootTreeList=new ArrayList<>();
+	 	Map<String,String> conditionMap=treeQueryObject.getConditionMap();
+	 	if(CollectionUtils.isEmpty(conditionMap)) {
+		 	conditionMap = new HashMap<>();
+	 	}
+		String dataType=StringUtils.isNotBlank(conditionMap.get("dataType"))?conditionMap.get("dataType"):"";//鏁版嵁绫诲瀷
+		String parentId=StringUtils.isNotBlank(conditionMap.get("parentId"))?conditionMap.get("parentId"):"";//鐖惰妭鐐�
+		String orgType=StringUtils.isNotBlank(conditionMap.get("orgType"))?conditionMap.get("orgType"):"";//鎺ュ彛鏌ヨ鍖呭惈鐨勭被鍨�
+		try {
+			initChildTree(dataType,orgType,parentId,rootTreeList);
+		} catch (PLException e) {
+			throw new  VciBaseException("鐢ㄦ埛鏉冮檺閫夋嫨鏍戝姞杞藉け璐�:"+e.getMessage());
+		}
+		return rootTreeList;
+	}
+
+	/**
+	 *
+	 * @param dataType
+	 * @param orgType
+	 * @param parentId
+	 */
+	private void initChildTree(String dataType,String orgType, String  parentId, List<Tree>rootTreeList) throws PLException {
+		if(StringUtils.isBlank(parentId)){
+			Tree rootTree=new Tree("root","浜哄憳缁勭粐","root");
+			rootTree.setParentBtmName("root");
+			rootTree.setExpanded(true);
+			List<Tree> childList=new ArrayList<>();
+			if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(orgType)){//濡傛灉鏄汉鍛�
+				Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"鐢ㄦ埛",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree);
+				childList.add(userTree);
+			}else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(orgType)){//濡傛灉鏄儴闂�
+				Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"閮ㄩ棬",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree);
+				childList.add(departmentTree);
+			}else if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(orgType)){//濡傛灉鏄鑹�
+				Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"瑙掕壊",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree);
+				childList.add(roleTree);
+			}else{
+				Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"鐢ㄦ埛",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree);
+				childList.add(userTree);
+				Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"閮ㄩ棬",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree);
+				childList.add(departmentTree);
+				Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"瑙掕壊",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree);
+				childList.add(roleTree);
+			}
+			if(childList.size()>0){
+				rootTree.setExpanded(true);
+				rootTree.setChildren(childList);
+			}
+			rootTreeList.add(rootTree);
+		}else{
+			if(OrgTypeEnum.ORG_TYPE_ROOT.getValue().equals(dataType)){//濡傛灉鐖惰妭鐐规湁鍊硷紝鍒欓渶瑕佸垽鏂槸鍔犺浇浠�涔堣妭鐐�
+				Tree rootTree=new Tree("root","浜哄憳缁勭粐","root");
+				rootTree.setParentBtmName("root");
+				rootTree.setExpanded(true);
+				if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(orgType)){//濡傛灉鏄汉鍛�
+					Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"鐢ㄦ埛",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree);
+					rootTreeList.add(userTree);
+				}else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(orgType)){//濡傛灉鏄儴闂�
+					Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"閮ㄩ棬",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree);
+					rootTreeList.add(departmentTree);
+				}else if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(orgType)){//濡傛灉鏄鑹�
+					Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"瑙掕壊",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree);
+					rootTreeList.add(roleTree);
+				}else{
+					Tree userTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(),"鐢ㄦ埛",OrgTypeEnum.ORG_TYPE_USER.getValue(),OrgTypeEnum.ORG_TYPE_USER.getValue(),rootTree);
+					rootTreeList.add(userTree);
+					Tree departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"閮ㄩ棬",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),rootTree);
+					rootTreeList.add(departmentTree);
+					Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"瑙掕壊",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),rootTree);
+					rootTreeList.add(roleTree);
+				}
+			}else if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(dataType)) {//濡傛灉浼犺繘鏉ョ殑鏄痷ser鑺傜偣
+				if(OrgTypeEnum.ORG_TYPE_USER.getValue().equals(parentId)) {
+					Tree userTree = initDataTreeNode(OrgTypeEnum.ORG_TYPE_USER.getValue(), "鐢ㄦ埛", OrgTypeEnum.ORG_TYPE_USER.getValue(), OrgTypeEnum.ORG_TYPE_USER.getValue(), null);
+					UserInfo[] infos = platformClientUtil.getFrameworkService().fetchUserInfo();
+					Arrays.stream(infos).forEach(info -> {
+						Tree childTree = initDataTreeNode(info.id, info.trueName + "(" + info.userName + ")", info, OrgTypeEnum.ORG_TYPE_USER.getValue(), userTree);
+						rootTreeList.add(childTree);
+					});
+				}
+			}else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(dataType)) {//濡傛灉鏄儴闂�
+				DeptInfo[] deptInfos=new DeptInfo[]{};
+				Tree departmentTree=new Tree();
+				if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(parentId)) {
+					departmentTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_DEPT.getValue(),"閮ㄩ棬",OrgTypeEnum.ORG_TYPE_DEPT.getValue(),OrgTypeEnum.ORG_TYPE_DEPT.getValue(),null);
+					deptInfos = platformClientUtil.getFrameworkService().fetchDepartmentInfo();
+				}else{
+					deptInfos=platformClientUtil.getFrameworkService().fetchDepartmentInfoByParentId(parentId);
+					DeptInfo deptInfo=platformClientUtil.getFrameworkService().fetchDepartmentInfoById(parentId);
+					departmentTree=initDataTreeNode(deptInfo.id,deptInfo.name,deptInfo,OrgTypeEnum.ORG_TYPE_DEPT.getValue(),null);
+				}
+				if(!CollectionUtils.isEmpty(Arrays.asList(deptInfos))){
+					Tree finalDepartmentTree = departmentTree;
+					Arrays.stream(deptInfos).forEach(deptInfo -> {
+						Tree childTree=initDataTreeNode(deptInfo.id,deptInfo.name,deptInfo,OrgTypeEnum.ORG_TYPE_DEPT.getValue(), finalDepartmentTree);
+						rootTreeList.add(childTree);
+					});
+				}
+				if(!OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(parentId)) {
+					UserInfo[] infos = platformClientUtil.getFrameworkService().getUserByDeptId(parentId);
+					if (infos != null && infos.length > 0) {
+						Tree finalDepartmentTree = departmentTree;
+						Arrays.stream(infos).forEach(info -> {
+							Tree childTree = initDataTreeNode(info.id, info.trueName + "(" + info.userName + ")", info, OrgTypeEnum.ORG_TYPE_USER.getValue(), finalDepartmentTree);
+							rootTreeList.add(childTree);
+						});
+					}
+				}
+
+			}else  if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(dataType)) {//濡傛灉鏄鑹�
+				if(OrgTypeEnum.ORG_TYPE_ROLE.getValue().equals(parentId)){
+					Tree roleTree=initDataTreeNode(OrgTypeEnum.ORG_TYPE_ROLE.getValue(),"瑙掕壊",OrgTypeEnum.ORG_TYPE_ROLE.getValue(),OrgTypeEnum.ORG_TYPE_ROLE.getValue(),null);
+					RoleInfo[] roleInfos=platformClientUtil.getFrameworkService().fetchRoleInfo();
+					if(roleInfos!=null&&roleInfos.length>0) {
+						Arrays.stream(roleInfos).forEach(info -> {
+							Tree childTree = initDataTreeNode(info.id, info.name, info, OrgTypeEnum.ORG_TYPE_ROLE.getValue(), roleTree);
+							rootTreeList.add(childTree);
+						});
+					}
+				}else{
+					RoleInfo roleInfo=platformClientUtil.getFrameworkService().fetchRoleInfoById(parentId);
+					Tree roleTree=initDataTreeNode(roleInfo.id,roleInfo.name,roleInfo,OrgTypeEnum.ORG_TYPE_ROLE.getValue(),null);
+					UserInfo[] infos=platformClientUtil.getFrameworkService().fetchUserInfoByRoleId(roleInfo.id,roleInfo.type);
+					if(infos!=null&&infos.length>0) {
+						Arrays.stream(infos).forEach(info -> {
+							Tree childTree = initDataTreeNode(info.id, info.trueName + "(" + info.userName + ")", info, OrgTypeEnum.ORG_TYPE_USER.getValue(), roleTree);
+							rootTreeList.add(childTree);
+						});
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 *
+	 * @param oid
+	 * @param text
+	 * @param o
+	 * @param type
+	 * @param parentTree
+	 * @return
+	 */
+	private Tree initDataTreeNode(String oid,String text,Object o,String type,Tree parentTree){
+		Tree ObjectTreeNode=new Tree(oid,text,o);
+		ObjectTreeNode.setParentBtmName(type);
+		if(parentTree!=null) {
+			ObjectTreeNode.setParentId(parentTree.getParentId());
+			ObjectTreeNode.setParentName(parentTree.getParentName());
+		}
+		return ObjectTreeNode;
+	}
+
+	/**
      * 鏍¢獙瀵嗙爜鏄惁鐩稿悓锛屽湪鏂板钩鍙颁腑瀛樺偍鐨勫瘑鐮佹槸涓ゆmd5
-     * @param userOid 鐢ㄦ埛涓婚敭
+     * @param userName 鐢ㄦ埛鍚�
      * @param md5Password 宸茬粡md5鍔犲瘑涓�娆$殑瀵嗙爜--鑰佺殑骞冲彴閲屼笉鑳藉姞瀵�
      * @return true 琛ㄧず鐩哥瓑锛宖alse琛ㄧず涓嶇浉绛�
      */
 	@Override
-	public boolean checkPasswordEqual(String md5Password, String userOid) {
-		if(StringUtils.isBlank(md5Password) || StringUtils.isBlank(userOid)){
+	public boolean checkPasswordEqual(String md5Password, String userName) {
+		if(StringUtils.isBlank(md5Password) || StringUtils.isBlank(userName)){
 			return false;
 		}
-		String sql = " select plpassword from pluser where pluid = :userOid";
+		String sql = " select plpassword from pluser where plusername = :userName";
 		Map<String,String> conditionMap = new HashMap<>();
-		conditionMap.put("userOid",userOid.trim());
+		conditionMap.put("userName",userName.trim());
 		List<BusinessObject> BusinessObjectList = boService.queryBySql(sql, conditionMap);
 		if(CollectionUtils.isEmpty(BusinessObjectList)){
 			return  false;
@@ -963,8 +1148,10 @@
 
 		ThreeDES des = new ThreeDES();// 瀹炰緥鍖栦竴涓锟�?
 		des.getKey("daliantan0v0");// 鐢熸垚瀵嗗寵
-		md5Password = des.getEncString(md5Password);
-		if(md5Password.equals(ObjectTool.getNewBOAttributeValue(BusinessObjectList.get(0),"plpassword"))){
+		//瀵规煡璇㈠嚭鏉ョ殑瀵嗙爜瑙e瘑
+		String plpassword = ObjectTool.getNewBOAttributeValue(BusinessObjectList.get(0), "plpassword");
+		plpassword = des.getDesString(plpassword);
+		if(md5Password.equals(plpassword)){
 			return true;
 		}
 		return false;
@@ -1020,27 +1207,44 @@
 
 	 /**
      * 淇敼瀵嗙爜
-     * @param userOid 鐢ㄦ埛涓婚敭
+     * @param userName 鐢ㄦ埛涓婚敭
+     * @param oldPassword 鏃х殑瀵嗙爜
      * @param password 鏂扮殑瀵嗙爜
      * @param confirmPassword 纭瀵嗙爜
      */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void changePassword(String userOid, String password,
-			String confirmPassword) throws VciBaseException {
-		WebUtil.alertNotNull(userOid,"鐢ㄦ埛涓婚敭",password,"瀵嗙爜",confirmPassword,"纭瀵嗙爜");
+	public boolean changePassword(String userName,String oldPassword, String password,
+			String confirmPassword) throws Exception {
+		VciBaseUtil.alertNotNull(userName,"鐢ㄦ埛鍚�",oldPassword,"鐧诲綍瀵嗙爜",password,"瀵嗙爜",confirmPassword,"纭瀵嗙爜");
 		if(!password.equals(confirmPassword)){
 			throw new VciBaseException("瀵嗙爜鍜岀‘璁ゅ瘑鐮佷笉鐩哥瓑");
 		}
-		ThreeDES des = new ThreeDES();// 瀹炰緥鍖栦竴涓锟�?
-		des.getKey("daliantan0v0");// 鐢熸垚瀵嗗寵
-		String encPassword = des.getEncString(password);
-		String sql = "update pluser set plpassword = '" + encPassword + "' where pluid = '" + userOid.trim() + "'";
-		try {
-			platformClientUtil.getBOFactoryService().executeUpdateSql(sql);
-		} catch (PLException vciError) {
-			throw WebUtil.getVciBaseException(vciError);
+		//瀵规棫瀵嗙爜鍜屽瘑鐮佽繘琛岃В瀵嗭紝渚夸簬姣斿瀵嗙爜鐢�
+		oldPassword = Func.decryptAes(oldPassword,"daliantan0v0vcip");
+		password = Func.decryptAes(password,"daliantan0v0vcip");
+		//瀵规瘮鏃у瘑鐮�
+		boolean b = this.checkPasswordEqual(oldPassword, userName);
+		if(!b){
+			throw new PLException("500", new String[] { "鎮ㄨ緭鍏ョ殑瀵嗙爜涓庣櫥褰曞瘑鐮佷笉涓�鑷�,璇烽噸鏂拌緭鍏�!"});
 		}
+		UserInfo userInfo = platformClientUtil.getFrameworkService().getUserObjectByUserName(userName);
+		if(Func.isEmpty(userInfo) || Func.isBlank(userInfo.id)){
+			throw new VciBaseException("褰撳墠淇敼鐨勭敤鎴蜂笉瀛樺湪锛�");
+		}
+		//TODO:鏍¢獙瀵嗙爜鏄惁绗﹀悎绛栫暐
+		String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(userInfo.id, password,null);
+		if (!StringUtils.isBlank(error)) {
+			throw new VciBaseException("褰撳墠璁剧疆鐨勫瘑鐮侊紝瀵嗙爜绛栫暐鏍¢獙鏈�氳繃!");
+		}
+
+		//TODO:鑰冭檻鏄惁闇�瑕佸皢淇敼鏂瑰紡鏀规垚鐩存帴璋冪敤骞冲彴鐨勬帴鍙o紝鍥犱负鐜板湪鐨勪慨鏀规柟寮忔病鑳芥纭殑鏇存柊缂撳瓨
+		userInfo.pwd = password;
+		userInfo.pwdUpdateTime = System.currentTimeMillis();
+		boolean updateBoolean = platformClientUtil.getFrameworkService()
+				.updateUser(userInfo, new UserEntityInfo(WebThreadLocalUtil.getCurrentUserSessionInfoInThread()== null ?
+						userName : WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(), null));
+		return updateBoolean;
 	}
 
 	/**
@@ -1112,7 +1316,10 @@
 		}
 		smUserDTO.setCreator(loginUserId);
 		smUserDTO.setLastModifier(loginUserId);
+		smUserDTO.setOid(ObjectUtility.getNewObjectID36());
 		UserInfo userInfo = changeSmUserDTOToUserInfo(smUserDTO);
+		//绠$悊鍛樻坊鍔犵殑鐢ㄦ埛鍒濆瀵嗙爜淇敼鏃堕棿閮藉簲璇ヤ负0锛屽洜涓烘秹鍙婂埌鍚庨潰鐢ㄦ埛棣栨鐧诲綍鑷繁淇敼瀵嗙爜
+		userInfo.pwdUpdateTime = 0;
 		UserEntityInfo userEntityInfo = new UserEntityInfo(loginUserId, "");
 		String oid = platformClientUtil.getFrameworkService().saveUser(userInfo, userEntityInfo);
 		if (Func.isEmpty(oid)) {
@@ -1213,15 +1420,15 @@
 		}
 		//鏍规嵁褰撳墠鍒涘缓杩欎釜鐢ㄦ埛鐨勪汉鎵�缁戝畾瀵嗙爜绛栫暐鏉ヨ繘琛屽瘑鐮佹牎楠�
 		try {
-			String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
-			String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(userName, smUserDTO.getPassword(),null);
+			String userId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
+			String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(userId, smUserDTO.getPassword(),null);
 			if (!StringUtils.isBlank(error)) {
 				throw new VciBaseException("褰撳墠璁剧疆鐨勫瘑鐮侊紝瀵嗙爜绛栫暐鏍¢獙鏈�氳繃");
 			}
 		} catch (PLException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
-			throw new VciBaseException("妫�鏌ュ瘑鐮佺瓥鐣ョ鍚堟儏鍐靛け璐ワ紒2");
+			throw new VciBaseException("妫�鏌ュ瘑鐮佺瓥鐣ョ鍚堟儏鍐靛け璐ワ紒");
 		}
 	}
 
@@ -1247,6 +1454,7 @@
 		userInfo.updateUser = user.getLastModifier() == null ? "" : user.getLastModifier();
 		userInfo.pwdUpdateTime = user.getPwdUpdateTime().getTime();
 		userInfo.grantor = user.getGrantor() == null ? "" : user.getGrantor();
+		userInfo.secretGrade = user.getSecretGrade() == null ? 2 : Integer.valueOf(user.getGrantor());
 		userInfo.isDeptLeader = user.getIsDeptLeader() == null ? "0" : user.getIsDeptLeader();
 		return userInfo;
 	}
@@ -1293,7 +1501,7 @@
 		// 璁剧疆琛ㄥ崟鍒楀悕
 		List<String> columns = new ArrayList<>(Arrays.asList("璐﹀彿", "瀵嗙爜", "濮撳悕", "鐢靛瓙閭", "涓撲笟", "鎻忚堪", "閮ㄩ棬(涓婁笅绾ч儴闂ㄤ箣闂翠互鍙嶆枩鏉犻殧寮�(/))"));
 		//鑾峰彇鏄惁瀵煎嚭瀵嗙骇閰嶇疆椤�
-		String flag = ConfigReader.getConfigValue("exportSecretGrade");
+		String flag = ConfigCorbaReader.getConfigValue("exportSecretGrade");
 		if (flag != null && flag.equalsIgnoreCase("true")) {
 			columns = new ArrayList<>(Arrays.asList("璐﹀彿", "瀵嗙爜", "濮撳悕", "鐢靛瓙閭", "涓撲笟", "鎻忚堪", "閮ㄩ棬(涓婁笅绾ч儴闂ㄤ箣闂翠互鍙嶆枩鏉犻殧寮�(/))" ,"瀵嗙骇"));
 		}
@@ -1345,7 +1553,7 @@
 			String loginUserId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
 			UserEntityInfo userEntityInfo = new UserEntityInfo(loginUserId,null);
 			//鏄惁瀵煎叆瀵嗙骇閰嶇疆
-			boolean exportSecretGrade = Boolean.parseBoolean(ConfigReader.getConfigValue("exportSecretGrade"));
+			boolean exportSecretGrade = Boolean.parseBoolean(ConfigCorbaReader.getConfigValue("exportSecretGrade"));
 			List<SmUserPO> poList = ExcelUtil.readDataObjectFromExcel(file, SmUserPO.class,excelOption,(value, po, fieldName)->{
 				Integer secretValue = UserSecretEnum.getSecretValueByText(po.getSecretGradeText());
 				//鏄惁蹇呴』瀵煎叆瀵嗙骇
@@ -1369,7 +1577,9 @@
 			//褰撳墠excel涓槸鍚﹂噸澶嶇敤鐨勫垽閲峂ap:锛坘ey锛氳处鍙凤紝value锛氳鍙凤級
 			Map<String, String> excelReapeat = new HashMap<>();
 			//鍏堣幏鍙栧叏閮ㄩ儴闂ㄥ悕绉扮殑鐖跺瓙瀵瑰簲鍏崇郴锛歬ey涓洪儴闂ㄥ瓙鐖剁骇鍚嶇О璺緞锛寁alue涓洪儴闂ㄤ俊鎭�
-			Map<String,OrgDepartmentVO> deptVOMap = orgDeptQueryService.getDeptAllTreeMap();
+			List<OrgDepartmentVO> orgDepartmentVOList = orgDeptQueryService.getDeptAllFullName();
+			Map<String, OrgDepartmentVO> deptVOMap = orgDepartmentVOList.stream().collect(Collectors.toMap(OrgDepartmentVO::getFullDeptNamePath, s->s));
+			//Map<String,OrgDepartmentVO> deptVOMap = orgDeptQueryService.getDeptAllTreeMap();
 			//鍒ゆ柇蹇呭~灞炴�ф槸鍚︿负绌猴紝鐢ㄦ埛鏄惁宸插瓨鍦紝浠ュ強閮ㄩ棬鏄惁濉敊绛夋牎楠岄�昏緫
 			List<String> finalRepeatUserId = repeatUserId;
 			poList.stream().forEach(smUserPO -> {
@@ -1433,4 +1643,25 @@
 		return BaseResult.success("鐢ㄦ埛瀵煎叆鎴愬姛锛�");
 	}
 
+	/**
+	 * 鏍规嵁瑙掕壊绫诲瀷鏌ヨ鐢ㄦ埛鍚�
+	 * @param roleType
+	 * @return
+	 */
+	@Override
+	public List<String> queryUserNameByRoleType(String roleType) throws PLException {
+		List<String> userNameList = new ArrayList<>();
+		if(Func.isBlank(roleType)){
+			return userNameList;
+		}
+		String sql = "SELECT PLUSERNAME FROM PLUSER p WHERE PLUID IN " +
+				"(SELECT PLUSERUID FROM PLUSERROLE p WHERE PLROLEUID IN " +
+				"( SELECT PLUID FROM PLROLE p WHERE PLTYPE = "+ roleType + "))";
+		List<BusinessObject> cbos = boService.queryBySql(sql, null);
+		cbos.stream().forEach(cbo->{
+			userNameList.add(ObjectTool.getNewBOAttributeValue(cbo,"plusername"));
+		});
+		return userNameList;
+	}
+
 }

--
Gitblit v1.9.3