Vesion 1.0
This commit is contained in:
@@ -67,10 +67,10 @@ public class PdaController {
|
||||
return this.success();
|
||||
}
|
||||
|
||||
@PostMapping("/vmByVehicle")
|
||||
@PostMapping("/vmByvehicle")
|
||||
@Log("查询载具及组盘信息")
|
||||
@ApiOperation("查询载具及组盘信息")
|
||||
public ResponseEntity<JSONObject> vmByVehicle(@RequestBody JSONObject param) {
|
||||
public ResponseEntity<JSONArray> vmByVehicle(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(pdaService.vmByVehicle(param.getString("vehicle_code")), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -83,6 +83,34 @@ public class PdaController {
|
||||
return this.success();
|
||||
}
|
||||
|
||||
@PostMapping("/queryMaterial")
|
||||
@Log("查询物料")
|
||||
@ApiOperation("查询物料")
|
||||
public ResponseEntity<JSONArray> queryMaterial() {
|
||||
return new ResponseEntity<>(pdaService.queryMaterial(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/queryInventory")
|
||||
@Log("查询可出库信息")
|
||||
@ApiOperation("查询可出库信息")
|
||||
public ResponseEntity<JSONObject> queryInventory(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(pdaService.queryInventory(param.getString("material_code"), param.getString("vehicle_code")), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/task")
|
||||
@Log("任务生成")
|
||||
@ApiOperation("任务生成")
|
||||
public ResponseEntity<JSONObject> task(@RequestBody JSONObject param) {
|
||||
pdaService.task(
|
||||
param.getString("type"),
|
||||
param.getString("point_id"),
|
||||
param.getString("start_point_id"),
|
||||
param.getString("next_point_id")
|
||||
);
|
||||
|
||||
return this.success();
|
||||
}
|
||||
|
||||
private ResponseEntity<JSONObject> success() {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("message", "操作成功");
|
||||
|
||||
@@ -19,7 +19,13 @@ public interface PdaService {
|
||||
|
||||
void vm(String vehicleCode, JSONArray materials);
|
||||
|
||||
JSONObject vmByVehicle(String vehicleCode);
|
||||
JSONArray vmByVehicle(String vehicleCode);
|
||||
|
||||
void outbound(String vehicleCode, JSONArray materials);
|
||||
|
||||
JSONArray queryMaterial();
|
||||
|
||||
JSONObject queryInventory(String materialCode, String vehicleCode);
|
||||
|
||||
void task(String type, String pointId, String startPointId, String nextPointId);
|
||||
}
|
||||
|
||||
@@ -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.PointStatus;
|
||||
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.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -28,6 +34,15 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
@Slf4j
|
||||
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
|
||||
public JSONArray region() {
|
||||
@@ -178,17 +193,13 @@ public class PdaServiceImpl implements PdaService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject vmByVehicle(String vehicleCode) {
|
||||
JSONObject result = new JSONObject();
|
||||
JSONArray detail = WQL
|
||||
public JSONArray vmByVehicle(String vehicleCode) {
|
||||
return WQL
|
||||
.getWO("PDA")
|
||||
.addParam("flag", "3")
|
||||
.addParam("vehicle_code", vehicleCode)
|
||||
.process()
|
||||
.getResultJSONArray(0);
|
||||
result.put("detail", detail);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -234,4 +245,146 @@ public class PdaServiceImpl implements PdaService {
|
||||
CommonUtils.addUpdateColum(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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
输入.flag TYPEAS s_string
|
||||
输入.region_id TYPEAS s_string
|
||||
输入.vehicle_code TYPEAS s_string
|
||||
输入.vehicle_id TYPEAS s_string
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
@@ -61,6 +62,7 @@
|
||||
sch_base_point
|
||||
WHERE
|
||||
region_id = 输入.region_id
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -80,3 +82,30 @@
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "4"
|
||||
QUERY
|
||||
SELECT
|
||||
material_code,
|
||||
material_name
|
||||
FROM
|
||||
md_me_materialbase
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "5"
|
||||
QUERY
|
||||
SELECT
|
||||
material.material_code,
|
||||
material.material_name,
|
||||
vm.material_qty,
|
||||
vm.material_batch AS batch
|
||||
FROM
|
||||
st_ivt_vehicle_material vm
|
||||
LEFT JOIN md_me_materialbase material ON vm.material_id = material.material_id
|
||||
WHERE
|
||||
vm.vehicle_id = 输入.vehicle_id
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -86,14 +86,14 @@ public class CallMaterialTask extends AbstractAcsTask {
|
||||
public String createTask(JSONObject param) {
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_id = " + param.getString("point_id"))
|
||||
.query("point_id = " + param.getString("next_point_id"))
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(nextPoint)) {
|
||||
throw new BadRequestException("终点不存在");
|
||||
}
|
||||
|
||||
JSONObject startPoint = pointTable
|
||||
.query("vehicle_code = " + param.getString("vehicle_code"))
|
||||
.query("point_id = " + param.getString("start_point_id"))
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(startPoint)) {
|
||||
throw new BadRequestException("指定的料车点位不存在");
|
||||
|
||||
Reference in New Issue
Block a user