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