package cc.mrbird.febs.ai.service.impl;
|
|
import cc.mrbird.febs.ai.entity.AiCompany;
|
import cc.mrbird.febs.ai.entity.AiCompanyWorkflow;
|
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 com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class AiCompanyServiceImpl extends ServiceImpl<AiCompanyMapper, AiCompany> implements AiCompanyService {
|
|
private final AiCompanyMapper aiCompanyMapper;
|
private final AiCompanyWorkflowMapper aiCompanyWorkflowMapper;
|
|
@Override
|
public AiCompany getById(String id) {
|
return aiCompanyMapper.selectById( 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(createTime);
|
this.baseMapper.insert( entity);
|
|
|
|
this.addWorkflow(entity.getId(),1,null,createTime);
|
this.addWorkflow(entity.getId(),2,null,createTime);
|
this.addWorkflow(entity.getId(),3,null,createTime);
|
this.addWorkflow(entity.getId(),4,null,createTime);
|
this.addWorkflow(entity.getId(),6,null,createTime);
|
|
return new FebsResponse().success().message("操作成功");
|
}
|
|
@Override
|
public FebsResponse update(AiCompany dto) {
|
String id = dto.getId();
|
AiCompany entity = this.getById(id);
|
if(ObjectUtil.isNotNull( entity)){
|
this.update(null,
|
Wrappers.lambdaUpdate(AiCompany.class)
|
.set(AiCompany::getName, dto.getName())
|
.set(AiCompany::getUpdatedTime, new Date())
|
.eq(AiCompany::getId, id));
|
|
}
|
return new FebsResponse().success().message("操作成功");
|
}
|
|
@Override
|
public IPage<AiCompany> listInPage(AiCompany dto, QueryRequest request) {
|
Page<AiCompany> page = new Page<>(request.getPageNum(), request.getPageSize());
|
LambdaQueryWrapper<AiCompany> query = Wrappers.lambdaQuery(AiCompany.class);
|
query.orderByDesc(AiCompany::getCreatedTime);
|
Page<AiCompany> pages = this.baseMapper.selectPage(page, query);
|
return pages;
|
}
|
|
@Override
|
public AiCompanyWorkflow getWorkflowById(String id) {
|
return aiCompanyWorkflowMapper.selectById( id);
|
}
|
|
@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);
|
}
|
}
|