|
@@ -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
|
|
*/
|
|
*/
|