From 7f17cd5b503840c750e03ca9f51e780b7991f462 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 29 四月 2025 16:03:06 +0800 Subject: [PATCH] 最新版本541200007 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 398 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 282 insertions(+), 116 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java index 63e3e04..5fca7fd 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java @@ -1,6 +1,7 @@ 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; @@ -24,15 +25,17 @@ 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.VisitsService; import com.doumee.service.business.impl.PlatformWarnEventServiceImpl; import com.doumee.service.business.third.TmsService; import com.doumee.service.business.third.model.request.TmsOrderInfoRequest; 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.checkerframework.checker.units.qual.C; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -89,6 +92,8 @@ private PlatformJobMapper platformJobMapper; @Autowired private TmsService tmsService; + @Autowired + private VisitsService visitsService; @Autowired private PlatformWmsDetailMapper platformWmsDetailMapper; @Autowired @@ -229,6 +234,7 @@ .last("limit 1" )); InoutRecord record = new InoutRecord(); record.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime())); + record.setTimeInfo(Utils.Date.getStart(record.getCreateDate())); record.setType(Constants.ONE);//浜哄憳 record.setMemberType(Constants.ZERO);//榛樿涓烘湭鐭ヤ汉鍛橈紙璁垮锛� record.setIsdeleted(Constants.ZERO); @@ -554,6 +560,7 @@ delRetentionLis.add(visits.getMemberId()); InoutRecord record = new InoutRecord(); record.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime())); + record.setTimeInfo(Utils.Date.getStart(record.getCreateDate())); record.setType(Constants.ONE);//浜哄憳 record.setMemberType(Constants.ZERO); record.setIsdeleted(Constants.ZERO); @@ -812,13 +819,15 @@ List<CarEvent> list = new ArrayList<>(); List<Retention> retentionList = new ArrayList<>(); List<String> delRetentionList = new ArrayList<>(); + List<Integer> delMemberRetentionList = new ArrayList<>(); InoutDayCount inoutDayCount = new InoutDayCount(); + List<InoutRecord> inoutRecordList = new ArrayList<>(); for(EventParkInfoRequest request : events){ if(request.getData() ==null ||StringUtils.isBlank(request.getData().getPlateNo())){ continue; } //灏佽浜嬩欢淇℃伅琛ㄥ璞� - list.add(getParkEventModelByRequest(request,delRetentionList,retentionList,inoutDayCount)); + list.add(getParkEventModelByRequest(request,delRetentionList,retentionList,delMemberRetentionList,inoutDayCount,inoutRecordList)); } if(list.size()>0){ //鎻掑叆闂ㄧ璁板綍 @@ -830,9 +839,19 @@ .eq(Retention::getType,Constants.THREE) .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::getMemberId,delMemberRetentionList)); + } if(retentionList.size()>0){ //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳 retentionMapper.insert(retentionList); + } + if(inoutRecordList.size()>0){ + //鍐嶆彃鍏ユ渶鏂扮殑浜鸿溅鍑哄叆鏄庣粏 + inoutRecordMapper.insert(inoutRecordList); } dealInoutDayCountBiz(inoutDayCount); log.info("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========鎴愬姛======="); @@ -849,7 +868,243 @@ * @param request * @return */ - private CarEvent getParkEventModelByRequest(EventParkInfoRequest request, List<String> delRetentionList , List<Retention> retentionList,InoutDayCount inoutDayCount ) { + private CarEvent getParkEventModelByRequest(EventParkInfoRequest request + , List<String> delRetentionList + , List<Retention> retentionList + , List<Integer> delMemberRetentionList + , InoutDayCount inoutDayCount + , List<InoutRecord> inoutRecordList) { + CarEvent event =initCarEventModelByRequest(request); + if(StringUtils.isNotBlank(event.getPlateNos())){ + //鏍囪杞﹁締杩涘嚭璁板綍 + List<Visits> visitsList = null; + InoutRecord carrecord = new InoutRecord(); + carrecord.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime())); + carrecord.setTimeInfo(Utils.Date.getStart(carrecord.getCreateDate())); + carrecord.setType(Constants.ZERO);//杞﹁締 + carrecord.setIsdeleted(Constants.ZERO); + carrecord.setObjType(Constants.ZERO); + carrecord.setHkEventId(request.getEventId()); + carrecord.setCarCode(event.getPlateNos()); + Cars carModel = carsMapper.selectJoinOne(Cars.class,new MPJLambdaWrapper<Cars>() + .selectAll(Cars.class ) + .selectAs(Company::getType,Cars::getCompanyType) + .selectAs(Member::getName,Cars::getMemberName) + .selectAs(Member::getIdcardDecode,Cars::getIdcardDecode) + .selectAs(Member::getCode,Cars::getMemberCode) + .selectAs(Member::getFaceImg,Cars::getFaceImg) + .selectAs(Member::getIdcardNo,Cars::getIdcardNo) + .selectAs(Member::getName,Cars::getMemberName) + .selectAs(Member::getPhone,Cars::getMemberPhone) + .selectAs(Company::getCompanyNamePath,Cars::getCompanyName) + .selectAs(Category::getBizType,Cars::getBizType) + .leftJoin(Company.class,Company::getId,Cars::getGroupId) + .leftJoin(Category.class,Category::getId,Cars::getCateId) + .leftJoin(Member.class,Member::getId,Cars::getMemberId) + .eq(Cars::getCode,event.getPlateNos()) + .eq(Cars::getIsdeleted,Constants.ZERO) + .last(" limit 1")); + if(carModel!=null){ + //0瀹夋嘲鍏姟杞� 1瀹夋嘲鑷湁鐗╂祦杞� 2鍏跺畠 + event.setMemberId(carModel.getMemberId()); + event.setCompanyId(carModel.getGroupId()); + //-----------------20250429鏀归��----start--------------- + event.setCarType(carModel.getBizType());//杞﹁締涓氬姟绫诲瀷 + carrecord.setObjType(Constants.FOUR); + carrecord.setMemberName(carModel.getMemberName());//鍙告満 + carrecord.setMemberPhone(carModel.getMemberPhone());//鍙告満 + carrecord.setObjId(carModel.getId()); + carrecord.setObjType(Constants.ZERO); + carrecord.setFaceImg(carModel.getFaceImg()); + carrecord.setIdcardDecode(carModel.getIdcardDecode()); + carrecord.setIdcardNo(carModel.getIdcardNo()); + carrecord.setMemberCode(carModel.getMemberCode()); + carrecord.setCompanyId(carModel.getGroupId()); + carrecord.setCompanyName(carModel.getCompanyName()); + carrecord.setMemberType( Constants.RetentionMemberType.car);//鍙槸杞﹁締鐨勮褰� + if(carModel.getMemberId()!=null){ + if(Constants.equalsInteger(carModel.getCompanyType(),Constants.ONE)){ + //鍐呴儴缁勭粐 + carrecord.setMemberType(Constants.RetentionMemberType.internalMember); + }else{ + //鐩稿叧鏂圭粍缁� + carrecord.setMemberType( Constants.RetentionMemberType.relMember); + } + } +// carrecord.setMemberPhone(carTypeJob.getDrivierPhone()); + //-----------------20250429鏀归��----end--------------- + } + if(event.getCarType() ==null || event.getCarType().equals(Constants.RetentionCarType.other)){//濡傛灉涓鸿瘑鍒埌杞﹀瀷 + PlatformJob carTypeJob = platformJobMapper.selectJoinOne(PlatformJob.class, + new MPJLambdaWrapper<PlatformJob>(). selectAll(PlatformJob.class) + .selectAs(PlatformGroup::getType,PlatformJob::getGroupType) + .leftJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId) + .eq(PlatformJob::getCarCodeFront,event.getPlateNos()) + .eq(PlatformJob::getIsdeleted,Constants.ZERO) + .orderByAsc(PlatformJob::getCreateDate) + .last(" limit 1")); + if(carTypeJob!=null ) { + /** + * 濡傛灉闈炲浐瀹氳溅杈嗭紝妫�鏌ユ槸鍚﹁揣杩愯溅杈� + * 璐ц繍杞﹁締浼樺厛绾э細 + * 1銆佸畨娉拌嚜鏈夎溅锛氳揣杩愯溅杈�-瀹夋嘲鐗╂祦璐ц繍杞﹁締(鍥哄畾杞﹁締涓婇潰宸插鐞嗭紝姝ゅ涓嶈�冭檻锛� + * 2銆亀ms鎺ㄩ�佺殑鐗╂祦杞﹁締锛堥潪鑷湁杞︼級锛氳揣杩愯溅杈�-澶栧崗杩愯緭杞﹁締 瀵瑰簲grouptype涓猴細瀹夋嘲鐗╂祦鍗歌揣 2 + * 3銆佸畨娉扮殑棰勭害鍏ュ洯杞﹁締锛氳揣杩愯溅杈�-鍔犲伐鐑熷嵏璐ц溅杈� 瀵瑰簲grouptype涓�0瀹夋嘲鐗╂祦鍗歌揣 2甯傚叕鍙稿嵏璐� + * 4銆佸競鍏徃鐨勯绾﹀叆鍥溅杈嗭細璐ц繍杞﹁締-甯傚叕鍙稿嵏璐ц溅杈� + */ + carrecord.setMemberName(carTypeJob.getDriverName());//鍙告満 + carrecord.setMemberPhone(carTypeJob.getDrivierPhone());//鍙告満 + carrecord.setObjId(carTypeJob.getId()); + carrecord.setMemberId(carTypeJob.getDriverId());//鍙告満缂栫爜 + carrecord.setObjType(Constants.FOUR); + carrecord.setCompanyId(carTypeJob.getCompanyId()); + carrecord.setCompanyName(carTypeJob.getCompanyNamePath()); + carrecord.setMemberType(Constants.RetentionMemberType.car); + if(carModel.getMemberPhone()!=null || StringUtils.isNotBlank(carModel.getMemberName())){ + //璐ц繍鍙告満(濡傛灉鍙告満鎵嬫満鍙锋垨鑰呭鍚嶄笉涓虹┖锛� + carrecord.setMemberType(Constants.RetentionMemberType.driver); + } + //濡傛灉闈炲浐瀹氳溅杈嗭紝鍒欐煡璇㈡槸鍚﹁揣杩愯溅杈� 浣滀笟绫诲瀷 0鑷湁杞﹀嵏璐� 1鑷湁杞﹁璐� 2澶栧崗杞﹀嵏璐� 3澶栧崗杞﹁璐� 4甯傚叕鍙稿鍗忚溅鍗歌揣 + if(Constants.equalsInteger(carTypeJob.getOrigin(),Constants.ONE)){ + //濡傛灉鏄帹閫佺殑wms闈炶嚜鏈夎溅 + event.setCarType(Constants.RetentionCarType.wxysCar);//澶栧崗杞� + }else if(Constants.equalsInteger(carTypeJob.getType(),Constants.FOUR)){ + if(Constants.equalsInteger(carTypeJob.getGroupType(),Constants.TWO)){ + ///瀹夋嘲鐨勯绾﹀叆鍥溅杈嗭細璐ц繍杞﹁締-鍔犲伐鐑熷嵏璐ц溅杈� + event.setCarType(Constants.RetentionCarType.jgyxhCar);//鍔犲伐鐑熷嵏璐ц溅杈� + }else if(Constants.equalsInteger(carTypeJob.getGroupType(),Constants.TWO)){ + //甯傚叕鍙哥殑棰勭害鍏ュ洯杞﹁締锛氳揣杩愯溅杈�-甯傚叕鍙稿嵏璐ц溅杈� + event.setCarType(Constants.RetentionCarType.sgsxhCar);//甯傚叕鍙稿嵏璐ц溅杈� + } + } + } + } + //澶勭悊鑷湁杞﹁嚜鍔ㄧ鍒颁笟鍔� + dealSelTruckAutoSignBiz(request,event); + if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){ + //濡傛灉鏄叆鍘傛斁琛� + delRetentionList.add(event.getPlateNos()); + delMemberRetentionList.add(event.getMemberId()); + retentionList.add(getRetentionModelByParkRequest(request,event));//鍦ㄥ巶杞﹁締淇℃伅 + inoutDayCount.setInCarNum(Constants.formatIntegerNum(inoutDayCount.getInCarNum())+1); + carrecord.setInOrOut(Constants.ZERO); + }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){ + //濡傛灉鏄嚭鍦烘斁琛� + delRetentionList.add(event.getPlateNos()); + delMemberRetentionList.add(event.getMemberId()); + inoutDayCount.setOutCarNum(Constants.formatIntegerNum(inoutDayCount.getOutCarNum())+1); + carrecord.setInOrOut(Constants.ZERO); + } + //杞﹁締杩涘叆璁板綍瀵瑰簲涓氬姟绫诲瀷 + if(event.getCarType() ==null || event.getCarType().equals(Constants.RetentionCarType.other)){//濡傛灉涓鸿瘑鍒埌杞﹀瀷 + //濡傛灉涓嶆槸鍥哄畾杞� 涔熶笉鏄揣杩愯溅杈嗭紝鍒欐鏌ユ槸鍚︽槸璁垮杞� + visitsList = visitsMapper.selectList(new QueryWrapper<Visits>().lambda() + .eq(Visits::getCarNos,event.getPlateNos()) + .eq(Visits::getIsdeleted,Constants.ZERO ) + .in(Visits::getStatus,Constants.VisitStatus.signin)//鏈�杩戜竴涓凡鍒拌揪鎴栬�呭凡绛剧 + .isNull(Visits::getParentId) + .orderByDesc(Visits::getId) +// .last("limit 1" ) + ); + if(visitsList!=null && visitsList.size()>0){ + //鏈�杩戜娇鐢ㄨ杞︾殑鐢宠浜猴紙宸插埌杈撅級 + event.setMemberId(visitsList.get(0).getMemberId()); + event.setCarType(Constants.RetentionCarType.fkCar); + int index =0; + for(Visits v :visitsList){ + delMemberRetentionList.add(event.getMemberId()); + InoutRecord copyObj = new InoutRecord(); + BeanUtils.copyProperties(carrecord,copyObj); + copyObj.setMemberId(v.getMemberId()); + copyObj.setMemberName(v.getName()); + copyObj.setMemberPhone(v.getPhone()); + copyObj.setCompanyName(v.getCompanyName()); + copyObj.setCarBizType(Constants.RetentionCarType.fkCar); + copyObj.setMemberType(Constants.ZERO); + copyObj.setRemark(carrecord.getCarCode()); + copyObj.setCarCode(index>=0?null:carrecord.getCarCode()); + copyObj.setMemberType(Constants.RetentionMemberType.fk); + inoutRecordList.add(copyObj); + index++; + if(Constants.equalsInteger(carrecord.getInOrOut(),Constants.ONE)){ + //濡傛灉鏄溅杈嗗嚭鍥尯锛岃瀹㈢敵璇疯嚜鍔ㄧ绂� + visitsService.visitLevelForCarOut(v); + }else{ + //濡傛灉鏄繘鍏ュ洯鍖猴紝璁垮褰曞叆鍦ㄥ洯浜哄憳璁板綍 + retentionList.add(getRetentionModelByRequest(copyObj,request)); + } + } + } + } + //杞﹁締杩涘叆璁板綍瀵瑰簲涓氬姟绫诲瀷 + if(event.getCarType() !=null && event.getCarType().equals(Constants.RetentionCarType.fkCar)) { + //褰曞叆闈炶瀹㈢被鍨嬭溅杈嗚繘鍑鸿褰� + carrecord.setCarBizType(event.getCarType()==null?Constants.RetentionCarType.other:event.getCarType()); + if(Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.internalMember) + ||Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.relMember) + ||Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.driver)){ + retentionList.add(getRetentionModelByRequest(carrecord,request)); + } + inoutRecordList.add(carrecord); + } + + + } + return event; + } + + private void dealSelTruckAutoSignBiz(EventParkInfoRequest request, CarEvent event) { + ParkBook cars = parkBookMapper.selectOne(new QueryWrapper<ParkBook>().lambda() + .eq(ParkBook::getCarCode,event.getPlateNos()) + .eq(ParkBook::getHkStatus,Constants.ONE ) + .eq(ParkBook::getIsdeleted,Constants.ZERO ) + .last("limit 1" )); + if(cars!=null){ + event.setMemberId(cars.getMemberId()); + //鑷湁杞� 鏌ヨ褰撳墠鏄惁鏈夊緟绛惧埌鐨勪换鍔� + if(carsMapper.selectCount(new QueryWrapper<Cars>() + .lambda().eq(Cars::getCode,event.getPlateNos()) + .eq(Cars::getType,Constants.ONE) + .eq(Cars::getIsdeleted,Constants.ZERO) + )>Constants.ZERO){ + //鏌ヨ杞﹁締褰撳墠鏄惁瀛樺湪杩涜涓殑浠诲姟 + if( platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda() + .eq(PlatformJob::getCarCodeFront,event.getPlateNos()) + .eq(PlatformJob::getIsdeleted,Constants.ZERO) + .in(PlatformJob::getStatus, + Constants.PlatformJobStatus.IN_WAIT.getKey(), + Constants.PlatformJobStatus.CALLED.getKey(), + Constants.PlatformJobStatus.WORKING.getKey(), + Constants.PlatformJobStatus.TRANSFERING.getKey(), + Constants.PlatformJobStatus.EXCEPTION.getKey() + ) + )==Constants.ZERO){//濡傛灉娌¤繘琛屼腑浠诲姟 + PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda() + .eq(PlatformJob::getCarCodeFront,event.getPlateNos()) + .eq(PlatformJob::getIsdeleted,Constants.ZERO) + .in(PlatformJob::getStatus, + Constants.PlatformJobStatus.WAIT_CONFIRM.getKey(), + Constants.PlatformJobStatus.WART_SIGN_IN.getKey() + ) + .orderByAsc(PlatformJob::getCreateDate) + .last(" limit 1") + ); + if(Objects.nonNull(platformJob)){ + if(Constants.equalsInteger(platformJob.getType(),Constants.ONE)){ + //濡傛灉鏄嚜鏈夎溅瑁呰揣鑷姩绛惧埌 + jobAutoSignBiz(platformJob); + }else if(Constants.equalsInteger(platformJob.getType(),Constants.ZERO)){ + //濡傛灉鏄嚜鏈夎溅鍗歌揣 鏌ヨTMS鍚堝悓鐘舵�侊紝鍐冲畾鏄惁鑷姩绛惧埌 + checkTmsContractStatusBiz(platformJob); + } + + } + } + } + } + } + + private CarEvent initCarEventModelByRequest(EventParkInfoRequest request) { CarEvent event = new CarEvent(); event.setIsdeleted(Constants.ZERO); event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); @@ -887,7 +1142,7 @@ event.setEventCmd(request.getData().getEventCmd()); event.setCardNo(request.getData().getCardNo()); event.setCarAttributeName(request.getData().getCarAttributeName()); - event.setCarType(Constants.RetentionCarType.unknown);//榛樿鏈櫥璁拌溅杈� + event.setCarType(Constants.RetentionCarType.other);//榛樿鏈櫥璁拌溅杈� if(request.getData().getInResult()!=null && request.getData().getInResult().getRlsResult() !=null ){ //鏀捐鏂瑰紡 event.setReleaseWay(request.getData().getInResult().getRlsResult().getReleaseWay()); @@ -900,116 +1155,6 @@ //杞﹁締鍜屽拰杞︾墝鐓х墖 event.setVehiclePicUrl(getHkImgUrl(request.getData().getPicUrl().getVehiclePicUrl())); event.setPlatePicUrl(getHkImgUrl(request.getData().getPicUrl().getPlatePicUrl())); - } - if(StringUtils.isNotBlank(event.getPlateNos())){ - Cars carModel = carsMapper.selectJoinOne(Cars.class,new MPJLambdaWrapper<Cars>() - .selectAll(Cars.class ) - .selectAs(Company::getType,Cars::getCompanyType) - .leftJoin(Company.class,Company::getId,Cars::getGroupId) - .eq(Cars::getCode,event.getPlateNos()) - .eq(Cars::getIsdeleted,Constants.ZERO) - .last(" limit 1")); - if(carModel!=null){ - //0瀹夋嘲鍏姟杞� 1瀹夋嘲鑷湁鐗╂祦杞� 2鍏跺畠 - event.setMemberId(carModel.getMemberId()); - event.setCompanyId(carModel.getGroupId()); - if(Constants.equalsInteger(carModel.getType(),Constants.ONE)){ - event.setCarType(Constants.RetentionCarType.selfTruck); - }else { - if(Constants.equalsInteger(carModel.getCompanyType(),Constants.ONE)){ - event.setCarType(Constants.RetentionCarType.internal);//鍐呴儴杞﹁締 - }else{ - event.setCarType(Constants.RetentionCarType.relation);//鐩稿叧鏂硅溅杈� - } - } - } - PlatformJob carTypeJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda() - .eq(PlatformJob::getCarCodeFront,event.getPlateNos()) - .eq(PlatformJob::getIsdeleted,Constants.ZERO) - .orderByAsc(PlatformJob::getCreateDate) - .last(" limit 1")); - if(carTypeJob!=null){ - //浣滀笟绫诲瀷 0鑷湁杞﹀嵏璐� 1鑷湁杞﹁璐� 2澶栧崗杞﹀嵏璐� 3澶栧崗杞﹁璐� 4甯傚叕鍙稿鍗忚溅鍗歌揣 - if(Constants.equalsInteger(carTypeJob.getType(),Constants.FOUR)){ - event.setCarType(Constants.RetentionCarType.cityComTruck);//甯傚叕鍙歌溅杈� - }else if(Constants.equalsInteger(carTypeJob.getType(),Constants.TWO) - || Constants.equalsInteger(carTypeJob.getType(),Constants.THREE)){ - event.setCarType(Constants.RetentionCarType.outTruck);//澶栧崗杞� - }else{ - event.setCarType(Constants.RetentionCarType.selfTruck);//鑷湁杞� - } - } - - ParkBook cars = parkBookMapper.selectOne(new QueryWrapper<ParkBook>().lambda() - .eq(ParkBook::getCarCode,event.getPlateNos()) - .eq(ParkBook::getIsdeleted,Constants.ZERO ) - .last("limit 1" )); - if(cars!=null){ - event.setMemberId(cars.getMemberId()); - //鑷湁杞� 鏌ヨ褰撳墠鏄惁鏈夊緟绛惧埌鐨勪换鍔� - if(carsMapper.selectCount(new QueryWrapper<Cars>() - .lambda().eq(Cars::getCode,event.getPlateNos()) - .eq(Cars::getType,Constants.ONE) - .eq(Cars::getIsdeleted,Constants.ZERO) - )>Constants.ZERO){ - //鏌ヨ杞﹁締褰撳墠鏄惁瀛樺湪杩涜涓殑浠诲姟 - if( platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda() - .eq(PlatformJob::getCarCodeFront,event.getPlateNos()) - .eq(PlatformJob::getIsdeleted,Constants.ZERO) - .in(PlatformJob::getStatus, - Constants.PlatformJobStatus.IN_WAIT.getKey(), - Constants.PlatformJobStatus.CALLED.getKey(), - Constants.PlatformJobStatus.WORKING.getKey(), - Constants.PlatformJobStatus.TRANSFERING.getKey(), - Constants.PlatformJobStatus.EXCEPTION.getKey() - ) - )==Constants.ZERO){//濡傛灉娌¤繘琛屼腑浠诲姟 - PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda() - .eq(PlatformJob::getCarCodeFront,event.getPlateNos()) - .eq(PlatformJob::getIsdeleted,Constants.ZERO) - .in(PlatformJob::getStatus, - Constants.PlatformJobStatus.WAIT_CONFIRM.getKey(), - Constants.PlatformJobStatus.WART_SIGN_IN.getKey() - ) - .orderByAsc(PlatformJob::getCreateDate) - .last(" limit 1") - ); - if(Objects.nonNull(platformJob)){ - if(Constants.equalsInteger(platformJob.getType(),Constants.ONE)){ - //濡傛灉鏄嚜鏈夎溅瑁呰揣鑷姩绛惧埌 - jobAutoSignBiz(platformJob); - }else if(Constants.equalsInteger(platformJob.getType(),Constants.ZERO)){ - //濡傛灉鏄嚜鏈夎溅鍗歌揣 鏌ヨTMS鍚堝悓鐘舵�侊紝鍐冲畾鏄惁鑷姩绛惧埌 - checkTmsContractStatusBiz(platformJob); - } - - } - } - }; - }else{ - Visits visits = visitsMapper.selectOne(new QueryWrapper<Visits>().lambda() - .eq(Visits::getCarNos,event.getPlateNos()) - .eq(Visits::getIsdeleted,Constants.ZERO ) - .in(Visits::getStatus,Constants.VisitStatus.signin,Constants.VisitStatus.signout)//鏈�杩戜竴涓凡鍒拌揪鎴栬�呭凡绛剧 - .isNull(Visits::getParentId) - .orderByDesc(Visits::getId) - .last("limit 1" )); - if(visits!=null){ - //鏈�杩戜娇鐢ㄨ杞︾殑鐢宠浜猴紙宸插埌杈撅級 - event.setMemberId(visits.getMemberId()); - event.setCarType(Constants.RetentionCarType.visitor); - } - } - if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){ - //濡傛灉鏄叆鍘傛斁琛� - delRetentionList.add(event.getPlateNos()); - retentionList.add(getRetentionModelByParkRequest(request,event)); - inoutDayCount.setInCarNum(Constants.formatIntegerNum(inoutDayCount.getInCarNum())+1); - }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){ - //濡傛灉鏄嚭鍦烘斁琛� - delRetentionList.add(event.getPlateNos()); - inoutDayCount.setOutCarNum(Constants.formatIntegerNum(inoutDayCount.getOutCarNum())+1); - } } return event; } @@ -1055,8 +1200,28 @@ } platformJobMapper.updateById(platformJob); } - - private Retention getRetentionModelByParkRequest(EventParkInfoRequest request,CarEvent event) { + private Retention getRetentionModelByRequest(InoutRecord inoutRecord, EventParkInfoRequest request) { + Retention retention = new Retention(); + retention.setIsdeleted(Constants.ZERO); + retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); + retention.setCode(inoutRecord.getMemberCode()); + retention.setIdcardNo(inoutRecord.getIdcardNo()); + retention.setIdcardDecode(inoutRecord.getIdcardDecode()); + retention.setName(inoutRecord.getMemberName()); + retention.setType(inoutRecord.getMemberType()); + retention.setCompanyId(inoutRecord.getCompanyId()); + retention.setCompanyName(inoutRecord.getCompanyName()); + retention.setEventCode(request.getEventType()+""); + retention.setEventDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); + retention.setFaceImg(inoutRecord.getFaceImg()); + retention.setPhone(inoutRecord.getMemberPhone()); + retention.setMemberId(inoutRecord.getMemberId()); + retention.setDeviceName(request.getSrcName()); + retention.setDeviceIndex(request.getSrcIndex()); + retention.setRemark("璺熼殢杞﹁締鍏ュ洯鍖�"); + return retention; + } + private Retention getRetentionModelByParkRequest(EventParkInfoRequest request,CarEvent event ) { Retention retention = new Retention(); retention.setIsdeleted(Constants.ZERO); retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); @@ -1067,6 +1232,7 @@ retention.setCompanyId(event.getCompanyId()); // retention.setDeviceName(request.getSrcName()); // retention.setDeviceIndex(request.getSrcIndex()); + return retention; } -- Gitblit v1.9.3