package com.vci.ubcs.code.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.vci.ubcs.code.entity.CodeClassify;
|
import com.vci.ubcs.code.entity.SystemClassifyRole;
|
import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
|
import com.vci.ubcs.code.mapper.SystemClassifyRoleMapper;
|
import com.vci.ubcs.code.service.ICodeApplyWebManagementService;
|
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
|
import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
|
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
|
import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
|
import com.vci.ubcs.starter.web.pagemodel.Tree;
|
import jodd.util.StringUtil;
|
import org.springblade.core.log.exception.ServiceException;
|
import org.springblade.core.secure.utils.AuthUtil;
|
import org.springblade.core.tool.api.R;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class CodeApplyWebManagementServiceImpl extends ServiceImpl<SystemClassifyRoleMapper, SystemClassifyRole> implements ICodeApplyWebManagementService {
|
|
/**
|
* 上级节点的属性名称
|
*/
|
public static final String PARENT_FIELD_NAME = "classParentOid";
|
|
/**
|
* 对象的操作
|
*/
|
@Resource
|
private RevisionModelUtil revisionModelUtil;
|
@Resource
|
private CodeClassifyServiceImpl classifyService;
|
|
|
@Override
|
public R batchAddSave(List<SystemClassifyRole> roleList,String systemOid,String systemId) {
|
if(roleList.size() == 0){
|
return R.fail("传入数据为空,请确认!!");
|
}
|
//先删除,再保存
|
QueryWrapper<SystemClassifyRole> wrapper = new QueryWrapper<>();
|
wrapper.eq("systemOid",systemOid);
|
wrapper.eq("systemId",systemId);
|
List<SystemClassifyRole> systemClassifyRoles = this.listByIds(roleList.stream().map(SystemClassifyRole ::getOid).collect(Collectors.toList()));
|
this.remove(wrapper);
|
List<SystemClassifyRole> newSCRoles = new ArrayList<>();
|
//数据处理
|
systemClassifyRoles.stream().forEach(classifyRole ->{
|
classifyRole.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
|
classifyRole.setCreateTime(new Date());
|
classifyRole.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
|
classifyRole.setLastModifyTime(new Date());
|
classifyRole.setTs(new Date());
|
});
|
newSCRoles.addAll(systemClassifyRoles);
|
//处理新选择的数据
|
roleList.stream().forEach(systemClassifyRole -> {
|
if(StringUtil.isBlank(systemClassifyRole.getOid())){
|
DefaultAttrAssimtUtil.addDefaultAttrAssimt(systemClassifyRole,"systemClassifyRole");
|
systemClassifyRole.setSystemId(systemId);
|
systemClassifyRole.setSystemOid(systemOid);
|
systemClassifyRole.setTenantId(AuthUtil.getTenantId());
|
systemClassifyRole.setSelected(true);
|
newSCRoles.add(systemClassifyRole);
|
}
|
});
|
//保存
|
this.saveBatch(newSCRoles);
|
return R.success("操作成功");
|
}
|
|
@Override
|
public List<Tree> getSystemClassifyRoleTree(String systemOid, String systemId) {
|
List<SystemClassifyRole> listSystemClassifyRole = baseMapper.getListSystemClassifyRole(systemOid, systemId);
|
TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME);
|
treeWrapperOptions.setOidFieldName("CLASSIFYOID");
|
List<Tree> tree= revisionModelUtil.doListSystemClassTrees(listSystemClassifyRole,treeWrapperOptions,(SystemClassifyRole s) ->{
|
//可以在这里处理树节点的显示
|
return s.getClassifyId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
|
.getLcStatus()) ? (" 【停用】 ") : "");
|
});
|
return tree;
|
}
|
|
@Override
|
public List<Tree> getAuthTree(HashMap<String, String> paramMap) {
|
//查询已经授权了的分类
|
List<CodeClassify> listClassifyRole = baseMapper.getListClassifyRole(paramMap.get("systemOid"), paramMap.get("systemId"), paramMap.get("library"));
|
if(listClassifyRole.size() == 0){
|
throw new ServiceException("还未授权,请联系编码资源管理系统管理员授权!");
|
}
|
List<CodeClassifyVO> voList = classifyService.codeClassifyDO2VOs(listClassifyRole);
|
TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(classifyService.PARENT_FIELD_NAME);
|
//转换成树形结构
|
List<Tree> tree= revisionModelUtil.doList2Trees(voList,treeWrapperOptions,(CodeClassifyVO s) ->{
|
//可以在这里处理树节点的显示
|
return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
|
.getLcStatus()) ? (" 【停用】 ") : "");
|
});
|
return tree;
|
}
|
}
|