From 7a171b5193feef1d201b7d273b64ba2aebaddcda Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 26 六月 2024 18:22:01 +0800
Subject: [PATCH] 成员管理:分配角色、分配部门、分配部门界面查询、角色角色界面查询等接口添加

---
 Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java                        |   19 ++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java |   35 ++-
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/OrgDepartmentQueryController.java    |   34 +++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java          |    4 
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java  |   67 +++---
 Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/constant/PltWebConstant.java                 |  130 ++++++++++++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java  |   41 ++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/pagemodel/SmUserVO.java                         |   26 ++
 Source/plt-web/plt-web-parent/plt-web-base/pom.xml                                                                        |   17 +
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/OrgDeptQueryServiceI.java         |    9 
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmRoleQueryController.java           |   45 ++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java           |   38 ++-
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmRoleQueryServiceI.java          |   12 +
 Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/BaseResult.java                    |   49 +++++
 14 files changed, 450 insertions(+), 76 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web-base/pom.xml b/Source/plt-web/plt-web-parent/plt-web-base/pom.xml
index c39c2fe..f07c7fa 100644
--- a/Source/plt-web/plt-web-parent/plt-web-base/pom.xml
+++ b/Source/plt-web/plt-web-parent/plt-web-base/pom.xml
@@ -56,6 +56,23 @@
             <artifactId>transmittable-thread-local</artifactId>
             <version>2.12.6</version>
         </dependency>
+        <dependency>
+            <groupId>com.vci.common</groupId>
+            <artifactId>plt-common</artifactId>
+            <version>1.0.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.vci.corba</groupId>
+            <artifactId>plt-slice</artifactId>
+            <version>1.0.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.zeroc</groupId>
+            <artifactId>icegridgui</artifactId>
+            <version>1.0.RELEASE</version>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/constant/PltWebConstant.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/constant/PltWebConstant.java
new file mode 100644
index 0000000..4e3d301
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/constant/PltWebConstant.java
@@ -0,0 +1,130 @@
+package com.vci.starter.web.constant;
+
+/**
+ * 甯哥敤绯荤粺甯搁噺
+ * @author ludc
+ * @date 2024/6/26 16:09
+ */
+public interface PltWebConstant {
+
+    /**
+     * 缂栫爜
+     */
+    String UTF_8 = "UTF-8";
+
+    /**
+     * contentType
+     */
+    String CONTENT_TYPE_NAME = "Content-type";
+
+    /**
+     * JSON 璧勬簮
+     */
+    String CONTENT_TYPE = "application/json;charset=utf-8";
+
+    /**
+     * 涓婁笅鏂囬敭鍊�
+     */
+    String CONTEXT_KEY = "bladeContext";
+
+    /**
+     * mdc request id key
+     */
+    String MDC_REQUEST_ID_KEY = "requestId";
+
+    /**
+     * mdc account id key
+     */
+    String MDC_ACCOUNT_ID_KEY = "accountId";
+
+    /**
+     * mdc tenant id key
+     */
+    String MDC_TENANT_ID_KEY = "tenantId";
+
+    /**
+     * 瑙掕壊鍓嶇紑
+     */
+    String SECURITY_ROLE_PREFIX = "ROLE_";
+
+    /**
+     * 涓婚敭瀛楁鍚�
+     */
+    String DB_PRIMARY_KEY = "id";
+
+    /**
+     * 涓婚敭瀛楁get鏂规硶
+     */
+    String DB_PRIMARY_KEY_METHOD = "getId";
+
+    /**
+     * 绉熸埛瀛楁鍚�
+     */
+    String DB_TENANT_KEY = "tenantId";
+
+    /**
+     * 绉熸埛瀛楁get鏂规硶
+     */
+    String DB_TENANT_KEY_GET_METHOD = "getTenantId";
+
+    /**
+     * 绉熸埛瀛楁set鏂规硶
+     */
+    String DB_TENANT_KEY_SET_METHOD = "setTenantId";
+
+    /**
+     * 涓氬姟鐘舵�乕1:姝e父]
+     */
+    int DB_STATUS_NORMAL = 1;
+
+
+    /**
+     * 鍒犻櫎鐘舵�乕0:姝e父,1:鍒犻櫎]
+     */
+    int DB_NOT_DELETED = 0;
+    int DB_IS_DELETED = 1;
+
+    /**
+     * 鐢ㄦ埛閿佸畾鐘舵��
+     */
+    int DB_ADMIN_NON_LOCKED = 0;
+    int DB_ADMIN_LOCKED = 1;
+
+    /**
+     * 椤剁骇鐖惰妭鐐筰d
+     */
+    Long TOP_PARENT_ID = 0L;
+
+    /**
+     * 椤剁骇鐖惰妭鐐瑰悕绉�
+     */
+    String TOP_PARENT_NAME = "椤剁骇";
+
+    /**
+     * 绠$悊鍛樺搴旂殑绉熸埛ID
+     */
+    String ADMIN_TENANT_ID = "000000";
+
+    /**
+     * 鏃ュ織榛樿鐘舵��
+     */
+    String LOG_NORMAL_TYPE = "1";
+
+    /**
+     * 榛樿涓虹┖娑堟伅
+     */
+    String DEFAULT_NULL_MESSAGE = "鏆傛棤鎵胯浇鏁版嵁";
+    /**
+     * 榛樿鎴愬姛娑堟伅
+     */
+    String DEFAULT_SUCCESS_MESSAGE = "鎿嶄綔鎴愬姛";
+    /**
+     * 榛樿澶辫触娑堟伅
+     */
+    String DEFAULT_FAILURE_MESSAGE = "鎿嶄綔澶辫触";
+    /**
+     * 榛樿鏈巿鏉冩秷鎭�
+     */
+    String DEFAULT_UNAUTHORIZED_MESSAGE = "绛惧悕璁よ瘉澶辫触";
+
+}
diff --git a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/BaseResult.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/BaseResult.java
index d042858..81af35d 100644
--- a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/BaseResult.java
+++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/BaseResult.java
@@ -1,10 +1,13 @@
 package com.vci.starter.web.pagemodel;
 
