package com.zy.asrs.task; import com.alibaba.fastjson.JSON; import com.zy.asrs.entity.BasArmRules; import com.zy.asrs.entity.param.ArmPrecomputeParam; import com.zy.asrs.service.BasArmRulesService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.ArmRulesHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * Created by vincent on 2020/7/7 */ @Component public class ArmRulesScheduler { private static final Logger log = LoggerFactory.getLogger(ArmRulesScheduler.class); @Autowired private BasArmRulesService basArmRulesService; @Autowired private ArmRulesHandler armRulesHandler; @Scheduled(cron = "0/3 * * * * ? ") private void execute(){ List basArmRules = basArmRulesService.AllStatusSatisfyBasArmRules(0); if (basArmRules.isEmpty()) { return; } for (BasArmRules basArmRule: basArmRules) { try{ if (basArmRule.getMaterialHeight()>0 && basArmRule.getMaterialLength()>0 && basArmRule.getMaterialWeight()>0 && basArmRule.getMaterialWidth()>0){ ArmPrecomputeParam armPrecomputeParam = new ArmPrecomputeParam(basArmRule); ReturnT returnT = armRulesHandler.start(armPrecomputeParam); if (!returnT.isSuccess()) { log.error("获取码垛数量失败===>"+JSON.toJSON(basArmRule)); } } else { basArmRule.setStatus(2); basArmRulesService.updateById(basArmRule); } } catch (Exception e){ log.error("获取码垛数量异常===>"+e.getMessage()); } } } }