fix: 油漆线根据工单呼叫空托盘,并且将空盘上完工
This commit is contained in:
@@ -73,7 +73,8 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
// 查找暂停/未生产/下发的工单
|
||||
JSONObject stopOrder = workOrderTab.query("workorder_code = '"
|
||||
+ 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("material_id", materialCode.getString("material_id"));
|
||||
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) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
WQLObject workorderTab = WQLObject.getWQLObject("pdm_bd_workorder");
|
||||
|
||||
String task_id = taskObj.getString("task_id");
|
||||
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("update_time", DateUtil.now());
|
||||
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 {
|
||||
// 终点在供给线线: 更新起点(叠盘架)数量
|
||||
JSONObject jsonStart = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
@@ -369,7 +377,8 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
//任务表【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);
|
||||
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 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);
|
||||
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())
|
||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||
.task_type("")
|
||||
@@ -390,6 +404,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.vehicle_qty(1)
|
||||
.task_group_id(IdUtil.getLongId())
|
||||
.table_fk(workOrderObj.getString("workorder_id"))
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
.build();
|
||||
@@ -406,7 +421,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
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);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,"2");
|
||||
this.updateTaskStatus(taskObj, "2");
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
@@ -417,7 +432,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
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);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,"0");
|
||||
this.updateTaskStatus(taskObj, "0");
|
||||
else {
|
||||
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.wql.WQL;
|
||||
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.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.nl.wms.sch.tasks.RegionTypeEnum;
|
||||
import org.nl.wms.sch.tasks.utils.PointUpdateUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -34,12 +36,16 @@ import java.util.Map;
|
||||
public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
private final String THIS_CLASS = YqxCallEmpVehicleTask.class.getName();
|
||||
|
||||
@Autowired
|
||||
private WorkordeService workordeService;
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
WQLObject workorderTab = WQLObject.getWQLObject("pdm_bd_workorder");
|
||||
|
||||
String task_id = taskObj.getString("task_id");
|
||||
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("update_time", DateUtil.now());
|
||||
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);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务");
|
||||
|
||||
|
||||
|
||||
|
||||
String point_code2 = form.getString("point_code2");// YQX01_KS
|
||||
|
||||
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);
|
||||
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())
|
||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||
@@ -412,6 +436,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
.vehicle_code(form.getString("vehicle_code"))
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.vehicle_qty(1)
|
||||
.table_fk(workOrderObj.getString("workorder_id"))
|
||||
.task_group_id(org.nl.wms.util.IdUtil.getLongId())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
|
||||
@@ -246,7 +246,7 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
|
||||
}
|
||||
//找空位入: 物料点查找在第一列或者是没有找到物料点
|
||||
if (ObjectUtil.isNotEmpty(taskIngs) && taskIngs.size() > 1) {
|
||||
taskObj.put("remark", "相应列有AGV在工作,等待执行!");
|
||||
taskObj.put("remark", "相应排有AGV在工作,等待执行!");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user