|
package org.springblade.mdm.gkw.programnode.service;
|
|
import lombok.AllArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springblade.core.mp.base.BizServiceImpl;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.Func;
|
import org.springblade.mdm.basesetting.machine.MachineService;
|
import org.springblade.mdm.basesetting.machine.entity.Machine;
|
import org.springblade.mdm.commons.contants.ParamConstants;
|
import org.springblade.mdm.commons.service.ParamService;
|
import org.springblade.mdm.gkw.programnode.entity.MachineFile;
|
import org.springblade.mdm.gkw.programnode.entity.ProgramNode;
|
import org.springblade.mdm.gkw.programnode.entity.TreeDept;
|
import org.springblade.mdm.gkw.programnode.mapper.ProgramNodeMapper;
|
import org.springblade.mdm.gkw.programnode.vo.ProgramNodeVO;
|
import org.springblade.system.feign.ISysClient;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.*;
|
|
/**
|
* 程序节点
|
*
|
* @author yangys
|
*/
|
@Slf4j
|
@Service
|
@AllArgsConstructor
|
public class ProgramNodeService extends BizServiceImpl<ProgramNodeMapper, ProgramNode> {
|
|
private final ParamService paramService;
|
private final TreeDeptService treeDeptService;
|
private final MachineService machineService;
|
private static final String DEFAULT_WORKSHOP_VALUE = "4";
|
/**
|
/**
|
* 懒加载列表
|
* @param parentId 父节点ID
|
* @return
|
*/
|
public List<ProgramNodeVO> lazyList(Long parentId) {
|
// 判断点击搜索但是没有查询条件的情况
|
if (Func.isEmpty(parentId)) {
|
parentId = 0L;
|
}
|
|
return baseMapper.lazyList(parentId);
|
}
|
|
/**
|
* 生成工控网树
|
* @return 树根节点集合
|
*/
|
public List<ProgramNodeVO> loadTree() {
|
Integer workshoptDictVal = Func.toInt(paramService.getParamValue(ParamConstants.WORKSHOP_DICT_KEY,DEFAULT_WORKSHOP_VALUE));
|
|
List<ProgramNodeVO> roots = new ArrayList<>();
|
List<TreeDept> workshops = treeDeptService.lambdaQuery().eq(TreeDept::getDeptCategory,workshoptDictVal)
|
.orderByAsc(TreeDept::getSort).list();
|
|
for(TreeDept workshop : workshops) {
|
ProgramNodeVO node = new ProgramNodeVO();
|
node.setId(String.valueOf(workshop.getId()));
|
node.setName(workshop.getDeptName());
|
|
roots.add(node);
|
|
//加入车间下的工段
|
List<TreeDept> gongduanList = treeDeptService.lambdaQuery().eq(TreeDept::getParentId,workshop.getId())
|
.orderByAsc(TreeDept::getSort).list();
|
for(TreeDept gd : gongduanList){
|
ProgramNodeVO nodeGd = new ProgramNodeVO();
|
nodeGd.setId(String.valueOf(gd.getId()));
|
nodeGd.setName(gd.getDeptName());
|
nodeGd.setParentId(gd.getParentId());
|
|
node.addChildren(nodeGd);
|
|
//加入工段下的机床
|
machineService.lambdaQuery().eq(Machine::getOwnerDept,gd.getId()).list().forEach(machine -> {
|
ProgramNodeVO nodeMachine = new ProgramNodeVO();
|
nodeMachine.setName(machine.getCode());
|
nodeMachine.setId(String.valueOf(machine.getId()));
|
nodeMachine.setMachineCode(machine.getCode());
|
addFolderNodes(nodeMachine);
|
|
nodeGd.addChildren(nodeMachine);
|
});
|
}
|
}
|
|
return roots;
|
}
|
|
/**
|
* 加入3个文件夹节点
|
* @param nodeMachine 机床节点
|
*/
|
void addFolderNodes(ProgramNodeVO nodeMachine){
|
|
ProgramNodeVO sendNode = new ProgramNodeVO();
|
sendNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_SEND);
|
sendNode.setName("SEND");
|
sendNode.setMachineCode(nodeMachine.getMachineCode());
|
sendNode.setDirType(MachineFile.DIR_TYPE_SEND);
|
//sendNode.setParentId(nodeMachine.getId());
|
|
ProgramNodeVO recNode = new ProgramNodeVO();
|
recNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_REC);
|
recNode.setName("REC");
|
recNode.setMachineCode(nodeMachine.getMachineCode());
|
recNode.setDirType(MachineFile.DIR_TYPE_REC);
|
|
ProgramNodeVO tempNode = new ProgramNodeVO();
|
tempNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_TEMP);
|
tempNode.setName("TEMP");
|
tempNode.setMachineCode(nodeMachine.getMachineCode());
|
tempNode.setDirType(MachineFile.DIR_TYPE_TEMP);
|
|
nodeMachine.setChildren(Arrays.asList(sendNode,recNode,tempNode));
|
}
|
}
|