+import com.vci.starter.web.constant.PltWebConstant;
 import com.vci.starter.web.enumpck.ResultCodeEnum;
 import org.apache.commons.lang3.StringUtils;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 
 /**
  * 缁熶竴鐨勬暟鎹繑鍥炲璞★紝淇濊瘉feign銆乺estTemplate鎴栬�呭叾浠杛est璇锋眰瀹㈡埛绔彲浠ョ粺涓�澶勭悊
@@ -356,7 +359,51 @@
         return baseResult;
     }
 
+    /**
+     * 杩斿洖list
+     *
+     * @param data 鏁版嵁
+     * @param <T>  T 娉涘瀷鏍囪
+     * @return R
+     */
+    public static <T> BaseResult<T> dataList(T data) {
+        return dataList(data, PltWebConstant.DEFAULT_SUCCESS_MESSAGE);
+    }
 
+    /**
+     * 杩斿洖list
+     *
+     * @param data 鏁版嵁
+     * @param msg  娑堟伅
+     * @param <T>  T 娉涘瀷鏍囪
+     * @return R
+     */
+    public static <T> BaseResult<T> dataList(T data, String msg) {
+        return dataList(HttpServletResponse.SC_OK, data, msg);
+    }
+
+    /**
+     * 杩斿洖list
+     *
+     * @param code 鐘舵�佺爜
+     * @param data 鏁版嵁
+     * @param msg  娑堟伅
+     * @param <T>  T 娉涘瀷鏍囪
+     * @return R
+     */
+    public static <T> BaseResult<T> dataList(int code, T data, String msg) {
+        return new BaseResult<>(code, data, data == null ? PltWebConstant.DEFAULT_NULL_MESSAGE : msg);
+    }
+
+    private BaseResult(int code, T data, String msg) {
+        this.code = code;
+        this.data = (Collection<T>) data;
+        this.msg = msg;
+        this.success = ResultCodeEnum.SUCCESS.code == code;
+    }
+
+    public BaseResult() {
+    }
 
     /**
      * 鏍规嵁鍒楄〃鑾峰彇缁熶竴鏁版嵁瀵硅薄
@@ -370,7 +417,6 @@
         baseResult.setTreeData(treeList);
         return baseResult;
     }
-
 
     @Override
     public String toString() {
@@ -390,4 +436,5 @@
                 ", treeData=" + treeData +
                 '}';
     }
+
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java
index 76d5f81..0810fed 100644
--- a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java
+++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java
@@ -3,6 +3,8 @@
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.vci.common.exception.VciExceptionTool;
+import com.vci.corba.common.PLException;
 import com.vci.starter.web.annotation.Id;
 import com.vci.starter.web.annotation.VciBtmType;
 import com.vci.starter.web.annotation.VciLinkType;
@@ -48,6 +50,23 @@
 public class VciBaseUtil {
 
     /**
+     * 鑾峰彇寮傚父淇℃伅,鍥犱负鎶涘嚭鐨勫紓甯镐笉鍚岋紝鑾峰彇閿欒淇℃伅鐨勬柟寮忓瓨鍦ㄥ樊寮傛墍浠ユ棤娉曠粺涓�鑾峰彇
+     * 鍚庣画鏈夊叾浠栧紓甯搁渶瑕佽幏鍙栵紝鑷娣诲姞澶勭悊閫昏緫锛�
+     * @param e
+     * @return
+     */
+    public static String getExceptionMessage(Exception e){
+        String exceptionStr = VciExceptionTool.getExceptionStr(e);
+        if(exceptionStr.contains("VciBaseException")){
+            return e.getMessage();
+        }else if(exceptionStr.contains("PLException")){
+            return Arrays.stream(((PLException) e).messages).collect(Collectors.joining("\n"));
+        }else {
+            return e.getMessage();
+        }
+    }
+
+    /**
      * 鏃ュ織瀵硅薄
      */
     private static Logger log = LoggerFactory.getLogger(VciBaseUtil.class);
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/OrgDeptQueryServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/OrgDeptQueryServiceI.java
index 754f12a..9369e79 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/OrgDeptQueryServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/OrgDeptQueryServiceI.java
@@ -1,6 +1,7 @@
 package com.vci.frameworkcore.compatibility;
 
 import com.vci.corba.common.PLException;
+import com.vci.corba.common.data.UserEntityInfo;
 import com.vci.frameworkcore.pagemodel.OrgDepartmentVO;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.DataGrid;
@@ -115,11 +116,11 @@
     DataGrid refTreeGridDept(TreeQueryObject treeQueryObject);
 
     /**
-     * 淇濆瓨閮ㄩ棬瑙掕壊鍏宠仈淇℃伅锛屽甫鏌ラ噸鍔熻兘
-     * @param userId 鐢ㄦ埛id
-     * @param deptIds 閮ㄩ棬oid
+     * 淇濆瓨閮ㄩ棬瑙掕壊鍏宠仈淇℃伅锛屽甫鏌ラ噸鍔熻兘锛屽瀵瑰淇濆瓨
+     * @param userOIds 鐢ㄦ埛id
+     * @param deptId 閮ㄩ棬oid
      * @return
      */
