From 7075278f54c9304a455e39f1288c88e4b3af13b4 Mon Sep 17 00:00:00 2001 From: admin <149470858@qq.com> Date: Sat, 9 Mar 2024 01:24:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BB=BB=E5=8A=A1=E5=8C=85--?= =?UTF-8?q?=E6=99=BA=E8=83=BD=E5=AE=A1=E6=89=B9=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OcrTaskchildPictureController.java | 28 + .../ocr/dataobject/OcrTaskchildPicture.java | 151 +- .../service/OcrTaskchildPictureService.java | 14 + .../service/impl/OcrPictureServiceImpl.java | 41 +- .../impl/OcrTaskchildPictureServiceImpl.java | 48 +- .../cn/jyjz/xiaoyao/ocr/util/ApiHelper.java | 1315 +++++++++-------- .../cn/jyjz/xiaoyao/ocr/util/RequestData.java | 352 ++--- .../cn/jyjz/xiaoyao/ocr/util/ResultData.java | 266 ++-- .../mapper/oa/OcrTaskchildPictureMapper.xml | 108 +- .../controller/FlowTaskController.class | Bin 12249 -> 14065 bytes .../OcrTaskchildPictureController.class | Bin 12782 -> 13392 bytes ...ldPicture$OcrTaskchildPictureBuilder.class | Bin 9422 -> 9580 bytes .../ocr/dataobject/OcrTaskchildPicture.class | Bin 36300 -> 37088 bytes .../service/OcrTaskchildPictureService.class | Bin 2440 -> 2835 bytes .../service/impl/OcrPictureServiceImpl.class | Bin 17488 -> 17976 bytes .../impl/OcrTaskchildPictureServiceImpl.class | Bin 14381 -> 16629 bytes .../xiaoyao/ocr/util/ImageClassUtil.class | Bin 3032 -> 2975 bytes .../ocr/util/httputil/HttpClient.class | Bin 8322 -> 8181 bytes .../mapper/oa/OcrTaskchildPictureMapper.xml | 108 +- .../target/jyjz-system-oa-1.0.0-sources.jar | Bin 298549 -> 310924 bytes .../target/jyjz-system-oa-1.0.0.jar | Bin 521715 -> 542264 bytes .../compile/default-compile/createdFiles.lst | 5 + .../compile/default-compile/inputFiles.lst | 5 + 23 files changed, 1284 insertions(+), 1157 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java index c366c514..fae8abcc 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.java @@ -1,6 +1,7 @@ package cn.jyjz.xiaoyao.ocr.controller; import java.io.IOException; +import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -201,6 +202,33 @@ public class OcrTaskchildPictureController extends BaseController{ return ocrTaskchildPictureService.clearmark(taskchildpictureid,packageid); } + /** + * 当前任务包智能识别 + * + * @param req + * @return + */ + @ApiOperation(value="当前任务包智能识别", notes="当前任务包智能识别") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "path",name = "packageid", value = "任务包主键", required = true) + }) + @PostMapping(value = "/markpoint") + public ResultVo markpoint(@RequestParam(name="packageid",required=true) String packageid, + HttpServletRequest req) { + //如果是历史图片,不允许进行设置 + //如果是已经审批完成的图片不允许是指 + + OcrTaskchildPicture ocrTaskchildPicture = new OcrTaskchildPicture(); + + ocrTaskchildPicture.setPackageid(Long.parseLong(packageid)); + + List list = ocrTaskchildPictureService.markpoint(packageid); + if(null != list && !list.isEmpty()){ + return ResultVoUtil.success(list); + } + return ResultVoUtil.error(); + } + /** *方法描述:通过主键获得对象信息 *创建人:mail.zhangyong@gmail.com diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPicture.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPicture.java index d17814a6..a37996c2 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPicture.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPicture.java @@ -39,153 +39,149 @@ import java.util.stream.Collectors; @TableName(value = "ocr_taskchild_picture") public class OcrTaskchildPicture implements BaseDto,java.io.Serializable { - private static final long serialVersionUID = 6403133754695702159L; - @ApiModelProperty(value ="主键") + private static final long serialVersionUID = -8018660053527763810L; + @ApiModelProperty(value = "主键") @TableId(value = "id",type = IdType.ASSIGN_ID) @JsonSerialize(using = ToStringSerializer.class) @TableField(value="ID") private Long id; - @ApiModelProperty(value ="比对图片主键,多个数据使用英文逗号分隔") + @ApiModelProperty(value = "比对图片主键,多个数据使用英文逗号分隔") @TableField(value="OCPICTUREID") private String ocpictureid; - @ApiModelProperty(value ="图片比对结果,与图片主键一一对应,记录比对结果,使用英文逗号分隔,例如99.6,98.1,97.2") + @ApiModelProperty(value = "图片比对结果,与图片主键一一对应,记录比对结果,使用英文逗号分隔,例如99.6,98.1,97.2") @TableField(value="PICTURERESULT") private String pictureresult; - @ApiModelProperty(value ="只记录主图,如果存在历史图片,不在这里记录") + @ApiModelProperty(value = "只记录主图,如果存在历史图片,不在这里记录") @TableField(value="PICTURECOMPARE") private String picturecompare; - @ApiModelProperty(value ="所属部门") + @ApiModelProperty(value = "所属部门") @TableField(value="DEPTID") private String deptid; - @ApiModelProperty(value ="租户ID") + @ApiModelProperty(value = "租户ID") @TableField(value="TENANTID") - @JsonSerialize(using = ToStringSerializer.class) private Long tenantid; - @ApiModelProperty(value ="任务包主键") + @ApiModelProperty(value = "任务包主键") @TableField(value="PACKAGEID") - @JsonSerialize(using = ToStringSerializer.class) private Long packageid; - @ApiModelProperty(value ="原图片主键") + @ApiModelProperty(value = "原图片主键") @TableField(value="PICTUREID") - @JsonSerialize(using = ToStringSerializer.class) private Long pictureid; - @ApiModelProperty(value ="类型名称") + @ApiModelProperty(value = "类型名称") @TableField(value="CATEGORY") private String category; - @ApiModelProperty(value ="项目ID") + @ApiModelProperty(value = "项目ID") @TableField(value="CATEGORYID") - @JsonSerialize(using = ToStringSerializer.class) private Long categoryid; - @ApiModelProperty(value ="明细单") + @ApiModelProperty(value = "明细单") @TableField(value="SPECIFICATION") private String specification; - @ApiModelProperty(value ="业务编码") + @ApiModelProperty(value = "业务编码") @TableField(value="BUESSINESSNO") private String buessinessno; - @ApiModelProperty(value ="状态,审批状态 1:未提交 2:审批中 3:审批通过 ,5:拒绝") + @ApiModelProperty(value = "状态,审批状态 1:未提交 2:审批中 3:审批通过 ,5:拒绝") @TableField(value="STATES") private Integer states; - @ApiModelProperty(value ="流程实例IdprocessInstanceId") + @ApiModelProperty(value = "流程实例IdprocessInstanceId") @TableField(value="PROCESSINSTANCEID") private String processinstanceid; - @ApiModelProperty(value ="流程定义id") + @ApiModelProperty(value = "流程定义id") @TableField(value="PROCESSDEFINITIONID") private String processdefinitionid; - @ApiModelProperty(value ="流程部署id") + @ApiModelProperty(value = "流程部署id") @TableField(value="DEPLOYMENTID") private String deploymentid; - @ApiModelProperty(value ="审批人姓名") + @ApiModelProperty(value = "审批人姓名") @TableField(value="ASSIGNEENAME") private String assigneename; - @ApiModelProperty(value ="审批人") + @ApiModelProperty(value = "审批人") @TableField(value="ASSIGNEE") private String assignee; - @ApiModelProperty(value ="修改人,记录创建人的帐号") + @ApiModelProperty(value = "修改人,记录创建人的帐号") @TableField(value="UPDATEUSER") private String updateuser; - @ApiModelProperty(value ="更新时间") + @ApiModelProperty(value = "更新时间") @TableField(value="UPDATETIME") - @JsonSerialize(using = DateSerializer.class) private Long updatetime; - @ApiModelProperty(value ="附件") + @ApiModelProperty(value = "附件") @TableField(value="FILEANNEX") private String fileannex; - @ApiModelProperty(value ="是否归档,0:未归档,1:归档") + @ApiModelProperty(value = "是否归档,0:未归档,1:归档") @TableField(value="GUIDANG") private Integer guidang; - @ApiModelProperty(value ="创建人") + @ApiModelProperty(value = "创建人") @TableField(value="CREATEUSER") private String createuser; - @ApiModelProperty(value ="创建人姓名") + @ApiModelProperty(value = "创建人姓名") @TableField(value="CREATEUSERNAME") private String createusername; - @ApiModelProperty(value ="创建时间") - @JsonSerialize(using = DateSerializer.class) + @ApiModelProperty(value = "创建时间") @TableField(value="CREATEDATE") private Long createdate; - @ApiModelProperty(value ="员工主键") - @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "员工主键") @TableField(value="USERID") private Long userid; - @ApiModelProperty(value ="员工姓名") + @ApiModelProperty(value = "员工姓名") @TableField(value="USERNAME") private String username; - @ApiModelProperty(value ="任务id,来源于图片表") + @ApiModelProperty(value = "任务id,来源于图片表") @TableField(value="FROMTASKID") private String fromtaskid; - @ApiModelProperty(value ="任务名称,来源于图片表") + @ApiModelProperty(value = "任务名称,来源于图片表") @TableField(value="FROMTASKNAME") private String fromtaskname; - @ApiModelProperty(value ="提报人") + @ApiModelProperty(value = "提报人") @TableField(value="FROMUSERID") private String fromuserid; - @ApiModelProperty(value ="所属项目") + @ApiModelProperty(value = "所属项目") @TableField(value="FROMPROJECTID") private String fromprojectid; - @ApiModelProperty(value ="所属计划") + @ApiModelProperty(value = "所属计划") @TableField(value="FROMPLANID") private String fromplanid; - @ApiModelProperty(value ="提报时间") + @ApiModelProperty(value = "提报时间") @TableField(value="FROMUPTIME") - @JsonSerialize(using = DateSerializer.class) private Long fromuptime; - @ApiModelProperty(value ="任务来源") + @ApiModelProperty(value = "任务来源") @TableField(value="FROMSOURCEID") private String fromsourceid; + @ApiModelProperty(value = "是否为相似图片,与其他图片对比为百分百的,记录为1,0:不相似,1:相似") + @TableField(value="HAVEPOINTS") + private Integer havepoints; + @ApiModelProperty(value = "项目对象") @TableField(exist = false) private Category categoryDto; @@ -251,40 +247,41 @@ public class OcrTaskchildPicture implements BaseDto,java.io.Serializable { @TableField(exist = false) @JsonIgnore private final Map query = Stream.of( - new SimpleEntry<>("ID","id"), - new SimpleEntry<>("OCPICTUREID","ocpictureid"), - new SimpleEntry<>("PICTURERESULT","pictureresult"), - new SimpleEntry<>("PICTURECOMPARE","picturecompare"), - new SimpleEntry<>("DEPTID","deptid"), - new SimpleEntry<>("TENANTID","tenantid"), - new SimpleEntry<>("PACKAGEID","packageid"), - new SimpleEntry<>("PICTUREID","pictureid"), - new SimpleEntry<>("CATEGORY","category"), - new SimpleEntry<>("CATEGORYID","categoryid"), - new SimpleEntry<>("SPECIFICATION","specification"), - new SimpleEntry<>("BUESSINESSNO","buessinessno"), - new SimpleEntry<>("STATES","states"), - new SimpleEntry<>("PROCESSINSTANCEID","processinstanceid"), - new SimpleEntry<>("PROCESSDEFINITIONID","processdefinitionid"), - new SimpleEntry<>("DEPLOYMENTID","deploymentid"), - new SimpleEntry<>("ASSIGNEENAME","assigneename"), - new SimpleEntry<>("ASSIGNEE","assignee"), - new SimpleEntry<>("UPDATEUSER","updateuser"), - new SimpleEntry<>("UPDATETIME","updatetime"), - new SimpleEntry<>("FILEANNEX","fileannex"), - new SimpleEntry<>("GUIDANG","guidang"), - new SimpleEntry<>("CREATEUSER","createuser"), - new SimpleEntry<>("CREATEUSERNAME","createusername"), - new SimpleEntry<>("CREATEDATE","createdate"), - new SimpleEntry<>("USERID","userid"), - new SimpleEntry<>("USERNAME","username"), - new SimpleEntry<>("FROMTASKID","fromtaskid"), - new SimpleEntry<>("FROMTASKNAME","fromtaskname"), - new SimpleEntry<>("FROMUSERID","fromuserid"), - new SimpleEntry<>("FROMPROJECTID","fromprojectid"), - new SimpleEntry<>("FROMPLANID","fromplanid"), - new SimpleEntry<>("FROMUPTIME","fromuptime"), - new SimpleEntry<>("FROMSOURCEID","fromsourceid") + new SimpleEntry<>("ID","id"), + new SimpleEntry<>("OCPICTUREID","ocpictureid"), + new SimpleEntry<>("PICTURERESULT","pictureresult"), + new SimpleEntry<>("PICTURECOMPARE","picturecompare"), + new SimpleEntry<>("DEPTID","deptid"), + new SimpleEntry<>("TENANTID","tenantid"), + new SimpleEntry<>("PACKAGEID","packageid"), + new SimpleEntry<>("PICTUREID","pictureid"), + new SimpleEntry<>("CATEGORY","category"), + new SimpleEntry<>("CATEGORYID","categoryid"), + new SimpleEntry<>("SPECIFICATION","specification"), + new SimpleEntry<>("BUESSINESSNO","buessinessno"), + new SimpleEntry<>("STATES","states"), + new SimpleEntry<>("PROCESSINSTANCEID","processinstanceid"), + new SimpleEntry<>("PROCESSDEFINITIONID","processdefinitionid"), + new SimpleEntry<>("DEPLOYMENTID","deploymentid"), + new SimpleEntry<>("ASSIGNEENAME","assigneename"), + new SimpleEntry<>("ASSIGNEE","assignee"), + new SimpleEntry<>("UPDATEUSER","updateuser"), + new SimpleEntry<>("UPDATETIME","updatetime"), + new SimpleEntry<>("FILEANNEX","fileannex"), + new SimpleEntry<>("GUIDANG","guidang"), + new SimpleEntry<>("CREATEUSER","createuser"), + new SimpleEntry<>("CREATEUSERNAME","createusername"), + new SimpleEntry<>("CREATEDATE","createdate"), + new SimpleEntry<>("USERID","userid"), + new SimpleEntry<>("USERNAME","username"), + new SimpleEntry<>("FROMTASKID","fromtaskid"), + new SimpleEntry<>("FROMTASKNAME","fromtaskname"), + new SimpleEntry<>("FROMUSERID","fromuserid"), + new SimpleEntry<>("FROMPROJECTID","fromprojectid"), + new SimpleEntry<>("FROMPLANID","fromplanid"), + new SimpleEntry<>("FROMUPTIME","fromuptime"), + new SimpleEntry<>("FROMSOURCEID","fromsourceid"), + new SimpleEntry<>("HAVEPOINTS","havepoints") ) .collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue)); @Override diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java index a8d972b6..4c21546c 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.java @@ -20,6 +20,20 @@ public interface OcrTaskchildPictureService extends BaseService listAll(String tenantId, String createUser, QueryWrapper queryWrapper); + /** + * 批量标记当前任务相似度为百分之百 + * @param taskids 任务主键 + * @return + */ + public boolean markPoint(List taskids); + + /** + * 查询智能识别 + * @param packageid 任务包主键 + * @return + */ + public List markpoint(String packageid); + /** * 判断任务是否已经审批 * @param formid 任务主键 diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java index 070dd683..c58dfa56 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java @@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hpsf.Decimal; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl; @@ -33,6 +34,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.Serializable; +import java.math.BigDecimal; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -70,6 +73,9 @@ public class OcrPictureServiceImpl extends BaseServiceImpl pointsList = new ArrayList<>(); //图片信息不能为空 if(null != ocrPictureList && !ocrPictureList.isEmpty()){ //生成任务包 @@ -84,6 +90,8 @@ public class OcrPictureServiceImpl extends BaseServiceImpl newList = new ArrayList<>(); for(OcrPicture ocrPicture:ocrPictureList){ @@ -99,12 +107,16 @@ public class OcrPictureServiceImpl extends BaseServiceImpl picturecompareList = new ArrayList<>(); + boolean havePoint = false; //二次遍历进行比对 for(OcrPicture ocrPictureNext:ocrPictureList){ + if(ocrPictureNext.getId().longValue() == ocrPicture.getId().longValue()){ + continue; + } + //TODO 接口请求判断重复情况 - logService.addLog(103,"AI获取图片相似度接口", sysUser, "sendParams"); @@ -114,14 +126,25 @@ public class OcrPictureServiceImpl extends BaseServiceImpl 0){ diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java index 860d7bae..d946dff5 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildPictureServiceImpl.java @@ -13,6 +13,7 @@ import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture; import cn.jyjz.xiaoyao.ocr.service.OcrPictureService; import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang3.StringUtils; @@ -226,6 +227,35 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl taskids){ + UpdateWrapper updateWrapper = new UpdateWrapper(); + updateWrapper.set("HAVEPOINTS",1); + updateWrapper.in("ID",taskids); + + return this.update(updateWrapper); + } + + /** + * 查询智能识别 + * @param packageid 任务包主键 + * @return + */ + public List markpoint(String packageid){ + QueryWrapper queryWrapperNew = new QueryWrapper<>(); + queryWrapperNew.eq("HAVEPOINTS","1"); + queryWrapperNew.eq("PACKAGEID",packageid); + + List list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapperNew); + this.formatTask(list,packageid); + + return list; + } + /** * 根据主键,查询图片详情 * @param fromid 任务主键 @@ -320,7 +350,19 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl iPage = this.page(page,queryWrapper); - for(OcrTaskchildPicture ocrTaskchildPicture:iPage.getRecords()){ + this.formatTask(iPage.getRecords(),packageid); + + + return iPage; + } + + /** + * 格式化显示数据 + * @param list + * @param packageid + */ + private void formatTask(List list,String packageid){ + for(OcrTaskchildPicture ocrTaskchildPicture:list){ //查询审批流节点信息 List taskList = iFlowTaskService.nowRunTask(ocrTaskchildPicture.getProcessinstanceid(),ocrTaskchildPicture.getProcessdefinitionid()); @@ -340,7 +382,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl -// * 签名: -// *
    -// *
  1. 字符串编码: {@link StandardCharsets#UTF_8}
  2. -// *
  3. 签名算法:HmacSHA256
  4. -// *
  5. 密钥和盐合并格式: <密钥>#</密钥>
  6. -// *
  7. 密钥长度:128位
  8. -// *
  9. 密钥生成算法:SHA1PRNG
  10. -// *
  11. 签名参数按ASCII码升序排序,组成签名字符串:key1=value1&key2=&key3=value3…
  12. -// *
  13. 签名后均采用base64编码:{@link Base64#encodeBase64URLSafeString(byte[])}
  14. -// *
-// * -// * 加密: -// *
    -// *
  1. 字符串编码: {@link StandardCharsets#UTF_8}
  2. -// *
  3. 加密算法:AES;具体算法:AES/ECB/PKCS5Padding
  4. -// *
  5. 密钥和盐合并格式: <密钥>#</密钥>
  6. -// *
  7. 密钥长度:128位
  8. -// *
  9. 密钥生成算法:SHA1PRNG
  10. -// *
  11. 加密后均采用base64编码:{@link Base64#encodeBase64URLSafeString(byte[])}
  12. -// *
-// * -// * @author hdzhong -// * @date 2023/9/10 -// */ -//@Slf4j -//public class ApiHelper { -// -// /** -// * AES key algorithm: AES -// */ -// private static final String KEY_ALGORITHM = "AES"; -// /** -// * AES key length: 128 -// */ -// private static final int KEY_LENGTH = 128; -// /** -// * cipher algorithm: AES/ECB/PKCS5Padding -// */ -// private static final String CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding"; -// -// /** -// * combine key and salt by: String.format("%s#%s", secretKey, salt) -// * -// * @param accessCode encrypt/decrypt key -// * @param salt salt append to key -// * @return combined key -// */ -// public static String combineSalt(String accessCode, String salt) { -// return String.format("%s#%s", accessCode, salt); -// } -// -// /** -// * verify whether the signature is correct -// * -// * @param accessCode encrypt/decrypt key -// * @param salt salt append to key -// * @param parameters parameter which to be signed -// * @param signature signature which will be verified -// * @return whether the signature is correct -// * @see #combineSalt(String, String) -// */ -// public static boolean verifySignature(String accessCode, String salt, -// Map parameters, String signature) { -// String sign = getSignature(combineSalt(accessCode, salt), parameters); -// -// return sign.equals(signature); -// } -// -// /** -// * verify whether the signature is correct -// * -// * @param accessCode encrypt/decrypt key -// * @param salt salt append to key -// * @param data encrypted data which to be signed -// * @param signature signature which will be verified -// * @return whether the signature is correct -// * @see #combineSalt(String, String) -// */ -// public static boolean verifySignature(String accessCode, String salt, -// String data, String signature) { -// String sign = getSignature(accessCode, salt, data); -// -// return sign.equals(signature); -// } -// -// /** -// * timestamp({@link RequestData#getTimestamp()}) & signature({@link RequestData#getSignature()}) -// * will be added to {@code parameters}. {@code data} will be encrypted. -// * -// * @param tenantCode tenant code -// * @param accessKey access key -// * @param accessCode access secret -// * @param parameters parameter which to be signed -// * @return encrypted data and signature -// * @throws Exception -// */ -// public static RequestData buildQueryRequest(String tenantCode, String accessKey, String accessCode, -// Map parameters) throws Exception { -// RequestData requestData = new RequestData(); -// -// // tenant code -// requestData.setTenantCode(tenantCode); -// // access key -// requestData.setAccessKey(accessKey); -// // parameter -// requestData.setParameters(parameters); -// -// // 1. do sign -// long timestamp = System.currentTimeMillis(); -// // timestamp -// requestData.setTimestamp(timestamp); -// -// String sign = getSignature(accessCode, String.valueOf(timestamp), parameters); -// requestData.setSignature(sign); -// -// return requestData; -// } -// -// /** -// * timestamp({@link RequestData#getTimestamp()}) & signature({@link RequestData#getSignature()}) -// * will be added to {@code parameters}. {@code data} will be encrypted. -// * -// * @param tenantCode tenant code -// * @param accessKey access key -// * @param accessCode access secret -// * @param accessCode encrypt/decrypt key -// * @param data request data which to be encrypted -// * @return encrypted data and signature -// * @throws Exception -// */ -// public static RequestData buildRequest(String tenantCode, String accessKey, String accessCode, -// T data) throws Exception { -// RequestData requestData = new RequestData(); -// -// // tenant code -// requestData.setTenantCode(tenantCode); -// // access key -// requestData.setAccessKey(accessKey); -// -// // timestamp -// long timestamp = System.currentTimeMillis(); -// requestData.setTimestamp(timestamp); -// -// // 1. convert data to json string -// String dataJson = null; -// if (data == null) { -// dataJson = ""; -// } else if (data instanceof String) { -// dataJson = (String) data; -// } else { -// ObjectMapper mapper = new ObjectMapper(); -// dataJson = mapper.writeValueAsString(data); -// } -// -// // 2. do encrypt -// String encryptedData = encrypt(accessCode, String.valueOf(timestamp), dataJson); -// requestData.setData(encryptedData); -// -// // 2. do sign -// // build query string for tenantCode & accessKey & encrypted data -// final StringBuilder builder = new StringBuilder(); -// Map map = new LinkedHashMap<>(); -// // append tenant code -// map.put("tenantCode", requestData.getTenantCode()); -// // append access key -// map.put("accessKey", requestData.getAccessKey()); -// -// String query = RequestData.buildQuery(map); -// -// // combine data -// String text = String.format("%s%s", query, requestData.getData()); -// -// String sign = getSignature(accessCode, String.valueOf(timestamp), text); -// requestData.setSignature(sign); -// -// return requestData; -// } -// -// /** -// * verify signature then decrypt {@link RequestData#getData()} -// * -// * @param accessCode access code -// * @param requestData request data which {@link RequestData#getData()} is encrypted -// * @return decrypted String -// * @throws Exception -// * @see #decryptRequest(String, RequestData, Class) -// */ -// public @Nullable static String decryptRequest(String accessCode, RequestData requestData) throws Exception { -// return decryptRequest(accessCode, requestData, String.class); -// } -// -// /** -// * verify signature then decrypt {@link RequestData#getData()} -// * -// * @param accessCode access code -// * @param requestData request data which {@link RequestData#getData()} is encrypted -// * @param clazz class use for {@link ObjectMapper#readValue(String, Class)} to convert JSON to object -// * @return decrypted Object -// * @throws Exception -// */ -// public @Nullable static T decryptRequest(String accessCode, RequestData requestData, -// Class clazz) throws Exception { -// String decrypedData = null; -// // 1. verify signature -// String timestamp = String.valueOf(requestData.getTimestamp()); -// -// // build query string for tenantCode & accessKey & encrypted data -// final StringBuilder builder = new StringBuilder(); -// Map map = new LinkedHashMap<>(); -// // append tenant code -// map.put("tenantCode", requestData.getTenantCode()); -// // append access key -// map.put("accessKey", requestData.getAccessKey()); -// -// String query = RequestData.buildQuery(map); -// -// // combine data -// String text = String.format("%s%s", query, requestData.getData()); -// -// if (!verifySignature(accessCode, timestamp, text, requestData.getSignature())) { -// throw new Exception(String.format("illegal signature: %s", requestData.getSignature())); -// } -// -// // 2. do decrypt -// byte[] bytes = decrypt(accessCode, timestamp, requestData.getData()); -// if (bytes != null) { -// decrypedData = new String(bytes, StandardCharsets.UTF_8); -// } -// -// // 3. convert to object -// if (clazz.equals(String.class)) { -// return (T) decrypedData; -// } -// ObjectMapper mapper = new ObjectMapper(); -// -// return mapper.readValue(decrypedData, clazz); -// } -// -// /** -// * do sign with salt -// *
    -// *
  1. combine key and salt by {@link #combineSalt(String, String)}
  2. -// *
  3. invoke {@link #getSignature(String, Map)}
  4. -// *
-// * -// * @param accessCode encrypt/decrypt key -// * @param salt salt append to key -// * @param parameters parameter which to be signed -// * @return {@link #getSignature(String, Map)} -// */ -// public static String getSignature(String accessCode, String salt, Map parameters) { -// return getSignature(combineSalt(accessCode, salt), parameters); -// } -// -// /** -// * do sign without salt -// *
    -// *
  1. build message by {@link #buildMessage(Map)}
  2. -// *
  3. do sign by "HmacSHA256" algorithm: {@link Mac#getInstance(String)}
  4. -// *
  5. encode signature by base64 with URL safe character: {@link Base64#encodeBase64URLSafeString(byte[])}
  6. -// *
-// * -// * @param secretKey encrypt/decrypt key -// * @param parameters parameter which to be signed -// * @return signature -// */ -// public static String getSignature(String secretKey, Map parameters) { -// if (parameters.isEmpty()) { -// throw new RuntimeException("parameters are empty"); -// } -// // 1. sort parameters to string -// String message = buildMessage(parameters); -// if (log.isInfoEnabled()) { -// log.debug("signature for message: {}", message); -// } -// -// // 2. do sign -// return getSignature(secretKey, message); -// } -// -// /** -// * do sign with salt -// *
    -// *
  1. combine key and salt by {@link #combineSalt(String, String)}
  2. -// *
  3. invoke {@link #getSignature(String, String)}
  4. -// *
-// * -// * @param accessCode encrypt/decrypt key -// * @param salt salt append to key -// * @param data encrypted data which to be signed -// * @return signature -// * @see #getSignature(String, String) -// */ -// public static String getSignature(String accessCode, String salt, String data) { -// return getSignature(combineSalt(accessCode, salt), data); -// } -// -// /** -// * sign {@code data} -// * -// * @param secretKey encrypt/decrypt key -// * @param data encrypted data which to be signed -// * @return signature -// * @see #getSignature(String, String, Map) -// * @see #buildMessage(Map) -// */ -// public static String getSignature(String secretKey, String data) { -// if (data == null ) { -// return null; -// } -// -// try { -// Mac mac = Mac.getInstance("HmacSHA256"); -// SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes(), "HmacSHA256"); -// mac.init(keySpec); -// byte[] result = mac.doFinal(data.getBytes()); -// -// // 3. to base64 string -// return Base64.encodeBase64URLSafeString(result); -// } catch (Exception e) { -// throw new RuntimeException(e.getMessage()); -// } -// } -// -// /** -// * sort parameters then combine to query string -// *
    -// *
  1. sort parameters' keys ASCII ASC by {@link Collections#sort(List)}
  2. -// *
  3. combine to query string: key1=value1&key2=value2
  4. -// *
-// * -// * @param parameters parameter which to be signed -// * @return query string for parameters -// */ -// public static String buildMessage(Map parameters) { -// Collection keys = parameters.keySet(); -// List keyList = new ArrayList<>(keys); -// // sort parameters by ASCII ASC -// Collections.sort(keyList); -// StringBuilder builder = new StringBuilder(); -// for (String k : keyList) { -// String v = parameters.get(k); -// if (v == null) { -// v = ""; -// } -// if (builder.length() > 0) { -// builder.append("&"); -// } -// builder.append(k).append("=").append(v); -// } -// return builder.toString(); -// } -// -// /** -// * encrypt data then do sign -// * -// * @param accessCode access code -// * @param data data which to be encrypted -// * @return ResultData with encrypted data & signature -// * @throws Exception -// */ -// public static ResultData buildResponse(String accessCode, T data) throws Exception { -// ResultData result = ResultData.success(); -// -// // 1. convert data to json string -// String dataJson = null; -// if (data == null) { -// dataJson = ""; -// } else if (data instanceof String) { -// dataJson = (String) data; -// } else { -// ObjectMapper mapper = new ObjectMapper(); -// dataJson = mapper.writeValueAsString(data); -// } -// -// // 2. do encrypt -// String timestamp = String.valueOf(result.getTimestamp()); -// String encryptedData = encrypt(accessCode, timestamp, dataJson); -// result.setData(encryptedData); -// -// // 3. do signature -// String signature = getSignature(accessCode, timestamp, encryptedData); -// result.setSignature(signature); -// -// // message -// return result; -// } -// -// /** -// * do verify signature then decrypt -// * -// * @param accessCode access code -// * @param resultData {@link ResultData} which to be decrypted -// * @return decrypted string -// * @throws Exception -// * @see #decryptResponse(String, ResultData, Class) -// */ -// public @Nullable static String decryptResponse(String accessCode, ResultData resultData) throws Exception { -// return decryptResponse(accessCode, resultData, String.class); -// } -// -// /** -// * do verify signature then decrypt -// * -// * @param accessCode access code -// * @param resultData {@link ResultData} which to be decrypted -// * @param clazz class use for {@link ObjectMapper#readValue(String, Class)} to convert JSON to object -// * @return decrypted string -// * @throws Exception -// */ -// public @Nullable static T decryptResponse(String accessCode, ResultData resultData, -// Class clazz) throws Exception { -// String decrypedData = null; -// // 1. verify signature -// String timestamp = String.valueOf(resultData.getTimestamp()); -// if (!verifySignature(accessCode, timestamp, resultData.getData(), resultData.getSignature())) { -// throw new Exception(String.format("illegal signature: %s", resultData.getSignature())); -// } -// -// // 2. do decrypt -// byte[] bytes = decrypt(accessCode, timestamp, resultData.getData()); -// if (bytes != null) { -// decrypedData = new String(bytes, StandardCharsets.UTF_8); -// } -// -// // 3. convert to object -// if (clazz.equals(String.class)) { -// return (T) decrypedData; -// } -// ObjectMapper mapper = new ObjectMapper(); -// -// return mapper.readValue(decrypedData, clazz); -// } -// -// /** -// * do AES encrypt -// * -// *
    -// *
  1. combine key and salt by {@link #combineSalt(String, String)}
  2. -// *
  3. invoke {@link #encrypt(String, String)}
  4. -// *
-// * -// * @param accessCode encrypt/decrypt key -// * @param salt salt append to key -// * @param data data which will be encrypted -// * @return base64 string of AES encrypted data -// * @throws Exception -// * @see #combineSalt(String, String) -// * @see #encrypt(String, String) -// */ -// public @Nullable static String encrypt(String accessCode, String salt, String data) throws Exception { -// return encrypt(combineSalt(accessCode, salt), data); -// } -// -// /** -// * encrypt data without salt -// * -// * @param secretKey encrypt/decrypt key -// * @param data data which will be encrypted -// * @return base64 string of AES encrypted data -// * @throws Exception -// * @see #encrypt(String, byte[]) -// */ -// public @Nullable static String encrypt(String secretKey, String data) throws Exception { -// if (data == null) { -// return null; -// } -// -// return encrypt(secretKey, data.getBytes(StandardCharsets.UTF_8)); -// } -// -// /** -// * do AES encrypt -// * -// *
    -// *
  1. combine key and salt by {@link #combineSalt(String, String)}
  2. -// *
  3. invoke {@link #encrypt(String, byte[])}
  4. -// *
-// * -// * @param accessCode encrypt/decrypt key -// * @param salt salt append to key -// * @param data data which will be encrypted -// * @return base64 string of AES encrypted data -// * @throws Exception -// * @see #combineSalt(String, String) -// * @see #encrypt(String, byte[]) -// */ -// public @Nullable static String encrypt(String accessCode, String salt, byte[] data) throws Exception { -// return encrypt(combineSalt(accessCode, salt), data); -// } -// -// /** -// *
    -// *
  1. generate secret key by {@link #getSecretKey(String)}
  2. -// *
  3. do AES encrypt
  4. -// *
  5. convert ot base64 string {@link Base64#encodeBase64URLSafeString(byte[])}
  6. -// *
-// * -// * @param secretKey encrypt/decrypt key -// * @param data data which will be encrypted -// * @return base64 string of AES encrypted data -// * @throws Exception -// */ -// public @Nullable static String encrypt(String secretKey, byte[] data) throws Exception { -// if (data == null) { -// return null; -// } -// if (log.isInfoEnabled()) { -// log.debug("encrypt for data: {}", new String(data, StandardCharsets.UTF_8)); -// } -// // 创建密码器 -// Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); -// -// // 初始化为加密模式的密码器 -// cipher.init(Cipher.ENCRYPT_MODE, getSecretKey(secretKey)); -// -// byte[] result = cipher.doFinal(data); -// -// // base64 encode -// String base64 = Base64.encodeBase64URLSafeString(result); -// -// if (log.isInfoEnabled()) { -// log.debug("encrypted: {}", base64); -// } -// return base64; -// } -// -// -// /** -// * do AES decrypt -// * -// *
    -// *
  1. combine key and salt by {@link #combineSalt(String, String)}
  2. -// *
  3. invoke {@link #decrypt(String, String)}
  4. -// *
-// * -// * @param accessCode encrypt/decrypt key -// * @param salt salt append to key -// * @param data data which will be decrypted -// * @return decrypted data -// * @throws Exception -// * @see #combineSalt(String, String) -// * @see #decrypt(String, String) -// */ -// public @Nullable static byte[] decrypt(String accessCode, String salt, String data) throws Exception { -// return decrypt(combineSalt(accessCode, salt), data); -// } -// -// /** -// *
    -// *
  1. generate secret key by {@link #getSecretKey(String)}
  2. -// *
  3. decode base64 string of {@code data} by: {@link Base64#decodeBase64(byte[])}
  4. -// *
  5. do decrypt
  6. -// *
-// * -// * @param secretKey encrypt/decrypt key -// * @param data data which will be decrypted -// * @return decrypted data -// * @throws Exception -// * @see #encrypt(String, byte[]) -// */ -// public @Nullable static byte[] decrypt(String secretKey, String data) throws Exception { -// if (data == null) { -// return null; -// } -// -// if (log.isInfoEnabled()) { -// log.debug("decrypt for data: {}", data); -// } -// -// // 创建密码器 -// Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); -// -// // 初始化为解密模式的密码器 -// cipher.init(Cipher.DECRYPT_MODE, getSecretKey(secretKey)); -// -// // base64 decode -// byte[] bytes = Base64.decodeBase64(data.getBytes(StandardCharsets.UTF_8)); -// -// byte[] result = cipher.doFinal(bytes); -// -// return result; -// } -// -// /** -// * generate key spec. -// *
    -// *
  1. create {@link SecureRandom} of "SHA1PRNG": {@link SecureRandom#getInstance(String)}
  2. -// *
  3. create {@link #KEY_LENGTH} bits key generator of {@link #KEY_ALGORITHM}: {@link KeyGenerator#getInstance(String)}
  4. -// *
  5. generate key spec of {@link #CIPHER_ALGORITHM}: {@link SecretKeySpec}
  6. -// *
-// * -// * @return {@link SecretKeySpec} -// */ -// private static SecretKeySpec getSecretKey(final String secretKey) throws NoSuchAlgorithmException { -// // 返回生成指定算法密钥生成器的 KeyGenerator 对象 -// KeyGenerator kg = null; -// -// kg = KeyGenerator.getInstance(KEY_ALGORITHM); -// -// // AES 要求密钥长度为 128 -// SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); -// secureRandom.setSeed(secretKey.getBytes()); -// kg.init(KEY_LENGTH, secureRandom); -// -// // 生成一个密钥 -// SecretKey key = kg.generateKey(); -// -// // 转换为AES专用密钥 -// return new SecretKeySpec(key.getEncoded(), KEY_ALGORITHM); -// } -//} +package cn.jyjz.xiaoyao.ocr.util; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.binary.Base64; +import org.springframework.lang.Nullable; + +import javax.crypto.Cipher; +import javax.crypto.KeyGenerator; +import javax.crypto.Mac; +import javax.crypto.SecretKey; +import javax.crypto.spec.SecretKeySpec; +import java.math.BigDecimal; +import java.nio.charset.StandardCharsets; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.util.*; + +/** + * openapi工具类,包括签名、加密算法等。
+ * 签名: + *
    + *
  1. 字符串编码: {@link StandardCharsets#UTF_8}
  2. + *
  3. 签名算法:HmacSHA256
  4. + *
  5. 密钥和盐合并格式: <密钥>#</密钥>
  6. + *
  7. 密钥长度:128位
  8. + *
  9. 密钥生成算法:SHA1PRNG
  10. + *
  11. 签名参数按ASCII码升序排序,组成签名字符串:key1=value1&key2=&key3=value3…
  12. + *
  13. 签名后均采用base64编码:{@link Base64#encodeBase64URLSafeString(byte[])}
  14. + *
+ * + * 加密: + *
    + *
  1. 字符串编码: {@link StandardCharsets#UTF_8}
  2. + *
  3. 加密算法:AES;具体算法:AES/ECB/PKCS5Padding
  4. + *
  5. 密钥和盐合并格式: <密钥>#</密钥>
  6. + *
  7. 密钥长度:128位
  8. + *
  9. 密钥生成算法:SHA1PRNG
  10. + *
  11. 加密后均采用base64编码:{@link Base64#encodeBase64URLSafeString(byte[])}
  12. + *
+ * + * @author hdzhong + * @date 2023/9/10 + */ +@Slf4j +public class ApiHelper { + + /** + * AES key algorithm: AES + */ + private static final String KEY_ALGORITHM = "AES"; + /** + * AES key length: 128 + */ + private static final int KEY_LENGTH = 128; + /** + * cipher algorithm: AES/ECB/PKCS5Padding + */ + private static final String CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding"; + + /** + * combine key and salt by: String.format("%s#%s", secretKey, salt) + * + * @param accessCode encrypt/decrypt key + * @param salt salt append to key + * @return combined key + */ + public static String combineSalt(String accessCode, String salt) { + return String.format("%s#%s", accessCode, salt); + } + + /** + * verify whether the signature is correct + * + * @param accessCode encrypt/decrypt key + * @param salt salt append to key + * @param parameters parameter which to be signed + * @param signature signature which will be verified + * @return whether the signature is correct + * @see #combineSalt(String, String) + */ + public static boolean verifySignature(String accessCode, String salt, + Map parameters, String signature) { + String sign = getSignature(combineSalt(accessCode, salt), parameters); + + return sign.equals(signature); + } + + /** + * verify whether the signature is correct + * + * @param accessCode encrypt/decrypt key + * @param salt salt append to key + * @param data encrypted data which to be signed + * @param signature signature which will be verified + * @return whether the signature is correct + * @see #combineSalt(String, String) + */ + public static boolean verifySignature(String accessCode, String salt, + String data, String signature) { + String sign = getSignature(accessCode, salt, data); + + return sign.equals(signature); + } + + /** + * timestamp({@link RequestData#getTimestamp()}) & signature({@link RequestData#getSignature()}) + * will be added to {@code parameters}. {@code data} will be encrypted. + * + * @param tenantCode tenant code + * @param accessKey access key + * @param accessCode access secret + * @param parameters parameter which to be signed + * @return encrypted data and signature + * @throws Exception + */ + public static RequestData buildQueryRequest(String tenantCode, String accessKey, String accessCode, + Map parameters) throws Exception { + RequestData requestData = new RequestData(); + + // tenant code + requestData.setTenantCode(tenantCode); + // access key + requestData.setAccessKey(accessKey); + // parameter + requestData.setParameters(parameters); + + // 1. do sign + long timestamp = System.currentTimeMillis(); + // timestamp + requestData.setTimestamp(timestamp); + + String sign = getSignature(accessCode, String.valueOf(timestamp), parameters); + requestData.setSignature(sign); + + return requestData; + } + + /** + * timestamp({@link RequestData#getTimestamp()}) & signature({@link RequestData#getSignature()}) + * will be added to {@code parameters}. {@code data} will be encrypted. + * + * @param tenantCode tenant code + * @param accessKey access key + * @param accessCode access secret + * @param accessCode encrypt/decrypt key + * @param data request data which to be encrypted + * @return encrypted data and signature + * @throws Exception + */ + public static RequestData buildRequest(String tenantCode, String accessKey, String accessCode, + T data) throws Exception { + RequestData requestData = new RequestData(); + + // tenant code + requestData.setTenantCode(tenantCode); + // access key + requestData.setAccessKey(accessKey); + + // timestamp + long timestamp = System.currentTimeMillis(); + requestData.setTimestamp(timestamp); + + // 1. convert data to json string + String dataJson = null; + if (data == null) { + dataJson = ""; + } else if (data instanceof String) { + dataJson = (String) data; + } else { + ObjectMapper mapper = new ObjectMapper(); + dataJson = mapper.writeValueAsString(data); + } + + // 2. do encrypt + String encryptedData = encrypt(accessCode, String.valueOf(timestamp), dataJson); + requestData.setData(encryptedData); + + // 2. do sign + // build query string for tenantCode & accessKey & encrypted data + final StringBuilder builder = new StringBuilder(); + Map map = new LinkedHashMap<>(); + // append tenant code + map.put("tenantCode", requestData.getTenantCode()); + // append access key + map.put("accessKey", requestData.getAccessKey()); + + String query = RequestData.buildQuery(map); + + // combine data + String text = String.format("%s%s", query, requestData.getData()); + + String sign = getSignature(accessCode, String.valueOf(timestamp), text); + requestData.setSignature(sign); + + return requestData; + } + + /** + * verify signature then decrypt {@link RequestData#getData()} + * + * @param accessCode access code + * @param requestData request data which {@link RequestData#getData()} is encrypted + * @return decrypted String + * @throws Exception + * @see #decryptRequest(String, RequestData, Class) + */ + public @Nullable static String decryptRequest(String accessCode, RequestData requestData) throws Exception { + return decryptRequest(accessCode, requestData, String.class); + } + + /** + * verify signature then decrypt {@link RequestData#getData()} + * + * @param accessCode access code + * @param requestData request data which {@link RequestData#getData()} is encrypted + * @param clazz class use for {@link ObjectMapper#readValue(String, Class)} to convert JSON to object + * @return decrypted Object + * @throws Exception + */ + public @Nullable static T decryptRequest(String accessCode, RequestData requestData, + Class clazz) throws Exception { + String decrypedData = null; + // 1. verify signature + String timestamp = String.valueOf(requestData.getTimestamp()); + + // build query string for tenantCode & accessKey & encrypted data + final StringBuilder builder = new StringBuilder(); + Map map = new LinkedHashMap<>(); + // append tenant code + map.put("tenantCode", requestData.getTenantCode()); + // append access key + map.put("accessKey", requestData.getAccessKey()); + + String query = RequestData.buildQuery(map); + + // combine data + String text = String.format("%s%s", query, requestData.getData()); + + if (!verifySignature(accessCode, timestamp, text, requestData.getSignature())) { + throw new Exception(String.format("illegal signature: %s", requestData.getSignature())); + } + + // 2. do decrypt + byte[] bytes = decrypt(accessCode, timestamp, requestData.getData()); + if (bytes != null) { + decrypedData = new String(bytes, StandardCharsets.UTF_8); + } + + // 3. convert to object + if (clazz.equals(String.class)) { + return (T) decrypedData; + } + ObjectMapper mapper = new ObjectMapper(); + + return mapper.readValue(decrypedData, clazz); + } + + /** + * do sign with salt + *
    + *
  1. combine key and salt by {@link #combineSalt(String, String)}
  2. + *
  3. invoke {@link #getSignature(String, Map)}
  4. + *
+ * + * @param accessCode encrypt/decrypt key + * @param salt salt append to key + * @param parameters parameter which to be signed + * @return {@link #getSignature(String, Map)} + */ + public static String getSignature(String accessCode, String salt, Map parameters) { + return getSignature(combineSalt(accessCode, salt), parameters); + } + + /** + * do sign without salt + *
    + *
  1. build message by {@link #buildMessage(Map)}
  2. + *
  3. do sign by "HmacSHA256" algorithm: {@link Mac#getInstance(String)}
  4. + *
  5. encode signature by base64 with URL safe character: {@link Base64#encodeBase64URLSafeString(byte[])}
  6. + *
+ * + * @param secretKey encrypt/decrypt key + * @param parameters parameter which to be signed + * @return signature + */ + public static String getSignature(String secretKey, Map parameters) { + if (parameters.isEmpty()) { + throw new RuntimeException("parameters are empty"); + } + // 1. sort parameters to string + String message = buildMessage(parameters); + if (log.isInfoEnabled()) { + log.debug("signature for message: {}", message); + } + + // 2. do sign + return getSignature(secretKey, message); + } + + /** + * do sign with salt + *
    + *
  1. combine key and salt by {@link #combineSalt(String, String)}
  2. + *
  3. invoke {@link #getSignature(String, String)}
  4. + *
+ * + * @param accessCode encrypt/decrypt key + * @param salt salt append to key + * @param data encrypted data which to be signed + * @return signature + * @see #getSignature(String, String) + */ + public static String getSignature(String accessCode, String salt, String data) { + return getSignature(combineSalt(accessCode, salt), data); + } + + /** + * sign {@code data} + * + * @param secretKey encrypt/decrypt key + * @param data encrypted data which to be signed + * @return signature + * @see #getSignature(String, String, Map) + * @see #buildMessage(Map) + */ + public static String getSignature(String secretKey, String data) { + if (data == null ) { + return null; + } + + try { + Mac mac = Mac.getInstance("HmacSHA256"); + SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes(), "HmacSHA256"); + mac.init(keySpec); + byte[] result = mac.doFinal(data.getBytes()); + + // 3. to base64 string + return Base64.encodeBase64URLSafeString(result); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + } + + /** + * sort parameters then combine to query string + *
    + *
  1. sort parameters' keys ASCII ASC by {@link Collections#sort(List)}
  2. + *
  3. combine to query string: key1=value1&key2=value2
  4. + *
+ * + * @param parameters parameter which to be signed + * @return query string for parameters + */ + public static String buildMessage(Map parameters) { + Collection keys = parameters.keySet(); + List keyList = new ArrayList<>(keys); + // sort parameters by ASCII ASC + Collections.sort(keyList); + StringBuilder builder = new StringBuilder(); + for (String k : keyList) { + String v = parameters.get(k); + if (v == null) { + v = ""; + } + if (builder.length() > 0) { + builder.append("&"); + } + builder.append(k).append("=").append(v); + } + return builder.toString(); + } + + /** + * encrypt data then do sign + * + * @param accessCode access code + * @param data data which to be encrypted + * @return ResultData with encrypted data & signature + * @throws Exception + */ + public static ResultData buildResponse(String accessCode, T data) throws Exception { + ResultData result = ResultData.success(); + + // 1. convert data to json string + String dataJson = null; + if (data == null) { + dataJson = ""; + } else if (data instanceof String) { + dataJson = (String) data; + } else { + ObjectMapper mapper = new ObjectMapper(); + dataJson = mapper.writeValueAsString(data); + } + + // 2. do encrypt + String timestamp = String.valueOf(result.getTimestamp()); + String encryptedData = encrypt(accessCode, timestamp, dataJson); + result.setData(encryptedData); + + // 3. do signature + String signature = getSignature(accessCode, timestamp, encryptedData); + result.setSignature(signature); + + // message + return result; + } + + /** + * do verify signature then decrypt + * + * @param accessCode access code + * @param resultData {@link ResultData} which to be decrypted + * @return decrypted string + * @throws Exception + * @see #decryptResponse(String, ResultData, Class) + */ + public @Nullable static String decryptResponse(String accessCode, ResultData resultData) throws Exception { + return decryptResponse(accessCode, resultData, String.class); + } + + /** + * do verify signature then decrypt + * + * @param accessCode access code + * @param resultData {@link ResultData} which to be decrypted + * @param clazz class use for {@link ObjectMapper#readValue(String, Class)} to convert JSON to object + * @return decrypted string + * @throws Exception + */ + public @Nullable static T decryptResponse(String accessCode, ResultData resultData, + Class clazz) throws Exception { + String decrypedData = null; + // 1. verify signature + String timestamp = String.valueOf(resultData.getTimestamp()); + if (!verifySignature(accessCode, timestamp, resultData.getData(), resultData.getSignature())) { + throw new Exception(String.format("illegal signature: %s", resultData.getSignature())); + } + + // 2. do decrypt + byte[] bytes = decrypt(accessCode, timestamp, resultData.getData()); + if (bytes != null) { + decrypedData = new String(bytes, StandardCharsets.UTF_8); + } + + // 3. convert to object + if (clazz.equals(String.class)) { + return (T) decrypedData; + } + ObjectMapper mapper = new ObjectMapper(); + + return mapper.readValue(decrypedData, clazz); + } + + /** + * do AES encrypt + * + *
    + *
  1. combine key and salt by {@link #combineSalt(String, String)}
  2. + *
  3. invoke {@link #encrypt(String, String)}
  4. + *
+ * + * @param accessCode encrypt/decrypt key + * @param salt salt append to key + * @param data data which will be encrypted + * @return base64 string of AES encrypted data + * @throws Exception + * @see #combineSalt(String, String) + * @see #encrypt(String, String) + */ + public @Nullable static String encrypt(String accessCode, String salt, String data) throws Exception { + return encrypt(combineSalt(accessCode, salt), data); + } + + /** + * encrypt data without salt + * + * @param secretKey encrypt/decrypt key + * @param data data which will be encrypted + * @return base64 string of AES encrypted data + * @throws Exception + * @see #encrypt(String, byte[]) + */ + public @Nullable static String encrypt(String secretKey, String data) throws Exception { + if (data == null) { + return null; + } + + return encrypt(secretKey, data.getBytes(StandardCharsets.UTF_8)); + } + + /** + * do AES encrypt + * + *
    + *
  1. combine key and salt by {@link #combineSalt(String, String)}
  2. + *
  3. invoke {@link #encrypt(String, byte[])}
  4. + *
+ * + * @param accessCode encrypt/decrypt key + * @param salt salt append to key + * @param data data which will be encrypted + * @return base64 string of AES encrypted data + * @throws Exception + * @see #combineSalt(String, String) + * @see #encrypt(String, byte[]) + */ + public @Nullable static String encrypt(String accessCode, String salt, byte[] data) throws Exception { + return encrypt(combineSalt(accessCode, salt), data); + } + + /** + *
    + *
  1. generate secret key by {@link #getSecretKey(String)}
  2. + *
  3. do AES encrypt
  4. + *
  5. convert ot base64 string {@link Base64#encodeBase64URLSafeString(byte[])}
  6. + *
+ * + * @param secretKey encrypt/decrypt key + * @param data data which will be encrypted + * @return base64 string of AES encrypted data + * @throws Exception + */ + public @Nullable static String encrypt(String secretKey, byte[] data) throws Exception { + if (data == null) { + return null; + } + if (log.isInfoEnabled()) { + log.debug("encrypt for data: {}", new String(data, StandardCharsets.UTF_8)); + } + // 创建密码器 + Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); + + // 初始化为加密模式的密码器 + cipher.init(Cipher.ENCRYPT_MODE, getSecretKey(secretKey)); + + byte[] result = cipher.doFinal(data); + + // base64 encode + String base64 = Base64.encodeBase64URLSafeString(result); + + if (log.isInfoEnabled()) { + log.debug("encrypted: {}", base64); + } + return base64; + } + + + /** + * do AES decrypt + * + *
    + *
  1. combine key and salt by {@link #combineSalt(String, String)}
  2. + *
  3. invoke {@link #decrypt(String, String)}
  4. + *
+ * + * @param accessCode encrypt/decrypt key + * @param salt salt append to key + * @param data data which will be decrypted + * @return decrypted data + * @throws Exception + * @see #combineSalt(String, String) + * @see #decrypt(String, String) + */ + public @Nullable static byte[] decrypt(String accessCode, String salt, String data) throws Exception { + return decrypt(combineSalt(accessCode, salt), data); + } + + /** + *
    + *
  1. generate secret key by {@link #getSecretKey(String)}
  2. + *
  3. decode base64 string of {@code data} by: {@link Base64#decodeBase64(byte[])}
  4. + *
  5. do decrypt
  6. + *
+ * + * @param secretKey encrypt/decrypt key + * @param data data which will be decrypted + * @return decrypted data + * @throws Exception + * @see #encrypt(String, byte[]) + */ + public @Nullable static byte[] decrypt(String secretKey, String data) throws Exception { + if (data == null) { + return null; + } + + if (log.isInfoEnabled()) { + log.debug("decrypt for data: {}", data); + } + + // 创建密码器 + Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); + + // 初始化为解密模式的密码器 + cipher.init(Cipher.DECRYPT_MODE, getSecretKey(secretKey)); + + // base64 decode + byte[] bytes = Base64.decodeBase64(data.getBytes(StandardCharsets.UTF_8)); + + byte[] result = cipher.doFinal(bytes); + + return result; + } + + /** + * generate key spec. + *
    + *
  1. create {@link SecureRandom} of "SHA1PRNG": {@link SecureRandom#getInstance(String)}
  2. + *
  3. create {@link #KEY_LENGTH} bits key generator of {@link #KEY_ALGORITHM}: {@link KeyGenerator#getInstance(String)}
  4. + *
  5. generate key spec of {@link #CIPHER_ALGORITHM}: {@link SecretKeySpec}
  6. + *
+ * + * @return {@link SecretKeySpec} + */ + private static SecretKeySpec getSecretKey(final String secretKey) throws NoSuchAlgorithmException { + // 返回生成指定算法密钥生成器的 KeyGenerator 对象 + KeyGenerator kg = null; + + kg = KeyGenerator.getInstance(KEY_ALGORITHM); + + // AES 要求密钥长度为 128 + SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); + secureRandom.setSeed(secretKey.getBytes()); + kg.init(KEY_LENGTH, secureRandom); + + // 生成一个密钥 + SecretKey key = kg.generateKey(); + + // 转换为AES专用密钥 + return new SecretKeySpec(key.getEncoded(), KEY_ALGORITHM); + } + + public static void main(String arg[]){ + + BigDecimal b1 = new BigDecimal("42.29"); + BigDecimal b2 = new BigDecimal("100"); + int val = b1.compareTo(b2); + //租户编码(租户no:tenantNo) + String tenantCode = "123"; + //访问key + String accessKey = "key"; + //访问密钥 + String accessCode = ""; + //请求参数 + Map queryParam = new HashMap<>(); + queryParam.put("key1", "111"); + try { + RequestData requestData = ApiHelper.buildQueryRequest("tenantCode", "accessKey", "accessCode", queryParam); + + System.out.println(requestData.getData()); + + } catch (Exception e) { + throw new RuntimeException(e); + } + + + RequestData requestData = null; + try { + requestData = ApiHelper.buildRequest("tenantCode", "accessKey", "accessCode", queryParam); + } catch (Exception e) { + throw new RuntimeException(e); + } + + System.out.println(requestData.getData()); + + + ResultData resultData = new ResultData<>(); // 实际返回对象 + + String data = null; + try { + data = ApiHelper.decryptResponse("accessCode", resultData); + } catch (Exception e) { + throw new RuntimeException(e); + } + System.out.println(data); + } +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/RequestData.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/RequestData.java index c18b7daf..3508112d 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/RequestData.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/RequestData.java @@ -1,176 +1,176 @@ -//package cn.jyjz.xiaoyao.ocr.util; -// -//import com.fasterxml.jackson.core.JsonProcessingException; -//import com.fasterxml.jackson.databind.ObjectMapper; -//import io.swagger.annotations.ApiModel; -//import io.swagger.annotations.ApiModelProperty; -//import lombok.Data; -//import org.springframework.util.StringUtils; -// -//import java.io.Serializable; -//import java.io.UnsupportedEncodingException; -//import java.net.URLEncoder; -//import java.nio.charset.StandardCharsets; -//import java.util.LinkedHashMap; -//import java.util.Map; -// -///** -// *
    -// *
  1. -// * GET/DELETE请求:Query String -// * 参考:{@link } -// *
  2. -// *
  3. -// * POST/PATCH/PUT请求:JSON格式请求体 -// *
    -// *   {
    -// *    "tenantCode": “syxy”,
    -// *    "accessKey": "syncuser",
    -// *    "data": {
    -// *      // 加密的业务数据
    -// *    },
    -// *    "timestamp": 1689837406368,
    -// *    "signature": "eUk5kY-xR6XMjzjJRrl2T3EE_c5wztJNvdNWEY3vxfo"
    -// *   }
    -// * 
    -// * 参考:{@link #toString()} -// *
  4. -// *
-// * @author hdzhong -// * @date 2023/9/20 -// */ -//@Data -//@ApiModel(value = "请求统一Query/JSON封装",description = "接口统一请求报文") -//public class RequestData implements Serializable { -// public final static String TIMESTAMP = "_timestamp"; -// public final static String SIGNATURE = "_signature"; -// -// /** -// * URL的Query参数 -// */ -// @ApiModelProperty(value = "Query参数") -// private Map parameters; -// /** -// * 租户代码 -// */ -// @ApiModelProperty(value = "租户代码") -// private String tenantCode; -// /** -// * 访问标识 -// */ -// @ApiModelProperty(value = "访问标识") -// private String accessKey; -// /** -// * 进行加密后的业务数据 -// * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper#encrypt(String, String, String) -// */ -// @ApiModelProperty(value = "加密的请求数据") -// private String data; -// /** -// * 请求时间戳,作为签名、加密的随机盐(Salt) -// * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper # combineSalt(String, String) -// */ -// @ApiModelProperty(value = "请求时间戳") -// private long timestamp ; -// /** -// * 数据签名 -// * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper # getSignature(String, String, Map) -// */ -// @ApiModelProperty(value = "数据签名") -// private String signature; -// -// /** -// *
-//     * {
-//     *  "tenantCode": “syxy”,
-//     *  "accessKey": "syncuser",
-//     *  "data": {
-//     *    // 加密的业务数据
-//     *  },
-//     *  "timestamp": 1689837406368,
-//     *  "signature": "eUk5kY-xR6XMjzjJRrl2T3EE_c5wztJNvdNWEY3vxfo"
-//     * }
-//     * 
-// * @return JSON string -// */ -// @Override -// public String toString() { -// ObjectMapper objectMapper = new ObjectMapper(); -// Map map = new LinkedHashMap<>(); -// // tenant code -// map.put("tenantCode", tenantCode); -// // access key -// map.put("accessKey", accessKey); -// // data -// map.put("data", data); -// // timestamp -// map.put("timestamp", timestamp); -// // signature -// map.put("signature", signature); -// -// // return json -// try { -// return objectMapper.writeValueAsString(map); -// } catch (JsonProcessingException e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// } -// -// /** -// * add tenantCode, accessKey, {@link #TIMESTAMP}, {@link #SIGNATURE} to parameters -// * -// * @return new query parameters -// */ -// public Map toQueryParameters() { -// Map map = new LinkedHashMap<>(); -// // put parameters -// map.putAll(parameters); -// // append tenant code -// map.put("tenantCode", tenantCode); -// // append access key -// map.put("accessKey", accessKey); -// // append timestamp & signature -// map.put(TIMESTAMP, String.valueOf(timestamp)); -// map.put(SIGNATURE, signature); -// -// // return query parameters -// return map; -// } -// -// /** -// * combine parameters to query string -// * @return query string -// * @see #toQueryParameters() -// */ -// public String toQuery() { -// // return query parameters -// return buildQuery(toQueryParameters()); -// } -// -// /** -// * convert parameters to query string -// * -// * @param parameters query parameters -// * @return query string kye1=value1&key2=value2 -// */ -// public static final String buildQuery(Map parameters) { -// final StringBuilder builder = new StringBuilder(); -// parameters.forEach((k, v) -> { -// if (StringUtils.isEmpty(k)) { -// return; -// } -// -// if (builder.length() > 0) { -// builder.append('&'); -// } -// try { -// builder.append(URLEncoder.encode(k, StandardCharsets.UTF_8.name())) -// .append('=') -// .append(v == null ? "" : URLEncoder.encode(v, StandardCharsets.UTF_8.name())); -// } catch (UnsupportedEncodingException e) { -// throw new RuntimeException(e.getMessage(), e); -// } -// }); -// return builder.toString(); -// } -//} +package cn.jyjz.xiaoyao.ocr.util; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.util.StringUtils; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + *
    + *
  1. + * GET/DELETE请求:Query String + * 参考:{@link } + *
  2. + *
  3. + * POST/PATCH/PUT请求:JSON格式请求体 + *
    + *   {
    + *    "tenantCode": “syxy”,
    + *    "accessKey": "syncuser",
    + *    "data": {
    + *      // 加密的业务数据
    + *    },
    + *    "timestamp": 1689837406368,
    + *    "signature": "eUk5kY-xR6XMjzjJRrl2T3EE_c5wztJNvdNWEY3vxfo"
    + *   }
    + * 
    + * 参考:{@link #toString()} + *
  4. + *
+ * @author hdzhong + * @date 2023/9/20 + */ +@Data +@ApiModel(value = "请求统一Query/JSON封装",description = "接口统一请求报文") +public class RequestData implements Serializable { + public final static String TIMESTAMP = "_timestamp"; + public final static String SIGNATURE = "_signature"; + + /** + * URL的Query参数 + */ + @ApiModelProperty(value = "Query参数") + private Map parameters; + /** + * 租户代码 + */ + @ApiModelProperty(value = "租户代码") + private String tenantCode; + /** + * 访问标识 + */ + @ApiModelProperty(value = "访问标识") + private String accessKey; + /** + * 进行加密后的业务数据 + * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper#encrypt(String, String, String) + */ + @ApiModelProperty(value = "加密的请求数据") + private String data; + /** + * 请求时间戳,作为签名、加密的随机盐(Salt) + * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper # combineSalt(String, String) + */ + @ApiModelProperty(value = "请求时间戳") + private long timestamp ; + /** + * 数据签名 + * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper # getSignature(String, String, Map) + */ + @ApiModelProperty(value = "数据签名") + private String signature; + + /** + *
+     * {
+     *  "tenantCode": “syxy”,
+     *  "accessKey": "syncuser",
+     *  "data": {
+     *    // 加密的业务数据
+     *  },
+     *  "timestamp": 1689837406368,
+     *  "signature": "eUk5kY-xR6XMjzjJRrl2T3EE_c5wztJNvdNWEY3vxfo"
+     * }
+     * 
+ * @return JSON string + */ + @Override + public String toString() { + ObjectMapper objectMapper = new ObjectMapper(); + Map map = new LinkedHashMap<>(); + // tenant code + map.put("tenantCode", tenantCode); + // access key + map.put("accessKey", accessKey); + // data + map.put("data", data); + // timestamp + map.put("timestamp", timestamp); + // signature + map.put("signature", signature); + + // return json + try { + return objectMapper.writeValueAsString(map); + } catch (JsonProcessingException e) { + throw new RuntimeException(e.getMessage(), e); + } + } + + /** + * add tenantCode, accessKey, {@link #TIMESTAMP}, {@link #SIGNATURE} to parameters + * + * @return new query parameters + */ + public Map toQueryParameters() { + Map map = new LinkedHashMap<>(); + // put parameters + map.putAll(parameters); + // append tenant code + map.put("tenantCode", tenantCode); + // append access key + map.put("accessKey", accessKey); + // append timestamp & signature + map.put(TIMESTAMP, String.valueOf(timestamp)); + map.put(SIGNATURE, signature); + + // return query parameters + return map; + } + + /** + * combine parameters to query string + * @return query string + * @see #toQueryParameters() + */ + public String toQuery() { + // return query parameters + return buildQuery(toQueryParameters()); + } + + /** + * convert parameters to query string + * + * @param parameters query parameters + * @return query string kye1=value1&key2=value2 + */ + public static final String buildQuery(Map parameters) { + final StringBuilder builder = new StringBuilder(); + parameters.forEach((k, v) -> { + if (StringUtils.isEmpty(k)) { + return; + } + + if (builder.length() > 0) { + builder.append('&'); + } + try { + builder.append(URLEncoder.encode(k, StandardCharsets.UTF_8.name())) + .append('=') + .append(v == null ? "" : URLEncoder.encode(v, StandardCharsets.UTF_8.name())); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e.getMessage(), e); + } + }); + return builder.toString(); + } +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/ResultData.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/ResultData.java index 43b388cc..988722b5 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/ResultData.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/ResultData.java @@ -1,133 +1,133 @@ -//package cn.jyjz.xiaoyao.ocr.util; -// -//import com.fasterxml.jackson.annotation.JsonIgnore; -//import io.swagger.annotations.ApiModel; -//import io.swagger.annotations.ApiModelProperty; -//import lombok.Builder; -//import lombok.Data; -// -//import java.io.Serializable; -//import java.util.Map; -// -///** -// * @ClassName ResultData -// * @Description TODO -// * @Author wazngzezhen -// * @Date 6:20 AM 3/6/22 -// * @Version 1.0 -// **/ -//@Data -//@ApiModel(value = "统一返回结果封装",description = "接口返回统一结果") -//public class ResultData implements Serializable { -// /** -// * 结果状态 -// */ -// @ApiModelProperty(value = "状态码") -// private int status; -// -// /** -// * 响应信息 -// */ -// @ApiModelProperty(value = "响应信息") -// private String message; -// -// /** -// * 后端返回结果,加密后为Base64字符串:{@link String} -// * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper#encrypt(String, String, String) -// */ -// @ApiModelProperty(value = "后端返回结果") -// private T data; -// -// /** -// * 后端响应状态 -// */ -// @ApiModelProperty(value = "后端响应状态") -// private boolean success; -// /** -// * 响应时间戳,作为签名、加密的随机盐(Salt) -// * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper#combineSalt(String, String) -// */ -// @ApiModelProperty(value = "响应时间戳") -// private long timestamp ; -// /** -// * 数据签名 -// * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper#getSignature(String, String, Map) -// */ -// @ApiModelProperty(value = "数据签名") -// private String signature; -// -// /** -// * (预留)http状态 -// */ -// private int httpStatus; -// -// public ResultData(){ -// this.timestamp = System.currentTimeMillis(); -// } -// -// -// public static ResultData success(String message) { -// ResultData resultData = new ResultData<>(); -// resultData.setStatus(ReturnCode.RC100.getCode()); -// resultData.setSuccess(true); -// resultData.setMessage(message); -// return resultData; -// } -// -// public static ResultData success() { -// ResultData resultData = new ResultData<>(); -// resultData.setStatus(ReturnCode.RC100.getCode()); -// resultData.setSuccess(true); -// resultData.setMessage(ReturnCode.RC100.getMessage()); -// return resultData; -// } -// -// public static ResultData success(T data) { -// ResultData resultData = new ResultData<>(); -// resultData.setStatus(ReturnCode.RC100.getCode()); -// resultData.setSuccess(true); -// resultData.setMessage(ReturnCode.RC100.getMessage()); -// resultData.setData(data); -// return resultData; -// } -// -// public static ResultData success(String message, T data) { -// ResultData resultData = new ResultData<>(); -// resultData.setStatus(ReturnCode.RC100.getCode()); -// resultData.setSuccess(true); -// resultData.setMessage(message); -// resultData.setData(data); -// return resultData; -// } -// -// public static ResultData fail(String message) { -// ResultData resultData = new ResultData<>(); -// resultData.setStatus(ReturnCode.RC999.getCode()); -// resultData.setSuccess(false); -// resultData.setMessage(message); -// return resultData; -// } -// -// public static ResultData fail(int code, String message) { -// ResultData resultData = new ResultData<>(); -// resultData.setStatus(code); -// resultData.setSuccess(false); -// resultData.setMessage(message); -// return resultData; -// } -// -// public static ResultData fail() { -// ResultData resultData = new ResultData<>(); -// resultData.setStatus(ReturnCode.RC999.getCode()); -// resultData.setSuccess(false); -// resultData.setMessage(ReturnCode.RC999.getMessage()); -// return resultData; -// } -// -// -// @JsonIgnore -// public int getHttpStatus() { -// return httpStatus; -// } -//} -// +package cn.jyjz.xiaoyao.ocr.util; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +import java.io.Serializable; +import java.util.Map; + +/** + * @ClassName ResultData + * @Description TODO + * @Author wazngzezhen + * @Date 6:20 AM 3/6/22 + * @Version 1.0 + **/ +@Data +@ApiModel(value = "统一返回结果封装",description = "接口返回统一结果") +public class ResultData implements Serializable { + /** + * 结果状态 + */ + @ApiModelProperty(value = "状态码") + private int status; + + /** + * 响应信息 + */ + @ApiModelProperty(value = "响应信息") + private String message; + + /** + * 后端返回结果,加密后为Base64字符串:{@link String} + * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper#encrypt(String, String, String) + */ + @ApiModelProperty(value = "后端返回结果") + private T data; + + /** + * 后端响应状态 + */ + @ApiModelProperty(value = "后端响应状态") + private boolean success; + /** + * 响应时间戳,作为签名、加密的随机盐(Salt) + * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper#combineSalt(String, String) + */ + @ApiModelProperty(value = "响应时间戳") + private long timestamp ; + /** + * 数据签名 + * @see cn.jyjz.xiaoyao.ocr.util.ApiHelper#getSignature(String, String, Map) + */ + @ApiModelProperty(value = "数据签名") + private String signature; + + /** + * (预留)http状态 + */ + private int httpStatus; + + public ResultData(){ + this.timestamp = System.currentTimeMillis(); + } + + + public static ResultData success(String message) { + ResultData resultData = new ResultData<>(); + resultData.setStatus(ReturnCode.RC100.getCode()); + resultData.setSuccess(true); + resultData.setMessage(message); + return resultData; + } + + public static ResultData success() { + ResultData resultData = new ResultData<>(); + resultData.setStatus(ReturnCode.RC100.getCode()); + resultData.setSuccess(true); + resultData.setMessage(ReturnCode.RC100.getMessage()); + return resultData; + } + + public static ResultData success(T data) { + ResultData resultData = new ResultData<>(); + resultData.setStatus(ReturnCode.RC100.getCode()); + resultData.setSuccess(true); + resultData.setMessage(ReturnCode.RC100.getMessage()); + resultData.setData(data); + return resultData; + } + + public static ResultData success(String message, T data) { + ResultData resultData = new ResultData<>(); + resultData.setStatus(ReturnCode.RC100.getCode()); + resultData.setSuccess(true); + resultData.setMessage(message); + resultData.setData(data); + return resultData; + } + + public static ResultData fail(String message) { + ResultData resultData = new ResultData<>(); + resultData.setStatus(ReturnCode.RC999.getCode()); + resultData.setSuccess(false); + resultData.setMessage(message); + return resultData; + } + + public static ResultData fail(int code, String message) { + ResultData resultData = new ResultData<>(); + resultData.setStatus(code); + resultData.setSuccess(false); + resultData.setMessage(message); + return resultData; + } + + public static ResultData fail() { + ResultData resultData = new ResultData<>(); + resultData.setStatus(ReturnCode.RC999.getCode()); + resultData.setSuccess(false); + resultData.setMessage(ReturnCode.RC999.getMessage()); + return resultData; + } + + + @JsonIgnore + public int getHttpStatus() { + return httpStatus; + } +} + diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml index 04dc9e63..a48c199f 100644 --- a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml @@ -6,13 +6,6 @@ - - - - - - - @@ -43,19 +36,13 @@ + ID AS id, OCPICTUREID AS ocpictureid, PICTURERESULT AS pictureresult, PICTURECOMPARE AS picturecompare, - IZTRUEORFALSE AS iztrueorfalse, - JUDGEID AS judgeid, - IZPASS AS izpass, - JUDGEPASS AS judgepass, - PASSDESC AS passdesc, - IZCLOSE AS izclose, - TASKTYPE AS tasktype, DEPTID AS deptid, TENANTID AS tenantid, PACKAGEID AS packageid, @@ -85,7 +72,8 @@ FROMPROJECTID AS fromprojectid, FROMPLANID AS fromplanid, FROMUPTIME AS fromuptime, - FROMSOURCEID AS fromsourceid + FROMSOURCEID AS fromsourceid, + HAVEPOINTS AS havepoints @@ -95,13 +83,6 @@ and OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend} and PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend} and PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend} - and IZTRUEORFALSE ${iztrueorfalse.dataOp} ${iztrueorfalse.likestar}#{iztrueorfalse.value}${iztrueorfalse.likeend} - and JUDGEID ${judgeid.dataOp} ${judgeid.likestar}#{judgeid.value}${judgeid.likeend} - and IZPASS ${izpass.dataOp} ${izpass.likestar}#{izpass.value}${izpass.likeend} - and JUDGEPASS ${judgepass.dataOp} ${judgepass.likestar}#{judgepass.value}${judgepass.likeend} - and PASSDESC ${passdesc.dataOp} ${passdesc.likestar}#{passdesc.value}${passdesc.likeend} - and IZCLOSE ${izclose.dataOp} ${izclose.likestar}#{izclose.value}${izclose.likeend} - and TASKTYPE ${tasktype.dataOp} ${tasktype.likestar}#{tasktype.value}${tasktype.likeend} and DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend} and TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend} and PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend} @@ -124,9 +105,15 @@ and CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend} and CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend} and USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend} - and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} and FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend} and FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend} + and FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend} + and FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend} + and FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend} + and FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend} + and FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}#{fromsourceid.value}${fromsourceid.likeend} + and HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend} + and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} @@ -137,46 +124,41 @@ - and tcp.ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend} - and tcp.OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend} - and tcp.PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend} - and tcp.PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend} - and tcp.IZTRUEORFALSE ${iztrueorfalse.dataOp} ${iztrueorfalse.likestar}#{iztrueorfalse.value}${iztrueorfalse.likeend} - and tcp.JUDGEID ${judgeid.dataOp} ${judgeid.likestar}#{judgeid.value}${judgeid.likeend} - and tcp.IZPASS ${izpass.dataOp} ${izpass.likestar}#{izpass.value}${izpass.likeend} - and tcp.JUDGEPASS ${judgepass.dataOp} ${judgepass.likestar}#{judgepass.value}${judgepass.likeend} - and tcp.PASSDESC ${passdesc.dataOp} ${passdesc.likestar}#{passdesc.value}${passdesc.likeend} - and tcp.IZCLOSE ${izclose.dataOp} ${izclose.likestar}#{izclose.value}${izclose.likeend} - and tcp.TASKTYPE ${tasktype.dataOp} ${tasktype.likestar}#{tasktype.value}${tasktype.likeend} - and tcp.DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend} - and tcp.TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend} - and tcp.PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend} - and tcp.PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend} - and tcp.CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend} - and tcp.CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend} - and tcp.SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend} - and tcp.BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend} - and tcp.STATES ${states.dataOp} ${states.likestar}#{states.value}${states.likeend} - and tcp.PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend} - and tcp.PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend} - and tcp.DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend} - and tcp.ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend} - and tcp.ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend} - and tcp.UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend} - and tcp.UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend} - and tcp.FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend} - and tcp.GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend} - and tcp.CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend} - and tcp.CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend} - and tcp.CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend} - and tcp.USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend} - and tcp.FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend} - and tcp.FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend} - and tcp.FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend} - and tcp.FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend} - and tcp.FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend} - and tcp.FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend} - and tcp.FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}#{fromsourceid.value}${fromsourceid.likeend} + and tcp.ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend} + and tcp.OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend} + and tcp.PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend} + and tcp.PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend} + and tcp.DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend} + and tcp.TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend} + and tcp.PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend} + and tcp.PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend} + and tcp.CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend} + and tcp.CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend} + and tcp.SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend} + and tcp.BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend} + and tcp.STATES ${states.dataOp} ${states.likestar}#{states.value}${states.likeend} + and tcp.PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend} + and tcp.PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend} + and tcp.DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend} + and tcp.ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend} + and tcp.ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend} + and tcp.UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend} + and tcp.UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend} + and tcp.FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend} + and tcp.GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend} + and tcp.CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend} + and tcp.CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend} + and tcp.CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend} + and tcp.USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend} + and tcp.FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend} + and tcp.FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend} + and tcp.FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend} + and tcp.FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend} + and tcp.FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend} + and tcp.FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend} + and tcp.FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}#{fromsourceid.value}${fromsourceid.likeend} + and tcp.HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend} + and tcp.USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} diff --git a/jyjz-system/jyjz-system-oa/target/classes/cn/jyjz/flowable/controller/FlowTaskController.class b/jyjz-system/jyjz-system-oa/target/classes/cn/jyjz/flowable/controller/FlowTaskController.class index fa23d780d72d7fbd291b2b5a95682591d9cabf4f..1bbc9c06ff82df51b4dc1b3eecfd467913127fc4 100644 GIT binary patch literal 14065 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 ACjbBd diff --git a/jyjz-system/jyjz-system-oa/target/classes/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.class b/jyjz-system/jyjz-system-oa/target/classes/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildPictureController.class index 115d5c6bfe497889b2835ae0fd5d5d1459d40546..ccb1ffc24bd5ddb164a15306b14a629669dd68bd 100644 GIT binary patch delta 4034 zcmcImd3;pW75>i5ByX0-mIV?5fe9oNCc%IZLRi8Q7LgEH#ROYH2(lvtsCDVX3f3S9 zI#9IMwp3|LsZBH#0u*a$r7hj;zArAZbhCC<>elbvnY@_{`Tg2|8kqO)yXV}qeBZg} z-d9&Xzs9-v&Y5QbjFpBU#^T#SdAX*&JccuUkC9U{ML^bbn-<%UJBx6bo%j12*1On5Ppw8=;M!m{7Fsy*^gI) z_=|(rRPV2T>`^0s^W%QC{P!UKfq&}bU#k4N&b^_J%li1Yx_DEiZ|UdT8qhmIyekNa zh=+6HrHc4;l;KC4zBBbm@OAn7H|!TJP<=@32+W^WJ9pabnL5|cmaC+K3D`19M%!|=j8TO-wTqW5q=GGDrBWc}mV|5>CsnqL zmug!kNQo^IWs)V6ZK;tdwoH|2woI2=TV}{i8%JaopGRf3Em66~mN`;s%e6As#$?o3 zQfJFNskh`hTjt9GTNcV9&4Y@Ib+kmTw`Hl^Aea=}V&%jxcuL!kUN!8nIAgdmfDCvP zYK}aLDFoFVXYxJ4%uU3kE9Mye6?0QCHEqu3H<{(LmX>O0U-<4DJq3wIPa-z2xL4T> z&IBm|O5sBkGda?A)Wa;y=38(L=1^7}+g&`>QT_gm8JLIwQOv>=6wvbsdeXHE;pej= zu~tXdVy>}QfjZ1Ho+?m}>)_@363oW}+RnmYu3SXB1<1i-EMfj5_`4oUxl3;_K0PX% zN@0U5Y@~1*g+4mC5%1y1gZCQvdUNI`{+2I;G-CxvH)AEu*T#00JZqAe&ICb6K|0Bz zn>;ikOe;~^8N;=cv7G7OOpR5vxf&aB3mmLL3)bRMtj95IG6~;KxE!up#qdM4*y^U< z>Zac6rrxTlJIq}bn`qX@0FKi1Y6cg^0|t*wn%iyguo%jn1`j_2X*75Q7|sF)qM<7? zLuoCp)j;gyT8+duuGK)TwbU8~&s)f|u>T??zR!<<;~cR9r}1*9B0o|+{Pr{-;CRFM>E5w#$EV8Gtt@Eh`UwlQ|SjW ziQ*;|-(w^xMD1eUK$edW{S(})wpCm3A>3yOe7kgqAu!6!K;uE|B!PF6z}+aKRyirE z#Qm)Iy(I8KT7Sq8wF|wd-{jKMX3k`W81`#i2+b!m}tbsKXmo>7Elqf$WPSh3n?=|>uC;m=? zfPG59zAgg1|1$yI@lRoff)>U5fplW_8)63QzUSZ2?#v`eYT@hw0`BE5>svP7kkp%B zz>`F!m2Kmxlok!lr;b1Jc64-F!EnY`jCVfr#k?qj+~xQ zPTl%RWS%g{4D%*4Ye~yICDWt$R3g*!d}}JzXJIv*g1>%bSqH)$C_0H@(G%UoUZMccy?= z?SfWqpiUsqv{}oY8$Ag1n7N({ev+fUQXadt8A% z-UY052exPUK4;*|)+0VqSPGZJzNnS)BtB2KS{aAwMY9Y?Pav4@JBiYfr!m5d2^o@~ zag?xRq`=}euw-#5@H+b84Gh3#9@TFeIBMdCTsXp}dB$rfanw7eoLcEq%c+e`z(+HE z*$DKkciY`y!jRJL^!~Gqnu*Q)w4(8J7aE@KXtX8URd<1b$!U+*Q1U8p0$-r@-TW13 zR%vHUqLZ}|vXeN)uobe~xKXvl3JF=XyaTMLa;+#ukl>BtU?#8LihA3Lf(|A$s+ODk^0)p2U6-P@ delta 3599 zcmb7G33yyp75>l6ByZ-;C27aDB+WvmC7EU;AuUisThfHkmX^p;?1qNe#-UFsfF??MG(bmtyM9tgOF53To6G~+!sJ_R|MQGJN)Oq$xM>Q51cP~bKgDZp5;IP zId>lEd3L4u&?`sp1u#Q8TujHeT-=XuyLbTKiJ=J(M)8o#@9#SJo(o6C599kP`9U0y z;D;`Lgdaz-HIAR)r!IbmpGWZv-TY+~zjE;?9*g4fIDU;M;&>9j(Z_G2_??>ieH4Fi z@kbATQoTP%ah)3ZOB6fR@>4GUil_DQj4D5?dwZx{c;f8#iY z=Tz{#3SQ9Fi%}fZ@0axPvV&I~yebH<->_PcShQi|>V{tbSV=*8yll%8q<81v9x4@8 zlaM1}M^=q9dSga_~XOd{U=Sruc%D=or$R5Sg7@d)%OcBH`nA^5+?!0#0 zbBs)tlO3rvQY9%P)1+Dz7PKwC1#@kL<$Smc5Ufu*t}`Y`i4bodN-vTE9Qs& zho@d0s-5QV3D-%Z-&LASuRnR8tZO1sfjop1Rjxvc90W7D&gb`;cCQ&{9k<6okK3Dr zvq$a4`OYHp+3H_Wm8@-}J(pg96e6g`Ib0b^fpKWZx%?K)!+gqG{i9Vap6X9xd_Xf| z1Sf$xD4~~XTGg``Ak)}HUBTcTi78>tk00jS}0ta6)vN2IfW5ASbnip10Gi6I`rT+ti>Vj zXu?+!E{~^HGWm6LqP5XC+gAESe>EK;_^2lgpH(F#brMq6@+}Vpw*sPB&0nVWoyqif}*^Bq!s$OhW zjcvHP7w?6)9NSeIQRy|9Me!;Xzt2h-=}@8Gj~#TJi148wAq*6$w%}TP&=#<%W{WLg z4Ko9cyM#Z1?JVF9OrcgC`q();$;<0mz#Cb{J+@Fga02zav*qc|mZv*gp6(1YRWGQH zuKH|sT#`fUl#eMM+Q@@$vagN}xs$6XT{ha{#ppO?i|5jPxh-CtK?GzrSuzK*rQ}Q? zTSgvfp`wtWP{-kay~Tes@%J(X*rf&7HB^A`8!o^|{D)PBf34+$mETY;=a+WWbU_U?jIRL;H%)) zF$8;6aGMG~I?~4~c$8!aemk=ZCeg<%ju-1B|2Pw+&pp;^?)|1w@BXOwz1CSypN`mF z1VwNMKB3@qy_Mho3-z_bYH&Z%dH@sgpsm3Swh}mSf)TGPCArohX;Ic1BrVE1ri(1f z5sUJY9LoEZe*1?&4vhrB^2i$t<>9TLL*|nfnW^DiW__bFAC~E-I5T-8G01%kCtriD zxeIP_bWmuby|%;HYAV8D(m$viE8IWeoQ8$itE`%ims8_r~7O$X*pF$y?#$-G*j6mgCtjg`=RIJLg)3h93KYD2SIv4p05+-{}be04Dw63JA>pc86+#~5)FeW z51}K2VWZ+H#a`q985lW^f%X@a#1In~6D5ukF-S_mFk~yUF;`}ht;`@BLn*nZ<8h+p z-aQ0XxyRpjFC%I1@__(pkI}BMZQGio-=NZOaEN{~l4X{DM@O^l%a&z=uVgdtVdhG> zqS2Y3I=nEs`6H8=EPudBsZFvbIGjzgD4S$aHpxPK)h0QTGYLA*(f?i>SO{NZC?VWu RQ&o+x^Zgr;XlCqw^EGePM)Cjv diff --git a/jyjz-system/jyjz-system-oa/target/classes/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPicture$OcrTaskchildPictureBuilder.class b/jyjz-system/jyjz-system-oa/target/classes/cn/jyjz/xiaoyao/ocr/dataobject/OcrTaskchildPicture$OcrTaskchildPictureBuilder.class index d1b15c95a42440552257c9c6ed09d2a3226884b5..4d2eeb6bb6c6d49a0e6950c4c4d07310bfa65902 100644 GIT binary patch literal 9580 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 literal 9422 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 diff --git a/jyjz-system/jyjz-system-oa/target/classes/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.class b/jyjz-system/jyjz-system-oa/target/classes/cn/jyjz/xiaoyao/ocr/service/OcrTaskchildPictureService.class index b09fc9cbfda286f4b805823ac2e5d6a26c100ff5..68bb98e1f48c90eca76eac74dc5bcce246450481 100644 GIT binary patch delta 391 zcmZ9Hy-$Ns6vfZ0w)jmeLjAT?s^AxkTaB@kgA6*E(CH;51VtbPSzR1l@s0iyMmJ5I zjek_*^AQ=Ge(&CM?!D(dDoksAkKR849Kn*XFX2GKA%PV5N!kknf`k!CVey!ff7$ud z$JOL59o}3-ewY#{hJ8&lYTc!NVA*`4YdQp-|J~!l70}SL>?riQC&DK-#l} d!8SI_xh+1YqoWI98#|?7@GwOr6T2eX-Ve%#NL2s; delta 174 zcmX|)I}U;1$8|Q}F+H2Uc#5*4|B6YUn6f0E;r-+~QRyb25{86;JQGU(*72 zZo*l(2-mNFxcVJ^q{?DPOoF4Qoe0s~Ck5qzEcjgWkdgT@6XTSb(K9zLD2ye`uv_VF U&BpweUGRJT(#KqJ;Aq#UKP>_aqyPW_ diff --git a/jyjz-system/jyjz-system-oa/target/classes/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.class b/jyjz-system/jyjz-system-oa/target/classes/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.class index 173739e65f5dad577a0b310abfaab99c3e6663a3..89e93202ab590b03cb647b21ec0de6eebcfa9004 100644 GIT binary patch literal 17976 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≫s1jT`kvh;C2;Kz2 z;~g}JwsR46(oX76H>kVlX?lkG&~54~^ekF^5fe7hbM!p*14s73zkHj@vEOs(JM;n| z(&{PtE?~<*XPMmsWozhrShtjFz30-4^b!SViFX!#ANWj(Wlo%v)(vfD3Q;ByYy+J=FgUY=()0=4dXoz<`y@gf@4fkF~Zv(TR zegZw52uOQp@3=dA7dx|QddH#Z2lNgou_1p7$e)3quhP){P*l^PpBwa^LGK&%3;p{` z{rf9}?EmoU*97kL)w6!HmyR*$gZ*?E^*Q&m?b!*X|$QBqQgHt?+iznG$Icc$V#;voPRY-hJryyXe@gd2`Y3 zn$<~XduXZdSJ~|=y}V`r#w$Jey-E^9?L^@$VJ!3+sN0W>4ka8`FklajVlOR#$)3Z- zlmIg?!r0|_cQpreGAZhA(MtLwjN1!EzL@@m77U86$rv75V&=d}m%(A|1TVx;>@-x~ zi7CJUXdo3A?;{U1k@w;+2mei>PpJt1IjsCMru~IJu~|vy;VH}bo%C>S)mHR8I@`rx zK*FBNv55*zmtY=c?To5`2LPr|3m*kUy^I_1;u!d9W%Cr z&Z&Kx&Rymox}DCe@mk)YJLvolT0X||;$5hw$SUfjMtpbW5>+XZXA9gNLjCwK8q9~& z(R`%KMWA&F983SCe_`ojItI@6-&npM^nNdl-b+V=?9U*jBF#m6YnTtehVRm37NqCQ zf}9-YL2Ari$Wd>EpTi81_hXsdy7*}dBmZrxF)X7zf*q__TBTDL6aD5Y=~uh`mDSRB zGL=$Hh+1AfQlzKI$SSKyMkE&+i(IplR^wFQvwU`fQeu_Z={p@OEuFr{YW!m?e+RYb z!^0-(XBFFhC(+vfBdb`LX{+mOM0(=kRKg>uoJZo%dPmVP9*w`*t)dBBjlZZJN7H#c z&E<)72F&h!K8fO7gJ?Y&(Rm6Y@>F_=PoZyetrkElqQK*y8-GK0f(#PJJ@T%kOs zqlTQL9)mIH_<@#zmgwPQ>_ZFj1FaIYiVzt#vme@33|hYi0R_lFwo$7!&ZmV}331r7 z-oY&Wj!lSHj9~~F`)I5_9Npg$pk48px59523Ob; zBpTNx!%D~yUxi=|I2bhoc)=rjK^#o7gHrJObF0u!<6j#ji8I=o8ZXxrp?{&awmUMG z3ptjrm0>-pgW8vlv5MiQPQU>VeyY+CVZ-t&k>A^%szlz0YW$u_0Xe?FTiNDm%0WU7 z=rmSZ&gr_8E$=2AN4(G7O*q0^-ip8k9A&QzAdtM_z}FO2iQ!ME+R9zFdKSVj{yqp8 zSHtne5mpj(1hV#{xDEEYmL?)&oXHo#RxhSyd=-YgYR*Q8|`&-C@Yu$;kI}z3^wpNT(Dy_wB&@u!lah@gALW{My z{ZOBUJQ$%WAnbP4=LM}&sIehi6*WT;#JWSYjUR!${V+IfFG@%E@exq7E*GpNX$9n1}LF za68Z$97z;5OLQ}w?K&h67vUsW^&(9}xW_5+ZaN7KDZ3y>IZ_=dEiKhANSuPs;2eB0 zz%P-Ybt&Mt?0>r&DBuZf6lnB>;<7FjmjlHWg5rxdik$3%?*x*Ku==}b65may@YiV$ z--8wIqqF&bYUfRK1#gD6Z^0qzAuZaIv9n1yQVipx!Nzvo8m=w#W>;i4Ye9)yzL}4K zP!Rgj8iAI_b+Y;$!i4h{ua#e+w>&A;L7MsS4JDNWVFqd(Kc5`+gurK%aak_IWoe# z?lPLzI~g6zLC8i@wnjWf>cg~PvP9BJA`C}zSEJcgEG?HX&ff<|egJ3nG91+_dZ!Yu zfyv#~FeDjI!gEWtIA2f3^90*MwHuMdU?!~d8m750NbOxuKtr41`guYfvZ`yl2()_{ z8exD!qW9yWBS< zWztU%CmYh=M5+u3$Usw0k#fCpP(V%%$l#C+5wcE|(@hyFX9Q)K3^(LV6Si~?$cTsr zMh4_8Q_hxAdU8%c&ehM+rkp3|2c#k(WAx(KfLx&YjMKw-Qzpo0E#!qJ&$>wCChDP5 z50ms2CI@7So=nw~i?u}4LUM^rH)Mv1o-)&vOJ$ZBA$XZyoNdY+86T2A$Xq?0XX0X> z!qxd9Ss<5dPFLvRN`2l!y?K!-i{&a)u9hWwZ$wM8RO7DE(`&Wf7U~_>Y0WJQ$n{!~ z(E+(3AUA5%a=jt4LX+HN${*!sJzuHW-(tur6BV*r-||)st) ze%>CC4FS0$AR7a6rxyP%LpEvZy908MCb(B4Z_z_k-)Xa6o30PNPfsITw86G&a9cnM z^oA;Z|NBGofIMi(Lnbblhc)JrkUT2YhSZo?UP332XIQot|=dK%NLmO!^wK z-IRJ6ZAgPDPs$F>WTzod8S=EibLs49g7BHO>r}Njy4F|_wF4WY=NMVFb%9ceeji*K zz0FMT(_qLhL!L2Yw;|8cHx1ci$a8czL!PH0c~$z7AbrHt`IpR|a(3n1%2`wAPn|oj z_I0yJTWxtpOuVZMd7<{Va4V72+T6^iz5aW#S&$vA31(BqU6#Bkdo8R5 zHT;q#FUu=};OAQ&`?7B9r%SIjz3$=8x^$v@;9L%y}-JAL9`@V+Jg)Wi3B_(8t06oC23R19e7dBZ+NT!sfJj!b+A5T|) zJs3P%1*FkXK}(q`WGKs0DJs=cX?i(bezH`C3R|j~%CuCL#$~JK0tiaJ+j;Zn(UrNC zt+Lfgyt=Y2m7`C|wN##JVX2m?m4&ZWel#U-V2gWIf#%fOQf*XQOO$FyOIxbF>LBPB zP0zEV9~Jtd#VMian!Hw?j;d3%F0a&IsEP#LXr$KBRn5`|TN02UEk0-ZY<@x)ziYwSZSzUmg=qg2#U4Evu4bmWU0Os1gmkY zp~@`PPu_`cYSBG+4WfoRnTk<;EY)8Pu+%_xilNE{nbFGTnSMhJ67-7hR+-V9mTgl{ zwbWoW#KKMZqo8;6`;N_PC$}v1)V@_PQAMK#oomOno#v_itixV^gnojwWY5 zS6VdUZXxXFbCrXmL?_@V)d@HT!3j9J?FqQsu|eY^@k8!#4xx|yju6^Ueuq=q-F}Bl z;haIq@ji0u!Y91}zQXO0#~jvMIO^K~#n{TxatR{XhAK`4_u~P0^lsw?5;g<8#XF$J zZilDLNC1HZ5R{^=-e6G!yn;KtD6E6e_7|5l!0$zwDYm%{!LU(}K+O&W$-^uQkvJqM zvuvvYmSBULuc1ha;2ETrrPwJkq=nOC$k+gXRnrHFeW?i`EzTg_PInpLJq^Y8XHbN2 z`m}Jfl5l1NvV5q}472SF4pNWiW#Pwh(hk^^B`2I4L!KQDw}_!-B!*Vue9mJih@tf{ zL~UH6wj?^9M(prb6uA4_h1)w4hwTg^NZT%k4psVGz0l!UtQI9LPTtH;)6EC63l-lpQkE`uy2Cc0*#;79Y3l!mZMhvdhHZD7cI#D- z-W#-dLCq(a;1fKK59#_GBVOaL5j&_i6G{0RzovYB?UdpY+l-;i_BWuPA7vS0XKY1( zuAS^0B(_g$uYU}k^n5@A2Ku$V6UZ1&u~W1wl^1Fu2UXZ1J0-5%#^tuR9;a@=S?)7} zb{ZI*Zrz7m2ik;Yw&_6i7!t#2RW1d$v~Vdiw>!L3xr2hAt$a_?Fl2P z)9_iYV#}<=f<;7}%kevC-c*7-A4D=<2TZ(&c?G7HgxydRy{`5xbe9Ln}HVy1$hmikUQOL>_sGTkC%`Z7iDi;lpWYh z0bZsn4MJWM{Uv1J6$7stc+J4;&iIBizG=Yy-v=}z-67e380`$abp*CE<);0O*i4Lp z1L3@buzthvl*2eZV&LtRzJ$&*@J zg&6o#6SBD>@}I8cUKolyxN~B1;}Y)tkRE2@YJ5b9{>m25?Q%4vgGb17DLFsF3u}*bn<1`6 z5WtB;Y+#q1?Un~~>##)oUMFSy}v_%eQeEmh{{ zT2Wz94Cj~cK*d-ye>=vMd2MfgJ;ugxL80yC+PE^G?Q6hzVG>CQm>tofjDzHGh&kjp z`t)J6!I7kT$u}u&5x%10g|zLMfBr$yGD!aozNPZp@Cx5CWBVNSy7$!d-;>^@`XNd6 z<58u4rQ2cmRzH#QU-;R*l{`&q?G)9CZqUC26WGgLSZ3Hp_#$3sVnwl2*DcN~i}k!D zIiFOb=el~cil>lZvh8&+z9eRf?b8@bHy}mqt{O1a8{OAGE868`Gjeg6S*SabX=Nd? zLtBwy``vk>V|(59Yb82`j~O`3oaN!S9v{NuM=qniwFFQkA#@W9{Ui;iN;*bJGn~hY zc9EQf%f!Y?$zgTM#YV})1JV)?OTMG`IT0qrb;xv*c!=dO&q?v7R!7np)lQby?R_oiFxr>do zD>E|FhS7*3CpR5Q%gAU%a|hnv^-$bH*@5dM^9z3m`TLc>L;Sh6ZPK=-tWLzpqvWn_ zyE+juanp`03133PPOs>xjly?}84A6QFExU}vY{iK=cfp!V{b@a{t z`6pN|z4&;;z2QWsYqv7iNk}IIqzLI!jFY4@+Da+-H4kOd9YdujMzO7#BfXstWQp|U z>t#Q782uePUCj8tk}poW>W0|2P;tx)wZAe5dO&6Z4(VA*b4D%`qZ9nr>Z@$eiVPzZIzCk;f&9>J~ zSwX!%uFUlG3hCB*e01l)9+3{qLQ>VV&q46r(pRjbxVX4Rjz;4JEFF-ceB~U53>m?< z!I5Ywqfj8D8Icv}!TxcGT)=1?kFhcVljS1Jl1f^664uI8+#?s`LH3uA$aK`mOf<+W z?2_5oE%OlB%KI;(^RDGbS5r4z=)w5Z*7UQto$pxFz*yEKofdrykPGk!?Zg<>BQTRugGISKT#8yd>RC-4NKfa~Wi+qt}c6E>VA$i1)Ji;a0 zOGnWWI~?97EQz-_?>LRnYlgVZQo{VS@P1Hu2KHOO!q-IKq)V{pI*y*q;x(wamas^M zgeet$Le8dd=;E`65j&sF!UDbk6~BN%EbpgBZz<1jbGa@$v^(E?uOQ8px&kdEQB~91 zC8T2jpB~*;o*!9slx{KUuF`Z@yL9?pCAkQSz!@_buoI$)fgyCFkB)SDc4{e zUjr7(GQJvI&mg^luK>%PKpj9Cdm&4jG5Pwi(1Eg?cv=&;1k2DG#{k;-*GM*%tt$KOpneQvv+)rIo#vuIuqW*$alKKlEcV!0Y_;m9*9)CLS1P6xvJzhgoul{Dv4N1#Q&e_-CVhns$Y#fxs{(M)-p$~ z!x&kQO1Yg8w1E+{5m(EdtY@3BMfl<*_n=lbCrvOWX@ZT%m>^P@jE1_T3F?w2s5`*~ zT#K84YsZ^l(Eq^%k%SFg6SNZDywJBXi6+p7Ztdv(7>zeT>pE_jYX~0w;HKjOQbjf0 z&&2Zplg@+A^>u9}r{qmrO95kCw2Sm)bH^D@@CjF**3!m}HNLYc%^gD+XV*pxhGa&r z8>vNOue0o^bnYx6Amd95Sk?5x(J0E%5i8ZmVbbi#kA=PDag<9f21}hItG<5@I!J-E zCB*ZRQV)@K(w89`*Ppv z?=O_dOUE940>EHX9mFk?6Oi1X^p`wK1_a@g97_fU;g_7C43blH7#ze+a%vFSGDH`K zS~4t%ByQj^T&MGcm?0zdb);?>rE{Z$GDgPgLV*sa>FYQh#z*wMFenpbqEeF*WwK1s z??wh?s!R*W^q>^UjDXBcpxjxBQYw%4fXoRvM^6DNmH8vP>l{PmD-~tVrZg8I&`mNPIZOK$Rpq*>Yh-722TW zMLJxZC>!MxRqaw8F02 z(qV^Ub+=OY=y0zN_vya-m3ly_2bJ2X)I&-&DfO^Yk0=#YYL`-rcPrVfm;j!PRoLr)AIBH!(AvuhVTO5U`yFJ0uO% zXrwbgX=t2aK8;Opnj5r5E@-MqY$MJ_ds93!OvEWjPi=ZIsf%<`*vlJBY2mLZWo+9dnKrg*Ymyn3wrNKbO~|BJ z@}_N4X_IL$A6q8PHXTey+k`pbW0USIYCopqcGJl=ohbpInl6^S0WtII} zR0)EU3g#5foH4nmw8SYmlxHrb}1jcvHoHaV(euIkv|HhE@%Z3e0dgUl&To3yTD%wSzVl@2gN=y(|3yTVhN)@2dW{hpdnoQ@(w0?Ghd`#`KY;&3!=lqb? zBQoBMQ!OWtE1g}eTAD&-I6+xYRBDn^la(5*nom(DOx0nU&P~_VBBf^N+)N#2>Aqs6 zN_4eUS7+l+#?YR1*oHZ+#kHa5&C z7ldXMEG{W6D4kuhxOCpk!o`I}<5}ujRinwZjTMy@^(;s2Pi{?g_ZAmUm|arnjO_Y} zqz>Z+?NmNiz@)jDgsrCEM2mdRzPpS8?X ztZ5q4?T|FB&uAx3haRh%uItg=IA8Tz7`X|zK=3>Gkgo8tVKSO#oV%U0pU*qoIVSNh z=AhC1i@6ZrS(rHP;8%Hk3ZL=WyC6GVHg|JWra&g{;n>0UcHmyz$5+Aqc!1-MrVo4H zAQ9cYl8OO?5Wrxx!w|j=Lk|qcDCA=r$5M>OLX1HK1-KgHsZ=3ZO~4zNgb%pmZo(6Y9{4#sYgl0gIyE$;4y;GP8#qyo`8jPS&1jH zmnQa*ay&&U0Z&tvh=Sv7dxqQgajF7|$BAo_g=Z~1_n&{CxA2067u~~-vtsxB^`2+bi&0l1eZtw zE|rD2!ga(71j%===ZHjp-p6%>O@XhwjtCOg#ui63wm70O<_Jq_T&UxaEX!S}eF)0} z7wULqO0f&I--TL{_I5o(cPY{(igd0AS#b>N{|(_&V6{T{=(tLvPkyBI3>54S0v>7!oFslD#(uy$2Vh$U^99v zHB{(=?0kPt6vM*)D27LozZw4Rh>yE>`|-DZ_mZ&>ny8r+52_NNo06F^o#~Jf*v<6Y zgBgUsn6a)2Hkz?N0;x10vXdnBYO${re`IQ?eWmyl{!IG<%*D6y7h2GndH)Vs_*(qs z&Ac1)S2}#h(96PK-7I+T2>K9*Ly$w{A`HOyJv78mUMh9z9zQm{ zV&Q_~VlhPFiD5y6qDYOR{X-bR@m8dsoEXW8+dOQZYlTg3ItqB6=Da{`UPLG6*KkB$ zqjj%i0iigZ_Aa5t3eaFi#BlUEX2szgK>=g z@pN_}Z3#y)p)4ojI(}kVHiLVT2C`>Lh_XQ*0dh&fKdHqxt{L4uPAz6+aP0|73ovKD z<{s1H1Ipvtzqsb<^ew4>HZ^i=T(B^4rgTl&XMWOC^8I}8TmfKHk08%jc2-5Au%^Didowc$o26_8;ZGF z!hfaBm>tK`BH{RL$k4LF8_vz>kQDYm=$AwZkQi0h+?5joF2s@msso~ z;DcK;2f=3TPe6hsqLZW|N7`esbl|Dp3DcxA7D^YamJF(a|_UxZ>5n5sH@B)KN}p*$pA?CxVdGXp;%RTohB7QTe6Wu`9{sHKsM3K(h8dp_J^5bF)(k&lvr@&2gAY8 z(y*mrK`Js;t1u%ZCmf7oS$<+T(appdr0rv`CtxLCui7s!%WdJp1n9OIi^IN9h3mK3 z;dpmuU^qUs!ky`py9Y_kmo}lwDB7xCXYd)SiXzfBicl0Q%eLeC*k@PqvsLbA8*)R{ z-r8B=lR|3#&q6#IwUjX+CZq2O84+}Kh3H~xZm7=HEo7o#=nX2%4hI-+1^L13aL|P% z>}T?XgPJ|wDYb(6!h0K1WH7qOP~^&Ro_6^dDhcW{P**hGTQc058GEnBoI4P6qvOpHeVyTpJX=J}~qL&=P=+U$bvZKgg zSN1s)H55+7psW+)#UQCT@iAm{)vJZ1*t2>KQY#>=PxvZTgLz$FTQj69scS~h} zHq94{r*MK)@}$wC8Fb5%Rs~O$A6is7NL9QqzhGbL?LWv>jpEx>xH*eu~uk*v8|tbYU<(Xo|!k2h#i?eEe4v{B|7{^Imm1&2OYz{ zU#SN<`bA5Lu_IxhS7Z{xJ}zjL>7hGLmL)&gFh#V4c$C%(BDSO(ajjg6o8@xcE>~b{M6PTpB?GV~Rv0c}xzJmJ zpU+F&0-^b?2w|kelr4L_Q*atd2Fv`O9a_M?`-8wV;gTGck&Lh9sT4ks<(sDcQ+=>Jt&oX zu|V!)6h5F)_#oEu>Ku`Wc!)LOI(dYl7{wOZg?+LcZ%Z={$fNjL9ur$0mn?Zwa^xu) zB2UX$d4~U!@T?mGdY9UV3JEbrgX+!`!9YsmmXS$HYl)VhMUui+RPV2gBJR1!VCG~h zm*c7bY&UBBJizzy+}+FE--11oMk?Tj?r>Pgd5`xlo5%D9Djh88=v_rmTu|QwQ>PCP z%#MdJoIQHpSTFSWJC9dZFpE#aa)U(ehFDu}Fs=Gc_eTVI-L*~|7;ZaZ6B4Bpn*eFm zj_FJn&Unewl_B0ux_cpxYxuQhYu}idP1=rRPnVoK5l{TJ!0@fxsqEdbRvilR+@_PeSOX-PqiOo3%^|?#|`I`@JTEdV28nmOh*{?5S?& OGm&6s@n3d>^!qQvu;Tpy delta 5379 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 MKBSlaTDCyw5H?XUXaE2J delta 1711 zcma)7X;_q16n@_s;C^$zi-91D3yUG{qN#;jYGjB>phjhBHsPo!A~7SWWu#eIZqb)5 zR$8`~*)pwWwpo_8S!QLs+NzZ;mX=EA!t;>zq)$KYIcLuPo^$Uvdk4-PT(j}ensoqr zajHfUq8g9k@c@ePgvOJ2N+TIhTe8N%Ga760tj0P#XUX%HykN^t#o);owaNZ&~qejm@STes>{8fm`S%(>*e-hD zM}<8ay|KQ=!B1B4vn9Vc_|-4&snT9bwH;hji!@CH?Z7 zF%DxL#yM14^nn19sWn|1E5$1|Q9On)1r-&cs=V@GI2;NS{_^N-*7~v%B45 z*|dtVVj_`H7>Z1qHoiDm6`UH1gsQ^P^qA31-L2SEF-b95v6*6uj9#(1VvA^P>~Nn- zRcxu)%G;?Ha*ua`vtnRV!`5tLn8tL)1j7tw8eEN1gD^@7NDjlc%u;M;n9cTv9W3c+ zNhfypiUQpdx)^q4H-p7kVwl73-lD)9XEA#i9><iJlSvv#u%)`9YnUr*!1B;BazDdP(^RKua{ zZdkx!g3It!4i|8Sg;seQi-@Gj!Rlbn^hjBGPGPVzYe+?;YNlZ^i@XfCnLC0-iX#n2 z@pNyHn~_q&T*EVXCc$jOvpCu|($lMUXQiEOcn-%Xjx{`&;}p*`46>)<`G%$J;x#c@ z&Ul7w&;+lq>6J9ma1zT5Mq-rWWWy;ekIpemH2q#;^G$85bVu`L%#2_E80xJ~gw%7AwEE;38a%II(WV zY>81wmnT_+OW~kGQdhyLla5@4ISO+XE+gy3c?y>+Tv0DyDUGG>N2fxC`E_W5_#-$= zI`IH>9SVF19NDWK`lXm{bJK&!)l*axO@FFoBzGZD63w++n z)~jo-5kzqqB}=LmNueJy1l@JA(l!{3rMMn`S$zp^z>V-po^i7LWx}mA5tC%LH;bGh zUJa4AG)CUq7`a>`?G;Fb?-1H4tWda3;r4yVMT*@^z$Zx?TGaNuo@3ZE!#{iu}YYOhdnR7U;9Ty_Tf>C5Z+Qs7Yj#%BOmPT@ZtjU53`oX GBJdZ)0zW?h diff --git a/jyjz-system/jyjz-system-oa/target/classes/mapper/oa/OcrTaskchildPictureMapper.xml b/jyjz-system/jyjz-system-oa/target/classes/mapper/oa/OcrTaskchildPictureMapper.xml index 04dc9e63..a48c199f 100644 --- a/jyjz-system/jyjz-system-oa/target/classes/mapper/oa/OcrTaskchildPictureMapper.xml +++ b/jyjz-system/jyjz-system-oa/target/classes/mapper/oa/OcrTaskchildPictureMapper.xml @@ -6,13 +6,6 @@ - - - - - - - @@ -43,19 +36,13 @@ + ID AS id, OCPICTUREID AS ocpictureid, PICTURERESULT AS pictureresult, PICTURECOMPARE AS picturecompare, - IZTRUEORFALSE AS iztrueorfalse, - JUDGEID AS judgeid, - IZPASS AS izpass, - JUDGEPASS AS judgepass, - PASSDESC AS passdesc, - IZCLOSE AS izclose, - TASKTYPE AS tasktype, DEPTID AS deptid, TENANTID AS tenantid, PACKAGEID AS packageid, @@ -85,7 +72,8 @@ FROMPROJECTID AS fromprojectid, FROMPLANID AS fromplanid, FROMUPTIME AS fromuptime, - FROMSOURCEID AS fromsourceid + FROMSOURCEID AS fromsourceid, + HAVEPOINTS AS havepoints @@ -95,13 +83,6 @@ and OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend} and PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend} and PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend} - and IZTRUEORFALSE ${iztrueorfalse.dataOp} ${iztrueorfalse.likestar}#{iztrueorfalse.value}${iztrueorfalse.likeend} - and JUDGEID ${judgeid.dataOp} ${judgeid.likestar}#{judgeid.value}${judgeid.likeend} - and IZPASS ${izpass.dataOp} ${izpass.likestar}#{izpass.value}${izpass.likeend} - and JUDGEPASS ${judgepass.dataOp} ${judgepass.likestar}#{judgepass.value}${judgepass.likeend} - and PASSDESC ${passdesc.dataOp} ${passdesc.likestar}#{passdesc.value}${passdesc.likeend} - and IZCLOSE ${izclose.dataOp} ${izclose.likestar}#{izclose.value}${izclose.likeend} - and TASKTYPE ${tasktype.dataOp} ${tasktype.likestar}#{tasktype.value}${tasktype.likeend} and DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend} and TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend} and PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend} @@ -124,9 +105,15 @@ and CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend} and CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend} and USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend} - and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} and FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend} and FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend} + and FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend} + and FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend} + and FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend} + and FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend} + and FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}#{fromsourceid.value}${fromsourceid.likeend} + and HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend} + and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} @@ -137,46 +124,41 @@ - and tcp.ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend} - and tcp.OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend} - and tcp.PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend} - and tcp.PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend} - and tcp.IZTRUEORFALSE ${iztrueorfalse.dataOp} ${iztrueorfalse.likestar}#{iztrueorfalse.value}${iztrueorfalse.likeend} - and tcp.JUDGEID ${judgeid.dataOp} ${judgeid.likestar}#{judgeid.value}${judgeid.likeend} - and tcp.IZPASS ${izpass.dataOp} ${izpass.likestar}#{izpass.value}${izpass.likeend} - and tcp.JUDGEPASS ${judgepass.dataOp} ${judgepass.likestar}#{judgepass.value}${judgepass.likeend} - and tcp.PASSDESC ${passdesc.dataOp} ${passdesc.likestar}#{passdesc.value}${passdesc.likeend} - and tcp.IZCLOSE ${izclose.dataOp} ${izclose.likestar}#{izclose.value}${izclose.likeend} - and tcp.TASKTYPE ${tasktype.dataOp} ${tasktype.likestar}#{tasktype.value}${tasktype.likeend} - and tcp.DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend} - and tcp.TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend} - and tcp.PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend} - and tcp.PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend} - and tcp.CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend} - and tcp.CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend} - and tcp.SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend} - and tcp.BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend} - and tcp.STATES ${states.dataOp} ${states.likestar}#{states.value}${states.likeend} - and tcp.PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend} - and tcp.PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend} - and tcp.DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend} - and tcp.ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend} - and tcp.ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend} - and tcp.UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend} - and tcp.UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend} - and tcp.FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend} - and tcp.GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend} - and tcp.CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend} - and tcp.CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend} - and tcp.CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend} - and tcp.USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend} - and tcp.FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend} - and tcp.FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend} - and tcp.FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend} - and tcp.FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend} - and tcp.FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend} - and tcp.FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend} - and tcp.FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}#{fromsourceid.value}${fromsourceid.likeend} + and tcp.ID ${id.dataOp} ${id.likestar}#{id.value}${id.likeend} + and tcp.OCPICTUREID ${ocpictureid.dataOp} ${ocpictureid.likestar}#{ocpictureid.value}${ocpictureid.likeend} + and tcp.PICTURERESULT ${pictureresult.dataOp} ${pictureresult.likestar}#{pictureresult.value}${pictureresult.likeend} + and tcp.PICTURECOMPARE ${picturecompare.dataOp} ${picturecompare.likestar}#{picturecompare.value}${picturecompare.likeend} + and tcp.DEPTID ${deptid.dataOp} ${deptid.likestar}#{deptid.value}${deptid.likeend} + and tcp.TENANTID ${tenantid.dataOp} ${tenantid.likestar}#{tenantid.value}${tenantid.likeend} + and tcp.PACKAGEID ${packageid.dataOp} ${packageid.likestar}#{packageid.value}${packageid.likeend} + and tcp.PICTUREID ${pictureid.dataOp} ${pictureid.likestar}#{pictureid.value}${pictureid.likeend} + and tcp.CATEGORY ${category.dataOp} ${category.likestar}#{category.value}${category.likeend} + and tcp.CATEGORYID ${categoryid.dataOp} ${categoryid.likestar}#{categoryid.value}${categoryid.likeend} + and tcp.SPECIFICATION ${specification.dataOp} ${specification.likestar}#{specification.value}${specification.likeend} + and tcp.BUESSINESSNO ${buessinessno.dataOp} ${buessinessno.likestar}#{buessinessno.value}${buessinessno.likeend} + and tcp.STATES ${states.dataOp} ${states.likestar}#{states.value}${states.likeend} + and tcp.PROCESSINSTANCEID ${processinstanceid.dataOp} ${processinstanceid.likestar}#{processinstanceid.value}${processinstanceid.likeend} + and tcp.PROCESSDEFINITIONID ${processdefinitionid.dataOp} ${processdefinitionid.likestar}#{processdefinitionid.value}${processdefinitionid.likeend} + and tcp.DEPLOYMENTID ${deploymentid.dataOp} ${deploymentid.likestar}#{deploymentid.value}${deploymentid.likeend} + and tcp.ASSIGNEENAME ${assigneename.dataOp} ${assigneename.likestar}#{assigneename.value}${assigneename.likeend} + and tcp.ASSIGNEE ${assignee.dataOp} ${assignee.likestar}#{assignee.value}${assignee.likeend} + and tcp.UPDATEUSER ${updateuser.dataOp} ${updateuser.likestar}#{updateuser.value}${updateuser.likeend} + and tcp.UPDATETIME ${updatetime.dataOp} ${updatetime.likestar}#{updatetime.value}${updatetime.likeend} + and tcp.FILEANNEX ${fileannex.dataOp} ${fileannex.likestar}#{fileannex.value}${fileannex.likeend} + and tcp.GUIDANG ${guidang.dataOp} ${guidang.likestar}#{guidang.value}${guidang.likeend} + and tcp.CREATEUSER ${createuser.dataOp} ${createuser.likestar}#{createuser.value}${createuser.likeend} + and tcp.CREATEUSERNAME ${createusername.dataOp} ${createusername.likestar}#{createusername.value}${createusername.likeend} + and tcp.CREATEDATE ${createdate.dataOp} ${createdate.likestar}#{createdate.value}${createdate.likeend} + and tcp.USERNAME ${username.dataOp} ${username.likestar}#{username.value}${username.likeend} + and tcp.FROMTASKID ${fromtaskid.dataOp} ${fromtaskid.likestar}#{fromtaskid.value}${fromtaskid.likeend} + and tcp.FROMTASKNAME ${fromtaskname.dataOp} ${fromtaskname.likestar}#{fromtaskname.value}${fromtaskname.likeend} + and tcp.FROMUSERID ${fromuserid.dataOp} ${fromuserid.likestar}#{fromuserid.value}${fromuserid.likeend} + and tcp.FROMPROJECTID ${fromprojectid.dataOp} ${fromprojectid.likestar}#{fromprojectid.value}${fromprojectid.likeend} + and tcp.FROMPLANID ${fromplanid.dataOp} ${fromplanid.likestar}#{fromplanid.value}${fromplanid.likeend} + and tcp.FROMUPTIME ${fromuptime.dataOp} ${fromuptime.likestar}#{fromuptime.value}${fromuptime.likeend} + and tcp.FROMSOURCEID ${fromsourceid.dataOp} ${fromsourceid.likestar}#{fromsourceid.value}${fromsourceid.likeend} + and tcp.HAVEPOINTS ${havepoints.dataOp} ${havepoints.likestar}#{havepoints.value}${havepoints.likeend} + and tcp.USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} diff --git a/jyjz-system/jyjz-system-oa/target/jyjz-system-oa-1.0.0-sources.jar b/jyjz-system/jyjz-system-oa/target/jyjz-system-oa-1.0.0-sources.jar index 58862948df549b6e5c5e3279273dfa2713679556..156ea7dd409d6b4b748919b086c662ad15459b91 100644 GIT binary patch delta 42679 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 Ti_4T|N=r}T;`-%I!e9RbN;AD) delta 30455 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%0Dl?2c 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 delta 57631 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 diff --git a/jyjz-system/jyjz-system-oa/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/jyjz-system/jyjz-system-oa/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 4e9e2f52..f0ef4bb5 100644 --- a/jyjz-system/jyjz-system-oa/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/jyjz-system/jyjz-system-oa/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -23,6 +23,7 @@ cn\jyjz\xiaoyao\ocr\controller\OcrAreaHtmlController.class cn\jyjz\xiaoyao\ocr\dataDao\OcrPictureclassMybatisDao.class cn\jyjz\xiaoyao\ocr\dataobject\OcrUsersearchchild.class cn\jyjz\xiaoyao\ocr\service\impl\OcrConfigurationServiceImpl.class +cn\jyjz\xiaoyao\ocr\util\ReturnCode.class cn\jyjz\flowable\utils\Constant.class cn\jyjz\xiaoyao\ocr\controller\OcrSearchmanagerController.class cn\jyjz\xiaoyao\ocr\util\httputil\HttpClient$1.class @@ -63,16 +64,19 @@ cn\jyjz\xiaoyao\ocr\service\OcrUsersearchService.class cn\jyjz\xiaoyao\ocr\service\impl\OcrUsersearchchildServiceImpl.class cn\jyjz\xiaoyao\ocr\controller\OcrPictureController.class cn\jyjz\xiaoyao\oa\from\dataobject\Candidateuser.class +cn\jyjz\xiaoyao\ocr\util\ImageClassUtil.class cn\jyjz\xiaoyao\ocr\service\impl\OcrTaskchildPictureServiceImpl.class cn\jyjz\flowable\config\MyAuthenticationContext.class cn\jyjz\xiaoyao\oa\from\cache\CacheOaConstants.class cn\jyjz\xiaoyao\ocr\dataDao\OcrUsersearchMybatisDao.class +cn\jyjz\xiaoyao\ocr\util\RequestData.class cn\jyjz\xiaoyao\oa\from\controller\UserdistionaryController.class cn\jyjz\xiaoyao\oa\from\controller\UserdistionaryHtmlController.class cn\jyjz\flowable\entity\ReDeployment.class cn\jyjz\flowable\domain\vo\WorkFlowNodeVO.class cn\jyjz\flowable\entity\ReDeployment$ReDeploymentBuilder.class cn\jyjz\xiaoyao\ocr\dataDao\OcrUpuserMybatisDao.class +cn\jyjz\xiaoyao\ocr\util\ResultData.class cn\jyjz\xiaoyao\ocr\service\OcrPicturejobService.class cn\jyjz\xiaoyao\oa\from\dataobject\Candidate$CandidateBuilder.class cn\jyjz\flowable\config\AutoJumpTaskListener.class @@ -113,6 +117,7 @@ cn\jyjz\xiaoyao\ocr\util\DataUtil.class cn\jyjz\xiaoyao\ocr\dataDao\OcrPictureNotesMybatisDao.class cn\jyjz\xiaoyao\ocr\dataobject\OcrPicture$OcrPictureBuilder.class cn\jyjz\xiaoyao\ocr\dataDao\OcrPackagetaskMybatisDao.class +cn\jyjz\xiaoyao\ocr\util\ApiHelper.class cn\jyjz\flowable\modeler\services\FlowableUserLoginServiceImpl.class cn\jyjz\xiaoyao\oa\from\controller\CategoryController.class cn\jyjz\flowable\domain\form\FormObject.class diff --git a/jyjz-system/jyjz-system-oa/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/jyjz-system/jyjz-system-oa/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 9cd929e1..c0574904 100644 --- a/jyjz-system/jyjz-system-oa/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/jyjz-system/jyjz-system-oa/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -7,6 +7,7 @@ D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\fl D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\flowable\utils\PageUtils.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\flowable\common\ProcessConstant.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\flowable\modeler\constants\FlowableConstants.java +D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\util\ImageClassUtil.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\oa\from\dataDao\IRunFlowableActinstDao.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\oa\from\service\impl\CandidateServiceImpl.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\dataDao\OcrTaskchildPictureMybatisDao.java @@ -34,6 +35,7 @@ D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xi D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\service\OcrAreaService.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\dataobject\OcrPictureNotes.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\dataobject\OcrSearchmanager.java +D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\util\ReturnCode.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\controller\OcrTaskchildPictureHtmlController.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\oa\from\dataDao\UserapproveMybatisDao.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\flowable\utils\Constant.java @@ -71,6 +73,7 @@ D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xi D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\service\OcrTaskchildPictureService.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\controller\OcrPicturejobHtmlController.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\util\httputil\HttpHeader.java +D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\util\ResultData.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\oa\from\controller\CandidateController.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\oa\from\dataDao\UserdistionaryMybatisDao.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\dataDao\OcrPlanMybatisDao.java @@ -86,6 +89,7 @@ D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xi D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\service\OcrPictureclassService.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\oa\from\dataobject\UserViewapproe.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\flowable\modeler\configurations\AbstractMybatisPlusConfiguration.java +D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\util\ApiHelper.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\service\impl\OcrUpuserServiceImpl.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\dataDao\OcrPicturetypeMybatisDao.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\dataobject\OcrUsersearch.java @@ -206,6 +210,7 @@ D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xi D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\flowable\config\GlobalEntityInitListener.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\oa\from\vo\FlowUnionVo.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\flowable\domain\dto\FlowTaskDto.java +D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\util\RequestData.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\service\impl\OcrSearchmanagerServiceImpl.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\dataobject\OcrPictureclass.java D:\ideaWork\jeecg\ocrproject\jyjz-system\jyjz-system-oa\src\main\java\cn\jyjz\xiaoyao\ocr\dataobject\OcrBooknote.java