diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectSetController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectSetController.java index 1c1b4fbba..311f8d265 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectSetController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectSetController.java @@ -35,8 +35,8 @@ public class IoCollectSetController extends BaseController { @GetMapping("/udiwms/ioSplit/collect/getSet") public BaseResponse getSet() { - List collectSets = collectSetService.list(); - return ResultVOUtils.success(collectSets.get(0)); + IoCollectSet collectSet = collectSetService.getSet(); + return ResultVOUtils.success(collectSet); } diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java b/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java index 3a93177b5..93ea1bfbe 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectSet.java @@ -63,5 +63,13 @@ public class IoCollectSet implements Serializable { @ApiModelProperty(value = "是否自动上传已完成单据") private Boolean autoUploadOrder; + + /** + * 起始上传时间 + */ + @TableField(value = "startUploadTime") + @ApiModelProperty(value = "起始上传时间") + private Date startUploadTime; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index dc2562c95..b8dfac443 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -131,6 +131,8 @@ public class IoCollectOrderService extends ServiceImpl().eq(IoCollectOrder::getBillNo, billNo).last("limit 1")); @@ -471,6 +473,9 @@ public class IoCollectOrderService extends ServiceImpl allotCollects = new ArrayList<>(); List allotCollectBizs = new ArrayList<>(); for (IoCollectOrder collectOrder : ioCollectOrderList) { @@ -542,12 +547,13 @@ public class IoCollectOrderService extends ServiceImpl { + public IoCollectSet getSet() { + List collectSets = this.list(); + return collectSets.get(0); + } } diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java index 66910e65d..5b49c82ef 100644 --- a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderDownloadTask.java @@ -6,6 +6,7 @@ import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.StrUtil; import com.glxp.api.dao.basic.SysWorkplaceDocumentDao; import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.collect.IoCollectSet; import com.glxp.api.entity.inv.InvProductRationEntity; import com.glxp.api.entity.system.ScheduledEntity; import com.glxp.api.entity.system.SystemParamConfigEntity; @@ -15,6 +16,7 @@ import com.glxp.api.req.system.ScheduledRequest; import com.glxp.api.req.system.SysParamConfigSaveRequest; import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; import com.glxp.api.service.collect.IoCollectOriginService; +import com.glxp.api.service.collect.IoCollectSetService; import com.glxp.api.service.inv.InvProductRationService; import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.util.MsDateUtil; @@ -28,6 +30,7 @@ import org.springframework.scheduling.support.CronTrigger; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -46,8 +49,7 @@ public class AsyncIoCollectOrderDownloadTask implements SchedulingConfigurer { @Resource IoCollectOriginService collectOriginService; @Resource - SystemParamConfigService systemParamConfigService; - + IoCollectSetService collectSetService; @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { scheduledTaskRegistrar.addTriggerTask(() -> process(), @@ -66,10 +68,14 @@ public class AsyncIoCollectOrderDownloadTask implements SchedulingConfigurer { private void process() { ThreadUtil.execAsync(() -> { //获取下载的起始时间 - SystemParamConfigEntity startDownloadTime = systemParamConfigService.selectByParamKey("startDownloadTime"); - if (startDownloadTime != null && StrUtil.isNotBlank(startDownloadTime.getParamValue() )){ + IoCollectSet ioCollectSet = collectSetService.getSet(); + Date startDownloadTime = ioCollectSet.getStartDownloadTime(); + String startDownloadTimes = MsDateUtil.formatDateTime(startDownloadTime); + Boolean autoDownload = ioCollectSet.getAutoDownload(); + + if (StrUtil.isNotBlank(startDownloadTimes) && autoDownload){ //获取当前时间 - String paramValue = startDownloadTime.getParamValue(); + String paramValue = startDownloadTimes; String nowTime = MsDateUtil.getDateTime(); CollectOrderRequest collectOrderRequest = new CollectOrderRequest(); @@ -85,11 +91,12 @@ public class AsyncIoCollectOrderDownloadTask implements SchedulingConfigurer { collectOriginService.downloadOrderV2(collectOrderRequest); } } - startDownloadTime.setParamValue(nowTime); - SysParamConfigSaveRequest sysParamConfigSaveRequest = new SysParamConfigSaveRequest(); - BeanUtil.copyProperties(startDownloadTime,sysParamConfigSaveRequest); - systemParamConfigService.updateById(sysParamConfigSaveRequest); + + ioCollectSet.setStartDownloadTime(MsDateUtil.parseDate(nowTime)); + collectSetService.updateById(ioCollectSet); } + + }); } diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java new file mode 100644 index 000000000..a54a5c6d9 --- /dev/null +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderUploadTask.java @@ -0,0 +1,95 @@ +package com.glxp.api.task; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.thread.ThreadUtil; +import cn.hutool.core.util.StrUtil; +import com.glxp.api.dao.basic.SysWorkplaceDocumentDao; +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.collect.IoCollectSet; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.req.basic.WorkBindBusTypeRequest; +import com.glxp.api.req.collect.CollectOrderRequest; +import com.glxp.api.req.system.ScheduledRequest; +import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; +import com.glxp.api.res.collect.IoCollectCodeResponse; +import com.glxp.api.res.collect.IoCollectOrderResponse; +import com.glxp.api.service.collect.*; +import com.glxp.api.util.MsDateUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + + +@Component +@EnableScheduling +public class AsyncIoCollectOrderUploadTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(AsyncIoCollectOrderUploadTask.class); + + @Resource + private ScheduledDao scheduledDao; + @Resource + IoCollectSetService collectSetService; + @Resource + IoCollectCodeService collectCodeService; + @Resource + IoCollectOrderBackupService ioCollectOrderBackupService; + + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("ioCollectOrderUploadTask"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 */10 * * * ?"; + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + ThreadUtil.execAsync(() -> { + //获取下载的起始时间 + IoCollectSet ioCollectSet = collectSetService.getSet(); + Date startUploadTime = ioCollectSet.getStartUploadTime(); + String startUploadTimes = MsDateUtil.formatDateTime(startUploadTime); + Boolean autoUploadOrder = ioCollectSet.getAutoUploadOrder(); + + if (StrUtil.isNotBlank(startUploadTimes) && autoUploadOrder){ + //获取当前时间 + String paramValue = startUploadTimes; + String nowTime = MsDateUtil.getDateTime(); + CollectOrderRequest collectOrderRequest = new CollectOrderRequest(); + + collectOrderRequest.setStartTime(paramValue); + collectOrderRequest.setEndTime(nowTime); + collectOrderRequest.setUploadStatus(1); //未上传 + + //调用上传单据 + List orderResponses = ioCollectOrderBackupService.filterList(collectOrderRequest); + if (CollUtil.isNotEmpty(orderResponses)){ + orderResponses.forEach( item -> { + ioCollectOrderBackupService.orderUpload(item.getBillNo()); + }); + } + + ioCollectSet.setStartUploadTime(MsDateUtil.parseDate(nowTime)); + collectSetService.updateById(ioCollectSet); + } + + }); + } + +} diff --git a/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml b/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml index 499bdb978..98f421475 100644 --- a/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml @@ -117,6 +117,16 @@ AND icob.fromCorpName LIKE concat('%', #{fromCorpName}, '%') + + = DATE_FORMAT(#{startTime}, '%Y-%m-%d %H:%i:%S') + ]]> + + + + GROUP BY icob.billNo