| | |
| | | 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 |
| | | @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(){ |
| | | workMastHandler.start(); |
| | | List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData(); |
| | | if (wrkMasts.isEmpty()) { |
| | | return; |
| | | } |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | ReturnT<String> 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<Task> wrkMasts = taskService.selectToBeCompleteData(); |
| | | if (wrkMasts.isEmpty()) { |
| | | return; |
| | | } |
| | | for (Task wrkMast : wrkMasts) { |
| | | workMastHandler.AgvStart(wrkMast); |
| | | } |
| | | } |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | private void autoSyncMatGroup(){ |
| | | Page<Mat> page = new Page<>(1, 20); |
| | | //建立成品和备件tag后把14,15替换为实际id |
| | | page = matService.selectPage(page, new EntityWrapper<Mat>().notIn("tag_id", 14,15)); |
| | | List<Mat> 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); |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |