|
@ -15,6 +15,12 @@ import org.nl.wms.pda.service.PdaService; |
|
|
import org.nl.wms.sch.base.point.LockType; |
|
|
import org.nl.wms.sch.base.point.LockType; |
|
|
import org.nl.wms.sch.base.point.PointStatus; |
|
|
import org.nl.wms.sch.base.point.PointStatus; |
|
|
import org.nl.wms.sch.base.point.PointType; |
|
|
import org.nl.wms.sch.base.point.PointType; |
|
|
|
|
|
import org.nl.wms.sch.base.region.RegionEnum; |
|
|
|
|
|
import org.nl.wms.sch.task.CallEmptyVehicleTask; |
|
|
|
|
|
import org.nl.wms.sch.task.CallMaterialTask; |
|
|
|
|
|
import org.nl.wms.sch.task.SendFullVehicleTask; |
|
|
|
|
|
import org.nl.wms.sch.task.SendResiduesMaterialTask; |
|
|
|
|
|
import org.nl.wms.sch.task.wql.SendEmptyVehicleTask; |
|
|
import org.nl.wms.util.CommonUtils; |
|
|
import org.nl.wms.util.CommonUtils; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
@ -28,6 +34,15 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
@Slf4j |
|
|
@Slf4j |
|
|
public class PdaServiceImpl implements PdaService { |
|
|
public class PdaServiceImpl implements PdaService { |
|
|
|
|
|
|
|
|
|
|
|
private final CallEmptyVehicleTask callEmptyVehicleTask; |
|
|
|
|
|
|
|
|
|
|
|
private final SendFullVehicleTask sendFullVehicleTask; |
|
|
|
|
|
|
|
|
|
|
|
private final CallMaterialTask callMaterialTask; |
|
|
|
|
|
|
|
|
|
|
|
private final SendResiduesMaterialTask sendResiduesMaterialTask; |
|
|
|
|
|
|
|
|
|
|
|
private final SendEmptyVehicleTask sendEmptyVehicleTask; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public JSONArray region() { |
|
|
public JSONArray region() { |
|
@ -178,17 +193,13 @@ public class PdaServiceImpl implements PdaService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public JSONObject vmByVehicle(String vehicleCode) { |
|
|
public JSONArray vmByVehicle(String vehicleCode) { |
|
|
JSONObject result = new JSONObject(); |
|
|
return WQL |
|
|
JSONArray detail = WQL |
|
|
|
|
|
.getWO("PDA") |
|
|
.getWO("PDA") |
|
|
.addParam("flag", "3") |
|
|
.addParam("flag", "3") |
|
|
.addParam("vehicle_code", vehicleCode) |
|
|
.addParam("vehicle_code", vehicleCode) |
|
|
.process() |
|
|
.process() |
|
|
.getResultJSONArray(0); |
|
|
.getResultJSONArray(0); |
|
|
result.put("detail", detail); |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
@Transactional(rollbackFor = Exception.class) |
|
@ -234,4 +245,146 @@ public class PdaServiceImpl implements PdaService { |
|
|
CommonUtils.addUpdateColum(vehicle); |
|
|
CommonUtils.addUpdateColum(vehicle); |
|
|
vehicleTable.update(vehicle); |
|
|
vehicleTable.update(vehicle); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public JSONArray queryMaterial() { |
|
|
|
|
|
return WQL.getWO("PDA").addParam("flag", "4").process().getResultJSONArray(0); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public JSONObject queryInventory(String materialCode, String vehicleCode) { |
|
|
|
|
|
JSONObject vehicle = WQLObject |
|
|
|
|
|
.getWQLObject("md_pb_vehicle") |
|
|
|
|
|
.query("vehicle_code = '" + vehicleCode + "'") |
|
|
|
|
|
.uniqueResult(0); |
|
|
|
|
|
if (ObjectUtil.isEmpty(vehicle)) { |
|
|
|
|
|
throw new BadRequestException("该载具号不存在,请从组盘功能添加"); |
|
|
|
|
|
} |
|
|
|
|
|
if (StrUtil.equals(vehicle.getString("vehicle_status"), VehicleStatus.EMPTY.getCode())) { |
|
|
|
|
|
throw new BadRequestException("该载具为空载具"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
JSONObject point = WQLObject |
|
|
|
|
|
.getWQLObject("sch_base_point") |
|
|
|
|
|
.query("vehicle_code = '" + vehicleCode + "'") |
|
|
|
|
|
.uniqueResult(0); |
|
|
|
|
|
if (ObjectUtil.isEmpty(point)) { |
|
|
|
|
|
throw new BadRequestException("该载具不存在于点位上"); |
|
|
|
|
|
} |
|
|
|
|
|
if (!StrUtil.equals(point.getString("region_id"), RegionEnum.ZC.getCode())) { |
|
|
|
|
|
throw new BadRequestException("该载具不在暂存区"); |
|
|
|
|
|
} |
|
|
|
|
|
if (StrUtil.equals(point.getString("is_used"), "0")) { |
|
|
|
|
|
throw new BadRequestException("该载具所在点位已被禁用"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
JSONObject result = new JSONObject(); |
|
|
|
|
|
result.put("point_id", point.getString("point_id")); |
|
|
|
|
|
result.put("point_name", point.getString("point_name")); |
|
|
|
|
|
|
|
|
|
|
|
JSONArray detail = WQL |
|
|
|
|
|
.getWO("PDA") |
|
|
|
|
|
.addParam("flag", "5") |
|
|
|
|
|
.addParam("vehicle_id", vehicle.getString("vehicle_id")) |
|
|
|
|
|
.process() |
|
|
|
|
|
.getResultJSONArray(0); |
|
|
|
|
|
result.put("detail", detail); |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void task(String type, String pointId, String startPointId, String nextPointId) { |
|
|
|
|
|
switch (type) { |
|
|
|
|
|
case "1": |
|
|
|
|
|
JSONObject point = WQLObject.getWQLObject("sch_base_point") |
|
|
|
|
|
.query("point_id = " + pointId) |
|
|
|
|
|
.uniqueResult(0); |
|
|
|
|
|
if (ObjectUtil.isEmpty(point)) { |
|
|
|
|
|
throw new BadRequestException("该点位不存在"); |
|
|
|
|
|
} |
|
|
|
|
|
if (StrUtil.equals(point.getString("point_status"), PointStatus.HAS_VEHICLE.getCode())) { |
|
|
|
|
|
throw new BadRequestException("该点位上有载具"); |
|
|
|
|
|
} |
|
|
|
|
|
if (!StrUtil.equals(point.getString("region_id"), RegionEnum.JL.getCode())) { |
|
|
|
|
|
throw new BadRequestException("只有接料区可以呼叫空载具"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
JSONObject param = new JSONObject(); |
|
|
|
|
|
param.put("point_id", pointId); |
|
|
|
|
|
callEmptyVehicleTask.createTask(param); |
|
|
|
|
|
break; |
|
|
|
|
|
case "2": |
|
|
|
|
|
point = WQLObject.getWQLObject("sch_base_point") |
|
|
|
|
|
.query("point_id = " + pointId) |
|
|
|
|
|
.uniqueResult(0); |
|
|
|
|
|
if (ObjectUtil.isEmpty(point)) { |
|
|
|
|
|
throw new BadRequestException("该点位不存在"); |
|
|
|
|
|
} |
|
|
|
|
|
if (StrUtil.equals(point.getString("point_status"), PointStatus.EMPTY.getCode())) { |
|
|
|
|
|
throw new BadRequestException("该点位为空位"); |
|
|
|
|
|
} |
|
|
|
|
|
if (StrUtil.equals(point.getString("region_id"), RegionEnum.ZC.getCode())) { |
|
|
|
|
|
throw new BadRequestException("暂存区不能生成入库任务"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
JSONObject vehicle = WQLObject |
|
|
|
|
|
.getWQLObject("md_pb_vehicle") |
|
|
|
|
|
.query("vehicle_code = " + point.getString("vehicle_code")) |
|
|
|
|
|
.uniqueResult(0); |
|
|
|
|
|
param = new JSONObject(); |
|
|
|
|
|
param.put("point_id", pointId); |
|
|
|
|
|
if (StrUtil.equals(vehicle.getString("vehicle_status"), VehicleStatus.EMPTY.getCode())) { |
|
|
|
|
|
sendEmptyVehicleTask.createTask(param); |
|
|
|
|
|
} |
|
|
|
|
|
if (StrUtil.equals(vehicle.getString("vehicle_status"), VehicleStatus.HAS_MATERIAL.getCode())) { |
|
|
|
|
|
String regionId = point.getString("region_id"); |
|
|
|
|
|
if (StrUtil.equals(regionId, RegionEnum.JL.getCode())) { |
|
|
|
|
|
sendFullVehicleTask.createTask(param); |
|
|
|
|
|
} |
|
|
|
|
|
if (StrUtil.equals(regionId, RegionEnum.JJ.getCode())) { |
|
|
|
|
|
sendResiduesMaterialTask.createTask(param); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
case "3": |
|
|
|
|
|
JSONObject startPoint = WQLObject |
|
|
|
|
|
.getWQLObject("sch_base_point") |
|
|
|
|
|
.query("point_id = " + startPointId) |
|
|
|
|
|
.uniqueResult(0); |
|
|
|
|
|
if (ObjectUtil.isEmpty(startPoint)) { |
|
|
|
|
|
throw new BadRequestException("起点不存在"); |
|
|
|
|
|
} |
|
|
|
|
|
if (StrUtil.equals(startPoint.getString("point_status"), PointStatus.EMPTY.getCode())) { |
|
|
|
|
|
throw new BadRequestException("起点为空位"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
JSONObject startVehicle = WQLObject |
|
|
|
|
|
.getWQLObject("md_pb_vehicle") |
|
|
|
|
|
.query("vehicle_code = " + startPoint.getString("vehicle_code")) |
|
|
|
|
|
.uniqueResult(0); |
|
|
|
|
|
if (StrUtil.equals(startVehicle.getString("vehicle_status"), VehicleStatus.EMPTY.getCode())) { |
|
|
|
|
|
throw new BadRequestException("起点上的载具为空载具"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
JSONObject nextPoint = WQLObject |
|
|
|
|
|
.getWQLObject("sch_base_point") |
|
|
|
|
|
.query("point_id = " + nextPointId) |
|
|
|
|
|
.uniqueResult(0); |
|
|
|
|
|
if (ObjectUtil.isEmpty(nextPoint)) { |
|
|
|
|
|
throw new BadRequestException("终点不存在"); |
|
|
|
|
|
} |
|
|
|
|
|
if (StrUtil.equals(nextPoint.getString("point_status"), PointStatus.HAS_VEHICLE.getCode())) { |
|
|
|
|
|
throw new BadRequestException("终点有载具"); |
|
|
|
|
|
} |
|
|
|
|
|
if (StrUtil.equals(nextPoint.getString("region_id"), RegionEnum.JJ.getCode())) { |
|
|
|
|
|
throw new BadRequestException("只有终点为交接区才能生成出库任务"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
param = new JSONObject(); |
|
|
|
|
|
param.put("start_point_id", startPointId); |
|
|
|
|
|
param.put("next_point_id", nextPointId); |
|
|
|
|
|
callMaterialTask.createTask(param); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|