Commit beb6f65f9035b83d92855928c1472520b93b8251
1 parent
c1cb3544
行车路单年报表,日期错误异常修复
Showing
1 changed file
with
45 additions
and
25 deletions
src/main/java/com/bsth/service/calc/impl/CalcWaybillServiceImpl.java
| ... | ... | @@ -12,7 +12,6 @@ import com.bsth.entity.calc.CalcLineMileage; |
| 12 | 12 | import com.bsth.entity.calc.CalcStatistics; |
| 13 | 13 | import com.bsth.entity.calc.CalcWaybill; |
| 14 | 14 | import com.bsth.entity.calc.CalcWaybillDetail; |
| 15 | -import com.bsth.entity.oil.Cwjy; | |
| 16 | 15 | import com.bsth.entity.oil.Dlb; |
| 17 | 16 | import com.bsth.entity.oil.Ylb; |
| 18 | 17 | import com.bsth.entity.realcontrol.ChildTaskPlan; |
| ... | ... | @@ -38,6 +37,7 @@ import com.bsth.util.ReportUtils; |
| 38 | 37 | import com.github.stuxuhai.jpinyin.PinyinException; |
| 39 | 38 | import com.github.stuxuhai.jpinyin.PinyinFormat; |
| 40 | 39 | import com.github.stuxuhai.jpinyin.PinyinHelper; |
| 40 | + | |
| 41 | 41 | import org.apache.commons.lang3.StringUtils; |
| 42 | 42 | import org.slf4j.Logger; |
| 43 | 43 | import org.slf4j.LoggerFactory; |
| ... | ... | @@ -1931,7 +1931,6 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer |
| 1931 | 1931 | fgsdm.add(fgsdms[i]); |
| 1932 | 1932 | } |
| 1933 | 1933 | } |
| 1934 | -// String line= null; | |
| 1935 | 1934 | List<String> line= new ArrayList<>(); |
| 1936 | 1935 | String lineStr = ""; |
| 1937 | 1936 | if(map.get("lineCode")!=null){ |
| ... | ... | @@ -1941,6 +1940,14 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer |
| 1941 | 1940 | line.add(lines[i]); |
| 1942 | 1941 | } |
| 1943 | 1942 | } |
| 1943 | + //查询全部线路(测试时使用) | |
| 1944 | +// Iterable<Line> findAll = lineService.findAll(); | |
| 1945 | +// for(Line l : findAll){ | |
| 1946 | +// line.add(l.getLineCode()); | |
| 1947 | +// lineStr += l.getLineCode() + ","; | |
| 1948 | +// } | |
| 1949 | +// lineStr = lineStr.substring(0, lineStr.length() - 1); | |
| 1950 | + | |
| 1944 | 1951 | String startDate=""; |
| 1945 | 1952 | if(map.get("startDate")!=null){ |
| 1946 | 1953 | startDate=map.get("startDate").toString().trim(); |
| ... | ... | @@ -1990,7 +1997,12 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer |
| 1990 | 1997 | dayList.add(daym); |
| 1991 | 1998 | } |
| 1992 | 1999 | startDate += "-01"; |
| 1993 | - endDate += "-31"; | |
| 2000 | + try { | |
| 2001 | + endDate = dateFormat.format(new Date(dateFormat.parse(dateFormat.format(dateFormat.parse(endDate + "-32")).substring(0,7) + "-01").getTime() - 1l*1000*60*60*24)); | |
| 2002 | + } catch (ParseException e) { | |
| 2003 | + // TODO Auto-generated catch block | |
| 2004 | + e.printStackTrace(); | |
| 2005 | + } | |
| 1994 | 2006 | } |
| 1995 | 2007 | |
| 1996 | 2008 | int flag = 0; |
| ... | ... | @@ -2474,9 +2486,17 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer |
| 2474 | 2486 | } |
| 2475 | 2487 | dayc = dayList.get(dayIndex).get(cw.getRqStr()); |
| 2476 | 2488 | } else if("y".equals(timeType)){ |
| 2477 | - while (!dayList.get(dayIndex).containsKey(cw.getRqStr().substring(0,7))){ | |
| 2478 | - calcList.add(new CalcWaybillDetail()); | |
| 2479 | - dayIndex++; | |
| 2489 | + if(calcList.size() < dayList.size()){ //列还没加满则往后加新的列 | |
| 2490 | + while (dayList.size() > dayIndex && !dayList.get(dayIndex).containsKey(cw.getRqStr().substring(0,7))){ | |
| 2491 | + calcList.add(new CalcWaybillDetail()); | |
| 2492 | + dayIndex++; | |
| 2493 | + } | |
| 2494 | + } else { //列已经加满说明是前面的日期 | |
| 2495 | + int temp = 0; | |
| 2496 | + while (!dayList.get(temp).containsKey(cw.getRqStr().substring(0,7))){ | |
| 2497 | + temp++; | |
| 2498 | + } | |
| 2499 | + dayIndex = temp; | |
| 2480 | 2500 | } |
| 2481 | 2501 | dayc = dayList.get(dayIndex).get(cw.getRqStr().substring(0,7)); |
| 2482 | 2502 | } |
| ... | ... | @@ -2568,7 +2588,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer |
| 2568 | 2588 | } |
| 2569 | 2589 | |
| 2570 | 2590 | int i=1; |
| 2571 | - DecimalFormat df = new DecimalFormat("0.00");//格式化小数 | |
| 2591 | + DecimalFormat df = new DecimalFormat("0.000");//格式化小数 | |
| 2572 | 2592 | double allNum = 0.0; |
| 2573 | 2593 | while (iter.hasNext()) { |
| 2574 | 2594 | Map.Entry entry = (Map.Entry) iter.next(); |
| ... | ... | @@ -2597,11 +2617,11 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer |
| 2597 | 2617 | } else if("xl".equals(statisticalObj)){ |
| 2598 | 2618 | |
| 2599 | 2619 | } |
| 2600 | - listStr.add(df.format(c.getJhyylc()+c.getJhfyylc())); | |
| 2601 | - listStr.add(df.format(c.getSjyylc()+c.getSjfyylc()+c.getLjyylc()+c.getLjfyylc())); | |
| 2602 | -// listStr.add(df.format(c.getSjyylc()+c.getLjyylc())); | |
| 2603 | - listStr.add(df.format(c.getSjfyylc()+c.getLjfyylc())); | |
| 2604 | - listStr.add(df.format(c.getLjyylc()+c.getLjfyylc())); | |
| 2620 | + listStr.add(df.format(Arith.add(c.getJhyylc(), c.getJhfyylc()))); | |
| 2621 | + listStr.add(df.format(Arith.add(Arith.add(c.getSjyylc(), c.getSjfyylc()), | |
| 2622 | + Arith.add(c.getLjyylc(), c.getLjfyylc())))); | |
| 2623 | + listStr.add(df.format(Arith.add(c.getSjfyylc(), c.getLjfyylc()))); | |
| 2624 | + listStr.add(df.format(Arith.add(c.getLjyylc(), c.getLjfyylc()))); | |
| 2605 | 2625 | listStr.add(df.format(c.getLblc())); |
| 2606 | 2626 | listStr.add(c.getTs()+""); |
| 2607 | 2627 | c.setBglhd(c.getBglhd()/c.getTs()); |
| ... | ... | @@ -2639,9 +2659,10 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer |
| 2639 | 2659 | listStr.add(df.format(c1.getZlc()==0? 0:100*c1.getHd()/c1.getZlc())); |
| 2640 | 2660 | // listStr.add(df.format(c1.getBglhd())); |
| 2641 | 2661 | } else if("zgl".equals(itemDetails)){ |
| 2642 | - listStr.add(df.format((c1.getSjyylc()+c1.getSjfyylc()+c1.getLjfyylc()+c1.getLjyylc()))); | |
| 2662 | + listStr.add(df.format(Arith.add(Arith.add(c1.getSjyylc(), c1.getSjfyylc()), | |
| 2663 | + Arith.add(c1.getLjyylc(), c1.getLjfyylc())))); | |
| 2643 | 2664 | } else if("jhgl".equals(itemDetails)){ |
| 2644 | - listStr.add(df.format(c1.getJhyylc()+c1.getJhfyylc())); | |
| 2665 | + listStr.add(df.format(Arith.add(c1.getJhyylc(), c1.getJhfyylc()))); | |
| 2645 | 2666 | } else if("sjbc".equals(itemDetails)){ |
| 2646 | 2667 | listStr.add(c1.getSjyybc()+c1.getSjfyybc()+c1.getLjbc()+""); |
| 2647 | 2668 | } else if("jhbc".equals(itemDetails)){ |
| ... | ... | @@ -2649,18 +2670,18 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer |
| 2649 | 2670 | } |
| 2650 | 2671 | } |
| 2651 | 2672 | } |
| 2652 | - allNum = allNum + Double.parseDouble(listStr.get(listStr.size()-1)); | |
| 2673 | + allNum = Arith.add(allNum, Double.parseDouble(listStr.get(listStr.size()-1))); | |
| 2653 | 2674 | resList.add(listStr); |
| 2654 | 2675 | } |
| 2655 | 2676 | |
| 2656 | 2677 | // 合计列 |
| 2657 | 2678 | List<String> listEnd = new ArrayList<>(); |
| 2658 | 2679 | listEnd.add("合计"); |
| 2659 | - listEnd.add(df.format(zjCalc.getJhyylc()+zjCalc.getJhfyylc())); | |
| 2660 | - listEnd.add(df.format(zjCalc.getSjfyylc()+zjCalc.getSjyylc()+zjCalc.getLjyylc()+zjCalc.getLjfyylc()));//总公里 | |
| 2661 | -// listEnd.add(df.format(zjCalc.getSjyylc()+zjCalc.getLjyylc()));//营运 | |
| 2662 | - listEnd.add(df.format(zjCalc.getSjfyylc()+zjCalc.getLjfyylc())); | |
| 2663 | - listEnd.add(df.format(zjCalc.getLjfyylc()+zjCalc.getLjyylc())); | |
| 2680 | + listEnd.add(df.format(Arith.add(zjCalc.getJhyylc(), zjCalc.getJhfyylc()))); | |
| 2681 | + listEnd.add(df.format(Arith.add(Arith.add(zjCalc.getSjyylc(), zjCalc.getSjfyylc()), | |
| 2682 | + Arith.add(zjCalc.getLjyylc(), zjCalc.getLjfyylc()))));//总公里 | |
| 2683 | + listEnd.add(df.format(Arith.add(zjCalc.getSjfyylc(), zjCalc.getLjfyylc()))); | |
| 2684 | + listEnd.add(df.format(Arith.add(zjCalc.getLjyylc(), zjCalc.getLjfyylc()))); | |
| 2664 | 2685 | listEnd.add(df.format(zjCalc.getLblc())); |
| 2665 | 2686 | listEnd.add(zjCalc.getTs()+""); |
| 2666 | 2687 | double all = 0.0; |
| ... | ... | @@ -2693,16 +2714,17 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer |
| 2693 | 2714 | // listEnd.add(df.format(c1.getBglhd())); |
| 2694 | 2715 | listEnd.add(df.format(c1.getZlc()==0? 0:100*c1.getHd()/c1.getZlc())); |
| 2695 | 2716 | } else if("zgl".equals(itemDetails)){ |
| 2696 | - listEnd.add((df.format(c1.getSjyylc()+c1.getSjfyylc()+c1.getLjfyylc()+c1.getLjyylc()))); | |
| 2717 | + listEnd.add(df.format(Arith.add(Arith.add(c1.getSjyylc(), c1.getSjfyylc()), | |
| 2718 | + Arith.add(c1.getLjyylc(), c1.getLjfyylc())))); | |
| 2697 | 2719 | } else if("jhgl".equals(itemDetails)){ |
| 2698 | - listEnd.add((df.format(c1.getJhyylc()+c1.getJhfyylc()))); | |
| 2720 | + listEnd.add(df.format(Arith.add(c1.getJhyylc(), c1.getJhfyylc()))); | |
| 2699 | 2721 | } else if("sjbc".equals(itemDetails)){ |
| 2700 | 2722 | listEnd.add(c1.getSjyybc()+c1.getSjfyybc()+c1.getLjbc()+""); |
| 2701 | 2723 | } else if("jhbc".equals(itemDetails)){ |
| 2702 | 2724 | listEnd.add((c1.getJhyybc()+c1.getJhfyybc())+""); |
| 2703 | 2725 | } |
| 2704 | 2726 | } |
| 2705 | - all = all + Double.parseDouble(listEnd.get(listEnd.size()-1)); | |
| 2727 | + all = Arith.add(all, Double.parseDouble(listEnd.get(listEnd.size()-1))); | |
| 2706 | 2728 | } |
| 2707 | 2729 | |
| 2708 | 2730 | // 百公里电油耗时为平均数 |
| ... | ... | @@ -2753,10 +2775,8 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl<CalcWaybill, Integer |
| 2753 | 2775 | c1.setJhfyylc(Arith.add(c1.getJhfyylc(), c2.getJhfyylc())); |
| 2754 | 2776 | c1.setSjyybc(c1.getSjyybc() + c2.getSjyybc()); |
| 2755 | 2777 | c1.setSjyylc(Arith.add(c1.getSjyylc(), c2.getSjyylc())); |
| 2756 | -// c1.setSjyylc(Arith.add(c1.getSjyylc(), c2.getLjyylc()));// 把临加的也算上了,后面不用加了 | |
| 2757 | 2778 | c1.setSjfyybc(c1.getSjfyybc() + c2.getSjfyybc()); |
| 2758 | 2779 | c1.setSjfyylc(Arith.add(c1.getSjfyylc(), c2.getSjfyylc())); |
| 2759 | -// c1.setSjfyylc(Arith.add(c1.getSjfyylc(), c2.getLjfyylc()));// 把临加的也算上了,后面不用加了 | |
| 2760 | 2780 | c1.setLbbc(c1.getLbbc() + c2.getLbbc()); |
| 2761 | 2781 | c1.setLblc(Arith.add(c1.getLblc(), c2.getLblc())); |
| 2762 | 2782 | c1.setLjbc(c1.getLjbc() + c2.getLjbc()); | ... | ... |