Browse Source

人员数据分组

v1.0
Yen 2 years ago
parent
commit
92559012ef
  1. 46
      src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupController.java
  2. 16
      src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupItemController.java
  3. 2
      src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupBatchBo.java
  4. 18
      src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupItemBatchBo.java
  5. 92
      src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupApplicationService.java

46
src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupController.java

@ -14,6 +14,7 @@ import com.qs.serve.modules.biz.consts.GroupDataType;
import com.qs.serve.modules.biz.entity.BizUserGroupItem; import com.qs.serve.modules.biz.entity.BizUserGroupItem;
import com.qs.serve.modules.biz.entity.bo.BizUserGroupBatchBo; import com.qs.serve.modules.biz.entity.bo.BizUserGroupBatchBo;
import com.qs.serve.modules.biz.service.BizUserGroupItemService; import com.qs.serve.modules.biz.service.BizUserGroupItemService;
import com.qs.serve.modules.biz.service.impl.BizUserGroupApplicationService;
import com.qs.serve.modules.sys.entity.SysDept; import com.qs.serve.modules.sys.entity.SysDept;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysDeptService; import com.qs.serve.modules.sys.service.SysDeptService;
@ -41,10 +42,10 @@ import java.util.List;
@RequestMapping("biz/dataGroup") @RequestMapping("biz/dataGroup")
public class BizUserGroupController { public class BizUserGroupController {
private final BizUserGroupApplicationService bizUserGroupApplicationService;
private BizUserGroupService bizUserGroupService; private BizUserGroupService bizUserGroupService;
private BizUserGroupItemService bizUserGroupItemService; private BizUserGroupItemService bizUserGroupItemService;
private SysUserService sysUserService; private SysUserService sysUserService;
private SysDeptService sysDeptService;
/** /**
* 列表 * 列表
@ -129,47 +130,8 @@ public class BizUserGroupController {
*/ */
@PostMapping("/editWithItem") @PostMapping("/editWithItem")
public R<?> editWithItem(@RequestBody @Valid BizUserGroupBatchBo param){ public R<?> editWithItem(@RequestBody @Valid BizUserGroupBatchBo param){
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); param.setEditGroupFlag(1);
BizUserGroup bizUserGroup = new BizUserGroup(); bizUserGroupApplicationService.editWithItem(param);
if(param.getId()!=null){
bizUserGroup = bizUserGroupService.getById(param.getId());
if(!bizUserGroup.getUserId().equals(AuthContextUtils.getSysUserId())){
return R.error("无相关数据");
}
}
bizUserGroup.setGroupName(param.getGroupName());
bizUserGroup.setUserId(sysUser.getId());
bizUserGroup.setUserCode(sysUser.getCode());
bizUserGroup.setUserName(sysUser.getName());
bizUserGroup.setScene(param.getScene());
bizUserGroup.setRemark(param.getRemark());
bizUserGroupService.saveOrUpdate(bizUserGroup);
Long groupId = bizUserGroup.getId();
//移除历史ITEM
LambdaQueryWrapper<BizUserGroupItem> itemLqw = new LambdaQueryWrapper<>();
itemLqw.eq(BizUserGroupItem::getGroupId,groupId);
bizUserGroupItemService.remove(itemLqw);
//保存item
List<BizUserGroupItem> groupItemList = new ArrayList<>();
for (BizUserGroupBatchBo.Item item : param.getItems()) {
BizUserGroupItem groupItem = new BizUserGroupItem();
groupItem.setGroupId(groupId);
groupItem.setTargetType(item.getTargetType());
groupItem.setTargetId(item.getTargetId());
if(item.getTargetType().equals(GroupDataType.USER)){
SysUser user = sysUserService.getById(item.getTargetId());
groupItem.setTargetName(user.getName());
groupItem.setTargetCode(user.getCode());
}else if (item.getTargetType().equals(GroupDataType.DEPT)){
SysDept dept = sysDeptService.getById(item.getTargetId());
groupItem.setTargetName(dept.getName());
groupItem.setTargetCode(dept.getCode());
}else {
continue;
}
groupItemList.add(groupItem);
}
bizUserGroupItemService.saveBatch(groupItemList);
return R.ok(); return R.ok();
} }

16
src/main/java/com/qs/serve/modules/biz/controller/BizUserGroupItemController.java

@ -9,6 +9,9 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils; import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.biz.entity.bo.BizUserGroupBatchBo;
import com.qs.serve.modules.biz.entity.bo.BizUserGroupItemBatchBo;
import com.qs.serve.modules.biz.service.impl.BizUserGroupApplicationService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@ -31,7 +34,8 @@ import java.util.List;
@RequestMapping("biz/dataItem") @RequestMapping("biz/dataItem")
public class BizUserGroupItemController { public class BizUserGroupItemController {
private BizUserGroupItemService bizUserGroupItemService; private final BizUserGroupItemService bizUserGroupItemService;
private final BizUserGroupApplicationService bizUserGroupApplicationService;
/** /**
* 列表 * 列表
@ -65,9 +69,13 @@ public class BizUserGroupItemController {
* @return * @return
*/ */
@PostMapping("/save") @PostMapping("/save")
public R<?> save(@RequestBody @Valid BizUserGroupItem param){ public R<?> save(@RequestBody @Valid BizUserGroupItemBatchBo param){
boolean result = bizUserGroupItemService.save(param); BizUserGroupBatchBo groupBatchBo = new BizUserGroupBatchBo();
return R.isTrue(result); groupBatchBo.setEditGroupFlag(0);
groupBatchBo.setId(param.getGroupId());
groupBatchBo.setItems(param.getItems());
bizUserGroupApplicationService.editWithItem(groupBatchBo);
return R.ok();
} }
/** /**

2
src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupBatchBo.java

@ -27,6 +27,8 @@ public class BizUserGroupBatchBo {
private List<Item> items; private List<Item> items;
private Integer editGroupFlag;
@Data @Data
public static class Item{ public static class Item{

18
src/main/java/com/qs/serve/modules/biz/entity/bo/BizUserGroupItemBatchBo.java

@ -0,0 +1,18 @@
package com.qs.serve.modules.biz.entity.bo;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2023/10/25
*/
@Data
public class BizUserGroupItemBatchBo {
private Long groupId;
private List<BizUserGroupBatchBo.Item> items;
}

92
src/main/java/com/qs/serve/modules/biz/service/impl/BizUserGroupApplicationService.java

@ -0,0 +1,92 @@
package com.qs.serve.modules.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.modules.biz.consts.GroupDataType;
import com.qs.serve.modules.biz.entity.BizUserGroup;
import com.qs.serve.modules.biz.entity.BizUserGroupItem;
import com.qs.serve.modules.biz.entity.bo.BizUserGroupBatchBo;
import com.qs.serve.modules.biz.service.BizUserGroupItemService;
import com.qs.serve.modules.biz.service.BizUserGroupService;
import com.qs.serve.modules.sys.entity.SysDept;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysDeptService;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
/**
* @author YenHex
* @since 2023/10/25
*/
@Service
@AllArgsConstructor
public class BizUserGroupApplicationService {
private BizUserGroupService bizUserGroupService;
private BizUserGroupItemService bizUserGroupItemService;
private SysUserService sysUserService;
private SysDeptService sysDeptService;
/**
* 编辑 场景同时编辑分组数据
* @param param
* @return*/
@Transactional(rollbackFor = Exception.class)
public void editWithItem(BizUserGroupBatchBo param){
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
BizUserGroup bizUserGroup = new BizUserGroup();
if(param.getId()!=null){
bizUserGroup = bizUserGroupService.getById(param.getId());
if(!bizUserGroup.getUserId().equals(AuthContextUtils.getSysUserId())){
Assert.throwEx("无相关数据");
}
}
if(param.getEditGroupFlag().equals(1)){
bizUserGroup.setGroupName(param.getGroupName());
bizUserGroup.setUserId(sysUser.getId());
bizUserGroup.setUserCode(sysUser.getCode());
bizUserGroup.setUserName(sysUser.getName());
bizUserGroup.setScene(param.getScene());
bizUserGroup.setRemark(param.getRemark());
bizUserGroupService.saveOrUpdate(bizUserGroup);
}
Long groupId = bizUserGroup.getId();
//移除历史ITEM
LambdaQueryWrapper<BizUserGroupItem> itemLqw = new LambdaQueryWrapper<>();
itemLqw.eq(BizUserGroupItem::getGroupId,groupId);
bizUserGroupItemService.remove(itemLqw);
//保存item
List<BizUserGroupItem> groupItemList = new ArrayList<>();
for (BizUserGroupBatchBo.Item item : param.getItems()) {
BizUserGroupItem groupItem = new BizUserGroupItem();
groupItem.setGroupId(groupId);
groupItem.setTargetType(item.getTargetType());
groupItem.setTargetId(item.getTargetId());
if(item.getTargetType().equals(GroupDataType.USER)){
SysUser user = sysUserService.getById(item.getTargetId());
groupItem.setTargetName(user.getName());
groupItem.setTargetCode(user.getCode());
}else if (item.getTargetType().equals(GroupDataType.DEPT)){
SysDept dept = sysDeptService.getById(item.getTargetId());
groupItem.setTargetName(dept.getName());
groupItem.setTargetCode(dept.getCode());
}else {
continue;
}
groupItemList.add(groupItem);
}
bizUserGroupItemService.saveBatch(groupItemList);
}
}
Loading…
Cancel
Save