MrShi
2025-05-09 ffa54cddadb29a265869573abb0c1067fcd74b96
提交
已修改18个文件
274 ■■■■■ 文件已修改
admin/.env.development 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/inoutRecord.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/timer/timer.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/service/timer/QuartzJobService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/pom.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WholeProvinceBoardVO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/RetentionServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.development
@@ -2,7 +2,12 @@
NODE_ENV = 'development'
# VUE_APP_API_URL  = 'https://atwl.ahzyssl.com/zhyq_interface'
<<<<<<< HEAD
VUE_APP_API_URL  = 'http://192.168.0.100:10010'
# VUE_APP_API_URL  = 'https://atwl.ahzyssl.com/zhyq_interface'
=======
#VUE_APP_API_URL  = 'http://192.168.0.104:10010'
 VUE_APP_API_URL  = 'https://atwl.ahzyssl.com/zhyq_interface'
>>>>>>> f49ead8710e093ee1d2d3ed50870497f07dee9fa
# VUE_APP_API_URL  = 'http://10.50.250.253:8088/gateway_interface'
admin/src/views/business/inoutRecord.vue
@@ -4,6 +4,12 @@
    <div slot="search-form">
      <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
        <el-form-item label="" prop="inOrOut">
          <el-select v-model="searchForm.type"  style="width: 130px" clearable @change="search" placeholder="事件类型">
            <el-option label="车辆事件" value="0">车辆事件</el-option>
            <el-option label="人员事件" value="1">人员事件</el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="" prop="inOrOut">
          <el-select v-model="searchForm.inOrOut"  style="width: 130px" clearable @change="search" placeholder="进出类型">
            <el-option label="进" value="0"></el-option>
            <el-option label="出" value="1"></el-option>
