| | |
| | | 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.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.Optional; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 程序节点 |
| | |
| | | @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"; |
| | | /** |
| | | /** |
| | | * 懒加载列表 |
| | |
| | | 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)); |
| | | } |
| | | } |