| @@ -2,6 +2,7 @@ package com.xueyi.system.api.digitalmans.domain.dto; | |||
| import com.xueyi.system.api.digitalmans.domain.po.DmDigitalmanPo; | |||
| import com.xueyi.system.api.digitalmans.domain.po.DmDigitalmanWorktimePo; | |||
| import com.xueyi.system.api.digitalmans.domain.vo.DmBroadcastVo; | |||
| import com.xueyi.system.api.organize.domain.vo.SysDeptExt; | |||
| import com.xueyi.system.api.resource.domain.po.DmResourcesPo; | |||
| import lombok.Data; | |||
| @@ -22,5 +23,6 @@ public class DmSyncDigitalmanDto extends DmDigitalmanPo { | |||
| protected DmDigitalmanWorktimePo worktime; | |||
| protected SysDeptExt workdayHour; | |||
| protected String iconPos; | |||
| protected DmBroadcastVo broadcast; | |||
| } | |||
| @@ -0,0 +1,15 @@ | |||
| package com.xueyi.system.api.digitalmans.domain.vo; | |||
| import com.alibaba.fastjson2.JSONObject; | |||
| import lombok.Data; | |||
| import lombok.NoArgsConstructor; | |||
| import java.util.List; | |||
| @Data | |||
| @NoArgsConstructor | |||
| public class DmBroadcastVo { | |||
| Integer recycle; | |||
| Integer speed; | |||
| List<JSONObject> resource; | |||
| } | |||
| @@ -0,0 +1,22 @@ | |||
| package com.xueyi.system.api.digitalmans.feign; | |||
| import com.xueyi.common.core.constant.basic.SecurityConstants; | |||
| import com.xueyi.common.core.constant.basic.ServiceConstants; | |||
| import com.xueyi.common.core.web.result.R; | |||
| import com.xueyi.system.api.digitalmans.domain.vo.DmBroadcastVo; | |||
| import com.xueyi.system.api.digitalmans.domain.vo.DmReceptionVo; | |||
| import com.xueyi.system.api.organize.feign.factory.RemoteUserFallbackFactory; | |||
| import org.springframework.cloud.openfeign.FeignClient; | |||
| import org.springframework.web.bind.annotation.GetMapping; | |||
| import org.springframework.web.bind.annotation.RequestHeader; | |||
| import org.springframework.web.bind.annotation.RequestParam; | |||
| @FeignClient(contextId = "remoteBroadcastService", value = ServiceConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class) | |||
| public interface RemoteBroadcastService { | |||
| @GetMapping("/broadcast/inner/list") | |||
| public R<DmBroadcastVo> innerlist(@RequestParam("manCode") String manCode, | |||
| @RequestHeader(SecurityConstants.ENTERPRISE_ID) Long enterpriseId, @RequestHeader(SecurityConstants.SOURCE_NAME) String sourceName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); | |||
| } | |||
| @@ -18,11 +18,9 @@ import com.xueyi.system.api.digitalmans.domain.dto.DmManDeviceDto; | |||
| import com.xueyi.system.api.digitalmans.domain.dto.DmSkillDto; | |||
| import com.xueyi.system.api.digitalmans.domain.dto.DmSyncDigitalmanDto; | |||
| import com.xueyi.system.api.digitalmans.domain.po.DmManDevicePo; | |||
| import com.xueyi.system.api.digitalmans.domain.vo.DmBroadcastVo; | |||
| import com.xueyi.system.api.digitalmans.domain.vo.DmReceptionVo; | |||
| import com.xueyi.system.api.digitalmans.feign.RemoteDigitalmanService; | |||
| import com.xueyi.system.api.digitalmans.feign.RemoteManDeviceService; | |||
| import com.xueyi.system.api.digitalmans.feign.RemoteReceptionService; | |||
| import com.xueyi.system.api.digitalmans.feign.RemoteSkillService; | |||
| import com.xueyi.system.api.digitalmans.feign.*; | |||
| import com.xueyi.system.api.model.Source; | |||
| import com.xueyi.system.api.organize.domain.dto.SysEnterpriseDto; | |||
| import com.xueyi.system.api.staff.domain.vo.DmStaffFeature; | |||
| @@ -69,6 +67,9 @@ public class ApiController { | |||
| @Autowired | |||
| RemoteManDeviceService manDeviceService; | |||
| @Autowired | |||
| RemoteBroadcastService remoteBroadcastService; | |||
| @RequestMapping(value = "/heartbeat", method = {RequestMethod.POST}) | |||
| @ResponseBody | |||
| @@ -167,6 +168,12 @@ public class ApiController { | |||
| R<DmSyncDigitalmanDto> syncDmDto = remoteDigitalmanService.listInner(manDeviceDtoR.getData().getManCode(), vo.getTimestamp(), manDeviceDtoR.getData().getTId(), source.getMaster(), SecurityConstants.INNER); | |||
| if (syncDmDto.isFail()) | |||
| return AjaxResult.warn("新增失败,请检查"); | |||
| // 添加播报信息 | |||
| R<DmBroadcastVo> broadcastVoR = remoteBroadcastService.innerlist(manDeviceDtoR.getData().getManCode(), manDeviceDtoR.getData().getTId(), source.getMaster(), SecurityConstants.INNER); | |||
| if (!broadcastVoR.isFail()) { | |||
| syncDmDto.getData().setBroadcast(broadcastVoR.getData()); | |||
| } | |||
| return AjaxResult.success(syncDmDto.getData()).put("timestamp", timestamp); | |||
| case 3: | |||
| R<DmReceptionVo> receptionVo = remoteReceptionService.getReceptionTaskInner(manDeviceDtoR.getData().getManCode(), manDeviceDtoR.getData().getTId(), source.getMaster(), SecurityConstants.INNER); | |||
| @@ -3,6 +3,7 @@ package com.xueyi.system.digitalmans.controller; | |||
| import com.alibaba.fastjson2.JSONObject; | |||
| import com.xueyi.common.core.utils.core.IdUtil; | |||
| import com.xueyi.common.core.web.result.AjaxResult; | |||
| import com.xueyi.common.core.web.result.R; | |||
| import com.xueyi.common.core.web.validate.V_A; | |||
| import com.xueyi.common.core.web.validate.V_E; | |||
| import com.xueyi.common.log.annotation.Log; | |||
| @@ -10,24 +11,21 @@ import com.xueyi.common.log.enums.BusinessType; | |||
| import com.xueyi.common.security.annotation.Logical; | |||
| import com.xueyi.common.security.annotation.RequiresPermissions; | |||
| import com.xueyi.common.web.entity.controller.BaseController; | |||
| import com.xueyi.system.api.digitalmans.domain.vo.DmBroadcastVo; | |||
| import com.xueyi.system.digitalmans.domain.dto.DmBroadcastDto; | |||
| import com.xueyi.system.digitalmans.domain.dto.DmDigitalmanDto; | |||
| import com.xueyi.system.digitalmans.domain.merge.DmBroadcastResourceMerge; | |||
| import com.xueyi.system.digitalmans.domain.query.DmBroadcastQuery; | |||
| import com.xueyi.system.digitalmans.domain.query.DmDigitalmanQuery; | |||
| import com.xueyi.system.digitalmans.manager.impl.DmBroadcastManager; | |||
| import com.xueyi.system.digitalmans.service.IDmBroadcastService; | |||
| import com.xueyi.system.digitalmans.service.IDmDigitalmanService; | |||
| import com.xueyi.system.resource.domain.dto.DmResourcesDto; | |||
| import com.xueyi.system.resource.domain.model.DmResourcesConverter; | |||
| import com.xueyi.system.resource.mapper.DmResourcesMapper; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.validation.annotation.Validated; | |||
| import org.springframework.web.bind.annotation.DeleteMapping; | |||
| import org.springframework.web.bind.annotation.GetMapping; | |||
| import org.springframework.web.bind.annotation.PathVariable; | |||
| import org.springframework.web.bind.annotation.PostMapping; | |||
| import org.springframework.web.bind.annotation.PutMapping; | |||
| import org.springframework.web.bind.annotation.RequestBody; | |||
| import org.springframework.web.bind.annotation.RequestMapping; | |||
| import org.springframework.web.bind.annotation.RestController; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import java.io.Serializable; | |||
| import java.util.ArrayList; | |||
| @@ -56,6 +54,47 @@ public class DmBroadcastController extends BaseController<DmBroadcastQuery, DmBr | |||
| @Autowired | |||
| private DmResourcesConverter resourcesConverter; | |||
| @Autowired | |||
| private IDmDigitalmanService digitalmanService; | |||
| /** | |||
| * 查询播报列表 | |||
| */ | |||
| @GetMapping("/inner/list") | |||
| public R<DmBroadcastVo> innerlist(@RequestParam("manCode")String manCode) { | |||
| DmDigitalmanQuery query = new DmDigitalmanQuery(); | |||
| query.setManCode(manCode); | |||
| List<DmDigitalmanDto> manList = digitalmanService.selectList(query); | |||
| DmBroadcastQuery broadcast = new DmBroadcastQuery(); | |||
| broadcast.setManId(manList.get(0).getId()); | |||
| List<DmBroadcastDto> list = baseService.selectListScope(broadcast); | |||
| if (list.size() > 0) { | |||
| // 定义DmBroadcastVo类型变量vo,将list.get(0)赋值给vo | |||
| DmBroadcastDto dto = list.get(0); | |||
| DmBroadcastVo vo = new DmBroadcastVo(); | |||
| vo.setSpeed(dto.getSpeed()); | |||
| vo.setRecycle(dto.getRecycle()); | |||
| List<JSONObject> rList = new ArrayList<>(); | |||
| List<DmBroadcastResourceMerge> mergeDtos = broadcastManager.selectBroadcastResourceMerge(dto.getId()); | |||
| int order = 0; | |||
| for (DmBroadcastResourceMerge merge : mergeDtos) { | |||
| if (merge.getResourceId() != null && merge.getResourceId() > 0) { | |||
| DmResourcesDto resourcesDto = resourcesConverter.mapperDto(resourceMapper.selectById(merge.getResourceId())); | |||
| JSONObject json = new JSONObject(); | |||
| json.put("order",order++); | |||
| json.put("ttsText",merge.getTtsText()); | |||
| json.put("url", resourcesDto.getUrl()); | |||
| rList.add(json); | |||
| } | |||
| } | |||
| vo.setResource(rList); | |||
| return R.ok(vo); | |||
| } | |||
| return R.fail("无法获取播报信息"); | |||
| } | |||
| /** | |||
| * 查询播报列表 | |||
| */ | |||
| @@ -1,7 +1,6 @@ | |||
| package com.xueyi.system.digitalmans.domain.po; | |||
| import com.xueyi.common.core.web.tenant.base.TBaseEntity; | |||
| import com.xueyi.system.digitalmans.domain.dto.DmBroadcastDto; | |||
| import com.xueyi.common.core.annotation.Excel; | |||
| import com.baomidou.mybatisplus.annotation.TableName; | |||
| import lombok.Data; | |||
| @@ -41,4 +40,6 @@ public class DmBroadcastPo extends TBaseEntity { | |||
| @Excel(name = "语速", readConverterExp = "0=:不播报;1:缓慢;2:默认;3:快速") | |||
| protected Integer speed; | |||
| protected Long manId; | |||
| } | |||