@@ -129,14 +135,13 @@
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import SearchFormCollapse from '@/components/common/SearchFormCollapse'
import Pagination from '@/components/common/Pagination'
import OperaInoutRecordWindow from '@/components/business/OperaInoutRecordWindow'
import { timeForMat } from '@/utils/util'
export default {
  name: 'InoutRecord',
  extends: BaseTable,
  components: { SearchFormCollapse, TableLayout, Pagination, OperaInoutRecordWindow },
  components: {  TableLayout, Pagination, OperaInoutRecordWindow },
  data () {
    return {
      // 搜索
@@ -150,7 +155,8 @@
        companyName: '',
        startDate: null,
        endDate: null,
        radio: '0'
        radio: '0',
        type: null
      },
      time: [],
      bizTypeList: [{ key: 0, name: '访客车辆' },
admin/src/views/timer/timer.vue
@@ -3,10 +3,13 @@
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="Bean名称" prop="beanName">
        <el-input v-model="searchForm.beanName" placeholder="请输入发布人" @keypress.enter.native="search"></el-input>
        <el-input v-model="searchForm.beanName" placeholder="请输入Bean名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="模块名称" prop="module">
        <el-input v-model="searchForm.module" placeholder="请输入发布人" @keypress.enter.native="search"></el-input>
        <el-input v-model="searchForm.module" placeholder="请输入模块名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="searchForm.remark" placeholder="请输入备注" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
@@ -83,7 +86,8 @@
      searchForm: {
        id: '',
        beanName: '',
        module: ''
        module: '',
        remark: ''
      },
      pausing:false,
      running:false,
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -1316,7 +1316,8 @@
        for (Rooms rooms:roomList) {
            //查询当前会议室是否存在进行中的会议
            if(bookingsMapper.selectCount(new QueryWrapper<Bookings>().lambda().eq(Bookings::getIsdeleted,Constants.ZERO)
                    .eq(Bookings::getStatus,Constants.ZERO).isNotNull(Bookings::getStartTimeReal).apply(" DATE_FORMAT(NOW(), '%Y-%m-%d') = DATE_FORMAT(START_TIME, '%Y-%m-%d') ")
                    .eq(Bookings::getStatus,Constants.ZERO).eq(Bookings::getRoomId,rooms.getId()).isNotNull(Bookings::getStartTimeReal).
                    apply(" DATE_FORMAT(NOW(), '%Y-%m-%d') = DATE_FORMAT(START_TIME, '%Y-%m-%d') ")
            )<=Constants.ZERO){
                //根据会议室获取可以开启的会议记录(第一条记录)
                Bookings bookings = bookingsMapper.selectOne(new QueryWrapper<Bookings>().lambda()
@@ -1328,12 +1329,14 @@
                        .orderByAsc(Bookings::getStartTime)
                        .last(" limit 1 ")
                );
                if(Objects.nonNull(bookings)){
                bookings.setStartTimeReal(new Date());
                bookings.setEditDate(new Date());
                    bookings.setEditDate(bookings.getStartTimeReal());
                bookingsMapper.updateById(bookings);
            }
        }
    }
    }
    /**
     * 提前开始
server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -440,26 +440,25 @@
            Sheet sheet = sxssfWorkbook.createSheet(sheetName);
            // 创建列头
            sheet.createFreezePane(0, 1);
            Row header = sheet.createRow(0);
            CellStyle hstyle = configHeaderCellStatic(sxssfWorkbook);
            CellStyle rowStyle = configDataCellStatic(sxssfWorkbook);
            for (int i = 0; i < dataList.size(); i++) {
                Cell cell = header.createCell(i);
                cell.setCellValue(dataList.get(i).get(Constants.ZERO));
                // 列宽设置
                sheet.setColumnWidth(i, dataList.get(i).get(Constants.ZERO).length() * 2 * 256);
                // 设置列头单元格
                cell.setCellStyle(hstyle);
                Row row = sheet.createRow(i);
                List<String> rowList = dataList.get(i);
                for (int j = 0; j < rowList.size(); j++) {
                    Cell cell = row.createCell(j);
                    if(i==0&&j==0){
                        cell.setCellValue("数据日期");
                    }else{
                        cell.setCellValue(rowList.get(j));
            }
            //总行数
            Integer rowSize = dataList.get(Constants.ZERO).size();
            //总列数
            Integer columnSize = dataList.size();
            for (int i = 1; i < rowSize; i++) {
                Row row = sheet.createRow(i);
                for (int j = 0; j < columnSize; j++) {
                    Cell cell = row.createCell(j);
                    cell.setCellValue(dataList.get(j).get(i));
                    if(i==0){
                        sheet.setColumnWidth(i, rowList.get(i).length() * 2 * 256);
                        cell.setCellStyle(hstyle);
                    }else if(j==0){
                        cell.setCellStyle(rowStyle);
                    }
                }
            }
            sxssfWorkbook.write(os);
@@ -477,6 +476,7 @@
        }
    }
    private static CellStyle configHeaderCellStatic (SXSSFWorkbook workbook)  {
        CellStyle style = workbook.createCellStyle();
        style.setAlignment(HorizontalAlignment.CENTER);
@@ -486,7 +486,7 @@
        style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
        // 字体
        Font font = workbook.createFont();
        font.setFontHeightInPoints((short) 12);
        font.setFontHeightInPoints((short) 10);
        style.setFont(font);
        // 设置边框
        configCellBorder(style);
@@ -494,6 +494,26 @@
    }
    /**
     * 配置数据单元格
     */
    private static CellStyle configDataCellStatic  (SXSSFWorkbook workbook ) {
        CellStyle  configDataCellStyle = workbook.createCellStyle();
        configDataCellStyle.setAlignment(HorizontalAlignment.CENTER);
        configDataCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        // 设置背景
        configDataCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
        configDataCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
        // 字体
        Font font = workbook.createFont();
        font.setFontHeightInPoints((short) 10);
        configDataCellStyle.setFont(font);
        // 边框
        configCellBorder(configDataCellStyle);
        configDataCellStyle.setWrapText(true);
        return configDataCellStyle;
    }
}
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -718,53 +718,8 @@
//        System.out.println(Constants.getVehiclePlateNo("湘B140D17").getDescription());
//        System.out.println(Constants.getVehiclePlateNo("宿AP0637").getDescription());
        System.out.println("<script> SELECT \n" +
                "t1.REALNAME `REALNAME`,\n" +
                "MAX(t1.`01`) `januaryCount`,\n" +
                "MAX(t1.`02`) `februaryCount`,\n" +
                "MAX(t1.`03`) `marchCount`,\n" +
                "MAX(t1.`04`) `aprilCount`,\n" +
                "MAX(t1.`05`) `mayCount`,\n" +
                "MAX(t1.`06`) `juneCount`,\n" +
                "MAX(t1.`07`) `julyCount`,\n" +
                "MAX(t1.`08`) `augustCount`,\n" +
                "MAX(t1.`09`) `septemberCount`,\n" +
                "MAX(t1.`10`) `octoberCount`,\n" +
                "MAX(t1.`11`) `novemberCount`,\n" +
                "MAX(t1.`12`) `decemberCount`\n" +
                "FROM(\n" +
                "SELECT \n" +
                "t.id,\n" +
                "t.REALNAME,\n" +
                "CASE  WHEN t.yue='01' THEN t.c ELSE 0 END AS `01`,\n" +
                "CASE  WHEN t.yue='02' THEN t.c ELSE 0 END AS `02`,\n" +
                "CASE  WHEN t.yue='03' THEN t.c ELSE 0 END AS `03`,\n" +
                "CASE  WHEN t.yue='04' THEN t.c ELSE 0 END AS `04`,\n" +
                "CASE  WHEN t.yue='05' THEN t.c ELSE 0 END AS `05`,\n" +
                "CASE  WHEN t.yue='06' THEN t.c ELSE 0 END AS `06`,\n" +
                "CASE  WHEN t.yue='07' THEN t.c ELSE 0 END AS `07`,\n" +
                "CASE  WHEN t.yue='08' THEN t.c ELSE 0 END AS `08`,\n" +
                "CASE  WHEN t.yue='09' THEN t.c ELSE 0 END AS `09`,\n" +
                "CASE  WHEN t.yue='10' THEN t.c ELSE 0 END AS `10`,\n" +
                "CASE  WHEN t.yue='11' THEN t.c ELSE 0 END AS `11`,\n" +
                "CASE  WHEN t.yue='12' THEN t.c ELSE 0 END AS `12`  \n" +
                "FROM   \n" +
                "(SELECT \n" +
                "su.id,\n" +
                "su.REALNAME,\n" +
                "DATE_FORMAT(b.START_TIME,'%m') yue,\n" +
                "SUM(" +
                "CONVERT( (UNIX_TIMESTAMP(b.END_TIME) - UNIX_TIMESTAMP(b.START_TIME))/(60*60), DECIMAL(5,1))) c\n" +
                "FROM \n" +
                "meeting_user_rel ur\n" +
                "LEFT JOIN `SYSTEM_USER` su ON ur.USER_ID = su.id \n" +
                "LEFT JOIN meeting_book b ON ur.OBJ_ID = b.id \n" +
                "WHERE DATE_FORMAT(b.START_TIME,'%Y') = #{yearNum} AND b.STATUS in(0,2) and b.isdeleted=0" +
                "<if test='userId != null'>"+
                "and ur.USER_ID = #{userId}\n" +
                "</if>"+
                "GROUP BY su.id, DATE_FORMAT(b.START_TIME,'%m')) t) t1 GROUP BY t1.id" +
                "</script>");
        System.out.println( "{\"data\":{\"paramValues\":{\"accessType\":\"2\",\"certTypes\":\"111\",\"certificateNos\":\"340122199904297373\",\"defineEventType\":\"771760131\",\"eventId\":\"6eb4a18bf3744c4385adb37eecdc9d37_634acece3fcf0_3d87\",\"eventType\":\"541200060\",\"eventTypeName\":\"\",\"extEventCardNo\":\"\",\"extEventPictureURL\":\"/pic?9d9c568c1a2do-4el*71-871o9=1524*7l9=0507*3607416=7147*=t212**ps5=2*8b9=559838d9837371-b162of-5pi2dc3=88=20c\",\"extEventReaderID\":\"\",\"extEventReaderKind\":\"\",\"gateIndex\":\"fc92c663ffb9420994f2574469f35e2d\",\"gateName\":\"安泰西门\",\"happenTime\":\"2025-05-09T13:06:13.000+08:00\",\"inOrOut\":\"0\",\"invoicesIds\":\"9857A54DAD5947EDB032575ECDD9EA4Bf4ebb8b61e344cd09118bfbdb5ff285c\",\"parkIndex\":\"1c4cdb8b66ed4c23bacb385c3fb6c46b\",\"parkName\":\"停车场\",\"phones\":\"19956520776\",\"plateNos\":\"皖AAA1652\",\"srcIndex\":\"6eb4a18bf3744c4385adb37eecdc9d37\",\"srcName\":\"\",\"srcParentIndex\":\"\",\"srcType\":\"roadway\",\"svrIndexCode\":\"eae18a71-1ffd-4e72-bcf6-998c5977630d\",\"userType\":\"\",\"visitorNames\":\"俞扬\"},\"targetPerson\":{\"certType\":\"111\",\"createTime\":\"2024-08-19T17:43:09.966+08:00\",\"jobNo\":\"18055162696\",\"mobile\":\"18055162696\",\"name\":\"朱之萌\",\"orgId\":\"d815b989-877a-40e7-8f34-a5388295a3d2\",\"orgPathName\":\"安泰物流园区/安泰物流/综合管理科\",\"personId\":\"1d8d42233bce4722a741917de4195084\",\"personNumber\":\"18055162696\",\"pinyin\":\"zhuzhimeng\",\"sex\":\"1\",\"updateTime\":\"2025-05-09T11:20:42.000+08:00\",\"userName\":\"18055162696\"},\"visitorInformationList\":[{\"appointmentCode\":\"947384\",\"cardNo\":\"6206767065588\",\"certNo\":\"340122199904297373\",\"certType\":111,\"companionPerson\":\"0\",\"createTime\":\"2025-05-09T13:04:26.740+08:00\",\"faceUrl\":\"2ffa5b542ec2448f9033e6901b326f44\",\"phone\":\"19956520776\",\"plateNo\":\"皖AAA1652\",\"sex\":1,\"unit\":\"安徽东百保安服务有限公司\",\"updateTime\":\"2025-05-09T13:05:36.472+08:00\",\"visitNum\":\"0\",\"visitorId\":\"6424f11498de48228fb2a418d3fc3bb1\",\"visitorName\":\"俞扬\"}],\"visitorInvoices\":{\"appointmentType\":\"3\",\"authIssueStatus\":\"1\",\"beginTime\":\"2025-05-09T13:01:00.000+08:00\",\"campusId\":\"root000000\",\"campusName\":\"默认园区\",\"createTime\":\"2025-05-09T13:04:26.693+08:00\",\"extendJson\":\"\",\"finishTime\":\"2025-05-09T14:01:00.000+08:00\",\"ifInfoAbnormal\":\"0\",\"invoicesId\":\"9857A54DAD5947EDB032575ECDD9EA4Bf4ebb8b61e344cd09118bfbdb5ff285c\",\"invoicesNo\":\"FK20250509130002\",\"invoicesStatus\":\"1\",\"isRepast\":\"0\",\"type\":\"0\",\"updateTime\":\"2025-05-09T13:05:30.372+08:00\",\"visitReason\":\"-1\",\"visitReasonName\":\"其他\",\"visitTargetId\":\"1d8d42233bce4722a741917de4195084\",\"workflowInitiatorId\":\"6424f11498de48228fb2a418d3fc3bb1\",\"workflowInitiatorType\":\"0\",\"workflowInstanceId\":\"7010a8521de54f088331e7176b82fd10\"}},\"eventId\":\"b5024c7b6c8b4b5587baf42dc5bce025\",\"eventType\":541200060,\"happenTime\":\"2025-05-09T13:06:14+08:00\",\"srcIndex\":\"9857A54DAD5947EDB032575ECDD9EA4Bf4ebb8b61e344cd09118bfbdb5ff285c\",\"srcType\":\"9857A54DAD5947EDB032575ECDD9EA4Bf4ebb8b61e344cd09118bfbdb5ff285c\",\"status\":0,\"timeout\":0}");
        System.out.println("{\"data\":{\"paramValues\":{\"accessType\":\"2\",\"certTypes\":\"111\",\"certificateNos\":\"340122199904297373\",\"defineEventType\":\"771760134\",\"eventId\":\"6cf8a9b5cb614bddb74f338701975ade_634ad693b6b33_3db4\",\"eventType\":\"541200060\",\"eventTypeName\":\"\",\"extEventCardNo\":\"\",\"extEventPictureURL\":\"/pic?9d9c568c1a2do-4el*81-891*9o3=5563*4l0=0206706794t6=318**ps==515b*=5698*8d9835393-b9667f-1pi1dco=852c2=083\",\"extEventReaderID\":\"\",\"extEventReaderKind\":\"\",\"gateIndex\":\"fc92c663ffb9420994f2574469f35e2d\",\"gateName\":\"安泰西门\",\"happenTime\":\"2025-05-09T13:40:59.000+08:00\",\"inOrOut\":\"1\",\"invoicesIds\":\"9857A54DAD5947EDB032575ECDD9EA4Bf4ebb8b61e344cd09118bfbdb5ff285c\",\"parkIndex\":\"1c4cdb8b66ed4c23bacb385c3fb6c46b\",\"parkName\":\"停车场\",\"phones\":\"19956520776\",\"plateNos\":\"皖AAA1652\",\"srcIndex\":\"6cf8a9b5cb614bddb74f338701975ade\",\"srcName\":\"\",\"srcParentIndex\":\"\",\"srcType\":\"roadway\",\"svrIndexCode\":\"eae18a71-1ffd-4e72-bcf6-998c5977630d\",\"userType\":\"\",\"visitorNames\":\"俞扬\"},\"targetPerson\":{\"certType\":\"111\",\"createTime\":\"2024-08-19T17:43:09.966+08:00\",\"jobNo\":\"18055162696\",\"mobile\":\"18055162696\",\"name\":\"朱之萌\",\"orgId\":\"d815b989-877a-40e7-8f34-a5388295a3d2\",\"orgPathName\":\"安泰物流园区/安泰物流/综合管理科\",\"personId\":\"1d8d42233bce4722a741917de4195084\",\"personNumber\":\"18055162696\",\"pinyin\":\"zhuzhimeng\",\"sex\":\"1\",\"updateTime\":\"2025-05-09T11:20:42.000+08:00\",\"userName\":\"18055162696\"},\"visitorInformationList\":[{\"appointmentCode\":\"947384\",\"cardNo\":\"6206767065588\",\"certNo\":\"340122199904297373\",\"certType\":111,\"companionPerson\":\"0\",\"createTime\":\"2025-05-09T13:04:26.740+08:00\",\"faceUrl\":\"2ffa5b542ec2448f9033e6901b326f44\",\"phone\":\"19956520776\",\"plateNo\":\"皖AAA1652\",\"sex\":1,\"unit\":\"安徽东百保安服务有限公司\",\"updateTime\":\"2025-05-09T13:05:36.472+08:00\",\"visitNum\":\"0\",\"visitorId\":\"6424f11498de48228fb2a418d3fc3bb1\",\"visitorName\":\"俞扬\"}],\"visitorInvoices\":{\"appointmentType\":\"3\",\"authIssueStatus\":\"1\",\"beginTime\":\"2025-05-09T13:01:00.000+08:00\",\"campusId\":\"root000000\",\"campusName\":\"默认园区\",\"createTime\":\"2025-05-09T13:04:26.693+08:00\",\"extendJson\":\"\",\"finishTime\":\"2025-05-09T14:01:00.000+08:00\",\"ifInfoAbnormal\":\"0\",\"invoicesId\":\"9857A54DAD5947EDB032575ECDD9EA4Bf4ebb8b61e344cd09118bfbdb5ff285c\",\"invoicesNo\":\"FK20250509130002\",\"invoicesStatus\":\"5\",\"isRepast\":\"0\",\"type\":\"0\",\"updateTime\":\"2025-05-09T13:41:00.369+08:00\",\"visitReason\":\"-1\",\"visitReasonName\":\"其他\",\"visitTargetId\":\"1d8d42233bce4722a741917de4195084\",\"workflowInitiatorId\":\"6424f11498de48228fb2a418d3fc3bb1\",\"workflowInitiatorType\":\"0\",\"workflowInstanceId\":\"7010a8521de54f088331e7176b82fd10\"}},\"eventId\":\"2bb6700a9e4f48849227100243f470b2\",\"eventType\":541200060,\"happenTime\":\"2025-05-09T13:41:00+08:00\",\"srcIndex\":\"9857A54DAD5947EDB032575ECDD9EA4Bf4ebb8b61e344cd09118bfbdb5ff285c\",\"srcType\":\"9857A54DAD5947EDB032575ECDD9EA4Bf4ebb8b61e344cd09118bfbdb5ff285c\",\"status\":0,\"timeout\":0}");
    }