-    boolean saveUserDepts(String userId, List<String> deptIds) throws PLException;
+    boolean saveUsersDept(String[] userOIds, String deptId) throws PLException;
 
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmRoleQueryServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmRoleQueryServiceI.java
index 5531242..535c9db 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmRoleQueryServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmRoleQueryServiceI.java
@@ -1,5 +1,6 @@
 package com.vci.frameworkcore.compatibility;
 
+import com.vci.corba.common.PLException;
 import com.vci.frameworkcore.pagemodel.SmRoleVO;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.DataGrid;
@@ -65,7 +66,7 @@
      * @param pageHelper 鍒嗛〉鍜屾帓搴忓璞★紝鑰佸钩鍙颁笉鏀寔浣跨敤瑙掕壊缂栧彿鏉ユ帓搴�
      * @return 瑙掕壊鐨勬樉绀哄璞�
      */
-    DataGrid<SmRoleVO>  gridRoleByUserOid(String userOid, Map<String, String> queryMap, PageHelper pageHelper);
+    DataGrid<SmRoleVO> gridRoleByUserOid(String userOid, Map<String, String> queryMap, PageHelper pageHelper);
 
     /**
      * 鑾峰彇鏈叧鑱旀煇涓敤鎴风殑瑙掕壊
@@ -150,4 +151,13 @@
      * @throws VciBaseException 鍙傛暟涓虹┖鐨勬椂鍊欎細鎶涘嚭寮傚父
      */
     List<Tree> refTreeRoles(TreeQueryObject treeQueryObject) throws VciBaseException;
+
+    /**
+     * 璇ユ柟娉曞彧鏀寔涓�娆″彧鍏佽鍗曚釜鐢ㄦ埛鍒嗛厤澶氫釜瑙掕壊锛屼竴瀵瑰
+     * @param userOid
+     * @param roleIds
+     * @return
+     */
+    boolean saveRights(String userOid, String[] roleIds) throws PLException;
+
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
index b3f35ba..d8bb09d 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
@@ -280,6 +280,8 @@
      * @param flag
      * @return
      */
-    boolean disableOrEnableUsers(String[] ids,boolean flag) throws PLException;
+    boolean stopUsers(String[] ids,boolean flag) throws PLException;
+
+    void downloadImportTemplate();
 
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
index 7a92d79..3d433a9 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
@@ -424,37 +424,40 @@
 
 	/**
 	 * 淇濆瓨閮ㄩ棬瑙掕壊鍏宠仈淇℃伅锛屽甫鏌ラ噸鍔熻兘
-	 * @param userId 鐢ㄦ埛id
-	 * @param deptIds 閮ㄩ棬id
+	 * @param userOIds 鐢ㄦ埛id
+	 * @param deptId 閮ㄩ棬id
 	 * @return
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean saveUserDepts(String userId, List<String> deptIds) throws PLException {
-		if(Func.isBlank(userId) || Func.isEmpty(deptIds)){
+	public boolean saveUsersDept(String[] userOIds, String deptId) throws PLException {
+		if(Func.isEmpty(userOIds) || Func.isBlank(deptId)){
 			return false;
 		}
-		List<String> repeatDeptOidList = new ArrayList<>();
+		//鍏堣繘鎬ф煡閲嶅鐞�
+		List<String> repeatUserOidList = new ArrayList<>();
 		//寰幆杩涜鏌ラ噸锛岄伩鍏峣n澶т簬1000
-		WebUtil.switchCollectionForOracleIn(deptIds).stream().forEach(deptoids->{
-			String sql = "select pluseruid,pldeptuid from pluserdept where pluseruid = " + userId
-					+ " and " + "pldeptuid in ("+WebUtil.toInSql(deptoids.toArray(new String[0]))+")";
+		WebUtil.switchCollectionForOracleIn(Arrays.asList(userOIds)).stream().forEach(userOId->{
+			String sql = "select pluseruid,pldeptuid from pluserdept where pldeptuid = '" + deptId
+					+ "' and " + "pluseruid in ("+WebUtil.toInSql(userOId.toArray(new String[0]))+")";
 			List<BusinessObject> cbos = boService.queryBySql(sql, null);
 			if(!CollectionUtils.isEmpty(cbos)){
 				cbos.stream().forEach(cbo->{
-					repeatDeptOidList.add(ObjectTool.getNewBOAttributeValue(cbo,"pldeptuid"));
+					repeatUserOidList.add(ObjectTool.getNewBOAttributeValue(cbo,"pluseruid"));
 				});
 			}
-
 		});
-		//浠庡嵆灏嗚鎵ц淇濆瓨鐨勯儴闂╫id涓Щ闄ゅ綋鍓嶇敤鎴峰凡缁忓瓨鍦ㄥ叧鑱斿叧绯荤殑鐨勯儴闂╫id
-		deptIds.removeAll(repeatDeptOidList);
-		if(Func.isNotEmpty(deptIds)){
-			for (String deptId : deptIds){
-				platformClientUtil.getFrameworkService().saveUserDept(new String[]{userId}, deptId,null);
-			}
+
+		//浠庡嵆灏嗚鎵ц淇濆瓨鐨勭敤鎴穙id涓Щ闄ゅ綋鍓嶇敤鎴峰凡缁忓瓨鍦ㄥ叧鑱斿叧绯荤殑oid
+		//绉婚櫎閲嶅鐨�
+		List<String> tempList = new ArrayList<>(Arrays.asList(userOIds));
+		tempList.removeAll(repeatUserOidList);
+		userOIds = tempList.toArray(new String[tempList.size()]);
+		if(Func.isNotEmpty(userOIds)){
+			platformClientUtil.getFrameworkService().saveUserDept(userOIds, deptId,null);
 		}
 		return true;
 	}
 
+
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java
index 0f3131a..c71204f 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java
@@ -1,5 +1,7 @@
 package com.vci.frameworkcore.compatibility.impl;
 
+import com.vci.corba.common.PLException;
+import com.vci.corba.common.data.UserEntityInfo;
 import com.vci.corba.omd.data.BusinessObject;
 import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI;
 import com.vci.frameworkcore.constant.FrameWorkBtmTypeConstant;
@@ -19,6 +21,7 @@
 import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
 import com.vci.web.properties.WebProperties;
 import com.vci.web.service.WebBoServiceI;
+import com.vci.web.util.Func;
 import com.vci.web.util.PlatformClientUtil;
 import com.vci.web.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -45,6 +48,12 @@
 	 */
 	@Autowired
 	private WebBoServiceI boService;
