| | |
| | | package cc.mrbird.febs.ai.service.impl; |
| | | |
| | | import cc.mrbird.febs.ai.entity.AiCompany; |
| | | import cc.mrbird.febs.ai.entity.AiMemberRole; |
| | | import cc.mrbird.febs.ai.entity.AiCompanyWorkflow; |
| | | import cc.mrbird.febs.ai.enums.LlmApplicationAppIdEnum; |
| | | import cc.mrbird.febs.ai.mapper.AiCompanyMapper; |
| | | import cc.mrbird.febs.ai.mapper.AiCompanyWorkflowMapper; |
| | | import cc.mrbird.febs.ai.service.AiCompanyService; |
| | | import cc.mrbird.febs.ai.util.UUID; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.Date; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Slf4j |
| | | @Service |
| | |
| | | public class AiCompanyServiceImpl extends ServiceImpl<AiCompanyMapper, AiCompany> implements AiCompanyService { |
| | | |
| | | private final AiCompanyMapper aiCompanyMapper; |
| | | private final AiCompanyWorkflowMapper aiCompanyWorkflowMapper; |
| | | |
| | | @Override |
| | | public AiCompany getById(String id) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<AiCompany> getListById(List<String> ids) { |
| | | LambdaQueryWrapper<AiCompany> aiCompanyLambdaQueryWrapper = Wrappers.lambdaQuery(AiCompany.class); |
| | | aiCompanyLambdaQueryWrapper.in(AiCompany::getId, ids); |
| | | return aiCompanyMapper.selectList(aiCompanyLambdaQueryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse add(AiCompany dto) { |
| | | Date createTime = new Date(); |
| | | AiCompany entity = new AiCompany(); |
| | | entity.setId(UUID.getSimpleUUIDString()); |
| | | entity.setName(dto.getName()); |
| | | entity.setCreatedTime(new Date()); |
| | | entity.setCreatedTime(createTime); |
| | | this.baseMapper.insert( entity); |
| | | |
| | | |
| | | |
| | | this.addWorkflow(entity.getId(), LlmApplicationAppIdEnum.HIGH_LIGHT.getCode(),null,createTime); |
| | | this.addWorkflow(entity.getId(), LlmApplicationAppIdEnum.SUGGESTION.getCode(),null,createTime); |
| | | this.addWorkflow(entity.getId(), LlmApplicationAppIdEnum.REFERENCE_ANSWER.getCode(),null,createTime); |
| | | this.addWorkflow(entity.getId(), LlmApplicationAppIdEnum.KEY_KNOWLEDGE.getCode(),null,createTime); |
| | | this.addWorkflow(entity.getId(), LlmApplicationAppIdEnum.REPORT.getCode(),null,createTime); |
| | | this.addWorkflow(entity.getId(), LlmApplicationAppIdEnum.ADMIN_QUESTION.getCode(),null,createTime); |
| | | |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | |
| | | Page<AiCompany> pages = this.baseMapper.selectPage(page, query); |
| | | return pages; |
| | | } |
| | | |
| | | @Override |
| | | public AiCompanyWorkflow getWorkflowById(String id) { |
| | | return aiCompanyWorkflowMapper.selectById( id); |
| | | } |
| | | |
| | | @Override |
| | | public AiCompanyWorkflow getWorkflowByTypeAndCompanyId(int type, String companyId) { |
| | | |
| | | LambdaQueryWrapper<AiCompanyWorkflow> query = Wrappers.lambdaQuery(AiCompanyWorkflow.class); |
| | | query.eq(AiCompanyWorkflow::getCompanyId, companyId); |
| | | query.eq(AiCompanyWorkflow::getType, type); |
| | | query.last("limit 1"); |
| | | return aiCompanyWorkflowMapper.selectOne(query); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AiCompanyWorkflow> workflowListInPage(AiCompanyWorkflow dto, QueryRequest request) { |
| | | Page<AiCompanyWorkflow> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | LambdaQueryWrapper<AiCompanyWorkflow> query = Wrappers.lambdaQuery(AiCompanyWorkflow.class); |
| | | query.orderByDesc(AiCompanyWorkflow::getCreatedTime); |
| | | Page<AiCompanyWorkflow> pages = aiCompanyWorkflowMapper.selectPage(page, query); |
| | | |
| | | List<AiCompanyWorkflow> records = pages.getRecords(); |
| | | if (CollUtil.isNotEmpty( records)){ |
| | | Set<String> collect = records.stream().map(AiCompanyWorkflow::getCompanyId).collect(Collectors.toSet()); |
| | | |
| | | |
| | | Map<String, AiCompany> map = new HashMap<>(); |
| | | if (CollUtil.isNotEmpty( collect)){ |
| | | //set转list |
| | | List<String> collect1 = new ArrayList<>(collect); |
| | | List<AiCompany> listById = this.getListById((collect1)); |
| | | map = listById.stream().collect(Collectors.toMap(AiCompany::getId, aiCompany -> aiCompany)); |
| | | } |
| | | |
| | | for (AiCompanyWorkflow aiCompanyWorkflow : records){ |
| | | if (map.containsKey(aiCompanyWorkflow.getCompanyId())){ |
| | | aiCompanyWorkflow.setCompanyName(map.get(aiCompanyWorkflow.getCompanyId()).getName()); |
| | | } |
| | | } |
| | | |
| | | } |
| | | return pages; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse addWorkflow(AiCompanyWorkflow dto) { |
| | | AiCompanyWorkflow entity = new AiCompanyWorkflow(); |
| | | entity.setId(UUID.getSimpleUUIDString()); |
| | | entity.setType(dto.getType()); |
| | | entity.setCode(dto.getCode()); |
| | | entity.setCreatedTime(new Date()); |
| | | aiCompanyWorkflowMapper.insert( entity); |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse updateWorkflow(AiCompanyWorkflow dto) { |
| | | String id = dto.getId(); |
| | | AiCompanyWorkflow entity = this.getWorkflowById(id); |
| | | if(ObjectUtil.isNotNull( entity)){ |
| | | aiCompanyWorkflowMapper.update(null, |
| | | Wrappers.lambdaUpdate(AiCompanyWorkflow.class) |
| | | .set(AiCompanyWorkflow::getType, dto.getType()) |
| | | .set(AiCompanyWorkflow::getCode, dto.getCode()) |
| | | .set(AiCompanyWorkflow::getUpdatedTime, new Date()) |
| | | .eq(AiCompanyWorkflow::getId, id)); |
| | | |
| | | } |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public void addWorkflow(String companyId, int type,String code, Date createTime) { |
| | | AiCompanyWorkflow entity = new AiCompanyWorkflow(); |
| | | entity.setId(UUID.getSimpleUUIDString()); |
| | | entity.setCompanyId(companyId); |
| | | entity.setType(type); |
| | | entity.setCode(code); |
| | | entity.setCreatedTime(createTime); |
| | | aiCompanyWorkflowMapper.insert( entity); |
| | | } |
| | | } |