package com.moral.api.service.impl; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.entity.ManageCoordinate; import com.moral.api.entity.ManageCoordinateDetail; import com.moral.api.entity.SpecialDevice; import com.moral.api.mapper.DeviceMapper; import com.moral.api.mapper.ManageCoordinateDetailMapper; import com.moral.api.mapper.ManageCoordinateMapper; import com.moral.api.mapper.SpecialDeviceMapper; import com.moral.api.pojo.form.coordinate.CoordinateCode; import com.moral.api.service.DeviceService; import com.moral.api.service.ManageCoordinateDetailService; import com.moral.api.service.ManageCoordinateService; import com.moral.api.service.SpecialDeviceService; import com.moral.util.TokenUtils; @Service public class ManageCoordinateServiceImpl extends ServiceImpl implements ManageCoordinateService { @Autowired private ManageCoordinateMapper manageCoordinateMapper; @Autowired private SpecialDeviceMapper specialDeviceMapper; /** * 新增路段 * @param params * @return */ @Override public Integer interCoordinate(Map params) { String mac = params.get("mac").toString(); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("mac",mac); wrapper.eq("is_delete","0"); SpecialDevice specialDevice = specialDeviceMapper.selectOne(wrapper); String startPoint = params.get("startPoint").toString(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("start_point",startPoint); Integer integer = manageCoordinateMapper.selectCount(queryWrapper); if (integer>=1){ return null; } ManageCoordinate manageCoordinate = new ManageCoordinate(); manageCoordinate.setCreateTime(new Date()); manageCoordinate.setUpdateTime(new Date()); manageCoordinate.setStartPoint(startPoint); manageCoordinate.setIsDel(0); manageCoordinate.setOrganizationId(specialDevice.getOrganizationId()); int code = manageCoordinateMapper.insert(manageCoordinate); return code; } /** * 修改路段 * @param coordinateCode */ @Override public void updateCoordinate(CoordinateCode coordinateCode) { ManageCoordinate manageCoordinate = new ManageCoordinate(); BeanUtils.copyProperties(coordinateCode,manageCoordinate); manageCoordinate.setUpdateTime(new Date()); List> value = coordinateCode.getValue(); String s = JSON.toJSONString(value); manageCoordinate.setValue(s); manageCoordinate.setBdValue(JSON.toJSONString(coordinateCode.getBdValue())); manageCoordinateMapper.updateById(manageCoordinate); } /** * 删除路段 * @param id */ @Override public void deleteCoordinate(Integer id) { ManageCoordinate manageCoordinate = manageCoordinateMapper.selectById(id); manageCoordinate.setIsDel(1); manageCoordinateMapper.updateById(manageCoordinate); } /** * 查询路段信息 * @return */ @Override public List selectCoordinate(String name,String mac) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (!ObjectUtils.isEmpty(name)){ queryWrapper.like("start_point",name); } if(!ObjectUtils.isEmpty(mac)){ QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("mac",mac); wrapper.eq("is_delete","0"); SpecialDevice specialDevice = specialDeviceMapper.selectOne(wrapper); queryWrapper.eq("organization_id",specialDevice.getOrganizationId()); } queryWrapper.eq("is_del",0); queryWrapper.orderByDesc("coordinate_id"); List manageCoordinates = manageCoordinateMapper.selectList(queryWrapper); manageCoordinates.forEach(it->{ String value = it.getValue(); String bdValue = it.getBdValue(); if (!ObjectUtils.isEmpty(value) && !ObjectUtils.isEmpty(bdValue)){ // List> hashMaps = (List>)JSON.parseObject(value,List.class); List> parse = (List>) JSONArray.parse(value); it.setValues(parse); it.setBdValues((List>) JSONArray.parse(bdValue)); } }); return manageCoordinates; } /** * 根据id查询路段信息 * * @param id * @return */ @Override public ManageCoordinate query(Integer id) { ManageCoordinate manageCoordinate = manageCoordinateMapper.selectById(id); return manageCoordinate; } }