rev:调度代码优化
This commit is contained in:
@@ -9,7 +9,6 @@ import io.swagger.annotations.ApiOperation;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.utils.MapOf;
|
|
||||||
import org.nl.common.utils.api.ResultCode;
|
import org.nl.common.utils.api.ResultCode;
|
||||||
import org.nl.modules.common.exception.BizCoreException;
|
import org.nl.modules.common.exception.BizCoreException;
|
||||||
import org.nl.wms.ext.acs.service.AcsToWmsService;
|
import org.nl.wms.ext.acs.service.AcsToWmsService;
|
||||||
|
|||||||
@@ -122,33 +122,19 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
|||||||
String task_id = row.getString("task_id");
|
String task_id = row.getString("task_id");
|
||||||
TaskDto taskDto = taskService.findById(task_id);
|
TaskDto taskDto = taskService.findById(task_id);
|
||||||
String processing_class = taskDto.getHandle_class();
|
String processing_class = taskDto.getHandle_class();
|
||||||
//6:执行中,7:完成 ,8:acs取消 acs:123
|
String status = acsStatus2Mes(row);
|
||||||
String acs_task_status = row.getString("status");
|
|
||||||
String message = "";
|
|
||||||
String status = "";
|
|
||||||
if ("1".equals(acs_task_status)) {
|
|
||||||
status = StatusEnum.TASK_RUNNING.getCode();
|
|
||||||
}
|
|
||||||
if ("2".equals(acs_task_status)) {
|
|
||||||
status = StatusEnum.TASK_FINISH.getCode();
|
|
||||||
}
|
|
||||||
if ("3".equals(acs_task_status)) {
|
|
||||||
status = StatusEnum.TASK_CANNEL.getCode();
|
|
||||||
}
|
|
||||||
// 任务处理类
|
// 任务处理类
|
||||||
try {
|
try {
|
||||||
AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(processing_class));
|
AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(processing_class));
|
||||||
taskHandler.updateTaskStatus(row,status);
|
taskHandler.updateTaskStatus(row,status);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("任务状态更新失败:{}", message);
|
log.info("任务状态更新失败:{}", e.getMessage());
|
||||||
|
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
json.put("task_id", task_id);
|
json.put("task_id", task_id);
|
||||||
json.put("message", message);
|
json.put("message", e.getMessage());
|
||||||
errArr.add(json);
|
errArr.add(json);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
result.put("status", HttpStatus.OK.value());
|
result.put("status", HttpStatus.OK.value());
|
||||||
result.put("message", "任务状态反馈成功!");
|
result.put("message", "任务状态反馈成功!");
|
||||||
@@ -157,6 +143,22 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String acsStatus2Mes(JSONObject row) {
|
||||||
|
//6:执行中,7:完成 ,8:acs取消 acs:123
|
||||||
|
String acs_task_status = row.getString("status");
|
||||||
|
String status = "";
|
||||||
|
if ("1".equals(acs_task_status)) {
|
||||||
|
status = StatusEnum.TASK_RUNNING.getCode();
|
||||||
|
}
|
||||||
|
if ("2".equals(acs_task_status)) {
|
||||||
|
status = StatusEnum.TASK_FINISH.getCode();
|
||||||
|
}
|
||||||
|
if ("3".equals(acs_task_status)) {
|
||||||
|
status = StatusEnum.TASK_CANNEL.getCode();
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> receivePointStatusFromAcs(Map<String, String> jsonObject) {
|
public Map<String, Object> receivePointStatusFromAcs(Map<String, String> jsonObject) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -80,7 +80,6 @@ public class AgvInstService {
|
|||||||
//判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位:
|
//判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位:
|
||||||
if (next.getName().equals("深坑清洗")){
|
if (next.getName().equals("深坑清洗")){
|
||||||
query.put("material_id",task.getString("material_id"));
|
query.put("material_id",task.getString("material_id"));
|
||||||
query.put("spec",null);
|
|
||||||
// query.put("qty",quantity) 深坑物料需要转重量
|
// query.put("qty",quantity) 深坑物料需要转重量
|
||||||
task.put("task_type",AcsTaskEnum.TASK_PRODUCT_WASH.getCode());
|
task.put("task_type",AcsTaskEnum.TASK_PRODUCT_WASH.getCode());
|
||||||
task.put("task_name",AcsTaskEnum.TASK_PRODUCT_WASH.getDesc());
|
task.put("task_name",AcsTaskEnum.TASK_PRODUCT_WASH.getDesc());
|
||||||
@@ -104,15 +103,15 @@ public class AgvInstService {
|
|||||||
task.put("task_name",AcsTaskEnum.TASK_PRODUCT_CACHE.getDesc());
|
task.put("task_name",AcsTaskEnum.TASK_PRODUCT_CACHE.getDesc());
|
||||||
task.put("acs_task_type",AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_ENTRY_TASK.getCode());
|
task.put("acs_task_type",AcsTaskEnum.ACS_TASK_TYPE_NOBLE_SINGLE_ENTRY_TASK.getCode());
|
||||||
cacheVehile = getCacheVehile(nextPoint, null);
|
cacheVehile = getCacheVehile(nextPoint, null);
|
||||||
|
if (StringUtils.isEmpty(cacheVehile)){
|
||||||
|
throw new BadRequestException("当前缓存线无可用空箱:"+nextPoint);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
结果校验:{
|
结果校验:{
|
||||||
if (StringUtils.isBlank(nextPoint)) {
|
if (StringUtils.isBlank(nextPoint)) {
|
||||||
throw new BadRequestException("逻辑非配错误,请检查代码");
|
throw new BadRequestException("逻辑非配错误,请检查代码");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// basePointService.update(new UpdateWrapper<SchBasePoint>()
|
|
||||||
// .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 schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||||
schBaseTask.setBarcodeArr(cacheVehile);
|
schBaseTask.setBarcodeArr(cacheVehile);
|
||||||
@@ -183,6 +182,7 @@ public class AgvInstService {
|
|||||||
schBaseTask.setPoint_code3(startPoint);
|
schBaseTask.setPoint_code3(startPoint);
|
||||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||||
schBaseTask.setUpdate_time(new Date());
|
schBaseTask.setUpdate_time(new Date());
|
||||||
|
schBaseTask.setUpdate_name("调度服务");
|
||||||
taskService.updateById(schBaseTask);
|
taskService.updateById(schBaseTask);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,28 +5,24 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
import org.nl.common.enums.InterfaceLogType;
|
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.common.utils.MapOf;
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.WQL;
|
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
|
||||||
import org.nl.wms.ext.acs.service.impl.AgvInstService;
|
import org.nl.wms.ext.acs.service.impl.AgvInstService;
|
||||||
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||||
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||||
|
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
|
||||||
|
import org.nl.wms.product_manage.service.device.dao.PdmBiDevice;
|
||||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||||
import org.nl.wms.scheduler_manage.service.cacheline.ISchCachelineVehilematerialService;
|
|
||||||
import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehilematerial;
|
|
||||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||||
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||||
import org.nl.wms.scheduler_manage.service.scheduler.ISchProcessRouteService;
|
import org.nl.wms.scheduler_manage.service.scheduler.ISchProcessRouteService;
|
||||||
@@ -38,10 +34,12 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,17 +53,16 @@ public class SpeEmpTask extends AbstractAcsTask {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseTaskService taskService;
|
private ISchBaseTaskService taskService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private IPdmBiDeviceService iDeviceService;
|
||||||
|
@Autowired
|
||||||
private AgvInstService agvInstService;
|
private AgvInstService agvInstService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService basePointService;
|
private ISchBasePointService basePointService;
|
||||||
@Autowired
|
|
||||||
private ISchCachelineVehilematerialService cacheLineVechileService;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchProcessRouteService schProcessRouteService;
|
private ISchProcessRouteService schProcessRouteService;
|
||||||
|
|
||||||
private final Map<String,SpeStatusHandler > SpeHandles= new HashMap<>();
|
private final Map<String,SpeStatusHandler > SpeHandles= new HashMap<>();
|
||||||
private static String OPT_NAME = "ACS回调# ";
|
|
||||||
|
|
||||||
|
|
||||||
public SpeEmpTask() {
|
public SpeEmpTask() {
|
||||||
@@ -74,15 +71,11 @@ public class SpeEmpTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateTaskStatus(JSONObject param,String status) {
|
public void updateTaskStatus(JSONObject param,String status) {
|
||||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
SchBaseTask task = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", param.getString("task_id")));
|
||||||
log.info(InterfaceLogType.ACS_TO_LMS.getDesc());
|
|
||||||
// 指令执行中
|
|
||||||
JSONObject task = taskTable.query("task_id = '" + param.getString("task_id") + "'").uniqueResult(0);
|
|
||||||
AcsTaskEnum taskType = AcsTaskEnum.getType(task.getString("task_type"),"TASK_");
|
|
||||||
try {
|
try {
|
||||||
SpeHandles.get(taskType.name()).handle(param,status,task);
|
SpeHandles.get(task.getTask_name()).handle(param,status,task);
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
log.error(OPT_NAME+"updateStatus error:{}",ex);
|
log.error("更新状态异常updateTaskStatus param:{},status:{},ex:{}",param,status,ex);
|
||||||
throw ex;
|
throw ex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -110,16 +103,7 @@ public class SpeEmpTask extends AbstractAcsTask {
|
|||||||
String taskId = IdUtil.getSnowflake(1, 1).nextId() + "";
|
String taskId = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||||
JSONObject task = packageParam(form, taskId);
|
JSONObject task = packageParam(form, taskId);
|
||||||
taskService.save(task.toJavaObject(SchBaseTask.class));
|
taskService.save(task.toJavaObject(SchBaseTask.class));
|
||||||
task.put("cacheLine",cahceLine);
|
|
||||||
// try {
|
|
||||||
// pointConfirm(task);
|
|
||||||
// //下发
|
|
||||||
// }catch (Exception ex){
|
|
||||||
// log.error("SpeEmpTask#点位确认异常:{}",ex.getMessage());
|
|
||||||
// task.put("task_status", TaskStatusEnum.SURE_START_ERROR.getCode());
|
|
||||||
// task.put("remark",ex.getMessage());
|
|
||||||
// WQLObject.getWQLObject("sch_base_task").update(task);
|
|
||||||
// }
|
|
||||||
return taskId;
|
return taskId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,45 +167,40 @@ public class SpeEmpTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(String taskId) {
|
public void cancel(String taskId) {
|
||||||
log.info(OPT_NAME+"cancel taskID:{}",taskId);
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
.set("task_status",StatusEnum.TASK_CANNEL.getCode()).eq("task_id",taskId));
|
||||||
//专机-专机
|
|
||||||
//专机-缓存线
|
|
||||||
//缓存线出库
|
|
||||||
taskTable.update(MapOf.of("task_status",StatusEnum.TASK_CANNEL.getCode()),"task_id = '"+taskId+"'");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
interface SpeStatusHandler{
|
interface SpeStatusHandler{
|
||||||
void handle(JSONObject param,String status,JSONObject task);
|
void handle(JSONObject param,String status,SchBaseTask task);
|
||||||
}
|
}
|
||||||
class Cache2Spe implements SpeStatusHandler{
|
class Cache2Spe implements SpeStatusHandler{
|
||||||
@Override
|
@Override
|
||||||
public void handle(JSONObject param, String sta,JSONObject task) {
|
public void handle(JSONObject param, String sta,SchBaseTask task) {
|
||||||
AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_");
|
AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_");
|
||||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
|
||||||
WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial");
|
|
||||||
WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point");
|
|
||||||
WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device");
|
|
||||||
|
|
||||||
switch (status){
|
switch (status){
|
||||||
case STATUS_START:
|
case STATUS_START:
|
||||||
taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'");
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_RUNNING.getCode())
|
||||||
|
.set("update_name","acs")
|
||||||
|
.set("update_time", DateUtil.now())
|
||||||
|
.eq("task_id",task.getTask_id()));
|
||||||
break;
|
break;
|
||||||
case STATUS_FINISH:
|
case STATUS_FINISH:
|
||||||
taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'");
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_FINISH.getCode())
|
||||||
String point_code2 = task.getString("point_code2");
|
.set("update_name","acs")
|
||||||
JSONObject pointInfo = pointTable.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
.set("update_time", DateUtil.now())
|
||||||
JSONObject device = deviceTable.query("device_code = '" + pointInfo.getString("device_code") + "'").uniqueResult(0);
|
.eq("task_id",task.getTask_id()));
|
||||||
task.getDouble("material_qty");
|
SchBasePoint point = basePointService.getOne(new QueryWrapper<SchBasePoint>().eq("point_code", task.getPoint_code2()));
|
||||||
double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty");
|
PdmBiDevice device = iDeviceService.getOne(new QueryWrapper<PdmBiDevice>().eq("device_code", point.getDevice_code()));
|
||||||
deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'");
|
BigDecimal currentQty = device.getDeviceinstor_qty().add(task.getMaterial_qty());
|
||||||
|
iDeviceService.update(new UpdateWrapper<PdmBiDevice>().set("deviceinstor_qty",currentQty).eq("device_code",point.getDevice_code()));
|
||||||
break;
|
break;
|
||||||
case STATUS_CANNEL:
|
case STATUS_CANNEL:
|
||||||
cancel(param.getString("task_id"));
|
cancel(param.getString("task_id"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta);
|
throw new BadRequestException("未定义任务状态:"+sta);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -237,10 +216,10 @@ public class SpeEmpTask extends AbstractAcsTask {
|
|||||||
ArrayList<SchBaseTask> Merge = new ArrayList<>();
|
ArrayList<SchBaseTask> Merge = new ArrayList<>();
|
||||||
if (!CollectionUtils.isEmpty(array)){
|
if (!CollectionUtils.isEmpty(array)){
|
||||||
String pointCollect = array.stream().map(a->a.getPoint_code1() + "','" + a.getPoint_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);
|
List<Map<String,String>> needMergeCollect = basePointService.getAllPointRegin(pointCollect);
|
||||||
//区域编号对应point_code
|
//区域编号对应point_code pointRegionCollent
|
||||||
Map<String, List<Object>> pointRegionCollent = needMergeCollect.stream().collect(Collectors.groupingBy(o -> ((JSONObject) o).getString("point_code")));
|
Map<String, List<Map<String,String>>> pointRegionCollent = needMergeCollect.stream().collect(Collectors.groupingBy(o -> o.get("point_code")));
|
||||||
Set<String> mergePointCollent = needMergeCollect.stream().map(item -> ((JSONObject) item).getString("point_code")).collect(Collectors.toSet());
|
Set<String> mergePointCollent = needMergeCollect.stream().map(item -> item.get("point_code")).collect(Collectors.toSet());
|
||||||
//合并下发的任务
|
//合并下发的任务
|
||||||
List<SchBaseTask> notMerge = new ArrayList<>();//单独下发的任务
|
List<SchBaseTask> notMerge = new ArrayList<>();//单独下发的任务
|
||||||
List<SchBaseTask> waitingTask = new ArrayList<>();//可合并,但是只有单条任务
|
List<SchBaseTask> waitingTask = new ArrayList<>();//可合并,但是只有单条任务
|
||||||
@@ -315,7 +294,7 @@ public class SpeEmpTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private String getMergePoint(Map<String, List<Object>> pointRegionCollent, String start,String end,List<SchBaseTask> tasks,List<String> taskIds) {
|
private String getMergePoint(Map<String, List<Map<String,String>>> pointRegionCollent, String start,String end,List<SchBaseTask> tasks,List<String> taskIds) {
|
||||||
String findpoint = findpoint(pointRegionCollent, start, tasks, taskIds);
|
String findpoint = findpoint(pointRegionCollent, start, tasks, taskIds);
|
||||||
if (findpoint == null){
|
if (findpoint == null){
|
||||||
findpoint = findpoint(pointRegionCollent, end, tasks, taskIds);
|
findpoint = findpoint(pointRegionCollent, end, tasks, taskIds);
|
||||||
@@ -323,13 +302,13 @@ public class SpeEmpTask extends AbstractAcsTask {
|
|||||||
return findpoint;
|
return findpoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String findpoint(Map<String, List<Object>> pointRegionCollent, String start, List<SchBaseTask> tasks, List<String> taskIds) {
|
private String findpoint(Map<String, List<Map<String,String>>> pointRegionCollent, String start, List<SchBaseTask> tasks, List<String> taskIds) {
|
||||||
List<Object> objects = pointRegionCollent.get(start);
|
List<Map<String,String>> objects = pointRegionCollent.get(start);
|
||||||
if (CollectionUtils.isEmpty(objects)){
|
if (CollectionUtils.isEmpty(objects)){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
JSONObject startPointInfo = (JSONObject) objects.get(0);
|
Map<String,String> startPointInfo = objects.get(0);
|
||||||
String startPointCollent = startPointInfo.getString("pointcollent");
|
String startPointCollent = startPointInfo.get("pointcollent");
|
||||||
String[] split = startPointCollent.split(",");
|
String[] split = startPointCollent.split(",");
|
||||||
for (String s : split) {
|
for (String s : split) {
|
||||||
Optional<SchBaseTask> any = tasks.stream().filter(a -> a.getPoint_code1().equals(s) && !taskIds.contains((a.getTask_id()))).findAny();
|
Optional<SchBaseTask> any = tasks.stream().filter(a -> a.getPoint_code1().equals(s) && !taskIds.contains((a.getTask_id()))).findAny();
|
||||||
|
|||||||
@@ -110,14 +110,6 @@ public class SpeFullTask extends AbstractAcsTask {
|
|||||||
String taskId = IdUtil.getStringId();
|
String taskId = IdUtil.getStringId();
|
||||||
JSONObject task = packageParam(form, taskId);
|
JSONObject task = packageParam(form, taskId);
|
||||||
taskService.save(task.toJavaObject(SchBaseTask.class));
|
taskService.save(task.toJavaObject(SchBaseTask.class));
|
||||||
// try {
|
|
||||||
// pointConfirm(task);
|
|
||||||
// //下发
|
|
||||||
// }catch (Exception ex){
|
|
||||||
// task.put("task_status", TaskStatusEnum.SURE_START_ERROR.getCode());
|
|
||||||
// task.put("remark",ex.getMessage());
|
|
||||||
// WQLObject.getWQLObject("sch_base_task").update(task);
|
|
||||||
// }
|
|
||||||
return taskId;
|
return taskId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -227,15 +219,13 @@ public class SpeFullTask extends AbstractAcsTask {
|
|||||||
.set("task_status", StatusEnum.TASK_RUNNING.getCode())
|
.set("task_status", StatusEnum.TASK_RUNNING.getCode())
|
||||||
.set("update_name", "acs")
|
.set("update_name", "acs")
|
||||||
.set("update_time", DateUtil.now()).eq("task_id", task.getTask_id());
|
.set("update_time", DateUtil.now()).eq("task_id", task.getTask_id());
|
||||||
|
if (extParam.get("outbox")!= null){ wrapper.set("vehicle_code2",extParam.get("outbox")); }
|
||||||
if (extParam.get("outboxt")!= null){ wrapper.set("vehicle_code2",extParam.get("outboxt")); }
|
|
||||||
taskService.update(wrapper);
|
taskService.update(wrapper);
|
||||||
|
|
||||||
//outboxt箱子更新到任务表vechile_code2?
|
//outboxt箱子更新到任务表vechile_code2?
|
||||||
if (extParam.get("inboxt") != null){
|
if (extParam.get("inbox") != null){
|
||||||
SchCachelineVehilematerial vehilematerial = new SchCachelineVehilematerial();
|
SchCachelineVehilematerial vehilematerial = new SchCachelineVehilematerial();
|
||||||
vehilematerial.setVehmaterial_id(IdUtil.getStringId());
|
vehilematerial.setVehmaterial_id(IdUtil.getStringId());
|
||||||
vehilematerial.setVehicle_code(extParam.get("inboxt"));
|
vehilematerial.setVehicle_code(extParam.get("inbox"));
|
||||||
vehilematerial.setMaterial_id(task.getMaterial_id());
|
vehilematerial.setMaterial_id(task.getMaterial_id());
|
||||||
vehilematerial.setErr_type("0");
|
vehilematerial.setErr_type("0");
|
||||||
vehilematerial.setCreate_time(DateUtil.now());
|
vehilematerial.setCreate_time(DateUtil.now());
|
||||||
|
|||||||
@@ -75,9 +75,8 @@ public class TaskScheduleService {
|
|||||||
try {
|
try {
|
||||||
AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(task.getHandle_class()));
|
AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(task.getHandle_class()));
|
||||||
taskHandler.pointConfirm((JSONObject) JSONObject.toJSON(task));
|
taskHandler.pointConfirm((JSONObject) JSONObject.toJSON(task));
|
||||||
task.setTask_type(StatusEnum.TASK_START_END_P.getCode());
|
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
task.setTask_type(StatusEnum.TASK_START_ERROR.getCode());
|
task.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||||
task.setRemark(ex.getMessage());
|
task.setRemark(ex.getMessage());
|
||||||
task.setUpdate_time(new Date());
|
task.setUpdate_time(new Date());
|
||||||
taskService.updateById(task);
|
taskService.updateById(task);
|
||||||
@@ -94,7 +93,13 @@ public class TaskScheduleService {
|
|||||||
for (Map.Entry<String, List<SchBaseTask>> array : listMap.entrySet()) {
|
for (Map.Entry<String, List<SchBaseTask>> array : listMap.entrySet()) {
|
||||||
//调用不同实现
|
//调用不同实现
|
||||||
AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(array.getKey()));
|
AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(array.getKey()));
|
||||||
Merge.addAll(taskHandler.schedulerTask(array.getValue()));
|
try {
|
||||||
|
List<SchBaseTask> schBaseTasks = taskHandler.schedulerTask(array.getValue());
|
||||||
|
Merge.addAll(schBaseTasks);
|
||||||
|
}catch (Exception ex){
|
||||||
|
log.error("调度任务分配异常:{}",ex);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
JSONArray arr = new JSONArray();
|
JSONArray arr = new JSONArray();
|
||||||
for (SchBaseTask task : Merge) {
|
for (SchBaseTask task : Merge) {
|
||||||
|
|||||||
@@ -50,4 +50,6 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
|||||||
|
|
||||||
Map getWorkprodureById(String id);
|
Map getWorkprodureById(String id);
|
||||||
Map getWorkprodureByCode(String id);
|
Map getWorkprodureByCode(String id);
|
||||||
|
|
||||||
|
List<Map<String,String>> getAllPointRegin(String points);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,4 +34,6 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
|
|||||||
|
|
||||||
Map getWorkprodure(@Param("workprodureId") String workprodureId, @Param("workprodureCode") String workprodureCode);
|
Map getWorkprodure(@Param("workprodureId") String workprodureId, @Param("workprodureCode") String workprodureCode);
|
||||||
|
|
||||||
|
List<Map<String,String>> getRegionCollent(String points);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,4 +106,18 @@
|
|||||||
workprocedure_code = #{workprodureCode}
|
workprocedure_code = #{workprodureCode}
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getRegionCollent" resultType="java.util.Map">
|
||||||
|
SELECT
|
||||||
|
sch_base_region.region_code,
|
||||||
|
sch_base_point.point_code,
|
||||||
|
GROUP_CONCAT(b.point_code) as pointcollent
|
||||||
|
FROM
|
||||||
|
sch_base_region
|
||||||
|
LEFT JOIN sch_base_point ON sch_base_region.region_code = sch_base_point.region_code
|
||||||
|
LEFT JOIN sch_base_point b ON sch_base_region.region_code = b.region_code AND b.point_code IN ( #{points} )
|
||||||
|
WHERE
|
||||||
|
sch_base_region.is_merge = '1'
|
||||||
|
AND sch_base_point.point_code IN ( #{points} )
|
||||||
|
GROUP BY sch_base_point.point_code
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -163,4 +163,9 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Map<String,String>> getAllPointRegin(String points) {
|
||||||
|
return this.baseMapper.getRegionCollent(points);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user