QmsQueueResultServiceImpl.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. package com.steerinfo.dil.service.impl;
  2. import com.steerinfo.dil.mapper.QmsQueueListMapper;
  3. import com.steerinfo.dil.model.QmsQueueList;
  4. import com.steerinfo.dil.util.DataChange;
  5. import com.steerinfo.dil.model.QmsQueueResult;
  6. import com.steerinfo.dil.mapper.QmsQueueResultMapper;
  7. import com.steerinfo.dil.service.IQmsQueueResultService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import java.util.*;
  11. import java.math.BigDecimal;
  12. /**
  13. * QmsQueueResult服务实现:
  14. * @author generator
  15. * @version 1.0-SNAPSHORT 2021-09-14 11:27
  16. * 类描述
  17. * 修订历史:
  18. * 日期:2021-09-14
  19. * 作者:generator
  20. * 参考:
  21. * 描述:QmsQueueResult服务实现
  22. * @see null
  23. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  24. */
  25. @Service(value = "qmsQueueResultService")
  26. public class QmsQueueResultServiceImpl implements IQmsQueueResultService {
  27. @Autowired
  28. private QmsQueueResultMapper qmsQueueResultMapper;
  29. @Autowired
  30. private QmsQueueListMapper qmsQueueListMapper;
  31. /**
  32. * 新增排队实绩
  33. * @param map {orderNumber}运输订单号
  34. * @return
  35. */
  36. @Override
  37. public int addQueueResult(Map<String, Object> map) {
  38. QmsQueueResult qmsQueueResult = new QmsQueueResult();
  39. //生成主键
  40. long id;
  41. BigDecimal selectMaxId = qmsQueueResultMapper.selectMaxId();
  42. id = selectMaxId == null ? 1 : selectMaxId.longValue() + 1;
  43. qmsQueueResult.setId(new BigDecimal(id));
  44. //获取传入运输订单号
  45. String orderNumber = (String) map.get("orderNumber");
  46. //查询实绩总表ID与运力Id
  47. Map<String, Object> cidAndTidMap = qmsQueueResultMapper.queryCIdAndTIdByOrderNumber(orderNumber);
  48. BigDecimal capacityId = DataChange.dataToBigDecimal(cidAndTidMap.get("capacityId"));
  49. map.put("capacityId", capacityId); //使用传进来的map将数据一路带到尾
  50. qmsQueueResult.setCapacityId(capacityId);
  51. BigDecimal resultTotalId = DataChange.dataToBigDecimal(cidAndTidMap.get("resultTotalId"));
  52. qmsQueueResult.setResultTotalId(resultTotalId);
  53. //通过运输订单号查询物资Id
  54. BigDecimal materialId = qmsQueueResultMapper.queryOrderMesByOrderId(DataChange.dataToBigDecimal(cidAndTidMap.get("orderId")));
  55. //通过物资Id查询门岗ID
  56. map.put("materialId", materialId);
  57. map.put("type", 0); //匹配物资可进厂的门岗
  58. List<BigDecimal> gatepostList = qmsQueueResultMapper.queryGatepostByMaterialId(map); //可能会有多个门岗可入
  59. BigDecimal gatepostId = gatepostList.get(0);
  60. map.put("gridType", 3);
  61. map.put("queueLocationId", gatepostId);
  62. //通过匹配出来的门岗ID获取网格ID
  63. BigDecimal gridId = qmsQueueResultMapper.getGridIdByGatepostIdAndGridType(map);
  64. map.put("gridId", gridId);
  65. //新增进厂排队实绩
  66. qmsQueueResult.setGridId(gridId);
  67. //添加申请时间
  68. qmsQueueResult.setResultApplyforTime(new Date());
  69. //系统自动下发 添加下发时间
  70. qmsQueueResult.setResultDownTime(new Date());
  71. qmsQueueResult.setInsertTime(new Date());
  72. qmsQueueResult.setInsertUsername("admin");
  73. return qmsQueueResultMapper.insertSelective(qmsQueueResult);
  74. }
  75. /**
  76. * 查看排队转移界面
  77. * @param map
  78. * @return
  79. */
  80. @Override
  81. public List<Map<String, Object>> getChangeQueueMes(Map<String, Object> map) {
  82. return qmsQueueResultMapper.getChangeQueueMes(map);
  83. }
  84. /**
  85. * 查询排队申请
  86. * @param map
  87. * @return
  88. */
  89. @Override
  90. public List<Map<String, Object>> getQueueApply(Map<String, Object> map) {
  91. return qmsQueueResultMapper.getQueueApply(map);
  92. }
  93. /**
  94. * 查询执行中运单
  95. * @param map
  96. * @return
  97. */
  98. @Override
  99. public List<Map<String, Object>> getAllExecutionOrder(Map<String, Object> map) {
  100. return qmsQueueResultMapper.getAllExecutionOrder(map);
  101. }
  102. /**
  103. * 指令接收 判断条件:是否有排队结束时间
  104. * @param map
  105. * @return
  106. */
  107. @Override
  108. public List<Map<String, Object>> orderReceive(Map<String, Object> map) {
  109. List<Map<String, Object>> orderReceiveList = qmsQueueResultMapper.getOrderReceive(map);
  110. //遍历数据 通过是否有接收时间 来判断是否接收
  111. for (Map<String, Object> orderReceiveMap : orderReceiveList) {
  112. if(orderReceiveMap.get("resultAcceptTime") != null){
  113. orderReceiveMap.put("isReceive", "是");
  114. }else {
  115. orderReceiveMap.put("isReceive", "否");
  116. }
  117. }
  118. return orderReceiveList;
  119. }
  120. /**
  121. * 查询排队开始 数据
  122. * 可用 gridId 网格ID
  123. * @param map
  124. * @return
  125. */
  126. @Override
  127. public List<Map<String, Object>> getQueueListByQueueUp(Map<String, Object> map) {
  128. return qmsQueueResultMapper.getQueueListByQueueUp(map);
  129. }
  130. /**
  131. * 查询排队取消数据
  132. * @param map
  133. * @return
  134. */
  135. @Override
  136. public List<Map<String, Object>> getQueueCancel(Map<String, Object> map) {
  137. return qmsQueueResultMapper.getQueueCancel(map);
  138. }
  139. /**
  140. * 通过实绩ID查询排队取消信息
  141. * @param resultId
  142. * @return
  143. */
  144. @Override
  145. public List<Map<String, Object>> getQueueCancelByResultId(Integer resultId) {
  146. return qmsQueueResultMapper.getQueueCancelByResultId(resultId);
  147. }
  148. /**
  149. * 修改排队取消实绩
  150. * @param qmsQueueResult
  151. * @return
  152. */
  153. @Override
  154. public int updateQueueCancel(QmsQueueResult qmsQueueResult) {
  155. qmsQueueResult.setUpdateTime(new Date());
  156. qmsQueueResult.setUpdateUsername("admin");
  157. return qmsQueueResultMapper.updateByPrimaryKeySelective(qmsQueueResult);
  158. }
  159. /**
  160. * 查询排队插队
  161. * @return
  162. */
  163. @Override
  164. public List<Map<String, Object>> getQueueInsert(Map<String, Object> map) {
  165. return qmsQueueResultMapper.getQueueInsert(map);
  166. }
  167. /**
  168. * 查询排队结束
  169. * @param map
  170. * @return
  171. */
  172. @Override
  173. public List<Map<String, Object>> getQueueEndResult(Map<String, Object> map) {
  174. return qmsQueueResultMapper.getQueueEndResult(map);
  175. }
  176. /**
  177. * 汽车监控
  178. * @param map
  179. * @return
  180. */
  181. @Override
  182. public List<Map<String, Object>> capacityMonitor(Map<String, Object> map) {
  183. List<Map<String, Object>> list = qmsQueueResultMapper.capacityMonitor(map);
  184. for (Map<String, Object> capacityMap : list) {
  185. //如果结束时间为空 排队总时长为
  186. if(capacityMap.get("resultEndTime") == null){
  187. Date date1 = (Date) capacityMap.get("resultApplyforTime");
  188. Date date2 = new Date();
  189. String differenceTime = DataChange.calculatedTimeDifference(date1, date2);
  190. capacityMap.put("resultQueueAllTime",differenceTime);
  191. }else {
  192. //否则排队时长为结束时长 - 申请时长
  193. Date date1 = (Date)capacityMap.get("resultApplyforTime");
  194. Date date2 = (Date)capacityMap.get("resultEndTime");
  195. String differenceTime = DataChange.calculatedTimeDifference(date1, date2);
  196. capacityMap.put("resultQueueAllTime",differenceTime);
  197. }
  198. }
  199. return list;
  200. }
  201. //********************************APP*********************************************
  202. /**
  203. * 根据车牌号查询排队下发
  204. * @param capacityNumber
  205. * @return
  206. */
  207. @Override
  208. public List<Map<String, Object>> getOrderReceive2(String capacityNumber) {
  209. BigDecimal gridId = getGridId(capacityNumber);
  210. if (gridId == null) {
  211. List<Map<String,Object>> mapList = new ArrayList<>();
  212. return mapList;
  213. }
  214. Map<String,Object> map = new HashMap<>();
  215. map.put("capacityNumber",capacityNumber);
  216. map.put("gridId",gridId);
  217. List<Map<String, Object>> orderReceive = qmsQueueResultMapper.getOrderReceive2(map);
  218. return orderReceive;
  219. }
  220. /**
  221. * 排队取消
  222. * @param mapValue
  223. * @return
  224. */
  225. @Override
  226. public int cancelQueue(Map<String,Object> mapValue) {
  227. String capacityNumber = (String) mapValue.get("capacityNumber");
  228. String resultCancelReason = (String) mapValue.get("resultCancelReason");
  229. BigDecimal resultId = qmsQueueResultMapper.getResultIdByCapacityId(capacityNumber);
  230. QmsQueueResult qmsQueueResult = qmsQueueResultMapper.selectByPrimaryKey(resultId);
  231. Map<String, Object> listIdMap = qmsQueueResultMapper.getListIdByResultId(resultId);
  232. BigDecimal listId = (BigDecimal) listIdMap.get("listId");
  233. QmsQueueList qmsQueueList = qmsQueueListMapper.selectByPrimaryKey(listId);
  234. qmsQueueList.setDeleted(new BigDecimal(1));
  235. qmsQueueResult.setResultCancelTime(new Date());
  236. qmsQueueResult.setResultCancelReason(resultCancelReason);
  237. qmsQueueListMapper.updateByPrimaryKeySelective(qmsQueueList);
  238. return qmsQueueResultMapper.updateByPrimaryKeySelective(qmsQueueResult);
  239. }
  240. /**
  241. * 通过车牌号得到网格id
  242. * @param capacityNumber
  243. * @return
  244. */
  245. @Override
  246. public BigDecimal getGridId(String capacityNumber) {
  247. return qmsQueueResultMapper.getGridIdNotNull(capacityNumber);
  248. }
  249. /**
  250. * 查询各门岗和仓库的排队状态
  251. * @return
  252. */
  253. @Override
  254. public List<Map<String, Object>> getQueueStatusList() {
  255. return qmsQueueResultMapper.getQueueStatusList();
  256. }
  257. }