ard-work/src/main/java/com/ruoyi/app/application/mapper/ArdAppApplicationMapper.java
@@ -78,4 +78,6 @@ public List<Map<String,Object>> selectArdAppApplicationBySoilderIdFalse(String soilderId); public int updateSoilderCheckByCommanderIdAndSoilderIdAndType(@Param("soilderId")String soilderId,@Param("commanderId")String commanderId,@Param("applicationType")String applicationType); public Map<String,Object> selectSYCarApplicationByPCIdAndSoilderId(@Param("commanderId")String commanderId,@Param("usersId")String usersId); } 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; } //加入给pc端websocket转发 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;//一个pc端用户可能挂接多个角色,每个pc端只转发一次 } } } return result; } ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml
@@ -144,4 +144,12 @@ update ard_app_application set soilder_check = 'true' where commander_id = #{commanderId} and soilder_id = #{soilderId} and application_type = #{applicationType} </update> <select id="selectSYCarApplicationByPCIdAndSoilderId" parameterType="java.lang.String" resultType="java.util.Map"> select aaa.soilder_id as "soilderId",aaa.commander_id as "commanderId", aaa.reason,aaa.begin,aaa.state,aaa.application_type as "applicationType", su.user_name as "userName",su.nick_name as "nickName" from ard_app_application aaa inner join sys_user su on aaa.soilder_id = su.user_id where commander_id = #{commanderId} and soilder_id = #{usersId} and application_type = 'SYCar' </select> </mapper>