This commit is contained in:
zds
2022-12-01 21:48:55 +08:00
parent aced8be5a7
commit c22a8545ee
8 changed files with 214 additions and 197 deletions

View File

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

View File

@@ -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("\\")) {

View File

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

View File

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

View File

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