package org.jeecg.modules.base.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import org.jeecg.modules.base.entity.FactoryModel;
|
import org.jeecg.modules.base.entity.FactoryModelDetail;
|
import org.jeecg.modules.base.entity.WorkCenter;
|
import org.jeecg.modules.base.entity.WorkCenterDetail;
|
import org.jeecg.modules.base.mapper.FactoryModelMapper;
|
import org.jeecg.modules.base.mapper.WorkCenterMapper;
|
import org.jeecg.modules.base.service.IWorkCenterService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.*;
|
import java.util.function.Predicate;
|
import java.util.stream.Collectors;
|
|
/**
|
* @Description: mom_base_work_center
|
* @Author: jeecg-boot
|
* @Date: 2022-11-17
|
* @Version: V1.0
|
*/
|
@Service
|
@Transactional
|
public class WorkCenterServiceImpl extends ServiceImpl<WorkCenterMapper, WorkCenter> implements IWorkCenterService {
|
@Autowired
|
private FactoryModelMapper factoryModelMapper;
|
@Autowired
|
private WorkCenterMapper workCenterMapper;
|
@Override//根据工厂建模id寻找该工厂所有工作中心
|
public Page<WorkCenterDetail> getAllWorkCenterByPMFId(Page<WorkCenterDetail> page,String parentFactoryModelId,Integer factoryModelVersion,Integer version) {
|
return page.setRecords(workCenterMapper.selectWorkCenterByPMFIds(page,trueGetLeaves(factoryModelVersion,parentFactoryModelId),version));
|
}
|
|
@Override//递归寻找工作中心的root节点
|
public FactoryModelDetail getTop(String eid, String fid) {
|
FactoryModelDetail factoryModelDetail = factoryModelMapper.getFatherIdById(fid);
|
if(!factoryModelDetail.getParentId().equals(eid)){
|
return getTop(eid,factoryModelDetail.getParentId());
|
}
|
else{
|
return factoryModelDetail;
|
}
|
}
|
|
@Override
|
public Set<Integer> getVersionList(){
|
Set<Integer> set = new TreeSet(Comparator.reverseOrder());
|
set.addAll(workCenterMapper.getVersionList());
|
return set;
|
}
|
@Override
|
public List<WorkCenter> getUpdateVersionlist(Integer version) {
|
return workCenterMapper.getUpdateVersionlist(version);
|
}
|
|
@Override
|
public List<WorkCenter> getUsableList() {
|
return workCenterMapper.getUsableList();
|
}
|
|
@Override
|
public Map<String,Object> getNowAndLastUsableVersion() {
|
List<WorkCenter> usableList = workCenterMapper.getUsableList();
|
List<WorkCenter> lastUsableList=workCenterMapper.getLastUsableList();
|
Map<String,Object> map = new HashMap<>(2);
|
if(CollectionUtils.isNotEmpty(usableList)){
|
map.put("usableVersion",usableList.get(0).getVersion());
|
}
|
if(CollectionUtils.isNotEmpty(lastUsableList)){
|
map.put("lastUsableVersion",lastUsableList.get(0).getVersion());
|
}
|
return map;
|
}
|
|
@Override
|
public List<WorkCenter> getLastUsableVersion() {
|
return workCenterMapper.getLastUsableList();
|
}
|
|
@Override
|
public Integer getInitVersion() {
|
List<WorkCenter> usableVersionList = baseMapper.getUsableList();
|
Set<Integer> versionList = getVersionList();
|
if(CollectionUtils.isNotEmpty(usableVersionList)){
|
return usableVersionList.get(0).getVersion();
|
}else if(CollectionUtils.isNotEmpty(versionList)){
|
return versionList.stream().findFirst().get();
|
}
|
return null;
|
}
|
@Override
|
public List<String> getVersionStatusByVersion(Integer version) {
|
return baseMapper.getVersionStatusByVersion(version);
|
}
|
|
@Override
|
public List<Map<String, Object>> getFactoryVersionList() {
|
return baseMapper.getFactoryVersionList();
|
}
|
|
@Override
|
public List<Map<String, Object>> getEquipmentCategoryListByEnterpriseId(String enterpriseId) {
|
return workCenterMapper.getEquipmentCategoryListByEnterpriseId(enterpriseId);
|
}
|
/**
|
* 获取叶子节点
|
* @param
|
* @return
|
*/
|
public List<String> trueGetLeaves(Integer version,String parentId){
|
List<FactoryModel> children = factoryModelMapper.selectList(
|
new QueryWrapper<FactoryModel>()
|
.eq("parent_id",parentId)
|
.eq("version",version)
|
.eq("del_flag",0)
|
);
|
List<String> leaves = new ArrayList<>();
|
if(CollectionUtils.isNotEmpty(children)){
|
children.forEach(factoryModel -> {
|
String id = factoryModel.getId();
|
if(
|
CollectionUtils.isEmpty(
|
factoryModelMapper.selectList(new QueryWrapper<FactoryModel>()
|
.eq("parent_id",id)
|
.eq("version",version)
|
.eq("del_flag",0)))
|
){
|
leaves.add(id);
|
}
|
else {
|
leaves.addAll(trueGetLeaves(version,id));
|
}
|
});
|
}
|
else {
|
leaves.add(parentId);
|
}
|
return leaves;
|
}
|
|
|
}
|