|
楼主 |
发表于 2015-9-1 18:38:05
|
显示全部楼层
public static Table createMCS_REQUEST_DETAIL(String concept,String fnModel,Table table,Map defaultValues,Map myParams)
{
Table Ztable = null;
if(Utils.isNotNull(myParams))
{
int count = 0;
String sql = "";
//生產工單下的物料需求(bizdata3)
if("3".equals(Common.getPara(myParams,"TYPE_NO")))
{
sql = "SELECT OUTSTORE_SEQ.NEXTVAL AS ROW_ID,OUTSTORE_SEQ.NEXTVAL AS REQUESTDETAILID,'%s' AS REQUESTID,A.AUFNR AS PRODUCTION_NO,A.MATNR AS MATERIAL_NO," +
" C.MAKTX AS MATERIAL_NAME,DECODE(A.BDMNG,0,'0',TRIM(TO_CHAR(A.BDMNG,'FM99999999990.000'))) AS ORDER_NUM,A.MEINS AS MATERIAL_UNIT,'0' AS REQUEST_NUM," +
" SL.LABST AS FXZ_QTY,SL.INSME AS ZJ_QTY,'1' AS FINISH_STATUS,'0' AS \"version\",'%s' AS COMPANY_CODE " +
" FROM SAPSR3.RESB@TO_SAPPRD A, SAPSR3.AFKO@TO_SAPPRD B,SAPSR3.MAKT@TO_SAPPRD C,SAPSR3.MARA@TO_SAPPRD D " +
" LEFT JOIN (SELECT T.MATNR,NVL(SUM(T.LABST),0) AS LABST,NVL(SUM(T.INSME),0) AS INSME FROM SAPSR3.MARD@TO_SAPPRD T WHERE T.MANDT='@MANDT' GROUP BY T.MATNR) SL ON SL.MATNR = D.MATNR " +
" WHERE B.RSNUM = A.RSNUM AND C.MATNR = A.MATNR AND D.MATNR = C.MATNR AND C.SPRAS = 'E' AND B.MANDT = '@MANDT' AND C.MANDT = '@MANDT'" +
" AND D.MANDT = '@MANDT' AND A.MANDT = '@MANDT' AND INSTR(';'||'%s'||';',';'||A.AUFNR||';')>0 AND D.MTART IN( 'PACK', 'ROH')";
}
else //查詢生產工單詳情
{
sql = "SELECT OUTSTORE_SEQ.NEXTVAL AS ROW_ID,OUTSTORE_SEQ.NEXTVAL AS REQUESTDETAILID,'%s' AS REQUESTID,AUFNR AS PRODUCTION_NO," +
" CHARG AS BATCH,MATNR AS PRODUCT_NO,MAKTX AS PRODUCT_NAME,PGMNG AS PRODUCT_COUNT,MEINS AS PRODUCT_UNIT,GSTRS AS PLAN_DATE, " +
" '1' AS FINISH_STATUS,'0' AS \"version\",'%s' AS COMPANY_CODE " +
" FROM (SELECT A.AUFNR,D.CHARG, B.MATNR,C.MAKTX, " +
" DECODE(D.PGMNG,0,'0',TRIM(TO_CHAR(D.PGMNG,'FM99999999990.000'))) AS PGMNG,D.MEINS," +
" TO_CHAR(TO_DATE(A.GSTRS,'YYYY-MM-DD'),'DD-MM-YYYY') AS GSTRS FROM SAPSR3.CAUFV@TO_SAPPRD A,SAPSR3.MARA@TO_SAPPRD B," +
" SAPSR3.MAKT@TO_SAPPRD C,SAPSR3.AFPO@TO_SAPPRD D WHERE D.AUFNR = A.AUFNR AND B.MATNR = A.PLNBEZ AND C.MATNR = B.MATNR" +
" AND C.SPRAS = 'E' AND A.MANDT = '@MANDT' AND B.MANDT = '@MANDT' AND C.MANDT = '@MANDT' AND D.MANDT = '@MANDT'" +
" AND INSTR(';'||'%s'||';',';'||A.AUFNR||';')>0 ORDER BY A.AUFNR)";
}
sql = sql.replaceAll("@MANDT", Common.getPara(myParams,"PUB_CSAPBU"));
sql = String.format(sql, Common.getPara(myParams,"REQUESTID"),
Common.getPara(myParams,"COMPANY_CODE"),
Common.getPara(myParams,"PUB_ORDER_ID"));
Ztable = Common.queryTable(sql);
}
return Ztable;
}
|
|