fix: 油漆线物下及空上根据托盘数来进行校验

This commit is contained in:
2023-10-18 17:33:21 +08:00
parent 8c181160f6
commit a3415da99d
7 changed files with 42 additions and 23 deletions

View File

@@ -65,7 +65,7 @@ public class SchTaskDto implements Serializable {
/**
* 物料详细信息,满料请求,取工单标识,组盘时候取组盘表
*/
private Long material_info_id;
private String material_info_id;
/**
* 物料标识

View File

@@ -173,8 +173,8 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
taskTab.update(jsonTask2);
// 更新工单数据
String tableFk = taskObj.getString("table_fk"); // 工单号
JSONObject object = workorderTab.query("workorder_id = '" + tableFk + "'").uniqueResult(0);
String material_info_id = taskObj.getString("material_info_id"); // 工单号
JSONObject object = workorderTab.query("workorder_id = '" + material_info_id + "'").uniqueResult(0);
object.put("real_qty", object.getInteger("real_qty") + 1);
workorderTab.update(object);
@@ -404,7 +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"))
.material_info_id(workOrderObj.getString("workorder_id"))
.handle_class(THIS_CLASS)
.create_time(DateUtil.now())
.build();

View File

@@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import io.swagger.models.auth.In;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.common.exception.BadRequestException;
@@ -33,6 +34,9 @@ import java.util.Map;
@Service
@RequiredArgsConstructor
@Slf4j
/**
* todo每次拿多少个没有弄好
*/
public class YqxCallEmpVehicleTask extends AbstractAcsTask {
private final String THIS_CLASS = YqxCallEmpVehicleTask.class.getName();
@@ -195,9 +199,9 @@ 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);
String material_info_id = taskObj.getString("material_info_id"); // 工单号
JSONObject object = workorderTab.query("workorder_id = '" + material_info_id + "'").uniqueResult(0);
object.put("real_qty", object.getInteger("real_qty") + taskObj.getInteger("vehicle_qty"));
workorderTab.update(object);
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
@@ -410,21 +414,19 @@ public class YqxCallEmpVehicleTask 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")) {
Integer realQty = workOrderObj.getInteger("real_qty");
Integer planQty = workOrderObj.getInteger("plan_qty");
Integer need = 5;
if (realQty >= planQty) {
// 当前位置工单完成,物上工单完成
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("该工单所需托盘已经足够");
}
if (realQty + need > planQty) {
need = planQty - realQty;
}
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
.task_code(CodeUtil.getNewCode("TASK_CODE"))
.task_type("")
@@ -435,8 +437,8 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
.priority("8")
.vehicle_code(form.getString("vehicle_code"))
.vehicle_type(workOrderObj.getString("vehicle_type"))
.vehicle_qty(1)
.table_fk(workOrderObj.getString("workorder_id"))
.vehicle_qty(need)
.material_info_id(workOrderObj.getString("workorder_id"))
.task_group_id(org.nl.wms.util.IdUtil.getLongId())
.handle_class(THIS_CLASS)
.create_time(DateUtil.now())

View File

@@ -297,7 +297,7 @@ public class YqxCallMaterialTask extends AbstractAcsTask {
.priority("8")
.task_status(TaskStatusEnum.SURE_END.getCode())
.point_code2(point_code2)
.material_info_id(workOrderObj.getLong("workorder_id"))
.material_info_id(workOrderObj.getString("workorder_id"))
.material_id(Long.valueOf(material_id))
.vehicle_type(workOrderObj.getString("vehicle_type"))
.handle_class(THIS_CLASS)

View File

@@ -372,7 +372,7 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
.acs_task_type("2")//2楼AGV普通任务
.vehicle_code(vehicle_code)
.material_qty(qty)
.material_info_id(workOrderObj.getLong("workorder_id"))
.material_info_id(workOrderObj.getString("workorder_id"))
.material_id(workOrderObj.getLong("material_id"))
.vehicle_type(workOrderObj.getString("vehicle_type"))
.handle_class(THIS_CLASS)

View File

@@ -237,7 +237,7 @@ public class HkxSendMaterialTask extends AbstractAcsTask {
.task_status(TaskStatusEnum.SURE_START.getCode())
.point_code1(point_code1)
.vehicle_code(vehicle_code)
.material_info_id(workOrderObj.getLong("workorder_id"))
.material_info_id(workOrderObj.getString("workorder_id"))
.material_id(workOrderObj.getLong("material_id"))
.vehicle_type(workOrderObj.getString("vehicle_type"))
.handle_class(THIS_CLASS)

View File

@@ -14,6 +14,7 @@ import org.nl.modules.system.util.CodeUtil;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
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;
@@ -23,6 +24,7 @@ import org.nl.wms.sch.tasks.AcsTaskDto;
import org.nl.wms.sch.tasks.RegionTypeEnum;
import org.nl.wms.sch.tasks.utils.PointUpdateUtil;
import org.nl.wms.util.IdUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -38,11 +40,13 @@ import java.util.List;
@Slf4j
public class YqxSendMaterialTask extends AbstractAcsTask {
private final String THIS_CLASS = YqxSendMaterialTask.class.getName();
@Autowired
private WorkordeService workordeService;
@Override
@Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) {
WQLObject workorderTab = WQLObject.getWQLObject("pdm_bd_workorder");
/**
*改变任务状态
**/
@@ -101,6 +105,11 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
}
param.put("point_status", "3");
pointTab.update(param, "point_code = '" + point_code2 + "'");
// 更新工单数据
String workorder_id = taskObj.getString("material_info_id"); // 工单号
JSONObject object = workorderTab.query("workorder_id = '" + workorder_id + "'").uniqueResult(0);
object.put("real_qty", object.getInteger("real_qty") + 1);
workorderTab.update(object);
}
}
@@ -164,6 +173,14 @@ public class YqxSendMaterialTask 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")) {
// 当前位置工单完成,物上工单完成
JSONObject row = new JSONObject();
row.put("row", workOrderObj);
workordeService.finish(row);
}
String vehicleType = workOrderObj.getString("vehicle_type");
if (ObjectUtil.isEmpty(vehicleType)) throw new BadRequestException("载具类型不能为空");
@@ -186,7 +203,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
.priority("8")
.task_status(TaskStatusEnum.SURE_START.getCode())
.point_code1(startPointCode)
.material_info_id(workOrderObj.getLong("workorder_id"))
.material_info_id(workOrderObj.getString("workorder_id"))
.material_id(workOrderObj.getLong("material_id"))
.vehicle_type(workOrderObj.getString("vehicle_type"))
.handle_class(THIS_CLASS)