RmsLineController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. package com.steerinfo.dil.controller;
  2. import com.steerinfo.dil.feign.ESFeign;
  3. import com.steerinfo.dil.mapper.CommonSeq;
  4. import com.steerinfo.dil.mapper.RmsLineMapper;
  5. import com.steerinfo.dil.model.RmsLine;
  6. import com.steerinfo.dil.model.RmsLineSegemnt;
  7. import com.steerinfo.dil.service.IRmsLineSegemntService;
  8. import com.steerinfo.dil.service.IRmsLineService;
  9. import com.steerinfo.dil.util.BaseRESTfulController;
  10. import com.steerinfo.dil.util.ColumnDataUtil;
  11. import com.steerinfo.dil.util.DataChange;
  12. import com.steerinfo.dil.util.PageListAdd;
  13. import com.steerinfo.framework.controller.RESTfulResult;
  14. import com.steerinfo.framework.service.pagehelper.PageHelper;
  15. import com.steerinfo.framework.service.pagehelper.PageList;
  16. import com.steerinfo.framework.utils.collection.ListUtils;
  17. import io.swagger.annotations.ApiImplicitParam;
  18. import io.swagger.annotations.ApiImplicitParams;
  19. import io.swagger.annotations.ApiOperation;
  20. import io.swagger.models.auth.In;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import org.springframework.web.bind.annotation.*;
  24. import java.math.BigDecimal;
  25. import java.util.Arrays;
  26. import java.util.HashMap;
  27. import java.util.List;
  28. import java.util.Map;
  29. /**
  30. * RmsLine RESTful接口:
  31. * @author generator
  32. * @version 1.0-SNAPSHORT 2021-11-23 07:22
  33. * 类描述
  34. * 修订历史:
  35. * 日期:2021-11-23
  36. * 作者:generator
  37. * 参考:
  38. * 描述:RmsLine RESTful接口
  39. * @see null
  40. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  41. */
  42. @RestController
  43. @RequestMapping("/${api.version}/rmslines")
  44. public class RmsLineController extends BaseRESTfulController {
  45. @Autowired
  46. IRmsLineService rmsLineService;
  47. @Autowired
  48. CommonSeq commonSeq;
  49. @Autowired
  50. IRmsLineSegemntService rmsLineSegemntService;
  51. @Autowired
  52. RmsLineMapper rmsLineMapper;
  53. @Autowired
  54. ColumnDataUtil columnDataUtil;
  55. @Autowired
  56. ESFeign esFeign;
  57. @ApiOperation(value="查询所有线路", notes="分页查询")
  58. @ApiImplicitParams({
  59. @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
  60. @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
  61. @ApiImplicitParam(name = "apiId", value = "249", required = false, dataType = "BigDecimal"),
  62. })
  63. @PostMapping(value = "/getAllLineDesk")
  64. public RESTfulResult getAllLineDesk(@RequestBody(required = false) Map<String,Object> mapValue,
  65. Integer pageNum,
  66. Integer pageSize,
  67. Integer apiId,
  68. String con){
  69. if(con != null){
  70. if(!"".equals(con)){
  71. mapValue.put("index", con);
  72. }
  73. }
  74. List<Map<String, Object>> list = rmsLineMapper.getAllLineDesk(mapValue);
  75. PageHelper.startPage(pageNum, pageSize);
  76. //分页查询数据
  77. List<Map<String, Object>> columnList = rmsLineMapper.getAllLineDesk(mapValue);
  78. PageListAdd data = columnDataUtil.tableColumnData(apiId,list,columnList);
  79. return success(data);
  80. }
  81. /**
  82. * @author huk
  83. * @return
  84. */
  85. //新增运输路线
  86. @ApiOperation(value="新增运输路线")
  87. @ApiImplicitParams({
  88. @ApiImplicitParam(name = "mapValue", value = "运输路线", required = false, dataType = "Map"),
  89. })
  90. @PostMapping("/insertSelective")
  91. @Transactional
  92. public RESTfulResult insertSelective(@RequestBody(required = false) Map<String,Object> mapVal){
  93. // 创建运输路线主表实体
  94. RmsLine rmsLine = new RmsLine();
  95. //获取线路主表主键id
  96. int lineId = commonSeq.getId("seq_RMS_LINE");
  97. //将获取到的运输路线主表id赋值给运输路线主表实体中
  98. rmsLine.setLineId(new BigDecimal(lineId));
  99. // 拿到前端传递的运输路线名称,并存放到运输路线主表实体中
  100. rmsLine.setLineName((String) mapVal.get("line_name"));
  101. // 拿到前端传递的运输线路类型,并存放到运输路线主表实体中
  102. rmsLine.setLineType((Integer) mapVal.get("line_type"));
  103. // 拿到前端传递的运输路线开始
  104. List<Map<String,Object>> linkList = (List<Map<String, Object>>) mapVal.get("linkList");
  105. Integer lineStartNodeId = (Integer) linkList.get(0).get("linkId");
  106. //存放到运输路线主表实体中
  107. rmsLine.setLineStartNodeId(new BigDecimal(lineStartNodeId));
  108. // 拿到前端传递的运输路线结束
  109. Integer lineEndNodeId = (Integer) linkList.get(linkList.size()-1).get("linkId");
  110. //存放到运输路线主表实体中
  111. rmsLine.setLineEndNodeId(new BigDecimal(lineEndNodeId));
  112. //生成运输线路编号
  113. String lineNo = DataChange.generateEightDigitsNumber("YSXL", lineId);
  114. //将运输线路存放进运输线路主表实体中
  115. rmsLine.setLineNo(lineNo);
  116. //逻辑删除(0为未删除,1为删除)
  117. rmsLine.setDeleted(0);
  118. //拿到前端传递的拼数
  119. Integer spellNumber = (Integer) mapVal.get("spellNumber");
  120. //把拼数添加到运输路线主表实体中
  121. rmsLine.setSpellNumber(spellNumber);
  122. //调用rmsLineService的新增方法
  123. int i = rmsLineService.insertSelective(rmsLine);
  124. int i1 = 0;
  125. if(i == 1){
  126. for (int j = 0;j<linkList.size();j++){
  127. //创建线路子表实体
  128. RmsLineSegemnt rmsLineSegemnt = new RmsLineSegemnt();
  129. //获取线路子表主键id
  130. int segmentId = commonSeq.getId("seq_RMS_LINE_SEGEMNT");
  131. //将获取到的线路子表id添加到线路子表实体中
  132. rmsLineSegemnt.setSegmentId(new BigDecimal(segmentId));
  133. //将线路主表的主键id添加到线路子表实体中
  134. rmsLineSegemnt.setLineId(new BigDecimal(lineId));
  135. //添加线路子表的路段顺序号
  136. rmsLineSegemnt.setSegmentSqe(new BigDecimal(j+1));
  137. //拿到前端传递的运输路线起点id
  138. Integer segmentStartNodeId = (Integer) linkList.get(j).get("linkId");
  139. //将起点id添加到线路子表的实体中
  140. rmsLineSegemnt.setSegmentStartNodeId(new BigDecimal(segmentStartNodeId));
  141. //逻辑删除(0为未删除,1为删除)
  142. rmsLineSegemnt.setDeleted(0);
  143. //调用rmsLineSegemntService的新增方法
  144. i1 = rmsLineSegemntService.insertSelective(rmsLineSegemnt);
  145. }
  146. }
  147. if(i1 > 0){
  148. return success();
  149. }
  150. return failed();
  151. }
  152. @ApiOperation(value = "根据主键查询出数据以供修改")
  153. @PostMapping("/getLinkToUpdate")
  154. public RESTfulResult getLinkToUpdate(@RequestParam Integer lineId) {
  155. Map<String,Object> map = rmsLineService.getRmsLine(new BigDecimal(lineId));
  156. List<Map<String,Object>> mapList = rmsLineSegemntService.getRmsLineSegemnt(new BigDecimal(lineId));
  157. map.put("mapList",mapList);
  158. return success(map);
  159. }
  160. @ApiOperation(value = "修改运输线路信息")
  161. @PostMapping("/updateByPrimaryKeySelective")
  162. public RESTfulResult updateByPrimaryKeySelective(@RequestBody(required = false) Map<String,Object> mapVal) {
  163. RmsLine rmsLine = new RmsLine();
  164. //拿到前端传递的运输线路主表id
  165. Integer lineId = (Integer) mapVal.get("lineId");
  166. //将运输线路主表id添加到运输线路主表实体中
  167. rmsLine.setLineId(new BigDecimal(lineId));
  168. //拿到前端传递的运输线路名称
  169. String lineName = (String) mapVal.get("line_name");
  170. //将运输线路名称添加到运输线路主表实体中
  171. rmsLine.setLineName(lineName);
  172. //拿到前端传递的运输线路类别
  173. Integer lineType = (Integer) mapVal.get("line_type");
  174. //将运输线路类别添加到运输线路主表实体中
  175. rmsLine.setLineType(lineType);
  176. //拿到前端传递的拼数
  177. Integer spellNumber = (Integer) mapVal.get("spellNumber");
  178. //将拼数存添加运输路线主表实体中
  179. rmsLine.setSpellNumber(spellNumber);
  180. //根据运输线路实体的数据进行修改
  181. int i = rmsLineService.updateByPrimaryKeySelective(rmsLine);
  182. int i1 = 0;
  183. if(i == 1){
  184. //修改运输路线主表的数据成功之后,根据运输线路主表id查询运输线路子表的数据
  185. List<Map<String,Object>> lineSegemntListMap = rmsLineSegemntService.getRmsLineSegemntUpdate(new BigDecimal(lineId));
  186. //将拿到的运输线路子表数据全部逻辑删除
  187. for (int j = 0 ; j<lineSegemntListMap.size();j++){
  188. //创建运输线路子表实体
  189. RmsLineSegemnt rmsLineSegemnt = new RmsLineSegemnt();
  190. //拿到运输线路子表主键id
  191. String segmentId = lineSegemntListMap.get(j).get("SEGMENT_ID").toString();
  192. //将运输线路子表id添加到运输线路子表实体中
  193. rmsLineSegemnt.setSegmentId(new BigDecimal(segmentId));
  194. //设置逻辑删除(0为未删除,1为删除)
  195. rmsLineSegemnt.setDeleted(1);
  196. i1 = rmsLineSegemntService.updateByPrimaryKeySelective(rmsLineSegemnt);
  197. }
  198. }
  199. int i2 = 0;
  200. if(i1 > 0){
  201. // 拿到前端传递的运输路线
  202. List<Map<String,Object>> linkList = (List<Map<String, Object>>) mapVal.get("linkList");
  203. for (int j = 0;j<linkList.size();j++){
  204. //创建线路子表实体
  205. RmsLineSegemnt rmsLineSegemnt = new RmsLineSegemnt();
  206. //获取线路子表主键id
  207. int segmentId = commonSeq.getId("seq_RMS_LINE_SEGEMNT");
  208. //将获取到的线路子表id添加到线路子表实体中
  209. rmsLineSegemnt.setSegmentId(new BigDecimal(segmentId));
  210. //将线路主表的主键id添加到线路子表实体中
  211. rmsLineSegemnt.setLineId(new BigDecimal(lineId));
  212. //添加线路子表的路段顺序号
  213. rmsLineSegemnt.setSegmentSqe(new BigDecimal(j+1));
  214. //拿到前端传递的运输路线起点id
  215. Integer segmentStartNodeId = (Integer) linkList.get(j).get("linkId");
  216. //将起点id添加到线路子表的实体中
  217. rmsLineSegemnt.setSegmentStartNodeId(new BigDecimal(segmentStartNodeId));
  218. //逻辑删除(0为未删除,1为删除)
  219. rmsLineSegemnt.setDeleted(0);
  220. //调用rmsLineSegemntService的新增方法
  221. i2 = rmsLineSegemntService.insertSelective(rmsLineSegemnt);
  222. }
  223. }
  224. if(i2 > 0){
  225. return success();
  226. }
  227. return failed();
  228. }
  229. @ApiOperation(value = "根据运输线路主表ID修改数据,为逻辑删除")
  230. @PostMapping("/updateRmsLine")
  231. public RESTfulResult updateRmsLine(@RequestBody(required = false) Map<String,Object> mapVal) {
  232. //拿到前端传递的主键id
  233. String lineId = mapVal.get("lineId").toString();
  234. //创建一个运输线路主表实体
  235. RmsLine rmsLine = new RmsLine();
  236. //将运输线路主表id添加到运输线路主表实体中
  237. rmsLine.setLineId(new BigDecimal(lineId));
  238. //更改逻辑删除状态(0为未删除,1为删除)
  239. rmsLine.setDeleted(1);
  240. //根据运输线路实体的数据进行修改
  241. int i = rmsLineService.updateByPrimaryKeySelective(rmsLine);
  242. int i1 = 0;
  243. if(i == 1){
  244. //修改运输路线主表的数据成功之后,根据运输线路主表id查询运输线路子表的数据
  245. List<Map<String,Object>> lineSegemntListMap = rmsLineSegemntService.getRmsLineSegemntUpdate(new BigDecimal(lineId));
  246. //将拿到的运输线路子表数据全部逻辑删除
  247. for (int j = 0 ; j<lineSegemntListMap.size();j++){
  248. //创建运输线路子表实体
  249. RmsLineSegemnt rmsLineSegemnt = new RmsLineSegemnt();
  250. //拿到运输线路子表主键id
  251. String segmentId = lineSegemntListMap.get(j).get("SEGMENT_ID").toString();
  252. //将运输线路子表id添加到运输线路子表实体中
  253. rmsLineSegemnt.setSegmentId(new BigDecimal(segmentId));
  254. //设置逻辑删除(0为未删除,1为删除)
  255. rmsLineSegemnt.setDeleted(1);
  256. i1 = rmsLineSegemntService.updateByPrimaryKeySelective(rmsLineSegemnt);
  257. }
  258. }
  259. if(i1 > 0){
  260. return success();
  261. }
  262. return failed();
  263. }
  264. @ApiOperation(value = "getLinkToUpdate")
  265. @PostMapping("/getCountNumber")
  266. public RESTfulResult getCountNumber(@RequestParam Integer lineId) {
  267. int countNumber = rmsLineService.getOmstruckOrderNumber(new BigDecimal(lineId));
  268. return success(countNumber);
  269. }
  270. }