Merge branch 'master' of http://121.40.234.130:8899/root/lanzhouhailiang_one
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();
|
||||
|
||||
@@ -158,10 +158,10 @@ public class InTask extends AbstractAcsTask {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void forceFinish(String taskdtl_id) {
|
||||
public void forceFinish(String task_id) {
|
||||
//任务表
|
||||
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject task = wo_Task.query("task_status<>'99' and taskdtl_id='" + taskdtl_id + "'").uniqueResult(0);
|
||||
JSONObject task = wo_Task.query("task_status<>'07' and task_id='" + task_id + "'").uniqueResult(0);
|
||||
if (task == null) {
|
||||
throw new BadRequestException("查询不到操作的任务记录!");
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl;
|
||||
@@ -46,7 +47,10 @@ public class OutTask extends AbstractAcsTask {
|
||||
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
WQLObject dis_tab = WQLObject.getWQLObject("ST_IVT_IOStorInvDis");
|
||||
|
||||
JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("flag", "1");
|
||||
map.put("handle_class", THIS_CLASS);
|
||||
JSONArray arr = WQL.getWO("TASK01").addParamMap(map).process().getResultJSONArray(0);
|
||||
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
|
||||
@@ -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,60 @@
|
||||
[交易说明]
|
||||
交易名: 出库任务
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
|
||||
[IO定义]
|
||||
#################################################
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.handle_class TYPEAS s_string
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
|
||||
IF 输入.flag = "1"
|
||||
QUERY
|
||||
SELECT
|
||||
max(task_group_id) AS task_group_id,
|
||||
max(task_type) AS task_type
|
||||
FROM
|
||||
sch_base_task
|
||||
WHERE
|
||||
task_status = '04'
|
||||
AND is_delete = '0'
|
||||
|
||||
OPTION 输入.handle_class <> ""
|
||||
handle_class = 输入.handle_class
|
||||
ENDOPTION
|
||||
|
||||
group by task_group_id
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -565,8 +565,8 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
transfer = false;
|
||||
}
|
||||
|
||||
//创建任务
|
||||
AbstractAcsTask task = new InTask();
|
||||
//创建任务并下发
|
||||
InTask task = new InTask();
|
||||
JSONObject task_form = new JSONObject();
|
||||
task_form.put("task_type", "010501");
|
||||
task_form.put("start_device_code", map.get("point_code"));
|
||||
@@ -574,21 +574,10 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
|
||||
task_form.put("vehicle_code", map.get("box_no"));
|
||||
task_form.put("storagevehicle_type", map.get("storagevehicle_type"));
|
||||
String task_id = task.createTask(task_form);
|
||||
if (whereJson.containsKey("auto_issue")) {
|
||||
AbstractAcsTask intask = new InTask();
|
||||
//调用ACS接受任务接口
|
||||
JSONObject result = null;
|
||||
if (ObjectUtil.isNotEmpty(result)) {
|
||||
String status = result.getString("status");
|
||||
if ("200".equals(status)) {
|
||||
HashMap<String, String> mapnow = new HashMap<>();
|
||||
mapnow.put("task_status", "02");
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").update(mapnow, "taskdtl_id = '" + task_id + "'");
|
||||
} else {
|
||||
throw new BadRequestException("任务下发失败:" + result.getString("message"));
|
||||
}
|
||||
}
|
||||
}
|
||||
// 下发
|
||||
task.immediateNotifyAcs(task_id);
|
||||
/* if (whereJson.containsKey("auto_issue")) {
|
||||
}*/
|
||||
dis_map.put("task_id", task_id);
|
||||
dis_map.put("work_status", "01");
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2499,7 +2499,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
||||
jsonRow.put("point_id", jsonPoint2.getString("point_id"));
|
||||
this.rowDispose(jsonRow);
|
||||
}
|
||||
outTask.immediateNotifyAcs(null);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
||||
Reference in New Issue
Block a user