| 
														
															@@ -1,5 +1,6 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 package com.steerinfo.dil.service.impl; 
														 | 
														
														 | 
														
															 package com.steerinfo.dil.service.impl; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import com.steerinfo.dil.feign.IMFeign; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.steerinfo.dil.feign.TmsTruckFeign; 
														 | 
														
														 | 
														
															 import com.steerinfo.dil.feign.TmsTruckFeign; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.steerinfo.dil.mapper.QmsQueueListMapper; 
														 | 
														
														 | 
														
															 import com.steerinfo.dil.mapper.QmsQueueListMapper; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.steerinfo.dil.model.QmsQueueList; 
														 | 
														
														 | 
														
															 import com.steerinfo.dil.model.QmsQueueList; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -40,7 +41,7 @@ public class QmsQueueResultServiceImpl implements IQmsQueueResultService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private QueuingRulesServiceImpl queuingRulesService; 
														 | 
														
														 | 
														
															     private QueuingRulesServiceImpl queuingRulesService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Autowired 
														 | 
														
														 | 
														
															     @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private TmsTruckFeign tmsTruckFeign; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private IMFeign imFeign; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * 新增进厂排队实绩 
														 | 
														
														 | 
														
															      * 新增进厂排队实绩 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -56,21 +57,6 @@ public class QmsQueueResultServiceImpl implements IQmsQueueResultService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         String orderNumber = (String) map.get("orderNumber"); 
														 | 
														
														 | 
														
															         String orderNumber = (String) map.get("orderNumber"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //查询实绩总表ID 运力Id  物资Id (OO-->OOM 一对多)  只有钢材会有多条数据 但都属于钢材类型 取第一个获取物资ID匹配 
														 | 
														
														 | 
														
															         //查询实绩总表ID 运力Id  物资Id (OO-->OOM 一对多)  只有钢材会有多条数据 但都属于钢材类型 取第一个获取物资ID匹配 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         map.putAll(qmsQueueResultMapper.queryCIdAndTIdByOrderNumber(orderNumber).get(0)); //使用传进来的map将数据一路带到尾 
														 | 
														
														 | 
														
															         map.putAll(qmsQueueResultMapper.queryCIdAndTIdByOrderNumber(orderNumber).get(0)); //使用传进来的map将数据一路带到尾 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //判断是否销售订单 销售订单进厂时查询装车点 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderType")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (orderType.intValue() == 1){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            //查询当前订单关联几种物资 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            List<Integer> materialIdList = queuingRulesService.getAllMaterialId(map); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            //取得月台ID、以及对应的物资Id 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            List<Map<String, Object>> platIdList = queuingRulesService.getPlatId(materialIdList); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            List<Map<String, Object>> list = new ArrayList<>(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            for (Map<String, Object> map1 : platIdList) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                map1.put("orderId", map.get("orderId")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                list.add(map1); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            //远程调用 修改装车点 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            tmsTruckFeign.updateLoadResultList(list); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //获取网格Id 
														 | 
														
														 | 
														
															         //获取网格Id 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         BigDecimal gridId = queuingRulesService.calculateGridId(DataChange.dataToBigDecimal(map.get("materialId"))); 
														 | 
														
														 | 
														
															         BigDecimal gridId = queuingRulesService.calculateGridId(DataChange.dataToBigDecimal(map.get("materialId"))); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         map.put("gridId", gridId); 
														 | 
														
														 | 
														
															         map.put("gridId", gridId); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -85,39 +71,46 @@ public class QmsQueueResultServiceImpl implements IQmsQueueResultService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         qmsQueueResult.setInsertTime(new Date()); 
														 | 
														
														 | 
														
															         qmsQueueResult.setInsertTime(new Date()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         qmsQueueResult.setInsertUsername("admin"); 
														 | 
														
														 | 
														
															         qmsQueueResult.setInsertUsername("admin"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return qmsQueueResultMapper.insertSelective(qmsQueueResult); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        int i = qmsQueueResultMapper.insertSelective(qmsQueueResult); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //推送数据 给司机 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        pushCGMesToWebsocket(DataChange.dataToBigDecimal(map.get("orderId")).intValue(), gridId.intValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return i; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * 推送消息到websocket 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * @return 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public void pushCGMesToWebsocket(Integer orderId, Integer gridId){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //通过运输订单ID查询推送给司机的数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        Map<String, Object> mesMap = qmsQueueResultMapper.sendEnFactoryMesToWebSocket(orderId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //通过网格Id查询门岗名称 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        mesMap.putAll(qmsQueueResultMapper.queryGatepostNameByGridId(gridId)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        HashMap<String, Object> sendMap = new HashMap<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        sendMap.put("messageType", 2); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        sendMap.put("receivePerson", mesMap.get("capacityNumber")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        sendMap.put("sendPerson", "system"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        sendMap.put("messageContent", mesMap); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //调用websocket接口 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        imFeign.sendToUser(sendMap); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * 新增仓库排队实绩 
														 | 
														
														 | 
														
															      * 新增仓库排队实绩 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     * @param map orderNumber运输订单号 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * @param map orderNumber运输订单号  loadingId 装车点 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @return 
														 | 
														
														 | 
														
															      * @return 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      */ 
														 | 
														
														 | 
														
															      */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public int addQueueResultByCk(Map<String, Object> map){ 
														 | 
														
														 | 
														
															     public int addQueueResultByCk(Map<String, Object> map){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         QmsQueueResult qmsQueueResult = new QmsQueueResult(); 
														 | 
														
														 | 
														
															         QmsQueueResult qmsQueueResult = new QmsQueueResult(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //生成主键 
														 | 
														
														 | 
														
															         //生成主键 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         qmsQueueResult.setId(qmsQueueResultMapper.selectMaxId()); 
														 | 
														
														 | 
														
															         qmsQueueResult.setId(qmsQueueResultMapper.selectMaxId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //查询当前订单下所有的装车作业点 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        List<Integer> loadingIdList = qmsQueueResultMapper.getAllLoadingByOrderNumber((String) map.get("orderNumber")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //遍历所有装车点查询排队车辆数 选择最少的一个先进行排队 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        int platId = 0; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        int num = 100; // 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        for (Integer platformId : loadingIdList) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            int count = queuingRulesService.queueCountByPlatformId(new BigDecimal(platformId)).intValue(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if(count == 0){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                platId = platformId; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                break; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if(count < num){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                num = count; //取代比较数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                platId = platformId; //替换月台ID 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //获取添加网格Id 
														 | 
														
														 | 
														
															         //获取添加网格Id 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        map.put("queueLocationId", platId); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        map.put("queueLocationId", map.get("loadingId")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         map.put("gridType", 1); 
														 | 
														
														 | 
														
															         map.put("gridType", 1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        qmsQueueResult.setGridId(queuingRulesService.getGridIdByGatepostIdAndGridType(map)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        BigDecimal gridId = queuingRulesService.getGridIdByGatepostIdAndGridType(map); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        qmsQueueResult.setGridId(gridId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //通过运输订单号查询实绩ID 等数据 
														 | 
														
														 | 
														
															         //通过运输订单号查询实绩ID 等数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         map.putAll(qmsQueueResultMapper.queryCIdAndTIdByOrderNumber((String) map.get("orderNumber")).get(0)); 
														 | 
														
														 | 
														
															         map.putAll(qmsQueueResultMapper.queryCIdAndTIdByOrderNumber((String) map.get("orderNumber")).get(0)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         qmsQueueResult.setResultApplyforTime(new Date()); 
														 | 
														
														 | 
														
															         qmsQueueResult.setResultApplyforTime(new Date()); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -128,9 +121,26 @@ public class QmsQueueResultServiceImpl implements IQmsQueueResultService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         qmsQueueResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId"))); 
														 | 
														
														 | 
														
															         qmsQueueResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId"))); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         qmsQueueResult.setInsertTime(new Date()); 
														 | 
														
														 | 
														
															         qmsQueueResult.setInsertTime(new Date()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         qmsQueueResult.setInsertUsername("admin"); 
														 | 
														
														 | 
														
															         qmsQueueResult.setInsertUsername("admin"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        pushCKMesToWebSocket(DataChange.dataToBigDecimal(map.get("orderId")).intValue(), gridId.intValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return qmsQueueResultMapper.insertSelective(qmsQueueResult); 
														 | 
														
														 | 
														
															         return qmsQueueResultMapper.insertSelective(qmsQueueResult); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * 推送仓库排队消息到websocket 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public void pushCKMesToWebSocket(Integer orderId, Integer gridId){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //通过运输订单ID查询推送给司机的数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        Map<String, Object> mesMap = qmsQueueResultMapper.sendWarehouseMesToWebSocket(orderId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        mesMap.putAll(qmsQueueResultMapper.queryWarehouseNameByPlatformId(gridId)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        HashMap<String, Object> sendMap = new HashMap<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        sendMap.put("messageType", 2); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        sendMap.put("receivePerson", mesMap.get("capacityNumber")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        sendMap.put("sendPerson", "system"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        sendMap.put("messageContent", mesMap); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //调用websocket接口 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        imFeign.sendToUser(sendMap); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * 查看排队转移界面 
														 | 
														
														 | 
														
															      * 查看排队转移界面 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @param map 
														 | 
														
														 | 
														
															      * @param map 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -162,7 +172,7 @@ public class QmsQueueResultServiceImpl implements IQmsQueueResultService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     * 指令接收 判断条件:是否有排队结束时间 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * 查询指令接收 判断条件:是否有排队结束时间 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @param map 
														 | 
														
														 | 
														
															      * @param map 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @return 
														 | 
														
														 | 
														
															      * @return 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      */ 
														 | 
														
														 | 
														
															      */ 
														 |