rev:合同台帐查看功能会滚
This commit is contained in:
@@ -0,0 +1,808 @@
|
||||
[交易说明]
|
||||
交易名: 压制性能分页查询
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
|
||||
[IO定义]
|
||||
#################################################
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.begin_time TYPEAS s_string
|
||||
输入.end_time TYPEAS s_string
|
||||
输入.begin_date TYPEAS s_string
|
||||
输入.end_date TYPEAS s_string
|
||||
输入.pcsn TYPEAS s_string
|
||||
输入.material_code TYPEAS s_string
|
||||
输入.bill_code TYPEAS s_string
|
||||
输入.io_type TYPEAS s_string
|
||||
输入.buss_type TYPEAS s_string
|
||||
输入.bill_type TYPEAS s_string
|
||||
输入.stor_id TYPEAS s_string
|
||||
输入.deptIds TYPEAS s_string
|
||||
输入.create_mode TYPEAS s_string
|
||||
输入.bill_status TYPEAS s_string
|
||||
输入.material_id TYPEAS s_string
|
||||
输入.org_id TYPEAS s_string
|
||||
输入.material_ids TYPEAS f_string
|
||||
输入.org_ids TYPEAS f_string
|
||||
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
|
||||
IF 输入.flag = "1"
|
||||
PAGEQUERY
|
||||
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
|
||||
FROM
|
||||
pdm_bi_procedureoffline off
|
||||
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 <> ""
|
||||
(
|
||||
mb.material_code like 输入.material_code
|
||||
OR
|
||||
mb.material_name like 输入.material_code
|
||||
)
|
||||
ENDOPTION
|
||||
OPTION 输入.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
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "01"
|
||||
QUERY
|
||||
SELECT
|
||||
SUM( off.qty ) AS qty
|
||||
FROM
|
||||
pdm_bi_procedureoffline off
|
||||
inner JOIN md_me_materialbase mb ON mb.material_id = off.material_id
|
||||
WHERE
|
||||
1=1
|
||||
OPTION 输入.material_code <> ""
|
||||
(
|
||||
mb.material_code like 输入.material_code
|
||||
OR
|
||||
mb.material_name like 输入.material_code
|
||||
)
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn <> ""
|
||||
off.pcsn like 输入.pcsn
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
off.create_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
off.create_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
mst.biz_date,
|
||||
mst.iostorinv_id,
|
||||
mst.bill_type,
|
||||
mst.io_type,
|
||||
mst.stor_name,
|
||||
mst.input_optname,
|
||||
dept.`name`,
|
||||
sup.supp_name,
|
||||
class.class_code,
|
||||
class.class_name,
|
||||
class2.class_code AS parent_class_code,
|
||||
class2.class_name AS parent_class_name,
|
||||
mst.bill_code,
|
||||
mb.material_code,
|
||||
mb.material_name,
|
||||
dtl.pcsn,
|
||||
dtl.qty_unit_name,
|
||||
(case when io_type = '0' then ''
|
||||
when io_type = '1' AND bill_type = '010701' then CONCAT('-',real_qty)
|
||||
else dtl.real_qty end) AS out_qty,
|
||||
(case when io_type = '1' then ''
|
||||
when io_type = '0' AND bill_type = '000501' then CONCAT('-',real_qty)
|
||||
else dtl.real_qty end) AS in_qty
|
||||
FROM
|
||||
st_ivt_iostorinvdtl dtl
|
||||
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||
LEFT JOIN sys_dept dept ON dept.dept_id = mst.sysdeptid
|
||||
LEFT JOIN pcs_if_purchaseorderproc proc ON proc.id = dtl.base_billdtl_id
|
||||
LEFT JOIN md_cs_supplierbase sup ON sup.ext_id = proc.VEND_ID
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = mb.material_type_id
|
||||
LEFT JOIN md_pb_classstandard class2 ON class2.class_id = class.parent_class_id
|
||||
WHERE
|
||||
1 = 1
|
||||
AND
|
||||
mst.is_delete = '0'
|
||||
OPTION 输入.bill_code <> ""
|
||||
mst.bill_code like 输入.bill_code
|
||||
ENDOPTION
|
||||
OPTION 输入.io_type <> ""
|
||||
mst.io_type = 输入.io_type
|
||||
ENDOPTION
|
||||
OPTION 输入.buss_type <> ""
|
||||
mst.buss_type like 输入.buss_type
|
||||
ENDOPTION
|
||||
OPTION 输入.bill_type <> ""
|
||||
mst.bill_type = 输入.bill_type
|
||||
ENDOPTION
|
||||
OPTION 输入.stor_id <> ""
|
||||
mst.stor_id = 输入.stor_id
|
||||
ENDOPTION
|
||||
OPTION 输入.deptIds <> ""
|
||||
mst.sysdeptid in 输入.deptIds
|
||||
ENDOPTION
|
||||
OPTION 输入.bill_status <> ""
|
||||
mst.bill_status = 输入.bill_status
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
mst.input_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
mst.input_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
OPTION 输入.quality_scode <> ""
|
||||
dtl.quality_scode = 输入.quality_scode
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn <> ""
|
||||
dtl.pcsn like 输入.pcsn
|
||||
ENDOPTION
|
||||
OPTION 输入.material_code <> ""
|
||||
(mb.material_code like 输入.material_code or mb.material_name like 输入.material_code)
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "02"
|
||||
QUERY
|
||||
SELECT
|
||||
sum(outq.out_qty) AS out_qty,
|
||||
sum(outq.in_qty) AS in_qty
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
mst.biz_date,
|
||||
mst.iostorinv_id,
|
||||
mst.bill_type,
|
||||
mst.io_type,
|
||||
mst.stor_name,
|
||||
mst.input_optname,
|
||||
dept.`name`,
|
||||
sup.supp_name,
|
||||
class.class_code,
|
||||
class.class_name,
|
||||
class2.class_code AS parent_class_code,
|
||||
class2.class_name AS parent_class_name,
|
||||
mst.bill_code,
|
||||
mb.material_code,
|
||||
mb.material_name,
|
||||
dtl.pcsn,
|
||||
dtl.qty_unit_name,
|
||||
(
|
||||
CASE
|
||||
WHEN io_type = '0' THEN
|
||||
''
|
||||
WHEN io_type = '1'
|
||||
AND bill_type = '010701' THEN
|
||||
CONCAT('-', real_qty)
|
||||
ELSE
|
||||
dtl.real_qty
|
||||
END
|
||||
) AS out_qty,
|
||||
(
|
||||
CASE
|
||||
WHEN io_type = '1' THEN
|
||||
''
|
||||
WHEN io_type = '0'
|
||||
AND bill_type = '000501' THEN
|
||||
CONCAT('-', real_qty)
|
||||
ELSE
|
||||
dtl.real_qty
|
||||
END
|
||||
) AS in_qty
|
||||
FROM
|
||||
st_ivt_iostorinvdtl dtl
|
||||
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||
LEFT JOIN sys_dept dept ON dept.dept_id = mst.sysdeptid
|
||||
LEFT JOIN pcs_if_purchaseorderproc proc ON proc.id = dtl.base_billdtl_id
|
||||
LEFT JOIN md_cs_supplierbase sup ON sup.ext_id = proc.VEND_ID
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = mb.material_type_id
|
||||
LEFT JOIN md_pb_classstandard class2 ON class2.class_id = class.parent_class_id
|
||||
WHERE
|
||||
1 = 1
|
||||
AND mst.is_delete = '0'
|
||||
OPTION 输入.bill_code <> ""
|
||||
mst.bill_code like 输入.bill_code
|
||||
ENDOPTION
|
||||
OPTION 输入.io_type <> ""
|
||||
mst.io_type = 输入.io_type
|
||||
ENDOPTION
|
||||
OPTION 输入.buss_type <> ""
|
||||
mst.buss_type like 输入.buss_type
|
||||
ENDOPTION
|
||||
OPTION 输入.bill_type <> ""
|
||||
mst.bill_type = 输入.bill_type
|
||||
ENDOPTION
|
||||
OPTION 输入.stor_id <> ""
|
||||
mst.stor_id = 输入.stor_id
|
||||
ENDOPTION
|
||||
OPTION 输入.deptIds <> ""
|
||||
mst.sysdeptid in 输入.deptIds
|
||||
ENDOPTION
|
||||
OPTION 输入.bill_status <> ""
|
||||
mst.bill_status = 输入.bill_status
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
mst.input_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
mst.input_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
OPTION 输入.quality_scode <> ""
|
||||
dtl.quality_scode = 输入.quality_scode
|
||||
ENDOPTION
|
||||
OPTION 输入.pcsn <> ""
|
||||
dtl.pcsn like 输入.pcsn
|
||||
ENDOPTION
|
||||
OPTION 输入.material_code <> ""
|
||||
(mb.material_code like 输入.material_code or mb.material_name like 输入.material_code)
|
||||
ENDOPTION
|
||||
) outq
|
||||
where 1=1
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT DISTINCT
|
||||
mb.material_id,
|
||||
mb.material_name,
|
||||
mb.material_code,
|
||||
class.parent_class_id,
|
||||
(
|
||||
CASE
|
||||
|
||||
WHEN class.class_id = '1503644362192588800' THEN
|
||||
1
|
||||
WHEN class.class_id = '1503644361664106496' THEN
|
||||
2
|
||||
WHEN class.class_id = '1503644362788179968' THEN
|
||||
4
|
||||
WHEN class.class_id = '1503644362234531840' THEN
|
||||
5 ELSE 3
|
||||
END
|
||||
) AS order_no
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
dtl.material_id
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
wo.material_id
|
||||
FROM
|
||||
pdm_bi_workorder wo
|
||||
WHERE
|
||||
wo.is_delete = '0'
|
||||
AND wo.`status` IN ( '10', '20', '30' ) UNION
|
||||
SELECT
|
||||
plan.material_id
|
||||
FROM
|
||||
mps_bd_productdailyplan plan
|
||||
WHERE
|
||||
plan.`status` = '01'
|
||||
) a
|
||||
INNER JOIN md_pd_productbom bom ON bom.material_id = a.material_id
|
||||
INNER JOIN md_pd_productbomdtl dtl ON dtl.bom_id = bom.bom_id UNION
|
||||
SELECT
|
||||
mb2.material_id
|
||||
FROM
|
||||
md_me_materialbase mb2
|
||||
WHERE
|
||||
1 = 1
|
||||
AND mb2.is_delete = '0'
|
||||
AND mb2.material_type_id IN ( '1503644361664106496', '1503644361697660928', '1503644362192588800', '1503644362234531840', '1503644362788179968', '1503644362838511616' )
|
||||
) b
|
||||
INNER JOIN md_me_materialbase mb ON mb.material_id = b.material_id
|
||||
INNER JOIN md_pb_classstandard class ON class.class_id = mb.material_type_id
|
||||
ORDER BY
|
||||
order_no,
|
||||
material_code
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "4"
|
||||
QUERY
|
||||
SELECT
|
||||
material_id,SUM( canuse_qty ) AS qty
|
||||
FROM
|
||||
st_ivt_structivt
|
||||
WHERE
|
||||
quality_scode = '01'
|
||||
OPTION 输入.material_id <> ""
|
||||
material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
material_id
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "5"
|
||||
QUERY
|
||||
SELECT
|
||||
FormulaDtl.material_id,
|
||||
SUM( FormulaDtl.formula_qty ) AS qty
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
wo.workorder_id
|
||||
FROM
|
||||
pdm_bi_workorder wo
|
||||
WHERE
|
||||
wo.`status` = '40'
|
||||
AND wo.is_delete = '0'
|
||||
UNION ALL
|
||||
SELECT
|
||||
workorder.workorder_id
|
||||
FROM
|
||||
pdm_bi_workorder workorder
|
||||
INNER JOIN PDM_BI_WorkTask WorkTask ON WorkTask.workorder_id = workorder.workorder_id
|
||||
WHERE
|
||||
workorder.`status` IN ( '50', '69', '97', '98' )
|
||||
AND workorder.is_delete = '0'
|
||||
AND WorkTask.STATUS <> '99'
|
||||
) a
|
||||
LEFT JOIN PDM_BI_Formula Formula ON Formula.workorder_id = a.workorder_id
|
||||
LEFT JOIN PDM_BI_FormulaDtl FormulaDtl ON FormulaDtl.formula_id = Formula.formula_id and FormulaDtl.status<>'99'
|
||||
where
|
||||
1=1
|
||||
and Formula.is_delete='0'
|
||||
and Formula.status<>'99'
|
||||
OPTION 输入.material_id <> ""
|
||||
FormulaDtl.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
FormulaDtl.material_id
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "6"
|
||||
QUERY
|
||||
SELECT
|
||||
dtl.material_id,
|
||||
SUM(ROUND((b.qty*dtl.standard_rate*0.01),3)) AS qty
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
material_id,
|
||||
SUM( qty ) AS qty
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
material_id,
|
||||
workorder_qty AS qty
|
||||
FROM
|
||||
pdm_bi_workorder wo
|
||||
WHERE
|
||||
wo.`status` < 50
|
||||
AND is_delete = '0'
|
||||
OPTION 输入.begin_date <> ""
|
||||
wo.planstart_time >= 输入.begin_date
|
||||
ENDOPTION
|
||||
OPTION 输入.end_date <> ""
|
||||
wo.planstart_time <= 输入.end_date
|
||||
ENDOPTION
|
||||
OPTION 输入.org_ids <> ""
|
||||
wo.org_id in 输入.org_ids
|
||||
ENDOPTION
|
||||
UNION ALL
|
||||
SELECT
|
||||
material_id,
|
||||
product_weight AS qty
|
||||
FROM
|
||||
MPS_BD_ProductDailyPlan plan
|
||||
LEFT JOIN sys_dept dept ON dept.`code` = plan.plan_org_code
|
||||
WHERE
|
||||
plan.`status` = '01'
|
||||
OPTION 输入.begin_date <> ""
|
||||
plan.planstart_date >= 输入.begin_date
|
||||
ENDOPTION
|
||||
OPTION 输入.end_date <> ""
|
||||
plan.planstart_date <= 输入.end_date
|
||||
ENDOPTION
|
||||
OPTION 输入.org_ids <> ""
|
||||
dept.dept_id in 输入.org_ids
|
||||
ENDOPTION
|
||||
) a
|
||||
GROUP BY
|
||||
a.material_id
|
||||
) b
|
||||
LEFT JOIN md_pd_productbom mst ON mst.material_id = b.material_id
|
||||
LEFT JOIN md_pd_productbomdtl dtl ON mst.bom_id = dtl.bom_id
|
||||
WHERE
|
||||
1=1
|
||||
OPTION 输入.material_id <> ""
|
||||
dtl.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
dtl.material_id
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "7"
|
||||
QUERY
|
||||
SELECT
|
||||
ROUND(SUM(a.QTY),3) AS qty,
|
||||
ROUND(SUM(a.allqty),3) AS allqty,
|
||||
ROUND(SUM(a.ivt_qty),3) AS noqty,
|
||||
ROUND(SUM(a.notqty),3) AS notqty,
|
||||
ROUND(SUM(a.noin_qty),3) AS noin_qty,
|
||||
material_id
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
oder.QTY,
|
||||
IFNULL(redtl.allqty,0) AS allqty,
|
||||
oder.QTY - IFNULL(redtl.allqty,0) AS notqty,
|
||||
redtl.allqty - redtl.instor_qty AS noin_qty,
|
||||
ivt.ivt_qty,
|
||||
mater.material_id
|
||||
FROM
|
||||
PCS_IF_PurchaseOrderProc oder
|
||||
LEFT JOIN md_cs_supplierbase supp ON oder.VEND_ID = supp.ext_id
|
||||
LEFT JOIN md_me_materialbase mater ON oder.ITEM_ID = mater.ext_id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
sum( a.receive_qty ) AS allqty,
|
||||
sum(a.instor_qty) AS instor_qty,
|
||||
max( a.source_billdtl_id ) AS source_billdtl_id,
|
||||
max( a.material_id ) AS material_id,
|
||||
max( a.pcsn ) AS pcsn,
|
||||
max( a.receive_id ) AS receive_id
|
||||
FROM
|
||||
PCS_RC_ReceiveDtl a
|
||||
LEFT JOIN PCS_IF_PurchaseOrderProc p ON a.source_billdtl_id = p.id
|
||||
AND a.source_bill_code = p.vbillcode
|
||||
LEFT JOIN pcs_rc_receivemst mst ON mst.receive_id = a.receive_id
|
||||
WHERE
|
||||
mst.is_delete = '0'
|
||||
GROUP BY
|
||||
a.source_billdtl_id
|
||||
) AS redtl ON redtl.source_billdtl_id = oder.id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
sum( t.ivt_qty + t.warehousing_qty ) AS ivt_qty,
|
||||
max( t.material_id ) AS material_id,
|
||||
max( t.pcsn ) AS pcsn
|
||||
FROM
|
||||
ST_IVT_StructIvt t
|
||||
LEFT JOIN PCS_RC_ReceiveDtl d ON t.material_id = d.material_id
|
||||
AND t.pcsn = d.pcsn
|
||||
WHERE
|
||||
t.quality_scode = '00'
|
||||
GROUP BY
|
||||
t.material_id
|
||||
) AS ivt ON ivt.material_id = redtl.material_id
|
||||
AND ivt.pcsn = redtl.pcsn
|
||||
WHERE
|
||||
oder.dr = '0'
|
||||
AND
|
||||
oder.proc_status < '09'
|
||||
) a
|
||||
WHERE
|
||||
1=1
|
||||
OPTION 输入.material_id <> ""
|
||||
a.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
GROUP BY a.material_id
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "77"
|
||||
QUERY
|
||||
SELECT
|
||||
sum( a.receive_qty - a.instor_qty ) AS noin_qty,
|
||||
a.material_id
|
||||
FROM
|
||||
PCS_RC_ReceiveDtl a
|
||||
LEFT JOIN pcs_rc_receivemst mst ON mst.receive_id = a.receive_id
|
||||
WHERE
|
||||
mst.is_delete = '0'
|
||||
AND mst.STATUS <> '99'
|
||||
AND a.STATUS <> '99'
|
||||
OPTION 输入.material_id <> ""
|
||||
a.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
GROUP BY a.material_id
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "8"
|
||||
QUERY
|
||||
SELECT
|
||||
dtl.material_id,
|
||||
SUM(ROUND(( b.qty * dtl.standard_rate * 0.01 ),3 )) AS qty
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
material_id,
|
||||
SUM( qty ) AS qty
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
material_id,
|
||||
workorder_qty AS qty
|
||||
FROM
|
||||
pdm_bi_workorder wo
|
||||
WHERE
|
||||
wo.`status` < 50
|
||||
AND is_delete = '0'
|
||||
OPTION 输入.begin_time <> ""
|
||||
wo.planstart_time like 输入.begin_time
|
||||
ENDOPTION
|
||||
UNION ALL
|
||||
SELECT
|
||||
material_id,
|
||||
product_weight AS qty
|
||||
FROM
|
||||
MPS_BD_ProductDailyPlan plan
|
||||
WHERE
|
||||
plan.`status` = '01'
|
||||
OPTION 输入.begin_time <> ""
|
||||
plan.planstart_date like 输入.begin_time
|
||||
ENDOPTION
|
||||
) a
|
||||
GROUP BY
|
||||
a.material_id
|
||||
) b
|
||||
LEFT JOIN md_pd_productbom mst ON mst.material_id = b.material_id
|
||||
LEFT JOIN md_pd_productbomdtl dtl ON mst.bom_id = dtl.bom_id
|
||||
WHERE
|
||||
1=1
|
||||
OPTION 输入.material_id <> ""
|
||||
dtl.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "9"
|
||||
QUERY
|
||||
SELECT
|
||||
plan.planstart_date,
|
||||
plan.product_num,
|
||||
ext.old_mark,
|
||||
plan.product_weight,
|
||||
plan.material_id,
|
||||
materialbase.material_code,
|
||||
dept.name
|
||||
FROM
|
||||
mps_bd_productdailyplan plan
|
||||
LEFT JOIN md_me_producmaterialext ext ON ext.material_id = plan.material_id
|
||||
LEFT JOIN md_me_materialbase materialbase ON materialbase.material_id = plan.material_id
|
||||
LEFT JOIN sys_dept dept ON dept.`code` = plan.plan_org_code
|
||||
WHERE
|
||||
plan.status = '01'
|
||||
OPTION 输入.begin_date <> ""
|
||||
plan.planstart_date >= 输入.begin_date
|
||||
ENDOPTION
|
||||
OPTION 输入.end_date <> ""
|
||||
plan.planstart_date <= 输入.end_date
|
||||
ENDOPTION
|
||||
OPTION 输入.org_ids <> ""
|
||||
dept.dept_id in 输入.org_ids
|
||||
ENDOPTION
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
LEFT(wo.planstart_time,10) AS planstart_date,
|
||||
COUNT(wo.workorder_id) AS product_num,
|
||||
MAX(ext.old_mark) AS old_mark,
|
||||
SUM(wo.workorder_qty) AS product_weight,
|
||||
wo.material_id,
|
||||
MAX(mb.material_code) AS material_code,
|
||||
MAX(dept.name) AS name
|
||||
FROM
|
||||
pdm_bi_workorder wo
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = wo.material_id
|
||||
LEFT JOIN md_me_producmaterialext ext ON ext.material_id = wo.material_id
|
||||
LEFT JOIN sys_dept dept ON dept.dept_id = wo.org_id
|
||||
WHERE
|
||||
wo.`status` < 50
|
||||
AND
|
||||
wo.is_delete = '0'
|
||||
OPTION 输入.begin_time <> ""
|
||||
wo.planstart_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
wo.planstart_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
OPTION 输入.org_ids <> ""
|
||||
wo.org_id in 输入.org_ids
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
planstart_time,wo.material_id
|
||||
ORDER BY
|
||||
planstart_date
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "10"
|
||||
QUERY
|
||||
SELECT
|
||||
dtl.material_id,
|
||||
b.currentDate,
|
||||
ROUND((b.qty * dtl.standard_rate * 0.01),3) as qty
|
||||
FROM (
|
||||
SELECT
|
||||
material_id,SUM( qty ) AS qty,currentDate
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
material_id,
|
||||
workorder_qty AS qty,
|
||||
wo.planstart_time as currentDate
|
||||
FROM
|
||||
pdm_bi_workorder wo
|
||||
WHERE wo.`status` < 50 AND is_delete = '0'
|
||||
OPTION 输入.begin_time <> ""
|
||||
wo.planstart_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
wo.planstart_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
UNION ALL
|
||||
SELECT
|
||||
material_id,
|
||||
product_weight AS qty,
|
||||
planstart_date as currentDate
|
||||
FROM
|
||||
MPS_BD_ProductDailyPlan
|
||||
WHERE `status` = '01'
|
||||
OPTION 输入.begin_date <> ""
|
||||
planstart_date >= 输入.begin_date
|
||||
ENDOPTION
|
||||
OPTION 输入.end_date <> ""
|
||||
planstart_date <= 输入.end_date
|
||||
ENDOPTION
|
||||
) a GROUP BY a.material_id,currentDate
|
||||
) b
|
||||
LEFT JOIN md_pd_productbom mst ON mst.material_id = b.material_id
|
||||
LEFT JOIN md_pd_productbomdtl dtl ON mst.bom_id = dtl.bom_id
|
||||
WHERE
|
||||
1=1 order by currentDate
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "11"
|
||||
QUERY
|
||||
SELECT DISTINCT
|
||||
mb.material_id,
|
||||
mb.material_name,
|
||||
mb.material_code,
|
||||
class.parent_class_id,
|
||||
(case when class.class_id = '1503644362192588800' then 1
|
||||
when class.class_id = '1503644361664106496' then 2
|
||||
when class.class_id = '1503644362788179968' then 4
|
||||
when class.class_id = '1503644362234531840' then 5
|
||||
else 3 end) AS order_no
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
wo.material_id
|
||||
FROM
|
||||
pdm_bi_workorder wo
|
||||
WHERE
|
||||
wo.is_delete = '0'
|
||||
AND wo.`status` IN ( '10', '20', '30' )
|
||||
OPTION 输入.begin_time <> ""
|
||||
wo.planstart_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
wo.planstart_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
UNION
|
||||
SELECT
|
||||
plan.material_id
|
||||
FROM
|
||||
mps_bd_productdailyplan plan
|
||||
WHERE
|
||||
plan.`status` = '01'
|
||||
OPTION 输入.begin_time <> ""
|
||||
plan.planstart_date >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
plan.planstart_date <= 输入.end_time
|
||||
ENDOPTION
|
||||
) a
|
||||
LEFT JOIN md_pd_productbom bom ON bom.material_id = a.material_id
|
||||
LEFT JOIN md_pd_productbomdtl dtl ON dtl.bom_id = dtl.bom_id
|
||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = mb.material_type_id
|
||||
ORDER BY order_no,material_code
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "12"
|
||||
QUERY
|
||||
SELECT
|
||||
material_id,
|
||||
SUM(qty) AS qty
|
||||
FROM
|
||||
pdm_bi_spendrowqty
|
||||
|
||||
group by material_id
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user