| | |
| | | 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.CategoryService; |
| | | import com.doumee.service.business.VisitsService; |
| | | import com.doumee.service.business.impl.PlatformWarnEventServiceImpl; |
| | | import com.doumee.service.business.third.TmsService; |
| | |
| | | private DataSyncConfig dataSyncConfig; |
| | | @Autowired |
| | | private CarEventMapper carEventMapper; |
| | | @Autowired |
| | | private CategoryMapper categoryMapper; |
| | | @Autowired |
| | | private VisitEventMapper visitEventMapper; |
| | | @Autowired |
| | |
| | | record.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime())); |
| | | record.setTimeInfo(Utils.Date.getStart(record.getCreateDate())); |
| | | record.setType(Constants.ONE);//人员 |
| | | record.setMemberType(Constants.ZERO);//默认为未知人员(访客) |
| | | record.setMemberType(Constants.RetentionMemberType.fk);//默认为未知人员(访客) |
| | | record.setIsdeleted(Constants.ZERO); |
| | | record.setInOrOut(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){ |
| | | //如果是进门,录入人员的在场数据记录 |
| | | record.setInOrOut(Constants.ZERO); |
| | | inoutDayCount.setInMemberNum(Constants.formatIntegerNum(inoutDayCount.getInMemberNum())+1);//入场人次 |
| | | }else{ |
| | | //如果是出门 |
| | |
| | | } |
| | | } |
| | | if(member !=null){ |
| | | record.setMemberId(member.getId()); |
| | | record.setMemberName(member.getName()); |
| | | record.setMemberPhone(member.getPhone()); |
| | | record.setObjId(member.getId()); |
| | | record.setObjType(Constants.ONE); |
| | | record.setMemberPhone(member.getPhone()); |
| | | record.setCompanyId(member.getCompanyId()); |
| | | record.setCompanyName(member.getCompanyNamePath()); |
| | | if(d!=null && Constants.equalsInteger(d.getIsEntrance(),Constants.ONE)){ |
| | |
| | | //如果是进门,录入人员的在场数据记录 |
| | | retentionList.add(getRetentionModelByRequest(member,request)); |
| | | if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){ |
| | | record.setMemberType(Constants.ONE); |
| | | record.setMemberType(Constants.RetentionMemberType.internalMember); |
| | | inoutDayCount.setInSelfMemberNum(Constants.formatIntegerNum(inoutDayCount.getInSelfMemberNum())+1);//内部人员入场人次 |
| | | }else{ |
| | | record.setMemberType(Constants.TWO); |
| | | record.setMemberType(Constants.RetentionMemberType.relMember); |
| | | inoutDayCount.setInOtherMemberNum(Constants.formatIntegerNum(inoutDayCount.getInOtherMemberNum())+1);//相关方入场人次 |
| | | } |
| | | }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);//相关方出场人次 |
| | | } |
| | | } |
| | |
| | | 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()); |
| | |
| | | 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(); |
| | | InoutRecord carrecord = new InoutRecord(); |
| | | carrecord.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime())); |
| | | carrecord.setTimeInfo(Utils.Date.getStart(carrecord.getCreateDate())); |
| | | carrecord.setType(Constants.ZERO);//车辆 |
| | |
| | | .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(Category.class,Category::getId,Cars::getCateId) |
| | | .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")); |
| | |
| | | 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.setMemberCode(carModel.getMemberCode()); |
| | | carrecord.setCompanyId(carModel.getGroupId()); |
| | | carrecord.setCompanyName(carModel.getCompanyName()); |
| | | carrecord.setMemberType( Constants.RetentionMemberType.car);//只是车辆的记录 |
| | | carrecord.setCategoryId(carModel.getCateId()); |
| | | carrecord.setCategoryName(carModel.getCateName()); |
| | | carrecord.setCategoryParentId(carModel.getCatePId()); |
| | | carrecord.setCategoryParentName(carModel.getCatePName()); |
| | | carrecord.setType( Constants.RetentionMemberType.car);//只是车辆的记录 |
| | | if(carModel.getMemberId()!=null){ |
| | | if(Constants.equalsInteger(carModel.getCompanyType(),Constants.ONE)){ |
| | | //内部组织 |
| | |
| | | carrecord.setObjType(Constants.FOUR); |
| | | carrecord.setCompanyId(carTypeJob.getCompanyId()); |
| | | carrecord.setCompanyName(carTypeJob.getCompanyNamePath()); |
| | | carrecord.setMemberType(Constants.RetentionMemberType.car); |
| | | carrecord.setType(Constants.RetentionMemberType.car); |
| | | if(carModel.getMemberPhone()!=null || StringUtils.isNotBlank(carModel.getMemberName())){ |
| | | //货运司机(如果司机手机号或者姓名不为空) |
| | | 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()); |
| | | } |
| | | } |
| | | //处理自有车自动签到业务 |
| | |
| | | carrecord.setInOrOut(Constants.ZERO); |
| | | } |
| | | //车辆进入记录对应业务类型 |
| | | if(event.getCarType() ==null || event.getCarType().equals(Constants.RetentionCarType.other)){//如果为识别到车型 |
| | | //如果不是固定车 也不是货运车辆,则检查是否是访客车 |
| | | 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 ) |
| | |
| | | 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(category.getName()); |
| | | carrecord.setCategoryParentName(category.getParentName()); |
| | | carrecord.setCategoryParentId(category.getParentId()); |
| | | for(Visits v :visitsList){ |
| | | delMemberRetentionList.add(event.getMemberId()); |
| | | InoutRecord copyObj = new InoutRecord(); |
| | |
| | | copyObj.setMemberName(v.getName()); |
| | | copyObj.setMemberPhone(v.getPhone()); |
| | | copyObj.setCompanyName(v.getCompanyName()); |
| | | copyObj.setCarBizType(Constants.RetentionCarType.fkCar); |
| | | copyObj.setMemberType(Constants.ZERO); |
| | | 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)){ |
| | | //如果是车辆出园区,访客申请自动签离 |
| | | visitsService.visitLevelForCarOut(v); |
| | | //如果是车辆出园区 统计访客进入数 |
| | | 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(event.getCarType() !=null && event.getCarType().equals(Constants.RetentionCarType.fkCar)) { |
| | | 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); |
| | | dealNotFkCarMemberBiz(event,request,carrecord,retentionList,inoutDayCount,inoutRecordList); |
| | | } |
| | | |
| | | } |
| | | return event; |
| | | } |
| | | |
| | | 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(carrecord.getMemberId()!=null && 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(carrecord.getInOrOut() !=null) {//如果是出入记录 |
| | | if(Constants.equalsInteger(carrecord.getCarBizType(),Constants.RetentionCarType.other)){ |
| | | carrecord.setCategoryName("未知车辆");//默认未知车辆 |
| | | } |
| | | 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())){ |
| | | return category; |
| | | } |
| | | } |
| | | } |
| | | Category category = new Category(); |
| | | category.setName(tempname); |
| | | category.setParentName(pName); |
| | | return null; |
| | | } |
| | | |
| | | private void dealSelTruckAutoSignBiz(EventParkInfoRequest request, CarEvent event) { |
| | |
| | | //如果是自有车卸货 查询TMS合同状态,决定是否自动签到 |
| | | checkTmsContractStatusBiz(platformJob); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |