UtilsServiceImpl.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.feign.IMFeign;
  3. import com.steerinfo.dil.mapper.UtilsMapper;
  4. import com.steerinfo.dil.service.IUtilsService;
  5. import com.steerinfo.dil.util.DataChange;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8. import java.math.BigDecimal;
  9. import java.util.*;
  10. /**
  11. * @ author :TXF
  12. * @ time :2021/10/26 14:42
  13. */
  14. @Service(value = "utilsService")
  15. public class UtilsServiceImpl implements IUtilsService {
  16. @Autowired
  17. private UtilsMapper utilsMapper;
  18. @Autowired
  19. private IMFeign imFeign;
  20. /**
  21. * 查询运输订单ID主键
  22. * @return
  23. */
  24. @Override
  25. public BigDecimal selectOrderMaxId() {
  26. return utilsMapper.selectOrderMaxId();
  27. }
  28. /**
  29. * 查询运输订单子表主键ID
  30. * @return
  31. */
  32. @Override
  33. public BigDecimal selectOrderMaterialMaxId() {
  34. return utilsMapper.selectOrderMaterialMaxId();
  35. }
  36. /**
  37. * 修改运力状态
  38. * @param map {必要参数:capacityId 运力ID 或者 capacityNumber 车牌号}
  39. * @param status 类型
  40. * @return
  41. */
  42. public int updateCapacityStatus(Map<String, Object> map, Integer status){
  43. map.put("capacityStatus", status);
  44. return utilsMapper.updateCapacityByCarIdOrNum(map);
  45. }
  46. /**
  47. * 修改订单状态为结束
  48. * @param map {orderId 订单Id 或运输订购单号
  49. * @return
  50. */
  51. public int closeOrderNormally(Map<String, Object> map){
  52. //查询订单路段顺序号以及查询路段顺序号
  53. Map<String, Object> mesMap = utilsMapper.getLineSeqAndOrderSeq(map);
  54. BigDecimal orderSeq = DataChange.dataToBigDecimal(mesMap.get("orderSeq"));
  55. BigDecimal maxSeq = DataChange.dataToBigDecimal(map.get("maxSeq"));
  56. if(orderSeq.intValue() == maxSeq.intValue()){
  57. map.put("orderStatus", 2);
  58. return utilsMapper.updateOrderStatusByOrderIdOrNum(map);
  59. }
  60. return 0;
  61. }
  62. /**
  63. * 通过仓库名称查询仓库Id
  64. * @param warehouseName
  65. * @return
  66. */
  67. @Override
  68. public Integer queryWarehouseIdByName(String warehouseName) {
  69. return utilsMapper.queryWarehouseIdByName(warehouseName);
  70. }
  71. /**
  72. * 用于更新路段顺序号 取实绩中的路段顺序号
  73. * @param map 运输订单号 或者是运输订单ID 实绩中的路段顺序号
  74. * @return
  75. */
  76. public int updateOrderLineSequence(Map<String, Object> map){
  77. BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
  78. if(orderId.intValue() == 0){
  79. //如果没有传入运输订单Id则需要传入了运输订单号
  80. orderId = utilsMapper.getOrderIdByOrderNumber((String) map.get("orderNumber"));
  81. }
  82. BigDecimal segmentSqe = DataChange.dataToBigDecimal(map.get("segmentSqe"));
  83. Map<String, Object> mesMap = new HashMap<>();
  84. mesMap.put("orderId", orderId);
  85. mesMap.put("orderLineSequence", segmentSqe);
  86. return utilsMapper.updateLineSeqByOrderIdOrNum(mesMap);
  87. }
  88. /**
  89. * 通过月台名称查询月台Id
  90. * @param platformName
  91. * @return
  92. */
  93. @Override
  94. public Integer queryPlatformIdByName(String platformName) {
  95. return utilsMapper.queryPlatformIdByName(platformName);
  96. }
  97. /**
  98. * 查询路段顺序号
  99. * @param orderId
  100. * @return
  101. */
  102. @Override
  103. public Integer getLineSequenceByOrderId(BigDecimal orderId) {
  104. return utilsMapper.getLineSequenceByOrderId(orderId);
  105. }
  106. /**
  107. * 查询订单中所需要运输的物资 物资表对订单表 一对多
  108. * @param map 运输订单号 orderNumber
  109. * @return
  110. */
  111. @Override
  112. public List<Integer> getAllMaterialId(Map<String, Object> map) {
  113. return utilsMapper.getAllMaterialId(map);
  114. }
  115. /**
  116. * 通过总实绩ID查询订单Id
  117. * @param resultTotalId
  118. * @return
  119. */
  120. @Override
  121. public Integer getOrderIdByTotalId(Integer resultTotalId) {
  122. return utilsMapper.getOrderIdByTotalId(resultTotalId);
  123. }
  124. /**
  125. * 推送消息给websocket
  126. * @param capacityNumber
  127. * @param pushMes
  128. */
  129. @Override
  130. public void pushMesToWebsocket(String capacityNumber, String pushMes) {
  131. //添加消息实体
  132. HashMap<Object, Object> mesMap = new HashMap<>();
  133. mesMap.put("messageType", 4); //用于进厂后 刷新消息
  134. mesMap.put("sendPerson", "system");
  135. mesMap.put("receivePerson", capacityNumber);
  136. mesMap.put("messageContent", pushMes + new Date());
  137. mesMap.put("createTime", new Date());
  138. ArrayList<Object> list = new ArrayList<>();
  139. list.add(mesMap);
  140. //调用websocket接口推送
  141. HashMap<Object, Object> sendMap = new HashMap<>();
  142. //将消息实体放入list中存到map中
  143. sendMap.put("messages", list);
  144. imFeign.sendToUser(sendMap);
  145. }
  146. }