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 implements ICodeApplyWebManagementService { /** * 上级节点的属性名称 */ public static final String PARENT_FIELD_NAME = "classParentOid"; /** * 对象的操作 */ @Resource private RevisionModelUtil revisionModelUtil; @Resource private CodeClassifyServiceImpl classifyService; @Override public R batchAddSave(List roleList,String systemOid,String systemId) { if(roleList.size() == 0){ return R.fail("传入数据为空,请确认!!"); } //先删除,再保存 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("systemOid",systemOid); wrapper.eq("systemId",systemId); List systemClassifyRoles = this.listByIds(roleList.stream().map(SystemClassifyRole ::getOid).collect(Collectors.toList())); this.remove(wrapper); List 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 getSystemClassifyRoleTree(String systemOid, String systemId) { List listSystemClassifyRole = baseMapper.getListSystemClassifyRole(systemOid, systemId); TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME); treeWrapperOptions.setOidFieldName("CLASSIFYOID"); List tree= revisionModelUtil.doListSystemClassTrees(listSystemClassifyRole,treeWrapperOptions,(SystemClassifyRole s) ->{ //可以在这里处理树节点的显示 return s.getClassifyId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s .getLcStatus()) ? (" 【停用】 ") : ""); }); return tree; } @Override public List getAuthTree(HashMap paramMap) { //查询已经授权了的分类 List listClassifyRole = baseMapper.getListClassifyRole(paramMap.get("systemOid"), paramMap.get("systemId"), paramMap.get("library")); if(listClassifyRole.size() == 0){ throw new ServiceException("还未授权,请联系编码资源管理系统管理员授权!"); } List voList = classifyService.codeClassifyDO2VOs(listClassifyRole); TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(classifyService.PARENT_FIELD_NAME); //转换成树形结构 List tree= revisionModelUtil.doList2Trees(voList,treeWrapperOptions,(CodeClassifyVO s) ->{ //可以在这里处理树节点的显示 return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s .getLcStatus()) ? (" 【停用】 ") : ""); }); return tree; } }