|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ManageCoordinateMapper manageCoordinateMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SpecialDeviceMapper specialDeviceMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 新增路段 | 
|---|
|  |  |  | * @param params | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Integer interCoordinate(Map<String, Object> params) { | 
|---|
|  |  |  | String mac = params.get("mac").toString(); | 
|---|
|  |  |  | QueryWrapper<SpecialDevice> wrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | wrapper.eq("mac",mac); | 
|---|
|  |  |  | wrapper.eq("is_delete","0"); | 
|---|
|  |  |  | SpecialDevice specialDevice = specialDeviceMapper.selectOne(wrapper); | 
|---|
|  |  |  | String startPoint = params.get("startPoint").toString(); | 
|---|
|  |  |  | String endPoint = params.get("endPoint").toString(); | 
|---|
|  |  |  | QueryWrapper<ManageCoordinate> queryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | queryWrapper.eq("start_point",startPoint); | 
|---|
|  |  |  | queryWrapper.eq("end_point",endPoint); | 
|---|
|  |  |  | Integer integer = manageCoordinateMapper.selectCount(queryWrapper); | 
|---|
|  |  |  | if (integer>=1){ | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | 
|---|
|  |  |  | manageCoordinate.setCreateTime(new Date()); | 
|---|
|  |  |  | manageCoordinate.setUpdateTime(new Date()); | 
|---|
|  |  |  | manageCoordinate.setStartPoint(startPoint); | 
|---|
|  |  |  | manageCoordinate.setEndPoint(endPoint); | 
|---|
|  |  |  | manageCoordinate.setIsDel(0); | 
|---|
|  |  |  | manageCoordinate.setOrganizationId(specialDevice.getOrganizationId()); | 
|---|
|  |  |  | int code = manageCoordinateMapper.insert(manageCoordinate); | 
|---|
|  |  |  | return code; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 修改路段 | 
|---|
|  |  |  | * @param manageCoordinate | 
|---|
|  |  |  | * @param coordinateCode | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void updateCoordinate(ManageCoordinate manageCoordinate) { | 
|---|
|  |  |  | public void updateCoordinate(CoordinateCode coordinateCode) { | 
|---|
|  |  |  | ManageCoordinate manageCoordinate = new ManageCoordinate(); | 
|---|
|  |  |  | BeanUtils.copyProperties(coordinateCode,manageCoordinate); | 
|---|
|  |  |  | manageCoordinate.setUpdateTime(new Date()); | 
|---|
|  |  |  | List<HashMap<String, Object>> value = coordinateCode.getValue(); | 
|---|
|  |  |  | String s = JSON.toJSONString(value); | 
|---|
|  |  |  | manageCoordinate.setValue(s); | 
|---|
|  |  |  | manageCoordinate.setBdValue(JSON.toJSONString(coordinateCode.getBdValue())); | 
|---|
|  |  |  | manageCoordinateMapper.updateById(manageCoordinate); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void deleteCoordinate(Integer id) { | 
|---|
|  |  |  | ManageCoordinate manageCoordinate = manageCoordinateMapper.selectById(id); | 
|---|
|  |  |  | manageCoordinate.setIsDel(1); | 
|---|
|  |  |  | manageCoordinateMapper.updateById(manageCoordinate); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | manageCoordinateMapper.deleteById(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<ManageCoordinate> selectCoordinate() { | 
|---|
|  |  |  | public List<ManageCoordinate> selectCoordinate(String name,String mac) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | QueryWrapper<ManageCoordinate> queryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(name)){ | 
|---|
|  |  |  | queryWrapper.like("start_point",name); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!ObjectUtils.isEmpty(mac)){ | 
|---|
|  |  |  | QueryWrapper<SpecialDevice> 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<ManageCoordinate> manageCoordinates = manageCoordinateMapper.selectList(queryWrapper); | 
|---|
|  |  |  | manageCoordinates.forEach(it->{ | 
|---|
|  |  |  | String value = it.getValue(); | 
|---|
|  |  |  | String bdValue = it.getBdValue(); | 
|---|
|  |  |  | if (!ObjectUtils.isEmpty(value)  &&  !ObjectUtils.isEmpty(bdValue)){ | 
|---|
|  |  |  | //                List<HashMap<String, Object>> hashMaps = (List<HashMap<String, Object>>)JSON.parseObject(value,List.class); | 
|---|
|  |  |  | List<HashMap<String, Object>> parse = (List<HashMap<String, Object>>) JSONArray.parse(value); | 
|---|
|  |  |  | it.setValues(parse); | 
|---|
|  |  |  | it.setBdValues((List<HashMap<String, Object>>) JSONArray.parse(bdValue)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return manageCoordinates; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据id查询路段信息 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param id | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ManageCoordinate query(Integer id) { | 
|---|
|  |  |  | ManageCoordinate manageCoordinate = manageCoordinateMapper.selectById(id); | 
|---|
|  |  |  | return manageCoordinate; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|