Browse Source

Vesion 1.0

master
张江玮 2 years ago
parent
commit
6326ec2e3f
  1. 32
      lms/nladmin-system/src/main/java/org/nl/wms/pda/rest/PdaController.java
  2. 8
      lms/nladmin-system/src/main/java/org/nl/wms/pda/service/PdaService.java
  3. 165
      lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java
  4. 29
      lms/nladmin-system/src/main/java/org/nl/wms/pda/wql/PDA.wql
  5. 4
      lms/nladmin-system/src/main/java/org/nl/wms/sch/task/CallMaterialTask.java

32
lms/nladmin-system/src/main/java/org/nl/wms/pda/rest/PdaController.java

@ -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", "操作成功");

8
lms/nladmin-system/src/main/java/org/nl/wms/pda/service/PdaService.java

@ -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);
}

165
lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java

@ -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);
}
}
}

29
lms/nladmin-system/src/main/java/org/nl/wms/pda/wql/PDA.wql

@ -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

4
lms/nladmin-system/src/main/java/org/nl/wms/sch/task/CallMaterialTask.java

@ -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("指定的料车点位不存在");

Loading…
Cancel
Save