+
+	/**
+	 * 骞冲彴璋冪敤瀹㈡埛绔�
+	 */
+	@Autowired
+	private PlatformClientUtil platformClientUtil;
 
 	/**
      * 鏍规嵁瑙掕壊涓婚敭鑾峰彇瑙掕壊鐨勪俊鎭�
@@ -504,6 +513,38 @@
 	}
 
 	/**
+	 * 璇ユ柟娉曞彧鏀寔涓�娆″彧鍏佽鍗曚釜鐢ㄦ埛鍒嗛厤澶氫釜瑙掕壊锛屼竴瀵瑰
+	 * @param userOid
+	 * @param roleIds
+	 * @return
+	 */
+	@Override
+	public boolean saveRights(String userOid, String[] roleIds) throws PLException {
+		VciBaseUtil.alertNotNull(userOid,"鐢ㄦ埛涓婚敭");
+		//roleIds鍏佽涓虹┖锛屼负绌烘椂娓呯┖褰撳墠鐢ㄦ埛鐨勬潈闄�
+		//鍏堟煡閲�
+		if(Func.isNotEmpty(roleIds)){
+			List<String> repeatRoleOidList = new ArrayList<>();
+			//寰幆杩涜鏌ラ噸锛岄伩鍏峣n澶т簬1000
+			WebUtil.switchCollectionForOracleIn(Arrays.asList(roleIds)).stream().forEach(deptoids->{
+				String sql = "select pluseruid,plroleuid from pluserrole where pluseruid = '" + userOid
+						+ "' and " + "plroleuid in ("+WebUtil.toInSql(deptoids.toArray(new String[0]))+")";
+				List<BusinessObject> cbos = boService.queryBySql(sql, null);
+				if(!CollectionUtils.isEmpty(cbos)){
+					cbos.stream().forEach(cbo->{
+						repeatRoleOidList.add(ObjectTool.getNewBOAttributeValue(cbo,"plroleuid"));
+					});
+				}
+			});
+			//绉婚櫎閲嶅鐨�
+			List<String> tempList = new ArrayList<>(Arrays.asList(roleIds));
+			tempList.removeAll(repeatRoleOidList);
+			roleIds = tempList.toArray(new String[tempList.size()]);
+		}
+		return platformClientUtil.getFrameworkService().saveRights(roleIds,new String[]{userOid},new UserEntityInfo());
+	}
+
+	/**
 	 * 瑙掕壊鐨勮浆鎹紝榛樿鍏ㄩ儴鏄痓s鎺у埗鐨勮鑹�
 	 * @param roleForPlatform1List 鍘熷钩鍙扮殑瑙掕壊
 	 * @return 瑙掕壊鐨勬樉绀哄璞�
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 9c3d497..dc1e27b 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
@@ -135,7 +135,7 @@
 	@Override
 	public boolean checkUserExist(String userName, String oid) throws PLException {
 		if(Func.isEmpty(userName) && Func.isEmpty(oid)){
-			throw new PLException("妫�鏌ョ敤鎴锋槸鍚﹀瓨鍦ㄦ椂锛屼紶閫掔殑鍙傛暟鐢ㄦ埛鍚嶅拰鐢ㄦ埛oid閮戒负绌猴紒",new String[0]);
+			throw new PLException("500", new String[] { "妫�鏌ョ敤鎴锋槸鍚﹀瓨鍦ㄦ椂锛屼紶閫掔殑鍙傛暟鐢ㄦ埛鍚嶅拰鐢ㄦ埛oid閮戒负绌猴紒"});
 		}
 		UserInfo userInfo = null;
 		if(Func.isNotEmpty(userName)) {
@@ -304,6 +304,8 @@
 		smUserVO.setUserTypeText(UserTypeEnum.getTextByValue(smUserVO.getUserType()));
 		smUserVO.setDescription(userInfo.desc);
 		smUserVO.setEmail(userInfo.email);
+		smUserVO.setStatus(userInfo.status);
+		smUserVO.setPassword(userInfo.pwd);
 		//鐢ㄦ埛鎵�灞為儴闂ㄧ殑鏌ヨ璁剧疆
 		List<OrgDepartmentVO> orgDepartmentVOList;
 		//鏌ョ湅鍏ㄥ眬鍙橀噺涓槸鍚﹀瓨鍦ㄩ儴闂ㄤ俊鎭紝瀛樺湪鐨勬儏鍐垫渶涓昏鏄拡瀵瑰鏉$敤鎴锋煡璇㈢殑鏃跺�欓伩鍏嶉噸澶嶆煡璇㈢殑
@@ -521,9 +523,9 @@
 		//鍒嗛〉鏌ヨ
 		UserInfo[] userInfos = platformClientUtil.getFrameworkService().fetchUserInfoByCondition(
 				conditionMap.get("name"),
-				conditionMap.get("userName"),
-				conditionMap.get("deptId"),
-				conditionMap.get("roleId"),
+				conditionMap.get("id"),
+				conditionMap.get("pkDepartment"),
+				conditionMap.get("pkPerson"),
 				"developer",  //褰撳墠鐧诲綍鐨勭敤鎴峰悕
 				pageHelper.getPage(),
 				pageHelper.getLimit()
@@ -538,9 +540,9 @@
 			dataGrid.setTotal(
 					platformClientUtil.getFrameworkService().getUserTotalByCondition(
 						conditionMap.get("name"),
-						conditionMap.get("userName"),
-						conditionMap.get("deptId"),
-						conditionMap.get("roleId"),
+						conditionMap.get("id"),
+						conditionMap.get("pkDepartment"),
+						conditionMap.get("pkPerson"),
 						"developer"  //褰撳墠鐧诲綍鐨勭敤鎴峰悕
 					)
 			);
@@ -1062,14 +1064,16 @@
 		smUserDTO.setCreator("developer");
 		//userObject.setUpdateUser(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName());
 		smUserDTO.setLastModifier("developer");
-		UserInfo userInfo = changeUserObjectToUserInfo(smUserDTO);
+		UserInfo userInfo = changeSmUserDTOToUserInfo(smUserDTO);
 		UserEntityInfo userEntityInfo = new UserEntityInfo("developer", "");
 		String oid = platformClientUtil.getFrameworkService().saveUser(userInfo, userEntityInfo);
 		if (Func.isEmpty(oid)) {
 			return false;
 		}
 		if(Func.isNotBlank(smUserDTO.getPkDepartment())){
-			platformClientUtil.getFrameworkService().saveUserDept(new String[]{oid}, smUserDTO.getPkDepartment(), userEntityInfo);
+			//鎵ц淇濆瓨鐢ㄦ埛閮ㄩ棬鍏宠仈鍏崇郴
+			orgDeptQueryService.saveUsersDept(new String[]{oid},smUserDTO.getPkDepartment());
+			//platformClientUtil.getFrameworkService().saveUserDept(new String[]{oid}, smUserDTO.getPkDepartment(), userEntityInfo);
 		}
 		return true;
 	}
@@ -1094,28 +1098,21 @@
 		//鏍¢獙
 		check(smUserDTO,false);
 		//鏌ヨ鏁版嵁搴撲腑鐨�
-		SmUserVO dbSmUserVO = getUserByUserId(smUserDTO.getId());
-		//鏍规嵁鐢ㄦ埛鍚嶆煡璇㈠埌浜嗙敤鎴凤紝浣嗘槸oid涓嶆槸褰撳墠淇敼鐨勭敤鎴风殑oid锛岃鏄庝慨鏀圭殑鐢ㄦ埛鍚嶉噸澶�
-		if(Func.isNotEmpty(dbSmUserVO)
-			&& !dbSmUserVO.getOid().equals(smUserDTO.getOid())
-		){
-			throw new PLException("鐢ㄦ埛鍚嶅凡瀛樺湪锛屼笉鑳藉皢褰撳墠鐢ㄦ埛鐨勭敤鎴峰悕淇敼涓�" + dbSmUserVO.getId(),new String[0]);
+		SmUserVO dbSmUserVO = getUserByUserOid(smUserDTO.getOid());
+		//鏍规嵁涓婚敭娌℃煡璇㈠埌浜嗙敤鎴�
+		if(Func.isEmpty(dbSmUserVO) || Func.isBlank(dbSmUserVO.getOid())){
+			throw new PLException("500", new String[] { "褰撳墠淇敼鐨勭敤鎴蜂笉瀛樺湪"});
 		}
+
 		smUserDTO.setLastModifyTime(new Date());
 		//userObject.setUpdateUser(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName());
 		smUserDTO.setLastModifier("developer");
-		UserInfo userInfo = changeUserObjectToUserInfo(smUserDTO);
+		UserInfo userInfo = changeSmUserDTOToUserInfo(smUserDTO);
 		boolean updateBoolean = platformClientUtil.getFrameworkService().updateUser(userInfo, new UserEntityInfo("developer", null));
-		//鐢ㄦ埛鍏宠仈閮ㄩ棬鏈夋墍鏇存敼
-		if(Func.isNotEmpty(smUserDTO.getPkDepartment()) && !smUserDTO.getPkDepartment().equals(dbSmUserVO.getPkDepartment())){
-			//鐣岄潰浼犻�掕繃鏉ョ殑宸插叧鑱旂殑閮ㄩ棬oid
-			List<String> updatePkDept = Func.toStrList(smUserDTO.getPkDepartment(), ",");
-			//鐢ㄦ埛宸插叧鑱旂殑閮ㄩ棬oid
-			List<String> associatedPkDept = Func.toStrList(dbSmUserVO.getPkDepartment(), ",");
-			//绉婚櫎
-			updatePkDept.removeAll(associatedPkDept);
+		//淇敼鎴愬姛锛屽苟涓旂敤鎴峰叧鑱旈儴闂ㄦ湁鎵�鏇存敼
+		if(updateBoolean && Func.isNotEmpty(smUserDTO.getPkDepartment()) && !smUserDTO.getPkDepartment().equals(dbSmUserVO.getPkDepartment())){
 			//鎵ц淇濆瓨鐢ㄦ埛閮ㄩ棬鍏宠仈鍏崇郴
-			orgDeptQueryService.saveUserDepts(dbSmUserVO.getOid(),updatePkDept);
+			orgDeptQueryService.saveUsersDept(new String[]{dbSmUserVO.getOid()},smUserDTO.getPkDepartment());
 		}
 		return updateBoolean;
 	}
@@ -1147,13 +1144,13 @@
 		if (Func.isNotBlank(smUserDTO.getDescription()) && smUserDTO.getDescription().getBytes().length > 255 ){
 			throw new VciBaseException("鎻忚堪闀垮害瓒呰繃涓婇檺");
 		}
-		if (!smUserDTO.getName().matches("^[A-Za-z0-9_]+$")) {
+		if (!smUserDTO.getId().matches("^[A-Za-z0-9_]+$")) {
 			throw new VciBaseException("鐢ㄦ埛鍚嶅繀椤绘槸鐢盇-Z a-z 0-9 _缁勬垚");
 		}
 		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){
 			//鏍规嵁鐢ㄦ埛鍚嶏紙璐﹀彿锛夋煡閲�
 			SmUserVO dbSmUserVO = getUserByUserId(smUserDTO.getId());
@@ -1177,14 +1174,12 @@
 		}
 	}
 
-
-
 	/***
 	 * 鐢ㄦ埛浠嶥TO瀵硅薄鍒癱orba瀵硅薄
 	 * @param user
 	 * @return
 	 */
