jiangping
2024-09-19 b421d2fedd1dfbe400363b89a6281c0759508651
最新版本
已添加6个文件
已删除1个文件
已修改11个文件
1062 ■■■■■ 文件已修改
admin/package-lock.json 160 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/wmsInterfaceLog.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/visitEvent.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/wmsInterfaceLog.vue 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsInterfaceLogCloudController.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudBakController.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyParamRequest.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRegionRequest.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/package-lock.json
@@ -1876,6 +1876,63 @@
          "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
          "dev": true
        },
        "ansi-styles": {
          "version": "4.3.0",
          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-convert": "^2.0.1"
          }
        },
        "chalk": {
          "version": "4.1.2",
          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
          "dev": true,
          "optional": true,
          "requires": {
            "ansi-styles": "^4.1.0",
            "supports-color": "^7.1.0"
          }
        },
        "color-convert": {
          "version": "2.0.1",
          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-name": "~1.1.4"
          }
        },
        "color-name": {
          "version": "1.1.4",
          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
          "dev": true,
          "optional": true
        },
        "has-flag": {
          "version": "4.0.0",
          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
          "dev": true,
          "optional": true
        },
        "loader-utils": {
          "version": "2.0.4",
          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
          "dev": true,
          "optional": true,
          "requires": {
            "big.js": "^5.2.2",
            "emojis-list": "^3.0.0",
            "json5": "^2.1.2"
          }
        },
        "ssri": {
          "version": "8.0.1",
          "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -1883,6 +1940,28 @@
          "dev": true,
          "requires": {
            "minipass": "^3.1.1"
          }
        },
        "supports-color": {
          "version": "7.2.0",
          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
          "dev": true,
          "optional": true,
          "requires": {
            "has-flag": "^4.0.0"
          }
        },
        "vue-loader-v16": {
          "version": "npm:vue-loader@16.8.3",
          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
          "dev": true,
          "optional": true,
          "requires": {
            "chalk": "^4.1.0",
            "hash-sum": "^2.0.0",
            "loader-utils": "^2.0.0"
          }
        }
      }
@@ -13904,87 +13983,6 @@
          "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
          "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
          "dev": true
        }
      }
    },
    "vue-loader-v16": {
      "version": "npm:vue-loader@16.8.3",
      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
      "dev": true,
      "optional": true,
      "requires": {
        "chalk": "^4.1.0",
        "hash-sum": "^2.0.0",
        "loader-utils": "^2.0.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "4.3.0",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-convert": "^2.0.1"
          }
        },
        "chalk": {
          "version": "4.1.2",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
          "dev": true,
          "optional": true,
          "requires": {
            "ansi-styles": "^4.1.0",
            "supports-color": "^7.1.0"
          }
        },
        "color-convert": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-name": "~1.1.4"
          }
        },
        "color-name": {
          "version": "1.1.4",
          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
          "dev": true,
          "optional": true
        },
        "has-flag": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
          "dev": true,
          "optional": true
        },
        "loader-utils": {
          "version": "2.0.4",
          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
          "dev": true,
          "optional": true,
          "requires": {
            "big.js": "^5.2.2",
            "emojis-list": "^3.0.0",
            "json5": "^2.1.2"
          }
        },
        "supports-color": {
          "version": "7.2.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
          "dev": true,
          "optional": true,
          "requires": {
            "has-flag": "^4.0.0"
          }
        }
      }
    },
admin/src/api/business/wmsInterfaceLog.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
import request from '../../utils/request'
// æŸ¥è¯¢
export function fetchList (data) {
  return request.post('/visitsAdmin/cloudService/business/wmsInterfaceLog/page', data, {
    trim: true
  })
}
// åˆ›å»º
export function create (data) {
  return request.post('/visitsAdmin/cloudService/business/wmsInterfaceLog/create', data)
}
// ä¿®æ”¹
export function updateById (data) {
  return request.post('/visitsAdmin/cloudService/business/wmsInterfaceLog/updateById', data)
}
admin/src/views/business/visitEvent.vue
@@ -13,8 +13,9 @@
            </el-form-item>
            <el-form-item label="事件类型" prop="eventType">
                <el-select v-model="searchForm.eventType" placeholder="请选择">
                    <el-option label="访客登记" value="1392513025"></el-option>
                    <el-option label="访客签离" value="1392513026"></el-option>
                    <el-option label="访客登记" value="541200006"></el-option>
                    <el-option label="访客签离" value="541200007"></el-option>
                    <el-option label="访客通行" value="541200060"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="起始时间" prop="carNo">
