package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.Mat; import com.zy.asrs.entity.Tag; import com.zy.asrs.entity.Task; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.*; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.WorkMastHandler; import com.zy.common.utils.NodeUtils; 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 javax.annotation.Resource; import java.util.Date; import java.util.List; /** * Created by vincent on 2020/7/7 */ @Component public class WorkMastScheduler { private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class); @Autowired private WrkMastService wrkMastService; @Autowired private WorkMastHandler workMastHandler; @Autowired private TaskService taskService; @Resource private MesService mesService; @Autowired private MatService matService; @Autowired private TagService tagService; // TODO:reporterTask() @Scheduled(cron = "0/3 * * * * ? ") private void execute(){ List wrkMasts = wrkMastService.selectToBeCompleteData(); if (wrkMasts.isEmpty()) { return; } for (WrkMast wrkMast : wrkMasts) { ReturnT returnT = workMastHandler.start(wrkMast); if (!returnT.isSuccess()) { wrkMast.setUpdMk("X"); wrkMast.setErrorMemo(returnT.getMsg()); wrkMast.setErrorTime(new Date()); if (!wrkMastService.updateById(wrkMast)) { log.error("工作档[workNo={}]标记待处理失败", wrkMast.getWrkNo()); } } } } @Scheduled(cron = "0/3 * * * * ? ") private void executeTask(){ List wrkMasts = taskService.selectToBeCompleteData(); if (wrkMasts.isEmpty()) { return; } for (Task wrkMast : wrkMasts) { workMastHandler.AgvStart(wrkMast); } } @Scheduled(cron = "0/3 * * * * ? ") private void autoSyncMatGroup(){ Page page = new Page<>(1, 20); //建立成品和备件tag后把14,15替换为实际id page = matService.selectPage(page, new EntityWrapper().notIn("tag_id", 14,15)); List matList = page.getRecords(); for (Mat mat : matList) { String groupName = null; if (mat.getMatnr().startsWith("T_") || mat.getMatnr().startsWith("X_")) { groupName = "成品"; }else { groupName = "配件"; } Tag secTag = tagService.selectByName(groupName, 3); if (Cools.isEmpty(secTag)) { continue; } mat.setTagId(secTag.getId()); matService.updateById(mat); } } }