代码更新
This commit is contained in:
@@ -331,21 +331,71 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
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);
|
||||
if (ObjectUtil.isEmpty(jo)) {
|
||||
String point_code = "";
|
||||
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)) {
|
||||
throw new BadRequestException("未查询到相同销售订单的放货区点位或空的一排!");
|
||||
} 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();
|
||||
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("task_type", "010506");
|
||||
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);
|
||||
jsonPoint2.put("point_status", "02");
|
||||
jsonPoint2.put("point_status", "2");
|
||||
jsonPoint2.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
||||
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
|
||||
输入.material_code TYPEAS s_string
|
||||
输入.sect_id TYPEAS s_string
|
||||
输入.point_code TYPEAS s_string
|
||||
输入.row_num TYPEAS s_string
|
||||
输入.sql_str TYPEAS f_string
|
||||
输入.in_stor_id TYPEAS f_string
|
||||
|
||||
@@ -722,7 +724,7 @@
|
||||
AND is_delete = '0'
|
||||
)
|
||||
ORDER BY po2.out_order_seq
|
||||
LIMIT 1
|
||||
|
||||
ENDSELECT
|
||||
ENDIF
|
||||
|
||||
@@ -762,6 +764,9 @@
|
||||
WHERE
|
||||
b.row_num = a.row_num
|
||||
)
|
||||
|
||||
ORDER BY row_num ASC
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -812,7 +817,101 @@
|
||||
ENDQUERY
|
||||
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