|
@@ -1,20 +1,25 @@
|
|
|
package com.pavis.ctr.audit.project.service.impl;
|
|
|
|
|
|
|
|
|
+import com.aliyun.oss.OSS;
|
|
|
+import com.baidubce.services.bos.BosClient;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.pavis.ctr.audit.common.utils.DateUtils;
|
|
|
+import com.pavis.ctr.audit.common.utils.ImageUtils;
|
|
|
import com.pavis.ctr.audit.project.domain.*;
|
|
|
+import com.pavis.ctr.audit.project.mapper.AuditTripImgMapper;
|
|
|
import com.pavis.ctr.audit.project.mapper.AuditTripMainMapper;
|
|
|
+import com.pavis.ctr.audit.project.mapper.AuditTripResultMapper;
|
|
|
import com.pavis.ctr.audit.project.service.*;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 待审核表 服务处理
|
|
@@ -22,20 +27,40 @@ import java.util.Set;
|
|
|
@Service
|
|
|
public class AuditTripMainServiceImpl extends ServiceImpl<AuditTripMainMapper, AuditTripMain> implements IAuditTripMainService {
|
|
|
|
|
|
+ public static final String UPDATE_BY = "CTR00";
|
|
|
+ public static final Long USER_ID = 1000L;
|
|
|
+ //CTR00 1000 虚拟用户
|
|
|
+ public static final Map<String, String> AUDIT_CONCLUSION_MAP;
|
|
|
+
|
|
|
+ static {
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
+ map.put("1", "01,5");
|
|
|
+ map.put("6", "03");
|
|
|
+ map.put("7", "03");
|
|
|
+ AUDIT_CONCLUSION_MAP = Collections.unmodifiableMap(map); // 创建不可变 Map
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ AuditTripImgMapper auditTripImgMapper;
|
|
|
+ @Autowired
|
|
|
+ AuditTripResultMapper auditTripResultMapper;
|
|
|
+ @Value("${upload.path}")
|
|
|
+ String basePath;
|
|
|
@Autowired
|
|
|
private IUpTripService upTripService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private IOcrTripDetService ocrTripDetService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private IAuditTripDetService auditTripDetService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private IAuditTripImgService auditTripImgService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private IAuditTripResultService auditTripResultService;
|
|
|
+ @Autowired
|
|
|
+ private BosClient client;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OSS ossClient;
|
|
|
|
|
|
/**
|
|
|
* 查询符合条件的main源数据
|
|
@@ -202,6 +227,7 @@ public class AuditTripMainServiceImpl extends ServiceImpl<AuditTripMainMapper, A
|
|
|
|
|
|
/**
|
|
|
* 按userid、date查询uploadId
|
|
|
+ *
|
|
|
* @param userId
|
|
|
* @param todayDate
|
|
|
* @param beforDate
|
|
@@ -209,7 +235,67 @@ public class AuditTripMainServiceImpl extends ServiceImpl<AuditTripMainMapper, A
|
|
|
*/
|
|
|
@Override
|
|
|
public List<String> selectErrorTripByuserId(String userId, String todayDate, String beforDate) {
|
|
|
- return baseMapper.selectErrorTripByuserId(userId,todayDate,beforDate);
|
|
|
+ return baseMapper.selectErrorTripByuserId(userId, todayDate, beforDate);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Integer autoAuditTripResultVo(List<OcrTrip> ocrTrips) {
|
|
|
+ String yyyy = DateUtils.parseDateToStr("yyyy", new Date());
|
|
|
+ List<OcrTrip> autoOcrTrip = ocrTrips.stream().filter(ocrTrip -> {
|
|
|
+ String[] split = ocrTrip.getPurchaseDate().split("-");
|
|
|
+ return ("1".equals(ocrTrip.getErrReason())) || (("6".equals(ocrTrip.getErrReason())) && split[0].equals(yyyy)) || ("7".equals(ocrTrip.getErrReason()));
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
+ autoOcrTrip.stream().forEach(ocrTrip -> {
|
|
|
+ AuditTripResult tripResult = auditTripResultService.getBaseMapper().selectById(ocrTrip.getUploadId());
|
|
|
+ List<AuditTripImg> auditTripImgList = auditTripImgService.getBaseMapper().selectList(Wrappers.<AuditTripImg>query().eq("upload_id", ocrTrip.getUploadId()));
|
|
|
+ AuditTripMain auditTripMain = baseMapper.selectById(ocrTrip.getUploadId());
|
|
|
+ auditTripMain.setUpdateTime(new Date());
|
|
|
+ auditTripMain.setUpdateBy(UPDATE_BY);
|
|
|
+ int updateById = baseMapper.updateById(auditTripMain);
|
|
|
+
|
|
|
+ String mergeImgUrl = null;
|
|
|
+ String mergeHtmlUrl = null;
|
|
|
+ if (auditTripImgList.size() > 0) {
|
|
|
+ List<String> imgs = auditTripImgList.stream().map(trip -> {
|
|
|
+ if (StringUtils.isNotBlank(trip.getTripNewImg())) {
|
|
|
+ return trip.getTripNewImg();
|
|
|
+ } else {
|
|
|
+ return trip.getTripImg();
|
|
|
+ }
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
+ if(imgs.size() == 1){
|
|
|
+ String[] imgArr = new String[imgs.size()];
|
|
|
+ mergeImgUrl = imgs.get(0);
|
|
|
+ String dstHtml = tripResult.getUploadId() + "_test.html";
|
|
|
+ mergeHtmlUrl = ImageUtils.joinImageListHtml(imgs.toArray(imgArr), dstHtml, ossClient);
|
|
|
+ }else if (imgs.size() > 0) {
|
|
|
+ String[] imgArr = new String[imgs.size()];
|
|
|
+ String dstPic = basePath + tripResult.getUploadId() + "_test.jpg";
|
|
|
+ mergeImgUrl = ImageUtils.joinImagesVertical(imgs.toArray(imgArr), "jpg", dstPic, client);
|
|
|
+ String dstHtml = tripResult.getUploadId() + "_test.html";
|
|
|
+ mergeHtmlUrl = ImageUtils.joinImageListHtml(imgs.toArray(imgArr), dstHtml, ossClient);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(mergeImgUrl) && StringUtils.isNotBlank(mergeHtmlUrl)) {
|
|
|
+ System.out.println("图片拼接成功!");
|
|
|
+ } else {
|
|
|
+ System.out.println("图片拼接失败!");
|
|
|
+ }
|
|
|
+ tripResult.setUserId(USER_ID);
|
|
|
+ tripResult.setAuditStatus(1);
|
|
|
+ tripResult.setAuditError(ocrTrip.getErrReason());
|
|
|
+ tripResult.setUpdateBy(UPDATE_BY);
|
|
|
+ tripResult.setUpdateTime(new Date());
|
|
|
+ tripResult.setMergeImgUrl(mergeImgUrl);
|
|
|
+ tripResult.setMergeHtmlUrl(mergeHtmlUrl);
|
|
|
+ tripResult.setAuditConclusion(AUDIT_CONCLUSION_MAP.get(ocrTrip.getErrReason()));
|
|
|
+ int updateById1 = auditTripResultService.getBaseMapper().updateById(tripResult);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return autoOcrTrip.size();
|
|
|
}
|
|
|
|
|
|
/**
|