Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeApplyWebManagementServiceImpl.java
@@ -2,6 +2,7 @@
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;
@@ -12,14 +13,14 @@
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.Date;
import java.util.Iterator;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class CodeApplyWebManagementServiceImpl extends ServiceImpl<SystemClassifyRoleMapper, SystemClassifyRole> implements ICodeApplyWebManagementService {
@@ -34,6 +35,8 @@
    */
   @Resource
   private RevisionModelUtil revisionModelUtil;
   @Resource
   private CodeClassifyServiceImpl classifyService;
   @Override
@@ -45,24 +48,31 @@
      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);
         }else{
            systemClassifyRole.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
            systemClassifyRole.setCreateTime(new Date());
            systemClassifyRole.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
            systemClassifyRole.setLastModifyTime(new Date());
            systemClassifyRole.setTs(new Date());
            systemClassifyRole.setTenantId(AuthUtil.getTenantId());
            systemClassifyRole.setSelected(true);
            newSCRoles.add(systemClassifyRole);
         }
         systemClassifyRole.setTenantId(AuthUtil.getTenantId());
      });
      //保存
      this.saveBatch(roleList);
      this.saveBatch(newSCRoles);
      return R.success("操作成功");
   }
@@ -78,4 +88,22 @@
      });
      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;
   }
}