优化
This commit is contained in:
@@ -67,19 +67,36 @@ public class IvtQueryServiceImpl implements IvtQueryService {
|
||||
}
|
||||
JSONObject jo = WQL.getWO("Qivt_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "me.material_code,me.material_name");
|
||||
JSONArray json = jo.getJSONArray("content");
|
||||
JSONArray ja = new JSONArray();
|
||||
for(int i=0;i<json.size();i++){
|
||||
JSONObject jo_now = json.getJSONObject(i);
|
||||
JSONObject jo2 = WQL.getWO("Qivt_query_02").addParam("flag","1")
|
||||
.addParam("storagevehicle_code",jo_now.getString("storagevehicle_code"))
|
||||
.addParam("is_active",jo_now.getString("is_active"))
|
||||
.addParam("ivt_level",jo_now.getString("ivt_level"))
|
||||
.addParam("quality_scode",jo_now.getString("quality_scode"))
|
||||
.addParam("pcsn",jo_now.getString("pcsn"))
|
||||
.addParam("material_id",jo_now.getString("material_id")).process().uniqueResult(0);
|
||||
if(jo2!=null){
|
||||
jo_now.put("bucket_num",jo2.getDouble("bucket_num"));
|
||||
}else{
|
||||
jo_now.put("bucket_num","0");
|
||||
}
|
||||
ja.add(jo_now);
|
||||
}
|
||||
map.put("flag", "01");
|
||||
JSONArray jo2 = WQL.getWO("Qivt_query_01").addParamMap(map).process().getResultJSONArray(1);
|
||||
|
||||
if(jo2.size()!=0){
|
||||
JSONObject jo3 = jo2.getJSONObject(0);
|
||||
jo3.put("stor_name","合计");
|
||||
json.add(jo3);
|
||||
ja.add(jo3);
|
||||
}else{
|
||||
JSONObject jo3 = new JSONObject();
|
||||
jo3.put("stor_name","合计");
|
||||
json.add(jo3);
|
||||
ja.add(jo3);
|
||||
}
|
||||
jo.put("content",json);
|
||||
jo.put("content",ja);
|
||||
return jo;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,9 +38,22 @@ public class StatisticalReportServiceImpl implements StatisticalReportService {
|
||||
String material_code = MapUtil.getStr(whereJson, "material_code");
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("flag", "1");
|
||||
map.put("begin_time", MapUtil.getStr(whereJson, "begin_time"));
|
||||
map.put("end_time", MapUtil.getStr(whereJson, "end_time"));
|
||||
map.put("pcsn", MapUtil.getStr(whereJson, "pcsn"));
|
||||
String begin_time = MapUtil.getStr(whereJson, "begin_time");
|
||||
if (StrUtil.isNotEmpty(begin_time)) {
|
||||
map.put("begin_time", begin_time.substring(0,10)+" 00:00:00");
|
||||
}
|
||||
String end_time = MapUtil.getStr(whereJson, "end_time");
|
||||
if (StrUtil.isNotEmpty(end_time)) {
|
||||
map.put("end_time", end_time.substring(0,10)+" 23:59:59");
|
||||
}
|
||||
String pcsn = MapUtil.getStr(whereJson, "pcsn");
|
||||
if (!StrUtil.isEmpty(pcsn)) {
|
||||
//处理转义字符
|
||||
if (pcsn.contains("\\")) {
|
||||
pcsn = pcsn.replace("\\", "\\\\\\");
|
||||
}
|
||||
map.put("pcsn", "%" + pcsn + "%");
|
||||
}
|
||||
if (!StrUtil.isEmpty(material_code)) {
|
||||
//处理转义字符
|
||||
if (material_code.contains("\\")) {
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
struct.struct_code,
|
||||
struct.struct_name,
|
||||
struct.storagevehicle_code,
|
||||
ivt.material_id,
|
||||
me.material_code,
|
||||
me.material_name,
|
||||
me.material_spec,
|
||||
@@ -73,139 +74,64 @@
|
||||
ivt.frozen_qty,
|
||||
ivt.warehousing_qty,
|
||||
ivt.qty_unit_name,
|
||||
ivt.instorage_time,
|
||||
bucket.bucket_num
|
||||
ivt.instorage_time
|
||||
FROM
|
||||
ST_IVT_StructIvt ivt
|
||||
LEFT JOIN ST_IVT_StructAttr struct ON ivt.struct_id = struct.struct_id
|
||||
LEFT JOIN MD_ME_MaterialBase me ON me.material_id = ivt.material_id
|
||||
LEFT JOIN MD_PB_ClassStandard class ON class.class_id = me.material_type_id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
COUNT(*) AS bucket_num,
|
||||
br.storagevehicle_code,
|
||||
br.material_id,
|
||||
br.pcsn,
|
||||
br.is_active,
|
||||
br.ivt_level,
|
||||
br.quality_scode
|
||||
FROM
|
||||
MD_PB_BucketRecord br
|
||||
WHERE 1=1
|
||||
GROUP BY
|
||||
br.storagevehicle_code,
|
||||
br.material_id,
|
||||
br.pcsn,
|
||||
br.is_active,
|
||||
br.ivt_level,
|
||||
br.quality_scode
|
||||
) bucket ON (bucket.storagevehicle_code = struct.storagevehicle_code
|
||||
and bucket.material_id=ivt.material_id
|
||||
and bucket.pcsn=ivt.pcsn
|
||||
and bucket.is_active=ivt.is_active
|
||||
and bucket.ivt_level=ivt.ivt_level
|
||||
and bucket.quality_scode=ivt.quality_scode)
|
||||
inner JOIN ST_IVT_StructAttr struct ON ivt.struct_id = struct.struct_id
|
||||
inner JOIN MD_ME_MaterialBase me ON me.material_id = ivt.material_id
|
||||
inner JOIN MD_PB_ClassStandard class ON class.class_id = me.material_type_id
|
||||
WHERE 1=1
|
||||
OPTION 输入.stor_id <> ""
|
||||
struct.stor_id = 输入.stor_id
|
||||
ENDOPTION
|
||||
OPTION 输入.sects <> ""
|
||||
struct.sect_id in 输入.sects
|
||||
ENDOPTION
|
||||
OPTION 输入.material_name <> ""
|
||||
( me.material_name like "%" 输入.material_name "%" or me.material_code like "%" 输入.material_name "%" )
|
||||
ENDOPTION
|
||||
OPTION 输入.storagevehicle_code <> ""
|
||||
(struct.storagevehicle_code like "%" 输入.storagevehicle_code "%")
|
||||
ENDOPTION
|
||||
OPTION 输入.struct_name <> ""
|
||||
( struct.struct_name like "%" 输入.struct_name "%" or struct.struct_code like "%" 输入.struct_name "%" )
|
||||
ENDOPTION
|
||||
OPTION 输入.is_active <> ""
|
||||
ivt.is_active = 输入.is_active
|
||||
ENDOPTION
|
||||
OPTION 输入.ivt_level <> ""
|
||||
ivt.ivt_level = 输入.ivt_level
|
||||
ENDOPTION
|
||||
OPTION 输入.quality_scode <> ""
|
||||
ivt.quality_scode = 输入.quality_scode
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn <> ""
|
||||
ivt.pcsn like "%" 输入.pcsn "%"
|
||||
ENDOPTION
|
||||
OPTION 输入.material_model <> ""
|
||||
me.material_model like "%" 输入.material_model "%"
|
||||
ENDOPTION
|
||||
OPTION 输入.classIds <> ""
|
||||
class.class_id in 输入.classIds
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.stor_id <> ""
|
||||
struct.stor_id = 输入.stor_id
|
||||
ENDOPTION
|
||||
OPTION 输入.sects <> ""
|
||||
struct.sect_id in 输入.sects
|
||||
ENDOPTION
|
||||
OPTION 输入.material_name <> ""
|
||||
( me.material_name like "%" 输入.material_name "%" or me.material_code like "%" 输入.material_name "%" )
|
||||
ENDOPTION
|
||||
OPTION 输入.storagevehicle_code <> ""
|
||||
(struct.storagevehicle_code like "%" 输入.storagevehicle_code "%")
|
||||
ENDOPTION
|
||||
OPTION 输入.struct_name <> ""
|
||||
( struct.struct_name like "%" 输入.struct_name "%" or struct.struct_code like "%" 输入.struct_name "%" )
|
||||
ENDOPTION
|
||||
OPTION 输入.is_active <> ""
|
||||
ivt.is_active = 输入.is_active
|
||||
ENDOPTION
|
||||
OPTION 输入.ivt_level <> ""
|
||||
ivt.ivt_level = 输入.ivt_level
|
||||
ENDOPTION
|
||||
OPTION 输入.quality_scode <> ""
|
||||
ivt.quality_scode = 输入.quality_scode
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn <> ""
|
||||
ivt.pcsn like "%" 输入.pcsn "%"
|
||||
ENDOPTION
|
||||
OPTION 输入.material_model <> ""
|
||||
me.material_model like "%" 输入.material_model "%"
|
||||
ENDOPTION
|
||||
OPTION 输入.classIds <> ""
|
||||
class.class_id in 输入.classIds
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "01"
|
||||
QUERY
|
||||
SELECT
|
||||
sum(outq.bucket_num) AS bucket_num,
|
||||
sum(outq.ivt_qty) AS ivt_qty,
|
||||
sum(outq.canuse_qty) AS canuse_qty,
|
||||
sum(outq.frozen_qty) AS frozen_qty,
|
||||
sum(outq.warehousing_qty) AS warehousing_qty
|
||||
SELECT
|
||||
sum( ivt.ivt_qty ) AS ivt_qty,
|
||||
sum( ivt.canuse_qty ) AS canuse_qty,
|
||||
sum( ivt.frozen_qty ) AS frozen_qty,
|
||||
sum( ivt.warehousing_qty ) AS warehousing_qty
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
struct.stor_name,
|
||||
struct.sect_name,
|
||||
struct.struct_code,
|
||||
struct.struct_name,
|
||||
struct.storagevehicle_code,
|
||||
me.material_code,
|
||||
me.material_name,
|
||||
me.material_spec,
|
||||
me.material_model,
|
||||
ivt.quality_scode,
|
||||
ivt.ivt_level,
|
||||
ivt.is_active,
|
||||
ivt.pcsn,
|
||||
ivt.ivt_qty,
|
||||
ivt.canuse_qty,
|
||||
ivt.frozen_qty,
|
||||
ivt.warehousing_qty,
|
||||
ivt.qty_unit_name,
|
||||
ivt.instorage_time,
|
||||
bucket.bucket_num
|
||||
FROM
|
||||
ST_IVT_StructIvt ivt
|
||||
LEFT JOIN ST_IVT_StructAttr struct ON ivt.struct_id = struct.struct_id
|
||||
LEFT JOIN MD_ME_MaterialBase me ON me.material_id = ivt.material_id
|
||||
LEFT JOIN MD_PB_ClassStandard class ON class.class_id = me.material_type_id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
COUNT(*) AS bucket_num,
|
||||
br.storagevehicle_code,
|
||||
br.material_id,
|
||||
br.pcsn,
|
||||
br.is_active,
|
||||
br.ivt_level,
|
||||
br.quality_scode
|
||||
FROM
|
||||
MD_PB_BucketRecord br
|
||||
WHERE 1=1
|
||||
GROUP BY
|
||||
br.storagevehicle_code,
|
||||
br.material_id,
|
||||
br.pcsn,
|
||||
br.is_active,
|
||||
br.ivt_level,
|
||||
br.quality_scode
|
||||
) bucket ON (bucket.storagevehicle_code = struct.storagevehicle_code
|
||||
and bucket.material_id=ivt.material_id
|
||||
and bucket.pcsn=ivt.pcsn
|
||||
and bucket.is_active=ivt.is_active
|
||||
and bucket.ivt_level=ivt.ivt_level
|
||||
and bucket.quality_scode=ivt.quality_scode)
|
||||
WHERE 1=1
|
||||
ST_IVT_StructIvt ivt
|
||||
inner JOIN ST_IVT_StructAttr struct ON ivt.struct_id = struct.struct_id
|
||||
inner JOIN MD_ME_MaterialBase me ON me.material_id = ivt.material_id
|
||||
inner JOIN MD_PB_ClassStandard class ON class.class_id = me.material_type_id
|
||||
WHERE
|
||||
1 = 1
|
||||
OPTION 输入.stor_id <> ""
|
||||
struct.stor_id = 输入.stor_id
|
||||
ENDOPTION
|
||||
@@ -239,8 +165,6 @@
|
||||
OPTION 输入.classIds <> ""
|
||||
class.class_id in 输入.classIds
|
||||
ENDOPTION
|
||||
) outq
|
||||
where 1=1
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
[交易说明]
|
||||
交易名: 库存分页查询
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
|
||||
[IO定义]
|
||||
#################################################
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.storagevehicle_code TYPEAS s_string
|
||||
输入.material_id TYPEAS s_string
|
||||
输入.quality_scode TYPEAS s_string
|
||||
输入.ivt_level TYPEAS s_string
|
||||
输入.is_active TYPEAS s_string
|
||||
输入.pcsn TYPEAS s_string
|
||||
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
|
||||
IF 输入.flag = "1"
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
COUNT(bucket.bucketunique) AS bucket_num
|
||||
FROM
|
||||
MD_PB_BucketRecord bucket
|
||||
WHERE 1=1
|
||||
OPTION 输入.storagevehicle_code <> ""
|
||||
bucket.storagevehicle_code = 输入.storagevehicle_code
|
||||
ENDOPTION
|
||||
OPTION 输入.is_active <> ""
|
||||
bucket.is_active = 输入.is_active
|
||||
ENDOPTION
|
||||
OPTION 输入.ivt_level <> ""
|
||||
bucket.ivt_level = 输入.ivt_level
|
||||
ENDOPTION
|
||||
OPTION 输入.quality_scode <> ""
|
||||
bucket.quality_scode = 输入.quality_scode
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn <> ""
|
||||
bucket.pcsn = 输入.pcsn
|
||||
ENDOPTION
|
||||
OPTION 输入.material_id <> ""
|
||||
bucket.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
@@ -68,9 +68,9 @@
|
||||
MAX( ext.old_mark) AS old_mark
|
||||
FROM
|
||||
pdm_bi_procedureoffline off
|
||||
LEFT JOIN pdm_bi_workorder wo ON (wo.material_id = off.material_id and wo.pcsn = off.pcsn)
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = off.material_id
|
||||
LEFT JOIN md_me_producmaterialext ext ON ext.material_id = off.material_id
|
||||
inner JOIN pdm_bi_workorder wo ON (wo.material_id = off.material_id and wo.pcsn = off.pcsn)
|
||||
inner JOIN md_me_materialbase mb ON mb.material_id = off.material_id
|
||||
inner JOIN md_me_producmaterialext ext ON ext.material_id = off.material_id
|
||||
WHERE
|
||||
1=1 and wo.is_delete='0'
|
||||
OPTION 输入.material_code <> ""
|
||||
@@ -81,20 +81,18 @@
|
||||
)
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn <> ""
|
||||
off.pcsn = 输入.pcsn
|
||||
off.pcsn like 输入.pcsn
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
off.create_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
off.create_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
off.material_id,
|
||||
off.pcsn,
|
||||
wo.org_id
|
||||
HAVING
|
||||
1=1
|
||||
OPTION 输入.begin_time <> ""
|
||||
create_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
create_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
@@ -102,28 +100,12 @@
|
||||
IF 输入.flag = "01"
|
||||
QUERY
|
||||
SELECT
|
||||
sum(outq.qty) AS qty
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
MAX( mb.material_code ) AS material_code,
|
||||
SUM( off.qty ) AS qty,
|
||||
off.material_id,
|
||||
off.pcsn,
|
||||
wo.org_id,
|
||||
MAX( off.create_time ) AS create_time,
|
||||
MAX( off.create_name ) AS create_name,
|
||||
MAX( wo.planend_time ) AS planend_time,
|
||||
MAX( wo.realend_time ) AS realend_time,
|
||||
datediff (MAX( wo.planend_time ),MAX( wo.realend_time )) AS off_days,
|
||||
MAX( ext.old_mark) AS old_mark
|
||||
SUM( off.qty ) AS qty
|
||||
FROM
|
||||
pdm_bi_procedureoffline off
|
||||
LEFT JOIN pdm_bi_workorder wo ON (wo.material_id = off.material_id and wo.pcsn = off.pcsn)
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = off.material_id
|
||||
LEFT JOIN md_me_producmaterialext ext ON ext.material_id = off.material_id
|
||||
inner JOIN md_me_materialbase mb ON mb.material_id = off.material_id
|
||||
WHERE
|
||||
1=1 and wo.is_delete='0'
|
||||
1=1
|
||||
OPTION 输入.material_code <> ""
|
||||
(
|
||||
mb.material_code like 输入.material_code
|
||||
@@ -132,22 +114,14 @@
|
||||
)
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn <> ""
|
||||
off.pcsn = 输入.pcsn
|
||||
off.pcsn like 输入.pcsn
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
off.material_id,
|
||||
off.pcsn,
|
||||
wo.org_id
|
||||
HAVING
|
||||
1=1
|
||||
OPTION 输入.begin_time <> ""
|
||||
create_time >= 输入.begin_time
|
||||
off.create_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
create_time <= 输入.end_time
|
||||
off.create_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
) outq
|
||||
where 1=1
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
Reference in New Issue
Block a user