代码更新
This commit is contained in:
@@ -331,21 +331,71 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
String sale_order_name = sub_jo.getString("sale_order_name");
|
String sale_order_name = sub_jo.getString("sale_order_name");
|
||||||
|
|
||||||
//查询是否存在可用的空位
|
//查询是否存在可用的空位
|
||||||
JSONObject jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "19").addParam("sale_order_name", sale_order_name).process().uniqueResult(0);
|
String point_code = "";
|
||||||
if (ObjectUtil.isEmpty(jo)) {
|
JSONArray joArr = new JSONArray();
|
||||||
|
|
||||||
|
// 查找此订单号所在的所有排
|
||||||
|
JSONArray joRow = WQL.getWO("QST_ACSTOLMSTYPE4").addParam("flag", "1").addParam("sale_order_name", sale_order_name).process().getResultJSONArray(0);
|
||||||
|
for (int j = 0; j < joRow.size(); j++) {
|
||||||
|
JSONObject json = joRow.getJSONObject(j);
|
||||||
|
String row_num = json.getString("row_num");
|
||||||
|
|
||||||
|
// 查找此排下的所有空位
|
||||||
|
JSONArray joEmpPoint = WQL.getWO("QST_ACSTOLMSTYPE4").addParam("flag", "2").addParam("row_num", row_num).process().getResultJSONArray(0);
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(joEmpPoint)) {
|
||||||
|
for (int n = 0; n < joEmpPoint.size(); n++) {
|
||||||
|
joArr.add(joEmpPoint.getJSONObject(n));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ObjectUtil.isEmpty(joArr)) {
|
||||||
//查询新的一排
|
//查询新的一排
|
||||||
JSONObject point_jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "20").process().uniqueResult(0);
|
JSONObject point_jo = WQL.getWO("QST_ACSTOLMSTYPE4").addParam("flag", "3").process().uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(point_jo)) {
|
if (ObjectUtil.isEmpty(point_jo)) {
|
||||||
throw new BadRequestException("未查询到相同销售订单的放货区点位或空的一排!");
|
throw new BadRequestException("未查询到相同销售订单的放货区点位或空的一排!");
|
||||||
} else {
|
} else {
|
||||||
jo = WQLObject.getWQLObject("sch_base_point").query("row_num = '" + point_jo.getString("row_num") + "' AND point_type ='9' AND is_delete = '0'").uniqueResult(0);
|
JSONObject jsonNewRow = WQLObject.getWQLObject("sch_base_point").query("row_num = '" + point_jo.getString("row_num") + "' AND point_type ='9' AND is_delete = '0' order by out_order_seq ASC").uniqueResult(0);
|
||||||
|
point_code = jsonNewRow.getString("point_code");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 校验此货位是否被堵住:1.如果被堵住则判断下一个是否被堵住 2.如果全部被堵住则新开一排
|
||||||
|
for (int i = 0; i < joArr.size(); i++) {
|
||||||
|
JSONObject json = joArr.getJSONObject(i);
|
||||||
|
// 判断是否被挡住
|
||||||
|
JSONArray jsonArray = WQL.getWO("QST_ACSTOLMSTYPE4")
|
||||||
|
.addParam("flag", "4")
|
||||||
|
.addParam("point_code", json.getString("point_code"))
|
||||||
|
.process().getResultJSONArray(0);
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(jsonArray)) {
|
||||||
|
// 堵住则判断下一个
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
// 未堵住: 跳出循环
|
||||||
|
point_code = json.getString("point_code");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ObjectUtil.isEmpty(point_code)) {
|
||||||
|
// 为空则新开一排
|
||||||
|
JSONObject point_jo = WQL.getWO("QST_ACSTOLMSTYPE4").addParam("flag", "3").process().uniqueResult(0);
|
||||||
|
if (ObjectUtil.isEmpty(point_jo)) {
|
||||||
|
throw new BadRequestException("未查询到相同销售订单的放货区点位或空的一排!");
|
||||||
|
} else {
|
||||||
|
JSONObject jsonNewRow = WQLObject.getWQLObject("sch_base_point").query("row_num = '" + point_jo.getString("row_num") + "' AND point_type ='9' AND is_delete = '0' order by out_order_seq ASC").uniqueResult(0);
|
||||||
|
point_code = jsonNewRow.getString("point_code");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//创建任务
|
//创建任务
|
||||||
JSONObject task_jo = new JSONObject();
|
JSONObject task_jo = new JSONObject();
|
||||||
task_jo.put("point_code1", device_code);
|
task_jo.put("point_code1", device_code);
|
||||||
task_jo.put("point_code2", jo.getString("point_cde"));
|
task_jo.put("point_code2", point_code);
|
||||||
task_jo.put("vehicle_code", vehicle_code);
|
task_jo.put("vehicle_code", vehicle_code);
|
||||||
task_jo.put("task_type", "010506");
|
task_jo.put("task_type", "010506");
|
||||||
SendOutTask sendOutTask = new SendOutTask();
|
SendOutTask sendOutTask = new SendOutTask();
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ public class SendOutTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
// 更新暂存区点位状态
|
// 更新暂存区点位状态
|
||||||
JSONObject jsonPoint2 = WQLObject.getWQLObject("sch_base_point").query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0);
|
JSONObject jsonPoint2 = WQLObject.getWQLObject("sch_base_point").query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0);
|
||||||
jsonPoint2.put("point_status", "02");
|
jsonPoint2.put("point_status", "2");
|
||||||
jsonPoint2.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
jsonPoint2.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
||||||
pointTab.update(jsonPoint2);
|
pointTab.update(jsonPoint2);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,182 @@
|
|||||||
|
[交易说明]
|
||||||
|
交易名: ACS请求WMS
|
||||||
|
所属模块:
|
||||||
|
功能简述:
|
||||||
|
版权所有:
|
||||||
|
表引用:
|
||||||
|
版本经历:
|
||||||
|
|
||||||
|
[数据库]
|
||||||
|
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||||
|
|
||||||
|
[IO定义]
|
||||||
|
#################################################
|
||||||
|
## 表字段对应输入参数
|
||||||
|
#################################################
|
||||||
|
输入.flag TYPEAS s_string
|
||||||
|
输入.sale_order_name TYPEAS s_string
|
||||||
|
输入.point_code TYPEAS s_string
|
||||||
|
输入.row_num TYPEAS s_string
|
||||||
|
|
||||||
|
|
||||||
|
[临时表]
|
||||||
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
|
|
||||||
|
[临时变量]
|
||||||
|
--所有中间过程变量均可在此处定义
|
||||||
|
|
||||||
|
[业务过程]
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 1、输入输出检查 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 2、主过程前处理 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 3、业务主过程 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
IF 输入.flag = "1"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
max(po.row_num) AS row_num
|
||||||
|
FROM
|
||||||
|
sch_base_point po
|
||||||
|
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = po.vehicle_code
|
||||||
|
WHERE
|
||||||
|
po.point_type = '9'
|
||||||
|
AND sub.sale_order_name = 输入.sale_order_name
|
||||||
|
|
||||||
|
GROUP BY po.row_num
|
||||||
|
|
||||||
|
ORDER BY po.row_num ASC
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "2"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
po.point_code
|
||||||
|
FROM
|
||||||
|
sch_base_point po
|
||||||
|
WHERE
|
||||||
|
IFNULL( po.vehicle_code, '' ) = ''
|
||||||
|
AND
|
||||||
|
po.point_type = '9'
|
||||||
|
OPTION 输入.row_num <> ""
|
||||||
|
po.row_num = 输入.row_num
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
AND NOT EXISTS (
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
sch_base_task
|
||||||
|
WHERE
|
||||||
|
( point_code1 = po.point_code OR point_code2 = po.point_code )
|
||||||
|
AND task_status < '07'
|
||||||
|
AND is_delete = '0'
|
||||||
|
)
|
||||||
|
|
||||||
|
ORDER BY po.out_order_seq
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "3"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
po.row_num
|
||||||
|
FROM
|
||||||
|
sch_base_point po
|
||||||
|
WHERE
|
||||||
|
po.is_delete = '0'
|
||||||
|
AND is_used = '1'
|
||||||
|
AND po.point_type = '9'
|
||||||
|
GROUP BY
|
||||||
|
po.row_num
|
||||||
|
) a
|
||||||
|
WHERE
|
||||||
|
NOT EXISTS (
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
row_num
|
||||||
|
FROM
|
||||||
|
sch_base_point po2
|
||||||
|
WHERE
|
||||||
|
IFNULL( po2.vehicle_code, '' ) <> ''
|
||||||
|
AND po2.point_type = '9'
|
||||||
|
GROUP BY
|
||||||
|
po2.row_num
|
||||||
|
) b
|
||||||
|
WHERE
|
||||||
|
b.row_num = a.row_num
|
||||||
|
)
|
||||||
|
|
||||||
|
ORDER BY row_num ASC
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "4"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
point2.*
|
||||||
|
FROM
|
||||||
|
sch_base_point point1
|
||||||
|
LEFT JOIN sch_base_point point2 ON point1.row_num = point2.row_num
|
||||||
|
WHERE
|
||||||
|
IFNULL( point2.vehicle_code, '' ) <> ''
|
||||||
|
AND point1.out_order_seq < point2.out_order_seq
|
||||||
|
AND point2.point_type = '9'
|
||||||
|
|
||||||
|
OPTION 输入.point_code <> ""
|
||||||
|
point1.point_code = 输入.point_code
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
UNION
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
point2.*
|
||||||
|
FROM
|
||||||
|
sch_base_point point1
|
||||||
|
LEFT JOIN sch_base_point point2 ON point1.row_num = point2.row_num
|
||||||
|
WHERE
|
||||||
|
IFNULL( point2.vehicle_code, '' ) = ''
|
||||||
|
AND point1.out_order_seq < point2.out_order_seq
|
||||||
|
AND point2.point_type = '9'
|
||||||
|
|
||||||
|
OPTION 输入.point_code <> ""
|
||||||
|
point1.point_code = 输入.point_code
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
AND EXISTS (
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
sch_base_task
|
||||||
|
WHERE
|
||||||
|
( point_code1 = point2.point_code OR point_code2 = point2.point_code )
|
||||||
|
AND task_status < '07'
|
||||||
|
AND is_delete = '0'
|
||||||
|
)
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
@@ -32,6 +32,8 @@
|
|||||||
输入.sale_order_name TYPEAS s_string
|
输入.sale_order_name TYPEAS s_string
|
||||||
输入.material_code TYPEAS s_string
|
输入.material_code TYPEAS s_string
|
||||||
输入.sect_id TYPEAS s_string
|
输入.sect_id TYPEAS s_string
|
||||||
|
输入.point_code TYPEAS s_string
|
||||||
|
输入.row_num TYPEAS s_string
|
||||||
输入.sql_str TYPEAS f_string
|
输入.sql_str TYPEAS f_string
|
||||||
输入.in_stor_id TYPEAS f_string
|
输入.in_stor_id TYPEAS f_string
|
||||||
|
|
||||||
@@ -722,7 +724,7 @@
|
|||||||
AND is_delete = '0'
|
AND is_delete = '0'
|
||||||
)
|
)
|
||||||
ORDER BY po2.out_order_seq
|
ORDER BY po2.out_order_seq
|
||||||
LIMIT 1
|
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@@ -762,6 +764,9 @@
|
|||||||
WHERE
|
WHERE
|
||||||
b.row_num = a.row_num
|
b.row_num = a.row_num
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ORDER BY row_num ASC
|
||||||
|
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -812,7 +817,101 @@
|
|||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "23"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
point2.*
|
||||||
|
FROM
|
||||||
|
sch_base_point point1
|
||||||
|
LEFT JOIN sch_base_point point2 ON point1.row_num = point2.row_num
|
||||||
|
WHERE
|
||||||
|
IFNULL( point2.vehicle_code, '' ) <> ''
|
||||||
|
AND point1.out_order_seq < point2.out_order_seq
|
||||||
|
AND point2.point_type = '9'
|
||||||
|
|
||||||
|
OPTION 输入.point_code <> ""
|
||||||
|
point1.point_code = 输入.point_code
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
UNION
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
point2.*
|
||||||
|
FROM
|
||||||
|
sch_base_point point1
|
||||||
|
LEFT JOIN sch_base_point point2 ON point1.row_num = point2.row_num
|
||||||
|
WHERE
|
||||||
|
IFNULL( point2.vehicle_code, '' ) = ''
|
||||||
|
AND point1.out_order_seq < point2.out_order_seq
|
||||||
|
AND point2.point_type = '9'
|
||||||
|
|
||||||
|
OPTION 输入.point_code <> ""
|
||||||
|
point1.point_code = 输入.point_code
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
AND EXISTS (
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
sch_base_task
|
||||||
|
WHERE
|
||||||
|
( point_code1 = point2.point_code OR point_code2 = point2.point_code )
|
||||||
|
AND task_status < '07'
|
||||||
|
AND is_delete = '0'
|
||||||
|
)
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "24"
|
||||||
|
SELECT
|
||||||
|
max(po.row_num) AS row_num
|
||||||
|
FROM
|
||||||
|
sch_base_point po
|
||||||
|
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = po.vehicle_code
|
||||||
|
WHERE
|
||||||
|
po.point_type = '9'
|
||||||
|
|
||||||
|
OPTION 输入.sale_order_name <> ""
|
||||||
|
sub.sale_order_name = 输入.sale_order_name
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
GROUP BY po.row_num
|
||||||
|
|
||||||
|
ORDER BY po.row_num ASC
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "25"
|
||||||
|
SELECT
|
||||||
|
po.point_code
|
||||||
|
FROM
|
||||||
|
sch_base_point po
|
||||||
|
WHERE
|
||||||
|
IFNULL( po.vehicle_code, '' ) = ''
|
||||||
|
AND
|
||||||
|
po.point_type = '9'
|
||||||
|
OPTION 输入.row_num <> ""
|
||||||
|
po.row_num = 输入.row_num
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
AND NOT EXISTS (
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
sch_base_task
|
||||||
|
WHERE
|
||||||
|
( point_code1 = po.point_code OR point_code2 = po.point_code )
|
||||||
|
AND task_status < '07'
|
||||||
|
AND is_delete = '0'
|
||||||
|
)
|
||||||
|
|
||||||
|
ORDER BY po.out_order_seq
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user