From ed5ca80adbd4e3833ac067fca8ed752c4a19caeb Mon Sep 17 00:00:00 2001 From: Vincent <19330835921@163.com> Date: Thu, 18 Apr 2024 00:34:07 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E5=AE=9A=E6=97=B6=E6=8B=89?= =?UTF-8?q?=E5=8F=96=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocr/controller/ApiTestController.java | 216 +++++++++++++----- .../ocr/timerJob/PullPictureDataJob.java | 90 ++++++-- 2 files changed, 221 insertions(+), 85 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/ApiTestController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/ApiTestController.java index fb0fd229..91907345 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/ApiTestController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/ApiTestController.java @@ -3,17 +3,21 @@ package cn.jyjz.xiaoyao.ocr.controller; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.jyjz.xiaoyao.admin.dataDao.DepartmentMybatisDao; +import cn.jyjz.xiaoyao.admin.dataobject.Department; import cn.jyjz.xiaoyao.common.base.util.StringUtils; import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceParameter; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult; import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig; import cn.jyjz.xiaoyao.ocr.api.utils.ApiPage; -import cn.jyjz.xiaoyao.ocr.thread.ImageDownloadMonitoring; import cn.jyjz.xiaoyao.ocr.thread.TaskQueue; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.compress.utils.Lists; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -21,7 +25,11 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.time.Instant; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * TODO @@ -41,75 +49,94 @@ public class ApiTestController { @Autowired private PrevailCloudApi prevailCloudApi; + @Resource + private DepartmentMybatisDao departmentMybatisDao; + @GetMapping("psTest") - public String psTset(HttpServletRequest request){ + public String psTset(HttpServletRequest request) { String beginStr = request.getParameter("beginStr"); String endStr = request.getParameter("endStr"); String pageSize = request.getParameter("pageSize"); String pageNo = request.getParameter("pageNo"); String tenantNoStr = request.getParameter("tenantNo"); - if(StringUtils.isBlank(tenantNoStr)){ + if (StringUtils.isBlank(tenantNoStr)) { return "租户不能为空"; } String accountNoStr = request.getParameter("accountNo"); - if(StringUtils.isBlank(accountNoStr)){ + if (StringUtils.isBlank(accountNoStr)) { return "业务主体不能为空"; } - Long tenantNo = Long.parseLong(request.getParameter("tenantNo")); - Long accountNo = Long.parseLong(request.getParameter("accountNo")); +// Long tenantNo = Long.parseLong(request.getParameter("tenantNo")); +// Long accountNo = Long.parseLong(request.getParameter("accountNo")); PictureSourceParameter pictureSourceParameter = new PictureSourceParameter(); - DateTime dateTime = DateUtil.parse(beginStr+" 00:00:00","yyyy-MM-dd HH:mm:ss"); + DateTime dateTime = DateUtil.parse(beginStr + " 00:00:00", "yyyy-MM-dd HH:mm:ss"); // DateTime dateTime = DateUtil.parse("2024-03-31 07:00:000","yyyy-MM-dd HH:mm:ss"); Instant binstant = dateTime.toInstant(); - DateTime dateTime1 = DateUtil.parse(endStr+" 00:00:00","yyyy-MM-dd HH:mm:ss"); + DateTime dateTime1 = DateUtil.parse(endStr + " 00:00:00", "yyyy-MM-dd HH:mm:ss"); // DateTime dateTime1 = DateUtil.parse("2024-03-31 09:00:00","yyyy-MM-dd HH:mm:ss"); Instant einstant = dateTime1.toInstant(); - pictureSourceParameter.setStartTime(Date.from(binstant)); - pictureSourceParameter.setEndTime(Date.from(einstant)); - pictureSourceParameter.setPageNo(Integer.parseInt(pageNo)); - pictureSourceParameter.setPageSize(Integer.parseInt(pageSize)); - pictureSourceParameter.setTenantNo(tenantNo); - pictureSourceParameter.setAccountNo(accountNo); - try { - ApiPage apiPage = prevailCloudApi.pullPictureSource(pictureSourceParameter); - if(apiPage==null){ - return "获取数据为空!"; + + List departments = departmentMybatisDao.selectList(new QueryWrapper<>()); + if (CollectionUtils.isEmpty(departments)) { + return "业务主体数据为空"; + } + + Map departmentMap = Maps.newHashMapWithExpectedSize(departments.size()); + for (Department department : departments) { + if (department.getDlevel() == 0) { + continue; } - List listResult= apiPage.getRecords(); - int count = apiPage.getTotal(); - int localCount = listResult.size(); - int size = 0; - for (PictureSourceResult pictureSourceResult : listResult) { - //1.如果不存在图片默认一个默认图片,方便走测试。 - if(pictureSourceResult.getLivePhoto()==null){ - List> livePhoto = new ArrayList<>(); - Map map = new HashMap<>(); - map.put("imgUrl","http://47.93.59.251/api/image/default.png"); - map.put("imgName","default.png"); - livePhoto.add(map); - pictureSourceResult.setLivePhoto(livePhoto); + + departmentMap.put(department.getId(), department); + } + + if (departmentMap.isEmpty()) { + return "业务主体数据为空"; + } + + List totalList = Lists.newArrayList(); + for (Department department : departments) { + if (!departmentMap.containsKey(department.getParentid())) { + continue; + } + + Long tenantNo = Long.valueOf(departmentMap.get(department.getParentid()).getDeptno()); + Long accountNo = Long.valueOf(department.getDeptno()); + + List resultList = getPictureSourceResultApiPage(dateTime, dateTime1, Integer.parseInt(pageNo), Integer.parseInt(pageSize), tenantNo, accountNo); + if (CollectionUtils.isEmpty(resultList)) { + continue; + } + + totalList.addAll(resultList); + } + + for (PictureSourceResult pictureSourceResult : totalList) { + //1.如果不存在图片默认一个默认图片,方便走测试。 + if (pictureSourceResult.getLivePhoto() == null) { + List> livePhoto = new ArrayList<>(); + Map map = new HashMap<>(); + map.put("imgUrl", "http://47.93.59.251/api/image/default.png"); + map.put("imgName", "default.png"); + livePhoto.add(map); + pictureSourceResult.setLivePhoto(livePhoto); // continue; - } - size++; - //将可以处理数据放入处理队列中 - TaskQueue.pictureDisposePushData(pictureSourceResult); } - return "当前区间内图片总数:"+count+"条,本次获取:"+localCount+"条,可处理数据:"+size+"条"; - } catch (Exception e) { - e.printStackTrace(); + //将可以处理数据放入处理队列中 + TaskQueue.pictureDisposePushData(pictureSourceResult); } - return "处理失败"; + return "处理成功"; } @GetMapping("pullAccountInfo") - public String pullAccountInfo(HttpServletRequest request){ + public String pullAccountInfo(HttpServletRequest request) { try { - prevailCloudApi.pullAccountInfo(1714548920583360512L); - return "ok"; + prevailCloudApi.pullAccountInfo(1714548920583360512L); + return "ok"; } catch (Exception e) { e.printStackTrace(); } @@ -118,7 +145,7 @@ public class ApiTestController { @GetMapping("psTest01") - public String psTset01(HttpServletRequest request){ + public String psTset01(HttpServletRequest request) { String beginStr = request.getParameter("beginStr"); String endStr = request.getParameter("endStr"); String pageSize = request.getParameter("pageSize"); @@ -126,8 +153,6 @@ public class ApiTestController { PictureSourceParameter pictureSourceParameter = new PictureSourceParameter(); pictureSourceParameter.setPageSize(Integer.parseInt(pageSize)); - pictureSourceParameter.setTenantNo(1714548920583360512L); - pictureSourceParameter.setAccountNo(1714559323824623616L); List notAddedToQueueTaskIds = new ArrayList<>(); @@ -135,6 +160,24 @@ public class ApiTestController { @Override public void run() { try { + List departments = departmentMybatisDao.selectList(new QueryWrapper<>()); + if (CollectionUtils.isEmpty(departments)) { + return; + } + + Map departmentMap = Maps.newHashMapWithExpectedSize(departments.size()); + for (Department department : departments) { + if (department.getDlevel() == 0) { + continue; + } + + departmentMap.put(department.getId(), department); + } + + if (departmentMap.isEmpty()) { + return; + } + int totalCount = 0; int totalLocalCount = 0; int totalSize = 0; @@ -149,17 +192,29 @@ public class ApiTestController { // 设置当天的开始和结束时间 Instant startInstant = startDate.toInstant(); Instant endInstant = startDate.offsetNew(DateField.DAY_OF_YEAR, 1).toInstant(); - pictureSourceParameter.setStartTime(Date.from(startInstant)); - pictureSourceParameter.setEndTime(Date.from(endInstant)); - pictureSourceParameter.setPageNo(currentPage); - - ApiPage apiPage = prevailCloudApi.pullPictureSource(pictureSourceParameter); - List listResult = apiPage.getRecords(); - int count = apiPage.getTotal(); - int localCount = listResult.size(); + + List totalList = Lists.newArrayList(); + for (Department department : departments) { + if (!departmentMap.containsKey(department.getParentid())) { + continue; + } + + Long tenantNo = Long.valueOf(departmentMap.get(department.getParentid()).getDeptno()); + Long accountNo = Long.valueOf(department.getDeptno()); + + List resultList = getPictureSourceResultApiPage(pictureSourceParameter, startInstant, endInstant, currentPage, tenantNo, accountNo); + if (CollectionUtils.isEmpty(resultList)) { + continue; + } + + totalList.addAll(resultList); + } + + + int localCount = totalList.size(); int size = 0; - for (PictureSourceResult pictureSourceResult : listResult) { + for (PictureSourceResult pictureSourceResult : totalList) { int retryCount = 0; boolean addedToQueue = false; if (pictureSourceResult.getLivePhoto() != null && !pictureSourceResult.getLivePhoto().isEmpty()) { @@ -173,7 +228,7 @@ public class ApiTestController { } } if (!addedToQueue) { - log.error("无法将数据添加到队列,开始时间:{},任务ID:{}",startDate.toString("yyyy-MM-dd HH:mm:ss"),pictureSourceResult.getTaskId().toString()); + log.error("无法将数据添加到队列,开始时间:{},任务ID:{}", startDate.toString("yyyy-MM-dd HH:mm:ss"), pictureSourceResult.getTaskId().toString()); notAddedToQueueTaskIds.add(pictureSourceResult.getTaskId().toString()); } } @@ -183,12 +238,9 @@ public class ApiTestController { totalSize += size; if (!isCountAdded) { - totalCount += count; isCountAdded = true; // 标记当天的统计信息已经被累加过了 } - // 输出当前日期范围内的统计信息 - log.error("{}图片总数:{}条,本次获取:{}条,可处理数据:{}条",startDate.toString("yyyy-MM-dd"),count,localCount,size); // 准备处理下一页的数据 currentPage++; // 检查是否有下一页 @@ -199,8 +251,8 @@ public class ApiTestController { // 准备处理下一天的数据 startDate = startDate.offsetNew(DateField.DAY_OF_YEAR, 1); } - log.error("未加入队列的任务ID列表:{}",notAddedToQueueTaskIds); - log.error("当前区间内图片总数:{}条,本次获取:{}条,可处理数据:{}条",totalCount,totalLocalCount,totalSize); + log.error("未加入队列的任务ID列表:{}", notAddedToQueueTaskIds); + log.error("当前区间内图片总数:{}条,本次获取:{}条,可处理数据:{}条", totalCount, totalLocalCount, totalSize); } catch (Exception e) { e.printStackTrace(); } @@ -226,5 +278,45 @@ public class ApiTestController { } return message; } + + private List getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter, Instant startInstant, Instant endInstant, Integer currentPage, Long tenantNo, Long accountNo) { + + pictureSourceParameter.setStartTime(Date.from(startInstant)); + pictureSourceParameter.setEndTime(Date.from(endInstant)); + pictureSourceParameter.setPageNo(currentPage); + pictureSourceParameter.setTenantNo(tenantNo); + pictureSourceParameter.setAccountNo(accountNo); + + ApiPage apiPage = null; + try { + apiPage = prevailCloudApi.pullPictureSource(pictureSourceParameter); + } catch (Exception e) { + e.printStackTrace(); + } + + return apiPage == null ? Lists.newArrayList() : apiPage.getRecords(); + } + + private List getPictureSourceResultApiPage(DateTime dateTime, DateTime dateTime1, Integer pageNo, Integer pageSize, Long tenantNo, Long accountNo) { + //创建查询参数对象 + PictureSourceParameter pictureSourceParameter = new PictureSourceParameter(); + Instant binstant = dateTime.toInstant(); + Instant einstant = dateTime1.toInstant(); + pictureSourceParameter.setStartTime(Date.from(binstant)); + pictureSourceParameter.setEndTime(Date.from(einstant)); + pictureSourceParameter.setPageNo(pageNo); + pictureSourceParameter.setPageSize(pageSize); + pictureSourceParameter.setTenantNo(tenantNo); + pictureSourceParameter.setAccountNo(accountNo); + + ApiPage apiPage = null; + try { + apiPage = prevailCloudApi.pullPictureSource(pictureSourceParameter); + } catch (Exception e) { + e.printStackTrace(); + } + + return apiPage == null ? Lists.newArrayList() : apiPage.getRecords(); + } } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PullPictureDataJob.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PullPictureDataJob.java index 591f4c3f..c87043d9 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PullPictureDataJob.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PullPictureDataJob.java @@ -1,21 +1,28 @@ package cn.jyjz.xiaoyao.ocr.timerJob; -import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.jyjz.xiaoyao.admin.dataDao.DepartmentMybatisDao; +import cn.jyjz.xiaoyao.admin.dataobject.Department; +import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceParameter; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult; import cn.jyjz.xiaoyao.ocr.api.utils.ApiPage; import cn.jyjz.xiaoyao.ocr.thread.TaskQueue; -import java.time.Instant; -import java.util.Date; -import java.util.List; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.google.common.collect.Maps; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.compress.utils.Lists; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; import java.text.SimpleDateFormat; +import java.time.Instant; import java.util.Calendar; import java.util.Date; +import java.util.List; +import java.util.Map; @Component public class PullPictureDataJob { @@ -23,20 +30,21 @@ public class PullPictureDataJob { @Autowired private PrevailCloudApi prevailCloudApi; -// @Scheduled(cron = "0 5 0 * * ?") // 每天晚上0点五分执行一次 + @Resource + private DepartmentMybatisDao departmentMybatisDao; + + // @Scheduled(cron = "0 5 0 * * ?") // 每天晚上0点五分执行一次 public void pullPicture() { //配置查询参数信息 Integer pageNo = 1; Integer pageSize = 20; - Long tenantNo = 1714548920583360512L; - Long accountNo = 1714559587755397120L; // 设置前一天日期,0点到23点59分59秒 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -1); Date yesterday = calendar.getTime(); String startDateStr = dateFormat.format(yesterday).split(" ")[0] + " 00:00:00"; // 开始时间为昨天的0点 - String endDateStr = dateFormat.format(yesterday).split(" ")[0] + " 23:59:59"; // 结束时间为昨天的23点59分59秒 + String endDateStr = dateFormat.format(yesterday).split(" ")[0] + " 23:59:59"; // 结束时间为昨天的23点59分59秒 DateTime dateTime = DateUtil.parse(startDateStr, "yyyy-MM-dd HH:mm:ss"); DateTime dateTime1 = DateUtil.parse(endDateStr, "yyyy-MM-dd HH:mm:ss"); @@ -44,6 +52,50 @@ public class PullPictureDataJob { // DateTime dateTime = DateUtil.parse("2024-03-31 07:00:000", "yyyy-MM-dd HH:mm:ss"); // DateTime dateTime1 = DateUtil.parse("2024-03-31 09:00:00", "yyyy-MM-dd HH:mm:ss"); + List departments = departmentMybatisDao.selectList(new QueryWrapper<>()); + if (CollectionUtils.isEmpty(departments)) { + return; + } + + Map departmentMap = Maps.newHashMapWithExpectedSize(departments.size()); + for (Department department : departments) { + if (department.getDlevel() == 0) { + continue; + } + + departmentMap.put(department.getId(), department); + } + + List totalList = Lists.newArrayList(); + for (Department department : departments) { + if (!departmentMap.containsKey(department.getParentid())) { + continue; + } + + Long tenantNo = Long.valueOf(departmentMap.get(department.getParentid()).getDeptno()); + Long accountNo = Long.valueOf(department.getDeptno()); + + List resultList = getPictureSourceResultApiPage(dateTime, dateTime1, pageNo, pageSize, tenantNo, accountNo); + if (CollectionUtils.isEmpty(resultList)) { + continue; + } + + totalList.addAll(resultList); + } + + int count = totalList.size(); + int size = 0; + for (PictureSourceResult pictureSourceResult : totalList) { + if (pictureSourceResult.getLivePhoto() != null) { + size++; + // 将可以处理数据放入处理队列中 + TaskQueue.pictureDisposePushData(pictureSourceResult); + } + } + System.out.println("当前区间内图片总数:" + count + "条,可处理数据:" + size + "条"); + } + + private List getPictureSourceResultApiPage(DateTime dateTime, DateTime dateTime1, Integer pageNo, Integer pageSize, Long tenantNo, Long accountNo) { //创建查询参数对象 PictureSourceParameter pictureSourceParameter = new PictureSourceParameter(); Instant binstant = dateTime.toInstant(); @@ -55,21 +107,13 @@ public class PullPictureDataJob { pictureSourceParameter.setTenantNo(tenantNo); pictureSourceParameter.setAccountNo(accountNo); + ApiPage apiPage = null; try { - ApiPage apiPage = prevailCloudApi.pullPictureSource(pictureSourceParameter); - List listResult = apiPage.getRecords(); - int count = apiPage.getTotal(); - int size = 0; - for (PictureSourceResult pictureSourceResult : listResult) { - if (pictureSourceResult.getLivePhoto() != null) { - size++; - // 将可以处理数据放入处理队列中 - TaskQueue.pictureDisposePushData(pictureSourceResult); - } - } - System.out.println("当前区间内图片总数:" + count + "条,可处理数据:" + size + "条"); + apiPage = prevailCloudApi.pullPictureSource(pictureSourceParameter); } catch (Exception e) { e.printStackTrace(); } + + return apiPage == null ? Lists.newArrayList() : apiPage.getRecords(); } } -- 2.39.3 From 7bdad34ac88dd429e1e377a4ffe95fcdb34a3694 Mon Sep 17 00:00:00 2001 From: B1ackJack <9723189+b1ackjack@user.noreply.gitee.com> Date: Thu, 18 Apr 2024 09:19:47 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=8B=89=E5=8F=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocr/timerJob/PictureSourceTimerJob.java | 95 ++++++++++++++++++- 1 file changed, 92 insertions(+), 3 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java index 7aa334e2..7a3f8d1a 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java @@ -1,14 +1,31 @@ package cn.jyjz.xiaoyao.ocr.timerJob; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.jyjz.xiaoyao.admin.dataDao.DepartmentMybatisDao; +import cn.jyjz.xiaoyao.admin.dataobject.Department; import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceParameter; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult; import cn.jyjz.xiaoyao.ocr.api.utils.ApiPage; +import cn.jyjz.xiaoyao.ocr.thread.TaskQueue; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.google.common.collect.Maps; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.compress.utils.Lists; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.time.Instant; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; + /** * 用于轮询获取图片数据源 定时任务 * @@ -24,11 +41,17 @@ public class PictureSourceTimerJob { @Autowired PrevailCloudApi prevailCloudApi; + @Resource + private DepartmentMybatisDao departmentMybatisDao; + + private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + /** * 请求图片数据job (定时执行 每日拉取上一日全部数据) + * * @return */ - private String pictureSourceRequestJob(){ + private void pictureSourceRequestJob() { //组装拉取参数 PictureSourceParameter pictureSourceParameter = new PictureSourceParameter(); @@ -39,9 +62,75 @@ public class PictureSourceTimerJob { pictureSourceParameter.setPageSize(200); // pictureSourceParameter.setAccountNo(); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DAY_OF_MONTH, -1); + Date yesterday = calendar.getTime(); + String startDateStr = dateFormat.format(yesterday).split(" ")[0] + " 00:00:00"; // 开始时间为昨天的0点 + String endDateStr = dateFormat.format(yesterday).split(" ")[0] + " 23:59:59"; // 结束时间为昨天的23点59分59秒 + DateTime dateTime = DateUtil.parse(startDateStr, "yyyy-MM-dd HH:mm:ss"); + DateTime dateTime1 = DateUtil.parse(endDateStr, "yyyy-MM-dd HH:mm:ss"); + //1.拉取数据 -// ApiPage pictureSourceResultApiPage = prevailCloudApi.pullPictureSource(pictureSourceParameter); + List departments = departmentMybatisDao.selectList(new QueryWrapper<>()); + if (CollectionUtils.isEmpty(departments)) { + return; + } + + Map departmentMap = Maps.newHashMapWithExpectedSize(departments.size()); + for (Department department : departments) { + if (department.getDlevel() == 0) { + continue; + } + + departmentMap.put(department.getId(), department); + } + + List totalList = Lists.newArrayList(); + for (Department department : departments) { + if (!departmentMap.containsKey(department.getParentid())) { + continue; + } + + Long tenantNo = Long.valueOf(departmentMap.get(department.getParentid()).getDeptno()); + Long accountNo = Long.valueOf(department.getDeptno()); + + List resultList = getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter, dateTime, dateTime1, tenantNo, accountNo); + if (CollectionUtils.isEmpty(resultList)) { + continue; + } + + totalList.addAll(resultList); + } + + int count = totalList.size(); + int size = 0; + for (PictureSourceResult pictureSourceResult : totalList) { + if (pictureSourceResult.getLivePhoto() != null) { + size++; + // 将可以处理数据放入处理队列中 + TaskQueue.pictureDisposePushData(pictureSourceResult); + } + } + + System.out.println("当前区间内图片总数:" + count + "条,可处理数据:" + size + "条"); + } + + private List getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter, DateTime dateTime, DateTime dateTime1, Long tenantNo, Long accountNo) { + //创建查询参数对象 + Instant binstant = dateTime.toInstant(); + Instant einstant = dateTime1.toInstant(); + pictureSourceParameter.setStartTime(Date.from(binstant)); + pictureSourceParameter.setEndTime(Date.from(einstant)); + pictureSourceParameter.setTenantNo(tenantNo); + pictureSourceParameter.setAccountNo(accountNo); + + ApiPage apiPage = null; + try { + apiPage = prevailCloudApi.pullPictureSource(pictureSourceParameter); + } catch (Exception e) { + e.printStackTrace(); + } - return ""; + return apiPage == null ? Lists.newArrayList() : apiPage.getRecords(); } } -- 2.39.3 From a8579bdaaeeed8032d49a8ed4195d48530c08124 Mon Sep 17 00:00:00 2001 From: B1ackJack <9723189+b1ackjack@user.noreply.gitee.com> Date: Thu, 18 Apr 2024 09:59:09 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B9=A6=E5=86=99?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java index 7a3f8d1a..d758d450 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/timerJob/PictureSourceTimerJob.java @@ -94,7 +94,7 @@ public class PictureSourceTimerJob { Long tenantNo = Long.valueOf(departmentMap.get(department.getParentid()).getDeptno()); Long accountNo = Long.valueOf(department.getDeptno()); - List resultList = getPictureSourceResultApiPage(PictureSourceParameter pictureSourceParameter, dateTime, dateTime1, tenantNo, accountNo); + List resultList = getPictureSourceResultApiPage(pictureSourceParameter, dateTime, dateTime1, tenantNo, accountNo); if (CollectionUtils.isEmpty(resultList)) { continue; } -- 2.39.3