Commit b65d207c39ffb9de766eac4f21bab665dc79e003

Authored by 王通
1 parent b37d4e5b

1.道闸逻辑修正

src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java
... ... @@ -602,6 +602,8 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen
602 602 Long fOutTime = map.get("fOutTime")==null?0:(Long.parseLong(map.get("fOutTime").toString())*1000);
603 603 int fIsOut = map.get("fIsOut")==null?0:Integer.parseInt(map.get("fIsOut").toString());
604 604 Long fInTime = map.get("fInTime")==null?0:(Long.parseLong(map.get("fInTime").toString())*1000);
  605 + int fInStatus = map.get("fInStatus")==null?0:Integer.parseInt(map.get("fInStatus").toString());
  606 + String fOutParkName = map.get("fOutParkName")==null?"":map.get("fOutParkName").toString().trim();
605 607  
606 608 // String fInPlate = map.get("fInPlate")==null?"":map.get("fInPlate").toString();
607 609 // String fInStatus = map.get("fInStatus")==null?"":map.get("fInStatus").toString();
... ... @@ -639,7 +641,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen
639 641 boolean isbc = false;
640 642 Long date = new Date().getTime();
641 643 Long timeT = 0l;
642   - if (fIsOut == 1 && fInTime != 0) {
  644 + if (fIsOut == 1 && fInStatus != 0 && fInTime != 0) {
643 645 timeT = fInTime;
644 646 } else if (fIsOut == 2 && fOutTime != 0) {
645 647 timeT = fOutTime;
... ... @@ -662,11 +664,11 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen
662 664 ScheduleRealInfo isr = list.get(i);
663 665 if (list.get(i).isDestroy())
664 666 continue;
665   - if(fIsOut == 2 && (isr.getQdzName().trim().indexOf(fInParkName) != -1) && (Math.abs(isr.getDfsjT()-fOutTime)<bcwcTime || (isr.getFcsjActualTime() != null && Math.abs(isr.getFcsjActualTime()-fOutTime)<bcwcTime))){
  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))){
666 668 bcwcTime = Math.abs(isr.getDfsjT()-fOutTime);
667 669 sr = isr;
668 670 }
669   - if(fIsOut == 1 && (isr.getZdzName().trim().indexOf(fInParkName) != -1) && (Math.abs(isr.getZdsjT()-fInTime)<bcwcTime || (isr.getZdsjActualTime() != null && Math.abs(isr.getZdsjActualTime()-fOutTime)<bcwcTime))){
  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))){
670 672 bcwcTime = Math.abs(isr.getZdsjT()-fInTime);
671 673 sr = isr;
672 674 }
... ... @@ -685,11 +687,11 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
685 687 ScheduleRealInfo isr = list.get(i);
686 688 if (list.get(i).isDestroy())
687 689 continue;
688   - if(fIsOut == 2 && (isr.getQdzName().trim().indexOf(fInParkName) != -1) && (Math.abs(isr.getDfsjT()-fOutTime)<zcwcTime || (isr.getFcsjActualTime() != null && Math.abs(isr.getFcsjActualTime()-fOutTime)<zcwcTime))){
  690 + if(fIsOut == 2 && (isr.getQdzName().trim().indexOf(fOutParkName) != -1) && (Math.abs(isr.getDfsjT()-fOutTime)<zcwcTime || (isr.getFcsjActualTime() != null && Math.abs(isr.getFcsjActualTime()-fOutTime)<zcwcTime))){
689 691 zcwcTime = Math.abs(isr.getDfsjT()-fOutTime);
690 692 sr = isr;
691 693 }
692   - if(fIsOut == 1 && (isr.getZdzName().trim().indexOf(fInParkName) != -1) && (Math.abs(isr.getZdsjT()-fInTime)<zcwcTime || (isr.getZdsjActualTime() != null && Math.abs(isr.getZdsjActualTime()-fOutTime)<zcwcTime))){
  694 + 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))){
693 695 zcwcTime = Math.abs(isr.getZdsjT()-fInTime);
694 696 sr = isr;
695 697 }
... ... @@ -716,7 +718,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
716 718 *
717 719 * 到达时间接近那个班次的进场/出场判定为这个班次
718 720 */
719   - if (fIsOut == 1 && fInTime != 0) {
  721 + if (fIsOut == 1 && fInStatus != 0 && fInTime != 0) {
720 722 /*if(prevSr == null || (Math.abs((sr.getZdsjT()- fInTime)) < Math.abs((prevSr.getZdsjT()- fInTime)))){
721 723 isMatch = true;
722 724 matchSr = sr;
... ... @@ -733,10 +735,10 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
733 735 }
734 736 inTimeStr = fmtHHmm.print(fInTime);
735 737 } else if (fIsOut == 2 && fOutTime != 0) {
736   - if(nextSr == null && (sr.getQdzName().trim().indexOf(fInParkName) != -1) && (Math.abs((sr.getDfsjT()- fOutTime)) < Math.abs((nextSr.getDfsjT()- fOutTime)))){
  738 + if(nextSr == null && (sr.getQdzName().trim().indexOf(fOutParkName) != -1) && (Math.abs((sr.getDfsjT()- fOutTime)) < Math.abs((nextSr.getDfsjT()- fOutTime)))){
737 739 isMatch = true;
738 740 matchSr = sr;
739   - } else if(nextSr.getQdzName().trim().indexOf(fInParkName) != -1){ // if(Math.abs((nextSr.getDfsjT())- fInTime) < 120)
  741 + } else if(nextSr.getQdzName().trim().indexOf(fOutParkName) != -1){ // if(Math.abs((nextSr.getDfsjT())- fInTime) < 120)
740 742 isMatch = true;
741 743 matchSr = nextSr;
742 744 }
... ... @@ -774,15 +776,15 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
774 776 if(tagList.size() > 0){
775 777 tag = tagList.get(0);
776 778 tag.setfBusIdIn(fBusID);
777   - if(fIsOut==1){
778   - sql = "UPDATE bsth_c_s_sp_info_real_tag set `in` = ? ,in_time=?,in_time_str=?,f_bus_id_in=?,out_name=? WHERE real_id=?";
  779 + if(fIsOut==1 && fInStatus != 0){
  780 + sql = "UPDATE bsth_c_s_sp_info_real_tag set `in` = ? ,in_time=?,in_time_str=?,f_bus_id_in=?,in_name=? WHERE real_id=?";
779 781 jdbcTemplate.update(sql,1,fInTime,inTimeStr,fBusID,fInParkName,real_id);
780 782 tag.setIn(1);
781 783 tag.setfBusIdIn(fInTime.toString());
782 784 tag.setInTimeStr(inTimeStr);
783 785 } else if(fIsOut==2){
784   - sql = "UPDATE bsth_c_s_sp_info_real_tag set `out` =?,out_time=?,out_time_str=?,f_bus_id_out=?,in_name=? WHERE real_id=?";
785   - jdbcTemplate.update(sql,1,fOutTime,outTimeStr,fBusID,fInParkName,real_id);
  786 + sql = "UPDATE bsth_c_s_sp_info_real_tag set `out` =?,out_time=?,out_time_str=?,f_bus_id_out=?,out_name=? WHERE real_id=?";
  787 + jdbcTemplate.update(sql,1,fOutTime,outTimeStr,fBusID,fOutParkName,real_id);
786 788 tag.setOut(1);
787 789 tag.setOutTime(fOutTime);
788 790 tag.setOutTimeStr(outTimeStr);
... ... @@ -794,7 +796,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
794 796 tag.setCarPlate(fPlateCode);
795 797 tag.setXlBm(lineCode);
796 798 tag.setScheduleDateStr(dateStr);
797   - if(fIsOut==1){
  799 + if(fIsOut==1 && fInStatus != 0){
798 800 sql = "INSERT INTO bsth_c_s_sp_info_real_tag (real_id,`in`,in_time,in_time_str,cl_zbh,car_plate,f_bus_id_in,xl_bm,schedule_date_str,qdz_name,zdz_name,in_name)VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";
799 801 jdbcTemplate.update(sql,real_id,1,fInTime,inTimeStr,matchSr.getClZbh(),fPlateCode,fBusID,lineCode,dateStr,matchSr.getQdzName(),matchSr.getZdzName(),fInParkName);
800 802 tag.setIn(1);
... ... @@ -802,7 +804,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
802 804 tag.setInTimeStr(inTimeStr);
803 805 } else if(fIsOut==2){
804 806 sql = "INSERT INTO bsth_c_s_sp_info_real_tag (real_id,`out`,out_time,out_time_str,cl_zbh,car_plate,f_bus_id_out,xl_bm,schedule_date_str,qdz_name,zdz_name,out_name)VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";
805   - jdbcTemplate.update(sql,real_id,1,fOutTime,outTimeStr,matchSr.getClZbh(),fPlateCode,fBusID,lineCode,dateStr,matchSr.getQdzName(),matchSr.getZdzName(),fInParkName);
  807 + jdbcTemplate.update(sql,real_id,1,fOutTime,outTimeStr,matchSr.getClZbh(),fPlateCode,fBusID,lineCode,dateStr,matchSr.getQdzName(),matchSr.getZdzName(),fOutParkName);
806 808 tag.setOut(1);
807 809 tag.setOutTime(fOutTime);
808 810 tag.setOutTimeStr(outTimeStr);
... ... @@ -812,7 +814,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
812 814  
813 815 // 进场班次,匹配的下一个班次中放实到字段内容
814 816 ScheduleRealInfo mNextSr = dayOfSchedule.next(matchSr);
815   - if(fIsOut==1 && mNextSr != null){
  817 + if(fIsOut==1 && fInStatus != 0 && mNextSr != null){
816 818 ScheduleRealInfoTag tagNext = new ScheduleRealInfoTag();
817 819 Long nextId = mNextSr.getId();
818 820 // int haveNext = jdbcTemplate.queryForObject("select count(*) from bsth_c_s_sp_info_real_tag where real_id = "+nextId,Integer.class);
... ...