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<ManageCoordinateMapper, ManageCoordinate> implements ManageCoordinateService {
|
|
@Autowired
|
private ManageCoordinateMapper manageCoordinateMapper;
|
|
@Autowired
|
private SpecialDeviceMapper specialDeviceMapper;
|
|
/**
|
* 新增路段
|
* @param params
|
* @return
|
*/
|
@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();
|
QueryWrapper<ManageCoordinate> 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<HashMap<String, Object>> 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<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;
|
}
|
}
|