server/system_service/src/main/java/com/doumee/service/timer/QuartzJobService.java
@@ -115,7 +115,7 @@
                .eq(pageWrap.getModel().getParams() != null, QuartzJob::getParams, pageWrap.getModel().getParams())
                .like(pageWrap.getModel().getBeanName() != null, QuartzJob::getBeanName, pageWrap.getModel().getBeanName())
                .eq(pageWrap.getModel().getState() != null, QuartzJob::getState, pageWrap.getModel().getState())
                .eq(pageWrap.getModel().getRemark() != null, QuartzJob::getRemark, pageWrap.getModel().getRemark())
                .like(pageWrap.getModel().getRemark() != null, QuartzJob::getRemark, pageWrap.getModel().getRemark())
                .like(pageWrap.getModel().getModule() != null, QuartzJob::getModule, pageWrap.getModel().getModule())
        ;
        return PageData.from(quartzJobMapper.selectPage(page, queryWrapper));
server/visits/dmvisit_admin/pom.xml
@@ -8,9 +8,7 @@
        <artifactId>visits</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>
    <artifactId>dmvisit_admin</artifactId>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java
@@ -78,7 +78,7 @@
            "3=安泰的预约入园车辆:货运车辆-加工烟卸货车辆 ;" +
            "4=安泰公务车:公务车-安泰物流公务用车;" +
            "5=安泰自有车:货运车辆-安泰物流货运车辆 ")
    @ExcelColumn(name="业务类型",index = 4,width = 16,valueMapping = "0=访客车辆-访客车辆;1=货运车辆-外协运输车辆;2=货运车辆-市公司卸货车辆;3=货运车辆-加工烟卸货车辆;4=公务车-安泰物流公务用车;5=货运车辆-安泰物流货运车辆;6=未知车辆;")
    @ExcelColumn(name="业务类型",index = 4,width = 16,valueMapping = "0=访客车辆;1=外协运输车辆;2=市公司卸货车辆;3=加工烟卸货车辆;4=安泰物流公务用车;5=安泰物流货运车辆;6=未知车辆;")
    private Integer bizType;
    @ApiModelProperty(value = "父级编码(自关联)")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java
