dev:查询优化

This commit is contained in:
2023-11-28 13:41:24 +08:00
parent 22f61db5f5
commit 72b31f02c6
11 changed files with 277 additions and 60 deletions

View File

@@ -62,7 +62,7 @@ public class StoragevehicleinfoServiceImpl implements StoragevehicleinfoService
map.put("storagevehicle_code_end", storagevehicle_code_end);
map.put("flag", "1");
JSONObject json = WQL.getWO("QMD_PB_STORAGEVEHICLEINFO").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "s.storagevehicle_code ASC");
JSONArray content = json.getJSONArray("content");
/*JSONArray content = json.getJSONArray("content");
for (int i = 0; i < content.size(); i++) {
JSONObject jsonObject = content.getJSONObject(i);
JSONObject jsonTask = taskTab.query("vehicle_code = '" + jsonObject.getString("storagevehicle_code") + "' and task_status <> '99' and is_delete = '0'").uniqueResult(0);
@@ -74,7 +74,7 @@ public class StoragevehicleinfoServiceImpl implements StoragevehicleinfoService
} else {
jsonObject.put("is_task", "0");
}
}
}*/
return json;
}

View File

@@ -74,6 +74,8 @@ public interface CheckOutBillService {
* @return
*/
JSONArray getOutBillDis(Map whereJson);
JSONArray getOutBillDis2(Map whereJson);
/**
* 查询出库单分配明细
* @param whereJson /

View File

@@ -71,7 +71,7 @@ public class OutChargeServiceImpl implements OutChargeService {
if (ObjectUtil.isNotEmpty(in_stor_id)) map.put("in_stor_id",in_stor_id);
JSONObject json = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ios.bill_code DESC");
JSONObject json = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ios.iostorinv_id DESC");
return json;
}

View File

@@ -107,7 +107,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
if (ObjectUtil.isNotEmpty(in_stor_id)) map.put("in_stor_id", in_stor_id);
JSONObject jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "bill_code desc");
JSONObject jo = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "iostorinv_id desc");
return jo;
}

View File

@@ -113,11 +113,19 @@ public class CheckOutBillController {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@GetMapping("/getOutBillDis")
@Log("查询出库单分配")
@Log("查询出库单分配")
@ApiOperation("查询出库单分配")
public ResponseEntity<Object> getOutBillDis(@RequestParam Map whereJson){
return new ResponseEntity<>(checkOutBillService.getOutBillDis(whereJson), HttpStatus.OK);
}
@GetMapping("/getOutBillDis2")
@Log("查询未出库单分配")
@ApiOperation("查询出库单分配")
public ResponseEntity<Object> getOutBillDis2(@RequestParam Map whereJson){
return new ResponseEntity<>(checkOutBillService.getOutBillDis2(whereJson), HttpStatus.OK);
}
@GetMapping("/getOutBillDisDtl")
@Log("查询出库单分配")
@ApiOperation("查询出库单分配")

View File

@@ -117,7 +117,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
if (ObjectUtil.isNotEmpty(in_stor_id)) map.put("in_stor_id", in_stor_id);
JSONObject jo = WQL.getWO("QST_IVT_CHECKOUTBILL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "bill_code desc");
JSONObject jo = WQL.getWO("QST_IVT_CHECKOUTBILL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "iostorinv_id desc");
return jo;
}
@@ -580,6 +580,16 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
return jo;
}
@Override
public JSONArray getOutBillDis2(Map whereJson) {
whereJson.put("flag", "52");
JSONArray jo = WQL.getWO("QST_IVT_CHECKOUTBILL")
.addParamMap((HashMap) whereJson)
.process()
.getResultJSONArray(0);
return jo;
}
@Override
public JSONArray getOutBillDisDtl(Map whereJson) {
whereJson.put("flag", "9");
@@ -2752,20 +2762,24 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
}
}
for (int i = 0; i < allRowArr.size(); i++) {
// 调用当前排处理方法
JSONObject jsonRow = allRowArr.getJSONObject(i);
jsonRow.put("iostorinv_id", iostorinv_id);
jsonRow.put("point_code", point_code);
jsonRow.put("checked", checked);
jsonRow.put("iostorinvdtl_id", iostorinvdtl_id);
jsonRow.put("point_id", jsonPoint2.getString("point_id"));
this.rowDispose(jsonRow, allTransactionConsumer);
}
formeth(allTransactionConsumer, allRowArr, iostorinv_id, point_code, checked, iostorinvdtl_id, jsonPoint2);
return arr;
}, new JSONArray());
}
public void formeth(Consumer<String> allTransactionConsumer, JSONArray allRowArr, String iostorinv_id, String point_code, boolean checked, String iostorinvdtl_id, JSONObject jsonPoint2) {
for (int i = 0; i < allRowArr.size(); i++) {
// 调用当前排处理方法
JSONObject jsonRow = allRowArr.getJSONObject(i);
jsonRow.put("iostorinv_id", iostorinv_id);
jsonRow.put("point_code", point_code);
jsonRow.put("checked", checked);
jsonRow.put("iostorinvdtl_id", iostorinvdtl_id);
jsonRow.put("point_id", jsonPoint2.getString("point_id"));
this.rowDispose(jsonRow, allTransactionConsumer);
}
}
@Transactional(rollbackFor = Exception.class)
public void rowDispose(JSONObject jsonRow, Consumer<String> allTransactionConsumer) {
//出库分配表
@@ -2786,7 +2800,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
* 查询这一排的要出库的所有分配明细(正序)
*/
JSONArray disRowArr = WQL.getWO("ST_OUTIVT04")
.addParam("flag", "2")
.addParam("flag", "23")
.addParam("iostorinvdtl_id", iostorinvdtl_id)
.addParam("block_num", jsonRow.getString("block_num"))
.addParam("row_num", jsonRow.getString("row_num"))
@@ -3105,7 +3119,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
}
// 更新出库任务:任务组和顺序号
JSONObject jsonTaskLast1 = wo_Task.query("task_group_id = '" + task_group_id + "' order by sort_seq DESC").uniqueResult(0);
JSONObject jsonTaskLast1 = WQL.getWO("QST_IVT_CHECKOUTBILL").addParam("flag", "13").addParam("task_group_id", task_group_id + "").process().uniqueResult(0);
jsonTask.put("task_group_id", task_group_id);
if (ObjectUtil.isEmpty(jsonTaskLast1)) {
jsonTask.put("sort_seq", 1);
@@ -3137,7 +3151,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
} else {
create_rows.add(jsonNext);
// 查询此任务组最后一个生成的任务
JSONObject jsonTaskLast = wo_Task.query("task_group_id = '" + task_group_id + "' order by sort_seq DESC").uniqueResult(0);
JSONObject jsonTaskLast = WQL.getWO("QST_IVT_CHECKOUTBILL").addParam("flag", "13").addParam("task_group_id", task_group_id + "").process().uniqueResult(0);
// 创建任务并添加到任务组
allTransactionConsumer.accept(jsonNext.getString("struct_code"));
JSONObject param2 = new JSONObject();
@@ -3733,8 +3747,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
* @param arr
* @return
*/
@Transactional(rollbackFor = Exception.class)
public JSONArray isNum(JSONArray arr) {
/*public JSONArray isNum(JSONArray arr) {
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); // 任务表
JSONArray result = new JSONArray();
@@ -3742,17 +3755,41 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
for (int i = 0; i < arr.size(); i++) {
JSONObject json = arr.getJSONObject(i);
String struct_code = json.getString("struct_code");
String vehicle_code = json.getString("storagevehicle_code");
JSONObject jsonTask1 = taskTab.query("point_code1 = '" + struct_code + "' and task_status in ('05','06','07') and vehicle_code = '" + vehicle_code + "'").uniqueResult(0);
JSONObject jsonTask1 = taskTab.query("point_code1 = '" + struct_code + "' and task_status in ('05','06')").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonTask1)) {
} else {
if (ObjectUtil.isEmpty(jsonTask1)) {
result.add(json);
}
}
return result;
}*/
public JSONArray isNum(JSONArray arr) {
StringJoiner joiner = new StringJoiner(",", "(", ")");
JSONArray result = new JSONArray();
if (ObjectUtil.isNotEmpty(arr)) {
for (int i = 0; i < arr.size(); i++) {
JSONObject json = arr.getJSONObject(i);
joiner.add("'" + json.getString("struct_code") + "'");
}
JSONArray task_ja = WQL.getWO("QST_IVT_CHECKOUTBILL").addParam("struct_codes", joiner.toString()).addParam("flag", "14").process().getResultJSONArray(0);
for (int i = 0; i < arr.size(); i++) {
JSONObject jo = arr.getJSONObject(i);
String struct_code = jo.getString("struct_code");
boolean flag = false;
for (int j = 0; j < task_ja.size(); j++) {
JSONObject task_jo = task_ja.getJSONObject(j);
if (task_jo.getString("point_code1").equals(struct_code)) {
flag = true;
break;
}
}
if (flag) {
result.add(jo);
}
}
}
return result;
}
@@ -4232,7 +4269,12 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
// 更新子卷包装关系表 状态 - 3
JSONObject jsonSub = subTab.query("container_name = '" + dis.getString("pcsn") + "' and package_box_sn = '" + dis.getString("box_no") + "' and status = '2'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonSub))
//查询对应的包装关系出入库记录表
jsonSub = sub_record.query("container_name = '" + dis.getString("pcsn") + "' and package_box_sn = '" + dis.getString("box_no") + "' and status = '2' AND bill_code = '" + jo_mst.getString("bill_code") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonSub)) {
throw new BadRequestException("此子卷不存在或不为入库状态:" + dis.getString("pcsn"));
}
// 如果是拆分入库则将包装关系改为生成状态
if (jo_mst.getString("bill_type").equals("1005") || (jo_mst.getString("bill_type").equals("1009"))) {
jsonSub.put("status", "0");
@@ -4706,6 +4748,19 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
HashMap<String, String> map = new HashMap<>();
map.put("need_delete", "1");
WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(map, "package_box_sn = '" + task.getString("vehicle_code") + "'");
JSONArray rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + task.getString("vehicle_code") + "'").getResultJSONArray(0);
for (int i = 0; i < rows.size(); i++) {
JSONObject row = rows.getJSONObject(i);
//插入包装关系出入库记录表
row.put("bill_code", mst_jo.getString("bill_code"));
row.put("bill_id", mst_jo.getString("iostorinv_id"));
row.put("bill_type", mst_jo.getString("bill_type"));
row.put("io_type", "1");
row.put("insert_time", DateUtil.now());
row.put("record_id", IdUtil.getSnowflake(1, 1).nextId());
WQLObject.getWQLObject("pdm_bi_subpackagerelationrecord").insert(row);
}
}
}

