jiangping
2024-09-02 dc5b54657495c06234bb4332af0ca40c5c0b8b18
最新版本
已添加6个文件
已修改8个文件
769 ■■■■■ 文件已修改
server/db/business.platform_event.permissions.sql 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/PlatformEventController.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsStatusInfoRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformEventMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformEvent.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformEventService.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformEventServiceImpl.java 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/db/business.platform_event.permissions.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:create', '新建月台车辆进出事件推送记录表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:delete', '删除月台车辆进出事件推送记录表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:update', '修改月台车辆进出事件推送记录表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:query', '查询月台车辆进出事件推送记录表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:platformevent:exportExcel', '导出月台车辆进出事件推送记录表(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/PlatformEventController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.PlatformEvent;
import com.doumee.service.business.PlatformEventService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
@Api(tags = "月台车辆进出事件推送记录表")
@RestController
@RequestMapping("/business/platformEvent")
public class PlatformEventController extends BaseController {
    @Autowired
    private PlatformEventService platformEventService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:platformevent:create")
    public ApiResponse create(@RequestBody PlatformEvent platformEvent) {
        return ApiResponse.success(platformEventService.create(platformEvent));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:platformevent:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        platformEventService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:platformevent:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        platformEventService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:platformevent:update")
    public ApiResponse updateById(@RequestBody PlatformEvent platformEvent) {
        platformEventService.updateById(platformEvent);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:platformevent:query")
    public ApiResponse<PageData<PlatformEvent>> findPage (@RequestBody PageWrap<PlatformEvent> pageWrap) {
        return ApiResponse.success(platformEventService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:platformevent:exportExcel")
    public void exportExcel (@RequestBody PageWrap<PlatformEvent> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(PlatformEvent.class).export(platformEventService.findPage(pageWrap).getRecords(), "月台车辆进出事件推送记录表", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:platformevent:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(platformEventService.findById(id));
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java
@@ -39,5 +39,6 @@
 private Integer  speed    ; //    Number    false    é€Ÿåº¦
 private Integer  stayTime        ; //Number    false    åœç•™æ—¶é—´
 private Integer  fontSize        ; //Number    false    å­—体大小
 private Integer  fontColor        ; //Number false    å­—体颜色(1:红色,2:绿色,4:黄色,8:蓝色,16:紫色,32:青色,64:白色)
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java
@@ -10,7 +10,7 @@
    private String  srcIndex;//    String    äº‹ä»¶æºç¼–号,物理设备是资源编号    æ˜¯    64
    private String  dateTime;//
    private String  srcType;//    String    äº‹ä»¶æºç±»åž‹    æ˜¯    16
    private Integer  eventType    ;//Number    äº‹ä»¶ç±»åž‹    æ˜¯
    private String  eventType    ;//Number    äº‹ä»¶ç±»åž‹    æ˜¯
    private String  srcName;//    String    äº‹ä»¶æºåç§°    å¦    64
    private Integer   status    ;//Number    äº‹ä»¶çŠ¶æ€    æ˜¯        0-瞬时1-开始2-停止3-事件脉冲4-事件联动结果更新5-异步图片上传
    private Integer  timeout    ;//Number    è„‰å†²è¶…æ—¶æ—¶é—´    æ˜¯        å•位:秒
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsStatusInfoRequest.java
@@ -6,7 +6,7 @@
@Data
public class EventPlatformCarsStatusInfoRequest {
    private Integer HPNo;// 1,车道号
    private String HPNo;// 1,车道号
    private Integer plateScore;//: 80车牌评分
    private String motionStatus;//'leave',运动状态  enter#进入,leave#离开
    private String plateNo;//'A12345',车牌号
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformEventMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.PlatformEvent;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
public interface PlatformEventMapper extends BaseMapper<PlatformEvent> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformEvent.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,177 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
 * æœˆå°è½¦è¾†è¿›å‡ºäº‹ä»¶æŽ¨é€è®°å½•表
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
@Data
@ApiModel("月台车辆进出事件推送记录表")
@TableName("`platform_event`")
public class PlatformEvent {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "事件唯一标识,同一事件若上报多次,则上报事件的eventId相同")
    @ExcelColumn(name="事件唯一标识,同一事件若上报多次,则上报事件的eventId相同")
    private String eventId;
    @ApiModelProperty(value = "事件类型")
    @ExcelColumn(name="事件类型")
    private String eventType;
    @ApiModelProperty(value = "事件类型(data级)")
    @ExcelColumn(name="事件类型(data级)")
    private String dataEventType;
    @ApiModelProperty(value = "事件源类型,如“acsDevice”")
    @ExcelColumn(name="事件源类型,如“acsDevice”")
    private String srcType;
    @ApiModelProperty(value = "事件发生时间(设备时间")
    @ExcelColumn(name="事件发生时间(设备时间")
    private String happenTime;
    @ApiModelProperty(value = "门禁点唯一接入编码")
    @ExcelColumn(name="门禁点唯一接入编码")
    private String srcIndex;
    @ApiModelProperty(value = "门禁名称")
    @ExcelColumn(name="门禁名称")
    private String srcName;
    @ApiModelProperty(value = "事件状态,0-瞬时             1-开始             2-停止             4-事件联动结果更新             5-事件图片异步上传", example = "1")
    @ExcelColumn(name="事件状态,0-瞬时             1-开始             2-停止             4-事件联动结果更新             5-事件图片异步上传")
    private Integer status;
    @ApiModelProperty(value = "脉冲超时时间,单位:秒,瞬时事件此字段填0", example = "1")
    @ExcelColumn(name="脉冲超时时间,单位:秒,瞬时事件此字段填0")
    private Integer timeout;
    @ApiModelProperty(value = "数据类型", example = "1")
    @ExcelColumn(name="数据类型")
    private String dataType;
    @ApiModelProperty(value = "发送时间", example = "1")
    @ExcelColumn(name="发送时间")
    private String sendTime;
    @ApiModelProperty(value = "事件发生日期", example = "1")
    @ExcelColumn(name="事件发生日期")
    private String dateTime;
    @ApiModelProperty(value = "ip地址")
    @ExcelColumn(name="ip地址")
    private String ipAddress;
    @ApiModelProperty(value = "ipv6地址", example = "1")
    @ExcelColumn(name="ipv6地址")
    private String ipv6Address;
    @ApiModelProperty(value = "端口", example = "1")
    @ExcelColumn(name="端口")
    private Integer portNo;
    @ApiModelProperty(value = "协议", example = "1")
    @ExcelColumn(name="协议")
    private String protocol;
    @ApiModelProperty(value = "mac地址")
    @ExcelColumn(name="mac地址")
    private String macAddress;
    @ApiModelProperty(value = "渠道编号", example = "1")
    @ExcelColumn(name="渠道编号")
    private Integer channelId;
    @ApiModelProperty(value = "活动发送次数", example = "1")
    @ExcelColumn(name="活动发送次数")
    private Integer activePostCount;
    @ApiModelProperty(value = "事件状态", example = "1")
    @ExcelColumn(name="事件状态")
    private String eventState;
    @ApiModelProperty(value = "事件描述")
    @ExcelColumn(name="事件描述")
    private String eventDescription;
    @ApiModelProperty(value = "渠道名称", example = "1")
    @ExcelColumn(name="渠道名称")
    private String channelName;
    @ApiModelProperty(value = "设备编码", example = "1")
    @ExcelColumn(name="设备编码")
    private String deviceId;
    @ApiModelProperty(value = "车道号")
    @ExcelColumn(name="车道号")
    private String hpno;
    @ApiModelProperty(value = "运动状态  enter#进入,leave#离开")
    @ExcelColumn(name="运动状态  enter#进入,leave#离开")
    private String motionStatus;
    @ApiModelProperty(value = "车牌号", example = "1")
    @ExcelColumn(name="车牌号")
    private String plateNo;
    @ApiModelProperty(value = "车门状态  open-开门,close-关门", example = "1")
    @ExcelColumn(name="车门状态  open-开门,close-关门")
    private String vehicleDoorStatus;
    @ApiModelProperty(value = "车头车尾状态  Â front#车头,rear#车尾", example = "1")
    @ExcelColumn(name="车头车尾状态  Â front#车头,rear#车尾")
    private String stockStatus;
    @ApiModelProperty(value = "车牌评分[0-100]", example = "1")
    @ExcelColumn(name="车牌评分[0-100]")
    private Integer plateScore;
    @ApiModelProperty(value = "月台背景大图", example = "1")
    @ExcelColumn(name="月台背景大图")
    private String backgroundImageContent;
    @ApiModelProperty(value = "车牌图", example = "1")
    @ExcelColumn(name="车牌图")
    private String platePictureContent;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
@@ -50,14 +50,20 @@
    @ApiModelProperty(value = "0未完成 1已完成 2已取消", example = "1")
    @ExcelColumn(name="状态 0未完成 1已完成 2已取消")
    private Integer status;
    @ApiModelProperty(value = "上锁状态 0未上锁 1已上锁", example = "1")
    @ExcelColumn(name="上锁状态 0未上锁 1已上锁")
    private Integer lockStatus;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "行数据编码(关联platform_wms_job)", example = "1")
    @ApiModelProperty(value = "行数据编码(关联platform_job)", example = "1")
    @ExcelColumn(name="行数据编码(关联platform_wms_job)")
    private Integer jobId;
    @ApiModelProperty(value = "行数据编码(关联platform_wms_job)", example = "1")
    @ExcelColumn(name="行数据编码(关联platform_wms_job)")
    private Integer wmsJobId;
    @ApiModelProperty(value = "通知单号")
    @ExcelColumn(name="通知单号")
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformEventService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.PlatformEvent;
import java.util.List;
/**
 * æœˆå°è½¦è¾†è¿›å‡ºäº‹ä»¶æŽ¨é€è®°å½•表Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
public interface PlatformEventService {
    /**
     * åˆ›å»º
     *
     * @param platformEvent å®žä½“对象
     * @return Integer
     */
    Integer create(PlatformEvent platformEvent);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param platformEvent å®žä½“对象
     */
    void delete(PlatformEvent platformEvent);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param platformEvent å®žä½“对象
     */
    void updateById(PlatformEvent platformEvent);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param platformEvents å®žä½“集
     */
    void updateByIdInBatch(List<PlatformEvent> platformEvents);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return PlatformEvent
     */
    PlatformEvent findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param platformEvent å®žä½“对象
     * @return PlatformEvent
     */
    PlatformEvent findOne(PlatformEvent platformEvent);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param platformEvent å®žä½“对象
     * @return List<PlatformEvent>
     */
    List<PlatformEvent> findList(PlatformEvent platformEvent);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<PlatformEvent>
     */
    PageData<PlatformEvent> findPage(PageWrap<PlatformEvent> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param platformEvent å®žä½“对象
     * @return long
     */
    long count(PlatformEvent platformEvent);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformEventServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,220 @@
package com.doumee.service.business.impl;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.PlatformEventMapper;
import com.doumee.dao.business.model.PlatformEvent;
import com.doumee.service.business.PlatformEventService;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
 * æœˆå°è½¦è¾†è¿›å‡ºäº‹ä»¶æŽ¨é€è®°å½•表Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
@Service
public class PlatformEventServiceImpl implements PlatformEventService {
    @Autowired
    private PlatformEventMapper platformEventMapper;
    @Override
    public Integer create(PlatformEvent platformEvent) {
        platformEventMapper.insert(platformEvent);
        return platformEvent.getId();
    }
    @Override
    public void deleteById(Integer id) {
        platformEventMapper.deleteById(id);
    }
    @Override
    public void delete(PlatformEvent platformEvent) {
        UpdateWrapper<PlatformEvent> deleteWrapper = new UpdateWrapper<>(platformEvent);
        platformEventMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        platformEventMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(PlatformEvent platformEvent) {
        platformEventMapper.updateById(platformEvent);
    }
    @Override
    public void updateByIdInBatch(List<PlatformEvent> platformEvents) {
        if (CollectionUtils.isEmpty(platformEvents)) {
            return;
        }
        for (PlatformEvent platformEvent: platformEvents) {
            this.updateById(platformEvent);
        }
    }
    @Override
    public PlatformEvent findById(Integer id) {
        return platformEventMapper.selectById(id);
    }
    @Override
    public PlatformEvent findOne(PlatformEvent platformEvent) {
        QueryWrapper<PlatformEvent> wrapper = new QueryWrapper<>(platformEvent);
        return platformEventMapper.selectOne(wrapper);
    }
    @Override
    public List<PlatformEvent> findList(PlatformEvent platformEvent) {
        QueryWrapper<PlatformEvent> wrapper = new QueryWrapper<>(platformEvent);
        return platformEventMapper.selectList(wrapper);
    }
    @Override
    public PageData<PlatformEvent> findPage(PageWrap<PlatformEvent> pageWrap) {
        IPage<PlatformEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<PlatformEvent> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(PlatformEvent::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(PlatformEvent::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(PlatformEvent::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(PlatformEvent::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getEventId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventId, pageWrap.getModel().getEventId());
        }
        if (pageWrap.getModel().getEventType() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventType, pageWrap.getModel().getEventType());
        }
        if (pageWrap.getModel().getSrcType() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSrcType, pageWrap.getModel().getSrcType());
        }
        if (pageWrap.getModel().getHappenTime() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getHappenTime, pageWrap.getModel().getHappenTime());
        }
        if (pageWrap.getModel().getSrcIndex() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSrcIndex, pageWrap.getModel().getSrcIndex());
        }
        if (pageWrap.getModel().getSrcName() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSrcName, pageWrap.getModel().getSrcName());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getTimeout() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getTimeout, pageWrap.getModel().getTimeout());
        }
        if (pageWrap.getModel().getDataType() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getDataType, pageWrap.getModel().getDataType());
        }
        if (pageWrap.getModel().getSendTime() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSendTime, pageWrap.getModel().getSendTime());
        }
        if (pageWrap.getModel().getDateTime() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getDateTime, pageWrap.getModel().getDateTime());
        }
        if (pageWrap.getModel().getIpAddress() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getIpAddress, pageWrap.getModel().getIpAddress());
        }
        if (pageWrap.getModel().getIpv6Address() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getIpv6Address, pageWrap.getModel().getIpv6Address());
        }
        if (pageWrap.getModel().getPortNo() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPortNo, pageWrap.getModel().getPortNo());
        }
        if (pageWrap.getModel().getProtocol() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getProtocol, pageWrap.getModel().getProtocol());
        }
        if (pageWrap.getModel().getMacAddress() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getMacAddress, pageWrap.getModel().getMacAddress());
        }
        if (pageWrap.getModel().getChannelId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getChannelId, pageWrap.getModel().getChannelId());
        }
        if (pageWrap.getModel().getActivePostCount() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getActivePostCount, pageWrap.getModel().getActivePostCount());
        }
        if (pageWrap.getModel().getEventState() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventState, pageWrap.getModel().getEventState());
        }
        if (pageWrap.getModel().getEventDescription() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventDescription, pageWrap.getModel().getEventDescription());
        }
        if (pageWrap.getModel().getChannelName() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getChannelName, pageWrap.getModel().getChannelName());
        }
        if (pageWrap.getModel().getDeviceId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getDeviceId, pageWrap.getModel().getDeviceId());
        }
        if (pageWrap.getModel().getHpno() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getHpno, pageWrap.getModel().getHpno());
        }
        if (pageWrap.getModel().getMotionStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getMotionStatus, pageWrap.getModel().getMotionStatus());
        }
        if (pageWrap.getModel().getPlateNo() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPlateNo, pageWrap.getModel().getPlateNo());
        }
        if (pageWrap.getModel().getVehicleDoorStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getVehicleDoorStatus, pageWrap.getModel().getVehicleDoorStatus());
        }
        if (pageWrap.getModel().getStockStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getStockStatus, pageWrap.getModel().getStockStatus());
        }
        if (pageWrap.getModel().getPlateScore() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPlateScore, pageWrap.getModel().getPlateScore());
        }
        if (pageWrap.getModel().getBackgroundImageContent() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getBackgroundImageContent, pageWrap.getModel().getBackgroundImageContent());
        }
        if (pageWrap.getModel().getPlatePictureContent() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPlatePictureContent, pageWrap.getModel().getPlatePictureContent());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(platformEventMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(PlatformEvent platformEvent) {
        QueryWrapper<PlatformEvent> wrapper = new QueryWrapper<>(platformEvent);
        return platformEventMapper.selectCount(wrapper);
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsDetailServiceImpl.java
@@ -99,6 +99,7 @@
                .le(pageWrap.getModel().getEditDate() != null, PlatformWmsDetail::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
                .eq(pageWrap.getModel().getIsdeleted() != null, PlatformWmsDetail::getIsdeleted, pageWrap.getModel().getIsdeleted())
                .eq(pageWrap.getModel().getRemark() != null, PlatformWmsDetail::getRemark, pageWrap.getModel().getRemark())
                .eq(pageWrap.getModel().getWmsJobId() != null, PlatformWmsDetail::getWmsJobId, pageWrap.getModel().getWmsJobId())
                .eq(pageWrap.getModel().getJobId() != null, PlatformWmsDetail::getJobId, pageWrap.getModel().getJobId())
                .eq(pageWrap.getModel().getIocode() != null, PlatformWmsDetail::getIocode, pageWrap.getModel().getIocode())
                .eq(pageWrap.getModel().getMaterialName() != null, PlatformWmsDetail::getMaterialName, pageWrap.getModel().getMaterialName())
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -5,12 +5,17 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.request.CustomBroadcastRequest;
import com.doumee.core.haikang.model.param.request.TransparentChannelBodyRequest;
import com.doumee.core.haikang.model.param.request.TransparentChannelHeadRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsInfoRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest;
import com.doumee.core.haikang.model.param.request.event.parks.*;
import com.doumee.core.haikang.model.param.request.event.visit.*;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.DateUtil;
@@ -28,6 +33,8 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yaml.snakeyaml.scanner.Constant;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
@@ -69,7 +76,13 @@
    private PlatformMapper platformMapper;
    @Autowired
    private PlatformDeviceMapper platformDeviceMapper;
    @Autowired
    private PlatformJobMapper platformJobMapper;
    @Autowired
    private PlatformWmsDetailMapper platformWmsDetailMapper;
    @Autowired
    private PlatformEventMapper platformEventMapper;
    @Autowired
    private PlatformLogMapper platformLogMapper;
    /**
     * æµ·åº·é—¨ç¦äº‹ä»¶æŽ¨é€
@@ -844,6 +857,7 @@
            }
            //门禁事件集合
            List<EventPlatformCarsInfoRequest> events  = param.getParams().getEvents();
            List<PlatformEvent> eventList = new ArrayList<>();
            for(EventPlatformCarsInfoRequest request : events){
                if( request.getData() ==null ||  request.getData().size()==0){
                    continue;
@@ -863,6 +877,7 @@
                    }
                    //各车道车辆状态
                    for(EventPlatformCarsStatusInfoRequest status : data.getHPVehicleStatus()){
                        eventList.add(initPlatformEventModel(request,data,status));//封装事件(已月台通道为维度)
                        if(StringUtils.isBlank(status.getPlateNo())){
                            continue;//如果车辆信息为空,不处理直接跳过
                        }
@@ -879,25 +894,39 @@
                            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;//其他状态不处理,跳过
                        }
                        platformJobMapper.updateById(update);//更新作业状态
                        dealPlatformJobLogBiz(update,status);//记录作业日志
                    }
                    break;//只处理第一个数据状态
                }
            }
            if(eventList.size()>0){
                //生成事件
                platformEventMapper.insert(eventList);
            }
            result = "成功";
            log.error("【海康月台车辆状态事件推送】========成功=======");
@@ -910,12 +939,53 @@
        return  null;
    }
    private PlatformEvent initPlatformEventModel(EventPlatformCarsInfoRequest request, EventPlatformCarsDataRequest data, EventPlatformCarsStatusInfoRequest status) {
        PlatformEvent model = new PlatformEvent();
        model.setCreateDate(new Date());
        model.setIsdeleted(Constants.ZERO);
        model.setEditDate(model.getCreateDate());
        model.setEventId(request.getEventId());
//        model.setRemark(JSONObject.toJSONString(request));
        model.setEventType(request.getEventType());
        model.setDataEventType(data.getEventType());
        model.setHappenTime(request.getHappenTime());
        model.setSrcIndex(request.getSrcIndex());
        model.setSrcType(request.getSrcType());
        model.setStatus(request.getStatus());
        model.setTimeout(request.getTimeout());
        model.setDateTime(data.getDateTime());
        model.setDataType(data.getDataType());
        model.setSendTime(data.getSendTime());
        model.setIpAddress(data.getIpAddress());
        model.setIpv6Address(data.getIpv6Address());
        model.setPortNo(data.getPortNo());
        model.setMacAddress(data.getMacAddress());
        model.setProtocol(data.getProtocol());
        model.setChannelId(data.getChannelID());
        model.setChannelName(data.getChannelName());
        model.setEventState(data.getEventState());
        model.setActivePostCount(data.getActivePostCount());
        model.setEventDescription(data.getEventDescription());
        model.setDeviceId(data.getDeviceID());
        model.setHpno(status.getHPNo());
        model.setMotionStatus(status.getMotionStatus());
        model.setPlateNo(status.getPlateNo());
        model.setVehicleDoorStatus(status.getVehicleDoorStatus());
        model.setStockStatus(status.getStockStatus());
        model.setBackgroundImageContent(status.getBackgroundImage()!=null?status.getBackgroundImage().getResourcesContent():null);
        model.setPlateScore(status.getPlateScore());
        model.setPlatePictureContent(status.getPlatePicture()!=null?status.getPlatePicture().getResourcesContent():null);
        return model;
    }
    /**
     * è®°å½•月台作业日志
     * @param job
     * @param status
     */
    @Transactional
    private void dealPlatformJobLogBiz(PlatformJob job,EventPlatformCarsStatusInfoRequest status) {
        platformJobMapper.updateById(job);//更新作业状态
        PlatformLog log = new PlatformLog();
        log.setIsdeleted(Constants.ZERO);
        log.setCreateDate(new Date());
@@ -924,21 +994,27 @@
        log.setObjId(job.getId()+"");
        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
            //如果是作业完成
//            log.setObjType(Constants.LOg);
            log.setObjType(Constants.PlatformJobLogType.DONE.getKey());
            log.setTitle(Constants.PlatformJobLogType.DONE.getName());
            log.setContent(Constants.PlatformJobLogType.DONE.getInfo());
            //查询最后一次开始作业的日志
            PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
                    .eq(PlatformLog::getIsdeleted,Constants.ZERO)
                    .eq(PlatformLog::getObjType,Constants.PlatformJobStatus.WORKING.getKey())
                    .eq(PlatformLog::getJobId,job.getJobId())
                    .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
                    .eq(PlatformLog::getJobId,job.getId())
                    .orderByDesc(PlatformLog::getCreateDate)
                    .last(" limit 1");
                    .last(" limit 1"));
            String v = Long.toString(job.getDoneDate().getTime() - lastBeginPlatform.getCreateDate().getTime() / 1000) ;
            lastBeginPlatform.setParam3(v);
            lastBeginPlatform.setParam2(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
            platformLogMapper.updateById(lastBeginPlatform);//更新上一次作业的完成时间和作业时长
        }else{
            //如果是作业中
            log.setParam1(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
//            log.setObjType(Constants.Jobl);
            log.setObjType(Constants.PlatformJobLogType.WORKING.getKey());
            log.setTitle(Constants.PlatformJobLogType.WORKING.getName());
            log.setContent(Constants.PlatformJobLogType.WORKING.getInfo());
            log.setParam1(DateUtil.getDate(log.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
        }
        platformLogMapper.insert(log);
    }
@@ -949,5 +1025,53 @@
     */
    private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) {
        //TODO-----------------处理车辆进入错误月台业务逻辑
        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()+"停错月台了";
        List<String> broadcastList = new ArrayList<>();
        for(PlatformDevice device : deviceList){
            if(StringUtils.isNotBlank(device.getHkId())){
                continue;
            }
            if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是LED
                TransparentChannelBodyRequest request = new TransparentChannelBodyRequest();
                TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
                head.setAbility("cld");//固定值
                head.setTreatyType("haixuan_led_net");//固定值
                head.setDeviceIndexCode(device.getHkId());
                request.setMethod("ControlLedGereral");//固定值
                request.setIndexCode(device.getHkId());
                request.setActionType(0);
                request.setContent(content);
                request.setOperationType(219);//固定值
                request.setRegionNo(1);
                request.setRegionType(14);
                request.setFontColor(1);
                request.setCircleTimes(1);//循环次数
                request.setFontSize(16);//
                request.setStayTime(1);//单位??
                HKService.transparentchannel(head,request);
            }else  if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是广播点
                broadcastList.add(device.getHkId());
            }
        }
        if(broadcastList.size()>0){
            CustomBroadcastRequest request = new CustomBroadcastRequest();
            request.setAudioPointIndexCode(broadcastList);
            request.setPlayDuration(60);//单位秒
            request.setBroadCastMode("tts");
            request.setPriority(15);
            request.setState(1);//播放/停止标识 1-播放,0-停止
            request.setPlayTtsContent(content);
            HKService.customBroadcast(request);
        }
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncOrgUserFromSelfServiceImpl.java
@@ -289,6 +289,7 @@
                c.setFaceId(model.getPersonPhoto().get(0).getPersonPhotoIndexCode());
                c.setFaceImg(HKConstants.IMG_INDEX+model.getPersonPhoto().get(0).getPicUri());
                c.setFaceServerIndexCode(model.getPersonPhoto().get(0).getServerIndexCode());
                c.setFaceStatus(Constants.ONE);
            }
            newList.add(c);
        }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java
@@ -87,7 +87,8 @@
                    entity.setCreateDate(new Date());
                    entity.setIsdeleted(Constants.ZERO);
                    entity.setIocode(d.getIoCode());
                    entity.setJobId(job.getId());
                    entity.setJobId(job.getJobId());
                    entity.setWmsJobId(job.getId());
                    entity.setIoQty(d.getIoQty());
                    entity.setStatus(Constants.ZERO);
                    entity.setRate(d.getRate());
@@ -222,7 +223,7 @@
                job.setPlateNumber(param.getPlateNumber());
                job.setType(Constants.ONE);
                job.setIoCreatedate(param.getCreateDate());
                job.setJobId(model.getId());
                job.setJobId(job.getId());
                job.setDriverPhone(param.getDriverPhone());
                platformWmsJobMapper.insert(job);
                jobList.add(model);
@@ -233,7 +234,8 @@
                    entity.setCreateDate(new Date());
                    entity.setIsdeleted(Constants.ZERO);
                    entity.setIocode(d.getIoCode());
                    entity.setJobId(job.getId());
                    entity.setJobId(job.getJobId());
                    entity.setWmsJobId(job.getId());
                    entity.setIoQty(d.getIoQty());
                    entity.setStatus(Constants.ZERO);
                    entity.setRate(d.getRate());