add:修改调度任务代码
This commit is contained in:
@@ -9,6 +9,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.enums.WorkerOrderEnum;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.OptionRecord;
|
||||
@@ -74,12 +75,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
ArrayList<Object> list = new ArrayList<>();
|
||||
list.forEach(a->{
|
||||
a.getClass();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新缓存线的点位实时任务信息
|
||||
@@ -142,9 +137,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
}
|
||||
// 任务处理类
|
||||
try {
|
||||
Class<?> clz = Class.forName(processing_class);
|
||||
Object obj = clz.newInstance();
|
||||
// 调用每个任务类的forceFinishInst()强制结束方法
|
||||
Object obj = SpringContextHolder.getBean(Class.forName(processing_class));
|
||||
Method m = obj.getClass().getDeclaredMethod("updateTaskStatus", JSONObject.class, String.class);
|
||||
m.invoke(obj, row, status);
|
||||
} catch (InvocationTargetException e) {
|
||||
@@ -210,8 +203,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
PdmProduceWorkorder workorder = new PdmProduceWorkorder();
|
||||
workorder.setWorkorder_id(orderJson.getString("workorder_id"));
|
||||
workorder.setWorkorder_status(orderJson.getString("status"));
|
||||
workorder.setDq_real_qty(orderJson.getBigDecimal("real_qty"));
|
||||
workorder.setRealproduceend_date(DateUtil.now());
|
||||
if (orderJson.getBigDecimal("real_qty") != null){
|
||||
workorder.setDq_real_qty(orderJson.getBigDecimal("real_qty"));
|
||||
}
|
||||
if (orderJson.getString("status").equals(WorkerOrderEnum.PRODUCTING.getCode())){
|
||||
workorder.setRealproducestart_date(DateUtil.now());
|
||||
}
|
||||
if (orderJson.getString("status").equals(WorkerOrderEnum.COMPLETE.getCode())){
|
||||
workorder.setRealproduceend_date(DateUtil.now());
|
||||
}
|
||||
workorderService.updateById(workorder);
|
||||
} catch (Exception e){
|
||||
result.put("status", 400);
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
@@ -70,14 +71,17 @@ public class AgvInstService {
|
||||
String quantity = task.getString("material_qty");
|
||||
//获取当前生产工序下一道工序
|
||||
Map<String,String> workprodure = basePointService.findDeviceWorkprodure(task.getString("point_code1"));
|
||||
FlowElement next = getFlowElement(task,workprodure).next();
|
||||
FlowElement currentFlow = getFlowElement(task, workprodure);
|
||||
FlowElement next = currentFlow.next();
|
||||
|
||||
Map query = MapOf.of("workprocedure_id", basePointService.getWorkprodureByCode(next.getId()).get("workprocedure_id")
|
||||
, "qty", quantity);
|
||||
//判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位:
|
||||
if (next.getName().equals("深坑清洗")){
|
||||
query.put("material_id",task.getString("material_id"));
|
||||
// query.put("qty",quantity) 深坑物料需要转重量
|
||||
}
|
||||
|
||||
List<Map<String,String>> list = deviceService.workproceduceDevices(query);
|
||||
|
||||
String nextPoint = null;
|
||||
@@ -85,10 +89,11 @@ public class AgvInstService {
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
nextPoint = list.get(0).get("point_code");
|
||||
}else {
|
||||
if (next.getParams().get("cacheLine") == null){
|
||||
if (currentFlow.getParams().get("cacheLine") == null){
|
||||
throw new BadRequestException("当前任务下一道工序无可用设备");
|
||||
}
|
||||
nextPoint = getParamByXml(workprodure, next, nextPoint);
|
||||
nextPoint = getParamByXml(workprodure, currentFlow, nextPoint);
|
||||
task.put("acs_task_type",AcsTaskEnum.ACS_TASK_TYPE_NOBLE_DOUBLE_ENTRY_TASK.getCode());
|
||||
cacheVehile = getCacheVehile(nextPoint, null);
|
||||
}
|
||||
|
||||
@@ -101,7 +106,7 @@ public class AgvInstService {
|
||||
.set("lock_type",StatusEnum.LOCK_ON.getCode()).set("task_id",task.getString("task_id")).eq("point_code",nextPoint));
|
||||
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setVehicle_code(cacheVehile);
|
||||
schBaseTask.setBarcodeArr(cacheVehile);
|
||||
schBaseTask.setPoint_code2(nextPoint);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
@@ -161,8 +166,9 @@ public class AgvInstService {
|
||||
throw new BadRequestException(String.format("缓存线%s上含物料%s的载具已分配完",startPoint,task.getString("material_id")));
|
||||
}
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setVehicle_code(cacheVehile);
|
||||
schBaseTask.setBarcodeArr(cacheVehile);
|
||||
schBaseTask.setPoint_code1(startPoint);
|
||||
schBaseTask.setAcs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_TASK.getCode());
|
||||
schBaseTask.setPoint_code3(startPoint);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
|
||||
@@ -32,8 +32,10 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
|
||||
, "next_point_code", task.getString("point_code3")//空盘返回点
|
||||
, "task_group_id", StringUtils.isBlank(task.getString("task_group_id"))? IdUtil.getStringId():task.getString("task_group_id")
|
||||
, "priority", task.getString("priority")
|
||||
, "is_send", task.getString("is_send")
|
||||
, "is_send", task.getBoolean("is_send")?"1":"0"
|
||||
, "vehicle_code", task.getString("vehicle_code")
|
||||
, "barcodeArr", task.getString("barcodeArr")
|
||||
, "proprity_floor", "2"
|
||||
, "agv_system_type", task.getString("agv_system_type")
|
||||
));
|
||||
form.add(param);
|
||||
|
||||
@@ -65,11 +65,11 @@ public class SpeFullTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateTaskStatus(JSONObject param,String status) {
|
||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||
log.info(InterfaceLogType.ACS_TO_LMS.getDesc());
|
||||
// 指令执行中
|
||||
SchBaseTask task = taskService.getById(param.getString("task_id"));
|
||||
AcsTaskEnum taskType = AcsTaskEnum.getType(task.getTask_type(),"TASK_");
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>().set("lock_type","0").in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3()));
|
||||
try {
|
||||
SpeHandles.get(taskType.name()).handle(param,status,task);
|
||||
}catch (Exception ex){
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -14,10 +15,14 @@ import org.nl.common.utils.MapOf;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.*;
|
||||
@@ -34,7 +39,9 @@ import java.util.stream.Collectors;
|
||||
public class TaskScheduleService {
|
||||
|
||||
private ReentrantLock lock = new ReentrantLock();
|
||||
|
||||
private final WmsToAcsService wmsToAcsService;
|
||||
private final ISchBaseTaskService taskService;
|
||||
|
||||
@Scheduled(cron = "0/30 * * * * ?")
|
||||
public void taskPublish(){
|
||||
@@ -43,64 +50,62 @@ public class TaskScheduleService {
|
||||
if (islock){
|
||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||
//查询所有自动下发的任务
|
||||
JSONArray all = taskTable.query("is_auto_issue = '1' and task_status < '" + StatusEnum.TASK_PUBLISH.getCode() + "'").getResultJSONArray(0);
|
||||
List<SchBaseTask> all = taskService.list(new QueryWrapper<SchBaseTask>().eq("is_auto_issue", "1").lt("task_status", StatusEnum.TASK_PUBLISH.getCode()));
|
||||
//进行起点终点确认:
|
||||
if (all.size() == 0){
|
||||
return;
|
||||
}
|
||||
log.info("TaskScheduleService#taskPublish all_task:{}",all.size());
|
||||
Iterator<Object> iterator = all.iterator();
|
||||
Iterator<SchBaseTask> iterator = all.iterator();
|
||||
while (iterator.hasNext()){
|
||||
JSONObject task = (JSONObject)iterator.next();
|
||||
if (task.getString("task_status").equals(StatusEnum.TASK_START_END_P.getCode())){
|
||||
SchBaseTask task =iterator.next();
|
||||
if (task.getTask_status().equals(StatusEnum.TASK_START_END_P.getCode())){
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
Class<?> clz = Class.forName(task.getString("handle_class"));
|
||||
Object obj = clz.newInstance();
|
||||
Object obj = SpringContextHolder.getBean(Class.forName(task.getHandle_class()));
|
||||
// 调用每个任务类的forceFinishInst()强制结束方法
|
||||
Method m = obj.getClass().getDeclaredMethod("pointConfirm", JSONObject.class, String.class);
|
||||
m.invoke(obj,task);
|
||||
task.put("task_type", StatusEnum.TASK_START_END_P.getCode());
|
||||
task.setTask_type(StatusEnum.TASK_START_END_P.getCode());
|
||||
}catch (Exception ex){
|
||||
task.put("task_type", StatusEnum.TASK_START_ERROR.getCode());
|
||||
task.put("remark",ex.getMessage());
|
||||
task.put("update_time",DateUtil.now());
|
||||
taskTable.update(task);
|
||||
task.setTask_type(StatusEnum.TASK_START_ERROR.getCode());
|
||||
task.setRemark(ex.getMessage());
|
||||
task.setUpdate_time(new Date());
|
||||
taskService.updateById(task);
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
//分区域:不同区域调用不同acs接口
|
||||
Map<String, List<Object>> areaCollent = all.stream().collect(Collectors.groupingBy(o -> ((JSONObject) o).getString("product_area")));
|
||||
Map<String, List<SchBaseTask>> areaCollent = all.stream().collect(Collectors.groupingBy(SchBaseTask::getProduct_area));
|
||||
for (String area : areaCollent.keySet()) {
|
||||
List<Object> array = areaCollent.get(area);
|
||||
List<SchBaseTask> array = areaCollent.get(area);
|
||||
if (array.size()>0){
|
||||
String pointCollect = array.stream().map(o -> ((JSONObject) o).getString("point_code1") + "','" + ((JSONObject) o).getString("point_code2")).collect(Collectors.joining("','"));
|
||||
String pointCollect = array.stream().map(a->a.getPoint_code1() + "','" + a.getPoint_code2()).collect(Collectors.joining("','"));
|
||||
JSONArray needMergeCollect = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "5", "point_codes", "'" + pointCollect + "'")).process().getResultJSONArray(0);
|
||||
//区域编号对应point_code
|
||||
Map<String, List<Object>> pointRegionCollent = needMergeCollect.stream().collect(Collectors.groupingBy(o -> ((JSONObject) o).getString("point_code")));
|
||||
Set<String> mergePointCollent = needMergeCollect.stream().map(item -> ((JSONObject) item).getString("point_code")).collect(Collectors.toSet());
|
||||
//合并下发的任务
|
||||
List<Object> notMerge = new ArrayList<>();//单独下发的任务
|
||||
List<Object> Merge = new ArrayList<>();//单独下发的任务
|
||||
List<Object> waitingTask = new ArrayList<>();//可合并,但是只有单条任务
|
||||
Map<String, String> taskGroupMap = array.stream().filter(a-> StringUtils.isNotEmpty(((JSONObject)a).getString("task_group_id"))).collect(HashMap::new, (k, v) -> k.put(((JSONObject)v).getString("task_id"), ((JSONObject)v).getString("task_group_id")), HashMap::putAll);
|
||||
|
||||
for (Object o : array) {
|
||||
List<SchBaseTask> notMerge = new ArrayList<>();//单独下发的任务
|
||||
List<SchBaseTask> Merge = new ArrayList<>();//单独下发的任务
|
||||
List<SchBaseTask> waitingTask = new ArrayList<>();//可合并,但是只有单条任务
|
||||
//Map<String, String> taskGroupMap = array.stream().filter(a-> StringUtils.isNotEmpty(a.getTask_group_id())).collect(HashMap::new, (k, v) -> k.put(v.getTask_id(), v.getTask_group_id()), HashMap::putAll);
|
||||
Map<String, String> taskGroupMap = new HashMap<>();
|
||||
for (SchBaseTask task : array) {
|
||||
String taskGroupId = IdUtil.getStringId();
|
||||
JSONObject task = (JSONObject) o;
|
||||
String taskId = task.getString("task_id");
|
||||
task.put("is_send","1");
|
||||
String taskId = task.getTask_id();
|
||||
task.setIs_send(true);
|
||||
if (taskGroupMap.get(taskId) != null){
|
||||
task.put("task_group_id",taskGroupMap.get(taskId));
|
||||
task.put("is_send","0");
|
||||
task.setTask_group_id(taskGroupMap.get(taskId));
|
||||
task.setIs_send(false);
|
||||
Merge.add(task);
|
||||
continue;
|
||||
}
|
||||
String start = task.getString("point_code1");
|
||||
String end = task.getString("point_code2");
|
||||
String start = task.getPoint_code1();
|
||||
String end = task.getPoint_code2();
|
||||
taskGroupMap.put(taskId,taskGroupId);
|
||||
task.put("task_group_id",taskGroupId);
|
||||
task.setTask_group_id(taskGroupId);
|
||||
//如果点位不属于查询出来可以合并点位集合:则单独下发集合
|
||||
if (!mergePointCollent.contains(start) && !mergePointCollent.contains(end)){
|
||||
notMerge.add(task);
|
||||
@@ -120,27 +125,33 @@ public class TaskScheduleService {
|
||||
}
|
||||
//开始下发:处理waitingTask:如果创建时间>2分钟:则改单独下发
|
||||
if (waitingTask.size()>0){
|
||||
List<Object> needPublish = waitingTask.stream().filter(a -> DateUtil.between(new Date(),DateUtil.parseDateTime(((JSONObject)a).getString("create_time") ), DateUnit.MINUTE) >2 ).collect(Collectors.toList());
|
||||
List<SchBaseTask> needPublish = waitingTask.stream().filter(a -> DateUtil.between(new Date(),a.getCreate_time(), DateUnit.MINUTE) >2 ).collect(Collectors.toList());
|
||||
notMerge.addAll(needPublish);
|
||||
}
|
||||
String notMergeID = notMerge.stream().map(a -> ((JSONObject) a).getString("task_id")).collect(Collectors.joining(","));
|
||||
String waitingTaskId = waitingTask.stream().map(a -> ((JSONObject) a).getString("task_id")).collect(Collectors.joining(","));
|
||||
String MergeId = Merge.stream().map(a -> ((JSONObject) a).getString("task_id")).collect(Collectors.joining(","));
|
||||
String notMergeID = notMerge.stream().map(a -> a.getTask_id()).collect(Collectors.joining(","));
|
||||
String waitingTaskId = waitingTask.stream().map(a -> a.getTask_id()).collect(Collectors.joining(","));
|
||||
String MergeId = Merge.stream().map(a -> a.getTask_id()).collect(Collectors.joining(","));
|
||||
log.info("TaskScheduleService#taskPublish notMerge:{},waitingTask:{},merge:{}",notMergeID,waitingTaskId,MergeId);
|
||||
notMerge.forEach(a->{
|
||||
((JSONObject)a).put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_TASK.getCode());
|
||||
a.setIs_send(true);
|
||||
if (a.getAcs_task_type().equals(AcsTaskEnum.ACS_TASK_TYPE_NOBLE_DOUBLE_TASK.getCode())){
|
||||
a.setAcs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_TASK.getCode());
|
||||
}
|
||||
if (a.getAcs_task_type().equals(AcsTaskEnum.ACS_TASK_TYPE_NOBLE_DOUBLE_ENTRY_TASK.getCode())){
|
||||
a.setAcs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_ENTRY_TASK.getCode());
|
||||
}
|
||||
});
|
||||
Merge.addAll(notMerge);
|
||||
JSONArray jsonArray = new JSONArray(Merge);
|
||||
//批量更新任务状态,is_send,task_group_id
|
||||
for (Object task : Merge) {
|
||||
JSONObject task1 = (JSONObject) task;
|
||||
task1.put("update_name","schedule");
|
||||
task1.put("update_time",DateUtil.now());
|
||||
taskTable.update(task1,"task_id = '"+task1.getString("task_id")+"'");
|
||||
JSONArray arr = new JSONArray();
|
||||
for (SchBaseTask task : Merge) {
|
||||
task.setUpdate_name("schedule");
|
||||
task.setUpdate_time(new Date());
|
||||
taskService.updateById(task);
|
||||
arr.add(JSONObject.toJSON(task));
|
||||
}
|
||||
//缓存线任务待确认是否生成多个
|
||||
Map<String, Object> resp = wmsToAcsService.issueTaskToAcs(jsonArray);
|
||||
Map<String, Object> resp = wmsToAcsService.issueTaskToAcs(arr);
|
||||
// if (((int)resp.get("status")) == (HttpStatus.BAD_REQUEST.value())){
|
||||
// Object errArr = resp.get("errArr");
|
||||
// throw new BadRequestException(String.valueOf(resp.get("message")));
|
||||
@@ -156,7 +167,7 @@ public class TaskScheduleService {
|
||||
}
|
||||
|
||||
|
||||
private String getMergePoint(Map<String, List<Object>> pointRegionCollent, String start,String end,List<Object> tasks,List<String> taskIds) {
|
||||
private String getMergePoint(Map<String, List<Object>> pointRegionCollent, String start,String end,List<SchBaseTask> tasks,List<String> taskIds) {
|
||||
String findpoint = findpoint(pointRegionCollent, start, tasks, taskIds);
|
||||
if (findpoint == null){
|
||||
findpoint = findpoint(pointRegionCollent, end, tasks, taskIds);
|
||||
@@ -164,15 +175,18 @@ public class TaskScheduleService {
|
||||
return findpoint;
|
||||
}
|
||||
|
||||
private String findpoint(Map<String, List<Object>> pointRegionCollent, String start, List<Object> tasks, List<String> taskIds) {
|
||||
private String findpoint(Map<String, List<Object>> pointRegionCollent, String start, List<SchBaseTask> tasks, List<String> taskIds) {
|
||||
List<Object> objects = pointRegionCollent.get(start);
|
||||
if (CollectionUtils.isEmpty(objects)){
|
||||
return null;
|
||||
}
|
||||
JSONObject startPointInfo = (JSONObject) objects.get(0);
|
||||
String startPointCollent = startPointInfo.getString("pointcollent");
|
||||
String[] split = startPointCollent.split(",");
|
||||
for (String s : split) {
|
||||
Optional<Object> any = tasks.stream().filter(a -> ((JSONObject) a).getString("point_code1").equals(s) && !taskIds.contains(((JSONObject) a).getString("task_id"))).findAny();
|
||||
Optional<SchBaseTask> any = tasks.stream().filter(a -> a.getPoint_code1().equals(s) && !taskIds.contains((a.getTask_id()))).findAny();
|
||||
if (any.isPresent()){
|
||||
return ((JSONObject)any.get()).getString("task_id");
|
||||
return any.get().getTask_id();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
left join pdm_bi_device on pdm_bi_device.device_code = sch_base_point.device_code
|
||||
left JOIN sch_base_task ON sch_base_point.point_code = point_code2 and '7' > task_status
|
||||
where
|
||||
sch_base_point.point_type = '4'
|
||||
sch_base_point.point_type = '4' and pdm_bi_device.is_used = true and sch_base_point.lock_type = '0'
|
||||
and workprocedure_id = #{workprocedure_id}
|
||||
<if test="material_id != null and material_id != ''">
|
||||
and (pdm_bi_device.material_id = #{material_id} or pdm_bi_device.material_id is null )
|
||||
|
||||
@@ -220,10 +220,6 @@ public class PdmProduceWorkorder implements Serializable {
|
||||
* 完工时间
|
||||
*/
|
||||
private String confirm_time;
|
||||
/**
|
||||
* 自增序号
|
||||
*/
|
||||
private Integer seq_number;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -512,7 +512,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
//判断该工单状态
|
||||
PdmProduceWorkorder result = this.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||
.eq("device_code", param.getString("device_code"))
|
||||
.in("workorder_status", "2", "3", "4")
|
||||
.in("workorder_status", "3", "4")
|
||||
.ne("workorder_id", param.getString("workorder_id")));
|
||||
if (ObjectUtil.isNotEmpty(result)) {
|
||||
throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!");
|
||||
@@ -526,7 +526,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
PdmProduceWorkorder workOrder = this.getOne(new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", param.getString("workorder_id")));
|
||||
workOrder.setWorkorder_status(WorkerOrderEnum.PRODUCTING.getCode());
|
||||
if (((int) resp.get("status")) == (HttpStatus.BAD_REQUEST.value())) {
|
||||
throw new BadRequestException(String.valueOf(resp.get("message")));
|
||||
throw new BadRequestException(resp.get("message")!=null?String.valueOf(resp.get("message")):"acs反馈异常");
|
||||
}
|
||||
workOrder.setReal_qty(null);
|
||||
this.update(workOrder, new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", param.getString("workorder_id")));
|
||||
|
||||
@@ -117,6 +117,10 @@ public class SchBaseTask implements Serializable {
|
||||
* 载具编码1
|
||||
*/
|
||||
private String vehicle_code;
|
||||
/**
|
||||
* 缓存线专用字段
|
||||
*/
|
||||
private String barcodeArr;
|
||||
|
||||
/**
|
||||
* 载具编码2
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
<param id="cacheLine" value="A1_HCX_03"/>
|
||||
</flow>
|
||||
<flow id="A1_STLS" name="三通拉伸工序" sourceRef="A1_WXXL" targetRef="A1_TK"></flow>
|
||||
<flow id="A1_TK" name="镗孔" sourceRef="A1_TK" targetRef="end"></flow>
|
||||
<flow id="A1_SKQX" name="深坑清洗" sourceRef="A1_TK" targetRef="end"></flow>
|
||||
<flow id="A1_TK" name="镗孔" sourceRef="A1_TK" targetRef="A1_SKQX"></flow>
|
||||
<flow id="A1_SKQX" name="深坑清洗" sourceRef="A1_STLS" targetRef="end"></flow>
|
||||
<end id="end" name="Junior Reject End" sourceRef="A1_SKQX"></end>
|
||||
</process>
|
||||
</definitions>
|
||||
|
||||
Reference in New Issue
Block a user