[HttpPost]
public void INS_AMM_UOC_UOCD()
{
HttpContext c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
//OracleConnection conn = new OracleConnection(DBService.ConnectionString(("AMMEU"));//
OracleConnection conn = new OracleConnection(DBService.ConnectionString((DBLINK)));//
OracleCommand cmd = new OracleCommand();
DataSet ds = null;
//取得匯入檔案名稱 of filefield
string Tmp_FName = nvc["sub_FName"];
string Tmp_in_FName="", Tmp_out_FName="";
Workbook wk = null;
MemoryStream stream = new MemoryStream();
Worksheet ws=null;
HttpRequest Request = HttpContext.Current.Request;
var response = this.Request.CreateResponse();
//string file_Name = Tmp_in_FName;
string FILEDT = DateTime.Now.ToString("yyyy/MM/dd");
string Tmp_RtnMsg = "";
string Tmp_RtnMsg1 = "";
string Tmp_Sql = "", Tmp_Str = "";
int Tmp_cnt = 0;
int Tmp_rowcnt = 0;
HttpCookie MyCookie = new HttpCookie("Rtn_Msg");
conn.Open();
cmd.Connection = conn;
try
{
foreach (string cur_FName in Request.Files)
{
string fileType = Request.Files[cur_FName].ContentType;
Stream Tmp_in_Stream = Request.Files[cur_FName].InputStream;
Tmp_in_FName = Path.GetFileName(Request.Files[cur_FName].FileName);
Tmp_out_FName = "Log_" + Tmp_in_FName;
int fileSize = Request.Files[cur_FName].ContentLength;
byte[] fileRcrd = new byte[fileSize];
//更新資料庫欄位值
//匯入的 xls
wk = new Workbook();
wk.LoadFromStream(Tmp_in_Stream);
ws = wk.Worksheets[0];
/*
//共 43 欄
//string[] outFieldArray = { 提領編號、交修單號、維修交修單號、工單號碼、序號、
展BOMM件號、展BOM件號名稱、圖號、索引、上層件號、
SBOM件號、SBOM件號中文名稱、規範(需求)件號、提料件號、每具數量、
需求數量、需求單位、更換情形、故障現象說明、可修件狀態(Y/N)、
可修件更換原因說明、超量原因、子件工單號碼、子件序號、特製件說明、
經常更換、配換率、QPEI、拆挪LRU交修單號、拆挪子件序號、
LCN、ALC、NHA_LCN、NHA_ALC、EIAC、
EI_LCN、EI_ALC、SBOM廠碼、規範廠碼、SBOM單位、
技令號碼、WP、SBOM件號英文名稱};
*/
string Tmp_OGONOAF, Tmp_RPNOAF, Tmp_MRPNOAF, Tmp_SAPNO, Tmp_SN;//序號: Tmp_SN
string Tmp_SRO_PN, Tmp_SRO_C_NM, Tmp_FIG, Tmp_IND, Tmp_NHA_PN;
string Tmp_SBOM_PN, Tmp_SBOM_C_NM, Tmp_RQPN, Tmp_FACPN, Tmp_QPA;
string Tmp_NQTYAH, Tmp_C_UNIT, Tmp_RSTHAH, Tmp_FRMK, Tmp_FASTAT;
string Tmp_FACHRN, Tmp_OVERAHD, Tmp_FRNOAF_S, Tmp_SUB_SN, Tmp_NOTE; //子件序號: Tmp_SUB_SN
string Tmp_RATE_MORE, Tmp_RATE, Tmp_QPEI, Tmp_RMRPNOAF, Tmp_RMSBSN;
string Tmp_LCN, Tmp_ALC, Tmp_NHA_LCN, Tmp_NHA_ALC, Tmp_EIAC;
string Tmp_EI_LCN, Tmp_EI_ALC, Tmp_SBOM_CAGE, Tmp_RQPN_CAGE, Tmp_SBOM_UNIT;
string Tmp_TMNOXX, Tmp_WP, Tmp_SBOM_PN_E_NM,Tmp_FACPN_UNIT;
string Tmp_PN,Tmp_CAGE,Tmp_NSN,Tmp_AMMNO;
string Tmp_ITMUOCD, Tmp_NEXT_ITMUOCD;
string Tmp_AMM_UOC_PK, Tmp_AMM_UOCD_PK;
//請料者,請料日期,狀態,可修狀態
string Tmp_EMPLYID = User.Identity.Name;
string Tmp_RDUOCD = DateTime.Now.ToString("yyyy/MM/dd"); ;
string Tmp_STAUOCD = "A";
//List<String> Tmp_AMM_UOC_LIST 儲存 AMM_UOC.PK
List<String> Tmp_AMM_UOC_LIST = new List<string>();
//STEP1 檢核 XLS 欄位名稱資料是否正確 -取得 標題 of 工號,處置說明
int cur_row=1;
Tmp_OGONOAF = ws.Range[myfunc.GetExcelPos(0, cur_row)].Value.Trim();
Tmp_RPNOAF = ws.Range[myfunc.GetExcelPos(1, cur_row)].Value.Trim();
Tmp_MRPNOAF = ws.Range[myfunc.GetExcelPos(2, cur_row)].Value.Trim();
Tmp_SAPNO = ws.Range[myfunc.GetExcelPos(3, cur_row)].Value.Trim();
Tmp_SN = ws.Range[myfunc.GetExcelPos(4, cur_row)].Value.Trim(); //序號
Tmp_SRO_PN= ws.Range[myfunc.GetExcelPos(5, cur_row)].Value.Trim();
Tmp_SRO_C_NM= ws.Range[myfunc.GetExcelPos(6, cur_row)].Value.Trim();
Tmp_FIG= ws.Range[myfunc.GetExcelPos(7, cur_row)].Value.Trim();
Tmp_IND= ws.Range[myfunc.GetExcelPos(8, cur_row)].Value.Trim();
Tmp_NHA_PN= ws.Range[myfunc.GetExcelPos(9, cur_row)].Value.Trim();
Tmp_SBOM_PN=ws.Range[myfunc.GetExcelPos(10, cur_row)].Value.Trim();
Tmp_SBOM_C_NM=ws.Range[myfunc.GetExcelPos(11, cur_row)].Value.Trim();
Tmp_RQPN=ws.Range[myfunc.GetExcelPos(12, cur_row)].Value.Trim();
Tmp_FACPN=ws.Range[myfunc.GetExcelPos(13, cur_row)].Value.Trim();
Tmp_QPA=ws.Range[myfunc.GetExcelPos(14, cur_row)].Value.Trim(); // (QPA,每具數量)
Tmp_NQTYAH=ws.Range[myfunc.GetExcelPos(15, cur_row)].Value.Trim();
Tmp_C_UNIT=ws.Range[myfunc.GetExcelPos(16, cur_row)].Value.Trim();
Tmp_RSTHAH=ws.Range[myfunc.GetExcelPos(17, cur_row)].Value.Trim();
Tmp_FRMK=ws.Range[myfunc.GetExcelPos(18, cur_row)].Value.Trim();
Tmp_FASTAT=ws.Range[myfunc.GetExcelPos(19, cur_row)].Value.Trim(); //可修件(y/n)
Tmp_FACHRN=ws.Range[myfunc.GetExcelPos(20, cur_row)].Value.Trim();
Tmp_OVERAHD=ws.Range[myfunc.GetExcelPos(21, cur_row)].Value.Trim();
Tmp_FRNOAF_S=ws.Range[myfunc.GetExcelPos(22, cur_row)].Value.Trim(); //子件工單號碼
Tmp_SUB_SN=ws.Range[myfunc.GetExcelPos(23, cur_row)].Value.Trim(); //子件序號
Tmp_NOTE=ws.Range[myfunc.GetExcelPos(24, cur_row)].Value.Trim(); //特製件說明
Tmp_RATE_MORE =ws.Range[myfunc.GetExcelPos(25, cur_row)].Value.Trim();
Tmp_RATE=ws.Range[myfunc.GetExcelPos(26, cur_row)].Value.Trim();
Tmp_QPEI=ws.Range[myfunc.GetExcelPos(27, cur_row)].Value.Trim();
Tmp_RMRPNOAF=ws.Range[myfunc.GetExcelPos(28, cur_row)].Value.Trim();
Tmp_RMSBSN=ws.Range[myfunc.GetExcelPos(29, cur_row)].Value.Trim(); //拆挪子件序號
Tmp_LCN= ws.Range[myfunc.GetExcelPos(30, cur_row)].Value.Trim();
Tmp_ALC =ws.Range[myfunc.GetExcelPos(31, cur_row)].Value.Trim();
Tmp_NHA_LCN=ws.Range[myfunc.GetExcelPos(32, cur_row)].Value.Trim();
Tmp_NHA_ALC=ws.Range[myfunc.GetExcelPos(33, cur_row)].Value.Trim();
Tmp_EIAC=ws.Range[myfunc.GetExcelPos(34, cur_row)].Value.Trim(); //EIAC
Tmp_EI_LCN=ws.Range[myfunc.GetExcelPos(35, cur_row)].Value.Trim();
Tmp_EI_ALC=ws.Range[myfunc.GetExcelPos(36, cur_row)].Value.Trim();
Tmp_SBOM_CAGE=ws.Range[myfunc.GetExcelPos(37, cur_row)].Value.Trim();
Tmp_RQPN_CAGE=ws.Range[myfunc.GetExcelPos(38, cur_row)].Value.Trim();
Tmp_SBOM_UNIT=ws.Range[myfunc.GetExcelPos(39, cur_row)].Value.Trim(); //SBOM單位
Tmp_TMNOXX=ws.Range[myfunc.GetExcelPos(40, cur_row)].Value.Trim();
Tmp_WP=ws.Range[myfunc.GetExcelPos(41, cur_row)].Value.Trim();
Tmp_SBOM_PN_E_NM=ws.Range[myfunc.GetExcelPos(42, cur_row)].Value.Trim();
Tmp_FACPN_UNIT = ws.Range[myfunc.GetExcelPos(43, cur_row)].Value.Trim(); //撥發單位
//xls 欄位名稱有問題
if ( (Tmp_OGONOAF != "提領編號") || (Tmp_RPNOAF != "交修單號") || ( Tmp_MRPNOAF!= "維修交修單號") || ( Tmp_SAPNO!= "工單號碼") || ( Tmp_SN!= "序號") ||
(Tmp_SRO_PN!= "展BOM件號") || ( Tmp_SRO_C_NM!= "展BOM件號名稱") || ( Tmp_FIG!= "圖號") || ( Tmp_IND!= "索引") || ( Tmp_NHA_PN!= "上層件號") ||
(Tmp_SBOM_PN!= "SBOM件號") || ( Tmp_SBOM_C_NM!= "SBOM件號中文名稱") || ( Tmp_RQPN!= "規範件號") || ( Tmp_FACPN!= "提料件號") || ( Tmp_QPA!= "每具數量") ||
(Tmp_NQTYAH!= "需求數量") || ( Tmp_C_UNIT!= "需求單位") || ( Tmp_RSTHAH!= "更換情形") || ( Tmp_FRMK!= "故障現象說明") || ( Tmp_FASTAT!= "可修件(Y/N)") ||
(Tmp_FACHRN != "可修件更換原因說明") || ( Tmp_OVERAHD!= "超量原因") || ( Tmp_FRNOAF_S!= "子件工單號碼") || ( Tmp_SUB_SN!= "子件序號") || ( Tmp_NOTE!= "特製件說明") ||
(Tmp_RATE_MORE != "經常更換") || ( Tmp_RATE!= "配換率") || ( Tmp_QPEI!= "QPEI") || ( Tmp_RMRPNOAF!= "拆挪LRU交修單號") || ( Tmp_RMSBSN!= "拆挪子件序號") ||
(Tmp_LCN != "LCN") || ( Tmp_ALC!= "ALC") || ( Tmp_NHA_LCN!= "NHA_LCN") || ( Tmp_NHA_ALC!= "NHA_ALC") || ( Tmp_EIAC!= "EIAC") ||
(Tmp_EI_LCN != "EI_LCN") || ( Tmp_EI_ALC!= "EI_ALC") || ( Tmp_SBOM_CAGE!= "SBOM廠碼") || ( Tmp_RQPN_CAGE!= "規範廠碼") || ( Tmp_SBOM_UNIT!= "SBOM單位") ||
(Tmp_TMNOXX != "技令號碼") || ( Tmp_WP!= "WP") || ( Tmp_SBOM_PN_E_NM!= "SBOM件號英文名稱") || ( Tmp_FACPN_UNIT!= "撥發單位") )
{
Tmp_RtnMsg = "匯入檔案欄位名稱必需如下:<br>";
//(Tmp_DTSOR != "資料來源") if (Tmp_OGONOAF != "拆檢提領編號") if (Tmp_NGONOAF != "維修提領編號") if (Tmp_RPNOAF != "拆檢交修單號") if (Tmp_MRPNOAF != "維修約交修單號") if
if (Tmp_OGONOAF != "提領編號")
Tmp_RtnMsg = Tmp_RtnMsg + "第1欄欄位名稱: [提領編號];";
if (Tmp_RPNOAF != "交修單號")
Tmp_RtnMsg = Tmp_RtnMsg + "第2欄欄位名稱: [交修單號];";
if (Tmp_MRPNOAF != "維修交修單號")
Tmp_RtnMsg = Tmp_RtnMsg + "第3欄欄位名稱: [維修交修單號];";
if (Tmp_SAPNO != "工單號碼")
Tmp_RtnMsg = Tmp_RtnMsg + "第4欄欄位名稱: [工單號碼];";
if (Tmp_SN != "序號")
Tmp_RtnMsg = Tmp_RtnMsg + "第5欄欄位名稱: [序號];";
if (Tmp_SRO_PN != "展BOM件號")
Tmp_RtnMsg = Tmp_RtnMsg + "第6欄欄位名稱: [展BOM件號];";
if (Tmp_SRO_C_NM != "展BOM件號名稱")
Tmp_RtnMsg = Tmp_RtnMsg + "第7欄欄位名稱: [展BOM件號名稱];";
if (Tmp_FIG != "圖號")
Tmp_RtnMsg = Tmp_RtnMsg + "第8欄欄位名稱: [圖號];";
if (Tmp_IND != "索引")
Tmp_RtnMsg = Tmp_RtnMsg + "第9欄欄位名稱: [索引];";
if (Tmp_NHA_PN != "上層件號")
Tmp_RtnMsg = Tmp_RtnMsg + "第10欄欄位名稱: [上層件號];";
if (Tmp_SBOM_PN != "SBOM件號")
Tmp_RtnMsg = Tmp_RtnMsg + "第11欄欄位名稱: [SBOM件號];";
if (Tmp_SBOM_C_NM != "SBOM件號中文名稱")
Tmp_RtnMsg = Tmp_RtnMsg + "第12欄欄位名稱: [SBOM件號中文名稱];";
if (Tmp_RQPN != "規範件號")
Tmp_RtnMsg = Tmp_RtnMsg + "第13欄欄位名稱: [規範件號];";
if (Tmp_FACPN != "提料件號")
Tmp_RtnMsg = Tmp_RtnMsg + "第14欄欄位名稱: [提料件號];";
if (Tmp_QPA != "每具數量")
Tmp_RtnMsg = Tmp_RtnMsg + "第15欄欄位名稱: [每具數量];";
if (Tmp_NQTYAH != "需求數量")
Tmp_RtnMsg = Tmp_RtnMsg + "第16欄欄位名稱: [需求數量];";
if (Tmp_C_UNIT != "需求單位")
Tmp_RtnMsg = Tmp_RtnMsg + "第17欄欄位名稱: [需求單位];";
if (Tmp_RSTHAH != "更換情形")
Tmp_RtnMsg = Tmp_RtnMsg + "第18欄欄位名稱: [更換情形];";
if (Tmp_FRMK != "故障現象說明")
Tmp_RtnMsg = Tmp_RtnMsg + "第19欄欄位名稱: [故障現象說明];";
if (Tmp_FASTAT != "可修件(Y/N)")
Tmp_RtnMsg = Tmp_RtnMsg + "第20欄欄位名稱: [可修件(Y/N)];";
if (Tmp_FACHRN != "可修件更換原因說明")
Tmp_RtnMsg = Tmp_RtnMsg + "第21欄欄位名稱: [可修件更換原因說明];";
if (Tmp_OVERAHD != "超量原因")
Tmp_RtnMsg = Tmp_RtnMsg + "第22欄欄位名稱: [超量原因];";
if (Tmp_FRNOAF_S != "子件工單號碼")
Tmp_RtnMsg = Tmp_RtnMsg + "第23欄欄位名稱: [子件工單號碼];";
if (Tmp_SUB_SN != "子件序號")
Tmp_RtnMsg = Tmp_RtnMsg + "第24欄欄位名稱: [子件序號];";
if (Tmp_NOTE != "特製件說明")
Tmp_RtnMsg = Tmp_RtnMsg + "第25欄欄位名稱: [特製件說明];";
if (Tmp_RATE_MORE != "經常更換")
Tmp_RtnMsg = Tmp_RtnMsg + "第26欄欄位名稱: [經常更換];";
if (Tmp_RATE != "配換率")
Tmp_RtnMsg = Tmp_RtnMsg + "第27欄欄位名稱: [配換率];";
if (Tmp_QPEI != "QPEI")
Tmp_RtnMsg = Tmp_RtnMsg + "第28欄欄位名稱: [QPEI];";
if (Tmp_RMRPNOAF != "拆挪LRU交修單號")
Tmp_RtnMsg = Tmp_RtnMsg + "第29欄欄位名稱: [拆挪LRU交修單號];";
if (Tmp_RMSBSN != "拆挪子件序號")
Tmp_RtnMsg = Tmp_RtnMsg + "第30欄欄位名稱: [拆挪子件序號];";
if (Tmp_LCN != "LCN")
Tmp_RtnMsg = Tmp_RtnMsg + "第31欄欄位名稱: [LCN];";
if (Tmp_ALC != "ALC")
Tmp_RtnMsg = Tmp_RtnMsg + "第32欄欄位名稱: [ALC];";
if (Tmp_NHA_LCN != "NHA_LCN")
Tmp_RtnMsg = Tmp_RtnMsg + "第33欄欄位名稱: [NHA_LCN];";
if (Tmp_NHA_ALC != "NHA_ALC")
Tmp_RtnMsg = Tmp_RtnMsg + "第34欄欄位名稱: [NHA_ALC];";
if (Tmp_EIAC != "EIAC")
Tmp_RtnMsg = Tmp_RtnMsg + "第35欄欄位名稱: [EIAC];";
if (Tmp_EI_LCN != "EI_LCN")
Tmp_RtnMsg = Tmp_RtnMsg + "第36欄欄位名稱: [EI_LCN];";
if (Tmp_EI_ALC != "EI_ALC")
Tmp_RtnMsg = Tmp_RtnMsg + "第37欄欄位名稱: [EI_ALC];";
if (Tmp_SBOM_CAGE != "SBOM廠碼")
Tmp_RtnMsg = Tmp_RtnMsg + "第38欄欄位名稱: [SBOM廠碼];";
if (Tmp_RQPN_CAGE != "規範廠碼")
Tmp_RtnMsg = Tmp_RtnMsg + "第39欄欄位名稱: [規範廠碼];";
if (Tmp_SBOM_UNIT != "SBOM單位")
Tmp_RtnMsg = Tmp_RtnMsg + "第40欄欄位名稱: [SBOM單位];";
if (Tmp_TMNOXX != "技令號碼")
Tmp_RtnMsg = Tmp_RtnMsg + "第41欄欄位名稱: [技令號碼];";
if (Tmp_WP != "WP")
Tmp_RtnMsg = Tmp_RtnMsg + "第42欄欄位名稱: [WP];";
if (Tmp_SBOM_PN_E_NM != "SBOM件號英文名稱")
Tmp_RtnMsg = Tmp_RtnMsg + "第43欄欄位名稱: [SBOM件號英文名稱];";
if (Tmp_FACPN_UNIT != "撥發單位")
Tmp_RtnMsg = Tmp_RtnMsg + "第44欄欄位名稱: [撥發單位];";
MyCookie.Value = HttpUtility.UrlEncode(Tmp_RtnMsg);
HttpContext.Current.Response.Cookies.Add(MyCookie);
HttpContext.Current.Response.End();
return;
};
//新增一欄位:[匯入結果說明]
ws.Range[myfunc.GetExcelPos(44, 0)].Value = "匯入結果說明";
//STEP2 取得xls.[目前件號].報工資料
// Transaction SQL List - 存放 Transaction 的 SQL
List<string> SQL_List_A = new List<string>();
int RowsCount = ws.LastRow;
//int Tmp_cnt;
for (int i = 0; i < RowsCount; i++)
{
cur_row = cur_row + 1;
Tmp_OGONOAF = ws.Range[myfunc.GetExcelPos(0, cur_row)].Value.Trim(); //提領編號
Tmp_RPNOAF = ws.Range[myfunc.GetExcelPos(1, cur_row)].Value.Trim(); //交修單號
Tmp_MRPNOAF = ws.Range[myfunc.GetExcelPos(2, cur_row)].Value.Trim();
Tmp_SAPNO = ws.Range[myfunc.GetExcelPos(3, cur_row)].Value.Trim();
Tmp_SN = ws.Range[myfunc.GetExcelPos(4, cur_row)].Value.Trim(); //序號: Tmp_SN
Tmp_SRO_PN = ws.Range[myfunc.GetExcelPos(5, cur_row)].Value.Trim();
Tmp_SRO_C_NM = ws.Range[myfunc.GetExcelPos(6, cur_row)].Value.Trim();
Tmp_FIG = ws.Range[myfunc.GetExcelPos(7, cur_row)].Value.Trim();
Tmp_IND = ws.Range[myfunc.GetExcelPos(8, cur_row)].Value.Trim();
Tmp_NHA_PN = ws.Range[myfunc.GetExcelPos(9, cur_row)].Value.Trim();
Tmp_SBOM_PN = ws.Range[myfunc.GetExcelPos(10, cur_row)].Value.Trim();
Tmp_SBOM_C_NM = ws.Range[myfunc.GetExcelPos(11, cur_row)].Value.Trim();
Tmp_RQPN = ws.Range[myfunc.GetExcelPos(12, cur_row)].Value.Trim();
Tmp_FACPN = ws.Range[myfunc.GetExcelPos(13, cur_row)].Value.Trim();
Tmp_QPA = ws.Range[myfunc.GetExcelPos(14, cur_row)].Value.Trim(); //(QPA, 每具數量)
Tmp_NQTYAH = ws.Range[myfunc.GetExcelPos(15, cur_row)].Value.Trim();
Tmp_C_UNIT = ws.Range[myfunc.GetExcelPos(16, cur_row)].Value.Trim();
Tmp_RSTHAH = ws.Range[myfunc.GetExcelPos(17, cur_row)].Value.Trim();
Tmp_FRMK = ws.Range[myfunc.GetExcelPos(18, cur_row)].Value.Trim();
Tmp_FASTAT = ws.Range[myfunc.GetExcelPos(19, cur_row)].Value.Trim(); //可修件(y/n)
Tmp_FACHRN = ws.Range[myfunc.GetExcelPos(20, cur_row)].Value.Trim();
Tmp_OVERAHD = ws.Range[myfunc.GetExcelPos(21, cur_row)].Value.Trim();
Tmp_FRNOAF_S = ws.Range[myfunc.GetExcelPos(22, cur_row)].Value.Trim(); //子件工單號碼
Tmp_SUB_SN = ws.Range[myfunc.GetExcelPos(23, cur_row)].Value.Trim(); //子件序號: Tmp_SUB_SN
Tmp_NOTE = ws.Range[myfunc.GetExcelPos(24, cur_row)].Value.Trim(); //特製件說明
Tmp_RATE_MORE = ws.Range[myfunc.GetExcelPos(25, cur_row)].Value.Trim();
Tmp_RATE = ws.Range[myfunc.GetExcelPos(26, cur_row)].Value.Trim();
Tmp_QPEI = ws.Range[myfunc.GetExcelPos(27, cur_row)].Value.Trim();
Tmp_RMRPNOAF = ws.Range[myfunc.GetExcelPos(28, cur_row)].Value.Trim();
Tmp_RMSBSN = ws.Range[myfunc.GetExcelPos(29, cur_row)].Value.Trim(); //拆挪子件序號
Tmp_LCN = ws.Range[myfunc.GetExcelPos(30, cur_row)].Value.Trim();
Tmp_ALC = ws.Range[myfunc.GetExcelPos(31, cur_row)].Value.Trim();
Tmp_NHA_LCN = ws.Range[myfunc.GetExcelPos(32, cur_row)].Value.Trim();
Tmp_NHA_ALC = ws.Range[myfunc.GetExcelPos(33, cur_row)].Value.Trim();
Tmp_EIAC = ws.Range[myfunc.GetExcelPos(34, cur_row)].Value.Trim(); //EIAC
Tmp_EI_LCN = ws.Range[myfunc.GetExcelPos(35, cur_row)].Value.Trim();
Tmp_EI_ALC = ws.Range[myfunc.GetExcelPos(36, cur_row)].Value.Trim();
Tmp_SBOM_CAGE = ws.Range[myfunc.GetExcelPos(37, cur_row)].Value.Trim();
Tmp_RQPN_CAGE = ws.Range[myfunc.GetExcelPos(38, cur_row)].Value.Trim();
Tmp_SBOM_UNIT = ws.Range[myfunc.GetExcelPos(39, cur_row)].Value.Trim(); //SBOM單位
Tmp_TMNOXX = ws.Range[myfunc.GetExcelPos(40, cur_row)].Value.Trim();
Tmp_WP = ws.Range[myfunc.GetExcelPos(41, cur_row)].Value.Trim();
Tmp_SBOM_PN_E_NM = ws.Range[myfunc.GetExcelPos(42, cur_row)].Value.Trim();
Tmp_FACPN_UNIT = ws.Range[myfunc.GetExcelPos(43, cur_row)].Value.Trim(); //撥發單位
Tmp_PN = Tmp_SBOM_PN;
Tmp_CAGE= Tmp_SBOM_CAGE;
Tmp_AMM_UOC_PK = Tmp_RPNOAF +","+ Tmp_EIAC +","+ Tmp_EI_LCN +","+ Tmp_EI_ALC +","+ Tmp_NHA_LCN +","+ Tmp_NHA_ALC +","+ Tmp_LCN +","+ Tmp_ALC +","+ Tmp_PN;
if (myfunc.checkisnull(Tmp_OGONOAF)) //若[提領編號]空白,則離開
{ break; }
Tmp_Sql=" SELECT COUNT(*) "
+" FROM AMM_FM "
+" WHERE OGONOAF=" + myfunc.AA(Tmp_OGONOAF);
Tmp_cnt = int.Parse(myfunc.SqlValue(Tmp_Sql));
if (Tmp_cnt == 0)
{
ws.Range[myfunc.GetExcelPos(44, cur_row)].Value = "提領編號("+Tmp_OGONOAF +")不存在AMM系統(AMM_FM)";
}
else
{
if (Tmp_rowcnt >= 6)
Tmp_rowcnt = Tmp_rowcnt;
//取得 AMMNO - 由SAPNO 至 AMM_SRO.AMMNO
Tmp_Sql = " SELECT AMMNO "
+ " FROM AMM_SRO "
+ " WHERE SAPNO=" + myfunc.AA(Tmp_SAPNO)
+" AND rownum=1 ";
Tmp_AMMNO = myfunc.SqlValue(Tmp_Sql);
//取得 NSN
Tmp_Sql =" SELECT NSN "
+" FROM SP_NSN@TLS_245 "
+" WHERE PN=" + myfunc.AA(Tmp_PN)
+" AND rownum=1 ";
Tmp_NSN = myfunc.SqlValue(Tmp_Sql);
//更新 AMM_UOC
Tmp_Sql=" SELECT COUNT(*) "
+" FROM AMM_UOC "
+ " WHERE RPNOAF=" + myfunc.AA(Tmp_RPNOAF)
+ " AND EIAC=" + myfunc.AA(Tmp_EIAC)
+ " AND EI_LCN=" + myfunc.AA(Tmp_EI_LCN)
+ " AND EI_ALC=" + myfunc.AA(Tmp_EI_ALC)
+ " AND NHA_LCN=" + myfunc.AA(Tmp_NHA_LCN)
+ " AND NHA_ALC=" + myfunc.AA(Tmp_NHA_ALC)
+ " AND LCN=" + myfunc.AA(Tmp_LCN)
+ " AND ALC=" + myfunc.AA(Tmp_ALC)
+ " AND PN=" + myfunc.AA(Tmp_PN);
Tmp_cnt = myfunc.str2int(myfunc.SqlValue(Tmp_Sql));
if (Tmp_cnt>0)
{
Tmp_Sql = " UPDATE AMM_UOC "
+ " SET AMMNO=" + myfunc.AA(Tmp_AMMNO) + ","
+ " RQPN= " + myfunc.AA(Tmp_RQPN) + ","
+ " FACPN= " + myfunc.AA(Tmp_RQPN) + ","
+ " CAGE= " + myfunc.AA(Tmp_SBOM_CAGE) + ","
+ " NSN= " + myfunc.AA(Tmp_NSN)
+ " WHERE RPNOAF=" + myfunc.AA(Tmp_RPNOAF)
+ " AND EIAC=" + myfunc.AA(Tmp_EIAC)
+ " AND EI_LCN=" + myfunc.AA(Tmp_EI_LCN)
+ " AND EI_ALC=" + myfunc.AA(Tmp_EI_ALC)
+ " AND NHA_LCN=" + myfunc.AA(Tmp_NHA_LCN)
+ " AND NHA_ALC=" + myfunc.AA(Tmp_NHA_ALC)
+ " AND LCN=" + myfunc.AA(Tmp_LCN)
+ " AND ALC=" + myfunc.AA(Tmp_ALC)
+ " AND PN=" + myfunc.AA(Tmp_PN);
Tmp_Str = "更新(AMM_UOC)";
}
else
{ //新增 AMM_UOC
//不在資料庫 && PK 未重覆,則新增
if (Tmp_AMM_UOC_LIST.IndexOf(Tmp_AMM_UOC_PK) == -1)
{
Tmp_Sql = " INSERT INTO AMM_UOC "
+ "( RPNOAF,EIAC,EI_LCN,EI_ALC,NHA_LCN,NHA_ALC,LCN,ALC,PN,"
+ " AMMNO,RQPN,FACPN,CAGE,NSN ) "
+ " VALUES "
+ "(" + myfunc.AA(Tmp_RPNOAF) + "," + myfunc.AA(Tmp_EIAC) + "," + myfunc.AA(Tmp_EI_LCN) + "," + myfunc.AA(Tmp_EI_ALC) + "," + myfunc.AA(Tmp_NHA_LCN) + "," + myfunc.AA(Tmp_NHA_ALC) + "," + myfunc.AA(Tmp_LCN) + "," + myfunc.AA(Tmp_ALC) + "," + myfunc.AA(Tmp_PN) + ","
+ myfunc.AA(Tmp_AMMNO) + "," + myfunc.AA(Tmp_RQPN) + "," + myfunc.AA(Tmp_FACPN) + "," + myfunc.AA(Tmp_CAGE) + "," + myfunc.AA(Tmp_NSN)
+ ")";
Tmp_Str = "新增(AMM_UOC)";
}
else
{ //不在資料庫 ,但是 目前 PK 在(匯入檔案中) 已重覆,則更新
Tmp_Sql = " UPDATE AMM_UOC "
+ " SET AMMNO=" + myfunc.AA(Tmp_AMMNO) + ","
+ " RQPN= " + myfunc.AA(Tmp_RQPN) + ","
+ " FACPN= " + myfunc.AA(Tmp_RQPN) + ","
+ " CAGE= " + myfunc.AA(Tmp_SBOM_CAGE) + ","
+ " NSN= " + myfunc.AA(Tmp_NSN)
+ " WHERE RPNOAF=" + myfunc.AA(Tmp_RPNOAF)
+ " AND EIAC=" + myfunc.AA(Tmp_EIAC)
+ " AND EI_LCN=" + myfunc.AA(Tmp_EI_LCN)
+ " AND EI_ALC=" + myfunc.AA(Tmp_EI_ALC)
+ " AND NHA_LCN=" + myfunc.AA(Tmp_NHA_LCN)
+ " AND NHA_ALC=" + myfunc.AA(Tmp_NHA_ALC)
+ " AND LCN=" + myfunc.AA(Tmp_LCN)
+ " AND ALC=" + myfunc.AA(Tmp_ALC)
+ " AND PN=" + myfunc.AA(Tmp_PN);
Tmp_Str = "更新(AMM_UOC)";
}
}
SQL_List_A.Add(Tmp_Sql);
Tmp_AMM_UOC_LIST.Add(Tmp_AMM_UOC_PK); //處理完成,才將 PK 加入 String_List
//更新 AMM_UOCD
//取得 AMM_UOCD_PK - 因為無 ITMUOCD , 所以以 原PK+Tmp_TMNOXX+Tmp_FIG+Tmp_IND+Tmp_WP 當成 PK
Tmp_AMM_UOCD_PK = Tmp_RPNOAF + "," + Tmp_EIAC + "," + Tmp_EI_LCN + "," + Tmp_EI_ALC + "," + Tmp_NHA_LCN + "," + Tmp_NHA_ALC + "," + Tmp_LCN + "," + Tmp_ALC + "," + Tmp_PN
+Tmp_TMNOXX+Tmp_FIG+Tmp_IND+Tmp_WP;
//判斷 AMM_UOCD 是否已存在 原PK+Tmp_TMNOXX+Tmp_FIG+Tmp_IND+Tmp_WP
Tmp_Sql = " SELECT ITMUOCD "
+ " FROM AMM_UOCD "
+ " WHERE RPNOAF=" + myfunc.AA(Tmp_RPNOAF)
+ " AND EIAC=" + myfunc.AA(Tmp_EIAC)
+ " AND EI_LCN=" + myfunc.AA(Tmp_EI_LCN)
+ " AND EI_ALC=" + myfunc.AA(Tmp_EI_ALC)
+ " AND NHA_LCN=" + myfunc.AA(Tmp_NHA_LCN)
+ " AND NHA_ALC=" + myfunc.AA(Tmp_NHA_ALC)
+ " AND LCN=" + myfunc.AA(Tmp_LCN)
+ " AND ALC=" + myfunc.AA(Tmp_ALC)
+ " AND PN=" + myfunc.AA(Tmp_PN)
+ " AND TMNOXX=" + myfunc.AA(Tmp_TMNOXX)
+ " AND FIG=" + myfunc.AA(Tmp_FIG)
+ " AND IND=" + myfunc.AA(Tmp_IND)
+ " AND WP=" + myfunc.AA(Tmp_WP);
Tmp_ITMUOCD=myfunc.SqlValue(Tmp_Sql);
if (!myfunc.checkisnull(Tmp_ITMUOCD)) //Tmp_AMM_UOCD 已存在,則更新
{
Tmp_Sql = " UPDATE AMM_UOCD "
+ " SET EFF='Y' ,"
+ " AMMNO=" + myfunc.AA(Tmp_AMMNO) + ","
+ " TMNOXX= " + myfunc.AA(Tmp_TMNOXX) + ","
+ " FIG= " + myfunc.AA(Tmp_FIG) + ","
+ " IND= " + myfunc.AA(Tmp_IND) + ","
+ " WP= " + myfunc.AA(Tmp_WP) + ","
+ " OVERAHD= " + myfunc.AA(Tmp_OVERAHD) + ","
+ " RSTHAH= " + myfunc.AA(Tmp_RSTHAH) + ","
+ " FRMK= " + myfunc.AA(Tmp_FRMK) + ","
+ " FRNOAF_S= " + myfunc.AA(Tmp_FRNOAF_S) + ","
+ " SN= " + myfunc.AA(Tmp_SN) + ","
+ " FACHRN= " + myfunc.AA(Tmp_FACHRN) + ","
+ " RMRPNOAF= " + myfunc.AA(Tmp_RMRPNOAF) + ","
+ " RMSBSN= " + myfunc.AA(Tmp_RMSBSN) + ","
+ " NQTYAH= " + myfunc.AA(Tmp_NQTYAH) + ","
+ " C_UNIT= " + myfunc.AA(Tmp_C_UNIT) + ","
+ " EMPLYID= " + myfunc.AA(Tmp_EMPLYID) + ","
+ " RDUOCD= " + myfunc.AA(Tmp_RDUOCD) + ","
+ " STAUOCD= " + myfunc.AA(Tmp_STAUOCD) + ","
+ " FASTAT= " + myfunc.AA(Tmp_FASTAT)
+ " WHERE RPNOAF=" + myfunc.AA(Tmp_RPNOAF)
+ " AND EIAC=" + myfunc.AA(Tmp_EIAC)
+ " AND EI_LCN=" + myfunc.AA(Tmp_EI_LCN)
+ " AND EI_ALC=" + myfunc.AA(Tmp_EI_ALC)
+ " AND NHA_LCN=" + myfunc.AA(Tmp_NHA_LCN)
+ " AND NHA_ALC=" + myfunc.AA(Tmp_NHA_ALC)
+ " AND LCN=" + myfunc.AA(Tmp_LCN)
+ " AND ALC=" + myfunc.AA(Tmp_ALC)
+ " AND PN=" + myfunc.AA(Tmp_PN)
+ " AND ITMUOCD=" + myfunc.AA(Tmp_ITMUOCD);
Tmp_Str = Tmp_Str + "," + "更新(AMM_UOCD)";
}
else //不存在資料庫
{
Tmp_Sql= " INSERT INTO AMM_UOCD "
+" (RPNOAF, EIAC, EI_LCN, EI_ALC, NHA_LCN, NHA_ALC, LCN, ALC, PN,"
+" ITMUOCD,"
+ " EFF,AMMNO,TMNOXX,FIG,IND,WP, "
+ " OVERAHD,RSTHAH,FRMK,FRNOAF_S,SN, "
+ " FACHRN,RMRPNOAF,RMSBSN,NQTYAH,C_UNIT, "
+ " EMPLYID,RDUOCD,STAUOCD,FASTAT "
+ ") "
+" SELECT "+ myfunc.AA(Tmp_RPNOAF) + "," + myfunc.AA(Tmp_EIAC) + "," + myfunc.AA(Tmp_EI_LCN) + "," + myfunc.AA(Tmp_EI_ALC) + "," + myfunc.AA(Tmp_NHA_LCN) + "," + myfunc.AA(Tmp_NHA_ALC) + "," + myfunc.AA(Tmp_LCN) + "," + myfunc.AA(Tmp_ALC) + "," + myfunc.AA(Tmp_PN) + ","
//取得 MAX(ITMUOCD)+1
+ " ( SELECT nvl(MAX(TO_NUMBER(ITMUOCD)), 0) + 1 "
+" FROM AMM_UOCD "
+ " WHERE RPNOAF = " +myfunc.AA(Tmp_RPNOAF)
+" AND EIAC = "+ myfunc.AA(Tmp_EIAC)
+" AND EI_LCN = "+ myfunc.AA(Tmp_EI_LCN)
+" AND EI_ALC = " + myfunc.AA(Tmp_EI_ALC)
+ " AND NHA_LCN = " + myfunc.AA(Tmp_NHA_LCN)
+ " AND NHA_ALC = " + myfunc.AA(Tmp_NHA_ALC)
+" AND LCN ="+ myfunc.AA(Tmp_LCN)
+" AND ALC = "+ myfunc.AA(Tmp_ALC)
+" AND PN =" + myfunc.AA(Tmp_PN)+"),"
+ myfunc.AA("Y") + "," + myfunc.AA(Tmp_AMMNO) + "," + myfunc.AA(Tmp_TMNOXX) + "," + myfunc.AA(Tmp_FIG) + "," + myfunc.AA(Tmp_IND) + "," + myfunc.AA(Tmp_WP) + ","
+ myfunc.AA(Tmp_OVERAHD) + "," + myfunc.AA(Tmp_RSTHAH) + "," + myfunc.AA(Tmp_FRMK) + "," + myfunc.AA(Tmp_FRNOAF_S) + "," + myfunc.AA(Tmp_SN) + ","
+ myfunc.AA(Tmp_FACHRN) + "," + myfunc.AA(Tmp_RMRPNOAF) + "," + myfunc.AA(Tmp_RMSBSN) + "," + myfunc.AA(Tmp_NQTYAH) + "," + myfunc.AA(Tmp_C_UNIT) + ","
+ myfunc.AA(Tmp_EMPLYID) + "," + myfunc.AA(Tmp_RDUOCD) + "," + myfunc.AA(Tmp_STAUOCD) + "," + myfunc.AA(Tmp_FASTAT)
+" FROM DUAL ";
Tmp_Str = Tmp_Str + "," + "新增(AMM_UOCD)";
}
SQL_List_A.Add(Tmp_Sql); // 新增/更新 AMM_UOCD
Tmp_AMM_UOCD_LIST.Add(Tmp_AMM_UOCD_PK);
//myfunc.SqlExec(Tmp_Sql);
Tmp_Str = "更新完成!! [ " + Tmp_Str + " ] ";
ws.Range[myfunc.GetExcelPos(44, cur_row)].Value = Tmp_Str;
}
Tmp_rowcnt = Tmp_rowcnt + 1;
} // end of for (int i = 0; i < RowsCount; i++)
// 批次執行 SQL , 若 有誤,則傳回 -1 , 若正確,則傳回 1
Tmp_Str = String.Join(";",SQL_List_A);
Tmp_cnt=excuteSQLTran(SQL_List_A);
//批次執行 SQL 有錯誤
if (Tmp_cnt == -1)
{
Tmp_RtnMsg = getExcMsg();
raiseEXP(new Exception() , Tmp_RtnMsg);
}
} //end of foreach (string cur_FName in Request.Files)
ws.AllocatedRange.AutoFitColumns();
wk.SaveToStream(stream, FileFormat.Version2007);
Tmp_Str = "[非TLS品項批次提料]完成!!(共更新" + Tmp_rowcnt.ToString() + "筆)<br>"
+ "匯入檔案名稱(" + Tmp_FName + ")";
MyCookie = new HttpCookie("Rtn_Msg", HttpUtility.UrlEncode(Tmp_Str));
//MyCookie.Value = HttpUtility.UrlEncode(Tmp_Str);
HttpContext.Current.Response.Cookies.Add(MyCookie);
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode(Tmp_out_FName, System.Text.Encoding.UTF8) + "\"");
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.BinaryWrite(stream.ToArray());
HttpContext.Current.Response.End();
} // end fo try{
catch (Exception e)
{
//Console.WriteLine(e);
Tmp_RtnMsg = "錯誤訊息如下:"
+ e.Message;
MyCookie.Value = HttpUtility.UrlEncode(Tmp_RtnMsg);
HttpContext.Current.Response.Cookies.Add(MyCookie);
HttpContext.Current.Response.End();
//throw;
}
finally
{
wk.Dispose();
//reader.Dispose();
cmd.Dispose();
conn.Dispose();
conn.Close();
}
//return response;
//Tmp_Cnt = 6;
} // end of INS_AMM_UOC_UOCD()