Commit 13fda53ada6d7dda9a944691ce3bf55dd61a8c13

Authored by 娄高锋
1 parent d618f3c9

电量清分接口数据

src/main/java/com/bsth/controller/calc/CalcDlbController.java 0 → 100644
  1 +package com.bsth.controller.calc;
  2 +
  3 +import java.text.SimpleDateFormat;
  4 +import java.util.Date;
  5 +import java.util.HashMap;
  6 +import java.util.Map;
  7 +
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.web.bind.annotation.RequestMapping;
  10 +import org.springframework.web.bind.annotation.RequestParam;
  11 +import org.springframework.web.bind.annotation.RestController;
  12 +
  13 +import com.bsth.common.ResponseCode;
  14 +import com.bsth.service.calc.CalcDlbService;
  15 +
  16 +/**
  17 + * Created by 20/05/27.
  18 + */
  19 +@RestController
  20 +@RequestMapping("calc_dlb")
  21 +public class CalcDlbController {
  22 +
  23 + @Autowired
  24 + CalcDlbService service;
  25 +
  26 + @RequestMapping(value="/updateDlb")
  27 + public Map<String, Object> generateDaliy(@RequestParam Map<String, Object> map) throws Exception{
  28 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  29 + Date d = new Date();
  30 + d.setTime(d.getTime() - (1l*1000*60*60*24)); //默认前一天
  31 + String date = "";
  32 + if(map.containsKey("date") && map.get("date")!=null){
  33 + date=map.get("date").toString().trim();
  34 + }
  35 +
  36 + Map<String, Object> m = new HashMap<String, Object>();
  37 + m.put("date", date);
  38 + try {
  39 + sdf.format(sdf.parse(date)); //校验日期格式
  40 +
  41 +// m.put("status", service.impElectric(date));
  42 + service.impElectric(date);
  43 + m.put("status", ResponseCode.SUCCESS);
  44 +
  45 + } catch (Exception e) {
  46 + // TODO: handle exception
  47 + e.printStackTrace();
  48 + m.put("status", ResponseCode.ERROR);
  49 + return m;
  50 + }
  51 + return m;
  52 + }
  53 +
  54 +}
... ...
src/main/java/com/bsth/service/calc/CalcDlbService.java 0 → 100644
  1 +package com.bsth.service.calc;
  2 +
  3 +import java.util.List;
  4 +import java.util.Map;
  5 +
  6 +/**
  7 + * Created by 20/05/27.
  8 + */
  9 +public interface CalcDlbService {
  10 +
  11 + public void impElectric(String date) throws Exception;
  12 +
  13 +}
