v10,大屏优化,批量上传优化
This commit is contained in:
parent
e81d002324
commit
be212e350c
|
@ -2,19 +2,21 @@ package net.shapelight.common.utils;
|
||||||
|
|
||||||
import com.github.junrar.Archive;
|
import com.github.junrar.Archive;
|
||||||
import com.github.junrar.rarfile.FileHeader;
|
import com.github.junrar.rarfile.FileHeader;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import net.coobird.thumbnailator.Thumbnails;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.apache.tools.zip.ZipEntry;
|
import org.apache.tools.zip.ZipEntry;
|
||||||
import org.apache.tools.zip.ZipFile;
|
import org.apache.tools.zip.ZipFile;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
import java.io.File;
|
import javax.imageio.ImageIO;
|
||||||
import java.io.FileOutputStream;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.InputStream;
|
import java.io.*;
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
public class CompressZipUtils {
|
public class CompressZipUtils {
|
||||||
// @Autowired
|
// @Autowired
|
||||||
// private static List<String> copyFileNames = new ArrayList<>();
|
// private static List<String> copyFileNames = new ArrayList<>();
|
||||||
private static List<String> excelFiles = new ArrayList<>();
|
private static List<String> excelFiles = new ArrayList<>();
|
||||||
private static List<String> imageFiles = new ArrayList<>();
|
private static List<String> imageFiles = new ArrayList<>();
|
||||||
|
@ -84,29 +86,30 @@ public class CompressZipUtils {
|
||||||
解压到指定文件夹下,然后拷贝到目标文件夹下覆盖
|
解压到指定文件夹下,然后拷贝到目标文件夹下覆盖
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
public static Map<String,List<String>> unZipFiles(File zipFile, String unZipDir) throws Exception {
|
public static Map<String, List<String>> unZipFiles(File zipFile, String unZipDir) throws Exception {
|
||||||
excelFiles.clear();
|
excelFiles.clear();
|
||||||
imageFiles.clear();
|
imageFiles.clear();
|
||||||
Map<String,List<String>> filesMap = new HashMap<>();
|
Map<String, List<String>> filesMap = new HashMap<>();
|
||||||
File pathFile = new File(unZipDir);
|
File pathFile = new File(unZipDir);
|
||||||
if(!pathFile.exists()){
|
if (!pathFile.exists()) {
|
||||||
pathFile.mkdirs();
|
pathFile.mkdirs();
|
||||||
}
|
}
|
||||||
ZipFile zip = new ZipFile(zipFile);
|
ZipFile zip = new ZipFile(zipFile);
|
||||||
//List<String> fileNames = new ArrayList<>();
|
//List<String> fileNames = new ArrayList<>();
|
||||||
for(Enumeration entries = zip.getEntries();entries.hasMoreElements();){
|
for (Enumeration entries = zip.getEntries(); entries.hasMoreElements(); ) {
|
||||||
ZipEntry entry = (ZipEntry)entries.nextElement();
|
ZipEntry entry = (ZipEntry) entries.nextElement();
|
||||||
entry.setUnixMode(644); // 解决linux乱码
|
entry.setUnixMode(644); // 解决linux乱码
|
||||||
String zipEntryName = entry.getName();
|
String zipEntryName = entry.getName();
|
||||||
InputStream in = zip.getInputStream(entry);
|
InputStream in = zip.getInputStream(entry);
|
||||||
String outPath = (unZipDir+zipEntryName).replaceAll("\\*", "/");;
|
String outPath = (unZipDir + zipEntryName).replaceAll("\\*", "/");
|
||||||
|
;
|
||||||
//判断路径是否存在,不存在则创建文件路径
|
//判断路径是否存在,不存在则创建文件路径
|
||||||
File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
|
File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
|
||||||
if(!file.exists()){
|
if (!file.exists()) {
|
||||||
file.mkdirs();
|
file.mkdirs();
|
||||||
}
|
}
|
||||||
//判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
|
//判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
|
||||||
if(new File(outPath).isDirectory()){
|
if (new File(outPath).isDirectory()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//输出文件路径信息
|
//输出文件路径信息
|
||||||
|
@ -115,8 +118,8 @@ public class CompressZipUtils {
|
||||||
OutputStream out = new FileOutputStream(outPath);
|
OutputStream out = new FileOutputStream(outPath);
|
||||||
byte[] buf1 = new byte[1024];
|
byte[] buf1 = new byte[1024];
|
||||||
int len;
|
int len;
|
||||||
while((len=in.read(buf1))>0){
|
while ((len = in.read(buf1)) > 0) {
|
||||||
out.write(buf1,0,len);
|
out.write(buf1, 0, len);
|
||||||
}
|
}
|
||||||
in.close();
|
in.close();
|
||||||
out.close();
|
out.close();
|
||||||
|
@ -133,27 +136,46 @@ public class CompressZipUtils {
|
||||||
// System.out.println(string);
|
// System.out.println(string);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
filesMap.put("excel",excelFiles);
|
filesMap.put("excel", excelFiles);
|
||||||
filesMap.put("image",imageFiles);
|
filesMap.put("image", imageFiles);
|
||||||
return filesMap;
|
return filesMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void listFiles(File srcDir){
|
public static void listFiles(File srcDir) {
|
||||||
// excelFiles.clear();
|
// excelFiles.clear();
|
||||||
// imageFiles.clear();
|
// imageFiles.clear();
|
||||||
File[] files = srcDir.listFiles(); //列出所有的子文件
|
File[] files = srcDir.listFiles(); //列出所有的子文件
|
||||||
for(File file :files)
|
for (File file : files) {
|
||||||
{
|
if (file.isFile())//如果是文件,则输出文件名字
|
||||||
if(file.isFile())//如果是文件,则输出文件名字
|
|
||||||
{
|
{
|
||||||
String fileName = file.getAbsolutePath();
|
String fileName = file.getAbsolutePath();
|
||||||
//判断jpg图片
|
//判断jpg图片
|
||||||
if (fileName.endsWith("jpg") || fileName.endsWith("jpeg") || fileName.endsWith("png")) {
|
if (fileName.endsWith("jpg") || fileName.endsWith("jpeg") || fileName.endsWith("png")) {
|
||||||
|
//-----------------------------压缩图片------------------------------------------------
|
||||||
|
try {
|
||||||
|
// File picture = new File(orgFileStr);
|
||||||
|
BufferedImage sourceImg = ImageIO.read(new FileInputStream(file));
|
||||||
|
int w = sourceImg.getWidth();
|
||||||
|
int h = sourceImg.getHeight();
|
||||||
|
// long fileSize = picture.length();
|
||||||
|
// if(fileSize<200000l){
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
if (w > 1080 || h > 1080) {
|
||||||
|
Thumbnails.of(file)
|
||||||
|
.size(1080, 1080)
|
||||||
|
.toFile(file);
|
||||||
|
}
|
||||||
|
log.error("压缩图片。。。。。。。。。。。。。。。。。。。。。。。。。。。。");
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
}
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
imageFiles.add(fileName);
|
imageFiles.add(fileName);
|
||||||
}else if(fileName.endsWith("xls") || fileName.endsWith("xlsx")){
|
} else if (fileName.endsWith("xls") || fileName.endsWith("xlsx")) {
|
||||||
excelFiles.add(fileName);
|
excelFiles.add(fileName);
|
||||||
}
|
}
|
||||||
}else if(file.isDirectory())//如果是文件夹,则输出文件夹的名字,并递归遍历该文件夹
|
} else if (file.isDirectory())//如果是文件夹,则输出文件夹的名字,并递归遍历该文件夹
|
||||||
{
|
{
|
||||||
listFiles(file);//递归遍历
|
listFiles(file);//递归遍历
|
||||||
}
|
}
|
||||||
|
@ -161,7 +183,6 @@ public class CompressZipUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// public static File[] returnFiles(String strPath) {
|
// public static File[] returnFiles(String strPath) {
|
||||||
// File dir = new File(strPath);
|
// File dir = new File(strPath);
|
||||||
// File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组
|
// File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组
|
||||||
|
@ -203,7 +224,7 @@ public class CompressZipUtils {
|
||||||
// return copyFileNames;
|
// return copyFileNames;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
public static void main(String args[]){
|
public static void main(String args[]) {
|
||||||
// try{
|
// try{
|
||||||
// File srcDir = new File("D:/images/20190909095419/2019");
|
// File srcDir = new File("D:/images/20190909095419/2019");
|
||||||
// List<String> names = copyJpgFiles(srcDir,"D:/images/20190909095419/2020");
|
// List<String> names = copyJpgFiles(srcDir,"D:/images/20190909095419/2020");
|
||||||
|
@ -213,16 +234,16 @@ public class CompressZipUtils {
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
|
|
||||||
try{
|
try {
|
||||||
File srcDir = new File("D:\\project\\cell\\temp\\730349916982870023\\ab028c688f294c74a91ed4290c381afa");
|
File srcDir = new File("D:\\project\\cell\\temp\\730349916982870023\\ab028c688f294c74a91ed4290c381afa");
|
||||||
listFiles(srcDir);
|
listFiles(srcDir);
|
||||||
for(String string: CompressZipUtils.getExcelFiles()){
|
for (String string : CompressZipUtils.getExcelFiles()) {
|
||||||
System.out.println(string);
|
System.out.println(string);
|
||||||
}
|
}
|
||||||
for(String string: CompressZipUtils.getImageFiles()){
|
for (String string : CompressZipUtils.getImageFiles()) {
|
||||||
System.out.println(string);
|
System.out.println(string);
|
||||||
}
|
}
|
||||||
}catch (Exception e){
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
package net.shapelight.common.utils;
|
||||||
|
|
||||||
|
public class IDCardValidator {
|
||||||
|
public static boolean isValidChineseID(String id) {
|
||||||
|
if (id == null || (id.length() != 18)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
char[] idArray = id.toCharArray();
|
||||||
|
int[] weight = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
|
||||||
|
char[] checkCode = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
|
||||||
|
int sum = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < idArray.length - 1; i++) {
|
||||||
|
int num = Integer.parseInt(String.valueOf(idArray[i]));
|
||||||
|
if (num < 0 || num > 9) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
sum += num * weight[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
sum = sum % 11;
|
||||||
|
char lastChar = idArray[17];
|
||||||
|
return lastChar == checkCode[sum];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String id = "610402196509200013";
|
||||||
|
boolean valid = isValidChineseID(id);
|
||||||
|
System.out.println("身份证号码 " + id + " 是否有效: " + valid);
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,6 +11,7 @@ import com.arcsoft.face.toolkit.ImageInfo;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import io.minio.PutObjectOptions;
|
import io.minio.PutObjectOptions;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import net.shapelight.common.utils.IDCardValidator;
|
||||||
import net.shapelight.common.utils.R;
|
import net.shapelight.common.utils.R;
|
||||||
import net.shapelight.common.utils.UUIDUtil;
|
import net.shapelight.common.utils.UUIDUtil;
|
||||||
import net.shapelight.commons.engine.sdk.PicSDK;
|
import net.shapelight.commons.engine.sdk.PicSDK;
|
||||||
|
@ -239,6 +240,12 @@ public class PersonExcelListener extends AnalysisEventListener<PersonModel> {
|
||||||
list.add(personModel);
|
list.add(personModel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
boolean idCardVilid = IDCardValidator.isValidChineseID(personModel.getIdCard());
|
||||||
|
if(!idCardVilid){
|
||||||
|
personModel.setMessage("身份证号码不合规");
|
||||||
|
list.add(personModel);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
String gender = personModel.getGender();
|
String gender = personModel.getGender();
|
||||||
if(gender==null){
|
if(gender==null){
|
||||||
|
@ -250,6 +257,8 @@ public class PersonExcelListener extends AnalysisEventListener<PersonModel> {
|
||||||
char genderCode = personModel.getIdCard().charAt(16);
|
char genderCode = personModel.getIdCard().charAt(16);
|
||||||
String g = (genderCode % 2 == 0) ? "女" : "男";
|
String g = (genderCode % 2 == 0) ? "女" : "男";
|
||||||
personModel.setGender(g);
|
personModel.setGender(g);
|
||||||
|
}else{
|
||||||
|
personModel.setGender("男");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if (!gender.equals("男") && !gender.equals("女")) {
|
// if (!gender.equals("男") && !gender.equals("女")) {
|
||||||
|
|
|
@ -1545,6 +1545,7 @@ public class HttpApiController {
|
||||||
record.setScore(Float.parseFloat(scoreString));
|
record.setScore(Float.parseFloat(scoreString));
|
||||||
record.setIdCard(idCard);
|
record.setIdCard(idCard);
|
||||||
record.setName(name);
|
record.setName(name);
|
||||||
|
record.setLabelName("访客");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
//保存图片
|
//保存图片
|
||||||
|
@ -1608,6 +1609,7 @@ public class HttpApiController {
|
||||||
//人脸识别成功,
|
//人脸识别成功,
|
||||||
TenPersonEntity tenPersonEntity = tenPersonService.getByIdWithDelete(Long.parseLong(faceRecognitionResDTO.getPersonId()));
|
TenPersonEntity tenPersonEntity = tenPersonService.getByIdWithDelete(Long.parseLong(faceRecognitionResDTO.getPersonId()));
|
||||||
|
|
||||||
|
String labelName = "";
|
||||||
//----------------------------------------以下业务-----------------------------------------------------
|
//----------------------------------------以下业务-----------------------------------------------------
|
||||||
log.debug("人脸识别成功:"+sn);
|
log.debug("人脸识别成功:"+sn);
|
||||||
// TenDeviceEntity deviceEntity = tenDeviceService.findBySn(sn);
|
// TenDeviceEntity deviceEntity = tenDeviceService.findBySn(sn);
|
||||||
|
@ -1615,7 +1617,7 @@ public class HttpApiController {
|
||||||
if(tenPersonEntity.getPersonType() == Constant.PERSON_TYPE_GUEST){
|
if(tenPersonEntity.getPersonType() == Constant.PERSON_TYPE_GUEST){
|
||||||
//访客,直接判断有效期
|
//访客,直接判断有效期
|
||||||
if(now.getTime() >= tenPersonEntity.getLiveStart().getTime() && now.getTime() <= tenPersonEntity.getLiveEnd().getTime()){
|
if(now.getTime() >= tenPersonEntity.getLiveStart().getTime() && now.getTime() <= tenPersonEntity.getLiveEnd().getTime()){
|
||||||
|
labelName = "访客";
|
||||||
}else{
|
}else{
|
||||||
//不在时间段内
|
//不在时间段内
|
||||||
return R.error("不在有效期,禁止通行");
|
return R.error("不在有效期,禁止通行");
|
||||||
|
@ -1629,6 +1631,7 @@ public class HttpApiController {
|
||||||
TenLabelEntity personLabel = tenLabelService.getById(tenPersonEntity.getLabelId());
|
TenLabelEntity personLabel = tenLabelService.getById(tenPersonEntity.getLabelId());
|
||||||
for(TenLabelEntity labelEntity: labelList){
|
for(TenLabelEntity labelEntity: labelList){
|
||||||
if(labelEntity.getLabelId().intValue() == personLabel.getLabelId().intValue()){
|
if(labelEntity.getLabelId().intValue() == personLabel.getLabelId().intValue()){
|
||||||
|
labelName = labelEntity.getName();
|
||||||
hasLabel = true;
|
hasLabel = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1684,6 +1687,7 @@ public class HttpApiController {
|
||||||
// record.setScore(faceRecognitionResDTO.getSimilar());
|
// record.setScore(faceRecognitionResDTO.getSimilar());
|
||||||
record.setIdCard(tenPersonEntity.getIdCard());
|
record.setIdCard(tenPersonEntity.getIdCard());
|
||||||
record.setName(tenPersonEntity.getName());
|
record.setName(tenPersonEntity.getName());
|
||||||
|
record.setLabelName(labelName);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
//保存图片
|
//保存图片
|
||||||
|
@ -1713,6 +1717,7 @@ public class HttpApiController {
|
||||||
if(icCard !=null && icCard.length()>0){
|
if(icCard !=null && icCard.length()>0){
|
||||||
// TenDeviceEntity deviceEntity = tenDeviceService.findBySn(sn);
|
// TenDeviceEntity deviceEntity = tenDeviceService.findBySn(sn);
|
||||||
TenPersonEntity tenPersonEntity = tenPersonService.findByIcCardTop(icCard,deviceEntity.getTenantId()+"");
|
TenPersonEntity tenPersonEntity = tenPersonService.findByIcCardTop(icCard,deviceEntity.getTenantId()+"");
|
||||||
|
String labelName = "";
|
||||||
if(tenPersonEntity!=null){
|
if(tenPersonEntity!=null){
|
||||||
|
|
||||||
//----------------------------------------以下业务-----------------------------------------------------
|
//----------------------------------------以下业务-----------------------------------------------------
|
||||||
|
@ -1724,6 +1729,7 @@ public class HttpApiController {
|
||||||
for(TenLabelEntity labelEntity: labelList){
|
for(TenLabelEntity labelEntity: labelList){
|
||||||
if(labelEntity.getLabelId().intValue() == personLabel.getLabelId().intValue()){
|
if(labelEntity.getLabelId().intValue() == personLabel.getLabelId().intValue()){
|
||||||
hasLabel = true;
|
hasLabel = true;
|
||||||
|
labelName = labelEntity.getName();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1758,6 +1764,7 @@ public class HttpApiController {
|
||||||
record.setIdCard(tenPersonEntity.getIdCard());
|
record.setIdCard(tenPersonEntity.getIdCard());
|
||||||
record.setName(tenPersonEntity.getName());
|
record.setName(tenPersonEntity.getName());
|
||||||
record.setScore(1.0f);
|
record.setScore(1.0f);
|
||||||
|
record.setLabelName(labelName);
|
||||||
|
|
||||||
// tenRecordService.saveServer(record);
|
// tenRecordService.saveServer(record);
|
||||||
recordSaveSyncService.offerQueue(record);
|
recordSaveSyncService.offerQueue(record);
|
||||||
|
|
|
@ -12,9 +12,7 @@ import net.shapelight.modules.sys.entity.SysUserEntity;
|
||||||
import net.shapelight.modules.sys.service.SysUserRoleService;
|
import net.shapelight.modules.sys.service.SysUserRoleService;
|
||||||
import net.shapelight.modules.ten.entity.*;
|
import net.shapelight.modules.ten.entity.*;
|
||||||
import net.shapelight.modules.ten.service.*;
|
import net.shapelight.modules.ten.service.*;
|
||||||
import net.shapelight.modules.vo.TenBuildVo;
|
import net.shapelight.modules.vo.*;
|
||||||
import net.shapelight.modules.vo.TenPersonMonthCountVo;
|
|
||||||
import net.shapelight.modules.vo.TenRecordVo;
|
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -604,4 +602,25 @@ public class TenDataViewController extends AbstractController {
|
||||||
private String name;
|
private String name;
|
||||||
private Integer value;
|
private Integer value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/getTodayLabelRecordCount")
|
||||||
|
@ApiOperation(value = "当天人员类型通行统计",response = Map.class)
|
||||||
|
public R getTodayLabelRecordCount(@RequestParam Map<String, Object> params){
|
||||||
|
String tenantId = getUser().getTenantId()+"";
|
||||||
|
params.put("tenantId",tenantId+"");
|
||||||
|
|
||||||
|
List<TenTodayLabelCount> countData = tenRecordService.findTodayLabelCount(tenantId);
|
||||||
|
return R.ok().put("data", countData);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getDeptPersonCount")
|
||||||
|
@ApiOperation(value = "组织人员统计",response = Map.class)
|
||||||
|
public R getDeptPersonCount(@RequestParam Map<String, Object> params){
|
||||||
|
String tenantId = getUser().getTenantId()+"";
|
||||||
|
params.put("tenantId",tenantId+"");
|
||||||
|
|
||||||
|
List<TenDeptPersonCount> countData = tenPersonService.findDeptCount(tenantId);
|
||||||
|
return R.ok().put("data", countData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import net.shapelight.modules.ten.entity.TenLabelEntity;
|
import net.shapelight.modules.ten.entity.TenLabelEntity;
|
||||||
import net.shapelight.modules.ten.entity.TenPersonEntity;
|
import net.shapelight.modules.ten.entity.TenPersonEntity;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import net.shapelight.modules.vo.TenPersonIdUpdateAllVo;
|
import net.shapelight.modules.vo.*;
|
||||||
import net.shapelight.modules.vo.TenPersonIdUpdateVo;
|
|
||||||
import net.shapelight.modules.vo.TenPersonMonthCountVo;
|
|
||||||
import net.shapelight.modules.vo.TenPersonVo;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
@ -131,4 +128,6 @@ public interface TenPersonDao {
|
||||||
|
|
||||||
List<String> getAllIdCard(@Param("tenantId")String tenantId);
|
List<String> getAllIdCard(@Param("tenantId")String tenantId);
|
||||||
|
|
||||||
|
List<TenDeptPersonCount> findDeptCount(@Param("tenantId")String tenantId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import net.shapelight.modules.ten.entity.TenLabelEntity;
|
import net.shapelight.modules.ten.entity.TenLabelEntity;
|
||||||
import net.shapelight.modules.ten.entity.TenRecordEntity;
|
import net.shapelight.modules.ten.entity.TenRecordEntity;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import net.shapelight.modules.vo.TenTodayLabelCount;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
@ -53,4 +54,6 @@ public interface TenRecordDao{
|
||||||
void deleteDaysIntervalRecords(@Param("days") String days, @Param("tenantId") String tenantId);
|
void deleteDaysIntervalRecords(@Param("days") String days, @Param("tenantId") String tenantId);
|
||||||
|
|
||||||
List<TenRecordEntity> findListAll(@Param("cellIds") List<Long> cellIds, @Param("params") Map params);
|
List<TenRecordEntity> findListAll(@Param("cellIds") List<Long> cellIds, @Param("params") Map params);
|
||||||
|
|
||||||
|
List<TenTodayLabelCount> findTodayLabelCount(@Param("tenantId") String tenantId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,4 +188,6 @@ cameraParam 否 string 相机参数
|
||||||
private String idCard;
|
private String idCard;
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
private String labelName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import net.shapelight.common.utils.PageUtils;
|
import net.shapelight.common.utils.PageUtils;
|
||||||
import net.shapelight.modules.excel.model.PersonModel;
|
import net.shapelight.modules.excel.model.PersonModel;
|
||||||
import net.shapelight.modules.ten.entity.*;
|
import net.shapelight.modules.ten.entity.*;
|
||||||
import net.shapelight.modules.vo.TenPersonIdUpdateAllVo;
|
import net.shapelight.modules.vo.*;
|
||||||
import net.shapelight.modules.vo.TenPersonIdUpdateVo;
|
|
||||||
import net.shapelight.modules.vo.TenPersonMonthCountVo;
|
|
||||||
import net.shapelight.modules.vo.TenPersonVo;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -162,5 +159,7 @@ public interface TenPersonService {
|
||||||
|
|
||||||
List<String> getAllIdCard(String tenantId);
|
List<String> getAllIdCard(String tenantId);
|
||||||
|
|
||||||
|
List<TenDeptPersonCount> findDeptCount(String tenantId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import net.shapelight.common.utils.PageUtils;
|
import net.shapelight.common.utils.PageUtils;
|
||||||
import net.shapelight.modules.ten.entity.TenRecordEntity;
|
import net.shapelight.modules.ten.entity.TenRecordEntity;
|
||||||
|
import net.shapelight.modules.vo.TenTodayLabelCount;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
@ -54,5 +55,7 @@ public interface TenRecordService {
|
||||||
|
|
||||||
List<TenRecordEntity> findListAll(Map<String, Object> params);
|
List<TenRecordEntity> findListAll(Map<String, Object> params);
|
||||||
|
|
||||||
|
List<TenTodayLabelCount> findTodayLabelCount(String tenantId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2570,4 +2570,9 @@ public class TenPersonServiceImpl implements TenPersonService {
|
||||||
public List<String> getAllIdCard(String tenantId) {
|
public List<String> getAllIdCard(String tenantId) {
|
||||||
return tenPersonDao.getAllIdCard(tenantId);
|
return tenPersonDao.getAllIdCard(tenantId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<TenDeptPersonCount> findDeptCount(String tenantId) {
|
||||||
|
return tenPersonDao.findDeptCount(tenantId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import net.shapelight.modules.ten.dao.TenLabelDao;
|
||||||
import net.shapelight.modules.ten.entity.*;
|
import net.shapelight.modules.ten.entity.*;
|
||||||
import net.shapelight.modules.ten.service.*;
|
import net.shapelight.modules.ten.service.*;
|
||||||
import net.shapelight.modules.vo.TenRecordVo;
|
import net.shapelight.modules.vo.TenRecordVo;
|
||||||
|
import net.shapelight.modules.vo.TenTodayLabelCount;
|
||||||
import org.apache.commons.io.FilenameUtils;
|
import org.apache.commons.io.FilenameUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
|
@ -556,4 +557,9 @@ public class TenRecordServiceImpl implements TenRecordService {
|
||||||
}
|
}
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<TenTodayLabelCount> findTodayLabelCount(String tenantId) {
|
||||||
|
return tenRecordDao.findTodayLabelCount(tenantId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
package net.shapelight.modules.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class TenDeptPersonCount {
|
||||||
|
private String deptName;
|
||||||
|
private Integer count;
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package net.shapelight.modules.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class TenTodayLabelCount {
|
||||||
|
private String labelName;
|
||||||
|
private Integer labelCount;
|
||||||
|
}
|
|
@ -61,9 +61,9 @@ global:
|
||||||
opt_dir: opt
|
opt_dir: opt
|
||||||
db_bak:
|
db_bak:
|
||||||
db_filepath: db_bak
|
db_filepath: db_bak
|
||||||
db_name: cell_db_0511
|
db_name: cell_db_v10_pv_xianyang2
|
||||||
db_username: root
|
db_username: user
|
||||||
db_password: root
|
db_password: user@server001
|
||||||
db_host: localhost
|
db_host: localhost
|
||||||
db_port: 3306
|
db_port: 3306
|
||||||
minio:
|
minio:
|
||||||
|
@ -109,8 +109,8 @@ config:
|
||||||
sdk-key: vWbvUyStZeartSaM6QoTzPYWFpSaj4uhfDmRifSzCd6
|
sdk-key: vWbvUyStZeartSaM6QoTzPYWFpSaj4uhfDmRifSzCd6
|
||||||
active-key: 82G1-11QA-713Y-8NB4
|
active-key: 82G1-11QA-713Y-8NB4
|
||||||
active-file:
|
active-file:
|
||||||
detect-pool-size: 5
|
detect-pool-size: 16
|
||||||
compare-pool-size: 5
|
compare-pool-size: 16
|
||||||
rec-face-thd: 0.8
|
rec-face-thd: 0.8
|
||||||
rec-id-thd: 0.5
|
rec-id-thd: 0.5
|
||||||
|
|
||||||
|
|
|
@ -1392,5 +1392,14 @@
|
||||||
and person_type != 5005 and tenant_id = #{tenantId}
|
and person_type != 5005 and tenant_id = #{tenantId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="findDeptCount" resultType="net.shapelight.modules.vo.TenDeptPersonCount">
|
||||||
|
select d.name as deptName,count(d.name) as count from ten_person t
|
||||||
|
left join ten_cell_dept d
|
||||||
|
on t.dept_id = d.dept_id
|
||||||
|
where t.tenant_id = #{tenantId}
|
||||||
|
and t.delete_flag = 0
|
||||||
|
group by d.name
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
|
|
||||||
<result property="idCard" column="id_card"/>
|
<result property="idCard" column="id_card"/>
|
||||||
<result property="name" column="name"/>
|
<result property="name" column="name"/>
|
||||||
|
<result property="labelName" column="name"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,6 +117,9 @@
|
||||||
<if test="name != null">
|
<if test="name != null">
|
||||||
name,
|
name,
|
||||||
</if>
|
</if>
|
||||||
|
<if test="labelName != null">
|
||||||
|
label_name,
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="recordId != null">
|
<if test="recordId != null">
|
||||||
|
@ -192,6 +196,9 @@
|
||||||
<if test="name != null">
|
<if test="name != null">
|
||||||
#{name},
|
#{name},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="labelName != null">
|
||||||
|
#{labelName},
|
||||||
|
</if>
|
||||||
|
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
@ -247,7 +254,10 @@
|
||||||
id_card = #{idCard,jdbcType=VARCHAR},
|
id_card = #{idCard,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
<if test="name != null">
|
<if test="name != null">
|
||||||
name = #{idCard,jdbcType=VARCHAR},
|
name = #{name,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="labelName != null">
|
||||||
|
name = #{labelName,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
</set>
|
</set>
|
||||||
where record_id = #{recordId,jdbcType=BIGINT}
|
where record_id = #{recordId,jdbcType=BIGINT}
|
||||||
|
@ -701,4 +711,10 @@
|
||||||
where DATE_SUB(CURDATE(), INTERVAL #{days} DAY) > record_time
|
where DATE_SUB(CURDATE(), INTERVAL #{days} DAY) > record_time
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
|
<select id="findTodayLabelCount" resultType="net.shapelight.modules.vo.TenTodayLabelCount">
|
||||||
|
select label_name as labelName,count(label_name) as labelCount from ten_record_${tenantId}
|
||||||
|
where DATE(record_time) = CURRENT_DATE()
|
||||||
|
group by label_name
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
Loading…
Reference in New Issue