liukangdong
2024-10-09 150b2456609e99e51d33655a48b777b8ee8d4710
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加3个文件
已修改12个文件
531 ■■■■ 文件已修改
admin/src/api/business/platformEvent.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/platformEvent.vue 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformDeviceCloudController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformEventCloudController.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformCameraInfoResponse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformEventMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformEvent.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformEventServiceImpl.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncLoginAuthServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/platformEvent.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
import request from '../../utils/request'
// æŸ¥è¯¢
export function fetchList (data) {
  return request.post('/visitsAdmin/cloudService/business/platformEvent/page', data, {
    trim: true
  })
}
// å¯¼å‡ºExcel
export function exportExcel (data) {
  return request.post('/visitsAdmin/cloudService/business/platformEvent/exportExcel', data, {
    trim: true,
    download: true
  })
}
admin/src/views/business/platformEvent.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
<template>
    <TableLayout :permissions="['business:interfacelog:query']">
        <!-- æœç´¢è¡¨å• -->
        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
          <el-form-item label="" prop="platformName">
            <el-input v-model="searchForm.platformName" placeholder="请输入月台名称" @keypress.enter.native="search"></el-input>
          </el-form-item>
          <el-form-item label="" prop="channelName">
            <el-input v-model="searchForm.channelName" placeholder="请输入监控点名称" @keypress.enter.native="search"></el-input>
          </el-form-item>
          <el-form-item label="" prop="plateNo">
            <el-input v-model="searchForm.plateNo" placeholder="请输入车牌号" @keypress.enter.native="search"></el-input>
          </el-form-item>
          <el-form-item label="" prop="eventType">
            <el-select v-model="searchForm.motionStatus" placeholder="请选择进出类型">
              <el-option label="离开" value="leave"></el-option>
              <el-option label="进入" value="enter"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="起止时间" prop="startDate">
                <el-date-picker
                    @change="seleTime"
                    v-model="time"
                    type="datetimerange"
                    format="yyyy-MM-dd HH:mm:ss"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    range-separator="至"
                    start-placeholder="开始时间"
                    end-placeholder="结束时间">
                </el-date-picker>
            </el-form-item>
            <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
                <el-radio-button label="0">当天</el-radio-button>
                <el-radio-button label="1">近7天</el-radio-button>
                <el-radio-button label="2">近30天</el-radio-button>
            </el-radio-group>
            <section>
                <el-button type="primary" @click="search">搜索</el-button>
                <el-button @click="reset">重置</el-button>
            </section>
        </el-form>
        <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
        <template v-slot:table-wrap>
            <el-table
                v-loading="isWorking.search"
                :data="tableData.list"
                stripe
            >
                <el-table-column prop="platformName" label="月台名称" min-width="180px"></el-table-column>
                <el-table-column prop="channelName" label="监控点名称" min-width="180px"></el-table-column>
                <el-table-column prop="plateNo" label="车牌号" min-width="180px"></el-table-column>
                <el-table-column   label="车辆进出类型" min-width="180px">
                  <template slot-scope="{row}">
                    <span v-if="row.motionStatus == 'enter'">进入span>
                    <span v-if="row.motionStatus == 'leave'">离开</span>
                    <span v-if="row.motionStatus != 'leave' && row.motionStatus != 'enter'">{{ row.motionStatus }}</span>
                  </template>
                </el-table-column>
                <el-table-column   label="前后标识" min-width="180px">
                  <template slot-scope="{row}">
                    <span v-if="row.stockStatus == 'rear'">车尾</span>
                    <span v-if="row.stockStatus == 'front'">车头</span>
                    <span v-if="row.stockStatus != 'rear' && row.stockStatus != 'front'">{{ row.stockStatus }}</span>
                  </template>
                </el-table-column>
                <el-table-column prop="stockStatus" label="车门状态" min-width="180px"></el-table-column>
                <el-table-column label="车门状态" min-width="100px">
                    <template slot-scope="{row}">
                        <span v-if="row.vehicleDoorStatus == 'open'">开门</span>
                        <span v-if="row.vehicleDoorStatus == 'close'">关门</span>
                        <span v-if="row.vehicleDoorStatus != 'open' && row.vehicleDoorStatus != 'close'">{{ row.vehicleDoorStatus }}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="deviceId" label="设备编码" min-width="150px"></el-table-column>
                <el-table-column prop="ipAddress" label="IP地址" min-width="100px"></el-table-column>
                <el-table-column prop="portNo" label="端口" min-width="100px"></el-table-column>
                <el-table-column fixed="right" label="抓拍图" min-width="100px">
                  <template slot-scope="{row}">
                    <el-image v-if="row.backgroundImageDown" style="width: 60px; height: 60px" :src="row.backgroundImageDown"
                              :preview-src-list="[row.backgroundImageDown]">
                    </el-image>
                  </template>
                </el-table-column>
                <el-table-column prop="createDate" label="创建时间" min-width="100px"></el-table-column>
            </el-table>
            <pagination
                @size-change="handleSizeChange"
                @current-change="handlePageChange"
                :pagination="tableData.pagination"
            >
            </pagination>
        </template>
    </TableLayout>
