代码更新
This commit is contained in:
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -66,6 +67,9 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
|
||||
*/
|
||||
List<SchBaseTask> findUnFinishTasksByTaskConfig(String config_code, String task_code);
|
||||
|
||||
|
||||
List<SchBaseTask> findTasksByTaskStatus(String config_code, TaskStatus status);
|
||||
|
||||
/**
|
||||
* 任务申请
|
||||
*
|
||||
|
||||
@@ -17,7 +17,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch.task.service.dao.mapper.SchBaseTaskMapper;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task.service.dao.mapper.SchBaseTaskconfigMapper;
|
||||
import org.nl.wms.sch.task_manage.BaseTask;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.task.TaskFactory;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -104,6 +104,18 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
return schBaseTasks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SchBaseTask> findTasksByTaskStatus(String config_code, TaskStatus status) {
|
||||
Assert.notNull(config_code, "任务配置编码不能为空!");
|
||||
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
|
||||
lam.eq(SchBaseTask::getConfig_code, config_code)
|
||||
.eq(SchBaseTask::getTask_status, status.getCode())
|
||||
.ne(SchBaseTask::getIs_delete, true);
|
||||
|
||||
List<SchBaseTask> schBaseTasks = schBaseTaskMapper.selectList(lam);
|
||||
return schBaseTasks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void create(SchBaseTask entity) {
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
@@ -134,7 +146,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
//3、叫料
|
||||
//4、叫空载具
|
||||
TaskFactory taskFactory = new TaskFactory();
|
||||
BaseTask task = taskFactory.getTask("HNMLTask");
|
||||
AbstractTask task = taskFactory.getTask("HNMLTask");
|
||||
task.apply(param);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,182 @@
|
||||
package org.nl.wms.sch.task_manage;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task.service.impl.SchBaseTaskServiceImpl;
|
||||
import org.nl.wms.sch.task.service.impl.SchBaseTaskconfigServiceImpl;
|
||||
import org.nl.wms.sch.task_manage.task.AcsUtil;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author ldjun
|
||||
* @version 1.0
|
||||
* @date 2023年05月16日 16:42
|
||||
* @desc desc
|
||||
*/
|
||||
|
||||
public abstract class AbstractTask {
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
|
||||
/**
|
||||
* 创建
|
||||
*/
|
||||
protected abstract void create();
|
||||
|
||||
/**
|
||||
* 下发
|
||||
*/
|
||||
protected abstract void issue();
|
||||
|
||||
/**
|
||||
* 添加任务进行下发
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List addTask() {
|
||||
/* //任务基础表【sch_base_task】
|
||||
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
|
||||
JSONArray tasks = taskTab.query("handle_class = '" + this.getClass().getName() + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
|
||||
List<AcsTaskDto> arr = new ArrayList<>();
|
||||
for (int i = 0, j = tasks.size(); i < j; i++) {
|
||||
JSONObject json = tasks.getJSONObject(i);
|
||||
AcsTaskDto taskDto = new AcsTaskDto();
|
||||
taskDto.setExt_task_uuid(json.getString("task_id"));
|
||||
taskDto.setTask_code(json.getString("task_code"));
|
||||
taskDto.setTask_type("1");
|
||||
//如果起点是码垛机械手的下料位置,终点是货架,type要给2
|
||||
JSONObject stratrObj = WQLObject.getWQLObject("sch_base_point").query("point_code='" + json.getString("start_point_code") + "'").uniqueResult(0);
|
||||
JSONObject nextObj = WQLObject.getWQLObject("sch_base_point").query("point_code='" + json.getString("next_point_code") + "'").uniqueResult(0);
|
||||
if (StrUtil.equals(stratrObj.getString("area_type"), AreaEnum.YZQY.getCode()) &&
|
||||
StrUtil.equals(nextObj.getString("area_type"), AreaEnum.RYHCHJ.getCode())
|
||||
) {
|
||||
taskDto.setTask_type("2");
|
||||
}
|
||||
taskDto.setRoute_plan_code("normal");
|
||||
taskDto.setStart_device_code(json.getString("start_point_code"));
|
||||
taskDto.setNext_device_code(json.getString("next_point_code"));
|
||||
taskDto.setVehicle_code(json.getString("vehicle_code"));
|
||||
arr.add(taskDto);
|
||||
}
|
||||
return arr;*/
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return WCS的任务集合
|
||||
* @discription 重新下发给wcs任务
|
||||
* @author ldjun
|
||||
* @created 2020年6月12日 下午5:52:28
|
||||
*/
|
||||
protected JSONObject renotifyAcs(SchBaseTask task) {
|
||||
Assert.notNull(task);
|
||||
List<SchBaseTask> taskList = new ArrayList<>();
|
||||
taskList.add(task);
|
||||
return this.renotifyAcs(taskList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return WCS的任务集合
|
||||
* @discription 重新下发给wcs任务
|
||||
* @author ldjun
|
||||
* @created 2020年6月12日 下午5:52:28
|
||||
*/
|
||||
protected JSONObject renotifyAcs(List<SchBaseTask> taskList) {
|
||||
//1、获取任务
|
||||
//2、根据任务配置补全任务
|
||||
//3、下发
|
||||
|
||||
List<AcsTaskDto> list = new ArrayList<>();
|
||||
for (SchBaseTask task : taskList) {
|
||||
AcsTaskDto taskDto = new AcsTaskDto();
|
||||
taskDto.setExt_task_uuid(task.getTask_code());
|
||||
taskDto.setTask_code(task.getTask_code());
|
||||
|
||||
taskDto.setRoute_plan_code("normal");
|
||||
taskDto.setStart_device_code(task.getPoint_code1());
|
||||
taskDto.setNext_device_code(task.getPoint_code2());
|
||||
taskDto.setVehicle_code(task.getVehicle_code());
|
||||
|
||||
this.setTask(task.getConfig_code(), taskDto);
|
||||
list.add(taskDto);
|
||||
}
|
||||
|
||||
return AcsUtil.notifyAcs("api/wms/task", list);
|
||||
}
|
||||
|
||||
private AcsTaskDto setTask(String config_code, AcsTaskDto taskDto) {
|
||||
SchBaseTaskconfig taskConfig = SpringContextHolder.getBean(SchBaseTaskconfigServiceImpl.class).getById(config_code);
|
||||
taskDto.setPriority(taskConfig.getPriority());
|
||||
taskDto.setTask_type(taskConfig.getAcs_task_type());
|
||||
taskDto.setRoute_plan_code("normal");
|
||||
return taskDto;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 定时任务
|
||||
*/
|
||||
protected void schedule() {
|
||||
this.autoCreate();
|
||||
this.create();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 自动生成任务
|
||||
*/
|
||||
public void autoCreate() {
|
||||
|
||||
}
|
||||
|
||||
protected abstract void updateStatus(String config_code, TaskStatus status);
|
||||
|
||||
/**
|
||||
* 寻找合适的点位
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
protected abstract List<Object> findPoints();
|
||||
|
||||
|
||||
public void apply(JSONObject param) {
|
||||
String point_code = "";
|
||||
String config_code = "HNMLTask";
|
||||
//1、校验数据
|
||||
SchBaseTaskconfig taskConfig = SpringContextHolder.getBean(SchBaseTaskconfigServiceImpl.class).getById(config_code);
|
||||
Integer tcmn = taskConfig.getTask_create_max_num();
|
||||
SchBaseTaskServiceImpl taskService = SpringContextHolder.getBean(SchBaseTaskServiceImpl.class);
|
||||
List<SchBaseTask> unFinishTasksByTaskConfig = taskService.findUnFinishTasksByTaskConfig(taskConfig.getConfig_code());
|
||||
|
||||
Assert.isFalse(unFinishTasksByTaskConfig.size() > tcmn, "该点位{}申请的任务未完成数已超过上限,无法申请任务", point_code);
|
||||
|
||||
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setAcs_trace_id("");
|
||||
task.setConfig_code(config_code);
|
||||
task.setCreate_id("");
|
||||
task.setCreate_mode("");
|
||||
task.setPoint_code1("");
|
||||
task.setVehicle_code("");
|
||||
task.setTask_status(TaskStatus.APPLY.getCode());
|
||||
SpringContextHolder.getBean(SchBaseTaskServiceImpl.class).create(task);
|
||||
//1、如果是送料,检测载具状态
|
||||
//2、送空载具
|
||||
//3、叫料
|
||||
//4、叫空载具
|
||||
|
||||
//校验
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package org.nl.wms.sch.task_manage;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AcsTaskDto {
|
||||
//任务标识
|
||||
private String ext_task_uuid;
|
||||
//任务编码
|
||||
private String task_code;
|
||||
//任务类型
|
||||
private String task_type;
|
||||
//起点
|
||||
private String start_device_code;
|
||||
//下一点
|
||||
private String next_device_code;
|
||||
//载具号
|
||||
private String vehicle_code;
|
||||
//载具类型
|
||||
private String vehicle_type;
|
||||
//优先级
|
||||
private String priority;
|
||||
//备注
|
||||
private String remark;
|
||||
//扩展参数
|
||||
private String params;
|
||||
//路由类型
|
||||
private String route_plan_code;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
|
||||
package org.nl.wms.sch.task_manage;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.reflections.Reflections;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class AutoCreateTask {
|
||||
private Set<Class<? extends AbstractTask>> subTypes = null;
|
||||
|
||||
@SneakyThrows
|
||||
public void run() {
|
||||
log.info("定时任务AutoCreateTask开始执行:");
|
||||
|
||||
if (ObjectUtil.isNull(subTypes) || subTypes.isEmpty()) {
|
||||
Reflections reflections = new Reflections("org.nl");
|
||||
//System.out.println(AbstractAcsTask.class.isAssignableFrom(DumpInvTask.class));
|
||||
subTypes = reflections.getSubTypesOf(AbstractTask.class);
|
||||
}
|
||||
this.doExecute();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 需要按照任务配置类型并行执行
|
||||
*/
|
||||
private void doExecute() {
|
||||
subTypes.forEach(clz -> {
|
||||
// 调用AbstractAcsTask类的每个子类的schedule()方法
|
||||
try {
|
||||
Object obj = clz.newInstance();
|
||||
//Method m = obj.getClass().getDeclaredMethod("schedule");
|
||||
Method m = obj.getClass().getMethod("schedule");
|
||||
List<AcsTaskDto> tasks = (List<AcsTaskDto>) m.invoke(obj);
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
log.info("定时器执行失败:{}", e.getTargetException().getMessage());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.info("定时器执行失败:{}", e.getMessage());
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
package org.nl.wms.sch.task_manage;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task.service.impl.SchBaseTaskServiceImpl;
|
||||
import org.nl.wms.sch.task.service.impl.SchBaseTaskconfigServiceImpl;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author ldjun
|
||||
* @version 1.0
|
||||
* @date 2023年05月16日 16:42
|
||||
* @desc desc
|
||||
*/
|
||||
|
||||
public abstract class BaseTask {
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
|
||||
/**
|
||||
* 创建
|
||||
*/
|
||||
protected abstract void create(JSONObject param);
|
||||
|
||||
/**
|
||||
* 下发
|
||||
*/
|
||||
protected abstract void issue();
|
||||
|
||||
/**
|
||||
* 定时任务
|
||||
*/
|
||||
protected abstract void schedule();
|
||||
|
||||
protected abstract void updateStatus();
|
||||
|
||||
/**
|
||||
* 寻找合适的点位
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
protected abstract List<Object> findPoints();
|
||||
|
||||
|
||||
public void apply(JSONObject param) {
|
||||
String point_code = "";
|
||||
String config_code = "HNMLTask";
|
||||
//1、校验数据
|
||||
SchBaseTaskconfig taskConfig = SpringContextHolder.getBean(SchBaseTaskconfigServiceImpl.class).getById(config_code);
|
||||
Integer tcmn = taskConfig.getTask_create_max_num();
|
||||
SchBaseTaskServiceImpl taskService = SpringContextHolder.getBean(SchBaseTaskServiceImpl.class);
|
||||
List<SchBaseTask> unFinishTasksByTaskConfig = taskService.findUnFinishTasksByTaskConfig(taskConfig.getConfig_code());
|
||||
|
||||
Assert.isFalse(unFinishTasksByTaskConfig.size() > tcmn, "该点位{}申请的任务未完成数已超过上限,无法申请任务", point_code);
|
||||
|
||||
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setAcs_trace_id("");
|
||||
task.setConfig_code(config_code);
|
||||
task.setCreate_id("");
|
||||
task.setCreate_mode("");
|
||||
task.setPoint_code1("");
|
||||
task.setVehicle_code("");
|
||||
task.setTask_status(TaskStatus.APPLY.getCode());
|
||||
SpringContextHolder.getBean(SchBaseTaskServiceImpl.class).create(task);
|
||||
//1、如果是送料,检测载具状态
|
||||
//2、送空载具
|
||||
//3、叫料
|
||||
//4、叫空载具
|
||||
|
||||
//校验
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
|
||||
package org.nl.wms.sch.task_manage.task;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.wms.sch.task_manage.AcsTaskDto;
|
||||
import org.springframework.http.HttpStatus;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* ACS连接工具类:
|
||||
*/
|
||||
@Slf4j
|
||||
public class AcsUtil {
|
||||
public static JSONObject notifyAcs(String api, List<AcsTaskDto> list) {
|
||||
//判断是否连接ACS系统
|
||||
String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue();
|
||||
JSONObject result = new JSONObject();
|
||||
if (StrUtil.equals("0", isConnect)) {
|
||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||
result.put("message", "未连接ACS!");
|
||||
result.put("data", new JSONObject());
|
||||
return result;
|
||||
}
|
||||
//ACS地址:127.0.0.1:8010
|
||||
String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ACS_URL").getValue();
|
||||
|
||||
String url = acsUrl + api;
|
||||
log.info("下发acs任务的参数为:{}", list.toString());
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(list))
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
} catch (Exception e) {
|
||||
String msg = e.getMessage();
|
||||
//ConnectException: Connection refused: connect
|
||||
//网络不通
|
||||
System.out.println(msg);
|
||||
result.put("status", HttpStatus.BAD_REQUEST);
|
||||
result.put("message", "网络不通,操作失败!");
|
||||
result.put("data", new JSONObject());
|
||||
}
|
||||
//acs抛异常这里
|
||||
/* if (result.getString("status").equals(String.valueOf(HttpStatus.BAD_REQUEST.value())))
|
||||
throw new BadRequestException(result.getString("message"));*/
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package org.nl.wms.sch.task_manage.task;
|
||||
|
||||
import org.nl.wms.sch.task_manage.BaseTask;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.HNMLTask;
|
||||
|
||||
/**
|
||||
@@ -11,7 +11,7 @@ import org.nl.wms.sch.task_manage.task.tasks.HNMLTask;
|
||||
*/
|
||||
public class TaskFactory {
|
||||
//使用 getShape 方法获取形状类型的对象
|
||||
public BaseTask getTask(String taskType) {
|
||||
public AbstractTask getTask(String taskType) {
|
||||
if (taskType == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,18 @@
|
||||
package org.nl.wms.sch.task_manage.task.tasks;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.sch.task_manage.BaseTask;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.point.service.impl.SchBasePointServiceImpl;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||
import org.nl.wms.sch.task.service.impl.SchBaseTaskServiceImpl;
|
||||
import org.nl.wms.sch.task.service.impl.SchBaseTaskconfigServiceImpl;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||
import org.springframework.scheduling.support.TaskUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -11,14 +22,37 @@ import java.util.List;
|
||||
* @date 2023年05月16日 16:44
|
||||
* @desc desc
|
||||
*/
|
||||
public class HNMLTask extends BaseTask {
|
||||
public class HNMLTask extends AbstractTask {
|
||||
private static String TASK_CONFIG_CODE = "HNMLTask";
|
||||
|
||||
@Override
|
||||
protected void updateStatus() {
|
||||
protected void updateStatus(String task_code, TaskStatus status) {
|
||||
ISchBaseTaskService taskService = SpringContextHolder.getBean(SchBaseTaskServiceImpl.class);
|
||||
taskService.updateById(null);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void create(JSONObject param) {
|
||||
protected void create() {
|
||||
ISchBaseTaskService taskService = SpringContextHolder.getBean(SchBaseTaskServiceImpl.class);
|
||||
ISchBasePointService pointService = SpringContextHolder.getBean(SchBasePointServiceImpl.class);
|
||||
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||
|
||||
SchBaseTaskconfig taskConfig = SpringContextHolder.getBean(SchBaseTaskconfigServiceImpl.class).getById(TASK_CONFIG_CODE);
|
||||
for (SchBaseTask task : tasks) {
|
||||
List<String> next_region_strs = taskConfig.getNext_region_strs();
|
||||
if (ObjectUtil.isEmpty(next_region_strs)) continue;
|
||||
|
||||
|
||||
SchBasePoint point = new SchBasePoint();
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
|
||||
taskService.update(task);
|
||||
pointService.update(point);
|
||||
this.renotifyAcs(task);
|
||||
//二车间-
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user