package org.jeecg.modules.eam.service.impl; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.jeecg.common.api.vo.CommonGenericTree; import org.jeecg.common.constant.CommonConstant; import org.jeecg.modules.eam.entity.Site; import org.jeecg.modules.eam.mapper.SiteMapper; import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.service.*; import org.jeecg.modules.eam.vo.CommonCascade; import org.jeecg.modules.eam.wrapper.SiteAreaCascadeWrapper; import org.jeecg.modules.eam.wrapper.SiteAreaLineTreeWrapper; import org.jeecg.modules.system.entity.SysTenant; import org.jeecg.modules.system.model.TreeSelectModel; import org.jeecg.modules.system.service.ISysTenantService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; import org.springframework.core.env.Environment; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * * @ClassName: SiteServiceImpl * @Description: 工厂 业务接口实现 * @author Wang Mingchao * @date 2020-10-20 09:28:50 */ @SuppressWarnings("rawtypes") @Service public class SiteServiceImpl extends ServiceImpl implements ISiteService { @Autowired private ISysTenantService sysTenantService; @Autowired @Lazy private IAreaService areaService; @Autowired @Lazy private IProductionLineService productionLineService; @Autowired private Environment env; @Override public List listByIds(String ids) { return super.lambdaQuery().in(Site::getId, Arrays.asList(ids.split(","))).orderByAsc(Site::getNum).list(); } @Override public List list() { return super.lambdaQuery().eq(Site::getStatus, CommonConstant.STATUS_1).orderByAsc(Site::getNum).list(); } @Override public List loadTree(String tenantId) { // 获取树的根节点名称 LambdaQueryChainWrapper wrapper = sysTenantService.lambdaQuery(); // wrapper.eq(SysTenant::getTenantId, tenantId); List sysTenantList = wrapper.list(); // String title = "-1"; String applicationEdEnterpriseName = env.getProperty("enterprise.name"); String title = applicationEdEnterpriseName;//用application中的企业信息,替代缺省时的-1 if (sysTenantList.size() > 0) { title = sysTenantList.get(0).getName(); } List siteList = this.list(); List areaList = areaService.list(); List productionLineList = productionLineService.list(); return SiteAreaLineTreeWrapper.loadTree(title, siteList, areaList, productionLineList); } @Override @Transactional(rollbackFor = { Exception.class }) public boolean removeById(Serializable id) { productionLineService.removeBySiteId(String.valueOf(id)); areaService.removeBySiteId(String.valueOf(id)); return super.removeById(id); } @Override public List loadSubTree() { List siteList = list(); List areaList = Collections.emptyList(); if (siteList == null || siteList.isEmpty()) { return SiteAreaLineTreeWrapper.loadTree(siteList, areaList); } areaList = areaService.list(); if (areaList == null || areaList.isEmpty()) { areaList = Collections.emptyList(); return SiteAreaLineTreeWrapper.loadTree(siteList, areaList); } return SiteAreaLineTreeWrapper.loadTree(siteList, areaList); } @Override public List siteAreaCascadeData() { List siteList = list(); List areaList = areaService.list(); return SiteAreaCascadeWrapper.loadCascade(siteList, areaList); } @Override public List siteAreaLineCascadeData() { // 工厂 List siteList = list(); // 车间 List areaList = areaService.list(); // 产线 List lineList = productionLineService.list(); return SiteAreaCascadeWrapper.loadCascadeBase(siteList, areaList, lineList); } private CommonGenericTree line2Tree(ProductionLine line, boolean b) { CommonGenericTree lineNode = new CommonGenericTree<>(); lineNode.setKey(line.getId()); lineNode.setTitle(line.getName()); lineNode.setParentId(line.getAreaId()); lineNode.setIcon(""); lineNode.setType(3); lineNode.setDisabled(b); lineNode.setEntity(line); lineNode.setValue(line.getId()); return lineNode; } private CommonGenericTree area2Tree(Area area, boolean b) { CommonGenericTree areaNode = new CommonGenericTree<>(); areaNode = new CommonGenericTree<>(); areaNode.setKey(area.getId()); areaNode.setTitle(area.getName()); areaNode.setParentId(area.getSiteId()); areaNode.setIcon(""); areaNode.setDisabled(b); areaNode.setType(2); areaNode.setEntity(area); areaNode.setValue(area.getId()); return areaNode; } private List list2Tree(List parentList, List childList) { for (CommonGenericTree tree : parentList) { String id = tree.getKey(); for (CommonGenericTree cTree : childList) { if (id.equals(cTree.getParentId())) { tree.addChildren(cTree); } } } return parentList; } @Override public List siteSelect() { List list = new ArrayList<>(); List siteList = super.list(); TreeSelectModel model; for (Site site : siteList) { model = new TreeSelectModel(); model.setKey(site.getId()); model.setValue(site.getId()); model.setTitle(site.getName()); list.add(model); } return list; } }