fix: 油漆线根据工单呼叫空托盘,并且将空盘上完工
This commit is contained in:
@@ -73,7 +73,8 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
|||||||
// 查找暂停/未生产/下发的工单
|
// 查找暂停/未生产/下发的工单
|
||||||
JSONObject stopOrder = workOrderTab.query("workorder_code = '"
|
JSONObject stopOrder = workOrderTab.query("workorder_code = '"
|
||||||
+ param.getString("workorder_code") + "' AND order_status in ('4','1','2')").uniqueResult(0);
|
+ param.getString("workorder_code") + "' AND order_status in ('4','1','2')").uniqueResult(0);
|
||||||
param.put("plan_qty", param.getString("qty"));
|
// param.put("plan_qty", param.getString("qty"));
|
||||||
|
param.put("plan_qty", param.getString("vehicle_qty")); // 计划数量改为托盘数
|
||||||
param.put("order_status", "3");
|
param.put("order_status", "3");
|
||||||
param.put("material_id", materialCode.getString("material_id"));
|
param.put("material_id", materialCode.getString("material_id"));
|
||||||
param.put("produce_date", DateUtil.format(new Date(), "yyyy-MM-dd"));
|
param.put("produce_date", DateUtil.format(new Date(), "yyyy-MM-dd"));
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||||
|
WQLObject workorderTab = WQLObject.getWQLObject("pdm_bd_workorder");
|
||||||
|
|
||||||
String task_id = taskObj.getString("task_id");
|
String task_id = taskObj.getString("task_id");
|
||||||
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||||
@@ -170,6 +171,13 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
jsonTask2.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
jsonTask2.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||||
jsonTask2.put("update_time", DateUtil.now());
|
jsonTask2.put("update_time", DateUtil.now());
|
||||||
taskTab.update(jsonTask2);
|
taskTab.update(jsonTask2);
|
||||||
|
|
||||||
|
// 更新工单数据
|
||||||
|
String tableFk = taskObj.getString("table_fk"); // 工单号
|
||||||
|
JSONObject object = workorderTab.query("workorder_id = '" + tableFk + "'").uniqueResult(0);
|
||||||
|
object.put("real_qty", object.getInteger("real_qty") + 1);
|
||||||
|
workorderTab.update(object);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// 终点在供给线线: 更新起点(叠盘架)数量
|
// 终点在供给线线: 更新起点(叠盘架)数量
|
||||||
JSONObject jsonStart = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
JSONObject jsonStart = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||||
@@ -369,7 +377,8 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
//任务表【SCH_BASE_Task】
|
//任务表【SCH_BASE_Task】
|
||||||
//判断当前点是否有未完成的任务
|
//判断当前点是否有未完成的任务
|
||||||
JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + form.getString("point_code2") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + form.getString("point_code2") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务");
|
if (ObjectUtil.isNotEmpty(taskObj))
|
||||||
|
throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务");
|
||||||
|
|
||||||
String point_code2 = form.getString("point_code2");
|
String point_code2 = form.getString("point_code2");
|
||||||
String sub_device_code = point_code2.substring(0, point_code2.indexOf("_"));
|
String sub_device_code = point_code2.substring(0, point_code2.indexOf("_"));
|
||||||
@@ -379,6 +388,11 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0);
|
JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除");
|
if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除");
|
||||||
|
|
||||||
|
// 超过数量也不需要呼叫
|
||||||
|
if (workOrderObj.getInteger("real_qty") >= workOrderObj.getInteger("plan_qty")) {
|
||||||
|
throw new BadRequestException("该工单所需托盘已经足够");
|
||||||
|
}
|
||||||
|
|
||||||
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
|
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
|
||||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||||
.task_type("")
|
.task_type("")
|
||||||
@@ -390,6 +404,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||||
.vehicle_qty(1)
|
.vehicle_qty(1)
|
||||||
.task_group_id(IdUtil.getLongId())
|
.task_group_id(IdUtil.getLongId())
|
||||||
|
.table_fk(workOrderObj.getString("workorder_id"))
|
||||||
.handle_class(THIS_CLASS)
|
.handle_class(THIS_CLASS)
|
||||||
.create_time(DateUtil.now())
|
.create_time(DateUtil.now())
|
||||||
.build();
|
.build();
|
||||||
@@ -406,7 +421,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(taskObj))
|
if (ObjectUtil.isNotEmpty(taskObj))
|
||||||
this.updateTaskStatus(taskObj,"2");
|
this.updateTaskStatus(taskObj, "2");
|
||||||
else {
|
else {
|
||||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||||
}
|
}
|
||||||
@@ -417,7 +432,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(taskObj))
|
if (ObjectUtil.isNotEmpty(taskObj))
|
||||||
this.updateTaskStatus(taskObj,"0");
|
this.updateTaskStatus(taskObj, "0");
|
||||||
else {
|
else {
|
||||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,12 +14,14 @@ import org.nl.modules.common.utils.SecurityUtils;
|
|||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.WQL;
|
import org.nl.modules.wql.WQL;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.nl.wms.pdm.service.WorkordeService;
|
||||||
import org.nl.wms.sch.SchTaskDto;
|
import org.nl.wms.sch.SchTaskDto;
|
||||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||||
import org.nl.wms.sch.tasks.RegionTypeEnum;
|
import org.nl.wms.sch.tasks.RegionTypeEnum;
|
||||||
import org.nl.wms.sch.tasks.utils.PointUpdateUtil;
|
import org.nl.wms.sch.tasks.utils.PointUpdateUtil;
|
||||||
|
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;
|
||||||
|
|
||||||
@@ -34,12 +36,16 @@ import java.util.Map;
|
|||||||
public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
||||||
private final String THIS_CLASS = YqxCallEmpVehicleTask.class.getName();
|
private final String THIS_CLASS = YqxCallEmpVehicleTask.class.getName();
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private WorkordeService workordeService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||||
|
WQLObject workorderTab = WQLObject.getWQLObject("pdm_bd_workorder");
|
||||||
|
|
||||||
String task_id = taskObj.getString("task_id");
|
String task_id = taskObj.getString("task_id");
|
||||||
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||||
@@ -188,6 +194,12 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 更新工单数据
|
||||||
|
String tableFk = taskObj.getString("table_fk"); // 工单号
|
||||||
|
JSONObject object = workorderTab.query("workorder_id = '" + tableFk + "'").uniqueResult(0);
|
||||||
|
object.put("real_qty", object.getInteger("real_qty") + 1);
|
||||||
|
workorderTab.update(object);
|
||||||
|
|
||||||
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||||
jsonTask.put("update_time", DateUtil.now());
|
jsonTask.put("update_time", DateUtil.now());
|
||||||
jsonTask.put("remark", "任务完成");
|
jsonTask.put("remark", "任务完成");
|
||||||
@@ -391,15 +403,27 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + form.getString("point_code2") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + form.getString("point_code2") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务");
|
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
String point_code2 = form.getString("point_code2");// YQX01_KS
|
String point_code2 = form.getString("point_code2");// YQX01_KS
|
||||||
|
|
||||||
String device_code = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0).getString("device_code");
|
String device_code = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0).getString("device_code");
|
||||||
|
|
||||||
JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0);
|
JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除");
|
if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除");
|
||||||
|
// 超过数量也不需要呼叫
|
||||||
|
if (workOrderObj.getInteger("real_qty") >= workOrderObj.getInteger("plan_qty")) {
|
||||||
|
// 当前位置工单完成,物上工单完成
|
||||||
|
JSONObject row = new JSONObject();
|
||||||
|
row.put("row", workOrderObj);
|
||||||
|
workordeService.finish(row);
|
||||||
|
// // 物下工单
|
||||||
|
// JSONObject workorderCode = workOrderTab.query("device_code = 'YQX01WX' and order_status = '3' and is_delete ='0' " +
|
||||||
|
// "and workorder_code = '" + workOrderObj.getString("workorder_code") + "'").uniqueResult(0);
|
||||||
|
// if (ObjectUtil.isNotEmpty(workorderCode)) {
|
||||||
|
// row.put("row", workorderCode);
|
||||||
|
// workordeService.finish(row);
|
||||||
|
// }
|
||||||
|
throw new BadRequestException("该工单所需托盘已经足够");
|
||||||
|
}
|
||||||
|
|
||||||
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
|
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
|
||||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||||
@@ -412,6 +436,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
|||||||
.vehicle_code(form.getString("vehicle_code"))
|
.vehicle_code(form.getString("vehicle_code"))
|
||||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||||
.vehicle_qty(1)
|
.vehicle_qty(1)
|
||||||
|
.table_fk(workOrderObj.getString("workorder_id"))
|
||||||
.task_group_id(org.nl.wms.util.IdUtil.getLongId())
|
.task_group_id(org.nl.wms.util.IdUtil.getLongId())
|
||||||
.handle_class(THIS_CLASS)
|
.handle_class(THIS_CLASS)
|
||||||
.create_time(DateUtil.now())
|
.create_time(DateUtil.now())
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
//找空位入: 物料点查找在第一列或者是没有找到物料点
|
//找空位入: 物料点查找在第一列或者是没有找到物料点
|
||||||
if (ObjectUtil.isNotEmpty(taskIngs) && taskIngs.size() > 1) {
|
if (ObjectUtil.isNotEmpty(taskIngs) && taskIngs.size() > 1) {
|
||||||
taskObj.put("remark", "相应列有AGV在工作,等待执行!");
|
taskObj.put("remark", "相应排有AGV在工作,等待执行!");
|
||||||
taskObj.put("update_time", DateUtil.now());
|
taskObj.put("update_time", DateUtil.now());
|
||||||
taskTab.update(taskObj);
|
taskTab.update(taskObj);
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user