代码更新

This commit is contained in:
2023-01-09 17:06:04 +08:00
parent 1018503567
commit 9a343ca146
4 changed files with 339 additions and 8 deletions

View File

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

View File

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

View File

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

View File

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