Merge branch 'master' of http://121.40.234.130:8899/root/hl_one
This commit is contained in:
@@ -6,5 +6,5 @@ package org.nl.common;
|
|||||||
*/
|
*/
|
||||||
public class ConstantParam {
|
public class ConstantParam {
|
||||||
//深坑清洗区域编码
|
//深坑清洗区域编码
|
||||||
public static String SK_REGION = "SK_REGION";
|
public static String SK_REGION = "QSQX";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ public enum AcsTaskEnum {
|
|||||||
TASK_PRODUCT_CACHE("2","专机-缓存线满料任务"),
|
TASK_PRODUCT_CACHE("2","专机-缓存线满料任务"),
|
||||||
//3个点,任务编号,缓存线满料载具列表
|
//3个点,任务编号,缓存线满料载具列表
|
||||||
TASK_CACHELINE_OUT("3","缓存线-专机出库任务"),
|
TASK_CACHELINE_OUT("3","缓存线-专机出库任务"),
|
||||||
|
//专机到深坑任务:深坑业务单独处理
|
||||||
|
TASK_PRODUCT_WASH("4","专机-深坑任务"),
|
||||||
|
|
||||||
//回调状态
|
//回调状态
|
||||||
STATUS_START("1","执行中"),
|
STATUS_START("1","执行中"),
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ public enum StatusEnum {
|
|||||||
CACHE_VEL_DIS("5","不显示",""),
|
CACHE_VEL_DIS("5","不显示",""),
|
||||||
//任务状态
|
//任务状态
|
||||||
TASK_CREATE("1","生成",""),
|
TASK_CREATE("1","生成",""),
|
||||||
TASK_START_P("2","起点确认",""),
|
TASK_START_ERROR("2","点位确认异常",""),
|
||||||
TASK_END_P("3","确定终点",""),
|
//TASK_END_P("3","确定终点",""),
|
||||||
TASK_START_END_P("4","起点和终点确认",""),
|
TASK_START_END_P("4","起点和终点确认",""),
|
||||||
TASK_PUBLISH("5","下发",""),
|
TASK_PUBLISH("5","下发",""),
|
||||||
TASK_RUNNING("6","运行",""),
|
TASK_RUNNING("6","运行",""),
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import org.nl.wms.ext.acs.service.AcsToWmsService;
|
|||||||
import org.nl.wms.pda.service.CacheLineHandService;
|
import org.nl.wms.pda.service.CacheLineHandService;
|
||||||
import org.nl.wms.sch.service.TaskService;
|
import org.nl.wms.sch.service.TaskService;
|
||||||
import org.nl.wms.sch.service.dto.TaskDto;
|
import org.nl.wms.sch.service.dto.TaskDto;
|
||||||
|
import org.nl.wms.sch.tasks.SpeMachineryTask;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -41,20 +42,22 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
|||||||
private TaskService taskService;
|
private TaskService taskService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CacheLineHandService cacheLineHandService;
|
private CacheLineHandService cacheLineHandService;
|
||||||
private final AgvInstService agvInstService;
|
private final SpeMachineryTask speMachineryTask;
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> apply(JSONObject jsonObject) {
|
public Map<String, Object> apply(JSONObject param) {
|
||||||
Map result = MapOf.of("status", HttpStatus.OK.value(), "message", "ACS向WMS申请任务成功!");
|
Map result = MapOf.of("status", HttpStatus.OK.value(), "message", "ACS向WMS申请任务成功!");
|
||||||
//1.专机设备满料请求
|
|
||||||
//2.专机设备缺料请求:专机,深坑
|
String type = param.getString("type");
|
||||||
String type = jsonObject.getString("type");
|
AcsTaskEnum taskEnum = AcsTaskEnum.getType(type, "REQUEST_");
|
||||||
try {
|
try {
|
||||||
if (type.equals(AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode())){
|
switch (taskEnum){
|
||||||
agvInstService.fullMaster(jsonObject);
|
//1.专机设备满料请求 2.专机设备缺料请求:专机
|
||||||
}
|
case REQUEST_CALLTYPE_FULL: case REQUEST_CALLTYPE_EMP:
|
||||||
if (type.equals(AcsTaskEnum.REQUEST_CALLTYPE_EMP.getCode())){
|
speMachineryTask.createTask(param);
|
||||||
agvInstService.callMatter(jsonObject);
|
break;
|
||||||
|
default:
|
||||||
}
|
}
|
||||||
|
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||||
result.put("message",ex.getMessage());
|
result.put("message",ex.getMessage());
|
||||||
|
|||||||
@@ -62,9 +62,9 @@ public class AgvInstService {
|
|||||||
//3.判断下一道路由设备是否含有没满的设备料斗
|
//3.判断下一道路由设备是否含有没满的设备料斗
|
||||||
//4.有则创建agv指令,
|
//4.有则创建agv指令,
|
||||||
// 没有则创建缓存架任务
|
// 没有则创建缓存架任务
|
||||||
public void fullMaster(JSONObject param){
|
public JSONObject fullMaster(JSONObject param){
|
||||||
|
JSONObject taskForm = null;
|
||||||
log.info(OPT_NAME+"fullMaster param:{}",JSONObject.toJSONString(param));
|
log.info(OPT_NAME+"fullMaster param:{}",JSONObject.toJSONString(param));
|
||||||
|
|
||||||
WQLObject workOrder = WQLObject.getWQLObject("PDM_produce_workOrder");
|
WQLObject workOrder = WQLObject.getWQLObject("PDM_produce_workOrder");
|
||||||
WQLObject basePoint = WQLObject.getWQLObject("sch_base_point");
|
WQLObject basePoint = WQLObject.getWQLObject("sch_base_point");
|
||||||
WQLObject cacheLineSearch = WQLObject.getWQLObject("SCH_cacheLine_region_relation");
|
WQLObject cacheLineSearch = WQLObject.getWQLObject("SCH_cacheLine_region_relation");
|
||||||
@@ -74,65 +74,53 @@ public class AgvInstService {
|
|||||||
String quantity = param.getString("quantity");
|
String quantity = param.getString("quantity");
|
||||||
//1.PDM_produce_workOrder
|
//1.PDM_produce_workOrder
|
||||||
JSONObject order = workOrder.query("workorder_code = '" + workorder + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0);
|
JSONObject order = workOrder.query("workorder_code = '" + workorder + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0);
|
||||||
if (order==null){
|
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", workorder));
|
||||||
throw new BadRequestException("下发工单不存在未完成工单:"+workorder);
|
|
||||||
}
|
|
||||||
String needMove = order.getString("is_needmove");
|
|
||||||
String materialprocessSeries = order.getString("materialprocess_series");
|
|
||||||
|
|
||||||
|
String needMove = order.getString("is_needmove");
|
||||||
String taskType = AcsTaskEnum.TASK_PRODUCT_MAC.getCode();
|
String taskType = AcsTaskEnum.TASK_PRODUCT_MAC.getCode();
|
||||||
if (StatusEnum.STATUS_TRUE.getCode().equals(needMove)){
|
if (StatusEnum.STATUS_TRUE.getCode().equals(needMove)){
|
||||||
JSONObject devicePoint = basePoint.query("point_code = '" + point_code + "' and is_delete = 0 and is_used = 1").uniqueResult(0);
|
JSONObject devicePoint = basePoint.query("point_code = '" + point_code + "' and is_delete = 0 and is_used = 1").uniqueResult(0);
|
||||||
JSONObject empPoint = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "2", "point_code", point_code, "point_type", StatusEnum.POINT_LOCATION_EMP.getCode())).process().uniqueResult(0);
|
JSONObject empPoint = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "2", "point_code", point_code, "point_type", StatusEnum.POINT_LOCATION_EMP.getCode())).process().uniqueResult(0);
|
||||||
|
|
||||||
String nextPoint = null;
|
String nextPoint = null;
|
||||||
//2.进行终点判断
|
//判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位:
|
||||||
JSONArray nextPointList = WQL.getWO("sch_point").addParamMap(MapOf.of("flag","3","region_code", devicePoint.getString("next_region_code"),"qty",quantity)).process().getResultJSONArray(0);
|
|
||||||
if (nextPointList.size()>0){
|
|
||||||
//判断缓存线是不是去深坑清洗
|
|
||||||
if (devicePoint.getString("next_region_code").equals(ConstantParam.SK_REGION)){
|
|
||||||
String deviceSql = nextPointList.stream().map(a -> ((JSONObject) a).getString("device_code")).collect(Collectors.joining("','"));
|
|
||||||
JSONArray runDevs = WQL.getWO("sch_point").addParamMap(MapOf.of("flag","4", "device_code","'"+deviceSql+"'")).process().getResultJSONArray(0);
|
|
||||||
if (runDevs.size()>0){
|
|
||||||
String device_code = runDevs.getJSONObject(0).getString("device_code");
|
|
||||||
JSONObject SKPoint = (JSONObject)nextPointList.stream().filter(o -> ((JSONObject) o).getString("device_code").equals(device_code)).findFirst().get();
|
|
||||||
nextPoint = SKPoint.getString("point_code");
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
nextPoint = nextPointList.getJSONObject(0).getString("point_code");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String cacheVehile = "";
|
String cacheVehile = "";
|
||||||
//根据区域物料对应关系查询缓存线
|
if (devicePoint.getString("next_region_code").equals(ConstantParam.SK_REGION)){
|
||||||
if (StringUtils.isEmpty(nextPoint)){
|
nextPoint = "";
|
||||||
JSONObject cacheLine = cacheLineSearch.query("region_code = '"+devicePoint.getString("region_code")+"'").uniqueResult(0);
|
}else {
|
||||||
nextPoint = cacheLine.getString("cacheline_code");
|
JSONArray nextPointList = WQL.getWO("sch_point").addParamMap(MapOf.of("flag","3","region_code", devicePoint.getString("next_region_code"),"qty",quantity)).process().getResultJSONArray(0);
|
||||||
//满料请求:查询缓存线空载具列表
|
if (nextPointList.size()>0){
|
||||||
cacheVehile = getCacheVehile(nextPoint, null);
|
nextPoint = nextPointList.getJSONObject(0).getString("point_code");
|
||||||
if (StringUtils.isEmpty(cacheVehile)) {
|
if (StringUtils.isEmpty(nextPoint)){
|
||||||
throw new BadRequestException("缓存线:"+nextPoint+"没有可用空载具");
|
JSONObject cacheLine = cacheLineSearch.query("region_code = '"+devicePoint.getString("region_code")+"'").uniqueResult(0);
|
||||||
|
nextPoint = cacheLine.getString("cacheline_code");
|
||||||
|
//满料请求:查询缓存线空载具列表
|
||||||
|
cacheVehile = getCacheVehile(nextPoint, null);
|
||||||
|
if (StringUtils.isEmpty(cacheVehile)) {
|
||||||
|
throw new BadRequestException("缓存线:"+nextPoint+"没有可用空载具");
|
||||||
|
}
|
||||||
|
taskType = AcsTaskEnum.TASK_CACHELINE_OUT.getCode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
taskType = AcsTaskEnum.TASK_CACHELINE_OUT.getCode();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//生成任务nextPoint
|
//生成任务nextPoint
|
||||||
SpeMachineryTask pointTask = new SpeMachineryTask();
|
SpeMachineryTask pointTask = new SpeMachineryTask();
|
||||||
JSONObject taskForm = new JSONObject(MapOf.of("start_point_code",point_code,
|
taskForm = new JSONObject(MapOf.of("start_point_code",point_code,
|
||||||
"next_point_code",nextPoint,"return_point_code", empPoint.getString("point_code"),"vehicle_code",
|
"next_point_code",nextPoint,"return_point_code", empPoint.getString("point_code"),"vehicle_code",
|
||||||
cacheVehile,"quantity", quantity,"product_area",devicePoint.getString("product_area"),"type",taskType));
|
cacheVehile,"quantity", quantity,"product_area",devicePoint.getString("product_area"),"type",taskType));
|
||||||
String taskId = pointTask.createTask(taskForm);
|
return taskForm;
|
||||||
log.info(OPT_NAME+"fullMaster taskID:{}",taskId);
|
|
||||||
}
|
}
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
log.error(OPT_NAME+"fullMaster error:{}",ex);
|
log.error(OPT_NAME+"fullMaster error:{}",ex);
|
||||||
throw ex;
|
throw ex;
|
||||||
}
|
}
|
||||||
|
return taskForm;
|
||||||
};
|
};
|
||||||
//缺料请求:上料位
|
//缺料请求:上料位
|
||||||
//1.判断当前设备表对应的缓存线是否开放
|
//1.判断当前设备表对应的缓存线是否开放
|
||||||
//2.根据当前设备绑定的物料id,从缓存线中获取相同物料对应载具列表
|
//2.根据当前设备绑定的物料id,从缓存线中获取相同物料对应载具列表
|
||||||
//3.agv根据对应载具列表行进扫码匹配:匹配到对应物料则创建点对点任务
|
//3.agv根据对应载具列表行进扫码匹配:匹配到对应物料则创建点对点任务
|
||||||
public void callMatter(JSONObject param){
|
public JSONObject callMatter(JSONObject param){
|
||||||
|
JSONObject taskForm = null;
|
||||||
log.info(OPT_NAME+"callMatter param:{}",JSONObject.toJSONString(param));
|
log.info(OPT_NAME+"callMatter param:{}",JSONObject.toJSONString(param));
|
||||||
WQLObject basePointTable = WQLObject.getWQLObject("SCH_BASE_Point");
|
WQLObject basePointTable = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||||
WQLObject workOrderTable = WQLObject.getWQLObject("PDM_produce_workOrder");
|
WQLObject workOrderTable = WQLObject.getWQLObject("PDM_produce_workOrder");
|
||||||
@@ -145,9 +133,6 @@ public class AgvInstService {
|
|||||||
JSONObject devicePoint = basePointTable.query("point_code = '" + point_code + "' and is_delete = 0 and is_used = 1").uniqueResult(0);
|
JSONObject devicePoint = basePointTable.query("point_code = '" + point_code + "' and is_delete = 0 and is_used = 1").uniqueResult(0);
|
||||||
JSONObject order = workOrderTable.query("workorder_code = '" + workorder + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0);
|
JSONObject order = workOrderTable.query("workorder_code = '" + workorder + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0);
|
||||||
Assert.notNull(devicePoint, String.format("点位%s对应点位信息不存在", point_code));
|
Assert.notNull(devicePoint, String.format("点位%s对应点位信息不存在", point_code));
|
||||||
if (order == null){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String material_id = order.getString("material_id");
|
String material_id = order.getString("material_id");
|
||||||
try {
|
try {
|
||||||
JSONObject cacheLine = cacheLineTable.query("region_code = '"+devicePoint.getString("region_code")+"' and is_active = '"+StatusEnum.STATUS_TRUE.getCode()+"'").uniqueResult(0);
|
JSONObject cacheLine = cacheLineTable.query("region_code = '"+devicePoint.getString("region_code")+"' and is_active = '"+StatusEnum.STATUS_TRUE.getCode()+"'").uniqueResult(0);
|
||||||
@@ -166,16 +151,14 @@ public class AgvInstService {
|
|||||||
throw new BadRequestException(String.format("缓存线%s上含物料%s的载具已分配完",startPoint,material_id));
|
throw new BadRequestException(String.format("缓存线%s上含物料%s的载具已分配完",startPoint,material_id));
|
||||||
}
|
}
|
||||||
SpeMachineryTask pointTask = new SpeMachineryTask();
|
SpeMachineryTask pointTask = new SpeMachineryTask();
|
||||||
JSONObject taskForm = new JSONObject(MapOf.of("start_point_code",startPoint,
|
taskForm = new JSONObject(MapOf.of("start_point_code",startPoint,
|
||||||
"next_point_code",point_code,"return_point_code", startPoint,"vehicle_code",
|
"next_point_code",point_code,"return_point_code", startPoint,"vehicle_code",
|
||||||
cacheVehile,"product_area",devicePoint.getString("product_area"),"type",AcsTaskEnum.TASK_CACHELINE_OUT.getCode(),"material_id", material_id));
|
cacheVehile,"product_area",devicePoint.getString("product_area"),"type",AcsTaskEnum.TASK_CACHELINE_OUT.getCode(),"material_id", material_id));
|
||||||
String taskId = pointTask.createTask(taskForm);
|
|
||||||
log.info(OPT_NAME+"callMatter taskID:{}",taskId);
|
|
||||||
|
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
log.error(OPT_NAME+"callMatter error:{}",ex);
|
log.error(OPT_NAME+"callMatter error:{}",ex);
|
||||||
throw ex;
|
throw ex;
|
||||||
}
|
}
|
||||||
|
return taskForm;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCacheVehile(String cacheLine,String materialId){
|
public String getCacheVehile(String cacheLine,String materialId){
|
||||||
|
|||||||
@@ -29,4 +29,7 @@ public abstract class AbstractAcsTask {
|
|||||||
public abstract void cancel(String task_id);
|
public abstract void cancel(String task_id);
|
||||||
|
|
||||||
|
|
||||||
|
public abstract void pointConfirm(JSONObject param);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -391,4 +391,9 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
public void cancel(String task_id) {
|
public void cancel(String task_id) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pointConfirm(JSONObject param) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -193,4 +193,10 @@ public class ProductInTask extends AbstractAcsTask {
|
|||||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||||
this.updateTaskStatus(taskObj, "0");
|
this.updateTaskStatus(taskObj, "0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pointConfirm(JSONObject param) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ public class SendMaterialTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
@@ -316,7 +316,7 @@ public class SendMaterialTask extends AbstractAcsTask {
|
|||||||
return task_id;
|
return task_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(String task_id) {
|
public void cancel(String task_id) {
|
||||||
@@ -324,4 +324,8 @@ public class SendMaterialTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pointConfirm(JSONObject param) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,10 @@ import org.nl.modules.common.exception.BadRequestException;
|
|||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.nl.wms.ext.acs.service.impl.AgvInstService;
|
||||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|
||||||
@@ -27,6 +29,9 @@ import java.util.Map;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class SpeMachineryTask extends AbstractAcsTask {
|
public class SpeMachineryTask extends AbstractAcsTask {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
AgvInstService agvInstService;
|
||||||
private final Map<String,SpeStatusHandler > SpeHandles= new HashMap<>();
|
private final Map<String,SpeStatusHandler > SpeHandles= new HashMap<>();
|
||||||
private static String OPT_NAME = "ACS回调# ";
|
private static String OPT_NAME = "ACS回调# ";
|
||||||
|
|
||||||
@@ -53,14 +58,21 @@ public class SpeMachineryTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject param) {
|
||||||
String task_name = form.getString("task_name");
|
String type = param.getString("type");
|
||||||
|
JSONObject form = null;
|
||||||
|
if (AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type)){
|
||||||
|
form = agvInstService.fullMaster(param);
|
||||||
|
}
|
||||||
|
if (AcsTaskEnum.REQUEST_CALLTYPE_EMP.getCode().equals(type)){
|
||||||
|
form = agvInstService.callMatter(param);
|
||||||
|
}
|
||||||
|
String task_name = form.getString("task_name");
|
||||||
String start_point_code = form.getString("point_code1");
|
String start_point_code = form.getString("point_code1");
|
||||||
String next_point_code = form.getString("point_code2");
|
String next_point_code = form.getString("point_code2");
|
||||||
String vehicle_code = form.getString("vehicle_code");
|
String vehicle_code = form.getString("vehicle_code");
|
||||||
String vehicle_code2 = form.getString("vehicle_code2");
|
String vehicle_code2 = form.getString("vehicle_code2");
|
||||||
String material_id = form.getString("material_id");
|
String material_id = form.getString("material_id");
|
||||||
String type = form.getString("type");
|
|
||||||
if(StrUtil.isEmpty(start_point_code)) {
|
if(StrUtil.isEmpty(start_point_code)) {
|
||||||
throw new BadRequestException("起点不能为空!");
|
throw new BadRequestException("起点不能为空!");
|
||||||
}
|
}
|
||||||
@@ -208,4 +220,9 @@ public class SpeMachineryTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pointConfirm(JSONObject param) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ 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.lang.reflect.Method;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -46,9 +47,29 @@ public class TaskScheduleService {
|
|||||||
if (islock){
|
if (islock){
|
||||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||||
//查询所有自动下发的任务
|
//查询所有自动下发的任务
|
||||||
JSONArray all = taskTable.query("is_auto_issue = '1' and task_type < '" + StatusEnum.TASK_PUBLISH + "'").getResultJSONArray(0);
|
JSONArray all = taskTable.query("is_auto_issue = '1' and task_type < '" + StatusEnum.TASK_PUBLISH.getCode() + "'").getResultJSONArray(0);
|
||||||
//分区域:不同区域调用不同acs接口
|
//进行起点终点确认:
|
||||||
|
if (all.size() == 0){
|
||||||
|
return;
|
||||||
|
}
|
||||||
log.info("TaskScheduleService#taskPublish all_task:{}",all.size());
|
log.info("TaskScheduleService#taskPublish all_task:{}",all.size());
|
||||||
|
Iterator<Object> iterator = all.stream().iterator();
|
||||||
|
while (iterator.hasNext()){
|
||||||
|
JSONObject task = (JSONObject)iterator.next();
|
||||||
|
try {
|
||||||
|
Class<?> clz = Class.forName(task.getString("handle_class"));
|
||||||
|
Object obj = clz.newInstance();
|
||||||
|
// 调用每个任务类的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());
|
||||||
|
}catch (Exception ex){
|
||||||
|
task.put("task_type", StatusEnum.TASK_START_ERROR.getCode());
|
||||||
|
task.put("remark",ex.getMessage());
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//分区域:不同区域调用不同acs接口
|
||||||
Map<String, List<Object>> areaCollent = all.stream().collect(Collectors.groupingBy(o -> ((JSONObject) o).getString("product_area")));
|
Map<String, List<Object>> areaCollent = all.stream().collect(Collectors.groupingBy(o -> ((JSONObject) o).getString("product_area")));
|
||||||
for (String area : areaCollent.keySet()) {
|
for (String area : areaCollent.keySet()) {
|
||||||
List<Object> array = areaCollent.get(area);
|
List<Object> array = areaCollent.get(area);
|
||||||
|
|||||||
Reference in New Issue
Block a user