@@ -58,7 +58,7 @@
    private Integer type;
    @ApiModelProperty(value = " 类型 0相关方组织 1内部人员 2访客")
    @TableField(exist = false)
    @ExcelColumn(name="人员类型" ,index = 5, valueMapping="0=劳务访客;1=普通访客;2=内部员工;3=车辆信息;",width = 8)
//    @ExcelColumn(name="人员类型" ,index = 5, valueMapping="0=劳务访客;1=普通访客;2=内部员工;3=车辆信息;",width = 8)
    private String typeName;
    @ApiModelProperty(value = "访客名称")
@@ -160,15 +160,19 @@
    private Integer categoryId;
    @ApiModelProperty(value = "关联分类名称")
    @ExcelColumn(name="车辆分类" ,index = 8,width = 16)
    private String categoryName;
    @ApiModelProperty(value = "关联父级分类编码(关联category)", example = "1")
    @ExcelColumn(name="关联父级分类编码(关联category)")
    private Integer categoryParentId;
    @ApiModelProperty(value = "关联分类名称")
    @ExcelColumn(name="关联分类名称")
    private String categoryParentName;
    @ApiModelProperty(value = "0=访客车辆;1=外协运输车辆;2=市公司卸货车辆;3=加工烟卸货车辆;4=安泰物流公务用车;5=安泰物流货运车辆;6=未知车辆 ")
    @ExcelColumn(name="车辆分类" ,index = 8,width = 16,valueMapping ="0=访客车辆;1=外协运输车辆;2=市公司卸货车辆;3=加工烟卸货车辆;4=安泰物流公务用车;5=安泰物流货运车辆;6=未知车辆;" )
    @TableField(exist = false)
    private Integer bizType;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WholeProvinceBoardVO.java
