From 832e40a8249ae15a5b2a7f01c78da4edc06cd55e Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期一, 13 十月 2025 15:54:57 +0800 Subject: [PATCH] 定时自动叫号 与 WMS获取车辆是否在园接口开发 --- server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java | 187 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 185 insertions(+), 2 deletions(-) diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java index 847cb74..65d569e 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java @@ -1,9 +1,13 @@ package com.doumee.cloud.admin; +import com.alibaba.fastjson.JSONObject; import com.doumee.api.BaseController; +import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.config.annotation.CloudRequiredPermission; import com.doumee.config.annotation.LoginNoRequired; +import com.doumee.config.jwt.JwtProperties; import com.doumee.core.annotation.pr.PreventRepeat; +import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.core.haikang.model.param.request.*; import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest; import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest; @@ -11,24 +15,41 @@ import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest; -import com.doumee.core.model.ApiResponse; +import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse; +import com.doumee.core.haikang.service.HKService; +import com.doumee.dao.web.response.platformReport.CarmeraListVO; +import com.doumee.service.business.third.BoardService; +import com.doumee.service.business.third.model.ApiResponse; +import com.doumee.service.business.third.model.LoginUserInfo; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.DESUtil; import com.doumee.dao.business.model.Device; +import com.doumee.service.business.DeviceService; import com.doumee.service.business.impl.hksync.*; +import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.shiro.authz.annotation.RequiresPermissions; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.BufferedReader; +import java.util.*; +import java.util.concurrent.TimeUnit; + /** * @author 姹熻箘韫� * @date 2023/11/30 15:33 */ @Api(tags = "娴峰悍鏁版嵁鍚屾鎺ュ彛") @RestController +@Slf4j @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/hksync") public class HkSyncCloudController extends BaseController { @@ -37,13 +58,31 @@ @Autowired private HkSyncDeviceServiceImpl hkSyncDeviceService; @Autowired + private BoardService boardService; + @Autowired private HkSyncParkServiceImpl hkSyncParkService; @Autowired private HkSyncPrivilegeServiceImpl hkSyncPrivilegeService; @Autowired private HkSyncPushServiceImpl hkSyncPushService; @Autowired + private HkSyncOrgUserToHKServiceImpl hkSyncOrgUserToHKService; + @Autowired + private HkSyncNoticeServiceImpl hkSyncNoticeService; + @Autowired private HkSyncLoginAuthServiceImpl hkSyncLoginAuthService; + + @Autowired + private SystemDictDataBiz systemDictDataBiz; + @Autowired + private DeviceService deviceService; + + @Autowired + private RedisTemplate<String,Object> redisTemplate; + + @Autowired + private JwtProperties jwtProperties; + @PreventRepeat @ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ユ湀鍙颁俊鎭帴鍙�") @PostMapping("/syncPlatforms") @@ -75,6 +114,21 @@ //鍚屾骞挎挱 result = hkSyncDeviceService.syncHkBroadcast(param); } + return ApiResponse.success(result); + } + @PreventRepeat + @ApiOperation("銆愭捣搴枫�戜繚瀛樻捣搴风敤鎴风粦瀹歰penid") + @PostMapping("/saveHkUserOpenid") + public ApiResponse syncHkUserOpenid( @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ + String result = hkSyncOrgUserToHKService.syncHkUserOpenid(this.getLoginUser(token).getId()); + return ApiResponse.success(result); + } + @PreventRepeat + @ApiOperation("銆愭捣搴枫�戞竻绌烘捣搴风敤鎴风粦瀹歰penid") + @PostMapping("/delHkUserOpenid") + @LoginNoRequired + public ApiResponse delHkUserOpenid( @RequestBody UserOpenidSaveRequest param){ + String result = hkSyncOrgUserToHKService.delHkUserOpenid(param); return ApiResponse.success(result); } @PreventRepeat @@ -124,6 +178,22 @@ String result = hkSyncPushService.dealVisitEventIccm(param,response); return ApiResponse.success(result); } + @ApiOperation("銆愭捣搴枫�戞祴璇昄ED鏄剧ず灞�") + @PostMapping("/testLed") + @LoginNoRequired + public ApiResponse<BaseResponse> testLed(@RequestBody TransparentChannelBodyRequest request, HttpServletResponse response) { + TransparentChannelHeadRequest head = new TransparentChannelHeadRequest(); + head.setAbility("cld");//鍥哄畾鍊� + head.setTreatyType("haixuan_led_net");//鍥哄畾鍊� + head.setDeviceIndexCode("6a5498e9df924befbb9530e467e5e809"); + return ApiResponse.success(HKService.transparentchannel(head,request)); + } + @ApiOperation("銆愭捣搴枫�戞祴璇曞箍鎾挱鎶�") + @PostMapping("/testBroadcast") + @LoginNoRequired + public ApiResponse<BaseResponse> testBroadcast(@RequestBody CustomBroadcastRequest request, HttpServletResponse response) { + return ApiResponse.success( HKService.customBroadcast(request)); + } // @PreventRepeat @ApiOperation("銆愭捣搴枫�戝仠杞﹀満浜嬩欢璁㈤槄鎺ㄩ�佸鎺ュ鐞嗘帴鍙�") @PostMapping("/push/parks") @@ -146,6 +216,31 @@ String result = hkSyncPushService.dealPlatformCarsEvent(param,response); return ApiResponse.success(result); } + @ApiOperation("銆愭捣搴穞est銆戞湀鍙拌溅杈嗙姸鎬佷簨浠惰闃呮帹閫佸鎺ュ鐞嗘帴鍙�") + @PostMapping("/push/platform/carstatusTest") + @LoginNoRequired + public ApiResponse pushPlatformCarStatus(HttpServletRequest request, HttpServletResponse response ){ + doPringParam(request,"銆愭捣搴穞est銆戞湀鍙拌溅杈嗙姸鎬佷簨浠惰闃呮帹閫佸鎺ュ鐞嗘帴鍙�:\n"); + return ApiResponse.success(null); + } + public void doPringParam(HttpServletRequest request,String name) { + try { + StringBuilder data =new StringBuilder(); + String line; + BufferedReader reader =request.getReader(); + while(null !=(line = reader.readLine())) { + data.append(line); + } + if(StringUtils.isNotBlank( data.toString())){ + log.info(name+"=================鍙傛暟锛�"+ data.toString()); + }else { + log.info(name+"=================锛氬弬鏁颁负绌�"); + } + }catch (Exception e){ + + log.info(name+"================= 鍙傛暟寮傚父锛�"+e.getMessage()); + } + } @PreventRepeat @ApiOperation("銆愭捣搴枫�戝彇娑堣闃呬簨浠�") @PostMapping("/cancelEventSub") @@ -154,4 +249,92 @@ hkSyncPushService.cancelEventSub(); return ApiResponse.success(null); } + + /** + * 鑾峰彇瀹夐槻骞冲彴绯荤粺鍏嶅瘑鑿滃崟璋冩暣鍦板潃 + * @return + */ + @ApiOperation(value = "鑾峰彇瀹夐槻骞冲彴绯荤粺鍏嶅瘑鑿滃崟璋冩暣鍦板潃" ) + @PostMapping("/getHkMenuLink/{type}") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type",example = "0",value = "鑿滃崟绫诲瀷", required = true), + }) + public ApiResponse<String> getHkMenuLink(@PathVariable Integer type,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ + LoginUserInfo loginUserInfo = this.getLoginUser(token); + String hkToken = DESUtil.generateTokenToHk(loginUserInfo.getUsername(),Integer.valueOf( + systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_TOKEN_VALIDITY).getCode() + ),redisTemplate); + String url = (systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HTTPS).getCode() + + systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HOST).getCode()) + + HKService.getMenuUrl(type,hkToken); + try { + if(redisTemplate!=null&& jwtProperties!=null){ + loginUserInfo.setHkMenuToken(hkToken); + redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+token, JSONObject.toJSONString(loginUserInfo),jwtProperties.getExpiration(), TimeUnit.MILLISECONDS); + } + }catch (Exception e){ + e.printStackTrace(); + } + + return ApiResponse.success( url); + } + + @ApiOperation(value = "鑾峰彇瀹夐槻骞冲彴绯荤粺鍏嶅瘑鑿滃崟閰嶇疆" ) + @GetMapping("/getHkMenuConfig") + public ApiResponse<List<Integer>> getHkMenuConfig(@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ + LoginUserInfo loginUserInfo = getLoginUser(token); + List<Integer> menuConfigList = new ArrayList<>(); + if(Objects.nonNull(loginUserInfo) && StringUtils.isNotBlank(loginUserInfo.getUsername())){ + menuConfigList = hkSyncPlatformsService.getMenuConfig(loginUserInfo.getUsername()); + } + return ApiResponse.success(menuConfigList); + } + + + @ApiOperation("銆愭捣搴枫�戜唬鍔炴秷鎭暟鎹泦鍚堝鎺ュ鐞嗘帴鍙�") + @PostMapping("/notice/getList") + public ApiResponse getNoticeList( HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token ){ + String result = hkSyncNoticeService.syncHkNotices(this.getLoginUser(token).getUsername()); + return ApiResponse.success(result); + } + + @ApiOperation("銆愭捣搴枫�戣幏鍙栧叏閮ㄧ洃鎺у尯鍩熸爲褰㈢粨鏋�") + @PostMapping("/regionList") + public ApiResponse<List<PageRegionInfoResponse> > getRegionList(HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token ){ + CarmeraListVO param =new CarmeraListVO(); + param.setWithCameras(0); + List<PageRegionInfoResponse> result = new ArrayList<>(); + try { +// result = boardService.getRegionTree( param); + //------TODO---------娴嬭瘯妯℃嫙鏁版嵁----start----- + for (int i = 0; i < 5; i++) { + PageRegionInfoResponse t = new PageRegionInfoResponse(); + t.setName("鎬诲尯鍩焈"+i); + t.setIndexCode(i+"_code"); + t.setChildList(new ArrayList<>()); + for (int j = 0; j < 5; j++) { + PageRegionInfoResponse t1 = new PageRegionInfoResponse(); + t1.setName("瀛愬尯鍩焈"+i+"_"+j); + t1.setIndexCode(i+"_"+j+"_ChildCode"); + t1.setParentIndexCode(t.getIndexCode()); + t.getChildList().add(t1); + } + result.add(t); + } + //------TODO---------娴嬭瘯妯℃嫙鏁版嵁----end----- + }catch (Exception e){ + + } + return ApiResponse.success(result); + } + + + + @ApiOperation("銆愭捣搴枫�戣缃甃ED灞忔枃妗�") + @PostMapping("/setLedContent") + public ApiResponse<List<Map<String,Object>>> setLedContent(@RequestBody TransparentChannelSingleRequest body , HttpServletResponse response) { + deviceService.setLedContent(body); + return ApiResponse.success(null); + } + } -- Gitblit v1.9.3