</template>
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import { timeForMat } from '@/utils/util'
export default {
  name: 'platformEvent',
  extends: BaseTable,
  components: { TableLayout, Pagination },
  data () {
    return {
      // æœç´¢
      searchForm: {
        plateNo: '',
        motionStatus: '',
        channelName: '',
        platformName: '',
        endDate: '',
        startDate: '',
        radio: '0'
      },
      time: []
    }
  },
  created () {
    this.config({
      module: '月台车辆状态事件交互记录',
      api: '/business/platformEvent',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.changeRadio('0')
  },
  methods: {
    changeRadio (e) {
      if (e === '0') {
        this.searchForm.startDate = timeForMat(0)[0]
        this.searchForm.endDate = timeForMat(0)[1]
        this.time = timeForMat(0)
      } else if (e === '1') {
        this.searchForm.startDate = timeForMat(6)[0]
        this.searchForm.endDate = timeForMat(6)[1]
        this.time = timeForMat(6)
      } else if (e === '2') {
        this.searchForm.startDate = timeForMat(29)[0]
        this.searchForm.endDate = timeForMat(29)[1]
        this.time = timeForMat(29)
      }
      this.search()
    },
    seleTime (e) {
      this.searchForm.startDate = e[0]
      this.searchForm.endDate = e[1]
      this.searchForm.radio = null
      this.search()
    },
    reset () {
      this.$refs.searchForm.resetFields()
      this.searchForm.startDate = ''
      this.searchForm.endDate = ''
      this.time = []
      this.search()
    }
  }
}
</script>
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -71,6 +71,7 @@
    // è®¿å®¢æ¥è®¿é…ç½®
    public static final String VISIT_CONFIG = "VISIT_CONFIG";
    public static final String MEMBER_IMG = "MEMBER_IMG";
    public static final String PLATFORM_EVENT_IMG = "PLATFORM_EVENT_IMG";
    public static final String VISIT_NOTICE = "VISIT_NOTICE";
    //健康证配置
    public static final String LW_HEALTH_CARD = "LW_HEALTH_CARD";
server/system_service/src/main/java/com/doumee/core/utils/HttpsUtil.java
@@ -1,5 +1,7 @@
package com.doumee.core.utils;
import org.springframework.http.HttpMethod;
import javax.net.ssl.*;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
@@ -87,6 +89,40 @@
        }
        return null;
    }
    public static InputStream connectionInputsteam(String url,String method,String data,String contentType ){
        HttpURLConnection connection = null;
        try {
            URL _url = new URL(url);
            connection = (HttpURLConnection) _url.openConnection();
            connection.setRequestMethod(method);
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setUseCaches(false);
            if(contentType != null){
                connection.setRequestProperty("Content-Type", contentType);
            }
            connection.connect();
            if(data != null){
                OutputStream outputStream = connection.getOutputStream();
                outputStream.write(data.getBytes("utf-8"));
                outputStream.close();
            }
            int responseCode = connection.getResponseCode();
            if (responseCode == HttpsURLConnection.HTTP_OK) {
               return  connection.getInputStream();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(connection != null){
                connection.disconnect();
            }
        }
        return null;
    }
    public static String connectionHttp(String url,String method,String data,String contentType ){
        HttpURLConnection connection = null;
        try {
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformDeviceCloudController.java
@@ -1,21 +1,21 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
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.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.PlatformDevice;
import com.doumee.service.business.PlatformDeviceService;
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 javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
@@ -34,14 +34,14 @@
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:platformdevice:create")
    @CloudRequiredPermission("business:platformdevice:create")
    public ApiResponse create(@RequestBody PlatformDevice platformDevice) {
        return ApiResponse.success(platformDeviceService.create(platformDevice));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:platformdevice:delete")
    @CloudRequiredPermission("business:platformdevice:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        platformDeviceService.deleteById(id);
        return ApiResponse.success(null);
@@ -49,7 +49,7 @@
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:platformdevice:delete")
    @CloudRequiredPermission("business:platformdevice:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
@@ -62,30 +62,30 @@
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:platformdevice:update")
    public ApiResponse updateById(@RequestBody PlatformDevice platformDevice) {
    @CloudRequiredPermission("business:platformdevice:update")
    public ApiResponse updateById(@RequestBody PlatformDevice platformDevice,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        platformDeviceService.updateById(platformDevice);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:platformdevice:query")
    public ApiResponse<PageData<PlatformDevice>> findPage (@RequestBody PageWrap<PlatformDevice> pageWrap) {
    @CloudRequiredPermission("business:platformdevice:query")
    public ApiResponse<PageData<PlatformDevice>> findPage (@RequestBody PageWrap<PlatformDevice> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformDeviceService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:platformdevice:exportExcel")
    public void exportExcel (@RequestBody PageWrap<PlatformDevice> pageWrap, HttpServletResponse response) {
    @CloudRequiredPermission("business:platformdevice:exportExcel")
    public void exportExcel (@RequestBody PageWrap<PlatformDevice> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ExcelExporter.build(PlatformDevice.class).export(platformDeviceService.findPage(pageWrap).getRecords(), "月台_关联监控点LED和广播信息表", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:platformdevice:query")
    public ApiResponse findById(@PathVariable Integer id) {
    @CloudRequiredPermission("business:platformdevice:query")
    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformDeviceService.findById(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformEventCloudController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
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.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
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.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(Constants.CLOUD_SERVICE_URL_INDEX+"/business//platformEvent")
public class PlatformEventCloudController extends BaseController {
    @Autowired
    private PlatformEventService platformEventService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @CloudRequiredPermission("business:platformevent:create")
    public ApiResponse create(@RequestBody PlatformEvent platformEvent,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformEventService.create(platformEvent));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:platformevent:delete")
    public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        platformEventService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @CloudRequiredPermission("business:platformevent:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        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")
    @CloudRequiredPermission("business:platformevent:update")
    public ApiResponse updateById(@RequestBody PlatformEvent platformEvent,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        platformEventService.updateById(platformEvent);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @CloudRequiredPermission("business:platformevent:query")
    public ApiResponse<PageData<PlatformEvent>> findPage (@RequestBody PageWrap<PlatformEvent> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformEventService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:platformevent:exportExcel")
    public void exportExcel (@RequestBody PageWrap<PlatformEvent> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ExcelExporter.build(PlatformEvent.class).export(platformEventService.findPage(pageWrap).getRecords(), "月台车辆进出事件推送记录表", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:platformevent:query")
    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformEventService.findById(id));
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformCameraInfoResponse.java
@@ -6,6 +6,6 @@
public class PlatformCameraInfoResponse {
 private String  cameraIdompan;//    String    false    ç›‘控点ID
 private String  cameraId;//    String    false    ç›‘控点ID
 private String  cameraName    ;//String    false    ç›‘控点名称
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformEventMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.PlatformEvent;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/28 17:24
 */
public interface PlatformEventMapper extends BaseMapper<PlatformEvent> {
public interface PlatformEventMapper extends MPJBaseMapper<PlatformEvent> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformEvent.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -46,6 +47,9 @@
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "月台编码,关联platform表", example = "1")
    @ExcelColumn(name="月台编码,关联platform表")
    private Integer platformId;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
@@ -158,8 +162,8 @@
    @ExcelColumn(name="车门状态  open-开门,close-关门")
    private String vehicleDoorStatus;
    @ApiModelProperty(value = "车头车尾状态  Â front#车头,rear#车尾", example = "1")
    @ExcelColumn(name="车头车尾状态  Â front#车头,rear#车尾")
    @ApiModelProperty(value = "车头车尾状态front#车头,rear#车尾", example = "1")
    @ExcelColumn(name="车头车尾状态front#车头,rear#车尾")
    private String stockStatus;
    @ApiModelProperty(value = "车牌评分[0-100]", example = "1")
@@ -173,5 +177,21 @@
    @ApiModelProperty(value = "车牌图", example = "1")
    @ExcelColumn(name="车牌图")
    private String platePictureContent;
    @ApiModelProperty(value = "月台背景大图本地下载", example = "1")
    @ExcelColumn(name="月台背景大图本地下载")
    private String backgroundImageDown;
    @ApiModelProperty(value = "车牌图本地下载", example = "1")
    @ExcelColumn(name="车牌图本地下载")
    private String platePictureDown;
    @ApiModelProperty(value = "月台名稱", example = "1")
    @TableField(exist = false)
    private String  platformName;
    @ApiModelProperty(value = "开始时间")
    @TableField(exist = false)
    private String startDate;
    @ApiModelProperty(value = "结束时间")
    @TableField(exist = false)
    private String endDate;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -154,6 +154,7 @@
            }
        }catch (Exception e){
            //如果发生异常,删除已经创建的人员信息
            e.printStackTrace();
            deleteHkUserBiz(new String[]{insert.getHkId()});
            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,员工信息新建失败,请稍后重试!");
        }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformEventServiceImpl.java
@@ -1,20 +1,27 @@
package com.doumee.service.business.impl;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.PlatformEventMapper;
import com.doumee.dao.business.model.Empower;
import com.doumee.dao.business.model.Platform;
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 com.github.yulichang.wrapper.MPJLambdaWrapper;
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.List;
import java.util.Objects;
/**
 * æœˆå°è½¦è¾†è¿›å‡ºäº‹ä»¶æŽ¨é€è®°å½•表Service实现
@@ -24,6 +31,8 @@
@Service
public class PlatformEventServiceImpl implements PlatformEventService {
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private PlatformEventMapper platformEventMapper;
@@ -87,129 +96,139 @@
    @Override
    public PageData<PlatformEvent> findPage(PageWrap<PlatformEvent> pageWrap) {
        IPage<PlatformEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<PlatformEvent> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<PlatformEvent> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(PlatformEvent.class)
                .selectAs(Platform::getName,PlatformEvent::getPlatformName)
                .leftJoin(Platform.class, Platform::getId,PlatformEvent::getPlatformId);
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getId, pageWrap.getModel().getId());
            queryWrapper.eq(PlatformEvent::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getCreator, pageWrap.getModel().getCreator());
            queryWrapper.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()));
            queryWrapper.ge(PlatformEvent::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(PlatformEvent::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEditor, pageWrap.getModel().getEditor());
            queryWrapper.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()));
            queryWrapper.ge(PlatformEvent::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(PlatformEvent::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getIsdeleted, pageWrap.getModel().getIsdeleted());
            queryWrapper.eq(PlatformEvent::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getRemark, pageWrap.getModel().getRemark());
            queryWrapper.eq(PlatformEvent::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getEventId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventId, pageWrap.getModel().getEventId());
            queryWrapper.eq(PlatformEvent::getEventId, pageWrap.getModel().getEventId());
        }
        if (pageWrap.getModel().getEventType() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventType, pageWrap.getModel().getEventType());
            queryWrapper.eq(PlatformEvent::getEventType, pageWrap.getModel().getEventType());
        }
        if (pageWrap.getModel().getSrcType() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSrcType, pageWrap.getModel().getSrcType());
            queryWrapper.eq(PlatformEvent::getSrcType, pageWrap.getModel().getSrcType());
        }
        if (pageWrap.getModel().getHappenTime() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getHappenTime, pageWrap.getModel().getHappenTime());
            queryWrapper.eq(PlatformEvent::getHappenTime, pageWrap.getModel().getHappenTime());
        }
        if (pageWrap.getModel().getSrcIndex() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSrcIndex, pageWrap.getModel().getSrcIndex());
            queryWrapper.eq(PlatformEvent::getSrcIndex, pageWrap.getModel().getSrcIndex());
        }
        if (pageWrap.getModel().getSrcName() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSrcName, pageWrap.getModel().getSrcName());
            queryWrapper.eq(PlatformEvent::getSrcName, pageWrap.getModel().getSrcName());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getStatus, pageWrap.getModel().getStatus());
            queryWrapper.eq(PlatformEvent::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getTimeout() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getTimeout, pageWrap.getModel().getTimeout());
            queryWrapper.eq(PlatformEvent::getTimeout, pageWrap.getModel().getTimeout());
        }
        if (pageWrap.getModel().getDataType() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getDataType, pageWrap.getModel().getDataType());
            queryWrapper.eq(PlatformEvent::getDataType, pageWrap.getModel().getDataType());
        }
        if (pageWrap.getModel().getSendTime() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getSendTime, pageWrap.getModel().getSendTime());
            queryWrapper.eq(PlatformEvent::getSendTime, pageWrap.getModel().getSendTime());
        }
        if (pageWrap.getModel().getDateTime() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getDateTime, pageWrap.getModel().getDateTime());
            queryWrapper.eq(PlatformEvent::getDateTime, pageWrap.getModel().getDateTime());
        }
        if (pageWrap.getModel().getIpAddress() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getIpAddress, pageWrap.getModel().getIpAddress());
            queryWrapper.eq(PlatformEvent::getIpAddress, pageWrap.getModel().getIpAddress());
        }
        if (pageWrap.getModel().getIpv6Address() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getIpv6Address, pageWrap.getModel().getIpv6Address());
            queryWrapper.eq(PlatformEvent::getIpv6Address, pageWrap.getModel().getIpv6Address());
        }
        if (pageWrap.getModel().getPortNo() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPortNo, pageWrap.getModel().getPortNo());
            queryWrapper.eq(PlatformEvent::getPortNo, pageWrap.getModel().getPortNo());
        }
        if (pageWrap.getModel().getProtocol() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getProtocol, pageWrap.getModel().getProtocol());
            queryWrapper.eq(PlatformEvent::getProtocol, pageWrap.getModel().getProtocol());
        }
        if (pageWrap.getModel().getMacAddress() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getMacAddress, pageWrap.getModel().getMacAddress());
            queryWrapper.eq(PlatformEvent::getMacAddress, pageWrap.getModel().getMacAddress());
        }
        if (pageWrap.getModel().getChannelId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getChannelId, pageWrap.getModel().getChannelId());
            queryWrapper.eq(PlatformEvent::getChannelId, pageWrap.getModel().getChannelId());
        }
        if (pageWrap.getModel().getActivePostCount() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getActivePostCount, pageWrap.getModel().getActivePostCount());
            queryWrapper.eq(PlatformEvent::getActivePostCount, pageWrap.getModel().getActivePostCount());
        }
        if (pageWrap.getModel().getEventState() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventState, pageWrap.getModel().getEventState());
            queryWrapper.eq(PlatformEvent::getEventState, pageWrap.getModel().getEventState());
        }
        if (pageWrap.getModel().getEventDescription() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getEventDescription, pageWrap.getModel().getEventDescription());
            queryWrapper.eq(PlatformEvent::getEventDescription, pageWrap.getModel().getEventDescription());
        }
        if (pageWrap.getModel().getChannelName() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getChannelName, pageWrap.getModel().getChannelName());
            queryWrapper.like(PlatformEvent::getChannelName, pageWrap.getModel().getChannelName());
        }
        if (pageWrap.getModel().getDeviceId() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getDeviceId, pageWrap.getModel().getDeviceId());
            queryWrapper.eq(PlatformEvent::getDeviceId, pageWrap.getModel().getDeviceId());
        }
        if (pageWrap.getModel().getHpno() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getHpno, pageWrap.getModel().getHpno());
            queryWrapper.eq(PlatformEvent::getHpno, pageWrap.getModel().getHpno());
        }
        if (pageWrap.getModel().getMotionStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getMotionStatus, pageWrap.getModel().getMotionStatus());
            queryWrapper.eq(PlatformEvent::getMotionStatus, pageWrap.getModel().getMotionStatus());
        }
        if (pageWrap.getModel().getPlateNo() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPlateNo, pageWrap.getModel().getPlateNo());
            queryWrapper.like(PlatformEvent::getPlateNo, pageWrap.getModel().getPlateNo());
        }
        if (pageWrap.getModel().getVehicleDoorStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getVehicleDoorStatus, pageWrap.getModel().getVehicleDoorStatus());
            queryWrapper.eq(PlatformEvent::getVehicleDoorStatus, pageWrap.getModel().getVehicleDoorStatus());
        }
        if (pageWrap.getModel().getStockStatus() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getStockStatus, pageWrap.getModel().getStockStatus());
            queryWrapper.eq(PlatformEvent::getStockStatus, pageWrap.getModel().getStockStatus());
        }
        if (pageWrap.getModel().getPlateScore() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPlateScore, pageWrap.getModel().getPlateScore());
            queryWrapper.eq(PlatformEvent::getPlateScore, pageWrap.getModel().getPlateScore());
        }
        if (pageWrap.getModel().getBackgroundImageContent() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getBackgroundImageContent, pageWrap.getModel().getBackgroundImageContent());
            queryWrapper.eq(PlatformEvent::getBackgroundImageContent, pageWrap.getModel().getBackgroundImageContent());
        }
        if (pageWrap.getModel().getPlatePictureContent() != null) {
            queryWrapper.lambda().eq(PlatformEvent::getPlatePictureContent, pageWrap.getModel().getPlatePictureContent());
            queryWrapper.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());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getPlatformName()), Platform::getName,pageWrap.getModel().getPlatformName());
        queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getStartDate()), PlatformEvent::getCreateDate,pageWrap.getModel().getStartDate());
        queryWrapper.le(Objects.nonNull(pageWrap.getModel().getEndDate()),PlatformEvent::getCreateDate,pageWrap.getModel().getEndDate());
        queryWrapper.orderByDesc(PlatformEvent::getCreateDate);
        PageData<PlatformEvent> result = PageData.from(platformEventMapper.selectJoinPage(page, PlatformEvent.class,queryWrapper));
        if(result!=null && result.getRecords()!=null){
            String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
            for(PlatformEvent model : result.getRecords()){
                if(StringUtils.isNotBlank(model.getBackgroundImageContent())){
                    model.setBackgroundImageDown(prefixUrl + model.getBackgroundImageContent());
                }
            }
        }
        return PageData.from(platformEventMapper.selectPage(page, queryWrapper));
        return  result;
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
@@ -8,6 +8,7 @@
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.FtpUtil;
import com.doumee.core.utils.HttpsUtil;
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
import lombok.extern.slf4j.Slf4j;
@@ -34,6 +35,8 @@
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private PlatformEventMapper platformEventMapper;
    @Autowired
    private DeviceEventMapper deviceEventMapper;
    @Autowired
    private VisitEventMapper visitEventMapper;
@@ -54,6 +57,8 @@
            startDealDeviceImg();
            //查询所有人员人脸照片
            startDealMemberImg();
            //查询所有月台事件中抓拍图照片
            startDealPlatformEventImg();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
@@ -87,6 +92,33 @@
                    }
                }
                memberMapper.updateById(event);
            }
        }
    }
    private void startDealPlatformEventImg() {
        List<PlatformEvent> list = platformEventMapper.selectList(new QueryWrapper<PlatformEvent>().lambda()
                .eq(PlatformEvent::getIsdeleted,Constants.ZERO)
                .isNotNull(PlatformEvent::getBackgroundImageContent)
                .notLikeRight(PlatformEvent::getBackgroundImageContent, HKConstants.IMG_INDEX_ERROR)
                .isNull(PlatformEvent::getBackgroundImageDown));
        Date date= new Date();
        if(list !=null && list.size()>0){
            for(PlatformEvent model:list){
                String rs1 = null;
                PlatformEvent event = new PlatformEvent();
                event.setId(model.getId());
                event.setEditDate(date);
                if(StringUtils.isNotBlank(model.getBackgroundImageContent())){
                    String img1 = model.getBackgroundImageContent();
                    rs1 = downHkImgToFtp(img1,"",Constants.PLATFORM_EVENT_IMG);
                    if(StringUtils.isNotBlank(rs1)){
                        event.setBackgroundImageDown(rs1);
                    }else{
                        event.setBackgroundImageContent(HKConstants.IMG_INDEX_ERROR+model.getBackgroundImageContent());
                    }
                }
                platformEventMapper.updateById(event);
            }
        }
@@ -251,11 +283,13 @@
            param.setPicUri(img1.replace(HKConstants.IMG_INDEX_ERROR,"").replace(HKConstants.IMG_INDEX,""));
            param.setServerIndexCode(serverIndex);
            is = HKService.getFaceInputStream(param);
        }else if(StringUtils.equals(folder_code,Constants.PLATFORM_EVENT_IMG)){
            //月台事件图片
            is = HttpsUtil.connectionInputsteam(img1,"GET",null,null);
        }
        if(is ==null){
            return  null;
        }
        try {
            if(ftp == null){
                 ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(),
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncLoginAuthServiceImpl.java
@@ -27,7 +27,6 @@
    @Autowired
    private DeviceMapper deviceMapper;
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;
    @Autowired
@@ -76,7 +75,6 @@
                }catch (Exception e){
                    throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,登录组件失败,请稍后重试!");
                }
            }else{
                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,登录组件失败,请稍后重试!");
            }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java
@@ -188,7 +188,7 @@
                d.setCreateDate(model.getCreateDate());
                d.setPlatformId(model.getId());
                d.setIsdeleted(Constants.ZERO);
                d.setDeviceId(param.getCameraIdompan());
                d.setDeviceId(param.getCameraId());
                d.setName(param.getCameraName());
                d.setType(Constants.ONE);
                list.add(d);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -867,8 +867,9 @@
                }
                //各车道车辆状态
                EventPlatformCarsStatusInfoRequest status = data.getHPVehicleStatus();
                eventList.add(initPlatformEventModel(request,data,status));//封装事件(已月台通道为维度)
                PlatformEvent event = initPlatformEventModel(request,data,status);
                if(StringUtils.isBlank(status.getPlateNo())){
                    eventList.add(event);//封装事件(已月台通道为维度)
                    continue;//如果车辆信息为空,不处理直接跳过
                }
                PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda()
@@ -876,10 +877,13 @@
                        .eq(PlatformDevice::getIsdeleted,Constants.ZERO)
                        .last("limit 1"));
                if(model ==null){
                    eventList.add(event);//封装事件(已月台通道为维度)
                    continue;//监控点未同步,跳过处理
                }
                //截掉第一个颜色汉字
                status.setPlateNo(status.getPlateNo().substring(1,status.getPlateNo().length()));
                event.setPlatformId(model.getPlatformId());//月台编码
                eventList.add(event);//封装事件(已月台通道为维度)
                //截掉第一个颜色汉字,去掉“挂”字
                status.setPlateNo(status.getPlateNo().substring(1,status.getPlateNo().length()).replace("挂",""));
                PlatformJob job = platformJobMapper.selectJoinOne(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>()
                        .selectAll(PlatformJob.class)
                        .selectAs(Platform::getName,PlatformJob::getPlatformName)
@@ -888,12 +892,15 @@
                        .eq(!StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeBack,status.getPlateNo() )//后车牌号
                        .eq(PlatformJob::getIsdeleted,Constants.ZERO )
                        .last("limit 1 "));
                if(job == null){
                    continue;//如果作业为空,跳过处理
                }
                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())){
                   /* 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)){