@@ -17,7 +17,6 @@
    @ApiModelProperty(value = "【出库能力】当日订单里")
    private BigDecimal currentOrderNum;
    @ApiModelProperty(value = "【出库能力】当日计划量")
    private BigDecimal currentPlanNum;
    @ApiModelProperty(value = "【出库能力】无需配载的任务量")
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -181,6 +181,9 @@
    }
    @Override
    public  List<Category> findChileList(Category model) {
        if(Objects.isNull(model)){
            model = new Category();
        }
        model.setIsdeleted(Constants.ZERO);
        List<Category> list =findList(model);
        List<Category> data = new ArrayList<>();
@@ -194,6 +197,8 @@
                        category.setGroupName( category.getParentName()+"/"+category.getName());
                        data.add(category);
                    }
                }else{
                    data.add(category);
                }
            }
        }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java
@@ -121,7 +121,9 @@
        InoutRecord model = pageWrap.getModel();
        queryWrapper.selectAll(InoutRecord.class)
                .eq(InoutRecord::getIsdeleted,Constants.ZERO)
                .eq(Objects.nonNull(model.getType()),InoutRecord::getType, model.getType())
//                .eq(Objects.nonNull(model.getType()),InoutRecord::getType, model.getType())
                .isNotNull(Objects.nonNull(model.getType())&&Constants.equalsInteger(model.getType(),Constants.ZERO),InoutRecord::getCarCode)
                .isNotNull(Objects.nonNull(model.getType())&&Constants.equalsInteger(model.getType(),Constants.ONE),InoutRecord::getMemberPhone)
                .eq(Objects.nonNull(model.getInOrOut()),InoutRecord::getInOrOut, model.getInOrOut())
                .eq(Objects.nonNull(model.getObjType()),InoutRecord::getObjType, model.getObjType())
                .eq(Objects.nonNull(model.getCarBizType()),InoutRecord::getCarBizType, model.getCarBizType())
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/RetentionServiceImpl.java
@@ -310,9 +310,11 @@
        queryWrapper.selectAll(Retention.class)
                .selectAs(Company::getName,Retention::getCompanyName)
                .selectAs(Company::getType,Retention::getCompanyType)
                .select(" ( SELECT v.company_name FROM visits v WHERE v.member_id = t.member_id and v.status = "+Constants.VisitStatus.signin+" ORDER BY create_date DESC limit 1 ) as visitCompanyName ");
                queryWrapper.eq(Retention::getIsdeleted,Constants.ZERO)
                        .eq(Company::getIsdeleted,Constants.ZERO)
                .select(" ( SELECT v.company_name FROM visits v WHERE v.member_id = t.member_id and v.status = "+Constants.VisitStatus.signin+" ORDER BY create_date DESC limit 1 ) as visitCompanyName ")
                .selectAs(Category::getBizType,Retention::getBizType)
                .leftJoin(Category.class,Category::getId,Retention::getCategoryId)
                .eq(Retention::getIsdeleted,Constants.ZERO)
