TmsshipShipLocationController.java 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. package com.steerinfo.dil.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.steerinfo.dil.feign.ESFeign;
  4. import com.steerinfo.dil.model.TmsshipShipLocation;
  5. import com.steerinfo.dil.service.ITmsshipShipLocationService;
  6. import com.steerinfo.dil.service.impl.TmsshipShipLocationServiceImpl;
  7. import com.steerinfo.dil.service.impl.TmsshipTotalResultServiceImpl;
  8. import com.steerinfo.dil.util.BaseRESTfulController;
  9. import com.steerinfo.dil.util.ColumnDataUtil;
  10. import com.steerinfo.dil.util.PageListAdd;
  11. import com.steerinfo.framework.controller.RESTfulResult;
  12. import com.steerinfo.framework.service.pagehelper.PageHelper;
  13. import com.steerinfo.framework.service.pagehelper.PageList;
  14. import com.steerinfo.framework.utils.collection.ListUtils;
  15. import io.swagger.annotations.ApiImplicitParam;
  16. import io.swagger.annotations.ApiImplicitParams;
  17. import io.swagger.annotations.ApiOperation;
  18. import org.apache.commons.lang3.StringUtils;
  19. import org.apache.shiro.authz.annotation.RequiresPermissions;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.web.bind.annotation.*;
  22. import java.text.SimpleDateFormat;
  23. import java.util.*;
  24. import java.math.BigDecimal;
  25. /**
  26. * TmsshipShipLocation RESTful接口:
  27. * @author generator
  28. * @version 1.0-SNAPSHORT 2021-08-19 08:52
  29. * 类描述
  30. * 修订历史:
  31. * 日期:2021-08-19
  32. * 作者:generator
  33. * 参考:
  34. * 描述:TmsshipShipLocation RESTful接口
  35. * @see null
  36. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  37. */
  38. @RestController
  39. @RequestMapping("/${api.version}/tmsshipshiplocations")
  40. public class TmsshipShipLocationController extends BaseRESTfulController {
  41. @Autowired
  42. TmsshipShipLocationServiceImpl tmsshipShipLocationService;
  43. @Autowired
  44. TmsshipTotalResultServiceImpl tmsshipTotalResultService;
  45. @Autowired
  46. ColumnDataUtil columnDataUtil;
  47. @Autowired
  48. ESFeign esFeign;
  49. /*
  50. *//**
  51. * 新增位置作业
  52. * @param map
  53. * @return
  54. *//*
  55. @ApiOperation(value="新增位置作业", notes="根据TmsshipShipLocation对象创建")
  56. @ApiImplicitParams({
  57. @ApiImplicitParam(name = "map",value = "位置作业字段",required = true,paramType = "java.util.Map")
  58. })
  59. @PostMapping("/addShipLocation")
  60. public RESTfulResult addShipLocation(@RequestBody Map<String,Object> map) {
  61. int code = tmsshipShipLocationService.addShipLocationResult(map);
  62. return success(code);
  63. }*/
  64. /**
  65. * 修改位置作业信息
  66. * @param map
  67. * @return
  68. */
  69. @ApiOperation(value="修改位置作业信息", notes="根据TmsshipShipLocation对象修改")
  70. @ApiImplicitParams({
  71. @ApiImplicitParam(name = "tmsshipShipLocation",value = "位置作业字段",required = true,paramType = "TmsshipShipLocation")
  72. })
  73. @PostMapping("/updateShipLocation")
  74. public RESTfulResult updateShipLocation(@RequestBody(required = false) Map<String, Object> map) {
  75. int code = tmsshipShipLocationService.updateShipLocation(map);
  76. return success(code);
  77. }
  78. /**
  79. * 删除位置作业信息
  80. * @param locationId
  81. * @return
  82. */
  83. @ApiOperation(value="删除位置作业信息")
  84. @ApiImplicitParams({
  85. @ApiImplicitParam(name = "locationId",value = "位置作业字段",required = true,paramType = "BigDecimal")
  86. })
  87. @PostMapping("/deleteShipLocation/{locationId}")
  88. public RESTfulResult deleteShipLocation(@PathVariable("locationId") BigDecimal locationId) {
  89. int code = tmsshipShipLocationService.deleteShipLocation(locationId);
  90. return success(code);
  91. }
  92. /**
  93. * 查询位置作业信息
  94. * @param locationId
  95. * @return
  96. */
  97. @ApiOperation(value="查询位置作业信息")
  98. @ApiImplicitParams({
  99. @ApiImplicitParam(name = "mapVal",value = "位置作业字段",required = true,paramType = "java.util.Map")
  100. })
  101. @PostMapping("/selectShipLocation/{locationId}")
  102. public RESTfulResult selectShipLocation(@PathVariable("locationId") BigDecimal locationId) {
  103. TmsshipShipLocation tmsshipShipLocation = tmsshipShipLocationService.selectShipLocation(locationId);
  104. return success(tmsshipShipLocation);
  105. }
  106. /**
  107. * 查询位置作业信息
  108. * @param locationId
  109. * @return
  110. */
  111. @ApiOperation(value="查询位置作业信息")
  112. @ApiImplicitParams({
  113. @ApiImplicitParam(name = "mapVal",value = "位置作业字段",required = true,paramType = "java.util.Map")
  114. })
  115. @PostMapping("/getShipLocation/{locationId}")
  116. public RESTfulResult getShipLocation(@PathVariable("locationId") BigDecimal locationId) {
  117. List<Map<String,Object>> map = tmsshipShipLocationService.getShipLocation(locationId);
  118. return success(map);
  119. }
  120. /**
  121. * 展示位置作业信息列表
  122. * @param mapVal
  123. * @return
  124. */
  125. @ApiOperation(value="展示位置作业信息列表", notes="分页查询")
  126. @ApiImplicitParams({
  127. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  128. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
  129. @ApiImplicitParam(name = "apiId", value = "59", required = false, dataType = "BigDecimal"),
  130. })
  131. @PostMapping(value = "/getShipLocationList")
  132. public RESTfulResult getShipLocationList(@RequestBody(required = false) Map<String,Object> mapVal,
  133. String con
  134. ){
  135. if (con!=null&&!"".equals(con)){
  136. mapVal.put("con",con);
  137. }
  138. List<Map<String, Object>> columnList = tmsshipShipLocationService.selectShipLocationList(mapVal);
  139. return success(columnList);
  140. }
  141. @ApiOperation(value="根据位置查询船舶状态")
  142. @PostMapping(value = "/getShipLocationStatus")
  143. public RESTfulResult getShipLocationStatus(String shipLocation){
  144. Map<String,Object>map = tmsshipShipLocationService.getShipLocationStatus(shipLocation);
  145. return success(map);
  146. }
  147. @PostMapping(value = "/getWarnMsg")
  148. public RESTfulResult getWarnMsg(@RequestBody(required = false) Map<String,Object> mapVal) throws Exception {
  149. StringBuilder warnMsg = new StringBuilder();
  150. List<Map<String, Object>> columnList = tmsshipShipLocationService.selectShipLocationList(mapVal);
  151. List<String> list = new ArrayList<>();
  152. if(columnList != null && !columnList.isEmpty()) {
  153. for (Map<String, Object> map : columnList) {
  154. String locationRouteTime = map.get("locationRouteTime").toString();
  155. if(locationRouteTime != null && !"".equals(locationRouteTime) ){
  156. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  157. Date locationRouteTimeDate = sdf.parse(locationRouteTime);
  158. long starTime=locationRouteTimeDate.getTime();
  159. long endTime=(new Date()).getTime();
  160. long num=endTime-starTime;//时间戳相差的毫秒数
  161. System.out.println("相差天数为:"+num/24/60/60/1000);
  162. //超过15天提醒
  163. if((num/(24*60*60*1000)) > 15){
  164. list.add(""+ map.get("materialName") +" \""+ map.get("foreignShipName") +"\" "+map.get("capacityName")
  165. +" 离岗日期"+ map.get("locationRouteTime") +" 离岗已超过十五天,请确定船舶状态; ");
  166. }
  167. }
  168. }
  169. }
  170. if(list.isEmpty()){
  171. warnMsg.append("暂无警告");
  172. } else {
  173. for (int i = 0; i < list.size(); i++) {
  174. int k=i+1;
  175. if(k == 1){
  176. warnMsg.append("警告:");
  177. }
  178. warnMsg.append(k).append("、").append(list.get(i));
  179. }
  180. }
  181. return success(warnMsg);
  182. }
  183. }