DirectiveController.java 6.45 KB
package com.bsth.controller.directive;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bsth.entity.directive.D80;
import com.bsth.entity.directive.DC0_A3;
import com.bsth.entity.sys.SysUser;
import com.bsth.security.util.SecurityUtils;
import com.bsth.service.directive.DirectiveService;
import org.apache.commons.lang3.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * 
 * @ClassName: DirectiveController 
 * @Description: TODO(页面下发调度指令) .0
 * @author PanZhao
 * @date 2016年6月8日 上午9:34:51 
 *
 */
@RestController
@RequestMapping("/directive")
public class DirectiveController {
	
	@Autowired
	DirectiveService directiveService;

	/**
	 * 
	 * @Title: send60 
	 * @Description: TODO(60协议短语下发) 
	 * @throws
	 */
	@RequestMapping(value = "/phrase", method = RequestMethod.POST)
	public int send60Phrase(@RequestParam String nbbm, @RequestParam String text){
		SysUser user = SecurityUtils.getCurrentUser();
		return directiveService.send60Phrase(nbbm, text, user.getUserName());
	}
	
	/**
	 * 
	 * @Title: send60Dispatch 
	 * @Description: TODO(班次信息下发) 
	 * @param @param id
	 * @throws
	 */
	@RequestMapping(value = "/dispatch", method = RequestMethod.POST)
	public int send60Dispatch(@RequestParam Long id){
		SysUser user = SecurityUtils.getCurrentUser();
		return directiveService.send60Dispatch(id, user.getUserName());
	}
	
	/**
	 * 
	 * @Title: lineChange 
	 * @Description: TODO(切换线路) 
	 * @param @param nbbm 车辆内部编码
	 * @param @param lineId 新线路编码
	 * @throws
	 */
	@RequestMapping(value = "/lineChnage", method = RequestMethod.POST)
	public int lineChange(@RequestParam String nbbm, @RequestParam String lineId){
		SysUser user = SecurityUtils.getCurrentUser();
		return directiveService.lineChange(nbbm, lineId, user.getUserName());
	}

	/**
	 *
	 * @Title: lineChangeByDevice
	 * @Description: TODO(切换线路)
	 * @param @param deviceId 设备编码
	 * @param @param lineId 新线路编码
	 * @throws
	 */
	@RequestMapping(value = "/lineChangeByDevice", method = RequestMethod.POST)
	public int lineChangeByDevice(@RequestParam String deviceId, @RequestParam String lineId, HttpServletRequest request){
		SysUser user = SecurityUtils.getCurrentUser();
		int seq = 0;
		if (request.getParameter("seq") != null) {
			seq = Integer.parseInt(request.getParameter("seq"));
		}
		return directiveService.lineChangeByDeviceId(deviceId, lineId, user.getUserName(), seq);
	}

	/**
	 * 刷新线路文件
	 * @param deviceId 设备号
	 * @return
	 */
	@RequestMapping(value = "/refreshLineFile", method = RequestMethod.POST)
	public int refreshLineFile(@RequestParam String deviceId){
		return directiveService.refreshLineFile(deviceId);
	}
	
	/**
	 * 
	 * @Title: upDownChange 
	 * @Description: TODO(上下行切换) 
	 * @param @param nbbm 车辆内部编码
	 * @param @param upDon
	 * @throws
	 */
	@RequestMapping(value = "/upDownChange", method = RequestMethod.POST)
	public int upDownChange(@RequestParam String nbbm, @RequestParam Integer upDown){
		SysUser user = SecurityUtils.getCurrentUser();
		return directiveService.send60Operation(nbbm, 0, upDown, user.getUserName());
	}

	/**
	 *
	 * @Title: upDownChange
	 * @Description: TODO(状态切换,营运状态 和 上下行)
	 * @param @param nbbm 车辆内部编码
	 * @param @param upDon
	 * @throws
	 */
	@RequestMapping(value = "/stateChange", method = RequestMethod.POST)
	public int stateChange(@RequestParam String nbbm, @RequestParam Integer upDown, @RequestParam Integer state){
		SysUser user = SecurityUtils.getCurrentUser();
		return directiveService.send60Operation(nbbm, state, upDown, user.getUserName());
	}
	
	/**
	 * 
	 * @Title: findNoCofm80 
	 * @Description: TODO(根据线路获取未确认的80驾驶员上报数据) 
	 * @throws
	 */
	@RequestMapping(value = "/findNoCofm80", method = RequestMethod.GET)
	public Map<String, List<D80>> findNoCofm80(@RequestParam String lineCodes){
		return directiveService.findNoCofm80(lineCodes);
	}
	
	@RequestMapping(value = "/findAll80", method = RequestMethod.GET)
	public Map<String, Object> findAll80(@RequestParam Map<String, Object> map,
			@RequestParam(defaultValue = "0") int page,
			@RequestParam(defaultValue = "12") int size){
		
		return directiveService.findAll80(map, page,size);
	}
	
	/**
	 * 
	 * @Title: reply80 
	 * @Description: TODO(回复80) 
	 * @param @param reply 0:同意  -1:不同意
	 * @throws
	 */
	@RequestMapping(value = "/reply80", method = RequestMethod.POST)
	public Map<String, Object> reply80(@RequestParam int id, @RequestParam int reply){
		return directiveService.reply80(id, reply);
	}
	
	/**
	 * 
	 * @Title: findDirective 
	 * @Description: TODO(查询调度指令) 
	 * @param @param nbbm 车辆
	 * @param @param dType 类型
	 * @param @param page 页号
	 * @param @param size 每页数量
	 * @throws
	 */
	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public Map<String, Object> findDirective(String nbbms,@RequestParam int dType
							, @RequestParam(defaultValue = "0") int page,
							@RequestParam(defaultValue = "10") int size){
		
		return directiveService.findDirective(nbbms, dType, page, size);
	}
	
	@RequestMapping(value = "/c0a4", method = RequestMethod.POST)
	public Map<String, Object> c0a4(@RequestParam String nbbm){
		return directiveService.sendC0A4(nbbm);
	}
	
	@RequestMapping(value = "/c0a3", method = RequestMethod.POST)
	public int c0a3(String json){
		json = StringEscapeUtils.unescapeHtml4(json);
		DC0_A3 c0a3 = JSON.toJavaObject(JSONObject.parseObject(json), DC0_A3.class);
		return directiveService.sendC0A3(c0a3);
	}
	
	@RequestMapping(value = "/c0a5", method = RequestMethod.POST)
	public int c0a5(String json){
		json = StringEscapeUtils.unescapeHtml4(json);
		return directiveService.sendC0A5(json);
	}

	/**
	 * 设备参数查询
	 * @return
	 */
	@RequestMapping(value = "/deviceCofigList", method = RequestMethod.GET)
	public Map<String, Object> deviceCofigList(
			@RequestParam Map<String, String> map,
			@RequestParam(defaultValue = "0") int page,
			@RequestParam(defaultValue = "10") int size){
		return directiveService.deviceCofigList(map, page, size);
	}
}