//                        .eq(Company::getIsdeleted,Constants.ZERO)
                .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),w->{
                    w.like( Retention::getPhone,pageWrap.getModel().getKeyWords())
                            .or().like( Retention::getName,pageWrap.getModel().getKeyWords()); })
@@ -325,6 +327,8 @@
                        Retention::getType,Constants.FOUR)
                .eq(Objects.nonNull(pageWrap.getModel().getQueryUserType())&&Constants.equalsInteger(pageWrap.getModel().getQueryUserType(),Constants.TWO),
                        Retention::getType,Constants.TWO)
                .eq(Objects.nonNull(pageWrap.getModel().getBizType()),
                        Category::getBizType,pageWrap.getModel().getBizType())
                //过滤车辆数据
                .ne(Retention::getType,3)
                .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -1757,7 +1757,7 @@
        }
        List<DeviceRole> roleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
                .eq(DeviceRole::getType, Constants.ONE));
        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
      HkSyncVisitServiceImpl.getUpdateModelByResponseIccm(visits,new Date(),roleList,path);
@@ -1895,8 +1895,9 @@
//                    List<String> memberIds = daysList.stream().map(i->i.getMemberId().toString()).collect(Collectors.toList());
                    List<String> memberIds  = inoutRecordList.stream().filter(i->
                                    Objects.isNull(i.getCarCode())&&
                                    Objects.nonNull(i.getMemberPhone())&&DateUtil.dateToString(i.getTimeInfo(),"yyyy-MM-dd").equals(days)
                                    Objects.isNull(i.getCarCode())
                                            && Constants.equalsInteger(i.getInOrOut(),Constants.ZERO)
                                            && Objects.nonNull(i.getMemberPhone())&&DateUtil.dateToString(i.getTimeInfo(),"yyyy-MM-dd").equals(days)
                            )
                            .map(i->i.getMemberPhone())
                            .collect(Collectors.toList());
@@ -1919,10 +1920,11 @@
//                    List<CarEvent> daysList = carEventList.stream().filter(i->StringUtils.isNotBlank(i.getHappenTime()) && i.getHappenTime().substring(0,10).equals(days)).collect(Collectors.toList());
//                    List<String> carCodeList = daysList.stream().map(i->i.getPlateNos()).collect(Collectors.toList());
                    List<String> carCodeList  = inoutRecordList.stream().filter(i->
                                    Objects.isNull(i.getCarCode())&&
                                            Objects.nonNull(i.getMemberPhone())&&DateUtil.dateToString(i.getTimeInfo(),"yyyy-MM-dd").equals(days)
                                    Objects.nonNull(i.getCarCode())
                                            && Constants.equalsInteger(i.getInOrOut(),Constants.ZERO)
                                            && Objects.isNull(i.getMemberPhone())&&DateUtil.dateToString(i.getTimeInfo(),"yyyy-MM-dd").equals(days)
                            )
                            .map(i->i.getMemberPhone())
                            .map(i->i.getCarCode())
                            .collect(Collectors.toList());
                    if(CollectionUtils.isNotEmpty(carCodeList)){
                        carVO.setNum(new HashSet<String>(carCodeList).size());
@@ -1939,6 +1941,7 @@
            List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda()
                    .eq(Company::getIsdeleted,Constants.ZERO)
                    .orderByAsc(Company::getSortnum)
            );
            if(CollectionUtils.isNotEmpty(companyList)){
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -1,7 +1,6 @@
package com.doumee.service.business.impl.hksync;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.C;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
@@ -25,7 +24,6 @@
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
import com.doumee.service.business.CategoryService;
import com.doumee.service.business.VisitsService;
import com.doumee.service.business.impl.PlatformWarnEventServiceImpl;
import com.doumee.service.business.third.TmsService;
@@ -33,9 +31,7 @@
import com.doumee.service.business.third.model.response.TmsOrderInfoResponse;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.net.ftp.FTP;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -284,9 +280,9 @@
                            inoutDayCount.setOutOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutOtherMemberNum())+1);//相关方出场人次
                        }
                    }
                }
                if(record.getMemberType()!=null){
                    inoutRecordList.add(record);
                    }
                }
            }
        }