View File

@@ -55,7 +55,9 @@
输入.customer_name TYPEAS s_string
输入.thickness_request TYPEAS s_string
输入.width_standard TYPEAS s_string
输入.task_group_id TYPEAS s_string
输入.in_stor_id TYPEAS f_string
输入.struct_codes TYPEAS f_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
@@ -501,6 +503,64 @@
ENDQUERY
ENDIF
IF 输入.flag = "52"
QUERY
SELECT
dis.*,
ios.io_type,
ios.bill_code,
mb.material_code,
mb.material_name,
task.task_code,
task.task_status,
task.task_type,
point2.point_code,
sub.sap_pcsn,
attr.out_order_seq,
attr.row_num,
attr.col_num,
attr.layer_num,
attr.block_num,
attr.placement_type,
sub.sale_order_name,
sub.width_standard
FROM
ST_IVT_IOStorInvDis dis
LEFT JOIN ST_IVT_IOStorInv ios ON ios.iostorinv_id = dis.iostorinv_id
LEFT JOIN md_me_materialbase mb ON mb.material_id = dis.material_id
LEFT JOIN SCH_BASE_Task task ON task.task_id = dis.task_id AND task.is_delete = '0'
LEFT JOIN SCH_BASE_Point point2 ON point2.point_id = dis.point_id
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = dis.struct_id
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND dis.storagevehicle_code = sub.package_box_sn
WHERE
1=1
OPTION 输入.iostorinvdtl_id <> ""
dis.iostorinvdtl_id = 输入.iostorinvdtl_id
ENDOPTION
OPTION 输入.task_id <> ""
dis.task_id = 输入.task_id
ENDOPTION
OPTION 输入.iostorinv_id <> ""
dis.iostorinv_id = 输入.iostorinv_id
ENDOPTION
OPTION 输入.iostorinvdis_id <> ""
dis.iostorinvdis_id = 输入.iostorinvdis_id
ENDOPTION
OPTION 输入.is_issued <> ""
dis.is_issued = 输入.is_issued
ENDOPTION
OPTION 输入.struct_id <> ""
dis.struct_id = 输入.struct_id
ENDOPTION
OPTION 输入.bill_status <> ""
dis.work_status <= 输入.bill_status
ENDOPTION
order by dis.box_no,dis.pcsn
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "55"
QUERY
SELECT
@@ -900,5 +960,33 @@
ENDPAGEQUERY
ENDIF
IF 输入.flag = "13"
QUERY
SELECT
sort_seq
FROM
sch_base_task
WHERE
task_group_id = 输入.task_group_id
ORDER BY
sort_seq DESC
limit 1
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "14"
QUERY
SELECT
point_code1
FROM
sch_base_task
WHERE
point_code1 IN 输入.struct_codes
AND task_status IN ('05','06')
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -178,6 +178,43 @@
ENDQUERY
ENDIF
IF 输入.flag = "23"
QUERY
SELECT
max(attr.out_order_seq) AS out_order_seq,
max(attr.block_num) AS block_num,
max(attr.row_num) AS row_num,
max(attr.placement_type) AS placement_type
FROM
ST_IVT_IOStorInvDis dis
LEFT JOIN st_ivt_structattr attr ON dis.struct_id = attr.struct_id
WHERE
dis.work_status = '00'
OPTION 输入.iostorinvdtl_id <> ""
dis.iostorinvdtl_id = 输入.iostorinvdtl_id
ENDOPTION
OPTION 输入.iostorinvdis_id <> ""
dis.iostorinvdis_id = 输入.iostorinvdis_id
ENDOPTION
OPTION 输入.block_num <> ""
attr.block_num = 输入.block_num
ENDOPTION
OPTION 输入.row_num <> ""
attr.row_num = 输入.row_num
ENDOPTION
group by attr.struct_id
order by attr.out_order_seq ASC
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "3"
QUERY
SELECT

