admin/src/api/business/device.js
@@ -31,5 +31,5 @@ } // åçledå±å 容 export function setLedContent (data) { return request.post('/visitsAdmin/cloudService/business/device/setLedContent', data) return request.post('/visitsAdmin/cloudService/business/hksync/setLedContent', data) } admin/src/components/business/OperaDeviceLedWindow.vue
@@ -9,6 +9,9 @@ <el-form-item label="æ¾ç¤ºå 容" prop="title"> <el-input v-model="form.title" placeholder="请è¾å ¥LED屿¾ç¤ºå 容" v-trim/> </el-form-item> <el-form-item label="ææ¾é度" prop="title"> <el-input type="number" v-model="form.speed" placeholder="请è¾å ¥ææ¾é度(大äº0æ°åï¼" v-trim/> </el-form-item> </el-form> </GlobalWindow> </template> @@ -25,7 +28,8 @@ // è¡¨åæ°æ® form: { id: null, title: '' title: '', speed: 13 }, // éªè¯è§å rules: { @@ -54,7 +58,8 @@ // è°ç¨æ°å»ºæ¥å£ this.isWorking = true this.api.setLedContent({ id: this.form.id, deviceId: this.form.id, speed: this.form.speed, content: this.form.title }) .then(() => { admin/src/views/business/deviceLed.vue
@@ -32,6 +32,16 @@ </el-table-column> <el-table-column prop="ip" label="设å¤ip"></el-table-column> <el-table-column prop="port" label="设å¤ç«¯å£"></el-table-column> <el-table-column v-if="containPermissions(['business:device:update' ])" label="æä½" min-width="120" fixed="right" > <template slot-scope="{row}"> <el-button type="text" @click="$refs.OperaDeviceLedWindow.open('è®¾ç½®å±æ¾å 容', row)" icon="el-icon-edit" v-permissions="['business:device:update']">è®¾ç½®å±æ¾å 容</el-button> </template> </el-table-column> </el-table> <pagination @size-change="handleSizeChange" server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -36,6 +36,7 @@ public static final int ONE = 1 ; public static final int TWO = 2 ; public static final String HK_PARAM ="HK_PARAM" ; public static final String LED_CONTENT_SPEED ="LED_CONTENT_SPEED" ; public static final String HK_HOST ="HK_HOST" ; public static final String HK_APPKEY ="HK_APPKEY" ; public static final String HK_APPSECRET ="HK_APPSECRET" ; @@ -919,6 +920,64 @@ this.info = info; } } /** * 广æéç¥å 容 1. å«å·ä¸ï¼çA12345请åå¾1å·æå°çå¾ ä½ä¸ 2. ä½ä¸å®æï¼çA12345ä½ä¸å®æï¼è¯·å°½å¿«é©¶ç¦» 3. é误åé ï¼çA12345æå°åé é误ï¼è¯·å°½å¿«é©¶ç¦» 4. è¶ æ¶åé ï¼çA12345æå°åé è¶ æ¶ï¼è¯·å°½å¿«é©¶ç¦»è¯·å°½å¿«é©¶ç¦» */ public enum PlatformBroadcastContent { CALLING(1, "å«å·ä¸"," ${param}请åå¾${param2}çå¾ ä½ä¸"), DONE(2, "ä½ä¸å®æ","${param}ä½ä¸å®æï¼è¯·å°½å¿«é©¶ç¦»" ), WRONG_IN(3, "é误åé ","${param}æå°åé é误ï¼è¯·å°½å¿«é©¶ç¦»" ), TIMEOUT_IN(4, "è¶ æ¶åé ","${param}æå°åé è¶ æ¶ï¼è¯·å°½å¿«é©¶ç¦»è¯·å°½å¿«é©¶ç¦»" ), ; // æååé private int key; private String name; private String info; // æé æ¹æ³ PlatformBroadcastContent(int key, String name,String info ) { this.key = key; this.info = info; this.name = name; } public static String getName(int index) { for (PlatformBroadcastContent c : PlatformBroadcastContent.values()) { if (c.getKey() == index) { return c.name; } } return null; } public int getKey() { return key; } public void setKey(int key) { this.key = key; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } } /** * æå°ä½ä¸ ç¶æ @@ -931,7 +990,7 @@ IN_WAIT(3, "å ¥åçå¾ ","å ¥åçå¾ " ), CALLED(4, "å·²å«å·","å·²å«å·" ), WORKING(5, "ä½ä¸ä¸","ä½ä¸ä¸" ), DONE(6, "ä½ä¸å®æ ","ä½ä¸å®æ " ), DONE(6, "ä½ä¸å®æ ","ä½ä¸å®æ" ), TRANSFERING(7, "转移ä¸","转移ä¸" ), EXCEPTION(8, "å¼å¸¸æèµ·","å¼å¸¸æèµ·" ), AUTHED_LEAVE(9, "å·²ææç¦»å","å·²ææç¦»å" ), server/system_service/src/main/java/com/doumee/core/utils/ImageBase64Util.java
@@ -122,7 +122,7 @@ } public static void main(String[] args) { String url= "http://10.50.250.178:8088/file/member/20240910/c9a4d1cc-76ca-4aa1-bead-5dfd5daf1e76.jpg";// å¾ å¤ççå¾ç String url= "http://10.50.250.253:8088/file/member/20240910/c9a4d1cc-76ca-4aa1-bead-5dfd5daf1e76.jpg";// å¾ å¤ççå¾ç String imgbese = Image2Base64(url); System.out.println(imgbese.replace("\r\n", "")); server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
@@ -12,6 +12,7 @@ import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.model.*; import com.doumee.dao.business.vo.LargeScreenDataVO; import com.doumee.dao.web.reqeust.*; import com.doumee.dao.web.response.DriverHomeVO; import com.doumee.dao.web.response.LineUpVO; @@ -160,4 +161,11 @@ } @LoginNoRequired @ApiOperation("ç¾å°å¤§å±æ°æ®") @GetMapping("/getLargeScreenData") public ApiResponse<LargeScreenDataVO> getLargeScreenData() { return ApiResponse.success(platformJobService.getLargeScreenData()); } } server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelSingleRequest.java
@@ -12,4 +12,6 @@ */ private String content ; //String true å 容 private Integer deviceId; // String false 设å¤ä¸»é® private int speed; // ææ¾é度 private int color; // åä½é¢è²(1:红è²ï¼2ï¼ç»¿è²ï¼4:é»è²ï¼8ï¼èè²ï¼16ï¼ç´«è²ï¼32ï¼éè²ï¼64ï¼ç½è²) } server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsDataRequest.java
@@ -6,7 +6,7 @@ @Data public class EventPlatformCarsDataRequest { private List<EventPlatformCarsStatusInfoRequest> HPVehicleStatus;// private EventPlatformCarsStatusInfoRequest HPVehicleStatus;// private EventPlatformAttrInfoRequest targetAttrs;// private String dataType;//HPVehicleStatus private String sendTime;//2017-04-22T15:39:01.000+08:00 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java
@@ -16,5 +16,5 @@ private Integer timeout ;//Number èå²è¶ æ¶æ¶é´ æ¯ åä½ï¼ç§ private String happenTime ;//String äºä»¶åçæ¶é´ï¼è®¾å¤æ¶é´ï¼ æ¯ 64 private String srcParentIndex ;//String äºä»¶åççäºä»¶æºç¶è®¾å¤ç¼å· å¦ 64 private List<EventPlatformCarsDataRequest> data; private EventPlatformCarsDataRequest data; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformDeviceMapper.java
@@ -2,11 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.PlatformDevice; import com.github.yulichang.base.MPJBaseMapper; /** * @author æ±è¹è¹ * @date 2024/06/28 10:03 */ public interface PlatformDeviceMapper extends BaseMapper<PlatformDevice> { public interface PlatformDeviceMapper extends MPJBaseMapper<PlatformDevice> { } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformJobMapper.java
@@ -2,11 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.PlatformJob; import com.github.yulichang.base.MPJBaseMapper; /** * @author æ±è¹è¹ * @date 2024/06/28 10:03 */ public interface PlatformJobMapper extends BaseMapper<PlatformJob> { public interface PlatformJobMapper extends MPJBaseMapper<PlatformJob> { } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBroadcastLog.java
@@ -59,8 +59,8 @@ @ExcelColumn(name="å ³è对象ç¼ç ") private String objId; @ApiModelProperty(value = "å ³è对象类å 0æå°ä½ä¸", example = "1") @ExcelColumn(name="å ³è对象类å 0æå°ä½ä¸") @ApiModelProperty(value = "å ³è对象类å 0æå°ä½ä¸ 1å ¶ä»", example = "1") @ExcelColumn(name="å ³è对象类å 0æå°ä½ä¸ 1å ¶ä»") private Integer objType; @ApiModelProperty(value = "æé次æ°", example = "1") server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformDevice.java
@@ -78,5 +78,8 @@ @ApiModelProperty(value = "设å¤ç¶æ 0å¨çº¿ 1离线", example = "1") @ExcelColumn(name="设å¤ç¶æ 0å¨çº¿ 1离线") private Integer status; @ApiModelProperty(value = "设å¤ç·¨ç¢¼") @ExcelColumn(name="设å¤ç·¨ç¢¼") private String hkNo; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -287,6 +287,10 @@ @ExcelColumn(name="ç¡®è®¤ä»»å¡æ¶é´") private Date confirmTaskDate; @ApiModelProperty(value = "ç¾å°åºå·", example = "1") @ExcelColumn(name="ç¾å°åºå·") private Integer signNum; @ApiModelProperty(value = "ææ°å«å·æ¶é´") @TableField(exist = false) private Date newCallDate; @@ -393,12 +397,18 @@ @TableField(exist = false) private BigDecimal workTimes ; @ApiModelProperty(value = "å¸å ¬å¸è½¦é¢çº¦è®°å½") @TableField(exist = false) private Integer bookId; @ApiModelProperty(value = "å¤ç¶ææ¥è¯¢ å¤ä¸ªä»¥,åå²") @TableField(exist = false) private String queryStatus; @ApiModelProperty(value = "ä½ä¸ç±»åæ¥è¯¢ å¤ä¸ªä»¥,åå²") @TableField(exist = false) private String queryType; @ApiModelProperty(value = "çµåéç¶æï¼0=æªä¸é 1=ä¸åä¸é 2=å ¨é¨ä¸é") @TableField(exist = false) private Integer lockStatus; server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/LargeScreenDataVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.doumee.dao.business.vo; import com.doumee.dao.business.model.Approve; import com.doumee.dao.business.model.PlatformJob; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2024/5/23 14:56 */ @Data public class LargeScreenDataVO { @ApiModelProperty(value = "å ¨é¨æ°æ®å表") private List<PlatformJob> allList; @ApiModelProperty(value = "å·²æå°å«å·å表") private List<PlatformJob> waitWorkList; @ApiModelProperty(value = "äºç»´ç å¼") private String qrCode; } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -5,6 +5,7 @@ import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Platform; import com.doumee.dao.business.model.PlatformJob; import com.doumee.dao.business.vo.LargeScreenDataVO; import com.doumee.dao.openapi.request.*; import com.doumee.dao.openapi.response.*; import com.doumee.dao.web.reqeust.*; @@ -225,4 +226,8 @@ CarNumByStatusResponse carStatusNum(CarNumByStatusRequest param); PlatformQueuingListResponse queueList(PlatformQueuingListRequest param); LargeScreenDataVO getLargeScreenData(); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -1,6 +1,8 @@ package com.doumee.service.business.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; @@ -12,21 +14,21 @@ import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.DeviceMapper; import com.doumee.dao.business.PlatformBroadcastLogMapper; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.PlatformBroadcastLog; import com.doumee.service.business.DeviceService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; /** * 设å¤ä¿¡æ¯è¡¨Serviceå®ç° @@ -38,6 +40,10 @@ @Autowired private DeviceMapper deviceMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private PlatformBroadcastLogMapper platformBroadcastLogMapper; @Override @@ -230,15 +236,15 @@ || !Constants.equalsInteger(device.getType(),Constants.TWO)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } TransparentChannelBodyRequest body = new TransparentChannelBodyRequest(); /* TransparentChannelBodyRequest body = new TransparentChannelBodyRequest(); TransparentChannelHeadRequest head = new TransparentChannelHeadRequest(); TransparentChannelBodyParamRequest request = new TransparentChannelBodyParamRequest(); TransparentChannelBodyRegionRequest regions = new TransparentChannelBodyRegionRequest(); head.setAbility("cld");//åºå®å¼ head.setTreatyType("haixuan_led_net");//åºå®å¼ head.setDeviceIndexCode(device.getHkId()); head.setDeviceIndexCode(device.getNo()); body.setMethod("ControlLedGereral");//åºå®å¼ request.setIndexCode(device.getHkId()); request.setIndexCode(device.getNo()); request.setOperationType(219);//åºå®å¼ regions.setActionType(32); regions.setContent(model.getContent()); @@ -254,9 +260,36 @@ regions.setRegionRightBottomYPos(31); request.setRegions(new ArrayList<>()); request.getRegions().add(regions); regions.setSpeed(13); regions.setSpeed(8); body.setParams(request); BaseResponse response = HKService.transparentchannel(head,body); BaseResponse response = HKService.transparentchannel(head,body);*/ if(model.getSpeed()<=0){ int speed = 13; try { speed = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.LED_CONTENT_SPEED).getCode()); }catch (Exception e){ } model.setSpeed(speed); } BaseResponse response = HkSyncPushServiceImpl.dealLedContentBiz(device.getNo(),model.getContent(),model.getSpeed(),1); PlatformBroadcastLog log = new PlatformBroadcastLog(); log.setCreateDate(new Date()); log.setBizType(Constants.ONE); log.setHkDate(new Date()); log.setDeviceType(Constants.ONE); log.setObjType(Constants.ONE); log.setHkId(device.getHkId()); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ log.setHkInfo("请æ±å¤±è´¥ï¼"+JSONObject.toJSONString(response)); log.setHkStatus(Constants.THREE); }else{ log.setHkInfo("è¯·æ±æå"); log.setHkStatus(Constants.TWO); } log.setName("设置LED屿¾å 容"); log.setInfo(model.getContent()); log.setNum(Constants.ONE); platformBroadcastLogMapper.insert(log); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼å±å¹å 容设置失败"+(response!=null?response.getMsg():"")); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -273,9 +273,13 @@ PlatformWorkVO platformWorkVO = PlatformGroupServiceImpl.getPlatformWorkVO(platform,platformJobList); platform.setPlatformWorkVO(platformWorkVO); } } for (PlatformGroup platformGroup:platformGroups) { platformGroup.setPlatformList(allPlatformList.stream().filter(m->Constants.equalsInteger(m.getGroupId(),platformGroup.getId())).collect(Collectors.toList())); for (PlatformGroup platformGroup:platformGroups) { platformGroup.setPlatformList(allPlatformList.stream().filter(m->m.getShowConfig()&&Constants.equalsInteger(m.getGroupId(),platformGroup.getId())).collect(Collectors.toList())); } }else{ for (PlatformGroup platformGroup:platformGroups) { platformGroup.setPlatformList(allPlatformList.stream().filter(m->Constants.equalsInteger(m.getGroupId(),platformGroup.getId())).collect(Collectors.toList())); } } return platformGroups; } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -22,6 +22,7 @@ import com.doumee.dao.business.join.PlatformJobJoinMapper; import com.doumee.dao.business.join.PlatformJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.business.vo.LargeScreenDataVO; import com.doumee.dao.openapi.request.*; import com.doumee.dao.openapi.response.*; import com.doumee.dao.system.model.SystemUser; @@ -45,10 +46,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.*; import java.util.stream.Collectors; /** @@ -256,6 +254,7 @@ .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId()) .apply(pageWrap.getModel().getQueryStatus() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatus()+"')") .apply(pageWrap.getModel().getQueryType() != null, " find_in_set(t.TYPE,'"+pageWrap.getModel().getQueryType()+"')") .ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart())) .le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd())) @@ -290,11 +289,13 @@ Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper .selectAll(PlatformJob.class) .selectAs(PlatformBooks::getId,PlatformJob::getBookId) .selectAs(Platform::getName,PlatformJob::getPlatformName) .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate) .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName) .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode) .leftJoin(PlatformBooks.class,PlatformBooks::getJobId,PlatformJob::getId) .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId()) .like(pageWrap.getModel().getCarCodeFront() != null, PlatformJob::getCarCodeFront, pageWrap.getModel().getCarCodeFront()) @@ -556,7 +557,14 @@ || System.currentTimeMillis() < DateUtil.getDateByString(DateUtil.getCurrDate() + " " + platformGroup.getStartTime() + ":00" ).getTime()){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æªå¨å·¥ä½æ¶é´["+platformGroup.getStartTime() + "-" + platformGroup.getEndTime() +"]ï¼æ æ³è¿è¡ç¾å°"); } //æ¥è¯¢ä»æ¥æå¤§çç¾å°æ° List<PlatformJob> signList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda().apply(" DATE(SIGN_DATE) = DATE(NOW()) and sign_date is not null ")); if(CollectionUtils.isEmpty(signList)){ platformJob.setSignNum(Constants.ONE); } else{ int maxNumber = Collections.max(signList.stream().map(i->i.getSignNum()).collect(Collectors.toList())); platformJob.setSignNum(maxNumber + Constants.ONE); } platformJob.setSignDate(new Date()); platformJob.setSingType(signInDTO.getSignType()); platformJob.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey()); @@ -842,10 +850,10 @@ ParkReservationAddResponse parkReservationAddResponse = (ParkReservationAddResponse) response.getData(); visitPark.setHkId(parkReservationAddResponse.getReserveOrderNo()); visitPark.setHkStatus(Constants.ONE); visitPark.setRemark("å ææå"); visitPark.setRemark("è½¦è¾æéä¸åæå"); }else{ visitPark.setHkStatus(Constants.TWO); visitPark.setRemark("å æå¤±è´¥~"); visitPark.setRemark("è½¦è¾æéä¸å失败~"); //ä¸å失败 æ 记主ä¸å¡ç¶æä¸ºä¸å失败 sendStatus = false; } @@ -1665,5 +1673,51 @@ } @Override public LargeScreenDataVO getLargeScreenData(){ LargeScreenDataVO largeScreenDataVO = new LargeScreenDataVO(); List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>() .selectAll(PlatformJob.class) .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate) .select(" ( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = 5 order by pl.CREATE_DATE desc limit 1 ) as newStartDate ") .select(" ( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = 4 order by pl.CREATE_DATE desc limit 1 ) as newCallDate ") .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) .in(PlatformJob::getStatus, Constants.PlatformJobStatus.WAIT_CALL.getKey(), Constants.PlatformJobStatus.WORKING.getKey(), Constants.PlatformJobStatus.CALLED.getKey(), Constants.PlatformJobStatus.IN_WAIT.getKey() ) .orderByDesc(PlatformJob::getStatus) .orderByAsc(PlatformJob::getSignDate) ); if(CollectionUtils.isEmpty(platformJobList)){ for (PlatformJob platformJob:platformJobList) { if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ //计ç®å·²ä½ä¸æ¶é¿ æ ¹æ®æå°å·¥ä½æç 计ç®ä»»å¡ééè¦æ¶é´ if(Objects.isNull(platformJob.getTotalNum()) || Objects.isNull(platformJob.getWorkRate())){ platformJob.setOptTime(0L); }else{ Integer workMinute = platformJob.getTotalNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate()).intValue(); Date overDate = DateUtil.getXMinuteAfterDate(platformJob.getNewStartDate(),workMinute); platformJob.setOptTime(overDate.getTime()/1000); } }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){ //计ç®å·²å«å·æ¶é´ platformJob.dealTime(); } } largeScreenDataVO.setAllList(platformJobList); List<PlatformJob> calledList = platformJobList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())).collect(Collectors.toList()); largeScreenDataVO.setWaitWorkList(calledList); } largeScreenDataVO.setQrCode(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_QRCODE).getCode()); return largeScreenDataVO; } } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
@@ -79,6 +79,7 @@ platformDevice.setType(Constants.ZERO); platformDevice.setDeviceId(ledId.toString()); platformDevice.setHkId(device.getHkId()); platformDevice.setHkNo(device.getNo()); platformDevice.setName(device.getName()); platformDeviceList.add(platformDevice); } @@ -100,6 +101,7 @@ platformDevice.setType(Constants.TWO); platformDevice.setDeviceId(broadcastId.toString()); platformDevice.setHkId(device.getHkId()); platformDevice.setHkNo(device.getNo()); platformDevice.setName(device.getName()); platformDeviceList.add(platformDevice); } @@ -154,6 +156,7 @@ platformDevice.setType(Constants.ZERO); platformDevice.setDeviceId(ledId.toString()); platformDevice.setHkId(device.getHkId()); platformDevice.setHkNo(device.getNo()); platformDevice.setName(device.getName()); platformDeviceList.add(platformDevice); } @@ -177,6 +180,7 @@ platformDevice.setType(Constants.TWO); platformDevice.setDeviceId(broadcastId.toString()); platformDevice.setHkId(device.getHkId()); platformDevice.setHkNo(device.getNo()); platformDevice.setName(device.getName()); platformDeviceList.add(platformDevice); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java
@@ -165,7 +165,9 @@ editList.add(model); //æ¸ ç©ºçæ§ç¹æ°æ® platformDeviceMapper.delete(new UpdateWrapper<PlatformDevice>().lambda() .eq(PlatformDevice::getPlatformId,model.getId())); .eq(PlatformDevice::getPlatformId,model.getId()) .eq(PlatformDevice::getType,Constants.ONE) ); deviceList.addAll(getCameraList(device.getCameras(),model)); }else{ //妿ä¸åå¨ï¼åæ°å¢æ°æ® server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -3,10 +3,12 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.config.DataSyncConfig; import com.doumee.config.SpringContextUtil; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; 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.EventAcsInfoRequest; import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest; @@ -75,7 +77,11 @@ @Autowired private PlatformMapper platformMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private PlatformDeviceMapper platformDeviceMapper; @Autowired private PlatformBroadcastLogMapper platformBroadcastLogMapper; @Autowired private PlatformJobMapper platformJobMapper; @Autowired @@ -864,71 +870,71 @@ List<EventPlatformCarsInfoRequest> events = param.getParams().getEvents(); List<PlatformEvent> eventList = new ArrayList<>(); for(EventPlatformCarsInfoRequest request : events){ if( request.getData() ==null || request.getData().size()==0){ if( request.getData() ==null ){ continue; } Integer workStatus = 0; for(EventPlatformCarsDataRequest data : request.getData()){ if( data.getHPVehicleStatus() ==null || data.getHPVehicleStatus().size() ==0){ continue;//å¦ä½æ¨éç¶æéå为空ï¼ä¸å¤çè·³è¿ } PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda() .eq(PlatformDevice::getDeviceId,request.getSrcIndex()) .eq(PlatformDevice::getIsdeleted,Constants.ZERO) .last("limit 1")); if(model ==null){ continue;//çæ§ç¹æªåæ¥ï¼è·³è¿å¤ç EventPlatformCarsDataRequest data = request.getData(); if( data.getHPVehicleStatus() ==null ){ continue;//å¦ä½æ¨éç¶æéå为空ï¼ä¸å¤çè·³è¿ } PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda() .eq(PlatformDevice::getDeviceId,request.getSrcIndex()) .eq(PlatformDevice::getIsdeleted,Constants.ZERO) .last("limit 1")); if(model ==null){ continue;//çæ§ç¹æªåæ¥ï¼è·³è¿å¤ç } } //å车é车è¾ç¶æ for(EventPlatformCarsStatusInfoRequest status : data.getHPVehicleStatus()){ eventList.add(initPlatformEventModel(request,data,status));//å°è£ äºä»¶ï¼å·²æå°ééä¸ºç»´åº¦ï¼ if(StringUtils.isBlank(status.getPlateNo())){ continue;//å¦æè½¦è¾ä¿¡æ¯ä¸ºç©ºï¼ä¸å¤çç´æ¥è·³è¿ } PlatformJob job = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda() .eq(StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeFront,status.getPlateNo() )//å车çå· .eq(!StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeBack,status.getPlateNo() )//å车çå· .eq(PlatformJob::getIsdeleted,Constants.ZERO ) .last("limit 1 ")); PlatformJob update = new PlatformJob(); update.setId(job.getId()); update.setEditDate(new Date()); if(StringUtils.equals(status.getMotionStatus(),"leave")){ //妿æ¯è½¦è¾ç¦»å¼,ä¸åç¸å ³èªå¨å®æä½ä¸ä¸å¡å¤ç /* if(job ==null && !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ continue;//å¦ææ²¡æ¥å°å¯¹åºçä½ä¸æè ä½ä¸å¹¶éä½ä¸ä¸ï¼ä¸åä¸å¡å¤ç } if(Constants.equalsInteger(job.getType(), Constants.THREE) || Constants.equalsInteger(job.getType(), Constants.TWO)){ //妿æ¯wmsæ¨éçå¤å车è¾å¤åè½¦è¾ if(platformWmsDetailMapper.selectCount(new QueryWrapper<PlatformWmsDetail>().lambda() .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) .eq(PlatformWmsDetail::getJobId,job.getId()) .ne(PlatformWmsDetail::getLockStatus,Constants.ONE)) >0){ continue;//妿å¤åä»»å¡ä½ä¸ï¼ååå·ææªä¸éçæ åµï¼ä¸åèªå¨å®æä½ä¸é»è¾å¤çï¼è·³è¿ä¸å¤ç } } //å¦ææ¯æ£å¨ä½ä¸çç¶æï¼æ è®°ä½ä¸å·²å®æ update.setStatus(Constants.PlatformJobStatus.DONE.getKey());//ä½ä¸å·²å®æ update.setDoneDate(update.getEditDate());*/ }else if(StringUtils.equals(status.getMotionStatus(),"enter")){ //妿æ¯è½¦è¾è¿å ¥ if(job ==null || !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){ //说æè½¦è¾è¿éæå° æè è¿æªå«å·ç¶æï¼åèµ·è¦å dealCarsInErrorPlatformBiz(job,status); } if(job.getStartDate() == null){ update.setStartDate(update.getEditDate()); } update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//å¼å§ä½ä¸ }else{ continue;//å ¶ä»ç¶æä¸å¤çï¼è·³è¿ } EventPlatformCarsStatusInfoRequest status = data.getHPVehicleStatus(); eventList.add(initPlatformEventModel(request,data,status));//å°è£ äºä»¶ï¼å·²æå°ééä¸ºç»´åº¦ï¼ if(StringUtils.isBlank(status.getPlateNo())){ continue;//å¦æè½¦è¾ä¿¡æ¯ä¸ºç©ºï¼ä¸å¤çç´æ¥è·³è¿ } PlatformJob job = platformJobMapper.selectJoinOne(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() .selectAll(PlatformJob.class) .selectAs(Platform::getName,PlatformJob::getPlatformName) .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) .eq(StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeFront,status.getPlateNo() )//å车çå· .eq(!StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeBack,status.getPlateNo() )//å车çå· .eq(PlatformJob::getIsdeleted,Constants.ZERO ) .last("limit 1 ")); PlatformJob update = new PlatformJob(); update.setId(job.getId()); update.setEditDate(new Date()); if(StringUtils.equals(status.getMotionStatus(),"leave")){ //妿æ¯è½¦è¾ç¦»å¼,ä¸åç¸å ³èªå¨å®æä½ä¸ä¸å¡å¤ç /* if(job ==null && !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ continue;//å¦ææ²¡æ¥å°å¯¹åºçä½ä¸æè ä½ä¸å¹¶éä½ä¸ä¸ï¼ä¸åä¸å¡å¤ç } if(Constants.equalsInteger(job.getType(), Constants.THREE) || Constants.equalsInteger(job.getType(), Constants.TWO)){ //妿æ¯wmsæ¨éçå¤å车è¾å¤åè½¦è¾ if(platformWmsDetailMapper.selectCount(new QueryWrapper<PlatformWmsDetail>().lambda() .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) .eq(PlatformWmsDetail::getJobId,job.getId()) .ne(PlatformWmsDetail::getLockStatus,Constants.ONE)) >0){ continue;//妿å¤åä»»å¡ä½ä¸ï¼ååå·ææªä¸éçæ åµï¼ä¸åèªå¨å®æä½ä¸é»è¾å¤çï¼è·³è¿ä¸å¤ç } } //å¦ææ¯æ£å¨ä½ä¸çç¶æï¼æ è®°ä½ä¸å·²å®æ update.setStatus(Constants.PlatformJobStatus.DONE.getKey());//ä½ä¸å·²å®æ update.setDoneDate(update.getEditDate());*/ }else if(StringUtils.equals(status.getMotionStatus(),"enter")){ //妿æ¯è½¦è¾è¿å ¥ if(job ==null || !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){ //说æè½¦è¾è¿éæå° æè è¿æªå«å·ç¶æï¼åèµ·è¦å dealCarsInErrorPlatformBiz(job,status); } if(job.getStartDate() == null){ update.setStartDate(update.getEditDate()); } update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//å¼å§ä½ä¸ }else{ continue;//å ¶ä»ç¶æä¸å¤çï¼è·³è¿ } //ææ¶ä¸åç¸å ³èªå¨å®æä½ä¸ä¸å¡å¤ç // dealPlatformJobLogBiz(update,status);//è®°å½ä½ä¸æ¥å¿ } break;//åªå¤ç第ä¸ä¸ªæ°æ®ç¶æ } } if(eventList.size()>0){ //çæäºä»¶ @@ -1039,62 +1045,118 @@ savePlatformWarnEventDTO.setEventType(Constants.PlatformWarnEvent.STOP_ERROR.getKey()); platformWarnEventService.savePlatformWarnEvent(savePlatformWarnEventDTO); int speed = 13; try { speed = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.LED_CONTENT_SPEED).getCode()); }catch (Exception e){ } List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda() .eq(PlatformDevice::getPlatformId,model.getPlatformId()) .eq(PlatformDevice::getIsdeleted,Constants.ZERO)); if(deviceList ==null || deviceList.size() == 0){ return; } String content ="车è¾"+model.getCarCodeFront()+"åéæå°äº"; String content =Constants.PlatformLedContent.WRONG_IN.getInfo(); content = content.replace("${param}",model.getPlatformName()); content = content.replace("${param2}",model.getCarCodeFront()); List<String> broadcastList = new ArrayList<>(); List<String> ledList = new ArrayList<>(); List<PlatformBroadcastLog> logList = new ArrayList<>(); for(PlatformDevice device : deviceList){ if(StringUtils.isNotBlank(device.getHkId())){ continue; } if(Constants.equalsInteger(device.getType(),Constants.ZERO)){ //妿æ¯LED TransparentChannelBodyRequest body = new TransparentChannelBodyRequest(); TransparentChannelHeadRequest head = new TransparentChannelHeadRequest(); TransparentChannelBodyParamRequest request = new TransparentChannelBodyParamRequest(); TransparentChannelBodyRegionRequest regions = new TransparentChannelBodyRegionRequest(); head.setAbility("cld");//åºå®å¼ head.setTreatyType("haixuan_led_net");//åºå®å¼ head.setDeviceIndexCode(device.getHkId()); body.setMethod("ControlLedGereral");//åºå®å¼ request.setIndexCode(device.getHkId()); request.setOperationType(219);//åºå®å¼ regions.setActionType(32); regions.setContent(content); regions.setRegionNo(1); regions.setRegionType(14); regions.setFontColor(1); regions.setCircleTimes(1);//å¾ªç¯æ¬¡æ° regions.setFontSize(32);// regions.setStayTime(1);//åä½ï¼ï¼ regions.setRegionLeftTopXPos(0); regions.setRegionLeftTopYPos(0); regions.setRegionRightBottomXPos(255); regions.setRegionRightBottomYPos(31); request.setRegions(new ArrayList<>()); request.getRegions().add(regions); regions.setSpeed(13); body.setParams(request); HKService.transparentchannel(head,body); PlatformBroadcastLog log = new PlatformBroadcastLog(); log.setCreateDate(new Date()); log.setBizType(Constants.ONE); log.setHkDate(new Date()); log.setObjType(Constants.ONE); log.setIds(device.getHkNo()); log.setInfo(content); log.setNum(Constants.ONE); BaseResponse response = dealLedContentBiz(device.getHkNo(),content,speed,1); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ log.setHkInfo("请æ±å¤±è´¥ï¼"+JSONObject.toJSONString(response)); log.setHkStatus(Constants.THREE); }else{ log.setHkInfo("è¯·æ±æå"); log.setHkStatus(Constants.TWO); } log.setDeviceType(Constants.ONE); log.setName("设置LED屿¾å 容"); logList.add(log); ledList.add(device.getHkId()); }else if(Constants.equalsInteger(device.getType(),Constants.ZERO)){ //妿æ¯å¹¿æç¹ broadcastList.add(device.getHkId()); } } if(broadcastList.size()>0){ String content1 =Constants.PlatformBroadcastContent.WRONG_IN.getInfo(); content1 = content1.replace("${param}",model.getCarCodeFront()); PlatformBroadcastLog log = new PlatformBroadcastLog(); log.setCreateDate(new Date()); log.setBizType(Constants.ONE); log.setHkDate(new Date()); log.setObjType(Constants.ONE); log.setInfo(content1); log.setNum(Constants.ONE); log.setIds(String.join(",",broadcastList)); CustomBroadcastRequest request = new CustomBroadcastRequest(); request.setAudioPointIndexCode(broadcastList); request.setPlayDuration(15);//åä½ç§ request.setBroadCastMode("tts"); request.setPriority(1); request.setState(1);//ææ¾/忢æ è¯ 1-ææ¾ï¼0-忢 request.setPlayTtsContent(content); HKService.customBroadcast(request); request.setPlayTtsContent(content1); BaseResponse response = HKService.customBroadcast(request); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ log.setHkInfo("请æ±å¤±è´¥ï¼"+JSONObject.toJSONString(response)); log.setHkStatus(Constants.THREE); }else{ log.setHkInfo("è¯·æ±æå"); log.setHkStatus(Constants.TWO); } log.setDeviceType(Constants.ONE); log.setName("åéå¹¿æææ¥å 容"); logList.add(log); } if(logList.size()>0){ platformBroadcastLogMapper.insert(logList); } } public static BaseResponse dealLedContentBiz(String hkNo, String content,int speed,int color) { TransparentChannelBodyRequest body = new TransparentChannelBodyRequest(); TransparentChannelHeadRequest head = new TransparentChannelHeadRequest(); TransparentChannelBodyParamRequest request = new TransparentChannelBodyParamRequest(); TransparentChannelBodyRegionRequest regions = new TransparentChannelBodyRegionRequest(); head.setAbility("cld");//åºå®å¼ head.setTreatyType("haixuan_led_net");//åºå®å¼ head.setDeviceIndexCode(hkNo); body.setMethod("ControlLedGereral");//åºå®å¼ request.setIndexCode(hkNo); request.setOperationType(219);//åºå®å¼ regions.setActionType(32); regions.setContent(content); regions.setRegionNo(1); regions.setRegionType(14); regions.setFontColor(color>0?color:1); regions.setCircleTimes(1);//å¾ªç¯æ¬¡æ° regions.setFontSize(32);// regions.setStayTime(1);//åä½ï¼ï¼ regions.setRegionLeftTopXPos(0); regions.setRegionLeftTopYPos(0); regions.setRegionRightBottomXPos(255); regions.setRegionRightBottomYPos(31); request.setRegions(new ArrayList<>()); request.getRegions().add(regions); regions.setSpeed(speed>0?speed:13); body.setParams(request); return HKService.transparentchannel(head,body); } }