@@ -573,7 +569,7 @@
                record.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime()));
                record.setTimeInfo(Utils.Date.getStart(record.getCreateDate()));
                record.setType(Constants.ONE);//人员
                record.setMemberType(Constants.ZERO);
                record.setMemberType(Constants.RetentionMemberType.fk);
                record.setIsdeleted(Constants.ZERO);
                record.setMemberName(visits.getName());
                record.setObjId(visits.getId());
@@ -584,10 +580,12 @@
                record.setInOrOut(Constants.ZERO);
                record.setHkEventId(request.getEventId());
                record.setHkId(visits.getHkId());
                record.setDeviceName((request.getData()!=null &&request.getData().getParamValues()!=null)?
                        request.getData().getParamValues().getSrcName():request.getSrcName());
                //如果是访客通行
                if(request.getData()!=null&&request.getData().getParamValues()!=null &&
                        StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){
                    //如果是访客登记,录入人员的在场数据记录
                    //如果是访客进入,录入人员的在场数据记录
                    Retention r = getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType());
                    r.setCarNo(request.getData().getParamValues().getPlateNos());
                    r.setAccessType(request.getData().getParamValues().getAccessType());
@@ -595,11 +593,48 @@
                    r.setDeviceIndex(request.getData().getParamValues().getSrcIndex());
                    retentionList.add(r);
                    inoutDayCount.setInVisitorNum(Constants.formatIntegerNum(inoutDayCount.getInVisitorNum())+1);
                    record.setInOrOut(Constants.ZERO);//进入园区
                }
                if(request.getData()!=null&&request.getData().getParamValues()!=null &&
                         !StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){
                    inoutDayCount.setOutVisitorNum(Constants.formatIntegerNum(inoutDayCount.getOutVisitorNum())+1);
                    record.setInOrOut(Constants.ONE);
                }
                if( request.getData().getParamValues()!=null
                        && StringUtils.isNotBlank(request.getData().getParamValues().getPlateNos())
                        && StringUtils.isNotBlank(request.getData().getParamValues().getParkIndex())){
                    //如果是停车场事件,记录车辆类型
                    Category category = null;
                    record.setCarCode(request.getData().getParamValues().getPlateNos());
                    if(StringUtils.isNotBlank(record.getCarCode())){
                        category = categoryMapper.selectJoinOne(Category.class, new MPJLambdaWrapper<Category>()
                                .selectAll(Category.class)
                                .select("t4.name",Category::getParentName)
                                .leftJoin("category t4 on t.parent_id=t4.id")
                                .eq(Category::getIsdeleted,Constants.ZERO)
                                .eq(Category::getBizType,Constants.RetentionCarType.fkCar)
                                .last("limit 1"));
                        if(category ==null){
                            category = new Category();
                            category.setName("访客车辆");
                        }
                        category.setParentName(StringUtils.defaultString(category.getParentName(),"访客车辆"));
                    }
                    record.setCarBizType(Constants.RetentionCarType.fkCar);
                    record.setCategoryId(category.getId());
                    record.setDeviceName(request.getData().getParamValues().getGateName());
                    record.setCategoryName(category.getName());
                    record.setCategoryParentId(category.getParentId());
                    record.setCategoryParentName(category.getParentName());
                    if(Constants.equalsInteger(record.getInOrOut(),Constants.ONE)){
                        record.setRemark("访客跟随车辆离园并自动签离");
                        try {
                            //访客申请自动签离
                            visitsService.visitLevelForCarOut(visits);
                        }catch (Exception e){
                            log.error("访客跟随车辆出园自动签离失败:==========="+e.getMessage());
                        }
                    }
                }
                inoutRecordList.add(record);
            }
@@ -665,6 +700,10 @@
        event.setSrcParentIndex(request.getSrcParentIndex());
        event.setSrcName((request.getData()!=null &&request.getData().getParamValues()!=null)?
                request.getData().getParamValues().getSrcName():request.getSrcName());
        if(StringUtils.isBlank(event.getSrcName())){
            event.setSrcName((request.getData()!=null &&request.getData().getParamValues()!=null)?
                    request.getData().getParamValues().getGateName()+ request.getData().getParamValues().getParkIndex():request.getSrcName());
        }
        event.setSrcIndex(request.getSrcIndex());
        event.setSex(detail.getSex());
        event.setPurpose(request.getData().getVisitorInvoices().getVisitReason());
