From ff93a75e1ede2f3a66de84efd822cfa94b0ac821 Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期四, 01 二月 2024 15:59:59 +0800 Subject: [PATCH] 三一车辆追踪修改提交 --- ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java | 79 ++++++++++++++++++++++++++++++++------- 1 files changed, 64 insertions(+), 15 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java index 04a2dd7..4fc1bcf 100644 --- a/ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java @@ -2,7 +2,10 @@ import java.util.*; +import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.utils.uuid.IdUtils; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.utils.websocket.util.WebSocketUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -14,6 +17,9 @@ import javax.annotation.PostConstruct; import javax.annotation.Resource; +import javax.websocket.Session; + +import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS; /** * 鍗曞叺绔敵璇锋煡鐪嬫寚鎸ョ浣嶇疆鎴栦笁涓�杞﹁締浣嶇疆Service涓氬姟灞傚鐞� @@ -25,6 +31,9 @@ public class ArdAppApplicationServiceImpl implements IArdAppApplicationService { @Resource private ArdAppApplicationMapper ardAppApplicationMapper; + + @Resource + private SysRoleMapper sysRoleMapper; private Map<String,Thread> threadMap = new HashMap(); @@ -182,6 +191,23 @@ resultSingle = ardAppApplicationMapper.insertArdAppApplication(ardAppApplication); result = result + resultSingle; } + //鍔犲叆缁檖c绔痺ebsocket杞彂 + List<SysRole> sysRoleList = sysRoleMapper.selectRolePermissionByUserId(commanderId); + for(SysRole sysRole : sysRoleList){ + if(!sysRole.getRoleKey().equals("appLeader")){ + Map<String,Object> resultMap = ardAppApplicationMapper.selectSYCarApplicationByPCIdAndSoilderId(commanderId,usersId); + Map<String,Map<String,Object>> msg = new HashMap(); + msg.put("60000",resultMap); + for(String id : ONLINE_USER_SESSIONS.keySet()){ + if(id.startsWith(commanderId)){ + Session session = ONLINE_USER_SESSIONS.get(id); + WebSocketUtils.sendMessage(session,msg); + break; + } + } + break;//涓�涓猵c绔敤鎴峰彲鑳芥寕鎺ュ涓鑹诧紝姣忎釜pc绔彧杞彂涓�娆� + } + } } return result; } @@ -264,29 +290,32 @@ List<Map<String,Object>> ardAppApplicationList = ardAppApplicationMapper.selectArdAppApplicationByCommanderIdTrue(commanderId); Date date = new Date(); //鏌ョ湅鎸囨尌绔綅缃敵璇� - /*List<Map<String, Object>> resultCommanderPosition = new ArrayList(); + List<Map<String, Object>> resultCommanderPosition = new ArrayList(); + //鏌ョ湅杞﹁締浣嶇疆鐢宠 + List<Map<String, Object>> resultSYCarsPosition = new ArrayList(); for(Map<String, Object> map : ardAppApplicationList){ Long interval = date.getTime() - Long.parseLong((String)map.get("begin")); interval = 24 * 60 * 60 * 1000 - interval; Long hour = interval / (60 * 60 * 1000); Long min = (interval - hour * 60 * 60 * 1000) / (60 * 1000); - map.put("time",hour + "鏃�" + min + "鍒�"); + Long second = (interval - hour * 60 * 60 * 1000 - min * 60 * 1000) / 1000; + map.put("time",hour + "鏃�" + min + "鍒�" + second + "绉�"); if(((String)map.get("applicationType")).equals("Commander")){ resultCommanderPosition.add(map); - } - }*/ - //鏌ョ湅杞﹁締浣嶇疆鐢宠 - /*List<Map<String, Object>> resultSYCarsPosition = new ArrayList(); - for(Map<String, Object> map : ardAppApplicationList){ - Long interval = date.getTime() - Long.parseLong((String)map.get("begin")); - interval = 24 * 60 * 60 * 1000 - interval; - Long hour = interval / (60 * 60 * 1000); - Long min = (interval - hour * 60 * 60 * 1000) / (60 * 1000); - map.put("time",hour + "鏃�" + min + "鍒�"); - if(((String)map.get("applicationType")).equals("SYCar")){ + }else if(((String)map.get("applicationType")).equals("SYCar")){ resultSYCarsPosition.add(map); } - }*/ + } + result.put("commander",resultCommanderPosition); + result.put("SYCars",resultSYCarsPosition); + return result; + } + + @Override + public Map<String, List<Map<String, Object>>> getSendPositionTrue(String soilderId) { + Map<String, List<Map<String, Object>>> result = new HashMap(); + List<Map<String,Object>> ardAppApplicationList = ardAppApplicationMapper.selectArdAppApplicationBySoilderIdTrue(soilderId); + Date date = new Date(); //鏌ョ湅鎸囨尌绔綅缃敵璇� List<Map<String, Object>> resultCommanderPosition = new ArrayList(); //鏌ョ湅杞﹁締浣嶇疆鐢宠 @@ -296,7 +325,8 @@ interval = 24 * 60 * 60 * 1000 - interval; Long hour = interval / (60 * 60 * 1000); Long min = (interval - hour * 60 * 60 * 1000) / (60 * 1000); - map.put("time",hour + "鏃�" + min + "鍒�"); + Long second = (interval - hour * 60 * 60 * 1000 - min * 60 * 1000) / 1000; + map.put("time",hour + "鏃�" + min + "鍒�" + second + "绉�"); if(((String)map.get("applicationType")).equals("Commander")){ resultCommanderPosition.add(map); }else if(((String)map.get("applicationType")).equals("SYCar")){ @@ -355,4 +385,23 @@ int result = ardAppApplicationMapper.updateSoilderCheckByCommanderIdAndSoilderIdAndType(soilderId,commanderId,applicationType); return result; } + + @Override + public List<Map<String, Object>> getCheckPositionNo(String commanderId) {/// + List<Map<String,Object>> ardAppApplicationList = ardAppApplicationMapper.selectArdAppApplicationByCommanderIdNoCheck(commanderId); + Date date = new Date(); + for(Map<String, Object> map : ardAppApplicationList){ + if(((String)map.get("begin")).equals("")){ + map.put("time",""); + }else{ + Long interval = date.getTime() - Long.parseLong((String)map.get("begin")); + interval = 24 * 60 * 60 * 1000 - interval; + Long hour = interval / (60 * 60 * 1000); + Long min = (interval - hour * 60 * 60 * 1000) / (60 * 1000); + Long second = (interval - hour * 60 * 60 * 1000 - min * 60 * 1000) / 1000; + map.put("time",hour + "鏃�" + min + "鍒�" + second + "绉�"); + } + } + return ardAppApplicationList; + } } -- Gitblit v1.9.3