From de21f15d5b96a714b012337cf8c5d6a53548590f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 28 二月 2024 10:23:53 +0800
Subject: [PATCH] 整理
---
server/dmvisit_admin/src/main/resources/application.yml | 4 +-
server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/DeviceEventDTO.java | 3 +
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java | 44 +++++++++++++++++++++
admin/src/components/business/OperaVisitsDesWindow.vue | 44 ++++++++++++++++++++--
server/dmvisit_screen/src/main/resources/application.yml | 2
admin/src/views/business/visits.vue | 3 +
admin/package-lock.json | 5 ++
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java | 4 +
admin/package.json | 1
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java | 4 +
10 files changed, 102 insertions(+), 12 deletions(-)
diff --git a/admin/package-lock.json b/admin/package-lock.json
index 09a1716..697ba46 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -10969,6 +10969,11 @@
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
"dev": true
},
+ "qrcodejs2": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmmirror.com/qrcodejs2/-/qrcodejs2-0.0.2.tgz",
+ "integrity": "sha512-+Y4HA+cb6qUzdgvI3KML8GYpMFwB24dFwzMkS/yXq6hwtUGNUnZQdUnksrV1XGMc2mid5ROw5SAuY9XhI3ValA=="
+ },
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&sync_timestamp=1616385328325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz",
diff --git a/admin/package.json b/admin/package.json
index b66161d..8a4a61b 100644
--- a/admin/package.json
+++ b/admin/package.json
@@ -18,6 +18,7 @@
"element-ui": "^2.3.6",
"js-cookie": "^2.2.1",
"js-file-download": "^0.4.12",
+ "qrcodejs2": "0.0.2",
"vue": "^2.6.11",
"vue-clipboard2": "^0.3.1",
"vue-router": "^3.5.1",
diff --git a/admin/src/components/business/OperaVisitsDesWindow.vue b/admin/src/components/business/OperaVisitsDesWindow.vue
index 706aa05..abe4ef6 100644
--- a/admin/src/components/business/OperaVisitsDesWindow.vue
+++ b/admin/src/components/business/OperaVisitsDesWindow.vue
@@ -1,15 +1,16 @@
<template>
<GlobalWindow
:title="title"
- width="60%"
+ width="70%"
:visible.sync="visible"
+ append-to-body
:confirm-working="isWorking"
@confirm="confirm"
>
<div class="list">
<div class="list_item">
<div class="list_item_label">鎷滆淇℃伅</div>
- <div class="list_item_val" v-if="info">
+ <div class="list_item_val" v-if="info" style="display: inline-block">
<div class="list_item_val_item">鎷滆瀵规柟锛歿{info.receptMemberName}} - {{info.receptMemberDepartment}}</div>
<div class="list_item_val_item">鎷滆鏃堕棿锛歿{info.starttime}} 鑷� {{info.endtime}}</div>
<div class="list_item_val_item">鎷滆浜嬬敱锛歿{info.reason}}</div>
@@ -17,7 +18,10 @@
<div class="list_item_val_item">鐢宠闂ㄧ锛歿{info.deviceRoleList ? info.deviceRoleList.map(item => item.name).join(' | ') : ''}}</div>
<div class="list_item_val_item">鍒涘缓鏃堕棿锛歿{info.createDate}}</div>
</div>
- </div>
+ <div class="list_item_val" v-if="info" style="display: inline-block;float: right">
+ <div class="list_item_val_item" id="qrcode2" ref="qrcode2"></div>
+ </div>
+ </div>
<div class="list_item">
<div class="list_item_label">璁垮淇℃伅</div>
<div class="list_item_table" v-if="info">
@@ -92,6 +96,13 @@
</el-table-column>
<el-table-column
width="150"
+ label="璁垮浜岀淮鐮�">
+ <template slot-scope="{row}">
+ <div :id="`qrcode${row.id}`" :ref="`qrcode${row.id}`"></div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ width="150"
label="浜鸿劯鐓х墖">
<template slot-scope="{row}">
<el-image
@@ -139,6 +150,7 @@
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { queryById } from '@/api/business/visits'
+import QRCode from "qrcodejs2";
export default {
name: 'OperaVisitsWindow',
extends: BaseOpera,
@@ -146,8 +158,11 @@
data () {
return {
list: [],
- info: null
+ info: null,
+ innerVisible:false
}
+ },
+ created () {
},
methods: {
getAge (val) {
@@ -163,6 +178,17 @@
return calculationAge - 1
}
},
+ crateQrcodeShow (div,qrcode1) {
+ if(qrcode1 ==null ||qrcode1 ==''){
+ return;
+ }
+ this.qr = new QRCode(div, {
+ width: 90,
+ height: 90,
+ text: qrcode1
+ })
+ },
+
open (title, id) {
this.title = title
this.visible = true
@@ -170,6 +196,16 @@
.then(res => {
console.log(res)
this.info = res
+ this.$nextTick(() => {
+ // this.$refs.qrcode2.innerHTML = ''
+ // this.crateQrcodeShow('qrcode2',res.qrcode)
+ if(this.info.withUserList ){
+ this.info.withUserList.forEach(row => {
+ this.$refs['qrcode'+row.id].innerHTML = ''
+ this.crateQrcodeShow('qrcode'+row.id,row.qrcode)
+ })
+ }
+ })
})
}
}
diff --git a/admin/src/views/business/visits.vue b/admin/src/views/business/visits.vue
index 231b220..7b03f38 100644
--- a/admin/src/views/business/visits.vue
+++ b/admin/src/views/business/visits.vue
@@ -108,6 +108,7 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow'
+
export default {
name: 'Visits',
extends: BaseTable,
@@ -131,6 +132,6 @@
'field.main': 'id'
})
this.search()
- }
+ },
}
</script>
diff --git a/server/dmvisit_admin/src/main/resources/application.yml b/server/dmvisit_admin/src/main/resources/application.yml
index a91f8c2..07c8e2d 100644
--- a/server/dmvisit_admin/src/main/resources/application.yml
+++ b/server/dmvisit_admin/src/main/resources/application.yml
@@ -10,7 +10,7 @@
# application:
# name: doumeemes
profiles:
- active: devYL
+ active: dev
# JSON杩斿洖閰嶇疆
jackson:
@@ -67,7 +67,7 @@
compression:
enabled: true
mime-types: application/json
- port: 10028
+ port: 10033
tomcat:
max-swallow-size: -1
servlet:
diff --git a/server/dmvisit_screen/src/main/resources/application.yml b/server/dmvisit_screen/src/main/resources/application.yml
index d27c0e8..cb40363 100644
--- a/server/dmvisit_screen/src/main/resources/application.yml
+++ b/server/dmvisit_screen/src/main/resources/application.yml
@@ -70,7 +70,7 @@
enabled: true
mime-types: application/json
- port: 10029
+ port: 10032
tomcat:
max-swallow-size: -1
servlet:
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/DeviceEventDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/DeviceEventDTO.java
index 35b60fb..7dc0ece 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/DeviceEventDTO.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/DeviceEventDTO.java
@@ -115,7 +115,8 @@
@ApiModelProperty(value = "浜哄憳鍚嶇О")
private String personName;
-
+ @ApiModelProperty(value = "浜哄憳缂栫爜")
+ private String memberId;
@ApiModelProperty(value = "璇诲崱鍣ㄧ被鍒�0-鏃犳晥1-IC璇诲崱鍣�2-韬唤璇佽鍗″櫒3-浜岀淮鐮佽鍗″櫒4-鎸囩汗澶�")
private Integer extEventReaderKind;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java
index 6aa8bcf..ed3919c 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceEventServiceImpl.java
@@ -368,6 +368,7 @@
.leftJoin(Device.class,Device::getHkId,DeviceEvent::getSrcParentIndex)
.selectAll(DeviceEvent.class)
.selectAs(Member::getName,DeviceEventDTO::getPersonName)
+ .selectAs(Member::getId,DeviceEventDTO::getMemberId)
.selectAs(Member::getType,DeviceEventDTO::getPersonType)
.selectAs(Member::getPhone,DeviceEventDTO::getPersonPhone)
.selectAs(Member::getIdcardDecode,DeviceEventDTO::getPersonIdcardDecode)
@@ -375,7 +376,7 @@
.selectAs(Company::getName,DeviceEventDTO::getPersonCompanyName);
queryWrapper.like(number, Member::getPhone, pageWrap.getModel().getKeyWords())
.like((b||hasWord),Member::getName, pageWrap.getModel().getKeyWords())
- .eq(StringUtils.isNotBlank(pageWrap.getModel().getPersonType()),
+ .eq(StringUtils.equals(pageWrap.getModel().getPersonType(),Constants.TWO+""),
Member::getType,
pageWrap.getModel().getPersonType())
.eq(Objects.nonNull(pageWrap.getModel().getEventType()),
@@ -387,6 +388,7 @@
.le(Objects.nonNull(pageWrap.getModel().getEndTime()),
DeviceEvent::getCreateDate,
pageWrap.getModel().getEndTime())
+ .isNull(!StringUtils.isNotBlank(pageWrap.getModel().getPersonType()) && !StringUtils.equals(pageWrap.getModel().getPersonType(),Constants.TWO+""),Member::getId)//闄や簡鍐呴儴浜哄憳閮芥槸澶栨潵璁垮
.orderByDesc(DeviceEvent::getCreateDate);
queryWrapper.orderByDesc(DeviceEvent::getHappenTime);
IPage<DeviceEventDTO> deviceEventDTOIPage = deviceEventJoinMapper.selectJoinPage(page, DeviceEventDTO.class, queryWrapper);
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
index 252bf9e..c12d4e2 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
@@ -145,7 +145,9 @@
// .eq(ParkBook::getIsdeleted, Constants.ZERO)
.and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getPhone,pageWrap.getModel().getMemberName())
.or().like(Member::getName,pageWrap.getModel().getMemberName()));
- queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getCarCode()),ParkBook::getCarCode,pageWrap.getModel().getCarCode());
+ queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCarCode()),ParkBook::getCarCode,pageWrap.getModel().getCarCode());
+ queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName());
+ queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getParksName()),Parks::getName,pageWrap.getModel().getParksName());
queryWrapper.orderByDesc(ParkBook::getCreateDate);
IPage<ParkBook> result = parkBookJoinMapper.selectJoinPage(page, ParkBook.class,queryWrapper);
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
index da073fe..63d2d81 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -1,6 +1,7 @@
package com.doumee.service.business.impl.hksync;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -8,6 +9,7 @@
import com.doumee.core.haikang.model.param.BaseListPageResponse;
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.visit.EventVisitInfoRequest;
import com.doumee.core.haikang.model.param.respose.*;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.utils.Constants;
@@ -16,9 +18,11 @@
import com.doumee.core.utils.ImageBase64Util;
import com.doumee.core.wx.wxPlat.WxPlatNotice;
import com.doumee.dao.business.DeviceRoleMapper;
+import com.doumee.dao.business.RetentionMapper;
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.DeviceRole;
import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Retention;
import com.doumee.dao.business.model.Visits;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
@@ -38,6 +42,8 @@
public class HkSyncVisitServiceImpl extends HkSyncBaseServiceImpl {
@Autowired
private VisitsJoinMapper visitsMapper;
+ @Autowired
+ private RetentionMapper retentionMapper;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
@Autowired
@@ -112,6 +118,11 @@
update.setOutDate(DateUtil.getISO8601DateByStr2(model.getVisitEndTime()));
update.setRemark("宸茬绂�");
visitsMapper.updateById(update);
+
+ //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級
+ retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
+ .eq(Retention::getType,Constants.memberType.visitor)
+ .eq(Retention::getMemberId,c.getMemberId()));
}
}
if (model.getVisitorStatus()!=null&& "7,8".contains( model.getVisitorStatus()+"")){
@@ -126,6 +137,12 @@
update.setOutDate(DateUtil.getISO8601DateByStr2(model.getVisitEndTime()));
update.setRemark("瓒呮椂鏈鍒�");
visitsMapper.updateById(update);
+ //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級
+ retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
+ .eq(Retention::getType,Constants.memberType.visitor)
+ .eq(Retention::getMemberId,c.getMemberId()));
+ //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
+ retentionMapper.insert(getRetentionModelByVisitRequest(c,update.getInDate()));
}
}
}
@@ -135,6 +152,29 @@
Constants.DEALING_HK_VISIT_EXPIRE =false;
}
}
+
+ private Retention getRetentionModelByVisitRequest(Visits visits,Date date) {
+ Retention retention = new Retention();
+ retention.setIsdeleted(Constants.ZERO);
+ retention.setCreateDate(date);
+ retention.setClasses(visits.getClasses());
+ retention.setCode(visits.getCode());
+ retention.setIdcardNo(visits.getIdcardNo());
+ retention.setIdcardDecode(visits.getIdcardDecode());
+ retention.setName(visits.getName());
+ retention.setBirthday(visits.getBirthday());
+ retention.setType(visits.getMemberType());
+ retention.setCompanyId(visits.getCompanyId());
+ retention.setCompanyName(visits.getCompanyName());
+ retention.setEventDate(retention.getCreateDate());
+ retention.setFaceImg(visits.getFaceImg());
+ retention.setImgurl(visits.getImgurl());
+ retention.setPhone(visits.getPhone());
+ retention.setMemberId(visits.getMemberId());
+
+ return retention;
+ }
+
public AppointmentInfoResponse getVisitRecord(String orderId){
//鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
if(StringUtils.isBlank(orderId)){
@@ -411,7 +451,9 @@
}
private List<Visits> getExpireVisitList() {
MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
- queryWrapper.selectAll(Visits.class);
+ queryWrapper.selectAll(Visits.class)
+ .selectAs(Member::getType,Visits::getMemberType)
+ .leftJoin(Member.class,Member::getId,Visits::getReceptMemberId);
queryWrapper.in(Visits::getStatus, Arrays.asList(new Integer[]{Constants.VisitStatus.xfSuccess,Constants.VisitStatus.signin}) );
List<Visits> list = visitsMapper.selectJoinList(Visits.class,queryWrapper);
return list;
--
Gitblit v1.9.3