@@ -852,9 +891,11 @@
                        .in(Retention::getCarNo,delRetentionList));
            }
            if(delMemberRetentionList.size()>0){
                //先删除原有的在场人员(内部人员和访客)
                //先删除原有的在场人员(内部人员、相关方和访客)
                retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                        .in(Retention::getType,Constants.memberType.internal,Constants.memberType.visitor)
                        .in(Retention::getType,Constants.RetentionMemberType.internalMember
                                ,Constants.RetentionMemberType.relMember
                                ,Constants.RetentionMemberType.fk)
                        .in(Retention::getMemberId,delMemberRetentionList));
            }
            if(retentionList.size()>0){
@@ -988,7 +1029,7 @@
                    carrecord.setCompanyId(carTypeJob.getCompanyId());
                    carrecord.setCompanyName(carTypeJob.getCompanyNamePath());
                    carrecord.setType(Constants.RetentionMemberType.car);
                    if(carModel.getMemberPhone()!=null || StringUtils.isNotBlank(carModel.getMemberName())){
                    if(carTypeJob.getDriverName()!=null || StringUtils.isNotBlank(carTypeJob.getDrivierPhone())){
                        //货运司机(如果司机手机号或者姓名不为空)
                        carrecord.setMemberType(Constants.RetentionMemberType.driver);
                    }
@@ -1054,6 +1095,7 @@
                    event.setCarType(Constants.RetentionCarType.fkCar);
                    int index =0;
                    carrecord.setCarBizType(Constants.RetentionCarType.fkCar);
                    if(1==2){
                    Category category =findCategoryByBizType(Constants.RetentionCarType.fkCar,"访客车辆","访客车辆",categoryList);
                    carrecord.setCategoryId(category.getId());
                    carrecord.setCategoryName(StringUtils.defaultString(category.getName(),"访客车辆"));
@@ -1068,8 +1110,8 @@
                        copyObj.setMemberPhone(v.getPhone());
                        copyObj.setCompanyName(v.getCompanyName());
                        copyObj.setType(Constants.ONE);
                        copyObj.setRemark(carrecord.getCarCode());
                        copyObj.setCarCode(index>=0?null:carrecord.getCarCode());
                            copyObj.setRemark("访客跟随车辆【"+carrecord.getCarCode()+"】离园");
                            copyObj.setCarCode(index>0?null:carrecord.getCarCode());
                        copyObj.setMemberType(Constants.RetentionMemberType.fk);
                        inoutRecordList.add(copyObj);
                        index++;
@@ -1093,6 +1135,7 @@
                    }
                }
            }
            }
            if(isCarInOrOutEvent(request) && event.getCarType() !=null && !event.getCarType().equals(Constants.RetentionCarType.fkCar)){
                //录入非访客类型车辆进出记录
                dealNotFkCarMemberBiz(event,request,carrecord,retentionList,inoutDayCount,inoutRecordList);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -678,7 +678,10 @@
        }
        info.setPhoneNo(c.getPhone());
        info.setPlateNo(c.getCarNos());
        info.setGender( "1" );
        if(Constants.equalsInteger(c.getSex(),Constants.ONE) ||Constants.equalsInteger(c.getSex(),Constants.TWO)  ){
        info.setGender(c.getSex()+"");
        }
        if(Constants.equalsInteger(c.getIdcardType(),Constants.ZERO)){
            info.setCertificateType(HKConstants.CertificateType.SHENFENZHENG.getKey()+"");
            info.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD, c.getIdcardNo()));
@@ -726,7 +729,10 @@
        }
        info.setPhoneNo(c.getPhone());
        info.setPlateNo(c.getCarNos());
        info.setGender( "1");
        if(Constants.equalsInteger(c.getSex(),Constants.ONE) ||Constants.equalsInteger(c.getSex(),Constants.TWO)  ){
        info.setGender(c.getSex()+"");
        }
        if(Constants.equalsInteger(c.getIdcardType(),Constants.ZERO)){
            info.setCertificateType(HKConstants.CertificateType.SHENFENZHENG.getKey()+"");
            info.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD, c.getIdcardNo()));
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -2784,17 +2784,18 @@
                    t =new WholeProvinceMapVO();
                    t.setMonthNum( Constants.formatBigdecimal0Float(model.getMonthOutboundQuantity()));
                    t.setYearNum( Constants.formatBigdecimal0Float(model.getYearOutboundQuantity()));
                    if(Constants.UNIT_TYPE == 1) {
                        //处理单位成“箱”,一箱=5万支
                        t.setMonthNum(Constants.formatBigdecimal(t.getMonthNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP));
                        t.setYearNum(Constants.formatBigdecimal(t.getYearNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP));
                    }
                    t.setProvinceCode(model.getToProvinceCode());
                    t.setProvinceName(model.getToProvinceName());
                    result.add(t);
                }
            }
            if(Constants.UNIT_TYPE == 1) {
             for(WholeProvinceMapVO t : result){
                    //处理单位成“箱”,一箱=5万支
                    t.setMonthNum(Constants.formatBigdecimal(t.getMonthNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP));
                    t.setYearNum(Constants.formatBigdecimal(t.getYearNum()).divide(new BigDecimal(5), 2, BigDecimal.ROUND_HALF_UP));
                }
            }
        }
        return result;
    }