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
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);
}
}
}