package com.ruoyi.sy.controller; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ruoyi.client.ARDCarGPSLogInClient; import com.ruoyi.client.ARDCarSYGPSClient; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sy.domain.ArdSyUser; import com.ruoyi.sy.service.IArdSyUserService; import com.ruoyi.sy.service.SysParaService; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.utils.httpclient.SYCarClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.bytedeco.javacv.CanvasFrame; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.sy.domain.ArdSyCar; import com.ruoyi.sy.service.IArdSyCarService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.multipart.MultipartFile; /** * 三一车辆Controller * * @author ard * @date 2023-06-26 */ @RestController @RequestMapping("/sy/syCar") @Api(tags = "三一车辆管理接口") public class ArdSyCarController extends BaseController { @Autowired private IArdSyCarService ardSyCarService; @Autowired private ISysConfigService sysConfigService; private Map> logInMap = new HashMap(); @Autowired private SysParaService sysParaService; @Autowired private IArdSyUserService iArdSyUserService; /** * 查询三一车辆列表 */ @PreAuthorize("@ss.hasPermi('sy:syCar:list')") @GetMapping("/list") public TableDataInfo list(ArdSyCar ardSyCar) { startPage(); List list = ardSyCarService.selectArdSyCarList(ardSyCar); return getDataTable(list); } /** * 导出三一车辆列表 */ @PreAuthorize("@ss.hasPermi('sy:syCar:export')") @Log(title = "三一车辆", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ArdSyCar ardSyCar) { List list = ardSyCarService.selectArdSyCarList(ardSyCar); ExcelUtil util = new ExcelUtil(ArdSyCar.class); util.exportExcel(response, list, "三一车辆数据"); } /** * 获取三一车辆详细信息 */ @PreAuthorize("@ss.hasPermi('sy:syCar:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return success(ardSyCarService.selectArdSyCarById(id)); } /** * 新增三一车辆 */ @PreAuthorize("@ss.hasPermi('sy:syCar:add')") @Log(title = "三一车辆", businessType = BusinessType.INSERT) @PostMapping @ApiOperation("新增三一车辆") public AjaxResult add(@RequestBody ArdSyCar ardSyCar) { String id = IdUtils.simpleUUID(); ardSyCar.setId(id); return toAjax(ardSyCarService.insertArdSyCar(ardSyCar)); } /** * 修改三一车辆 */ @PreAuthorize("@ss.hasPermi('sy:syCar:edit')") @Log(title = "三一车辆", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation("修改三一车辆") public AjaxResult edit(@RequestBody ArdSyCar ardSyCar) { return toAjax(ardSyCarService.updateArdSyCar(ardSyCar)); } /** * 删除三一车辆 */ @PreAuthorize("@ss.hasPermi('sy:syCar:remove')") @Log(title = "三一车辆", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") @ApiOperation("删除三一车辆") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(ardSyCarService.deleteArdSyCarByIds(ids)); } /** * 获取三一车辆登录信息 */ @PreAuthorize("@ss.hasPermi('sy:syCar:loginSY')") @PostMapping("/loginSY") @ApiOperation("获取三一车辆登录信息") public Map loginSY(@RequestBody Map map){ //startPage(); String userId = map.get("userId"); String password = map.get("password"); SysConfig config = new SysConfig(); config.setConfigKey("syCarPT"); List sysConfigResult = sysConfigService.selectConfigList(config); String syURL = ""; if(sysConfigResult.size() == 0){ return error("三一车辆url没有录入"); }else{ syURL = sysConfigResult.get(0).getConfigValue(); Map result = SYCarClient.logIn(syURL,userId, password); return success(result); } } /** * 获取未挂接权限的三一车辆 */ @PreAuthorize("@ss.hasPermi('sy:syCar:getArdSyCarNoRight')") @PostMapping("/getArdSyCarNoRight") @ApiOperation("获取未挂接权限的三一车辆") public Map getArdSyCarNoRight(){ String userId = SecurityUtils.getUserId(); Map result = ardSyCarService.getArdSyCarNoRight(userId); if(((String)result.get("code")).equals("500")){ return error((String) result.get("data")); }else if(((String)result.get("code")).equals("200")){ return success(result.get("data")); }else{ return error(""); } } /** * 获取全部的三一车辆 */ @PreAuthorize("@ss.hasPermi('sy:syCar:getArdSyCarAll')") @PostMapping("/getArdSyCarAll") @ApiOperation("获取全部的三一车辆") public Map getArdSyCarAll(){ String userId = SecurityUtils.getUserId(); Map result = ardSyCarService.getArdSyCarAll(userId); if(((String)result.get("code")).equals("500")){ return error((String) result.get("data")); }else if(((String)result.get("code")).equals("200")){ return success(result.get("data")); }else{ return error(""); } } /** * 获取全部车辆模型 */ @PreAuthorize("@ss.hasPermi('sy:syCar:getAllCarModel')") @PostMapping("/getAllCarModel") @ApiOperation("获取全部车辆模型") public Map getAllCarModel(){ try{ List> result = ardSyCarService.getAllCarModel(); return toAjaxList(result); } catch(Exception e){ return toAjaxList(new ArrayList()); } } /** * 上传车辆图片 */ @PreAuthorize("@ss.hasPermi('sy:syCar:uploadCarPicture')") @PostMapping("/uploadCarPicture") @ApiOperation("上传车辆图片") public Map uploadCarPicture(@RequestParam(value = "id",required = false,defaultValue = "") String id,@RequestParam("carPicture") MultipartFile carPicture){ try{ String result = ardSyCarService.uploadCarPicture(id,carPicture); return success(result); } catch(Exception e){ return error(""); } } @PreAuthorize("@ss.hasPermi('sy:syCar:allListByUser')") @PostMapping("allListByUser") @ApiOperation("根据用户获取三一列表") public Map allListByUser(){ String usersId = SecurityUtils.getUserId(); ArdSyUser ardSyUser = iArdSyUserService.userById(usersId); Map result0 = new HashMap(); //判断关联表是否有数据 if(ardSyUser!=null){ //31用户名密码 String username31 = ardSyUser.getUserId(); String password31 = ardSyUser.getPassword(); //查询地址 Map result = logInMap.get(Integer.parseInt(usersId)); String syURL = sysParaService.getSYURL(); Map result1 = ARDCarGPSLogInClient.loginIn(syURL,username31, password31); result = new HashMap(); result.put("userId", username31); result.put("sessionId", (String) result1.get("sessionId")); try { result0 = ARDCarSYGPSClient.getCarGPSTeamList(syURL,result.get("userId"),result.get("sessionId"));// } catch (Exception e) { Map map = new HashMap(); map.put("rspCode", 0); map.put("list", new ArrayList()); return map; } int online = 0; for(Map map : (List>) result0.get("list")){ Map resultMap = (Map) ARDCarSYGPSClient.getCarListByTeamId(syURL,(String)map.get("teamId"),result.get("sessionId")); List> carList = (List>) resultMap.get("carList"); for(Map m : carList){ if(((String) m.get("stateCn")).contains("在线")){ online = online + 1; }else{ continue; } } for(Map m : (List>) result0.get("list")){ if(((String) m.get("teamId")).equals(((String) map.get("teamId")))){ map.put("count", Integer.parseInt((String) m.get("carNum"))); } } map.put("online", online); online = 0; } }else { result0.put("列表为空!","无关联账号!"); } return result0; } @PreAuthorize("@ss.hasPermi('sy:syCar:carListById')") @GetMapping("carListById") @ApiOperation("根据车辆ID获取车辆列表") public List carListById(String carId){ return ardSyCarService.carListById(carId); } }