Commit 60f88df42f825e495f1b368e893b52cc155ab96a

Authored by 廖磊
1 parent 81ddfc23

统计日报合并查询

新增老调度系统油、电历史查询
src/main/java/com/bsth/controller/oil/LsylbController.java 0 → 100644
  1 +package com.bsth.controller.oil;
  2 +
  3 +import java.text.SimpleDateFormat;
  4 +import java.util.ArrayList;
  5 +import java.util.HashMap;
  6 +import java.util.Iterator;
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +
  10 +import org.springframework.beans.factory.annotation.Autowired;
  11 +import org.springframework.web.bind.annotation.RequestMapping;
  12 +import org.springframework.web.bind.annotation.RequestMethod;
  13 +import org.springframework.web.bind.annotation.RequestParam;
  14 +import org.springframework.web.bind.annotation.RestController;
  15 +
  16 +import com.bsth.controller.BaseController;
  17 +import com.bsth.entity.oil.Lsylb;
  18 +import com.bsth.entity.oil.Ylb;
  19 +import com.bsth.service.oil.LsylbService;
  20 +import com.bsth.util.Arith;
  21 +import com.bsth.util.ReportUtils;
  22 +
  23 +@RestController
  24 +@RequestMapping("lsylb")
  25 +public class LsylbController extends BaseController<Ylb, Integer>{
  26 + @Autowired
  27 + LsylbService lsylbService;
  28 +
  29 + @RequestMapping(value = "/lsylbList",method = RequestMethod.GET)
  30 + public List<Lsylb> lsylbList(@RequestParam Map<String, Object> map){
  31 + List<Lsylb> ylbList=lsylbService.listYlb(map);
  32 + return ylbList;
  33 + }
  34 +
  35 + @RequestMapping(value = "/sumLsylb",method = RequestMethod.GET)
  36 + public Map<String, Object> sumLsylb(@RequestParam Map<String, Object> map){
  37 + Map<String, Object> list=lsylbService.sumYlb(map);
  38 + return list;
  39 + }
  40 +
  41 + @RequestMapping(value = "/listExport",method = RequestMethod.POST)
  42 + public List<Map<String, Object>> listExport(@RequestParam Map<String, Object> map){
  43 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  44 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  45 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  46 + ReportUtils ee = new ReportUtils();
  47 + List<Lsylb> lsylb= lsylbService.listYlb(map);
  48 + String nylx=map.get("nylx").toString();
  49 +// (new CustomerSpecs<Ylb>(map)).iterator();
  50 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  51 + for (Lsylb y : lsylb) {
  52 + Map<String, Object> m = new HashMap<String, Object>();
  53 + m.put("rq", sdfMonth.format(y.getRq()));
  54 + m.put("gsname",y.getGsname() );
  55 + m.put("fgsname", y.getFgsname());
  56 + m.put("xlname", y.getXlname()==null?"":y.getXlname());
  57 + m.put("nbbm", y.getNbbm());
  58 + m.put("jsy", y.getJsy());
  59 + m.put("name", y.getName());
  60 + m.put("czlc", "0");
  61 + m.put("jzlc", "0");
  62 + m.put("sh", y.getSh()==null?"0":y.getSh());
  63 +
  64 + String shyy ="无";
  65 +
  66 + if(nylx.equals("0")){
  67 + m.put("jzl", y.getJzl()==null?"0":y.getJzl());
  68 + m.put("czyl", y.getCzyl()==null?"0":y.getCzyl());
  69 + m.put("jzyl", y.getJzyl()==null?"0":y.getJzyl());
  70 + m.put("yh", y.getYh()==null?"0":y.getYh());
  71 +
  72 + if(y.getShyy()!=null){
  73 + shyy=y.getShyy();
  74 + if(shyy.equals("1")){shyy="票务用油";}
  75 + else if(shyy.equals("2")){shyy="保养用油";}
  76 + else if(shyy.equals("3")){shyy="报废车用油";}
  77 + else if(shyy.equals("4")){shyy="其它用油";}
  78 + else if(shyy.equals("5")){shyy="人保部";}
  79 + else if(shyy.equals("6")){shyy="车队";}
  80 + else if(shyy.equals("7")){shyy="车间(高保)";}
  81 + else if(shyy.equals("8")){shyy="车间(小修)";}
  82 + else{shyy ="无";}
  83 + }
  84 + m.put("zyh", Arith.add(m.get("sh"), m.get("yh")));
  85 +
  86 + String rylx="";
  87 + if(y.getRylx()!=null){
  88 + if(y.getRylx().equals("0")){rylx="0号柴油";}
  89 + if(y.getRylx().equals("1")){rylx="负10号柴油";}
  90 + }
  91 + m.put("rylx", rylx);
  92 + }else{
  93 + m.put("cdl", y.getJzl()==null?"0":y.getJzl());
  94 + m.put("czcd", y.getCzyl()==null?"0":y.getCzyl());
  95 + m.put("jzcd", y.getJzyl()==null?"0":y.getJzyl());
  96 + m.put("hd", y.getYh()==null?"0":y.getYh());
  97 + if(y.getShyy()!=null){
  98 + shyy=y.getShyy();
  99 + if(shyy.equals("1")){shyy="票务用电";}
  100 + else if(shyy.equals("2")){shyy="保养用电";}
  101 + else if(shyy.equals("3")){shyy="报废车用电";}
  102 + else if(shyy.equals("4")){shyy="其它用电";}
  103 + else if(shyy.equals("5")){shyy="人保部";}
  104 + else if(shyy.equals("6")){shyy="车队";}
  105 + else if(shyy.equals("7")){shyy="车间(高保)";}
  106 + else if(shyy.equals("8")){shyy="车间(小修)";}
  107 + else{shyy ="无";}
  108 + }
  109 + m.put("zyh", Arith.add(m.get("sh"), m.get("hd")));
  110 + m.put("rdlx", "");
  111 +
  112 + }
  113 + m.put("shyy", shyy);
  114 + m.put("ns", y.getNs()==null?"0":y.getNs());
  115 + m.put("zlc", y.getZlc()==null?"0":y.getZlc());
  116 + m.put("bglyh", y.getBglyh());
  117 + resList.add(m);
  118 + }
  119 + try {
  120 + map.put("sheetName", map.get("rq"));
  121 + listI.add(resList.iterator());
  122 + String xls="";
  123 + String name="";
  124 +
  125 + if(nylx.equals("0")){
  126 + xls="list.xls";
  127 + name="进出场存油量.xls";
  128 + }else{
  129 + xls="listDl.xls";
  130 + name="进出场存电量.xls";
  131 + }
  132 + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/";
  133 + ee.excelReplace(listI, new Object[] { map }, path+"mould/"+xls,
  134 + path+"export/"+map.get("rq").toString()+ name);
  135 + } catch (Exception e) {
  136 + e.printStackTrace();
  137 + }
  138 +
  139 + return resList;
  140 +
  141 + }
  142 +}
... ...
src/main/java/com/bsth/entity/oil/Lsylb.java 0 → 100644
  1 +package com.bsth.entity.oil;
  2 +
  3 +import java.text.DecimalFormat;
  4 +import java.util.Date;
  5 +
  6 +import javax.persistence.Entity;
  7 +import javax.persistence.GeneratedValue;
  8 +import javax.persistence.Id;
  9 +import javax.persistence.Table;
  10 +import javax.persistence.Transient;
  11 +
  12 +import org.springframework.format.annotation.DateTimeFormat;
  13 +
  14 +import com.bsth.data.BasicData;
  15 +
  16 +@Entity
  17 +@Table(name = "bsth_ls_ylb")
  18 +public class Lsylb {
  19 + @Id
  20 + @GeneratedValue
  21 + private Integer id;
  22 + @DateTimeFormat(pattern="yyyy-MM-dd")
  23 + private Date rq;
  24 + private String xlbm;
  25 + private String ssgsdm;
  26 + private String fgsdm;
  27 + private String nbbm;
  28 + private String jsy;
  29 + private Double czlc=0.0;
  30 + private Double jzlc=0.0;
  31 + private Double czyl=0.0;
  32 + private Double jzyl=0.0;
  33 + private Double jzl=0.0;
  34 + private int sfkt;
  35 + private String jhsj;
  36 + private Double yh=0.0;
  37 + private Double sh=0.0;
  38 + private String shyy;
  39 + private Double zlc=0.0;
  40 + private int yhlx;
  41 + private String rylx="0";
  42 + private Double ns=0.0;
  43 + private Double fyylc=0.0;
  44 + private Double jhzlc=0.0;
  45 + private Double jhfyylc=0.0;
  46 + private int jhzbc;
  47 + private int jhbc;
  48 + private int sjzbc;
  49 + private int sjbc;
  50 + private String edituser;
  51 + private Date edittime;
  52 + private Date createtime;
  53 +
  54 + private int nylx;
  55 +
  56 + @Transient
  57 + private String bglyh;
  58 +
  59 + @Transient
  60 + private String xlname;
  61 +
  62 + @Transient
  63 + private String gsname;
  64 +
  65 + @Transient
  66 + private String fgsname;
  67 +
  68 + @Transient
  69 + private String name;
  70 +
  71 + public Integer getId() {
  72 + return id;
  73 + }
  74 +
  75 + public void setId(Integer id) {
  76 + this.id = id;
  77 + }
  78 + public Date getRq() {
  79 + return rq;
  80 + }
  81 +
  82 + public void setRq(Date rq) {
  83 + this.rq = rq;
  84 + }
  85 +
  86 + public String getXlbm() {
  87 + return xlbm;
  88 + }
  89 +
  90 + public void setXlbm(String xlbm) {
  91 + this.xlbm = xlbm;
  92 + }
  93 + public String getSsgsdm() {
  94 + return ssgsdm;
  95 + }
  96 + public void setSsgsdm(String ssgsdm) {
  97 + this.ssgsdm = ssgsdm;
  98 + }
  99 + public String getFgsdm() {
  100 + return fgsdm;
  101 + }
  102 + public void setFgsdm(String fgsdm) {
  103 + this.fgsdm = fgsdm;
  104 + }
  105 + public String getNbbm() {
  106 + return nbbm;
  107 + }
  108 + public void setNbbm(String nbbm) {
  109 + this.nbbm = nbbm;
  110 + }
  111 + public String getJsy() {
  112 + return jsy;
  113 + }
  114 + public void setJsy(String jsy) {
  115 + this.jsy = jsy;
  116 + }
  117 + public Double getCzlc() {
  118 + return czlc;
  119 + }
  120 + public void setCzlc(Double czlc) {
  121 + this.czlc = czlc;
  122 + }
  123 + public Double getJzlc() {
  124 + return jzlc;
  125 + }
  126 + public void setJzlc(Double jzlc) {
  127 + this.jzlc = jzlc;
  128 + }
  129 + public Double getCzyl() {
  130 + return czyl;
  131 + }
  132 + public void setCzyl(Double czyl) {
  133 + this.czyl = czyl;
  134 + }
  135 + public Double getJzyl() {
  136 + return jzyl;
  137 + }
  138 + public void setJzyl(Double jzyl) {
  139 + this.jzyl = jzyl;
  140 + }
  141 + public Double getJzl() {
  142 + return jzl;
  143 + }
  144 + public void setJzl(Double jzl) {
  145 + this.jzl = jzl;
  146 + }
  147 + public int getSfkt() {
  148 + return sfkt;
  149 + }
  150 + public void setSfkt(int sfkt) {
  151 + this.sfkt = sfkt;
  152 + }
  153 + public String getJhsj() {
  154 + return jhsj;
  155 + }
  156 + public void setJhsj(String jhsj) {
  157 + this.jhsj = jhsj;
  158 + }
  159 + public Double getYh() {
  160 + return yh;
  161 + }
  162 + public void setYh(Double yh) {
  163 + this.yh = yh;
  164 + }
  165 + public Double getSh() {
  166 + return sh;
  167 + }
  168 + public void setSh(Double sh) {
  169 + this.sh = sh;
  170 + }
  171 + public String getShyy() {
  172 + return shyy;
  173 + }
  174 + public void setShyy(String shyy) {
  175 + this.shyy = shyy;
  176 + }
  177 + public Double getZlc() {
  178 + return zlc;
  179 + }
  180 + public void setZlc(Double zlc) {
  181 + this.zlc = zlc;
  182 + }
  183 + public int getYhlx() {
  184 + return yhlx;
  185 + }
  186 + public void setYhlx(int yhlx) {
  187 + this.yhlx = yhlx;
  188 + }
  189 + public String getRylx() {
  190 + return rylx;
  191 + }
  192 + public void setRylx(String rylx) {
  193 + this.rylx = rylx;
  194 + }
  195 + public Double getNs() {
  196 + return ns;
  197 + }
  198 + public void setNs(Double ns) {
  199 + this.ns = ns;
  200 + }
  201 + public Double getFyylc() {
  202 + return fyylc;
  203 + }
  204 + public void setFyylc(Double fyylc) {
  205 + this.fyylc = fyylc;
  206 + }
  207 + public Double getJhzlc() {
  208 + return jhzlc;
  209 + }
  210 + public void setJhzlc(Double jhzlc) {
  211 + this.jhzlc = jhzlc;
  212 + }
  213 + public Double getJhfyylc() {
  214 + return jhfyylc;
  215 + }
  216 + public void setJhfyylc(Double jhfyylc) {
  217 + this.jhfyylc = jhfyylc;
  218 + }
  219 + public int getJhzbc() {
  220 + return jhzbc;
  221 + }
  222 + public void setJhzbc(int jhzbc) {
  223 + this.jhzbc = jhzbc;
  224 + }
  225 + public int getJhbc() {
  226 + return jhbc;
  227 + }
  228 + public void setJhbc(int jhbc) {
  229 + this.jhbc = jhbc;
  230 + }
  231 + public int getSjzbc() {
  232 + return sjzbc;
  233 + }
  234 + public void setSjzbc(int sjzbc) {
  235 + this.sjzbc = sjzbc;
  236 + }
  237 + public int getSjbc() {
  238 + return sjbc;
  239 + }
  240 + public void setSjbc(int sjbc) {
  241 + this.sjbc = sjbc;
  242 + }
  243 + public String getEdituser() {
  244 + return edituser;
  245 + }
  246 + public void setEdituser(String edituser) {
  247 + this.edituser = edituser;
  248 + }
  249 + public Date getEdittime() {
  250 + return edittime;
  251 + }
  252 + public void setEdittime(Date edittime) {
  253 + this.edittime = edittime;
  254 + }
  255 + public Date getCreatetime() {
  256 + return createtime;
  257 + }
  258 + public void setCreatetime(Date createtime) {
  259 + this.createtime = createtime;
  260 + }
  261 + public int getNylx() {
  262 + return nylx;
  263 + }
  264 + public void setNylx(int nylx) {
  265 + this.nylx = nylx;
  266 + }
  267 +
  268 + public String getBglyh() {
  269 + if(this.getZlc()==0){
  270 + return "0";
  271 + }else{
  272 + DecimalFormat df = new DecimalFormat("0.00");
  273 + return df.format(this.getYh()/this.getZlc()*100);
  274 + }
  275 + }
  276 +
  277 + public void setBglyh(String bglyh) {
  278 + this.bglyh = bglyh;
  279 + }
  280 +
  281 + public String getXlname() {
  282 + return BasicData.lineCode2NameMap.get(this.xlbm);
  283 + }
  284 +
  285 + public void setXlname(String xlname) {
  286 + this.xlname = xlname;
  287 + }
  288 +
  289 + public String getGsname() {
  290 + return BasicData.businessCodeNameMap.get(this.ssgsdm);
  291 + }
  292 +
  293 + public void setGsname(String gsname) {
  294 + this.gsname = gsname;
  295 + }
  296 +
  297 +
  298 + public String getFgsname() {
  299 + return BasicData.businessFgsCodeNameMap.get(this.fgsdm+"_"+this.ssgsdm);
  300 + }
  301 +
  302 + public void setFgsname(String fgsname) {
  303 + this.fgsname = fgsname;
  304 + }
  305 +
  306 + public String getName() {
  307 + return BasicData.allPerson.get(this.ssgsdm+"-"+this.jsy);
  308 + }
  309 +
  310 + public void setName(String name) {
  311 + this.name = name;
  312 + }
  313 +
  314 +
  315 +}