View File

@@ -61,18 +61,58 @@
IF 输入.flag = "1"
PAGEQUERY
SELECT DISTINCT
SELECT
mst.*,
IFNULL( dtl.source_bill_type, '' ) AS source_bill_type,
IFNULL(dtl.vbeln,'') AS vbeln,
IFNULL( a.source_bill_type, '' ) AS source_bill_type,
IFNULL(a.vbeln,'') AS vbeln,
user.person_name AS upload_name
FROM
st_ivt_iostorinv mst
LEFT JOIN st_ivt_iostorinvdtl dtl ON mst.iostorinv_id = dtl.iostorinv_id
LEFT JOIN ST_IVT_IOStorInvDis dis ON dis.iostorinvdtl_id = dtl.iostorinvdtl_id
LEFT JOIN (
SELECT
iostorinv_id,
MAX( source_bill_type ) AS source_bill_type,
MAX( vbeln ) AS vbeln
FROM
st_ivt_iostorinvdtl dtl
INNER JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
WHERE
1=1
OPTION 输入.vbeln <> ""
dtl.vbeln = 输入.vbeln
ENDOPTION
OPTION 输入.material_search <> ""
(
mb.material_code like 输入.material_search
OR
mb.material_name like 输入.material_search
)
ENDOPTION
GROUP BY
iostorinv_id
) a ON mst.iostorinv_id = a.iostorinv_id
LEFT JOIN (
SELECT
iostorinv_id
FROM
st_ivt_iostorinvdis dis
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn
AND dis.box_no = sub.package_box_sn
WHERE
1=1
OPTION 输入.pcsn <> ""
dis.pcsn = 输入.pcsn
ENDOPTION
OPTION 输入.sap_pcsn <> ""
sub.sap_pcsn = 输入.sap_pcsn
ENDOPTION
OPTION 输入.box_no <> ""
dis.box_no like 输入.box_no
ENDOPTION
GROUP BY
iostorinv_id
) b ON b.iostorinv_id = mst.iostorinv_id
LEFT JOIN sys_user user ON user.user_id = mst.upload_optid
INNER JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn
WHERE
mst.is_delete = '0'
and mst.stor_id in 输入.in_stor_id
@@ -81,30 +121,18 @@
mst.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.pcsn <> ""
dis.pcsn = 输入.pcsn
ENDOPTION
OPTION 输入.sap_pcsn <> ""
sub.sap_pcsn = 输入.sap_pcsn
ENDOPTION
OPTION 输入.is_writeoff <> ""
mst.is_writeoff = 输入.is_writeoff
ENDOPTION
OPTION 输入.bill_status <> ""
mst.bill_status = 输入.bill_status
ENDOPTION
OPTION 输入.bill_status <> ""
mst.bill_status = 输入.bill_status
ENDOPTION
OPTION 输入.bill_type <> ""
mst.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.box_no <> ""
dis.box_no like 输入.box_no
ENDOPTION
OPTION 输入.bill_status <> ""
mst.bill_status = 输入.bill_status
ENDOPTION
@@ -126,16 +154,6 @@
ENDOPTION
OPTION 输入.end_time <> ""
mst.input_time <= 输入.end_time
ENDOPTION
OPTION 输入.vbeln <> ""
dtl.vbeln = 输入.vbeln
ENDOPTION
OPTION 输入.material_search <> ""
(
mb.material_code like 输入.material_search
OR
mb.material_name like 输入.material_search
)
ENDOPTION
ENDSELECT
ENDPAGEQUERY