Commit 99b8cb5f by yangyang

Merge remote-tracking branch 'origin/skyp_Api' into skyp_Api

parents 573ccc1e 4c7c0607
package com.founder.commonutils.util;
import org.apache.poi.hssf.usermodel.*;
import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 导出Excel工具类 admin 2018/10/11
* title 表名
* headersName 使用数组封装excel列名
* headersId 使用数组封装对应列名需要展示的列的属性名 (二者需要一一对应,顺序不能打乱)
* dtoList 对象结果集
* */
public class ExportExcelUtil<T> {
@SuppressWarnings("deprecation")
public void exportExcel(String title, String[] headersName,
String[] headersId, List<T> dtoList, HttpServletResponse response, String name)
throws Exception {
Map<Integer, String> headersNameMap = new HashMap<>();
int key = 0;
for (int i = 0; i < headersName.length; i++) {
if (!headersName[i].equals(null)) {
headersNameMap.put(key, headersName[i]);
key++;
}
}
Map<Integer, String> titleFieldMap = new HashMap<>();
int value = 0;
for (int i = 0; i < headersId.length; i++) {
if (!headersId[i].equals(null)) {
titleFieldMap.put(value, headersId[i]);
value++;
}
}
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet(title);
sheet.setDefaultColumnWidth((short) 15);
// 生成一个样式
HSSFCellStyle style = wb.createCellStyle();
HSSFRow row = sheet.createRow(0);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFCell cell;
Collection<String> c = headersNameMap.values();// 拿到表格所有标题的value的集合
Iterator<String> it = c.iterator();// 表格标题的迭代器
// 根据选择的字段生成表头
short size = 0;
while (it.hasNext()) {
cell = row.createCell(size);
cell.setCellValue(it.next().toString());
cell.setCellStyle(style);
size++;
}
Collection<String> zdC = titleFieldMap.values();
Iterator<T> labIt = new ArrayList<T>().iterator();
if (dtoList != null) {
labIt = dtoList.iterator();
}
int zdRow = 0;
while (labIt.hasNext()) {// 记录的迭代器,遍历总记录
int zdCell = 0;
zdRow++;
row = sheet.createRow(zdRow);
T l = (T) labIt.next();
List<Field> fields = new ArrayList<>();
Class<?> tempClass = l.getClass();
while (tempClass != null) {
fields.addAll(Arrays.asList(tempClass.getDeclaredFields()));
tempClass = tempClass.getSuperclass();
}
Iterator<String> zdIt = zdC.iterator();
while (zdIt.hasNext()) {// 遍历要导出的字段集合
String next = zdIt.next();
for (short i = 0; i < fields.size(); i++) {// 遍历属性,比对
Field field = fields.get(i);
String fieldName = field.getName();// 属性名
if (next.equals(fieldName)) {
String getMethodName = "get"
+ fieldName.substring(0, 1).toUpperCase()
+ fieldName.substring(1);// 拿到属性的get方法
try {
Class<?> cls = l.getClass();
Method getMethod = cls.getMethod(getMethodName,
new Class[] {});
Object val = getMethod.invoke(l, new Object[] {});
String textVal = null;
if (val != null) {
// 如果是double类型则只保留两位小说
if (field.getGenericType().toString()
.equals("double")
|| field.getGenericType().toString()
.equals("Double")) {
DecimalFormat df = new DecimalFormat(
"#0.00");
String format = df.format(val);
textVal = String.valueOf(format);
} else {
textVal = String.valueOf(val);// 转化成String
}
} else {
textVal = null;
}
row.createCell((short) zdCell)
.setCellValue(textVal);
zdCell++;
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
OutputStream out = response.getOutputStream();
try {
response.setContentType("application/x-download");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition", "attachment;fileName="
+ new String((name).getBytes("gbk"), "iso8859-1")
+ new SimpleDateFormat("yyyy-MM-dd").format(new Date())
+ ".xls");
wb.write(out);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
......@@ -11,6 +11,7 @@ import com.founder.commonutils.model.vo.param.SkRegionalsPersonSaveParam;
import com.founder.commonutils.util.Base64Util;
import com.founder.commonutils.util.KeyUtil;
import com.founder.commonutils.model.newPublicEntity.SkRegionalsPerson;
import com.founder.publicapi.controller.SkInterface.RyxxQgInterface;
import com.founder.servicebase.controller.ExcelControllerInterface;
import com.founder.servicebase.logs.OperLog;
import com.founder.servicebase.logs.OperationType;
......@@ -18,6 +19,7 @@ import com.founder.publicapi.service.SkRegionalsPersonService;
import com.founder.commonutils.util.SpringUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
......@@ -40,7 +42,8 @@ public class SkRegionalsPersonController extends ApiController implements ExcelC
*/
@Resource
private SkRegionalsPersonService skRegionalsPersonService;
@Value("${environment}")
private String environment;
/**
* 新增人员信息
*/
......@@ -123,21 +126,22 @@ public class SkRegionalsPersonController extends ApiController implements ExcelC
@ApiOperation(value = "查询人员列表信息")
@OperLog(message = "查询人员列表信息", operation = OperationType.QUERY)
public MapRestResult query(@RequestBody SkRegionalsPersonParam skRegionalsDetailParam) {
//分页
Page page = new Page(skRegionalsDetailParam.getPage(), skRegionalsDetailParam.getPageSize());
QueryWrapper queryWrapper = new QueryWrapper();
// 阿里云用dev 公安网用prod
if("dev".equals(environment)){
//分页
Page page = new Page(skRegionalsDetailParam.getPage(), skRegionalsDetailParam.getPageSize());
QueryWrapper queryWrapper = new QueryWrapper();
if (skRegionalsDetailParam.getSfzhm()!=null&& !"".equals(skRegionalsDetailParam.getSfzhm())){
queryWrapper.like("sfzhm",skRegionalsDetailParam.getSfzhm());
}
queryWrapper.eq("isDeleted", "0");
queryWrapper.orderByDesc("cjsj");
if (skRegionalsDetailParam.getSfzhm()!=null&& !"".equals(skRegionalsDetailParam.getSfzhm())){
queryWrapper.like("sfzhm",skRegionalsDetailParam.getSfzhm());
IPage page1 = skRegionalsPersonService.page(page, queryWrapper);
return new MapRestResult(200, "OK", page1.getTotal(), page1.getRecords());
}
queryWrapper.eq("isDeleted", "0");
queryWrapper.orderByDesc("cjsj");
IPage page1 = skRegionalsPersonService.page(page, queryWrapper);
return new MapRestResult(200, "OK", page1.getTotal(), page1.getRecords());
return RyxxQgInterface.getQgckAllxxXml(skRegionalsDetailParam.getSfzhm());
}
@Override
......
......@@ -9,15 +9,12 @@ import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.commonutils.model.vo.param.SkTrailParam;
import com.founder.commonutils.model.vo.param.SkTrailSaveParam;
import com.founder.commonutils.model.vo.response.SkTrailVO;
import com.founder.commonutils.util.Base64Util;
import com.founder.commonutils.util.DateUtil;
import com.founder.commonutils.util.KeyUtil;
import com.founder.commonutils.util.*;
import com.founder.commonutils.model.newPublicEntity.SkTrail;
import com.founder.servicebase.controller.ExcelControllerInterface;
import com.founder.servicebase.logs.OperLog;
import com.founder.servicebase.logs.OperationType;
import com.founder.publicapi.service.SkTrailService;
import com.founder.commonutils.util.SpringUtil;
import com.founder.servicebase.service.SkDictionaryService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
......@@ -25,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
......@@ -234,6 +232,36 @@ public class SkTrailController extends ApiController implements ExcelControllerI
}
@PostMapping("/export")
@ApiOperation("Excel接口")
//@OperLog(message = "Excel接口(轨迹导出)", operation = OperationType.QUERY)
public void export(HttpServletResponse response,@RequestBody SkTrailParam sktrailParam)throws Exception{
//分页
Page page = new Page(sktrailParam.getPage(), sktrailParam.getPageSize());
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("isDeleted", "0");
if (sktrailParam.getLikeField() != null && !sktrailParam.getLikeField().equals("")) {
queryWrapper.eq("objectType", sktrailParam.getLikeField());
}
if (sktrailParam.getLikeValue() != null && !sktrailParam.getLikeValue().equals("")) {
queryWrapper.like("objectValue", sktrailParam.getLikeValue());
}
//时间
if (sktrailParam.getKssj() != null && !sktrailParam.getKssj().equals("")) {
queryWrapper.ge("str_to_date(date,'%Y-%m-%d %H:%i:%s')", sktrailParam.getKssj());
}
if (sktrailParam.getJssj() != null && !sktrailParam.getJssj().equals("")) {
queryWrapper.le("str_to_date(date,'%Y-%m-%d %H:%i:%s')", sktrailParam.getJssj());
}
IPage page1 = skTrailService.page(page, queryWrapper);
List<SkTrail> records = page1.getRecords();
ExportExcelUtil<SkTrail> exportExcelUtil = new ExportExcelUtil<>();
String[] headersName = {"号码","经度","纬度","时间","地址"};
String[] headersField = {"objectvalue","x","y","time","address"};
exportExcelUtil.exportExcel("DataStatistics", headersName, headersField, records, response,"轨迹信息");
}
/**
* 根据编号查找相关轨迹
*/
......
package com.founder.publicapi.controller.SkInterface;
import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.commonutils.model.newPublicEntity.SkRegionalsPerson;
import com.founder.commonutils.util.HttpUtil;
import com.founder.publicapi.mapper.mysqlMapper.SysDictitemMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.HashMap;
import java.util.List;
/**
* 全国人员常口接口
*
*/
@Api(description = "全国人员常口接口")
@RequestMapping(value="/ryxxqgIntegerface")
public class RyxxQgInterface {
@Autowired
private static SysDictitemMapper sysDictitemMapper;
@ApiOperation(value = "获取全国常住人口信息")
@PostMapping("/ryxxQg")
public static MapRestResult getQgckAllxxXml(String zjhm){
SkRegionalsPerson ryxx=new SkRegionalsPerson();
String esbServiceReturn="";
//String url="http://10.100.17.115:8080/NmgEsbQueryService/QueryLocalPersonForOther?conditions=sfzh="+"'"+zjhm+"'";
String url=getConn()+"'"+zjhm+"'";
HttpUtil hu=new HttpUtil();
try {
esbServiceReturn=hu.doGet(url);
} catch (Exception e) {
return MapRestResult.error("失败"+e);
}
ryxx=getryJbxxxmls(esbServiceReturn);
return MapRestResult.build(200,"成功获取全国常口人员信息",ryxx);
}
public static SkRegionalsPerson getryJbxxxmls(String esb_result){
SkRegionalsPerson resulryxx=new SkRegionalsPerson();
/* esb_result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
"<RBSPMessage>"+
"<Version/>"+
"<ServiceID>S10-00000298</ServiceID>"+
"<TimeStamp/>"+
"<Validity/>"+
"<Security>"+
"<Signature Algorithm=\"\"/>"+
"<CheckCode Algorithm=\"\"/>"+
"<Encrypt/>"+
"</Security>"+
"<Method>"+
"<Name>Query</Name>"+
"<Items>"+
"<Item>"+
"<Value Type=\"arrayOfArrayOf_string\">"+
"<Row>"+
"<Data>000</Data>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"<Data/>"+
"</Row>"+
"<Row>"+
"<Data>CYM</Data>"+
"<Data>JGSSX</Data>"+
"<Data>WHCD</Data>"+
"<Data>XP</Data>"+
"<Data>HYZK</Data>"+
"<Data>BYQK</Data>"+
"<Data>SFZH</Data>"+
"<Data>XM</Data>"+
"<Data>MZ</Data>"+
"<Data>XB</Data>"+
"<Data>HKSZD</Data>"+
"<Data>CSDXZ</Data>"+
"<Data>FWCS</Data>"+
"<Data>CSRQ</Data>"+
"<Data>ZZXZ</Data>"+
"<Data>SG</Data>"+
"</Row>"+
"<Row>"+
"<Data/>"+
"<Data>150929</Data>"+
"<Data/>"+
"<Data>/9j/4AAQSkZJRgABAQEBXgFeAAD/2</Data>"+
"<Data/>"+
"<Data/>"+
"<Data>152634199205290614</Data>"+
"<Data>测试</Data>"+
"<Data>01</Data>"+
"<Data>1</Data>"+
"<Data>150929</Data>"+
"<Data>哈彦忽洞自然村</Data>"+
"<Data/>"+
"<Data>19920529</Data>"+
"<Data>内蒙古乌兰察布市四子王旗东八号乡哈彦忽洞自然村</Data>"+
"<Data/>"+
"</Row>"+
"</Value>"+
"</Item>"+
"</Items>"+
"</Method>"+
"</RBSPMessage>";*/
Document document = null;
HashMap<String,String> codeMap = new HashMap<String,String>();
String zp64bite="";
try {
document = DocumentHelper.parseText(esb_result);
Element root = document.getRootElement();
Element rmethedType = root.element("Method");
Element itemsType = rmethedType.element("Items");
Element itemType = itemsType.element("Item");
Element data = itemType.element("Value");
if(data!=null){
List<Element> dataElement = data.elements();
if(dataElement.size() > 2){
List<Element> element =dataElement.get(2).elements();//得到人员对应值
String JGSSX=element.get(1).getTextTrim();
String XP=element.get(3).getTextTrim();
String SFZH=element.get(6).getTextTrim();
String XM=element.get(7).getTextTrim();
String MZ=element.get(8).getTextTrim();
String XB=element.get(9).getTextTrim();
String HKSZD=element.get(10).getTextTrim();
String CSDXZ=element.get(11).getTextTrim();
String csrq=element.get(13).getTextTrim();
String ZZXZ=element.get(14).getTextTrim();
for(int i=0;i<element.size();i++){
zp64bite=element.get(3).getTextTrim();
}
resulryxx.setImg(zp64bite);// 人员照片
resulryxx.setXm(XM); // 姓名
// 民族转为汉字
codeMap.put("groupid", "CODE_MZ");
codeMap.put("code", MZ);
String mz = sysDictitemMapper.getNameByCode(codeMap);
resulryxx.setMz(mz);// 民族
// 性别转为汉字
codeMap.put("groupid", "CODE_XB");
codeMap.put("code",XB);
String xb = sysDictitemMapper.getNameByCode(codeMap);
resulryxx.setXb(xb);
// 户籍地转为汉字
codeMap.put("groupid", "CODE_XZQH");
codeMap.put("code",HKSZD);
String hjdmc = sysDictitemMapper.getNameByCode(codeMap);
resulryxx.setHjdqhdz(hjdmc);// 户籍地名称
resulryxx.setSfzhm(SFZH);// 证件号码
resulryxx.setCsdzmc(CSDXZ);// 出生地址名称
resulryxx.setXzzdzmc(ZZXZ);// 现住址名称
if(null!=csrq&&!csrq.trim().isEmpty()) {
resulryxx.setCsrq(csrq);// 出生日期
}else{
resulryxx.setCsrq(null);// 出生日期
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return resulryxx;
}
private static String getConn(){
String url="http://26.3.16.58:8080/NmgEsbQueryService/QueryLocalPersonForOther?conditions=sfzh=";
return url;
}
}
\ No newline at end of file
package com.founder.publicapi.mapper.mysqlMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
@Mapper
public interface SysDictitemMapper {
String getNameByCode(Map<String, String> map);
}
<?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.SysDictitemMapper">
<!-- 根据code和groupid查询name值-->
<select id="getNameByCode" parameterType="java.util.Map" resultType="java.lang.String">
select name from sys_dictitem where scbz='0'
<if test="groupid!=null and groupid!=''">and groupid = #{groupid}</if>
<if test="code!=null and code!=''">and code = #{code}</if>
</select>
</mapper>
\ No newline at end of file
......@@ -25,4 +25,6 @@ mybatis-plus.mapper-locations=classpath*:com/founder/publicapi/mapper/*/xml/*.xm
management.health.elasticsearch.enabled=false
#??????
ssdw=460000000000
#server.tomcat.basedir: /tmp/tomcat
\ No newline at end of file
#server.tomcat.basedir: /tmp/tomcat
#dev prod
environment=dev
\ No newline at end of file
......@@ -25,4 +25,6 @@ mybatis-plus.mapper-locations=classpath*:com/founder/publicapi/mapper/*/xml/*.xm
management.health.elasticsearch.enabled=false
#������λ
ssdw=460000000000
#server.tomcat.basedir: /tmp/tomcat
\ No newline at end of file
#server.tomcat.basedir: /tmp/tomcat
#阿里云用dev 公安网用prod
environment=prod
\ 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