... ...
src/main/java/com/bsth/repository/oil/LsylbRepository.java 0 → 100644
  1 +package com.bsth.repository.oil;
  2 +
  3 +import java.util.Date;
  4 +import java.util.List;
  5 +import java.util.Map;
  6 +
  7 +import org.springframework.data.jpa.repository.Modifying;
  8 +import org.springframework.data.jpa.repository.Query;
  9 +import org.springframework.stereotype.Repository;
  10 +import org.springframework.transaction.annotation.Transactional;
  11 +
  12 +import com.bsth.entity.oil.Lsylb;
  13 +import com.bsth.entity.oil.Ylb;
  14 +import com.bsth.repository.BaseRepository;
  15 +
  16 +@Repository
  17 +public interface LsylbRepository extends BaseRepository<Lsylb, Integer>{
  18 + /**
  19 + *
  20 + * @param nbbm
  21 + * @param rq
  22 + * @param xlbm
  23 + * @return
  24 + */
  25 + @Query(value="select nbbm,count(nbbm) from bsth_ls_ylb where to_days(?1)=to_days(rq) and "
  26 + + " ssgsdm like %?2% "
  27 + + " and fgsdm like %?3%"
  28 + + " and xlbm like %?4% and nbbm like %?5% and nylx= ?6 "
  29 + + " group by nbbm,rq,ssgsdm,fgsdm",nativeQuery=true)
  30 + List<Object[]> checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int nylx);
  31 +
  32 + @Query(value="select s from Lsylb s "
  33 + + " where to_days(?1)=to_days(s.rq) "
  34 + + " and s.ssgsdm =?2 "
  35 + + " and s.fgsdm =?3 "
  36 + + " and s.xlbm like %?4% "
  37 + + " and s.nylx =?5 "
  38 + + " and s.nbbm in ?6 order by nbbm,jhsj")
  39 + List<Lsylb> listYlb(String rq, String gsbm,String fgsbm,String xlbm,int nylx,List<String> listNbbm);
  40 +
  41 + @Query(value="select nbbm,sum(jzl*100) as jzl ,sum(zlc*100) as zlc from bsth_ls_ylb where to_days(?1)=to_days(rq) and "
  42 + + " ssgsdm like %?2% "
  43 + + " and fgsdm like %?3%"
  44 + + " and xlbm like %?4% and nbbm like %?5% and nylx =?6 "
  45 + + " group by nbbm,rq,ssgsdm,fgsdm,xlbm",nativeQuery=true)
  46 + List<Object[]> checkNbmmYl(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int nylx);
  47 +
  48 +
  49 + @Query(value="select ifnull(jzl,0),ifnull(yh,0),ifnull(sh,0) from bsth_ls_ylb "
  50 + + " where to_days(?1)=to_days(rq) "
  51 + + " and ssgsdm like %?2% "
  52 + + " and fgsdm like %?3%"
  53 + + " and xlbm like %?4% "
  54 + + " and nbbm like %?5% "
  55 + + " and nylx =?6",nativeQuery=true)
  56 + List<Object[]> sumYlb2(String rq, String gsbm,String fgsbm,String xlbm,String nbbm,int nylx);
  57 +
  58 +
  59 + @Query(value="select jzl,yh,sh from Lsylb s "
  60 + + " where to_days(?1)=to_days(s.rq) "
  61 + + " and s.ssgsdm like %?2% "
  62 + + " and s.fgsdm like %?3%"
  63 + + " and s.xlbm like %?4% "
  64 + + " and s.nbbm in ?5 and s.nylx=?6")
  65 + List<Object[]> sumYlb(String rq, String gsbm,String fgsbm,String xlbm,List<String> listNbbm,int nylx);
  66 +
  67 +}
... ...
src/main/java/com/bsth/service/calc/impl/CalcWaybillServiceImpl.java
... ... @@ -14,6 +14,7 @@ import java.util.HashSet;
14 14 import java.util.Iterator;
15 15 import java.util.List;
16 16 import java.util.Map;
  17 +import java.util.Map.Entry;
17 18 import java.util.Set;
18 19  
19 20 import javax.transaction.Transactional;
... ... @@ -945,6 +946,7 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
945 946 }
946 947 resList.add(temp);
947 948 }
  949 + //统计数据
948 950 List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();
949 951 for(CalcStatistics c : resList){
950 952 Map<String, Object> m = new HashMap<String, Object>();
... ... @@ -998,188 +1000,103 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
998 1000 mapList.add(m);
999 1001 }
1000 1002  
  1003 + //实时数据
1001 1004 List<Map<String, Object>> tjlist=new ArrayList<Map<String, Object>>();
1002 1005 if(!d4.equals("")){
1003 1006 tjlist= scheduleRealInfoService.statisticsDailyTjHb(gsdm, fgsdm, line, d3, d4, xlName, type);
1004 1007 }
1005 1008 List<Map<String, Object>> mapListHj = new ArrayList<Map<String, Object>>();
  1009 +// List<String> lineList=new ArrayList<String>();
  1010 + Map<String, Object> kMap=new HashMap<String,Object>();
  1011 + mapList.addAll(tjlist);
  1012 + for (int i = 0; i < mapList.size(); i++) {
  1013 + Map<String, Object> m =mapList.get(i);
  1014 + if(kMap.get(m.get("xlBm").toString())==null){
  1015 + kMap.put(m.get("xlBm").toString(), m.get("xlBm").toString());
  1016 + }
  1017 + }
  1018 + for (Object xlbm : kMap.keySet()) {
  1019 + Map<String, Object> hjMap = new HashMap<String, Object>();
  1020 + for (int i = 0; i < mapList.size(); i++) {
  1021 + Map<String, Object> lsMap=mapList.get(i);
  1022 + if (lsMap.get("xlBm").toString().equals(xlbm)) {
  1023 + if(hjMap.get("xlBm")==null){
  1024 + hjMap.put("xlBm", lsMap.get("xlBm"));
  1025 + hjMap.put("xlName", lsMap.get("xlName"));
  1026 + try {
  1027 + if(lsMap.get("xlBm").toString().equals("hj")){
  1028 + hjMap.put("xlNamePy", "zzzzz");
1006 1029  
1007   - if(mapList.size()>0){
1008   - if(tjlist.size()>0){
1009   - for ( int i=0;i<tjlist.size();i++) {
1010   - Map<String, Object> tjMap =tjlist.get(i);
1011   - boolean fage=true;
1012   - for(int j=0;j<mapList.size();j++){
1013   - Map<String, Object> lsMap=mapList.get(j);
1014   - if(lsMap.get("xlBm").toString().equals(tjMap.get("xlBm").toString())){
1015   - Map<String, Object> hjMap=new HashMap<String,Object>();
1016   - hjMap.put("xlBm", tjMap.get("xlBm"));
1017   - hjMap.put("xlName", tjMap.get("xlName"));
1018   - hjMap.put("jhzlc", Arith.add(lsMap.get("jhzlc"), tjMap.get("jhzlc")));
1019   - hjMap.put("jhlc", Arith.add(lsMap.get("jhlc"), tjMap.get("jhlc")));
1020   - hjMap.put("jcclc",Arith.add(lsMap.get("jcclc"), tjMap.get("jcclc")));
1021   - hjMap.put("sjzgl",Arith.add(lsMap.get("sjzgl"), tjMap.get("sjzgl")));
1022   - hjMap.put("sjgl", Arith.add(lsMap.get("sjgl"), tjMap.get("sjgl")));
1023   - hjMap.put("sjksgl", Arith.add(lsMap.get("sjksgl"), tjMap.get("sjksgl")));
1024   - hjMap.put("ssgl", Arith.add(lsMap.get("ssgl"), tjMap.get("ssgl")));
1025   - hjMap.put("ssbc", Integer.parseInt(lsMap.get("ssbc").toString())+Integer.parseInt(tjMap.get("ssbc").toString()));
1026   - hjMap.put("ssgl_lz", Arith.add(lsMap.get("ssgl_lz"), tjMap.get("ssgl_lz")));
1027   - hjMap.put("ssgl_dm", Arith.add(lsMap.get("ssgl_dm"), tjMap.get("ssgl_dm")));
1028   - hjMap.put("ssgl_gz", Arith.add(lsMap.get("ssgl_gz"), tjMap.get("ssgl_gz")));
1029   - hjMap.put("ssgl_jf", Arith.add(lsMap.get("ssgl_jf"), tjMap.get("ssgl_jf")));
1030   - hjMap.put("ssgl_zs", Arith.add(lsMap.get("ssgl_zs"), tjMap.get("ssgl_zs")));
1031   - hjMap.put("ssgl_qr", Arith.add(lsMap.get("ssgl_qr"), tjMap.get("ssgl_qr")));
1032   - hjMap.put("ssgl_qc", Arith.add(lsMap.get("ssgl_qc"), tjMap.get("ssgl_qc")));
1033   - hjMap.put("ssgl_kx", Arith.add(lsMap.get("ssgl_kx"), tjMap.get("ssgl_kx")));
1034   - hjMap.put("ssgl_qh", Arith.add(lsMap.get("ssgl_qh"), tjMap.get("ssgl_qh")));
1035   - hjMap.put("ssgl_yw", Arith.add(lsMap.get("ssgl_yw"), tjMap.get("ssgl_yw")));
1036   - hjMap.put("ssgl_other", Arith.add(lsMap.get("ssgl_other"), tjMap.get("ssgl_other")));
1037   - hjMap.put("ljgl", Arith.add(lsMap.get("ljgl"), tjMap.get("ljgl")));
1038   - hjMap.put("jhbc", Integer.parseInt(lsMap.get("jhbc").toString())+ Integer.parseInt(tjMap.get("jhbc").toString()));
1039   - hjMap.put("jhbc_m", Integer.parseInt(lsMap.get("jhbc_m").toString())+Integer.parseInt(tjMap.get("jhbc_m").toString()));
1040   - hjMap.put("jhbc_a", Integer.parseInt(lsMap.get("jhbc_a").toString())+ Integer.parseInt(tjMap.get("jhbc_a").toString()));
1041   - hjMap.put("sjbc", Integer.parseInt(lsMap.get("sjbc").toString())+ Integer.parseInt(tjMap.get("sjbc").toString()));
1042   - hjMap.put("sjbc_m",Integer.parseInt(lsMap.get("sjbc_m").toString())+ Integer.parseInt(tjMap.get("sjbc_m").toString()));
1043   - hjMap.put("sjbc_a", Integer.parseInt(lsMap.get("sjbc_a").toString())+ Integer.parseInt(tjMap.get("sjbc_a").toString()));
1044   - hjMap.put("ljbc", Integer.parseInt(lsMap.get("ljbc").toString())+ Integer.parseInt(tjMap.get("ljbc").toString()));
1045   - hjMap.put("ljbc_m", Integer.parseInt(lsMap.get("ljbc_m").toString())+ Integer.parseInt(tjMap.get("ljbc_m").toString()));
1046   - hjMap.put("ljbc_a", Integer.parseInt(lsMap.get("ljbc_a").toString())+Integer.parseInt( tjMap.get("ljbc_a").toString()));
1047   - hjMap.put("fzbc", Integer.parseInt(lsMap.get("fzbc").toString())+ Integer.parseInt(tjMap.get("fzbc").toString()));
1048   - hjMap.put("fzbc_m",Integer.parseInt(lsMap.get("fzbc_m").toString())+ Integer.parseInt(tjMap.get("fzbc_m").toString()));
1049   - hjMap.put("fzbc_a",Integer.parseInt(lsMap.get("fzbc_a").toString())+ Integer.parseInt(tjMap.get("fzbc_a").toString()));
1050   - hjMap.put("dtbc", Integer.parseInt(lsMap.get("dtbc").toString())+ Integer.parseInt(tjMap.get("dtbc").toString()));
1051   - hjMap.put("dtbc_m", Integer.parseInt(lsMap.get("dtbc_m").toString())+ Integer.parseInt(tjMap.get("dtbc_m").toString()));
1052   - hjMap.put("dtbc_a", Integer.parseInt(lsMap.get("dtbc_a").toString())+ Integer.parseInt(tjMap.get("dtbc_a").toString()));
1053   - hjMap.put("djg", Integer.parseInt(lsMap.get("djg").toString())+ Integer.parseInt(tjMap.get("djg").toString()));
1054   - hjMap.put("djg_m", Integer.parseInt(lsMap.get("djg_m").toString())+ Integer.parseInt(tjMap.get("djg_m").toString()));
1055   - hjMap.put("djg_a", Integer.parseInt(lsMap.get("djg_a").toString())+ Integer.parseInt(tjMap.get("djg_a").toString()));
1056   - if(Arith.add(lsMap.get("djg_time"),0)>Arith.add(tjMap.get("djg_time"), 0)){
  1030 + }else{
  1031 + hjMap.put("xlNamePy", PinyinHelper.convertToPinyinString(lsMap.get("xlName").toString(), "", PinyinFormat.WITHOUT_TONE));
  1032 + }
  1033 + } catch (PinyinException e) {
  1034 + // TODO Auto-generated catch block
  1035 + e.printStackTrace();
  1036 + }
  1037 + }
  1038 + hjMap.put("jhzlc", Arith.add(lsMap.get("jhzlc"), hjMap.get("jhzlc")==null?"0":hjMap.get("jhzlc")));
  1039 + hjMap.put("jhlc", Arith.add(lsMap.get("jhlc"), hjMap.get("jhlc")==null?"0":hjMap.get("jhlc")));
  1040 + hjMap.put("jcclc",Arith.add(lsMap.get("jcclc"), hjMap.get("jcclc")==null?"0":hjMap.get("jcclc")));
  1041 + hjMap.put("sjzgl",Arith.add(lsMap.get("sjzgl"), hjMap.get("sjzgl")==null?"0": hjMap.get("sjzgl")));
  1042 + hjMap.put("sjgl", Arith.add(lsMap.get("sjgl"), hjMap.get("sjgl")==null?"0":hjMap.get("sjgl")));
  1043 + hjMap.put("sjksgl", Arith.add(lsMap.get("sjksgl"), hjMap.get("sjksgl")==null?"0":hjMap.get("sjksgl")));
  1044 + hjMap.put("ssgl", Arith.add(lsMap.get("ssgl"), hjMap.get("ssgl")==null?"0":hjMap.get("ssgl")));
  1045 + hjMap.put("ssbc", Integer.parseInt(lsMap.get("ssbc").toString())+Integer.parseInt(hjMap.get("ssbc")==null?"0":hjMap.get("ssbc").toString()));
  1046 + hjMap.put("ssgl_lz", Arith.add(lsMap.get("ssgl_lz"), hjMap.get("ssgl_lz")==null?"0":hjMap.get("ssgl_lz")));
  1047 + hjMap.put("ssgl_dm", Arith.add(lsMap.get("ssgl_dm"), hjMap.get("ssgl_dm")==null?"0":hjMap.get("ssgl_dm")));
  1048 + hjMap.put("ssgl_gz", Arith.add(lsMap.get("ssgl_gz"), hjMap.get("ssgl_gz")==null?"0":hjMap.get("ssgl_gz")));
  1049 + hjMap.put("ssgl_jf", Arith.add(lsMap.get("ssgl_jf"), hjMap.get("ssgl_jf")==null?"0":hjMap.get("ssgl_jf")));
  1050 + hjMap.put("ssgl_zs", Arith.add(lsMap.get("ssgl_zs"), hjMap.get("ssgl_zs")==null?"0":hjMap.get("ssgl_zs")));
  1051 + hjMap.put("ssgl_qr", Arith.add(lsMap.get("ssgl_qr"), hjMap.get("ssgl_qr")==null?"0":hjMap.get("ssgl_qr")));
  1052 + hjMap.put("ssgl_qc", Arith.add(lsMap.get("ssgl_qc"), hjMap.get("ssgl_qc")==null?"0":hjMap.get("ssgl_qc")));
  1053 + hjMap.put("ssgl_kx", Arith.add(lsMap.get("ssgl_kx"), hjMap.get("ssgl_kx")==null?"0":hjMap.get("ssgl_kx")));
  1054 + hjMap.put("ssgl_qh", Arith.add(lsMap.get("ssgl_qh"), hjMap.get("ssgl_qh")==null?"0":hjMap.get("ssgl_qh")));
  1055 + hjMap.put("ssgl_yw", Arith.add(lsMap.get("ssgl_yw"), hjMap.get("ssgl_yw")==null?"0":hjMap.get("ssgl_yw")));
  1056 + hjMap.put("ssgl_other", Arith.add(lsMap.get("ssgl_other"), hjMap.get("ssgl_other")==null?"0":hjMap.get("ssgl_other")));
  1057 + hjMap.put("ljgl", Arith.add(lsMap.get("ljgl"), hjMap.get("ljgl")==null?"0":hjMap.get("ljgl")));
  1058 + hjMap.put("jhbc", Integer.parseInt(lsMap.get("jhbc").toString())+ Integer.parseInt(hjMap.get("jhbc")==null?"0":hjMap.get("jhbc").toString()));
  1059 + hjMap.put("jhbc_m", Integer.parseInt(lsMap.get("jhbc_m").toString())+Integer.parseInt(hjMap.get("jhbc_m")==null?"0":hjMap.get("jhbc_m").toString()));
  1060 + hjMap.put("jhbc_a", Integer.parseInt(lsMap.get("jhbc_a").toString())+ Integer.parseInt(hjMap.get("jhbc_a")==null?"0":hjMap.get("jhbc_a").toString()));
  1061 + hjMap.put("sjbc", Integer.parseInt(lsMap.get("sjbc").toString())+ Integer.parseInt(hjMap.get("sjbc")==null?"0":hjMap.get("sjbc").toString()));
  1062 + hjMap.put("sjbc_m",Integer.parseInt(lsMap.get("sjbc_m").toString())+ Integer.parseInt(hjMap.get("sjbc_m")==null?"0":hjMap.get("sjbc_m").toString()));
  1063 + hjMap.put("sjbc_a", Integer.parseInt(lsMap.get("sjbc_a").toString())+ Integer.parseInt(hjMap.get("sjbc_a")==null?"0":hjMap.get("sjbc_a").toString()));
  1064 + hjMap.put("ljbc", Integer.parseInt(lsMap.get("ljbc").toString())+ Integer.parseInt(hjMap.get("ljbc")==null?"0":hjMap.get("ljbc").toString()));
  1065 + hjMap.put("ljbc_m", Integer.parseInt(lsMap.get("ljbc_m").toString())+ Integer.parseInt(hjMap.get("ljbc_m")==null?"0":hjMap.get("ljbc_m").toString()));
  1066 + hjMap.put("ljbc_a", Integer.parseInt(lsMap.get("ljbc_a").toString())+Integer.parseInt(hjMap.get("ljbc_a")==null?"0":hjMap.get("ljbc_a").toString()));
  1067 + hjMap.put("fzbc", Integer.parseInt(lsMap.get("fzbc").toString())+ Integer.parseInt(hjMap.get("fzbc")==null?"0":hjMap.get("fzbc").toString()));
  1068 + hjMap.put("fzbc_m",Integer.parseInt(lsMap.get("fzbc_m").toString())+ Integer.parseInt(hjMap.get("fzbc_m")==null?"0":hjMap.get("fzbc_m").toString()));
  1069 + hjMap.put("fzbc_a",Integer.parseInt(lsMap.get("fzbc_a").toString())+ Integer.parseInt(hjMap.get("fzbc_a")==null?"0":hjMap.get("fzbc_a").toString()));
  1070 + hjMap.put("dtbc", Integer.parseInt(lsMap.get("dtbc").toString())+ Integer.parseInt(hjMap.get("dtbc")==null?"0":hjMap.get("dtbc").toString()));
  1071 + hjMap.put("dtbc_m", Integer.parseInt(lsMap.get("dtbc_m").toString())+ Integer.parseInt(hjMap.get("dtbc_m")==null?"0":hjMap.get("dtbc_m").toString()));
  1072 + hjMap.put("dtbc_a", Integer.parseInt(lsMap.get("dtbc_a").toString())+ Integer.parseInt(hjMap.get("dtbc_a")==null?"0":hjMap.get("dtbc_a").toString()));
  1073 + hjMap.put("djg", Integer.parseInt(lsMap.get("djg").toString())+ Integer.parseInt(hjMap.get("djg")==null?"0":hjMap.get("djg").toString()));
  1074 + hjMap.put("djg_m", Integer.parseInt(lsMap.get("djg_m").toString())+ Integer.parseInt(hjMap.get("djg_m")==null?"0":hjMap.get("djg_m").toString()));
  1075 + hjMap.put("djg_a", Integer.parseInt(lsMap.get("djg_a").toString())+ Integer.parseInt(hjMap.get("djg_a")==null?"0":hjMap.get("djg_a").toString()));
  1076 + if(hjMap.get("djg_time")==null){
  1077 + hjMap.put("djg_time", lsMap.get("djg_time"));
  1078 + }else{
  1079 + if(Arith.add(lsMap.get("djg_time"),0)>Arith.add(hjMap.get("djg_time"), 0)){
1057 1080 hjMap.put("djg_time", lsMap.get("djg_time"));
1058 1081 }else{
1059   - hjMap.put("djg_time",tjMap.get("djg_time"));
  1082 + hjMap.put("djg_time",hjMap.get("djg_time"));
1060 1083 }
1061   -
1062   - double jl = Arith.sub(Arith.add(hjMap.get("jhlc"), hjMap.get("ljgl")), hjMap.get("ssgl"));
1063   - if (jl == Double.parseDouble(hjMap.get("sjgl").toString())) {
1064   - hjMap.put("zt", 0);
1065   - } else {
1066   - hjMap.put("zt", 1);
1067   - }
1068   - mapListHj.add(hjMap);
1069   - fage=false;
1070 1084 }
1071   - }
1072   -
1073   - if(fage){
1074   - Map<String, Object> m = new HashMap<String, Object>();
1075   - m.put("xlBm", tjMap.get("xlBm"));
1076   - m.put("xlName", tjMap.get("xlName"));
1077   - m.put("jhzlc", tjMap.get("jhzlc"));
1078   - m.put("jhlc", tjMap.get("jhlc"));
1079   - m.put("jcclc", tjMap.get("jcclc"));
1080   - m.put("sjzgl",tjMap.get("sjzgl"));
1081   - m.put("sjgl", tjMap.get("sjgl"));
1082   - m.put("sjksgl", tjMap.get("sjksgl"));
1083   - m.put("ssgl", tjMap.get("ssgl"));
1084   - m.put("ssbc", tjMap.get("ssbc"));
1085   - m.put("ssgl_lz", tjMap.get("ssgl_lz"));
1086   - m.put("ssgl_dm", tjMap.get("ssgl_dm"));
1087   - m.put("ssgl_gz", tjMap.get("ssgl_gz"));
1088   - m.put("ssgl_jf", tjMap.get("ssgl_jf"));
1089   - m.put("ssgl_zs", tjMap.get("ssgl_zs"));
1090   - m.put("ssgl_qr", tjMap.get("ssgl_qr"));
1091   - m.put("ssgl_qc", tjMap.get("ssgl_qc"));
1092   - m.put("ssgl_kx", tjMap.get("ssgl_kx"));
1093   - m.put("ssgl_qh", tjMap.get("ssgl_qh"));
1094   - m.put("ssgl_yw", tjMap.get("ssgl_yw"));
1095   - m.put("ssgl_other", tjMap.get("ssgl_other"));
1096   - m.put("ljgl", tjMap.get("ljgl"));
1097   - m.put("jhbc", tjMap.get("jhbc"));
1098   - m.put("jhbc_m", tjMap.get("jhbc_m"));
1099   - m.put("jhbc_a", tjMap.get("jhbc_a"));
1100   - m.put("sjbc", tjMap.get("sjbc"));
1101   - m.put("sjbc_m",tjMap.get("sjbc_m"));
1102   - m.put("sjbc_a", tjMap.get("sjbc_a"));
1103   - m.put("ljbc", tjMap.get("ljbc"));
1104   - m.put("ljbc_m", tjMap.get("ljbc_m"));
1105   - m.put("ljbc_a",tjMap.get("ljbc_a"));
1106   - m.put("fzbc", tjMap.get("fzbc"));
1107   - m.put("fzbc_m", tjMap.get("fzbc_m"));
1108   - m.put("fzbc_a",tjMap.get("fzbc_a"));
1109   - m.put("dtbc", tjMap.get("dtbc"));
1110   - m.put("dtbc_m", tjMap.get("dtbc_m"));
1111   - m.put("dtbc_a", tjMap.get("dtbc_a"));
1112   - m.put("djg", tjMap.get("djg"));
1113   - m.put("djg_m", tjMap.get("djg_m"));
1114   - m.put("djg_a", tjMap.get("djg_a"));
1115   - m.put("djg_time", tjMap.get("djg_time"));
1116   - double jl = Arith.sub(Arith.add(m.get("jhlc"), m.get("ljgl")), m.get("ssgl"));
1117   - if (jl == Double.parseDouble(m.get("sjgl").toString())) {
1118   - m.put("zt", 0);
  1085 +
  1086 +
  1087 + double jl = Arith.sub(Arith.add(hjMap.get("jhlc"), hjMap.get("ljgl")), hjMap.get("ssgl"));
  1088 + if (jl == Double.parseDouble(hjMap.get("sjgl").toString())) {
  1089 + hjMap.put("zt", 0);
1119 1090 } else {
1120   - m.put("zt", 1);
  1091 + hjMap.put("zt", 1);
1121 1092 }
1122   - mapListHj.add(m);
1123 1093 }
1124 1094 }
1125   - }else{
1126   - mapListHj.addAll(mapList);
1127   - }
1128   - }else{
1129   - for (int i=0;i<tjlist.size();i++) {
1130   - Map<String, Object> tjMap =tjlist.get(i);
1131   - Map<String, Object> m = new HashMap<String, Object>();
1132   - m.put("xlBm", tjMap.get("xlBm"));
1133   - m.put("xlName", tjMap.get("xlName"));
1134   - m.put("jhzlc", tjMap.get("jhzlc"));
1135   - m.put("jhlc", tjMap.get("jhlc"));
1136   - m.put("jcclc", tjMap.get("jcclc"));
1137   - m.put("sjzgl",tjMap.get("sjzgl"));
1138   - m.put("sjgl", tjMap.get("sjgl"));
1139   - m.put("sjksgl", tjMap.get("sjksgl"));
1140   - m.put("ssgl", tjMap.get("ssgl"));
1141   - m.put("ssbc", tjMap.get("ssbc"));
1142   - m.put("ssgl_lz", tjMap.get("ssgl_lz"));
1143   - m.put("ssgl_dm", tjMap.get("ssgl_dm"));
1144   - m.put("ssgl_gz", tjMap.get("ssgl_gz"));
1145   - m.put("ssgl_jf", tjMap.get("ssgl_jf"));
1146   - m.put("ssgl_zs", tjMap.get("ssgl_zs"));
1147   - m.put("ssgl_qr", tjMap.get("ssgl_qr"));
1148   - m.put("ssgl_qc", tjMap.get("ssgl_qc"));
1149   - m.put("ssgl_kx", tjMap.get("ssgl_kx"));
1150   - m.put("ssgl_qh", tjMap.get("ssgl_qh"));
1151   - m.put("ssgl_yw", tjMap.get("ssgl_yw"));
1152   - m.put("ssgl_other", tjMap.get("ssgl_other"));
1153   - m.put("ljgl", tjMap.get("ljgl"));
1154   - m.put("jhbc", tjMap.get("jhbc"));
1155   - m.put("jhbc_m", tjMap.get("jhbc_m"));
1156   - m.put("jhbc_a", tjMap.get("jhbc_a"));
1157   - m.put("sjbc", tjMap.get("sjbc"));
1158   - m.put("sjbc_m",tjMap.get("sjbc_m"));
1159   - m.put("sjbc_a", tjMap.get("sjbc_a"));
1160   - m.put("ljbc", tjMap.get("ljbc"));
1161   - m.put("ljbc_m", tjMap.get("ljbc_m"));
1162   - m.put("ljbc_a",tjMap.get("ljbc_a"));
1163   - m.put("fzbc", tjMap.get("fzbc"));
1164   - m.put("fzbc_m", tjMap.get("fzbc_m"));
1165   - m.put("fzbc_a",tjMap.get("fzbc_a"));
1166   - m.put("dtbc", tjMap.get("dtbc"));
1167   - m.put("dtbc_m", tjMap.get("dtbc_m"));
1168   - m.put("dtbc_a", tjMap.get("dtbc_a"));
1169   - m.put("djg", tjMap.get("djg"));
1170   - m.put("djg_m", tjMap.get("djg_m"));
1171   - m.put("djg_a", tjMap.get("djg_a"));
1172   - m.put("djg_time", tjMap.get("djg_time"));
1173   - double jl = Arith.sub(Arith.add(m.get("jhlc"), m.get("ljgl")), m.get("ssgl"));
1174   - if (jl == Double.parseDouble(m.get("sjgl").toString())) {
1175   - m.put("zt", 0);
1176   - } else {
1177   - m.put("zt", 1);
1178   - }
1179   - mapListHj.add(m);
1180   -
1181   - }
1182   - }
  1095 + mapListHj.add(hjMap);
  1096 + }
  1097 +
  1098 + Collections.sort(mapListHj, new AccountXlbmByping());
  1099 +
1183 1100  
1184 1101 if (type != null && type.length() != 0 && type.equals("export")) {
1185 1102 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
... ... @@ -1821,3 +1738,14 @@ public class CalcWaybillServiceImpl extends BaseServiceImpl&lt;CalcWaybill, Integer
1821 1738 }
1822 1739  
1823 1740 }
  1741 +
  1742 +class AccountXlbmByping implements Comparator<Map<String, Object>> {
  1743 + @Override
  1744 + public int compare(Map<String, Object> o1, Map<String, Object> o2) {
  1745 + // TODO Auto-generated method stub
  1746 +// PinyinHelper.convertToPinyinString(ppy.getName(),
  1747 +// "" , PinyinFormat.WITHOUT_TONE)
  1748 + return o1.get("xlNamePy").toString().compareTo(
  1749 + o2.get("xlNamePy").toString());
  1750 + }
  1751 +}
... ...
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
... ... @@ -2560,8 +2560,8 @@ public class FormsServiceImpl implements FormsService {
2560 2560  
2561 2561 String sql = "select gs_name, fgs_name, cl_zbh, fcsj, bc_type, xl_bm, xl_name, schedule_date"
2562 2562 + " from bsth_c_s_sp_info where gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"' "
2563   - + "and DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"' "
2564   - + "and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"' ";
  2563 + + "and schedule_date >= '"+startDate+"' "
  2564 + + "and schedule_date <= '"+endDate+"' ";
2565 2565 if(line.trim().length() != 0){
2566 2566 sql += "and xl_bm = '"+line+"' ";
2567 2567 }
... ... @@ -2718,8 +2718,8 @@ public class FormsServiceImpl implements FormsService {
2718 2718  
2719 2719 String sql = " select b.xlgs, a.gs_bm,a.gs_name, a.fgs_bm,a.fgs_name , a.xl_bm,b.xl_name,b.sbc,b.sxl,b.scl,a.jbc ,a.jxl ,a.jcl,a.gslsbm,a.fgsbm,a.bc_type from "
2720 2720 + " (select count(DISTINCT gs_bm) gslsbm, gs_bm, count(DISTINCT fgs_bm) fgsbm,fgs_bm,gs_name,fgs_name ,xl_bm, count(*) as jbc,COUNT(DISTINCT xl_bm) as jxl ,COUNT(DISTINCT cl_zbh) as jcl,bc_type"
2721   - + " from bsth_c_s_sp_info" + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '"
2722   - + map.get("startDate").toString() + "' and '" + map.get("endDate").toString() + "' and xl_bm='"
  2721 + + " from bsth_c_s_sp_info" + " where schedule_date >= '"
  2722 + + map.get("startDate").toString() + "' and schedule_date <= '" + map.get("endDate").toString() + "' and xl_bm='"
2723 2723 + map.get("line").toString() + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out')"
2724 2724 + " and gs_bm='"+ map.get("gsdmEcecut").toString() + "'"
2725 2725 + " and fgs_bm='"+ map.get("fgsdmEcecut").toString() + "'"
... ... @@ -2802,8 +2802,8 @@ public class FormsServiceImpl implements FormsService {
2802 2802  
2803 2803 String sql = " select b.xlgs, a.gs_bm,a.gs_name, a.fgs_bm,a.fgs_name , a.xl_bm,b.xl_name,b.sbc,b.sxl,b.scl,a.jbc ,a.jxl ,a.jcl,a.gslsbm,a.fgsbm,a.bc_type from "
2804 2804 + " (select count(DISTINCT gs_bm) gslsbm, gs_bm, count(DISTINCT fgs_bm) fgsbm,fgs_bm,gs_name,fgs_name ,xl_bm, count(*) as jbc,COUNT(DISTINCT xl_bm) as jxl ,COUNT(DISTINCT cl_zbh) as jcl,bc_type"
2805   - + " from bsth_c_s_sp_info" + " where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '"
2806   - + map.get("startDate").toString() + "' and '" + map.get("endDate").toString() + "' and xl_bm='"
  2805 + + " from bsth_c_s_sp_info" + " where schedule_date >= '"
  2806 + + map.get("startDate").toString() + "' and schedule_date <='" + map.get("endDate").toString() + "' and xl_bm='"
2807 2807 + map.get("line").toString() + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out') "
2808 2808 + " and gs_bm='"+ map.get("gsdmAllline").toString() + "'"
2809 2809 + " and fgs_bm='"+ map.get("fgsdmAllline").toString() + "'"
... ... @@ -2813,7 +2813,7 @@ public class FormsServiceImpl implements FormsService {
2813 2813 + ") as xlgs,b.gs_bm,b.fgs_bm,b.xl_bm,b."
2814 2814 + "xl_name,b.gs_name,b.fgs_name, b.sbc,b.sxl ,b.scl "
2815 2815 + "from bsth_c_line t RIGHT JOIN (select gs_bm,fgs_bm,xl_bm,xl_name,gs_name,fgs_name, count(*) as sbc,COUNT(DISTINCT xl_bm) as sxl ,COUNT(DISTINCT cl_zbh) as scl,bc_type from bsth_c_s_sp_info_real "
2816   - + "where DATE_FORMAT(schedule_date,'%Y-%m-%d') BETWEEN '" + map.get("startDate").toString() + "' and '"
  2816 + + "where schedule_date_str >= '" + map.get("startDate").toString() + "' and schedule_date_str <= '"
2817 2817 + map.get("endDate").toString() + "' and xl_bm='" + map.get
2818 2818 ("line").toString()
2819 2819 + "' AND gs_bm is not null AND bc_type NOT IN ('in', 'out')"
... ...
src/main/java/com/bsth/service/oil/LsylbService.java 0 → 100644
  1 +package com.bsth.service.oil;
  2 +
  3 +import java.util.List;
  4 +import java.util.Map;
  5 +
  6 +import com.bsth.entity.oil.Lsylb;
  7 +import com.bsth.entity.oil.Ylb;
  8 +import com.bsth.service.BaseService;
  9 +
  10 +public interface LsylbService extends BaseService<Lsylb, Integer>{
  11 + List<Lsylb> listYlb(Map<String, Object> map);
  12 + Map<String, Object> sumYlb(Map<String, Object> map);
  13 +}
... ...
src/main/java/com/bsth/service/oil/impl/LsylbServiceImpl.java 0 → 100644
  1 +package com.bsth.service.oil.impl;
  2 +
  3 +import java.sql.ResultSet;
  4 +import java.sql.SQLException;
  5 +import java.text.DecimalFormat;
  6 +import java.text.ParseException;
  7 +import java.text.SimpleDateFormat;
  8 +import java.util.ArrayList;
  9 +import java.util.Calendar;
  10 +import java.util.Date;
  11 +import java.util.HashMap;
  12 +import java.util.Iterator;
  13 +import java.util.List;
  14 +import java.util.Map;
  15 +
  16 +import javax.transaction.Transactional;
  17 +
  18 +import org.apache.commons.lang3.StringEscapeUtils;
  19 +import org.apache.commons.lang3.StringUtils;
  20 +import org.slf4j.Logger;
  21 +import org.slf4j.LoggerFactory;
  22 +import org.springframework.beans.factory.annotation.Autowired;
  23 +import org.springframework.data.domain.Sort;
  24 +import org.springframework.data.domain.Sort.Direction;
  25 +import org.springframework.jdbc.core.JdbcTemplate;
  26 +import org.springframework.jdbc.core.RowMapper;
  27 +import org.springframework.stereotype.Service;
  28 +
  29 +import com.alibaba.fastjson.JSONArray;
  30 +import com.alibaba.fastjson.JSONObject;
  31 +import com.bsth.common.ResponseCode;
  32 +import com.bsth.data.BasicData;
  33 +import com.bsth.entity.Cars;
  34 +import com.bsth.entity.Line;
  35 +import com.bsth.entity.mcy_forms.Daily;
  36 +import com.bsth.entity.oil.Cyl;
  37 +import com.bsth.entity.oil.Dlb;
  38 +import com.bsth.entity.oil.Lsylb;
  39 +import com.bsth.entity.oil.Nylog;
  40 +import com.bsth.entity.oil.Ylb;
  41 +import com.bsth.entity.oil.Ylxxb;
  42 +import com.bsth.entity.search.CustomerSpecs;
  43 +import com.bsth.entity.sys.SysUser;
  44 +import com.bsth.repository.CarsRepository;
  45 +import com.bsth.repository.LineRepository;
  46 +import com.bsth.repository.oil.CylRepository;
  47 +import com.bsth.repository.oil.DlbRepository;
  48 +import com.bsth.repository.oil.LsylbRepository;
  49 +import com.bsth.repository.oil.NylogRepository;
  50 +import com.bsth.repository.oil.YlbRepository;
  51 +import com.bsth.repository.oil.YlxxbRepository;
  52 +import com.bsth.security.util.SecurityUtils;
  53 +import com.bsth.service.impl.BaseServiceImpl;
  54 +import com.bsth.service.oil.DlbService;
  55 +import com.bsth.service.oil.LsylbService;
  56 +import com.bsth.service.oil.YlbService;
  57 +import com.bsth.service.realcontrol.ScheduleRealInfoService;
  58 +import com.bsth.util.Arith;
  59 +import com.bsth.util.BatchSaveUtils;
  60 +import com.bsth.util.ReportUtils;
  61 +import com.github.abel533.echarts.code.Y;
  62 +
  63 +import javassist.bytecode.stackmap.BasicBlock.Catch;
  64 +
  65 +@Service
  66 +public class LsylbServiceImpl extends BaseServiceImpl<Lsylb,Integer> implements LsylbService{
  67 + @Autowired
  68 + LsylbRepository repository;
  69 + @Override
  70 + public List<Lsylb> listYlb(Map<String, Object> map) {
  71 + // TODO Auto-generated method stub
  72 + List<Lsylb> listYlb=new ArrayList<Lsylb>();
  73 + List<String> stringList=new ArrayList<String>();
  74 + String rq=map.get("rq").toString();
  75 + String gsbm=map.get("ssgsdm_like").toString();
  76 + String fgsbm=map.get("fgsdm_like").toString();
  77 + String xlbm=map.get("xlbm_like").toString().trim();
  78 + String nbbm=map.get("nbbm_eq").toString();
  79 + String sxtj=map.get("sxtj").toString();
  80 + int nylx=Integer.parseInt(map.get("nylx").toString());
  81 + if(nbbm.trim()!=""){
  82 + stringList.add(nbbm);
  83 + List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm,nylx);
  84 + if(objectLists.size()>0){
  85 + int cs=Integer.parseInt(objectLists.get(0)[1].toString());
  86 + if(sxtj.equals("1")){
  87 + if(cs==1){
  88 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm,nylx, stringList);
  89 + }
  90 + }else if(sxtj.equals("2")){
  91 + if(cs>1){
  92 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm,nylx, stringList);
  93 + }
  94 + }else{
  95 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm,nylx, stringList);
  96 + }
  97 + }
  98 +
  99 + }else{
  100 + //全部
  101 + if(sxtj.equals("0")){
  102 + List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm,nylx);
  103 + for (int i = 0; i < objectLists.size(); i++) {
  104 + String clbm=objectLists.get(i)[0].toString();
  105 + stringList.add(clbm);
  106 + }
  107 + if(stringList.size()>0){
  108 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm,nylx, stringList);
  109 + }
  110 + }else{
  111 + List<Object[]> objectLists;
  112 + if(sxtj.equals("3")){
  113 + //有加油没里程
  114 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm,nylx);
  115 + for (int i = 0; i < objectLists.size(); i++) {
  116 + String clbm=objectLists.get(i)[0].toString();
  117 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  118 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  119 + if(jzl>0 && zlc<=0){
  120 + stringList.add(clbm);
  121 + }
  122 +
  123 + }
  124 +
  125 + }else if(sxtj.equals("4")){
  126 + //有里程没加油
  127 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm,nylx);
  128 + for (int i = 0; i < objectLists.size(); i++) {
  129 + String clbm=objectLists.get(i)[0].toString();
  130 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  131 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  132 + if(zlc>0 && jzl<=0){
  133 + stringList.add(clbm);
  134 + }
  135 +
  136 + }
  137 + }else{
  138 + objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm,nylx);
  139 + for (int i = 0; i < objectLists.size(); i++) {
  140 + String clbm=objectLists.get(i)[0].toString();
  141 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  142 + //一车一单
  143 + if(sxtj.equals("1")){
  144 + if(cs==1){
  145 + stringList.add(clbm);
  146 + }
  147 + }
  148 + //一车多单
  149 + if(sxtj.equals("2")){
  150 + if(cs>1){
  151 + stringList.add(clbm);
  152 + }
  153 + }
  154 + }
  155 + }
  156 +
  157 + if(stringList.size()>0){
  158 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm,nylx, stringList);
  159 + }
  160 + }
  161 + }
  162 +
  163 + return listYlb;
  164 + }
  165 +
  166 +
  167 + @Override
  168 + public Map<String, Object> sumYlb(Map<String, Object> map) {
  169 + // TODO Auto-generated method stub
  170 + List<String> stringList=new ArrayList<String>();
  171 + String rq=map.get("rq").toString();
  172 + String gsbm=map.get("ssgsdm_like").toString();
  173 + String fgsbm=map.get("fgsdm_like").toString();
  174 + String xlbm=map.get("xlbm_like").toString().trim();
  175 + String nbbm=map.get("nbbm_eq").toString();
  176 + String sxtj=map.get("sxtj").toString();
  177 + int nylx=Integer.parseInt(map.get("nylx").toString());
  178 + if(nbbm.trim()!=""){
  179 + stringList.add(nbbm);
  180 + }else{
  181 + if(!sxtj.equals("0")){
  182 + List<Object[]> objectLists;
  183 + if(sxtj.equals("3")){
  184 + //有加油没里程
  185 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm,nylx);
  186 + for (int i = 0; i < objectLists.size(); i++) {
  187 + String clbm=objectLists.get(i)[0].toString();
  188 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  189 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  190 + if(jzl>0 && zlc<=0){
  191 + stringList.add(clbm);
  192 + }
  193 +
  194 + }
  195 +
  196 + }else if(sxtj.equals("4")){
  197 + //有里程没加油
  198 + objectLists=repository.checkNbmmYl(rq, gsbm, fgsbm, xlbm, nbbm,nylx);
  199 + for (int i = 0; i < objectLists.size(); i++) {
  200 + String clbm=objectLists.get(i)[0].toString();
  201 + double jzl=Double.parseDouble(objectLists.get(i)[1].toString());
  202 + double zlc=Double.parseDouble(objectLists.get(i)[2].toString());
  203 + if(zlc>0 && jzl<=0){
  204 + stringList.add(clbm);
  205 + }
  206 +
  207 + }
  208 + }else{
  209 + objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm,nylx);
  210 + for (int i = 0; i < objectLists.size(); i++) {
  211 + String clbm=objectLists.get(i)[0].toString();
  212 + int cs=Integer.parseInt(objectLists.get(i)[1].toString());
  213 + //一车一单
  214 +
  215 + if(sxtj.equals("1")){
  216 + if(cs==1){
  217 + stringList.add(clbm);
  218 + }
  219 + }
  220 + //一车多单
  221 + if(sxtj.equals("2")){
  222 + if(cs>1){
  223 + stringList.add(clbm);
  224 + }
  225 + }
  226 + }
  227 + }
  228 + }
  229 + }
  230 + List<Object[]> sumYlbList=new ArrayList<Object[]>();
  231 + if(sxtj.equals("0")){
  232 + sumYlbList=repository.sumYlb2(rq, gsbm, fgsbm, xlbm,nbbm,nylx);
  233 + }else{
  234 + if(stringList.size()>0){
  235 +
  236 + sumYlbList=repository.sumYlb(rq, gsbm, fgsbm, xlbm, stringList,nylx);
  237 + }
  238 +
  239 + }
  240 +
  241 + Double jzl=0.0,yh=0.0,sh=0.0;
  242 + for (int i = 0; i < sumYlbList.size(); i++) {
  243 + jzl = Arith.add(jzl, Double.valueOf(sumYlbList.get(i)[0].toString()));
  244 + yh = Arith.add(yh, Double.valueOf(sumYlbList.get(i)[1].toString()));
  245 + sh = Arith.add(sh, Double.valueOf(sumYlbList.get(i)[2].toString()));
  246 + }
  247 +
  248 + Map<String, Object> sumMap=new HashMap<String,Object>();
  249 + sumMap.put("jzl", jzl);
  250 + sumMap.put("yh", yh);
  251 + sumMap.put("sh", sh);
  252 + return sumMap;
  253 + }
  254 +}