-	public UserInfo changeUserObjectToUserInfo(SmUserDTO user) {
+	public UserInfo changeSmUserDTOToUserInfo(SmUserDTO user) {
 		UserInfo userInfo = new UserInfo();
 		userInfo.id = user.getOid() == null ? "" : user.getOid();
 		userInfo.userName = user.getId() == null ? "" : user.getId();
@@ -1240,7 +1235,10 @@
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean deleteUser(String[] ids) throws PLException {
-		VciBaseUtil.alertNotNull(ids,"寰呭垹闄ょ殑鐢ㄦ埛id鍒楄〃涓嶈兘涓虹┖锛�");
+		if(Func.isEmpty(ids)){
+			throw new VciBaseException("寰呭垹闄ょ殑鐢ㄦ埛id鍒楄〃涓嶈兘涓虹┖锛�");
+		}
+		//璋冪敤platformClientUtil鐨勫垹闄ょ敤鎴风殑鏂规硶锛屼細涓�璧峰垹闄ゆ帀鍏峰鍏宠仈鍏崇郴鐨勪竴浜涗俊鎭紝濡傞儴闂�
 		return platformClientUtil.getFrameworkService().deleteUser(ids, null);
 	}
 
@@ -1252,9 +1250,14 @@
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean disableOrEnableUsers(String[] ids, boolean flag) throws PLException {
+	public boolean stopUsers(String[] ids, boolean flag) throws PLException {
 		VciBaseUtil.alertNotNull(ids,"鍋滅敤/鍚敤鐨勭敤鎴穒d鍒楄〃");
 		return platformClientUtil.getFrameworkService().stopUsers(ids, flag,null);
 	}
 
+	@Override
+	public void downloadImportTemplate() {
+
+	}
+
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/OrgDepartmentQueryController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/OrgDepartmentQueryController.java
index 33278b6..da185df 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/OrgDepartmentQueryController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/OrgDepartmentQueryController.java
@@ -1,14 +1,18 @@
 package com.vci.frameworkcore.controller;
 
+import com.vci.corba.common.PLException;
 import com.vci.frameworkcore.compatibility.OrgDeptQueryServiceI;
 import com.vci.frameworkcore.pagemodel.OrgDepartmentVO;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.*;
+import com.vci.starter.web.util.VciBaseUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 
@@ -17,8 +21,9 @@
  * @author weidy
  * @date 2020/3/4
  */
-@Controller
+@RestController
 @RequestMapping("/departmentQueryController")
+@Slf4j
 public class OrgDepartmentQueryController {
 
     /**
@@ -34,17 +39,40 @@
      * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父锛屽鏋滄槸鑰佺殑椤圭洰閲屼笉鎶涘嚭寮傚父
      */
     @RequestMapping(value = "/refTree",method = RequestMethod.GET)
-    @ResponseBody
     public BaseResult<Tree> refTree(TreeQueryObject treeQueryObject) throws VciBaseException{
         List<Tree> deptTreeList = deptQueryService.refTreeDept(treeQueryObject);
         return  BaseResult.tree(deptTreeList);
         //鑰佺殑椤圭洰渚濈劧鏄坊鍔爐ry catch锛屾柟娉曢噷涓嶆姏鍑哄紓甯�
         //BaseResult.fail("杩欓噷杩斿洖鍓嶇鐨勯敊璇俊鎭�");
     }
+
+    /**
+     * 閮ㄩ棬鏌ヨ锛屽甫鍒嗛〉
+     * @param queryObject
+     * @return
+     */
     @RequestMapping(value = "/refDataGrid",method = RequestMethod.GET)
-    @ResponseBody
     public BaseResult<OrgDepartmentVO> refDataGrid(BaseQueryObject queryObject){
     	DataGrid<OrgDepartmentVO> dataGrid=deptQueryService.gridDepts(queryObject.getConditionMap(), queryObject.getPageHelper());
     	return BaseResult.dataGrid(dataGrid);
     }
+
+    /**
+     * 淇濆瓨閮ㄩ棬瑙掕壊鍏宠仈淇℃伅锛屽甫鏌ラ噸鍔熻兘
+     * @param userOIds 鐢ㄦ埛id
+     * @param deptId 閮ㄩ棬oid
+     * @return
+     */
+    @RequestMapping(value = "/saveUsersDepts",method = RequestMethod.POST)
+    public BaseResult saveUsersDepts(String[] userOIds, String deptId){
+        try {
+            return deptQueryService.saveUsersDept(userOIds,deptId) ? BaseResult.success("瑙掕壊鍒嗛厤鎴愬姛锛�"):BaseResult.fail("瑙掕壊鍒嗛厤澶辫触锛�");
+        }catch (Exception e){
+            e.printStackTrace();
+            String exceptionMessage = VciBaseUtil.getExceptionMessage(e);
+            log.error("鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇锛屽叧鑱旂殑瑙掕壊鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
+            return BaseResult.fail("鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇锛屽叧鑱旂殑瑙掕壊鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
+        }
+    }
+
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmRoleQueryController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmRoleQueryController.java
index d4f644c..8cbe7c2 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmRoleQueryController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmRoleQueryController.java
@@ -4,21 +4,26 @@
 import com.vci.frameworkcore.pagemodel.SmRoleVO;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.*;
+import com.vci.starter.web.util.VciBaseUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 瑙掕壊鏌ヨ鎺у埗鍣�
  * @author weidy
  * @date 2020/3/4
  */
-@Controller
+@RestController
 @RequestMapping("/roleQueryController")
+@Slf4j
 public class SmRoleQueryController {
 
     /**
@@ -34,7 +39,6 @@
      * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父锛屽鏋滄槸鑰佺殑椤圭洰閲屼笉鎶涘嚭寮傚父
      */
     @RequestMapping(value = "/refDataGrid",method = RequestMethod.GET)
-    @ResponseBody
     public BaseResult<SmRoleVO> refDataGrid(BaseQueryObject queryObject) throws VciBaseException {
         if(queryObject == null){
             queryObject = new BaseQueryObject();
@@ -46,13 +50,48 @@
     }
 
     /**
+     * 鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇鍏宠仈鐨勮鑹�
+     * @param userOid 鐢ㄦ埛涓婚敭
+     * @param queryMap 鏌ヨ鏉′欢锛屽鏋滈渶瑕佷娇鐢ㄧ敤鎴风殑灞炴�ф潵鏌ヨ鍙互浣跨敤pkUser.xxxx
+     * @return 瑙掕壊鐨勬樉绀哄璞�
+     */
+    @RequestMapping(value = "/listRoleByUserOid",method = RequestMethod.GET)
+    public BaseResult<List<SmRoleVO>> listRoleByUserOid(String userOid, Map<String, String> queryMap){
+        try {
+            return BaseResult.dataList(roleQueryService.listRoleByUserOid(userOid,queryMap));
+        }catch (Exception e){
+            e.printStackTrace();
+            String exceptionMessage = VciBaseUtil.getExceptionMessage(e);
+            log.error("鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇锛屽叧鑱旂殑瑙掕壊鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
+            return BaseResult.fail("鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇锛屽叧鑱旂殑瑙掕壊鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
+        }
+    }
+
+    /**
+     * 鍒嗛厤瑙掕壊锛氫繚瀛樼敤鎴疯鑹插叧鑱斿叧绯�
+     * @param userOid
+     * @param roleIds
+     * @return
+     */
+    @RequestMapping(value = "/saveRights",method = RequestMethod.POST)
+    public BaseResult saveRights(String userOid, String[] roleIds){
+        try {
+            return roleQueryService.saveRights(userOid,roleIds) ? BaseResult.success("瑙掕壊鍒嗛厤鎴愬姛锛�"):BaseResult.fail("瑙掕壊鍒嗛厤澶辫触锛�");
+        }catch (Exception e){
+            e.printStackTrace();
+            String exceptionMessage = VciBaseUtil.getExceptionMessage(e);
+            log.error("鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇锛屽叧鑱旂殑瑙掕壊鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
+            return BaseResult.fail("鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇锛屽叧鑱旂殑瑙掕壊鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
+        }
+    }
+
+    /**
      * 瑙掕壊鐨勬爲褰㈠弬鐓�
      * @param treeQueryObject 鏍戝舰鏁版嵁鐨勬煡璇㈠璞★紝鍖呮嫭鏌ヨ鏉′欢锛屼笂绾т富閿紝鏄惁澶氶�夌瓑锛宔xtandParamsMap涓坊鍔�"showAllRoleNode"涓�"true"鏃讹紝杩斿洖缁撴灉涓細鍖呭惈鈥滄墍鏈夎鑹测�濊繖涓妭鐐�
      * @return 瑙掕壊鐨勬爲褰㈠弬鐓э紝鏃犱笂涓嬬骇鍏崇郴
      * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父锛屽鏋滄槸鑰佺殑椤圭洰閲屼笉鎶涘嚭寮傚父
      */
     @RequestMapping(value = "/refTree",method = RequestMethod.GET)
-    @ResponseBody
     public BaseResult<Tree> refTree(TreeQueryObject treeQueryObject) throws VciBaseException{
         List<Tree> roleTreeList = roleQueryService.refTreeRoles(treeQueryObject);
         return  BaseResult.tree(roleTreeList);
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java
index 690357b..a8e5f54 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java
@@ -1,11 +1,14 @@
 package com.vci.frameworkcore.controller;
 
+import com.vci.common.exception.VciExceptionTool;
+import com.vci.corba.common.PLException;
 import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
 import com.vci.frameworkcore.model.dto.SmUserDTO;
 import com.vci.frameworkcore.pagemodel.SmUserVO;
 import com.vci.starter.web.annotation.controller.VciUnCheckRight;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.*;
+import com.vci.starter.web.util.VciBaseUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -123,7 +126,8 @@
             return BaseResult.dataGrid(userVODataGrid);
         }catch (Exception e) {
             e.printStackTrace();
-            log.error("鐢ㄦ埛绠$悊鍒楄〃鏌ヨ鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + e.getMessage());
+            String exceptionMessage = VciBaseUtil.getExceptionMessage(e);
+            log.error("鐢ㄦ埛绠$悊鍒楄〃鏌ヨ鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
             return BaseResult.fail("鐢ㄦ埛绠$悊鍒楄〃鏌ヨ鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + e.getMessage());
         }
     }
@@ -137,11 +141,12 @@
     @VciUnCheckRight
     public BaseResult addUser(@RequestBody SmUserDTO smUserDTO){
         try {
-            return BaseResult.success(userQueryService.addUser(smUserDTO) ? "鐢ㄦ埛娣诲姞鎴愬姛锛�":"鐢ㄦ埛娣诲姞澶辫触锛�");
+            return userQueryService.addUser(smUserDTO) ? BaseResult.success("鐢ㄦ埛娣诲姞鎴愬姛锛�"):BaseResult.fail("鐢ㄦ埛娣诲姞澶辫触锛�");
         }catch (Exception e){
             e.printStackTrace();
-            log.error("娣诲姞鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + e.getMessage());
-            return BaseResult.fail("娣诲姞鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + e.getMessage());
+            String exceptionMessage = VciBaseUtil.getExceptionMessage(e);
+            log.error("娣诲姞鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
+            return BaseResult.fail("娣诲姞鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
         }
     }
 
@@ -157,8 +162,9 @@
             return BaseResult.success(userQueryService.updateUser(smUserDTO) ? "鐢ㄦ埛淇敼鎴愬姛锛�":"鐢ㄦ埛淇敼澶辫触锛�");
         }catch (Exception e){
             e.printStackTrace();
-            log.error("淇敼鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + e.getMessage());
-            return BaseResult.fail("淇敼鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + e.getMessage());
+            String exceptionMessage = VciBaseUtil.getExceptionMessage(e);
+            log.error("淇敼鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
+            return BaseResult.fail("淇敼鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
         }
     }
 
@@ -168,14 +174,15 @@
      * @return
      */
     @RequestMapping(value = "/deleteUser",method = RequestMethod.DELETE)
-    //@VciUnCheckRight
+    @VciUnCheckRight
     public BaseResult deleteUser(String[] ids){
         try {
-            return BaseResult.success(userQueryService.deleteUser(ids) ? "鍒犻櫎鐢ㄦ埛鎴愬姛锛�":"鍒犻櫎鐢ㄦ埛澶辫触锛�");
+            return userQueryService.deleteUser(ids) ? BaseResult.success("鍒犻櫎鐢ㄦ埛鎴愬姛锛�"):BaseResult.fail("鍒犻櫎鐢ㄦ埛澶辫触锛�");
         }catch (Exception e){
             e.printStackTrace();
-            log.error("娣诲姞鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + e.getMessage());
-            return BaseResult.fail("娣诲姞鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + e.getMessage());
+            String exceptionMessage = VciBaseUtil.getExceptionMessage(e);
+            log.error("娣诲姞鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
+            return BaseResult.fail("娣诲姞鐢ㄦ埛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + exceptionMessage);
         }
     }
 
@@ -186,15 +193,16 @@
      * @return
      */
     @RequestMapping(value = "/stopUsers",method = RequestMethod.POST)
-    //@VciUnCheckRight
-    public BaseResult disableOrEnableUsers(String[] ids,boolean flag){
+    @VciUnCheckRight
+    public BaseResult stopUsers(String[] ids,boolean flag){
         try {
-            userQueryService.disableOrEnableUsers(ids,flag);
+            userQueryService.stopUsers(ids,flag);
             return BaseResult.success("鐢ㄦ埛銆愬仠鐢�/鍚敤銆戞垚鍔燂紒");
         }catch (Exception e){
             e.printStackTrace();
-            log.error("鐢ㄦ埛銆愬仠鐢�/鍚敤銆戞椂鍑虹幇閿欒锛屽師鍥狅細" + e.getMessage());
-            return BaseResult.fail("鐢ㄦ埛銆愬仠鐢�/鍚敤銆戞椂鍑虹幇閿欒锛屽師鍥狅細" + e.getMessage());
+            String exceptionMessage = VciBaseUtil.getExceptionMessage(e);
+            log.error("鐢ㄦ埛銆愬仠鐢�/鍚敤銆戞椂鍑虹幇閿欒锛屽師鍥狅細" + exceptionMessage);
+            return BaseResult.fail("鐢ㄦ埛銆愬仠鐢�/鍚敤銆戞椂鍑虹幇閿欒锛屽師鍥狅細" + exceptionMessage);
         }
     }
 
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/pagemodel/SmUserVO.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/pagemodel/SmUserVO.java
index d265e21..30fa851 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/pagemodel/SmUserVO.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/pagemodel/SmUserVO.java
@@ -111,6 +111,11 @@
     private Date lastModifyPasswordTime;
 
     /**
+     * 鐢ㄦ埛瀵嗙爜
+     */
+    private String password;
+
+    /**
      * 瀵嗙爜閿欒娆℃暟
      */
     private Integer pwdWrongCount;
@@ -155,6 +160,27 @@
      */
     private String specialties;
 
+    /**
+     * 鐘舵��
+     */
+    private short status;
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public void setStatus(short status) {
+        this.status = status;
+    }
+
+    public short getStatus() {
+        return status;
+    }
+
     public void setSpecialties(String specialties) {
         this.specialties = specialties;
     }

--
Gitblit v1.9.3