... ...
src/main/java/com/bsth/service/calc/impl/CalcDlbServiceImpl.java 0 → 100644
  1 +package com.bsth.service.calc.impl;
  2 +
  3 +import java.io.BufferedReader;
  4 +import java.io.InputStreamReader;
  5 +import java.math.BigDecimal;
  6 +import java.net.HttpURLConnection;
  7 +import java.net.URL;
  8 +import java.sql.PreparedStatement;
  9 +import java.sql.ResultSet;
  10 +import java.sql.SQLException;
  11 +import java.text.SimpleDateFormat;
  12 +import java.util.ArrayList;
  13 +import java.util.Calendar;
  14 +import java.util.Collections;
  15 +import java.util.Comparator;
  16 +import java.util.Date;
  17 +import java.util.HashMap;
  18 +import java.util.HashSet;
  19 +import java.util.Iterator;
  20 +import java.util.List;
  21 +import java.util.Map;
  22 +import java.util.Set;
  23 +
  24 +import com.alibaba.fastjson.JSONObject;
  25 +import com.bsth.entity.realcontrol.ChildTaskPlan;
  26 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  27 +import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
  28 +import com.bsth.service.calc.CalcDlbService;
  29 +import com.bsth.util.Arith;
  30 +
  31 +import org.joda.time.format.DateTimeFormat;
  32 +import org.joda.time.format.DateTimeFormatter;
  33 +import org.slf4j.Logger;
  34 +import org.slf4j.LoggerFactory;
  35 +import org.springframework.beans.factory.annotation.Autowired;
  36 +import org.springframework.jdbc.core.BatchPreparedStatementSetter;
  37 +import org.springframework.jdbc.core.JdbcTemplate;
  38 +import org.springframework.jdbc.core.RowMapper;
  39 +import org.springframework.jdbc.datasource.DataSourceTransactionManager;
  40 +import org.springframework.stereotype.Service;
  41 +import org.springframework.transaction.TransactionDefinition;
  42 +import org.springframework.transaction.TransactionStatus;
  43 +import org.springframework.transaction.support.DefaultTransactionDefinition;
  44 +
  45 +/**
  46 + * Created by 20/05/27.
  47 + */
  48 +@Service
  49 +public class CalcDlbServiceImpl implements CalcDlbService {
  50 +
  51 + @Autowired
  52 + JdbcTemplate jdbcTemplate;
  53 +
  54 + @Autowired
  55 + ScheduleRealInfoRepository scheRepository;
  56 +
  57 + Logger logger = LoggerFactory.getLogger(this.getClass());
  58 +
  59 + final DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm");
  60 +
  61 +
  62 + /**
  63 + * @throws Exception
  64 + */
  65 + public void impElectric(String date) throws Exception{
  66 + try {
  67 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  68 + Calendar calendar2 = Calendar.getInstance();
  69 + calendar2.setTime(new Date());
  70 + int hours= calendar2.get(Calendar.HOUR_OF_DAY);
  71 +
  72 +// if(hoursC>=8 && hours<9){//每天8点到9点间执行
  73 + if(true){ //无更新时点限制
  74 + //查询所有车辆
  75 + String sql = "select inside_code,branche_company_code, ny_type from bsth_c_cars";
  76 +
  77 + List<Map<String, String>> listMap= jdbcTemplate.query(sql, new RowMapper<Map<String,String>>(){
  78 + @Override
  79 + public Map<String, String> mapRow(ResultSet rs, int rowNum) throws SQLException {
  80 + Map<String, String> m=new HashMap<String, String>();
  81 + m.put("insideCode", rs.getString("inside_code"));
  82 + m.put("brancheCompanyCode", rs.getString("branche_company_code"));
  83 + m.put("nyType", rs.getString("ny_type"));
  84 + return m;
  85 + }
  86 + });
  87 + Map<String, String> map=new HashMap<String, String>();
  88 + Map<String, String> nyTypeMap=new HashMap<String, String>();
  89 + for (int i = 0; i < listMap.size(); i++) {
  90 + Map<String, String> m=listMap.get(i);
  91 + map.put(m.get("insideCode"), m.get("brancheCompanyCode"));
  92 + nyTypeMap.put(m.get("insideCode"), m.get("nyType"));
  93 + }
  94 +// Date dNow = new Date();
  95 +// Calendar calendar = Calendar.getInstance();
  96 +// calendar.setTime(dNow);
  97 +// calendar.add(Calendar.DAY_OF_MONTH, -1);
  98 +// Date dBefore = calendar.getTime();
  99 +// String date = sdf.format(dBefore);
  100 + String json = this.getHttpInterface("https://web.enneagon.com/exchange/pub/rest/vehicle/getJiaDingBusDailyData?scheduleDate="+date);
  101 + List<Map<String, Object>> list=(List<Map<String, Object>>) JSONObject.parse(json);
  102 + if(list.size()>0){
  103 + savePush(list, date, map);
  104 + }
  105 +
  106 + //第一步获取从排班表获取日期,人,车,线,路牌,里程
  107 + List<ScheduleRealInfo> findByDate = scheRepository.findByDate(date);
  108 + Map<String, List<ScheduleRealInfo>> keyMap = new HashMap<String, List<ScheduleRealInfo>>();
  109 + for(ScheduleRealInfo s : findByDate){
  110 + String key = s.getGsBm() + "/" + s.getFgsBm() + "/" + s.getXlBm() + "/" + s.getLpName() + "/" + s.getClZbh() + "/" + s.getjGh();
  111 + if(!(keyMap.containsKey(key))){
  112 + keyMap.put(key, new ArrayList<ScheduleRealInfo>());
  113 + }
  114 + keyMap.get(key).add(s);
  115 + }
  116 +
  117 + List<Map<String, Object>> list1 = new ArrayList<Map<String, Object>>();
  118 + List<Map<String, Object>> list2 = (List<Map<String, Object>>) JSONObject.parse(json);
  119 + Set<String> set = new HashSet<String>();
  120 + Map<String, List<Map<String, Object>>> keyMap1 = new HashMap<String, List<Map<String, Object>>>();
  121 + Map<String, List<Map<String, Object>>> keyMap2 = new HashMap<String, List<Map<String, Object>>>();
  122 +
  123 + for(String key : keyMap.keySet()){
  124 + Map<String, Object> m = new HashMap<String, Object>();
  125 + List<ScheduleRealInfo> list3 = keyMap.get(key);
  126 + double sjzgl = 0;
  127 + String gsName = "", fgsName = "", xlName = "", jName = "", red = "", fcsj = "";
  128 + for (ScheduleRealInfo scheduleRealInfo : list3) {
  129 +
  130 + //取最小的发车时间
  131 + String fcsjA = "", redA = "";
  132 + if(scheduleRealInfo.getFcsjActual() != null && scheduleRealInfo.getFcsjActual().trim().length() > 0){
  133 + fcsjA = scheduleRealInfo.getFcsjActual();
  134 + } else if(scheduleRealInfo.getFcsj() != null && scheduleRealInfo.getFcsj().trim().length() > 0){
  135 + fcsjA = scheduleRealInfo.getFcsj();
  136 + }
  137 + if(scheduleRealInfo.getRealExecDate() != null && scheduleRealInfo.getRealExecDate().trim().length() > 0){
  138 + redA = scheduleRealInfo.getRealExecDate();
  139 + } else {
  140 + redA = date;
  141 + }
  142 + if(fcsjA.trim().length() > 0){
  143 + if(fcsj.length() == 0 || dtf.parseMillis(redA+fcsjA) < dtf.parseMillis(red+fcsj)){
  144 + fcsj = fcsjA;
  145 + red = redA;
  146 + }
  147 + }
  148 +
  149 + if(scheduleRealInfo.getGsName() != null && scheduleRealInfo.getGsName().trim().length() > 0){
  150 + gsName = scheduleRealInfo.getGsName();
  151 + }
  152 + if(scheduleRealInfo.getFgsName() != null && scheduleRealInfo.getFgsName().trim().length() > 0){
  153 + fgsName = scheduleRealInfo.getFgsName();
  154 + }
  155 + if(scheduleRealInfo.getXlName() != null && scheduleRealInfo.getXlName().trim().length() > 0){
  156 + xlName = scheduleRealInfo.getXlName();
  157 + }
  158 + if(scheduleRealInfo.getjName() != null && scheduleRealInfo.getjName().trim().length() > 0){
  159 + jName = scheduleRealInfo.getjName();
  160 + }
  161 +
  162 + //开始算里程
  163 + if (!isInOut(scheduleRealInfo)) {
  164 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  165 + if(!scheduleRealInfo.isSflj()){
  166 + if(childTaskPlans.isEmpty()){
  167 + if(!scheduleRealInfo.isDestroy()){
  168 + //非子任务 实际里程
  169 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  170 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  171 + if(jhlc-jhlcOrig>0){
  172 + sjzgl=Arith.add(sjzgl,jhlcOrig);
  173 + }else{
  174 + sjzgl=Arith.add(sjzgl,jhlc);
  175 + }
  176 + }
  177 + //临加里程
  178 + double jhlc=scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc();
  179 + double jhlcOrig=scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig();
  180 + double zjlc=Arith.sub(jhlc, jhlcOrig);
  181 + if(zjlc>0){
  182 + sjzgl=Arith.add(zjlc, sjzgl);
  183 + }
  184 + } else {
  185 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  186 + while (it.hasNext()) {
  187 + ChildTaskPlan childTaskPlan = it.next();
  188 + if(childTaskPlan.getMileageType().equals("service")
  189 + &&"正常".equals(childTaskPlan.getType1())
  190 + && childTaskPlan.getCcId()==null){
  191 + //子任务 实际里程
  192 + if (!childTaskPlan.isDestroy()) {
  193 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  194 + sjzgl=Arith.add(sjzgl,jhgl);
  195 + }
  196 + } else if(childTaskPlan.getMileageType().equals("empty") && childTaskPlan.getCcId()==null){
  197 + //空驶公里
  198 + if (!childTaskPlan.isDestroy()) {
  199 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  200 + sjzgl=Arith.add(sjzgl,jhgl);
  201 + }
  202 + } else if("service".equals(childTaskPlan.getMileageType())&&"临加".equals(childTaskPlan.getType1())
  203 + && childTaskPlan.getCcId()==null){
  204 + //临加里程
  205 + if (!childTaskPlan.isDestroy()) {
  206 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  207 + sjzgl=Arith.add(sjzgl,jhgl);
  208 + }
  209 + }
  210 + }
  211 + }
  212 + } else {
  213 + //临加里程
  214 + if(childTaskPlans.isEmpty()){
  215 + sjzgl=Arith.add(sjzgl,scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc());
  216 + }else{
  217 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  218 + while (it.hasNext()) {
  219 + ChildTaskPlan childTaskPlan = it.next();
  220 + if(childTaskPlan.getMileageType().equals("service") && childTaskPlan.getCcId()==null){
  221 + if (!childTaskPlan.isDestroy()) {
  222 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  223 + sjzgl=Arith.add(sjzgl,jhgl);
  224 + }
  225 + }
  226 + }
  227 + }
  228 + }
  229 + } else {
  230 + //进出场里程
  231 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  232 + if(childTaskPlans.isEmpty()){
  233 + if(!scheduleRealInfo.isDestroy()){
  234 + sjzgl=Arith.add(sjzgl, scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc());
  235 + }
  236 + }else{
  237 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  238 + while (it.hasNext()) {
  239 + ChildTaskPlan childTaskPlan = it.next();
  240 + if(childTaskPlan.getMileageType().equals("empty") && childTaskPlan.getCcId()==null){
  241 + if (!childTaskPlan.isDestroy()) {
  242 + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  243 + sjzgl=Arith.add(sjzgl,jhgl);
  244 + }
  245 + }
  246 + }
  247 + }
  248 + }
  249 + }
  250 + String[] split = key.split("/");
  251 + m.put("red", red);
  252 + m.put("fcsj", fcsj);
  253 + m.put("gsName", gsName);
  254 + m.put("fgsName", fgsName);
  255 + m.put("date", date);
  256 + m.put("gsBm", split[0]);
  257 + m.put("fgsBm", split[1]);
  258 + m.put("xlBm", split[2]);
  259 + m.put("xlName", xlName);
  260 + m.put("lpName", split[3]);
  261 + m.put("clZbh", split[4]);
  262 + m.put("jGh", split[5]);
  263 + m.put("jName", jName);
  264 + m.put("sjzgl", sjzgl);
  265 + list1.add(m);
  266 + }
  267 +
  268 + //第二步根据日期,车辆匹配
  269 + for(Map<String, Object> m : list1){//里程
  270 + String key = m.get("date").toString() + "/" + m.get("clZbh").toString();
  271 + if(!(keyMap1.containsKey(key))){
  272 + keyMap1.put(key, new ArrayList<Map<String, Object>>());
  273 + }
  274 + keyMap1.get(key).add(m);
  275 + set.add(key);
  276 + }
  277 + for(Map<String, Object> m : list2){//加电量
  278 + String key = m.get("scheduleDate").toString() + "/" + m.get("insideCode").toString();
  279 + if(!(keyMap2.containsKey(key))){
  280 + keyMap2.put(key, new ArrayList<Map<String, Object>>());
  281 + }
  282 + keyMap2.get(key).add(m);
  283 + set.add(key);
  284 + }
  285 +
  286 + //第三步 一车多单进行拆分
  287 + final List<Map<String, Object>> list5 = new ArrayList<Map<String, Object>>();
  288 +
  289 + for(String key : set){
  290 +// Map<String, Object> resMap = new HashMap<String, Object>();
  291 + List<Map<String, Object>> list3 = keyMap1.get(key);
  292 + List<Map<String, Object>> list4 = keyMap2.get(key);
  293 +
  294 + double jdl = 0d;
  295 + if(list4 != null){
  296 + for(Map<String, Object> m : list4){
  297 + jdl = Arith.add(jdl, m.get("sum").toString());
  298 + }
  299 + }
  300 +
  301 + String clZbh = key.split("/")[1];
  302 + if(jdl < 0.01d){
  303 + if(nyTypeMap.get(clZbh) != null
  304 + && "1".equals(nyTypeMap.get(clZbh).toString()) //1:全电;2:油电混合
  305 + && "2".equals(nyTypeMap.get(clZbh).toString())){
  306 + //加电量为0情况下,只取电车
  307 + } else {
  308 + continue;
  309 + }
  310 + }
  311 +
  312 + if(list3 != null && list3.size() > 0){
  313 +
  314 + if(list3.size() > 1){ //多条时,排序
  315 + Collections.sort(list3, new Comparator<Map<String, Object>>() {
  316 + @Override
  317 + public int compare(Map<String, Object> c1, Map<String, Object> c2) {
  318 + String k1 = c1.get("red").toString() + c1.get("fcsj").toString();
  319 + String k2 = c2.get("red").toString() + c2.get("fcsj").toString();
  320 +
  321 + if(c1.get("fcsj").toString().length() == 0){
  322 + return -1;
  323 + }
  324 + if(c2.get("fcsj").toString().length() == 0){
  325 + return 1;
  326 + }
  327 +
  328 + long l1 = dtf.parseMillis(k1);
  329 + long l2 = dtf.parseMillis(k2);
  330 +
  331 + long diff = l1 - l2;
  332 + if (diff > 0l) {
  333 + return 1;
  334 + } else if (diff < 0l) {
  335 + return -1;
  336 + }
  337 + return 0; //相等为0
  338 + }
  339 + });
  340 + }
  341 +
  342 + double zgl = 0;
  343 + for(Map<String, Object> m : list3){
  344 + zgl = Arith.add(zgl, m.get("sjzgl").toString());
  345 + }
  346 + double jdl_ = Arith.add(0, jdl);//为保精度计算最后总数不变,一车多单情况最后一条直接用减剩下的值
  347 + for(int i = 0; i < list3.size(); i++){
  348 + Map<String, Object> m = list3.get(i);
  349 + m.put("jcsx", i + 1); //顺序
  350 +
  351 + if(i == (list3.size() - 1)){ //最后一条
  352 + m.put("jdl", jdl_);
  353 + } else {
  354 + if(m.get("sjzgl") != null && !("0".equals(m.get("sjzgl").toString()))){
  355 + double mul = Arith.mul(jdl, Arith.div(m.get("sjzgl").toString(), zgl, 2));
  356 + double div = Arith.div(mul, 1, 2); //除1,利用工具类以去除小数点
  357 + jdl_ = Arith.sub(jdl_, div);
  358 + m.put("jdl", div);
  359 + } else {
  360 + m.put("jdl", "0");
  361 + }
  362 + }
  363 +
  364 + if(m.get("sjzgl") != null && new BigDecimal(m.get("sjzgl").toString()).doubleValue() > 0d
  365 + && new BigDecimal(m.get("jdl").toString()).doubleValue() > 0d){
  366 + double mul = Arith.mul(Arith.div(m.get("jdl").toString(), m.get("sjzgl").toString(), 4), 100);
  367 + m.put("hdl",mul);
  368 + } else {
  369 + m.put("hdl", 0);
  370 + }
  371 + list5.add(m);
  372 + }
  373 + } else if(list4 != null && list4.size() > 0){
  374 + Map<String, Object> map2 = list4.get(0);
  375 + Map<String, Object> m = new HashMap<String, Object>();
  376 + m.put("fcsj", "");
  377 + m.put("jcsx", "1");
  378 + m.put("gsName", "");
  379 + m.put("fgsName", "");
  380 + m.put("date", date);
  381 + m.put("gsBm", "24");
  382 + m.put("fgsBm", map.get(map2.get("insideCode").toString())==null?"":map.get(map2.get("insideCode").toString()).toString());
  383 + m.put("xlBm", "");
  384 + m.put("xlName", "");
  385 + m.put("lpName", "");
  386 + m.put("clZbh", map2.get("insideCode").toString());
  387 + m.put("jGh", "");
  388 + m.put("jName", "");
  389 + m.put("sjzgl", 0); //总里程
  390 + m.put("jdl", jdl); //加电量(耗电量)
  391 + m.put("hdl", 0); //百公里耗电
  392 + list5.add(m);
  393 + }
  394 + }
  395 +
  396 + //第四部保存入库
  397 + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  398 + String createDate = sdf2.format(new Date());
  399 + for(Map<String, Object> m : list5){
  400 + m.put("created", "aotu"); //代表定时器自动生成
  401 + m.put("createDate", createDate);
  402 + }
  403 +// String deleteSql = "delete from bsth_c_hdl where date='" + date + "' and created = 'aotu'";
  404 + String deleteSql = "delete from bsth_c_dlb where rq = '" + date + "'";
  405 + jdbcTemplate.batchUpdate(deleteSql); //先删除这一天的数据
  406 +// String insertSql = "insert into bsth_c_hdl(gs_bm, fgs_bm, gs_name, fgs_name, date, nbbm, j_gh, j_name,"
  407 +// + " xl_bm, xl_name, lp_name, jdl, sjzgl, hdl, created, create_date) "
  408 +// + " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
  409 + String insertSql = "insert into bsth_c_dlb(ssgsdm, fgsdm, rq, czcd, jzcd, nbbm, jsy, jname,"
  410 + + " xlbm, linename, lp, cdl, hd, zlc, ns, createtime, jhsj, jcsx, nylx, yhlx, jhbc, jhzbc,"
  411 + + " fyylc, jhfyylc, jhzlc, jzlc, sfkt, sh, sjbc, sjzbc) "
  412 + + " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
  413 + jdbcTemplate.batchUpdate(insertSql, new BatchPreparedStatementSetter() {
  414 +
  415 + @Override
  416 + public void setValues(PreparedStatement ps, int i) throws SQLException {
  417 + Map<String, Object> m = list5.get(i);
  418 + ps.setString(1, "24");
  419 + ps.setString(2, m.get("fgsBm").toString());
  420 + ps.setString(3, m.get("date").toString());
  421 + ps.setString(4, "100");
  422 + ps.setString(5, "100");
  423 + ps.setString(6, m.get("clZbh").toString());
  424 + ps.setString(7, m.get("jGh").toString());
  425 + ps.setString(8, m.get("jName").toString());
  426 + ps.setString(9, m.get("xlBm").toString());
  427 + ps.setString(10, m.get("xlName").toString());
  428 + ps.setString(11, m.get("lpName").toString());
  429 + ps.setString(12, m.get("jdl").toString());
  430 + ps.setString(13, m.get("jdl").toString());
  431 + ps.setString(14, m.get("sjzgl").toString());
  432 + ps.setString(15, m.get("hdl").toString());
  433 + ps.setString(16, m.get("createDate").toString());
  434 + ps.setString(17, m.get("fcsj").toString());
  435 + ps.setString(18, m.get("jcsx").toString());
  436 + ps.setString(19, "0");
  437 + ps.setString(20, "0");
  438 + ps.setString(21, "0");
  439 + ps.setString(22, "0");
  440 + ps.setString(23, "0");
  441 + ps.setString(24, "0");
  442 + ps.setString(25, "0");
  443 + ps.setString(26, "0");
  444 + ps.setString(27, "0");
  445 + ps.setString(28, "0");
  446 + ps.setString(29, "0");
  447 + ps.setString(30, "0");
  448 + }
  449 +
  450 + @Override
  451 + public int getBatchSize() {
  452 + return list5.size();
  453 + }
  454 + });
  455 + }
  456 + }catch (Exception e) {
  457 + // TODO Auto-generated catch block
  458 + throw e;
  459 + }finally{
  460 + logger.info("setDDRB:");
  461 + }
  462 + }
  463 +
  464 + private void savePush(final List<Map<String, Object>> list,final String rq,final Map<String, String> map) {
  465 + String sql = "insert into bsth_c_jdl(rq, gs_bm, fgs_bm,jdl, "
  466 + + " nbbm,adding_time,remarks) " +
  467 + " VALUES(?,?,?,?,?,?,?)";
  468 +
  469 + //编程式事务
  470 + DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource());
  471 + DefaultTransactionDefinition def = new DefaultTransactionDefinition();
  472 + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
  473 + TransactionStatus status = tran.getTransaction(def);
  474 + try {
  475 + String sql2="delete from bsth_c_jdl where rq='"+rq+"' and remarks='JKSJ'";
  476 + jdbcTemplate.batchUpdate(sql2);
  477 + jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
  478 +
  479 + @Override
  480 + public void setValues(PreparedStatement ps, int i) throws SQLException {
  481 + Map<String, Object> t = list.get(i);
  482 + ps.setString(1, t.get("scheduleDate").toString());
  483 + ps.setString(2, "24");
  484 + ps.setString(3, map.get(t.get("insideCode").toString())==null?"":map.get(t.get("insideCode").toString()).toString());
  485 + ps.setString(4, t.get("sum").toString());
  486 + ps.setString(5, t.get("insideCode").toString());
  487 + ps.setString(6, t.get("addingTime").toString());
  488 + ps.setString(7, "JKSJ"); //代表来源接口数据
  489 +
  490 + }
  491 +
  492 + @Override
  493 + public int getBatchSize() {
  494 + return list.size();
  495 + }
  496 + });
  497 +
  498 + tran.commit(status);
  499 + } catch (Exception e) {
  500 + tran.rollback(status);
  501 + logger.error("", e);
  502 + }
  503 + }
  504 +
  505 + public static boolean isInOut(ScheduleRealInfo s){
  506 + boolean fage=false;
  507 + if(s.getBcType().equals("in")){
  508 + fage=true;
  509 + }
  510 + if(s.getBcType().equals("out")){
  511 + fage=true;
  512 + }
  513 + if(s.getBcType().equals("ldks")){
  514 + fage=true;
  515 + }
  516 +
  517 + return fage;
  518 + }
  519 +
  520 + public static String getHttpInterface(String path){
  521 + BufferedReader in = null;
  522 + StringBuffer result = null;
  523 + try {
  524 + URL url = new URL(path);
  525 + //打开和url之间的连接
  526 + HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  527 + connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  528 + connection.setRequestProperty("Charset", "utf-8");
  529 + connection.connect();
  530 +
  531 + result = new StringBuffer();
  532 + //读取URL的响应
  533 + in = new BufferedReader(new InputStreamReader(
  534 + connection.getInputStream(),"utf-8"));
  535 + String line;
  536 + while ((line = in.readLine()) != null) {
  537 +
  538 + result.append(line);
  539 + }
  540 + return result.toString();
  541 + } catch (Exception e) {
  542 + e.printStackTrace();
  543 + }finally {
  544 + try {
  545 + if (in != null) {
  546 + in.close();
  547 + }
  548 + } catch (Exception e2) {
  549 + e2.printStackTrace();
  550 + }
  551 + }
  552 + return null;
  553 + }
  554 +
  555 +}
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -4708,6 +4708,49 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
4708 4708 }
4709 4709 }
4710 4710 }
  4711 + } else {
  4712 + //油点混合
  4713 + List<Ylb> listYlb = ylbRepository.queryListYlb(fcrq, s.getClZbh(), s.getjGh(), xlbm);
  4714 + List<Dlb> listDlb = dlbRepository.queryListDlb(fcrq, s.getClZbh(), s.getjGh(), xlbm);
  4715 + type = 2;
  4716 + for (int i = 0; i < listYlb.size(); i++) {
  4717 + Ylb y = listYlb.get(i);
  4718 + if (y.getLp() == null) {
  4719 + ccyl = Arith.add(ccyl, y.getCzyl());
  4720 + jcyl = Arith.add(jcyl, y.getJzyl());
  4721 + yh = Arith.add(yh, y.getYh());
  4722 + jzl = Arith.add(jzl, y.getJzl());
  4723 + zlc = Arith.add(zlc, y.getZlc());
  4724 + if(dMap.get(y.getRylx())!=null)
  4725 + rylx =dMap.get(y.getRylx()).toString();
  4726 + } else {
  4727 + if (y.getLp().equals(s.getLpName())) {
  4728 + ccyl = Arith.add(ccyl, y.getCzyl());
  4729 + jcyl = Arith.add(jcyl, y.getJzyl());
  4730 + yh = Arith.add(yh, y.getYh());
  4731 + jzl = Arith.add(jzl, y.getJzl());
  4732 + zlc = Arith.add(zlc, y.getZlc());
  4733 + if(dMap.get(y.getRylx())!=null)
  4734 + rylx =dMap.get(y.getRylx()).toString();
  4735 + }
  4736 + }
  4737 + }
  4738 + for (int i = 0; i < listDlb.size(); i++) {
  4739 + Dlb d = listDlb.get(i);
  4740 + if (d.getLp() == null) {
  4741 + ccyl_ = Arith.add(ccyl_, d.getCzcd());
  4742 + jcyl_ = Arith.add(jcyl_, d.getJzcd());
  4743 + yh_ = Arith.add(yh_, d.getHd());
  4744 + jzl_ = Arith.add(jzl, d.getCdl());
  4745 + } else {
  4746 + if (d.getLp().equals(s.getLpName())) {
  4747 + ccyl_ = Arith.add(ccyl_, d.getCzcd());
  4748 + jcyl_ = Arith.add(jcyl_, d.getJzcd());
  4749 + yh_ = Arith.add(yh_, d.getHd());
  4750 + jzl_ = Arith.add(jzl_, d.getCdl());
  4751 + }
  4752 + }
  4753 + }
4711 4754 }
4712 4755 }
4713 4756  
... ...