修改一键查重

pull/1/head
sunchenliang 1 year ago
parent 13813dd154
commit 2f0e40f304

@ -32,9 +32,9 @@ public class UserapproveServiceImpl extends BaseServiceImpl<UserapproveMybatisDa
userapprove.setCreatedate(System.currentTimeMillis());
userapprove.setUsername(userToken.getUsername());
if (taskVO.getApprovd()) {
userapprove.setStatshis(3);
userapprove.setStatshis(2);
} else {
userapprove.setStatshis(5);
userapprove.setStatshis(3);
}

@ -177,6 +177,8 @@ public class OcrPictureController extends BaseController {
return ResultVoUtil.error("查重数据至少要有两条。");
}
}
ocrPictureService.createTaskChild(pageList, pageList.get(0).getTenantId().toString(),req);
return ResultVoUtil.error("没有查重数据。");
}

@ -0,0 +1,13 @@
package cn.jyjz.xiaoyao.ocr.dataDao;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* ClassName $className$.java
* Description:
* Author scl.
* Date 2024/3/22 07:09
*/
public interface OcrPictureInfoMapper extends BaseMapper<OcrPictureInfo> {
}

@ -0,0 +1,255 @@
package cn.jyjz.xiaoyao.ocr.dataobject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* ClassName $className$.java
* Description:
* Author scl.
* Date 2024/3/22 07:09
*/
@TableName(value = "ocr_picture_info")
public class OcrPictureInfo {
/**
*
*/
@TableId(value = "id", type = IdType.INPUT)
private Long id;
/**
*
*/
@TableField(value = "picture_id")
private Long pictureId;
/**
*
*/
@TableField(value = "img_size")
private String imgSize;
/**
*
*/
@TableField(value = "img_format")
private String imgFormat;
/**
*
*/
@TableField(value = "img_measure")
private String imgMeasure;
/**
*
*/
@TableField(value = "upload_time")
private Long uploadTime;
/**
*
*/
@TableField(value = "create_time")
private Long createTime;
/**
*
*/
@TableField(value = "img_space")
private String imgSpace;
/**
*
*/
@TableField(value = "tag_time")
private Long tagTime;
/**
*
*/
@TableField(value = "`source`")
private String source;
/**
*
*
* @return id -
*/
public Long getId() {
return id;
}
/**
*
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
*
*
* @return picture_id -
*/
public Long getPictureId() {
return pictureId;
}
/**
*
*
* @param pictureId
*/
public void setPictureId(Long pictureId) {
this.pictureId = pictureId;
}
/**
*
*
* @return img_size -
*/
public String getImgSize() {
return imgSize;
}
/**
*
*
* @param imgSize
*/
public void setImgSize(String imgSize) {
this.imgSize = imgSize;
}
/**
*
*
* @return img_format -
*/
public String getImgFormat() {
return imgFormat;
}
/**
*
*
* @param imgFormat
*/
public void setImgFormat(String imgFormat) {
this.imgFormat = imgFormat;
}
/**
*
*
* @return img_measure -
*/
public String getImgMeasure() {
return imgMeasure;
}
/**
*
*
* @param imgMeasure
*/
public void setImgMeasure(String imgMeasure) {
this.imgMeasure = imgMeasure;
}
/**
*
*
* @return upload_time -
*/
public Long getUploadTime() {
return uploadTime;
}
/**
*
*
* @param uploadTime
*/
public void setUploadTime(Long uploadTime) {
this.uploadTime = uploadTime;
}
/**
*
*
* @return create_time -
*/
public Long getCreateTime() {
return createTime;
}
/**
*
*
* @param createTime
*/
public void setCreateTime(Long createTime) {
this.createTime = createTime;
}
/**
*
*
* @return img_space -
*/
public String getImgSpace() {
return imgSpace;
}
/**
*
*
* @param imgSpace
*/
public void setImgSpace(String imgSpace) {
this.imgSpace = imgSpace;
}
/**
*
*
* @return tag_time -
*/
public Long getTagTime() {
return tagTime;
}
/**
*
*
* @param tagTime
*/
public void setTagTime(Long tagTime) {
this.tagTime = tagTime;
}
/**
*
*
* @return source -
*/
public String getSource() {
return source;
}
/**
*
*
* @param source
*/
public void setSource(String source) {
this.source = source;
}
}

@ -0,0 +1,14 @@
package cn.jyjz.xiaoyao.ocr.service;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* ClassName $className$.java
* Description:
* Author scl.
* Date 2024/3/22 07:09
*/
public interface OcrPictureInfoService extends IService<OcrPictureInfo>{
}

@ -34,7 +34,7 @@ public interface OcrPictureService extends BaseService<OcrPicture> {
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId , UserToken sysUser, String search_month, HttpServletRequest req, String buessinessno);
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId);
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId,HttpServletRequest request);
/**
*

@ -0,0 +1,19 @@
package cn.jyjz.xiaoyao.ocr.service.impl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrPictureInfoMapper;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureInfoService;
/**
* ClassName $className$.java
* Description:
* Author scl.
* Date 2024/3/22 07:09
*/
@Service
public class OcrPictureInfoServiceImpl extends ServiceImpl<OcrPictureInfoMapper, OcrPictureInfo> implements OcrPictureInfoService{
}

@ -2,9 +2,12 @@ package cn.jyjz.xiaoyao.ocr.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.jyjz.flowable.service.IFlowInstanceService;
import cn.jyjz.xiaoyao.abase.service.SeqManageService;
import cn.jyjz.xiaoyao.admin.service.LogService;
import cn.jyjz.xiaoyao.common.base.service.UserTokenService;
import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
@ -37,10 +40,17 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.Serializable;
import java.math.BigDecimal;
import java.net.URL;
import java.net.URLConnection;
import java.util.*;
import java.util.stream.Collectors;
/**
*
@ -88,6 +98,9 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
@Resource
private CategoryService categoryService;
@Resource
private OcrPictureInfoService ocrPictureInfoService;
private Object lock = new Object();
/**
@ -102,6 +115,9 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
@Autowired
DataDictionaryUtil dataDictionaryUtil;
@Resource
UserTokenService userTokenService;
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId, UserToken sysUser, String search_month, HttpServletRequest request, String buessinessno) {
//图片错误信息
@ -116,86 +132,66 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
//图片信息不能为空
if (null != ocrPictureList && !ocrPictureList.isEmpty()) {
//生成任务包
//String packageName = seqManageService.getSeqNextNo("AI任务包");
//TODO 相似度、图片查询时间未传
//创建任务包
OcrPackagetask ocrPackagetask = this.ocrPackagetaskService.create(buessinessno, tenantId, sysUser, null);
if (null == ocrPackagetask) {
return ResultVoUtil.error("失败。");
}
//用于标记相似度是否存在百分百的情况
List<OcrPicture> newList = new ArrayList<>();
Map<String, String> resultMap = new HashMap<>();
for (OcrPicture ocrPicture : ocrPictureList) {
//如果当前图片已经生成任务包,直接跳过
if (ocrPicture.getTaskstatus().equals("1")) {
continue;
}
//图片查重的比对图片集合
List<OcrPicture> compareList = new ArrayList<>();
//非历史图片主键集合
List<String> picturecompareList = new ArrayList<>();
boolean havePoint = false;
if (StringUtils.isBlank(ocrPicture.getImgHash())) {
Map<String, String> map = this.getOcrPictureClassifyAndHash(ocrPicture.getLocalpictrueurl());
if (map != null) {
ocrPicture.setImgHash(map.get("hash"));
ocrPicture.setClassificationid(map.get("classId"));
}
// this.updateById(ocrPicture);
}
//二次遍历进行比对
for (OcrPicture ocrPictureNext : ocrPictureList) {
if (ocrPictureNext.getId().longValue() == ocrPicture.getId().longValue()) {
continue;
}
//TODO 接口请求判断重复情况
logService.addLog(103, "AI获取图片相似度接口", sysUser, "sendParams");
JSONObject jsonObjectSimi = ImageClassUtil.getSimilarity(ocrPicture.getImgurl(),
ocrPictureNext.getImgurl(),
similarityPath);
System.out.println("responseDataXs--code = [" + jsonObjectSimi.get("code") + "]");
System.out.println("responseDataXs--similarity = [" + jsonObjectSimi.get("similarity") + "]");
if (StringUtils.isBlank(ocrPictureNext.getImgHash())) {
Map<String, String> map = this.getOcrPictureClassifyAndHash(ocrPictureNext.getLocalpictrueurl());
if (map != null) {
ocrPictureNext.setImgHash(map.get("hash"));
ocrPictureNext.setClassificationid(map.get("classId"));
}
// this.updateById(ocrPictureNext);
}
String resultValue = "";
//返回内容为零,表示成功,否则表示失败
if (null != jsonObjectSimi && jsonObjectSimi.getString("code").equals("0")) {
resultValue = jsonObjectSimi.getString("similarity");
ocrPictureNext.setResult(resultValue);
String strId = ocrPicture.getId() + ":" + ocrPictureNext.getId();
String strNextId = ocrPictureNext.getId() + ":" + ocrPicture.getId();
if (resultMap.containsKey(strId) || resultMap.containsKey(strNextId)) {
resultValue = resultMap.get(strId) == null ? resultMap.get(strNextId) : resultMap.get(strId);
} else {
resultValue = "0";
ocrPictureNext.setResult(resultValue);
String img = StringUtils.isBlank(ocrPicture.getImgHash()) ? StringUtils.isBlank(ocrPicture.getLocalpictrueurl()) ? ocrPicture.getImgurl() : ocrPicture.getLocalpictrueurl() : ocrPicture.getImgHash();
String imgNext = StringUtils.isBlank(ocrPictureNext.getImgHash()) ? StringUtils.isBlank(ocrPictureNext.getLocalpictrueurl()) ? ocrPictureNext.getImgurl() : ocrPictureNext.getLocalpictrueurl() : ocrPictureNext.getImgHash();
resultValue = HashCompareUtil.cmpHash(img, imgNext);
resultMap.put(strId, resultValue);
}
ocrPictureNext.setResult(resultValue);
BigDecimal b1 = new BigDecimal(resultValue);
BigDecimal b2 = new BigDecimal("100");
int val = b1.compareTo(b2);
if (val == 0) {
havePoint = true;
}
//如果当前图片未生成任务需要临时保存
if (ocrPictureNext.getTaskstatus().equals("0")) {
picturecompareList.add(ocrPictureNext.getId().toString());
}
compareList.add(ocrPictureNext);
}
bubbleSortOpt(compareList);
//从大到小进行排序
ocrPicture.setListCom(compareList);
//非历史图片主键集合
ocrPicture.setPicturecompareList(picturecompareList);
//查询项目对象
if (null == ocrPicture.getCategoryid()) {
//TODO 没有对应项目,返回提示信息
@ -224,7 +220,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
}
//创建工单,如果创建成功,增加标志,用于过滤条件使用
OcrTaskchildPicture ocrTaskchildPicture = this.ocrTaskchildPictureService.create(ocrPicture, tenantId, sysUser, ocrPackagetask.getId(), buessinessno);
OcrTaskchildPicture ocrTaskchildPicture = this.ocrTaskchildPictureService.create(ocrPicture, tenantId, sysUser, null, buessinessno);
if (null != ocrTaskchildPicture) {
//发起流程
@ -253,18 +249,6 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
if (null != pointsList && !pointsList.isEmpty()) {
this.ocrTaskchildPictureService.markPoint(pointsList);
}
if (StringUtils.isNotBlank(search_month)) {
if (StringUtils.isNotBlank(search_month) && Integer.parseInt(search_month) <= 12 && Integer.parseInt(search_month) > 0) {
ocrPackagetask.setSearchtimes(SearchEnum.getName(Integer.parseInt(search_month)));
} else if (StringUtils.isNotBlank(search_month) && Integer.parseInt(search_month) > 20) {
ocrPackagetask.setSearchtimes(SearchEnum.getName((Integer.parseInt(search_month) - 20)));
}
}
ocrPackagetask.setPictureno(ocrPictureList.size());
this.ocrPackagetaskService.updateById(ocrPackagetask);
//原主图设置为任务包已经生成
this.updateBatchById(ocrPictureList);
@ -290,8 +274,6 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
StringBuffer errorProject = new StringBuffer();
//流程错误信息
StringBuffer errorFlow = new StringBuffer();
//记录任务相似度为百分百的任务主键
List<Long> pointsList = new ArrayList<>();
//图片信息不能为空
if (null != ocrPictureList && !ocrPictureList.isEmpty()) {
//生成任务包
@ -310,87 +292,6 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
if (null == ocrPackagetask) {
return ResultVoUtil.error("失败。");
}
//用于标记相似度是否存在百分百的情况
List<OcrPicture> newList = new ArrayList<>();
Map<String, String> resultMap = new HashMap<>();
for (OcrPicture ocrPicture : ocrPictureList) {
//如果当前图片已经生成任务包,直接跳过
if (ocrPicture.getTaskstatus().equals("1")) {
continue;
}
//图片查重的比对图片集合
List<OcrPicture> compareList = new ArrayList<>();
//非历史图片主键集合
List<String> picturecompareList = new ArrayList<>();
boolean havePoint = false;
logService.addLog(103, "AI获取图片相似度接口", sysUser, "sendParams");
if (StringUtils.isBlank(ocrPicture.getImgHash())) {
Map<String, String> map = this.getOcrPictureClassifyAndHash(ocrPicture.getLocalpictrueurl());
if (map != null) {
ocrPicture.setImgHash(map.get("hash"));
ocrPicture.setClassificationid(map.get("classId"));
}
// this.updateById(ocrPicture);
}
//二次遍历进行比对
for (OcrPicture ocrPictureNext : ocrPictureList) {
//分类不一致的也不需要进行比对
if (ocrPictureNext.getId().longValue() == ocrPicture.getId().longValue()) {
continue;
}
//分类不一致的也不需要进行比对
//TODO 接口请求判断重复情况
if (StringUtils.isBlank(ocrPictureNext.getImgHash())) {
Map<String, String> map = this.getOcrPictureClassifyAndHash(ocrPictureNext.getLocalpictrueurl());
if (map != null) {
ocrPictureNext.setImgHash(map.get("hash"));
ocrPictureNext.setClassificationid(map.get("classId"));
}
// this.updateById(ocrPictureNext);
}
String resultValue = "";
String strId = ocrPicture.getId() + ":" + ocrPictureNext.getId();
String strNextId = ocrPictureNext.getId() + ":" + ocrPicture.getId();
if (resultMap.containsKey(strId) || resultMap.containsKey(strNextId)) {
resultValue = resultMap.get(strId) == null ? resultMap.get(strNextId) : resultMap.get(strId);
} else {
String img = StringUtils.isBlank(ocrPicture.getImgHash()) ? StringUtils.isBlank(ocrPicture.getLocalpictrueurl()) ? ocrPicture.getImgurl() : ocrPicture.getLocalpictrueurl() : ocrPicture.getImgHash();
String imgNext = StringUtils.isBlank(ocrPictureNext.getImgHash()) ? StringUtils.isBlank(ocrPictureNext.getLocalpictrueurl()) ? ocrPictureNext.getImgurl() : ocrPictureNext.getLocalpictrueurl() : ocrPictureNext.getImgHash();
resultValue = HashCompareUtil.cmpHash(img, imgNext);
resultMap.put(strId, resultValue);
}
ocrPictureNext.setResult(resultValue);
BigDecimal b1 = new BigDecimal(resultValue);
BigDecimal b2 = new BigDecimal("100");
int val = b1.compareTo(b2);
if (val == 0) {
havePoint = true;
}
//如果当前图片未生成任务需要临时保存
if (ocrPictureNext.getTaskstatus().equals("0")) {
picturecompareList.add(ocrPictureNext.getId().toString());
}
compareList.add(ocrPictureNext);
}
// this.updateBatchById(ocrPictureList);
bubbleSortOpt(compareList);
//从大到小进行排序
ocrPicture.setListCom(compareList);
//非历史图片主键集合
ocrPicture.setPicturecompareList(picturecompareList);
//创建工单,如果创建成功,增加标志,用于过滤条件使用
OcrTaskchildPicture ocrTaskchildPicture = this.updateTaskChild(ocrPicture, ocrPackagetask.getId(), buessinessno);
if (null != ocrTaskchildPicture) {
if (havePoint) {
pointsList.add(ocrTaskchildPicture.getId());
}
}
ocrPicture.setTaskstatus("1");
}
//批量更新 pointsList 主键相似度为百分百的数据
if (null != pointsList && !pointsList.isEmpty()) {
this.ocrTaskchildPictureService.markPoint(pointsList);
}
if (StringUtils.isNotBlank(search_month)) {
if (StringUtils.isNotBlank(search_month) && Integer.parseInt(search_month) <= 12 && Integer.parseInt(search_month) > 0) {
ocrPackagetask.setSearchtimes(SearchEnum.getName(Integer.parseInt(search_month)));
@ -401,7 +302,12 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
ocrPackagetask.setPictureno(ocrPictureList.size());
this.ocrPackagetaskService.updateById(ocrPackagetask);
//原主图设置为任务包已经生成
this.updateBatchById(ocrPictureList);
List<Long> collect = ocrPictureList.stream().map(OcrPicture::getId).collect(Collectors.toList());
List<OcrTaskchildPicture> list = ocrTaskchildPictureService.list(new LambdaQueryWrapper<OcrTaskchildPicture>().in(OcrTaskchildPicture::getPictureid, collect));
for (OcrTaskchildPicture ocrTaskchildPicture : list) {
ocrTaskchildPicture.setPackageid(ocrPackagetask.getId());
}
ocrTaskchildPictureService.updateBatchById(list);
if (StringUtils.isBlank(error) && StringUtils.isBlank(errorProject) && StringUtils.isBlank(errorFlow)) {
return ResultVoUtil.success();
} else {
@ -463,7 +369,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
return ocrTaskchildPictureService.updateById(ocrTaskchildPicture) ? ocrTaskchildPicture : null;
}
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId) {
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId,HttpServletRequest request) {
//图片错误信息
StringBuffer error = new StringBuffer();
//项目错误信息
@ -502,15 +408,12 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
}
continue;
}
UserToken userToken = new UserToken();
userToken.setLoginname("admin");
userToken.setUsername("admin");
UserToken userToken = userTokenService.getUserToken(RequestBaseUtil.getToken(request));
//创建工单,如果创建成功,增加标志,用于过滤条件使用
OcrTaskchildPicture ocrTaskchildPicture = this.ocrTaskchildPictureService.create(ocrPicture, tenantId, userToken, null, null);
if (null != ocrTaskchildPicture) {
//发起流程
MockHttpServletRequest request = new MockHttpServletRequest();
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request));
flowInstanceService.startProcessInstanceById(
category.getProcessdefinitionid(),
null,
@ -765,7 +668,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
QueryWrapper<OcrPicture> queryWrapper = new QueryWrapper();
queryWrapper.eq("suspiciousfile","0");
queryWrapper.eq("suspiciousfile", "0");
for (OcrUsersearchchild usersearchchild : ocrUsersearch.getOcrUsersearchchildList()) {
this.formattingSearchChild(queryWrapper, usersearchchild);
@ -797,13 +700,84 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
boolean saveBatch = this.saveBatch(ocrPictureList);
//3.添加图片信息
if (saveBatch) {
this.savePicturesInfo(ocrPictureList);
this.convertImage(ocrPictureList);
this.createTaskChild(ocrPictureList, ocrPictureList.get(0).getTenantId().toString());
return ocrPictureList.size();
}
return 0;
}
private void savePicturesInfo(List<OcrPicture> ocrPictureList) {
List<OcrPictureInfo> list = new ArrayList<>();
for (OcrPicture ocrPicture : ocrPictureList) {
if (StringUtils.isNotBlank(ocrPicture.getImgurl())) {
OcrPictureInfo imageInfo = getImageInfo(ocrPicture.getImgurl());
if (ObjectUtil.isNotEmpty(imageInfo)) {
imageInfo.setPictureId(ocrPicture.getId());
list.add(imageInfo);
}
}
}
ocrPictureInfoService.saveBatch(list);
}
private OcrPictureInfo getImageInfo(String imageUrl) {
try {
// 创建URL对象
URL url = new URL(imageUrl);
// 打开连接
URLConnection urlConnection = url.openConnection();
// 获取图片大小
Integer imageSize = urlConnection.getContentLength();
// 使用ImageIO读取图片
BufferedImage image = ImageIO.read(url);
if (image != null) {
OcrPictureInfo info = new OcrPictureInfo();
// 获取图片宽度和高度
int width = image.getWidth();
int height = image.getHeight();
// 获取色彩空间类型
ColorSpace colorSpace = image.getColorModel().getColorSpace();
String colorSpaceType;
switch (colorSpace.getType()) {
case ColorSpace.TYPE_RGB:
colorSpaceType = "RGB";
break;
case ColorSpace.TYPE_GRAY:
colorSpaceType = "Grayscale";
break;
case ColorSpace.TYPE_CMYK:
colorSpaceType = "CMYK";
break;
default:
colorSpaceType = "Other";
break;
}
String formatName = ImageIO.getImageReadersByMIMEType("image/jpeg").next().getFormatName();
System.out.println("Image Size: " + imageSize + " bytes");
System.out.println("Width: " + width + ", Height: " + height);
System.out.println("Color Space: " + colorSpaceType);
info.setCreateTime(System.currentTimeMillis());
info.setImgSpace(colorSpaceType);
info.setImgSize(imageSize.toString());
info.setImgMeasure(width + "x" + height);
info.setImgFormat(formatName);
return info;
} else {
log.info("Cannot read image from URL.");
return null;
}
} catch (IOException e) {
log.error("Error: " + e.getMessage());
}
return null;
}
private void convertImage(List<OcrPicture> list) {
for (OcrPicture ocrPicture : list) {
PictureImgToLocalEntity entity = new PictureImgToLocalEntity();

@ -43,8 +43,8 @@ import java.util.List;
import java.util.Map;
/**
*
*/
*
*/
@Service("taskchildPictureService")
@Slf4j
public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPictureMybatisDao, OcrTaskchildPicture> implements IFormCustomService<OcrTaskchildPicture> {
@ -68,11 +68,12 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
@Autowired
private IFlowFormMessageService iFlowFormMessageService;
@Override
public String saveForm(HttpServletRequest request) {
OcrTaskchildPicture model = null;
try {
model = RequestBaseUtil.reflects(request,OcrTaskchildPicture.class);
model = RequestBaseUtil.reflects(request, OcrTaskchildPicture.class);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
@ -83,7 +84,7 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
throw new RuntimeException(e);
}
if(null != model && null == model.getId()){
if (null != model && null == model.getId()) {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
model.setCreateuser(userToken.getLoginname());
@ -102,7 +103,7 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
//重新命名
String fileName = System.currentTimeMillis() + "_c." + fileType;
ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName,ftperrorService);
ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName, ftperrorService);
if (null != rs) {
if (rs.getCode().equals(ResultVo.SUCCESS)) {
model.setFileannex(rs.getOtherMessage().toString());
@ -111,23 +112,23 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
}
//设置流程编号
Map<String,String> map = new HashMap<>();
map.put("systemcode",SystemConstantsOa.OA_BUSSINRSS_NO_FIX);
Map<String, String> map = new HashMap<>();
map.put("systemcode", SystemConstantsOa.OA_BUSSINRSS_NO_FIX);
Category category = categoryService.getById(model.getCategoryid());
if(null != category){
map.put("categoryformtype",category.getFormtype());
if (null != category) {
map.put("categoryformtype", category.getFormtype());
}
List<Distionary> distionaryList = candidateuserService.selectList(userToken.getLoginname());
if(null != distionaryList && !distionaryList.isEmpty()){
map.put("deptcodeno",distionaryList.get(0).getCodeno());
if (null != distionaryList && !distionaryList.isEmpty()) {
map.put("deptcodeno", distionaryList.get(0).getCodeno());
}
map.put("number","6");
map.put("number", "6");
model.setBuessinessno(seqManageService.getSeqNextNo(map));
model.setCreatedate(System.currentTimeMillis());
this.save(model);
return model.getId().toString();
}else{
} else {
MultipartHttpServletRequest multipartRequest = WebUtils
.getNativeRequest(request, MultipartHttpServletRequest.class);
@ -143,7 +144,7 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
//重新命名
String fileName = System.currentTimeMillis() + "_c." + fileType;
ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName,ftperrorService);
ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName, ftperrorService);
if (null != rs) {
if (rs.getCode().equals(ResultVo.SUCCESS)) {
model.setFileannex(rs.getOtherMessage().toString());
@ -159,16 +160,16 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
@Override
public String editForm(HttpServletRequest request, String fromid) {
if(StringUtils.isBlank(fromid)){
if (StringUtils.isBlank(fromid)) {
return null;
}
OcrTaskchildPicture modelOld = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
if(null == modelOld){
if (null == modelOld) {
return null;
}
OcrTaskchildPicture modelNew = null;
try {
modelNew = RequestBaseUtil.reflects(request,OcrTaskchildPicture.class);
modelNew = RequestBaseUtil.reflects(request, OcrTaskchildPicture.class);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
@ -179,7 +180,7 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
throw new RuntimeException(e);
}
if(null != modelNew){
if (null != modelNew) {
modelNew.setId(modelNew.getId());
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
@ -197,7 +198,7 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
//重新命名
String fileName = System.currentTimeMillis() + "_c." + fileType;
ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName,ftperrorService);
ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName, ftperrorService);
if (null != rs) {
if (rs.getCode().equals(ResultVo.SUCCESS)) {
modelNew.setFileannex(rs.getOtherMessage().toString());
@ -216,17 +217,17 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
@Override
public boolean delForm(String formid) {
if(StringUtils.isNotBlank(formid)){
return this.ocrTaskchildPictureService.removeById(formid) ;
if (StringUtils.isNotBlank(formid)) {
return this.ocrTaskchildPictureService.removeById(formid);
}
return false;
}
@Override
public boolean updateForm(String fromid, String deploymentid, String processdefinitionid, String assignee, String taskId, String processInstanceId,String tasknme) {
if(StringUtils.isNotBlank(fromid) && StringUtils.isNotBlank(deploymentid) && StringUtils.isNotBlank(processdefinitionid)){
public boolean updateForm(String fromid, String deploymentid, String processdefinitionid, String assignee, String taskId, String processInstanceId, String tasknme) {
if (StringUtils.isNotBlank(fromid) && StringUtils.isNotBlank(deploymentid) && StringUtils.isNotBlank(processdefinitionid)) {
OcrTaskchildPicture model = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
model .setProcessinstanceid(processInstanceId);
model.setProcessinstanceid(processInstanceId);
model.setProcessdefinitionid(processdefinitionid);
model.setDeploymentid(deploymentid);
model.setAssignee(assignee);
@ -235,11 +236,11 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
//查询审批人姓名
String[] assignees = assignee.split(",");
StringBuffer stringBuffer = new StringBuffer();
for(String tempAssign:assignees){
for (String tempAssign : assignees) {
User user = userService.findByLoginname(tempAssign);
if(StringUtils.isNotBlank(stringBuffer.toString())){
if (StringUtils.isNotBlank(stringBuffer.toString())) {
stringBuffer.append("," + user.getUsername());
}else {
} else {
stringBuffer.append(user.getUsername());
}
//发送消息
@ -255,18 +256,18 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
@Override
public boolean editStatesForm(String fromid, int states, String assignee) {
//TODO 后期修改图片的状态
if(StringUtils.isNotBlank(fromid)){
if (StringUtils.isNotBlank(fromid)) {
OcrTaskchildPicture model = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
if(StringUtils.isNotBlank(assignee)){
if (StringUtils.isNotBlank(assignee)) {
User user1 = userService.findByLoginname(assignee);
model.setAssigneename(user1.getUsername());
model.setAssignee(assignee);
}
//如果状态为拒绝,监听程序不改变当前状态
if(model.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_REFUSE){
if (model.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_REFUSE) {
//判断是否为撤回
if(states == SystemConstantsOa.OA_STATUS_TYPE_CANCLE){
if (states == SystemConstantsOa.OA_STATUS_TYPE_CANCLE) {
model.setProcessinstanceid("");
model.setDeploymentid("");
model.setProcessdefinitionid("");
@ -282,11 +283,11 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
}
@Override
public boolean endForm(String fromid, int states, String assignee, String processInstanceId,String tasknme) {
public boolean endForm(String fromid, int states, String assignee, String processInstanceId, String tasknme) {
//TODO 后期修改图片的状态
if(StringUtils.isNotBlank(fromid)){
if (StringUtils.isNotBlank(fromid)) {
OcrTaskchildPicture model = this.selectDtoById(Long.parseLong(fromid));
if(StringUtils.isNotBlank(assignee)){
if (StringUtils.isNotBlank(assignee)) {
User user1 = userService.findByLoginname(assignee);
model.setAssigneename(user1.getUsername());
model.setAssignee(assignee);
@ -294,21 +295,19 @@ public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPic
model.setTaskname(tasknme);
//iFlowFormMessageService.sendMsg(model.getCreateuser(),SystemMessage.SYS_OA_TYPE_LEAVE + SystemMessage.SYS_OA_TO_CLOSE,null,processInstanceId,fromid,CacheQyweixinConstants.OA_DISTIONARY_TYPE_MSG_SHENPI_PASS,model.getCategoryid().toString());
//如果状态为拒绝,监听程序不改变当前状态
if(model.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_REFUSE){
model.setStates(states);
return this.updateById(model);
}
}
return false;
}
@Override
public FlowModelVO getForm(String fromid) {
if(StringUtils.isNotBlank(fromid)){
if (StringUtils.isNotBlank(fromid)) {
OcrTaskchildPicture model = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
//查询审批人
if(null != model){
if (null != model) {
return model.getFlowModelVO();
}

@ -0,0 +1,23 @@
<?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="cn.jyjz.xiaoyao.ocr.dataDao.OcrPictureInfoMapper">
<resultMap id="BaseResultMap" type="cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo">
<!--@mbg.generated-->
<!--@Table ocr_picture_info-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="picture_id" jdbcType="BIGINT" property="pictureId" />
<result column="img_size" jdbcType="VARCHAR" property="imgSize" />
<result column="img_format" jdbcType="VARCHAR" property="imgFormat" />
<result column="img_measure" jdbcType="VARCHAR" property="imgMeasure" />
<result column="upload_time" jdbcType="BIGINT" property="uploadTime" />
<result column="create_time" jdbcType="BIGINT" property="createTime" />
<result column="img_space" jdbcType="VARCHAR" property="imgSpace" />
<result column="tag_time" jdbcType="BIGINT" property="tagTime" />
<result column="source" jdbcType="VARCHAR" property="source" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, picture_id, img_size, img_format, img_measure, upload_time, create_time, img_space,
tag_time, `source`
</sql>
</mapper>
Loading…
Cancel
Save