OTMSController.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. package com.steerinfo.dil.controller;
  2. import com.steerinfo.dil.config.ImageFileUtils;
  3. import com.steerinfo.dil.feign.OtmsFeign;
  4. import com.steerinfo.dil.feign.TmsTruckFeign;
  5. import com.steerinfo.dil.util.PageListAdd;
  6. import com.steerinfo.framework.controller.RESTfulResult;
  7. import com.steerinfo.framework.service.pagehelper.PageHelper;
  8. import io.swagger.annotations.ApiImplicitParam;
  9. import io.swagger.annotations.ApiImplicitParams;
  10. import io.swagger.annotations.ApiOperation;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.http.MediaType;
  13. import org.springframework.util.MultiValueMap;
  14. import org.springframework.web.bind.annotation.*;
  15. import org.springframework.web.multipart.MultipartFile;
  16. import org.springframework.web.multipart.MultipartRequest;
  17. import java.awt.*;
  18. import java.io.File;
  19. import java.util.ArrayList;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.Map;
  23. @RestController
  24. @RequestMapping("${api.version}/otms")
  25. public class OTMSController {
  26. @Autowired
  27. private OtmsFeign otmsFeign;
  28. @Autowired
  29. private ImageFileUtils imageFileUtils;
  30. @ApiOperation(value="全路径展示接口")
  31. @PostMapping("/fullPath")
  32. public Object fullPath(@RequestParam("orderNumber") String orderNumber) throws Exception {
  33. return otmsFeign.fullPath(orderNumber);
  34. }
  35. @ApiOperation(value = "在途订单列表")
  36. @PostMapping("/getInTransitTransportation")
  37. public RESTfulResult getInTransitTransportation(@RequestBody(required=false) Map<String,Object> mapValue,
  38. @RequestParam(required = true,defaultValue = "468",name = "apiId")Integer apiId,
  39. @RequestParam(required = false,defaultValue = "1",name = "pageNum")Integer pageNum,
  40. @RequestParam(required = false,defaultValue = "20",name = "pageSize")Integer pageSize
  41. )
  42. {
  43. return otmsFeign.getInTransitTransportation(mapValue!=null?mapValue:new HashMap<>(),apiId,pageNum,pageSize);
  44. }
  45. @ApiOperation(value = "有异常订单列表")
  46. @PostMapping("/getHaveAbnormalTruckOrderInfo")
  47. public RESTfulResult getHaveAbnormalTruckOrderInfo(@RequestBody(required=false) Map<String,Object> mapValue,
  48. @RequestParam(required = true,defaultValue = "468",name = "apiId")Integer apiId,
  49. @RequestParam(required = false,defaultValue = "1",name = "pageNum")Integer pageNum,
  50. @RequestParam(required = false,defaultValue = "20",name = "pageSize")Integer pageSize
  51. )
  52. {
  53. return otmsFeign.getHaveAbnormalTruckOrderInfo(mapValue!=null?mapValue:new HashMap<>(),apiId,pageNum,pageSize);
  54. }
  55. @ApiOperation("已完成订单列表")
  56. @ApiImplicitParams({
  57. @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
  58. @ApiImplicitParam(name = "apiId", value = "动态表头", required = false, dataType = "Integer"),
  59. @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
  60. @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer")
  61. })
  62. @PostMapping("/getFinishTruckOrderInfo")
  63. public RESTfulResult getFinishTruckOrderInfo(@RequestBody(required = false) Map<String,Object> mapValue,
  64. @RequestParam(required = false,defaultValue = "468",name = "apiId")Integer apiId,
  65. @RequestParam(required = false,defaultValue = "1",name = "pageNum")Integer pageNum,
  66. @RequestParam(required = false,defaultValue = "20",name = "pageSize")Integer pageSize
  67. ){
  68. return otmsFeign.getFinishTruckOrderInfo(mapValue!=null?mapValue:new HashMap<>(),apiId,pageNum,pageSize);
  69. }
  70. @ApiOperation(value = "新增抵达")
  71. @PostMapping(value = "/addtmstruckArrivalResult")
  72. public RESTfulResult addtmstruckArrivalResult(@RequestParam("orderNumber") String orderNumber, @RequestParam("resultArrivalAddress")String resultArrivalAddress, Long arrivalTime, MultipartRequest request) throws Exception {
  73. //添加到files数组
  74. List<MultipartFile> files = new ArrayList<>();
  75. int index=-1;
  76. for(int i=0;i<21;i++){
  77. MultipartFile file = request.getFile("file"+i);
  78. if(file!=null){
  79. files.add(file);
  80. if(index<0){
  81. index=i;
  82. }
  83. }
  84. }
  85. //没有上传,当做重复上传
  86. if(files.size() == 0){
  87. return new RESTfulResult("201","请勿重复上传!","请勿重复上传!");
  88. }
  89. //上传图片,拼接在一个url里
  90. Map<String,Object> mapValue=new HashMap<>();
  91. String url="";
  92. try{
  93. //如果存在预览图片,查询,把那个位置的图片截取下来
  94. if(index > 0){
  95. String[] arrivalPhoto=otmsFeign.getArrivalPhoto(orderNumber).split(";");
  96. for(int i=0;i<index;i++){
  97. url=url+arrivalPhoto[i]+";";
  98. }
  99. }
  100. }catch (Exception e){
  101. }
  102. //上传图片
  103. for (int i=0;i<files.size();i++){
  104. MultipartFile file=files.get(i);
  105. url += imageFileUtils.updateFile(file,i)+';';
  106. }
  107. mapValue.put("url",url);
  108. mapValue.put("arrivalTime",arrivalTime);
  109. return otmsFeign.addtmstruckArrivalResult(mapValue,orderNumber,resultArrivalAddress,url);
  110. }
  111. @ApiOperation(value = "新增签收")
  112. @PostMapping(value = "/addTmstruckReceiptResult")
  113. public synchronized RESTfulResult addTmstruckReceiptResult(MultipartRequest request, Integer num, String orderNumber, String resultArrivalAddress, Integer imgcount3, Integer imgcount4) throws Exception {
  114. //添加到files数组
  115. List<MultipartFile> files = new ArrayList<>();
  116. for(int i=0;i<21;i++){
  117. MultipartFile file = request.getFile("file"+i);
  118. if(file!=null){
  119. files.add(file);
  120. }else{
  121. break;
  122. }
  123. }
  124. if(files.size()<2){
  125. return new RESTfulResult("201","至少上传两张图片!","至少上传两张图片!");
  126. }
  127. //上传图片,拼接在一个url里
  128. Map<String,Object> mapValue=new HashMap<>();
  129. String url="";
  130. for (int i=0;i<files.size();i++){
  131. MultipartFile file=files.get(i);
  132. url += imageFileUtils.updateFile(file,i)+';';
  133. }
  134. mapValue.put("url",url);
  135. return otmsFeign.addTmstruckReceiptResult(mapValue,orderNumber,resultArrivalAddress);
  136. }
  137. @ApiOperation(value = "新增签收网页端")
  138. @PostMapping(value = "/addTmstruckReceiptResultForWeb")
  139. public synchronized RESTfulResult addTmstruckReceiptResultForWeb(MultipartRequest request,Long receiptTime, String orderNumber, String resultArrivalAddress) throws Exception {
  140. //添加到files数组
  141. List<MultipartFile> files = new ArrayList<>();
  142. int index=-1;
  143. for(int i=0;i<21;i++){
  144. MultipartFile file = request.getFile("file"+i);
  145. if(file!=null){
  146. files.add(file);
  147. if(index<0){
  148. index=i;
  149. }
  150. }
  151. }
  152. //没有上传,当做重复上传
  153. if(files.size() == 0){
  154. return new RESTfulResult("201","若要重复上传,必须两张都是新图片!","请勿重复上传!");
  155. }
  156. //上传图片,拼接在一个url里
  157. Map<String,Object> mapValue=new HashMap<>();
  158. String url="";
  159. try{
  160. //如果存在预览图片,查询,把那个位置的图片截取下来
  161. if(index > 0){
  162. String[] receivePhoto=otmsFeign.getReceivingPhotoByUrl(orderNumber).split(";");
  163. for(int i=0;i<index;i++){
  164. url=url+receivePhoto[i]+";";
  165. }
  166. }
  167. }catch (Exception e){
  168. }
  169. //上传图片
  170. for (int i=0;i<files.size();i++){
  171. MultipartFile file=files.get(i);
  172. url += imageFileUtils.updateFile(file,i)+';';
  173. }
  174. mapValue.put("url",url);
  175. mapValue.put("receiptTime",receiptTime);
  176. return otmsFeign.addTmstruckReceiptResult(mapValue,orderNumber,resultArrivalAddress);
  177. }
  178. @ApiOperation(value="查询当前报警类型")
  179. @PostMapping(value = "/selectWarnSwitch")
  180. public RESTfulResult selectWarnSwitch(){
  181. return otmsFeign.selectWarnSwitch();
  182. }
  183. @ApiOperation(value="是否开启运输报警状态")
  184. @ApiImplicitParams({
  185. @ApiImplicitParam(name = "warnSwitch", value = "运输报警状态", required = false, dataType = "String")
  186. })
  187. @PostMapping(value = "/inTransitWarn")
  188. public RESTfulResult inTransitWarn(@RequestParam String warnSwitch,@RequestParam String radio){
  189. return otmsFeign.inTransitWarn(warnSwitch,radio);
  190. }
  191. @ApiOperation(value="获得异常信息")
  192. @PostMapping("/getTransportAbnormalInfo")
  193. public RESTfulResult getTransportAbnormalInfo(@RequestBody(required=false) Map<String,Object> mapValue,
  194. @RequestParam(name = "apiId",defaultValue = "472") Integer apiId,
  195. @RequestParam(name = "pageNum") Integer pageNum,
  196. @RequestParam(name = "orderNumbers") String orderNumbers,
  197. @RequestParam(name = "pageSize") Integer pageSize){
  198. mapValue=mapValue!=null?mapValue:new HashMap<>();
  199. mapValue.put("orderNumbers",orderNumbers);
  200. return otmsFeign.getTransportAbnormalInfo(mapValue,apiId,pageNum,pageSize);
  201. }
  202. @ApiOperation(value="车牌号和时间查询路径")
  203. @PostMapping("/fullPathVisualizationByCarNumber")
  204. public Object fullPathVisualizationByCarNumber(@RequestBody HashMap mapValue) throws Exception{
  205. return otmsFeign.fullPathVisualizationByCarNumber(mapValue);
  206. }
  207. @ApiOperation("厂外抵达作业")
  208. @PostMapping("/getArrivalResult")
  209. public Map<String,Object> getArrivalResult(@RequestBody(required = false) Map<String,Object> mapValue,
  210. Integer apiId,
  211. Integer pageNum,
  212. Integer pageSize,
  213. String con,
  214. String startTime,
  215. String endTime){
  216. return otmsFeign.getArrivalResult(mapValue==null?new HashMap<>():mapValue, apiId, pageNum, pageSize,con,startTime,endTime);
  217. }
  218. @ApiOperation("查询抵达图片")
  219. @PostMapping("/getArrivalPhoto")
  220. public List<String> getArrivalPhoto(@RequestParam String orderNumber) throws Exception{
  221. try{
  222. String arrivalPhoto=otmsFeign.getArrivalPhoto(orderNumber);
  223. return getPhotoByUrl(arrivalPhoto);
  224. }catch (Exception e){
  225. return null;
  226. }
  227. }
  228. @ApiOperation("厂外抵达作业")
  229. @PostMapping("/getReceiptResult")
  230. public Map<String,Object> getReceiptResult(@RequestBody(required = false) Map<String,Object> mapValue,
  231. Integer apiId,
  232. Integer pageNum,
  233. Integer pageSize,
  234. String con,
  235. String startTime,
  236. String endTime){
  237. return otmsFeign.getReceiptResult(mapValue==null?new HashMap<>():mapValue, apiId, pageNum, pageSize,con,startTime,endTime);
  238. }
  239. @ApiOperation("查询签收图片")
  240. @PostMapping("/getReceivingPhotoByUrl")
  241. public List<String> getReceivingPhotoByUrl(@RequestParam String orderNumber) throws Exception {
  242. try{
  243. String receivePhoto=otmsFeign.getReceivingPhotoByUrl(orderNumber);
  244. return getPhotoByUrl(receivePhoto);
  245. }catch (Exception e){
  246. return null;
  247. }
  248. }
  249. //切割字符串,下载图片并返回
  250. private List<String> getPhotoByUrl(String urls) throws Exception {
  251. List<String> results=new ArrayList<>();
  252. String files[]=urls.split(";");
  253. for(int i=0;i<files.length && files[i].length()>5;i++){
  254. results.add((String)imageFileUtils.downloadFile(files[i]));
  255. }
  256. return results;
  257. }
  258. @GetMapping("/getCurrentLocation")
  259. public RESTfulResult getCurrentLocation(@RequestParam("capcityNumber") String capcityNumber) throws Exception{
  260. return otmsFeign.getCurrentLocation(capcityNumber);
  261. }
  262. //获取地图顶点
  263. @GetMapping(value = "/mapvertexs/findAllAvailableVertex")
  264. public RESTfulResult findAllAvailableVertex(){
  265. return otmsFeign.findAllAvailableVertex();
  266. }
  267. //获取最佳路径
  268. @GetMapping(value = "/mapvertexs/getObtainTheOptimalPath")
  269. public RESTfulResult getObtainTheOptimalPath(@RequestParam("startPoint") String startPoint,@RequestParam("endPoint") String endPoint) throws Exception{
  270. return otmsFeign.getObtainTheOptimalPath(startPoint,endPoint);
  271. }
  272. @ApiOperation(value="获取当前订单导航路径")
  273. @GetMapping(value = "/mapvertexs/getPathByOrderID")
  274. public RESTfulResult getPathByOrderID(@RequestParam("orderId") String orderId,@RequestParam("startStep") String startStep,@RequestParam("endStep") String endStep) throws Exception {
  275. return otmsFeign.getPathByOrderID(orderId,startStep,endStep);
  276. }
  277. @ApiOperation(value="查询所有可选地点")
  278. @GetMapping(value = "/mapvertexs/findSelections")
  279. public RESTfulResult findSelections(){
  280. return otmsFeign.findSelections();
  281. }
  282. //在途订单列表
  283. @PostMapping("/transportationPerformance")
  284. public RESTfulResult transportationPerformance(@RequestBody(required = false) Map<String,Object> mapValue,
  285. @RequestParam(required = true,defaultValue = "479",name = "apiId")Integer apiId,
  286. @RequestParam(required = false,name = "pageNum")Integer pageNum,
  287. @RequestParam(required = false,name = "pageSize")Integer pageSize){
  288. return otmsFeign.transportationPerformance(mapValue!=null?mapValue:new HashMap<>(),apiId,pageNum,pageSize);
  289. }
  290. @GetMapping("/getLocationForAddress")
  291. public RESTfulResult getLocationForAddress(@RequestParam("address") String address){
  292. return otmsFeign.getLocationForAddress(address);
  293. }
  294. @PostMapping("/getAddress")
  295. public RESTfulResult getAddress(@RequestBody Map<String,Object> map){
  296. return otmsFeign.getAddress(map);
  297. }
  298. }