package com.gk.hotwork.Service.ServiceImpl;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.gk.hotwork.Domain.*;
|
import com.gk.hotwork.Domain.Exception.BusinessException;
|
import com.gk.hotwork.Domain.Utils.StringUtils;
|
import com.gk.hotwork.Mapper.ElementManagementMapper;
|
import com.gk.hotwork.Mapper.SafetyInspectionItemMapper;
|
import com.gk.hotwork.Service.ElementManagementService;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
@Service("elementManagementService")
|
@Transactional
|
public class ElementManagementImpl extends ServiceImpl<ElementManagementMapper,ElementManagement> implements ElementManagementService {
|
|
@Autowired
|
private ElementManagementMapper elementManagementMapper;
|
|
@Autowired
|
private SafetyInspectionItemMapper safetyInspectionItemMapper;
|
|
/**
|
* @Description: 分页
|
*/
|
@Override
|
public IPage<ElementManagement> selectPage(Page<ElementManagement> page, Map<String, Object> filter, UserInfo user) {
|
return elementManagementMapper.selectPages(page,filter);
|
}
|
|
/**
|
* @Description: 新增
|
*/
|
@Override
|
public void addOne(ElementManagement param, UserInfo user) {
|
requiredVerification(param);
|
|
param.setValidFlag(Boolean.TRUE);
|
param.setUpdateBy(user.getRealname());
|
param.setCreateBy(user.getRealname());
|
param.setUpdateTime(new Date());
|
param.setCreateTime(new Date());
|
this.save(param);
|
}
|
|
|
/**
|
* @Description: 修改
|
*/
|
@Override
|
public void modOne(ElementManagement param, UserInfo user) {
|
selectVerification(param.getId());
|
requiredVerification(param);
|
|
param.setUpdateTime(new Date());
|
param.setUpdateBy(user.getRealname());
|
this.updateById(param);
|
}
|
|
/**
|
* @Description: 删除
|
*/
|
@Override
|
public void delOne(Long id, UserInfo user) {
|
ElementManagement elementManagement = selectVerification(id);
|
deleteVerification(elementManagement);
|
|
ElementManagement delOne = new ElementManagement();
|
delOne.setId(id);
|
delOne.setUpdateTime(new Date());
|
delOne.setUpdateBy(user.getRealname());
|
delOne.setValidFlag(Boolean.FALSE);
|
this.updateById(delOne);
|
}
|
|
@Override
|
public List<ElementManagement> getParentElement() {
|
return elementManagementMapper.getElementByType(0);
|
}
|
|
public List<ElementTree> getChindrenTree(List<Map<String,Object>> list,Long pid){
|
List<ElementTree> elementTreeList = new ArrayList<ElementTree>();
|
for (Map<String,Object> e : list) {
|
if(e.get("pid")!=null && pid.toString().equals(e.get("pid").toString())){
|
|
ElementTree elementTree=new ElementTree();
|
elementTree.setType(Integer.valueOf(e.get("type").toString()));
|
elementTree.setLabel(e.get("label").toString());
|
elementTree.setValue(Long.valueOf(e.get("value").toString()));
|
elementTree.setLeaf(e.get("isLeaf").toString().equals("1")?true:false);
|
elementTree.setPid(Long.valueOf(e.get("pid").toString()));
|
elementTree.setPoint(e.get("point") != null ? Integer.valueOf(e.get("point").toString()) : 0);
|
if(elementTree.isLeaf()){
|
elementTree.setChildren(new ArrayList<ElementTree>());
|
elementTreeList.add(elementTree);
|
}else{
|
elementTree.setChildren(getChindrenTree(list,elementTree.getValue()));
|
elementTreeList.add(elementTree);
|
}
|
}
|
}
|
return elementTreeList;
|
}
|
|
@Override
|
public List<ElementTree> getElementTree() {
|
|
List<ElementTree> returnTree = new ArrayList<>();
|
List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置
|
for (Map<String, Object> map : list) {
|
if(map.get("pid")==null){ //一级要素
|
ElementTree elementTree=new ElementTree();
|
elementTree.setType(Integer.valueOf(map.get("type").toString()));
|
elementTree.setLabel(map.get("label").toString());
|
elementTree.setValue(Long.valueOf(map.get("value").toString()));
|
elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false);
|
elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString())));
|
returnTree.add(elementTree);
|
}else{
|
continue;
|
}
|
}
|
|
return returnTree;
|
}
|
|
@Override
|
public List<ElementTree> getMenuType1Tree() {
|
|
List<ElementTree> returnTree = new ArrayList<>();
|
List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置
|
for (Map<String, Object> map : list) {
|
if(map.get("pid")==null && "1".equals(map.get("mt").toString())){ //一级要素,MenuType1
|
ElementTree elementTree=new ElementTree();
|
elementTree.setType(Integer.valueOf(map.get("type").toString()));
|
elementTree.setLabel(map.get("label").toString());
|
elementTree.setValue(Long.valueOf(map.get("value").toString()));
|
elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false);
|
elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString())));
|
returnTree.add(elementTree);
|
}else{
|
continue;
|
}
|
}
|
|
return returnTree;
|
}
|
|
@Override
|
public List<ElementTree> getMenuType2Tree() {
|
|
List<ElementTree> returnTree = new ArrayList<>();
|
List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置
|
for (Map<String, Object> map : list) {
|
if(map.get("pid")==null && "2".equals(map.get("mt").toString())){ //一级要素,MenuType2
|
ElementTree elementTree=new ElementTree();
|
elementTree.setType(Integer.valueOf(map.get("type").toString()));
|
elementTree.setLabel(map.get("label").toString());
|
elementTree.setValue(Long.valueOf(map.get("value").toString()));
|
elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false);
|
elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString())));
|
returnTree.add(elementTree);
|
}else{
|
continue;
|
}
|
}
|
|
return returnTree;
|
}
|
|
@Override
|
public List<ElementManagement> getElementByParentId(Long parentId) {
|
List<ElementManagement> list = elementManagementMapper.selectList(new LambdaQueryWrapper<ElementManagement>()
|
.eq(ElementManagement::getValidFlag, 1)
|
.eq(ElementManagement::getParentId, parentId));
|
return list;
|
}
|
|
@Override
|
public List<ElementTree> getElementTreeByParentId(Long parentId) {
|
|
List<ElementTree> returnTree = new ArrayList<>();
|
List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置
|
for (Map<String, Object> map : list) {
|
if(map.get("value").equals(parentId)){ //一级要素
|
ElementTree elementTree=new ElementTree();
|
elementTree.setType(Integer.valueOf(map.get("type").toString()));
|
elementTree.setLabel(map.get("label").toString());
|
elementTree.setValue(Long.valueOf(map.get("value").toString()));
|
elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false);
|
elementTree.setPoint(map.get("point") != null ? Integer.valueOf(map.get("point").toString()) : 0);
|
elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString())));
|
returnTree.add(elementTree);
|
}else{
|
continue;
|
}
|
}
|
return returnTree;
|
}
|
|
/**
|
* 查询验证
|
* 验证对象存在
|
*/
|
public ElementManagement selectVerification(Long id){
|
if (id == null) throw new BusinessException("id传参不能为空");
|
ElementManagement elementManagement = this.getById(id);
|
if (elementManagement == null) throw new BusinessException("找不到对应实体");
|
return elementManagement;
|
}
|
|
/**
|
* 操作验证
|
* 验证必填项
|
*
|
*/
|
public void requiredVerification(ElementManagement param){
|
if(StringUtils.isBlank(param.getName())) throw new BusinessException("请填写要素名称");
|
if (param.getType() == null) throw new BusinessException("请选择要素类型");
|
if (param.getType() == 1 && param.getParentId() == null){//二级要素
|
throw new BusinessException("请选择一级要素");
|
}
|
if(param.getType() == 2){//三级要素
|
if(param.getParentId() == null){
|
throw new BusinessException("请选择二级要素");
|
}
|
List<SafetyInspectionItem> safetyInspectionItems = safetyInspectionItemMapper.selectList(new LambdaQueryWrapper<SafetyInspectionItem>()
|
.eq(SafetyInspectionItem::getValidFlag, 1)
|
.eq(SafetyInspectionItem::getElementB, param.getParentId()));
|
if(safetyInspectionItems.size() > 0){
|
throw new BusinessException("二级要素下存在检查内容,不可建立三级");
|
}
|
|
}
|
|
|
|
|
}
|
|
/**
|
* 操作验证
|
* 删除已被B级要素绑定的A级要素
|
*
|
*/
|
public void deleteVerification(ElementManagement param){
|
if (param.getType()==0){
|
int count = this.count(new LambdaQueryWrapper<ElementManagement>()
|
.eq(ElementManagement::getParentId, param.getId())
|
.eq(ElementManagement::getType , 1)
|
.eq(ElementManagement::getValidFlag, Boolean.TRUE));
|
if (count > 0) throw new BusinessException("当前A级要素仍然有已绑定的B级要素,无法删除");
|
}
|
}
|
|
|
@Override
|
public List<ElementManagement> getSuperElement(Integer type) {
|
return elementManagementMapper.getElementByType(type);
|
}
|
}
|