Commit ecf3fb58 by yangyang

多维相关提交(湖南)

parent d7e0f34a
package com.founder.commonutils.model.newPublicEntity.hnkshEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value="可视化GlgxData", description="")
public class GlgxData {
@ApiModelProperty(value = "标识号")
private String bsh;
@ApiModelProperty(value = "标识号类型")
private String bshlx;
@ApiModelProperty(value = "关联标识号")
private String glbsh;
@ApiModelProperty(value = "关联标识号类型")
private String glbshlx;
@ApiModelProperty(value = "数据来源")
private String sjly;
@ApiModelProperty(value = "关联类型")
private String glgx;
@ApiModelProperty(value = "关联时间")
private String glsj;
}
package com.founder.commonutils.model.newPublicEntity.hnkshEntity;
import lombok.Data;
import java.util.List;
@Data
public class JdfxResult {
private List<RealDataMaplist> realDataMaplist;
private JjdzMap jjdzMap;
private SjdzMap sjdzMap;
@Data
public static class RealDataMaplist{
private String sead;
private String rece;
private String read;
private String nasp;
private String fitm;
private String fnsp;
private String latm;
private String entm;
private String dvnm;
private String reph;
private String seph;
}
@Data
public static class JjdzMap{
private String sjh;
private List btjjdz;
private String btjjdzSum;
}
@Data
public static class SjdzMap{
private String sjh;
private List btsjdz;
private String btsjdzSum;
}
}
......@@ -13,5 +13,6 @@ public class Kshpropertice implements Serializable {
private String imgType;
private String boderColor;
private String imagePhoto;
}
package com.founder.commonutils.model.newPublicEntity.hnkshEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class Linkspropertice implements Serializable {
@ApiModelProperty(value = "时间")
private String time;
@ApiModelProperty(value = "标识号")
private String source;
@ApiModelProperty(value = "关联标识号")
private String target;
@ApiModelProperty(value = "关系")
private String label;
@ApiModelProperty(value = "关联关系data")
private List<GlgxData> glgxData;
}
package com.founder.commonutils.model.newPublicEntity.hnkshEntity;
import java.util.Date;
public class SysGnsyrzServerApi {
private String rzlsh;//日志流水号
private Date fwsj;//访问时间
private String yymcJyqk;//应用名称
private String yhGmsfhm;//用户公民身份证号
private String yhIp;//用户ip
private String yhdwGajgjgdm;//用户单位
private String yhdwGajgmc;//用户单位名称
private String czlxdm;//操作类型代码,01 查询类,02 新增信息类,03 修改信息类,04删除信息类,09登录
private String czxxJyqk;//操作信息
private String xxscPdbz;//是否删除标志
private String xxdjdwGajgjgdm;//信息登记单位
private String xxdjdwGajgmc;//信息登记单位名称
private String xxdjryXm;//信息登记人
private String xxdjryGmsfhm;//信息登记证件号码
private String xxdjryLxdh;//信息登记联系电话
private Date djsj;//登记时间
private String xxczdwGajgjgdm;//信息操作单位
private String xxczdwGajgmc;//信息操作单位名称
private String xxczryXm;//信息操作人
private String xxczryGmsfhm;//信息操作证件号码
private Date gxsj;//更新时间
private String xxlyms;//信息来源描述
public SysGnsyrzServerApi(){}
public String getRzlsh() {
return rzlsh;
}
public void setRzlsh(String rzlsh) {
this.rzlsh = rzlsh;
}
public Date getFwsj() {
return fwsj;
}
public void setFwsj(Date fwsj) {
this.fwsj = fwsj;
}
public String getYymcJyqk() {
return yymcJyqk;
}
public void setYymcJyqk(String yymcJyqk) {
this.yymcJyqk = yymcJyqk;
}
public String getYhGmsfhm() {
return yhGmsfhm;
}
public void setYhGmsfhm(String yhGmsfhm) {
this.yhGmsfhm = yhGmsfhm;
}
public String getYhIp() {
return yhIp;
}
public void setYhIp(String yhIp) {
this.yhIp = yhIp;
}
public String getYhdwGajgjgdm() {
return yhdwGajgjgdm;
}
public void setYhdwGajgjgdm(String yhdwGajgjgdm) {
this.yhdwGajgjgdm = yhdwGajgjgdm;
}
public String getYhdwGajgmc() {
return yhdwGajgmc;
}
public void setYhdwGajgmc(String yhdwGajgmc) {
this.yhdwGajgmc = yhdwGajgmc;
}
public String getCzlxdm() {
return czlxdm;
}
public void setCzlxdm(String czlxdm) {
this.czlxdm = czlxdm;
}
public String getCzxxJyqk() {
return czxxJyqk;
}
public void setCzxxJyqk(String czxxJyqk) {
this.czxxJyqk = czxxJyqk;
}
public String getXxscPdbz() {
return xxscPdbz;
}
public void setXxscPdbz(String xxscPdbz) {
this.xxscPdbz = xxscPdbz;
}
public String getXxdjdwGajgjgdm() {
return xxdjdwGajgjgdm;
}
public void setXxdjdwGajgjgdm(String xxdjdwGajgjgdm) {
this.xxdjdwGajgjgdm = xxdjdwGajgjgdm;
}
public String getXxdjdwGajgmc() {
return xxdjdwGajgmc;
}
public void setXxdjdwGajgmc(String xxdjdwGajgmc) {
this.xxdjdwGajgmc = xxdjdwGajgmc;
}
public String getXxdjryXm() {
return xxdjryXm;
}
public void setXxdjryXm(String xxdjryXm) {
this.xxdjryXm = xxdjryXm;
}
public String getXxdjryGmsfhm() {
return xxdjryGmsfhm;
}
public void setXxdjryGmsfhm(String xxdjryGmsfhm) {
this.xxdjryGmsfhm = xxdjryGmsfhm;
}
public String getXxdjryLxdh() {
return xxdjryLxdh;
}
public void setXxdjryLxdh(String xxdjryLxdh) {
this.xxdjryLxdh = xxdjryLxdh;
}
public Date getDjsj() {
return djsj;
}
public void setDjsj(Date djsj) {
this.djsj = djsj;
}
public String getXxczdwGajgjgdm() {
return xxczdwGajgjgdm;
}
public void setXxczdwGajgjgdm(String xxczdwGajgjgdm) {
this.xxczdwGajgjgdm = xxczdwGajgjgdm;
}
public String getXxczdwGajgmc() {
return xxczdwGajgmc;
}
public void setXxczdwGajgmc(String xxczdwGajgmc) {
this.xxczdwGajgmc = xxczdwGajgmc;
}
public String getXxczryXm() {
return xxczryXm;
}
public void setXxczryXm(String xxczryXm) {
this.xxczryXm = xxczryXm;
}
public String getXxczryGmsfhm() {
return xxczryGmsfhm;
}
public void setXxczryGmsfhm(String xxczryGmsfhm) {
this.xxczryGmsfhm = xxczryGmsfhm;
}
public Date getGxsj() {
return gxsj;
}
public void setGxsj(Date gxsj) {
this.gxsj = gxsj;
}
public String getXxlyms() {
return xxlyms;
}
public void setXxlyms(String xxlyms) {
this.xxlyms = xxlyms;
}
}
package com.founder.commonutils.model.newPublicEntity.hnkshEntity;
import lombok.Data;
@Data
public class XyrParam {
private String xm;
/**
* 证件号码
*/
private String zjhm;
private String xbdm;
private String zhrqKssj;
private String zhrqJssj;
/**
* 开始时间
*/
private String kssj;
/**
* 结束时间
*/
private String jssj;
private String zhdwdm;
private String xzzmc;
private String csrqKssj;
private String csrqJssj;
private String gjdm;
private String mzdm;
private String hjdqhdm;
private String hjdmc;
/**
*车牌号码
*/
private String cphm;
private String asjbh;
/**
* 手机号码
*/
private String sjhm;
private String startDate;
private String endDate;
private int page=1;
private int limit=10;
private int rows=10;
private long intervalTime=10;
private int no=2;
private long time=10;
private int threadPageSize=1;
private String gxrZjhm;
private String type;
}
......@@ -52,7 +52,7 @@ public class TbStAsjParm implements Serializable {
private String ajlbdm;
@ApiModelProperty(value = "小案类别代码")
private String zatzJyqk;
private String zatzjyqk;
@ApiModelProperty(value = "案件细类别代码")
private String ajxlb;
......
......@@ -6,14 +6,21 @@ import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.protocol.ClientContext;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.client.utils.URIBuilder;
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.impl.cookie.BasicClientCookie;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.net.CookieStore;
import java.net.URI;
import java.util.*;
......@@ -81,14 +88,18 @@ public class HttpClient {
* @param json
* @return {username:"",pass:""}
*/
public static JSONObject doPostJsonHunanTs(String url, String json) throws Exception {
public static JSONObject doPostJsonHunanTs(String url, String json,String cookieName,String cookieValue) throws Exception {
// post请求返回结果
CloseableHttpClient httpClient = HttpClients.createDefault();
JSONObject jsonResult = null;
HttpPost httpPost = new HttpPost(url);
// 设置请求和传输超时时间
// 设置请求和传输超时时间以及cookie
httpPost.setConfig(requestConfig);
httpPost.setHeader("founder.authorization", "Basic 9b6c45cfcf3a4a629e3ed90fa3e5d058");
BasicCookieStore cookieStore = new BasicCookieStore();
BasicClientCookie cookie = new BasicClientCookie(cookieName, cookieValue);
cookieStore.addCookie(cookie);
HttpContext httpContext = new BasicHttpContext();
httpContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore);
try{
//设置参数解决中文乱码
if (null != json){
......@@ -98,7 +109,7 @@ public class HttpClient {
httpPost.setEntity(entity);
}
//发送请求
CloseableHttpResponse result = httpClient.execute(httpPost);
CloseableHttpResponse result = httpClient.execute(httpPost,httpContext);
System.out.println("StatusCode===="+result.getStatusLine().getStatusCode());
if (result.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
// 读取服务器返回的json数据(然后解析)
......@@ -157,4 +168,47 @@ public class HttpClient {
}
return resultString;
}
/**
* 请求的参数类型为json
* @param url
* @param json
* @return {username:"",pass:""}
*/
public static String doPostJson(String url,Map<String, String> headers,String json) throws Exception {
// post请求返回结果
CloseableHttpClient httpClient = HttpClients.createDefault();
String jsonResult = null;
System.out.println(url);
HttpPost httpPost = new HttpPost(url);
// 设置请求和传输超时时间
httpPost.setConfig(requestConfig);
if(headers != null) {
for (String key : headers.keySet()) {
httpPost.setHeader(key, headers.get(key));
}
}
try{
//设置参数解决中文乱码
if (null != json){
StringEntity entity = new StringEntity(json,"utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
}
//发送请求
CloseableHttpResponse result = httpClient.execute(httpPost);
if (result.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
// 读取服务器返回的json数据(然后解析)
jsonResult = EntityUtils.toString(result.getEntity(), "utf-8");
}else{
return null;
}
}catch (Exception e){
e.printStackTrace();
throw new Exception();
}finally{
httpPost.releaseConnection();
}
return jsonResult;
}
}
......@@ -26,7 +26,7 @@ public class TokenConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
String[] excludePatterns = new String[]{"/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**",
"/api", "/api-docs", "/api-docs/**", "/doc.html/**", "/koTime/**"};
"/api", "/api-docs", "/api-docs/**", "/doc.html/**", "/koTime/**","/exportTsHn/export"};
registry.addInterceptor(tokenInterceptor)
.addPathPatterns("/**")//指定该类拦截的url
.excludePathPatterns(skInterceptorController.findAllUrl())
......
package com.founder.publicapi.controller.KshService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.founder.commonutils.model.asjEntity.TbStAsj;
import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.TbXwZbfzxyr;
import com.founder.commonutils.model.newPublicEntity.RyAndAjEntity.TbYwXszDwcbgx;
import com.founder.commonutils.model.newPublicEntity.SkRegionalsPerson;
import com.founder.commonutils.model.newPublicEntity.SysUser;
import com.founder.commonutils.model.newPublicEntity.TbStRy;
import com.founder.commonutils.model.newPublicEntity.hnkshEntity.*;
import com.founder.commonutils.model.newPublicEntity.ztypEntity.NaoTuHdXx;
import com.founder.commonutils.model.vo.response.SkRelatedResultInterFace;
import com.founder.commonutils.util.HttpClient;
import com.founder.commonutils.util.StringUtil;
import com.founder.commonutils.model.vo.response.SkRelatedResultVO;
import com.founder.commonutils.util.*;
import com.founder.publicapi.mapper.mysqlMapper.TbStAsjMapper;
import com.founder.publicapi.mapper.mysqlMapper.TbYwXszDwcbgxMapper;
import com.founder.publicapi.mapper.mysqlMapper.ZbFzxyrDataMapper;
......@@ -17,15 +23,32 @@ import com.founder.servicebase.logs.OperLog;
import com.founder.servicebase.logs.OperationType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.founder.publicapi.controller.SkInterface.InterfaceAPI.objTurnStr;
import static java.util.stream.Collectors.collectingAndThen;
import static java.util.stream.Collectors.toCollection;
/**
* 可视化算例6个接口
......@@ -46,12 +69,19 @@ public class KshSlServiceController {
private String ZjhmBysjhm;// 通过手机获取证件号码信息
@Value("${thgxUrl}")
private String thgxUrl;// 同户关系
@Value("${hdUrl}")
private String hdUrl;// 通过手机获取证件号码信息
@Autowired
LogUtil logUtil;
@Autowired
TbStAsjMapper tbStAsjMapper;
@Autowired
ZbFzxyrDataMapper zbFzxyrDataMapper;
@Autowired
TbYwXszDwcbgxMapper tbYwXszDwcbgxMapper;
@Autowired
private StringRedisTemplate redisTemplate;
// 算例读取json的 用json文件
/* 可视化算例5个接口(返回数据格式和算例一致均为一级下挖):
1、人案关联(人查案、案查人) 人表:tb_xw_zbfzxyr 两表通过asjbh关联查询 只要asjbh
......@@ -69,7 +99,7 @@ public class KshSlServiceController {
Hnkshresult result1 = new Hnkshresult();
if (objectType.equals("idcard") && !StringUtil.isEmpty(objectValue)) {
QueryWrapper<TbXwZbfzxyr> wrapper = new QueryWrapper<>();
wrapper.select("asjbh","zhrq").eq("zhfzxyr_cyzj_zjhm", objectValue);
wrapper.select("asjbh", "zhrq").eq("zhfzxyr_cyzj_zjhm", objectValue);
List<TbXwZbfzxyr> sfzfindasj = zbFzxyrDataMapper.selectList(wrapper);
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
......@@ -112,7 +142,7 @@ public class KshSlServiceController {
return new MapRestResult(200, "ok", result);
} else if (objectType.equals("aj") && !StringUtil.isEmpty(objectValue)) {
QueryWrapper<TbXwZbfzxyr> wrapper1 = new QueryWrapper<>();
wrapper1.select("zhfzxyr_cyzj_zjhm","zhrq").eq("asjbh", objectValue);
wrapper1.select("zhfzxyr_cyzj_zjhm", "zhrq").eq("asjbh", objectValue);
List<TbXwZbfzxyr> AfindR = zbFzxyrDataMapper.selectList(wrapper1);
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
......@@ -176,7 +206,7 @@ public class KshSlServiceController {
for (TbXwZbfzxyr asj : sfzfindasj) {
String asjbh = asj.getAsjbh();
QueryWrapper<TbXwZbfzxyr> wrapper1 = new QueryWrapper<>();
wrapper1.select("zhfzxyr_cyzj_zjhm","zhrq").eq("asjbh", asjbh);
wrapper1.select("zhfzxyr_cyzj_zjhm", "zhrq").eq("asjbh", asjbh);
List<TbXwZbfzxyr> AfindR = zbFzxyrDataMapper.selectList(wrapper1);
// 案查人 遍历 这个案件底下有多少人
for (TbXwZbfzxyr sfz : AfindR) {
......@@ -336,7 +366,7 @@ public class KshSlServiceController {
} else {
return new MapRestResult().error("无信息");
}
if(nodes.size()>0&&re.size()>0){
if (nodes.size() > 0 && re.size() > 0) {
kshdata.setNodes(nodes);
kshdata.setLinks(re);
dataSumup.setList(sumup);
......@@ -453,7 +483,7 @@ public class KshSlServiceController {
} else {
return new MapRestResult().error("无信息");
}
if(nodes.size()>0&&re.size()>0){
if (nodes.size() > 0 && re.size() > 0) {
kshdata.setNodes(nodes);
kshdata.setLinks(re);
dataSumup.setList(sumup);
......@@ -650,7 +680,7 @@ public class KshSlServiceController {
} else {
return new MapRestResult().error("无信息");
}
if(nodes.size()>0&&re.size()>0){
if (nodes.size() > 0 && re.size() > 0) {
kshdata.setNodes(nodes);
kshdata.setLinks(re);
dataSumup.setList(sumup);
......@@ -667,20 +697,20 @@ public class KshSlServiceController {
@OperLog(message = "多维串并串并算例", operation = OperationType.QUERY)
@PostMapping("/cbsl")
@ApiOperation(value = "多维串并串并算例")
public MapRestResult cbsl(String objectValue,String objectType){
public MapRestResult cbsl(String objectValue, String objectType) {
Hnkshresult result = new Hnkshresult();
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
List<String> sumup = new ArrayList<>();
List<HnTbStRygxDTO> nodes = new ArrayList<>();
List<kshlinks> links =new ArrayList<>();
if (objectType.equals("aj") && !StringUtil.isEmpty(objectValue)){
List<kshlinks> links = new ArrayList<>();
if (objectType.equals("aj") && !StringUtil.isEmpty(objectValue)) {
QueryWrapper<TbYwXszDwcbgx> wrapper = new QueryWrapper<>();
wrapper.select("DISTINCT WZXX").eq("ASJBH",objectValue);
wrapper.select("DISTINCT WZXX").eq("ASJBH", objectValue);
List<TbYwXszDwcbgx> tbYwXszDwcbgxes = tbYwXszDwcbgxMapper.selectList(wrapper);
for (TbYwXszDwcbgx tbYwXszDwcbgx : tbYwXszDwcbgxes) {
String st1 = tbYwXszDwcbgx.getWZXX();
String wzxx = st1.substring(st1.indexOf("(")+1,st1.indexOf(")"));
String wzxx = st1.substring(st1.indexOf("(") + 1, st1.indexOf(")"));
// nodes
HnTbStRygxDTO mergeDTOgjd = new HnTbStRygxDTO();
mergeDTOgjd.setId(wzxx);
......@@ -688,13 +718,13 @@ public class KshSlServiceController {
Kshpropertice kshpropertice = new Kshpropertice();
kshpropertice.setId(wzxx);
kshpropertice.setLabel(wzxx);
if (st1.contains("指纹")){
if (st1.contains("指纹")) {
kshpropertice.setImgType("fingerprint");
}else if (st1.contains("DNA")){
} else if (st1.contains("DNA")) {
kshpropertice.setImgType("dna");
}else if (st1.contains("足迹")){
} else if (st1.contains("足迹")) {
kshpropertice.setImgType("other");
}else {
} else {
kshpropertice.setImgType("other");
}
kshpropertice.setBoderColor(null);
......@@ -706,16 +736,16 @@ public class KshSlServiceController {
kshlink.setSource(objectValue);
kshlink.setTarget(wzxx);
Linkspropertice linkspropertice = new Linkspropertice();
if (st1.contains("指纹")){
if (st1.contains("指纹")) {
kshlink.setLabel("指纹物证");
linkspropertice.setLabel("指纹物证");
}else if (st1.contains("DNA")){
} else if (st1.contains("DNA")) {
kshlink.setLabel("DNA物证");
linkspropertice.setLabel("DNA物证");
}else if (st1.contains("足迹")){
} else if (st1.contains("足迹")) {
kshlink.setLabel("足迹物证");
linkspropertice.setLabel("足迹物证");
}else {
} else {
kshpropertice.setImgType("其他物证");
linkspropertice.setLabel("其他物证");
}
......@@ -730,15 +760,14 @@ public class KshSlServiceController {
dataSumup.setName("串并算例");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return new MapRestResult(200,"ok",result);
}
else if (objectType.equals("idcard") && !StringUtil.isEmpty(objectValue)){
return new MapRestResult(200, "ok", result);
} else if (objectType.equals("idcard") && !StringUtil.isEmpty(objectValue)) {
QueryWrapper<TbYwXszDwcbgx> wrapper1 = new QueryWrapper<>();
wrapper1.select("DISTINCT WZXX").like("RYXX",objectValue);
wrapper1.select("DISTINCT WZXX").like("RYXX", objectValue);
List<TbYwXszDwcbgx> tbYwXszDwcbgxes = tbYwXszDwcbgxMapper.selectList(wrapper1);
for (TbYwXszDwcbgx tbYwXszDwcbgx : tbYwXszDwcbgxes) {
String st1 = tbYwXszDwcbgx.getWZXX();
String wzxx = st1.substring(st1.indexOf("(")+1,st1.indexOf(")"));
String wzxx = st1.substring(st1.indexOf("(") + 1, st1.indexOf(")"));
// nodes
HnTbStRygxDTO mergeDTOgjd = new HnTbStRygxDTO();
mergeDTOgjd.setId(wzxx);
......@@ -746,14 +775,14 @@ public class KshSlServiceController {
Kshpropertice kshpropertice = new Kshpropertice();
kshpropertice.setId(wzxx);
kshpropertice.setLabel(wzxx);
if (st1.contains("指纹")){
if (st1.contains("指纹")) {
kshpropertice.setImgType("fingerprint");
}else if (st1.contains("DNA")){
} else if (st1.contains("DNA")) {
kshpropertice.setImgType("dna");
}else if (st1.contains("足迹")){
} else if (st1.contains("足迹")) {
kshpropertice.setImgType("other");
}else {
} else {
kshpropertice.setImgType("other");
}
kshpropertice.setBoderColor(null);
......@@ -765,16 +794,16 @@ public class KshSlServiceController {
kshlink.setSource(objectValue);
kshlink.setTarget(wzxx);
Linkspropertice linkspropertice = new Linkspropertice();
if (st1.contains("指纹")){
if (st1.contains("指纹")) {
kshlink.setLabel("指纹物证");
linkspropertice.setLabel("指纹物证");
}else if (st1.contains("DNA")){
} else if (st1.contains("DNA")) {
kshlink.setLabel("DNA物证");
linkspropertice.setLabel("DNA物证");
}else if (st1.contains("足迹")){
} else if (st1.contains("足迹")) {
kshlink.setLabel("足迹物证");
linkspropertice.setLabel("足迹物证");
}else {
} else {
kshlink.setLabel("其他物证");
linkspropertice.setLabel("其他物证");
}
......@@ -789,11 +818,10 @@ public class KshSlServiceController {
dataSumup.setName("串并算例");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return new MapRestResult(200,"ok",result);
}
else if ((objectType.equals("fingerprint")||objectType.equals("dna")) && !StringUtil.isEmpty(objectValue)){
return new MapRestResult(200, "ok", result);
} else if ((objectType.equals("fingerprint") || objectType.equals("dna")) && !StringUtil.isEmpty(objectValue)) {
QueryWrapper<TbYwXszDwcbgx> wrapper1 = new QueryWrapper<>();
wrapper1.like("WZXX",objectValue);
wrapper1.like("WZXX", objectValue);
List<TbYwXszDwcbgx> tbYwXszDwcbgxes = tbYwXszDwcbgxMapper.selectList(wrapper1);
Set ryxxAndasjbh = new HashSet();
for (TbYwXszDwcbgx tbYwXszDwcbgx : tbYwXszDwcbgxes) {
......@@ -802,11 +830,11 @@ public class KshSlServiceController {
}
for (Object o : ryxxAndasjbh) {
String st1 = o.toString();
String s =null;
if (st1.contains("(")&&st1.contains(")")){
s = st1.substring(st1.indexOf("(")+1,st1.indexOf(")"));
}else {
s =st1;
String s = null;
if (st1.contains("(") && st1.contains(")")) {
s = st1.substring(st1.indexOf("(") + 1, st1.indexOf(")"));
} else {
s = st1;
}
// nodes
HnTbStRygxDTO mergeDTOgjd = new HnTbStRygxDTO();
......@@ -815,9 +843,9 @@ public class KshSlServiceController {
Kshpropertice kshpropertice = new Kshpropertice();
kshpropertice.setId(s);
kshpropertice.setLabel(s);
if (s.contains("A")){
if (s.contains("A")) {
kshpropertice.setImgType("aj");
}else {
} else {
kshpropertice.setImgType("idcard");
}
kshpropertice.setBoderColor(null);
......@@ -829,10 +857,10 @@ public class KshSlServiceController {
kshlink.setSource(objectValue);
kshlink.setTarget(s);
Linkspropertice linkspropertice = new Linkspropertice();
if (s.contains("A")){
if (s.contains("A")) {
kshlink.setLabel("案件编号");
linkspropertice.setLabel("案件编号");
}else {
} else {
kshlink.setLabel("人员信息");
linkspropertice.setLabel("人员信息");
}
......@@ -847,18 +875,769 @@ public class KshSlServiceController {
dataSumup.setName("串并算例");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return new MapRestResult(200,"ok",result);
}
else {
return new MapRestResult(200, "ok", result);
} else {
kshdata.setNodes(nodes);
kshdata.setLinks(links);
dataSumup.setList(sumup);
dataSumup.setName("串并算例");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return new MapRestResult(200,"ok",result);
return new MapRestResult(200, "ok", result);
}
}
//通过身份证号查询人员亲属关系信息
@OperLog(message = "家谱关系", operation = OperationType.QUERY)
@PostMapping("/jpgx")
@ApiOperation(value = "家谱关系")
public MapRestResult jpgx(String sfzh, HttpServletRequest request) {
Hnkshresult result = new Hnkshresult();
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
List<String> sumup = new ArrayList<>();
List<HnTbStRygxDTO> nodes = new ArrayList<>();
List<kshlinks> re = new ArrayList<>();
try {
HttpClient httpClientCar = new HttpClient();
JSONObject paramsCar = new JSONObject();
paramsCar.put("zjhm", sfzh);
JSONObject resultInterface = httpClientCar.doPostJsonHunan(hunanUrl + thgxUrl, paramsCar.toJSONString());
if (null != resultInterface) { // 解析返回结果
if ("success".equals(resultInterface.getString("status"))) {
JSONArray jsonArray = JSONObject.parseObject(resultInterface.get("data").toString()).getJSONArray("rows");
if (jsonArray.size() > 0) {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
Map<String, Object> map = new HashMap<>();
if (!sfzh.equals(obj.getString("zjhm"))) {
String name = obj.getString("xm") + ":" + obj.getString("zjhm");
String gx = obj.getString("yhzgx");
HnTbStRygxDTO node = node(name, gx + "\n" + name, "idcard", getPhoto(obj.getString("zjhm")), null);
nodes.add(node);
sumup.add(name);
kshlinks link = link(sfzh, name, gx, null, sfzh, "idcard", name, "idcard", "科兴", "家谱关系", null);
re.add(link);
}
}
}
}
}
kshdata.setNodes(nodes);
kshdata.setLinks(re);
dataSumup.setList(sumup);
dataSumup.setName("家谱关系");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
} catch (Exception e) {
e.printStackTrace();
System.out.print("家谱接口异常" + e);
}
return new MapRestResult(200, "ok", result);
}
// 通过身份证和时间段查询旅店同住宿人员频次等信息
@OperLog(message = "同住关系", operation = OperationType.QUERY)
@PostMapping("/tzgx")
@ApiOperation(value = "同住关系")
public JSONObject tzgx(String objNum, String resourceType, String timeDiff, String startTime, String endTime, String frequency, HttpServletRequest request) {
JSONObject jsonObject = null;
try {
jsonObject = JsonUtils.readJsonFromClassPath("data/getTzgx.json", JSONObject.class);
} catch (IOException e) {
e.printStackTrace();
System.out.print("json转换实体异常" + e);
}
return jsonObject;
}
// 通过收寄件人手机号和时间段查询对应的时间范围内收寄件情况,以及人员、地址频次的分析结果,包括频繁变更收寄地址情况
@OperLog(message = "寄递分析", operation = OperationType.QUERY)
@PostMapping("/jdfx")
@ApiOperation(value = "寄递分析")
public MapRestResult jdfx(String sjh, String timeStart, String timeEnd, HttpServletRequest request) {
XyrParam xyrParam = new XyrParam();
xyrParam.setSjhm(sjh);
xyrParam.setKssj(timeStart);
xyrParam.setJssj(timeEnd);
Map<String, Object> returnMap = new HashMap<>();
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
List<String> sumup = new ArrayList<>();
List<HnTbStRygxDTO> nodes = new ArrayList<>();
List<kshlinks> re = new ArrayList<>();
Hnkshresult result = new Hnkshresult();
List<JdfxResult.RealDataMaplist> objects = new ArrayList<>();
JSONObject jsonObject = null;
try {
Map<String, String> headers = initHttpXmlHeads();
String bodyJson = "{\n" +
" \"app_header\": {},\n" +
" \"app_body\": {}}";
String resultToken = "";
resultToken = HttpClient.doPostJson("http://65.26.106.40:8581/GatewayMsg/proxy/invoke/?SenderID=C43-00000005&ServiceID=S43-00000548&EndUser=李德书,432326197503264512,430000290000&InfoType=KHCX&InfoSet=" + URLEncoder.encode(initKdConditionByZjhm(sjh), "UTF-8"), headers, bodyJson);
int total = 0;
logUtil.insertGNSYRZOPENAPI("01", "网技-快递信息", LogsUtil.getNotEmptyFiled(xyrParam).toString(), "", "", "430000000000", "湖南刑专平台", "", NetworkUtil.getIpAddr(request));
if (resultToken != null && !"".equals(resultToken)) {
jsonObject = xmltoJson(resultToken);
System.out.println(jsonObject.toJSONString());
JSONObject results = jsonObject.getJSONObject("Result");
JSONObject datas = results.getJSONObject("Datas");
JSONObject ottoMsg = datas.getJSONObject("OTTOMsg");
JSONObject jdcx = ottoMsg.getJSONObject("JDCX");
JSONObject datalist = jdcx.getJSONObject("datalist");
total = jdcx.getIntValue("recordCount");
if (total > 0) {
if (total == 1) {
Map<String, Object> mapnr = new HashMap();
JSONObject job = datalist.getJSONObject("data");
String senderAddress = job.getString("senderAddress"); //发货地址
String senderMobile = job.getString("senderMobile"); //发货人电话
String receiverName = job.getString("receiverName"); //收货方姓名
String companyName = job.getString("companyName"); //寄递公司地址
String receiverMobile = job.getString("receiverMobile"); //收货方移动电话
String senderCounty = job.getString("senderCounty"); //发货方所在区县
String senderNation = job.getString("senderNation"); //发货方所在国家
String senderProvince = job.getString("senderProvince"); //发货方所在省份
String senderCity = job.getString("senderCity"); //发货方所在市
String receiverAddress = job.getString("receiverAddress");//收货人详细地址
String senderName = job.getString("senderName");//发货方姓名
String ecOrderID = job.getString("ecOrderID");//订单号
String goodsName = job.getString("goodsName");//物品名称
JdfxResult.RealDataMaplist realDataMaplist = new JdfxResult.RealDataMaplist();
realDataMaplist.setRece(receiverName);// 收货方姓名
realDataMaplist.setRead(receiverAddress);// 收件者详细地址
realDataMaplist.setSead(senderAddress);// 收件者详细地址
realDataMaplist.setReph(receiverMobile);//收件者手机号码
realDataMaplist.setSeph(senderMobile);//寄件者手机号码
objects.add(realDataMaplist);
} else {
JSONArray list = datalist.getJSONArray("data");
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Map<String, Object> mapnr = new HashMap();
JSONObject job = list.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象
// 得到 每个对象中的属性值
String senderAddress = job.getString("senderAddress"); //发货地址
String senderMobile = job.getString("senderMobile"); //发货人电话
String receiverName = job.getString("receiverName"); //收货方姓名
String companyName = job.getString("companyName"); //寄递公司地址
String receiverMobile = job.getString("receiverMobile"); //收货方移动电话
String senderCounty = job.getString("senderCounty"); //发货方所在区县
String senderNation = job.getString("senderNation"); //发货方所在国家
String senderProvince = job.getString("senderProvince"); //发货方所在省份
String senderCity = job.getString("senderCity"); //发货方所在市
String receiverAddress = job.getString("receiverAddress");//收货人详细地址
String senderName = job.getString("senderName");//发货方姓名
String ecOrderID = job.getString("ecOrderID");//订单号
String goodsName = job.getString("goodsName");//物品
JdfxResult.RealDataMaplist realDataMaplist = new JdfxResult.RealDataMaplist();
realDataMaplist.setRece(receiverName);// 收货方姓名
realDataMaplist.setRead(receiverAddress);// 收件者详细地址
realDataMaplist.setSead(senderAddress);// 收件者详细地址
realDataMaplist.setReph(receiverMobile);//收件者手机号码
realDataMaplist.setSeph(senderMobile);//寄件者手机号码
objects.add(realDataMaplist);
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
if (objects.size() > 0) {
//根据收件者手机号码分组
Map<String, List<JdfxResult.RealDataMaplist>> collect1 =
objects.stream().filter(s -> StringUtils.isNotEmpty(s.getReph()))
.collect(Collectors.groupingBy(JdfxResult.RealDataMaplist::getReph));
//根据value的长度降序
LinkedHashMap<String, List<JdfxResult.RealDataMaplist>> collect = collect1.entrySet().stream()
.sorted(Comparator.comparing((Map.Entry<String, List<JdfxResult.RealDataMaplist>> e) -> e.getValue().size()).reversed())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(v1, v2) -> v1, LinkedHashMap::new));
Set<String> strings = collect.keySet();
int i = 0;
for (String string : strings) {
if (!sumup.contains(string) && !string.equals(sjh)) {
int size = collect.get(string).size();//手机号出现的次数
String reph = collect.get(string).get(0).getReph();//收件者手机号码
String rece = collect.get(string).get(0).getRece(); //收件者名称
HnTbStRygxDTO node = node(reph, rece + "\n" + reph, "sjk", null, null);
nodes.add(node);
sumup.add(reph);
kshlinks link = link(sjh, reph, "寄件" + size + "次", null, sjh, "sjk", reph, "sjk", "科兴", "寄递分析", null);
re.add(link);
i = i + 1;
}
if (i == 5) {
break;
}
}
// 根据寄件者手机分组
Map<String, List<JdfxResult.RealDataMaplist>> collect3 =
objects.stream().filter(s -> StringUtils.isNotEmpty(s.getSeph()))
.collect(Collectors.groupingBy(JdfxResult.RealDataMaplist::getSeph));
//根据value的size降序
LinkedHashMap<String, List<JdfxResult.RealDataMaplist>> collect2 = collect3.entrySet().stream()
.sorted(Comparator.comparing((Map.Entry<String, List<JdfxResult.RealDataMaplist>> e) -> e.getValue().size()).reversed())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(v1, v2) -> v1, LinkedHashMap::new));
//获取分组降序后的key
Set<String> strings3 = collect2.keySet();
int j = 0;
for (String string : strings3) {
if (!sumup.contains(string) && !string.equals(sjh)) {
int size = collect2.get(string).size();//手机号出现的次数
String seph = collect2.get(string).get(0).getSeph();//寄件者手机号
String entm = collect2.get(string).get(0).getEntm();//快递单号
HnTbStRygxDTO node = node(seph, seph, "sjk", null, null);
nodes.add(node);
sumup.add(seph);
kshlinks link = link(sjh, seph, "收件" + size + "次" + entm, entm, sjh, "sjk", seph, "sjk", "科兴", "寄递分析", entm);
re.add(link);
j = j + 1;
}
if (j == 5) {
break;
}
}
kshdata.setNodes(nodes);
kshdata.setLinks(re);
dataSumup.setList(sumup);
dataSumup.setName("寄递分析");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return new MapRestResult(200, "ok", result);
} else {
Hnkshresult result1 = result("寄递分析");
return new MapRestResult(200, "ok", result1);
}
}
// 通过参数输入身份证号码或酒店编码或名称,以及时间段,返回该人员对应特征的结果:1、频繁更换酒店2、酒店连续入住3、高频夜间入住 时间范围三个月之内
@OperLog(message = "入住分析", operation = OperationType.QUERY)
@PostMapping("/rzfx")
@ApiOperation(value = "入住分析")
public JSONObject rzfx(String jdmc, String jdbm, String sfzh, String resourceType, String frequency, String point, String startTime, String endTime, HttpServletRequest request) {
JSONObject jsonObject = null;
try {
jsonObject = JsonUtils.readJsonFromClassPath("data/getRzfx.json", JSONObject.class);
} catch (IOException e) {
e.printStackTrace();
System.out.print("json转换实体异常" + e);
}
return jsonObject;
}
@OperLog(message = "出入境分析", operation = OperationType.QUERY)
@PostMapping("/crjfx")
@ApiOperation(value = "出入境分析")
public JSONObject crjfx(String frequency, String sfzh, String timeStart, String timeEnd, HttpServletRequest request) {
JSONObject jsonObject = null;
try {
jsonObject = JsonUtils.readJsonFromClassPath("data/getCrjfx.json", JSONObject.class);
} catch (IOException e) {
e.printStackTrace();
System.out.print("json转换实体异常" + e);
}
return jsonObject;
}
//当前时间往前1个月内,出发地/班次+目的地+身份证,输出火车、航班、客运轨迹类型的去往该目的地频次>=3次的人员轨迹数据
@OperLog(message = "出行分析", operation = OperationType.QUERY)
@PostMapping("/cxfx")
@ApiOperation(value = "出行分析")
public JSONObject cxfx(String sfzh, String qsd, String shift, String trafficType, String mdd, HttpServletRequest request) {
JSONObject jsonObject = null;
try {
jsonObject = JsonUtils.readJsonFromClassPath("data/getCxfx.json", JSONObject.class);
} catch (IOException e) {
e.printStackTrace();
System.out.print("json转换实体异常" + e);
}
return jsonObject;
}
//通过身份证查询最近3个月内火车、航班、客运、地铁等同行人员(频次>=3)等信息
@OperLog(message = "同行分析", operation = OperationType.QUERY)
@PostMapping("/txfx")
@ApiOperation(value = "同行分析")
public JSONObject txfx(String value, String type, HttpServletRequest request) {
JSONObject jsonObject = null;
try {
jsonObject = JsonUtils.readJsonFromClassPath("data/getTxfx.json", JSONObject.class);
} catch (IOException e) {
e.printStackTrace();
System.out.print("json转换实体异常" + e);
}
return jsonObject;
}
@OperLog(message = "资金流", operation = OperationType.QUERY)
@PostMapping("/zjl")
@ApiOperation(value = "资金流")
public JSONObject zjl() {
JSONObject jsonObject = null;
try {
jsonObject = JsonUtils.readJsonFromClassPath("data/getZjl.json", JSONObject.class);
} catch (IOException e) {
e.printStackTrace();
System.out.print("json转换实体异常" + e);
}
return jsonObject;
}
//通过案件编号或身份证号查询案件信息;通过驾驶证号或车牌号查询相应的违章信息(号码类型(01 身份证号 02 车牌号 03 案件编号)
@OperLog(message = "涉案信息", operation = OperationType.QUERY)
@PostMapping("/ajda")
@ApiOperation(value = "涉案信息")
public MapRestResult ajda(String value, String type, HttpServletRequest request) {
// 人查案 sfz
Hnkshresult result = new Hnkshresult();
Hnkshresult result1 = new Hnkshresult();
if (type.equals("01") && !StringUtil.isEmpty(value)) {
QueryWrapper<TbXwZbfzxyr> wrapper = new QueryWrapper<>();
wrapper.select("asjbh,zhrq").eq("zhfzxyr_cyzj_zjhm", value);
List<TbXwZbfzxyr> sfzfindasj = zbFzxyrDataMapper.selectList(wrapper);
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
List<String> sumup = new ArrayList<>();
List<HnTbStRygxDTO> nodes = new ArrayList<>();
List<kshlinks> re = new ArrayList<>();
for (TbXwZbfzxyr abh : sfzfindasj) {
String asjbh = abh.getAsjbh();
// 通过案件编号获取案件信息
QueryWrapper<TbStAsj> wrapperAj = new QueryWrapper<>();
wrapperAj.select("asjbh,ajmc,djsj").eq("asjbh", asjbh);
TbStAsj tbStAsj = tbStAsjMapper.selectOne(wrapperAj);
// 数据结构组装
HnTbStRygxDTO node = node(asjbh, tbStAsj.getAjmc() + "\n" + asjbh, "aj", null, null);
nodes.add(node);
sumup.add(asjbh);
kshlinks link = link(value, asjbh, abh.getZhrq(), abh.getZhrq(), value, "idcard", asjbh, "aj", "刑专", "人案", abh.getZhrq());
re.add(link);
}
kshdata.setNodes(nodes);
kshdata.setLinks(re);
dataSumup.setList(sumup);
dataSumup.setName("人案关联");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return new MapRestResult(200, "ok", result);
} else if (type.equals("03") && !StringUtil.isEmpty(value)) {
QueryWrapper<TbXwZbfzxyr> wrapper1 = new QueryWrapper<>();
wrapper1.select("zhfzxyr_cyzj_zjhm,zhfzxyr_xm,zhrq").eq("asjbh", value);
List<TbXwZbfzxyr> AfindR = zbFzxyrDataMapper.selectList(wrapper1);
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
List<String> sumup = new ArrayList<>();
List<HnTbStRygxDTO> nodes = new ArrayList<>();
List<kshlinks> re = new ArrayList<>();
// 案查人 遍历 这个案件底下有多少人
for (TbXwZbfzxyr sfz : AfindR) {
String zjhm = sfz.getZhfzxyrCyzjZjhm();
HnTbStRygxDTO node = node(zjhm, sfz.getZhfzxyrXm() + "\n" + zjhm, "idcard", getPhoto(zjhm), null);
nodes.add(node);
sumup.add(zjhm);
kshlinks link = link(value, zjhm, "嫌疑人", sfz.getZhrq(), value, "aj", zjhm, "idcard", "刑专", "案人关联", sfz.getZhrq());
re.add(link);
}
kshdata.setNodes(nodes);
kshdata.setLinks(re);
dataSumup.setList(sumup);
dataSumup.setName("案人关联");
result1.setKshdata(kshdata);
result1.setDataSumup(dataSumup);
return new MapRestResult(200, "ok", result1);
} else if (type.equals("02") && !StringUtil.isEmpty(value)) {
}
return new MapRestResult();
}
// 由一个人员的身份证号查询该人的所有同案案件信息和同案人员信息(已结案件)
@OperLog(message = "同案关系", operation = OperationType.QUERY)
@PostMapping("/tagx")
@ApiOperation(value = "同案关系")
public MapRestResult tagx(String idCard, HttpServletRequest request) {
// sfz人查询案下的其他人
QueryWrapper<TbXwZbfzxyr> wrapper = new QueryWrapper<>();
wrapper.select("asjbh").eq("zhfzxyr_cyzj_zjhm", idCard);
List<TbXwZbfzxyr> sfzfindasj = zbFzxyrDataMapper.selectList(wrapper);
Hnkshresult result = new Hnkshresult();
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
List<String> sumup = new ArrayList<>();
List<HnTbStRygxDTO> nodes = new ArrayList<>();
List<kshlinks> re = new ArrayList<>();
for (TbXwZbfzxyr asj : sfzfindasj) {
String asjbh = asj.getAsjbh();
QueryWrapper<TbXwZbfzxyr> wrapper1 = new QueryWrapper<>();
wrapper1.select("zhfzxyr_cyzj_zjhm,zhrq,zhfzxyr_xm").eq("asjbh", asjbh);
List<TbXwZbfzxyr> AfindR = zbFzxyrDataMapper.selectList(wrapper1);
// 案查人 遍历 这个案件底下有多少人
for (TbXwZbfzxyr sfz : AfindR) {
String zjhm = sfz.getZhfzxyrCyzjZjhm();
String xm = sfz.getZhfzxyrXm();
if (!zjhm.equals(idCard)) {
// 通过案件编号获取案件信息
QueryWrapper<TbStAsj> wrapperAj = new QueryWrapper<>();
wrapperAj.select("asjbh,ajmc").eq("asjbh", asjbh);
TbStAsj tbStAsj = tbStAsjMapper.selectOne(wrapperAj);
String ajmc = tbStAsj.getAjmc();
HnTbStRygxDTO idcard = node(zjhm, xm + "\n" + zjhm, "idcard", "", null);
nodes.add(idcard);
sumup.add(zjhm);
// 案件指向第三层
kshlinks link = link(asjbh, zjhm, "抓获日期:" + sfz.getZhrq(), sfz.getZhrq(), asjbh, "aj", zjhm, "idcard", "刑专", "同案关系", sfz.getZhrq());
re.add(link);
HnTbStRygxDTO idcard1 = node(asjbh, ajmc + "\n" + asjbh, "aj", getPhoto(zjhm), null);
nodes.add(idcard1);
sumup.add(asjbh);
//根节点指向案件
kshlinks link1 = link(zjhm, asjbh, "案件", "", zjhm, "idcard", asjbh, "aj", "刑专", "同案关系", null);
re.add(link1);
}
}
}
// 对nodes去重
ArrayList<HnTbStRygxDTO> collect1 = nodes.stream().
collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(HnTbStRygxDTO::getId))), ArrayList::new));
kshdata.setNodes(collect1);
// 对links去重
ArrayList<kshlinks> collect2 = re.stream()
.collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getSource() + ";" + o.getTarget()))), ArrayList::new));
kshdata.setLinks(collect2);
// 对sumup去重
List<String> collect = sumup.stream().distinct().collect(Collectors.toList());
dataSumup.setList(collect);
dataSumup.setName("同案关系");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return new MapRestResult(200, "ok", result);
}
// 根据教育经历信息和职业情况数据,发现人员互为校友关系的情况(校友关系分析)以及发现其中就职于相同公司、在相同公司有过工作经历的人员,发现其中有同事关系的人员(同事关系分析)
@OperLog(message = "社会关系", operation = OperationType.QUERY)
@PostMapping("/shgx")
@ApiOperation(value = "社会关系")
public JSONObject shgx(String zjhm, String type, HttpServletRequest request) throws Exception {
JSONObject jsonObject = null;
try {
jsonObject = JsonUtils.readJsonFromClassPath("data/getShgx.json", JSONObject.class);
} catch (IOException e) {
e.printStackTrace();
System.out.print("json转换实体异常" + e);
}
return jsonObject;
}
// 通过手机号与时间段查询该手机号与对端手机号的通联信息
@OperLog(message = "通联关系", operation = OperationType.QUERY)
@PostMapping("/tlgx")
@ApiOperation(value = "通联关系")
public MapRestResult tlgx(String sjh, String timeStart, String timeEnd, HttpServletRequest request) {
XyrParam xyrParam = new XyrParam();
xyrParam.setSjhm(sjh);
xyrParam.setKssj(timeStart);
xyrParam.setJssj(timeEnd);
Hnkshresult result = new Hnkshresult();
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
List<String> sumup = new ArrayList<>();
List<HnTbStRygxDTO> nodes = new ArrayList<>();
List<kshlinks> re = new ArrayList<>();
try {
Map<String, Object> returnMap = new HashMap<>();
Map<String, String> headers = initHttpXmlHeads();
String bodyJson = "{\n" +
" \"app_header\": {},\n" +
" \"app_body\": {}}";
String resultToken = "";
resultToken = HttpClient.doPostJson("http://65.26.106.40:8581/GatewayMsg/proxy/invoke/?SenderID=C43-00000005&ServiceID=S43-00000548&EndUser=李德书,432326197503264512,430000290000&InfoType=KHCX&InfoSet=" + URLEncoder.encode(initHdConditionByZjhm(xyrParam), "UTF-8"), headers, bodyJson);
logUtil.insertGNSYRZOPENAPI("01", "网技-话单信息", LogsUtil.getNotEmptyFiled(xyrParam).toString(), "", "", "430000000000", "湖南刑专平台", "", NetworkUtil.getIpAddr(request));
if (resultToken != null && !"".equals(resultToken)) {
JSONObject jsonObject = xmltoJson(resultToken);
System.out.println(jsonObject.toJSONString());
JSONObject results = jsonObject.getJSONObject("Result");
JSONObject datas = results.getJSONObject("Datas");
int total = 0;
JSONObject ottoMsg = datas.getJSONObject("OTTOMsg");
JSONObject dccx = ottoMsg.getJSONObject("DCCX");
JSONObject msgContent = dccx.getJSONObject("MsgContent");
JSONObject commonlyQuery = msgContent.getJSONObject("CommonlyQuery");
JSONObject commonlyQueryResponse = commonlyQuery.getJSONObject("CommonlyQueryResponse");
total = commonlyQueryResponse.getIntValue("ResultCount");
JSONObject datalist = commonlyQueryResponse.getJSONObject("CommonQueryResultList");
if (total > 0) {
if (total == 1) {
JSONObject job = datalist.getJSONObject("CommonQueryResultInfo");
String oppositeNumber = job.getString("OppositeNumber"); //对方号码
String toAttAreaCode = job.getString("ToAttAreaCode"); // 对方号码所在地
String customerNumber = job.getString("CustomerNumber"); //服务号码
String userAttAreaCode = job.getString("UserAttAreaCode"); //服务方所在地
String callType = job.getString("CallType"); //呼号类型
String beginTime = job.getString("BeginTime"); //开始时间
String timeLen = job.getString("TimeLen"); //通话时长 (单位秒)
//nodes
HnTbStRygxDTO mergeDTOgjd = node(oppositeNumber, oppositeNumber, "sjk", null, null);
nodes.add(mergeDTOgjd);
sumup.add(oppositeNumber);
// links
kshlinks link = link(sjh, oppositeNumber, "通话类型:" + callType + "通话时长:" + timeLen + "秒", beginTime, sjh, "sjk", oppositeNumber, "sjk", "科兴", "通联关系", beginTime);
re.add(link);
} else if (total < 1000) {
JSONArray list = datalist.getJSONArray("CommonQueryResultInfo");
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
JSONObject job = list.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象
// 得到 每个对象中的属性值
String oppositeNumber = job.getString("OppositeNumber"); //对方号码
String toAttAreaCode = job.getString("ToAttAreaCode"); // 对方号码所在地
String customerNumber = job.getString("CustomerNumber"); //服务号码
String userAttAreaCode = job.getString("UserAttAreaCode"); //服务方所在地
String callType = job.getString("CallType"); //呼号类型
String beginTime = job.getString("BeginTime"); //开始时间
String timeLen = job.getString("TimeLen"); //通话时长 (单位秒)
//nodes
HnTbStRygxDTO mergeDTOgjd = node(oppositeNumber, oppositeNumber, "sjk", null, null);
nodes.add(mergeDTOgjd);
sumup.add(oppositeNumber);
// links
kshlinks link = link(sjh, oppositeNumber, "通话类型:" + callType + "通话时长:" + timeLen + "秒", beginTime, sjh, "sjk", oppositeNumber, "sjk", "科兴", "通联关系", beginTime);
re.add(link);
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
System.out.print("接口异常" + e);
}
kshdata.setNodes(nodes);
kshdata.setLinks(re);
dataSumup.setList(sumup);
dataSumup.setName("通联关系");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return new MapRestResult(200, "ok", result);
}
//身份证、驾驶证、护照、手机号(imei、imsi)、虚拟账号(虚拟账号)号码之间互查
@OperLog(message = "虚实关联", operation = OperationType.QUERY)
@PostMapping("/xsgx")
@ApiOperation(value = "虚实关联")
public MapRestResult xsgx(String value, String type, HttpServletRequest request) {
// 号码类型(01:身份证号sfzh;02:驾照jzhm;03:护照hzhm;04:手机号sjhm;05:虚拟账号信息xnxx)
Hnkshresult result = new Hnkshresult();
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
List<String> sumup = new ArrayList<>();
List<HnTbStRygxDTO> nodes = new ArrayList<>();
List<kshlinks> re = new ArrayList<>();
if (type.equals("01")) {
// 机主
try {
JSONArray jsonArrayPhone = getJzxx(value, "zjhm");
if (jsonArrayPhone.size() > 0) {
for (int i = 0; i < jsonArrayPhone.size(); i++) {
JSONObject objPhone = jsonArrayPhone.getJSONObject(i);
if (Arrays.asList("1", "0", "2").contains(objPhone.getString("status"))) {// 用户状态(1:在用,0:欠费停机,2:停机,3:注销,9:其它)
String phoneNo = objPhone.getString("phoneNo");
String openDate = objPhone.getString("openDate");
// nodes
HnTbStRygxDTO mergeDTOgjd = node(phoneNo, phoneNo, "sjk", null, null);
nodes.add(mergeDTOgjd);
sumup.add(phoneNo);
// links
kshlinks link = link(value, phoneNo, "手机号" + openDate, openDate, value, "01", openDate, "sjk", "科信", "手机号", openDate);
re.add(link);
}
}
}
} catch (Exception e) {
return MapRestResult.error("机主接口错误!" + e);
}
} else if (type.equals("04")) {
try {
//手机号能够了查到身份证号
JSONArray jsonArrayPhone = getJzxx(value, "sjhm");
if (jsonArrayPhone.size() > 0) {
// 业务受理时间 最新的机主证件号码
jsonArrayPhone = jSONArraySort(jsonArrayPhone, "openDate");
JSONObject obj = jsonArrayPhone.getJSONObject(0);
String sfzh = obj.getString("idCard");
String openDate = obj.getString("openDate");
// nodes
HnTbStRygxDTO node = node(sfzh, sfzh, "idcard", null, null);
nodes.add(node);
sumup.add(sfzh);
kshlinks link = link(value, sfzh, "身份证", openDate, value, "04", sfzh, "idcard", "科信", "身份证", openDate);
re.add(link);
}
} catch (Exception e) {
return MapRestResult.error("机主接口错误!" + e);
}
}
//对nodes去重
ArrayList<HnTbStRygxDTO> collect1 = nodes.stream().
collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(HnTbStRygxDTO::getId))), ArrayList::new));
kshdata.setNodes(collect1);
//对links去重
ArrayList<kshlinks> collect2 = re.stream()
.collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getTarget()))), ArrayList::new));
kshdata.setLinks(collect2);
//对sumup去重
List<String> collect = sumup.stream().distinct().collect(Collectors.toList());
dataSumup.setList(collect);
dataSumup.setName("虚实关联");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return new MapRestResult(200, "ok", result);
}
// (msis)手机号、imsi、imei三个号码相互查询,例如一机多号和一号多机
@OperLog(message = "四码关联", operation = OperationType.QUERY)
@PostMapping("/smglTwo")
@ApiOperation(value = "四码关联")
public JSONObject smglTwo(String value, String type, HttpServletRequest request) {
JSONObject jsonObject = null;
// 01 手机号msis;02 imsi;03 imei
if (type.equals("01")) {
try {
jsonObject = JsonUtils.readJsonFromClassPath("data/getSmgl.json", JSONObject.class);
} catch (IOException e) {
e.printStackTrace();
System.out.print("json转换实体异常" + e);
}
return jsonObject;
} else if (type.equals("02")) {
try {
jsonObject = JsonUtils.readJsonFromClassPath("data/getSmgl.json", JSONObject.class);
} catch (IOException e) {
e.printStackTrace();
System.out.print("json转换实体异常" + e);
}
} else if (type.equals("03")) {
try {
jsonObject = JsonUtils.readJsonFromClassPath("data/getSmgl.json", JSONObject.class);
} catch (IOException e) {
e.printStackTrace();
System.out.print("json转换实体异常" + e);
}
}
return jsonObject;
}
// 与其通联的手机号码信息
@OperLog(message = "通联分析", operation = OperationType.QUERY)
@PostMapping("/tlfx")
@ApiOperation(value = "通联分析")
public MapRestResult tlfx(String timeType, String phoneNumber, String timeStart, String timeEnd, HttpServletRequest request) {
XyrParam xyrParam = new XyrParam();
xyrParam.setSjhm(phoneNumber);
xyrParam.setKssj(timeStart);
xyrParam.setJssj(timeEnd);
Hnkshresult result = new Hnkshresult();
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
List<String> sumup = new ArrayList<>();
List<HnTbStRygxDTO> nodes = new ArrayList<>();
List<kshlinks> re = new ArrayList<>();
try {
Map<String, Object> returnMap = new HashMap<>();
Map<String, String> headers = initHttpXmlHeads();
String bodyJson = "{\n" +
" \"app_header\": {},\n" +
" \"app_body\": {}}";
String resultToken = "";
resultToken = HttpClient.doPostJson("http://65.26.106.40:8581/GatewayMsg/proxy/invoke/?SenderID=C43-00000005&ServiceID=S43-00000548&EndUser=李德书,432326197503264512,430000290000&InfoType=KHCX&InfoSet=" + URLEncoder.encode(initHdConditionByZjhm(xyrParam), "UTF-8"), headers, bodyJson);
logUtil.insertGNSYRZOPENAPI("01", "网技-话单信息", LogsUtil.getNotEmptyFiled(xyrParam).toString(), "", "", "430000000000", "湖南刑专平台", "", NetworkUtil.getIpAddr(request));
if (resultToken != null && !"".equals(resultToken)) {
JSONObject jsonObject = xmltoJson(resultToken);
System.out.println(jsonObject.toJSONString());
JSONObject results = jsonObject.getJSONObject("Result");
JSONObject datas = results.getJSONObject("Datas");
int total = 0;
JSONObject ottoMsg = datas.getJSONObject("OTTOMsg");
JSONObject dccx = ottoMsg.getJSONObject("DCCX");
JSONObject msgContent = dccx.getJSONObject("MsgContent");
JSONObject commonlyQuery = msgContent.getJSONObject("CommonlyQuery");
JSONObject commonlyQueryResponse = commonlyQuery.getJSONObject("CommonlyQueryResponse");
total = commonlyQueryResponse.getIntValue("ResultCount");
JSONObject datalist = commonlyQueryResponse.getJSONObject("CommonQueryResultList");
if (total > 0) {
if (total == 1) {
JSONObject job = datalist.getJSONObject("CommonQueryResultInfo");
String oppositeNumber = job.getString("OppositeNumber"); //对方号码
String toAttAreaCode = job.getString("ToAttAreaCode"); // 对方号码所在地
String customerNumber = job.getString("CustomerNumber"); //服务号码
String userAttAreaCode = job.getString("UserAttAreaCode"); //服务方所在地
String callType = job.getString("CallType"); //呼号类型
String beginTime = job.getString("BeginTime"); //开始时间
String timeLen = job.getString("TimeLen"); //通话时长 (单位秒)
//nodes
HnTbStRygxDTO mergeDTOgjd = node(oppositeNumber, oppositeNumber, "sjk", null, null);
nodes.add(mergeDTOgjd);
sumup.add(oppositeNumber);
// links
kshlinks link = link(sjh, oppositeNumber, "通话类型:" + callType + "通话时长:" + timeLen + "秒", beginTime, sjh, "sjk", oppositeNumber, "sjk", "科兴", "通联关系", beginTime);
re.add(link);
} else if (total < 1000) {
JSONArray list = datalist.getJSONArray("CommonQueryResultInfo");
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
JSONObject job = list.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象
// 得到 每个对象中的属性值
String oppositeNumber = job.getString("OppositeNumber"); //对方号码
String toAttAreaCode = job.getString("ToAttAreaCode"); // 对方号码所在地
String customerNumber = job.getString("CustomerNumber"); //服务号码
String userAttAreaCode = job.getString("UserAttAreaCode"); //服务方所在地
String callType = job.getString("CallType"); //呼号类型
String beginTime = job.getString("BeginTime"); //开始时间
String timeLen = job.getString("TimeLen"); //通话时长 (单位秒)
//nodes
HnTbStRygxDTO mergeDTOgjd = node(oppositeNumber, oppositeNumber, "sjk", null, null);
nodes.add(mergeDTOgjd);
sumup.add(oppositeNumber);
// links
kshlinks link = link(phoneNumber, oppositeNumber, "通话类型:" + callType + "通话时长:" + timeLen + "秒", beginTime, phoneNumber, "sjk", oppositeNumber, "sjk", "科兴", "通联关系", beginTime);
re.add(link);
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
System.out.print("接口异常" + e);
}
kshdata.setNodes(nodes);
kshdata.setLinks(re);
dataSumup.setList(sumup);
dataSumup.setName("通联关系");
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return new MapRestResult(200, "ok", result);
}
/**
* 功能描述: JSONArray根据时间字段排序
......@@ -890,4 +1669,469 @@ public class KshSlServiceController {
JSONArray parse = (JSONArray) JSONArray.parse(JSONObject.toJSONString(list));
return parse;
}
public String getPhoto(String zjhm) {
List<SkRegionalsPerson> listSkRegionalsPerson = new ArrayList<>();
SkRegionalsPerson ryxx = new SkRegionalsPerson();
String esbServiceReturn = "";
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
SysUser user = (SysUser) request.getAttribute("user");
Map<String, String> map = new HashMap();
map.put("cxhm", zjhm);
map.put("yymc", "时空大数据平台");
map.put("qqrXm", user.getTrueName());
map.put("qqrGmsfzh", user.getIdentitycard());
map.put("qqrJgmc", user.getUnitname());
map.put("qqrJgdm", user.getUnitcode());
map.put("qqrIp", NetworkUtil.getIpAddr(request));
String resultStr = "";
try {
System.out.println("常口调用开始===============" + zjhm);
resultStr = HttpUtil.doPost("http://65.26.106.172:1005/qgck/getRyxxByQgck", map);
if (StringUtils.isNotBlank(resultStr)) {
System.out.println("常口调用成功===============" + zjhm);
JSONObject jsonObject = JSONObject.parseObject(resultStr);
if (jsonObject != null && jsonObject.containsKey("data")) {
JSONObject jsonObject1 = jsonObject.getJSONObject("data");
if (jsonObject1 != null && jsonObject1.containsKey("ryxx")) {
TbStRy tbStRy = jsonObject1.getObject("ryxx", TbStRy.class);
if (tbStRy != null) {
ryxx = getQgxx(tbStRy);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return ryxx.getImg();
}
private SkRegionalsPerson getQgxx(TbStRy tbStRy) {
SkRegionalsPerson qgRyJbXx = null;
try {
qgRyJbXx = new SkRegionalsPerson();
qgRyJbXx.setXm(tbStRy.getXm());
qgRyJbXx.setXb(tbStRy.getXbdmStr());
qgRyJbXx.setMz(tbStRy.getMzdmStr());
qgRyJbXx.setSfzhm(tbStRy.getZjhm());
qgRyJbXx.setHjdqhdz(tbStRy.getHjdzXzqhdmStr());
qgRyJbXx.setCsdzmc(tbStRy.getCsdDzmc());
qgRyJbXx.setImg("data:image/jpg;base64," + tbStRy.getEdzzplj());
qgRyJbXx.setXzzdzmc(tbStRy.getXzzDzmc());
Date csrq = tbStRy.getCsrqQsrq();
String csrqQsrq = null;
if (csrq != null) {
DateFormat fmt = new SimpleDateFormat("yyyyMMdd");
try {
csrqQsrq = fmt.format(csrq);
qgRyJbXx.setCsrq(csrqQsrq);
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return qgRyJbXx;
}
// 机主网技
public JSONArray getJzxx(String objectValue, String type) throws Exception {
String redisKey = "SK:PHONE:" + objectValue;
if (redisTemplate.hasKey(redisKey)) {
String str = redisTemplate.opsForValue().get(redisKey);
JSONArray allList = JSONArray.parseArray(str);
return allList;
}
String params = "";
// 证件号拿手机号
if (type.equals("zjhm")) {
params = URLEncoder.encode(initConditionByZjhm(objectValue), "UTF-8");
} else if (type.equals("sjhm")) { // 手机拿证件
params = URLEncoder.encode(initConditionBySjhm(objectValue), "UTF-8");
}
Map<String, String> headers = initHttpXmlHeads();
String bodyJson = "{\n" +
" \"app_header\": {},\n" +
" \"app_body\": {}}";
String resultToken = "";
resultToken = HttpUtil.doPostJsonHunan("http://65.26.10.200:8581/GatewayMsg/proxy/invoke/?SenderID=C43-00000005&ServiceID=S43-00000548&EndUser=李德书,432326197503264512,430000290000&InfoType=KHCX&InfoSet=" + params, headers, bodyJson);
System.out.println(resultToken);
JSONArray list = new JSONArray();
JSONArray listResult = new JSONArray();
if (null != resultToken) {
JSONObject jsonObject = xmltoJson(resultToken);
System.out.println(jsonObject.toJSONString());
JSONObject results = jsonObject.getJSONObject("Result");
JSONObject datas = results.getJSONObject("Datas");
JSONObject ottoMsg = datas.getJSONObject("OTTOMsg");
JSONObject uqs = ottoMsg.getJSONObject("uqs");
JSONObject rs = uqs.getJSONObject("response");
JSONObject userInfos = uqs.getJSONObject("userInfos");
list = userInfos.getJSONArray("userInfo");
}
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
JSONObject job = list.getJSONObject(i); // 遍历 jsonarray 数组,把每一个对象转成 json 对象
// 得到 每个对象中的属性值
// String phoneNo=job.getString("phoneNo"); //电话号码
// String provLatnId=job.getString("provLatnId"); //用户地域标识
// String userName=job.getString("userName"); //用户姓名
// String status=job.getString("status"); //用户状态
// String setuPaddr=job.getString("SETUPaddr"); //安装地址
// String certTypeId=job.getString("certTypeId"); //证件类型
// String idCard=job.getString("idCard"); //证件号码
// String openDate=job.getString("openDate"); //业务受理时间
// String address=job.getString("address");//客户地址
listResult.add(job);
}
}
if (listResult.size() > 0) {
if (redisTemplate.hasKey(redisKey)) {
redisTemplate.delete(redisKey);
}
redisTemplate.opsForValue().set(redisKey, JSON.toJSONString(listResult), 1L, TimeUnit.DAYS);
}
return listResult;
}
/**
* 将xml转换为JSON对象
*
* @param xml xml字符串
* @return
* @throws Exception
*/
public static JSONObject xmltoJson(String xml) throws Exception {
JSONObject jsonObject = new JSONObject();
Document document = DocumentHelper.parseText(xml);
//获取根节点元素对象
Element root = document.getRootElement();
iterateNodes(root, jsonObject);
return jsonObject;
}
private HashMap<String, String> initHttpXmlHeads() {
HashMap<String, String> headParams = new HashMap<String, String>();
headParams.put("Content-Type", "application/json;charset=UTF-8");
headParams.put("sender_id", "C90-43000019");
headParams.put("service_id", "S90-43000025");
headParams.put("timeout", "60");
headParams.put("end_user.name", "%e6%b5%8b%e8%af%95");
headParams.put("end_user.id_card", "431224198909105410");
headParams.put("end_user.department", "430000000000 ");
headParams.put("end_user.certificate", "BH9527");
headParams.put("end_user.device_id", "65.28.39.213");
headParams.put("timestamp", "20200910100312114");
headParams.put("sign", "1e2de989cd49f72bde081f84a4b2c47a;1614653654000");
return headParams;
}
/**
* 手机号码机主查询参数
*
* @param sjhm
* @return
*/
private String initConditionBySjhm(String sjhm) {
StringBuffer sb = new StringBuffer();
sb.append("<Content><Header>");
sb.append("<RequestID>KHCX_65.28.39.173_20200825172913_1234</RequestID>");
sb.append("<CommonInfo>");
sb.append("<approveID>430102195309191513</approveID>");
sb.append("<approveName>测试吴俊明</approveName>");
sb.append("<DeptName>局领导</DeptName>");
sb.append("</CommonInfo>");
sb.append("<CaseInfo>");
sb.append("<CaseID>A4301000000002020070001</CaseID>");
sb.append("<CaseName>监管平台对接测试</CaseName>");
sb.append("<CaseProperty>刑事</CaseProperty>");
sb.append("<CaseCause>查询案件:监管平台对接测试</CaseCause>");
sb.append("<CaseResume>查询机主,详单,寄递</CaseResume>");
sb.append("</CaseInfo></Header><Body>");
sb.append("<DbSource name=\"KHCX\" carrier=\"YD\">YDKHCX</DbSource><Fields Count=\"1\">");
sb.append("<FieldCondition>");
sb.append("<LogicCaculation>and</LogicCaculation>");
sb.append("<LeftBracket></LeftBracket>");
sb.append("<LeftValue>PHONE_NUM</LeftValue>");
sb.append("<ConditionCalculation>=</ConditionCalculation>");
sb.append("<RightValue>" + sjhm + "</RightValue>");
sb.append("<RightBracket></RightBracket>");
sb.append("</FieldCondition></Fields></Body></Content>");
return sb.toString();
}
/**
* 手机号码机主查询参数,证件号码查询
*
* @param zjhm
* @return
*/
private String initConditionByZjhm(String zjhm) {
StringBuffer sb = new StringBuffer();
sb.append("<Content><Header>");
sb.append("<RequestID>KHCX_65.28.39.173_20200825172913_1111</RequestID>");
sb.append("<CommonInfo>");
sb.append("<approveID>430102195309191513</approveID>");
sb.append("<approveName>测试吴俊明</approveName>");
sb.append("<DeptName>局领导</DeptName>");
sb.append("</CommonInfo>");
sb.append("<CaseInfo>");
sb.append("<CaseID>A4301000000002020070001</CaseID>");
sb.append("<CaseName>监管平台对接测试</CaseName>");
sb.append("<CaseProperty>刑事</CaseProperty>");
sb.append("<CaseCause>查询案件:监管平台对接测试</CaseCause>");
sb.append("<CaseResume>查询机主,详单,寄递</CaseResume>");
sb.append("</CaseInfo></Header><Body>");
sb.append("<DbSource name=\"KHCX\" carrier=\"YD\">YDKHCX</DbSource><Fields Count=\"1\">");
sb.append("<FieldCondition>");
sb.append("<LogicCaculation>and</LogicCaculation>");
sb.append("<LeftBracket></LeftBracket>");
sb.append("<LeftValue>idCard</LeftValue>");
sb.append("<ConditionCalculation>=</ConditionCalculation>");
sb.append("<RightValue>" + zjhm + "</RightValue>");
sb.append("<RightBracket></RightBracket>");
sb.append("</FieldCondition></Fields></Body></Content>");
return sb.toString();
}
/**
* 遍历元素
*
* @param node 元素
* @param json 将元素遍历完成之后放的JSON对象
*/
@SuppressWarnings("unchecked")
public static void iterateNodes(Element node, JSONObject json) {
//获取当前元素的名称
String nodeName = node.getName();
//判断已遍历的JSON中是否已经有了该元素的名称
if (json.containsKey(nodeName)) {
//该元素在同级下有多个
Object Object = json.get(nodeName);
JSONArray array = null;
if (Object instanceof JSONArray) {
array = (JSONArray) Object;
} else {
array = new JSONArray();
array.add(Object);
}
//获取该元素下所有子元素
List<Element> listElement = node.elements();
if (listElement.isEmpty()) {
//该元素无子元素,获取元素的值
String nodeValue = node.getTextTrim();
array.add(nodeValue);
json.put(nodeName, array);
return;
}
//有子元素
JSONObject newJson = new JSONObject();
//遍历所有子元素
for (Element e : listElement) {
//递归
iterateNodes(e, newJson);
}
array.add(newJson);
json.put(nodeName, array);
return;
}
//该元素同级下第一次遍历
//获取该元素下所有子元素
List<Element> listElement = node.elements();
if (listElement.isEmpty()) {
//该元素无子元素,获取元素的值
String nodeValue = node.getTextTrim();
json.put(nodeName, nodeValue);
return;
}
//有子节点,新建一个JSONObject来存储该节点下子节点的值
JSONObject object = new JSONObject();
//遍历所有一级子节点
for (Element e : listElement) {
//递归
iterateNodes(e, object);
}
json.put(nodeName, object);
return;
}
public HnTbStRygxDTO node(String id, String lable, String imgType, String imagePhoto, String boderColor) {
HnTbStRygxDTO mergeDTOgjd = new HnTbStRygxDTO();
mergeDTOgjd.setId(id);
mergeDTOgjd.setLabel(lable);
Kshpropertice kshpropertice = new Kshpropertice();
kshpropertice.setId(id);
kshpropertice.setLabel(lable);
kshpropertice.setImgType(imgType);
kshpropertice.setImagePhoto(imagePhoto);
kshpropertice.setBoderColor(boderColor);
mergeDTOgjd.setProperties(kshpropertice);
return mergeDTOgjd;
}
public kshlinks link(String source, String target, String label, String time, String bsh, String bshlx, String glbsh, String glbshlx, String sjly, String glgx, String glsj) {
kshlinks kshlink = new kshlinks();
kshlink.setSource(source);
kshlink.setTarget(target);
kshlink.setLabel(label);
Linkspropertice linkspropertice = new Linkspropertice();
linkspropertice.setTime(time);
linkspropertice.setSource(source);
linkspropertice.setTarget(target);
linkspropertice.setLabel(label);
GlgxData glgxData = new GlgxData();
List<GlgxData> list = new ArrayList<>();
glgxData.setBsh(bsh);
glgxData.setBshlx(bshlx);
glgxData.setGlbsh(glbsh);
glgxData.setGlbshlx(glbshlx);
glgxData.setSjly(sjly);
glgxData.setGlgx(glgx);
glgxData.setGlsj(glsj);
list.add(glgxData);
linkspropertice.setGlgxData(list);
kshlink.setProperties(linkspropertice);
return kshlink;
}
private String getThlx(String thlxdm) {
String thlx = "";
if (thlxdm != null) {
switch (thlxdm) {
case "1": {
thlx = "主叫";
break;
}
case "2": {
thlx = "被叫";
break;
}
default: {
thlx = "其它";
return thlx;
}
}
}
return thlx;
}
/**
* 手机号码快递查询初始化参数
*
* @param sjhm
* @return
*/
private String initKdConditionByZjhm(String sjhm) {
StringBuffer sb = new StringBuffer();
sb.append("<Content><Header>");
sb.append("<RequestID>JDCX_65.28.39.173_20200825172913_1234</RequestID>");
sb.append("<CommonInfo>");
sb.append("<approveID>430102195309191513</approveID>");
sb.append("<approveName>测试吴俊明</approveName>");
sb.append("<DeptName>局领导</DeptName>");
sb.append("</CommonInfo>");
sb.append("<CaseInfo>");
sb.append("<CaseID>A4301000000002020070001</CaseID>");
sb.append("<CaseName>监管平台对接测试</CaseName>");
sb.append("<CaseProperty>刑事</CaseProperty>");
sb.append("<CaseCause>查询案件:监管平台对接测试</CaseCause>");
sb.append("<CaseResume>查询机主,详单,寄递</CaseResume>");
sb.append("</CaseInfo></Header><Body>");
sb.append("<DbSource name=\"JDCX\" carrier=\"JDCX\">JDCX</DbSource><Fields Count=\"1\">");
sb.append("<FieldCondition>");
sb.append("<LogicCaculation>and</LogicCaculation>");
sb.append("<LeftBracket></LeftBracket>");
sb.append("<LeftValue>PHONE_NUM</LeftValue>");
sb.append("<ConditionCalculation>=</ConditionCalculation>");
sb.append("<RightValue>" + sjhm + "</RightValue>");
sb.append("<RightBracket></RightBracket>");
sb.append("</FieldCondition></Fields></Body></Content>");
return sb.toString();
}
//没有信息返回的空对象
public Hnkshresult result(String name) {
Hnkshresult result = new Hnkshresult();
kshdata kshdata = new kshdata();
dataSumup dataSumup = new dataSumup();
List<String> sumup = new ArrayList<>();
List<HnTbStRygxDTO> nodes = new ArrayList<>();
List<kshlinks> links = new ArrayList<>();
kshdata.setNodes(nodes);
kshdata.setLinks(links);
dataSumup.setList(sumup);
dataSumup.setName(name);
result.setKshdata(kshdata);
result.setDataSumup(dataSumup);
return result;
}
/**
* 将字符串转日期成Long类型的时间戳,格式为:yyyy-MM-dd HH:mm:ss
*/
public static Long convertTimeToLong(String time) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parse = LocalDateTime.parse(time, formatter);
return LocalDateTime.from(parse).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
}
/**
* 手机号码话单查询初始化参数
*
* @param
* @return
*/
private String initHdConditionByZjhm(XyrParam xyrParam) {
StringBuffer sb = new StringBuffer();
sb.append("<Content><Header>");
sb.append("<RequestID>DCCX_65.28.39.173_20200825172913_1234</RequestID>");
sb.append("<CommonInfo>");
sb.append("<approveID>430102195309191513</approveID>");
sb.append("<approveName>测试吴俊明</approveName>");
sb.append("<DeptName>局领导</DeptName>");
sb.append("</CommonInfo>");
sb.append("<CaseInfo>");
sb.append("<CaseID>A4301000000002020070001</CaseID>");
sb.append("<CaseName>监管平台对接测试</CaseName>");
sb.append("<CaseProperty>刑事</CaseProperty>");
sb.append("<CaseCause>查询案件:监管平台对接测试</CaseCause>");
sb.append("<CaseResume>查询机主,详单,寄递</CaseResume>");
sb.append("</CaseInfo></Header><Body>");
sb.append("<DbSource name=\"DCCX\" carrier=\"YD\">GSM,SMS,ROAM,GPRS,local</DbSource><Fields Count=\"2\">");
sb.append("<FieldCondition>");
sb.append("<LogicCaculation>and</LogicCaculation>");
sb.append("<LeftBracket></LeftBracket>");
sb.append("<LeftValue>START_TIME</LeftValue>");
sb.append("<ConditionCalculation>=</ConditionCalculation>");
sb.append("<RightValue>" + xyrParam.getKssj() + "," + xyrParam.getJssj() + "</RightValue>");
sb.append("<RightBracket></RightBracket>");
sb.append("</FieldCondition>");
sb.append("<FieldCondition>");
sb.append("<LogicCaculation>and</LogicCaculation>");
sb.append("<LeftBracket></LeftBracket>");
sb.append("<LeftValue>CHARGE_NUM</LeftValue>");
sb.append("<ConditionCalculation>=</ConditionCalculation>");
sb.append("<RightValue>" + xyrParam.getSjhm() + "</RightValue>");
sb.append("<RightBracket></RightBracket>");
sb.append("</FieldCondition></Fields></Body></Content>");
return sb.toString();
}
}
package com.founder.publicapi.controller.KshService;
import com.founder.commonutils.model.newPublicEntity.hnkshEntity.SysGnsyrzServerApi;
import com.founder.publicapi.mapper.mysqlMapper.SysGnsyrzServerApiMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
@Service
public class LogUtil {
@Autowired
private SysGnsyrzServerApiMapper sysGnsyrzServerApiMapper;
public String getRzlsh(String unitCode) {
String qlw = unitCode.substring(0, 6);
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
String sjdate = formatter.format(new Date());
String lsh = getOrderIdByUUId();
String yrzlsh = qlw + sjdate + lsh;
String rzlsh = yrzlsh.replace(" ", "");
return rzlsh;
}
private String getOrderIdByUUId() {
int machineId = 1;
int hashCodeV = UUID.randomUUID().toString().hashCode();
if (hashCodeV < 0) {
hashCodeV = -hashCodeV;
}
return machineId + String.format("%015d", hashCodeV);
}
public String insertGNSYRZOPENAPI(String type, String yymc, String cxcs, String userId, String userName, String unitCode, String unitName, String lxdh, String ip) {
String rzlsh = null;
rzlsh = getRzlsh(unitCode);
String cznr = "";
if (cxcs != null && !"".equals(cxcs)) {
cxcs = cxcs.replace(" ", ",");
}
if ("01".equals(type)) {
cznr = "执行[查询]动作,参数为:" + cxcs;
} else if ("02".equals(type)) {
cznr = "执行[新建]动作";
} else if ("03".equals(type)) {
cznr = "执行[修改]动作,参数为:" + cxcs;
} else if ("04".equals(type)) {
cznr = "执行[删除]动作,参数为:" + cxcs;
} else if ("05".equals(type)) {
cznr = "执行[点击访问]动作,参数为:" + cxcs;
}else if ("09".equals(type)) {
cznr = "执行[登录]动作,参数为:" + cxcs;
}else {
cznr = "执行[未知]操作,参数为:" + cxcs + ",类型为:" + type;
}
Date now = new Date();
SysGnsyrzServerApi gnsyrz = new SysGnsyrzServerApi();
gnsyrz.setYhGmsfhm(userId);
gnsyrz.setYhIp(ip);
gnsyrz.setYhdwGajgjgdm(unitCode);
gnsyrz.setYhdwGajgmc(unitName);
gnsyrz.setRzlsh(rzlsh);
gnsyrz.setDjsj(now);
gnsyrz.setGxsj(now);
gnsyrz.setFwsj(now);
gnsyrz.setXxdjdwGajgjgdm(unitCode);
gnsyrz.setXxdjdwGajgmc(unitName);
gnsyrz.setXxscPdbz("0");
gnsyrz.setXxdjryXm(userName);
gnsyrz.setXxdjryGmsfhm(userId);
gnsyrz.setXxdjryLxdh(lxdh);
gnsyrz.setXxczdwGajgjgdm(unitCode);
gnsyrz.setXxczdwGajgmc(unitName);
gnsyrz.setXxczryGmsfhm(userId);
gnsyrz.setXxczryXm(userName);
gnsyrz.setCzlxdm(type);
gnsyrz.setCzxxJyqk(cznr);
gnsyrz.setYymcJyqk(yymc);
gnsyrz.setXxlyms("系统功能日志");
sysGnsyrzServerApiMapper.saveSysgnsyrz(gnsyrz);
return rzlsh;
}
}
package com.founder.publicapi.controller.KshService;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
public class LogsUtil {
/**
* @Author Axu 获取类中的非空字段
* @Date 10:45 2019/11/15
* @Param [sourceObject]
* @return java.util.Map<java.lang.String,java.lang.Object>
**/
public static Map<String, Object> getNotEmptyFiled(Object sourceObject){
Map<String, Object> notEmptyFiled = new HashMap<>();
Class sourceClass = sourceObject.getClass();
Method[] sourceMethods = sourceClass.getDeclaredMethods();
for(int i = 0; i < sourceMethods.length; i ++){
String methodName = sourceMethods[i].getName();
if(methodName != null && methodName.startsWith("get")){
try{
Object returnSource = sourceMethods[i].invoke(sourceObject);
if(returnSource != null && !returnSource.equals("")){
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(Character.toLowerCase(methodName.split("get")[1].charAt(0))).append(methodName.split("get")[1].substring(1));
String key = stringBuilder.toString();
notEmptyFiled.put(key, returnSource);
}
}catch (Exception e){
e.printStackTrace();
}
}
}
return notEmptyFiled;
}
}
......@@ -402,7 +402,7 @@ public class GlgxInterface {
sb.append("</FieldCondition></Fields></Body></Content>");
return sb.toString();
}
}
/**
* 手机号码机主查询参数
......
/*
package com.founder.publicapi.controller.SkInterface;
import com.alibaba.fastjson.JSON;
......@@ -11,14 +10,16 @@ import com.founder.commonutils.util.ExportExcelUtil;
import com.founder.commonutils.util.HttpClient;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.xssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
......@@ -31,65 +32,32 @@ public class TsinfoController {
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
String url = "http://tianshu.gat.zj/tsure/assistQueryResult/queryAssistForPage.json";
@PostMapping("/export")
@GetMapping("/export")
@ApiOperation("Excel接口")
public void export(@RequestParam(name = "id") String id){
// 天枢导出注册
CompletableFuture future = CompletableFuture.supplyAsync(() -> {
Integer zdryexist =0;
public void export(@RequestParam(name = "id") String id,HttpServletResponse response){
XSSFWorkbook wb = new XSSFWorkbook();
try {
List<CarInfo> carList = exportData(carInfoService.selectCarInfoListCount(entity),entity);
ExportExcelUtil<CarInfo> exportExcelUtil = new ExportExcelUtil<>();
String[] headersName = {"车架号","品牌型号","车辆颜色","发动机号","车辆所有人","出卖人姓名","出卖人身份证号","营业场所名称","法人姓名","法人联系电话"};
String[] headersField = {"vin","ppxh","ys","fdjh","clsyr","cmrXm","cmrZjhm","yycsmc","frxm","frlxdh"};
exportExcelUtil.exportExcel("DataStatistics", headersName, headersField, carList, response,"二手车信息");
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}, threadPoolTaskExecutor);
// 天枢导出登录
CompletableFuture future2 = CompletableFuture.supplyAsync(() -> {
Integer zdryexist =0;
try {
List<CarInfo> carList = exportData(carInfoService.selectCarInfoListCount(entity),entity);
ExportExcelUtil<CarInfo> exportExcelUtil = new ExportExcelUtil<>();
String[] headersName = {"车架号","品牌型号","车辆颜色","发动机号","车辆所有人","出卖人姓名","出卖人身份证号","营业场所名称","法人姓名","法人联系电话"};
String[] headersField = {"vin","ppxh","ys","fdjh","clsyr","cmrXm","cmrZjhm","yycsmc","frxm","frlxdh"};
exportExcelUtil.exportExcel("DataStatistics", headersName, headersField, carList, response,"二手车信息");
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}, threadPoolTaskExecutor);
// 天枢导出交易
CompletableFuture future3 = CompletableFuture.supplyAsync(() -> {
Integer zdryexist =0;
try {
List<CarInfo> carList = exportData(carInfoService.selectCarInfoListCount(entity),entity);
ExportExcelUtil<CarInfo> exportExcelUtil = new ExportExcelUtil<>();
String[] headersName = {"车架号","品牌型号","车辆颜色","发动机号","车辆所有人","出卖人姓名","出卖人身份证号","营业场所名称","法人姓名","法人联系电话"};
String[] headersField = {"vin","ppxh","ys","fdjh","clsyr","cmrXm","cmrZjhm","yycsmc","frxm","frlxdh"};
exportExcelUtil.exportExcel("DataStatistics", headersName, headersField, carList, response,"二手车信息");
// table 登录(logon_log_acc) 注册(register) 账户明细(consume_query_real_time)
createExcel(exportData("logon_log_acc",id), "登录", wb);
createExcel(exportData("register",id),"注册", wb);
createExcel(exportData("consume_query_real_time",id), "交易", wb);
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename="
.concat("log.xls"));
OutputStream out = response.getOutputStream();
wb.write(out);
wb.close();
out.close();;
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}, threadPoolTaskExecutor);
future.join();
future2.join();
future3.join();
}
public List<CarInfo> exportData(int size,CarInfo carInfo) throws Exception {
List<CarInfo> list = new ArrayList<>();
public List<Map<String, Object>> exportData(String table,String id) throws Exception {
int size = getCount(table,id);
List<Map<String, Object>> list = new ArrayList<>();
// 分页
int limit=1000;
// 特殊处理
if(limit==0){
limit=1;
}
long threadNum = size / limit;
int startnum = 0;
int endnum = 0;
......@@ -106,55 +74,54 @@ public class TsinfoController {
if (startnum == endnum) {
break;
}
carInfo.setPage(startnum);
carInfo.setPageSize(limit);
Task task = new Task(carInfo);
FutureTask<List<CarInfo>> futureTask = new FutureTask<>(task);
Task task = new Task( table,limit,startnum,id);
FutureTask<List<Map<String, Object>>> futureTask = new FutureTask<>(task);
ExecutorService executorService = Executors.newFixedThreadPool(100);
executorService.submit(futureTask);
List<CarInfo> list1 = futureTask.get();
List<Map<String, Object>> list1 = futureTask.get();
list.addAll(list1);
executorService.shutdown();
}
return list;
}
class Task implements Callable<List<CarInfo>> {
class Task implements Callable<List<Map<String, Object>>> {
private String table;
private Integer pageSize;
private Integer pageNum;
public Task(String table,Integer pageSize,Integer pageNum) {
private String id;
public Task(String table,Integer pageSize,Integer pageNum,String id) {
this.table = table;
this.pageSize = pageSize;
this.pageNum = pageNum;
this.id = id;
}
@Override
public List<CarInfo> call() {
list<> listResult = new ArrayList<>();
public List<Map<String, Object>> call() {
List<Map<String, Object>> listResult = new ArrayList<>();
HttpClient httpClient = new HttpClient();
JSONObject params = new JSONObject();
// table 登录(logon_log_acc) 注册(register) 账户明细(consume_query_real_time)
params.put("pageSize", pageSize);
params.put("pageNum", pageNum);
params.put("tsureRequireId", "311072023091100672254");
params.put("tableName", table);
JSONObject result = null;
try {
result = httpClient.doPostJsonHunanTs(url, params.toJSONString());
} catch (Exception e) {
e.printStackTrace();
}
result = httpClient.doPostJsonHunanTs(url, params.toJSONString(),"JSESSIONID",id);
if (result != null) {
if ("true".equals(result.getString("success"))) {
JSONArray jsonArray = result.getJSONArray("data");
listResult = (List<Map<String, Object>>) translate(jsonArray);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return listResult;
}
}
// 获取总数
public Integer getCount(String table){
public Integer getCount(String table,String id){
Integer totalCount = 0;
HttpClient httpClient = new HttpClient();
JSONObject params = new JSONObject();
......@@ -165,7 +132,7 @@ public class TsinfoController {
params.put("tableName", table);
JSONObject result = null;
try {
result = httpClient.doPostJsonHunanTs(url, params.toJSONString());
result = httpClient.doPostJsonHunanTs(url, params.toJSONString(),"JSESSIONID",id);
} catch (Exception e) {
e.printStackTrace();
}
......@@ -176,5 +143,97 @@ public class TsinfoController {
}
return totalCount;
}
/**
* 将JSONArray对象转换成List集合
*
* @param json
* @return
* @see
*/
public static Object translate(JSONArray json) {
List<Object> list = new ArrayList<Object>();
for (Object o : json) {
if (o instanceof JSONArray)
list.add(translate((JSONArray) o));
else if (o instanceof JSONObject)
list.add(translate((JSONObject) o));
else
list.add(o);
}
return list;
}
/**
* 将JSONObjec对象转换成Map集合
*
* @param json
* @return
* @see
*/
public static HashMap<String, Object> translate(JSONObject json) {
HashMap<String, Object> map = new HashMap<String, Object>();
Set keys = json.keySet();
for (Object key : keys) {
Object o = json.get(key);
if (o instanceof JSONArray)
map.put((String) key, translate((JSONArray) o));
else if (o instanceof JSONObject)
map.put((String) key, translate((JSONObject) o));
else
map.put((String) key, o);
}
return map;
}
public void createExcel(List<Map<String, Object>> mapList,String title,XSSFWorkbook wb) {
//获取数据源的 key, 用于获取列数及设置标题
Map<String, Object> map = mapList.get(0);
Set<String> stringSet = map.keySet();
ArrayList<String> headList = new ArrayList<>(stringSet);
//创建一个Sheet页
XSSFSheet sheet = wb.createSheet(title);
//设置行高
sheet.setDefaultRowHeight((short) (2 * 256));
//为有数据的每列设置列宽
for (int i = 0; i < headList.size(); i++) {
sheet.setColumnWidth(i, 8000);
}
//设置单元格字体样式
XSSFFont font = wb.createFont();
font.setFontName("等线");
font.setFontHeightInPoints((short) 16);
//在sheet里创建第一行,并设置单元格内容为 title (标题)
XSSFRow titleRow = sheet.createRow(0);
XSSFCell titleCell = titleRow.createCell(0);
titleCell.setCellValue(title);
// 创建单元格文字居中样式并设置标题单元格居中
XSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);
titleCell.setCellStyle(cellStyle);
//获得表格第二行
XSSFRow row = sheet.createRow(1);
//根据数据源信息给第二行每一列设置标题
for (int i = 0; i < headList.size(); i++) {
XSSFCell cell = row.createCell(i);
cell.setCellValue(headList.get(i));
}
XSSFRow rows;
XSSFCell cells;
//循环拿到的数据给所有行每一列设置对应的值
for (int i = 0; i < mapList.size(); i++) {
//在这个sheet页里创建一行
rows = sheet.createRow(i + 2);
//给该行数据赋值
for (int j = 0; j < headList.size(); j++) {
String value;
if (mapList.get(i).get(headList.get(j)) !=null){
value = mapList.get(i).get(headList.get(j)).toString();
}else {
value = "";
}
cells = rows.createCell(j);
cells.setCellValue(value);
}
}
}
}
*/
package com.founder.publicapi.mapper.mysqlMapper;
import com.founder.commonutils.model.newPublicEntity.hnkshEntity.SysGnsyrzServerApi;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
@Component
@Mapper
public interface SysGnsyrzServerApiMapper {
void saveSysgnsyrz(SysGnsyrzServerApi var1);
}
<?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.publicapi.mapper.mysqlMapper.SysGnsyrzServerApiMapper">
<insert id="saveSysgnsyrz" parameterType="com.founder.commonutils.model.newPublicEntity.hnkshEntity.SysGnsyrzServerApi">
INSERT INTO sys_gnsyrz_serverapi (
rzlsh
,fwsj
,yymc_jyqk
,yh_gmsfhm
,yh_ip
,yhdw_gajgjgdm
,yhdw_gajgmc
,czlxdm
,czxx_jyqk
,xxsc_pdbz
,xxdjdw_gajgjgdm
,xxdjdw_gajgmc
,xxdjry_xm
,xxdjry_gmsfhm
,xxdjry_lxdh
,djsj
,xxczdw_gajgjgdm
,xxczdw_gajgmc
,xxczry_xm
,xxczry_gmsfhm
,gxsj
,xxlyms
)
VALUES(
#{ rzlsh , jdbcType=VARCHAR }
,now()
,#{ yymcJyqk , jdbcType=VARCHAR }
,#{ yhGmsfhm , jdbcType=VARCHAR }
,#{ yhIp , jdbcType=VARCHAR }
,#{ yhdwGajgjgdm , jdbcType=VARCHAR }
,#{ yhdwGajgmc , jdbcType=VARCHAR }
,#{ czlxdm , jdbcType=VARCHAR }
,#{ czxxJyqk , jdbcType=VARCHAR }
,#{ xxscPdbz , jdbcType=VARCHAR }
,#{ xxdjdwGajgjgdm , jdbcType=VARCHAR }
,#{ xxdjdwGajgmc , jdbcType=VARCHAR }
,#{ xxdjryXm , jdbcType=VARCHAR }
,#{ xxdjryGmsfhm , jdbcType=VARCHAR }
,#{ xxdjryLxdh , jdbcType=VARCHAR }
,now()
,#{ xxczdwGajgjgdm , jdbcType=VARCHAR }
,#{ xxczdwGajgmc , jdbcType=VARCHAR }
,#{ xxczryXm , jdbcType=VARCHAR }
,#{ xxczryGmsfhm , jdbcType=VARCHAR }
,now()
,#{ xxlyms , jdbcType=VARCHAR }
)
</insert>
</mapper>
......@@ -87,8 +87,8 @@
<if test="ajlbdm!= null and ajlbdm!=''">
AND T.AJLBDM like concat(#{ajlbdm , jdbcType=VARCHAR }, '%')
</if>
<if test="zatzJyqk!= null and zatzJyqk!=''">
AND T.ZATZ_JYQK = #{zatzJyqk , jdbcType=VARCHAR }
<if test="zatzjyqk!= null and zatzjyqk!=''">
AND T.ZATZ_JYQK = #{zatzjyqk , jdbcType=VARCHAR }
</if>
<if test="ajxlb!= null and ajxlb!=''">
AND asjbz.ajxlb = #{ajxlb , jdbcType=VARCHAR }
......
......@@ -496,15 +496,15 @@ public class TbStAsjServiceImpl extends ServiceImpl<TbStAsjMapper, TbStAsj> impl
}
// 小类案别
if (StringUtils.isNotBlank(asj.getZatzJyqk())) {
if (StringUtils.isNotBlank(asj.getZatzjyqk())) {
// 根据规则截取
String zatz = "";
if (asj.getZatzJyqk().endsWith("000000")) {
zatz = asj.getZatzJyqk().substring(0, 6) + "*";
} else if(asj.getZatzJyqk().endsWith("00")){
zatz = asj.getZatzJyqk().substring(0, 10) + "*";
if (asj.getZatzjyqk().endsWith("000000")) {
zatz = asj.getZatzjyqk().substring(0, 6) + "*";
} else if(asj.getZatzjyqk().endsWith("00")){
zatz = asj.getZatzjyqk().substring(0, 10) + "*";
}else{
zatz = asj.getZatzJyqk();
zatz = asj.getZatzjyqk();
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("zatzJyqk", zatz);
bqAj.must(wildcardQueryBuilder);
......
......@@ -1244,7 +1244,7 @@ public class ZtypServiceImpl implements ZtypService {
naoTuHdXx.setDfsjhm(objPhone.getString("oppositeNumber"));
naoTuHdXx.setHjsj(objPhone.getString("beginTime"));
naoTuHdXx.setThsc(objPhone.getString("timeLen"));
naoTuHdXx.setThlx(getThlx(objPhone.getString("timeLen")));
naoTuHdXx.setThlx(getThlx(objPhone.getString("CallType")));
hdList.add(naoTuHdXx);
}
}
......
{
"status": 200,
"msg": "ok",
"data": {
"kshdata": {
"nodes": [
{
"id": "BGSC001",
"label": "BGSC001",
"id": "18199625540",
"label": "18199625540",
"properties": {
"id": "BGSC001",
"label": "BGSC001",
"imgType": "imsi"
"id": "18199625540",
"label": "18199625540",
"imgType": "sjk",
"imagePhoto": null,
"boderColor": null
}
},
{
"id": "KFS001",
"label": "KFS001",
"id": "430123196510265891",
"label": "430123196510265891",
"properties": {
"id": "KFS001",
"label": "KFS001",
"imgType": "imei"
"id": "430123196510265891",
"label": "430123196510265891",
"imgType": "imsi",
"imagePhoto": null,
"boderColor": null
}
},
{
"id": "18545251333",
"label": "18545251333",
"id": "430123196510265892",
"label": "430123196510265892",
"properties": {
"id": "18545251333",
"label": "18545251333",
"imgType": "sjk"
}
},
{
"id": "长沙市第一医院",
"label": "长沙市第一医院",
"properties": {
"id": "长沙市第一医院",
"label": "长沙市第一医院",
"imgType": "mac"
"id": "430123196510265892",
"label": "430123196510265892",
"imgType": "imei",
"imagePhoto": null,
"boderColor": null
}
}
],
"links": [
{
"source": "430123196510265891",
"target": "BGSC001",
"label": "IMSI",
"source": "18199625540",
"target": "430123196510265892",
"label": "imsi",
"properties": {
"time": "2022-09-16 09:59:11",
"label": "IMSI",
"source": "430123196510265891",
"target": "BGSC001"
}
},
"time": null,
"source": "18199625540",
"target": "430123196510265892",
"label": "imsi",
"glgxData": [
{
"source": "430123196510265891",
"target": "KFS001",
"label": "IMEI",
"properties": {
"time": "2022-09-16 09:59:11",
"label": "IMEI",
"source": "430123196510265891",
"target": "KFS001"
"bsh": "18199625540",
"bshlx": "sjk",
"glbsh": "430123196510265892",
"glbshlx": "imsi",
"sjly": "科信",
"glgx": "四码关联",
"glsj": null
}
},
{
"source": "430123196510265891",
"target": "18545251333",
"label": "手机号",
"properties": {
"time": "2022-09-16 09:59:11",
"label": "手机号",
"source": "430123196510265891",
"target": "18545251333"
]
}
},
{
"source": "430123196510265891",
"target": "长沙市第一医院",
"label": "MAC",
"source": "18199625540",
"target": "430123196510265891",
"label": "imei",
"properties": {
"time": "2022-09-16 09:59:11",
"label": "MAC",
"source": "430123196510265891",
"target": "长沙市第一医院"
"time": null,
"source": "18199625540",
"target": "430123196510265891",
"label": "imei",
"glgxData": [
{
"bsh": "18199625540",
"bshlx": "sjk",
"glbsh": "430123196510265891",
"glbshlx": "imei",
"sjly": "科信",
"glgx": "四码关联",
"glsj": null
}
]
}
}
]
......@@ -88,10 +88,11 @@
"dataSumup": {
"name": "四码关联",
"list": [
"BGSC001",
"KFS001",
"18545251333",
"长沙市第一医院"
"18199625540",
"430123196510265892",
"430123196510265891"
]
}
},
"count": null
}
\ No newline at end of file
{
"status": 200,
"msg": "ok",
"data": {
"kshdata": {
"nodes": [
{
"id": "6226201910281010001",
"label": "转账/3万元",
"properties": {
"id": "6226201910281010001",
"label": "转账/3万元",
"imgType": "yhk",
"imagePhoto": null,
"boderColor": null
}
},
{
"id": "6226201910211010003",
"label": "转账/7万元",
"properties": {
"id": "6226201910211010003",
"label": "转账/7万元",
"imgType": "yhk",
"imagePhoto": null,
"boderColor": null
}
},
{
"id": "6226201910211010002",
"label": "转账/10万元",
"properties": {
"id": "6226201910211010003",
"label": "转账/10万元",
"imgType": "yhk",
"imagePhoto": null,
"boderColor": null
}
}
],
"links": [
{
"source": "6226201910211010002",
"target": "6226201910281010001",
"label": "2023-08-05/转账3万元",
"properties": {
"time": "2023-08-05",
"source": "6226201910211010002",
"target": "6226201910281010001",
"label": "2023-08-05",
"glgxData": [
{
"bsh": "6226201910211010002",
"bshlx": "yhk",
"glbsh": "6226201910281010001",
"glbshlx": "yhk",
"sjly": "库",
"glgx": "转账记录",
"glsj": "2023-08-05"
}
]
}
},
{
"source": "6226201910211010002",
"target": "6226201910211010003",
"label": "2023-08-10/转账7万元",
"properties": {
"time": "2023-08-10",
"source": "6226201910211010002",
"target": "6226201910211010003",
"label": "2023-08-10/转账7万元",
"glgxData": [
{
"bsh": "6226201910211010002",
"bshlx": "yhk",
"glbsh": "6226201910211010003",
"glbshlx": "yhk",
"sjly": "库",
"glgx": "转账记录",
"glsj": "2023-08-10"
}
]
}
}
]
},
"dataSumup": {
"name": "资金流",
"list": [
"6226201910281010001",
"6226201910211010003",
"6226201910211010002"
]
}
},
"count": null
}
\ No newline at end of file
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