rev:生产调度相关
This commit is contained in:
@@ -89,7 +89,8 @@ public class AcsToWmsController {
|
|||||||
@ApiOperation("向wms反馈设备状态")
|
@ApiOperation("向wms反馈设备状态")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> feedDeviceStatusType(@RequestBody JSONObject param) {
|
public ResponseEntity<Object> feedDeviceStatusType(@RequestBody JSONObject param) {
|
||||||
return new ResponseEntity<>(acsToWmsService.feedDeviceStatusType(param), HttpStatus.OK);
|
return null;
|
||||||
|
// return new ResponseEntity<>(acsToWmsService.feedDeviceStatusType(param), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
|||||||
import org.nl.wms.product_manage.sch.service.TaskService;
|
import org.nl.wms.product_manage.sch.service.TaskService;
|
||||||
import org.nl.wms.product_manage.sch.service.dto.TaskDto;
|
import org.nl.wms.product_manage.sch.service.dto.TaskDto;
|
||||||
import org.nl.wms.product_manage.sch.tasks.WashMachineryTask;
|
import org.nl.wms.product_manage.sch.tasks.WashMachineryTask;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -47,6 +49,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
|||||||
private TaskService taskService;
|
private TaskService taskService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CacheLineHandService cacheLineHandService;
|
private CacheLineHandService cacheLineHandService;
|
||||||
|
@Autowired
|
||||||
|
private IPdmProduceWorkorderService workorderService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -203,17 +207,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
|||||||
public Map<String, Object> orderStatus(JSONObject orderJson) {
|
public Map<String, Object> orderStatus(JSONObject orderJson) {
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
try {
|
try {
|
||||||
JSONObject map = new JSONObject();
|
PdmProduceWorkorder workorder = new PdmProduceWorkorder();
|
||||||
map.put("workorder_id", orderJson.getString("workorder_id"));
|
workorder.setWorkorder_id(orderJson.getString("workorder_id"));
|
||||||
map.put("workorder_status", orderJson.getString("status"));
|
workorder.setWorkorder_status(orderJson.getString("status"));
|
||||||
map.put("update_id", "1");
|
workorder.setDq_real_qty(orderJson.getBigDecimal("real_qty"));
|
||||||
map.put("real_qty", orderJson.getString("real_qty"));
|
workorder.setRealproduceend_date(DateUtil.now());
|
||||||
map.put("device_code", "");
|
workorderService.updateById(workorder);
|
||||||
map.put("update_name", "acs");
|
|
||||||
map.put("update_time", DateUtil.now());
|
|
||||||
map.put("realproduceend_date", DateUtil.now());
|
|
||||||
WQLObject.getWQLObject("PDM_produce_workOrder").update(map, "workorder_id = '" + orderJson.getString("workorder_id") + "'");
|
|
||||||
//OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,orderJson.getString("workorder_id"),MapOf.of("workorder_status", orderJson.getString("status")));
|
|
||||||
} catch (Exception e){
|
} catch (Exception e){
|
||||||
result.put("status", 400);
|
result.put("status", 400);
|
||||||
result.put("message", e.getMessage());
|
result.put("message", e.getMessage());
|
||||||
|
|||||||
@@ -52,7 +52,11 @@ public class AgvInstService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchCachelineVehicleService cachelineVehicleService;
|
private ISchCachelineVehicleService cachelineVehicleService;
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String a= "A1_DC_15_6";
|
||||||
|
int i = a.lastIndexOf("_");
|
||||||
|
System.out.println(a.substring(0, i));
|
||||||
|
}
|
||||||
|
|
||||||
//满料请求点位确认
|
//满料请求点位确认
|
||||||
//1.判断当前设备路由表是否配置下一道路由设备,如果不是则说明直接到清洗
|
//1.判断当前设备路由表是否配置下一道路由设备,如果不是则说明直接到清洗
|
||||||
@@ -81,12 +85,15 @@ public class AgvInstService {
|
|||||||
if (next.getParams().get("cacheLine") == null){
|
if (next.getParams().get("cacheLine") == null){
|
||||||
throw new BadRequestException("当前任务下一道工序无可用设备");
|
throw new BadRequestException("当前任务下一道工序无可用设备");
|
||||||
}
|
}
|
||||||
nextPoint = next.getParams().get("cacheLine");
|
nextPoint = getParamByXml(workprodure, next, nextPoint);
|
||||||
cacheVehile = getCacheVehile(nextPoint, null);
|
cacheVehile = getCacheVehile(nextPoint, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
结果校验:{
|
||||||
if (StringUtils.isBlank(nextPoint)) {
|
if (StringUtils.isBlank(nextPoint)) {
|
||||||
throw new BadRequestException("逻辑非配错误,请检查代码");
|
throw new BadRequestException("逻辑非配错误,请检查代码");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
basePointService.update(new UpdateWrapper<SchBasePoint>()
|
basePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
.set("lock_type",StatusEnum.LOCK_ON.getCode()).set("task_id",task.getString("task_id")).eq("point_code",nextPoint));
|
.set("lock_type",StatusEnum.LOCK_ON.getCode()).set("task_id",task.getString("task_id")).eq("point_code",nextPoint));
|
||||||
|
|
||||||
@@ -96,7 +103,20 @@ public class AgvInstService {
|
|||||||
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());
|
||||||
taskService.updateById(schBaseTask);
|
taskService.updateById(schBaseTask);
|
||||||
};
|
}
|
||||||
|
|
||||||
|
private String getParamByXml(Map<String, String> workprodure, FlowElement next, String nextPoint) {
|
||||||
|
Object cacheLine = next.getParams().get("cacheLine");
|
||||||
|
if (cacheLine instanceof String){
|
||||||
|
nextPoint = (String) cacheLine;
|
||||||
|
}
|
||||||
|
if (cacheLine instanceof Map){
|
||||||
|
nextPoint = ((Map<String, String>) cacheLine).get(workprodure.get("device_code").substring(0, workprodure.get("device_code").lastIndexOf("_")));
|
||||||
|
}
|
||||||
|
return nextPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
public FlowElement getFlowElement(JSONObject task,Map<String,String> workprodure){
|
public FlowElement getFlowElement(JSONObject task,Map<String,String> workprodure){
|
||||||
if (CollectionUtils.isEmpty(workprodure)){
|
if (CollectionUtils.isEmpty(workprodure)){
|
||||||
@@ -126,7 +146,7 @@ public class AgvInstService {
|
|||||||
//3.agv根据对应载具列表行进扫码匹配:匹配到对应物料则创建点对点任务
|
//3.agv根据对应载具列表行进扫码匹配:匹配到对应物料则创建点对点任务
|
||||||
public void empMatter(JSONObject task){
|
public void empMatter(JSONObject task){
|
||||||
//参数
|
//参数
|
||||||
String targetDevice = task.getString("next_point_code");
|
String targetDevice = task.getString("point_code2");
|
||||||
String material_id = task.getString("material_id");
|
String material_id = task.getString("material_id");
|
||||||
SchBasePoint devicePoint = basePointService.getOne(new QueryWrapper<SchBasePoint>()
|
SchBasePoint devicePoint = basePointService.getOne(new QueryWrapper<SchBasePoint>()
|
||||||
.eq("point_code", targetDevice)
|
.eq("point_code", targetDevice)
|
||||||
@@ -157,6 +177,7 @@ public class AgvInstService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getCacheVehile(String cacheLine,String materialId){
|
public String getCacheVehile(String cacheLine,String materialId){
|
||||||
|
if (StringUtils.isNotEmpty(cacheLine)){
|
||||||
int count = taskService.count(new QueryWrapper<SchBaseTask>().eq("point_code2", cacheLine).lt("task_status", StatusEnum.TASK_FINISH.getCode()));
|
int count = taskService.count(new QueryWrapper<SchBaseTask>().eq("point_code2", cacheLine).lt("task_status", StatusEnum.TASK_FINISH.getCode()));
|
||||||
String status = StringUtils.isBlank(materialId) ? StatusEnum.CACHE_VEL_EMT.getCode() : StatusEnum.CACHE_VEL_FULL.getCode();
|
String status = StringUtils.isBlank(materialId) ? StatusEnum.CACHE_VEL_EMT.getCode() : StatusEnum.CACHE_VEL_FULL.getCode();
|
||||||
List<SchCachelineVehicle> vehicle = cachelineVehicleService.getCachelineVehicle(MapOf.of("vehicle_status", status, "material_id", materialId));
|
List<SchCachelineVehicle> vehicle = cachelineVehicleService.getCachelineVehicle(MapOf.of("vehicle_status", status, "material_id", materialId));
|
||||||
@@ -165,6 +186,7 @@ public class AgvInstService {
|
|||||||
return vehicle.stream().map(SchCachelineVehicle::getVehicle_code).collect(Collectors.joining(","));
|
return vehicle.stream().map(SchCachelineVehicle::getVehicle_code).collect(Collectors.joining(","));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@
|
|||||||
WHERE d.is_delete = 0
|
WHERE d.is_delete = 0
|
||||||
ORDER BY
|
ORDER BY
|
||||||
device_code
|
device_code
|
||||||
LIMIT 10
|
LIMIT 200
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ 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.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
import org.nl.common.enums.InterfaceLogType;
|
import org.nl.common.enums.InterfaceLogType;
|
||||||
@@ -18,11 +19,17 @@ 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.workorder.IPdmProduceWorkorderService;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -31,7 +38,10 @@ import java.util.Map;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class SpeEmpTask extends AbstractAcsTask {
|
public class SpeEmpTask extends AbstractAcsTask {
|
||||||
|
@Autowired
|
||||||
|
private IPdmProduceWorkorderService workorderService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
@Autowired
|
@Autowired
|
||||||
AgvInstService agvInstService;
|
AgvInstService agvInstService;
|
||||||
private final Map<String,SpeStatusHandler > SpeHandles= new HashMap<>();
|
private final Map<String,SpeStatusHandler > SpeHandles= new HashMap<>();
|
||||||
@@ -62,28 +72,33 @@ public class SpeEmpTask extends AbstractAcsTask {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public String createTask(JSONObject param) {
|
public String createTask(JSONObject param) {
|
||||||
|
//{"workorder_code":230523019,"device_code":"A1_TW_15_6_D","type":"1"}
|
||||||
String point_code = param.getString("device_code");
|
String point_code = param.getString("device_code");
|
||||||
String quantity = param.getString("quantity");
|
String quantity = param.getString("quantity");
|
||||||
String type = param.getString("type");
|
String type = param.getString("type");
|
||||||
JSONObject order = WQLObject.getWQLObject("PDM_produce_workOrder").query("workorder_code = '" + param.getString("workorder_code") + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0);
|
PdmProduceWorkorder one = workorderService.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||||
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
.eq("workorder_code", param.getString("workorder_code"))
|
||||||
JSONArray chectIndDatabase = WQLObject.getWQLObject("SCH_BASE_Task").query((AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type) ? "point_code1" : "point_code2") + "= '" + point_code + "' and task_status < " + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0);
|
.lt("workorder_status", StatusEnum.TASK_FINISH.getCode()));
|
||||||
if (ObjectUtil.isNotEmpty(chectIndDatabase)){
|
Assert.notNull(one, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||||
Assert.notNull(order, String.format("设备%s存在未完成任务", param.getString("point_code")));
|
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||||
|
.eq("point_code2", point_code).lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||||
|
);
|
||||||
|
if (!CollectionUtils.isEmpty(list)){
|
||||||
|
throw new BadRequestException(String.format("设备%s存在未完成任务", param.getString("device_code")));
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject form = new JSONObject(MapOf.of("start_point_code","",
|
JSONObject form = new JSONObject(MapOf.of("start_point_code","",
|
||||||
"next_point_code",point_code,"return_point_code", "","vehicle_code",
|
"next_point_code",point_code,"return_point_code", "","vehicle_code",
|
||||||
"","product_area",order.getString("product_area"),"quantity", quantity,"type",type,"material_id", order.getString("material_id")));
|
"","product_area",one.getProduct_area(),"quantity", quantity,"type",type,"material_id", one.getMaterial_id()));
|
||||||
String taskId = IdUtil.getSnowflake(1, 1).nextId() + "";
|
String taskId = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||||
|
|
||||||
JSONObject task = packageParam(form, taskId);
|
JSONObject task = packageParam(form, taskId);
|
||||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(task);
|
taskService.save(task.toJavaObject(SchBaseTask.class));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
pointConfirm(task);
|
pointConfirm(task);
|
||||||
//下发
|
//下发
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
|
log.error("SpeEmpTask#点位确认异常:{}",ex.getMessage());
|
||||||
task.put("task_status", TaskStatusEnum.SURE_START_ERROR.getCode());
|
task.put("task_status", TaskStatusEnum.SURE_START_ERROR.getCode());
|
||||||
task.put("remark",ex.getMessage());
|
task.put("remark",ex.getMessage());
|
||||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
WQLObject.getWQLObject("sch_base_task").update(task);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ 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.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
import org.nl.common.enums.InterfaceLogType;
|
import org.nl.common.enums.InterfaceLogType;
|
||||||
@@ -19,11 +20,17 @@ 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.workorder.IPdmProduceWorkorderService;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -32,9 +39,13 @@ import java.util.Map;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class SpeFullTask extends AbstractAcsTask {
|
public class SpeFullTask extends AbstractAcsTask {
|
||||||
|
@Autowired
|
||||||
|
private IPdmProduceWorkorderService workorderService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
@Autowired
|
@Autowired
|
||||||
AgvInstService agvInstService;
|
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回调# ";
|
||||||
|
|
||||||
@@ -63,25 +74,29 @@ public class SpeFullTask extends AbstractAcsTask {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public String createTask(JSONObject param) {
|
public String createTask(JSONObject param) {
|
||||||
|
//{"quantity":5,"workorder_code":230523019,"device_code":"A1_TW_15_6_M","type":"2"}
|
||||||
String point_code = param.getString("device_code");
|
String point_code = param.getString("device_code");
|
||||||
String quantity = param.getString("quantity");
|
String quantity = param.getString("quantity");
|
||||||
String type = param.getString("type");
|
String type = param.getString("type");
|
||||||
JSONObject order = WQLObject.getWQLObject("PDM_produce_workOrder").query("workorder_code = '" + param.getString("workorder_code") + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0);
|
PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||||
|
.eq("workorder_code", param.getString("workorder_code"))
|
||||||
|
.eq("is_delete", false)
|
||||||
|
.lt("workorder_status", StatusEnum.TASK_FINISH.getCode()));
|
||||||
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||||
JSONArray chectIndDatabase = WQLObject.getWQLObject("SCH_BASE_Task").query((AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type) ? "point_code1" : "point_code2") + "= '" + point_code + "' and task_status < " + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0);
|
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||||
if (ObjectUtil.isNotEmpty(chectIndDatabase)){
|
.eq("point_code1", point_code).lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||||
Assert.notNull(order, String.format("设备%s存在未完成任务", param.getString("point_code")));
|
);
|
||||||
|
if (!CollectionUtils.isEmpty(list)){
|
||||||
|
throw new BadRequestException(String.format("设备%s存在未完成任务", param.getString("device_code")));
|
||||||
}
|
}
|
||||||
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);
|
||||||
JSONObject form = new JSONObject(MapOf.of("start_point_code",point_code,
|
JSONObject form = new JSONObject(MapOf.of("start_point_code",point_code,
|
||||||
"next_point_code","","return_point_code", empPoint.getString("point_code"),"vehicle_code",
|
"next_point_code","","return_point_code", empPoint.getString("point_code"),"vehicle_code",
|
||||||
"","product_area",order.getString("product_area"),"quantity", quantity,"type",type,"material_id", order.getString("material_id")));
|
"","product_area",order.getProduct_area(),"quantity", quantity,"type",type,"material_id", order.getProduct_area()));
|
||||||
|
|
||||||
String taskId = IdUtil.getSnowflake(1, 1).nextId() + "";
|
String taskId = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||||
JSONObject task = packageParam(form, taskId);
|
JSONObject task = packageParam(form, taskId);
|
||||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(task);
|
taskService.save(task.toJavaObject(SchBaseTask.class));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
pointConfirm(task);
|
pointConfirm(task);
|
||||||
//下发
|
//下发
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
WHERE
|
WHERE
|
||||||
device.is_delete = '0'
|
device.is_delete = '0'
|
||||||
<if test="workprocedure_id != null and workprocedure_id != ''">
|
<if test="workprocedure_id != null and workprocedure_id != ''">
|
||||||
device.workprocedure_id = #{workprocedure_id}
|
and device.workprocedure_id = #{workprocedure_id}
|
||||||
</if>
|
</if>
|
||||||
and device.device_code not in (
|
and device.device_code not in (
|
||||||
select o.device_code as device_code
|
select o.device_code as device_code
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||||||
import com.github.pagehelper.Page;
|
import com.github.pagehelper.Page;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import io.jsonwebtoken.lang.Assert;
|
import io.jsonwebtoken.lang.Assert;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.nl.common.TableDataInfo;
|
import org.nl.common.TableDataInfo;
|
||||||
@@ -63,6 +64,7 @@ import java.util.stream.Collectors;
|
|||||||
* @since 2023-04-26
|
* @since 2023-04-26
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Slf4j
|
||||||
public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorkorderMapper, PdmProduceWorkorder> implements IPdmProduceWorkorderService {
|
public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorkorderMapper, PdmProduceWorkorder> implements IPdmProduceWorkorderService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMdPbClassstandardService classstandardService;
|
private IMdPbClassstandardService classstandardService;
|
||||||
@@ -179,9 +181,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
|||||||
String workorder_id = param.getJSONObject("row").getString("workorder_id");
|
String workorder_id = param.getJSONObject("row").getString("workorder_id");
|
||||||
this.update(new UpdateWrapper<PdmProduceWorkorder>()
|
this.update(new UpdateWrapper<PdmProduceWorkorder>()
|
||||||
.set("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode())
|
.set("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode())
|
||||||
.set("update_id", SecurityUtils.getCurrentUserId())
|
.set("confirm_id", SecurityUtils.getCurrentUserId())
|
||||||
.set("update_name", SecurityUtils.getCurrentNickName())
|
.set("confirm_name", SecurityUtils.getCurrentNickName())
|
||||||
.set("update_time", new Date())
|
.set("confirm_time", new Date())
|
||||||
.in("workorder_id", workorder_id));
|
.in("workorder_id", workorder_id));
|
||||||
JSONArray array = new JSONArray();
|
JSONArray array = new JSONArray();
|
||||||
JSONObject map = new JSONObject();
|
JSONObject map = new JSONObject();
|
||||||
@@ -190,7 +192,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
|||||||
array.add(map);
|
array.add(map);
|
||||||
Map<String, Object> result = wmsToAcsService.orderStatusUpdate(array);
|
Map<String, Object> result = wmsToAcsService.orderStatusUpdate(array);
|
||||||
if (!HttpStatus.OK.equals(result.get("status"))) {
|
if (!HttpStatus.OK.equals(result.get("status"))) {
|
||||||
throw new BadRequestException((String) result.get("message"));
|
log.error((String) result.get("message"));
|
||||||
}
|
}
|
||||||
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, workorder_id);
|
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, workorder_id);
|
||||||
}
|
}
|
||||||
@@ -525,8 +527,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
|||||||
if (((int) resp.get("status")) == (HttpStatus.BAD_REQUEST.value())) {
|
if (((int) resp.get("status")) == (HttpStatus.BAD_REQUEST.value())) {
|
||||||
throw new BadRequestException(String.valueOf(resp.get("message")));
|
throw new BadRequestException(String.valueOf(resp.get("message")));
|
||||||
}
|
}
|
||||||
|
workOrder.setReal_qty(null);
|
||||||
this.update(workOrder, new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", param.getString("workorder_id")));
|
this.update(workOrder, new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", param.getString("workorder_id")));
|
||||||
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, result.getWorkorder_id());
|
|
||||||
|
|
||||||
return RestBusinessTemplate.execute(() -> resp);
|
return RestBusinessTemplate.execute(() -> resp);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
FROM
|
FROM
|
||||||
sch_cacheline_vehilematerial v
|
sch_cacheline_vehilematerial v
|
||||||
LEFT JOIN sch_cacheline_position p ON p.vehicle_code = v.vehicle_code
|
LEFT JOIN sch_cacheline_position p ON p.vehicle_code = v.vehicle_code
|
||||||
WHERE p.vehicle_code <> '' and
|
WHERE p.vehicle_code <![CDATA[<>]]> '' and
|
||||||
v.vehicle_status = #{vehicle_status}
|
v.vehicle_status = #{vehicle_status}
|
||||||
<if test="material_id != null and material_id != ''">
|
<if test="material_id != null and material_id != ''">
|
||||||
v.material_id = #{material_id}
|
v.material_id = #{material_id}
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
</select>
|
</select>
|
||||||
<select id="getDeviceWorkprodure" resultType="java.util.Map">
|
<select id="getDeviceWorkprodure" resultType="java.util.Map">
|
||||||
select
|
select
|
||||||
r.workprocedure_code,r.workprocedure_id from pdm_bi_device dev
|
r.workprocedure_code,r.workprocedure_id,p.device_code from pdm_bi_device dev
|
||||||
LEFT join sch_base_point p on p.device_code = dev.device_code
|
LEFT join sch_base_point p on p.device_code = dev.device_code
|
||||||
LEFT JOIN pdm_bi_workprocedure r on dev.workprocedure_id = r.workprocedure_id
|
LEFT JOIN pdm_bi_workprocedure r on dev.workprocedure_id = r.workprocedure_id
|
||||||
where p.point_code = #{pointCode};
|
where p.point_code = #{pointCode};
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import lombok.SneakyThrows;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseConverter;
|
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseConverter;
|
||||||
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement;
|
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.xml.stream.XMLStreamConstants;
|
import javax.xml.stream.XMLStreamConstants;
|
||||||
@@ -19,6 +20,9 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
@Service("flow")
|
@Service("flow")
|
||||||
public class FlowConverter implements BaseConverter {
|
public class FlowConverter implements BaseConverter {
|
||||||
|
@Autowired
|
||||||
|
ParamConverter paramConverter;
|
||||||
|
|
||||||
String[] labels = new String[]{"id","name","sourceRef","targetRef"};
|
String[] labels = new String[]{"id","name","sourceRef","targetRef"};
|
||||||
@Override
|
@Override
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@@ -35,8 +39,8 @@ public class FlowConverter implements BaseConverter {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (XMLStreamConstants.START_ELEMENT == xtr.next()){
|
if (XMLStreamConstants.START_ELEMENT == xtr.next()){
|
||||||
System.out.println(xtr.getLocalName());
|
ParamElement process = (ParamElement)paramConverter.process(xtr);
|
||||||
element.getParams().put(xtr.getAttributeValue(null,"id"),xtr.getAttributeValue(null,"value"));
|
element.getParams().put(process.getId(),process.getValue());
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ public class FlowElement extends BaseElement {
|
|||||||
private FlowElement targetRef;
|
private FlowElement targetRef;
|
||||||
private String sourceRefId;
|
private String sourceRefId;
|
||||||
private String targetRefId;
|
private String targetRefId;
|
||||||
private Map<String,String> params = new HashMap<>();
|
private Map<String,Object> params = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -55,11 +55,11 @@ public class FlowElement extends BaseElement {
|
|||||||
this.targetRefId = targetRefId;
|
this.targetRefId = targetRefId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, String> getParams() {
|
public Map<String, Object> getParams() {
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setParams(Map<String, String> params) {
|
public void setParams(Map<String, Object> params) {
|
||||||
this.params = params;
|
this.params = params;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl;
|
||||||
|
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseConverter;
|
||||||
|
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.xml.stream.XMLStreamConstants;
|
||||||
|
import javax.xml.stream.XMLStreamReader;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2023/5/19 11:00
|
||||||
|
*/
|
||||||
|
@Service("param")
|
||||||
|
public class ParamConverter implements BaseConverter {
|
||||||
|
String[] labels = new String[]{"id","value"};
|
||||||
|
@Override
|
||||||
|
@SneakyThrows
|
||||||
|
public BaseElement process(XMLStreamReader xtr) {
|
||||||
|
ParamElement element = new ParamElement();
|
||||||
|
setBaseLabel(element,xtr,labels);
|
||||||
|
element.setValue(xtr.getAttributeValue(null,"value"));
|
||||||
|
String has = xtr.getAttributeValue(null, "has");
|
||||||
|
if (StringUtils.isNotEmpty(has)){
|
||||||
|
int i = 0;
|
||||||
|
while (true){
|
||||||
|
if (i == Integer.valueOf(has)){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (XMLStreamConstants.START_ELEMENT == xtr.next()){
|
||||||
|
element.getItem().put(xtr.getAttributeValue(null,"id"),xtr.getAttributeValue(null,"value"));
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
element.setValue(element.getItem());
|
||||||
|
}
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2023/5/21 18:03
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ParamElement extends BaseElement {
|
||||||
|
private Object value;
|
||||||
|
private Map<String,String> item = new HashMap<>();
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<definitions>
|
<definitions>
|
||||||
<process id="JGXJ" name="机关下料">
|
<process id="JGXL" name="机关下料">
|
||||||
<start id="start" name="Starter" targetRef="A1_JGXJ"></start>
|
<start id="start" name="Starter" targetRef="A1_JGXL"></start>
|
||||||
<flow id="A1_JGXJ" name="机关下料工序" has="1" sourceRef="start" targetRef="A1_TWYTJ">
|
<flow id="A1_JGXL" name="机关下料工序" has="1" sourceRef="start" targetRef="A1_TWYTJ">
|
||||||
<param id="cacheLine" value="A1_HCX_01"/>
|
<param id="cacheLine" has="2">
|
||||||
|
<item key="A1_JGXL_15" value="A1_HCX_01"></item>
|
||||||
|
<item key="A1_JGXL_22" value="A1_HCX_02"></item>
|
||||||
|
</param>
|
||||||
</flow>
|
</flow>
|
||||||
<flow id="A1_TWYTJ" name="推弯工序" has="1" sourceRef="A1_JGXJ" targetRef="A1_SKQX">
|
<flow id="A1_TWYTJ" name="推弯一体工序" sourceRef="A1_JGXJ" targetRef="A1_SKQX">
|
||||||
<param id="cacheLine" value="A1_HCX_01"/>
|
|
||||||
</flow>
|
</flow>
|
||||||
<flow id="A1_SKQX" name="深坑清洗" sourceRef="A1_TWYTJ" targetRef="end"></flow>
|
<flow id="A1_SKQX" name="深坑清洗" sourceRef="A1_TWYTJ" targetRef="end"></flow>
|
||||||
<end id="end" name="Junior Reject End" sourceRef="A1_SKQX"></end>
|
<end id="end" name="Junior Reject End" sourceRef="A1_SKQX"></end>
|
||||||
</process>
|
</process>
|
||||||
<process id="WXXL" name="直管无屑下料">
|
<process id="WXXL" name="直管无屑下料">
|
||||||
<start id="start" name="Starter" targetRef="A1_WXXL"></start>
|
<start id="start" name="Starter" targetRef="A1_WXXL"></start>
|
||||||
<flow id="A1_WXXL" name="无屑下料工序" has="3" sourceRef="starter" targetRef="A1_STLS">
|
<flow id="A1_WXXL" name="无屑下料工序" has="1" sourceRef="starter" targetRef="A1_STLS">
|
||||||
<param id="param1" value="param1"/>
|
<param id="cacheLine" value="A1_HCX_03"/>
|
||||||
<param id="param2" value="param2"/>
|
|
||||||
<param id="param3" value="param3"/>
|
|
||||||
</flow>
|
</flow>
|
||||||
<flow id="A1_STLS" name="三通拉伸工序" sourceRef="A1_WXXL" targetRef="A1_TK"></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_TK" name="镗孔" sourceRef="A1_TK" targetRef="end"></flow>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import request from '@/utils/request'
|
|||||||
|
|
||||||
export function add(data) {
|
export function add(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/produceWorkorder',
|
url: 'api/produceWorkorder/create',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<el-dialog append-to-body :close-on-click-modal="false" :before-close="crud.cancelCU" :visible="crud.status.cu > 0"
|
<el-dialog
|
||||||
:title="crud.status.title" width="500px">
|
append-to-body
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:before-close="crud.cancelCU"
|
||||||
|
:visible="crud.status.cu > 0"
|
||||||
|
:title="crud.status.title"
|
||||||
|
width="500px"
|
||||||
|
>
|
||||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
|
||||||
<el-form-item label="物料系列" prop="code">
|
<el-form-item label="物料系列/生产区域" prop="code">
|
||||||
<el-input v-model="form.material_spec" style="width: 370px;"/>
|
<el-input v-model="form.rule_code" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工序调度编号">
|
<el-form-item label="工序调度编号">
|
||||||
<el-input v-model="form.process_id" style="width: 370px;" />
|
<el-input v-model="form.process_id" style="width: 370px;" />
|
||||||
@@ -22,8 +28,15 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.blurry" clearable size="mini" placeholder="输入名称或者描述搜索" style="width: 200px;"
|
<el-input
|
||||||
class="filter-item" @keyup.enter.native="crud.toQuery"/>
|
v-model="query.blurry"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="输入名称或者描述搜索"
|
||||||
|
style="width: 200px;"
|
||||||
|
class="filter-item"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
<rrOperation />
|
<rrOperation />
|
||||||
</div>
|
</div>
|
||||||
<crudOperation :permission="permission" />
|
<crudOperation :permission="permission" />
|
||||||
@@ -36,13 +49,19 @@
|
|||||||
highlight-current-row
|
highlight-current-row
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
@selection-change="crud.selectionChangeHandler"
|
@selection-change="crud.selectionChangeHandler"
|
||||||
@current-change="handleCurrentChange">
|
@current-change="handleCurrentChange"
|
||||||
|
>
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column show-overflow-tooltip prop="material_spec" label="物料系列"/>
|
<el-table-column show-overflow-tooltip prop="rule_code" label="物料系列" />
|
||||||
<el-table-column show-overflow-tooltip prop="process_id" label="工序调度编号" />
|
<el-table-column show-overflow-tooltip prop="process_id" label="工序调度编号" />
|
||||||
<el-table-column show-overflow-tooltip prop="process_name" label="工序调度名称" />
|
<el-table-column show-overflow-tooltip prop="process_name" label="工序调度名称" />
|
||||||
<el-table-column v-permission="['admin','dict:edit','dict:del']" label="操作" width="130px" align="center"
|
<el-table-column
|
||||||
fixed="right">
|
v-permission="['admin','dict:edit','dict:del']"
|
||||||
|
label="操作"
|
||||||
|
width="130px"
|
||||||
|
align="center"
|
||||||
|
fixed="right"
|
||||||
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<udOperation
|
<udOperation
|
||||||
:data="scope.row"
|
:data="scope.row"
|
||||||
@@ -65,14 +84,14 @@ import pagination from '@crud/Pagination'
|
|||||||
import rrOperation from '@crud/RR.operation'
|
import rrOperation from '@crud/RR.operation'
|
||||||
import udOperation from '@crud/UD.operation'
|
import udOperation from '@crud/UD.operation'
|
||||||
|
|
||||||
const defaultForm = {material_spec: null, process_id: null, process_name: null}
|
const defaultForm = { rule_code: null, process_id: null, process_name: null }
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SchedulerRoute',
|
name: 'SchedulerRoute',
|
||||||
components: { crudOperation, pagination, rrOperation, udOperation },
|
components: { crudOperation, pagination, rrOperation, udOperation },
|
||||||
cruds() {
|
cruds() {
|
||||||
return [
|
return [
|
||||||
CRUD({title: '物料对应工序调度', url: '/api/shceduler/route', idField: 'material_spec', crudMethod: {...crudRoute}})
|
CRUD({ title: '物料对应工序调度', url: '/api/shceduler/route', idField: 'rule_code', crudMethod: { ...crudRoute }})
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
mixins: [presenter(), header(), form(defaultForm)],
|
mixins: [presenter(), header(), form(defaultForm)],
|
||||||
@@ -83,7 +102,7 @@ export default {
|
|||||||
{ key: 'description', display_name: '描述' }
|
{ key: 'description', display_name: '描述' }
|
||||||
],
|
],
|
||||||
rules: {
|
rules: {
|
||||||
material_spec: [
|
rule_code: [
|
||||||
{ required: true, message: '请输入编码', trigger: 'blur' }
|
{ required: true, message: '请输入编码', trigger: 'blur' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user