From 1c20c8231980a8d4b91688ff8641a06d3b2f68ab Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 14 十月 2025 16:34:22 +0800 Subject: [PATCH] 改bug --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 725 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 572 insertions(+), 153 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 ec27f56..525300d 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 @@ -24,6 +24,7 @@ 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; @@ -31,8 +32,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.extern.slf4j.Slf4j; 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; @@ -70,11 +70,15 @@ @Autowired private CarEventMapper carEventMapper; @Autowired + private CategoryMapper categoryMapper; + @Autowired private VisitEventMapper visitEventMapper; @Autowired private VisitsJoinMapper visitsMapper; @Autowired private RetentionMapper retentionMapper; + @Autowired + private InoutRecordMapper inoutRecordMapper; @Autowired private PlatformMapper platformMapper; @Autowired @@ -87,6 +91,8 @@ private PlatformJobMapper platformJobMapper; @Autowired private TmsService tmsService; + @Autowired + private VisitsService visitsService; @Autowired private PlatformWmsDetailMapper platformWmsDetailMapper; @Autowired @@ -121,6 +127,7 @@ List<DeviceEvent> list = new ArrayList<>(); List<Integer> delRetentionLis = new ArrayList<>(); List<Retention> retentionList = new ArrayList<>(); + List<InoutRecord> inoutRecordList = new ArrayList<>(); InoutDayCount inoutDayCount = new InoutDayCount(); for(EventAcsInfoRequest request : events){ EventDeviceDataRequest model = request.getData(); @@ -128,7 +135,7 @@ continue; } //鏍规嵁鎺ㄩ�佷汉鍛樼紪鐮侊紝澶勭悊鍦ㄥ満銆佺鍦轰汉鍛樻暟鎹褰� - dealMemberDataByRequest(request,delRetentionLis,retentionList,inoutDayCount); + dealMemberDataByRequest(request,delRetentionLis,retentionList,inoutDayCount,inoutRecordList); //灏佽闂ㄧ浜嬩欢淇℃伅琛ㄥ璞� list.add(getDeviceEventModelByRequest(request)); } @@ -139,12 +146,16 @@ if(delRetentionLis.size()>0){ //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳锛� retentionMapper.delete(new UpdateWrapper<Retention>().lambda() - .eq(Retention::getType,Constants.memberType.internal) +// .eq(Retention::getType,Constants.memberType.internal) .in(Retention::getMemberId,delRetentionLis)); } if(retentionList.size()>0){ //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳 retentionMapper.insert(retentionList); + } + if(inoutRecordList.size()>0){ + //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳 + inoutRecordMapper.insert(inoutRecordList); } dealInoutDayCountBiz(inoutDayCount); log.info("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========鎴愬姛======="); @@ -199,12 +210,17 @@ * @param delRetentionLis * @param retentionList */ - private void dealMemberDataByRequest(EventAcsInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList,InoutDayCount inoutDayCount) { + private void dealMemberDataByRequest(EventAcsInfoRequest request + , List<Integer> delRetentionLis + , List<Retention> retentionList + ,InoutDayCount inoutDayCount + ,List<InoutRecord> inoutRecordList) { //娴峰悍浜哄憳缂栫爜 String userNo = request.getData().getExtEventPersonNo(); if(StringUtils.isNotBlank(userNo)){ Member member = memberMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>() .selectAll(Member.class) + .selectAs(Company::getCompanyNamePath,Member::getCompanyNamePath) .selectAs(Company::getType,Member::getCompanyType) .leftJoin(Company.class,Company::getId,Member::getCompanyId) .eq(Member::getHkId,userNo) @@ -215,31 +231,57 @@ .eq(Device::getDoorId,request.getSrcIndex()) .eq(Device::getIsdeleted,Constants.ZERO) .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.setDeviceName(request.getSrcName()); + record.setMemberType(Constants.RetentionMemberType.fk);//榛樿涓烘湭鐭ヤ汉鍛橈紙璁垮锛� + record.setIsdeleted(Constants.ZERO); + record.setHkEventId(request.getEventId()); + record.setHkId(userNo); if(d!=null && Constants.equalsInteger(d.getIsEntrance(),Constants.ONE)){ - if(Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE){ + if(Constants.formatIntegerNum(request.getData().getExtEventInOut()) == Constants.ONE){ //濡傛灉鏄繘闂紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰� + record.setInOrOut(Constants.ZERO); inoutDayCount.setInMemberNum(Constants.formatIntegerNum(inoutDayCount.getInMemberNum())+1);//鍏ュ満浜烘 }else{ + //濡傛灉鏄嚭闂� + record.setInOrOut(Constants.ONE); inoutDayCount.setOutMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutMemberNum())+1);//绂诲満浜烘 } } if(member !=null){ + record.setMemberId(member.getId()); + record.setMemberName(member.getName()); + record.setMemberPhone(member.getPhone()); + record.setObjId(member.getId()); + record.setObjType(Constants.ONE); + record.setCompanyId(member.getCompanyId()); + record.setCompanyName(member.getCompanyNamePath()); if(d!=null && Constants.equalsInteger(d.getIsEntrance(),Constants.ONE)){ delRetentionLis.add(member.getId()); if( Constants.formatIntegerNum(request.getData().getExtEventInOut()) == Constants.ONE){ //濡傛灉鏄繘闂紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰� - retentionList.add(getRetentionModelByRequest(member,request)); if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){ + record.setMemberType(Constants.RetentionMemberType.internalMember); inoutDayCount.setInSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getInSelfMemberNum())+1);//鍐呴儴浜哄憳鍏ュ満浜烘 }else{ + record.setMemberType(Constants.RetentionMemberType.relMember); inoutDayCount.setInOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getInOtherMemberNum())+1);//鐩稿叧鏂瑰叆鍦轰汉娆� } + retentionList.add(getRetentionModelByRequest(member,request,record.getMemberType())); }else{ if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){ + record.setMemberType(Constants.RetentionMemberType.internalMember); inoutDayCount.setOutSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutSelfMemberNum())+1);//鍐呴儴浜哄憳鍑哄満浜烘 }else{ + record.setMemberType(Constants.RetentionMemberType.relMember); inoutDayCount.setOutOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutOtherMemberNum())+1);//鐩稿叧鏂瑰嚭鍦轰汉娆� } + } + if(record.getMemberType()!=null){ + inoutRecordList.add(record); } } } @@ -330,7 +372,7 @@ * @param request * @return */ - private Retention getRetentionModelByRequest(Member member, EventAcsInfoRequest request) { + private Retention getRetentionModelByRequest(Member member, EventAcsInfoRequest request,int memberType) { Retention retention = new Retention(); retention.setIsdeleted(Constants.ZERO); retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); @@ -340,7 +382,7 @@ retention.setIdcardDecode(member.getIdcardDecode()); retention.setName(member.getName()); retention.setBirthday(member.getBirthday()); - retention.setType(member.getType()); + retention.setType(memberType); retention.setCompanyId(member.getCompanyId()); retention.setCompanyName(member.getCompanyName()); retention.setEventCode(request.getData().getExtEventCode()+""); @@ -428,6 +470,7 @@ List<VisitEvent> list = new ArrayList<>(); List<Integer> delRetentionLis = new ArrayList<>(); List<Retention> retentionList = new ArrayList<>(); + List<InoutRecord> inoutRecordList = new ArrayList<>(); InoutDayCount inoutDayCount = new InoutDayCount(); for(EventVisitIccmInfoRequest request : events){ if(request.getData() ==null || request.getData().getVisitorInvoices() ==null){ @@ -437,7 +480,7 @@ continue; } //娴峰悍璁垮璁板綍缂栫爜 - dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,inoutDayCount); + dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,inoutDayCount,inoutRecordList); list.add(getVisitEventModelByRequestIccm(request,request.getData().getVisitorInformationList().get(0))); } if(list.size()>0){ @@ -454,6 +497,10 @@ //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳 retentionMapper.insert(retentionList); } + if(inoutRecordList.size()>0){ + //鎵归噺鎻掑叆浜哄憳鍑哄叆璁板綍 + inoutRecordMapper.insert(inoutRecordList); + } dealInoutDayCountBiz(inoutDayCount); log.info("銆愭捣搴疯瀹簨浠舵帹閫併��========鎴愬姛======="); }catch (Exception e){ @@ -466,7 +513,11 @@ /** * 鏍规嵁璁垮鎺ㄩ�佽瀹㈣褰曠紪鐮侊紝澶勭悊璁垮璁板綍銆佸湪鍦轰汉鍛樼瓑淇℃伅 */ - private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList, InoutDayCount inoutDayCount) { + private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request + , List<Integer> delRetentionLis + , List<Retention> retentionList + , InoutDayCount inoutDayCount + ,List<InoutRecord> inoutRecordList) { EventVisitIccmDataRequest model = request.getData(); EventVisitIccmInvoiceParamRequest data = request.getData().getVisitorInvoices(); MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>(); @@ -509,13 +560,36 @@ updateVistis.setOutInfo("璁垮姝e父绛剧"); } delRetentionLis.add(visits.getMemberId()); - }else{ - //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垏鏄瀹㈤�氳锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級 + }else if(!(request.getData().getParamValues()!=null + && StringUtils.isNotBlank(request.getData().getParamValues().getPlateNos()) + && StringUtils.isNotBlank(request.getData().getParamValues().getParkIndex()))){ + //鍙鐞嗚瀹㈤棬绂侀�氳閫氳锛� + //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級 delRetentionLis.add(visits.getMemberId()); + InoutRecord record = new InoutRecord(); + record.setDeviceName((request.getData()!=null &&request.getData().getParamValues()!=null)? + request.getData().getParamValues().getSrcName():request.getSrcName()); + record.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime())); + record.setTimeInfo(Utils.Date.getStart(record.getCreateDate())); + record.setType(Constants.ONE);//浜哄憳 + record.setMemberType(Constants.RetentionMemberType.fk); + record.setIsdeleted(Constants.ZERO); + record.setMemberName(visits.getName()); + record.setObjId(visits.getId()); + record.setMemberId(visits.getMemberId()); + record.setObjType(Constants.TWO); + record.setMemberPhone(visits.getPhone()); + record.setCompanyName(visits.getCompanyName()); + record.setInOrOut(Constants.ZERO); + record.setHkEventId(request.getEventId()); + record.setHkId(visits.getHkId()); + record.setDeviceName((request.getData()!=null &&request.getData().getParamValues()!=null)? + request.getData().getParamValues().getSrcName():request.getSrcName()); //濡傛灉鏄瀹㈤�氳 - if(request.getData()!=null&&request.getData().getParamValues()!=null && - StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){ - //濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰� + if(request.getData()!=null + &&request.getData().getParamValues()!=null + &&StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){ + //濡傛灉鏄瀹㈣繘鍏ワ紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰� Retention r = getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType()); r.setCarNo(request.getData().getParamValues().getPlateNos()); r.setAccessType(request.getData().getParamValues().getAccessType()); @@ -523,11 +597,50 @@ r.setDeviceIndex(request.getData().getParamValues().getSrcIndex()); retentionList.add(r); inoutDayCount.setInVisitorNum(Constants.formatIntegerNum(inoutDayCount.getInVisitorNum())+1); + record.setInOrOut(Constants.ZERO);//杩涘叆鍥尯 } if(request.getData()!=null&&request.getData().getParamValues()!=null && - !StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){ + !StringUtils.equals(request.getData().getParamValues().getInOrOut(),"0")){ inoutDayCount.setOutVisitorNum(Constants.formatIntegerNum(inoutDayCount.getOutVisitorNum())+1); + record.setInOrOut(Constants.ONE);//绂诲洯 } + if( request.getData().getParamValues()!=null + && StringUtils.isNotBlank(request.getData().getParamValues().getPlateNos()) + && StringUtils.isNotBlank(request.getData().getParamValues().getParkIndex())) { + //濡傛灉鏄仠杞﹀満浜嬩欢锛岃褰曡溅杈嗙被鍨� + Category category = null; + record.setCarCode(request.getData().getParamValues().getPlateNos()); + if (StringUtils.isNotBlank(record.getCarCode())) { + category = categoryMapper.selectJoinOne(Category.class, new MPJLambdaWrapper<Category>() + .selectAll(Category.class) + .select("t4.name", Category::getParentName) + .leftJoin("category t4 on t.parent_id=t4.id") + .eq(Category::getIsdeleted, Constants.ZERO) + .eq(Category::getBizType, Constants.RetentionCarType.fkCar) + .last("limit 1")); + if (category == null) { + category = new Category(); + category.setName("璁垮杞﹁締"); + } + category.setParentName(StringUtils.defaultString(category.getParentName(), "璁垮杞﹁締")); + } + record.setCarBizType(Constants.RetentionCarType.fkCar); + record.setCategoryId(category.getId()); + record.setDeviceName(request.getData().getParamValues().getGateName()); + record.setCategoryName(category.getName()); + record.setCategoryParentId(category.getParentId()); + record.setCategoryParentName(category.getParentName()); + if (Constants.equalsInteger(record.getInOrOut(), Constants.ONE)) { + record.setRemark("璁垮璺熼殢杞﹁締绂诲洯骞惰嚜鍔ㄧ绂�"); + try { + //璁垮鐢宠鑷姩绛剧 + visitsService.visitLevelForCarOut(visits); + } catch (Exception e) { + log.error("璁垮璺熼殢杞﹁締鍑哄洯鑷姩绛剧澶辫触锛�===========" + e.getMessage()); + } + } + } + inoutRecordList.add(record);//杩涘嚭璁板綍 } updateVistis.setEditDate(new Date()); //鏇存柊璁垮鏉ヨ鎴栬�呯绂绘椂闂翠俊鎭� @@ -591,6 +704,10 @@ event.setSrcParentIndex(request.getSrcParentIndex()); event.setSrcName((request.getData()!=null &&request.getData().getParamValues()!=null)? request.getData().getParamValues().getSrcName():request.getSrcName()); + if(StringUtils.isBlank(event.getSrcName())){ + event.setSrcName((request.getData()!=null &&request.getData().getParamValues()!=null)? + request.getData().getParamValues().getGateName()+ request.getData().getParamValues().getParkIndex():request.getSrcName()); + } event.setSrcIndex(request.getSrcIndex()); event.setSex(detail.getSex()); event.setPurpose(request.getData().getVisitorInvoices().getVisitReason()); @@ -749,7 +866,9 @@ String result = null; log.info("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========寮�濮�=========锛歕n"+JSONObject.toJSONString(param)); try { - if(param == null || param.getParams() == null || param.getParams().getEvents()==null){ + if(param == null + || param.getParams() == null + || param.getParams().getEvents()==null){ return null; } //闂ㄧ浜嬩欢闆嗗悎 @@ -757,27 +876,57 @@ List<CarEvent> list = new ArrayList<>(); List<Retention> retentionList = new ArrayList<>(); List<String> delRetentionList = new ArrayList<>(); + List<Retention> 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){ //鎻掑叆闂ㄧ璁板綍 carEventMapper.insert(list); } if(delRetentionList.size()>0){ - //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳锛� + //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満杞﹁締浜哄憳(鍐呴儴浜哄憳锛� retentionMapper.delete(new UpdateWrapper<Retention>().lambda() .eq(Retention::getType,Constants.THREE) .in(Retention::getCarNo,delRetentionList)); } + if(delMemberRetentionList.size()>0){ + //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳銆佺浉鍏虫柟鍜岃瀹級 + List<Integer> memberList = new ArrayList<>(); + for(Retention m :delMemberRetentionList){ + if(m.getMemberId()!=null){ + //璺熼殢杞﹁締鍏ュ満鐨刴ember瀛樺湪鐨勬暟鎹珛鍦� + retentionMapper.delete(new UpdateWrapper<Retention>().lambda() + .in(Retention::getType,Constants.RetentionMemberType.internalMember + ,Constants.RetentionMemberType.relMember + ,Constants.RetentionMemberType.fk + ,Constants.RetentionMemberType.driver) + .eq(Retention::getMemberId,m.getMemberId())); + }else if(m.getCarNo()!=null){ + //璺熼殢杞﹁締鍏ュ満鐨勭敤鎴蜂俊鎭� + retentionMapper.delete(new UpdateWrapper<Retention>().lambda() + .in(Retention::getType,Constants.RetentionMemberType.internalMember + ,Constants.RetentionMemberType.relMember + ,Constants.RetentionMemberType.fk + ,Constants.RetentionMemberType.driver) + .eq(Retention::getCarNo,m.getCarNo())); + } + } + + } if(retentionList.size()>0){ //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳 retentionMapper.insert(retentionList); + } + if(inoutRecordList.size()>0){ + //鍐嶆彃鍏ユ渶鏂扮殑浜鸿溅鍑哄叆鏄庣粏 + inoutRecordMapper.insert(inoutRecordList); } dealInoutDayCountBiz(inoutDayCount); log.info("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========鎴愬姛======="); @@ -794,7 +943,359 @@ * @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<Retention> delMemberRetentionList + , InoutDayCount inoutDayCount + , List<InoutRecord> inoutRecordList) { + CarEvent event =initCarEventModelByRequest(request); + if(StringUtils.isNotBlank(event.getPlateNos())){ + //鏍囪杞﹁締杩涘嚭璁板綍 + List<Category> categoryList = categoryMapper.selectJoinList(Category.class, new MPJLambdaWrapper<Category>() + .selectAll(Category.class) + .select("t4.name",Category::getParentName) + .leftJoin("category t4 on t.parent_id=t4.id") + .eq(Category::getIsdeleted,Constants.ZERO) + .isNotNull(Category::getBizType));//鏌ヨ鎵�鏈夊甫鏈変笟鍔$被鍨嬬殑杞﹁締鍒嗙被缂栫爜 + 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.setDeviceName(request.getData().getGateName()+request.getData().getRoadwayName());//鍋滆溅鍦哄拰鍑哄叆鍙� + 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) + .selectAs(Category::getName,Cars::getCateName) + .select("t4.id",Cars::getCatePId) + .select("t4.name",Cars::getCatePName) + .leftJoin(Company.class,Company::getId,Cars::getGroupId) + .leftJoin(Member.class,Member::getId,Cars::getMemberId) + .leftJoin(Category.class,Category::getId,Cars::getCateId) + .leftJoin("category t4 on t3.parent_id=t4.id") + .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()==null?Constants.RetentionCarType.self : carModel.getBizType());//杞﹁締涓氬姟绫诲瀷 + carrecord.setObjType(Constants.FOUR); + carrecord.setMemberName(carModel.getMemberName());//鍙告満 + carrecord.setMemberPhone(carModel.getMemberPhone());//鍙告満 + carrecord.setObjId(carModel.getId()); + carrecord.setMemberId(carModel.getMemberId()); + 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.setCategoryId(carModel.getCateId()); + carrecord.setCategoryName(carModel.getCateName()); + carrecord.setCategoryParentId(carModel.getCatePId()); + carrecord.setCategoryParentName(StringUtils.defaultString(carModel.getCatePName(),carModel.getCateName())); + carrecord.setType( 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.setType(Constants.RetentionMemberType.car); + if(carTypeJob.getDriverName()!=null || StringUtils.isNotBlank(carTypeJob.getDrivierPhone())){ + //璐ц繍鍙告満(濡傛灉鍙告満鎵嬫満鍙锋垨鑰呭鍚嶄笉涓虹┖锛� + carrecord.setMemberType(Constants.RetentionMemberType.driver); + } + Category category = null; + String tempName = ""; + String tempPName = ""; + //濡傛灉闈炲浐瀹氳溅杈嗭紝鍒欐煡璇㈡槸鍚﹁揣杩愯溅杈� 浣滀笟绫诲瀷 0鑷湁杞﹀嵏璐� 1鑷湁杞﹁璐� 2澶栧崗杞﹀嵏璐� 3澶栧崗杞﹁璐� 4甯傚叕鍙稿鍗忚溅鍗歌揣 + if(Constants.equalsInteger(carTypeJob.getOrigin(),Constants.ONE)){ + //濡傛灉鏄帹閫佺殑wms闈炶嚜鏈夎溅 + event.setCarType(Constants.RetentionCarType.wxysCar);//澶栧崗杞� + tempName = "澶栧崗杩愯緭杞﹁締"; + tempPName = "璐ц繍杞﹁締"; + }else if(Constants.equalsInteger(carTypeJob.getType(),Constants.FOUR)){ + if(Constants.equalsInteger(carTypeJob.getGroupType(),Constants.TWO)){ + ///瀹夋嘲鐨勯绾﹀叆鍥溅杈嗭細璐ц繍杞﹁締-鍔犲伐鐑熷嵏璐ц溅杈� + tempName = "鍔犲伐鐑熷嵏璐ц溅杈�"; + tempPName = "璐ц繍杞﹁締"; + event.setCarType(Constants.RetentionCarType.jgyxhCar);//鍔犲伐鐑熷嵏璐ц溅杈� + }else if(Constants.equalsInteger(carTypeJob.getGroupType(),Constants.TWO)){ + //甯傚叕鍙哥殑棰勭害鍏ュ洯杞﹁締锛氳揣杩愯溅杈�-甯傚叕鍙稿嵏璐ц溅杈� + tempName = "甯傚叕鍙稿嵏璐ц溅杈�"; + tempPName = "璐ц繍杞﹁締"; + event.setCarType(Constants.RetentionCarType.sgsxhCar);//甯傚叕鍙稿嵏璐ц溅杈� + } + } + category =findCategoryByBizType(event.getCarType(),tempName,tempPName,categoryList); + carrecord.setCategoryId(category.getId()); + carrecord.setCategoryName(category.getName()); + carrecord.setCategoryParentName(category.getParentName()); + carrecord.setCategoryParentId(category.getParentId()); + } + } + if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){ + //澶勭悊鑷湁杞﹁嚜鍔ㄧ鍒颁笟鍔� + dealSelTruckAutoSignBiz(request,event); + //濡傛灉鏄叆鍘傛斁琛� + delRetentionList.add(event.getPlateNos()); + Retention dm = new Retention(); + dm.setMemberId(event.getMemberId()); + dm.setPhone(carrecord.getMemberPhone()); + dm.setCarNo(event.getPlateNos()); + delMemberRetentionList.add(dm); + retentionList.add(getRetentionModelByParkRequest(request,event,carrecord));//鍦ㄥ巶杞﹁締淇℃伅 + 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()); + Retention dm = new Retention(); + dm.setMemberId(event.getMemberId()); + dm.setPhone(carrecord.getMemberPhone()); + dm.setCarNo(event.getPlateNos()); + delMemberRetentionList.add(dm); + inoutDayCount.setOutCarNum(Constants.formatIntegerNum(inoutDayCount.getOutCarNum())+1); + carrecord.setInOrOut(Constants.ONE); + } + //杞﹁締杩涘叆璁板綍瀵瑰簲涓氬姟绫诲瀷 + if( isCarInOrOutEvent(request) &&( 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; + carrecord.setCarBizType(Constants.RetentionCarType.fkCar); + Category category =findCategoryByBizType(Constants.RetentionCarType.fkCar,"璁垮杞﹁締","璁垮杞﹁締",categoryList); + carrecord.setCategoryId(category.getId()); + carrecord.setCategoryName(StringUtils.defaultString(category.getName(),"璁垮杞﹁締")); + carrecord.setCategoryParentName(StringUtils.defaultString(category.getParentName(),"璁垮杞﹁締")); + carrecord.setCategoryParentId(category.getParentId()); + for(Visits v :visitsList){ +// if(v.getEndtime()!=null && v.getEndtime().getTime() < System.currentTimeMillis()){ + Retention dm = new Retention(); + dm.setMemberId(event.getMemberId()); + dm.setPhone(carrecord.getMemberPhone()); + dm.setCarNo(event.getPlateNos()); + delMemberRetentionList.add(dm); +// 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.setType(Constants.ONE); + 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)){ + //濡傛灉鏄溅杈嗗嚭鍥尯 缁熻璁垮杩涘叆鏁� + inoutDayCount.setOutVisitorNum(Constants.formatIntegerNum(inoutDayCount.getOutVisitorNum())+1); + try { + //璁垮鐢宠鑷姩绛剧 + visitsService.visitLevelForCarOut(v); + //缁熻绛剧鏁� + inoutDayCount.setLeaveVisitorNum(Constants.formatIntegerNum(inoutDayCount.getLeaveVisitorNum())+1); + }catch (Exception e){ + log.error("璁垮璺熼殢杞﹁締鍑哄洯鑷姩绛剧澶辫触锛�==========="+e.getMessage()); + } + }else{ + //濡傛灉鏄繘鍏ュ洯鍖猴紝璁垮褰曞叆鍦ㄥ洯浜哄憳璁板綍 + retentionList.add(getRetentionModelByRequest(copyObj,request)); + //缁熻璁垮鍑鸿鏁� + inoutDayCount.setInVisitorNum(Constants.formatIntegerNum(inoutDayCount.getInVisitorNum())+1); + } + } +// } + } + } + if(isCarInOrOutEvent(request) && event.getCarType() !=null && !event.getCarType().equals(Constants.RetentionCarType.fkCar)){ + //褰曞叆闈炶瀹㈢被鍨嬭溅杈嗚繘鍑鸿褰� + dealNotFkCarMemberBiz(event,request,carrecord,retentionList,inoutDayCount,inoutRecordList); + } + } + return event; + } + + private boolean isCarInOrOutEvent(EventParkInfoRequest request) { + if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey() || + Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){ + return true; + } + return false; + } + + private void dealNotFkCarMemberBiz( CarEvent event ,EventParkInfoRequest request, InoutRecord carrecord,List<Retention> retentionList,InoutDayCount inoutDayCount,List<InoutRecord> inoutRecordList) { + //褰曞叆闈炶瀹㈢被鍨嬭溅杈嗚繘鍑鸿褰� + carrecord.setCarBizType(event.getCarType()==null?Constants.RetentionCarType.other:event.getCarType()); + if(carrecord.getMemberId()!=null + && (Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.internalMember) + ||Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.relMember) + ||Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.driver))){ + if( Constants.equalsInteger(carrecord.getInOrOut(),Constants.ZERO)) { + //濡傛灉鏄繘鍏� + retentionList.add(getRetentionModelByRequest(carrecord,request)); + if(Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.relMember)){ + //濡傛灉鏄浉鍏虫柟浜哄憳锛岀粺璁′粖鏃ョ疮璁℃暟 + inoutDayCount.setInOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getInOtherMemberNum())+1); + }else if(Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.internalMember)){ + //濡傛灉鏄唴閮ㄤ汉鍛�,缁熻浠婃棩绱鏁� + inoutDayCount.setInSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getInSelfMemberNum())+1); + } + //缁熻浠婃棩鍏ュ洯鎬讳汉娆� + inoutDayCount.setInMemberNum(Constants.formatIntegerNum(inoutDayCount.getInMemberNum())+1); + }else if( Constants.equalsInteger(carrecord.getInOrOut(),Constants.ONE)) { + //濡傛灉鏄嚭鍥尯 + if(Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.relMember)){ + //濡傛灉鏄浉鍏虫柟锛岀粺璁′粖鏃ョ疮璁℃暟 + inoutDayCount.setOutOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutOtherMemberNum())+1); + }else if(Constants.equalsInteger(carrecord.getMemberType(),Constants.RetentionMemberType.internalMember)){ + //濡傛灉鏄唴閮ㄤ汉鍛橈紝缁熻浠婃棩绱鏁� + inoutDayCount.setOutSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutSelfMemberNum())+1); + } + //缁熻浠婃棩鍑哄洯鎬讳汉娆� + inoutDayCount.setOutMemberNum(Constants.formatIntegerNum(inoutDayCount.getOutMemberNum())+1); + } + } + if(Constants.equalsInteger(carrecord.getCarBizType(),Constants.RetentionCarType.other)){ + carrecord.setCategoryName("鏈煡杞﹁締");//榛樿鏈煡杞﹁締 + carrecord.setCategoryParentName("鏈煡杞﹁締");//榛樿鏈煡杞﹁締 + } + inoutRecordList.add(carrecord);//褰曞叆杞﹁締浠ュ強鎼哄甫浜哄憳鐨勫叆鍥槑缁嗚褰曪紙闈炶瀹級 + } + + private Category findCategoryByBizType(Integer carType,String tempname, String pName,List<Category> categoryList) { + if(categoryList!=null){ + for(Category category :categoryList){ + if(Constants.equalsInteger(carType,category.getBizType())){ + if(StringUtils.isBlank(category.getParentName() )){ + category.setParentName(category.getName()); + } + return category; + } + } + } + Category category = new Category(); + category.setName(tempname); + category.setParentName(pName); + return category; + } + + 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.WAIT_CALL.getKey(), + Constants.PlatformJobStatus.WORKING.getKey(), + Constants.PlatformJobStatus.TRANSFERING.getKey(), + Constants.PlatformJobStatus.OVER_NUMBER.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())); @@ -813,7 +1314,6 @@ event.setSrcName(request.getSrcName()); event.setSrcIndex(request.getSrcIndex()); event.setRoadwayType(request.getData().getRoadwayType()); - event.setRoadwayName(request.getData().getRoadwayName()); event.setRoadwayIndex(request.getData().getRoadwayIndex()); event.setPlateType(request.getData().getPlateType()); event.setTimeout(request.getTimeout()); @@ -826,13 +1326,14 @@ event.setInoutType(request.getData().getInoutType()); event.setHappenTime(request.getHappenTime()); event.setGateName(request.getData().getGateName()); + event.setRoadwayName(request.getData().getRoadwayName()); event.setGateIndex(request.getData().getGateIndex()); event.setEventType(request.getEventType()); event.setEventIndex(request.getData().getEventIndex()); 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()); @@ -845,116 +1346,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; } @@ -976,9 +1367,9 @@ param.setContractNumber(detail.getContractNum()); TmsOrderInfoResponse response = tmsService.orderInfo(param); if(response!=null &&( StringUtils.equals(response.getOrderStatus(),"3") ) - ||StringUtils.equals(response.getOrderStatus(),"4") - ||StringUtils.equals(response.getOrderStatus(),"5") - ||StringUtils.equals(response.getOrderStatus(),"6")){ + ||StringUtils.equals(response.getOrderStatus(),"4") + ||StringUtils.equals(response.getOrderStatus(),"5") + ||StringUtils.equals(response.getOrderStatus(),"6")){ //濡傛灉鍚堝悓鍦ㄩ�旓紝鍒欒嚜鍔ㄧ鍒� jobAutoSignBiz(platformJob); } @@ -1000,8 +1391,30 @@ } 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.setCarNo(inoutRecord.getCarCode()); + retention.setDeviceName(request.getData().getGateName()+request.getData().getRoadwayName()); + retention.setRemark("璺熼殢杞﹁締銆�"+inoutRecord.getCarCode()+"銆戝叆鍥尯"); + return retention; + } + private Retention getRetentionModelByParkRequest(EventParkInfoRequest request,CarEvent event ,InoutRecord carrecord ) { Retention retention = new Retention(); retention.setIsdeleted(Constants.ZERO); retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); @@ -1010,8 +1423,14 @@ retention.setMemberId(event.getMemberId()); retention.setCarType(event.getCarType()); retention.setCompanyId(event.getCompanyId()); + retention.setCategoryId(carrecord.getCategoryId()); + retention.setCategoryName(carrecord.getCategoryName()); + retention.setCategoryParentId(carrecord.getCategoryParentId()); + retention.setCategoryParentName(carrecord.getCategoryParentName()); + retention.setDeviceName(request.getData().getGateName()+request.getData().getRoadwayName()); // retention.setDeviceName(request.getSrcName()); // retention.setDeviceIndex(request.getSrcIndex()); + return retention; } @@ -1055,20 +1474,20 @@ continue; } Integer workStatus = 0; - if( data.getHPWorkingStatus() ==null || data.getHPWorkingStatus().size() ==0){ - continue;//濡備綍鎺ㄩ�佺姸鎬侀泦鍚堜负绌猴紝涓嶅鐞嗚烦杩� - } - PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda() - .eq(PlatformDevice::getDeviceId,request.getSrcIndex()) - .eq(PlatformDevice::getIsdeleted,Constants.ZERO) - .last("limit 1")); - if(model ==null){ - continue;//鐩戞帶鐐规湭鍚屾锛岃烦杩囧鐞� - } - //鍚勮溅閬撹溅杈嗙姸鎬� - for(EventPlatformStatusInfoRequest status : data.getHPWorkingStatus()){ + if( data.getHPWorkingStatus() ==null || data.getHPWorkingStatus().size() ==0){ + continue;//濡備綍鎺ㄩ�佺姸鎬侀泦鍚堜负绌猴紝涓嶅鐞嗚烦杩� + } + PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda() + .eq(PlatformDevice::getDeviceId,request.getSrcIndex()) + .eq(PlatformDevice::getIsdeleted,Constants.ZERO) + .last("limit 1")); + if(model ==null){ + continue;//鐩戞帶鐐规湭鍚屾锛岃烦杩囧鐞� + } + //鍚勮溅閬撹溅杈嗙姸鎬� + for(EventPlatformStatusInfoRequest status : data.getHPWorkingStatus()){ - } + } } result = "鎴愬姛"; log.info("銆愭捣搴锋湀鍙板伐浣滅姸鎬佷簨浠舵帹閫併��========鎴愬姛======="); @@ -1185,7 +1604,7 @@ platformJobMapper.updateById(update); } dealPlatformContentForLeave(job); - } + } } }else if(StringUtils.equals(status.getMotionStatus(),"enter")){ //濡傛灉鏄溅杈嗚繘鍏� @@ -1210,7 +1629,7 @@ }else{ continue;//鍏朵粬鐘舵�佷笉澶勭悊锛岃烦杩� } - //鏆傛椂涓嶅仛鐩稿叧鑷姩瀹屾垚浣滀笟涓氬姟澶勭悊 + //鏆傛椂涓嶅仛鐩稿叧鑷姩瀹屾垚浣滀笟涓氬姟澶勭悊 // dealPlatformJobLogBiz(update,status);//璁板綍浣滀笟鏃ュ織 } if(eventList.size()>0){ -- Gitblit v1.9.3