package com.zy.asrs.task;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.core.common.Cools;
|
import com.zy.asrs.entity.*;
|
import com.zy.asrs.service.*;
|
import com.zy.asrs.task.core.ReturnT;
|
import com.zy.asrs.task.handler.WrkMastStaInItHandler;
|
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.List;
|
|
/**
|
* Created by Monkey D. Luffy on 2023.07.25
|
* 徐工汉云..............以下.............上饶江铜.............自动补空板
|
*/
|
@Component
|
public class WrkMastStaInIt3Scheduler {
|
|
private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
|
|
@Autowired
|
private WrkMastStaInItHandler wrkMastStaInItHandler;
|
@Autowired
|
private BasDevpService basDevpService;
|
@Autowired
|
private WrkMastService wrkMastService;
|
@Autowired
|
private RgvOneSignService rgvOneSignService;
|
@Autowired
|
private WrkMastStaService wrkMastStaService;
|
@Autowired
|
private WrkDetlService wrkDetlService;
|
@Autowired
|
private LocDetlService locDetlService;
|
|
|
public static final List<Integer> STA_WORK_CU = new ArrayList<Integer>() {{
|
add(101);add(102);add(104);add(105);add(107);add(108);
|
}};
|
|
public static final List<Integer> STA_WORK_CU_CAR = new ArrayList<Integer>() {{
|
add(118);
|
}};
|
|
public static final List<Integer> STA_WORK_CU_CAR_TWO = new ArrayList<Integer>() {{
|
|
}};
|
public static final List<Integer> STA_WORK_CU_CAR_THREE = new ArrayList<Integer>() {{
|
add(118);
|
}};
|
public static final List<Integer> STA_WORK_CU_CAR_FOUR = new ArrayList<Integer>() {{
|
add(118);
|
}};
|
|
public static final List<Integer> STA_WORK_RU = new ArrayList<Integer>() {{
|
add(118);add(122);
|
}};
|
|
|
// @Scheduled(cron = "0/3 * * * * ? ")
|
private void execute(){
|
for(Integer staNo : STA_WORK_CU){
|
try{
|
BasDevp basDevp = basDevpService.selectById(staNo);
|
if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){
|
WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
|
if(Cools.isEmpty(wrkMast)){
|
continue;
|
}
|
if (wrkMast.getIoType()<100 || wrkMast.getIoType()==110){
|
if (!wrkMast.getStaNo().equals(122)){
|
continue;
|
}
|
}
|
if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){
|
continue;
|
}
|
if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119 || wrkMast.getStaNo()==120 || wrkMast.getStaNo()==121){
|
continue;
|
}
|
boolean wrkTypeSign = fullKM(wrkMast);
|
if (!Cools.isEmpty(wrkMast)){
|
if (wrkTypeSign) {
|
ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3:取放
|
if (result.getCode()==200){
|
continue;
|
}else {
|
System.out.println(staNo+"失败!");
|
}
|
} else {
|
ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,23);//5:满取
|
if (result.getCode()==200){
|
continue;
|
}else {
|
System.out.println(staNo+"失败!");
|
}
|
}
|
}
|
}
|
}catch (Exception e){
|
log.error("自动补空板STA_WORK_CU处理失败,当前站点号:"+staNo+"异常信息"+e);
|
}
|
}
|
|
for(Integer staNo : STA_WORK_RU){
|
try{
|
BasDevp basDevp = basDevpService.selectById(staNo);
|
if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){
|
WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
|
if (Cools.isEmpty(wrkMast)){
|
continue;
|
}
|
|
if (wrkMast.getWrkSts()!=2 || wrkMast.getIoType()==10){
|
continue;
|
}
|
// boolean wrkTypeSign = fullKM(wrkMast);
|
|
if (!Cools.isEmpty(wrkMast)){
|
// if (wrkTypeSign){
|
ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);
|
if (result.getCode()==200) {
|
continue;
|
} else {
|
System.out.println(staNo+"失败!");
|
}
|
}
|
}
|
}catch (Exception e){
|
log.error("自动补空板STA_WORK_RU处理失败,当前站点号:"+staNo+"异常信息"+e);
|
}
|
}
|
}
|
|
// @Scheduled(cron = "0/3 * * * * ? ")
|
private void execute2(){
|
try{
|
for(Integer staNo : STA_WORK_CU){
|
try{
|
BasDevp basDevp = basDevpService.selectById(staNo);
|
if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){
|
WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
|
if(Cools.isEmpty(wrkMast)){
|
continue;
|
}
|
if (wrkMast.getIoType()!=101 && wrkMast.getIoType()!=103){
|
continue;
|
}
|
if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){
|
continue;
|
}
|
if (wrkMast.getStaNo()<118 || wrkMast.getStaNo()>121){
|
continue;
|
}
|
int count = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", wrkMast.getStaNo()).or().eq("sta_end", wrkMast.getStaNo()));
|
if (count!=0){
|
continue;
|
}
|
int countStart = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", staNo).or().eq("sta_end", staNo).or().eq("wrk_no", wrkMast.getWrkNo()));
|
if (countStart!=0){
|
continue;
|
}
|
BasDevp basDevpEnd = basDevpService.selectById(wrkMast.getStaNo());
|
if (!basDevpEnd.getAutoing().equals("Y") || basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0){
|
continue;
|
}
|
if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
|
RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign"));
|
if (rgvOneSign.getRgvOneSign()==1){
|
continue;
|
}
|
}
|
if (wrkMast.getIoType()!=101){
|
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
|
if (wrkDetls.size()!=0){
|
String origin = wrkDetls.get(0).getOrigin();
|
if (origin.equals("1")){
|
if (!STA_WORK_CU_CAR_FOUR.contains(wrkMast.getStaNo())){
|
continue;
|
}
|
}else {
|
if (!STA_WORK_CU_CAR_THREE.contains(wrkMast.getStaNo())){
|
continue;
|
}
|
}
|
}else {
|
log.error("未查询到工作明细");
|
continue;
|
}
|
}
|
//
|
boolean wrkTypeSign = fullKM(wrkMast);
|
if (!Cools.isEmpty(wrkMast)){
|
if (wrkTypeSign) {
|
ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3:取放
|
if (result.getCode()==200){
|
continue;
|
}else {
|
System.out.println(staNo+"失败!");
|
}
|
}
|
}
|
}
|
}catch (Exception e){
|
log.error("STA_WORK_CU处理失败,当前站点号:"+staNo+"异常信息"+e);
|
}
|
}
|
|
for(Integer staNo : STA_WORK_CU){
|
try{
|
BasDevp basDevp = basDevpService.selectById(staNo);
|
if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){
|
List<Integer> STA_WORK_CU_CAR_NOW = STA_WORK_CU_CAR;
|
WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
|
if(Cools.isEmpty(wrkMast)){
|
continue;
|
}
|
if (wrkMast.getIoType()!=101 && wrkMast.getIoType()!=103){
|
continue;
|
}
|
if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){
|
continue;
|
}
|
Integer wrkMastStaNo = wrkMast.getStaNo();
|
if (wrkMastStaNo<118 || wrkMastStaNo>121){
|
continue;
|
}
|
String origin = null;
|
boolean sign = false;
|
if (wrkMast.getIoType()!=101){
|
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
|
if (wrkDetls.size()!=0){
|
origin = wrkDetls.get(0).getOrigin();
|
if (origin.equals("1")){
|
if (!STA_WORK_CU_CAR_FOUR.contains(wrkMastStaNo)){
|
sign = true;
|
}
|
}else {
|
if (!STA_WORK_CU_CAR_THREE.contains(wrkMastStaNo)){
|
sign = true;
|
}
|
}
|
}else {
|
log.error("未查询到工作明细");
|
continue;
|
}
|
}
|
int count = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", wrkMastStaNo).or().eq("sta_end", wrkMastStaNo));
|
if (count!=0){
|
continue;
|
}
|
int countStart = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", staNo).or().eq("sta_end", staNo).or().eq("wrk_no", wrkMast.getWrkNo()));
|
if (countStart!=0){
|
continue;
|
}
|
RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign"));
|
if (rgvOneSign.getRgvOneSign()==1){
|
STA_WORK_CU_CAR_NOW = STA_WORK_CU_CAR_TWO;
|
}
|
|
BasDevp basDevpEnd = basDevpService.selectById(wrkMastStaNo);
|
if (sign || !basDevpEnd.getAutoing().equals("Y") || basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0) {
|
for (Integer staNoOther : STA_WORK_CU_CAR_NOW) {
|
if (staNoOther.equals(wrkMastStaNo)) continue;
|
|
if (sign){
|
if (origin.equals("1")){
|
if (!STA_WORK_CU_CAR_FOUR.contains(staNoOther)){
|
continue;
|
}
|
}else {
|
if (!STA_WORK_CU_CAR_THREE.contains(staNoOther)){
|
continue;
|
}
|
}
|
}
|
|
int countOther = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", staNoOther).or().eq("sta_end", staNoOther));
|
if (countOther!=0){
|
continue;
|
}
|
BasDevp basDevpOther = basDevpService.selectById(staNoOther);
|
if (!basDevpOther.getAutoing().equals("Y") || basDevpOther.getWrkNo()!=0 || basDevpOther.getLoading().equals("Y") || basDevpOther.getReportSign()!=0) {
|
continue;
|
}
|
wrkMast.setStaNo(staNoOther);
|
wrkMastService.updateById(wrkMast);
|
log.info("工作号"+wrkMast.getWrkNo()+"修改目标站为:"+staNoOther+";原目标站为:"+wrkMastStaNo);
|
return;
|
}
|
}
|
}
|
}catch (Exception e){
|
log.error("STA_WORK_CU处理失败,当前站点号:"+staNo+"异常信息"+e);
|
}
|
}
|
}catch (Exception e){
|
log.error("目标为拆垛位置的任务生成小车工作档案失败!!"+e);
|
}
|
}
|
|
public boolean fullKM(WrkMast wrkMast){
|
if (wrkMast.getIoType()!=10 && wrkMast.getIoType()!=110){
|
return true;
|
}
|
return false;
|
}
|
|
}
|