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<SiteMapper, Site> implements ISiteService {
|
|
@Autowired
|
private ISysTenantService sysTenantService;
|
|
@Autowired
|
@Lazy
|
private IAreaService areaService;
|
|
@Autowired
|
@Lazy
|
private IProductionLineService productionLineService;
|
|
@Autowired
|
private Environment env;
|
|
|
@Override
|
public List<Site> listByIds(String ids) {
|
return super.lambdaQuery().in(Site::getId, Arrays.asList(ids.split(","))).orderByAsc(Site::getNum).list();
|
}
|
|
@Override
|
public List<Site> list() {
|
return super.lambdaQuery().eq(Site::getStatus, CommonConstant.STATUS_1).orderByAsc(Site::getNum).list();
|
}
|
|
@Override
|
public List<CommonGenericTree> loadTree(String tenantId) {
|
// 获取树的根节点名称
|
LambdaQueryChainWrapper<SysTenant> wrapper = sysTenantService.lambdaQuery();
|
// wrapper.eq(SysTenant::getTenantId, tenantId);
|
List<SysTenant> 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<Site> siteList = this.list();
|
List<Area> areaList = areaService.list();
|
List<ProductionLine> 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<CommonGenericTree> loadSubTree() {
|
List<Site> siteList = list();
|
List<Area> 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<CommonCascade> siteAreaCascadeData() {
|
List<Site> siteList = list();
|
List<Area> areaList = areaService.list();
|
|
return SiteAreaCascadeWrapper.loadCascade(siteList, areaList);
|
}
|
|
|
@Override
|
public List<CommonCascade> siteAreaLineCascadeData() {
|
// 工厂
|
List<Site> siteList = list();
|
// 车间
|
List<Area> areaList = areaService.list();
|
// 产线
|
List<ProductionLine> lineList = productionLineService.list();
|
return SiteAreaCascadeWrapper.loadCascadeBase(siteList, areaList, lineList);
|
}
|
|
private CommonGenericTree line2Tree(ProductionLine line, boolean b) {
|
CommonGenericTree<ProductionLine> 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<Area> 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<CommonGenericTree> list2Tree(List<CommonGenericTree> parentList, List<CommonGenericTree> 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<TreeSelectModel> siteSelect() {
|
List<TreeSelectModel> list = new ArrayList<>();
|
List<Site> 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;
|
}
|
|
}
|