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<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);
|
|
}
|
|
}
|
|
|
}
|