修改一键查重

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.setCreatedate(System.currentTimeMillis());
userapprove.setUsername(userToken.getUsername()); userapprove.setUsername(userToken.getUsername());
if (taskVO.getApprovd()) { if (taskVO.getApprovd()) {
userapprove.setStatshis(3); userapprove.setStatshis(2);
} else { } else {
userapprove.setStatshis(5); userapprove.setStatshis(3);
} }

@ -177,6 +177,8 @@ public class OcrPictureController extends BaseController {
return ResultVoUtil.error("查重数据至少要有两条。"); return ResultVoUtil.error("查重数据至少要有两条。");
} }
} }
ocrPictureService.createTaskChild(pageList, pageList.get(0).getTenantId().toString(),req);
return ResultVoUtil.error("没有查重数据。"); 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 , 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.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.jyjz.flowable.service.IFlowInstanceService; import cn.jyjz.flowable.service.IFlowInstanceService;
import cn.jyjz.xiaoyao.abase.service.SeqManageService; import cn.jyjz.xiaoyao.abase.service.SeqManageService;
import cn.jyjz.xiaoyao.admin.service.LogService; 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.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil; import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
import cn.jyjz.xiaoyao.common.base.vo.UserToken; 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 org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest; 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.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URL;
import java.net.URLConnection;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* *
@ -88,6 +98,9 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
@Resource @Resource
private CategoryService categoryService; private CategoryService categoryService;
@Resource
private OcrPictureInfoService ocrPictureInfoService;
private Object lock = new Object(); private Object lock = new Object();
/** /**
@ -102,6 +115,9 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
@Autowired @Autowired
DataDictionaryUtil dataDictionaryUtil; DataDictionaryUtil dataDictionaryUtil;
@Resource
UserTokenService userTokenService;
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId, UserToken sysUser, String search_month, HttpServletRequest request, String buessinessno) { 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()) { 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<>(); List<OcrPicture> newList = new ArrayList<>();
Map<String, String> resultMap = new HashMap<>();
for (OcrPicture ocrPicture : ocrPictureList) { for (OcrPicture ocrPicture : ocrPictureList) {
//如果当前图片已经生成任务包,直接跳过
if (ocrPicture.getTaskstatus().equals("1")) {
continue;
}
//图片查重的比对图片集合 //图片查重的比对图片集合
List<OcrPicture> compareList = new ArrayList<>(); List<OcrPicture> compareList = new ArrayList<>();
//非历史图片主键集合 //非历史图片主键集合
List<String> picturecompareList = new ArrayList<>(); List<String> picturecompareList = new ArrayList<>();
boolean havePoint = false; 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) { for (OcrPicture ocrPictureNext : ocrPictureList) {
if (ocrPictureNext.getId().longValue() == ocrPicture.getId().longValue()) { if (ocrPictureNext.getId().longValue() == ocrPicture.getId().longValue()) {
continue; continue;
} }
//TODO 接口请求判断重复情况 //TODO 接口请求判断重复情况
logService.addLog(103, "AI获取图片相似度接口", sysUser, "sendParams"); if (StringUtils.isBlank(ocrPictureNext.getImgHash())) {
Map<String, String> map = this.getOcrPictureClassifyAndHash(ocrPictureNext.getLocalpictrueurl());
if (map != null) {
JSONObject jsonObjectSimi = ImageClassUtil.getSimilarity(ocrPicture.getImgurl(), ocrPictureNext.setImgHash(map.get("hash"));
ocrPictureNext.getImgurl(), ocrPictureNext.setClassificationid(map.get("classId"));
similarityPath); }
System.out.println("responseDataXs--code = [" + jsonObjectSimi.get("code") + "]"); // this.updateById(ocrPictureNext);
System.out.println("responseDataXs--similarity = [" + jsonObjectSimi.get("similarity") + "]"); }
String resultValue = ""; String resultValue = "";
String strId = ocrPicture.getId() + ":" + ocrPictureNext.getId();
//返回内容为零,表示成功,否则表示失败 String strNextId = ocrPictureNext.getId() + ":" + ocrPicture.getId();
if (null != jsonObjectSimi && jsonObjectSimi.getString("code").equals("0")) { if (resultMap.containsKey(strId) || resultMap.containsKey(strNextId)) {
resultValue = resultMap.get(strId) == null ? resultMap.get(strNextId) : resultMap.get(strId);
resultValue = jsonObjectSimi.getString("similarity");
ocrPictureNext.setResult(resultValue);
} else { } else {
resultValue = "0"; String img = StringUtils.isBlank(ocrPicture.getImgHash()) ? StringUtils.isBlank(ocrPicture.getLocalpictrueurl()) ? ocrPicture.getImgurl() : ocrPicture.getLocalpictrueurl() : ocrPicture.getImgHash();
ocrPictureNext.setResult(resultValue); 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 b1 = new BigDecimal(resultValue);
BigDecimal b2 = new BigDecimal("100"); BigDecimal b2 = new BigDecimal("100");
int val = b1.compareTo(b2); int val = b1.compareTo(b2);
if (val == 0) { if (val == 0) {
havePoint = true; havePoint = true;
} }
//如果当前图片未生成任务需要临时保存 //如果当前图片未生成任务需要临时保存
if (ocrPictureNext.getTaskstatus().equals("0")) { if (ocrPictureNext.getTaskstatus().equals("0")) {
picturecompareList.add(ocrPictureNext.getId().toString()); picturecompareList.add(ocrPictureNext.getId().toString());
} }
compareList.add(ocrPictureNext); compareList.add(ocrPictureNext);
} }
bubbleSortOpt(compareList); bubbleSortOpt(compareList);
//从大到小进行排序 //从大到小进行排序
ocrPicture.setListCom(compareList); ocrPicture.setListCom(compareList);
//非历史图片主键集合 //非历史图片主键集合
ocrPicture.setPicturecompareList(picturecompareList); ocrPicture.setPicturecompareList(picturecompareList);
//查询项目对象 //查询项目对象
if (null == ocrPicture.getCategoryid()) { if (null == ocrPicture.getCategoryid()) {
//TODO 没有对应项目,返回提示信息 //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) { if (null != ocrTaskchildPicture) {
//发起流程 //发起流程
@ -253,18 +249,6 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
if (null != pointsList && !pointsList.isEmpty()) { if (null != pointsList && !pointsList.isEmpty()) {
this.ocrTaskchildPictureService.markPoint(pointsList); 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); this.updateBatchById(ocrPictureList);
@ -290,8 +274,6 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
StringBuffer errorProject = new StringBuffer(); StringBuffer errorProject = new StringBuffer();
//流程错误信息 //流程错误信息
StringBuffer errorFlow = new StringBuffer(); StringBuffer errorFlow = new StringBuffer();
//记录任务相似度为百分百的任务主键
List<Long> pointsList = new ArrayList<>();
//图片信息不能为空 //图片信息不能为空
if (null != ocrPictureList && !ocrPictureList.isEmpty()) { if (null != ocrPictureList && !ocrPictureList.isEmpty()) {
//生成任务包 //生成任务包
@ -310,87 +292,6 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
if (null == ocrPackagetask) { if (null == ocrPackagetask) {
return ResultVoUtil.error("失败。"); 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)) {
if (StringUtils.isNotBlank(search_month) && Integer.parseInt(search_month) <= 12 && Integer.parseInt(search_month) > 0) { if (StringUtils.isNotBlank(search_month) && Integer.parseInt(search_month) <= 12 && Integer.parseInt(search_month) > 0) {
ocrPackagetask.setSearchtimes(SearchEnum.getName(Integer.parseInt(search_month))); ocrPackagetask.setSearchtimes(SearchEnum.getName(Integer.parseInt(search_month)));
@ -401,7 +302,12 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
ocrPackagetask.setPictureno(ocrPictureList.size()); ocrPackagetask.setPictureno(ocrPictureList.size());
this.ocrPackagetaskService.updateById(ocrPackagetask); 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)) { if (StringUtils.isBlank(error) && StringUtils.isBlank(errorProject) && StringUtils.isBlank(errorFlow)) {
return ResultVoUtil.success(); return ResultVoUtil.success();
} else { } else {
@ -463,7 +369,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
return ocrTaskchildPictureService.updateById(ocrTaskchildPicture) ? ocrTaskchildPicture : null; 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(); StringBuffer error = new StringBuffer();
//项目错误信息 //项目错误信息
@ -502,15 +408,12 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
} }
continue; continue;
} }
UserToken userToken = new UserToken(); UserToken userToken = userTokenService.getUserToken(RequestBaseUtil.getToken(request));
userToken.setLoginname("admin");
userToken.setUsername("admin");
//创建工单,如果创建成功,增加标志,用于过滤条件使用 //创建工单,如果创建成功,增加标志,用于过滤条件使用
OcrTaskchildPicture ocrTaskchildPicture = this.ocrTaskchildPictureService.create(ocrPicture, tenantId, userToken, null, null); OcrTaskchildPicture ocrTaskchildPicture = this.ocrTaskchildPictureService.create(ocrPicture, tenantId, userToken, null, null);
if (null != ocrTaskchildPicture) { if (null != ocrTaskchildPicture) {
//发起流程 //发起流程
MockHttpServletRequest request = new MockHttpServletRequest();
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request));
flowInstanceService.startProcessInstanceById( flowInstanceService.startProcessInstanceById(
category.getProcessdefinitionid(), category.getProcessdefinitionid(),
null, null,
@ -765,7 +668,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
QueryWrapper<OcrPicture> queryWrapper = new QueryWrapper(); QueryWrapper<OcrPicture> queryWrapper = new QueryWrapper();
queryWrapper.eq("suspiciousfile","0"); queryWrapper.eq("suspiciousfile", "0");
for (OcrUsersearchchild usersearchchild : ocrUsersearch.getOcrUsersearchchildList()) { for (OcrUsersearchchild usersearchchild : ocrUsersearch.getOcrUsersearchchildList()) {
this.formattingSearchChild(queryWrapper, usersearchchild); this.formattingSearchChild(queryWrapper, usersearchchild);
@ -797,13 +700,84 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
boolean saveBatch = this.saveBatch(ocrPictureList); boolean saveBatch = this.saveBatch(ocrPictureList);
//3.添加图片信息 //3.添加图片信息
if (saveBatch) { if (saveBatch) {
this.savePicturesInfo(ocrPictureList);
this.convertImage(ocrPictureList); this.convertImage(ocrPictureList);
this.createTaskChild(ocrPictureList, ocrPictureList.get(0).getTenantId().toString());
return ocrPictureList.size(); return ocrPictureList.size();
} }
return 0; 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) { private void convertImage(List<OcrPicture> list) {
for (OcrPicture ocrPicture : list) { for (OcrPicture ocrPicture : list) {
PictureImgToLocalEntity entity = new PictureImgToLocalEntity(); PictureImgToLocalEntity entity = new PictureImgToLocalEntity();

@ -43,276 +43,275 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* *
*/ */
@Service("taskchildPictureService") @Service("taskchildPictureService")
@Slf4j @Slf4j
public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPictureMybatisDao, OcrTaskchildPicture> implements IFormCustomService<OcrTaskchildPicture> { public class TaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchildPictureMybatisDao, OcrTaskchildPicture> implements IFormCustomService<OcrTaskchildPicture> {
@Resource @Resource
private OcrTaskchildPictureService ocrTaskchildPictureService; private OcrTaskchildPictureService ocrTaskchildPictureService;
@Autowired @Autowired
private UserTokenService userTokenService; private UserTokenService userTokenService;
@Autowired @Autowired
private XiaoyaoConfig xiaoyaoConfig; private XiaoyaoConfig xiaoyaoConfig;
@Autowired @Autowired
private FtperrorService ftperrorService; private FtperrorService ftperrorService;
@Autowired @Autowired
private CategoryService categoryService; private CategoryService categoryService;
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired @Autowired
private SeqManageService seqManageService; private SeqManageService seqManageService;
@Autowired @Autowired
private CandidateuserService candidateuserService; private CandidateuserService candidateuserService;
@Autowired @Autowired
private IFlowFormMessageService iFlowFormMessageService; private IFlowFormMessageService iFlowFormMessageService;
@Override
public String saveForm(HttpServletRequest request) { @Override
OcrTaskchildPicture model = null; public String saveForm(HttpServletRequest request) {
try { OcrTaskchildPicture model = null;
model = RequestBaseUtil.reflects(request,OcrTaskchildPicture.class); try {
} catch (InstantiationException e) { model = RequestBaseUtil.reflects(request, OcrTaskchildPicture.class);
throw new RuntimeException(e); } catch (InstantiationException e) {
} catch (IllegalAccessException e) { throw new RuntimeException(e);
throw new RuntimeException(e); } catch (IllegalAccessException e) {
} catch (UnsupportedEncodingException e) { throw new RuntimeException(e);
throw new RuntimeException(e); } catch (UnsupportedEncodingException e) {
} catch (InvocationTargetException e) { throw new RuntimeException(e);
throw new RuntimeException(e); } catch (InvocationTargetException e) {
} 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()); UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
model.setCreateuser(userToken.getLoginname());
MultipartHttpServletRequest multipartRequest = WebUtils
.getNativeRequest(request, MultipartHttpServletRequest.class); MultipartHttpServletRequest multipartRequest = WebUtils
MultipartFile multipartfile = multipartRequest.getFile("fileannex"); .getNativeRequest(request, MultipartHttpServletRequest.class);
MultipartFile multipartfile = multipartRequest.getFile("fileannex");
//上传附件
if (null != multipartfile && !multipartfile.isEmpty()) { //上传附件
String filepat = SystemConstantsOa.OA_FILE_PATH; if (null != multipartfile && !multipartfile.isEmpty()) {
String filepat = SystemConstantsOa.OA_FILE_PATH;
//获得文件后缀
String fileType = FilenameUtils.getExtension(multipartfile.getOriginalFilename()); //获得文件后缀
String fileType = FilenameUtils.getExtension(multipartfile.getOriginalFilename());
//重新命名
String fileName = System.currentTimeMillis() + "_c." + fileType; //重新命名
String fileName = System.currentTimeMillis() + "_c." + fileType;
ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName,ftperrorService);
if (null != rs) { ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName, ftperrorService);
if (rs.getCode().equals(ResultVo.SUCCESS)) { if (null != rs) {
model.setFileannex(rs.getOtherMessage().toString()); if (rs.getCode().equals(ResultVo.SUCCESS)) {
} model.setFileannex(rs.getOtherMessage().toString());
} }
} }
}
//设置流程编号
Map<String,String> map = new HashMap<>(); //设置流程编号
map.put("systemcode",SystemConstantsOa.OA_BUSSINRSS_NO_FIX); Map<String, String> map = new HashMap<>();
Category category = categoryService.getById(model.getCategoryid()); map.put("systemcode", SystemConstantsOa.OA_BUSSINRSS_NO_FIX);
if(null != category){ Category category = categoryService.getById(model.getCategoryid());
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()){ List<Distionary> distionaryList = candidateuserService.selectList(userToken.getLoginname());
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()); model.setBuessinessno(seqManageService.getSeqNextNo(map));
this.save(model); model.setCreatedate(System.currentTimeMillis());
return model.getId().toString(); this.save(model);
}else{ return model.getId().toString();
} else {
MultipartHttpServletRequest multipartRequest = WebUtils
.getNativeRequest(request, MultipartHttpServletRequest.class); MultipartHttpServletRequest multipartRequest = WebUtils
MultipartFile multipartfile = multipartRequest.getFile("fileannex"); .getNativeRequest(request, MultipartHttpServletRequest.class);
MultipartFile multipartfile = multipartRequest.getFile("fileannex");
//上传附件
if (null != multipartfile && !multipartfile.isEmpty()) { //上传附件
String filepat = SystemConstantsOa.OA_FILE_PATH; if (null != multipartfile && !multipartfile.isEmpty()) {
String filepat = SystemConstantsOa.OA_FILE_PATH;
//获得文件后缀
String fileType = FilenameUtils.getExtension(multipartfile.getOriginalFilename()); //获得文件后缀
String fileType = FilenameUtils.getExtension(multipartfile.getOriginalFilename());
//重新命名
String fileName = System.currentTimeMillis() + "_c." + fileType; //重新命名
String fileName = System.currentTimeMillis() + "_c." + fileType;
ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName,ftperrorService);
if (null != rs) { ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName, ftperrorService);
if (rs.getCode().equals(ResultVo.SUCCESS)) { if (null != rs) {
model.setFileannex(rs.getOtherMessage().toString()); if (rs.getCode().equals(ResultVo.SUCCESS)) {
} model.setFileannex(rs.getOtherMessage().toString());
} }
} }
}
model.setUpdatetime(System.currentTimeMillis());
this.ocrTaskchildPictureService.updateById(model); model.setUpdatetime(System.currentTimeMillis());
return model.getId().toString(); this.ocrTaskchildPictureService.updateById(model);
} return model.getId().toString();
} }
}
@Override
public String editForm(HttpServletRequest request, String fromid) { @Override
if(StringUtils.isBlank(fromid)){ public String editForm(HttpServletRequest request, String fromid) {
return null; if (StringUtils.isBlank(fromid)) {
} return null;
OcrTaskchildPicture modelOld = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid)); }
if(null == modelOld){ OcrTaskchildPicture modelOld = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
return null; if (null == modelOld) {
} return null;
OcrTaskchildPicture modelNew = null; }
try { OcrTaskchildPicture modelNew = null;
modelNew = RequestBaseUtil.reflects(request,OcrTaskchildPicture.class); try {
} catch (InstantiationException e) { modelNew = RequestBaseUtil.reflects(request, OcrTaskchildPicture.class);
throw new RuntimeException(e); } catch (InstantiationException e) {
} catch (IllegalAccessException e) { throw new RuntimeException(e);
throw new RuntimeException(e); } catch (IllegalAccessException e) {
} catch (UnsupportedEncodingException e) { throw new RuntimeException(e);
throw new RuntimeException(e); } catch (UnsupportedEncodingException e) {
} catch (InvocationTargetException e) { throw new RuntimeException(e);
throw new RuntimeException(e); } catch (InvocationTargetException e) {
} throw new RuntimeException(e);
}
if(null != modelNew){
modelNew.setId(modelNew.getId()); if (null != modelNew) {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); modelNew.setId(modelNew.getId());
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
MultipartHttpServletRequest multipartRequest = WebUtils
.getNativeRequest(request, MultipartHttpServletRequest.class); MultipartHttpServletRequest multipartRequest = WebUtils
MultipartFile multipartfile = multipartRequest.getFile("fileannex"); .getNativeRequest(request, MultipartHttpServletRequest.class);
MultipartFile multipartfile = multipartRequest.getFile("fileannex");
//上传附件
if (null != multipartfile && !multipartfile.isEmpty()) { //上传附件
String filepat = SystemConstantsOa.OA_FILE_PATH; if (null != multipartfile && !multipartfile.isEmpty()) {
String filepat = SystemConstantsOa.OA_FILE_PATH;
//获得文件后缀
String fileType = FilenameUtils.getExtension(multipartfile.getOriginalFilename()); //获得文件后缀
String fileType = FilenameUtils.getExtension(multipartfile.getOriginalFilename());
//重新命名
String fileName = System.currentTimeMillis() + "_c." + fileType; //重新命名
String fileName = System.currentTimeMillis() + "_c." + fileType;
ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName,ftperrorService);
if (null != rs) { ResultVo rs = UploadSpringUtil.springUpload(multipartfile, xiaoyaoConfig, filepat, fileName, ftperrorService);
if (rs.getCode().equals(ResultVo.SUCCESS)) { if (null != rs) {
modelNew.setFileannex(rs.getOtherMessage().toString()); if (rs.getCode().equals(ResultVo.SUCCESS)) {
} modelNew.setFileannex(rs.getOtherMessage().toString());
} }
} }
}
modelNew.setUpdatetime(System.currentTimeMillis());
modelNew.setUpdateuser(userToken.getUserid()); modelNew.setUpdatetime(System.currentTimeMillis());
this.ocrTaskchildPictureService.updateById(modelNew); modelNew.setUpdateuser(userToken.getUserid());
return modelNew.getId().toString(); this.ocrTaskchildPictureService.updateById(modelNew);
} return modelNew.getId().toString();
}
return null;
} return null;
}
@Override
public boolean delForm(String formid) { @Override
if(StringUtils.isNotBlank(formid)){ public boolean delForm(String formid) {
return this.ocrTaskchildPictureService.removeById(formid) ; if (StringUtils.isNotBlank(formid)) {
} return this.ocrTaskchildPictureService.removeById(formid);
return false; }
} return false;
}
@Override
public boolean updateForm(String fromid, String deploymentid, String processdefinitionid, String assignee, String taskId, String processInstanceId,String tasknme) { @Override
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) {
OcrTaskchildPicture model = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid)); if (StringUtils.isNotBlank(fromid) && StringUtils.isNotBlank(deploymentid) && StringUtils.isNotBlank(processdefinitionid)) {
model .setProcessinstanceid(processInstanceId); OcrTaskchildPicture model = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
model.setProcessdefinitionid(processdefinitionid); model.setProcessinstanceid(processInstanceId);
model.setDeploymentid(deploymentid); model.setProcessdefinitionid(processdefinitionid);
model.setAssignee(assignee); model.setDeploymentid(deploymentid);
model.setTaskname(tasknme); model.setAssignee(assignee);
model.setStates(SystemConstantsOa.OA_STATUS_TYPE_ING); model.setTaskname(tasknme);
//查询审批人姓名 model.setStates(SystemConstantsOa.OA_STATUS_TYPE_ING);
String[] assignees = assignee.split(","); //查询审批人姓名
StringBuffer stringBuffer = new StringBuffer(); String[] assignees = assignee.split(",");
for(String tempAssign:assignees){ StringBuffer stringBuffer = new StringBuffer();
User user = userService.findByLoginname(tempAssign); for (String tempAssign : assignees) {
if(StringUtils.isNotBlank(stringBuffer.toString())){ User user = userService.findByLoginname(tempAssign);
stringBuffer.append("," + user.getUsername()); if (StringUtils.isNotBlank(stringBuffer.toString())) {
}else { stringBuffer.append("," + user.getUsername());
stringBuffer.append(user.getUsername()); } else {
} stringBuffer.append(user.getUsername());
//发送消息 }
//iFlowFormMessageService.sendMsg(user.getLoginname(),model.getUsername() + SystemMessage.SYS_OA_TYPE_LEAVE + SystemMessage.SYS_OA_TO_DO,taskId,processInstanceId,fromid, CacheQyweixinConstants.OA_DISTIONARY_TYPE_MSG_SHENPI,model.getCategoryid().toString()); //发送消息
} //iFlowFormMessageService.sendMsg(user.getLoginname(),model.getUsername() + SystemMessage.SYS_OA_TYPE_LEAVE + SystemMessage.SYS_OA_TO_DO,taskId,processInstanceId,fromid, CacheQyweixinConstants.OA_DISTIONARY_TYPE_MSG_SHENPI,model.getCategoryid().toString());
model.setAssigneename(stringBuffer.toString()); }
model.setAssigneename(stringBuffer.toString());
return this.ocrTaskchildPictureService.updateById(model);
} return this.ocrTaskchildPictureService.updateById(model);
return false; }
} return false;
}
@Override
public boolean editStatesForm(String fromid, int states, String assignee) { @Override
//TODO 后期修改图片的状态 public boolean editStatesForm(String fromid, int states, String assignee) {
if(StringUtils.isNotBlank(fromid)){ //TODO 后期修改图片的状态
OcrTaskchildPicture model = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid)); if (StringUtils.isNotBlank(fromid)) {
if(StringUtils.isNotBlank(assignee)){ OcrTaskchildPicture model = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
User user1 = userService.findByLoginname(assignee); if (StringUtils.isNotBlank(assignee)) {
model.setAssigneename(user1.getUsername()); User user1 = userService.findByLoginname(assignee);
model.setAssignee(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){ //判断是否为撤回
model.setProcessinstanceid(""); if (states == SystemConstantsOa.OA_STATUS_TYPE_CANCLE) {
model.setDeploymentid(""); model.setProcessinstanceid("");
model.setProcessdefinitionid(""); model.setDeploymentid("");
model.setAssigneename(""); model.setProcessdefinitionid("");
model.setAssignee(""); model.setAssigneename("");
} model.setAssignee("");
}
model.setStates(states);
return this.ocrTaskchildPictureService.updateById(model); model.setStates(states);
} return this.ocrTaskchildPictureService.updateById(model);
} }
return false; }
} return false;
}
@Override
public boolean endForm(String fromid, int states, String assignee, String processInstanceId,String tasknme) { @Override
//TODO 后期修改图片的状态 public boolean endForm(String fromid, int states, String assignee, String processInstanceId, String tasknme) {
if(StringUtils.isNotBlank(fromid)){ //TODO 后期修改图片的状态
OcrTaskchildPicture model = this.selectDtoById(Long.parseLong(fromid)); if (StringUtils.isNotBlank(fromid)) {
if(StringUtils.isNotBlank(assignee)){ OcrTaskchildPicture model = this.selectDtoById(Long.parseLong(fromid));
User user1 = userService.findByLoginname(assignee); if (StringUtils.isNotBlank(assignee)) {
model.setAssigneename(user1.getUsername()); User user1 = userService.findByLoginname(assignee);
model.setAssignee(assignee); model.setAssigneename(user1.getUsername());
} model.setAssignee(assignee);
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()); 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); model.setStates(states);
return this.updateById(model); return this.updateById(model);
} }
} return false;
return false; }
}
@Override
@Override public FlowModelVO getForm(String fromid) {
public FlowModelVO getForm(String fromid) { if (StringUtils.isNotBlank(fromid)) {
if(StringUtils.isNotBlank(fromid)){ OcrTaskchildPicture model = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
OcrTaskchildPicture model = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
//查询审批人
//查询审批人 if (null != model) {
if(null != model){ return model.getFlowModelVO();
return model.getFlowModelVO(); }
}
}
} return null;
return null; }
}
} }

@ -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