... ...
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
... ... @@ -811,7 +811,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
811 811 String sql="select * from bsth_c_ylxxb where yyrq='"+rq+"' "
812 812 + " and gsdm ='"+gsbm+"' and nylx ='0' and nbbm "
813 813 + " not in ( select nbbm from bsth_c_ylb "
814   - + " where DATE_FORMAT(rq,'%Y-%m-%d')='"+rq+"' "
  814 + + " where rq='"+rq+"' "
815 815 + " and ssgsdm='"+gsbm+"' and fgsdm ='"+fgsbm+"')"
816 816 + " and nbbm in (select inside_code from "
817 817 + " bsth_c_cars where business_code ='"+gsbm+"' "
... ...
src/main/resources/static/pages/electricity/list/list.html
... ... @@ -273,7 +273,7 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
273 273 if ($("#rq").val() != "") {
274 274 var params=getParamsList();
275 275 $get('/ylb/checkDate',params,function(status){
276   - if(status=='2'){
  276 + if(status=='3'){
277 277 layer.msg('只能操作三天内数据.');
278 278 }else{
279 279 var i = layer.load(2);
... ... @@ -294,7 +294,7 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
294 294 if ($("#rq").val() != "") {
295 295 var params=getParamsList();
296 296 $get('/ylb/checkDate',params,function(status){
297   - if(status=='2'){
  297 + if(status=='3'){
298 298 layer.msg('只能操作三天内数据.');
299 299 }else{
300 300 var i = layer.load(2);
... ... @@ -314,7 +314,7 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
314 314 $("#saveButton").on('click',function(){
315 315 var params_=getParamsList();
316 316 $get('/ylb/checkDate',params_,function(status){
317   - if(status=='2'){
  317 + if(status=='3'){
318 318 layer.msg('只能操作三天内数据.');
319 319 }else{
320 320 var ylArray = [];
... ... @@ -426,7 +426,7 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
426 426 if ($("#rq").val() != "") {
427 427 var params=getParamsList();
428 428 $get('/ylb/checkDate',params,function(status){
429   - if(status=='2'){
  429 + if(status=='3'){
430 430 layer.msg('只能操作三天内数据.');
431 431 }else{
432 432 var i = layer.load(2);
... ... @@ -590,7 +590,7 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
590 590 var params=getParamsList();
591 591 var id = $(this).data('id');
592 592 $get('/ylb/checkDate',params,function(status){
593   - if(status=='2'){
  593 + if(status=='3'){
594 594 layer.msg('只能操作三天内数据.');
595 595 }else{
596 596 var jsy=$('.in_carpark_jsy[data-id='+id+']', '#dl_oil_list').val();
... ... @@ -734,7 +734,7 @@ onkeyup=&quot;this.value=this.value.replace(/[^(\d||/.)]/g,&#39;&#39;).replace(&#39;.&#39;,&#39;$#$&#39;).rep
734 734 $('#removeButton').on('click', function () {
735 735 var params_=getParamsList();
736 736 $get('/ylb/checkDate',params_,function(status){
737   - if(status=='2'){
  737 + if(status=='3'){
738 738 layer.msg('只能操作三天内数据.');
739 739 }else{
740 740 var idArray = [];
... ...
src/main/resources/static/pages/forms/statement/statisticsDaily.html
... ... @@ -28,7 +28,7 @@
28 28  
29 29 <div class="page-head">
30 30 <div class="page-title">
31   - <h1>统计日报</h1>
  31 + <h1>统计日报(按年、月、季度查询请点击<a href="statisticsDailyCalc2.html" target="_blank">统计查询</a>)</h1>
32 32 </div>
33 33 </div>
34 34  
... ...
src/main/resources/static/pages/forms/statement/statisticsDailyCalc2.html
... ... @@ -162,10 +162,12 @@
162 162 $("#date").datetimepicker({
163 163 format : 'YYYY-MM-DD',
164 164 locale : 'zh-cn',
  165 +// maxDate : dateTime
165 166 });
166 167 $("#date2").datetimepicker({
167 168 format : 'YYYY-MM-DD',
168 169 locale : 'zh-cn',
  170 +// maxDate : dateTime
169 171 });
170 172 $("#date").val(dateTime);
171 173 $("#date2").val(dateTime);
... ...
src/main/resources/static/pages/oil/history/list_lsdl.html 0 → 100644
  1 +<style type="text/css">
  2 + #ylbtable table>tr> td {
  3 + white-space: nowrap;
  4 + overflow: hidden;
  5 + text-overflow: ellipsis;
  6 + }
  7 +
  8 +</style>
  9 + <div class="page-head">
  10 + <div class="page-title">
  11 + <h1>进出场存电量</h1>
  12 + </div>
  13 + </div>
  14 +
  15 + <ul class="page-breadcrumb breadcrumb">
  16 + <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li>
  17 + <li><span class="active">用电管理</span> <i class="fa fa-circle"></i></li>
  18 + <li><span class="active">进出场存电量</span></li>
  19 + </ul>
  20 + <div id="ll_lsoil_list"
  21 + class=" row col-md-12 portlet light porttlet-fit portlet-datatable bordered" style="height: calc(100% - 100px);background-color: #fff">
  22 + <!-- Begin: life time stats -->
  23 + <div class="portlet-title" >
  24 + <div class="caption">
  25 + <i class="fa fa-fire-extinguisher"></i> <span
  26 + class="caption-subject font-dark sbold uppercase">进出场存电量表</span>
  27 + </div>
  28 + <div>
  29 + <table
  30 + class="table table-striped table-bordered table-hover table-checkable"
  31 + id="datatable_lsylb" style="table-layout: fixed;margin-bottom: 0px">
  32 + <thead>
  33 + <tr role="row" class="filter">
  34 + <td colspan="2">
  35 + <div style="float: right;">&nbsp;公司&nbsp;</div>
  36 + </td>
  37 + <td colspan="3">
  38 + <div style="float: left; width: 150px">
  39 + <select class="form-control" name="ssgsdm_like"
  40 + id="ylbListGsdmId"></select>
  41 + </div>
  42 + </td>
  43 + <td colspan="2">
  44 + <div style="float: right;">&nbsp;分公司&nbsp;</div>
  45 + </td>
  46 + <td colspan="4">
  47 + <div style="float: left;">
  48 + <select class="form-control" name="fgsdm_like"
  49 + id="ylbListFgsdmId" style="width: 150px"></select>
  50 + </div>
  51 + </td>
  52 + <td>
  53 + <div style="float: right;">日期</div>
  54 + </td>
  55 + <td colspan="3">
  56 + <div style="float: left;">
  57 + <input type="text" style="width: 120px" name="rq" id="rq" />
  58 + </div>
  59 + </td>
  60 + <td colspan="2">
  61 + <div style="float: left;">
  62 + &nbsp;
  63 + <button
  64 + class="btn btn-sm green btn-outline filter-submit margin-bottom"
  65 + style="margin-right: 0px">
  66 + <i class="fa fa-search"></i> 搜索
  67 + </button>
  68 +
  69 + </div>
  70 + </td>
  71 + </tr>
  72 + <tr class="filter2">
  73 + <td colspan="2">
  74 + <div style="float: right;">&nbsp;线路</div>
  75 + </td>
  76 + <td colspan="3">
  77 + <div style="float: left;">
  78 + <select class="form-control" name="xlbm_like" id="xlbm"
  79 + style="width: 150px;"></select>
  80 + </div>
  81 + </td>
  82 + <td colspan="2">
  83 + <div style="float: right;">&nbsp;内部编码</div>
  84 + </td>
  85 + <td colspan="4">
  86 + <div style="float: left;">
  87 + <select class="form-control" name="nbbm_eq" id="nbbm"
  88 + style="width: 120px;"></select>
  89 + </div>
  90 + <div style="float: left;">
  91 + <button class="btn btn-sm #000 btn-outline filter-cancel"
  92 + style="margin-right: 0px">
  93 + <i class="fa fa-times"></i>
  94 + </button>
  95 + </div>
  96 + </td>
  97 + <td>
  98 + <div style="float: right;">类型</div>
  99 + </td>
  100 + <td colspan="3">
  101 + <div style="float: left;">
  102 + <select class="form-control" name="sxtj">
  103 + <option value="0">全部</option>
  104 + <option value="1">一车一单</option>
  105 + <option value="2">一车多单</option>
  106 + <option value="3">有加电没里程</option>
  107 + <option value="4">有里程没加电</option>
  108 + </select>
  109 + </div>
  110 +
  111 + </td>
  112 + <td colspan="2">
  113 + <div style="float: left;">
  114 + &nbsp;
  115 + <button class="btn btn-sm green btn-outline margin-bottom" id="export" style="margin-right: 0px">
  116 + <i class="fa fa-file-excel-o"></i> 导出
  117 + </button>
  118 + </div>
  119 + </td>
  120 + </tr>
  121 + <tr>
  122 + <td colspan="17">
  123 + <div style="float: left;">
  124 + 总计 &nbsp;&nbsp; 加注量:&nbsp;<label id="sumJzl"></label>
  125 + &nbsp;&nbsp; 耗电量:&nbsp;<label id="sumYh"></label> &nbsp;&nbsp;
  126 + 损耗量:&nbsp;<label id="sumSh"></label>
  127 + </div>
  128 + </td>
  129 + </tr>
  130 +
  131 + </thead>
  132 +
  133 + </table>
  134 + </div>
  135 + </div>
  136 +
  137 + <div id="ylbtable" class="portlet-body table-container " style="height: calc(100% + 100px);overflow: hidden;position: absolute;background: #fff;">
  138 +
  139 + <table
  140 + class="table table-striped table-bordered table-hover table-checkable"
  141 + style="table-layout: fixed;margin-bottom: 0px;">
  142 + <thead>
  143 + <tr role="row" class="heading">
  144 + <td width="40px">
  145 + <input type="checkbox" id="selectAll" class="group-checkable" >
  146 + </td>
  147 + <td width="40px">序号</td>
  148 + <td width="8%">日期</td>
  149 + <td width="5%">公司</td>
  150 + <td width="8%">线路</td>
  151 + <td width="5%">自编号</td>
  152 + <td width="7%">驾驶员</td>
  153 + <td width="4%">加电量</td>
  154 + <td width="5%">出场存电</td>
  155 + <td width="5%">进场存电</td>
  156 + <td width="5%">电耗</td>
  157 + <td width="8%">燃电类型</td>
  158 + <td width="4%">尿素</td>
  159 + <td width="8%">耗损原因</td>
  160 + <td width="5%">耗损电量</td>
  161 + <td width="5%">当日总里程</td>
  162 + <td width="5%">数据类型</td>
  163 + <td >百公里电耗</td>
  164 + </tr>
  165 + </thead>
  166 + </table>
  167 + <div id="datatable_lsylb_body_div" style="display: block;position:absolute;overflow: auto;height: calc(100% - 80px);">
  168 + <table
  169 + class="table table-striped table-bordered table-hover table-checkable"
  170 + id="datatable_lsylb_body"
  171 + style="table-layout: fixed; overflow: auto; ">
  172 + <tbody></tbody>
  173 + </table>
  174 + </div>
  175 +
  176 + <div style="text-align: right;">
  177 + <ul id="pagination" class="pagination"></ul>
  178 + </div>
  179 + </div>
  180 + </div>
  181 +<script id="lsylb_list_temp" type="text/html">
  182 + {{each list as obj i}}
  183 + <tr>
  184 + <td style="vertical-align: middle;" width="40px">
  185 + <input type="checkbox" name="id" class="group-checkable icheck" data-id="{{obj.id}}">
  186 + </td>
  187 + <td width="40px">{{i+1}}</td>
  188 + <td width="8%">
  189 + {{obj.rq}}
  190 + </td>
  191 + <td width="5%">
  192 + {{obj.fgsname}}
  193 + </td>
  194 + <td width="8%">
  195 + {{obj.xlname}}
  196 + </td>
  197 + <td width="5%">
  198 + <lable data-id="{{obj.id}}" class="in_carpark_nbbm">{{obj.nbbm}}</lable>
  199 +
  200 + </td>
  201 + <td width="7%">
  202 + {{obj.jsy}}/{{obj.name}}
  203 +
  204 + </td>
  205 + <td width="4%">
  206 + {{obj.jzl}}
  207 + </td>
  208 + <td width="5%">
  209 + {{obj.czyl}}%
  210 + </td>
  211 + <td width="5%">
  212 + {{obj.jzyl}}%
  213 + </td>
  214 + <td width="5%">
  215 + {{obj.yh}}
  216 + </td>
  217 + <td width="8%">
  218 + <select data-id="{{obj.id}}" class="in_carpark_rylx" style=" width:100%" >
  219 + <option value='0' {{if obj.rylx==0}} selected = 'selected' {{/if}}>0号柴油</option>
  220 + <option value='1' {{if obj.rylx==1}} selected = 'selected' {{/if}}>负10号柴油</option>
  221 + </select>
  222 + </td>
  223 + <td width="4%">
  224 + {{obj.ns}}
  225 + </td>
  226 + <td width="8%">
  227 + <select data-id="{{obj.id}}" class="in_carpark_shyy" style=" width:100%" >
  228 + <option value='0' {{if obj.shyy==0}} selected = 'selected' {{/if}}>请选择</option>
  229 + <option value='1' {{if obj.shyy==1}} selected = 'selected' {{/if}}>票务用电</option>
  230 + <option value='2' {{if obj.shyy==2}} selected = 'selected' {{/if}}>保养用电</option>
  231 + <option value='3' {{if obj.shyy==3}} selected = 'selected' {{/if}}>报废车用电</option>
  232 + <option value='4' {{if obj.shyy==4}} selected = 'selected' {{/if}}>其它用电</option>
  233 + <option value='5' {{if obj.shyy==5}} selected = 'selected' {{/if}}>人保部</option>
  234 + <option value='6' {{if obj.shyy==6}} selected = 'selected' {{/if}}>车队</option>
  235 + <option value='7' {{if obj.shyy==7}} selected = 'selected' {{/if}}>车间(高保)</option>
  236 + <option value='8' {{if obj.shyy==8}} selected = 'selected' {{/if}}>车间(小修)</option>
  237 + </select>
  238 + </td>
  239 + <td width="5%">
  240 + {{obj.sh}}
  241 + </td>
  242 + <td width="5%">
  243 + {{obj.zlc}}
  244 + </td>
  245 + <td width="5%">
  246 + <select data-id="{{obj.id}}" class="in_carpark_yhlx">
  247 + <option value='0' {{if obj.yhlx==0}} selected = 'selected' {{/if}}>手录</option>
  248 + <option value='1' {{if obj.yhlx==1}} selected = 'selected' {{/if}}>拆分</option>
  249 + </select>
  250 + </td>
  251 + <td >
  252 + {{obj.bglyh}}
  253 + </td>
  254 + </tr>
  255 + {{/each}}
  256 + {{if list.length == 0}}
  257 + <tr>
  258 + <td colspan=17><h6 class="muted">没有找到相关数据</h6></td>
  259 + </tr>
  260 + {{/if}}
  261 +</script>
  262 +
  263 +<script>
  264 + $(function () {
  265 + var fage=false;
  266 + //var id = 15;
  267 + //$('.in_carpark_jzyl[data-id='+id+']', '#ll_lsoil_list')
  268 +
  269 +
  270 +
  271 + $("#rq").datetimepicker({
  272 + format: 'YYYY-MM-DD',
  273 + locale: 'zh-cn'
  274 + });
  275 +
  276 + var page = 0, initPagination;
  277 + var icheckOptions = {
  278 + radioClass: 'icheckbox_flat-blue',
  279 + increaseArea: '20%'
  280 + }
  281 +
  282 + //重置
  283 + $('tr.filter2 .filter-cancel').on('click', function () {
  284 + $('tr.filter2 , #nbbm').val('').change();
  285 + });
  286 +
  287 + //提交
  288 + $('tr.filter .filter-submit').on('click', function () {
  289 + var ylbGsdm=$("#ylbListGsdmId").val();
  290 + var ylbFgsdm=$("#ylbListFgsdmId").val();
  291 + if ($("#rq").val() == "" || $("#rq").val() ==null){
  292 + layer.msg('请选择日期.');
  293 + }else if(ylbGsdm=="" || ylbGsdm==null || ylbFgsdm=="" ||ylbFgsdm==null){
  294 + layer.msg('请选择公司和分公司.');
  295 + }else {
  296 + var params = getParamsList();
  297 + page = 0;
  298 + jsDoQuery(params, true);
  299 + }
  300 + });
  301 +
  302 +
  303 + var xlList;
  304 + var obj=[];
  305 + $.get('/report/lineList',function(result){
  306 + xlList=result;
  307 + $.get('/user/companyData', function(result){
  308 + obj = result;
  309 + var options="";
  310 + for(var i = 0; i < obj.length; i++){
  311 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  312 + }
  313 + $('#ylbListGsdmId').html(options);
  314 + updateCompany();
  315 + });
  316 + })
  317 + $("#ylbListGsdmId").on("change",updateCompany);
  318 + function updateCompany(){
  319 + var company = $('#ylbListGsdmId').val();
  320 + var options ="";
  321 + for(var i = 0; i < obj.length; i++){
  322 + if(obj[i].companyCode == company){
  323 + var children = obj[i].children;
  324 + for(var j = 0; j < children.length; j++){
  325 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  326 + }
  327 + }
  328 + }
  329 + $('#ylbListFgsdmId').html(options);
  330 + initXl();
  331 + initCl();
  332 + }
  333 + /*
  334 + * 获取数据 p: 要提交的参数, pagination: 是否重新分页
  335 + */
  336 + var moveArray=new Array(); //存放文本框数组
  337 + function jsDoQuery(p, pagination) {
  338 + var params = {};
  339 + if (p)
  340 + params = p;
  341 + //更新时间排序
  342 + params['order'] = 'nbbm';
  343 + params['page'] = page;
  344 + params['rq'] = $("#rq").val();
  345 + params['nylx']=1;
  346 + var l = layer.load(2);
  347 + $get('/lsylb/lsylbList', params, function (data) {
  348 + console.log(data);
  349 + for(var i=1;i<data.length;i++){
  350 + moveArray[i]=new Array();
  351 + for(var j=1;j<6;j++){
  352 + moveArray[i][j]=i+"_"+j;
  353 + }
  354 + }
  355 + $.each(data, function (i, obj) {
  356 + obj.rq = moment(obj.rq).format("YYYY-MM-DD");
  357 + });
  358 + var bodyHtm = template('lsylb_list_temp', {list:data});
  359 +
  360 + $('#datatable_lsylb_body tbody').html(bodyHtm);
  361 + $('.yl_sxzy').on('mouseup', yhSxzy);
  362 + layer.close(l);
  363 + $get('/lsylb/sumLsylb',params,function(returns){
  364 + $("#sumJzl").html(returns.jzl);
  365 + $("#sumYh").html(returns.yh);
  366 + $("#sumSh").html(returns.sh);
  367 + });
  368 + $('input').on('input propertychange',function(){
  369 + var id=$(this).data('id');
  370 + var jzl =$('.in_carpark_jzl[data-id='+id+']', '#ll_lsoil_list').html();
  371 + if(jzl=="" || jzl ==null){
  372 + jzl=0;
  373 + }
  374 + var czyl=$('.in_carpark_czyl[data-id='+id+']', '#ll_lsoil_list').val();
  375 + if(czyl=="" || czyl==null){
  376 + czyl=0;
  377 + }
  378 + var jzyl=$('.in_carpark_jzyl[data-id='+id+']', '#ll_lsoil_list').val();
  379 + if(jzyl=="" || jzyl==null){
  380 + jzyl=0;
  381 + }
  382 +
  383 + var sh = $('.in_carpark_shyl[data-id='+id+']', '#ll_lsoil_list').val();
  384 + if(sh=="" || sh==null){
  385 + sh=0;
  386 + }
  387 + var addNum=accAdd(jzl,czyl);
  388 + var subNum=jzyl;
  389 + var sub=numSubtr(addNum*1000,subNum*1000);
  390 + var subValue=0;
  391 + if(sub/1000>=0){
  392 + subValue=sub/1000;
  393 + }
  394 + $('.in_carpark_yh[data-id='+id+']', '#ll_lsoil_list').val(subValue);
  395 +
  396 + });
  397 + $('#datatable_lsylb_body_div').animate({scrollTop: '0px'}, 800);
  398 + });
  399 + }
  400 +
  401 +
  402 + //页面计算防止精度丢失
  403 + var accAdd = function (a, b) {
  404 + var c, d, e;
  405 + try {
  406 + c = a.toString().split(".")[1].length;
  407 + } catch (f) {
  408 + c = 0;
  409 + }
  410 + try {
  411 + d = b.toString().split(".")[1].length;
  412 + } catch (f) {
  413 + d = 0;
  414 + }
  415 + return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;
  416 + };
  417 +
  418 + var numSubtr = function (a, b) {
  419 + var c, d, e;
  420 + try {
  421 + c = a.toString().split(".")[1].length;
  422 + } catch (f) {
  423 + c = 0;
  424 + }
  425 + try {
  426 + d = b.toString().split(".")[1].length;
  427 + } catch (f) {
  428 + d = 0;
  429 + }
  430 + return e = Math.pow(10, Math.max(c, d)), (a * e - b * e) / e;
  431 + };
  432 +
  433 + function mul(a, b) {
  434 + var c = 0,
  435 + d = a.toString(),
  436 + e = b.toString();
  437 + try {
  438 + c += d.split(".")[1].length;
  439 + } catch (f) {
  440 + }
  441 + try {
  442 + c += e.split(".")[1].length;
  443 + } catch (f) {
  444 + }
  445 + return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
  446 + }
  447 + //改变状态
  448 + function startOptJzylLink(es) {
  449 + es.editable({
  450 + type: 'text',
  451 + placement: 'right',
  452 + width: 100,
  453 + display: false,
  454 + validate: function (value) {
  455 + if (!value)
  456 + return '值不能为空!';
  457 + if (isNaN(value))
  458 + return '只能为数字!';
  459 + if (value < 0)
  460 + return '值不能小于0!';
  461 + },
  462 + inputclass: 'form-control input-medium input-edtable-sm'
  463 + })
  464 + .on('save', function (e, params) {
  465 + $(this).text(params.newValue);
  466 + });
  467 + }
  468 +
  469 + //改变状态
  470 + function startOptShylLink(es) {
  471 + es.editable({
  472 + type: 'text',
  473 + placement: 'right',
  474 + width: 100,
  475 + display: false,
  476 + validate: function (value) {
  477 + if (!value)
  478 + return '值不能为空!';
  479 + if (isNaN(value))
  480 + return '只能为数字!';
  481 + if (value < 0)
  482 + return '值不能小于0!';
  483 + },
  484 + inputclass: 'form-control input-medium input-edtable-sm'
  485 + })
  486 + .on('save', function (e, params) {
  487 + $(this).text(params.newValue);
  488 + });
  489 + }
  490 + function iCheckChange() {
  491 + var tr = $(this).parents('tr');
  492 + if (this.checked)
  493 + tr.addClass('row-active');
  494 + else
  495 + tr.removeClass('row-active');
  496 + }
  497 +
  498 + function showPagination(data) {
  499 + //分页
  500 + $('#pagination').jqPaginator({
  501 + totalPages: data.totalPages,
  502 + visiblePages: 6,
  503 + currentPage: page + 1,
  504 + first: '<li class="first"><a href="javascript:void(0);">首页<\/a><\/li>',
  505 + prev: '<li class="prev"><a href="javascript:void(0);">上一页<\/a><\/li>',
  506 + next: '<li class="next"><a href="javascript:void(0);">下一页<\/a><\/li>',
  507 + last: '<li class="last"><a href="javascript:void(0);">尾页<\/a><\/li>',
  508 + page: '<li class="page"><a href="javascript:void(0);">{{page}}<\/a><\/li>',
  509 + onPageChange: function (num, type) {
  510 + if (initPagination) {
  511 + initPagination = false;
  512 + return;
  513 + }
  514 +
  515 + var params=getParamsList();
  516 + page = num - 1;
  517 + jsDoQuery(params, true);
  518 + }
  519 + });
  520 + }
  521 +
  522 + $("#ylbListFgsdmId").on("change",initXl);
  523 + function initXl(){
  524 + var data=[];
  525 + data.push({id: " ", text: "全部线路"});
  526 + if(fage){
  527 + $("#xlbm").select2("destroy").html('');
  528 + }
  529 + var fgs=$('#ylbListFgsdmId').val();
  530 + var gs=$('#ylbListGsdmId').val();
  531 + for(var i=0;i<xlList.length;i++){
  532 + if(gs!=""){
  533 + if(fgs!=""){
  534 + if(xlList[i]["fgsbm"]==fgs && xlList[i]["gsbm"]==gs){
  535 + data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});
  536 + }
  537 + }else{
  538 + if(xlList[i]["gsbm"]==gs){
  539 + data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});
  540 + }
  541 + }
  542 + }
  543 + }
  544 + initPinYinSelect2('#xlbm',data,'');
  545 + fage=true;
  546 + }
  547 +
  548 + $("#xlbm").on("change",initCl);
  549 + function initCl(){
  550 + $('#nbbm').select2({
  551 + placeholder: '搜索车辆...',
  552 + ajax: {
  553 + url: '/report/carList',
  554 + dataType: 'json',
  555 + delay: 150,
  556 + data: function (params) {
  557 + return {nbbm: params.term,
  558 + gsbm:$('#ylbListGsdmId').val(),
  559 + fgsbm:$('#ylbListFgsdmId').val(),
  560 + xlbm:$('#xlbm').val()};
  561 + },
  562 + processResults: function (data) {
  563 + return {
  564 + results: data
  565 + };
  566 + },
  567 + cache: true
  568 + },
  569 + templateResult: function (repo) {
  570 + if (repo.loading) return repo.text;
  571 + var h = '<span>' + repo.text + '</span>';
  572 + h += (repo.lineName ? '&nbsp;<span class="select2-desc">' + repo.lineName + '</span>' : '');
  573 + return h;
  574 + },
  575 + escapeMarkup: function (markup) {
  576 + return markup;
  577 + },
  578 + minimumInputLength: 1,
  579 + templateSelection: function (repo) {
  580 + return repo.text;
  581 + },
  582 + language: {
  583 + noResults: function () {
  584 + return '<span style="color:red;font-size: 12px;">没有搜索到车辆!</span>';
  585 + },
  586 + inputTooShort: function (e) {
  587 + return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入自编号搜索车辆</span>';
  588 + },
  589 + searching: function () {
  590 + return '<span style="color:gray;font-size: 12px;"> 正在搜索车辆...</span>';
  591 + }
  592 + }
  593 + });
  594 +
  595 + }
  596 +// }
  597 +
  598 + $("#cxtj").on("click", function () {
  599 + if ($("#rq").val() != "") {
  600 +// var params=getParamsList();
  601 + $post('/ylb/updateHistory', {date:'2017-11-07',line:'10708',gsdm:'26',fgsdm:'1'}, function (result) {
  602 + window.open("/downloadFile/download?fileName="+$("#rq").val()+"进出场存电量" );
  603 + });
  604 + } else {
  605 + layer.msg('请选择日期.');
  606 + }
  607 + });
  608 +
  609 +//导出
  610 +
  611 + $("#export").on("click", function () {
  612 + var l = layer.load(2);
  613 + if ($("#rq").val() != "") {
  614 + var params=getParamsList();
  615 + params['nylx']=1;
  616 + $post('/lsylb/listExport', params, function (result) {
  617 + layer.close(l);
  618 + window.open("/downloadFile/download?fileName="+$("#rq").val()+"进出场存电量" );
  619 + });
  620 + } else {
  621 + layer.msg('请选择日期.');
  622 + }
  623 + });
  624 +
  625 +
  626 + function checkDate(){
  627 + var params=getParamsList();
  628 +
  629 + }
  630 +
  631 + function getParamsList(){
  632 + var cells = $('tr.filter')[0].cells
  633 + , cells1 = $('tr.filter2')[0].cells,params = {}
  634 + , name;
  635 + $.each(cells, function (i, cell) {
  636 + var items = $('input,select', cell);
  637 + for (var j = 0, item; item = items[j++];) {
  638 + name = $(item).attr('name');
  639 + if (name) {
  640 + params[name] = $(item).val();
  641 + }
  642 + }
  643 + });
  644 + $.each(cells1, function (i, cell) {
  645 + var items = $('input,select', cell);
  646 + for (var j = 0, item; item = items[j++];) {
  647 + name = $(item).attr('name');
  648 + if (name) {
  649 + params[name] = $(item).val();
  650 + }
  651 + }
  652 + });
  653 +
  654 + return params;
  655 + }
  656 +
  657 + //表格滚动条
  658 + var modal='#ylbtable';
  659 + $('#datatable_lsylb_body_div', modal).perfectScrollbar({suppressScrollX: true});
  660 +
  661 + //全选 全不选
  662 + $("#selectAll").on("click", function () {
  663 + if ($(this).is(":checked")) {
  664 + $("[name=id]:checkbox").prop("checked", true);
  665 +// $("input[name='id']").attr('checked', true)
  666 + } else {
  667 + $("[name=id]:checkbox").prop("checked", false);
  668 +// $("input[name='id']").attr('checked', false);
  669 + }
  670 + });
  671 +
  672 +
  673 + //键盘上下左右移动
  674 + var mouseInfo={}; //存放鼠标的当前位置
  675 + function yhSxzy(){
  676 + tdid=$(this).attr('id');
  677 + var rc=tdid.split("_");
  678 + mouseInfo["row"]=rc[0];
  679 + mouseInfo["col"]=rc[1];
  680 + }
  681 +
  682 + document.body.onkeydown=function(e){ //监听鼠标操作
  683 + e=window.event||e;
  684 + switch(e.keyCode){
  685 + case 37: //左键
  686 + moveLeft();
  687 + break;
  688 + case 38: //向上键
  689 + moveUp();
  690 + break;
  691 + case 39: //右键
  692 + moveRight();
  693 + break;
  694 + case 40: //向下键
  695 + moveDown();
  696 + break;
  697 + default:
  698 + break;
  699 + }
  700 + }
  701 +
  702 + function moveLeft(){
  703 + var row=mouseInfo["row"];
  704 + var col=mouseInfo["col"];
  705 +
  706 + var key=moveArray[row][col-1];
  707 + if(document.getElementById(key)!=undefined)
  708 + {
  709 + var textFiled=document.getElementById(key);
  710 + textFiled.focus(false, 1000);
  711 + textFiled.select();
  712 + mouseInfo["col"]=parseInt(col)-1;
  713 + }
  714 +
  715 + }
  716 + function moveRight(){
  717 + var row=mouseInfo["row"];
  718 + var col=mouseInfo["col"];
  719 +
  720 + var key=moveArray[row][parseInt(col)+1];
  721 + if(document.getElementById(key)!=undefined)
  722 + {
  723 + var textFiled=document.getElementById(key);
  724 + textFiled.focus(false, 1000);
  725 + textFiled.select();
  726 + mouseInfo["col"]=parseInt(col)+1;
  727 + }
  728 + }
  729 + function moveUp(){
  730 + var row=mouseInfo["row"];
  731 + var col=mouseInfo["col"];
  732 +
  733 + var key=moveArray[parseInt(row)-1][col];
  734 + if(document.getElementById(key)!=undefined)
  735 + {
  736 + var textFiled=document.getElementById(key);
  737 + textFiled.focus(false, 1000);
  738 + textFiled.select();
  739 + mouseInfo["row"]=parseInt(row)-1;
  740 + }
  741 + }
  742 + function moveDown(){
  743 + var row=mouseInfo["row"];
  744 + var col=mouseInfo["col"];
  745 + var key=moveArray[parseInt(row)+1][col];
  746 + if(document.getElementById(key)!=undefined)
  747 + {
  748 + var textFiled=document.getElementById(key);
  749 + textFiled.focus(false, 1000);
  750 + textFiled.select();
  751 + mouseInfo["row"]=parseInt(row)+1;
  752 + }
  753 + }
  754 +
  755 + });
  756 +</script>
... ...
src/main/resources/static/pages/oil/history/list_lsyl.html 0 → 100644
  1 +<style type="text/css">
  2 + #ylbtable table>tr> td {
  3 + white-space: nowrap;
  4 + overflow: hidden;
  5 + text-overflow: ellipsis;
  6 + }
  7 +
  8 +</style>
  9 + <div class="page-head">
  10 + <div class="page-title">
  11 + <h1>进出场存油量</h1>
  12 + </div>
  13 + </div>
  14 +
  15 + <ul class="page-breadcrumb breadcrumb">
  16 + <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li>
  17 + <li><span class="active">用油管理</span> <i class="fa fa-circle"></i></li>
  18 + <li><span class="active">进出场存油量</span></li>
  19 + </ul>
  20 + <div id="ll_lsoil_list"
  21 + class=" row col-md-12 portlet light porttlet-fit portlet-datatable bordered" style="height: calc(100% - 100px);background-color: #fff">
  22 + <!-- Begin: life time stats -->
  23 + <div class="portlet-title" >
  24 + <div class="caption">
  25 + <i class="fa fa-fire-extinguisher"></i> <span
  26 + class="caption-subject font-dark sbold uppercase">进出场存油量表</span>
  27 + </div>
  28 + <div>
  29 + <table
  30 + class="table table-striped table-bordered table-hover table-checkable"
  31 + id="datatable_lsylb" style="table-layout: fixed;margin-bottom: 0px">
  32 + <thead>
  33 + <tr role="row" class="filter">
  34 + <td colspan="2">
  35 + <div style="float: right;">&nbsp;公司&nbsp;</div>
  36 + </td>
  37 + <td colspan="3">
  38 + <div style="float: left; width: 150px">
  39 + <select class="form-control" name="ssgsdm_like"
  40 + id="ylbListGsdmId"></select>
  41 + </div>
  42 + </td>
  43 + <td colspan="2">
  44 + <div style="float: right;">&nbsp;分公司&nbsp;</div>
  45 + </td>
  46 + <td colspan="4">
  47 + <div style="float: left;">
  48 + <select class="form-control" name="fgsdm_like"
  49 + id="ylbListFgsdmId" style="width: 150px"></select>
  50 + </div>
  51 + </td>
  52 + <td>
  53 + <div style="float: right;">日期</div>
  54 + </td>
  55 + <td colspan="3">
  56 + <div style="float: left;">
  57 + <input type="text" style="width: 120px" name="rq" id="rq" />
  58 + </div>
  59 + </td>
  60 + <td colspan="2">
  61 + <div style="float: left;">
  62 + &nbsp;
  63 + <button
  64 + class="btn btn-sm green btn-outline filter-submit margin-bottom"
  65 + style="margin-right: 0px">
  66 + <i class="fa fa-search"></i> 搜索
  67 + </button>
  68 + </div>
  69 + </td>
  70 + </tr>
  71 + <tr class="filter2">
  72 + <td colspan="2">
  73 + <div style="float: right;">&nbsp;线路</div>
  74 + </td>
  75 + <td colspan="3">
  76 + <div style="float: left;">
  77 + <select class="form-control" name="xlbm_like" id="xlbm"
  78 + style="width: 150px;"></select>
  79 + </div>
  80 + </td>
  81 + <td colspan="2">
  82 + <div style="float: right;">&nbsp;内部编码</div>
  83 + </td>
  84 + <td colspan="4">
  85 + <div style="float: left;">
  86 + <select class="form-control" name="nbbm_eq" id="nbbm"
  87 + style="width: 120px;"></select>
  88 + </div>
  89 + <div style="float: left;">
  90 + <button class="btn btn-sm #000 btn-outline filter-cancel"
  91 + style="margin-right: 0px">
  92 + <i class="fa fa-times"></i>
  93 + </button>
  94 + </div>
  95 + </td>
  96 + <td>
  97 + <div style="float: right;">类型</div>
  98 + </td>
  99 + <td colspan="3">
  100 + <div style="float: left;">
  101 + <select class="form-control" name="sxtj">
  102 + <option value="0">全部</option>
  103 + <option value="1">一车一单</option>
  104 + <option value="2">一车多单</option>
  105 + <option value="3">有加油没里程</option>
  106 + <option value="4">有里程没加油</option>
  107 + </select>
  108 + </div>
  109 +
  110 + </td>
  111 +
  112 + <td colspan="2">
  113 + <div style="float: left;">
  114 + &nbsp;
  115 + <button class="btn btn-sm green btn-outline margin-bottom" id="export" style="margin-right: 0px">
  116 + <i class="fa fa-file-excel-o"></i> 导出
  117 + </button>
  118 + </div>
  119 + </td>
  120 + </tr>
  121 + <tr>
  122 + <td colspan="17">
  123 + <div style="float: left;">
  124 + 总计 &nbsp;&nbsp; 加注量:&nbsp;<label id="sumJzl"></label>
  125 + &nbsp;&nbsp; 耗油量:&nbsp;<label id="sumYh"></label> &nbsp;&nbsp;
  126 + 损耗量:&nbsp;<label id="sumSh"></label>
  127 + </div>
  128 + </td>
  129 + </tr>
  130 +
  131 + </thead>
  132 +
  133 + </table>
  134 + </div>
  135 + </div>
  136 +
  137 + <div id="ylbtable" class="portlet-body table-container " style="height: calc(100% + 100px);overflow: hidden;position: absolute;background: #fff;">
  138 +
  139 + <table
  140 + class="table table-striped table-bordered table-hover table-checkable"
  141 + style="table-layout: fixed;margin-bottom: 0px;">
  142 + <thead>
  143 + <tr role="row" class="heading">
  144 + <td width="40px">
  145 + <input type="checkbox" id="selectAll" class="group-checkable" >
  146 + </td>
  147 + <td width="40px">序号</td>
  148 + <td width="8%">日期</td>
  149 + <td width="5%">公司</td>
  150 + <td width="8%">线路</td>
  151 + <td width="5%">自编号</td>
  152 + <td width="7%">驾驶员</td>
  153 + <td width="4%">加油量</td>
  154 + <td width="5%">出场存油</td>
  155 + <td width="5%">进场存油</td>
  156 + <td width="5%">油耗</td>
  157 + <td width="8%">燃油类型</td>
  158 + <td width="4%">尿素</td>
  159 + <td width="8%">耗损原因</td>
  160 + <td width="5%">耗损油量</td>
  161 + <td width="5%">当日总里程</td>
  162 + <td width="5%">数据类型</td>
  163 + <td >百公里油耗</td>
  164 + </tr>
  165 + </thead>
  166 + </table>
  167 + <div id="datatable_lsylb_body_div" style="display: block;position:absolute;overflow: auto;height: calc(100% - 80px);">
  168 + <table
  169 + class="table table-striped table-bordered table-hover table-checkable"
  170 + id="datatable_lsylb_body"
  171 + style="table-layout: fixed; overflow: auto; ">
  172 + <tbody></tbody>
  173 + </table>
  174 + </div>
  175 +
  176 + <div style="text-align: right;">
  177 + <ul id="pagination" class="pagination"></ul>
  178 + </div>
  179 + </div>
  180 + </div>
  181 +<script id="lsylb_list_temp" type="text/html">
  182 + {{each list as obj i}}
  183 + <tr>
  184 + <td style="vertical-align: middle;" width="40px">
  185 + <input type="checkbox" name="id" class="group-checkable icheck" data-id="{{obj.id}}">
  186 + </td>
  187 + <td width="40px">{{i+1}}</td>
  188 + <td width="8%">
  189 + {{obj.rq}}
  190 + </td>
  191 + <td width="5%">
  192 + {{obj.fgsname}}
  193 + </td>
  194 + <td width="8%">
  195 + {{obj.xlname}}
  196 + </td>
  197 + <td width="5%">
  198 + <lable data-id="{{obj.id}}" class="in_carpark_nbbm">{{obj.nbbm}}</lable>
  199 +
  200 + </td>
  201 + <td width="7%">
  202 + {{obj.jsy}}/{{obj.name}}
  203 +
  204 + </td>
  205 + <td width="4%">
  206 + {{obj.jzl}}
  207 + </td>
  208 + <td width="5%">
  209 + {{obj.czyl}}
  210 + </td>
  211 + <td width="5%">
  212 + {{obj.jzyl}}
  213 + </td>
  214 + <td width="5%">
  215 + {{obj.yh}}
  216 + </td>
  217 + <td width="8%">
  218 + <select data-id="{{obj.id}}" class="in_carpark_rylx" style=" width:100%" >
  219 + <option value='0' {{if obj.rylx==0}} selected = 'selected' {{/if}}>0号柴油</option>
  220 + <option value='1' {{if obj.rylx==1}} selected = 'selected' {{/if}}>负10号柴油</option>
  221 + </select>
  222 + </td>
  223 + <td width="4%">
  224 + {{obj.ns}}
  225 + </td>
  226 + <td width="8%">
  227 + <select data-id="{{obj.id}}" class="in_carpark_shyy" style=" width:100%" >
  228 + <option value='0' {{if obj.shyy==0}} selected = 'selected' {{/if}}>请选择</option>
  229 + <option value='1' {{if obj.shyy==1}} selected = 'selected' {{/if}}>票务用油</option>
  230 + <option value='2' {{if obj.shyy==2}} selected = 'selected' {{/if}}>保养用油</option>
  231 + <option value='3' {{if obj.shyy==3}} selected = 'selected' {{/if}}>报废车用油</option>
  232 + <option value='4' {{if obj.shyy==4}} selected = 'selected' {{/if}}>其它用油</option>
  233 + <option value='5' {{if obj.shyy==5}} selected = 'selected' {{/if}}>人保部</option>
  234 + <option value='6' {{if obj.shyy==6}} selected = 'selected' {{/if}}>车队</option>
  235 + <option value='7' {{if obj.shyy==7}} selected = 'selected' {{/if}}>车间(高保)</option>
  236 + <option value='8' {{if obj.shyy==8}} selected = 'selected' {{/if}}>车间(小修)</option>
  237 + </select>
  238 + </td>
  239 + <td width="5%">
  240 + {{obj.sh}}
  241 + </td>
  242 + <td width="5%">
  243 + {{obj.zlc}}
  244 + </td>
  245 + <td width="5%">
  246 + <select data-id="{{obj.id}}" class="in_carpark_yhlx">
  247 + <option value='0' {{if obj.yhlx==0}} selected = 'selected' {{/if}}>手录</option>
  248 + <option value='1' {{if obj.yhlx==1}} selected = 'selected' {{/if}}>拆分</option>
  249 + </select>
  250 + </td>
  251 + <td >
  252 + {{obj.bglyh}}
  253 + </td>
  254 + </tr>
  255 + {{/each}}
  256 + {{if list.length == 0}}
  257 + <tr>
  258 + <td colspan=17><h6 class="muted">没有找到相关数据</h6></td>
  259 + </tr>
  260 + {{/if}}
  261 +</script>
  262 +
  263 +<script>
  264 + $(function () {
  265 + var fage=false;
  266 + //var id = 15;
  267 + //$('.in_carpark_jzyl[data-id='+id+']', '#ll_lsoil_list')
  268 +
  269 +
  270 +
  271 + $("#rq").datetimepicker({
  272 + format: 'YYYY-MM-DD',
  273 + locale: 'zh-cn'
  274 + });
  275 +
  276 + var page = 0, initPagination;
  277 + var icheckOptions = {
  278 + radioClass: 'icheckbox_flat-blue',
  279 + increaseArea: '20%'
  280 + }
  281 +
  282 + //重置
  283 + $('tr.filter2 .filter-cancel').on('click', function () {
  284 + $('tr.filter2 , #nbbm').val('').change();
  285 + });
  286 +
  287 + //提交
  288 + $('tr.filter .filter-submit').on('click', function () {
  289 + var ylbGsdm=$("#ylbListGsdmId").val();
  290 + var ylbFgsdm=$("#ylbListFgsdmId").val();
  291 + if ($("#rq").val() == "" || $("#rq").val() ==null){
  292 + layer.msg('请选择日期.');
  293 + }else if(ylbGsdm=="" || ylbGsdm==null || ylbFgsdm=="" ||ylbFgsdm==null){
  294 + layer.msg('请选择公司和分公司.');
  295 + }else {
  296 + var params = getParamsList();
  297 + page = 0;
  298 + jsDoQuery(params, true);
  299 + }
  300 + });
  301 +
  302 +
  303 + var xlList;
  304 + var obj=[];
  305 + $.get('/report/lineList',function(result){
  306 + xlList=result;
  307 + $.get('/user/companyData', function(result){
  308 + obj = result;
  309 + var options="";
  310 + for(var i = 0; i < obj.length; i++){
  311 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  312 + }
  313 + $('#ylbListGsdmId').html(options);
  314 + updateCompany();
  315 + });
  316 + })
  317 + $("#ylbListGsdmId").on("change",updateCompany);
  318 + function updateCompany(){
  319 + var company = $('#ylbListGsdmId').val();
  320 + var options ="";
  321 + for(var i = 0; i < obj.length; i++){
  322 + if(obj[i].companyCode == company){
  323 + var children = obj[i].children;
  324 + for(var j = 0; j < children.length; j++){
  325 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  326 + }
  327 + }
  328 + }
  329 + $('#ylbListFgsdmId').html(options);
  330 + initXl();
  331 + initCl();
  332 + }
  333 + /*
  334 + * 获取数据 p: 要提交的参数, pagination: 是否重新分页
  335 + */
  336 + var moveArray=new Array(); //存放文本框数组
  337 + function jsDoQuery(p, pagination) {
  338 + var params = {};
  339 + if (p)
  340 + params = p;
  341 + //更新时间排序
  342 + params['order'] = 'nbbm';
  343 + params['page'] = page;
  344 + params['rq'] = $("#rq").val();
  345 + params['nylx']=0;
  346 + var l = layer.load(2);
  347 + $get('/lsylb/lsylbList', params, function (data) {
  348 + for(var i=1;i<data.length;i++){
  349 + moveArray[i]=new Array();
  350 + for(var j=1;j<6;j++){
  351 + moveArray[i][j]=i+"_"+j;
  352 + }
  353 + }
  354 + $.each(data, function (i, obj) {
  355 + obj.rq = moment(obj.rq).format("YYYY-MM-DD");
  356 + });
  357 + var bodyHtm = template('lsylb_list_temp', {list:data});
  358 +
  359 + $('#datatable_lsylb_body tbody').html(bodyHtm);
  360 + $('.yl_sxzy').on('mouseup', yhSxzy);
  361 + layer.close(l);
  362 + $get('/lsylb/sumLsylb',params,function(returns){
  363 + $("#sumJzl").html(returns.jzl);
  364 + $("#sumYh").html(returns.yh);
  365 + $("#sumSh").html(returns.sh);
  366 + });
  367 + $('#datatable_lsylb_body_div').animate({scrollTop: '0px'}, 800);
  368 + });
  369 + }
  370 +
  371 +
  372 + //页面计算防止精度丢失
  373 + var accAdd = function (a, b) {
  374 + var c, d, e;
  375 + try {
  376 + c = a.toString().split(".")[1].length;
  377 + } catch (f) {
  378 + c = 0;
  379 + }
  380 + try {
  381 + d = b.toString().split(".")[1].length;
  382 + } catch (f) {
  383 + d = 0;
  384 + }
  385 + return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;
  386 + };
  387 +
  388 + var numSubtr = function (a, b) {
  389 + var c, d, e;
  390 + try {
  391 + c = a.toString().split(".")[1].length;
  392 + } catch (f) {
  393 + c = 0;
  394 + }
  395 + try {
  396 + d = b.toString().split(".")[1].length;
  397 + } catch (f) {
  398 + d = 0;
  399 + }
  400 + return e = Math.pow(10, Math.max(c, d)), (a * e - b * e) / e;
  401 + };
  402 +
  403 + function mul(a, b) {
  404 + var c = 0,
  405 + d = a.toString(),
  406 + e = b.toString();
  407 + try {
  408 + c += d.split(".")[1].length;
  409 + } catch (f) {
  410 + }
  411 + try {
  412 + c += e.split(".")[1].length;
  413 + } catch (f) {
  414 + }
  415 + return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
  416 + }
  417 +
  418 + function iCheckChange() {
  419 + var tr = $(this).parents('tr');
  420 + if (this.checked)
  421 + tr.addClass('row-active');
  422 + else
  423 + tr.removeClass('row-active');
  424 + }
  425 +
  426 +
  427 + $("#ylbListFgsdmId").on("change",initXl);
  428 + function initXl(){
  429 + var data=[];
  430 + data.push({id: " ", text: "全部线路"});
  431 + if(fage){
  432 + $("#xlbm").select2("destroy").html('');
  433 + }
  434 + var fgs=$('#ylbListFgsdmId').val();
  435 + var gs=$('#ylbListGsdmId').val();
  436 + for(var i=0;i<xlList.length;i++){
  437 + if(gs!=""){
  438 + if(fgs!=""){
  439 + if(xlList[i]["fgsbm"]==fgs && xlList[i]["gsbm"]==gs){
  440 + data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});
  441 + }
  442 + }else{
  443 + if(xlList[i]["gsbm"]==gs){
  444 + data.push({id: xlList[i]["xlbm"], text: xlList[i]["xlname"]});
  445 + }
  446 + }
  447 + }
  448 + }
  449 + initPinYinSelect2('#xlbm',data,'');
  450 + fage=true;
  451 + }
  452 +
  453 + $("#xlbm").on("change",initCl);
  454 + function initCl(){
  455 + $('#nbbm').select2({
  456 + placeholder: '搜索车辆...',
  457 + ajax: {
  458 + url: '/report/carList',
  459 + dataType: 'json',
  460 + delay: 150,
  461 + data: function (params) {
  462 + return {nbbm: params.term,
  463 + gsbm:$('#ylbListGsdmId').val(),
  464 + fgsbm:$('#ylbListFgsdmId').val(),
  465 + xlbm:$('#xlbm').val()};
  466 + },
  467 + processResults: function (data) {
  468 + return {
  469 + results: data
  470 + };
  471 + },
  472 + cache: true
  473 + },
  474 + templateResult: function (repo) {
  475 + if (repo.loading) return repo.text;
  476 + var h = '<span>' + repo.text + '</span>';
  477 + h += (repo.lineName ? '&nbsp;<span class="select2-desc">' + repo.lineName + '</span>' : '');
  478 + return h;
  479 + },
  480 + escapeMarkup: function (markup) {
  481 + return markup;
  482 + },
  483 + minimumInputLength: 1,
  484 + templateSelection: function (repo) {
  485 + return repo.text;
  486 + },
  487 + language: {
  488 + noResults: function () {
  489 + return '<span style="color:red;font-size: 12px;">没有搜索到车辆!</span>';
  490 + },
  491 + inputTooShort: function (e) {
  492 + return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入自编号搜索车辆</span>';
  493 + },
  494 + searching: function () {
  495 + return '<span style="color:gray;font-size: 12px;"> 正在搜索车辆...</span>';
  496 + }
  497 + }
  498 + });
  499 +
  500 + }
  501 +// }
  502 +
  503 +
  504 +//导出
  505 +
  506 + $("#export").on("click", function () {
  507 + var l = layer.load(2);
  508 + if ($("#rq").val() != "") {
  509 + var params=getParamsList();
  510 + params['nylx']=0;
  511 + $post('/lsylb/listExport', params, function (result) {
  512 + layer.close(l);
  513 + window.open("/downloadFile/download?fileName="+$("#rq").val()+"进出场存油量" );
  514 + });
  515 + } else {
  516 + layer.msg('请选择日期.');
  517 + }
  518 + });
  519 +
  520 + function checkDate(){
  521 + var params=getParamsList();
  522 +
  523 + }
  524 +
  525 + function getParamsList(){
  526 + var cells = $('tr.filter')[0].cells
  527 + , cells1 = $('tr.filter2')[0].cells,params = {}
  528 + , name;
  529 + $.each(cells, function (i, cell) {
  530 + var items = $('input,select', cell);
  531 + for (var j = 0, item; item = items[j++];) {
  532 + name = $(item).attr('name');
  533 + if (name) {
  534 + params[name] = $(item).val();
  535 + }
  536 + }
  537 + });
  538 + $.each(cells1, function (i, cell) {
  539 + var items = $('input,select', cell);
  540 + for (var j = 0, item; item = items[j++];) {
  541 + name = $(item).attr('name');
  542 + if (name) {
  543 + params[name] = $(item).val();
  544 + }
  545 + }
  546 + });
  547 +
  548 + return params;
  549 + }
  550 +
  551 + //表格滚动条
  552 + var modal='#ylbtable';
  553 + $('#datatable_lsylb_body_div', modal).perfectScrollbar({suppressScrollX: true});
  554 +
  555 + //全选 全不选
  556 + $("#selectAll").on("click", function () {
  557 + if ($(this).is(":checked")) {
  558 + $("[name=id]:checkbox").prop("checked", true);
  559 +// $("input[name='id']").attr('checked', true)
  560 + } else {
  561 + $("[name=id]:checkbox").prop("checked", false);
  562 +// $("input[name='id']").attr('checked', false);
  563 + }
  564 + });
  565 +
  566 +
  567 + //键盘上下左右移动
  568 + var mouseInfo={}; //存放鼠标的当前位置
  569 + function yhSxzy(){
  570 + tdid=$(this).attr('id');
  571 + var rc=tdid.split("_");
  572 + mouseInfo["row"]=rc[0];
  573 + mouseInfo["col"]=rc[1];
  574 + }
  575 +
  576 + document.body.onkeydown=function(e){ //监听鼠标操作
  577 + e=window.event||e;
  578 + switch(e.keyCode){
  579 + case 37: //左键
  580 + moveLeft();
  581 + break;
  582 + case 38: //向上键
  583 + moveUp();
  584 + break;
  585 + case 39: //右键
  586 + moveRight();
  587 + break;
  588 + case 40: //向下键
  589 + moveDown();
  590 + break;
  591 + default:
  592 + break;
  593 + }
  594 + }
  595 +
  596 + function moveLeft(){
  597 + var row=mouseInfo["row"];
  598 + var col=mouseInfo["col"];
  599 +
  600 + var key=moveArray[row][col-1];
  601 + if(document.getElementById(key)!=undefined)
  602 + {
  603 + var textFiled=document.getElementById(key);
  604 + textFiled.focus(false, 1000);
  605 + textFiled.select();
  606 + mouseInfo["col"]=parseInt(col)-1;
  607 + }
  608 +
  609 + }
  610 + function moveRight(){
  611 + var row=mouseInfo["row"];
  612 + var col=mouseInfo["col"];
  613 +
  614 + var key=moveArray[row][parseInt(col)+1];
  615 + if(document.getElementById(key)!=undefined)
  616 + {
  617 + var textFiled=document.getElementById(key);
  618 + textFiled.focus(false, 1000);
  619 + textFiled.select();
  620 + mouseInfo["col"]=parseInt(col)+1;
  621 + }
  622 + }
  623 + function moveUp(){
  624 + var row=mouseInfo["row"];
  625 + var col=mouseInfo["col"];
  626 +
  627 + var key=moveArray[parseInt(row)-1][col];
  628 + if(document.getElementById(key)!=undefined)
  629 + {
  630 + var textFiled=document.getElementById(key);
  631 + textFiled.focus(false, 1000);
  632 + textFiled.select();
  633 + mouseInfo["row"]=parseInt(row)-1;
  634 + }
  635 + }
  636 + function moveDown(){
  637 + var row=mouseInfo["row"];
  638 + var col=mouseInfo["col"];
  639 + var key=moveArray[parseInt(row)+1][col];
  640 + if(document.getElementById(key)!=undefined)
  641 + {
  642 + var textFiled=document.getElementById(key);
  643 + textFiled.focus(false, 1000);
  644 + textFiled.select();
  645 + mouseInfo["row"]=parseInt(row)+1;
  646 + }
  647 + }
  648 +
  649 + });
  650 +</script>
... ...