package org.jeecg.modules.eam.service.impl; import java.util.*; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.jeecg.common.api.vo.CommonGenericTree; import org.jeecg.common.constant.CommonConstant; import org.jeecg.modules.eam.entity.Area; import org.jeecg.modules.eam.entity.FaultCause; import org.jeecg.modules.eam.mapper.AreaMapper; import org.jeecg.modules.eam.service.IAreaService; import org.jeecg.modules.eam.service.IProductionLineService; import org.jeecg.modules.eam.service.ISiteService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * * @ClassName: AreaServiceImpl * @Description: 车间信息业务接口实现 * @author Wang Mingchao * @date 2020-10-20 09:29:03 */ @Service public class AreaServiceImpl extends ServiceImpl implements IAreaService { @Autowired @Lazy private ISiteService siteService; @Autowired @Lazy private IProductionLineService productionLineService; @Override public List list() { return super.lambdaQuery().eq(Area::getStatus, CommonConstant.STATUS_1).orderByAsc(Area::getNum).list(); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean removeBySiteId(String siteId) { if(StringUtils.isBlank(siteId)) return false; LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(Area::getSiteId, siteId); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean removeBySiteIds(String[] siteIds) { if(siteIds == null || siteIds.length < 1) return false; LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.in(Area::getSiteId, Arrays.asList(siteIds)); return super.remove(lambdaQueryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean activeBySiteId(String siteId, String status) { if(StringUtils.isBlank(siteId) || StringUtils.isBlank(status)) return false; LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(); updateWrapper.set(Area::getStatus, status).eq(Area::getSiteId, siteId); return super.update(updateWrapper); } @Override public List loadTree() { List areaList = this.lambdaQuery().eq(Area::getDelFlag, "0").list(); List commonGenericTrees = loadTree(areaList); return commonGenericTrees; } @SuppressWarnings("unchecked") public List loadTree(List areaList) { @SuppressWarnings("unused") Area area = new Area(); List list = new ArrayList<>(); Map map = new HashMap<>(); Map map2 = new HashMap<>(); Map map3 = new HashMap<>(); // Map map4 = new HashMap<>(); // Map map5 = new HashMap<>(); // Map map6 = new HashMap<>(); // Map map7 = new HashMap<>(); CommonGenericTree node = new CommonGenericTree<>(); node.setKey("-1"); node.setValue("-1"); node.setTitle("中国航发"); node.setRField1("-1"); node.setRField2("中国航发"); node.setDisabled(false); node.setEntity(new Area()); list.add(node); if (CollectionUtils.isNotEmpty(list)) { CommonGenericTree pcNode; for (Area ar : areaList) { if (ar.getParentId().equals("-1")) { pcNode = new CommonGenericTree<>(); pcNode.setKey(ar.getId()); // pcNode.setTitle(ar.getNum() + "/" + ar.getName()); pcNode.setTitle(ar.getName()); pcNode.setParentId(node.getKey()); pcNode.setIcon(""); pcNode.setType(0); pcNode.setValue(ar.getId()); pcNode.setDisabled(false); pcNode.setRField1(ar.getNum()); pcNode.setRField2(ar.getName()); pcNode.setEntity(ar); node.addChildren(pcNode); map.put(ar.getId(), pcNode); } } CommonGenericTree childNode; for (Area ar : areaList) { if (map.containsKey(ar.getParentId())) { pcNode = map.get(ar.getParentId()); childNode = new CommonGenericTree<>(); childNode.setKey(ar.getId()); childNode.setTitle(ar.getName()); childNode.setParentId(ar.getParentId()); childNode.setIcon(""); childNode.setType(0); childNode.setValue(ar.getId()); childNode.setDisabled(false); childNode.setRField1(ar.getNum()); childNode.setRField2(ar.getName()); childNode.setEntity(ar); pcNode.addChildren(childNode); map2.put(ar.getId(), childNode); } } if(map2.size()>0){ CommonGenericTree child2Node; for (Area ar : areaList) { if (map2.containsKey(ar.getParentId())) { pcNode = map2.get(ar.getParentId()); child2Node = new CommonGenericTree<>(); child2Node.setKey(ar.getId()); child2Node.setTitle(ar.getName()); child2Node.setParentId(ar.getParentId()); child2Node.setIcon(""); child2Node.setType(0); child2Node.setValue(ar.getId()); child2Node.setDisabled(false); child2Node.setRField1(ar.getNum()); child2Node.setRField2(ar.getName()); child2Node.setEntity(ar); pcNode.addChildren(child2Node); map3.put(ar.getId(), child2Node); } } if(map3.size()>0){ CommonGenericTree child3Node; for (Area ar : areaList) { if (map3.containsKey(ar.getParentId())) { pcNode = map3.get(ar.getParentId()); child3Node = new CommonGenericTree<>(); child3Node.setKey(ar.getId()); child3Node.setTitle(ar.getName()); child3Node.setParentId(ar.getParentId()); child3Node.setIcon(""); child3Node.setType(0); child3Node.setValue(ar.getId()); child3Node.setDisabled(false); child3Node.setRField1(ar.getNum()); child3Node.setRField2(ar.getName()); child3Node.setEntity(ar); // pcNode.addChildren(child3Node); // map4.put(cause.getId(), child3Node); } } // if(map4.size()>0){ // CommonGenericTree child4Node; // for (FaultCause cause : faultCauseList) { // if (map4.containsKey(cause.getParentId())) { // pcNode = map4.get(cause.getParentId()); // child4Node = new CommonGenericTree<>(); // child4Node.setKey(cause.getId()); // child4Node.setTitle(cause.getNum() + "/" + cause.getName()); // child4Node.setParentId(cause.getParentId()); // child4Node.setIcon(""); // child4Node.setType(0); // child4Node.setValue(cause.getId()); // child4Node.setDisabled(false); // child4Node.setRField1(cause.getNum()); // child4Node.setRField2(cause.getName()); // child4Node.setEntity(cause); // pcNode.addChildren(child4Node); // map5.put(cause.getId(), child4Node); // } // } // } } } } return list; } }