Commit 4edc5dfd by caojingji

Merge remote-tracking branch 'remotes/master/master' into caopeng_bate1

parents 715a1d85 76152691
......@@ -42,4 +42,8 @@ public class BkTaskResult {
//忽略针对这个字段的映射
@Transient
private String cxlx;//查询类型
private String xxly; //信息来源,如果是民警手动录入的,则默认给录入人姓名,如果是系统自动加入布控,则给布控任务的布控对象号码
private String xxlytype;//信息来源type,01,表示民警录入,02,表示系统关联自动加入
}
......@@ -28,12 +28,12 @@ public class Bkxx {
private String bkyq;
private String asjbh ;//案事件编号
private String sms;//是否短信通知(0:否 1:是)
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private java.util.Date bksj_start ;
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private java.util.Date bksj_end;
private String sqr_sfzh;
private String sqr_xm;
......@@ -47,5 +47,7 @@ public class Bkxx {
private String bkqx;//布控期限
private String type;//区分布控和追踪,01表示布控,02表示追踪
private String xxly; //信息来源,如果是民警手动录入的,则默认给录入人姓名,如果是系统自动加入布控,则给布控任务的布控对象号码
private String xxlytype;//信息来源type,01,表示民警录入,02,表示系统关联自动加入
}
......@@ -5,6 +5,8 @@ import com.founder.interservice.bkxx.model.Bkxx;
import com.founder.interservice.bkxx.repository.BkTaskResultRepository;
import com.founder.interservice.bkxx.repository.BkxxRepository;
import com.founder.interservice.mapper.xzxt.BkxxMapper;
import com.founder.interservice.model.Track;
import com.founder.interservice.util.DateUtil;
import com.founder.interservice.util.KeyUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -186,6 +188,8 @@ public class BkScheduleService {
BkTaskResult bkTaskResult = bkServiceCommon.setBkResult( null, task, "",imei);
bkTaskResult.setFlag("01");
bkTaskResult.setType(taskType);
bkTaskResult.setXxly(task.getSqr_xm());
bkTaskResult.setXxlytype("02");
bkTaskResultRepository.save(bkTaskResult);
/**
* 出现新的IMEI号码.出现新的imei号需要作三件事
......@@ -195,13 +199,14 @@ public class BkScheduleService {
*/
//首先加入布控
Bkxx bkxx = new Bkxx();
BeanUtils.copyProperties(task,bkxx);
bkxx.setXxzjbh(KeyUtil.getUniqueKey("BK"));
bkxx.setBkdxlx("007");
bkxx.setBkdxhm(imei);
bkxx.setBkdxlxmc("IMEI");
bkxx.setType(taskType);
bkxx.setXxly(task.getBkdxhm());
bkxx.setXxlytype("02"); //系统关联自动加入
//如果是追踪,则出现新的IMEI号是不需要加入任务的,因为IMEI号码并不能调取最新位置
int oldCount = bkxxMapper.selectBkxx(bkxx);
if (oldCount<1&&"01".equals(taskType)){
......@@ -226,8 +231,45 @@ public class BkScheduleService {
task.setXgsj(new Date());
bkxxRepository.save(task);
}
}
}
}else if ("005".equals(bshlx)){
/* System.out.println("============进入了005的任务==========");*/
List<String> oldCphms = new ArrayList<>();
String kssj = DateUtil.getDate().getTime()+"";
String jssj = DateUtil.convertStringToDate(DateUtil.beforeDate(-1).substring(0,10)).getTime()+"";
//每次保存之前进行重复判断
List<BkTaskResult> bkTaskResults = bkTaskResultRepository.findBkResultsByBkXxzjbh(task.getXxzjbh());
/* System.out.println("============005的任务==========当前的xxzjbh========"+task.getXxzjbh());*/
if(bkTaskResults!=null&&bkTaskResults.size()>0){
/*System.out.println("============进入了005的任务==========有重复=====================");*/
for (BkTaskResult oldResult:bkTaskResults) {
oldCphms.add(oldResult.getBkbsh());
}
if(!oldCphms.contains(task.getBkdxhm())){
//出现新的车牌号码
//直接获取轨迹信息
Track newLocation = bkServiceCommon.getNewLocation(task.getBkdxhm(),kssj,jssj);
BkTaskResult bkTaskResult = bkServiceCommon.setBkResult( newLocation, task, "","");
bkTaskResult.setFlag("01");
bkTaskResult.setType(taskType);
bkTaskResult.setXxly(task.getSqr_xm());
bkTaskResult.setXxlytype("02");
bkTaskResultRepository.save(bkTaskResult);
}
}else{
//此数据库中没有
//出现新的车牌号
Track newLocation = bkServiceCommon.getNewLocation(task.getBkdxhm(),kssj,jssj);
BkTaskResult bkTaskResult = bkServiceCommon.setBkResult( newLocation, task, "","");
bkTaskResult.setType(taskType);
bkTaskResult.setFlag("01");
bkTaskResultRepository.save(bkTaskResult);
}
}
//保存结果之后,更新任务状态,表示有结果返回
task.setBkzt("02");
task.setXgsj(new Date());
bkxxRepository.save(task);
}
}
private void getTrackAndImsi(Bkxx task, List<String> imsis) {
......
......@@ -65,6 +65,8 @@ public class BkServiceCommon {
bkTaskResult.setType(task.getType());
bkTaskResult.setImsi(imsi);
bkTaskResult.setImei(imei);
bkTaskResult.setXxly(task.getXxly());
bkTaskResult.setXxlytype(task.getXxlytype());
if(newLocation!=null){
bkTaskResult.setNewLocation(newLocation.getAddress());
bkTaskResult.setJ(newLocation.getJ());
......@@ -138,7 +140,7 @@ public class BkServiceCommon {
oldResult.setZqsj(new Date(newLocation.getTimestamp()));
bkTaskResultRepository.save(oldResult);
//给民警发送短信通知最新位置
String content = "您针对"+task.getBkdxlxmc()+":"+task.getBkdxhm()+"的"+messStr+"任务有新的轨迹信息,"+newLocation.getTimestr()+"最新位置为:"+newLocation.getAddress()+"请及时返回信息布控脑图查看详细情况。【重庆刑专-智慧侦查脑图】";
String content = "您针对"+task.getBkdxlxmc()+":"+task.getBkdxhm()+"的"+messStr+"任务有新的轨迹信息,"+DateUtil.getDateTime(new Date(newLocation.getTimestamp()))+"最新位置为:"+newLocation.getAddress()+"请及时返回信息布控脑图查看详细情况。【重庆刑专-智慧侦查脑图】";
sendMessage(content,task.getSqr_sfzh(),task.getSqr_lxdh());
}
}
......@@ -161,6 +163,8 @@ public class BkServiceCommon {
bkxx.setBkdxlxmc("IMSI");
bkxx.setBkdxhm(imsi);
bkxx.setType(taskType);
bkxx.setXxly(task.getBkdxhm());
bkxx.setXxlytype("02"); //系统关联自动加入
int oldCount = bkxxMapper.selectBkxx(bkxx);
if (oldCount<1){
//加入布控表
......
......@@ -11,6 +11,8 @@ import com.founder.interservice.bkxx.service.BkService;
import com.founder.interservice.enums.ResultEnum;
import com.founder.interservice.exception.InterServiceException;
import com.founder.interservice.mapper.xzxt.BkxxMapper;
import com.founder.interservice.model.Track;
import com.founder.interservice.util.DateUtil;
import com.founder.interservice.util.KeyUtil;
import com.founder.interservice.util.ResultVOUtil;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -47,6 +49,8 @@ public class BkServiceImpl implements BkService{
bkxx.setXxzjbh(id);
bkxx.setDjsj(new Date());
bkxx.setBkzt("01");
bkxx.setXxly(bkxx.getSqr_xm());
bkxx.setXxlytype("01");
bkxxRepository.save(bkxx);
result.put("id", bkxx.getXxzjbh());
result.put("status", ResultEnum.SUCCESS.getCode());
......@@ -109,6 +113,35 @@ public class BkServiceImpl implements BkService{
}
}
}
}else if("005".equals(bkxx.getBkdxlx())){
//005:车牌号
List<String> oldCphm = new ArrayList<>();
String kssj = DateUtil.getDate().getTime()+"";
String jssj = DateUtil.convertStringToDate(DateUtil.beforeDate(-1).substring(0,10)).getTime()+"";
/* System.out.println("=============================进来了=========================");
System.out.println("=============================进来了=============信息主键============"+bkxx.getXxzjbh());*/
List<BkTaskResult> bkTaskResults = bkTaskResultRepository.findBkResultsByBkXxzjbh(bkxx.getXxzjbh());
/* System.out.println("=============================进来了=============判重成功了============"+bkTaskResults.size());*/
if(bkTaskResults!=null&&bkTaskResults.size()>0){
for (BkTaskResult oldResult:bkTaskResults){
oldCphm.add(oldResult.getBkbsh());
}
if (!oldCphm.contains(bkxx.getBkdxhm())){
//在库中不存在
//直接获取轨迹信息
Track newLocation = bkServiceCommon.getNewLocation(bkxx.getBkdxhm(),kssj,jssj);
/* System.out.print("获取的轨迹信息:"+newLocation.getAddress()+";==经纬度="+newLocation.getJ()+"===纬度"+newLocation.getW());*/
BkTaskResult bkTaskResult = bkServiceCommon.setBkResult( newLocation, bkxx, "", "");
bkTaskResultRepository.save(bkTaskResult);
}
}else {
//关于此数据,库中没有结果
//直接获取轨迹信息
Track newLocation = bkServiceCommon.getNewLocation(bkxx.getBkdxhm(),kssj,jssj);
/* System.out.println("=============================进来了==查询了轨迹============"+newLocation.getAddress());*/
BkTaskResult bkTaskResult = bkServiceCommon.setBkResult( newLocation, bkxx, "", "");
bkTaskResultRepository.save(bkTaskResult);
}
}
} else {
......
......@@ -27,6 +27,7 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
/**
......@@ -694,55 +695,78 @@ public class DataController {
@RequestMapping(value = "/queryRelationsBySfzh")
@ResponseBody
public JSONObject queryRelationsBySfzh(String sfzh,String type){
JSONObject resultObj = new JSONObject();
public JSONObject queryRelationsBySfzh(String sfzh,String caseId,String caseName){
List<String> dpTypes = Arrays.asList("5754","6332","4340");//5754:订票编号;6332:订单号 ;4340:订座编号
JSONObject jsonObejct = new JSONObject();
JSONObject jsonObj = new JSONObject();
List<Relation> relationList = new ArrayList<>();
try {
Relation relation = new Relation();
relation.setObjectfromtype("1");
relation.setObjectfromvalue(sfzh);
relation.setObjecttotype(type);
List<Relation> resultList = dataService.queryRelationList(relation);
if(!resultList.isEmpty() && resultList != null){
resultObj.put("code", ResultEnum.SUCCESS.getCode());
resultObj.put("message",ResultEnum.SUCCESS.getMessage());
String dpResult = pushWaDataService.pushRelations(caseId,caseName,"",sfzh);
if(null != dpResult &&dpResult.startsWith("{")){
jsonObj = JSONObject.parseObject(dpResult);
}
if(jsonObj != null){
String dataList = jsonObj.getString("data");
JSONArray childrens = JSONObject.parseArray(dataList);
if(childrens != null && childrens.size() > 0){
for (int i = 0; i < childrens.size();i++){
JSONObject children = childrens.getJSONObject(i);
if (dpTypes.contains(children.getString("objectToType"))){
Relation relation = new Relation();
relation.setObjecttotype(children.getString("objectToType"));
relation.setObjecttotypename(children.getString("objectToTypeName"));
relation.setObjecttovalue(children.getString("objectToValue"));
relation.setObjectfromtype(children.getString("objectFromType"));
relation.setObjectfromvalue(children.getString("objectFromValue"));
relation.setObjectfromtypename(children.getString("objectFromTypeName"));
relation.setRelativetype(children.getString("relativeType"));
relation.setRelativetypename(children.getString("relativeTypeName"));
relation.setSourcename(children.getString("sourceName"));
relationList.add(relation);
}
}
}
}
if(!relationList.isEmpty() && relationList != null){
jsonObejct.put("code", ResultEnum.SUCCESS.getCode());
jsonObejct.put("message",ResultEnum.SUCCESS.getMessage());
}else {
resultObj.put("code", ResultEnum.SUCCESS.getCode());
resultObj.put("message","无数据");
jsonObejct.put("code", ResultEnum.SUCCESS.getCode());
jsonObejct.put("message","无数据");
}
resultObj.put("dataList",resultList);
jsonObejct.put("dataList",relationList);
}catch (Exception e){
e.printStackTrace();
resultObj.put("code", ResultEnum.RESULT_ERROR.getCode());
resultObj.put("message",ResultEnum.RESULT_ERROR.getMessage());
jsonObejct.put("code", ResultEnum.RESULT_ERROR.getCode());
jsonObejct.put("message",ResultEnum.RESULT_ERROR.getMessage());
}
return resultObj;
return jsonObejct;
}
@RequestMapping(value = "/queryJdAndThxxBySfzh")
@ResponseBody
public JSONObject queryJdAndThxxBySfzh(String sfzh,String type,String caseId,String caseName){
public JSONObject queryJdAndThxxBySfzh(String sfzh, String type, String caseId, String caseName){
List<String> sjhmTypes = Arrays.asList("20","4394","3996","6003"); //手机号码类别
List<String> jdxxTypes = Arrays.asList("6095","6096"); //快递类别
List<String> thgxTypes = Arrays.asList("45878","4103","4396","4088","45936","45935"); //同户关系类别45878:母亲,4103:父亲,4396:母子关系,4088:配偶,45936:母子,45935:父子
List<String> cyzjTypes = Arrays.asList("1");
List<String> thgxTypes = Arrays.asList("45878","4103","4396","4395","4088","45936","45935"); //同户关系类别45878:母亲,4103:父亲,4396:母子关系,4395:父子关系,4088:配偶,45936:母子,45935:父子
JSONObject jsonObejct = new JSONObject();
JSONObject jsonObj = new JSONObject();
List<Relation> relationList = new ArrayList<>();
try {
if(type.equals("thxx")){
String thxxResult = pushWaDataService.pushRelations(caseId,caseName,caseId,sfzh);
String thxxResult = pushWaDataService.pushRelations(caseId,caseName,"",sfzh);
//String thxxResult ="{\"success\":true,\"message\":\"success\",\"data\":[{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"B2061005X\",\"objectToType\":4556,\"objectToTypeName\":\"卡号\",\"relativeType\":4437,\"relativeTypeName\":\"社保卡号\",\"source\":1161,\"sourceName\":\"大情报-社保卡办理信息\",\"source_md5\":\"NST33aq+06xNhSpPPDeoWQ==\",\"timestamp\":1367802007000,\"first_timestamp\":1367802007000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"5000996700002017095001\",\"objectToType\":6432,\"objectToTypeName\":\"指纹编号\",\"relativeType\":6432,\"relativeTypeName\":\"指纹编号\",\"source\":1511,\"sourceName\":\"刑总-海鑫-人员基本信息\",\"source_md5\":\"gmVU/awe9Ft8qvY6kH8lUQ==\",\"timestamp\":1504195200000,\"first_timestamp\":1504195200000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"T3303035400002009120016\",\"objectToType\":4356,\"objectToTypeName\":\"在逃人员编号\",\"relativeType\":4292,\"relativeTypeName\":\"全国在逃人员\",\"source\":1666,\"sourceName\":\"刑总-在逃人员信息\",\"source_md5\":\"RwJfLVt2P2/cOHQiy1G2Dw==\",\"timestamp\":1258646400000,\"first_timestamp\":1258646400000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"5001996700002016105069\",\"objectToType\":4457,\"objectToTypeName\":\"人员编号\",\"relativeType\":1,\"relativeTypeName\":\"身份证号码\",\"source\":1387,\"sourceName\":\"刑总-海鑫-微信帐号信息(旧)\",\"source_md5\":\"YuBxIQ5saIyuJI3rItXxxA==\",\"timestamp\":1476763758000,\"first_timestamp\":1476763758000,\"count\":7},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"025002310012005854000000000001\",\"objectToType\":4333,\"objectToTypeName\":\"户口号码\",\"relativeType\":4397,\"relativeTypeName\":\"同户人员\",\"source\":1478,\"sourceName\":\"大情报-新常住人口信息\",\"source_md5\":\"0MkBPuI217nGHYVVRHC2ug==\",\"timestamp\":1500998400000,\"first_timestamp\":1500998400000,\"count\":3},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"zj386101552\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":45269,\"relativeTypeName\":\"刑总采集信息\",\"source\":1387,\"sourceName\":\"刑总-海鑫-微信帐号信息(旧)\",\"source_md5\":\"HV6vHNEIb2mPMTFP4eT4Rw==\",\"timestamp\":1476763758000,\"first_timestamp\":1476763758000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"6117016284\",\"objectToType\":4556,\"objectToTypeName\":\"卡号\",\"relativeType\":5993,\"relativeTypeName\":\"电力卡号\",\"source\":1185,\"sourceName\":\"大情报-电力用户信息\",\"source_md5\":\"Bki1O03mYrNS97tem0ef7Q==\",\"timestamp\":1190649600000,\"first_timestamp\":1190649600000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"D5001996700002016100050\",\"objectToType\":6417,\"objectToTypeName\":\"DNA编号\",\"relativeType\":6417,\"relativeTypeName\":\"DNA编号\",\"source\":1511,\"sourceName\":\"刑总-海鑫-人员基本信息\",\"source_md5\":\"SMCu0zhl3SgY1s49uKccDQ==\",\"timestamp\":1476720000000,\"first_timestamp\":1476720000000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"50023120160505527X\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4103,\"relativeTypeName\":\"父亲\",\"source\":1736,\"sourceName\":\"烽火_知识库_家谱\",\"source_md5\":\"ugYGEOWpy81lBshRxa7PUQ==\",\"timestamp\":1552353411982,\"first_timestamp\":1552353411982,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500231200502035271\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4395,\"relativeTypeName\":\"父子关系\",\"source\":1478,\"sourceName\":\"大情报-新常住人口信息\",\"source_md5\":\"aayIrxtb232+mpuVxVU3Kg==\",\"timestamp\":1501038939000,\"first_timestamp\":1501038939000,\"count\":2},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500109111201809111033\",\"objectToType\":4457,\"objectToTypeName\":\"人员编号\",\"relativeType\":5780,\"relativeTypeName\":\"看守所关押身份\",\"source\":1137,\"sourceName\":\"大情报-看守所人员信息\",\"source_md5\":\"bVlRswlucKsMoQdb/uHZKA==\",\"timestamp\":1536595200000,\"first_timestamp\":1536595200000,\"count\":13},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"18580507444\",\"objectToType\":4394,\"objectToTypeName\":\"电话号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1514,\"sourceName\":\"刑总-海鑫-手机采集信息\",\"source_md5\":\"JkRk3ItIxKTJm1E6T2mOPw==\",\"timestamp\":4691056552871,\"first_timestamp\":4689669671098,\"count\":2},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500231200307105270\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4103,\"relativeTypeName\":\"父亲\",\"source\":1736,\"sourceName\":\"烽火_知识库_家谱\",\"source_md5\":\"6aAADie2Ow1m47Yza/h+mA==\",\"timestamp\":1552359318350,\"first_timestamp\":1552356561885,\"count\":2},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"Zai-zai-11-11\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"IQYdKZyKYSqt1w+F5uSXZQ==\",\"timestamp\":4691030738065,\"first_timestamp\":4691030738065,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"yze5013\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"0ednwvokvrWP+7K9KHyHew==\",\"timestamp\":4691030738043,\"first_timestamp\":4691030738043,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"18580507444\",\"objectToType\":6003,\"objectToTypeName\":\"联系电话\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1478,\"sourceName\":\"大情报-新常住人口信息\",\"source_md5\":\"0MkBPuI217nGHYVVRHC2ug==\",\"timestamp\":1500998400000,\"first_timestamp\":1500998400000,\"count\":3},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"liuzai19870214\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"cA34x6xydhqKg7yz8OKNUw==\",\"timestamp\":4691030738054,\"first_timestamp\":4691030738054,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"02374566175\",\"objectToType\":4394,\"objectToTypeName\":\"电话号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1072,\"sourceName\":\"机主信息\",\"source_md5\":\"vlM1HGyY+FYpt0ytMMVxaA==\",\"timestamp\":1378426801000,\"first_timestamp\":1378426801000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500234199010261305\",\"objectToType\":438,\"objectToTypeName\":\"证件类型\",\"relativeType\":4554,\"relativeTypeName\":\"夫妻关系\",\"source\":1086,\"sourceName\":\"大情报-婚姻登记信息\",\"source_md5\":\"+akyc82WlRMBZScswereUQ==\",\"timestamp\":1493740800000,\"first_timestamp\":1493740800000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"yze110017\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":45269,\"relativeTypeName\":\"刑总采集信息\",\"source\":1387,\"sourceName\":\"刑总-海鑫-微信帐号信息(旧)\",\"source_md5\":\"xUGRXz9ylqEn/6KIYyVTqg==\",\"timestamp\":1476763758000,\"first_timestamp\":1476763758000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"qaix219325\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"8uZrTfJlOx8ZXbrQIo6b9Q==\",\"timestamp\":4691051731289,\"first_timestamp\":4691030738051,\"count\":2},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500112121201610182218\",\"objectToType\":4457,\"objectToTypeName\":\"人员编号\",\"relativeType\":5781,\"relativeTypeName\":\"拘留身份\",\"source\":1138,\"sourceName\":\"大情报-拘留所人员信息\",\"source_md5\":\"Vl4TZKhdxchKLWdmoGj0Ng==\",\"timestamp\":1476720000000,\"first_timestamp\":1476720000000,\"count\":2},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"LVSHBFAF59F089645\",\"objectToType\":453,\"objectToTypeName\":\"车辆识别代号\",\"relativeType\":4398,\"relativeTypeName\":\"机动车所有人\",\"source\":1049,\"sourceName\":\"大情报-机动车信息\",\"source_md5\":\"T/aDEEmQbg4Z8VmYHx0c3A==\",\"timestamp\":1257471475000,\"first_timestamp\":1257471475000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"yze110017\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"NIt+bRRhzx+RRu/nry9NKg==\",\"timestamp\":4691051731287,\"first_timestamp\":4691030738063,\"count\":2},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"17749916789\",\"objectToType\":3996,\"objectToTypeName\":\"手机号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1466,\"sourceName\":\"刑总-海鑫-通讯录(旧)\",\"source_md5\":\"DDhf/EAmmZ6AJCmCNlYdOw==\",\"timestamp\":4688279077054,\"first_timestamp\":4687928993068,\"count\":233},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"5001996700002016105069\",\"objectToType\":6432,\"objectToTypeName\":\"指纹编号\",\"relativeType\":6432,\"relativeTypeName\":\"指纹编号\",\"source\":1511,\"sourceName\":\"刑总-海鑫-人员基本信息\",\"source_md5\":\"SMCu0zhl3SgY1s49uKccDQ==\",\"timestamp\":1476720000000,\"first_timestamp\":1476720000000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"qaix219325\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":45269,\"relativeTypeName\":\"刑总采集信息\",\"source\":1387,\"sourceName\":\"刑总-海鑫-微信帐号信息(旧)\",\"source_md5\":\"bULeEnMIottx8ovYhGBuFA==\",\"timestamp\":1476763758000,\"first_timestamp\":1476763758000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500231200307105270\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":46238,\"relativeTypeName\":\"家谱关系\",\"source\":1736,\"sourceName\":\"烽火_知识库_家谱\",\"source_md5\":\"pgZ30+ugPHOYrcciKwjHyQ==\",\"timestamp\":1552359484924,\"first_timestamp\":1552359484924,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"yiran1305\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"m2ol3rDX/g+3LkkD8zS0mg==\",\"timestamp\":4691030738047,\"first_timestamp\":4691030738047,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"zhangnana88888\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"dgzmJhuPTDP2USdHWtIklQ==\",\"timestamp\":4691030738040,\"first_timestamp\":4691030738040,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"13272800018\",\"objectToType\":4394,\"objectToTypeName\":\"电话号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1051,\"sourceName\":\"大情报-大、中、小学生及父母信息\",\"source_md5\":\"VWbAkolkk/gVGZ+JFa/TcQ==\",\"timestamp\":1314806400000,\"first_timestamp\":1314806400000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500231200502035271\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4023,\"relativeTypeName\":\"监护人一证件号码\",\"source\":1051,\"sourceName\":\"大情报-大、中、小学生及父母信息\",\"source_md5\":\"VWbAkolkk/gVGZ+JFa/TcQ==\",\"timestamp\":1314806400000,\"first_timestamp\":1314806400000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500234199010261305\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4088,\"relativeTypeName\":\"配偶\",\"source\":1736,\"sourceName\":\"烽火_知识库_家谱\",\"source_md5\":\"7BnQy6VnUbHlya9VZjLo5Q==\",\"timestamp\":1552358467718,\"first_timestamp\":1552319884359,\"count\":2},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"50023120160505527X\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4395,\"relativeTypeName\":\"父子关系\",\"source\":1478,\"sourceName\":\"大情报-新常住人口信息\",\"source_md5\":\"TRZb3zUl8uKPtTLg4NZqoQ==\",\"timestamp\":1501034658000,\"first_timestamp\":1501034658000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"liuzai19870214\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":45269,\"relativeTypeName\":\"刑总采集信息\",\"source\":1387,\"sourceName\":\"刑总-海鑫-微信帐号信息(旧)\",\"source_md5\":\"8FseQXxTzdVVnzo3VMfxbA==\",\"timestamp\":1476763758000,\"first_timestamp\":1476763758000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"渝DL1010\",\"objectToType\":6424,\"objectToTypeName\":\"汽车蓝色号牌\",\"relativeType\":4398,\"relativeTypeName\":\"机动车所有人\",\"source\":1049,\"sourceName\":\"大情报-机动车信息\",\"source_md5\":\"ONV8saTGjorVVIrUYEl98A==\",\"timestamp\":1544786512265,\"first_timestamp\":1257471475000,\"count\":6},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"aa198219aa\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"CweJzc6qJNfkp3hheVFgSw==\",\"timestamp\":4691051731294,\"first_timestamp\":4691051731294,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"B5001996700002016105069\",\"objectToType\":4457,\"objectToTypeName\":\"人员编号\",\"relativeType\":1,\"relativeTypeName\":\"身份证号码\",\"source\":1389,\"sourceName\":\"刑总-海鑫-人员基本信息(旧)\",\"source_md5\":\"A7Ubc+WBwvSSOWZpmm1g6w==\",\"timestamp\":1476763179000,\"first_timestamp\":1476763179000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500231200502035271\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4395,\"relativeTypeName\":\"父子关系\",\"source\":1048,\"sourceName\":\"常住人口信息\",\"source_md5\":\"zJDXbOAFYwrBwCKTTFjFIw==\",\"timestamp\":4657692755297,\"first_timestamp\":4657692755297,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"B5001996700002016105069\",\"objectToType\":4457,\"objectToTypeName\":\"人员编号\",\"relativeType\":1,\"relativeTypeName\":\"身份证号码\",\"source\":1466,\"sourceName\":\"刑总-海鑫-通讯录(旧)\",\"source_md5\":\"NqJGokzVVdU14KEwupWp/g==\",\"timestamp\":4688279077054,\"first_timestamp\":4687928993068,\"count\":233},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"17749916789\",\"objectToType\":4394,\"objectToTypeName\":\"电话号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1514,\"sourceName\":\"刑总-海鑫-手机采集信息\",\"source_md5\":\"M/K6ustblQmy4X62eZ8ZUw==\",\"timestamp\":1476763892000,\"first_timestamp\":1476763892000,\"count\":2},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"yze5013\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":45269,\"relativeTypeName\":\"刑总采集信息\",\"source\":1387,\"sourceName\":\"刑总-海鑫-微信帐号信息(旧)\",\"source_md5\":\"YuBxIQ5saIyuJI3rItXxxA==\",\"timestamp\":1476763758000,\"first_timestamp\":1476763758000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"Zai-zai-11-11\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":45269,\"relativeTypeName\":\"刑总采集信息\",\"source\":1387,\"sourceName\":\"刑总-海鑫-微信帐号信息(旧)\",\"source_md5\":\"faqlsEPoRaoJQwqC45F1RQ==\",\"timestamp\":1476763758000,\"first_timestamp\":1476763758000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"wxid_g0dnht3jsfxu22\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"/kN4Mqh2GxKTcqRZionPWA==\",\"timestamp\":4691030738057,\"first_timestamp\":4691030738057,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"D5000996700002017090001\",\"objectToType\":6417,\"objectToTypeName\":\"DNA编号\",\"relativeType\":6417,\"relativeTypeName\":\"DNA编号\",\"source\":1511,\"sourceName\":\"刑总-海鑫-人员基本信息\",\"source_md5\":\"gmVU/awe9Ft8qvY6kH8lUQ==\",\"timestamp\":1504195200000,\"first_timestamp\":1504195200000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500231200307105270\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4395,\"relativeTypeName\":\"父子关系\",\"source\":1478,\"sourceName\":\"大情报-新常住人口信息\",\"source_md5\":\"oVf3cmwdyXhbPR/TFAftiA==\",\"timestamp\":1451373270000,\"first_timestamp\":1451373270000,\"count\":3},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"15310129965\",\"objectToType\":4394,\"objectToTypeName\":\"电话号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1072,\"sourceName\":\"机主信息\",\"source_md5\":\"iZ1Kf0nhYip4HWkE1ARezA==\",\"timestamp\":1378281271000,\"first_timestamp\":1378281271000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500234199010261305\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4554,\"relativeTypeName\":\"夫妻关系\",\"source\":1086,\"sourceName\":\"大情报-婚姻登记信息\",\"source_md5\":\"+akyc82WlRMBZScswereUQ==\",\"timestamp\":1493740800000,\"first_timestamp\":1493740800000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500231200502035271\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4103,\"relativeTypeName\":\"父亲\",\"source\":1736,\"sourceName\":\"烽火_知识库_家谱\",\"source_md5\":\"tWnWCZzoa+lh1jjk9JI6tg==\",\"timestamp\":1552359439898,\"first_timestamp\":1552331891020,\"count\":3},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"yiran1305\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":45269,\"relativeTypeName\":\"刑总采集信息\",\"source\":1387,\"sourceName\":\"刑总-海鑫-微信帐号信息(旧)\",\"source_md5\":\"SBj7ccckmMLYQ2XmseayrQ==\",\"timestamp\":1476763758000,\"first_timestamp\":1476763758000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"18580507444\",\"objectToType\":6003,\"objectToTypeName\":\"联系电话\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1155,\"sourceName\":\"大情报-医院门诊记录\",\"source_md5\":\"sTiBQhKHQnWUIaaesFBH2Q==\",\"timestamp\":1536660406000,\"first_timestamp\":1536660406000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"3303035908882010040414\",\"objectToType\":6432,\"objectToTypeName\":\"指纹编号\",\"relativeType\":6432,\"relativeTypeName\":\"指纹编号\",\"source\":1666,\"sourceName\":\"刑总-在逃人员信息\",\"source_md5\":\"RwJfLVt2P2/cOHQiy1G2Dw==\",\"timestamp\":1258646400000,\"first_timestamp\":1258646400000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500234199010261305\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":45878,\"relativeTypeName\":\"母亲\",\"source\":1736,\"sourceName\":\"烽火_知识库_家谱\",\"source_md5\":\"2NZZzvYBNmLFzD/D/duTYw==\",\"timestamp\":1552360604839,\"first_timestamp\":1552360604839,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"6116170617\",\"objectToType\":4556,\"objectToTypeName\":\"卡号\",\"relativeType\":5993,\"relativeTypeName\":\"电力卡号\",\"source\":1185,\"sourceName\":\"大情报-电力用户信息\",\"source_md5\":\"7AWnu94RPGObd6lupQeiiw==\",\"timestamp\":1189440000000,\"first_timestamp\":1189440000000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"18580507444\",\"objectToType\":3996,\"objectToTypeName\":\"手机号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1049,\"sourceName\":\"大情报-机动车信息\",\"source_md5\":\"ONV8saTGjorVVIrUYEl98A==\",\"timestamp\":1544786512265,\"first_timestamp\":1543917093528,\"count\":3},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"18580507444\",\"objectToType\":4394,\"objectToTypeName\":\"电话号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1049,\"sourceName\":\"大情报-机动车信息\",\"source_md5\":\"iCjDkzLLDhGVT8+4zkktKQ==\",\"timestamp\":1544754019000,\"first_timestamp\":1257471475000,\"count\":2},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"025002310012005854000000000001\",\"objectToType\":4333,\"objectToTypeName\":\"户口号码\",\"relativeType\":4397,\"relativeTypeName\":\"同户人员\",\"source\":1048,\"sourceName\":\"常住人口信息\",\"source_md5\":\"Rm8rkHwEmE/uWREo2SDEUw==\",\"timestamp\":4657692626543,\"first_timestamp\":4657692626543,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"2018218374\",\"objectToType\":4556,\"objectToTypeName\":\"卡号\",\"relativeType\":4437,\"relativeTypeName\":\"社保卡号\",\"source\":1165,\"sourceName\":\"大情报-居民参保基本信息\",\"source_md5\":\"iN/MVV/z5U9GCWXmkpM7CA==\",\"timestamp\":1342858556000,\"first_timestamp\":1342858556000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500231200502035271\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":46238,\"relativeTypeName\":\"家谱关系\",\"source\":1736,\"sourceName\":\"烽火_知识库_家谱\",\"source_md5\":\"KMgGT0TXoJSn2l25vp9TQw==\",\"timestamp\":1552360025432,\"first_timestamp\":1552360025432,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"luojun80801\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"/D3Irv3ORhizAosfHBcQhA==\",\"timestamp\":4691051731291,\"first_timestamp\":4691051731291,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"P500328575\",\"objectToType\":45326,\"objectToTypeName\":\"出生医学证明编号\",\"relativeType\":4103,\"relativeTypeName\":\"父亲\",\"source\":1386,\"sourceName\":\"大情报-新生儿出生信息\",\"source_md5\":\"A2rQ88j2ua+8DccjT7rTKw==\",\"timestamp\":1462377600000,\"first_timestamp\":1462377600000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"wxid_7jhq6l4hb9f012\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"WfC/DxALgR6LsjXelKGcCA==\",\"timestamp\":4691030738041,\"first_timestamp\":4691030738041,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"18716873616\",\"objectToType\":3996,\"objectToTypeName\":\"手机号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1185,\"sourceName\":\"大情报-电力用户信息\",\"source_md5\":\"Bki1O03mYrNS97tem0ef7Q==\",\"timestamp\":1190649600000,\"first_timestamp\":1190649600000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"A3303035400002009110211\",\"objectToType\":4255,\"objectToTypeName\":\"案件编号\",\"relativeType\":4287,\"relativeTypeName\":\"刑事案件嫌疑人\",\"source\":1666,\"sourceName\":\"刑总-在逃人员信息\",\"source_md5\":\"RwJfLVt2P2/cOHQiy1G2Dw==\",\"timestamp\":1258646400000,\"first_timestamp\":1258646400000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"13658437055\",\"objectToType\":3996,\"objectToTypeName\":\"手机号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1185,\"sourceName\":\"大情报-电力用户信息\",\"source_md5\":\"7AWnu94RPGObd6lupQeiiw==\",\"timestamp\":1189440000000,\"first_timestamp\":1189440000000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500234199010261305\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":46238,\"relativeTypeName\":\"家谱关系\",\"source\":1736,\"sourceName\":\"烽火_知识库_家谱\",\"source_md5\":\"zNo+jApgtg3Zk7S+swjg8w==\",\"timestamp\":1552359892363,\"first_timestamp\":1552359892363,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"500231200307105270\",\"objectToType\":1,\"objectToTypeName\":\"身份证号码\",\"relativeType\":4395,\"relativeTypeName\":\"父子关系\",\"source\":1048,\"sourceName\":\"常住人口信息\",\"source_md5\":\"IOWlo/+2i7l49VKuM2i6dg==\",\"timestamp\":4657692685473,\"first_timestamp\":4657692685473,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"17749916789\",\"objectToType\":3996,\"objectToTypeName\":\"手机号码\",\"relativeType\":20,\"relativeTypeName\":\"联系方式\",\"source\":1389,\"sourceName\":\"刑总-海鑫-人员基本信息(旧)\",\"source_md5\":\"A7Ubc+WBwvSSOWZpmm1g6w==\",\"timestamp\":1476763179000,\"first_timestamp\":1476763179000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"NE8LH4\",\"objectToType\":4340,\"objectToTypeName\":\"订座编号\",\"relativeType\":4399,\"relativeTypeName\":\"订座\",\"source\":1052,\"sourceName\":\"江北机场值机信息\",\"source_md5\":\"Z+Js6qCvSIgqGGSHK5rbOA==\",\"timestamp\":1438012800000,\"first_timestamp\":1438012800000,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"zj386101552\",\"objectToType\":6345,\"objectToTypeName\":\"微信号\",\"relativeType\":4080,\"relativeTypeName\":\"虚拟身份\",\"source\":1510,\"sourceName\":\"刑总-海鑫-微信帐号信息\",\"source_md5\":\"qbe69xrbYZGqVav4I3Ly/A==\",\"timestamp\":4691030738060,\"first_timestamp\":4691030738060,\"count\":1},{\"objectFromValue\":\"512322198203195278\",\"objectFromType\":1,\"objectFromTypeName\":\"身份证号码\",\"objectToValue\":\"6116170617\",\"objectToType\":4556,\"objectToTypeName\":\"卡号\",\"relativeType\":5993,\"relativeTypeName\":\"电力卡号\",\"source\":1153,\"sourceName\":\"大情报-电力缴费记录\",\"source_md5\":\"nKkFg1ph76gifSQN/VYltg==\",\"timestamp\":1515425701000,\"first_timestamp\":1404835200000,\"count\":10}],\"errCode\":null}";
if(null != thxxResult &&thxxResult.startsWith("{")){
jsonObj = JSONObject.parseObject(thxxResult);
}
if(jsonObj != null){
String dataList = jsonObj.getString("data");
JSONObject dataObj = JSONObject.parseObject(dataList);
if(dataObj != null){
JSONArray childrens = dataObj.getJSONArray("data");
String dataList = jsonObj.getString("data");
JSONArray childrens = JSONObject.parseArray(dataList);
if(childrens != null && childrens.size() > 0){
for (int i = 0; i < childrens.size();i++){
JSONObject children = childrens.getJSONObject(i);
if (thgxTypes.contains(children.getString("relativeType"))){ //关系
if (thgxTypes.contains(children.getString("relativeType")) && cyzjTypes.contains(children.getString("objectToType"))){ //关系
Relation relation = new Relation();
relation.setObjecttotype(children.getString("objectToType"));
relation.setObjecttotypename(children.getString("objectToTypeName"));
......@@ -755,20 +779,17 @@ public class DataController {
relationList.add(relation);
}
}
}
relationList = removeJSonObject(relationList);
}
}
}
}else if(type.equals("jdxx")){
String thxxResult = pushWaDataService.pushRelations(caseId,caseName,caseId,sfzh);
if(null != thxxResult &&thxxResult.startsWith("{")){
jsonObj = JSONObject.parseObject(thxxResult);
String jdxxResult = pushWaDataService.pushRelations(caseId,caseName,"",sfzh);
if(null != jdxxResult &&jdxxResult.startsWith("{")){
jsonObj = JSONObject.parseObject(jdxxResult);
}
if(jsonObj != null){
String dataList = jsonObj.getString("data");
JSONObject dataObj = JSONObject.parseObject(dataList);
if(dataObj != null){
JSONArray childrens = dataObj.getJSONArray("data");
String dataList = jsonObj.getString("data");
JSONArray childrens = JSONObject.parseArray(dataList);
if(childrens != null && childrens.size() > 0){
for (int i = 0; i < childrens.size();i++){
JSONObject children = childrens.getJSONObject(i);
......@@ -776,15 +797,13 @@ public class DataController {
String sjhm = getSjhmsList(children);
JSONObject jsonObject = null;
if(sjhm != null ){
String jdxxResult = pushWaDataService.pushRelations(caseId,caseName,caseId,sjhm);
if(null != jdxxResult &&jdxxResult.startsWith("{")){
jsonObject = JSONObject.parseObject(jdxxResult);
String kdxxResult = pushWaDataService.pushRelations(caseId,caseName,"",sjhm);
if(null != kdxxResult &&kdxxResult.startsWith("{")){
jsonObject = JSONObject.parseObject(kdxxResult);
}
if(jsonObject != null){
String jdxxList = jsonObject.getString("data");
JSONObject jdxxObj = JSONObject.parseObject(jdxxList);
if(jdxxObj != null){
JSONArray jdxxChildrenList = jdxxObj.getJSONArray("data");
JSONArray jdxxChildrenList = JSONObject.parseArray(jdxxList);
if(jdxxChildrenList != null && jdxxChildrenList.size() > 0){
for (int j = 0; j < jdxxChildrenList.size();j++){
JSONObject jdxxChildrens = jdxxChildrenList.getJSONObject(j);
......@@ -803,13 +822,101 @@ public class DataController {
}
}
}
}
}
}
}
}
}
}
if(!relationList.isEmpty() && relationList != null){
jsonObejct.put("code", ResultEnum.SUCCESS.getCode());
jsonObejct.put("message",ResultEnum.SUCCESS.getMessage());
}else {
jsonObejct.put("code", ResultEnum.SUCCESS.getCode());
jsonObejct.put("message","无数据");
}
jsonObejct.put("dataList",relationList);
}catch (Exception e){
e.printStackTrace();
jsonObejct.put("code", ResultEnum.RESULT_ERROR.getCode());
jsonObejct.put("message",ResultEnum.RESULT_ERROR.getMessage());
}
return jsonObejct;
}
@RequestMapping(value = "/queryXnsfxx")
@ResponseBody
public JSONObject queryXnsfxx(String objectValue, String type,String caseId, String caseName){
List<String> sjhmTypes = Arrays.asList("20","4394","3996","6003"); //手机号码类别
List<String> memsTypes = Arrays.asList("4314","4315"); //4315:IMEI;4314:IMSI
List<String> qqWeTypes = Arrays.asList("558","4615"); //558:qq;4615:微信ID
List<String> cyzjTypes = Arrays.asList("1");
JSONObject jsonObejct = new JSONObject();
JSONObject jsonObj = new JSONObject();
List<Relation> relationList = new ArrayList<>();
List<Relation> qqweList = new ArrayList<>();
try {
if(type.equals("sfzh")){
String sfzhResult = pushWaDataService.pushRelations(caseId,caseName,"",objectValue);
if(null != sfzhResult &&sfzhResult.startsWith("{")){
jsonObj = JSONObject.parseObject(sfzhResult);
}
if(jsonObj != null){
String dataList = jsonObj.getString("data");
JSONArray childrens = JSONObject.parseArray(dataList);
if(childrens != null && childrens.size() > 0){
for (int i = 0; i < childrens.size();i++){
JSONObject children = childrens.getJSONObject(i);
if (sjhmTypes.contains(children.getString("relativeType")) && cyzjTypes.contains(children.getString("objectFromType"))){ //关系
relationList.add(getRelationModel(children));
}
}
relationList = removeJSonObject(relationList);
}
}
}else if(type.equals("sjhm")) {
String sjhmResult = pushWaDataService.pushRelations(caseId, caseName, "", objectValue);
if (null != sjhmResult && sjhmResult.startsWith("{")) {
jsonObj = JSONObject.parseObject(sjhmResult);
}
if (jsonObj != null) {
String dataList = jsonObj.getString("data");
JSONArray childrens = JSONObject.parseArray(dataList);
if (childrens != null && childrens.size() > 0) {
for (int i = 0; i < childrens.size(); i++) {
JSONObject children = childrens.getJSONObject(i);
if (memsTypes.contains(children.getString("objectToType"))) {
relationList.add(getRelationModel(children));
}
}
relationList = removeJSonObject(relationList);
//根据imsi查询qq和微信ID
for(int j=0;j<relationList.size();j++){
Relation re = relationList.get(j);
if("4314".contains(re.getObjecttotype())){
JSONObject jobj = new JSONObject();
String qqweResult = pushWaDataService.pushRelations(caseId, caseName, "", re.getObjecttovalue());
if(qqweResult!=null && qqweResult.startsWith("{")){
jobj = JSONObject.parseObject(qqweResult);
}
if(jobj != null ){
String qqweDataList = jobj.getString("data");
JSONArray qqweChildrens = JSONObject.parseArray(qqweDataList);
if (qqweChildrens != null && qqweChildrens.size() > 0) {
for (int i = 0; i < qqweChildrens.size(); i++) {
JSONObject child = qqweChildrens.getJSONObject(i);
if (qqWeTypes.contains(child.getString("objectToType"))) {
qqweList.add(getRelationModel(child));
}
}
}
}
}
}
//qq和微信ID去重
qqweList = removeJSonObject(qqweList);
relationList.addAll(qqweList);
}
}
}
if(!relationList.isEmpty() && relationList != null){
jsonObejct.put("code", ResultEnum.SUCCESS.getCode());
......@@ -839,6 +946,33 @@ public class DataController {
}
return null;
}
private Relation getRelationModel(JSONObject jsonObject){
Relation relation = new Relation();
relation.setObjecttotype(jsonObject.getString("objectToType"));
relation.setObjecttotypename(jsonObject.getString("objectToTypeName"));
relation.setObjecttovalue(jsonObject.getString("objectToValue"));
relation.setObjectfromtype(jsonObject.getString("objectFromType"));
relation.setObjectfromvalue(jsonObject.getString("objectFromValue"));
relation.setObjectfromtypename(jsonObject.getString("objectFromTypeName"));
relation.setRelativetype(jsonObject.getString("relativeType"));
relation.setRelativetypename(jsonObject.getString("relativeTypeName"));
relation.setFirst_timestamp(getDate(jsonObject.getString("first_timestamp")));
return relation;
}
private String getDate(String sjc){
if(sjc != null){
Date date = new Date();
if( sjc.length() == 10){
date.setTime(Long.parseLong(sjc)*1000);
}else if(sjc.length() == 13){
date.setTime(Long.parseLong(sjc));
}
String dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
return dateStr;
}
return "";
}
@Async
public List<Relation> removeJSonObject(List<Relation> jsonObjects){
......
......@@ -99,7 +99,7 @@ public class PushWaDataController {
public ResultVO pushTaskStatus(String taskId){
ResultVO resultVO = null;
try{
String result = pushWaDataService.pushTaskStatus(taskId);
String result = pushWaDataService.pushTaskStatus(taskId,0);
resultVO = ResultVOUtil.success(JSONObject.parseObject(result));
}catch (InterServiceException e){
e.printStackTrace();
......@@ -162,7 +162,7 @@ public class PushWaDataController {
public ResultVO sendDzgzTask(String param) throws InterServiceException{
ResultVO resultVO = null;
try{
String result = pushWaDataService.sendDzgzTask(param);
String result = pushWaDataService.sendDzgzTask(param,0);
resultVO = ResultVOUtil.success(JSONObject.parseObject(result));
}catch (InterServiceException e){
e.printStackTrace();
......@@ -182,7 +182,7 @@ public class PushWaDataController {
public ResultVO getDzgzTaskInfo(String taskId) throws InterServiceException{
ResultVO resultVO = null;
try{
String result = pushWaDataService.getDzgzTaskInfo(taskId);
String result = pushWaDataService.getDzgzTaskInfo(taskId,0);
resultVO = ResultVOUtil.success(JSONObject.parseObject(result));
}catch (InterServiceException e){
e.printStackTrace();
......
package com.founder.interservice.dzgz.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.founder.interservice.VO.ResultVO;
import com.founder.interservice.dzgz.filter.DzgzTaskFilter;
......@@ -8,13 +9,13 @@ import com.founder.interservice.dzgz.model.DzgzTaskResult;
import com.founder.interservice.dzgz.service.DzgzService;
import com.founder.interservice.enums.ResultEnum;
import com.founder.interservice.exception.InterServiceException;
import com.founder.interservice.mapper.xzxt.DzgzTaskMapper;
import com.founder.interservice.mapper.xzxt.DzgzTaskResultMapper;
import com.founder.interservice.service.PushWaDataService;
import com.founder.interservice.user.controller.UserContoller;
import com.founder.interservice.user.model.User;
import com.founder.interservice.user.service.UserService;
import com.founder.interservice.util.DateUtil;
import com.founder.interservice.util.EasyUIPage;
import com.founder.interservice.util.ResultVOUtil;
import com.founder.interservice.util.StringUtil;
import com.founder.interservice.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
......@@ -22,11 +23,11 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Controller
@CrossOrigin //跨域访问
......@@ -36,6 +37,12 @@ public class DzgzController {
private DzgzService dzgzService;
@Autowired
private UserContoller userContoller;
@Autowired
private PushWaDataService pushWaDataService;
@Autowired
private DzgzTaskResultMapper taskResultMapper;
@Autowired
private DzgzTaskMapper taskMapper;
/**
......@@ -194,4 +201,233 @@ public class DzgzController {
}
return objectMap;
}
/**
* 提交发送任务 并保存入库
*/
@RequestMapping(value = "/toCommitDzgzTask",method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public ResultVO toCommitDzgzTask(String jh,String asjbh){
ResultVO resultVO = new ResultVO();
User user = userContoller.queryUserByid(null,jh);
List listStartTime = new ArrayList();
List listEndTime = new ArrayList();
List<DzgzTask> dzgzTaskList = new ArrayList();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time="2019-03-21 03:43:16";
try {
Date kssj = format.parse(time);
Long kssjLong = kssj.getTime();
//当天该时段 前一天该时段 前两天该时段 前三天该时段 前四天 前五天 后三天
listStartTime.add(1553110996000L);
listStartTime.add(1553024596000L);
listStartTime.add(1552938196000L);
listStartTime.add(1552851796000L);
listStartTime.add(1552752000000L);
listStartTime.add(1552665600000L);
listStartTime.add(1553184000000L);
listEndTime.add(1553111596000L);
listEndTime.add(1553025196000L);
listEndTime.add(1552938796000L);
listEndTime.add(1552852396000L);
listEndTime.add(1552838399000L);
listEndTime.add(1552751999000L);
listEndTime.add(1553443199000L);
} catch (ParseException e) {
e.printStackTrace();
}
for(int i=0;i<listStartTime.size();i++){
String paramStr = null;
//发送电子固证任务
//案发当天---案发开始时间到案件结束时间
JSONObject jwdObject1 = new JSONObject();
jwdObject1.put("j",106.58398997102532);
jwdObject1.put("w",29.669453871683785);
JSONObject jwdObject2 = new JSONObject();
jwdObject2.put("j",106.58398997102532);
jwdObject2.put("w",29.677306971200878);
JSONObject jwdObject3 = new JSONObject();
jwdObject3.put("j",106.59302834885236);
jwdObject3.put("w",29.677306971200878);
JSONObject jwdObject4 = new JSONObject();
jwdObject4.put("j",106.59302834885236);
jwdObject4.put("w",29.669453871683785);
JSONObject jwdObject5 = new JSONObject();
jwdObject5.put("j",106.58398997102532);
jwdObject5.put("w",29.669453871683785);
JSONArray lc = new JSONArray();
lc.add(jwdObject1);
lc.add(jwdObject2);
lc.add(jwdObject3);
lc.add(jwdObject4);
lc.add(jwdObject5);
JSONArray source = new JSONArray();
source.add(0);
JSONObject node = new JSONObject();
node.put("endTime",listEndTime.get(i));
node.put("lc",lc);
node.put("name",asjbh);
node.put("source",source);
node.put("startTime",listStartTime.get(i));
JSONObject objectParam = new JSONObject();
objectParam.put("node",node);
objectParam.put("taskCaseId",asjbh);
objectParam.put("taskName","案件名称");
objectParam.put("username",jh);
paramStr = objectParam.toJSONString();
try{
String result = pushWaDataService.sendDzgzTask(paramStr,0);
JSONObject resultObject = JSONObject.parseObject(result);
String success = resultObject.getString("success");
//String success = "true";
if("true".equals(success)){//发送任务成功
String taskId = resultObject.getString("data");//拿到任务编号
//String taskId = node.getString("startTime");//拿到任务编号
DzgzTask dzgzTask = new DzgzTask();
dzgzTask.setRwsd(""+i);
dzgzTask.setTaskId(taskId);
dzgzTask.setTaskCaseId(asjbh);
dzgzTask.setTaskName("案件名称");
dzgzTask.setQyName(node.getString("name"));
dzgzTask.setStartTime(new Date(node.getLongValue("startTime")));
dzgzTask.setEndTime(new Date(node.getLongValue("endTime")));
dzgzTask.setLc(node.getJSONArray("lc").toString());
dzgzTask.setProgress("0");
dzgzTask.setState("QUEUEING");
if(null != user){
dzgzTask.setFsrJh(user.getUsername());
dzgzTask.setFsrSfzh(user.getCard_id());
dzgzTask.setFsrXm(user.getTrue_name());
dzgzTask.setFsrLxdh(user.getPhone_no());
}
dzgzTask.setSpzt("-1");
dzgzTask.setIp("127.0.0.1");
dzgzTaskList.add(dzgzTask);
}
}catch (InterServiceException e){
e.printStackTrace();
}
}
if(dzgzTaskList!=null&&dzgzTaskList.size()==7){//全部任务发送成功--启动线程进行电子固证具体信息的存储
resultVO.setCode(0);
resultVO.setMsg("成功!");
//启动线程
ExecutorService pool = Executors.newCachedThreadPool();//newCachedThreadPool可缓存线程池
Runnable run = new Runnable() {
public void run() {
System.out.println("+++++++++++++++++++++++++++++++++++++++++电子固证线程开始执行+++++++++++++++++++++++++++++++++++++++++");
//遍历存储所有的电子固证信息
for(int i=0;i<dzgzTaskList.size();i++){
boolean bool = false;
while(!bool){
try{
dzgzService.saveDzgzTask(dzgzTaskList.get(i));
bool = true;
}catch (Exception e){
bool = false;
}
}
}
}
};
pool.execute(run);
}else{
resultVO = ResultVOUtil.error(ResultEnum.REQUEST_URL_ERROR.getCode(),ResultEnum.REQUEST_URL_ERROR.getMessage());
}
return resultVO;
}
/**
* 查询电子固证的结果,并转换成list返回
* @param task_id
* @return
*/
private List serchDetailTaskResult(String task_id){
List<DzgzTaskResult> taskResults = new ArrayList<>();
try{
String result_str = pushWaDataService.getDzgzTaskInfo(task_id,0);//查询电子固证结果
//解析返回的结果
if(result_str!=null&&!"".endsWith(result_str.trim())){
JSONObject result_return = JSONObject.parseObject(result_str);
JSONObject objectData = result_return.getJSONObject("data");
JSONArray jsonArray = objectData.getJSONArray("list");
if(jsonArray != null && jsonArray.size() > 0){
taskResults = jsonArray.toJavaList(DzgzTaskResult.class);
taskResults = removeDuplicate(taskResults);
if(taskResults != null && !taskResults.isEmpty()){
Iterator<DzgzTaskResult> resultIterator = taskResults.iterator();
while (resultIterator.hasNext()){
DzgzTaskResult r = resultIterator.next();
//如果结果中ObjectValue为空值,则删除,不予保存。这是数据结果不规范导致
if(StringUtil.ckeckEmpty(r.getObjectValue())){
resultIterator.remove();
}
r.setTaskId(task_id);
r.setXxzjbh(KeyUtil.getUniqueKey("GZ"));
}
//批量插入电子固证结果数据
taskResultMapper.saveDzgzTaskResultBatch(taskResults);
//getAndSaveRydetail(taskResults);
}
}
}
}catch(Exception e){
System.out.print("查询电子固证结果失败,task_id="+task_id);
}
return taskResults;
}
/**
* 去除重复数据
* @param list
* @return
*/
private List<DzgzTaskResult> removeDuplicate(List<DzgzTaskResult> list) {
for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {
for ( int j = list.size() - 1 ; j > i; j -- ) {
if (list.get(j).getObjectValue().equals(list.get(i).getObjectValue())&&list.get(j).getObjectType().equals(list.get(i).getObjectType())) {
list.remove(j);
}
}
}
return list;
}
/**
* 查询电子固证任务是否拿到所有的结果
* @param task_id
* @return 调用接口成功,且接口返回为finished时,返回结果为true,否则其他默认为失败
*/
private boolean searchTaskResult(String task_id){
boolean bool = false ;
try{
String result = pushWaDataService.pushTaskStatus(task_id,0);
//解析返回的结果
if(result!=null&&!"".endsWith(result.trim())){
JSONObject object = JSONObject.parseObject(result);
JSONObject objectData = object.getJSONObject("data");
String progress = objectData.getString("progress");
String state = objectData.getString("state");
if("1".equals(progress) && "FINISHED".equals(state)){
//更新电子固证表的数据
DzgzTaskFilter task = new DzgzTaskFilter();
task.setTaskId(task_id);
task.setState(state);
task.setProgress(progress);
taskMapper.updateTaskStat(task);
bool = true;
}
}
}catch (Exception e){
System.out.print("查询电子固证接口失败,task_id="+task_id);
bool = false;
}
return bool;
}
}
package com.founder.interservice.dzgz.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.founder.interservice.dzgz.filter.DzgzTaskFilter;
import com.founder.interservice.dzgz.model.DzgzTask;
import com.founder.interservice.dzgz.model.DzgzTaskResult;
import com.founder.interservice.dzgz.service.DzgzService;
import com.founder.interservice.mapper.xzxt.DzgzTaskMapper;
import com.founder.interservice.mapper.xzxt.DzgzTaskResultMapper;
import com.founder.interservice.service.PushWaDataService;
import com.founder.interservice.util.KeyUtil;
import com.founder.interservice.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class DzgzThread implements Runnable{
@Autowired
private DzgzService dzgzService;
@Autowired
private PushWaDataService pushWaDataService;
@Autowired
private DzgzTaskResultMapper taskResultMapper;
@Autowired
private DzgzTaskMapper taskMapper;
private List<DzgzTask> dzgzTaskList;
public DzgzThread(List<DzgzTask> dzgzTaskList) {
this.dzgzTaskList = dzgzTaskList;
}
public List<DzgzTask> getDzgzTaskList() {
return dzgzTaskList;
}
public void setDzgzTaskList(List<DzgzTask> dzgzTaskList) {
this.dzgzTaskList = dzgzTaskList;
}
@Override
public void run() {
System.out.println("+++++++++++++++++++++++++++++++++++++++++电子固证线程开始执行+++++++++++++++++++++++++++++++++++++++++");
//遍历存储所有的电子固证信息
for(int i=0;i<dzgzTaskList.size();i++){
boolean bool = false;
while(!bool){
try{
dzgzService.saveDzgzTask(dzgzTaskList.get(i));
bool = true;
}catch (Exception e){
bool = false;
}
}
}
//存储完成后查询电子固证结果
List<DzgzTask> failTask = new ArrayList<>();
List<List<DzgzTaskResult>> dzgzResultList = new ArrayList<>();
for(int i=0;i<dzgzTaskList.size();i++){
String task_id = dzgzTaskList.get(i).getTaskId();
//如果调用查询接口出错,继续查询,如果是状态返回未完成,先跳过执行完一圈后再进行查询
boolean bool = searchTaskResult(task_id);
//网安查询完成,拿到具体的电子固证数据,存储入库
try{
if(bool){
List<DzgzTaskResult> taskResults = serchDetailTaskResult(task_id);
//批量插入电子固证结果数据
taskResultMapper.saveDzgzTaskResultBatch(taskResults);
dzgzResultList.add(taskResults);
}else{//保存到需要继续执行的队列中
failTask.add(dzgzTaskList.get(i));
}
}catch(Exception e){
failTask.add(dzgzTaskList.get(i));
}
}
while(failTask.size()>0){//继续执行查询电子固证查询是否完成,完成后存入数据库的操作
List<DzgzTask> tempFailTask = failTask;
failTask = new ArrayList<>();
for(int i=0;i<tempFailTask.size();i++){
String task_id = tempFailTask.get(i).getTaskId();
//如果调用查询接口出错,继续查询,如果是状态返回未完成,先跳过执行完一圈后再进行查询
boolean bool = searchTaskResult(task_id);
//网安查询完成,拿到具体的电子固证数据,存储入库
try{
if(bool){
List<DzgzTaskResult> taskResults = serchDetailTaskResult(task_id);
//批量插入电子固证结果数据
taskResultMapper.saveDzgzTaskResultBatch(taskResults);
dzgzResultList.add(taskResults);
}else{//保存到需要继续执行的队列中
failTask.add(tempFailTask.get(i));
}
}catch(Exception e){
failTask.add(tempFailTask.get(i));
}
}
}
//通过拿到的所有的返回的电子固证结果,进行案前踩点、案后逃离分析
//定义模型中7个参数
List<String> dzgzTaskResultListNow = new ArrayList<>();//当天该时段
List<String> dzgzTaskResultListBefore1 = new ArrayList<>();//前一天该时段
List<String> dzgzTaskResultListBefore2 = new ArrayList<>();//前二天该时段
List<String> dzgzTaskResultListBefore3 = new ArrayList<>();//前三天该时段
List<String> dzgzTaskResultListBefore4 = new ArrayList<>();//前四天该时段
List<String> dzgzTaskResultListBefore5 = new ArrayList<>();//前五天该时段
List<String> dzgzTaskResultListAfter3 = new ArrayList<>();//后三天该时段
//拿到所有的imsi的数据
for(int i=0;i<dzgzResultList.size();i++){
List<DzgzTaskResult> dzgzTaskResultList = dzgzResultList.get(i);
String taskId = dzgzTaskResultList.get(0).getTaskId();
if(dzgzTaskList.get(0).getTaskId().equals(taskId)){
for(int t=0;t<dzgzTaskResultList.size();t++){
if("4314".equals(dzgzTaskResultList.get(t).getObjectType())){//存入imsi
dzgzTaskResultListNow.add(dzgzTaskResultList.get(t).getObjectValue());
}
}
}
if(dzgzTaskList.get(1).getTaskId().equals(taskId)){
for(int t=0;t<dzgzTaskResultList.size();t++){
if("4314".equals(dzgzTaskResultList.get(t).getObjectType())){//存入imsi
dzgzTaskResultListBefore1.add(dzgzTaskResultList.get(t).getObjectValue());
}
}
}
if(dzgzTaskList.get(2).getTaskId().equals(taskId)){
for(int t=0;t<dzgzTaskResultList.size();t++){
if("4314".equals(dzgzTaskResultList.get(t).getObjectType())){//存入imsi
dzgzTaskResultListBefore2.add(dzgzTaskResultList.get(t).getObjectValue());
}
}
}
if(dzgzTaskList.get(3).getTaskId().equals(taskId)){
for(int t=0;t<dzgzTaskResultList.size();t++){
if("4314".equals(dzgzTaskResultList.get(t).getObjectType())){//存入imsi
dzgzTaskResultListBefore3.add(dzgzTaskResultList.get(t).getObjectValue());
}
}
}
if(dzgzTaskList.get(4).getTaskId().equals(taskId)){
for(int t=0;t<dzgzTaskResultList.size();t++){
if("4314".equals(dzgzTaskResultList.get(t).getObjectType())){//存入imsi
dzgzTaskResultListBefore4.add(dzgzTaskResultList.get(t).getObjectValue());
}
}
}
if(dzgzTaskList.get(5).getTaskId().equals(taskId)){
for(int t=0;t<dzgzTaskResultList.size();t++){
if("4314".equals(dzgzTaskResultList.get(t).getObjectType())){//存入imsi
dzgzTaskResultListBefore5.add(dzgzTaskResultList.get(t).getObjectValue());
}
}
}
if(dzgzTaskList.get(6).getTaskId().equals(taskId)){
for(int t=0;t<dzgzTaskResultList.size();t++){
if("4314".equals(dzgzTaskResultList.get(t).getObjectType())){//存入imsi
dzgzTaskResultListAfter3.add(dzgzTaskResultList.get(t).getObjectValue());
}
}
}
}
//进行案前踩点分析----拿到当天与前1/2/3天重合的数据 这些数据不存在与前4/5天
//先拿不存在前4/5天的,常住人口多余流动人口
Collection notexists=new ArrayList<String>(dzgzTaskResultListNow);//不存在第四、五天的imsi
notexists.removeAll(dzgzTaskResultListBefore4);//去掉第四天和当天重复的imsi,得到嫌疑imsi
notexists.removeAll(dzgzTaskResultListBefore5);//嫌疑imsi不能存在第五天,即去掉第五天与嫌疑imsi重合的数据
//拿到不存在四五天的imsi,该imsi必须存在于前1/2/3天
Collection notexists1 = new ArrayList<String>(dzgzTaskResultListBefore1);
Collection exists1 = new ArrayList<String>(dzgzTaskResultListBefore1);
notexists1.removeAll(notexists);
exists1.removeAll(notexists1);
Collection notexists2 = new ArrayList<String>(dzgzTaskResultListBefore2);
Collection exists2 = new ArrayList<String>(dzgzTaskResultListBefore2);
notexists2.removeAll(exists1);
exists2.removeAll(notexists2);
Collection notexists3 = new ArrayList<String>(dzgzTaskResultListBefore3);
Collection aqcdImsi = new ArrayList<String>(dzgzTaskResultListBefore3);//案前踩点可以imsi
notexists3.removeAll(exists2);
aqcdImsi.removeAll(notexists3);
System.out.println("+++++++++++++++++++++++++++++++++++++++++++");
System.out.println("案前踩点imsi:"+aqcdImsi);
System.out.println("+++++++++++++++++++++++++++++++++++++++++++");
Collection after3 = new ArrayList<String>(dzgzTaskResultListAfter3);
aqcdImsi.removeAll(after3);
System.out.println("案后逃离imsi:"+aqcdImsi);
System.out.println("+++++++++++++++++++++++++++++++++++++++++++");
System.out.println("+++++++++++++++++++++++++++++++++++++++++电子固证线程执行结束+++++++++++++++++++++++++++++++++++++++++");
}
/**
* 查询电子固证的结果,并转换成list返回
* @param task_id
* @return
*/
public List serchDetailTaskResult(String task_id){
List<DzgzTaskResult> taskResults = new ArrayList<>();
try{
String result_str = pushWaDataService.getDzgzTaskInfo(task_id,0);//查询电子固证结果
//解析返回的结果
if(result_str!=null&&!"".endsWith(result_str.trim())){
JSONObject result_return = JSONObject.parseObject(result_str);
JSONObject objectData = result_return.getJSONObject("data");
JSONArray jsonArray = objectData.getJSONArray("list");
if(jsonArray != null && jsonArray.size() > 0){
taskResults = jsonArray.toJavaList(DzgzTaskResult.class);
taskResults = removeDuplicate(taskResults);
if(taskResults != null && !taskResults.isEmpty()){
Iterator<DzgzTaskResult> resultIterator = taskResults.iterator();
while (resultIterator.hasNext()){
DzgzTaskResult r = resultIterator.next();
//如果结果中ObjectValue为空值,则删除,不予保存。这是数据结果不规范导致
if(StringUtil.ckeckEmpty(r.getObjectValue())){
resultIterator.remove();
}
r.setTaskId(task_id);
r.setXxzjbh(KeyUtil.getUniqueKey("GZ"));
}
//批量插入电子固证结果数据
//taskResultMapper.saveDzgzTaskResultBatch(taskResults);
//getAndSaveRydetail(taskResults);
}
}
}
}catch(Exception e){
System.out.print("查询电子固证结果失败,task_id="+task_id);
}
return taskResults;
}
/**
* 去除重复数据
* @param list
* @return
*/
public List<DzgzTaskResult> removeDuplicate(List<DzgzTaskResult> list) {
for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {
for ( int j = list.size() - 1 ; j > i; j -- ) {
if (list.get(j).getObjectValue().equals(list.get(i).getObjectValue())&&list.get(j).getObjectType().equals(list.get(i).getObjectType())) {
list.remove(j);
}
}
}
return list;
}
/**
* 查询电子固证任务是否拿到所有的结果
* @param task_id
* @return 调用接口成功,且接口返回为finished时,返回结果为true,否则其他默认为失败
*/
public boolean searchTaskResult(String task_id){
boolean bool = false ;
try{
String result = pushWaDataService.pushTaskStatus(task_id,0);
//解析返回的结果
if(result!=null&&!"".endsWith(result.trim())){
JSONObject object = JSONObject.parseObject(result);
JSONObject objectData = object.getJSONObject("data");
String progress = objectData.getString("progress");
String state = objectData.getString("state");
if("1".equals(progress) && "FINISHED".equals(state)){
//更新电子固证表的数据
DzgzTaskFilter task = new DzgzTaskFilter();
task.setTaskId(task_id);
task.setState(state);
task.setProgress(progress);
taskMapper.updateTaskStat(task);
bool = true;
}
}
}catch (Exception e){
System.out.print("查询电子固证接口失败,task_id="+task_id);
bool = false;
}
return bool;
}
}
......@@ -8,6 +8,7 @@ import java.util.Date;
@Data
public class DzgzTaskFilter {
private String rwresult;//任务结果
private String taskId;//任务编号
private String taskName; //任务名称
private String taskCaseId;// 案件编号
......
......@@ -8,6 +8,8 @@ import java.util.Date;
@Data
public class DzgzTask {
private String rwresult;//任务结果
private String rwsd;//任务时段 0-当天该时段 1-前一天该时段 2-前两天该时段 3-前三天该时段 4-前四天(整天) 5-前五天(整天) 6-后三天(整三天)
private String taskId;//任务编号
private String taskName; //任务名称
private String taskCaseId;// 案件编号
......
......@@ -13,6 +13,7 @@ import com.founder.interservice.mapper.xzxt.DzgzTaskResultMapper;
import com.founder.interservice.model.AutoTbStRy;
import com.founder.interservice.regionalanalysis.model.RegionalTaskResultDetail;
import com.founder.interservice.service.IphoneTrackService;
import com.founder.interservice.service.PushWaDataService;
import com.founder.interservice.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -39,57 +40,71 @@ public class DzgzScheduledServer{
private String DZGZ_STATUE_URL;
@Value("${wabigdata.fixedEvidenceByRegionTaskFetch.url}")
private String DZGZ_INFO_URL;
@Autowired
private PushWaDataService pushWaDataService;
@Scheduled(initialDelay = 60000,fixedDelay = 180000) //项目启动后延迟1分钟执行,每次执行完后三分钟后再次执行
public void queryTaskResult(){
System.out.println("=============DZGZ Thread startting ===============");
System.out.println("=============DZGZ Thread startting ===============");
System.out.println("=============DZGZ Thread startting ===============");
System.out.println("=============DZGZ Thread startting ===============");
System.out.println("=============DZGZ Thread startting ===============");
System.out.println("=============DZGZ Thread startting ===============");
System.out.println("=============DZGZ Thread startting ===============");
System.out.println("Running Thread Name========== " + Thread.currentThread().getName());
try{
//1 下去查询任务表中status = "QUEUEING","STARTING","RUNNING"的任务
DzgzTaskFilter taskFilter = new DzgzTaskFilter();
taskFilter.setStartNum(0);
taskFilter.setEndNum(10);
taskFilter.setState("'QUEUEING','STARTING','RUNNING'");
List<DzgzTask> taskList = taskMapper.queryTaskListPage(taskFilter);
System.out.println("taskList====================================="+taskList);
List<DzgzTask> taskList = taskMapper.queryAllUnFinishTask();//拿到所有未完成的任务 网安未返回或数据未解析完成的数据
if(taskList != null && !taskList.isEmpty()){
for (DzgzTask task:taskList) {
String taskId = task.getTaskId();
//查询比对结果状态
Map<String,String> taskMap = queryTaskStates(taskId);
String progress = taskMap.get("progress");
String state = taskMap.get("state");
if("1".equals(progress) && "FINISHED".equals(state)){
String info_url = DZGZ_INFO_URL + "&taskId=" + taskId;
String taskInfoResult = HttpUtil.getWaData(info_url);//"{\"results\":[{\"objectType\":6424,\"objectTypeName\":\"汽车蓝色号牌\",\"objectValue\":\"渝B7T762\"},{\"objectType\":4314,\"objectTypeName\":\"IMSI\",\"objectValue\":\"460092380008864\"},{\"objectType\":4314,\"objectTypeName\":\"IMSI\",\"objectValue\":\"460092380008864\"},{\"objectType\":4314,\"objectTypeName\":\"IMSI\",\"objectValue\":\"460092380008864\"},{\"objectType\":4329,\"objectTypeName\":\"MAC地址\",\"objectValue\":\"DAA119018598\"}],\"status\":\"ok\"}";
//调取结果成功 然后将结果保存入库
if(!taskInfoResult.startsWith("Rate")){
if(null != taskInfoResult && taskInfoResult.startsWith("{")){
getAndSaveInfo(taskInfoResult,task);
updateTaskStates(taskId,progress,state);
try{
String taskId = task.getTaskId();
String progress = task.getProgress();
if("2".equals(progress)){//已经拿到查询结果,未解析完成,继续解析
String result_str = task.getRwresult();
getAndSaveInfo(result_str,task);
updateTaskStates(taskId,"1","FINISHED",null);
System.out.println("电子固证信息保存成功++++++++++++++++++++++++++");
}else{
//查询比对结果状态
Map<String,String> taskMap = queryTaskStates(taskId);
String state = taskMap.get("state");
if( "FINISHED".equals(state)){
String result_str = pushWaDataService.getDzgzTaskInfo(taskId,0);//查询电子固证结果
//调取结果成功 然后将结果保存入库
if(null != result_str && result_str.startsWith("{")){
//拿到数据,保存数据
updateTaskStates(taskId,"2","STARTING",result_str);
getAndSaveInfo(result_str,task);
updateTaskStates(taskId,"1",state,null);
System.out.println("电子固证信息保存成功++++++++++++++++++++++++++");
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}
public Map<String,String> queryTaskStates(String taskId){
JSONObject jsonObject = null;
String progress=null ,state=null;
Map<String,String> map = new HashMap();
String status_url = DZGZ_STATUE_URL + "&taskId="+taskId;
String result = HttpUtil.getWaData(status_url);
//String status_url = DZGZ_STATUE_URL + "&taskId="+taskId;
//String result = HttpUtil.getWaData(status_url);
String result = pushWaDataService.pushTaskStatus(taskId,0);
System.out.println("返回电子固证任务状态:"+result);
//String result = "{\"progress\":1,\"state\":\"FINISHED\"}";
if(null != result && result.startsWith("{")){
jsonObject = JSONObject.parseObject(result);
}
if(jsonObject!=null){
progress = jsonObject.getString("progress"); //进度
state = jsonObject.getString("state"); //状态
JSONObject JSONObjectData = jsonObject.getJSONObject("data");
progress = JSONObjectData.getString("progress"); //进度
state = JSONObjectData.getString("state"); //状态
}
map.put("progress",progress);
map.put("state",state);
......@@ -98,31 +113,49 @@ public class DzgzScheduledServer{
/**
* 保存任务结果数据(调取标识号完成,即第一步完成)
*
* @param taskInfoResult
* @param result_str
* @param task
* @throws RuntimeException
*/
public void getAndSaveInfo(String taskInfoResult, DzgzTask task) throws InterServiceException{
public void getAndSaveInfo(String result_str, DzgzTask task) throws InterServiceException{
List<DzgzTaskResult> taskResults = new ArrayList<>();
try{
JSONObject o = JSONObject.parseObject(taskInfoResult);
JSONArray jsonArray = o.getJSONArray("results");
if(jsonArray != null && jsonArray.size() > 0){
List<DzgzTaskResult> taskResults = jsonArray.toJavaList(DzgzTaskResult.class);
taskResults = removeDuplicate(taskResults);
if(taskResults != null && !taskResults.isEmpty()){
Iterator<DzgzTaskResult> resultIterator = taskResults.iterator();
while (resultIterator.hasNext()){
DzgzTaskResult r = resultIterator.next();
//如果结果中ObjectValue为空值,则删除,不予保存。这是数据结果不规范导致
if(StringUtil.ckeckEmpty(r.getObjectValue())){
resultIterator.remove();
//解析返回的结果
if(result_str!=null&&!"".endsWith(result_str.trim())){
JSONObject result_return = JSONObject.parseObject(result_str);
JSONObject objectData = result_return.getJSONObject("data");
JSONArray jsonArray = objectData.getJSONArray("list");
if(jsonArray != null && jsonArray.size() > 0){
taskResults = jsonArray.toJavaList(DzgzTaskResult.class);
taskResults = removeDuplicate(taskResults);
if(taskResults != null && !taskResults.isEmpty()){
Iterator<DzgzTaskResult> resultIterator = taskResults.iterator();
while (resultIterator.hasNext()){
DzgzTaskResult r = resultIterator.next();
//如果结果中ObjectValue为空值,则删除,不予保存。这是数据结果不规范导致
if(StringUtil.ckeckEmpty(r.getObjectValue())){
resultIterator.remove();
}
r.setTaskId(task.getTaskId());
r.setXxzjbh(KeyUtil.getUniqueKey("GZ"));
}
//批量插入电子固证结果数据
System.out.println("电子固证返回的数量:"+taskResults.size());
//多线程处理 chent
int limit = 120;//批处理量
int size = taskResults.size();
long threadNum = size / limit;
for (int i = 0; i < threadNum + 1; i++) {
System.out.println("电子固证返回的数量:+++"+i);
HandleThread thread = new HandleThread(taskResults, i * limit, ((i + 1) * limit));
thread.start();
}
r.setTaskId(task.getTaskId());
r.setXxzjbh(KeyUtil.getUniqueKey("GZ"));
//taskResultMapper.saveDzgzTaskResultBatch(taskResults);
//人员详细信息
getAndSaveRydetail(taskResults);
}
//批量插入电子固证结果数据
taskResultMapper.saveDzgzTaskResultBatch(taskResults);
getAndSaveRydetail(taskResults);
}
}
}catch (Exception e){
......@@ -130,6 +163,50 @@ public class DzgzScheduledServer{
throw new InterServiceException(ResultEnum.DB_SAVEERROR.getCode(),ResultEnum.DB_SAVEERROR.getMessage(),e);
}
}
/**
* 多线程批处理
* by changchao
*/
class HandleThread extends Thread {
private List<DzgzTaskResult> data;
private int start;
private int end;
public HandleThread(List<DzgzTaskResult> data, int start, int end) {
this.data = data;
this.start = start;
this.end = end;
}
public void run() {
System.out.println("进入电子固证保存的线程");
if (start > data.size()) {
return;
}
if (end > data.size()) {
end = data.size();
}
List<DzgzTaskResult> dzgzTaskResult = data.subList(start, end); //从fromIndex(包含),到toIndex(不包含)
List<DzgzTaskResult> paramDzgzTaskResults = new ArrayList<DzgzTaskResult>();
for (DzgzTaskResult dzgzTask : dzgzTaskResult ) {
int count = taskResultMapper.existsDzgzTaskResult(dzgzTask);
if (count==0) {//不存在于数据库
paramDzgzTaskResults.add(dzgzTask);
}
}
if (paramDzgzTaskResults != null && paramDzgzTaskResults.size() > 0){
try {
taskResultMapper.saveDzgzTaskResultBatch(paramDzgzTaskResults);
} catch (Exception e) {
System.out.println("电子固证数据保存失败!!!");
e.printStackTrace();
}
}
}
}
/**
* 拿取到伴随的结果后 使用第四个接口调取关联数据
*/
......@@ -221,12 +298,13 @@ public class DzgzScheduledServer{
* @param state
* @throws Exception
*/
private void updateTaskStates(String taskId,String progress,String state)throws RuntimeException{
private void updateTaskStates(String taskId,String progress,String state,String rwresult)throws RuntimeException{
try{
DzgzTaskFilter filter = new DzgzTaskFilter();
filter.setState(state);
filter.setProgress(progress);
filter.setTaskId(taskId);
filter.setRwresult(rwresult);
taskMapper.updateTaskStat(filter);
}catch (Exception e){
e.printStackTrace();
......
package com.founder.interservice.gwdq.Bean;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
/**
* ****************************************************************************
*
* @Package: [com.founder.framework.base.entity.SessionBean.java]
* @ClassName: [SessionBean]
* @Description: [Session中存储值的JavaBean]
* @Author: [weiwen ]
* @CreateDate: [2013-12-3 下午5:17:21]
* @UpdateUser: [weiwen(如多次修改保留历史记录,增加修改记录)]
* @UpdateDate: [2013-12-3 下午5:17:21,(如多次修改保留历史记录,增加修改记录)]
* @UpdateRemark: [说明本次修改内容,(如多次修改保留历史记录,增加修改记录)]
* @Version: [v1.0]
*/
public class SessionBean implements Serializable {
private static final long serialVersionUID = 1L;
private Long userPk = null;// 人员表主键
private String userId = "";// 帐号
private String userName = "";// 人员姓名
private String password = "";// 密码
private String userType = ""; // 人员类型(1=系统管理员;2=管理人员;3=普通人员)
private Long userOrgId = null; // 人员所在部门ID
private String userOrgCode = "";// 人员所在部门代码
private String userOrgName = "";// 人员所在部门名称
private String userOrgNameQc = "";// 人员所在部门名称全称
private String userOrgNameJc = "";// 人员所在部门名称简称
private String userOrgIDPath = ""; // 人员所在部门路径ID(从根结点开始,逗号分隔)
private String userOrgIDRight = ""; // 人员拥有部门的权限(包括部门与工作组及上级部门路径,逗号分隔)
private String userOrgLevel = ""; // 人员所在部门的部门等级
private String userOrgBiztype = ""; // 人员所在部门的部门业务类型
private String userPositionId = "";// 人员岗位ID(多个时用逗号分隔)
private Long userManageOrgId = null; // 人员管理部门ID
private String userManageOrgCode = "";// 人员管理部门代码
private String userManageOrgName = "";// 人员管理部门名称
private String loginTime = "";// 登录时间
private String remoteAddr = "";// 登录机器ip
private String positionId = "";// 虚拟岗位ID(多个时用逗号分隔)
private String positionName = "";// 人员岗位名称(多个时用逗号分隔)
private String bjzbz = ""; // 人员所在部门边界坐标值
private String theme = ""; // 人员风格主题
private String industrialid = "";
private String userRoleId= "";//人员角色ID(多个时用逗号分隔)
private String grade;//用户级别 省 市 县 特
private String policemanid;//警号
public String getPolicemanid() {
return policemanid;
}
public void setPolicemanid(String policemanid) {
this.policemanid = policemanid;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getUserRoleId() {
return userRoleId;
}
public void setUserRoleId(String userRoleId) {
this.userRoleId = userRoleId;
}
private Map<String, String> powerUrls = new HashMap<String, String>();
public Map<String, String> getPowerUrls() {
return powerUrls;
}
public void setPowerUrls(Map<String, String> powerUrls) {
this.powerUrls = powerUrls;
}
/**
* 扩展属性中初始存放:
* <p>
* parentOrgID 上级部门ID<br>
* parentOrgCode 上级部门代码<br>
* parentOrgName 上级部门名称<br>
* grandOrgID 上两级部门ID<br>
* grandOrgCode 上两级部门代码<br>
* grandOrgName 上两级部门名称<br>
*/
/**
* 根据业务系统扩展属性:
* <p>
* ssDsjID 所属地市局ID<br>
* ssDsjCode 所属地市局代码<br>
* ssDsjName 所属地市局名称<br>
* ssFsxID 所属分市县局ID<br>
* ssFsxCode 所属分市县局代码<br>
* ssFsxName 所属分市县局名称<br>
* ssPcsID 所属派出所ID<br>
* ssPcsCode 所属派出所代码<br>
* ssPcsName 所属派出所名称<br>
*/
private Map<String,String> extendMap = new HashMap<String,String>();
public Long getUserPk() {
return userPk;
}
public void setUserPk(Long userPk) {
this.userPk = userPk;
}
public Long getUserManageOrgId() {
return userManageOrgId;
}
public void setUserManageOrgId(Long userManageOrgId) {
this.userManageOrgId = userManageOrgId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
public String getUserOrgCode() {
return userOrgCode;
}
public void setUserOrgCode(String userOrgCode) {
this.userOrgCode = userOrgCode;
}
public String getUserOrgName() {
return userOrgName;
}
public void setUserOrgName(String userOrgName) {
this.userOrgName = userOrgName;
}
public String getUserOrgNameQc() {
return userOrgNameQc;
}
public void setUserOrgNameQc(String userOrgNameQc) {
this.userOrgNameQc = userOrgNameQc;
}
public String getUserOrgNameJc() {
return userOrgNameJc;
}
public void setUserOrgNameJc(String userOrgNameJc) {
this.userOrgNameJc = userOrgNameJc;
}
public String getUserOrgIDPath() {
return userOrgIDPath;
}
public void setUserOrgIDPath(String userOrgIDPath) {
this.userOrgIDPath = userOrgIDPath;
}
public String getUserOrgIDRight() {
return userOrgIDRight;
}
public void setUserOrgIDRight(String userOrgIDRight) {
this.userOrgIDRight = userOrgIDRight;
}
public String getUserOrgLevel() {
return userOrgLevel;
}
public void setUserOrgLevel(String userOrgLevel) {
this.userOrgLevel = userOrgLevel;
}
public String getUserOrgBiztype() {
return userOrgBiztype;
}
public void setUserOrgBiztype(String userOrgBiztype) {
this.userOrgBiztype = userOrgBiztype;
}
public String getUserPositionId() {
return userPositionId;
}
public void setUserPositionId(String userPositionId) {
this.userPositionId = userPositionId;
}
public String getPositionName() {
return positionName;
}
public void setPositionName(String positionName) {
this.positionName = positionName;
}
public String getUserManageOrgCode() {
return userManageOrgCode;
}
public void setUserManageOrgCode(String userManageOrgCode) {
this.userManageOrgCode = userManageOrgCode;
}
public String getUserManageOrgName() {
return userManageOrgName;
}
public void setUserManageOrgName(String userManageOrgName) {
this.userManageOrgName = userManageOrgName;
}
public String getLoginTime() {
return loginTime;
}
public void setLoginTime(String loginTime) {
this.loginTime = loginTime;
}
public String getRemoteAddr() {
return remoteAddr;
}
public void setRemoteAddr(String remoteAddr) {
this.remoteAddr = remoteAddr;
}
public String getPositionId() {
return positionId;
}
public void setPositionId(String positionId) {
this.positionId = positionId;
}
public Long getUserOrgId() {
return userOrgId;
}
public void setUserOrgId(Long userOrgId) {
this.userOrgId = userOrgId;
}
public Map<String,String> getExtendMap() {
return extendMap;
}
public void setExtendMap(Map<String,String> extendMap) {
this.extendMap = extendMap;
}
public String getBjzbz() {
return bjzbz;
}
public void setBjzbz(String bjzbz) {
this.bjzbz = bjzbz;
}
public String getTheme() {
return theme;
}
public void setTheme(String theme) {
this.theme = theme;
}
/**
* 取得扩展属性<<br>
*
* @param key
* @return String
*/
public String getExtendValue(String key) {
String returnValue = (String) extendMap.get(key);
return returnValue;
}
/**
* 设置扩展属性<br>
*
* @param key
* @param value
* void
*/
public void putExtendValue(String key, String value) {
if (null!=key&&"".equals(key)) {
extendMap.put(key, value);
}
}
public String getIndustrialid() {
return industrialid;
}
public void setIndustrialid(String industrialid) {
this.industrialid = industrialid;
}
}
package com.founder.interservice.gwdq.Controller;
import com.alibaba.fastjson.JSONObject;
import com.founder.interservice.gwdq.service.GwdqService;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import java.io.UnsupportedEncodingException;
import java.util.*;
@Controller
public class GwdqfxtjController {
@Value("${anjian.xzxt.url}")
private String cjxzUrl;
@Autowired
private GwdqService gwdqService;
@RequestMapping(value = "/toGwdq", method = {RequestMethod.GET, RequestMethod.POST})
public ModelAndView getGwdq(String asjfsjssj, String asjbh, String userName, String passWord, String sfzh, String userCode) {
CloseableHttpClient httpclient = gwdqService.getCjxm(userName, passWord, sfzh, userCode);
//response返回的相应实体
UrlEncodedFormEntity reqEntity = null;
//建立一个NameValuePair数组,用于存储欲传送的参数
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.clear();
formparams.add(new BasicNameValuePair("asjfsjssj", asjfsjssj));
formparams.add(new BasicNameValuePair("asjbh", asjbh));
try {
reqEntity = new UrlEncodedFormEntity(formparams, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
HttpPost post = new HttpPost(cjxzUrl);
post.setEntity(reqEntity);
JSONObject jsonObject = null;
String content = gwdqService.RequestUtil(httpclient, post).trim();
System.out.println(content);
if (!"".equals(content)) {
jsonObject = JSONObject.parseObject(content);
}
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("gwdq/gwdqjg");
modelAndView.addObject("mapdata",jsonObject);
return modelAndView;
}
}
package com.founder.interservice.gwdq.service;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.CloseableHttpClient;
public interface GwdqService {
/**
* 登录采集系统
* @param userName
* @param passWord
* @param sfzh
* @param userCode
* @return
*/
public CloseableHttpClient getCjxm(String userName, String passWord, String sfzh, String userCode);
/**
*
* @param httpclient
* @param httpUriRequest
* @return
*/
public String RequestUtil(CloseableHttpClient httpclient, HttpUriRequest httpUriRequest);
}
package com.founder.interservice.gwdq.service.impl;
import com.alibaba.fastjson.JSON;
import com.founder.interservice.gwdq.Bean.SessionBean;
import com.founder.interservice.gwdq.service.GwdqService;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
@Service
public class GwdqServiceImpl implements GwdqService {
@Value("${anjian.login.url}")
private String cjloginUrl;
@Override
public CloseableHttpClient getCjxm(String userName, String passWord, String sfzh, String userCode) {
//创建cookieStore
BasicCookieStore cookieStore = new BasicCookieStore();
// 设置默认时间
RequestConfig defaultRequestConfig = RequestConfig.custom()
.setSocketTimeout(5000000)//表示数据传输处理时间
.setConnectTimeout(5000000)//建立连接的timeout时间
.setConnectionRequestTimeout(5000000)
.build();
//先建立一个客户端实例,将模拟一个浏览器
CloseableHttpClient httpclient = null;
//创建一个HttpClient
httpclient = HttpClients.custom()
.setDefaultCookieStore(cookieStore)//cookieStore是初始化空的
.setDefaultRequestConfig(defaultRequestConfig)
.build();
SessionBean bean = new SessionBean();
bean.setUserId(sfzh);//身份证号
bean.setPassword(passWord);//密码
bean.setUserOrgCode(userCode);//组织机构代码
bean.setUserOrgName(userName);//组织机构名称
StringEntity entity = new StringEntity(JSON.toJSONString(bean), "utf-8");
entity.setContentEncoding("utf-8");
entity.setContentType("application/json");
//post请求
HttpPost post = null;
post = new HttpPost(cjloginUrl);
//注入post数据
post.setEntity(entity);
//先登陆"http://www.xzxt.nm/login" 拿到cookie
RequestUtil(httpclient, post);
return httpclient;
}
@Override
public String RequestUtil(CloseableHttpClient httpclient, HttpUriRequest httpUriRequest) {
//返回相应
CloseableHttpResponse response = null;
try {
response = httpclient.execute(httpUriRequest);
} catch (IOException e) {
e.printStackTrace();
}
String res = null;
try {
res = EntityUtils.toString(response.getEntity(), HTTP.UTF_8);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("采集返回参数===" + res);
return res;
}
}
......@@ -24,4 +24,5 @@ public interface DzgzTaskMapper {
int getDzgjResultDetailListTotalCount(DzgzTaskResult dzgzTaskResult) throws Exception;
List<DzgzTask> queryAllUnFinishTask();
}
......@@ -18,4 +18,6 @@ public interface DzgzTaskResultMapper {
void saveDzgzDetail(RegionalTaskResultDetail detail)throws Exception;
int dzgzDetailIsExist(RegionalTaskResultDetail param)throws Exception;
int existsDzgzTaskResult(DzgzTaskResult dzgzTask);
}
package com.founder.interservice.mapper.xzxt;
import com.founder.interservice.ryhx.model.TbStCqhotel;
import com.founder.interservice.ryhx.model.TbStCqwbdata;
import com.founder.interservice.ryhx.vo.TbStCqwbdataVOS;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import com.founder.interservice.ryhx.model.TbStCqhotelData;
@Mapper
@Repository
public interface RyhxMapper {
TbStCqhotel queryHotelAddr(String hotelno) throws Exception;
TbStCqhotelData queryHotelDetail(String hotelno) throws Exception;
TbStCqwbdataVOS queryWbxx(String zjhm) throws Exception;
}
......@@ -3,6 +3,11 @@ package com.founder.interservice.ryhx.controller;
import com.founder.interservice.model.AutoTbStRy;
import com.founder.interservice.model.Relation;
import com.founder.interservice.model.SysDictitem;
import com.founder.interservice.ryhx.model.TbStCqhotel;
import com.founder.interservice.ryhx.model.TbStCqhotelData;
import com.founder.interservice.ryhx.model.TbStCqwbdata;
import com.founder.interservice.ryhx.service.RyhxService;
import com.founder.interservice.ryhx.vo.TbStCqwbdataVOS;
import com.founder.interservice.service.DataService;
import com.founder.interservice.service.SysDictService;
import com.founder.interservice.util.Qgckzp;
......@@ -23,15 +28,17 @@ public class RyhxController {
private SysDictService sysDictService;
@Autowired
private DataService dataService;
List<Relation> relationInList = new ArrayList<Relation>();
List<Relation> relationLaList = new ArrayList<Relation>();
@Autowired
private RyhxService ryhxService;
Relation relation = new Relation();
Relation relaFilter = new Relation();
private AutoTbStRy ryxx;
int z = 0;
/*List<Relation> relationInList = new ArrayList<Relation>();
List<Relation> relationLaList = new ArrayList<Relation>();
int z = 0;*/
@RequestMapping(value = "/toRyhxJsp",method = {RequestMethod.GET,RequestMethod.POST})
public ModelAndView toRyhxJsp(String zjhm){
@RequestMapping(value = "/getJbxx",method = {RequestMethod.GET,RequestMethod.POST})
public ModelAndView getJbxx(String zjhm){
String code = "";
SysDictitem sysDictitem = new SysDictitem();
try{
......@@ -53,12 +60,12 @@ public class RyhxController {
}
//户籍地
code = ryxx.getHjdzXzqhdm();
sysDictitem.setCode(code);
sysDictitem.setGroupid("CODE_UNIT");
if(code != null && !"".equals(code)){
String hjdzDzmc = sysDictService.getCodeName(sysDictitem);
ryxx.setHjmc(hjdzDzmc);
}
sysDictitem.setCode(code);
sysDictitem.setGroupid("CODE_UNIT");
if(code != null && !"".equals(code)){
String hjdzDzmc = sysDictService.getCodeName(sysDictitem);
ryxx.setHjmc(hjdzDzmc);
}
//民族
code = ryxx.getMzdm();
sysDictitem.setCode(code);
......@@ -71,7 +78,7 @@ public class RyhxController {
}catch (Exception e){
e.printStackTrace();
}
ModelAndView modelAndView = new ModelAndView("ryhx/ryhx");
ModelAndView modelAndView = new ModelAndView("ryhx/jbxx");
modelAndView.addObject("ryxx",ryxx);
modelAndView.addObject("zjhm",zjhm);
return modelAndView;
......@@ -94,11 +101,68 @@ public class RyhxController {
}catch (Exception e){
e.printStackTrace();
}
ModelAndView modelAndView = new ModelAndView("ryhx/ryhx");
ModelAndView modelAndView = new ModelAndView("ryhx/xnxx");
modelAndView.addObject("relationList",relationList);
modelAndView.addObject("zjhm",zjhm);
return modelAndView;
}
/*旅店信息查询
查询表为TB_ST_CQHOTELDATA
网吧信息查询
查询表为TB_ST_CQWBDATA
* */
@RequestMapping(value = "/getLdjbxx",method = {RequestMethod.GET,RequestMethod.POST})
public ModelAndView getLdjbxx(String zjhm){
TbStCqhotelData tbStCqhotelData = null;
TbStCqhotel tbStCqhotel = null;
SysDictitem sysDictitem = new SysDictitem();
TbStCqwbdataVOS tbStCqwbdataVOS = null;
try{
if(zjhm != null && !"".equals(zjhm)){
String idcode = zjhm;
//旅店信息
tbStCqhotelData = ryhxService.queryHotelxx(idcode);
String hotelno = tbStCqhotelData.getHotelno();
//疑似落脚点
if(hotelno != null && !"".equals(hotelno)){
tbStCqhotel = ryhxService.queryHotelAddr(hotelno);
}
//网吧信息
tbStCqwbdataVOS = ryhxService.queryWbxx(zjhm);
if(tbStCqwbdataVOS !=null) {
String wbxzqh = tbStCqwbdataVOS.getWbxzqh();
sysDictitem.setCode(wbxzqh);
sysDictitem.setGroupid("CODE_UNIT");
if (wbxzqh != null && !"".equals(wbxzqh)) {
String wbxzqhmc = sysDictService.getCodeName(sysDictitem);
tbStCqwbdataVOS.setWbxzqhmc(wbxzqhmc);
}
}
}
}catch (Exception e){
e.printStackTrace();
}
ModelAndView modelAndView = new ModelAndView("ryhx/gjxx");
modelAndView.addObject("zjhm",zjhm);
modelAndView.addObject("hotel",tbStCqhotelData);
modelAndView.addObject("hotela",tbStCqhotel);
modelAndView.addObject("wbxx",tbStCqwbdataVOS);
return modelAndView;
}
/**
* 人员画像ifram界面
* @return
*/
@RequestMapping(value = "/toRyhxJsp",method = {RequestMethod.GET,RequestMethod.POST})
public ModelAndView toRyhxJsp(){
ModelAndView model = new ModelAndView();
model.setViewName("ryhx/ryhx");
return model;
}
/*轨迹信息查询*/
/*暂时不用该方法
虚拟信息查询
......
package com.founder.interservice.ryhx.model;
import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.Date;
@Entity
@DynamicUpdate
@Data
public class TbStCqhotel {
@Id
private String hno;//旅店编号,主键
private String hname;//旅店名称
private String haddress;//旅店详细地址
private String telphone;//旅店电话
private String hroomnum;//旅店房间总数
private String legalperson;//法人名称
private String principal;//主要负责人名称
private String socialduty;//负责人名称
private String hlat;//旅店位置纬度
private String hlong;//旅店位置经度
private String pcscode;//派出所代码
private String pcsname;//派出所名称
private String pcsdh;//派出所电话
private Date gxsj;//更新时间
private Date rksj;//入库时间
}
package com.founder.interservice.ryhx.model;
import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.Date;
@Entity
@DynamicUpdate
@Data
public class TbStCqhotelData {
@Id
private String xxzjbh;//旅店编号,主键
private String xm;//姓名
private String py;//拼音
private String idcode;//身份证号
private String csrq;//出生日期
private String xb;//性别
private String mz;//名族
private String address;//户籍地址
private String hotelno;//旅店编号
private String roomno;//房间号码
private String createtime;//创建时间
private String rksj;//入库时间
private String gxsj;//更新时间
}
\ No newline at end of file
package com.founder.interservice.ryhx.model;
import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
@DynamicUpdate
@Data
public class TbStCqwbdata {
@Id
private String xxzjbh;//信息主键编号,主键
private String wbdm;//网吧代码
private String wbmc;//网吧名称
private String wbxzqh;//网吧行政区划代码
private String wbdz;//网吧地址
private String xm;//姓名
private String sex;//性别
private String csrq;//出生日期
private String zjhm;//证件号码
private String gj;//国籍
private String mz;//民族
private String address;//户籍地址
private String swkssj;//上网开始时间
private String swjssj;//上网结束时间
private String swzwh;//上网座位号
private String createtime;//创建时间
private String rksj;//入库时间
private String gxsj;//更新时间
private String wbxzqhmc;//网吧行政区划名称
}
package com.founder.interservice.ryhx.model;
import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
@DynamicUpdate
@Data
public class TbStCqwbxx {
@Id
private String wbno;//网吧编号,主键
private String wbname;//网吧名称
private String wbaddress;//网吧详细地址
private String telphone;//网吧电话
private String boss;//老板姓名
private String wblat;//网吧位置纬度
private String wblong;//网吧位置经度
private String pcscode;//派出所代码
private String pcsname;//派出所名称
private String gxsj;//更新时间
private String rksj;//入库时间
}
package com.founder.interservice.ryhx.service;
import com.founder.interservice.ryhx.model.TbStCqhotel;
import com.founder.interservice.ryhx.model.TbStCqhotelData;
import com.founder.interservice.ryhx.model.TbStCqwbdata;
import com.founder.interservice.ryhx.vo.TbStCqwbdataVOS;
import org.apache.poi.ss.formula.functions.T;
/**
* @ClassName: RyhxService
* @Auther: 朱琳瑛
* @Description: java类作用描述
* @CreateDate: 2019-04-27 14:16
* @Version: 1.0
*/
public interface RyhxService {
TbStCqhotel queryHotelAddr(String hotelno) throws Exception;
TbStCqhotelData queryHotelxx(String idcode) throws Exception;
TbStCqwbdataVOS queryWbxx(String zjhm) throws Exception;
}
package com.founder.interservice.ryhx.service.impl;
import com.founder.interservice.mapper.xzxt.RyhxMapper;
import com.founder.interservice.ryhx.model.TbStCqhotel;
import com.founder.interservice.ryhx.model.TbStCqhotelData;
import com.founder.interservice.ryhx.model.TbStCqwbdata;
import com.founder.interservice.ryhx.service.RyhxService;
import com.founder.interservice.ryhx.vo.TbStCqwbdataVOS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class RyhxServiceImpl implements RyhxService {
@Autowired
private RyhxMapper ryhxMapper;
/*根据证旅店编号查询旅店地址*/
@Override
public TbStCqhotel queryHotelAddr(String hotelno)throws Exception {
TbStCqhotel tbStCqhotel = ryhxMapper.queryHotelAddr(hotelno);
return tbStCqhotel;
}
/*根据旅店编号查找旅店详细信息*/
@Override
public TbStCqhotelData queryHotelxx(String idcode) throws Exception{
TbStCqhotelData tbStCqhotelData = ryhxMapper.queryHotelDetail(idcode);
return tbStCqhotelData;
}
/*根据证件号码查询网吧表网吧信息*/
@Override
public TbStCqwbdataVOS queryWbxx(String zjhm) throws Exception{
TbStCqwbdataVOS tbStCqwbdataVOS = ryhxMapper.queryWbxx(zjhm);
return tbStCqwbdataVOS;
}
}
package com.founder.interservice.ryhx.vo;
import lombok.Data;
@Data
public class TbStCqwbdataVOS {
private String xxzjbh;//信息主键编号,主键
private String wbdm;//网吧代码
private String wbmc;//网吧名称
private String wbxzqh;//网吧行政区划代码
private String wbdz;//网吧地址
private String xm;//姓名
private String sex;//性别
private String csrq;//出生日期
private String zjhm;//证件号码
private String gj;//国籍
private String mz;//民族
private String address;//户籍地址
private String swkssj;//上网开始时间
private String swjssj;//上网结束时间
private String swzwh;//上网座位号
private String createtime;//创建时间
private String rksj;//入库时间
private String gxsj;//更新时间
private String wbxzqhmc;//网吧行政区划名称
}
......@@ -10,11 +10,11 @@ public interface PushWaDataService {
public String pushTrack(String caseId,String caseName,String username,String startTime,String endTime,String objectValue) throws InterServiceException;
public String pushRelations(String caseId,String caseName,String username,String objectValue) throws InterServiceException;
public String pushRelationAll(String caseId,String caseName,String username,String objectValue) throws InterServiceException;
public String pushTaskStatus(String taskId) throws InterServiceException;
public String pushTaskStatus(String taskId,int i) throws InterServiceException;
public String sendTogetherTask(String taskCaseId,String taskName,String username,String startTime,String endTime,String objectType,String objectValue) throws InterServiceException;
public String getTogetherTaskInfo(String taskId) throws InterServiceException;
public String sendDzgzTask(String param) throws InterServiceException;
public String getDzgzTaskInfo(String taskId) throws InterServiceException;
public String sendDzgzTask(String param,int i) throws InterServiceException;
public String getDzgzTaskInfo(String taskId,int i) throws InterServiceException;
public String doPostWaData(String urlName,String param) throws InterServiceException;
String sendRegionalTask(String param) throws InterServiceException;
......
......@@ -106,13 +106,18 @@ public class PushWaDataServiceImpl implements PushWaDataService {
* @return json字符串
*/
@Override
public String pushTaskStatus(String taskId) throws InterServiceException{
public String pushTaskStatus(String taskId,int i) throws InterServiceException{
String result = null;
try{
String url = "taskStatus/"+taskId;
result = doPostWaData(url,null);
}catch (Exception e){
throw new InterServiceException(ResultEnum.REQUEST_URL_ERROR.getCode(),ResultEnum.REQUEST_URL_ERROR.getMessage());
if(i<5){//多调用几次接口
i++;
result = pushTaskStatus(taskId,i);
}else{
throw new InterServiceException(ResultEnum.REQUEST_URL_ERROR.getCode(),ResultEnum.REQUEST_URL_ERROR.getMessage());
}
}
return result;
}
......@@ -178,12 +183,17 @@ public class PushWaDataServiceImpl implements PushWaDataService {
* @throws InterServiceException
*/
@Override
public String sendDzgzTask(String param) throws InterServiceException{
public String sendDzgzTask(String param,int i) throws InterServiceException{
String result = null;
try{
result = doPostWaData("fixedEvidenceByRegionTask",param);
}catch (Exception e){
throw new InterServiceException(ResultEnum.REQUEST_URL_ERROR.getCode(),ResultEnum.REQUEST_URL_ERROR.getMessage());
if(i<5){//多调用几次接口
i++;
result = sendDzgzTask(param,i);
}else{
throw new InterServiceException(ResultEnum.REQUEST_URL_ERROR.getCode(),ResultEnum.REQUEST_URL_ERROR.getMessage());
}
}
return result;
}
......@@ -195,14 +205,19 @@ public class PushWaDataServiceImpl implements PushWaDataService {
* @throws InterServiceException
*/
@Override
public String getDzgzTaskInfo(String taskId) throws InterServiceException{
public String getDzgzTaskInfo(String taskId,int i) throws InterServiceException{
String result = null;
try{
JSONObject param = new JSONObject();
param.put("taskId", taskId);
result = doPostWaData("fixedEvidenceByRegionTaskFetch",param.toJSONString());
}catch (Exception e){
throw new InterServiceException(ResultEnum.REQUEST_URL_ERROR.getCode(),ResultEnum.REQUEST_URL_ERROR.getMessage());
if(i<5){//多调用几次接口
i++;
result = getDzgzTaskInfo(taskId,i);
}else{
throw new InterServiceException(ResultEnum.REQUEST_URL_ERROR.getCode(),ResultEnum.REQUEST_URL_ERROR.getMessage());
}
}
return result;
}
......@@ -284,6 +299,7 @@ public class PushWaDataServiceImpl implements PushWaDataService {
try{
String url = UNIFIED_URL + urlName;
String result = HttpClient.doPostWaData(url,param);
System.out.println("网安数据接口路径:"+url);
return result;
}catch (InterServiceException e){
e.printStackTrace();
......
......@@ -121,4 +121,11 @@ wabigdata:
logging:
level:
com.founder.interservice.mapper.xzxt: debug
com.founder.interservice.mapper.gxzxt: debug
\ No newline at end of file
com.founder.interservice.mapper.gxzxt: debug
#采集系统 登陆 退出 域名,各省份部署时自行修改配置
#采集项目登录地址
anjian:
login:
url: http://www.xzxt.nm/login
xzxt:
url: http://anjian.xzxt.nm:9022/jwzh-anjian/cqGwdqTjxx/GetGwryTjxxs
......@@ -114,8 +114,8 @@
t.sqr_xm,
t.sqr_jh,
t.sqr_lxdh,
to_char(t.bksj_start,'yyyy-mm-dd') as bksj_start,
to_char(t.bksj_end,'yyyy-mm-dd') as bksj_end,
to_char(t.bksj_start,'yyyy-mm-dd HH24:mi:ss') as bksj_start,
to_char(t.bksj_end,'yyyy-mm-dd HH24:mi:ss') as bksj_end,
case when t.bkzt = '0' then '布控中'
when t.bkzt = '1' then '已撤销'
else ''
......
......@@ -41,6 +41,7 @@
INSERT INTO TB_ST_DZGZTASK
(
TASK_ID,
RWSD,
TASK_NAME,
TASK_CASE_ID,
QY_NAME,
......@@ -60,6 +61,12 @@
VALUES
(
#{taskId},
<if test="rwsd != null and rwsd != ''">
#{rwsd},
</if>
<if test="rwsd == null || rwsd == ''">
'0',
</if>
#{taskName},
#{taskCaseId},
#{qyName},
......@@ -139,6 +146,9 @@
<update id="updateTaskStat" parameterType="com.founder.interservice.dzgz.filter.DzgzTaskFilter">
update TB_ST_DZGZTASK t
set t.PROGRESS = #{progress},
<if test="rwresult != null and rwresult !=''">
t.rwresult = #{rwresult},
</if>
t.STATE = #{state}
<where>
t.TASK_ID = #{taskId}
......@@ -249,4 +259,40 @@
</choose>
</if>
</select>
<!-- -->
<select id="queryAllUnFinishTask" resultType="com.founder.interservice.dzgz.model.DzgzTask">
select
t.TASK_ID as taskId,
t.TASK_NAME as taskName,
t.TASK_CASE_ID as taskCaseId,
t.QY_NAME as qyName,
t.LC as lc,
t.PROGRESS as progress,
case when t.STATE = 'QUEUEING' then '排队等待'
when t.STATE = 'STARTING' then '开始运行'
when t.STATE = 'RUNNING' then '执行中'
when t.STATE = 'FINISHED' then '执行完成'
when t.STATE = 'ERROR' then '执行错误'
when t.STATE = 'TIMEOUT' then '执行超时'
else '未发起申请'
end as state,
t.START_TIME as startTime,
t.END_TIME as endTime,
t.FSR_JH as fsrJh,
t.FSR_SFZH fsrSfzh,
t.FSR_XM fsrXm,
t.FSR_LXDH fsrLxdh,
case when t.SPZT = '-1' then '未发起申请'
when t.SPZT = '0' then '审批退回'
when t.SPZT = '0' then '审批成功'
when t.SPZT = '0' then '正在申请'
else '未发起申请'
end as spzt,
t.IP as ip,
t.DJSJ as djsj,
t.RWRESULT as rwresult
FROM TB_ST_DZGZTASK t
where t.PROGRESS!='1'
</select>
</mapper>
\ No newline at end of file
......@@ -149,4 +149,14 @@
and t.OBJECT_VALUE = #{objectValue}
</update>
<select id = "existsDzgzTaskResult" parameterType = "com.founder.interservice.dzgz.model.DzgzTaskResult" resultType="int" >
select count(*)
from TB_ST_DZGZTASKRESULT t
where
t.OBJECT_TYPE = #{objectType} and
t.TASK_ID = #{taskId} and
t.OBJECT_TYPE = #{objectType} and
t.OBJECT_VALUE = #{objectValue}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.founder.interservice.mapper.xzxt.RyhxMapper">
<sql id = "getHoteldetail_where">
<if test="xxzjbh != null and xxzjbh != ''">
and xxzjbh = #{xxzjbh}
</if>
<if test="xm != null and xm != ''">
and xm = #{xm}
</if>
<if test="py != null and py != ''">
and py = #{py}
</if>
<if test="idcode != null and idcode != ''">
and idcode = #{idcode}
</if>
<if test="csrq != null and csrq != ''">
and csrq = #{csrq}
</if>
<if test="xb != null and xb != ''">
and xb = #{xb}
</if>
<if test="mz != null and mz != ''">
and mz = #{mz}
</if>
<if test="address != null and address != ''">
and address = #{address}
</if>
<if test="hotelno != null and hotelno != ''">
and hotelno = #{hotelno}
</if>
<if test="roomno != null and roomno != ''">
and roomno = #{roomno}
</if>
<if test="createtime != null and createtime != ''">
and createtime = #{createtime}
</if>
<if test="rksj != null and rksj != ''">
and rksj = #{rksj}
</if>
<if test="gxsj != null and gxsj != ''">
and gxsj = #{gxsj}
</if>
</sql>
<select id="queryHotelAddr" parameterType="java.lang.String" resultType="com.founder.interservice.ryhx.model.TbStCqhotel">
select
hno as hno,
hname as hname,
haddress as haddress,
telphone as telphone,
hroomnum as hroomnum,
legalperson as legalperson,
principal as principal,
socialduty as socialduty,
hlat as hlat,
hlong as hlong,
pcscode as pcscode,
pcsname as pcsname,
pcsdh as pcsdh,
gxsj as gxsj,
rksj as rksj
from TB_ST_CQHOTEL
where HNO = #{hotelno}
</select>
<select id="queryHotelDetail" parameterType="String" resultType="com.founder.interservice.ryhx.model.TbStCqhotelData">
select
hotelno as hotelno,
createtime as createtime,
rksj as rksj,
gxsj as gxsj
from TB_ST_CQHOTELDATA
where IDCODE = #{idcode}
</select>
<select id="queryWbxx" parameterType="String" resultType="com.founder.interservice.ryhx.vo.TbStCqwbdataVOS">
select
wbmc as wbmc,
wbxzqh as wbxzqh,
wbdz as wbdz
from TB_ST_CQWBDATA
where ZJHM = #{zjhm}
</select>
</mapper>
\ No newline at end of file
......@@ -285,14 +285,14 @@ body .layui-layer-tips .layui-layer-content{/* color:#000; */}
.layui-layer-tips .layui-layer-content{background:rgb(10, 135, 165) !important;color:#fff;}
body .layui-layer-tips i.layui-layer-TipsB, .layui-layer-tips i.layui-layer-TipsT{border-top-color: transparent; !important;border-top-style: solid;border-right-color: transparent !important;border-right-style: inherit;line-height: 0;border-color: transparent transparent rgb(10, 135, 165) transparent;border-style: dashed dashed solid dashed;}
body .layui-layer-tips i.layui-layer-TipsB{top:-16px;}
#content2 .new1:nth-child(1){margin-left: -305px;margin-top: -234px;}
#content2 .new1:nth-child(2){margin-left: -323px;margin-top: -116px;}
#content2 .new1:nth-child(3){margin-left: 76px;margin-top: -234px;}
#content2 .new1:nth-child(4){margin-left: 98px;margin-top: -116px;}
#content2 .new1:nth-child(5){margin-left: -347px;margin-top: -1px;}
#content2 .new1:nth-child(6){margin-left: 115px;margin-top: -1px;}
#content2 .new1:nth-child(7){margin-left: -370px;margin-top: 118px;}
#content2 .new1:nth-child(8){margin-left: 131px;margin-top: 118px;}
#content2 .new1:nth-child(1),#content3 .new1:nth-child(1){margin-left: -305px;margin-top: -234px;}
#content2 .new1:nth-child(2),#content3 .new1:nth-child(2){margin-left: -323px;margin-top: -116px;}
#content2 .new1:nth-child(3),#content3 .new1:nth-child(3){margin-left: 76px;margin-top: -234px;}
#content2 .new1:nth-child(4),#content3 .new1:nth-child(4){margin-left: 98px;margin-top: -116px;}
#content2 .new1:nth-child(5),#content3 .new1:nth-child(5){margin-left: -347px;margin-top: -1px;}
#content2 .new1:nth-child(6),#content3 .new1:nth-child(6){margin-left: 115px;margin-top: -1px;}
#content2 .new1:nth-child(7),#content3 .new1:nth-child(7){margin-left: -370px;margin-top: 118px;}
#content2 .new1:nth-child(8),#content3 .new1:nth-child(8){margin-left: 131px;margin-top: 118px;}
/**/
/* @media screen and (max-width: 1600px){
body{font-size: 10px;}
......
......@@ -140,8 +140,38 @@ function checkfinish(){
var day1=new Date($("#bksj_start").val());
var day2=new Date($("#bksj_end").val());
if($("#bksj_start").val()&&$("#bksj_end").val()!=""){
var z=(day2-day1)/86400000+"天";
$("#bkqx").val(z);
//计算天数
var timediff = day2-day1;
var days = parseInt(timediff/86400000);
//计算小时数
var remain = timediff%86400000;
var hours = parseInt(remain/3600000);
//计算分钟数
var remain = remain%3600000;
var mins = parseInt(remain/60000);
//计算秒
var remain = remain%60000;
var ss = parseInt(remain/1000);
var qx="";
if(days>0){
qx+=days+"日";
}
if(hours>0){
qx+=hours+"时";
}
if(mins>0){
qx+=mins+"分";
}
if(ss>0){
qx+=ss+"秒";
}
$("#bkqx").val(qx);
/* var z=(day2-day1)/86400000;
var dayyu=(day2-day1)%86400000;
var z=(day2-day1)/86400000+"天";
$("#bkqx").val(z);*/
}
}
function doClear(){
......
This source diff could not be displayed because it is too large. You can view the blob instead.
INSERT INTO XZXT.SYS_DBLOG(SID,STATUS)VALUES('S045',0);
INSERT INTO XZXT.SYS_DBLOG(SID,STATUS)VALUES('S045',0);
COMMIT;
-------------------------------------------------------------------------------------------
-- Add/modify columns
alter table TB_ST_BKXX add XXLY varchar2(200 BYTE);
-- Add comments to the columns
comment on column TB_ST_BKXX.XXLY
is '信息来源,如果是民警手动录入的,则默认给录入人姓名,如果是系统自动加入布控,则给布控任务的布控对象号码';
-- Add/modify columns
alter table TB_ST_BKXX add xxlyType varchar2(10 BYTE);
-- Add comments to the columns
comment on column TB_ST_BKXX.xxlyType
is '信息来源type,01,表示民警录入,02,表示系统关联自动加入';
-- Add/modify columns
alter table TB_BK_TASKRESULT add XXLY varchar2(200 BYTE);
-- Add comments to the columns
comment on column TB_BK_TASKRESULT.XXLY
is '信息来源,如果是民警手动录入的,则默认给录入人姓名,如果是系统自动加入布控,则给布控任务的布控对象号码';
-- Add/modify columns
alter table TB_BK_TASKRESULT add xxlyType varchar2(10 BYTE);
-- Add comments to the columns
comment on column TB_BK_TASKRESULT.xxlyType
is '信息来源type,01,表示民警录入,02,表示系统关联自动加入';
-------------------------------------------------------------------------------------------
UPDATE XZXT.SYS_DBLOG SET STATUS=1 WHERE SID='S045';
COMMIT;
\ No newline at end of file
......@@ -136,14 +136,14 @@
<td width="20%">
<span class="textbox">
<input id="bksj_start" name="bksj_start" class="val easyui-validatebox Wdate zdy-wdate " data-options="required: true" type="text" onkeypress="return checkDateFmt();"
onFocus="WdatePicker({onpicked:checkfinish,dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'bksj_end\',{d:-15});}',maxDate:'#F{$dp.$D(\'bksj_end\')}'})" />
onFocus="WdatePicker({onpicked:checkfinish,dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'#F{$dp.$D(\'bksj_end\',{d:-15});}',maxDate:'#F{$dp.$D(\'bksj_end\')}'})" />
</span>
</td>
<td class="ar" width="13.3%"><span class="red">*</span>至:</td>
<td width="20%">
<span class="textbox">
<input id="bksj_end" name="bksj_end" class="val easyui-validatebox Wdate zdy-wdate " data-options="required: true" type="text" onkeypress="return checkDateFmt();"
onFocus="WdatePicker({onpicked:checkfinish,dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'bksj_start\')}',maxDate:'#F{$dp.$D(\'bksj_start\',{d:15});}'})"/>
onFocus="WdatePicker({onpicked:checkfinish,dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'#F{$dp.$D(\'bksj_start\')}',maxDate:'#F{$dp.$D(\'bksj_start\',{d:15});}'})"/>
</span>
</td>
......
......@@ -105,14 +105,14 @@
<td width="20%">
<span class="textbox">
<input id="bksj_start" name="bksj_start" class="val easyui-validatebox Wdate zdy-wdate " data-options="required: true" type="text" onkeypress="return checkDateFmt();"
onFocus="WdatePicker({onpicked:checkfinish,dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'bksj_end\',{d:-15});}',maxDate:'#F{$dp.$D(\'bksj_end\')}'})" />
onFocus="WdatePicker({onpicked:checkfinish,dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'#F{$dp.$D(\'bksj_end\',{d:-15});}',maxDate:'#F{$dp.$D(\'bksj_end\')}'})" />
</span>
</td>
<td class="ar" width="13.3%"><span class="red">*</span>至:</td>
<td width="20%">
<span class="textbox">
<input id="bksj_end" name="bksj_end" class="val easyui-validatebox Wdate zdy-wdate " data-options="required: true" type="text" onkeypress="return checkDateFmt();"
onFocus="WdatePicker({onpicked:checkfinish,dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'bksj_start\')}',maxDate:'#F{$dp.$D(\'bksj_start\',{d:15});}'})"/>
onFocus="WdatePicker({onpicked:checkfinish,dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'#F{$dp.$D(\'bksj_start\')}',maxDate:'#F{$dp.$D(\'bksj_start\',{d:15});}'})"/>
</span>
</td>
......
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.atg.com/taglibs/json" prefix="json" %>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>高危地区人员结果展示</title>
<!-- 引入 ECharts 文件 -->
<script src="/js/echarts.min.js"></script>
</head>
<body>
<div id="main" style="width: 1500px;height:500px;position: absolute; top:50%; left: 30%; margin-top: -200px; text-align: center; margin-left: -350px"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
option = {
title : {
text: '高危地区结果统计展示',
subtext: '高危地区人员结果'
},
tooltip : {
trigger: 'axis'
},
legend: {
data:['住宿本辖区','住宿本市','上网本辖区','上网本市']
},
toolbox: {
show : true,
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
magicType : {show: true, type: ['line', 'bar']},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : true,
xAxis : [
{
type : 'category',
data : ['2天前','1天前','案发当日','1天后','2天后']
}
],
yAxis : [
{
type : 'value'
}
],
series : [
{
name:'住宿本辖区',
type:'bar',
data:[${mapdata.counts0}[0],${mapdata.counts0}[1],${mapdata.counts0}[2],${mapdata.counts0}[3],${mapdata.counts0}[4]],
markPoint : {
data : [
{type : 'max', name: '最大值'},
{type : 'min', name: '最小值'}
]
},
markLine : {
data : [
{type : 'average', name: '平均值'}
]
}
},
{
name:'住宿本市',
type:'bar',
data:[${mapdata.counts1}[0],${mapdata.counts1}[1],${mapdata.counts1}[2],${mapdata.counts1}[3],${mapdata.counts1}[4]],
markPoint : {
data : [
{type : 'max', name: '最大值'},
{type : 'min', name: '最小值'}
]
},
markLine : {
data : [
{type : 'average', name : '平均值'}
]
}
},
{
name:'上网本辖区',
type:'bar',
data:[${mapdata.counts2}[0],${mapdata.counts2}[1],${mapdata.counts2}[2],${mapdata.counts2}[3],${mapdata.counts2}[4]],
markPoint : {
data : [
{type : 'max', name: '最大值'},
{type : 'min', name: '最小值'}
]
},
markLine : {
data : [
{type : 'average', name: '平均值'}
]
}
},
{
name:'上网本市',
type:'bar',
data:[${mapdata.counts3}[0],${mapdata.counts3}[1],${mapdata.counts3}[2],${mapdata.counts3}[3],${mapdata.counts3}[4]],
markPoint : {
data : [
{type : 'max', name: '最大值'},
{type : 'min', name: '最小值'}
]
},
markLine : {
data : [
{type : 'average', name : '平均值'}
]
}
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
\ No newline at end of file
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.atg.com/taglibs/json" prefix="json" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>人员画像</title>
<link rel="icon" href="/images/bkxxInsertFavicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="/css/animate.min.css">
<link rel="stylesheet" type="text/css" href="/common/layer/skin/layer.css">
<link rel="stylesheet" type="text/css" href="/css/base-ryhx.css">
</head>
<body class="ryhx-body">
<div id="content3" class="content" style="display:none;">
<div class="new1 tabs-o animated pulse" >
<span class="tbs-title">疑似落脚点</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">${hotela.haddress}</div>
</div>
</div>
<div class="new1 tabs-o animated pulse" style="">
<span class="tbs-title">出行方式</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">飞机</div>
</div>
</div>
<%--酒店信息--%>
<div class="new1 tabs-o animated pulse" >
<span class="tbs-title">入住偏好时间</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">${hotel.createtime}</div>
</div>
</div>
<div class="new1 tabs-o animated pulse">
<span class="tbs-title">退房偏好时间</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">${hotel.gxsj}</div>
</div>
</div>
<%--<div class="new1 tabs-o animated pulse">
<span class="tbs-title">疑似活动区域</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">重庆市刑警总队</div>
</div>
</div>--%>
<%--网吧信息--%>
<div class="new1 tabs-o animated pulse">
<span class="tbs-title">网吧名称</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">${wbxx.wbmc}</div>
</div>
</div>
<div class="new1 tabs-o animated pulse">
<span class="tbs-title">疑似活动区域</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">${wbxx.wbxzqhmc}</div>
</div>
</div>
<div class="new1 tabs-o animated pulse">
<span class="tbs-title">网吧地址</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">${wbxx.wbdz}</div>
</div>
</div>
</div>
<script type="text/javascript" src="/js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="/common/layer/layer.js"></script>
<script type="text/javascript" src="/js/ryhx.js"></script>
<script>
</script>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.atg.com/taglibs/json" prefix="json" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>人员画像</title>
<link rel="icon" href="/images/bkxxInsertFavicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="/css/animate.min.css">
<link rel="stylesheet" type="text/css" href="/common/layer/skin/layer.css">
<link rel="stylesheet" type="text/css" href="/css/base-ryhx.css">
</head>
<body class="ryhx-body">
<div id="content1" class="content">
<div id ="zjhm" style="display:none">${zjhm}</div>
<div class="new1 animated pulse"><span class="zdm"><span class="birthdate">姓名:${ryxx.xm}</span></span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new2 animated pulse"><span class="address">性别:${ryxx.xbdm}</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new3 animated pulse"><span class="hjxx">电话:${ryxx.lxdh}</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new4 animated pulse"><span class="others1">民族:${ryxx.mzdmmc}</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new5 animated pulse"><span class="others2">户籍地:${ryxx.csdDzmc}</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new6 animated pulse"><span class="others3">现住地:${ryxx.xzzDzmc}</span></div>
<div class="new7 animated pulse w69"><span class="others4">常用证件号码:${ryxx.cyzjZjhm}</span></div>
<div class="new8 animated pulse w69"><span class="others5">${ryxx.zylbdm}</span></div>
</div>
<script type="text/javascript" src="/js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="/common/layer/layer.js"></script>
<script type="text/javascript" src="/js/ryhx.js"></script>
<script>
</script>
</body>
</html>
\ No newline at end of file
......@@ -26,7 +26,7 @@
<!--title start-->
<!--菜单-->
<ul class="hx-menu">
<li onclick="toggle(this)" class="current"><img src="/images/mebu1.png" class="mebu-bg"/><img src="/images/mebu3.png" class="mebu-bg-long"/>基本信息</li>
<li onclick="toggle(this)" class="current"><img src="/images/mebu1.png" class="mebu-bg"/><img src="/images/mebu3.png" class="mebu-bg-long"/>基本信息</li>
<li onclick="toggle(this)"><img src="/images/mebu1.png" class="mebu-bg"/><img src="/images/mebu3.png" class="mebu-bg-long"/>虚拟信息</li>
<li onclick="toggle(this)"><img src="/images/mebu1.png" class="mebu-bg"/><img src="/images/mebu3.png" class="mebu-bg-long"/>轨迹信息</li>
<li onclick="toggle(this)"><img src="/images/mebu1.png" class="mebu-bg"/><img src="/images/mebu3.png" class="mebu-bg-long"/>背景信息</li>
......@@ -47,98 +47,20 @@
<!--title start-->
<p class="title-zdy"><img class="absolute t1" src="/images/bg-top.png"/><span class="title">基本信息</span><img class="absolute t2" src="/images/bg-bottom.png"/></p>
<!--title start-->
<div class="right-people">
<in class="right-people">
<img src="/images/people.png" class="people" style=""/>
<div id="content1" class="content">
<%--<div class="tabs-o animated pulse">
<span class="tbs-title">轨迹</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">A1404245921558722</div>
</div>
</div>--%>
<!--一条折线对应一条内容,左侧-->
<div id ="zjhm">${zjhm}</div>
<div class="new1 animated pulse"><span class="zdm"><span class="birthdate">姓名:${ryxx.xm}</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new2 animated pulse"><span class="address">性别:${ryxx.xbdm}</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new3 animated pulse"><span class="hjxx">电话:${ryxx.lxdh}</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new4 animated pulse"><span class="others1">民族:${ryxx.mzdmmc}</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new5 animated pulse"><span class="others2">户籍地:${ryxx.csdDzmc}</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new6 animated pulse"><span class="others3">现住地:${ryxx.xzzDzmc}</span></div>
<div class="new7 animated pulse w69"><span class="others4">常用证件号码:${ryxx.cyzjZjhm}</span></div>
<%--<div class="new8 animated pulse w69"><span class="others5">${ryxx.zylbdm}</span></div>--%>
<input type="text" id="zjhm"/>
<%--基本信息--%>
<div id="content1" class="content">
<iframe name="myiframe" id="jbxx" frameborder="0" align="left" width="100%" height="100%" scrolling="yes"></iframe>
</div>
<%--虚拟信息--%>
<div id="content2" class="content" style="display:none;">
<c:forEach var="xnxx" items="${relationList}">
<c:if test="${not empty xnxx.objectfromtypename}" >
<div class="new1 tabs-o animated pulse">
<span class="tbs-title">${xnxx.objectfromtypename}</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">${xnxx.objectfromvalue}</div>
</div>
</div>
</c:if>
</c:forEach>
<div class="new1 tabs-o animated pulse">
<span class="tbs-title">身份证号码</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">${zjhm}</div>
</div>
</div>
<iframe name="myiframe" id="xnxx" frameborder="0" align="left" width="100%" height="100%" scrolling="yes"></iframe>
</div>
<%--轨迹信息--%>
<div id="content3" class="content" style="display:none;">
<div class="new1 tabs-o animated pulse" style="margin-left: -298px;">
<span class="tbs-title">疑似落脚点</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">重庆市北碚区中庚城秋园酒店</div>
</div>
</div>
<div class="new2 tabs-o animated pulse" style="margin-left: -292px;margin-top: -123px;">
<span class="tbs-title">出行方式</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">飞机</div>
</div>
</div>
<div class="new3 tabs-o animated pulse" style="margin-left: 85px;">
<span class="tbs-title">入住偏好时间</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">早晨(08:00——11:00)</div>
</div>
</div>
<div class="new4 tabs-o animated pulse" style="margin-left: 102px;">
<span class="tbs-title">退房偏好时间</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">下午(18:00——20:00)</div>
</div>
</div>
<div class="new5 tabs-o animated pulse" style="margin-left: -292px;margin-top: 0px;">
<span class="tbs-title">疑似活动区域</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">重庆市刑警总队</div>
</div>
</div>
<%--<!--一条折线对应一条内容,左侧-->
<div class="new1 animated pulse w130" style="margin-left: -298px;"><span class="birthdate" style="margin-top: 58px;">疑似落脚点:重庆市北碚区中庚城</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new3 animated pulse w130"><span class="hjxx">入住偏好时间:早晨(08:00——11:00)</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new4 animated pulse w130"><span class="others1" style="margin-top: 59px;">退房偏好时间:下午(18:00——20:00)</span></div>
<!--一条折线对应一条内容,左侧-->
<div class="new5 animated pulse w130" style="margin-left: -292px;margin-top: -24px;"><span class="others2" style="margin-top: 44px;">疑似活动区域:重庆市刑警总队、重庆市九龙坡区</span></div>
<div class="new2 animated pulse w100" style="margin-left: -292px;margin-top: -123px;"><span class="address" style="margin-top: 47px;width: calc(100% - 10px);">出行方式:飞机</span></div>--%>
<iframe name="myiframe" id="gjxx" src="/getLdjbxx?yhCate=00&projectName=00" frameborder="0" align="left" width="100%" height="100%" scrolling="yes"></iframe>
</div>
<div id="content4" class="content" style="display:none;">
<!--一条折线对应一条内容,左侧-->
......@@ -256,7 +178,8 @@
function toggle(obj){
var urll = location.search; //获取url中"?"符后的字串
var zjhm = urll.substring(urll.length-18);
var url = "";
$("#zjhm").val(zjhm);
alert("zjhm ==="+ zjhm);
var ind=$(obj).index();
ind=ind+1;
$(".hx-menu li").removeClass("current");
......@@ -264,26 +187,26 @@
$(".right-xx .title").text($(obj).text());
$(".right-people .content").hide();
$("#content"+ind).show();
/* if(ind=="0"){
url="/toRyhxJsp?yhCate=00&projectName=00&zjhm="+zjhm;
$("#content1").load(url);
}else if(ind=="1"){
url="/getXnsfxx?yhCate=00&projectName=00&zjhm="+zjhm;
$("#content2").load(url);
if(ind=="1"){
alert("innn");
document.getElementById("jbxx").src = "/getJbxx?yhCate=00&projectName=00&zjhm="+zjhm;
}else if(ind=="2"){
}else if(ind=="3"){
}else if(ind=="4"){
}else if(ind=="5"){
}else if(ind=="6"){
}else if(ind=="7"){
}*/
document.getElementById("xnxx").src = "/getXnsfxx?yhCate=00&projectName=00&zjhm="+zjhm;
}
$("iframe").each(function(){
alert($(".right-xx").height())
$(this).height($(".right-xx").height());
})
}
$(function(){
var urll = location.search; //获取url中"?"符后的字串
var zjhm = urll.substring(urll.length-18);
$("#zjhm").val(zjhm);
document.getElementById("jbxx").src = "/getJbxx?yhCate=00&projectName=00&zjhm="+zjhm;
$("iframe").each(function(){
$(this).height($(".right-people").height());
})
})
</script>
</body>
</html>
\ No newline at end of file
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.atg.com/taglibs/json" prefix="json" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>人员画像</title>
<link rel="icon" href="/images/bkxxInsertFavicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="/css/animate.min.css">
<link rel="stylesheet" type="text/css" href="/common/layer/skin/layer.css">
<link rel="stylesheet" type="text/css" href="/css/base-ryhx.css">
</head>
<body class="ryhx-body">
<div id="content2" class="content" style="display:none;">
<c:forEach var="xnxx" items="${relationList}">
<c:if test="${not empty xnxx.objectfromtypename}" >
<div class="new1 tabs-o animated pulse">
<span class="tbs-title">${xnxx.objectfromtypename}</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">${xnxx.objectfromvalue}</div>
</div>
</div>
</c:if>
</c:forEach>
<div class="new1 tabs-o animated pulse">
<span class="tbs-title">身份证号码</span>
<div class="tbs-cont">
<div class="fl count" onclick="tips(this)">3</div>
<div class="fl ajbh">${zjhm}</div>
</div>
</div>
</div>
<script type="text/javascript" src="/js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="/common/layer/layer.js"></script>
<script type="text/javascript" src="/js/ryhx.js"></script>
<script>
</script>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment