Commit 3f055d7a140170bc85494d3029725a66a474eefa
1 parent
23b305af
重新统计update
Showing
4 changed files
with
77 additions
and
31 deletions
src/main/java/com/bsth/repository/calc/CalcWaybillRepository.java
| @@ -49,4 +49,13 @@ public interface CalcWaybillRepository extends BaseRepository<CalcWaybill, Integ | @@ -49,4 +49,13 @@ public interface CalcWaybillRepository extends BaseRepository<CalcWaybill, Integ | ||
| 49 | @Query("select DISTINCT s from ScheduleRealInfo s where s.scheduleDateStr=?1 and s.xlBm=?2") | 49 | @Query("select DISTINCT s from ScheduleRealInfo s where s.scheduleDateStr=?1 and s.xlBm=?2") |
| 50 | List<ScheduleRealInfo> findAllSchedule(String schDate, String lineCode); | 50 | List<ScheduleRealInfo> findAllSchedule(String schDate, String lineCode); |
| 51 | 51 | ||
| 52 | + /** | ||
| 53 | + * 根据日期获取班次信息 | ||
| 54 | + * @param schDate | ||
| 55 | + * @return | ||
| 56 | + */ | ||
| 57 | + @EntityGraph(value = "scheduleRealInfo_cTasks", type = EntityGraph.EntityGraphType.FETCH) | ||
| 58 | + @Query("select DISTINCT s from ScheduleRealInfo s where s.scheduleDateStr=?1") | ||
| 59 | + List<ScheduleRealInfo> findAllScheduleByDate(String schDate); | ||
| 60 | + | ||
| 52 | } | 61 | } |
src/main/java/com/bsth/service/calc/CalcToolService.java
| @@ -4,6 +4,7 @@ import java.util.List; | @@ -4,6 +4,7 @@ import java.util.List; | ||
| 4 | import java.util.Map; | 4 | import java.util.Map; |
| 5 | 5 | ||
| 6 | import com.bsth.entity.calc.CalcWaybill; | 6 | import com.bsth.entity.calc.CalcWaybill; |
| 7 | +import com.bsth.entity.realcontrol.ScheduleRealInfo; | ||
| 7 | import com.bsth.entity.sys.Interval; | 8 | import com.bsth.entity.sys.Interval; |
| 8 | 9 | ||
| 9 | /** | 10 | /** |
| @@ -11,6 +12,6 @@ import com.bsth.entity.sys.Interval; | @@ -11,6 +12,6 @@ import com.bsth.entity.sys.Interval; | ||
| 11 | */ | 12 | */ |
| 12 | public interface CalcToolService { | 13 | public interface CalcToolService { |
| 13 | 14 | ||
| 14 | - List<CalcWaybill> findAll(String date, String line, List<Map<String, Object>> xlList, List<Interval> djgList); | 15 | + List<CalcWaybill> findAll(String date, String line, List<ScheduleRealInfo> list, List<Map<String, Object>> xlList, List<Interval> djgList); |
| 15 | 16 | ||
| 16 | } | 17 | } |
src/main/java/com/bsth/service/calc/impl/CalcToolServiceImpl.java
| @@ -5,12 +5,11 @@ import java.sql.SQLException; | @@ -5,12 +5,11 @@ import java.sql.SQLException; | ||
| 5 | import java.util.ArrayList; | 5 | import java.util.ArrayList; |
| 6 | import java.util.Date; | 6 | import java.util.Date; |
| 7 | import java.util.HashMap; | 7 | import java.util.HashMap; |
| 8 | +import java.util.HashSet; | ||
| 8 | import java.util.List; | 9 | import java.util.List; |
| 9 | import java.util.Map; | 10 | import java.util.Map; |
| 10 | import java.util.Set; | 11 | import java.util.Set; |
| 11 | 12 | ||
| 12 | -import javax.swing.text.Keymap; | ||
| 13 | - | ||
| 14 | import com.bsth.entity.calc.CalcInterval; | 13 | import com.bsth.entity.calc.CalcInterval; |
| 15 | import com.bsth.entity.calc.CalcWaybill; | 14 | import com.bsth.entity.calc.CalcWaybill; |
| 16 | import com.bsth.entity.realcontrol.ChildTaskPlan; | 15 | import com.bsth.entity.realcontrol.ChildTaskPlan; |
| @@ -53,26 +52,29 @@ public class CalcToolServiceImpl implements CalcToolService { | @@ -53,26 +52,29 @@ public class CalcToolServiceImpl implements CalcToolService { | ||
| 53 | 52 | ||
| 54 | 53 | ||
| 55 | @Override | 54 | @Override |
| 56 | - public List<CalcWaybill> findAll(String rq, String lineCode, List<Map<String, Object>> xlList, List<Interval> djgList) { | 55 | + public List<CalcWaybill> findAll(String rq, String lineCode, List<ScheduleRealInfo> list, List<Map<String, Object>> xlList, List<Interval> djgList) { |
| 57 | List<CalcWaybill> listCal=new ArrayList<CalcWaybill>(); | 56 | List<CalcWaybill> listCal=new ArrayList<CalcWaybill>(); |
| 58 | - List<ScheduleRealInfo> list = clacRepository.findAllSchedule(rq,lineCode); | ||
| 59 | - String sql ="select r.j_gh ,r.s_gh,r.cl_zbh,r.xl_bm, r.lp_name FROM" | ||
| 60 | - + " bsth_c_s_sp_info_real r where " | ||
| 61 | - + " r.schedule_date_str='"+rq+"' and r.xl_bm = '"+lineCode+"'" | ||
| 62 | - + " GROUP BY r.j_gh,r.s_gh,r.cl_zbh,r.xl_bm,r.lp_name "; | ||
| 63 | - | ||
| 64 | - List<Map<String, String>> listMap = jdbcTemplate.query(sql, new RowMapper<Map<String, String>>() { | ||
| 65 | - @Override | ||
| 66 | - public Map<String, String> mapRow(ResultSet arg0, int arg1) throws SQLException { | ||
| 67 | - Map<String, String> c = new HashMap<String,String>(); | ||
| 68 | - c.put("jGh", arg0.getString("j_gh")); | ||
| 69 | - c.put("sGh", arg0.getString("s_gh")==null?"":arg0.getString("s_gh")); | ||
| 70 | - c.put("clZbh", arg0.getString("cl_zbh")); | ||
| 71 | - c.put("xlBm", arg0.getString("xl_bm")); | ||
| 72 | - c.put("lpName", arg0.getString("lp_name")); | ||
| 73 | - return c; | 57 | + |
| 58 | + List<Map<String, String>> listMap = new ArrayList<Map<String, String>>(); | ||
| 59 | + Set<String> tempSet = new HashSet<String>(); | ||
| 60 | + for(ScheduleRealInfo s : list){ | ||
| 61 | + String jGh = s.getjGh()!=null?s.getjGh().trim():""; | ||
| 62 | + String sGh = s.getsGh()!=null?s.getsGh().trim():""; | ||
| 63 | + String clZbh = s.getClZbh()!=null?s.getClZbh().trim():""; | ||
| 64 | + String xlBm = s.getXlBm()!=null?s.getXlBm().trim():""; | ||
| 65 | + String lpName = s.getLpName()!=null?s.getLpName().trim():""; | ||
| 66 | + String key = jGh + sGh + clZbh + xlBm + lpName; | ||
| 67 | + if(tempSet.add(key)){ | ||
| 68 | + Map<String, String> m = new HashMap<String, String>(); | ||
| 69 | + m.put("jGh", jGh); | ||
| 70 | + m.put("sGh", sGh); | ||
| 71 | + m.put("clZbh", clZbh); | ||
| 72 | + m.put("xlBm", xlBm); | ||
| 73 | + m.put("lpName", lpName); | ||
| 74 | + listMap.add(m); | ||
| 74 | } | 75 | } |
| 75 | - }); | 76 | + } |
| 77 | + | ||
| 76 | for (int i = 0; i < listMap.size(); i++) { | 78 | for (int i = 0; i < listMap.size(); i++) { |
| 77 | Map<String, String> m=listMap.get(i); | 79 | Map<String, String> m=listMap.get(i); |
| 78 | String jGh=m.get("jGh"); | 80 | String jGh=m.get("jGh"); |
| @@ -196,6 +198,7 @@ public class CalcToolServiceImpl implements CalcToolService { | @@ -196,6 +198,7 @@ public class CalcToolServiceImpl implements CalcToolService { | ||
| 196 | //list_ 全部班次 lists_执行了的班次(实到实发不为空) | 198 | //list_ 全部班次 lists_执行了的班次(实到实发不为空) |
| 197 | private List<CalcWaybill> cul(List<ScheduleRealInfo> list_,List<ScheduleRealInfo> list_s, List<Map<String, Object>> xlList, List<Interval> djgList){ | 199 | private List<CalcWaybill> cul(List<ScheduleRealInfo> list_,List<ScheduleRealInfo> list_s, List<Map<String, Object>> xlList, List<Interval> djgList){ |
| 198 | List<CalcWaybill> list=new ArrayList<CalcWaybill>(); | 200 | List<CalcWaybill> list=new ArrayList<CalcWaybill>(); |
| 201 | + List<CalcWaybill> list2=new ArrayList<CalcWaybill>(); | ||
| 199 | if(list_.size()>0){ | 202 | if(list_.size()>0){ |
| 200 | Date date=list_.get(0).getScheduleDate(); | 203 | Date date=list_.get(0).getScheduleDate(); |
| 201 | String dateStr=list_.get(0).getScheduleDateStr(); | 204 | String dateStr=list_.get(0).getScheduleDateStr(); |
| @@ -356,8 +359,28 @@ public class CalcToolServiceImpl implements CalcToolService { | @@ -356,8 +359,28 @@ public class CalcToolServiceImpl implements CalcToolService { | ||
| 356 | t_.setDtbczgf(0); | 359 | t_.setDtbczgf(0); |
| 357 | t_.setDtbcwgf(0); | 360 | t_.setDtbcwgf(0); |
| 358 | list.add(t_); | 361 | list.add(t_); |
| 362 | + list2.add(t_); | ||
| 359 | } | 363 | } |
| 360 | } | 364 | } |
| 365 | + for(CalcWaybill c2 : list2){ | ||
| 366 | + boolean flag = true; | ||
| 367 | + String key2 = c2.getjGh() + c2.getsGh()==null?"":c2.getsGh().trim() | ||
| 368 | + + c2.getCl() + c2.getXl() + c2.getLp(); | ||
| 369 | + for(CalcWaybill c : list){ | ||
| 370 | + String key = c.getjGh() + c.getsGh()==null?"":c.getsGh().trim() | ||
| 371 | + + c.getCl() + c.getXl() + c.getLp(); | ||
| 372 | + if(key2.equals(key)){ | ||
| 373 | + c.setSjyylc(Arith.add(c.getSjyylc(), c2.getSjyylc())); | ||
| 374 | + c.setSjfyylc(Arith.add(c.getSjfyylc(), c2.getSjfyylc())); | ||
| 375 | + c.setLjyylc(Arith.add(c.getLjyylc(), c2.getLjyylc())); | ||
| 376 | + c.setLjfyylc(Arith.add(c.getLjfyylc(), c2.getLjfyylc())); | ||
| 377 | + flag = false; | ||
| 378 | + break; | ||
| 379 | + } | ||
| 380 | + } | ||
| 381 | + if(flag) | ||
| 382 | + list.add(c2); | ||
| 383 | + } | ||
| 361 | return list; | 384 | return list; |
| 362 | } | 385 | } |
| 363 | 386 |
src/main/java/com/bsth/service/calc/impl/CalcWaybillServiceImpl.java
| @@ -33,6 +33,7 @@ import com.bsth.service.calc.CalcWaybillService; | @@ -33,6 +33,7 @@ import com.bsth.service.calc.CalcWaybillService; | ||
| 33 | import com.bsth.service.impl.BaseServiceImpl; | 33 | import com.bsth.service.impl.BaseServiceImpl; |
| 34 | import com.bsth.service.report.CulateMileageService; | 34 | import com.bsth.service.report.CulateMileageService; |
| 35 | import com.bsth.util.Arith; | 35 | import com.bsth.util.Arith; |
| 36 | +import com.bsth.util.BatchSaveUtils; | ||
| 36 | import com.bsth.util.ReportUtils; | 37 | import com.bsth.util.ReportUtils; |
| 37 | import com.github.stuxuhai.jpinyin.PinyinException; | 38 | import com.github.stuxuhai.jpinyin.PinyinException; |
| 38 | import com.github.stuxuhai.jpinyin.PinyinFormat; | 39 | import com.github.stuxuhai.jpinyin.PinyinFormat; |
| @@ -80,7 +81,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | @@ -80,7 +81,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | ||
| 80 | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | 81 | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| 81 | if(date == null || date.trim().length() == 0){ | 82 | if(date == null || date.trim().length() == 0){ |
| 82 | Date d = new Date(); | 83 | Date d = new Date(); |
| 83 | - d.setTime(d.getTime() - (2 * 1000 * 60 * 60 * 24)); | 84 | + d.setTime(d.getTime() - (4 * 1000 * 60 * 60 * 24)); |
| 84 | date = sdf.format(d); | 85 | date = sdf.format(d); |
| 85 | } | 86 | } |
| 86 | if(line == null || line.trim().length() == 0){ | 87 | if(line == null || line.trim().length() == 0){ |
| @@ -120,7 +121,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | @@ -120,7 +121,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | ||
| 120 | sql += " and xl_bm = '"+line+"'"; | 121 | sql += " and xl_bm = '"+line+"'"; |
| 121 | // sql += " where t.line_code = " + line; | 122 | // sql += " where t.line_code = " + line; |
| 122 | } | 123 | } |
| 123 | - sql += "group by xl_bm"; | 124 | + sql += " group by xl_bm"; |
| 124 | List<Map<String, Object>> listLineConfig = jdbcTemplate.query(sql, | 125 | List<Map<String, Object>> listLineConfig = jdbcTemplate.query(sql, |
| 125 | new RowMapper<Map<String, Object>>(){ | 126 | new RowMapper<Map<String, Object>>(){ |
| 126 | @Override | 127 | @Override |
| @@ -148,7 +149,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | @@ -148,7 +149,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | ||
| 148 | Map<String, List<Map<String, Object>>> xlMap = new HashMap<String, List<Map<String, Object>>>(); | 149 | Map<String, List<Map<String, Object>>> xlMap = new HashMap<String, List<Map<String, Object>>>(); |
| 149 | for(Map<String, Object> m : xlList){ | 150 | for(Map<String, Object> m : xlList){ |
| 150 | if(m.containsKey("line") && m.get("line").toString().trim().length() > 0){ | 151 | if(m.containsKey("line") && m.get("line").toString().trim().length() > 0){ |
| 151 | - String key = m.get("line").toString(); | 152 | + String key = m.get("line").toString().trim(); |
| 152 | if(!xlMap.containsKey(key)) | 153 | if(!xlMap.containsKey(key)) |
| 153 | xlMap.put(key, new ArrayList<Map<String, Object>>()); | 154 | xlMap.put(key, new ArrayList<Map<String, Object>>()); |
| 154 | xlMap.get(key).add(m); | 155 | xlMap.get(key).add(m); |
| @@ -166,7 +167,18 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | @@ -166,7 +167,18 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | ||
| 166 | return m; | 167 | return m; |
| 167 | }}); | 168 | }}); |
| 168 | 169 | ||
| 170 | + Map<String, List<ScheduleRealInfo>> scheMap = new HashMap<String, List<ScheduleRealInfo>>(); | ||
| 171 | + List<ScheduleRealInfo> list = calcRepository.findAllScheduleByDate(date); | ||
| 172 | + for(ScheduleRealInfo s : list){ | ||
| 173 | + String xlBm = s.getXlBm(); | ||
| 174 | + if(!scheMap.containsKey(xlBm)){ | ||
| 175 | + scheMap.put(xlBm, new ArrayList<ScheduleRealInfo>()); | ||
| 176 | + } | ||
| 177 | + scheMap.get(xlBm).add(s); | ||
| 178 | + } | ||
| 179 | + | ||
| 169 | Set<String> lineSet = new HashSet<String>(); | 180 | Set<String> lineSet = new HashSet<String>(); |
| 181 | + List<CalcWaybill> all = new ArrayList<CalcWaybill>(); | ||
| 170 | for (int i = 0; i < listLineConfig.size(); i++) { | 182 | for (int i = 0; i < listLineConfig.size(); i++) { |
| 171 | Map<String, Object> m =listLineConfig.get(i); | 183 | Map<String, Object> m =listLineConfig.get(i); |
| 172 | String lineCode=m.get("line_code").toString().trim(); | 184 | String lineCode=m.get("line_code").toString().trim(); |
| @@ -179,13 +191,14 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | @@ -179,13 +191,14 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | ||
| 179 | tempList = xlMap.get(lineCode); | 191 | tempList = xlMap.get(lineCode); |
| 180 | } | 192 | } |
| 181 | 193 | ||
| 182 | - List<CalcWaybill> findAll = calcToolService.findAll(date, lineCode, tempList, djgList); | 194 | + if(!scheMap.containsKey(lineCode)) |
| 195 | + continue; | ||
| 196 | + List<CalcWaybill> findAll = calcToolService.findAll(date, lineCode, scheMap.get(lineCode), tempList, djgList); | ||
| 197 | + all.addAll(findAll); | ||
| 183 | 198 | ||
| 184 | -// new BatchSaveUtils<CalcWaybill>().saveList2(findAll, CalcWaybill.class); | ||
| 185 | - | ||
| 186 | -// if(xlMap.get(lineCode).size() == 0) | ||
| 187 | - calcRepository.save(findAll); | ||
| 188 | } | 199 | } |
| 200 | +// new BatchSaveUtils<CalcWaybill>().saveList2(all, CalcWaybill.class); | ||
| 201 | + calcRepository.save(all); | ||
| 189 | 202 | ||
| 190 | newMap.put("status", ResponseCode.SUCCESS); | 203 | newMap.put("status", ResponseCode.SUCCESS); |
| 191 | } catch (Exception e) { | 204 | } catch (Exception e) { |
| @@ -405,7 +418,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | @@ -405,7 +418,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | ||
| 405 | } | 418 | } |
| 406 | 419 | ||
| 407 | /** | 420 | /** |
| 408 | - * @param rq 格式如:2018-03-22(留空""默认当前日期前一天) | 421 | + * @param rq 格式如:2018-03-22(留空""默认当前日期前两天) |
| 409 | * @param line (留空""默认全部线路) | 422 | * @param line (留空""默认全部线路) |
| 410 | */ | 423 | */ |
| 411 | @Transactional | 424 | @Transactional |
| @@ -419,7 +432,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | @@ -419,7 +432,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer | ||
| 419 | Date dBefore = new Date(); | 432 | Date dBefore = new Date(); |
| 420 | Calendar calendar = Calendar.getInstance(); //得到日历 | 433 | Calendar calendar = Calendar.getInstance(); //得到日历 |
| 421 | calendar.setTime(dNow);//把当前时间赋给日历 | 434 | calendar.setTime(dNow);//把当前时间赋给日历 |
| 422 | - calendar.add(Calendar.DAY_OF_MONTH, -1); //设置为前一天 | 435 | + calendar.add(Calendar.DAY_OF_MONTH, -2); //设置为前一天 |
| 423 | dBefore = calendar.getTime(); //得到前一天的时间 | 436 | dBefore = calendar.getTime(); //得到前一天的时间 |
| 424 | rq = sdf.format(dBefore); | 437 | rq = sdf.format(dBefore); |
| 425 | } else { | 438 | } else { |