Javaは複数のデータ統合を実現し、ターゲットテーブルにmergeを入れる

14987 ワード





    
    

    
    

	
	
       insert into t_4gsituation(
       	 			SJDBH ,
  					XZQH ,
  					JJDWBH ,
  					SFDZ,
  					DWBZW,
  					XZB,
  					YZB,
  					BJR,
  					LXDH,
  					LXDZ,
  					SSFJ,
  					XQDW,
  					CLLX,
  					JQJB,
  					AY,
  					GLSJDBH,
  					SJXQ,
  					CJDW,
  					CLJG,
  					SJCLQK,
  					SJZT,
  					BJRXB,
  					SFDZFL,
  					jjygh,
  					jjyxm,
  					yywj,
  					sjc,
  					jjybh,
  					sfsj,
  					ljfknr,
  					sffkzj,
  					ywwxwz,
  					ywbzxl,
  					bkryqksm,
  					ssryqksm,
  					swryqksm,
  					zjhm,
  					jqlbdm,
  					jqlxdm,
  					jqxldm,
  					jqjbdm,
  					zdbz,
  					ssxqdm,
  					ssxqmc,
  					szjqdm,
  					szjqmc,
  					jzwmc,
  					sfdzflmc,
  					jjth,
  					jjtip,
  					xqdwmc,
  					ssfjmc,
  					aymc,
  					jqlbmc,
  					jqlxmc,
  					jqxlmc,
  					scjjdwmc,
  					scpjdwmc,
  					scfkdwmc,
  					jqbqid,
  					jqbqmc,
  					isHuangpu,
  					lat02,
  					lng02,
  					number,
  					office_name,
  					area_name,
  					fksjc,
  					ZLJSSJ,
  					CJQK,
  					case_detail,
  					case_occur_time,
  					case_end_time,
  					case_duration,
  					case_long_effect,
  					video_url,
  					audio_url,
  					policeman_no,
  					policeman_name)
       values ( #{SJDBH},
  				#{XZQH},
  				#{JJDWBH},
  				#{SFDZ},
  				#{DWBZW},
  				#{XZB},
  				#{YZB},
  				#{BJR},
  				#{LXDH},
  				#{LXDZ},
  				#{SSFJ},
  				#{XQDW},
  				#{CLLX},
  				#{JQJB},
  				#{AY},
  				#{GLSJDBH},
  				#{SJXQ},
  				#{CJDW},
  				#{CLJG},
  				#{SJCLQK},
  				#{SJZT},
  				#{BJRXB},
  				#{SFDZFL},
  				#{jjygh},
  				#{jjyxm},
  				#{yywj},
  				#{sjc},
  				#{jjybh},
  				#{sfsj},
  				#{ljfknr},
  				#{sffkzj},
  				#{ywwxwz},
  				#{ywbzxl},
  				#{bkryqksm},
  				#{ssryqksm},
  				#{swryqksm},
  				#{zjhm},
  				#{jqlbdm},
  				#{jqlxdm},
  				#{jqxldm},
  				 #{jqjbdm},
  				#{zdbz},
  				#{ssxqdm},
  				#{ssxqmc},
  				#{szjqdm},
  				#{szjqmc},
  				#{jzwmc},
  				#{sfdzflmc},
  				#{jjth},
  				#{jjtip},
  				#{xqdwmc},
  				#{ssfjmc},
  				#{aymc},
  				#{jqlbmc},
  				#{jqlxmc},
  				#{jqxlmc},
  				#{scjjdwmc},
  				#{scpjdwmc},
  				#{scfkdwmc},
  				#{jqbqid},
  				#{jqbqmc},
  				#{isHuangpu},
  				#{lat02},
  				#{lng02},
  				#{number},
  				#{office_name},
  				#{area_name},
  				#{fksjc},
  				#{ZLJSSJ},
  				#{CJQK},
  				#{caseDetail},
  				#{caseOccurTime},
  				#{caseEndTime},
  				#{caseDuration},
  				#{caseLongEffect},
  				#{videoUrl},
  				#{audioUrl},
  				#{policemanNo},
  				#{policemanName})
  		 ON DUPLICATE KEY UPDATE
  		     	    XZQH=#{XZQH},
  					JJDWBH=#{JJDWBH} ,
  					SFDZ=#{SFDZ},
  					DWBZW=#{DWBZW},
  					XZB=#{XZB},
  					YZB=#{YZB},
  					BJR=#{BJR},
  					LXDH=#{LXDH},
  					LXDZ=#{LXDZ},
  					SSFJ=#{SSFJ},
  					XQDW=#{XQDW},
  					CLLX=#{CLLX},
  					JQJB=#{JQJB},
  					AY=#{AY},
  					GLSJDBH=#{GLSJDBH},
  					SJXQ=#{SJXQ},
  					CJDW=#{CJDW},
  					CLJG=#{CLJG},
  					SJCLQK=#{SJCLQK},
  					SJZT=#{SJZT},
  					BJRXB=#{BJRXB},
  					SFDZFL=#{SFDZFL},
  					jjygh=#{jjygh},
  					jjyxm=#{jjyxm},
  					yywj=#{yywj},
  					sjc=#{sjc},
  					jjybh=#{jjybh},
  					sfsj=#{sfsj},
  					ljfknr=#{ljfknr},
  					sffkzj=#{sffkzj},
  					ywwxwz=#{ywwxwz},
  					ywbzxl=#{ywbzxl},
  					bkryqksm=#{bkryqksm},
  					ssryqksm=#{ssryqksm},
  					swryqksm=#{swryqksm},
  					zjhm=#{zjhm},
  					jqlbdm=#{jqlbdm},
  					jqlxdm=#{jqlxdm},
  					jqxldm=#{jqxldm},
  					jqjbdm= #{jqjbdm},
  					zdbz=#{zdbz},
  					ssxqdm=#{ssxqdm},
  					ssxqmc=#{ssxqmc},
  					szjqdm=#{szjqdm},
  					szjqmc=#{szjqmc},
  					jzwmc=#{jzwmc},
  					sfdzflmc=#{sfdzflmc},
  					jjth=#{jjth},
  					jjtip=#{jjtip},
  					xqdwmc=#{xqdwmc},
  					ssfjmc=#{ssfjmc},
  					aymc=#{aymc},
  					jqlbmc=#{jqlbmc},
  					jqlxmc=#{jqlxmc},
  					jqxlmc=#{jqxlmc},
  					scjjdwmc=#{scjjdwmc},
  					scpjdwmc=#{scpjdwmc},
  					scfkdwmc=#{scfkdwmc},
  					jqbqid=#{jqbqid},
  					jqbqmc=#{jqbqmc},
  					isHuangpu=#{isHuangpu},
  					lat02=#{lat02},
  					lng02=#{lng02},
  					number=#{number},
  					office_name=#{office_name},
  					area_name=#{area_name},
  					fksjc=#{fksjc},
  					ZLJSSJ=#{ZLJSSJ},
  					CJQK=#{CJQK},
  					case_detail=#{caseDetail},
  					case_occur_time=#{caseOccurTime},
  					case_end_time=#{caseEndTime},
  					case_duration=#{caseDuration},
  					case_long_effect=#{caseLongEffect},
  					video_url=#{videoUrl},
  					audio_url=#{audioUrl},
  					policeman_no=#{policemanNo},
  					policeman_name=#{policemanName};
    

Mapper
package com.ruoyi.system.mapper;

import java.util.List;
import java.util.Map;

public interface Situation4GMapper {
    /*
    *             */
    public List> getEventList();

    /*
     *             */
    public List> get4GRecordList(Map map);

    /*
     *        */
    public void addSituation4G(Map map);
}

Service
package com.ruoyi.system.service;

import java.text.ParseException;

public interface Situation4GService {
    /**
     *                        
     */
    public void get4GSituation() throws ParseException;

}

ServiceImpl(プライマリロジック)
package com.ruoyi.system.service.impl;


import com.ruoyi.system.mapper.Situation4GMapper;
import com.ruoyi.system.service.Situation4GService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@EnableScheduling
@Service
public class Situation4GServiceImpl implements Situation4GService {
   @Autowired
    private Situation4GMapper situation4GMapper;

    @Override
    @Scheduled(cron = "5 * * * * ?")
    public void get4GSituation() throws ParseException {
        //          ,      map       
        Map paramMap = new HashMap<>();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        List> eventList = situation4GMapper.getEventList();
        //         
        for (Map map:eventList){
            //                  ,       
            paramMap.put("policeNo",map.get("FKRGH"));
            paramMap.put("startTime",map.get("fksjc"));
            List> gRecordList = situation4GMapper.get4GRecordList(paramMap);
            //               
            Map resultMap=new HashMap();
            //       
            StringBuffer strBuffer = new StringBuffer();
            StringBuffer videoBuffeer = new StringBuffer();
            StringBuffer radioBuffeer = new StringBuffer();
            //               
            Date startDate = sdf.parse("9999-01-01 00:00:00");
            Date endDate = sdf.parse("0000-11-27  00:00:00");
            //       
            int caseDuration=0;
            int caseLongEffect=0;
            //        
            String policemanName=null;
            String policemanNo=null;
            int times=0;
            //                  
            for (Map map1:gRecordList){
                strBuffer.append(map1.get("case_detail")).append(",");
                videoBuffeer.append(map1.get("video_url")).append(",");
                radioBuffeer.append(map1.get("audio_url")).append(",");
                //                
                Date case_occur_time = sdf.parse(map1.get("case_occur_time").toString());
                if (case_occur_time.before(startDate)){
                    startDate=case_occur_time;
                }
                //                
                Date case_end_time = sdf.parse( map1.get("case_end_time").toString());
                if (case_end_time.after(endDate)){
                    endDate=case_end_time;
                }
                //      
                caseDuration += (Integer) map1.get("case_duration");
                caseLongEffect += (Integer) map1.get("case_long_effect");
                if (times==gRecordList.size()-1){
                    policemanNo=map1.get("policeman_no").toString();
                    policemanName=map1.get("policeman_name").toString();
                }
                times++;
            }
            //         (       ,      )    case_detail  
            String caseDetail =null;
            String videoUrl = null;
            String audioUrl = null;
            if(strBuffer.length()>0) {
                caseDetail = strBuffer.deleteCharAt(strBuffer.length() - 1).toString();
            }
            if (videoBuffeer.length()>0) {
                videoUrl = videoBuffeer.deleteCharAt(videoBuffeer.length() - 1).toString();
            }
            if(radioBuffeer.length()>0) {
                audioUrl = radioBuffeer.deleteCharAt(radioBuffeer.length() - 1).toString();
            }

            resultMap.put("caseDetail",caseDetail);
            //          startDate  endDate
            resultMap.put("caseOccurTime",sdf.format(startDate));
            resultMap.put("caseEndTime",sdf.format(endDate));
            resultMap.put("caseDuration",caseDuration);
            resultMap.put("caseLongEffect",caseLongEffect);
            resultMap.put("videoUrl",videoUrl);
            resultMap.put("audioUrl",audioUrl);
            resultMap.put("policemanNo",policemanNo);
            resultMap.put("policemanName",policemanName);

            //    map
            Map combineResultMap = new HashMap();
            combineResultMap.putAll(map);
            combineResultMap.putAll(resultMap);
            System.out.println(combineResultMap);

            //       Situation4G 
            situation4GMapper.addSituation4G(combineResultMap);
        }
    }
}