Commit fe4ac7e2 by Leslie1w

新增指纹比对信息系列接口

parent 128fd75c
......@@ -2,6 +2,8 @@ package org.springblade.founder.utils;
import org.apache.commons.lang.StringUtils;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
......@@ -130,7 +132,7 @@ public class DateUtil {
return new SimpleDateFormat("yyyy-MM-dd").format(time);
}
public static String format(Date date, String pattern) throws ParseException {
public static String format(Date date, String pattern) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(date);
}
......@@ -175,4 +177,47 @@ public class DateUtil {
}
return result;
}
public static double mytest15(String startTime, String endTime) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = dateFormat.parse(startTime);
Date endDate = dateFormat.parse(endTime);
Integer datePoor = getDatePoor(startDate,endDate);
BigDecimal b = new BigDecimal((double)datePoor/60);
Double hour = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();//第一个参数是保留小数的位数
// System.out.println(hour);
return hour;
}
public static Integer getDatePoor(Date startDate, Date endDate) {
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
// long ns = 1000;
// 获得两个时间的毫秒时间差异
long diff = endDate.getTime() - startDate.getTime();
// 计算差多少天
long day = diff / nd;
// 计算差多少小时
long hour = diff % nd / nh;
// 计算差多少分钟
Long min = diff % nd % nh / nm;
// 计算差多少秒//输出结果
// long sec = diff % nd % nh % nm / ns;
Long mymint = diff/1000/60;
int intValue = mymint.intValue();
return intValue;
}
public static void main(String[] args) {
try {
double v = mytest15("2023-12-05 12:12:12", "2023-12-07 11:13:12");
System.out.println(v >24);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
package org.springblade.founder.zwbd.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springblade.founder.asj.entity.TbXwKyxsRy;
import org.springblade.founder.log.LogOper;
import org.springblade.founder.utils.R;
import org.springblade.founder.zwbd.entity.AppZwxx;
import org.springblade.founder.zwbd.mapper.AppZwxxMapper;
import org.springblade.founder.zwbd.service.AppZwxxService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/zwxx")
public class AppZwxxController {
@Autowired
private AppZwxxService appZwxxService;
@Autowired
private AppZwxxMapper appZwxxMapper;
@PostMapping("/saveZwxx")
@LogOper(czxxLbdm = "02", yymcJyqk = "0701", czxxJyqk = "新增指纹比对任务")
public R saveZwxx( AppZwxx appZwxx) {
try {
String xxzjbh = appZwxxService.saveZwxx(appZwxx);
if (xxzjbh == null){
return R.error("指纹比对任务保存失败");
}
return R.ok().data("xxzjbh", xxzjbh);
} catch (Exception e) {
e.printStackTrace();
return R.error(e.getMessage());
}
}
@PostMapping("/updateZwxx")
@LogOper(czxxLbdm = "03", yymcJyqk = "0701", czxxJyqk = "修改指纹比对任务")
public R updateZwxx( AppZwxx appZwxx) {
try {
String xxzjbh = appZwxxService.updateZwxx(appZwxx);
if (xxzjbh == null){
return R.error("指纹比对任务保存失败");
}
return R.ok().data("xxzjbh", xxzjbh);
} catch (Exception e) {
e.printStackTrace();
return R.error(e.getMessage());
}
}
@PostMapping("/getZwxxByAsjbh")
@LogOper(czxxLbdm = "01", yymcJyqk = "0701", czxxJyqk = "查询指纹比对信息")
public R getZwxxByAsjbh(String xxzjbh) {
try {
Map<String, Object> map = new HashMap<>();
QueryWrapper<AppZwxx> ryQueryWrapper = new QueryWrapper<>();
ryQueryWrapper.eq("xxzjbh",xxzjbh);
ryQueryWrapper.eq("xxsc_pdbz", "0");
AppZwxx appZwxx = appZwxxMapper.selectOne(ryQueryWrapper);
map.put("appZwxx",appZwxx);
return R.ok().data(map);
} catch (Exception e) {
e.printStackTrace();
return R.error(e.getMessage());
}
}
@PostMapping("/getZwxxList")
@LogOper(czxxLbdm = "01", yymcJyqk = "0701", czxxJyqk = "查询指纹比对信息列表")
public R getZwxxList(AppZwxx zwxx) {
try {
Map<String, Object> zwxxList = appZwxxService.getZwxxList(zwxx);
return R.ok().data(zwxxList);
} catch (Exception e) {
e.printStackTrace();
return R.error(e.getMessage());
}
}
@PostMapping("/deleteZwxxByAsjbh")
@LogOper(czxxLbdm = "04", yymcJyqk = "0701", czxxJyqk = "删除指纹比对信息")
public R deleteZwxxByAsjbh(String xxzjbh) {
try {
Map<String, Object> map = new HashMap<>();
QueryWrapper<AppZwxx> ryQueryWrapper = new QueryWrapper<>();
ryQueryWrapper.eq("xxzjbh",xxzjbh);
ryQueryWrapper.eq("xxsc_pdbz", "0");
int delete = appZwxxMapper.delete(ryQueryWrapper);
if (delete > 0){
return R.ok("删除成功");
}
return R.error("删除失败").data("xxzjbh",xxzjbh);
} catch (Exception e) {
e.printStackTrace();
return R.error(e.getMessage());
}
}
@PostMapping("/fileUpload")
public R fileUpload(String xxzjbh, HttpServletResponse response){
try {
appZwxxService.getNyzwtp(xxzjbh,response);
return R.ok();
} catch (Exception e){
e.printStackTrace();
return R.error(e.getMessage());
}
}
}
package org.springblade.founder.zwbd.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.founder.entity.BaseModel;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("tb_st_app_zwxx")
public class AppZwxx extends BaseModel {
private String xxzjbh;
private String asjbh;
private String ajmc;
private String xkbh;//现勘编号
private String ajlbdm;//案件类别代码
@TableField(exist = false)
private String ajlbdmStr;
@TableField(exist = false)
private String sfbz;//比中状态
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date fasj;//发案时间
@TableField(exist = false)
private String fasjStr;//发案时间
private String fadqh;//发案地区划
private String fadxz;//发案地详址
private String jqaq;//简要案情
private String tqdw;//提取单位
private String tqr;//提取人
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date tqsj;//提取时间
@TableField(exist = false)
private String tqsjStr;//提取时间
private String filename;//文件名称
private byte[] nyzwtp;//指纹图片
@TableField(exist = false)
private MultipartFile file;
}
package org.springblade.founder.zwbd.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springblade.founder.zwbd.entity.AppZwxx;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface AppZwxxMapper extends BaseMapper<AppZwxx> {
List<AppZwxx> selectZwxxList(String asjbh,String ajmc,String xkbh,String ajlbdm, @Param("page") Integer page, @Param("limit") Integer limit);
int selectZwxxListCount(String asjbh,String ajmc,String xkbh,String ajlbdm);
}
<?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="org.springblade.founder.zwbd.mapper.AppZwxxMapper">
<select id="selectZwxxList" resultType="org.springblade.founder.zwbd.entity.AppZwxx">
select
xxzjbh
,asjbh
,ajmc
,xkbh
,(select name from sys_dictitem where groupid = 'CODE_AJLB' and code = ajlbdm) ajlbdmStr
,ajlbdm
,DATE_FORMAT(fasj,'%Y-%m-%d %H:%i:%S') as fasjStr
,fadqh
,fadxz
,jqaq
,tqdw
,tqr
,DATE_FORMAT(tqsj,'%Y-%m-%d %H:%i:%S') as tqsjStr
,filename
, DATE_FORMAT(djsj,'%Y-%m-%d %H:%i:%S') as djsj
, DATE_FORMAT(gxsj,'%Y-%m-%d %H:%i:%S') as gxsj
,xxsc_pdbz as xxscPdbz
,xxdjdw_gajgjgdm as xxdjdwGajgjgdm
,xxdjdw_gajgmc as xxdjdwGajgmc
,xxdjry_xm as xxdjryXm
,xxdjry_gmsfhm as xxdjryGmsfhm
,xxdjry_lxdh as xxdjryLxdh
,xxczdw_gajgjgdm as xxczdwGajgjgdm
,xxczdw_gajgmc as xxczdwGajgmc
,xxczry_xm as xxczryXm
,xxczry_gmsfhm as xxczryGmsfhm
,xxlyms as xxlyms
from tb_st_app_zwxx
where xxsc_pdbz='0'
<if test="asjbh != null and asjbh != ''">
and asjbh= #{asjbh}
</if>
<if test="ajmc != null and ajmc != ''">
and ajmc= #{ajmc}
</if>
<if test="xkbh != null and xkbh != ''">
and xkbh= #{xkbh}
</if>
<if test="ajlbdm != null and ajlbdm != ''">
and ajlbdm= #{ajlbdm}
</if>
order by djsj desc
limit #{page}, #{limit}
</select>
<select id="selectZwxxListCount" resultType="int">
select count(*)
from tb_st_app_zwxx
where xxsc_pdbz='0'
<if test="asjbh != null and asjbh != ''">
and asjbh= #{asjbh}
</if>
<if test="ajmc != null and ajmc != ''">
and ajmc= #{ajmc}
</if>
<if test="xkbh != null and xkbh != ''">
and xkbh= #{xkbh}
</if>
<if test="ajlbdm != null and ajlbdm != ''">
and ajlbdm= #{ajlbdm}
</if>
order by djsj desc
</select>
</mapper>
package org.springblade.founder.zwbd.service;
import org.springblade.founder.zwbd.entity.AppZwxx;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
public interface AppZwxxService {
String saveZwxx(AppZwxx appZwxx);
String updateZwxx(AppZwxx appZwxx);
Map<String, Object> getZwxxList(AppZwxx zwxx);
void getNyzwtp(String version, HttpServletResponse response) throws IOException;
}
package org.springblade.founder.zwbd.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.springblade.core.secure.utils.SecureUtil;
import org.springblade.founder.asj.entity.*;
import org.springblade.founder.utils.DateUtil;
import org.springblade.founder.utils.SysXxzjbhService;
import org.springblade.founder.utils.Utils;
import org.springblade.founder.zwbd.entity.AppZwxx;
import org.springblade.founder.zwbd.mapper.AppZwxxMapper;
import org.springblade.founder.zwbd.service.AppZwxxService;
import org.springblade.modules.system.entity.XzxtUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class AppZwxxServiceImpl extends ServiceImpl<AppZwxxMapper, AppZwxx> implements AppZwxxService {
@Autowired
private AppZwxxMapper appZwxxMapper;
@Autowired
private SysXxzjbhService xxzjbhService;
@Override
public String saveZwxx(AppZwxx appZwxx) {
XzxtUser xzxtUser = SecureUtil.getUserXzxt();
String xxzjbh = xxzjbhService.getXxzjbh(xzxtUser.getUnitcode());
appZwxx.setXxzjbh(xxzjbh);
String fileName = appZwxx.getFile().getOriginalFilename();
appZwxx.setFilename(fileName);
try {
appZwxx.setNyzwtp(appZwxx.getFile().getBytes());
} catch (IOException e) {
e.printStackTrace();
}
appZwxx.setXxscPdbz("0");
Utils.setUserDjxxAndCzxx(appZwxx);
int insert = appZwxxMapper.insert(appZwxx);
if (insert > 0){
return xxzjbh;
}
return null;
}
@Override
public String updateZwxx(AppZwxx appZwxx) {
String fileName = appZwxx.getFile().getOriginalFilename();
appZwxx.setFilename(fileName);
try {
appZwxx.setNyzwtp(appZwxx.getFile().getBytes());
} catch (IOException e) {
e.printStackTrace();
}
Utils.setUserCzxx(appZwxx);
appZwxx.setXxscPdbz("0");
appZwxx.setGxsj(new Date());
QueryWrapper<AppZwxx> wrapper = new QueryWrapper<>();
wrapper.eq("xxzjbh",appZwxx.getXxzjbh());
int insert = appZwxxMapper.update(appZwxx,wrapper);
if (insert > 0){
return appZwxx.getXxzjbh();
}
return null;
}
@Override
public Map<String, Object> getZwxxList(AppZwxx zwxx) {
Utils.setPageParams(zwxx);
HashMap<String, Object> resultMap = new HashMap<>();
List<AppZwxx> appZwxxes = appZwxxMapper.selectZwxxList(zwxx.getAsjbh(), zwxx.getAjmc(), zwxx.getXkbh(), zwxx.getAjlbdm(), zwxx.getBegin(), zwxx.getEnd());
int count = appZwxxMapper.selectZwxxListCount(zwxx.getAsjbh(), zwxx.getAjmc(), zwxx.getXkbh(), zwxx.getAjlbdm());
appZwxxes.stream().forEach( p->{
//判断登记时间是否超过24小时
try {
double v = DateUtil.mytest15(DateUtil.getDateStr(p.getDjsj()), DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
if(v >=24){
p.setSfbz("未比中");
}else {
p.setSfbz("比对中");
}
} catch (ParseException e) {
log.error("时间转换失败");
e.printStackTrace();
}
});
resultMap.put("total", count);
resultMap.put("rows", appZwxxes);
return resultMap;
}
@Override
public void getNyzwtp(String xxzjbh, HttpServletResponse response) {
QueryWrapper<AppZwxx> ryQueryWrapper = new QueryWrapper<>();
ryQueryWrapper.eq("xxzjbh",xxzjbh);
ryQueryWrapper.eq("xxsc_pdbz", "0");
AppZwxx bbgx = appZwxxMapper.selectOne(ryQueryWrapper);
InputStream inputStream = null;
try {
inputStream = new ByteArrayInputStream(bbgx.getNyzwtp());
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(bbgx.getFilename(), "UTF-8"));
ServletOutputStream outputStream = response.getOutputStream();
IOUtils.copy(inputStream, outputStream);
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outputStream);
} catch (Exception e) {
log.error("文件下载失败,该文件主键为:{}",xxzjbh);
e.printStackTrace();
} finally {
IOUtils.closeQuietly(inputStream);
// IOUtils.closeQuietly(outputStream);
}
}
}
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