| package com.moral.api.service.impl; | 
|   | 
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
| import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; | 
| import com.moral.api.entity.Device; | 
| import com.moral.api.entity.OrganizationLayout; | 
| import com.moral.api.mapper.DeviceMapper; | 
| import com.moral.api.mapper.OrganizationLayoutMapper; | 
| import com.moral.api.service.OrganizationLayoutService; | 
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
| import com.moral.api.util.LogUtils; | 
| import com.moral.constant.Constants; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.transaction.annotation.Transactional; | 
| import org.springframework.web.context.request.RequestContextHolder; | 
| import org.springframework.web.context.request.ServletRequestAttributes; | 
|   | 
| import javax.servlet.http.HttpServletRequest; | 
| import java.util.ArrayList; | 
| import java.util.HashMap; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * <p> | 
|  *  服务实现类 | 
|  * </p> | 
|  * | 
|  * @author moral | 
|  * @since 2021-08-23 | 
|  */ | 
| @Service | 
| public class OrganizationLayoutServiceImpl extends ServiceImpl<OrganizationLayoutMapper, OrganizationLayout> implements OrganizationLayoutService { | 
|   | 
|     @Autowired(required = false) | 
|     private OrganizationLayoutMapper organizationLayoutMapper; | 
|   | 
|     @Autowired(required = false) | 
|     private DeviceMapper deviceMapper; | 
|   | 
|     @Override | 
|     public List<Map<String, Object>> getData(Map map) { | 
|         int organization_id = Integer.parseInt(map.get("organization_id").toString()); | 
|         int version_id = Integer.parseInt(map.get("version_id").toString()); | 
|         QueryWrapper<OrganizationLayout> wrapper_organizationLayout = new QueryWrapper<>(); | 
|         wrapper_organizationLayout.eq("organization_id",organization_id); | 
|         wrapper_organizationLayout.eq("version_id",version_id); | 
|         wrapper_organizationLayout.eq("is_delete",Constants.NOT_DELETE); | 
|         List<Map<String,Object>> organizationLayouts = new ArrayList<>(); | 
|         organizationLayouts = organizationLayoutMapper.selectMaps(wrapper_organizationLayout); | 
|         return organizationLayouts; | 
|     } | 
|   | 
|     @Transactional | 
|     @Override | 
|     public void setUp(Map map, List<OrganizationLayout> list) { | 
|         int organization_id = Integer.parseInt(map.get("organization_id").toString()); | 
|         int version_id = Integer.parseInt(map.get("version_id").toString()); | 
|         QueryWrapper<OrganizationLayout> wrapper_organizationLayout = new QueryWrapper<>(); | 
|         wrapper_organizationLayout.eq("organization_id",organization_id); | 
|         wrapper_organizationLayout.eq("version_id",version_id); | 
|         wrapper_organizationLayout.eq("is_delete",Constants.NOT_DELETE); | 
|         List<OrganizationLayout> organizationLayouts = organizationLayoutMapper.selectList(wrapper_organizationLayout); | 
|         //int delCount = organizationLayoutMapper.delete(wrapper_organizationLayout); | 
|         OrganizationLayout organizationLayout_update = new OrganizationLayout(); | 
|         organizationLayout_update.setIsDelete(Constants.DELETE); | 
|         int delCount = organizationLayoutMapper.update(organizationLayout_update,wrapper_organizationLayout); | 
|         if (delCount>0){ | 
|             //操作插入日志 | 
|             HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | 
|             String content = "页面布局表删除了组织id:"+organization_id+"、型号id:"+version_id+";"+"id:"; | 
|             for (OrganizationLayout organizationLayout:organizationLayouts) { | 
|                 content = content +organizationLayout.getId()+" "; | 
|             } | 
|             content = content+";"; | 
|             LogUtils.saveOperationForManage(request,content,Constants.DELETE_OPERATE_TYPE); | 
|         } | 
|         if (!ObjectUtils.isEmpty(list) && list.size()>0){ | 
|             organizationLayoutMapper.insertList(list); | 
|             QueryWrapper<OrganizationLayout> wrapper_organizationLayoutIns = new QueryWrapper<>(); | 
|             wrapper_organizationLayoutIns.eq("organization_id",organization_id); | 
|             wrapper_organizationLayoutIns.eq("version_id",version_id); | 
|             List<OrganizationLayout> organizationLayoutList = organizationLayoutMapper.selectList(wrapper_organizationLayout); | 
|             //操作插入日志 | 
|             HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); | 
|             String contentInsert = "页面布局表插入了组织id:"+organization_id+"、型号id:"+version_id+";"+"id:"; | 
|             for (OrganizationLayout organizationLayout:organizationLayoutList) { | 
|                 contentInsert = contentInsert + organizationLayout.getId()+" "; | 
|             } | 
|             contentInsert = contentInsert+";"; | 
|             LogUtils.saveOperationForManage(request,contentInsert,Constants.INSERT_OPERATE_TYPE); | 
|         } | 
|     } | 
|   | 
|     @Transactional | 
|     @Override | 
|     public Map<String, Object> getLayoutByMac(String mac) { | 
|         QueryWrapper<Device> wrapper_device = new QueryWrapper<>(); | 
|         wrapper_device.eq("is_delete",Constants.NOT_DELETE); | 
|         wrapper_device.eq("mac",mac); | 
|         Device device = deviceMapper.selectOne(wrapper_device); | 
|         if (ObjectUtils.isEmpty(device)){ | 
|             return null; | 
|         } | 
|         int organizationId = device.getOrganizationId(); | 
|         int versionId = device.getDeviceVersionId(); | 
|         QueryWrapper<OrganizationLayout> wrapper_organizationLayout = new QueryWrapper<>(); | 
|         wrapper_organizationLayout.eq("organization_id",organizationId); | 
|         wrapper_organizationLayout.eq("version_id",versionId); | 
|         wrapper_organizationLayout.eq("is_delete",Constants.NOT_DELETE); | 
|         List<OrganizationLayout> organizationLayouts = organizationLayoutMapper.selectList(wrapper_organizationLayout); | 
|         if (ObjectUtils.isEmpty(organizationLayouts) || organizationLayouts.size()==0){ | 
|             return null; | 
|         } | 
|         Map<String, Object> resultMap = new HashMap<>(); | 
|         List<OrganizationLayout> chartSensorKeyList = new ArrayList<>(); | 
|         List<OrganizationLayout> coreMonitorItemsList = new ArrayList<>(); | 
|         List<OrganizationLayout> defaultMonitorItemsList = new ArrayList<>(); | 
|         List<OrganizationLayout> fixedMonitorItemsList = new ArrayList<>(); | 
|         for (OrganizationLayout organizationgLayout:organizationLayouts) { | 
|             if (organizationgLayout.getPosition().equals("chartSensorKey")){ | 
|                 chartSensorKeyList.add(organizationgLayout); | 
|             } | 
|             if (organizationgLayout.getPosition().equals("coreMonitorItems")){ | 
|                 coreMonitorItemsList.add(organizationgLayout); | 
|             } | 
|             if (organizationgLayout.getPosition().equals("defaultMonitorItems")){ | 
|                 defaultMonitorItemsList.add(organizationgLayout); | 
|             } | 
|             if (organizationgLayout.getPosition().equals("fixedMonitorItems")){ | 
|                 fixedMonitorItemsList.add(organizationgLayout); | 
|             } | 
|         } | 
|         chartSensorKeyList = sort(chartSensorKeyList); | 
|         coreMonitorItemsList = sort(coreMonitorItemsList); | 
|         defaultMonitorItemsList = sort(defaultMonitorItemsList); | 
|         fixedMonitorItemsList = sort(fixedMonitorItemsList); | 
|         resultMap.put("chartSensorKey",chartSensorKeyList); | 
|         resultMap.put("coreMonitorItems",coreMonitorItemsList); | 
|         resultMap.put("defaultMonitorItems",defaultMonitorItemsList); | 
|         resultMap.put("fixedMonitorItems",fixedMonitorItemsList); | 
|         return resultMap; | 
|     } | 
|   | 
|     private List<OrganizationLayout> sort(List<OrganizationLayout> list){ | 
|         if (list.size() < 0){ | 
|             return list; | 
|         } | 
|         OrganizationLayout temp = null; | 
|         int j; | 
|         for (int i = 1; i<list.size(); i++){ | 
|             temp = list.get(i); | 
|             for (j=i-1; j>=0; j--){ | 
|                 if (list.get(j).getPositionIndex()>temp.getPositionIndex()){ | 
|                     list.set(j+1,list.get(j)); | 
|                 }else { | 
|                     break; | 
|                 } | 
|             } | 
|             System.out.println(list.get(0)); | 
|             list.set(j+1,temp); | 
|         } | 
|         return list; | 
|     } | 
| } |