代码修改,去除养生区整列锁定、添加供给线判断去货梯口还是养生区
This commit is contained in:
@@ -182,9 +182,7 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im
|
||||
break;
|
||||
case 4:
|
||||
//申请空盘
|
||||
System.out.println("执行到mode = 4了,此时move = " + move + ",requireSucess = " + requireSucess);
|
||||
if (move == 0 && !requireSucess) {
|
||||
System.out.println("进入到申请空盘的任务了,mode = " + mode);
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
|
||||
@@ -200,17 +198,13 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im
|
||||
if (res_jo.getString("status").equals("200")) {
|
||||
logServer.deviceExecuteLog(device_code, "", "", "空盘任务申请成功-");
|
||||
requireSucess = true;
|
||||
} else {
|
||||
System.out.println("申请满托入库失败" + String.valueOf(res_jo));
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
System.out.println("执行到mode = 5了,此时move = " + move + ",requireSucessFullIn = " + requireSucessFullIn);
|
||||
//满托入库
|
||||
if (move == 1 && !requireSucessFullIn) {
|
||||
System.out.println("进入到申请空盘的任务了,mode = " + mode);
|
||||
Date date = new Date();
|
||||
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
|
||||
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
|
||||
@@ -227,8 +221,6 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im
|
||||
if (res_jo.getString("status").equals("200")) {
|
||||
requireSucessFullIn = true;
|
||||
logServer.deviceExecuteLog(device_code, "", "", "满托入库任务申请成功-");
|
||||
} else {
|
||||
System.out.println("申请满托入库失败" + String.valueOf(res_jo));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,7 +88,6 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
||||
String task_type = task.getString("task_type");
|
||||
String remark = task.getString("remark");
|
||||
String params = task.getString("params");
|
||||
String vehicle_qty = task.getString("vehicle_qty");
|
||||
|
||||
if (start_point_code.indexOf("-") > 0) {
|
||||
String str[] = start_point_code.split("-");
|
||||
@@ -138,7 +137,6 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
||||
jo.put("vehicle_type", vehicle_type);
|
||||
jo.put("remark", remark);
|
||||
jo.put("params", params);
|
||||
jo.put("emptypallet_num", vehicle_qty);
|
||||
jo.put("task_type", StrUtil.isEmpty(task_type) ? 1 : Integer.parseInt(task_type));
|
||||
|
||||
if (!StrUtil.isEmpty(ext_task_id)) {
|
||||
|
||||
@@ -248,7 +248,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
||||
public List<TaskDto> queryAllUnfinished(Map whereJson) {
|
||||
WQLObject wo = WQLObject.getWQLObject("acs_task");
|
||||
JSONArray arr = wo.query("task_status < 2 ").getResultJSONArray(0);
|
||||
List<TaskDto> list = arr.toJavaList(TaskDto.class);
|
||||
List<TaskDto> list =arr.toJavaList(TaskDto.class);
|
||||
return list;
|
||||
}
|
||||
|
||||
@@ -390,7 +390,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
||||
}
|
||||
}
|
||||
WQLObject wo = WQLObject.getWQLObject("acs_task");
|
||||
JSONObject json = (JSONObject) JSONObject.toJSON(dto);
|
||||
JSONObject json = (JSONObject) JSONObject.toJSON(dto);
|
||||
|
||||
wo.insert(json);
|
||||
tasks.add(dto);
|
||||
@@ -492,7 +492,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotEmpty(this.findByStartCode(start_device_code))
|
||||
|| ObjectUtil.isNotEmpty(this.findByNextCode(next_device_code))) {
|
||||
|| ObjectUtil.isNotEmpty(this.findByNextCode(next_device_code))) {
|
||||
throw new WDKException("已存在该起点或终点的任务!");
|
||||
}
|
||||
if (StrUtil.equals(material_type, "") || StrUtil.equals(quantity, "")) {
|
||||
@@ -523,7 +523,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
||||
dto.setUpdate_by(currentUsername);
|
||||
|
||||
WQLObject wo = WQLObject.getWQLObject("acs_task");
|
||||
JSONObject json = (JSONObject) JSONObject.toJSON(dto);
|
||||
JSONObject json = (JSONObject) JSONObject.toJSON(dto);
|
||||
|
||||
wo.update(json);
|
||||
|
||||
@@ -787,7 +787,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
||||
JSONObject feed_jo = new JSONObject();
|
||||
feed_jo.put("ext_task_id", entity.getExt_task_id());
|
||||
feed_jo.put("task_code", entity.getTask_code());
|
||||
feed_jo.put("task_status", "0");
|
||||
feed_jo.put("task_status", entity.getTask_status());
|
||||
JSONArray ja = new JSONArray();
|
||||
ja.add(feed_jo);
|
||||
acstowmsService.feedbackTaskStatusToWms(ja);
|
||||
@@ -1215,7 +1215,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer queryStartNum(String start_code, String next_code) {
|
||||
public Integer queryStartNum(String start_code,String next_code) {
|
||||
int num = 0;
|
||||
Iterator<TaskDto> iterator = tasks.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
@@ -1228,7 +1228,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer queryEndNum(String next_code, String start_code) {
|
||||
public Integer queryEndNum(String next_code,String start_code) {
|
||||
int num = 0;
|
||||
Iterator<TaskDto> iterator = tasks.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
|
||||
@@ -145,6 +145,7 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
||||
dto.setUpdate_optname(nickName);
|
||||
dto.setUpdate_time(now);
|
||||
dto.setCreate_time(now);
|
||||
dto.setBase_unit_id(15);
|
||||
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
wo.insert(json);
|
||||
|
||||
@@ -90,4 +90,7 @@ public class WorkorderDto implements Serializable {
|
||||
|
||||
/** 修改时间 */
|
||||
private String update_time;
|
||||
|
||||
/** 工单类型 **/
|
||||
private String workorder_type;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
package org.nl.wms.sch.rest;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
@@ -54,6 +54,10 @@ public class TaskServiceImpl implements TaskService {
|
||||
if (StrUtil.isNotEmpty(task_status)) {
|
||||
task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", "");
|
||||
}
|
||||
String moreTaskStatus = whereJson.getString("more_task_status");
|
||||
if (ObjectUtil.isNotEmpty(moreTaskStatus)) {
|
||||
task_status = moreTaskStatus;
|
||||
}
|
||||
map.put("task_status", task_status);
|
||||
//处理状态为未完成
|
||||
if (StrUtil.isNotEmpty(task_status) && task_status.contains("-1")) {
|
||||
|
||||
@@ -28,5 +28,7 @@ public class AcsTaskDto {
|
||||
private String params;
|
||||
//路由类型
|
||||
private String route_plan_code;
|
||||
// 载具数量
|
||||
private String vehicle_qty;
|
||||
|
||||
}
|
||||
|
||||
@@ -181,7 +181,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
// 创建任务
|
||||
JSONObject jsonTask = taskArr.getJSONObject(i);
|
||||
String vehicle_type = jsonTask.getString("vehicle_type");
|
||||
// 更新点位
|
||||
// 更新点位 更新所有叠盘架B
|
||||
Map query = new HashMap<>();
|
||||
query.put("flag", "2");
|
||||
query.put("region_code", RegionTypeEnum.DPJQB.getCode());
|
||||
@@ -192,7 +192,8 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
JSONObject jsonDpjStart = pointTab.query("region_code = '" + RegionTypeEnum.DPJQB.getCode() + "' and can_vehicle_type = '" + vehicle_type + "' and lock_type = '1' and is_used = '1' and is_delete = '0' and vehicle_qty <> '0'").uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(jsonDpjStart)) {
|
||||
// 判断叠盘架是否有任务 有就下一个任务
|
||||
// todo
|
||||
// 判断叠盘架是否有任务 有就下一个任务 : 可以去除
|
||||
boolean is_point = this.isTask(jsonDpjStart.getString("point_code"));
|
||||
if (!is_point) continue;
|
||||
|
||||
@@ -210,10 +211,12 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
JSONObject jsonDpjStart2 = pointTab.query("region_id = '" + RegionTypeEnum.DPJQB.getId() + "' and can_vehicle_type = '" + vehicle_type + "' and lock_type = '1' and is_used = '1' and is_delete = '0' and vehicle_qty = '0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonDpjStart2)) continue;
|
||||
|
||||
// todo: 删除任务校验
|
||||
// 判断叠盘架是否有任务
|
||||
boolean is_point = this.isTask(jsonDpjStart2.getString("point_code"));
|
||||
if (!is_point) continue;
|
||||
|
||||
// todo: 如何知道缓存位是否有空托盘
|
||||
// 找叠盘架暂存位是否有空托盘
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("flag", "1");
|
||||
@@ -357,7 +360,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
.acs_task_type("2")
|
||||
.vehicle_code(form.getString("vehicle_code"))
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.vehicle_qty(form.getIntValue("qty"))
|
||||
.vehicle_qty(1)
|
||||
.task_group_id(IdUtil.getLongId())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
@@ -420,6 +423,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
.vehicle_type(json.getString("vehicle_type"))
|
||||
.priority(json.getString("priority"))
|
||||
.remark(json.getString("remark"))
|
||||
.vehicle_qty(json.getString("vehicle_qty"))
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.delete("task_id = '" + task_id + "'");
|
||||
}
|
||||
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
if (StrUtil.equals(status, "1")) {
|
||||
// 更新任务状态为执行中
|
||||
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
jsonTask.put("update_time", DateUtil.now());
|
||||
@@ -97,7 +97,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(jsonTask);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
/*
|
||||
* 更改任务状态为完成
|
||||
* 1.终点为叠盘架更新叠盘架数量、起点点位状态、等待位状态,更新任务组状态
|
||||
@@ -364,7 +364,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
.acs_task_type("2")
|
||||
.vehicle_code(form.getString("vehicle_code"))
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.vehicle_qty(form.getIntValue("qty"))
|
||||
.vehicle_qty(1)
|
||||
.task_group_id(org.nl.wms.util.IdUtil.getLongId())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
@@ -427,6 +427,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
.vehicle_type(json.getString("vehicle_type"))
|
||||
.priority(json.getString("priority"))
|
||||
.remark(json.getString("remark"))
|
||||
.vehicle_qty(json.getString("vehicle_qty"))
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.delete("task_id = '" + task_id + "'");
|
||||
}
|
||||
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
if (StrUtil.equals(status, "1")) {
|
||||
// 更新任务状态为执行中
|
||||
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
jsonTask.put("update_time", DateUtil.now());
|
||||
@@ -69,7 +69,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(jsonTask);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
// 更改任务状态为完成
|
||||
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
jsonTask.put("update_time", DateUtil.now());
|
||||
|
||||
@@ -59,7 +59,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.delete("task_id = '" + task_id + "'");
|
||||
}
|
||||
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
if (StrUtil.equals(status, "1")) {
|
||||
// 更新任务状态为执行中
|
||||
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
jsonTask.put("update_time", DateUtil.now());
|
||||
@@ -67,7 +67,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(jsonTask);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
// 更改任务状态为完成
|
||||
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
jsonTask.put("update_time", DateUtil.now());
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.nl.wms.sch.SchTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.nl.wms.sch.tasks.utils.PointUpdateUtil;
|
||||
import org.nl.wms.util.IdUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -40,10 +41,11 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
|
||||
public void updateTaskStatus(JSONObject task, String status) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
WQLObject orderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
|
||||
|
||||
String task_id = task.getString("task_id");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
|
||||
String workOrderId = taskObj.getString("material_info_id");
|
||||
//任务取消
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
// 取消删除任务
|
||||
@@ -84,8 +86,19 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
|
||||
// 更改任务状态为完成
|
||||
taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("remark", "任务执行完成");
|
||||
taskTab.update(taskObj);
|
||||
|
||||
JSONObject order = orderTab.query("workorder_id = '" + workOrderId + "'").uniqueResult(0);
|
||||
if (order.getString("workorder_type").equals("1")) {
|
||||
// 货梯口
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("lock_type", "1");
|
||||
param.put("point_status", "3");
|
||||
pointTab.update(param, "point_code = '" + point_code2 + "'");
|
||||
}
|
||||
|
||||
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
JSONObject endPoint = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
@@ -146,24 +159,56 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
|
||||
public void findNextPoint() {
|
||||
//判断共挤线是否有执行中的任务,如果任务数>=3,则不生成任务
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
/*
|
||||
WQLObject orderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
|
||||
/**
|
||||
* 根据业务找对应的终点
|
||||
*/
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
JSONArray taskArr = taskTab.query("handle_class = '" + THIS_CLASS + "'and is_delete = '0' and task_status = '2'").getResultJSONArray(0);
|
||||
for (int i = 0; i < taskArr.size(); i++) {
|
||||
JSONObject taskObj = taskArr.getJSONObject(i);
|
||||
String task_id = taskObj.getString("task_id");
|
||||
String material_id = taskObj.getString("material_id");
|
||||
String vehicle_type = taskObj.getString("vehicle_type");
|
||||
String workOrderId = taskObj.getString("material_info_id"); // 工单号
|
||||
// 获取工单判断是去养生区还是货梯口
|
||||
JSONObject workOrder = orderTab.query("workorder_id = '" + workOrderId + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(workOrder)) throw new BadRequestException("工单不能为空");
|
||||
if (workOrder.getString("workorder_type").equals("1")) { // 机采去货梯扣
|
||||
// 更新点位
|
||||
JSONArray ssxArray = WQL.getWO("QSCH_yqxSendMaterial_01").addParam("flag", "2").process().getResultJSONArray(0);
|
||||
PointUpdateUtil.updatePoint(ssxArray);
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("flag", "1");
|
||||
JSONObject endPoint = WQL.getWO("QSCH_yqxSendMaterial_01").addParamMap(param).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(endPoint)) {
|
||||
taskObj.put("remark", "电梯无可用点");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
} else {
|
||||
//锁住点位
|
||||
endPoint.put("lock_type", "2");
|
||||
endPoint.put("task_id", task_id);
|
||||
pointTab.update(endPoint);
|
||||
|
||||
//修改任务状态
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskObj.put("remark", "");
|
||||
taskObj.put("point_code2", endPoint.getString("point_code"));
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
return;
|
||||
}
|
||||
JSONObject param1 = new JSONObject();
|
||||
param1.put("flag", "1");
|
||||
param1.put("material_id", material_id);
|
||||
param1.put("region_code", "YSQA01");
|
||||
param1.put("vehicle_type", "%" + vehicle_type + "%");
|
||||
param1.put("vehicle_type", vehicle_type );
|
||||
//1、查找库区类是否有响应的载具类型和对应的物料
|
||||
// json1: 对应相同物料的点位
|
||||
JSONObject json1 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param1).process().uniqueResult(0);
|
||||
|
||||
|
||||
//判断是否有到同一列的相同物料SKU的AGV任务,如果有,则等待
|
||||
JSONArray taskIngs = taskTab.query("is_delete='0' and material_id = '" + material_id + "' and (task_status = '4' or task_status = '5' or task_status = '6' )").getResultJSONArray(0);
|
||||
|
||||
@@ -181,59 +226,68 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
|
||||
if (ObjectUtil.isNotEmpty(json1)) {
|
||||
if (ObjectUtil.isNotEmpty(json1)) { // json1: 对应相同物料的点位
|
||||
Integer block_num = json1.getInteger("block_num");
|
||||
Integer col_num = json1.getInteger("col_num");
|
||||
Integer row_num = json1.getInteger("row_num");
|
||||
|
||||
JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num ='" + (col_num - 1) + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(firstRow)) throw new BadRequestException("数据错误,请校验!");
|
||||
taskObj.put("point_code2", firstRow.getString("point_code"));
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
//二楼普通任务
|
||||
taskTab.update(taskObj);
|
||||
//锁住相关货位
|
||||
JSONObject point = new JSONObject();
|
||||
point.put("lock_type", "2");
|
||||
point.put("task_id", taskObj.getString("task_id"));
|
||||
pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + (col_num - 1) + "'");
|
||||
|
||||
} else {//找空位入
|
||||
if (ObjectUtil.isNotEmpty(taskIngs) && taskIngs.size() > 1) {
|
||||
taskObj.put("remark", "相应列有AGV在工作,等待执行!");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
continue;
|
||||
}
|
||||
|
||||
JSONObject param2 = new JSONObject();
|
||||
param2.put("flag", "2");
|
||||
param2.put("region_code", "YSQA01");
|
||||
param2.put("vehicle_type", "%" + vehicle_type + "%");
|
||||
//1、查找整列为空的货位
|
||||
JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(json2)) {
|
||||
taskObj.put("remark", "养生A区无可用货位");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
} else {
|
||||
Integer block_num = json2.getInteger("block_num");
|
||||
Integer row_num = json2.getInteger("row_num");
|
||||
JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num ='9'").uniqueResult(0);
|
||||
if (col_num != 1) {// 物料位在第一个位置说明已经叠满了
|
||||
// 因为找到的是对应相同的物料点,所以是下一个位置
|
||||
JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and lock_type = '1' and point_status = '1' and is_used = '1' and is_delete = '0'", "col_num desc").uniqueResult(0); // and col_num ='" + (col_num - 1) + "'
|
||||
if (ObjectUtil.isEmpty(firstRow)) throw new BadRequestException("数据错误,请校验!");
|
||||
taskObj.put("point_code2", firstRow.getString("point_code"));
|
||||
//二楼普通任务
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
//二楼普通任务
|
||||
taskTab.update(taskObj);
|
||||
//锁住相关货位
|
||||
JSONObject point = new JSONObject();
|
||||
point.put("lock_type", "2");
|
||||
point.put("task_id", taskObj.getString("task_id"));
|
||||
pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + 9 + "'");
|
||||
pointTab.update(point, "point_code = '" + firstRow.getString("point_code") + "'");
|
||||
return;
|
||||
// JSONObject point = new JSONObject();
|
||||
// point.put("lock_type", "2");
|
||||
// point.put("task_id", taskObj.getString("task_id"));
|
||||
// pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + (col_num - 1) + "'");
|
||||
|
||||
}
|
||||
}
|
||||
//找空位入: 物料点查找在第一列或者是没有找到物料点
|
||||
if (ObjectUtil.isNotEmpty(taskIngs) && taskIngs.size() > 1) {
|
||||
taskObj.put("remark", "相应列有AGV在工作,等待执行!");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
continue;
|
||||
}
|
||||
|
||||
JSONObject param2 = new JSONObject();
|
||||
param2.put("flag", "2");
|
||||
param2.put("region_code", "YSQA01");
|
||||
param2.put("vehicle_type",vehicle_type);
|
||||
//1、查找整列为空的货位
|
||||
JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(json2)) {
|
||||
taskObj.put("remark", "养生A区无可用货位");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
} else {
|
||||
Integer block_num = json2.getInteger("block_num");
|
||||
Integer row_num = json2.getInteger("row_num");
|
||||
Integer sum = json2.getInteger("sum");
|
||||
JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and lock_type = '1' and point_status = '1' and is_used = '1' and is_delete = '0'", "col_num desc").uniqueResult(0); // and col_num = '" + sum + "'
|
||||
taskObj.put("point_code2", firstRow.getString("point_code"));
|
||||
//二楼普通任务
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
//锁住相关货位
|
||||
JSONObject point = new JSONObject();
|
||||
point.put("lock_type", "2");
|
||||
pointTab.update(point, "point_code = '" + firstRow.getString("point_code") + "'");
|
||||
// JSONObject point = new JSONObject();
|
||||
// point.put("lock_type", "2");
|
||||
// point.put("task_id", taskObj.getString("task_id"));
|
||||
// pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + sum + "'"); // 9
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -273,7 +327,6 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
|
||||
@Override
|
||||
public String createTask(JSONObject whereJson) {
|
||||
String point_code1 = whereJson.getString("point_code1");
|
||||
String vehicle_type = whereJson.getString("vehicle_type");
|
||||
String vehicle_code = whereJson.getString("vehicle_code");
|
||||
String qty = whereJson.getString("qty");
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
|
||||
taskTab.update(jsonTask);
|
||||
}
|
||||
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
if (StrUtil.equals(status, "1")) {
|
||||
//更新任务状态为执行中
|
||||
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
jsonTask.put("update_time", DateUtil.now());
|
||||
@@ -75,7 +75,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
|
||||
taskTab.update(jsonTask);
|
||||
}
|
||||
|
||||
if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
// 更新任务状态为完成
|
||||
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
|
||||
@@ -130,8 +130,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
|
||||
//修改任务状态
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskObj.put("point_code2", endPoint.getString("point_code"));
|
||||
taskObj.put("update_optid", SecurityUtils.getCurrentUserId());
|
||||
taskObj.put("update_optname", SecurityUtils.getCurrentNickName());
|
||||
taskObj.put("remark", "");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
AND is_delete = '0'
|
||||
AND lock_type = '1'
|
||||
AND point_status = '3'
|
||||
and col_num>1
|
||||
and col_num>=1
|
||||
OPTION 输入.material_id <> ""
|
||||
p.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
@@ -65,7 +65,7 @@
|
||||
p.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
OPTION 输入.vehicle_type <> ""
|
||||
p.can_vehicle_type like 输入.vehicle_type
|
||||
p.can_vehicle_type like "%" 输入.vehicle_type "%"
|
||||
ENDOPTION
|
||||
ORDER BY block_num,row_num,col_num
|
||||
ENDSELECT
|
||||
@@ -87,10 +87,10 @@
|
||||
AND point_status = '1'
|
||||
AND lock_type = '1'
|
||||
OPTION 输入.vehicle_type <> ""
|
||||
p.can_vehicle_type like 输入.vehicle_type
|
||||
p.can_vehicle_type like "%" 输入.vehicle_type "%"
|
||||
ENDOPTION
|
||||
GROUP BY block_num,row_num
|
||||
HAVING sum = 9
|
||||
HAVING sum in ('9','13')
|
||||
ORDER BY block_num,row_num
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
|
||||
@@ -32,6 +32,7 @@ public class PointUpdateUtil {
|
||||
if (pointObj2.getString("region_code").equals(RegionTypeEnum.DPJQB.getCode())) { // 碟盘机
|
||||
String vehicleNum = pointObj.getString("vehicle_num");
|
||||
pointObj2.put("vehicle_qty", vehicleNum);
|
||||
pointObj2.put("point_status", vehicleNum.equals("0")?"1":"2");
|
||||
pointTable.update(pointObj2);
|
||||
} else if (pointObj2.getString("region_code").equals(RegionTypeEnum.SSX.getCode())) {
|
||||
String move = pointObj.getString("move");
|
||||
|
||||
@@ -54,7 +54,9 @@
|
||||
SELECT
|
||||
point.*,
|
||||
d3.label as lock_type_name,
|
||||
ma.material_name
|
||||
ma.material_name,
|
||||
ma.material_code,
|
||||
ma.material_spec
|
||||
FROM
|
||||
sch_base_point point
|
||||
LEFT JOIN SCH_BASE_Region region ON point.region_id = region.region_id
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
task.create_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
OPTION 输入.unFinish <> ""
|
||||
task.task_status <> '07'
|
||||
task.task_status <> '7'
|
||||
ENDOPTION
|
||||
OPTION 输入.task_status <> ""
|
||||
find_in_set( task.task_status, 输入.task_status)
|
||||
|
||||
Binary file not shown.
@@ -202,8 +202,9 @@ export default {
|
||||
// 打印纸张大小设置https://www.it610.com/article/2094844.html
|
||||
LODOP.SET_PRINT_PAGESIZE(1, '100mm', '60mm', '1')
|
||||
// LODOP.ADD_PRINT_RECT('0mm', '0mm', '50mm', '30mm', 0, 1)
|
||||
LODOP.ADD_PRINT_BARCODE('4.3mm', '6.2mm', '60mm', '40mm', '128Auto', item)
|
||||
LODOP.ADD_PRINT_BARCODE('10mm', '15mm', '80mm', '38mm', '128Auto', item)
|
||||
LODOP.SET_PRINT_STYLEA(0, 'Horient', 2) // 设置对象在纸张范围内水平居中
|
||||
LODOP.SET_PRINT_STYLEA(0, 'Vorient', 2)
|
||||
// LODOP.PREVIEW()// 预览
|
||||
LODOP.PRINT()// 打印
|
||||
})
|
||||
@@ -225,8 +226,9 @@ export default {
|
||||
// 打印纸张大小设置https://www.it610.com/article/2094844.html
|
||||
LODOP.SET_PRINT_PAGESIZE(1, '100mm', '60mm', '')
|
||||
// LODOP.ADD_PRINT_RECT('0mm', '0mm', '48mm', '28mm', 0, 1)
|
||||
LODOP.ADD_PRINT_BARCODE('4.3mm', '8.2mm', '60mm', '40mm', '128Auto', code)
|
||||
LODOP.ADD_PRINT_BARCODE('10mm', '15mm', '80mm', '38mm', '128Auto', code)
|
||||
LODOP.SET_PRINT_STYLEA(0, 'Horient', 2) // 设置对象在纸张范围内水平居中
|
||||
LODOP.SET_PRINT_STYLEA(0, 'Vorient', 2)
|
||||
// LODOP.PREVIEW()// 预览
|
||||
LODOP.PRINT()// 打印
|
||||
this.crud.notify('打印成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
|
||||
@@ -200,6 +200,22 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工单类型">
|
||||
<el-select
|
||||
v-model="form.workorder_type"
|
||||
clearable
|
||||
filterable
|
||||
size="mini"
|
||||
class="filter-item"
|
||||
style="width: 200px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.workorder_type"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划开始时间" prop="planproducestart_date">
|
||||
<el-date-picker
|
||||
v-model="form.planproducestart_date"
|
||||
@@ -253,6 +269,11 @@
|
||||
{{ dict.label.pdm_workorder_status[scope.row.order_status] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="workorder_type" label="工单类型">
|
||||
<template slot-scope="scope">
|
||||
{{ dict.label.workorder_type[scope.row.workorder_type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="produce_date" label="生产日期" width="100px" />
|
||||
<el-table-column prop="plan_qty" label="计划数量" />
|
||||
<el-table-column prop="real_qty" label="实际数量" />
|
||||
@@ -342,13 +363,14 @@ const defaultForm = {
|
||||
device_code: null,
|
||||
is_canupdate_update: '1',
|
||||
material_spec: null,
|
||||
sale_id: null
|
||||
sale_id: null,
|
||||
workorder_type: '1'
|
||||
}
|
||||
export default {
|
||||
name: 'Produceshiftorder',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation, MaterDtl, ViewDialog, DeviceDialog },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['pdm_workorder_status', 'is_used', 'is_or_not', 'vehicle_type', 'workorder_procedure'],
|
||||
dicts: ['pdm_workorder_status', 'is_used', 'is_or_not', 'vehicle_type', 'workorder_procedure', 'workorder_type'],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '工单', url: 'api/workorder', idField: 'workorder_id', sort: 'workorder_id,desc',
|
||||
|
||||
@@ -56,30 +56,30 @@
|
||||
</div>
|
||||
|
||||
<el-form ref="form" disabled :inline="true" :model="form" :rules="rules" size="mini" label-width="100px">
|
||||
<el-form-item label="物料编码">
|
||||
<el-input v-model="form.region_code" style="width: 200px;"/>
|
||||
<el-form-item label="物料柜号">
|
||||
<el-input v-model="form.material_code" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料名称">
|
||||
<el-input v-model="form.region_name" style="width: 200px;"/>
|
||||
<el-input v-model="form.material_name" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="物料规格">
|
||||
<el-input v-model="form.point_code" style="width: 200px;"/>
|
||||
<el-input v-model="form.material_spec" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料批次">
|
||||
<el-input v-model="form.point_name" style="width: 200px;"/>
|
||||
<el-input v-model="form.pcsn" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="库存量">
|
||||
<el-input v-model="form.point_type_name" style="width: 200px;"/>
|
||||
<el-input v-model="form.ivt_qty" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="计量单位">
|
||||
<el-input v-model="form.point_status_name" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="入库时间">
|
||||
<el-input v-model="form.lock_type_name" style="width: 200px;"/>
|
||||
<el-input v-model="form.instorage_time" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="静置时间(分)">
|
||||
<el-input v-model="form.lock_type_name" style="width: 200px;"/>
|
||||
<el-input v-model="form.standing_time" style="width: 200px;"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
@@ -315,6 +315,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column prop="point_name" label="点位名称" width="150" sortable show-overflow-tooltip />
|
||||
<el-table-column prop="region_name" label="区域名称" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="material_name" label="物料名称" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="point_type_name" label="点位类型" />
|
||||
<el-table-column prop="point_status_name" label="点位状态" />
|
||||
<el-table-column prop="lock_type_name" label="锁定类型" />
|
||||
|
||||
@@ -132,10 +132,10 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="vehicle_code" label="载具编码" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column prop="point_code1" label="点位1" width="100" />
|
||||
<el-table-column prop="point1_region_name" label="区域1" width="120" />
|
||||
<el-table-column prop="point_code2" label="点位2" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column prop="point2_region_name" label="区域2" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="point_code1" label="起点" width="100" />
|
||||
<el-table-column prop="point1_region_name" label="起点区域" width="120" />
|
||||
<el-table-column prop="point_code2" label="终点" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column prop="point2_region_name" label="终点区域" min-width="120" show-overflow-tooltip />
|
||||
<!--<el-table-column prop="point_code3" label="点位3" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column prop="point3_region_name" label="区域3" min-width="120" show-overflow-tooltip />-->
|
||||
<!--<el-table-column prop="point_code3" label="点位3" width="85" />
|
||||
@@ -179,11 +179,11 @@
|
||||
width="30%"
|
||||
>
|
||||
<!-- 组件-->
|
||||
<component
|
||||
:is="currentComponent"
|
||||
:task-uuid="task_id"
|
||||
:dialog-visible="viewDialogVisible"
|
||||
/>
|
||||
<!-- <component-->
|
||||
<!-- :is="currentComponent"-->
|
||||
<!-- :task-uuid="task_id"-->
|
||||
<!-- :dialog-visible="viewDialogVisible"-->
|
||||
<!-- />-->
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="viewDialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="viewDialogVisible = false">确 定</el-button>
|
||||
@@ -254,8 +254,8 @@ export default {
|
||||
crudTask.getFinishType().then(data => {
|
||||
this.finishTypeList = data
|
||||
})
|
||||
this.crud.query.task_status = ['-1']
|
||||
this.crud.toQuery()
|
||||
// this.crud.query.task_status = ['-1']
|
||||
// this.crud.toQuery()
|
||||
},
|
||||
methods: {
|
||||
initClass1() {
|
||||
@@ -298,8 +298,9 @@ export default {
|
||||
this.crud.toQuery()
|
||||
},
|
||||
handTaskStatus(value) {
|
||||
this.crud.query.more_task_status = null
|
||||
if (value) {
|
||||
this.query.task_status = this.task_status.toString()
|
||||
this.crud.query.more_task_status = value.toString()
|
||||
}
|
||||
this.crud.toQuery()
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user