jinpengyong
2024-04-22 4b4a35fc7cc56a8b304ca35f0a9ec0bdd2e0e036
screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateServiceImpl.java
@@ -1,18 +1,34 @@
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
@@ -21,6 +37,9 @@
    @Autowired
    private ManageCoordinateMapper manageCoordinateMapper;
    @Autowired
    private SpecialDeviceMapper specialDeviceMapper;
    /**
     * 新增路段
     * @param params
@@ -28,11 +47,14 @@
     */
    @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;
@@ -41,19 +63,25 @@
        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);
    }
@@ -63,8 +91,10 @@
     */
    @Override
    public void deleteCoordinate(Integer id) {
        ManageCoordinate manageCoordinate = manageCoordinateMapper.selectById(id);
        manageCoordinate.setIsDel(1);
        manageCoordinateMapper.updateById(manageCoordinate);
        manageCoordinateMapper.deleteById(id);
    }
    /**
@@ -72,10 +102,45 @@
     * @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;
    }
}