using Confluent.Kafka ;
using log4net ;
using MES.Interface ;
using Oracle.ManagedDataAccess.Client ;
using SlabHandle.Enity ;
using SOA.Objects ;
using SOA.Persistent ;
using Swashbuckle.Swagger ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Linq ;
using System.Reflection ;
using System.Text ;
using System.Text.RegularExpressions ;
namespace SlabHandle
{
public class SlabCoilService_test
{
private static readonly ILog logger = LogManager . GetLogger ( MethodBase . GetCurrentMethod ( ) . DeclaringType ) ;
string slab_no = " ('2410189501')" ;
string ord_no = "('OMZ24030010-001')" ;
#region 获取数据
/// <summary>
///查询板卷板坯信息
/// </summary>
/// <returns>所有符合条件的板坯</returns>
public IList < TB_SLAB > GetMediumSlab ( string strWHere )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < TB_SLAB > ltSlab = new List < TB_SLAB > ( ) ;
strSql . AppendLine ( "SELECT SLAB_NO ,(SELECT STEEL_GRD_DETAIL FROM NISCO.QP_NISCO_CHMC WHERE STLGRD = A.STLGRD ) STEEL_GRD_DETAIL" +
", OCCR_CD, PLT, PRC_LINE, REC_STS, PROC_CD" +
", BEF_PROC_CD, PROD_CD, STLGRD" +
", THK" +
", CASE WHEN A.WID>A.LEN THEN A.LEN ELSE A.WID END WID " +
", CASE WHEN A.WID<A.LEN THEN A.LEN ELSE A.WID END LEN " +
", WGT, CAL_WGT" +
", THK_GRP, WID_GRP, OVER_FL, ORD_FL" +
", WOO_RSN, ORD_NO, ORD_ITEM, ORG_ORD_NO" +
", ORG_ORD_ITEM, ENDUSE_CD, DEL_TO_DATE, PROD_DATE" +
", PROD_TIME, SHIFT, GROUP_CD, LOC, BED_PILE_DATE" +
", SMP_FL, SMP_LOC, SMP_LEN, SMP_NO, INSP_EMP, DSC_DATE" +
", DSC_TIME, PROD_GRD, SURF_GRD, QUALITY_GRD, QUALITY_UPD_GRD" +
", APLY_STDSPEC, APLY_ENDUSE_CD, IN_PLT_CD, IN_PLT, IN_PLT_DATE" +
", IN_PLT_TIME, IN_CAR_NO, IN_SHEET_NO, IN_PLT_CO, OUT_PLT_CD" +
", OUT_PLT, OUT_PLT_DATE, OUT_PLT_TIME, OUT_CAR_NO, OUT_SHEET_NO" +
", HOUSING_DATE, HOUSING_TIME, SHP_IST_NO, SHP_IST_DATE, SHP_IST_TIME" +
", SHP_DATE, SHP_TIME, TRNS_NO, CAR_NO, TRNS_CMPY_CD, SHP_EMP, TRAIN_LINE_NAME" +
", DEST_DETAIL, CERT_RPT_FL, CERT_RPT_DATE, CERT_RPT_TIME, SHP_IST_CAN_DATE" +
", SHP_IST_CAN_TIME, SHP_IST_CAN_FL, INS_DATE, INS_EMP_CD, INS_PGMID, UPD_DATE" +
", UPD_EMP_CD, UPD_PGM, SF_ORNOT, SLAB_RHF_IN_DATE, RHF_REJ_ORNOT, AIM_HCR_KND" +
", HCR_KND, PRC, SCR_ORNOT, END_RES, MOTHER_SLAB, ORD_THK, ORD_WID, ORD_LEN" +
", ORD_WGT, QUALITY_ID, TAPER_LEN, HEAD_SLAB_WID, TAIL_SLAB_WID, CUST_CD" +
", IN_SLAB_NO, CUR_HCR_KND, WGT_L2, QUALITY_ID_L2, CUR_INV, SIZE_KND, MIXED_FL" +
", BAOXIN_IF_DATE, CUST_SPEC_NO, STLGRD_UPD_FL, BEF_STLGRD, WGT_CAL_L2, LOAD_WGT" +
", CHG_GRD_RES, MAT_OWNER_FL, MAT_OWNER_CUST_CD, PLAN_MILL_PLT, USE_MILL_PLT, PLAN_SLAB_CUT_CNT" +
", CLAIM_RES, CLAIM_DATE, CLAIM_THK, CLAIM_WID, CLAIM_LEN, CLAIM_WGT, HTM_ORD_METH, HTM_RLT_METH" +
", HTM_STATUS, SLAB_BACK_CNT, CUT_CNT, HTM_CNT, ERP_IF_DATE, PLAN_SLAB_CUT_FL, INGOT_FL, HEAD_SLAB_THK" +
", TAIL_SLAB_THK, PLAN_SLAB_MERGE_FL, MOTHER_SLAB_MERGE, GRID_FL, GRID_RSLT, HEAT_NO, RH_CD" +
", CAL_TM, CAL_TN, ACT_SMP_FL, SMP_NO1, SMP_NO2, GET_SMP_DATE, SMP_CAST_NO, SMP_FREQENCY" +
", SMP_NOTE, SMP_NOTE1, SMP_NOTE2, SLAB_NO1, SLAB_NO2, UST_RLT_CD, UST_RSLT, UST_METH" +
", CUT_AM, CUT_BM, CUT_CM, CUT_DM, CUT_EM, CUT_FM, MOTHER_SLAB_BILLET, BILLET_TYPE" +
", MOTHER_SLAB_ELEC, RES_CM, RES_DM, RES_EM, RES_FM, RES_GM" +
", CASE WHEN A.WID<A.LEN THEN A.LEN ELSE A.WID END REM_LEN " +
", A.WGT REM_WGT " +
", A.LEN ORG_LEN " +
", A.WID ORG_WID" +
", A.LEN ACT_LEN " +
",400 as COM_LEN" +
", CASE WHEN (SELECT COUNT(HEAT_NO) FROM NISCO.FP_RHRSLT WHERE HEAT_NO = SUBSTR(A.SLAB_NO,1,8))>0 THEN '1' ELSE '0' END VAC_FLG " ) ;
strSql . AppendLine ( ",(CASE WHEN(SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET CSDD WHERE ( CSDD.EST_CD LIKE '5%' OR CSDD.EST_CD LIKE '6%') AND CSDD.SLAB_NO = A.SLAB_NO) > 0 THEN '1'" ) ;
strSql . AppendLine ( " WHEN(SELECT COUNT(*) FROM(SELECT COM FROM(SELECT CSDD_C.EST_CD || '_' || CSDD_C.EST_COMMENT COM FROM NISCO.CP_SLAB_DELI_DET CSDD_C " ) ;
strSql . AppendLine ( " WHERE CSDD_C.SLAB_NO = A.SLAB_NO ORDER BY CSDD_C.EST_DATE DESC) T_COM WHERE ROWNUM = 1) T_L WHERE T_L.COM LIKE '%协议%') > 0 THEN '1' " ) ;
strSql . AppendLine ( " ELSE '0' END ) XY_FLG " ) ;
strSql . AppendLine ( ",(SELECT COM FROM(SELECT CSDD_C.EST_CD || '_' || CSDD_C.EST_COMMENT COM FROM NISCO.CP_SLAB_DELI_DET CSDD_C" ) ;
strSql . AppendLine ( " WHERE CSDD_C.SLAB_NO = A.SLAB_NO ORDER BY CSDD_C.EST_DATE DESC) T_COM WHERE ROWNUM = 1) EST_COMMENT " ) ;
strSql . AppendLine ( " , case when (SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.EST_CD = '0001' AND C.REASON_CD = '3010' AND C.REASON_COMMENT = '低倍不符合要求') >0 THEN 1 ELSE 0 END FLG_LOWPOWER" ) ;
strSql . AppendLine ( " , (case when (select substr(MOTHER_SLAB,1,10) from nisco.fp_slab where slab_no=substr(A.MOTHER_SLAB,1,10)) is not null then (select mother_slab from nisco.fp_slab where slab_no=substr(A.MOTHER_SLAB,1,10)) else '' end) Gmother_slab " ) ;
strSql . AppendLine ( "FROM NISCO.FP_SLAB A " ) ;
strSql . AppendLine ( "WHERE 1 = 1 " ) ;
//TODO: 测试数据2320047205
strSql . AppendLine ( " AND A.SLAB_NO in" ) ;
strSql . AppendLine ( slab_no ) ;
//strSql.AppendLine(" AND(A.PROC_CD = 'CAC' OR ");
//strSql.AppendLine(" ((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.REASON_CD NOT IN('1080','2014','2015','2018','2026','3014','5011','5013','8081') AND EST_CD IS NULL) < 1)");
//strSql.AppendLine(" AND A.PROC_CD='CAD' ) ");
//strSql.AppendLine(" AND((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.EST_CD IN ( '0002','0003','2010') ) < 1 )");
////strSql.AppendLine(" AND A.SLAB_NO!='2320297902' ");
//strSql.AppendLine(" AND A.CUR_INV in '00' ");//
////strSql.AppendLine(" AND A.PROC_CD = 'CAC' ");
//strSql.AppendLine(" AND A.ORD_FL = '2' ");
//strSql.AppendLine(" AND A.REC_STS = '2' ");
//strSql.AppendLine(" AND NVL(A.OUT_PLT_CD,'9') <> '0' ");
//strSql.AppendLine(" AND A.WGT > 0 ");
//strSql.AppendLine(" AND A.WID > 1600 ");
//strSql.AppendLine(" AND A.LEN > 3900 ");
//strSql.AppendLine(" AND NVL(A.PLT,'99') IN ('B1','BZ') ");
//strSql.AppendLine(" AND NVL(A.QUALITY_UPD_GRD,'N') <> 'N' ");
//strSql.AppendLine(" AND NVL(A.OUT_PLT_CD,'9') <> '0' ");
//strSql.AppendLine(" AND SLAB_NO NOT IN ( SELECT SLAB_NO FROM NISCO.CP_SLAB_MOVE_PLAN WHERE PRC_STS = 'A' AND TO_INV in('ZB','HB') ) ");
//strSql.AppendLine(" AND NVL(A.PLAN_MILL_PLT , ' ') LIKE 'C1' || '%' ");
////3.11.5.4.9 订单有低倍要求并且物料低倍等级不合格的板坯,不允许替代。
////strSql.AppendLine(" AND ( ( (SELECT COUNT(*) FROM NISCO.qp_qlty_slab_lowpower Q WHERE Q.ORD_NO =A.ORD_NO AND Q.ORD_ITEM=A.ORD_ITEM) >= 1) AND A.QUALITY_GRD = '4' AND ((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.EST_CD = '0001' AND C.REASON_CD = '3010' AND C.REASON_COMMENT = '低倍不符合要求') < 1 ))");
//strSql.AppendLine(" AND((SELECT COUNT(*) FROM NISCO.FB_SLAB_001 R WHERE R.SLAB_NO = A.SLAB_NO) < 1 ) ");//
strSql . AppendLine ( " ORDER BY A.LOC DESC, A.SLAB_NO ASC " ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltSlab = db . Query < TB_SLAB > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetMediumSlab 报错" , ex ) ;
}
return ltSlab ;
}
public DataTable GetSlab ( string strSlabNo )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtReturn = new DataTable ( ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
strSql . AppendLine ( "SELECT * FROM NISCO.FP_SLAB A " ) ;
strSql . AppendLine ( "WHERE 1 = 1 " ) ;
strSql . AppendLine ( "AND A.SLAB_NO = '" + strSlabNo + "'" ) ;
dtReturn = db . Query ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetSlab 报错" , ex ) ;
}
return dtReturn ;
}
/// <summary>
/// 获取订单物理属性QP_QLTY_MATR
/// </summary>
/// <returns></returns>
public IList < QP_QLTY_MATR > GetQP_QLTY_MATR ( string strWhere )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < QP_QLTY_MATR > ltQP_QLTY_MATR = new List < QP_QLTY_MATR > ( ) ;
strSql . AppendLine ( " SELECT* FROM(SELECT QQM.*," ) ;
strSql . AppendLine ( " rank() over(partition by QQM.ord_no, QQM.ord_item order by knd desc) rk" ) ;
strSql . AppendLine ( " from NISCO.QP_QLTY_MATR QQM " ) ;
strSql . AppendLine ( " where(QQM.ORD_NO, QQM.ORD_ITEM) IN( " ) ;
strSql . AppendLine ( " SELECT " ) ;
strSql . AppendLine ( " TO_CHAR(BOI.ORD_NO), TO_CHAR(BOI.ORD_ITEM) " ) ;
strSql . AppendLine ( "FROM NISCO.cp_prc CPP " ) ;
strSql . AppendLine ( "INNER JOIN " ) ;
strSql . AppendLine ( "NISCO.BP_ORDER_ITEM boi " ) ;
strSql . AppendLine ( "ON BOI.ORD_NO = CPP.ORD_NO " ) ;
strSql . AppendLine ( "AND BOI.ORD_ITEM = CPP.ORD_ITEM " ) ;
strSql . AppendLine ( "AND BOI.ORD_WID<> 0 " ) ;
strSql . AppendLine ( "AND BOI.ORD_LEN<> 0 " ) ;
strSql . AppendLine ( "AND BOI.ORD_THK<> 0 " ) ;
strSql . AppendLine ( " WHERE 1 = 1" ) ;
//strSql.AppendLine(" AND ");
//strSql.AppendLine(" (SELECT COUNT(A.REQ_SEQ_NO) ");
//strSql.AppendLine(" FROM NISCO.EP_REQ_SLAB_D A, NISCO.EP_REQ_SLAB B ");
//strSql.AppendLine(" WHERE ");
//strSql.AppendLine(" 1 = 1 AND A.ORD_NO = BOI.ORD_NO AND A.ORD_ITEM = BOI.ORD_ITEM ");
//strSql.AppendLine(" AND A.BLOCK_SEQ >= '01' ");
//strSql.AppendLine(" AND A.SEQ >= '01' ");
//strSql.AppendLine(" And B.REQ_SEQ_NO = A.REQ_SEQ_NO ");
//strSql.AppendLine(" AND B.REC_STS = '1') + (NVL(CPP.ORD_REM_WGT, 0) - CPP.ORD_WGT * (CPP.DEL_TOL_MAX + ABS(CPP.DEL_TOL_MIN)) / 100) / (((BOI.ORD_WID / 1000) * (BOI.ORD_LEN / 1000) * (BOI.ORD_THK / 1000)) * 7.85) >= 0.95 ");
//strSql.AppendLine(" AND boi.PROD_CD = 'PP' ");
//strSql.AppendLine(" AND boi.REC_STS = '2' ");
//strSql.AppendLine(" and boi.ORD_STS IN('E') ");
//strSql.AppendLine(" AND (boi.ord_knd ='A' OR (boi.ord_knd ='T' AND (SELECT COUNT(*) FROM NISCO.BP_ODER_XY BOXY WHERE BOXY.ORDER_NO=BOI.ORD_NO AND BOXY.ORDER_ITEM=BOI.ORD_ITEM )>0)) ");
//strSql.AppendLine("AND (boi.CUST_DEL_TO_DATE>= to_char(sysdate-183,'YYYYMMDD') OR BOI.ORD_NO LIKE 'OMA%' )");
//strSql.AppendLine("AND boi.CFM_MILL_PLT='C1' ");
strSql . AppendLine ( " AND boi.ORD_NO|| '-' ||boi.ORD_ITEM in " ) ;
strSql . AppendLine ( ord_no ) ;
strSql . AppendLine ( " )" ) ;
strSql . AppendLine ( ") T WHERE T.RK = 1" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltQP_QLTY_MATR = db . Query < QP_QLTY_MATR > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "QP_QLTY_MATR 报错 : " , ex ) ;
}
return ltQP_QLTY_MATR ;
}
/// <summary>
/// 可用订单选择
/// 订单欠量字段 ORD_REM_CNT
/// </summary>
/// <returns>所有符合条件的订单 集合</returns>
public IList < BP_ORDER_ITEM > GetOrder ( string strWHereOrd )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
StringBuilder strRemSql = new StringBuilder ( ) ; //声明订单欠量sql
IList < BP_ORDER_ITEM > gpPlates = null ;
strSql . AppendLine ( "SELECT DISTINCT " ) ;
strSql . AppendLine ( " BOI.ORD_NO, BOI.ORD_ITEM, QQD.THK_TOL_MIN ,QQD.THK_TOL_MAX ,BOI.REC_STS, BOI.PLN_ORD, BOI.PLN_ORD_ITEM, BOI.ORD_STS, BOI.HOLD_FL, BOI.HOLD_DATE, BOI.HOLD_TIME, BOI.HOLD_EMP_ID" ) ;
strSql . AppendLine ( ", BOI.CURRENCY, BOI.EXTRA_FL, BOI.DISCON_PRC, BOI.TOT_PRC, BOI.TRANS_PRC, BOI.EMP_ID, BOI.PROD_PRC, BOI.REG_DATE, BOI.REG_TIME, BOI.CONF_DATE " ) ;
strSql . AppendLine ( ", BOI.CONF_TIME, BOI.CONF_EMP_ID, BOI.CUST_CD, BOI.ORD_CUST_CD, BOI.PROD_DGR, BOI.SALE_WAY, BOI.DEPT_CD, BOI.DEST_CD, BOI.DEST_DETAIL " ) ;
strSql . AppendLine ( ", BOI.ENDUSE_CD, BOI.STLGRD, BOI.PAYMENT_COND, BOI.DEL_COND, BOI.DEL_TOL_UNIT, BOI.DEL_TOL_MAX, BOI.DEL_TOL_MIN, BOI.WGT_UNIT, BOI.WGT_GRP " ) ;
strSql . AppendLine ( ", BOI.PROD_WGT, BOI.PROD_WGT_MIN, BOI.PROD_WGT_MAX, BOI.TOT_WGT, BOI.STDSPEC, BOI.STDSPEC_YY, BOI.ORD_SIZE, BOI.ORD_WID, BOI.ORD_LEN, BOI.ORD_THK " ) ;
strSql . AppendLine ( ", BOI.INDIA, BOI.OUTDIA, BOI.CAN_FL, BOI.CAN_DATE, BOI.CAN_TIME, BOI.CAN_EMP_ID, BOI.MOD_FL, BOI.MOD_DATE, BOI.MOD_TIME, BOI.DEL_FR_DATE, BOI.DEL_TO_DATE " ) ;
strSql . AppendLine ( ", BOI.CUST_DEL_FR_DATE, BOI.CUST_DEL_TO_DATE, BOI.ORD_PROD_END_DATE, BOI.ORD_PROD_END_TIME, BOI.ORD_SHIP_END_DATE, BOI.ORD_SHIP_END_TIME, BOI.ORD_ACCP_DATE " ) ;
strSql . AppendLine ( ", BOI.ORD_ACCP_TIME, BOI.CUST_REQ_PLANT, BOI.TENT_REQ_PLANT, BOI.CONF_PLANT, BOI.CUST_SPEC_NO, BOI.MARKING_WAY, BOI.STAMP, BOI.TRANSP_WAY, BOI.ORD_KND " ) ;
strSql . AppendLine ( ", BOI.TRIM_FL, BOI.URGNT_FL, BOI.UST_FL, BOI.PAYMENT_FL, BOI.PAYMENT_DATE, BOI.PAYMENT_TIME, BOI.PAYMENT_EMP_ID, BOI.PACK_WAY, BOI.PACK_WGT_MAX " ) ;
strSql . AppendLine ( ", BOI.PACK_WGT_MIN, BOI.NUM_PROD, BOI.SALE_EMP_ID, BOI.END_CUST_CD, BOI.INSP_CD, BOI.DOME_FL, BOI.PROD_CD, BOI.PROD_THK_TGT, BOI.SIZE_KND, BOI.ORD_LEN_MIN " ) ;
strSql . AppendLine ( ", BOI.ORD_LEN_MAX, BOI.MATR_FL, BOI.CONT_END_DATE, BOI.CONT_END_TIME, BOI.CONT_END_EMP_ID, BOI.VESSEL_NO, BOI.CUST_REQ_NO, BOI.COLOR_STROKE, BOI.RELEASE_DATE " ) ;
strSql . AppendLine ( ", BOI.RELEASE_TIME, BOI.RELEASE_EMP_ID, BOI.PLN_SMS_PLT, BOI.PLN_MILL_PLT, BOI.CFM_SMS_PLT, BOI.CFM_MILL_PLT, BOI.HTM_SHOT_BLAST " ) ;
strSql . AppendLine ( ", BOI.INS_DATE, BOI.INS_TIME, BOI.INS_EMPID, BOI.INS_PGMID, BOI.UPD_DATE, BOI.UPD_TIME, BOI.UPD_EMPID, BOI.UPD_PGMID, BOI.SEALMEMO " ) ;
strSql . AppendLine ( ", BOI.INSPUNITCODEA, BOI.INSPUNITCODEB, BOI.INSPUNITCODEC, BOI.PRODSPECNOA, BOI.PRODSPECNOB, BOI.PRODSPECNOC, BOI.PAINTNUM, BOI.LP_HD_THK, BOI.LP_MD_THK, BOI.LP_TL_THK " ) ;
strSql . AppendLine ( ", BOI.LP_LEN1, BOI.LP_LEN2, BOI.LP_LEN3, BOI.LP_LEN4, BOI.LP_LEN5, BOI.IMP_CONT, BOI.INSPECT_ORGAN, BOI.CONTRACT_NO, BOI.TRIAL_PRODUCT, BOI.TRIAL_NUM, BOI.TRIAL_STR " ) ;
strSql . AppendLine ( ", BOI.TRIAL_END, BOI.SIDEMARK, BOI.JIT_STRINGA, BOI.JIT_STRINGB, BOI.JIT_STRINGC, BOI.JITID, BOI.JIT_FLAG, BOI.QO_FL, BOI.SAMPLE_MEMO, BOI.SIZE_MEMO, BOI.PACK_MEMO " ) ;
strSql . AppendLine ( ", BOI.FLUSH_FL, BOI.APPOINT_PLT, BOI.MORD_DESIGN_WGT, BOI.MORD_FL, BOI.APPOINT_PLT_REASON, BOI.SURFACE_REQUESTS, BOI.STAMP_FL, BOI.UST_INSP_FL, BOI.SPRAY_FL " ) ;
strSql . AppendLine ( ", BOI.BUFPOOL_CD, BOI.MULTI_INSP_FL, BOI.CONTRACT_DATE, BOI.DELIVERY_STATUS, BOI.CUST_CLASS, BOI.CUST_LEVEL, BOI.SPECIAL_OPR_REQ, BOI.WITNESS_CONTENT, BOI.COGGING_FLAG " ) ;
strSql . AppendLine ( ", BOI.STD_DET_CLASS_CD, BOI.STD_DET_CLASS_LVL, BOI.CERT_NOTE, BOI.INSPECT_FLAG, BOI.E2E_CUST, BOI.CUST_PURCHASE, BOI.GUID, BOI.NEW_CLASS_STATE, BOI.FACEPAINT " ) ;
strSql . AppendLine ( ", BOI.IS_JC, BOI.UST_JC, BOI.LEVEL_JM, BOI.ORDER_NOFH, BOI.ITEM_NOFH, BOI.ORDER_THK_JC, BOI.ORDER_THK_FC, BOI.TYPEFH, BOI.PRODTYPENO, BOI.STEEL_SPRAY " ) ;
strSql . AppendLine ( ", BOI.STEEL_PACK, BOI.STEEL_SHOTBLAST, BOI.STEEL_SLOTEPROCESS, BOI.ORDERQTY, BOI.ORDER_CNT, BOI.DELIVERY_STATUS1, BOI.DELIVERY_STATUS2, BOI.DELIVERY_STATUS3 " ) ;
strSql . AppendLine ( ", BOI.SPECNOA, BOI.SPECNOB, BOI.SPECNOC, BOI.SPECNOA_YY, BOI.SPECNOB_YY, BOI.SPECNOC_YY, BOI.INSPUNITCODE, BOI.SUBCUSTNO, BOI.ISSHIPORDER, BOI.SAILINGDATE " ) ;
strSql . AppendLine ( ", BOI.MARINEBOARD, BOI.ORDERNOYPK, BOI.ORDERITEMYPK, BOI.SORTINGMARK, BOI.UST_FL_PRINT, BOI.PRINTUTLEVEL, BOI.RULLBOARDCUT, BOI.PAINTUPT, BOI.ORDERPRICEB " ) ;
strSql . AppendLine ( ", BOI.ADJUSTPRICE, BOI.HOTUT, BOI.HOTUTRATE, BOI.SPECIALSIGN, BOI.UST_MODE, BOI.INSP_CD1, BOI.INSP_CD2, BOI.QKL_CUSTNO " ) ;
strSql . AppendLine ( ", CPP.ORD_WGT " ) ;
//strSql.AppendLine(",FLOOR((NVL(CPP.ORD_REM_WGT, 0) - CPP.ORD_WGT * (CPP.DEL_TOL_MAX + ABS(CPP.DEL_TOL_MIN)) / 100) / TRUNC(((BOI.ORD_WID / 1000) * (BOI.ORD_LEN / 1000) * (BOI.ORD_THK / 1000)) * 7.85, 3)) AS SUB_LACK_NUM");
strSql . AppendLine ( ",(NVL(CPP.ORD_REM_WGT, 0) - CPP.ORD_WGT * (CPP.DEL_TOL_MAX + ABS(CPP.DEL_TOL_MIN)) / 100) AS SUB_LACK_WGT " ) ;
strSql . AppendLine ( ",NVL(QQT.HTM_METH1,' ') HTM_METH1 " ) ;
strSql . AppendLine ( ",NVL(QQT.HTM_METH2,' ') HTM_METH2 " ) ;
strSql . AppendLine ( ",NVL(QQT.HTM_METH3,' ') HTM_METH3 " ) ;
//HTM_COND1
strSql . AppendLine ( ",NVL(QQT.HTM_COND1,' ') HTM_COND1 " ) ;
strSql . AppendLine ( ",NVL(QQT.HTM_COND2,' ') HTM_COND2 " ) ;
strSql . AppendLine ( ",NVL(QQT.HTM_COND3,' ') HTM_COND3 " ) ;
strSql . AppendLine ( ",CASE WHEN BOI.CUST_DEL_TO_DATE > TO_CHAR(SYSDATE + 7, 'YYYYMMdd') THEN 0 ELSE 1 END DEL_FLG" ) ;
//成品成分
strSql . AppendLine ( ",(CASE WHEN ( SELECT COUNT(*) FROM NISCO.QP_QLTY_CHEM_FP QQCF WHERE QQCF.ORD_NO=BOI.ORD_NO AND QQCF.ORD_ITEM=BOI.ORD_ITEM )>0 THEN '1' ELSE '0' END ) CHEM_FLG " ) ;
//strSql.AppendLine(",QSH.STDSPEC_NAME_ENG ");
strSql . AppendLine ( ",QSH.STDSPEC_STLGRD" ) ;
strSql . AppendLine ( ",(CASE WHEN ( SELECT COUNT(*) FROM NISCO.BP_ODER_XY BOXY WHERE BOXY.ORDER_NO=BOI.ORD_NO AND BOXY.ORDER_ITEM=BOI.ORD_ITEM )>0 THEN '1' ELSE '0' END ) XY_FLG " ) ;
strSql . AppendLine ( ",(CASE WHEN instr( DECODE(QQT.MLT_PROC_LINE, '1', QQT.MLT_PROC_CD, QQT.MLT_PROC_CD2),'BH') > 0 THEN '1' ELSE '0' END ) VAC_FLG\r\n" ) ;
strSql . AppendLine ( ",(CASE WHEN(SELECT COUNT(*) FROM NISCO.QP_QLTY_MATR_HA QQMH WHERE QQMH.ORD_NO = BOI.ORD_NO AND QQMH.ORD_ITEM = BOI.ORD_ITEM AND QQMH.TEST_KND IN('8', '9')) > 0 THEN '1' ELSE '0' END ) Z_FLG " ) ;
//低倍标记 1为有低倍要求
strSql . AppendLine ( " , case when (SELECT COUNT(*) FROM NISCO.qp_qlty_slab_lowpower where ord_no=boi.ord_no and ord_item=boi.ord_item)<1 THEN 0 ELSE 1 END FLG_LOWPOWER" ) ;
// 高表标记 1是高表
strSql . AppendLine ( ", CASE WHEN BOI.STD_DET_CLASS_LVL IN('G1','G2') and (SELECT STEEL_GRD_DETAIL FROM NISCO.QP_NISCO_CHMC WHERE STLGRD = BOI.STLGRD) not in ('Q550-QT-1','Q550-QT-2','Q906-1','Q960-2','Q960-3','Q890-1','Q890-2') THEN 1 ELSE 0 END FLG_GB" ) ;
//strSql.AppendLine(" ,NVL((SELECT sum(A.WGT) ");
//strSql.AppendLine(" FROM NISCO.EP_REQ_SLAB_D A, NISCO.EP_REQ_SLAB B ");
//strSql.AppendLine(" WHERE ");
//strSql.AppendLine("1 = 1 AND A.ORD_NO = BOI.ORD_NO AND A.ORD_ITEM = BOI.ORD_ITEM ");
//strSql.AppendLine("AND A.BLOCK_SEQ >= '01' ");
//strSql.AppendLine("AND A.SEQ >= '01' ");
//strSql.AppendLine("And B.REQ_SEQ_NO = A.REQ_SEQ_NO ");
strSql . AppendLine ( " , '100' AS WGT_MAX " ) ;
strSql . AppendLine ( " , '0' as FIRST_FLG " ) ;
//strSql.AppendLine(" ,NVL((SELECT sum(A.WGT) ");
//strSql.AppendLine(" FROM NISCO.EP_REQ_SLAB_D A, NISCO.EP_REQ_SLAB B ");
//strSql.AppendLine(" WHERE ");
//strSql.AppendLine("1 = 1 AND A.ORD_NO = BOI.ORD_NO AND A.ORD_ITEM = BOI.ORD_ITEM ");
//strSql.AppendLine("AND A.BLOCK_SEQ >= '01' ");
//strSql.AppendLine("AND A.SEQ >= '01' ");
//strSql.AppendLine("And B.REQ_SEQ_NO = A.REQ_SEQ_NO ");
strSql . AppendLine ( ", '100' AS WGT_MIN " ) ;
//strSql.AppendLine(", (SELECT COUNT(A.REQ_SEQ_NO) ");
//strSql.AppendLine(" FROM NISCO.EP_REQ_SLAB_D A, NISCO.EP_REQ_SLAB B ");
//strSql.AppendLine(" WHERE ");
//strSql.AppendLine(" 1 = 1 AND A.ORD_NO = BOI.ORD_NO AND A.ORD_ITEM = BOI.ORD_ITEM ");
//strSql.AppendLine(" AND A.BLOCK_SEQ >= '01' ");
//strSql.AppendLine(" AND A.SEQ >= '01' ");
//strSql.AppendLine(" And B.REQ_SEQ_NO = A.REQ_SEQ_NO ");
//strSql.AppendLine(" AND B.REC_STS = '1') +FLOOR((NVL(CPP.ORD_REM_WGT, 0) - CPP.ORD_WGT * (CPP.DEL_TOL_MAX + ABS(CPP.DEL_TOL_MIN)) / 100) / TRUNC(((BOI.ORD_WID / 1000) * (BOI.ORD_LEN / 1000) * (BOI.ORD_THK / 1000)) * 7.85, 3)) AS SUB_LACK_NUM ");
//strSql.AppendLine(", ( SELECT COUNT(A.REQ_SEQ_NO) ");
//strSql.AppendLine(" FROM NISCO.EP_REQ_SLAB_D A, NISCO.EP_REQ_SLAB B ");
//strSql.AppendLine(" WHERE ");
//strSql.AppendLine(" 1 = 1 AND A.ORD_NO = BOI.ORD_NO AND A.ORD_ITEM = BOI.ORD_ITEM ");
//strSql.AppendLine(" AND A.BLOCK_SEQ >= '01' ");
//strSql.AppendLine(" AND A.SEQ >= '01' ");
//strSql.AppendLine(" And B.REQ_SEQ_NO = A.REQ_SEQ_NO ");
//strSql.AppendLine(" AND B.REC_STS = '1') +FLOOR((NVL(CPP.ORD_REM_WGT, 0) - CPP.ORD_WGT * (CPP.DEL_TOL_MAX + ABS(CPP.DEL_TOL_MIN)) / 100) / TRUNC(((BOI.ORD_WID / 1000) * (BOI.ORD_LEN / 1000) * (BOI.ORD_THK / 1000)) * 7.85, 3)) AS LACK_NUM");
strSql . AppendLine ( ",'7'AS SUB_LACK_NUM" ) ;
strSql . AppendLine ( ",'7'AS LACK_NUM" ) ;
strSql . AppendLine ( "FROM NISCO.cp_prc CPP " ) ;
strSql . AppendLine ( "INNER JOIN " ) ;
strSql . AppendLine ( "NISCO.BP_ORDER_ITEM boi " ) ;
strSql . AppendLine ( "ON BOI.ORD_NO = CPP.ORD_NO " ) ;
strSql . AppendLine ( "AND BOI.ORD_ITEM = CPP.ORD_ITEM " ) ;
strSql . AppendLine ( "AND BOI.ORD_WID <> 0 " ) ;
strSql . AppendLine ( "AND BOI.ORD_LEN <> 0 " ) ;
strSql . AppendLine ( "AND BOI.ORD_THK <> 0 " ) ;
strSql . AppendLine ( "LEFT JOIN NISCO.QP_QLTY_TECH QQT " ) ;
strSql . AppendLine ( "ON BOI.ORD_NO = QQT.ORD_NO " ) ;
strSql . AppendLine ( "AND BOI.ORD_ITEM = QQT.ORD_ITEM " ) ;
strSql . AppendLine ( "LEFT JOIN NISCO.QP_QLTY_DELV QQD " ) ;
strSql . AppendLine ( "ON BOI.ORD_NO = QQD.ORD_NO " ) ;
strSql . AppendLine ( "AND BOI.ORD_ITEM = QQD.ORD_ITEM " ) ;
strSql . AppendLine ( "LEFT JOIN NISCO.QP_STD_HEAD QSH " ) ;
strSql . AppendLine ( " ON boi.STDSPEC = QSH.STDSPEC " ) ;
strSql . AppendLine ( " AND boi.STDSPEC_YY = QSH.STDSPEC_YY " ) ;
strSql . AppendLine ( "WHERE 1 = 1 " ) ;
//strSql.AppendLine(" AND ");
//strSql.AppendLine(" (SELECT COUNT(A.REQ_SEQ_NO) ");
//strSql.AppendLine(" FROM NISCO.EP_REQ_SLAB_D A, NISCO.EP_REQ_SLAB B");
//strSql.AppendLine(" WHERE ");
//strSql.AppendLine(" 1 = 1 AND A.ORD_NO = BOI.ORD_NO AND A.ORD_ITEM = BOI.ORD_ITEM");
//strSql.AppendLine(" AND A.BLOCK_SEQ >= '01' ");
//strSql.AppendLine(" AND A.SEQ >= '01' ");
//strSql.AppendLine(" And B.REQ_SEQ_NO = A.REQ_SEQ_NO ");
//strSql.AppendLine(" AND B.REC_STS = '1') + (NVL(CPP.ORD_REM_WGT, 0) - CPP.ORD_WGT * (CPP.DEL_TOL_MAX + ABS(CPP.DEL_TOL_MIN)) / 100) / (((BOI.ORD_WID / 1000) * (BOI.ORD_LEN / 1000) * (BOI.ORD_THK / 1000)) * 7.85) >= 0.95");
//strSql.AppendLine(" AND boi.PROD_CD = 'PP' ");
//strSql.AppendLine("AND boi.REC_STS = '2' ");
//strSql.AppendLine("and boi.ORD_STS IN('E') ");
//strSql.AppendLine(" AND (boi.ord_knd ='A' OR (boi.ord_knd ='T' AND (SELECT COUNT(*) FROM NISCO.BP_ODER_XY BOXY WHERE BOXY.ORDER_NO=BOI.ORD_NO AND BOXY.ORDER_ITEM=BOI.ORD_ITEM )>0)) ");
//strSql.AppendLine("AND (boi.CUST_DEL_TO_DATE>= to_char(sysdate-183,'YYYYMMDD') OR BOI.ORD_NO LIKE 'OMA%' )");
//strSql.AppendLine("AND boi.CFM_MILL_PLT='C1' ");
strSql . AppendLine ( " AND boi.ORD_NO || '-' || boi.ORD_ITEM in " ) ;
strSql . AppendLine ( ord_no ) ;
//strSql.AppendLine(" AND boi.ORD_NO in ('EMD23020004')");
//OMI23030002-035
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
gpPlates = db . Query < BP_ORDER_ITEM > ( strSql . ToString ( ) ) ;
//logger.Info("订单SQL: " + strSql.ToString());
// logger.Info(gpPlates.Count.ToString());
//gpPlates = CommonUtils.DataTableToList<BP_ORDER_ITEM>(a);
// logger.Info("gpPlates :" + a.Rows.Count);
}
}
catch ( Exception ex )
{
logger . Error ( "GetOrder 报错" , ex ) ;
}
return gpPlates ;
}
/// <summary>
/// 根据订单号找到对应的订单要求化学成分
/// </summary>
/// <returns>对应的化学成分集合</returns>
/// 方法如果被static修饰, 则在接口中无法被发现(原因不详)
public IList < QP_QLTY_CHEM > GetOrderChemistry ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < QP_QLTY_CHEM > orderChemistrys = new List < QP_QLTY_CHEM > ( ) ;
strSql . AppendLine ( "SELECT T.*FROM(" ) ;
strSql . AppendLine ( "SELECT QQC.*, rank() over(partition by QQC.ord_no, QQC.ord_item order by knd desc) rk from NISCO.QP_QLTY_CHEM QQC where (QQC.ORD_NO, QQC.ORD_ITEM) IN(" ) ;
strSql . AppendLine ( "SELECT" ) ;
strSql . AppendLine ( "TO_CHAR(BOI.ORD_NO), TO_CHAR(BOI.ORD_ITEM)" ) ;
strSql . AppendLine ( "FROM NISCO.cp_prc CPP " ) ;
strSql . AppendLine ( "INNER JOIN " ) ;
strSql . AppendLine ( "NISCO.BP_ORDER_ITEM boi " ) ;
strSql . AppendLine ( "ON BOI.ORD_NO = CPP.ORD_NO " ) ;
strSql . AppendLine ( "AND BOI.ORD_ITEM = CPP.ORD_ITEM " ) ;
strSql . AppendLine ( "AND BOI.ORD_WID <> 0 " ) ;
strSql . AppendLine ( "AND BOI.ORD_LEN <> 0 " ) ;
strSql . AppendLine ( "AND BOI.ORD_THK <> 0 " ) ;
strSql . AppendLine ( " WHERE 1 = 1 " ) ;
//strSql.AppendLine("AND ");
//strSql.AppendLine(" (SELECT COUNT(A.REQ_SEQ_NO) ");
//strSql.AppendLine("FROM NISCO.EP_REQ_SLAB_D A, NISCO.EP_REQ_SLAB B ");
//strSql.AppendLine("WHERE ");
//strSql.AppendLine("1 = 1 AND A.ORD_NO = BOI.ORD_NO AND A.ORD_ITEM = BOI.ORD_ITEM ");
//strSql.AppendLine("AND A.BLOCK_SEQ >= '01' ");
//strSql.AppendLine("AND A.SEQ >= '01' ");
//strSql.AppendLine("And B.REQ_SEQ_NO = A.REQ_SEQ_NO ");
//strSql.AppendLine("AND B.REC_STS = '1') + (NVL(CPP.ORD_REM_WGT, 0) - CPP.ORD_WGT * (CPP.DEL_TOL_MAX + ABS(CPP.DEL_TOL_MIN)) / 100) / (((BOI.ORD_WID / 1000) * (BOI.ORD_LEN / 1000) * (BOI.ORD_THK / 1000)) * 7.85) >= 0.95 ");
//strSql.AppendLine("AND boi.PROD_CD = 'PP'");
//strSql.AppendLine("AND boi.REC_STS = '2' ");
//strSql.AppendLine("and boi.ORD_STS IN('E', 'D') ");
//strSql.AppendLine(" AND (boi.ord_knd ='A' OR (boi.ord_knd ='T' AND (SELECT COUNT(*) FROM NISCO.BP_ODER_XY BOXY WHERE BOXY.ORDER_NO=BOI.ORD_NO AND BOXY.ORDER_ITEM=BOI.ORD_ITEM )>0)) ");
strSql . AppendLine ( " AND boi.ORD_NO || '-' || boi.ORD_ITEM in " ) ;
strSql . AppendLine ( ord_no ) ;
strSql . AppendLine ( ") " ) ;
strSql . AppendLine ( " AND QQC.KND IN ('1','2') ) T WHERE T.rk = 1 " ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
orderChemistrys = db . Query < QP_QLTY_CHEM > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetOrderChemistry 报错 : " , ex ) ;
}
return orderChemistrys ;
}
/// <summary>
/// 获取订单生产规范设计结果主表的信息
/// </summary>
/// <param name="strWHereOrd">订单的条件</param>
/// <returns></returns>
public IList < EP_STD_CROP_LEN > GetEP_STD_CROP_LEN ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < EP_STD_CROP_LEN > ltEP_STD_CROP_LEN = new List < EP_STD_CROP_LEN > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.EP_STD_CROP_LEN" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltEP_STD_CROP_LEN = db . Query < EP_STD_CROP_LEN > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetEP_STD_CROP_LEN 报错 : " , ex ) ;
}
return ltEP_STD_CROP_LEN ;
}
/// <summary>
/// 轧件长度余量标准
/// </summary>
/// <returns></returns>
public IList < EP_PLATELEN_M > GetEP_PLATELEN_M ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < EP_PLATELEN_M > ltEP_PLATELEN_M = new List < EP_PLATELEN_M > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.EP_PLATELEN_M" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltEP_PLATELEN_M = db . Query < EP_PLATELEN_M > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetEP_PLATELEN_M 报错 : " , ex ) ;
}
return ltEP_PLATELEN_M ;
}
/// <summary>
/// 宽厚上下限
/// </summary>
/// <returns></returns>
public IList < EP_PLATEWID_STD > GetEP_PLATEWID_STD ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < EP_PLATEWID_STD > ltEP_PLATEWID_STD = new List < EP_PLATEWID_STD > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.EP_PLATEWID_STD" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltEP_PLATEWID_STD = db . Query < EP_PLATEWID_STD > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetEP_PLATEWID_STD 报错 : " , ex ) ;
}
return ltEP_PLATEWID_STD ;
}
/// <summary>
/// 宽厚上下限
/// </summary>
/// <returns></returns>
public IList < QP_STD_HEAD > GetQP_STD_HEAD ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < QP_STD_HEAD > ltQP_STD_HEAD = new List < QP_STD_HEAD > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.QP_STD_HEAD" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltQP_STD_HEAD = db . Query < QP_STD_HEAD > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetQP_STD_HEAD 报错 : " , ex ) ;
}
return ltQP_STD_HEAD ;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public IList < QP_PROD_RATIO > GetQP_PROD_RATIO ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < QP_PROD_RATIO > ltQP_PROD_RATIO = new List < QP_PROD_RATIO > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.QP_PROD_RATIO" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltQP_PROD_RATIO = db . Query < QP_PROD_RATIO > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetQP_PROD_RATIO 报错 : " , ex ) ;
}
return ltQP_PROD_RATIO ;
}
/// <summary>
/// 板坯设计标准
/// </summary>
/// <returns></returns>
public IList < EP_SLABDESIGN > GetEP_SLABDESIGN ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < EP_SLABDESIGN > ltEP_SLABDESIGN = new List < EP_SLABDESIGN > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.EP_SLABDESIGN" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltEP_SLABDESIGN = db . Query < EP_SLABDESIGN > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetEP_SLABDESIGN 报错 : " , ex ) ;
}
return ltEP_SLABDESIGN ;
}
/// <summary>
/// 获取轧件长度限制标准信息
/// </summary>
/// <returns></returns>
public IList < EP_ASROLL_LEN_STD > getEP_ASROLL_LEN_STD ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < EP_ASROLL_LEN_STD > ltEP_ASROLL_LEN_STD = new List < EP_ASROLL_LEN_STD > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.EP_ASROLL_LEN_STD" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltEP_ASROLL_LEN_STD = db . Query < EP_ASROLL_LEN_STD > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetEP_ASROLL_LEN_STD 报错 : " , ex ) ;
}
return ltEP_ASROLL_LEN_STD ;
}
/// <summary>
/// 获取钢种组信息
/// </summary>
/// <returns></returns>
public IList < EP_GRD_GROUP > getEP_GRD_GROUP ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < EP_GRD_GROUP > ltEP_GRD_GROUP = new List < EP_GRD_GROUP > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.EP_GRD_GROUP" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltEP_GRD_GROUP = db . Query < EP_GRD_GROUP > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetEP_GRD_GROUP 报错 : " , ex ) ;
}
return ltEP_GRD_GROUP ;
}
/// <summary>
/// 厚度附加值标准数据表
/// </summary>
/// <returns></returns>
public IList < GP_THK_ADD > getGP_THK_ADD ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < GP_THK_ADD > ltGP_THK_ADD = new List < GP_THK_ADD > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.GP_THK_ADD" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltGP_THK_ADD = db . Query < GP_THK_ADD > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "getGP_THK_ADD 报错 : " , ex ) ;
}
return ltGP_THK_ADD ;
}
/// <summary>
/// 获取加热炉信息
/// </summary>
/// <returns></returns>
public IList < EP_FUR_SIZE_STD > getEP_FUR_SIZE_STD ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < EP_FUR_SIZE_STD > ltEP_FUR_SIZE_STD = new List < EP_FUR_SIZE_STD > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.EP_FUR_SIZE_STD" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltEP_FUR_SIZE_STD = db . Query < EP_FUR_SIZE_STD > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetEP_FUR_SIZE_STD 报错 : " , ex ) ;
}
return ltEP_FUR_SIZE_STD ;
}
public IList < FP_SLAB_DES > getFP_SLAB_DES ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < FP_SLAB_DES > ltFP_SLAB_DES = new List < FP_SLAB_DES > ( ) ;
strSql . AppendLine ( "SELECT fsd_1.*,'C1' PLT,'' ID ,'' HAN_RSL ,'' HAN_CON, '' HAN_DATE" +
",'' THK_RATIO" +
",'' WID_RATIO" +
",'' HEAD_LEN" +
",'' TAIL_LEN" +
",'' WID_MRGIN" +
",'' SAMP_LEN" +
",'' CUT_LOSS" +
",'' ORG_LEN" +
",'' ORG_WGT" +
",'' ORG_THK" +
",'' ORG_WID" +
",'' REM_LEN" +
",'' REM_WGT" +
",'' REQ_SEQ_NO" +
",'' SUB_KIND" +
" FROM NISCO.FP_SLAB_DES FSD_1 " ) ;
strSql . AppendLine ( "LEFT JOIN NISCO.FP_SLAB fs " ) ;
strSql . AppendLine ( "ON fs.SLAB_NO = fsd_1.SLAB_NO " ) ;
strSql . AppendLine ( "WHERE FSD_1.SLAB_NO IN( " ) ;
strSql . AppendLine ( "SELECT fsd.SLAB_NO FROM NISCO.FP_SLAB_DES fsd WHERE fsd.SLAB_NO IN ( " ) ;
strSql . AppendLine ( " SELECT A.SLAB_NO " ) ;
strSql . AppendLine ( " FROM NISCO.FP_SLAB A " ) ;
strSql . AppendLine ( "WHERE 1 = 1 " ) ;
strSql . AppendLine ( " AND(A.PROC_CD = 'CAC' OR " ) ;
strSql . AppendLine ( " ((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.REASON_CD NOT IN('1080','2014','2015','2018','2026','3014','5011','5013','8081') AND EST_CD IS NULL) < 1)" ) ;
strSql . AppendLine ( " AND A.PROC_CD='CAD' ) " ) ;
strSql . AppendLine ( " AND((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.EST_CD IN ( '0002','0003','2010') ) < 1 )" ) ;
strSql . AppendLine ( " AND A.PROC_CD!='CAD' " ) ;
strSql . AppendLine ( " AND A.CUR_INV in '00' " ) ; / /
//strSql.AppendLine(" AND A.PROC_CD = 'CAC' ");
strSql . AppendLine ( " AND A.ORD_FL = '2' " ) ;
strSql . AppendLine ( " AND A.REC_STS = '2' " ) ;
strSql . AppendLine ( " AND NVL(A.OUT_PLT_CD,'9') <> '0' " ) ;
strSql . AppendLine ( " AND A.WGT > 0 " ) ;
strSql . AppendLine ( " AND A.WID > 1600 " ) ;
strSql . AppendLine ( " AND A.LEN > 3900 " ) ;
strSql . AppendLine ( " AND NVL(A.PLT,'99') IN ('B1','BZ') " ) ;
strSql . AppendLine ( " AND NVL(A.QUALITY_UPD_GRD,'N') <> 'N' " ) ;
strSql . AppendLine ( " AND NVL(A.OUT_PLT_CD,'9') <> '0' " ) ;
strSql . AppendLine ( " AND SLAB_NO NOT IN ( SELECT SLAB_NO FROM NISCO.CP_SLAB_MOVE_PLAN WHERE PRC_STS = 'A' AND TO_INV in('ZB','HB') ) " ) ;
strSql . AppendLine ( " AND NVL(A.PLAN_MILL_PLT , ' ') LIKE 'C1' || '%' " ) ;
//3.11.5.4.9 订单有低倍要求并且物料低倍等级不合格的板坯,不允许替代。
//strSql.AppendLine(" AND ( ( (SELECT COUNT(*) FROM NISCO.qp_qlty_slab_lowpower Q WHERE Q.ORD_NO =A.ORD_NO AND Q.ORD_ITEM=A.ORD_ITEM) >= 1) AND A.QUALITY_GRD = '4' AND ((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.EST_CD = '0001' AND C.REASON_CD = '3010' AND C.REASON_COMMENT = '低倍不符合要求') < 1 ))");
strSql . AppendLine ( " AND((SELECT COUNT(*) FROM NISCO.FB_SLAB_001 R WHERE R.SLAB_NO = A.SLAB_NO) < 1 )) " ) ; / /
strSql . AppendLine ( " GROUP BY fsd.SLAB_NO " ) ;
strSql . AppendLine ( " HAVING(COUNT(fsd.SLAB_NO) > 3) " ) ;
strSql . AppendLine ( " ) " ) ;
strSql . AppendLine ( " AND fsd_1.ORD_CNT > 0 " ) ;
strSql . AppendLine ( " ORDER BY fsd_1.SLAB_NO DESC, fsd_1.BLOCK_SEQ,fsd_1.seq " ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltFP_SLAB_DES = db . Query < FP_SLAB_DES > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetFP_SLAB_DES 报错 : " , ex ) ;
}
return ltFP_SLAB_DES ;
}
/// <summary>
/// 炼钢缓冲区主表
/// </summary>
/// <returns></returns>
public IList < EP_REQ_SLAB > getEP_REQ_SLAB ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < EP_REQ_SLAB > ltEP_REQ_SLAB = new List < EP_REQ_SLAB > ( ) ;
strSql . AppendLine ( "SELECT round(to_number(slab_wgt))*10000+rownum ROW_NUM,rownum,T.*FROM( " ) ;
strSql . AppendLine ( "SELECT ERS.* FROM NISCO.EP_REQ_SLAB ERS " ) ;
strSql . AppendLine ( "WHERE ERS.REC_STS = '1' AND ERS.REQ_PLT = 'C1' " ) ;
strSql . AppendLine ( "AND (select count(*) from NISCO.EP_REQ_SLAB_D ERSD where ERSD.REQ_SEQ_NO=ERS.REQ_SEQ_NO)>=3 " ) ;
strSql . AppendLine ( "ORDER BY ERS.SLAB_LEN) T " ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltEP_REQ_SLAB = db . Query < EP_REQ_SLAB > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetEP_REQ_SLAB 报错 : " , ex ) ;
}
return ltEP_REQ_SLAB ;
}
/// <summary>
/// 炼钢缓冲区 详细设计表
/// </summary>
/// <returns></returns>
public IList < EP_REQ_SLAB_D > getEP_REQ_SLAB_D ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < EP_REQ_SLAB_D > ltEP_REQ_SLAB_D = new List < EP_REQ_SLAB_D > ( ) ;
//strSql.AppendLine("SELECT * FROM NISCO.EP_REQ_SLAB_D");
strSql . AppendLine ( "SELECT ERSD.* ,'' USE_FLG FROM NISCO.EP_REQ_SLAB_D ERSD WHERE ERSD.REQ_SEQ_NO IN(" ) ;
strSql . AppendLine ( "SELECT ERS.REQ_SEQ_NO FROM NISCO.EP_REQ_SLAB ERS" ) ;
strSql . AppendLine ( "WHERE ERS.REC_STS = '1' AND ERS.REQ_PLT = 'C1'" ) ;
strSql . AppendLine ( "AND (select count(*) from NISCO.EP_REQ_SLAB_D ERSD where ERSD.REQ_SEQ_NO=ERS.REQ_SEQ_NO)>=3) " ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltEP_REQ_SLAB_D = db . Query < EP_REQ_SLAB_D > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetEP_REQ_SLAB_D 报错 : " , ex ) ;
}
return ltEP_REQ_SLAB_D ;
}
/// <summary>
/// 替代厚度限制
/// </summary>
/// <returns></returns>
public IList < SUBS_THICK_LIMIT > getSUBS_THICK_LIMIT ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < SUBS_THICK_LIMIT > ltSUBS_THICK_LIMIT = new List < SUBS_THICK_LIMIT > ( ) ;
strSql . AppendLine ( "SELECT * FROM SUBS_THICK_LIMIT" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
ltSUBS_THICK_LIMIT = db . Query < SUBS_THICK_LIMIT > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetSUBS_THICK_LIMIT 报错 : " , ex ) ;
}
return ltSUBS_THICK_LIMIT ;
}
/// <summary>
/// 钢种说明
/// </summary>
/// <returns></returns>
public IList < QP_NISCO_CHMC > getQP_NISCO_CHMC ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < QP_NISCO_CHMC > ltQP_NISCO_CHMC = new List < QP_NISCO_CHMC > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.QP_NISCO_CHMC " ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltQP_NISCO_CHMC = db . Query < QP_NISCO_CHMC > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetQP_NISCO_CHMC 报错 : " , ex ) ;
}
return ltQP_NISCO_CHMC ;
}
/// <summary>
/// 一坯多钢种信息
/// </summary>
/// <returns></returns>
public IList < CP_NISCO_CHMC_SL > getCP_NISCO_CHMC_SL ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < CP_NISCO_CHMC_SL > ltCP_NISCO_CHMC_SL = new List < CP_NISCO_CHMC_SL > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.CP_NISCO_CHMC_SL CNCS WHERE NVL( CNCS.CLASS_FL , ' ')<>' '" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltCP_NISCO_CHMC_SL = db . Query < CP_NISCO_CHMC_SL > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetCP_NISCO_CHMC_SL 报错 : " , ex ) ;
}
return ltCP_NISCO_CHMC_SL ;
}
/// <summary>
/// 获取配置信息
/// </summary>
/// <returns></returns>
public IList < TB_SLAB_CONF > getTB_SLAB_CONF ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < TB_SLAB_CONF > ltTB_SLAB_CONF = new List < TB_SLAB_CONF > ( ) ;
strSql . AppendLine ( "SELECT * FROM TB_SLAB_CONF" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
ltTB_SLAB_CONF = db . Query < TB_SLAB_CONF > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetTB_SLAB_CONF 报错 : " , ex ) ;
}
return ltTB_SLAB_CONF ;
}
/// <summary>
/// 异钢种替代工艺
/// </summary>
/// <returns></returns>
public IList < QP_QLTY_TECH_REPLACE > getQP_QLTY_TECH_REPLACE ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < QP_QLTY_TECH_REPLACE > ltQP_QLTY_TECH_REPLACE = new List < QP_QLTY_TECH_REPLACE > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.QP_QLTY_TECH_REPLACE" ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltQP_QLTY_TECH_REPLACE = db . Query < QP_QLTY_TECH_REPLACE > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetQP_QLTY_TECH_REPLACE 报错 : " , ex ) ;
}
return ltQP_QLTY_TECH_REPLACE ;
}
/// <summary>
/// 根据钢板板坯号找到对应炉号,根据炉号找到对应化学成分
/// </summary>
/// <returns>对应的化学成分集合</returns>
public IList < QP_CHEM_RSLT > GetChemistry ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < QP_CHEM_RSLT > chemistrys = new List < QP_CHEM_RSLT > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.QP_CHEM_RSLT WHERE HEAT_NO IN ( " ) ;
strSql . AppendLine ( "SELECT " ) ;
strSql . AppendLine ( "A.HEAT_NO " ) ;
strSql . AppendLine ( "FROM NISCO.FP_SLAB A " ) ;
strSql . AppendLine ( "WHERE 1 = 1 " ) ;
strSql . AppendLine ( " AND A.SLAB_NO in" ) ;
strSql . AppendLine ( slab_no ) ;
//strSql.AppendLine(" AND A.CUR_INV in '00' ");//
//strSql.AppendLine(" AND A.PROC_CD = 'CAC' ");
//strSql.AppendLine(" AND A.ORD_FL = '2' ");
//strSql.AppendLine(" AND A.REC_STS = '2' ");
//strSql.AppendLine(" AND NVL(A.OUT_PLT_CD,'9') <> '0' ");
//strSql.AppendLine(" AND A.WGT > 0 ");
//strSql.AppendLine(" AND A.WID > 1600 ");
//strSql.AppendLine(" AND A.LEN > 3900 ");
//strSql.AppendLine(" AND NVL(A.PLT,'99') IN ('B1','BZ') ");
//strSql.AppendLine(" AND NVL(A.QUALITY_UPD_GRD,'N') <> 'N' ");
//strSql.AppendLine(" AND NVL(A.OUT_PLT_CD,'9') <> '0' ");
//strSql.AppendLine(" AND SLAB_NO NOT IN ( SELECT SLAB_NO FROM NISCO.CP_SLAB_MOVE_PLAN WHERE PRC_STS = 'A' AND TO_INV in('ZB','HB') ) ");
//strSql.AppendLine(" AND NVL(A.PLAN_MILL_PLT , ' ') LIKE 'C1' || '%' ");
strSql . AppendLine ( ") " ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
chemistrys = db . Query < QP_CHEM_RSLT > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetChemistry 报错 : " , ex ) ;
}
return chemistrys ;
}
public IList < GP_THK_ADD > GetGPTHKADD ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < GP_THK_ADD > gGPTHKADD = null ;
//查询可用订单以及常用字段
try
{
strSql . AppendLine ( "SELECT * FROM NISCO.GP_THK_ADD" ) ;
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
gGPTHKADD = db . Query < GP_THK_ADD > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetGPTHKADD 报错" , ex ) ;
}
return gGPTHKADD ;
}
public IList < EP_SLABLEN_STD > GetEP_SLABLEN_STD ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < EP_SLABLEN_STD > getEP_SLABLEN_STD = null ;
//查询可用订单以及常用字段
try
{
strSql . AppendLine ( "SELECT * FROM NISCO.EP_SLABLEN_STD" ) ;
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
getEP_SLABLEN_STD = db . Query < EP_SLABLEN_STD > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetEP_SLABLEN_STD 报错" , ex ) ;
}
return getEP_SLABLEN_STD ;
}
public static string GetSlabNo ( FP_SLAB_DES FSD )
{
string strSlabNo = string . Empty ;
DataTable dtReturn = new DataTable ( ) ;
StringBuilder strSql = new StringBuilder ( ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
strSql . AppendLine ( " SELECT A.REQ_SEQ_NO " ) ;
strSql . AppendLine ( " FROM NISCO.EP_REQ_SLAB_D A, NISCO.EP_REQ_SLAB B" ) ;
strSql . AppendLine ( " WHERE " ) ;
strSql . AppendLine ( " 1 = 1 " ) ;
strSql . AppendLine ( " AND A.BLOCK_SEQ >= '01' " ) ;
strSql . AppendLine ( " AND A.SEQ >= '01' " ) ;
strSql . AppendLine ( " And B.REQ_SEQ_NO = A.REQ_SEQ_NO " ) ;
strSql . AppendLine ( " AND B.REC_STS = '1' " ) ;
strSql . AppendFormat ( " AND A.ORD_NO = '{0}' " , FSD . ORD_NO ) ;
strSql . AppendFormat ( " AND A.ORD_ITEM = '{0}' " , FSD . ORD_ITEM ) ;
dtReturn = db . Query ( strSql . ToString ( ) ) ;
if ( dtReturn . Rows . Count > 0 )
{
strSlabNo = dtReturn . Rows [ 0 ] [ "REQ_SEQ_NO" ] . ToString ( ) ;
}
}
}
catch ( Exception )
{
}
return strSlabNo ;
}
public IList < FP_CAD_INF > GetFP_CAD_INF ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < FP_CAD_INF > ltFP_CAD_INF = new List < FP_CAD_INF > ( ) ;
strSql . AppendLine ( "SELECT * FROM NISCO.FP_CAD_INF " ) ;
// "WHERE SLAB_NO IN ( ");
//strSql.AppendLine("SELECT ");
//strSql.AppendLine("A.SLAB_NO ");
//strSql.AppendLine("FROM NISCO.FP_SLAB A ");
//strSql.AppendLine("WHERE 1 = 1 ");
////测试数据
////strSql.AppendLine(" AND SLAB_NO in ('2310142001') ");
////strSql.AppendLine(" AND SLAB_NO in ('2320231308') ");
//strSql.AppendLine(" AND(A.PROC_CD = 'CAC' OR ");
//strSql.AppendLine(" ((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.REASON_CD NOT IN('1080','2014','2015','2018','2026','3014','5011','5013','8081') AND EST_CD IS NULL) < 1)");
//strSql.AppendLine(" AND A.PROC_CD='CAD' ) ");
//strSql.AppendLine(" AND((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.EST_CD IN ( '0002','0003','2010') ) < 1 )");
//strSql.AppendLine(" AND A.PROC_CD!='CAD' ");
//strSql.AppendLine(" AND A.CUR_INV in '00' ");//
////strSql.AppendLine(" AND A.PROC_CD = 'CAC' ");
//strSql.AppendLine(" AND A.ORD_FL = '2' ");
//strSql.AppendLine(" AND A.REC_STS = '2' ");
//strSql.AppendLine(" AND NVL(A.OUT_PLT_CD,'9') <> '0' ");
//strSql.AppendLine(" AND A.WGT > 0 ");
//strSql.AppendLine(" AND A.WID > 1600 ");
//strSql.AppendLine(" AND A.LEN > 3900 ");
//strSql.AppendLine(" AND NVL(A.PLT,'99') IN ('B1','BZ') ");
//strSql.AppendLine(" AND NVL(A.QUALITY_UPD_GRD,'N') <> 'N' ");
//strSql.AppendLine(" AND NVL(A.OUT_PLT_CD,'9') <> '0' ");
//strSql.AppendLine(" AND SLAB_NO NOT IN ( SELECT SLAB_NO FROM NISCO.CP_SLAB_MOVE_PLAN WHERE PRC_STS = 'A' AND TO_INV in('ZB','HB') ) ");
//strSql.AppendLine(" AND NVL(A.PLAN_MILL_PLT , ' ') LIKE 'C1' || '%' ");
////3.11.5.4.9 订单有低倍要求并且物料低倍等级不合格的板坯,不允许替代。
////strSql.AppendLine(" AND ( ( (SELECT COUNT(*) FROM NISCO.qp_qlty_slab_lowpower Q WHERE Q.ORD_NO =A.ORD_NO AND Q.ORD_ITEM=A.ORD_ITEM) >= 1) AND A.QUALITY_GRD = '4' AND ((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.EST_CD = '0001' AND C.REASON_CD = '3010' AND C.REASON_COMMENT = '低倍不符合要求') < 1 ))");
//strSql.AppendLine(" AND((SELECT COUNT(*) FROM NISCO.FB_SLAB_001 R WHERE R.SLAB_NO = A.SLAB_NO) < 1 ) ");//
//strSql.AppendLine(") ");
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltFP_CAD_INF = db . Query < FP_CAD_INF > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetFP_CAD_INF 报错 : " , ex ) ;
}
return ltFP_CAD_INF ;
}
/// <summary>
/// 获取预留钢种
/// </summary>
/// <returns></returns>
public IList < TB_STLGRD_CHMC > GetTB_STLGRD_CHMC ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < TB_STLGRD_CHMC > gLTB_STLGRD_CHMC = null ;
//查询可用订单以及常用字段
try
{
strSql . AppendLine ( "SELECT * FROM tb_stlgrd_chmc WHERE plt='C1'" ) ;
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
gLTB_STLGRD_CHMC = db . Query < TB_STLGRD_CHMC > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "gLTB_APPOINT_ORDER 报错" , ex ) ;
}
return gLTB_STLGRD_CHMC ;
}
/// <summary>
/// 获取炼钢板坯设计信息
/// </summary>
/// <returns></returns>
public IList < FP_SLAB_DES > getEP_SLAB_DES ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < FP_SLAB_DES > ltFP_SLAB_DES = new List < FP_SLAB_DES > ( ) ;
strSql . AppendLine ( "SELECT " + "fsd_1.ACT_SLAB_NO SLAB_NO," +
"fsd_1.*,'C1' PLT,'' ID ,'' HAN_RSL ,'' HAN_CON, '' HAN_DATE" +
",'' THK_RATIO" +
",'' WID_RATIO" +
",'' HEAD_LEN" +
",'' TAIL_LEN" +
",'' WID_MRGIN" +
",'' SAMP_LEN" +
",'' CUT_LOSS" +
",'' ORG_LEN" +
",'' ORG_WGT" +
",'' ORG_THK" +
",'' ORG_WID" +
",'' REM_LEN" +
",'' REM_WGT" +
",'' REQ_SEQ_NO" +
",'' SUB_KIND" +
",'' POSITION_TYPE" +
",'' POSITION_X" +
",'' POSITION_Y" +
",'' FL" +
" FROM NISCO.EP_SLAB_DES FSD_1 " ) ;
strSql . AppendLine ( "LEFT JOIN NISCO.FP_SLAB fs " ) ;
strSql . AppendLine ( "ON fs.SLAB_NO = fsd_1.ACT_SLAB_NO " ) ;
strSql . AppendLine ( "WHERE FSD_1.ACT_SLAB_NO IN( " ) ;
strSql . AppendLine ( "SELECT fsd.ACT_SLAB_NO FROM NISCO.EP_SLAB_DES fsd WHERE fsd.ACT_SLAB_NO IN " ) ;
strSql . AppendLine ( slab_no ) ;
//strSql.AppendLine(" SELECT A.SLAB_NO ");
//strSql.AppendLine(" FROM NISCO.FP_SLAB A ");
//strSql.AppendLine("WHERE 1 = 1 ");
//strSql.AppendLine(" AND A.CUR_INV IN ( 'ZB','00','ZZ','HB') ");
//strSql.AppendLine(" AND(A.PROC_CD = 'CAC' OR ");
//strSql.AppendLine(" ((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.REASON_CD NOT IN('1080','2014','2015','2018','2026','3014','5011','5013','8081') AND EST_CD IS NULL) < 1)");
//strSql.AppendLine(" AND A.PROC_CD='CAD' ) ");
//strSql.AppendLine(" AND((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.EST_CD IN ( '9010','0002','0003','2010') ) < 1 )");
//strSql.AppendLine(" AND A.ORD_FL = '2' ");
//strSql.AppendLine(" AND A.REC_STS = '2' ");
//strSql.AppendLine(" AND NVL(A.OUT_PLT_CD,'9') <> '0' ");
//strSql.AppendLine(" AND A.WGT > 0 ");
//strSql.AppendLine(" AND SUBSTR(A.SLAB_NO,3,1) <> 'F' ");
//strSql.AppendLine(" AND NVL(A.QUALITY_UPD_GRD, 'N') NOT IN('N','E') ");
//strSql.AppendLine(" AND NVL(A.PLAN_MILL_PLT , ' ') LIKE 'C1' || '%' ");
//strSql.AppendLine(" AND NVL(A.PLAN_SLAB_MERGE_FL,'N') = 'N' ) ");
//strSql.AppendLine(" GROUP BY fsd.ACT_SLAB_NO ");
//strSql.AppendLine(" HAVING(COUNT(fsd.ACT_SLAB_NO) > 3) ");
strSql . AppendLine ( " ) " ) ;
strSql . AppendLine ( " ORDER BY fsd_1.SLAB_NO DESC, fsd_1.BLOCK_SEQ,fsd_1.seq " ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltFP_SLAB_DES = db . Query < FP_SLAB_DES > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetFP_SLAB_DES 报错 : " , ex ) ;
}
return ltFP_SLAB_DES ;
}
/// <summary>
/// 镍系钢种 修磨表
/// </summary>
/// <returns></returns>
public IList < SPECIAL_VARIETIES > GetSPECIAL_VARIETIES ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < SPECIAL_VARIETIES > gGPTHKADD = null ;
//查询可用订单以及常用字段
try
{
strSql . AppendLine ( "SELECT * FROM NISCO.SPECIAL_VARIETIES" ) ;
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
gGPTHKADD = db . Query < SPECIAL_VARIETIES > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetSPECIAL_VARIETIES 报错" , ex ) ;
}
return gGPTHKADD ;
}
/// <summary>
/// 优先订单
/// </summary>
/// <returns></returns>
public IList < TB_APPOINT_ORDER > GetTB_APPOINT_ORDER ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < TB_APPOINT_ORDER > gLTB_APPOINT_ORDER = null ;
//查询可用订单以及常用字段
try
{
strSql . AppendLine ( "SELECT * FROM TB_APPOINT_ORDER" ) ;
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
gLTB_APPOINT_ORDER = db . Query < TB_APPOINT_ORDER > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "gLTB_APPOINT_ORDER 报错" , ex ) ;
}
return gLTB_APPOINT_ORDER ;
}
/// <summary>
/// 镍系钢种 修磨表
/// </summary>
/// <returns></returns>
public IList < FB_SLAB_001 > GetFB_SLAB_001 ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < FB_SLAB_001 > gLFB_SLAB_001 = null ;
//查询可用订单以及常用字段
try
{
strSql . AppendLine ( "SELECT * FROM NISCO.FB_SLAB_001" ) ;
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
gLFB_SLAB_001 = db . Query < FB_SLAB_001 > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetFB_SLAB_001 报错" , ex ) ;
}
return gLFB_SLAB_001 ;
}
public TB_CNF_C1 getTB_CNF_C1 ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < TB_CNF_C1 > gLTB_CNF_C1 = null ;
//查询可用订单以及常用字段
try
{
strSql . AppendLine ( "SELECT * FROM TB_CNF_C1 " ) ;
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
gLTB_CNF_C1 = db . Query < TB_CNF_C1 > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "gLTB_CNF_C1 报错" , ex ) ;
}
return gLTB_CNF_C1 . FirstOrDefault ( ) ;
}
public IList < FP_SLAB_ADD > getFP_SLAB_ADD ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < FP_SLAB_ADD > gLFP_SLAB_ADD = null ;
//查询可用订单以及常用字段
try
{
strSql . AppendLine ( "SELECT * FROM Nisco.FP_SLAB_ADD where slab_type in ('CZC1''CZC2','CZC3') " ) ;
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
gLFP_SLAB_ADD = db . Query < FP_SLAB_ADD > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "getFP_SLAB_ADD 报错" , ex ) ;
}
return gLFP_SLAB_ADD ;
}
/// <summary>
/// 在途的仓库
/// </summary>
/// <returns></returns>
public IList < CP_MOVE_SLT > GetCPMOVESLT ( string strWHere )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
DataTable dtCheck = new DataTable ( ) ;
IList < CP_MOVE_SLT > ltCP_MOVE_SLT = new List < CP_MOVE_SLT > ( ) ;
strSql . AppendLine ( "SELECT * FROM( " ) ;
strSql . AppendLine ( "SELECT " ) ;
strSql . AppendLine ( "rank() over(partition BY CMS.MAT_NO order by CMS.SND_TIME desc) rk ,CMS.* " ) ;
strSql . AppendLine ( "FROM NISCO.CP_MOVE_SLT CMS " ) ;
strSql . AppendLine ( " WHERE CMS.MAT_NO IN ( " ) ;
strSql . AppendLine ( " SELECT DISTINCT A.SLAB_NO " ) ;
strSql . AppendLine ( "FROM NISCO.FP_SLAB A " ) ;
strSql . AppendLine ( "WHERE 1 = 1 " ) ;
strSql . AppendLine ( " AND A.PROC_CD = 'CAC' " ) ;
strSql . AppendLine ( " AND(A.PROC_CD = 'CAC' OR " ) ;
strSql . AppendLine ( " ((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.REASON_CD NOT IN('1080','2014','2015','2018','2026','3014','5011','5013','8081') AND EST_CD IS NULL) < 1)" ) ;
strSql . AppendLine ( " AND A.PROC_CD='CAD' ) " ) ;
strSql . AppendLine ( " AND((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.EST_CD IN ( '0002','0003','2010') ) < 1 )" ) ;
//strSql.AppendLine(" AND A.SLAB_NO!='2320297902' ");
strSql . AppendLine ( " AND A.CUR_INV in ('00','C7','52','ZZ','HC') " ) ;
//strSql.AppendLine(" AND A.PROC_CD = 'CAC' ");
strSql . AppendLine ( " AND A.ORD_FL = '2' " ) ;
strSql . AppendLine ( " AND A.REC_STS = '2' " ) ;
strSql . AppendLine ( " AND NVL(A.OUT_PLT_CD,'9') <> '0' " ) ;
strSql . AppendLine ( " AND NVL(A.PLAN_SLAB_CUT_FL,'N') = 'N' " ) ;
strSql . AppendLine ( " AND A.WGT > 0 " ) ;
strSql . AppendLine ( " AND A.WID > 1600 " ) ;
strSql . AppendLine ( " AND A.LEN > 3900 " ) ;
strSql . AppendLine ( " AND NVL(A.PLT,'99') IN ('B1','BZ') " ) ;
strSql . AppendLine ( " AND NVL(A.QUALITY_UPD_GRD,'N') <> 'N' " ) ;
strSql . AppendLine ( " AND NVL(A.OUT_PLT_CD,'9') <> '0' " ) ;
strSql . AppendLine ( " AND SLAB_NO NOT IN ( SELECT SLAB_NO FROM NISCO.CP_SLAB_MOVE_PLAN WHERE PRC_STS = 'A' AND TO_INV in('ZB','HB') ) " ) ;
strSql . AppendLine ( " AND not ((substr(A.LOC,1,7) in ('S7I1701','S7I1702','S7I1703','S7I1801','S7I1802','S7I1803') or substr(A.LOC,1,5) in ('S3E04','S3E05','S3E06') ) and CUR_INV='00') " ) ;
strSql . AppendLine ( " AND NVL(A.PLAN_MILL_PLT , ' ') LIKE 'C1' || '%' " ) ;
//3.11.5.4.9 订单有低倍要求并且物料低倍等级不合格的板坯,不允许替代。
//strSql.AppendLine(" AND ( ( (SELECT COUNT(*) FROM NISCO.qp_qlty_slab_lowpower Q WHERE Q.ORD_NO =A.ORD_NO AND Q.ORD_ITEM=A.ORD_ITEM) >= 1) AND A.QUALITY_GRD = '4' AND ((SELECT COUNT(*) FROM NISCO.CP_SLAB_DELI_DET C WHERE C.SLAB_NO = A.SLAB_NO AND C.EST_CD = '0001' AND C.REASON_CD = '3010' AND C.REASON_COMMENT = '低倍不符合要求') < 1 ))");
strSql . AppendLine ( " AND (select COUNT(*) from nisco.fp_slab_C3 WHERE SLAB_NO=A.SLAB_NO AND FL='True')<1" ) ;
strSql . AppendLine ( " AND (select COUNT(*) from nisco.fp_slab_C2 WHERE SLAB_NO=A.SLAB_NO AND FL='1')<1" ) ;
//P_SLAB_DELI_DET表中字段EST_CD是5或者6开头是协议板。
//strSql.AppendLine(" ORDER BY A.LOC DESC, A.SLAB_NO ASC ");
//strSql.AppendLine(strWHerePlate);
strSql . AppendLine ( ") " ) ;
strSql . AppendLine ( " ) WHERE rk = 1 " ) ;
try
{
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db_sur" ) )
{
ltCP_MOVE_SLT = db . Query < CP_MOVE_SLT > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "GetCPMOVESLT 报错 : " , ex ) ;
}
return ltCP_MOVE_SLT ;
}
public IList < TB_YARD_SPE > getTB_YARD_SPE ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < TB_YARD_SPE > gLTB_YARD_SPE = null ;
//查询可用订单以及常用字段
try
{
strSql . AppendLine ( "SELECT * FROM TB_YARD_SPE " ) ;
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
gLTB_YARD_SPE = db . Query < TB_YARD_SPE > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "getTB_ONLY_TYPE 报错" , ex ) ;
}
return gLTB_YARD_SPE ;
}
//不可替代订单
public IList < TB_SLAB_ORD_SPE > getTB_SLAB_ORD_SPE ( )
{
StringBuilder strSql = new StringBuilder ( ) ; //声明拼接Sql语句变量
IList < TB_SLAB_ORD_SPE > gLTB_SLAB_ORD_SPE = null ;
//查询可用订单以及常用字段
try
{
strSql . AppendLine ( "SELECT ORD_NO,ORD_ITEM FROM TB_SLAB_ORD_SPE " ) ;
//开启数据库连接查询数据
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
gLTB_SLAB_ORD_SPE = db . Query < TB_SLAB_ORD_SPE > ( strSql . ToString ( ) ) ;
}
}
catch ( Exception ex )
{
logger . Error ( "getFP_SLAB_ADD 报错" , ex ) ;
}
return gLTB_SLAB_ORD_SPE ;
}
public static void SaveORDER ( IList < BP_ORDER_C1 > ltFSD )
{
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
try
{
//因为是同时操作两个表, 所以开启事务
db . BeginTransaction ( ) ;
//db.Execute("DELETE FROM FP_SLAB_DES WHERE PLT='C2' AND HAN_RSL IS NULL");
db . Insert < BP_ORDER_C1 > ( ltFSD ) ;
db . Commit ( ) ;
}
catch ( Exception ex )
{
//数据如果发生错误则回滚
db . Rollback ( ) ;
logger . ErrorFormat ( "存储错误!信息:{0}" , ex . ToString ( ) ) ;
}
}
}
# endregion
#region 存储数据
public static void SaveFSD ( IList < FP_SLAB_DES > ltFSD )
{
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
try
{
//因为是同时操作两个表, 所以开启事务
if ( ltFSD . Count ( ) > 0 )
{
db . BeginTransaction ( ) ;
db . Execute ( "DELETE FROM FP_SLAB_DES WHERE PLT='C1' AND SLAB_NO = '" + ltFSD . FirstOrDefault ( ) . SLAB_NO + "'" ) ;
int intDB = db . Insert < FP_SLAB_DES > ( ltFSD ) ;
db . Commit ( ) ;
#region PDO
db . BeginTransaction ( ) ;
FP_SLAB_DES supData = new FP_SLAB_DES ( ) ;
supData = db . Query < FP_SLAB_DES > ( "SELECT * FROM FP_SLAB_DES " +
"WHERE PLT='C1' " +
" AND SLAB_NO = '" + ltFSD . FirstOrDefault ( ) . SLAB_NO + "'" +
" AND BLOCK_SEQ = '00' AND SEQ = '00' AND SLAB_CUT_SEQ ='01'" ) . FirstOrDefault ( ) ;
if ( supData ! = null )
{
TBDIPDO InsertPDO = GetTBDIBKDPDO ( supData ) ;
db . Insert < TBDIPDO > ( InsertPDO ) ;
DateTime date = DateTime . Now ;
List < FP_SLAB_DES > ltFSD2 = db . Query < FP_SLAB_DES > ( "SELECT * FROM FP_SLAB_DES " +
"WHERE PLT='C1' " +
" AND SLAB_NO = '" + ltFSD . FirstOrDefault ( ) . SLAB_NO + "'" ) . ToList ( ) ;
foreach ( FP_SLAB_DES item in ltFSD2 )
{
FP_SLAB_DES_HIS fP_SLAB_DES_HIS = new FP_SLAB_DES_HIS ( ) ;
fP_SLAB_DES_HIS = CopyToModel < FP_SLAB_DES , FP_SLAB_DES_HIS > ( item ) ;
fP_SLAB_DES_HIS . SUB_TIME = date . ToString ( ) ;
db . Insert < FP_SLAB_DES_HIS > ( fP_SLAB_DES_HIS ) ;
}
}
db . Commit ( ) ;
# endregion
}
}
catch ( Exception ex )
{
//数据如果发生错误则回滚
db . Rollback ( ) ;
logger . ErrorFormat ( "存储错误!信息:{0}" , ex . ToString ( ) ) ;
}
}
}
public static FP_SLAB_DES_HIS CopyToModel < FP_SLAB_DES , FP_SLAB_DES_HIS > ( FP_SLAB_DES source )
{
FP_SLAB_DES_HIS model = default ( FP_SLAB_DES_HIS ) ;
PropertyInfo [ ] pi = typeof ( FP_SLAB_DES_HIS ) . GetProperties ( ) ;
PropertyInfo [ ] pi1 = typeof ( FP_SLAB_DES ) . GetProperties ( ) ;
model = Activator . CreateInstance < FP_SLAB_DES_HIS > ( ) ;
for ( int i = 0 ; i < pi . Length ; i + + )
{
for ( int k = 0 ; k < pi1 . Length ; k + + )
{
if ( pi [ i ] . Name = = pi1 [ k ] . Name )
{
pi [ i ] . SetValue ( model , pi1 [ k ] . GetValue ( source , null ) , null ) ;
break ;
}
}
}
return model ;
}
/// <summary>
/// 删除数据
/// </summary>
/// <param name="ltFSD"></param>
public static void DeleteSlab ( string DeleteSlab )
{
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
try
{
//因为是同时操作两个表, 所以开启事务
db . BeginTransaction ( ) ;
db . Execute ( "DELETE FROM FP_SLAB_DES WHERE PLT='C1' AND slab_no='" + DeleteSlab + "'" ) ;
//挂回原订单数据删除
//db.Execute("DELETE FROM FP_SLAB_DES WHERE PLT='C3' AND HAN_RSL IS NULL AND SUB_KIND='1'");
db . Commit ( ) ;
}
catch ( Exception ex )
{
//数据如果发生错误则回滚
db . Rollback ( ) ;
logger . ErrorFormat ( "删除错误!信息:{0}" , ex . ToString ( ) ) ;
}
}
}
/// <summary>
/// 删除数据
/// </summary>
/// <param name="ltFSD"></param>
public static void DeleteFSD ( )
{
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
try
{
//因为是同时操作两个表, 所以开启事务
db . BeginTransaction ( ) ;
db . Execute ( "DELETE FROM FP_SLAB_DES WHERE PLT='C1' AND HAN_RSL IS NULL " ) ;
//挂回原订单数据删除
//db.Execute("DELETE FROM FP_SLAB_DES WHERE PLT='C3' AND HAN_RSL IS NULL AND SUB_KIND='1'");
db . Commit ( ) ;
}
catch ( Exception ex )
{
//数据如果发生错误则回滚
db . Rollback ( ) ;
logger . ErrorFormat ( "删除错误!信息:{0}" , ex . ToString ( ) ) ;
}
}
}
/// <summary>
/// 删除数据挂回原订单
/// </summary>
/// <param name="ltFSD"></param>
public static void DeleteFSDBackOrder ( )
{
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
try
{
//因为是同时操作两个表, 所以开启事务
db . BeginTransaction ( ) ;
//db.Execute("DELETE FROM FP_SLAB_DES WHERE PLT='C3' AND HAN_RSL IS NULL ");
//挂回原订单数据删除
db . Execute ( "DELETE FROM FP_SLAB_DES WHERE PLT='C1' AND HAN_RSL IS NULL AND SUB_KIND='1'" ) ;
db . Commit ( ) ;
}
catch ( Exception ex )
{
//数据如果发生错误则回滚
db . Rollback ( ) ;
logger . ErrorFormat ( "删除错误!信息:{0}" , ex . ToString ( ) ) ;
}
}
}
/// <summary>
/// 删除数据炼钢缓冲区
/// </summary>
/// <param name="ltFSD"></param>
public static void DeleteFSDBuffer ( )
{
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
try
{
//因为是同时操作两个表, 所以开启事务
db . BeginTransaction ( ) ;
//db.Execute("DELETE FROM FP_SLAB_DES WHERE PLT='C3' AND HAN_RSL IS NULL ");
//挂回原订单数据删除
db . Execute ( "DELETE FROM FP_SLAB_DES WHERE PLT='C1' AND HAN_RSL IS NULL AND SUB_KIND='2'" ) ;
db . Commit ( ) ;
}
catch ( Exception ex )
{
//数据如果发生错误则回滚
db . Rollback ( ) ;
logger . ErrorFormat ( "删除错误!信息:{0}" , ex . ToString ( ) ) ;
}
}
}
/// <summary>
/// 删除数据自动匹配
/// </summary>
/// <param name="ltFSD"></param>
public static void DeleteFSDAuto ( )
{
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
try
{
//因为是同时操作两个表, 所以开启事务
db . BeginTransaction ( ) ;
//db.Execute("DELETE FROM FP_SLAB_DES WHERE PLT='C3' AND HAN_RSL IS NULL ");
//挂回原订单数据删除
db . Execute ( "DELETE FROM FP_SLAB_DES WHERE PLT='C3' AND HAN_RSL IS NULL AND SUB_KIND='3'" ) ;
db . Commit ( ) ;
}
catch ( Exception ex )
{
//数据如果发生错误则回滚
db . Rollback ( ) ;
logger . ErrorFormat ( "删除错误!信息:{0}" , ex . ToString ( ) ) ;
}
}
}
public static void SaveFSD_TEST ( IList < FP_TEST_SLAB_DES > ltFSD )
{
using ( IDbContext db = ObjectContainer . GetObject < IDbContext > ( "db" ) )
{
try
{
//因为是同时操作两个表, 所以开启事务
db . BeginTransaction ( ) ;
db . Insert < FP_TEST_SLAB_DES > ( ltFSD ) ;
db . Commit ( ) ;
}
catch ( Exception ex )
{
//数据如果发生错误则回滚
db . Rollback ( ) ;
logger . ErrorFormat ( "存储错误!信息:{0}" , ex . ToString ( ) ) ;
}
}
}
# endregion
#region 方法
/// <summary>
/// 整理 PDO 实体类数据
/// </summary>
/// <param name="prP_PLATE">钢板数据</param>
/// <param name="prorder">订单数据库</param>
/// <returns></returns>
public static TBDIPDO GetTBDIBKDPDO ( FP_SLAB_DES prSlabDes )
{
TBDIPDO Result = new TBDIPDO ( ) ;
//Data字段: 数值型、字符型都是后补空格
Result . TIMESTAMP = GetTimeStamp ( ) ; //TIMESTAMP: 1970.1.1 8:00:00 至当前时间的毫秒数
Result . SERIALNO = "0" ; //Serialno : 默认0, 对于TIMESTAMP: 重复时的区分号
Result . QUEUEID = "BKDMES000" ; //: 主键, BKDYC0001 , 有时序先后顺序的必须用同一个QUEUEID
Result . HEADER = "" ; // 未使用
//Result.DATA = "";// 前10位记录FORMID(例如: BKD001 / BKD002)
Result . STATUS = "N" ; // 发送方写入N, 读取成功后变0, 异常变1
Result . PROCESSTIME = DateTime . Now . ToString ( "yyyyMMddHHmmss" ) ; //:读取时间
Result . DESCRIPTION = "" ; //:读取异常备注
StringBuilder strData = new StringBuilder ( ) ;
strData . Append ( ( "BKDMES011" ) . PadRight ( 10 ) ) ; // FORMID: 10位 , BKDMES011 固定
strData . Append ( prSlabDes . ID . PadRight ( 12 ) ) ; // 业务ID号 NUMBER(12) 流水号,需要在应答中带回
strData . Append ( prSlabDes . PLT . PadRight ( 2 ) ) ; // 工厂代码: VARCHAR2(2), C1 / C2 / C3
strData . Append ( prSlabDes . SLAB_NO . PadRight ( 10 ) ) ; // 板坯号: VARCHAR2(10)
Result . DATA = strData . ToString ( ) ;
return Result ;
}
/// <summary>
/// 获取时间戳
/// </summary>
/// <returns></returns>
public static string GetTimeStamp ( )
{
TimeSpan ts = DateTime . UtcNow - new DateTime ( 1970 , 1 , 1 , 8 , 0 , 0 , 0 ) ;
return Convert . ToInt64 ( ts . TotalMilliseconds ) . ToString ( ) ;
}
# endregion
}
}