DataManagerServiceImpl.java 3.47 KB
package com.bsth.service.realcontrol.impl;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.bsth.common.ResponseCode;
import com.bsth.data.BasicData;
import com.bsth.entity.Cars;
import com.bsth.repository.CarsRepository;
import com.bsth.service.realcontrol.DataManagerService;
import com.bsth.util.db.DBUtils_oldSystem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by panzhao on 2017/4/18.
 */
//@Service
public class DataManagerServiceImpl implements DataManagerService{

    @Autowired
    CarsRepository carsRepository;

    @Autowired
    JdbcTemplate controlJdbcTemp;

    @Autowired
    BasicData.BasicDataLoader dataLoader;

    Logger logger = LoggerFactory.getLogger(this.getClass());

    @Override
    public Map<String, Object> carInfos(Integer lineId) {

        Map<String, Object> rs = new HashMap<>();
        try {
            List<Map<String, String>> nowData = new ArrayList<>();
            List<Map<String, String>> oldData = new ArrayList<>();
            Map<String, String> map;

            //查询新系统车辆信息
            List<Cars> list = carsRepository.findCarsByLineId(lineId);
            for(Cars c : list){
                map = new HashMap<>();
                map.put("nbbm", c.getInsideCode());
                map.put("device", c.getEquipmentCode());
                nowData.add(map);
            }

            //获取老系统数据
            JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_oldSystem.getDataSource());
            List<Map<String, Object>> oyList = jdbcTemplate.queryForList("select NBBM,SBBH from JJWGPS_T_CLXXB t where xlbm=?", BasicData.lineId2CodeMap.get(lineId));
            for(Map<String, Object> tempMap : oyList){
                map = new HashMap<>();
                map.put("nbbm", tempMap.get("NBBM").toString());
                map.put("device", tempMap.get("SBBH").toString());
                oldData.add(map);
            }

            rs.put("status", ResponseCode.SUCCESS);
            rs.put("nows", nowData);
            rs.put("olds", oldData);
        }catch (Exception e){
            logger.error("", e);
            rs.put("status", ResponseCode.ERROR);
            rs.put("msg", e.getMessage());
        }

        return rs;
    }

    /**
     * 更新设备号
     * @param jsonStr
     * @return
     */
    @Override
    public Map<String, Object> updateDevices(String jsonStr) {
        Map<String, Object> rs = new HashMap<>();
        try {
            int count=0;
            JSONArray array = JSONArray.parseArray(jsonStr);
            JSONObject jObj;
            for(int i = 0; i < array.size(); i ++){
                jObj = array.getJSONObject(i);
                count += controlJdbcTemp.update("update bsth_c_cars set equipment_code=? where inside_code=?"
                        , jObj.getString("device"), jObj.getString("nbbm"));
            }

            //刷新缓存
            dataLoader.loadDeviceInfo();
            rs.put("status", ResponseCode.SUCCESS);
            rs.put("count", count);
        }catch (Exception e){
            logger.error("", e);
            rs.put("status", ResponseCode.ERROR);
            rs.put("msg", e.getMessage());
        }
        return rs;
    }
}