Commit 3973d99e5616d488abff8482d91c0fef0d985119

Authored by 王通
1 parent b65d207c

1.修正道闸逻辑

src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java
... ... @@ -659,18 +659,18 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen
659 659 zcwcTime = Long.parseLong(timeL.get(0).get("zcwc_time").toString());
660 660 }
661 661 // 大于当前时间5分钟为补传数据
662   - if(Math.abs(date-timeT) > bcwcTime){
  662 + if(Math.abs(date-timeT) >= bcwcTime){
663 663 for (int i = 0; i < size; i++) {
664 664 ScheduleRealInfo isr = list.get(i);
665 665 if (list.get(i).isDestroy())
666 666 continue;
667 667 if(fIsOut == 2 && (isr.getQdzName().trim().indexOf(fOutParkName) != -1) && (Math.abs(isr.getDfsjT()-fOutTime)<bcwcTime || (isr.getFcsjActualTime() != null && Math.abs(isr.getFcsjActualTime()-fOutTime)<bcwcTime))){
668   - bcwcTime = Math.abs(isr.getDfsjT()-fOutTime);
669 668 sr = isr;
  669 + break;
670 670 }
671 671 if(fIsOut == 1 && fInStatus != 0 && (isr.getZdzName().trim().indexOf(fInParkName) != -1) && (Math.abs(isr.getZdsjT()-fInTime)<bcwcTime || (isr.getZdsjActualTime() != null && Math.abs(isr.getZdsjActualTime()-fOutTime)<bcwcTime))){
672   - bcwcTime = Math.abs(isr.getZdsjT()-fInTime);
673 672 sr = isr;
  673 + break;
674 674 }
675 675 }
676 676 if(sr==null){
... ... @@ -680,7 +680,6 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
680 680 return rs;
681 681 }
682 682 } else {
683   - sr = dayOfSchedule.executeCurr(carPlate);
684 683 if(sr==null){
685 684 // 班次完成3分钟内上传道闸消息,可以标记
686 685 for (int i = 0; i < size; i++) {
... ... @@ -688,12 +687,12 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
688 687 if (list.get(i).isDestroy())
689 688 continue;
690 689 if(fIsOut == 2 && (isr.getQdzName().trim().indexOf(fOutParkName) != -1) && (Math.abs(isr.getDfsjT()-fOutTime)<zcwcTime || (isr.getFcsjActualTime() != null && Math.abs(isr.getFcsjActualTime()-fOutTime)<zcwcTime))){
691   - zcwcTime = Math.abs(isr.getDfsjT()-fOutTime);
692 690 sr = isr;
  691 + break;
693 692 }
694 693 if(fIsOut == 1 && fInStatus != 0 && (isr.getZdzName().trim().indexOf(fInParkName) != -1) && (Math.abs(isr.getZdsjT()-fInTime)<zcwcTime || (isr.getZdsjActualTime() != null && Math.abs(isr.getZdsjActualTime()-fOutTime)<zcwcTime))){
695   - zcwcTime = Math.abs(isr.getZdsjT()-fInTime);
696 694 sr = isr;
  695 + break;
697 696 }
698 697 }
699 698 if(sr==null){
... ... @@ -704,12 +703,12 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
704 703 }
705 704 }
706 705 }
707   - ScheduleRealInfo prevSr = dayOfSchedule.prev(sr);
708   - ScheduleRealInfo nextSr = dayOfSchedule.next(sr);
  706 + //ScheduleRealInfo prevSr = dayOfSchedule.prev(sr);
  707 + //ScheduleRealInfo nextSr = dayOfSchedule.next(sr);
709 708  
710   - boolean isMatch = false;
711   - ScheduleRealInfo matchSr = null;
712   - String inTimeStr ="",outTimeStr="";
  709 + boolean isMatch = sr == null ? false : true;
  710 + ScheduleRealInfo matchSr = sr;
  711 + String inTimeStr = fmtHHmm.print(fInTime),outTimeStr = fmtHHmm.print(fOutTime);
713 712 /**
714 713 fIsOut 1:进场 2:出场
715 714 * 进场 如果道闸信息先发,则为当前班次, 道闸信息后发,则为上一个班次信息
... ... @@ -718,14 +717,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
718 717 *
719 718 * 到达时间接近那个班次的进场/出场判定为这个班次
720 719 */
721   - if (fIsOut == 1 && fInStatus != 0 && fInTime != 0) {
722   - /*if(prevSr == null || (Math.abs((sr.getZdsjT()- fInTime)) < Math.abs((prevSr.getZdsjT()- fInTime)))){
723   - isMatch = true;
724   - matchSr = sr;
725   - } else {//if(Math.abs((prevSr.getDfsjT())- fInTime) < 120)
726   - isMatch = true;
727   - matchSr = prevSr;
728   - }*/
  720 + /*if (fIsOut == 1 && fInStatus != 0 && fInTime != 0) {
729 721 if(prevSr == null && (sr.getZdzName().trim().indexOf(fInParkName) != -1) && (Math.abs((sr.getZdsjT()- fInTime)) < Math.abs((prevSr.getZdsjT()- fInTime)))){
730 722 isMatch = true;
731 723 matchSr = sr;
... ... @@ -743,7 +735,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
743 735 matchSr = nextSr;
744 736 }
745 737 outTimeStr = fmtHHmm.print(fOutTime);
746   - }
  738 + }*/
747 739 if(isMatch){
748 740 ScheduleRealInfoTag tag = new ScheduleRealInfoTag();
749 741 Long real_id = matchSr.getId();
... ...