admin/src/views/business/wmsInterfaceLog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,145 @@
<template>
    <TableLayout :permissions="['business:wmsinterfacelog:query']">
        <!-- æœç´¢è¡¨å• -->
        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
            <el-form-item label="接口名称" prop="name">
                <el-input v-model="searchForm.name" placeholder="请输入接口名称" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="类型" prop="type">
                <el-select v-model="searchForm.type" @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="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="name" label="接口名称" min-width="180px"></el-table-column>
                <el-table-column prop="url" label="地址信息" min-width="180px"></el-table-column>
                <el-table-column label="类型" min-width="100px">
                    <template slot-scope="{row}">
                        <span v-if="row.type == 0">调用</span>
                        <span v-if="row.type == 1">推送接收</span>
                    </template>
                </el-table-column>
<!--                <el-table-column label="平台" min-width="100px">
                    <template slot-scope="{row}">
                        <span v-if="row.plat == 0">海康安防平台</span>
                        <span v-if="row.plat == 1">ERP系统</span>
                    </template>
                </el-table-column>-->
                <el-table-column prop="request" label="请求参数" min-width="100px">
                    <template slot-scope="{row}">
                        <el-button type="text" @click="$refs.operaInterfaceLogWindow.open('请求参数', {content: row.request})">查看</el-button>
                    </template>
                </el-table-column>
                <el-table-column prop="repose" label="响应参数" min-width="100px">
                    <template slot-scope="{row}">
                        <el-button type="text" @click="$refs.operaInterfaceLogWindow.open('响应参数', {content: row.repose})">查看</el-button>
                    </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>
        <!-- æ–°å»º/修改 -->
        <OperaInterfaceLogWindow ref="operaInterfaceLogWindow" @success="handlePageChange"/>
    </TableLayout>
</template>
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaInterfaceLogWindow from '@/components/business/OperaInterfaceLogWindow'
import { timeForMat } from '@/utils/util'
export default {
  name: 'InterfaceLog',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaInterfaceLogWindow },
  data () {
    return {
      // æœç´¢
      searchForm: {
        name: '',
        type: '',
        endDate: '',
        startDate: '',
        radio: '0'
      },
      time: []
    }
  },
  created () {
    this.config({
      module: '三方平台接口交互记录',
      api: '/business/wmsInterfaceLog',
      '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
@@ -809,6 +809,66 @@
            this.info = info;
        }
    }
    /**
     * æœˆå°ä½œä¸šå¤§å±æ–‡æ¡ˆ çŠ¶æ€
     * 1、月台空闲:1号月台(月台名称)
     * 2、叫号中:1号月台 çš–A12345  å«å·ä¸­
     * 3、作业中:1号月台 çš–A12345 ä½œä¸šä¸­
     * 4、错误停靠:1号月台 çš–A12345 å½“前车辆错误停靠,请尽快驶离
     * 5、超时停靠:1号月台 çš–A12345 å½“前车辆超时停靠,请尽快驶离
     */
    public  enum PlatformLedContent {
        IDEL_CONTNET(1, "空闲中","{param}" ),
        CALLING(2, "叫号中","${param} ${param2}  å«å·ä¸­"),
        WORKING(3, "作业中","${param} ${param2} ä½œä¸šä¸­" ),
        WRONG_IN(4, "错误停靠","${param} ${param2} å½“前车辆错误停靠,请尽快驶离" ),
        TIMEOUT_IN(5, "超时停靠","${param} ${param2} å½“前车辆超时停靠,请尽快驶离" ),
        ;
        // æˆå‘˜å˜é‡
        private int key;
        private String name;
        private String info;
        // æž„造方法
        PlatformLedContent(int key, String name,String info ) {
            this.key = key;
            this.info = info;
            this.name = name;
        }
        public static String getName(int index) {
            for (PlatformLedContent c : PlatformLedContent.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            return null;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getInfo() {
            return info;
        }
        public void setInfo(String info) {
            this.info = info;
        }
    }
    /**
     * æœˆå°ä½œä¸š çŠ¶æ€
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -5,6 +5,7 @@
import com.doumee.config.annotation.CloudRequiredPermission;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.haikang.model.param.BaseResponse;
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
@@ -142,6 +143,17 @@
        String result = hkSyncPushService.dealVisitEventIccm(param,response);
        return ApiResponse.success(result);
    }
    @ApiOperation("【海康】访客ICCM事件订阅推送对接处理接口")
    @PostMapping("/testLed")
    @LoginNoRequired
    public ApiResponse<BaseResponse> testLed(@RequestBody TransparentChannelBodyRequest request, HttpServletResponse response) {
        TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
        head.setAbility("cld");//固定值
        head.setTreatyType("haixuan_led_net");//固定值
        head.setDeviceIndexCode("6a5498e9df924befbb9530e467e5e809");
        HKService.transparentchannel(head,request);
        return ApiResponse.success(HKService.transparentchannel(head,request));
    }
//    @PreventRepeat
    @ApiOperation("【海康】停车场事件订阅推送对接处理接口")
    @PostMapping("/push/parks")
@@ -190,7 +202,6 @@
        String url = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HTTPS).getCode() +
        systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HOST).getCode()
                 + HKService.getMenuUrl(type,hkToken);
        return ApiResponse.success( url);
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsInterfaceLogCloudController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
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.WmsInterfaceLog;
import com.doumee.service.business.WmsInterfaceLogService;
import com.doumee.service.business.WmsInterfaceLogService;
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;
/**
 * @author æ±Ÿè¹„蹄
 * @since 2024/04/28 16:06
 */
@Api(tags = "WMS台接口交互记录")
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/wmsInterfaceLog")
public class WmsInterfaceLogCloudController extends BaseController {
    @Autowired
    private WmsInterfaceLogService  wmsInterfaceLogService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @CloudRequiredPermission("business:wmsinterfacelog:create")
    public ApiResponse create(@RequestBody WmsInterfaceLog  wmsInterfaceLog,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success( wmsInterfaceLogService.create( wmsInterfaceLog));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:wmsinterfacelog:delete")
    public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         wmsInterfaceLogService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @CloudRequiredPermission("business:wmsinterfacelog:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         wmsInterfaceLogService.deleteByIdInBatch(this.getIdList(ids));
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @CloudRequiredPermission("business:wmsinterfacelog:update")
    public ApiResponse updateById(@RequestBody WmsInterfaceLog  wmsInterfaceLog,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         wmsInterfaceLogService.updateById( wmsInterfaceLog);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @CloudRequiredPermission("business:wmsinterfacelog:query")
    public ApiResponse<PageData<WmsInterfaceLog>> findPage (@RequestBody PageWrap<WmsInterfaceLog> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success( wmsInterfaceLogService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:wmsinterfacelog:exportExcel")
    public void exportExcel (@RequestBody PageWrap<WmsInterfaceLog> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        ExcelExporter.build(WmsInterfaceLog.class).export( wmsInterfaceLogService.findPage(pageWrap).getRecords(), "WMS平台接口交互记录", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:wmsinterfacelog:query")
    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success( wmsInterfaceLogService.findById(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudBakController.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudController.java
@@ -1,10 +1,8 @@
package com.doumee.cloud.admin;
import com.alibaba.cloud.commons.io.IOUtils;
import com.alibaba.fastjson.JSONObject;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
@@ -16,19 +14,11 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
@@ -47,58 +37,109 @@
    @ApiOperation("【WMS】推送入库单通知任务")
    @PostMapping("/push/inboundNotice")
    @LoginNoRequired
    public WmsBaseResponse inboundNotice(HttpServletRequest request, HttpServletResponse response)   {
        doPringParam(request,"【WMS】推送入库单通知任务");
        return new WmsBaseResponse();
    public WmsBaseResponse inboundNotice(@RequestBody WmsBaseRequest<WmsInboundNoticeRequest> param) {
        int success = Constants.ZERO;
        WmsBaseResponse result =null;
        try {
            result = wmsService.inboundNotice(param);
        }catch (BusinessException e){
            log.error("【WMS】推送入库单通知任务===失败:"+e.getMessage());
            success = Constants.ONE;
        }catch (Exception e){
            log.error("【WMS】推送入库单通知任务===失败:"+e.getMessage());
            e.printStackTrace();
            success = Constants.ONE;
        }finally {
            wmsService.saveInterfaceLog("/wms/push/inboundNotice", "推送入库单通知任务",JSONObject.toJSONString(param),
                    success, JSONObject.toJSONString(result),Constants.ONE);
        }
        return result;
    }
    @ApiOperation("【WMS】推送出库单通知任务")
    @LoginNoRequired
    @PostMapping("/push/outboundNotice")
    public WmsBaseResponse outboundNotice(HttpServletRequest request, HttpServletResponse response)   {
        doPringParam(request,"【WMS】推送出库单通知任务");
        return new WmsBaseResponse();
    public WmsBaseResponse outboundNotice(@RequestBody WmsBaseRequest<WmsOutboundNoticeRequest> param) {
        int success = Constants.ZERO;
        WmsBaseResponse result =null;
        try {
            result = wmsService.outboundNotice(param);
        }catch (BusinessException e){
            log.error("【WMS】推送出库单通知任务===失败:"+e.getMessage());
            success = Constants.ONE;
        }catch (Exception e){
            log.error("【WMS】推送出库单通知任务===失败:"+e.getMessage());
            e.printStackTrace();
            success = Constants.ONE;
        }finally {
            wmsService.saveInterfaceLog("/wms/push/outboundNotice", "推送出库单通知任务",JSONObject.toJSONString(param),success
                    , JSONObject.toJSONString(result),Constants.ONE);
        }
        return result;
    }
    @ApiOperation("【WMS】推送取消入库单通知任务")
    @LoginNoRequired
    @PostMapping("/push/cancelInbound")
    public WmsBaseResponse cancelInbound(HttpServletRequest request, HttpServletResponse response)   {
        doPringParam(request,"【WMS】推送取消入库单通知任务");
        return new WmsBaseResponse();
    public WmsBaseResponse cancelInbound(@RequestBody WmsBaseRequest<WmsActionNoticeRequest> param) {
        int success = Constants.ZERO;
        WmsBaseResponse result =null;
        try {
            result = wmsService.cancelInbound(param);
        }catch (BusinessException e){
            log.error("【WMS】推送取消入库单通知任务===失败:"+e.getMessage());
            success = Constants.ONE;
        }catch (Exception e){
            log.error("【WMS】推送取消入库单通知任务===失败:"+e.getMessage());
            e.printStackTrace();
            success = Constants.ONE;
        }finally {
            wmsService.saveInterfaceLog("/wms/push/cancelInbound", "推送取消入库单通知任务",JSONObject.toJSONString(param),
                    success, JSONObject.toJSONString(result),Constants.ONE);
        }
        return result;
    }
    @ApiOperation("【WMS】推送取消出库单通知任务")
    @LoginNoRequired
    @PostMapping("/push/cancelOutbound")
    public WmsBaseResponse cancelOutbound(HttpServletRequest request, HttpServletResponse response)   {
        doPringParam(request,"【WMS】推送取消出库单通知任务");
        return new WmsBaseResponse();
    public WmsBaseResponse cancelOutbound(@RequestBody WmsBaseRequest<WmsActionNoticeRequest> param) {
        int success = Constants.ZERO;
        WmsBaseResponse result =null;
        try {
            result = wmsService.cancelOutbound(param);
        }catch (BusinessException e){
            log.error("【WMS】推送取消出库单通知任务===失败:"+e.getMessage());
            success = Constants.ONE;
        }catch (Exception e){
            log.error("【WMS】推送取消出库单通知任务===失败:"+e.getMessage());
            e.printStackTrace();
            success = Constants.ONE;
        }finally {
            wmsService.saveInterfaceLog("/wms/push/cancelOutbound", "推送取消出库单通知任务",
                    JSONObject.toJSONString(param),  success, JSONObject.toJSONString(result),Constants.ONE);
        }
        return result;
    }
    @ApiOperation("【WMS】推送出入库作业完成通知任务")
    @LoginNoRequired
    @PostMapping("/push/doneTask")
    public WmsBaseResponse doneTask(HttpServletRequest request, HttpServletResponse response)   {
        doPringParam(request,"【WMS】推送出入库作业完成通知任务");
        return new WmsBaseResponse();
    }
    private void doPringParam(HttpServletRequest request,String name) {
    public WmsBaseResponse doneTask(@RequestBody WmsBaseRequest<WmsActionNoticeRequest> param) {
        int success = Constants.ZERO;
        WmsBaseResponse result = null;
        try {
            StringBuilder data =new StringBuilder();
            String line;
            BufferedReader reader =request.getReader();
            while(null !=(line = reader.readLine())) {
                data.append(line);
            }
            if(StringUtils.isNotBlank( data.toString())){
                log.info(name+"=================参数:"+ data.toString());
            }else {
                log.info(name+"=================:参数为空");
            }
            result = wmsService.doneTask(param);
        }catch (BusinessException e){
            log.error("【WMS】推送出入库作业完成通知任务===失败:"+e.getMessage());
            success = Constants.ONE;
        }catch (Exception e){
            log.info(name+"================= å‚数异常:"+e.getMessage());
            log.error("【WMS】推送出入库作业完成通知任务===失败:"+e.getMessage());
            e.printStackTrace();
            success = Constants.ONE;
        }finally {
            wmsService.saveInterfaceLog("/wms/push/doneTask", "推送出入库作业完成通知任务",JSONObject.toJSONString(param),
                    success, JSONObject.toJSONString(result),Constants.ONE);
        }
        return result;
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.utils.Constants;
import com.doumee.core.wms.model.response.WmsBaseResponse;
import com.doumee.service.business.WmsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "WMS平台数据推送接口")
@RestController
@Slf4j
@LoginNoRequired
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/wms/test")
public class WmsPushCloudTestController extends BaseController {
    @Autowired
    private WmsService wmsService;
    @ApiOperation("【WMS】推送入库单通知任务")
    @PostMapping("/push/inboundNotice")
    @LoginNoRequired
    public WmsBaseResponse inboundNotice(HttpServletRequest request, HttpServletResponse response)   {
        doPringParam(request,"【WMS】推送入库单通知任务");
        return new WmsBaseResponse();
    }
    @ApiOperation("【WMS】推送出库单通知任务")
    @LoginNoRequired
    @PostMapping("/push/outboundNotice")
    public WmsBaseResponse outboundNotice(HttpServletRequest request, HttpServletResponse response)   {
        doPringParam(request,"【WMS】推送出库单通知任务");
        return new WmsBaseResponse();
    }
    @ApiOperation("【WMS】推送取消入库单通知任务")
    @LoginNoRequired
    @PostMapping("/push/cancelInbound")
    public WmsBaseResponse cancelInbound(HttpServletRequest request, HttpServletResponse response)   {
        doPringParam(request,"【WMS】推送取消入库单通知任务");
        return new WmsBaseResponse();
    }
    @ApiOperation("【WMS】推送取消出库单通知任务")
    @LoginNoRequired
    @PostMapping("/push/cancelOutbound")
    public WmsBaseResponse cancelOutbound(HttpServletRequest request, HttpServletResponse response)   {
        doPringParam(request,"【WMS】推送取消出库单通知任务");
        return new WmsBaseResponse();
    }
    @ApiOperation("【WMS】推送出入库作业完成通知任务")
    @LoginNoRequired
    @PostMapping("/push/doneTask")
    public WmsBaseResponse doneTask(HttpServletRequest request, HttpServletResponse response)   {
        doPringParam(request,"【WMS】推送出入库作业完成通知任务");
        return new WmsBaseResponse();
    }
    private void doPringParam(HttpServletRequest request,String name) {
        try {
            StringBuilder data =new StringBuilder();
            String line;
            BufferedReader reader =request.getReader();
            while(null !=(line = reader.readLine())) {
                data.append(line);
            }
            if(StringUtils.isNotBlank( data.toString())){
                log.info(name+"=================参数:"+ data.toString());
            }else {
                log.info(name+"=================:参数为空");
            }
        }catch (Exception e){
            log.info(name+"================= å‚数异常:"+e.getMessage());
        }
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyParamRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
import java.util.List;
@Data
public class TransparentChannelBodyParamRequest {
 private String  indexCode    ; //    String    false    è®¾å¤‡ç¼–码
 private Integer  operationType        ; //Number    false    æ“ä½œç±»åž‹
 private List<TransparentChannelBodyRegionRequest> regions    ; //     æ˜¾ç¤ºåŒºä¿¡æ¯é›†åˆ
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRegionRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class TransparentChannelBodyRegionRequest {
 private Integer  regionNo    ; //    Number    false    æ˜¾ç¤ºåŒºåŸŸå·
 private Integer  regionType    ; //    Number    false    åŒºåŸŸç±»åž‹(14:发送文字,45:语音播报)
 private String  content        ; //String    false    å†…容
 private Integer  circleTimes    ; //    Number    false    å¾ªçŽ¯æ¬¡æ•°
 private Integer  regionLeftTopXPos    ; //    Number    false    åŒºåŸŸå·¦ä¸Šè§’x坐标
 private Integer  regionLeftTopYPos        ; //Number    false    åŒºåŸŸå·¦ä¸Šè§’y坐标
 private Integer  regionRightBottomXPos    ; //    Number    false    åŒºåŸŸå³ä¸‹è§’x坐标
 private Integer  regionRightBottomYPos        ; //Number    false    åŒºåŸŸå³ä¸‹è§’y坐标
 /*{
  "regionNo": 1,
         "regionType": 14,
         "content": "欢迎光临: E021--浙AD1234,这是第一行",
         "circleTimes": 1,
         "regionLeftTopXPos": 0,
         "regionLeftTopYPos": 0,
         "regionRightBottomXPos": 255,
         "regionRightBottomYPos": 31,
         "fontColor": 2,
         "actionType": 32,
         "speed": 13,
         "stayTime": 1,
         "fontSize": 31
 }*/
    /**
     * Number    false    æ»šåŠ¨æ–¹å¼ï¼ˆSTATIC_DISPLAY = 0x01,
     * // é™æ­¢æ˜¾ç¤º/立即显示/翻页显示    LEFT_MOVE = 0x1C,
     * // å‘左移动    RIGHT_MOVE = 0x1D,
     * // å‘右移动    UP_MOVE = 0x1A,
     * // å‘上移动    DOWN_MOVE = 0x1B,
     * // å‘下移动    LEFT_LOOP = 0x1E,
     * // å‘左连续移动    RIGHT_LOOP = 0x1F,
     * // å‘右连续移动    UP_LOOP = 0x20,
     * // å‘上连续移动    DOWN_LOOP = 0x21,
     * // å‘下连续移动    TWINKLE = 0x29
     * // é—ªçƒï¼‰
      */
    private Integer  actionType        ; //
 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/TransparentChannelBodyRequest.java
@@ -11,34 +11,5 @@
  * regionNo为1代表第一行,依次类推,不同型号的LED设备支持的行数可能不一样;
  */
 private String method    ; //String    true    æ–¹æ³•名,控制led必须写ControlLedGereral
 private String  indexCode    ; //    String    false    è®¾å¤‡ç¼–码
 private Integer  operationType        ; //Number    false    æ“ä½œç±»åž‹
 private Integer  regionNo    ; //    Number    false    æ˜¾ç¤ºåŒºåŸŸå·
 private Integer  regionType    ; //    Number    false    åŒºåŸŸç±»åž‹(14:发送文字,45:语音播报)
 private String  content        ; //String    false    å†…容
 private Integer  circleTimes    ; //    Number    false    å¾ªçŽ¯æ¬¡æ•°
 private Integer  regionLeftTopXPos    ; //    Number    false    åŒºåŸŸå·¦ä¸Šè§’x坐标
 private Integer  regionLeftTopYPos        ; //Number    false    åŒºåŸŸå·¦ä¸Šè§’y坐标
 private Integer  regionRightBottomXPos    ; //    Number    false    åŒºåŸŸå³ä¸‹è§’x坐标
 private Integer  regionRightBottomYPos        ; //Number    false    åŒºåŸŸå³ä¸‹è§’y坐标
    /**
     * Number    false    æ»šåŠ¨æ–¹å¼ï¼ˆSTATIC_DISPLAY = 0x01,
     * // é™æ­¢æ˜¾ç¤º/立即显示/翻页显示    LEFT_MOVE = 0x1C,
     * // å‘左移动    RIGHT_MOVE = 0x1D,
     * // å‘右移动    UP_MOVE = 0x1A,
     * // å‘上移动    DOWN_MOVE = 0x1B,
     * // å‘下移动    LEFT_LOOP = 0x1E,
     * // å‘左连续移动    RIGHT_LOOP = 0x1F,
     * // å‘右连续移动    UP_LOOP = 0x20,
     * // å‘上连续移动    DOWN_LOOP = 0x21,
     * // å‘下连续移动    TWINKLE = 0x29
     * // é—ªçƒï¼‰
      */
    private Integer  actionType        ; //
 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:白色)
 private TransparentChannelBodyParamRequest  params    ; //    String    false    è®¾å¤‡ç¼–码
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
@@ -121,6 +121,8 @@
    @ApiModelProperty(value = "车牌号")
    @ExcelColumn(name="车牌号",index = 5,width = 16)
    private String carNo;
    @ApiModelProperty(value = "访客单号")
    private String invoicesNo;
    @ApiModelProperty(value = "照片uri")
    private String photoUrl;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java
@@ -140,7 +140,7 @@
     */
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void updateByIdInBatch(List<MemberCard> memberCards,Integer type,LoginUserInfo userInfo) {
    public void updateByIdInBatch(List<MemberCard> memberCards,Integer type,LoginUserInfo userInfo){
        if (CollectionUtils.isEmpty(memberCards)) {
            return;
        }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -939,6 +939,7 @@
    }
    public static void saveUserActionBiz(Member updateMember,LoginUserInfo user, Constants.UserActionType type,UserActionJoinMapper userActionMapper,String content) {
        updateMember.setEditDate(updateMember.getEditDate()==null?new Date():updateMember.getEditDate());
        UserAction userAction=new UserAction();
        userAction.setIsdeleted(Constants.ZERO);
        userAction.setCreateDate(updateMember.getEditDate());
@@ -1082,6 +1083,7 @@
        update.setEditor(loginUserInfo.getId());
        update.setCanVisit(member.getCanVisit());
        memberMapper.updateById(update);
        member.setEditDate(update.getEditDate());
        //记录操作日志
        saveUserActionBiz(member,loginUserInfo,Constants.equalsInteger(member.getCanVisit(),Constants.ONE)?Constants.UserActionType.CANVISIT:Constants.UserActionType.CANCEL_VISIT,userActionJoinMapper,null);
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -7,9 +7,7 @@
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.*;
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;
@@ -459,6 +457,9 @@
        if(request.getData().getTargetPerson() ==null){
            request.getData().setTargetPerson(new EventVisitIccmTargetParamRequest());
        }
        if(request.getData().getVisitorInvoices() == null){
            request.getData().setVisitorInvoices(new EventVisitIccmInvoiceParamRequest());
        }
        VisitEvent event = new VisitEvent();
        event.setIsdeleted(Constants.ZERO);
        event.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime()));
@@ -488,7 +489,7 @@
        event.setPhotoUrl(getHkImgUrl(detail.getFacePic()));
        event.setPersonName(detail.getVisitorName());
        event.setCarNo(detail.getPlateNo());
        event.setInvoicesNo(request.getData().getVisitorInvoices().getInvoicesNo());//访客单号
        event.setIdType(detail.getCertType());
        String idnum = detail.getCertNo();
        if(StringUtils.isNotBlank(idnum)){
@@ -577,6 +578,7 @@
        event.setPhotoUrl(getHkImgUrl(request.getData().getPhotoUrl()));
        event.setPersonName(request.getData().getPersonName());
        event.setCarNo(request.getData().getCarNo());
        event.setInvoicesNo(request.getData().getVisitorId());
        event.setCaptureUrl(request.getData().getCaptureUrl());
        if(StringUtils.isNotBlank(request.getData().getCaptureUrl())){
            event.setCaptureUrl(HKConstants.IMG_INDEX+request.getData().getCaptureUrl());
@@ -619,7 +621,6 @@
        retention.setMemberId(visits.getMemberId());
//        retention.setDeviceName(request.getSrcName());
//        retention.setDeviceIndex(request.getSrcIndex());
        return retention;
    }
@@ -1040,24 +1041,30 @@
                continue;
            }
            if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是LED
                TransparentChannelBodyRequest request = new TransparentChannelBodyRequest();
                TransparentChannelBodyRequest body = new TransparentChannelBodyRequest();
                TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
                TransparentChannelBodyParamRequest request = new TransparentChannelBodyParamRequest();
                TransparentChannelBodyRegionRequest regions = new TransparentChannelBodyRegionRequest();
                head.setAbility("cld");//固定值
                head.setTreatyType("haixuan_led_net");//固定值
                head.setDeviceIndexCode(device.getHkId());
                request.setMethod("ControlLedGereral");//固定值
                body.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);
                regions.setActionType(0);
                regions.setContent(content);
                regions.setRegionNo(1);
                regions.setRegionType(14);
                regions.setFontColor(2);
                regions.setCircleTimes(1);//循环次数
                regions.setFontSize(31);//
                regions.setStayTime(1);//单位??
                request.setRegions(new ArrayList<>());
                request.getRegions().add(regions);
                body.setParams(request);
                HKService.transparentchannel(head,body);
            }else  if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是广播点
                broadcastList.add(device.getHkId());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java
@@ -14,6 +14,7 @@
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.WmsService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +37,8 @@
    private PlatformGroupMapper platformGroupMapper;
    @Autowired
    private CarsMapper carsMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private PlatformJobMapper platformJobMapper;
    @Autowired
@@ -213,7 +216,6 @@
                        .last("limit 1" ));
                if(job == null){
                    PlatformJob model =dealJobBizInbound(param);
                    job = new PlatformWmsJob();
                    job.setCreateDate(new Date());
@@ -282,17 +284,30 @@
        job.setIsdeleted(Constants.ZERO);
        job.setType(Constants.platformJobType.wxcxh);//默认是外协车卸货
        job.setStatus(Constants.PlatformJobStatus.WAIT_CONFIRM.getKey());//默认待确认状态
        job.setBillCode(param.getCarrierBillCode());
        job.setCarrierName(param.getCarrierName());
        job.setCarCodeFront(param.getPlateNumber());
        job.setDrivierPhone(param.getDriverPhone());
        job.setDriverName(param.getDriverName());
        //处理作业的车辆、司机、月台组关联关系,卸货
        dealCarPlatformAndDriverInfo(job,0);
        platformJobMapper.insert(job);
        return job;
    }
    private void dealCarPlatformAndDriverInfo(PlatformJob job,int type) {
        //查询车辆是否自有车,以及jobNum表示但求作业数量(非已离园的作业数)
        Cars car = carsMapper.selectOne(new QueryWrapper<Cars>()
                .select("*,(select count(1) from platform_job b where b.plate_num='"+param.getPlateNumber()+"' and b.status in("+
                .select("*,(select count(1) from platform_job b where b.plate_num='"+job.getCarCodeFront()+"' and b.status in("+
                        Constants.PlatformJobStatus.LEAVED.getKey()+")) as jobNum")
                .lambda()
                .eq(Cars::getIsdeleted,Constants.ZERO)
                .eq(Cars::getType,Constants.ONE)
                .eq(Cars::getCode,param.getPlateNumber()));
                .eq(Cars::getCode,job.getCarCodeFront()));
        if(car !=null){
            //如果是自有物流车
            job.setType(Constants.platformJobType.zycxh);//自有车卸货
            job.setType(type==0?Constants.platformJobType.zycxh:Constants.platformJobType.zyczh);//自有车卸货/装货
            job.setCarCodeBack(job.getCarCodeFront());//自有车默认前后车牌一样
            if(Constants.equalsInteger(car.getInStatus(),Constants.ONE) && car.getJobNum() == 0) {
                //如果车辆在园
                job.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());//在园无作业状态,则自动【已签到】处理
@@ -303,37 +318,35 @@
                .eq(PlatformGroup::getType,Constants.ONE)
                .last("limit 1") );//查询卸货月台组编码
        job.setPlatformGroupId(group!=null?group.getId():null);
        Member driver =  memberMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>()
                .selectAll(Member.class)
                .selectAs(Company::getCompanyNamePath,Member::getCompanyNamePath)
                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                .eq(Member::getIsdeleted,Constants.ZERO)
                .eq(Member::getPhone,job.getDrivierPhone())
                .last("limit 1") );//查询装货月台组编码
        if(driver!=null){
            job.setDriverId(driver.getId());
            job.setCompanyId(driver.getCompanyId());
            job.setCompanyNamePath(driver.getCompanyNamePath());
        }
        platformJobMapper.insert(job);
        return job;
    }
    private PlatformJob dealJobBizOutbound(WmsOutboundNoticeRequest param) {
        PlatformJob job = new PlatformJob();
        job.setCreateDate(new Date());
        job.setIsdeleted(Constants.ZERO);
        job.setType(Constants.platformJobType.wxczh);//默认是外协车装好
        job.setStatus(Constants.PlatformJobStatus.WAIT_CONFIRM.getKey());//默认待确认状态
        //查询车辆是否自有车,以及jobNum表示但求作业数量(非已离园的作业数)
        Cars car = carsMapper.selectOne(new QueryWrapper<Cars>()
                .select("*,(select count(1) from platform_job b where b.plate_num='"+param.getPlateNumber()+"' and b.status in("+
                        Constants.PlatformJobStatus.LEAVED.getKey()+")) as jobNum")
                .lambda()
                .eq(Cars::getIsdeleted,Constants.ZERO)
                .eq(Cars::getType,Constants.ONE)
                .eq(Cars::getCode,param.getPlateNumber()));
        if(car !=null){
            //如果是自有物流车
            job.setType(Constants.platformJobType.zyczh);//自有车装货
            if(Constants.equalsInteger(car.getInStatus(),Constants.ONE) && car.getJobNum() == 0) {
                //如果车辆在园
                job.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());//在园无作业状态,则自动【已签到】处理
            }
        }
        PlatformGroup group = platformGroupMapper.selectOne(new QueryWrapper<PlatformGroup>().lambda()
                .eq(PlatformGroup::getIsdeleted,Constants.ZERO)
                .eq(PlatformGroup::getType,Constants.ZERO)
                .last("limit 1") );//查询装货月台组编码
        job.setPlatformGroupId(group!=null?group.getId():null);
        platformJobMapper.insert(job);
        job.setBillCode(param.getCarrierBillCode());
        job.setCarrierName(param.getCarrierName());
        job.setCarCodeFront(param.getPlateNumber());
        job.setDrivierPhone(param.getDriverPhone());
        job.setDriverName(param.getDriverName());
        //处理作业的车辆、司机、月台组关联关系,装货
        dealCarPlatformAndDriverInfo(job,1);
        return job;
    }
    /**