|
|
|
@ -1,7 +1,10 @@
|
|
|
|
|
package cn.jyjz.xiaoyao.ocr.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.map.MapBuilder;
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import cn.jyjz.flowable.common.ProcessConstant;
|
|
|
|
|
import cn.jyjz.flowable.common.SystemConstantsOa;
|
|
|
|
|
import cn.jyjz.flowable.entity.FlowApprove;
|
|
|
|
|
import cn.jyjz.flowable.service.IFlowInstanceService;
|
|
|
|
|
import cn.jyjz.flowable.service.IFlowTaskService;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.param.ParamterPage;
|
|
|
|
@ -14,6 +17,7 @@ import cn.jyjz.xiaoyao.oa.from.service.CategoryService;
|
|
|
|
|
import cn.jyjz.xiaoyao.oa.from.service.UserapproveService;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataDao.OcrTaskchildPictureMybatisDao;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.*;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dto.ApproveNodeDto;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dto.FlowResultDto;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dto.UserapproveDto;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.service.IOcrPictureDuplicateHisService;
|
|
|
|
@ -53,6 +57,9 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
|
|
|
|
|
@Resource
|
|
|
|
|
private OcrTaskchildPictureMybatisDao ocrtaskchildpicturemybatisdao;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private IFlowTaskService taskService;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private OcrPictureService ocrPictureService;
|
|
|
|
|
|
|
|
|
@ -203,21 +210,19 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
|
|
|
|
|
* @param userToken
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public boolean validateAssignee(List<String> formid, UserToken userToken) {
|
|
|
|
|
public List<String> validateAssignee(List<String> formid, UserToken userToken) {
|
|
|
|
|
List<String> formIds = new ArrayList<>();
|
|
|
|
|
QueryWrapper queryWrapper = new QueryWrapper();
|
|
|
|
|
queryWrapper.in("ID", formid);
|
|
|
|
|
List<OcrTaskchildPicture> list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapper);
|
|
|
|
|
|
|
|
|
|
//目前没有做其他信息返回,如果需要再做修改
|
|
|
|
|
for (OcrTaskchildPicture ocrTaskchildPicture : list) {
|
|
|
|
|
//判断审批人是否为当前登录用户
|
|
|
|
|
if (userToken.getLoginname().equals(ocrTaskchildPicture.getAssignee())) {
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
formIds.add(ocrTaskchildPicture.getId().toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
return formIds;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -226,22 +231,20 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
|
|
|
|
|
* @param formid 任务主键
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public boolean validateApprove(List<String> formid) {
|
|
|
|
|
public List<String> validateApprove(List<String> formid) {
|
|
|
|
|
List<String> formIds = new ArrayList<>();
|
|
|
|
|
QueryWrapper queryWrapper = new QueryWrapper();
|
|
|
|
|
queryWrapper.in("ID", formid);
|
|
|
|
|
List<OcrTaskchildPicture> list = this.ocrtaskchildpicturemybatisdao.selectList(queryWrapper);
|
|
|
|
|
|
|
|
|
|
//目前没有做其他信息返回,如果需要再做修改
|
|
|
|
|
for (OcrTaskchildPicture ocrTaskchildPicture : list) {
|
|
|
|
|
//判断当前审批状态为拒绝或者通过的,不允许再做审批
|
|
|
|
|
if (ocrTaskchildPicture.getStates().intValue() == SystemConstantsOa.OA_STATUS_TYPE_END
|
|
|
|
|
|| ocrTaskchildPicture.getStates().intValue() == SystemConstantsOa.OA_STATUS_TYPE_REFUSE) {
|
|
|
|
|
return false;
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
if (ocrTaskchildPicture.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_END
|
|
|
|
|
&& ocrTaskchildPicture.getStates().intValue() != SystemConstantsOa.OA_STATUS_TYPE_REFUSE) {
|
|
|
|
|
formIds.add(ocrTaskchildPicture.getId().toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
return formIds;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -326,6 +329,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
|
|
|
|
|
ocrPicture.setTaskstatus("1");
|
|
|
|
|
ocrPicture.setWorkStatus("1");
|
|
|
|
|
ocrPictureService.updateById(ocrPicture);
|
|
|
|
|
taskService.sendMsg(ocrTaskchildPicture, userToken);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -650,14 +654,14 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Page<OcrTaskChildPictureVo> getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue) {
|
|
|
|
|
public Page<OcrTaskChildPictureVo> getSimilarityList(Integer pageNo, Integer pageSize, String pictureId, String orderType, String orderValue, UserToken userToken) {
|
|
|
|
|
OcrPictureDuplicateHis duplicateHis = pictureDuplicateHisService.getOne(new LambdaQueryWrapper<OcrPictureDuplicateHis>().eq(OcrPictureDuplicateHis::getPictureId, pictureId));
|
|
|
|
|
Page<OcrTaskChildPictureVo> objectPage = new Page<>();
|
|
|
|
|
if (ObjectUtils.isNotEmpty(duplicateHis) && org.apache.commons.lang3.StringUtils.isNotBlank(duplicateHis.getCheckDuplicateResultHisJson())) {
|
|
|
|
|
OcrTaskchildPicture one = this.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, pictureId));
|
|
|
|
|
String userNodeType = ProcessConstant.userNodeType.getOrDefault(userToken.getNodeType(), "一级审批");
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(duplicateHis.getCheckDuplicateResultHisJson());
|
|
|
|
|
Set<String> pictureIds = jsonObject.keySet();
|
|
|
|
|
List<OcrTaskChildPictureVo> taskChildPictures = this.getPictureHistoryList(new ArrayList<>(pictureIds), one.getTaskname());
|
|
|
|
|
List<OcrTaskChildPictureVo> taskChildPictures = this.getPictureHistoryList(new ArrayList<>(pictureIds), userNodeType);
|
|
|
|
|
for (OcrTaskChildPictureVo taskChildPicture : taskChildPictures) {
|
|
|
|
|
taskChildPicture.setSimilarityScore(Integer.parseInt(jsonObject.getString(taskChildPicture.getPictureId().toString())));
|
|
|
|
|
}
|
|
|
|
@ -683,22 +687,47 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Page<OcrTaskChildPictureVo> getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId) {
|
|
|
|
|
public Page<OcrTaskChildPictureVo> getPackageSimilarityList(Integer pageNo, Integer pageSize, String oderType, String oderName, String checkDuplicateId, String pictureId, UserToken userToken) {
|
|
|
|
|
Page<OcrTaskChildPictureVo> page = new Page<>(pageNo, pageSize);
|
|
|
|
|
OcrTaskchildPicture one = this.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, pictureId));
|
|
|
|
|
String userNodeType = ProcessConstant.userNodeType.getOrDefault(userToken.getNodeType(), "一级审批");
|
|
|
|
|
|
|
|
|
|
return ocrtaskchildpicturemybatisdao.getPackageSimilarityList(page, checkDuplicateId, pictureId, oderType, oderName,one.getTaskname());
|
|
|
|
|
return ocrtaskchildpicturemybatisdao.getPackageSimilarityList(page, checkDuplicateId, pictureId, oderType, oderName, userNodeType);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture) {
|
|
|
|
|
public void sendFlowTaskResult(OcrTaskchildPicture taskchildPicture, OcrPicture picture, FlowApprove flowApprove) {
|
|
|
|
|
FlowResultDto flowResultDto = new FlowResultDto();
|
|
|
|
|
flowResultDto.setTenantNo(picture.getTenantId());
|
|
|
|
|
flowResultDto.setAccountNo(Long.parseLong(picture.getPictureid()));
|
|
|
|
|
flowResultDto.setTaskNo(Long.parseLong(picture.getRemark()));
|
|
|
|
|
flowResultDto.setPictureMatchDegree(BigDecimal.valueOf(picture.getSimilarityscore()));
|
|
|
|
|
flowResultDto.setIsPictureRepeat(Integer.valueOf(picture.getField14()));
|
|
|
|
|
Integer resultStatus = taskchildPicture.getStates() == SystemConstantsOa.OA_STATUS_TYPE_END ? SystemConstantsOa.OCR_STATUS_SUCCESS : SystemConstantsOa.OCR_STATUS_FAILURE;
|
|
|
|
|
flowResultDto.setIsPictureRight(picture.getIztrueorfalse());
|
|
|
|
|
Integer resultStatus = Objects.equals(taskchildPicture.getStates(), SystemConstantsOa.OA_STATUS_TYPE_END) ? SystemConstantsOa.OCR_STATUS_SUCCESS : SystemConstantsOa.OCR_STATUS_FAILURE;
|
|
|
|
|
flowResultDto.setApproveResult(resultStatus);
|
|
|
|
|
flowResultDto.setApproveRemark(flowApprove.getComment());
|
|
|
|
|
List<ApproveNodeDto> nodeList = new ArrayList<>();
|
|
|
|
|
List<Userapprove> userApproves = userapproveService.list(new LambdaQueryWrapper<Userapprove>().eq(Userapprove::getFormid, taskchildPicture.getId()));
|
|
|
|
|
if (CollectionUtils.isNotEmpty(userApproves)) {
|
|
|
|
|
for (Userapprove userApprove : userApproves) {
|
|
|
|
|
ApproveNodeDto approveNode = getApproveNodeDto(userApprove);
|
|
|
|
|
nodeList.add(approveNode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
flowResultDto.setApproveDetailList(nodeList);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static ApproveNodeDto getApproveNodeDto(Userapprove userApprove) {
|
|
|
|
|
ApproveNodeDto approveNode = new ApproveNodeDto();
|
|
|
|
|
approveNode.setApproveRemark(userApprove.getTaskcomment());
|
|
|
|
|
approveNode.setApproveResult(userApprove.getStatshis() == 2 ? 0 : 1);
|
|
|
|
|
approveNode.setApproveWay(0);
|
|
|
|
|
approveNode.setNodeName(userApprove.getTaskname());
|
|
|
|
|
approveNode.setReason(userApprove.getReason());
|
|
|
|
|
approveNode.setApproveByName(userApprove.getUsername());
|
|
|
|
|
//审批不通过出来方式
|
|
|
|
|
approveNode.setProcessMethod(1);
|
|
|
|
|
return approveNode;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|