Explorar o código

地区负责人调整-将人员与岗位绑定

sangwenwei hai 11 meses
pai
achega
d70968d00a

+ 30 - 9
src/main/java/com/jeeplus/modules/areaStaff/web/AreaStaffController.java

@@ -10,9 +10,7 @@ import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.areaStaff.entity.AreaStaffInfo;
 import com.jeeplus.modules.areaStaff.entity.AreaStaffUserInfo;
 import com.jeeplus.modules.areaStaff.service.AreaStaffService;
-import com.jeeplus.modules.sys.entity.Area;
-import com.jeeplus.modules.sys.entity.Office;
-import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.entity.*;
 import com.jeeplus.modules.sys.service.AreaService;
 import com.jeeplus.modules.sys.service.OfficeService;
 import com.jeeplus.modules.sys.service.SystemService;
@@ -432,6 +430,11 @@ public class AreaStaffController extends BaseController {
         if (CollectionUtils.isNotEmpty(userList)){
             for (User deleteUser : userList) {
                 areaStaffService.outUserById(deleteUser.getId(),deleteUser.getAuditUserId());
+                //将用户从岗位中移除
+                User user = systemService.getUser(deleteUser.getId());
+                //将用户从岗位中移除
+                this.outUserInRole(user);
+
             }
         }
         StringBuilder msg = new StringBuilder();
@@ -449,6 +452,10 @@ public class AreaStaffController extends BaseController {
                     continue;
                 }
                 User saveUser = areaStaffService.saveUser(areaStaffInfo, user);
+                //将用户与签章人员进行绑定
+                Role role = systemService.getRoleByName("签章人员", user.getCompany().getId());
+                systemService.assignUserToRole(role,user,0);
+
 
                 if (null != saveUser && StringUtils.isNotBlank(saveUser.getId()) && !saveUser.getId().equals("1")) {
                     msg.append(",新增用户【" + saveUser.getName() + "】成功!");
@@ -462,6 +469,8 @@ public class AreaStaffController extends BaseController {
             if (CollectionUtils.isNotEmpty(userList)){
                 for (User user : userList) {
                     areaStaffService.outUserById(user.getId(),user.getAuditUserId());
+                    //将用户从岗位中移除
+                    this.outUserInRole(user);
                 }
             }
 
@@ -479,17 +488,29 @@ public class AreaStaffController extends BaseController {
     @RequestMapping(value = "outUser")
     public String outUser(String userId,String id,String areaStaffUserInfoId,RedirectAttributes redirectAttributes) {
         User user = systemService.getUser(userId);
-
-        Boolean flag = areaStaffService.outUserById(userId, areaStaffUserInfoId);
-        if (!flag) {
-            addMessage(redirectAttributes, "用户【" + user.getName() + "】移除失败!");
-        }else {
-            addMessage(redirectAttributes, "用户【" + user.getName() + "】移除成功!");
+        //获取地区人员信息
+        AreaStaffUserInfo isTemplateByUserId = areaStaffService.getIsTemplateByUserId(userId, id);
+        if (isTemplateByUserId != null){
+            Boolean flag = areaStaffService.outUserById(userId, isTemplateByUserId.getId());
+            if (!flag) {
+                addMessage(redirectAttributes, "用户【" + user.getName() + "】移除失败!");
+            }else {
+                addMessage(redirectAttributes, "用户【" + user.getName() + "】移除成功!");
+            }
         }
+        //将用户从岗位中移除
+        this.outUserInRole(user);
         return "redirect:" + adminPath + "/areaStaff/areaStaff/userForm?parent.id=" + id;
     }
 
     /**
+     * 将用户从岗位中移除
+     */
+    public void outUserInRole(User user){
+        Role role = systemService.getRoleByName("签章人员", user.getCompany().getId());
+        systemService.outUserInRole(role,user);
+    }
+    /**
      * 获取人员信息
      * @return
      */

+ 53 - 0
src/main/webapp/webpage/modules/areaStaff/areaStaffUserForm.jsp

@@ -19,21 +19,51 @@
 		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
 		  if(validateForm.form()){
 			  let allSelected = true;
+			  var usersArray = [];
+			  var idsArr = '';
 			  //获取表格中的数据
 			  var tableRows = document.querySelectorAll('table.details tbody tr');
 			  for (let i = 0; i < tableRows.length; i++) {
 				  var selectElement = tableRows[i].querySelector('select[name="isTemplate"]'); // 下拉框的name属性是"isTemplate"
+				  var selectedOptionValue = selectElement ? selectElement.value : null; // 获取下拉框选中的值
 				  var userNameElement = tableRows[i].querySelector('td[data-id="userName"]');
 				  var userName = userNameElement ? userNameElement.innerText.trim() : null;
+				  var userIdElement = tableRows[i].querySelector('td[data-id="userId"]');
+				  var userId = userIdElement ? userIdElement.innerText.trim() : null; // 确保userId存在
 
 				  if (!selectElement || !selectElement.value) {
 					  layer.msg(userName+':未选择长期还是临时', {icon: 0});
 					  allSelected = false;
 					  return;
+				  }else {
+					  // 将userId和selectedOptionValue作为键值对存储到对象中
+					  var userData = userId+":"+selectedOptionValue
+					  usersArray.push(userData); // 将对象添加到数组中
+					  if (idsArr.length > 0) {
+						  idsArr += ',';
+					  }
+					  // 将userId添加到idsArr中
+					  idsArr += userId;
+
+					  var hiddenInput = document.getElementById('idsArr'); // 注意:使用实际的ID
+					  if (hiddenInput) {
+						  hiddenInput.value = idsArr;
+					  }
 				  }
 
 			  }
 			  if(allSelected){
+				  var users = "";
+				  for (var j = 0; j<usersArray.length; j++) {
+					  users = (users + usersArray[j]) + (((j + 1)== usersArray.length) ? '':';');
+				  }
+
+				  // 设置到usersArr中
+				  var usersArr = document.getElementById('usersArr');
+				  if (usersArr) {
+					  // $("#usersArr").val(usersArray)
+					  usersArr.value = users;
+				  }
 				  $("#inputForm").submit();
 				  $('#assignRoleForm').submit();
 				  return true;
@@ -286,8 +316,31 @@
 	}
 	$('#contentTable').on('click', '.delete-btn', function() {
 		var $row = $(this).closest('tr');
+		console.log('row',$row)
 		// 删除行
 		$row.remove();
+		var areaId = $("#id").val()
+		$row.find('td').each(function() {
+			var $td = $(this);
+			var text = $td.text().trim();
+			var dataId = $td.data('id');
+
+			if (dataId === 'userId') {
+				var userId = text;
+
+				$.ajax({
+					type:'post',
+					url:'${ctx}/areaStaff/areaStaff/outUser',
+					data:{
+						"userId":userId,
+						"id":areaId,
+					},
+					success:function(data){}
+				})
+			}
+		});
+
+
 		var usersArray = []; // 用于存储每行的userId和下拉框选中的值
 		var tableRows = document.querySelectorAll('table.details tbody tr'); // 只遍历tbody中的行