package com.zy.asrs.task.handler;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.core.common.Cools;
|
import com.zy.asrs.entity.WrkMast;
|
import com.zy.asrs.entity.mes.MesInApply;
|
import com.zy.asrs.entity.mes.MesOutApply;
|
import com.zy.asrs.entity.mes.TransTask;
|
import com.zy.asrs.service.MesService;
|
import com.zy.asrs.service.WrkMastService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
|
/**
|
* @author pang.jiabao
|
* @description 济南二机床加工相关定时任务
|
* @createDate 2025/12/10 14:25
|
*/
|
@Slf4j
|
@Service
|
public class JlerHandler {
|
|
@Resource
|
private MesService mesService;
|
|
@Value("${wms.wmsTransStartStation3}")
|
public String WMS_TRANS_START_STATION_3;
|
|
@Value("${wms.zpalletId}")
|
public String WMS_ZPALLET_ID;
|
|
@Resource
|
private WrkMastService wrkMastService;
|
|
@Transactional
|
public void createAgvOutTasks(WrkMast wrkMast) {
|
|
String memo = wrkMast.getMemo();
|
MesOutApply mesOutApply = null;
|
if(!Cools.isEmpty(memo)) {
|
mesOutApply = JSONObject.parseObject(memo, MesOutApply.class);
|
}
|
|
// 空托出库
|
if(wrkMast.getIoType() == 110) {
|
if(mesOutApply == null) { // 不是mes下发的空托出库
|
TransTask transTask = new TransTask();
|
// transTask.setTaskno(mesOutApply.getTaskno());
|
// transTask.setTaskname(mesOutApply.getTaskname());
|
// transTask.setOrderNo(mesOutApply.getOrderNo());
|
transTask.setTransType("01");
|
transTask.setCurStationId(WMS_TRANS_START_STATION_3);
|
// transTask.setNextProcess(mesOutApply.getProductLineId());
|
transTask.setNextStationId(wrkMast.getAgvSta());
|
transTask.setItemno(WMS_ZPALLET_ID); // 固定为空托的编码
|
transTask.setQty(1); // 空托只出1个
|
// transTask.setProductLineId(mesOutApply.getProductLineId());
|
transTask.setOperateType(1);
|
transTask.setAgvFactory(1);
|
JSONObject sendAgvTask = mesService.submitTask(transTask);
|
if ("1".equals(sendAgvTask.getString("Success"))) {
|
String taskno = sendAgvTask.getString("taskno");
|
if(Cools.isEmpty(wrkMast.getTaskNo())) {
|
wrkMast.setTaskNo(taskno);
|
}
|
wrkMast.setCallAgv(1);
|
wrkMastService.updateById(wrkMast);
|
}else {
|
log.error("出库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask));
|
}
|
} else {
|
TransTask transTask = new TransTask();
|
transTask.setTaskno(mesOutApply.getTaskno());
|
transTask.setTaskname(mesOutApply.getTaskname());
|
transTask.setOrderNo(mesOutApply.getOrderNo());
|
transTask.setTransType(mesOutApply.getTransType());
|
transTask.setCurStationId(WMS_TRANS_START_STATION_3);
|
transTask.setNextProcess(mesOutApply.getProductLineId());
|
transTask.setNextStationId(mesOutApply.getStationId());
|
transTask.setItemno(WMS_ZPALLET_ID); // 固定为空托的编码
|
transTask.setItemBarcode(new ArrayList<>()); // 没有零件二维码
|
transTask.setQty(1); // 空托只出1个
|
transTask.setProductLineId(mesOutApply.getProductLineId());
|
transTask.setOperateType(1);
|
transTask.setAgvFactory(1);
|
JSONObject sendAgvTask = mesService.submitTask(transTask);
|
if ("1".equals(sendAgvTask.getString("Success"))) {
|
// String taskno = sendAgvTask.getString("taskno");
|
// if(Cools.isEmpty(wrkMast.getTaskNo())) {
|
// wrkMast.setTaskNo(taskno);
|
// }
|
wrkMast.setCallAgv(1);
|
wrkMastService.updateById(wrkMast);
|
}else {
|
log.error("出库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask));
|
}
|
}
|
} else if(wrkMast.getIoType() == 101) { // 满托出库
|
if(mesOutApply == null) {
|
log.error("满托出库呼叫agv无transTask,任务号:{}",wrkMast.getWrkNo());
|
} else {
|
TransTask transTask = new TransTask();
|
transTask.setTaskno(mesOutApply.getTaskno());
|
transTask.setTaskname(mesOutApply.getTaskname());
|
transTask.setOrderNo(mesOutApply.getOrderNo());
|
transTask.setTransType(mesOutApply.getTransType());
|
transTask.setCurStationId(WMS_TRANS_START_STATION_3);
|
transTask.setNextProcess(mesOutApply.getProductLineId());
|
transTask.setNextStationId(mesOutApply.getStationId());
|
transTask.setItemno(mesOutApply.getItemno());
|
transTask.setQty(mesOutApply.getQty());
|
transTask.setProductLineId(mesOutApply.getProductLineId());
|
transTask.setItemBarcode(mesOutApply.getItemBarcode());
|
transTask.setTuoPanId(wrkMast.getBarcode());
|
transTask.setOperateType(1);
|
transTask.setAgvFactory(1);
|
|
JSONObject sendAgvTask = mesService.submitTask(transTask);
|
if ("1".equals(sendAgvTask.getString("Success"))) {
|
// String taskno = sendAgvTask.getString("taskno");
|
// if(Cools.isEmpty(wrkMast.getTaskNo())) {
|
// wrkMast.setTaskNo(taskno);
|
// }
|
wrkMast.setCallAgv(1);
|
wrkMastService.updateById(wrkMast);
|
}else {
|
log.error("出库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask));
|
}
|
}
|
} else {
|
log.error("出库呼叫agv任务类型错误,任务号:{}",wrkMast.getWrkNo());
|
}
|
}
|
|
}
|