diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectCodeBackup.java b/src/main/java/com/glxp/api/entity/collect/IoCollectCodeBackup.java index f210ea5c8..61694e0c6 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectCodeBackup.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectCodeBackup.java @@ -172,6 +172,9 @@ public class IoCollectCodeBackup implements Serializable { @ApiModelProperty(value = "是否拆零码") private Boolean isSplitCode; + @TableField(value = "relCodeCount") + @ApiModelProperty(value = "关联关系数量") + private Integer relCodeCount; private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java b/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java index 7934aa53b..e722f2c64 100644 --- a/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java +++ b/src/main/java/com/glxp/api/res/collect/CollectOrderBizResponse.java @@ -186,6 +186,10 @@ public class CollectOrderBizResponse { private String queueCode; private Integer ledNum; + /** + * 关联关系数量 + */ + private Integer relCodeCount; diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderBizBackupService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderBizBackupService.java index c32e2d5fb..8b7903392 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderBizBackupService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderBizBackupService.java @@ -13,6 +13,7 @@ import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderUploadCountRequest; import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.CollectOrderUploadCountResponse; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -85,14 +86,24 @@ public class IoCollectOrderBizBackupService extends ServiceImpl0){ + buyerScanCount += collectOrderBizResponse.getRelCodeCount(); + }else { + buyerScanCount ++; + + } } } for (String buyType : buyTypeBuyer) { if (buyType.equals(collectOrderBizResponse.getBusType())) { // buyerCount += collectOrderBizResponse.getCount(); // 只有已上传的码才是正确的码 - buyerScanCount ++; + if(collectOrderBizResponse.getRelCodeCount() != null && collectOrderBizResponse.getRelCodeCount() >0){ + salesScanCount += collectOrderBizResponse.getRelCodeCount(); + }else { + salesScanCount ++; + + } } } if(collectOrderBizResponse.getFifoSplit() == 1 @@ -108,7 +119,12 @@ public class IoCollectOrderBizBackupService extends ServiceImpl0){ + codeCount += collectOrderBizResponse.getRelCodeCount(); + }else { + codeCount ++; + + } } diff --git a/src/main/java/com/glxp/api/task/CollectOrderEelCodeCountTask.java b/src/main/java/com/glxp/api/task/CollectOrderEelCodeCountTask.java new file mode 100644 index 000000000..aa6c9fbcd --- /dev/null +++ b/src/main/java/com/glxp/api/task/CollectOrderEelCodeCountTask.java @@ -0,0 +1,93 @@ +package com.glxp.api.task; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.dao.collect.RelCodeDetailMapper; +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.collect.IoCollectCode; +import com.glxp.api.entity.collect.IoCollectCodeBackup; +import com.glxp.api.entity.collect.RelCodeBatch; +import com.glxp.api.entity.collect.RelCodeDetail; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.req.system.ScheduledRequest; +import com.glxp.api.service.collect.IoCollectCodeBackService; +import com.glxp.api.service.collect.RelCodeBatchService; +import com.glxp.api.service.collect.RelCodeDetailService; +import com.glxp.api.util.CacheUtils; +import com.glxp.api.util.RedisUtil; +import com.glxp.api.util.redis.RedisDelayedQueue; +import lombok.extern.slf4j.Slf4j; +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 redis.clients.jedis.resps.Tuple; + +import javax.annotation.Resource; +import java.util.*; + +@Component +@EnableScheduling +@Slf4j +public class CollectOrderEelCodeCountTask implements SchedulingConfigurer { + + + + + @Resource + private ScheduledDao scheduledDao; + @Resource + private IoCollectCodeBackService ioCollectCodeBackService; + @Resource + private RelCodeDetailMapper relCodeDetailMapper; + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("collectOrderEelCodeCountTask"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + if (scheduledEntity == null) { + return null; + } + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + log.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + LambdaQueryWrapper lambdaQueryWrapper =new LambdaQueryWrapper(); + lambdaQueryWrapper.gt(IoCollectCodeBackup::getRelCodeCount,-2); + List list = ioCollectCodeBackService.list( + lambdaQueryWrapper + ); + if(list!=null ){ + for (IoCollectCodeBackup ioCollectCodeBackup : list) { + int count = relCodeDetailMapper.selectCount( + new LambdaQueryWrapper() + .eq(RelCodeDetail::getParentCode,ioCollectCodeBackup.getCode()) + ).intValue(); + IoCollectCodeBackup ioCollectCodeBackupNew = new IoCollectCodeBackup(); + if(count > 0){ + ioCollectCodeBackupNew.setRelCodeCount(count); + + }else { + ioCollectCodeBackupNew.setRelCodeCount(ioCollectCodeBackup.getRelCodeCount()-1); + } + ioCollectCodeBackService.update( + ioCollectCodeBackupNew,new LambdaQueryWrapper() + .eq(IoCollectCodeBackup::getId,ioCollectCodeBackup.getId()) + ); + } + } + } + +} diff --git a/src/main/resources/mybatis/mapper/collect/IoCollectOrderBizBackupMapper.xml b/src/main/resources/mybatis/mapper/collect/IoCollectOrderBizBackupMapper.xml index db323e012..c9664a3d5 100644 --- a/src/main/resources/mybatis/mapper/collect/IoCollectOrderBizBackupMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/IoCollectOrderBizBackupMapper.xml @@ -39,7 +39,7 @@