protected void Page_Load(object sender, EventArgs e) { if (!InterfaceTool.IdentityVerify(Request)) { Json = Result.Failure("身份认证错误"); return; } TallyE tallyE = new TallyE(); tallyE.StrShip_Id = Request.Params["Ship_Id"]; tallyE.StrContainer_No = Request.Params["Container_No"]; tallyE.StrBay_No = Request.Params["Bay_No"]; tallyE.StrWork_No = Request.Params["Work_No"]; tallyE.StrTime = Request.Params["Time"]; //strShip_Id = "6887"; //strContainer_No = "185"; if (tallyE.StrShip_Id == null || tallyE.StrContainer_No == null || tallyE.StrBay_No == null || tallyE.StrWork_No == null || tallyE.StrTime == null) { Json = Result.Failure("参数错误"); return; } Log log = new Log(Request, tallyE); log.strBehavior = "出口调贝"; log.strBehaviorURL = "/Tally/Export/MoveBay.aspx"; log.strWorkType = "chgbay"; Json = new Con_Tally(log).MoveBay(tallyE); }
/// <summary> /// 倒箱更新配载指令 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string Moved_UpdateInstruction(TallyE tallyE) { //错误提示 string strErr = string.Empty; string strSql = string.Empty; if (tallyE.StrInOutType.Equals("I")) { strSql = string.Format(@"update TB_CON_INSTRUCTION set complete_mark='1', bayno='{5}',truck_no='{2}',tally_mark='{3}',updatetime='{6}' where ship_id='{0}' and ctn_no='{1}' and loadUnload_Mark='{4}' and reLoad_mark='1' ", tallyE.StrShip_Id, tallyE.StrContainer_No, tallyE.StrTruck_No, tallyE.StrWork_No, "0", tallyE.StrBay_No, tallyE.StrTime); } else { strSql = string.Format(@"update TB_CON_INSTRUCTION set complete_mark = '1', bayno = '{2}', tally_mark = '{3}', updatetime = '{5}' where ship_id = '{0}' and ctn_no = '{1}' and loadUnload_mark = '{4}' and reLoad_mark = '1' ", tallyE.StrShip_Id, tallyE.StrContainer_No, tallyE.StrBay_No, tallyE.StrWork_No, "1", tallyE.StrTime); } Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteNonQuery(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("倒箱更新配载指令:" + strErr); return Rollback(tallyE); //return Result.Failure("倒箱更新配载指令:" + strErr); } return null; }
/// <summary> /// 同步舱单 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string UpdateHatch(TallyE tallyE) { //错误提示 string strErr = string.Empty; string strSql = string.Empty; if (tallyE.StrInOutType.Equals("E")) { strSql = string.Format(@"update CON_HATCH_RECORD set unload_mark = '1',bayno='{0}',user_code='{1}' where ship_id='{2}' and container_no='{3}'", tallyE.StrBay_No, tallyE.StrWork_No, tallyE.StrNewShip_Id, tallyE.StrContainer_No); } else { strSql = string.Format(@"update CON_HATCH_RECORD set unload_mark = '1',user_code='{0}' where ship_id='{1}' and container_no='{2}'", tallyE.StrWork_No, tallyE.StrNewShip_Id, tallyE.StrContainer_No); } Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteNonQuery(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("同步舱单异常:" + strErr); return Rollback(tallyE); //return Result.Failure("同步舱单异常:" + strErr); } return null; }
/// <summary> /// 倒箱作业校验 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string Moved_CheckWork(TallyE tallyE) { //错误提示 string strErr = string.Empty; string strSql = string.Empty; //出口装箱,判断前后贝 string pos1 = Convert.ToString((Convert.ToInt16(tallyE.StrBay_No.Substring(0, 2)) - 1)).PadLeft(2, '0') + tallyE.StrBay_No.Substring(2).PadLeft(4, '0'); string pos2 = Convert.ToString((Convert.ToInt16(tallyE.StrBay_No.Substring(0, 2)) + 1)).PadLeft(2, '0') + tallyE.StrBay_No.Substring(2).PadLeft(4, '0'); strSql = string.Format(@"select container_no, bayno from VCON_IMAGE_PDA where old_id='{0}' and bayno in ('{1}','{2}','{3}') and unload_mark='1' ", tallyE.StrShip_Id, tallyE.StrBay_No, pos1, pos2); var dt = Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteQuery_DataTable(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("作业校验异常:" + strErr); return Result.Failure("作业校验异常:" + strErr); } if (dt.Rows.Count > 0) { string strMsg = Convert.ToString(dt.Rows[0]["container_no"]) + "已装船!" + Convert.ToString(dt.Rows[0]["bayno"]); strMsg += ",请注意调整"; log.LogCatalogSuccess(strMsg); return Result.Success(null, strMsg); } return null; }
/// <summary> /// 理箱回滚 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string Rollback(TallyE tallyE) { //错误提示 string strErr = string.Empty; string strSql = string.Empty; try { strSql = string.Format(@"update CON_HATCH_RECORD set unload_mark='0' where ship_id='{0}' and container_no='{1}' and unload_mark='1'", tallyE.StrNewShip_Id, tallyE.StrContainer_No); Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteNonQuery(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("理箱回滚(舱单)异常:" + strErr); return Result.Failure("理箱回滚(舱单)异常:" + strErr); } strSql = string.Format(@"update CON_IMAGE set unload_mark='0',work_no=null,editbaymark='0' where ship_id='{0}' and container_no='{1}' and unload_mark='1'", tallyE.StrNewShip_Id, tallyE.StrContainer_No); Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteNonQuery(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("理箱回滚(船图)异常:" + strErr); return Result.Failure("理箱回滚(船图)异常:" + strErr); } strSql = string.Format(@"delete from CON_TALLY_DETAIL where ship_id='{0}' and container_no='{1}'", tallyE.StrNewShip_Id, tallyE.StrContainer_No); Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteNonQuery(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("理箱回滚(理箱单子表)异常:" + strErr); return Result.Failure("理箱回滚(理箱单子表)异常:" + strErr); } log.LogCatalogSuccess("rollback_ok"); return Result.Success(null, null); } catch (Exception ex) { log.strWorkType = "rollback_ec"; log.LogCatalogFailure("异常:" + ex.Message); return Result.Failure("异常:" + ex.Message); } }
/// <summary> /// 初始化系统日志数据 /// </summary> public Log(HttpRequest Request, TallyE tallyE) { strShip_Id = tallyE.StrShip_Id; strWorkType = null; strMovedMark = tallyE.StrMovedMark; strContainer_No = tallyE.StrContainer_No; strBay_No = tallyE.StrBay_No; strTruck_No = tallyE.StrTruck_No; strInOutType = tallyE.StrInOutType; strWork_No = tallyE.StrWork_No; strDeviceType = Request.ServerVariables["Http_User_Agent"].ToString(); strIP = Request.ServerVariables.Get("Remote_Addr").ToString(); strBehavior = null; strBehaviorURL = null; strUserName = tallyE.StrUserName; }
protected void Page_Load(object sender, EventArgs e) { if (!InterfaceTool.IdentityVerify(Request)) { Json = Result.Failure("身份认证错误"); return; } TallyE tallyE = new TallyE(); tallyE.StrShip_Id = Request.Params["Ship_Id"]; tallyE.StrContainer_No = Request.Params["Container_No"]; tallyE.StrBay_No = Request.Params["Bay_No"]; tallyE.StrWork_No = Request.Params["Work_No"]; tallyE.StrTeam_No = Request.Params["Team_No"]; tallyE.StrHoliady_Mark = Request.Params["Holiady_Mark"]; tallyE.StrTime = Request.Params["Time"]; tallyE.StrNewShip_Id = Request.Params["NewShip_Id"]; tallyE.StrBerth_No = Request.Params["Berth_No"]; tallyE.StrInOutType = "E"; string strContainer_No2 = Request.Params["Container_No2"]; //strShip_Id = "6887"; //strContainer_No = "185"; if (tallyE.StrShip_Id == null || tallyE.StrContainer_No == null || strContainer_No2 == null || tallyE.StrTruck_No == null || tallyE.StrWork_No == null || tallyE.StrTeam_No == null || tallyE.StrHoliady_Mark == null || tallyE.StrNight_Mark == null || tallyE.StrTime == null) { Json = Result.Failure("参数错误"); return; } Log log = new Log(Request, tallyE); log.strBehavior = "进口双吊卸箱作业"; log.strBehaviorURL = "/Tally/Export/DoubleLoadOfExport.aspx"; log.strWorkType = "tally"; Json = new Con_Tally(log).Load_Unload(tallyE); Result reslut = JsonConvert.DeserializeObject <Result>(Json); if (reslut.IsSuccess == true && reslut.Message == null) { tallyE.StrContainer_No = strContainer_No2; tallyE.StrBay_No = Convert.ToString((Convert.ToInt16(tallyE.StrBay_No.Substring(0, 2)) + 2)).PadLeft(2, '0') + tallyE.StrBay_No.Substring(2).PadLeft(4, '0'); Json = new Con_Tally(log).Load_Unload(tallyE); } }
/// <summary> /// 出口调贝 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string MoveBay(TallyE tallyE) { //错误提示 string strErr = string.Empty; //返回数据对象 string strJson = null; log.LogCatalogSuccess(); try { //作业校验 strJson = new Pub(log).Moved_CheckWork(tallyE); if (!string.IsNullOrWhiteSpace(strJson)) { return(strJson); } //如果新贝位目前存在箱号,则与当前箱所在贝位调换 string strSql = "update CON_IMAGE set BayNo=nvl((select Max(BayNo) BayNo from con_image where SHIP_ID=" + tallyE.StrNewShip_Id + " and CONTAINER_NO ='" + tallyE.StrContainer_No + "'),'" + tallyE.StrBay_No + "')" + " where SHIP_ID=" + tallyE.StrNewShip_Id + " and BayNO='" + tallyE.StrBay_No + "' and CONTAINER_NO !='" + tallyE.StrContainer_No + "'"; Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteNonQuery(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("出口调贝异常:" + strErr); return(Result.Failure("出口调贝异常:" + strErr)); } strSql = "update CON_IMAGE set WORK_NO='" + tallyE.StrWork_No + "',USER_NAME='" + tallyE.StrWork_No + "',BAYNO='" + tallyE.StrBay_No + "' where SHIP_ID='" + tallyE.StrNewShip_Id + "' and CONTAINER_NO='" + tallyE.StrContainer_No + "'"; Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteNonQuery(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("出口调贝异常:" + strErr); return(Result.Failure("出口调贝异常:" + strErr)); } log.LogCatalogSuccess("chgbay_ok"); return(Result.Success(null, null)); } catch (Exception ex) { log.strWorkType = "chgbay_ec"; log.LogCatalogFailure("异常:" + ex.Message); return(Result.Failure("异常:" + ex.Message)); } }
/// <summary> /// 倒箱同步船图 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string Moved_UpdateImage(TallyE tallyE) { //错误提示 string strErr = string.Empty; string strSplit = string.Empty; if (tallyE.StrMovedMark.Equals("1")) { strSplit = "moved='1',"; } else if (tallyE.StrMovedMark.Equals("2")) { strSplit = "bayno='" + tallyE.StrBay_No + "',"; string strSql = string.Format(@"update CON_IMAGE set oldbayno=bayno,moved='1' where ship_id='{0}' and bayno='{1}'", tallyE.StrNewShip_Id, tallyE.StrBay_No); Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteNonQuery(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("倒箱同步船图异常:" + strErr); return Rollback(tallyE); //return Result.Failure("倒箱同步船图异常:" + strErr); } } string sqlUpdate = string.Empty; //智能识别自动理货处理 if (tallyE.StrWork_No.Substring(0, 1) == "P" || tallyE.StrWork_No.Substring(0, 1) == "X") sqlUpdate = "update CON_IMAGE set UNLOAD_MARK='1'," + strSplit + "WORK_NO='A',WORK_NO='9999',CODE_CRANE='" + tallyE.StrWork_No + "',USER_CODE='" + tallyE.StrWork_No + "',USER_NAME='" + tallyE.StrWork_No + "',WORK_DATE=TO_DATE('" + tallyE.StrTime + "','YYYY-MM-DD HH24:MI:SS') where SHIP_ID='" + tallyE.StrNewShip_Id + "' and CONTAINER_NO='" + tallyE.StrContainer_No + "'"; else sqlUpdate = "update CON_IMAGE set UNLOAD_MARK='1'," + strSplit + "WORK_NO='" + tallyE.StrWork_No + "',USER_CODE='" + tallyE.StrWork_No + "',USER_NAME='" + tallyE.StrWork_No + "',WORK_DATE=TO_DATE('" + tallyE.StrTime + "','YYYY-MM-DD HH24:MI:SS') where SHIP_ID='" + tallyE.StrNewShip_Id + "' and CONTAINER_NO='" + tallyE.StrContainer_No + "'"; Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteNonQuery(sqlUpdate, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("倒箱同步船图异常:" + strErr); return Rollback(tallyE); //return Result.Failure("倒箱同步船图异常:" + strErr); } return null; }
protected void Page_Load(object sender, EventArgs e) { if (!InterfaceTool.IdentityVerify(Request)) { Json = Result.Failure("身份认证错误"); return; } TallyE tallyE = new TallyE(); tallyE.StrShip_Id = Request.Params["Ship_Id"]; tallyE.StrContainer_No = Request.Params["Container_No"]; tallyE.StrBay_No = Request.Params["Bay_No"]; tallyE.StrWork_No = Request.Params["Work_No"]; tallyE.StrTeam_No = Request.Params["Team_No"]; tallyE.StrHoliady_Mark = Request.Params["Holiady_Mark"]; tallyE.StrTime = Request.Params["Time"]; tallyE.StrEndTime = Request.Params["EndTime"]; tallyE.StrNewShip_Id = Request.Params["NewShip_Id"]; tallyE.StrBerth_No = Request.Params["Berth_No"]; tallyE.StrInOutType = "E"; tallyE.StrMovedMark = "2"; //strShip_Id = "6887"; //strContainer_No = "185"; if (tallyE.StrShip_Id == null || tallyE.StrContainer_No == null || tallyE.StrBay_No == null || tallyE.StrWork_No == null || tallyE.StrTeam_No == null || tallyE.StrTime == null) { Json = Result.Failure("参数错误"); return; } Log log = new Log(Request, tallyE); log.strBehavior = "出口重装作业"; log.strBehaviorURL = "/Tally/Export/ReloadOfExport.aspx"; log.strWorkType = "tally_dx"; Json = new Con_Tally(log).Moved_Load_Unload(tallyE); }
/// <summary> /// 调用指令发送至码头 /// </summary> /// <param name="tallyE"></param> /// <returns>结果</returns> private string Con_Instruction(TallyE tallyE) { //错误提示 string strErr = string.Empty; string strSql = string.Empty; string strInfo = string.Empty; var dt = new DataTable(); string strLoaddir = tallyE.StrInOutType.Equals("I") == true ? "0" : "1"; try { strSql = string.Format(@"select * from TB_CON_INSTRUCTION where ship_id='{0}' and ctn_no='{1}' and loadunload_mark='{2}'", tallyE.StrShip_Id, tallyE.StrContainer_No, strLoaddir); dt = Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteQuery_DataTable(strSql, out strErr); if (dt.Rows.Count > 0) { if (tallyE.StrInOutType.Equals("I")) { return Con_Instruction_InPort(tallyE, dt); } else { return Con_Instruction_OutPort(tallyE, dt); } } } catch (Exception ex) { //回滚 log.strWorkType = "con_instruction_ec"; log.strBay_No = Convert.ToString(dt.Rows[0]["bayno"]); log.strTruck_No = Convert.ToString(dt.Rows[0]["truck_no"]); log.LogCatalogFailure("异常:" + ex.Message + "; " + strInfo); if (tallyE.StrInOutType.Equals("I")) { oracle_find_cntr_plac_try_rollback(Convert.ToString(dt.Rows[0]["ctn_no]));
/// <summary> /// 倒箱生成理货单编号 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string Moved_GenerateTallyNum(TallyE tallyE) { //错误提示 string strErr = string.Empty; string strSql = string.Format(@"select max(no) from CON_TALLY_LIST where ship_id='{0}' and team_no='{1}' and tally_clerk1='{2}' and inout_mark='0' and reload='0' ", tallyE.StrNewShip_Id, tallyE.StrTeam_No, tallyE.StrWork_No); string strTemp = Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteQuery_String(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("倒箱生成理货单编号:" + strErr); return Rollback(tallyE); //return Result.Failure("倒箱生成理货单编号:" + strErr); } if (strTemp.Length == 0) tallyE.StrBhno = "dx" + tallyE.StrWork_No + tallyE.StrTeam_No + "0001"; else tallyE.StrBhno = strTemp.Substring(0, 10) + Convert.ToString(Convert.ToInt64(strTemp.Substring(10)) + 1).PadLeft(4, '0'); return null; }
/// <summary> /// 发送指令 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string SendInstruction(TallyE tallyE) { //错误提示 string strErr = string.Empty; string strSql = string.Empty; strSql = string.Format(@"select active_id from TB_CON_INSTRUCTION where ship_id='{0}' and ctn_no='{1}' and loadunload_mark='{2}'", tallyE.StrShip_Id, tallyE.StrContainer_No); string strActive_id = Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteQuery_String(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("异常:" + strErr); return Result.Failure("异常:" + strErr); } if (strActive_id.Equals("2")) { log.LogCatalogSuccess("xdf_over:中控已确认指令"); return Result.Success(null, "xdf_over:中控已确认指令"); } else { string strInfo = Con_Instruction(tallyE); if (strInfo.Equals("1")) { log.LogCatalogSuccess("xdf_ok"); return Result.Success(null, "xdf_ok"); } else { log.LogCatalogSuccess("xdf_err: " + strInfo); return Result.Success(null, "xdf_err: " + strInfo); } } }
/// <summary> /// 同步理箱单主子表 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string UpdateTallyList(TallyE tallyE) { //错误提示 string strErr = string.Empty; string strSqlGetConList = "select * from CON_TALLY_LIST where 1=0"; string sqlGetConDetail = "select * from CON_TALLY_DETAIL where 1=0"; string sqlGetConListNewID = "Select SQ_CON_TALLY_LIST_ID.Nextval NEWID from dual"; var dt_conList = Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteQuery_DataTable(strSqlGetConList, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("同步理箱单主子表异常:" + strErr); return Rollback(tallyE); //return Result.Failure("同步理箱单主子表异常:" + strErr); } var dt_conDetail = Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteQuery_DataTable(sqlGetConDetail, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("同步理箱单主子表异常:" + strErr); return Rollback(tallyE); //return Result.Failure("同步理箱单主子表异常:" + strErr); } string strConListNewID = Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteQuery_String(sqlGetConListNewID, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("同步理箱单主子表异常:" + strErr); return Rollback(tallyE); //return Result.Failure("同步理箱单主子表异常:" + strErr); } //理箱单主表 DataRow drRow; drRow = dt_conList.NewRow(); drRow["ID"] = strConListNewID; drRow["SHIP_ID"] = tallyE.StrNewShip_Id; drRow["TEAM_NO"] = tallyE.StrTeam_No; drRow["NO"] = tallyE.StrBhno; drRow["WORKDATE"] = tallyE.StrTime; drRow["TIMEFROM"] = tallyE.StrEndTime; drRow["TIMETO"] = tallyE.StrEndTime; drRow["BERTHNO"] = tallyE.StrBerth_No; drRow["NIGHT_MARK"] = tallyE.StrNight_Mark; drRow["HOLIDAY"] = tallyE.StrHoliady_Mark; drRow["INOUT_MARK"] = "0"; drRow["RELOAD"] = "0"; if (tallyE.StrMovedMark.Equals("1")) { drRow["INOUT_MARK"] = "1"; } else if (tallyE.StrMovedMark.Equals("2")) { drRow["RELOAD"] = "1"; } drRow["TALLY_CLERK1"] = tallyE.StrWork_No; drRow["USER_NAME"] = tallyE.StrWork_No; dt_conList.Rows.Add(drRow); //子表 drRow = dt_conList.NewRow(); drRow["LIST_ID"] = strConListNewID; drRow["SHIP_ID"] = tallyE.StrNewShip_Id; drRow["CONTAINER_NO"] = tallyE.StrContainer_No; drRow["BAYNO"] = tallyE.StrBay_No; drRow["UNLOAD_MARK"] = "1"; string strSql = string.Format(@"select * from CON_IMAGE where ship_id='{0}' and container_no='{1}'", tallyE.StrNewShip_Id, tallyE.StrContainer_No); var dt = Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteQuery_DataTable(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("同步理箱单主子表异常:" + strErr); return Rollback(tallyE); //return Result.Failure("同步理箱单主子表异常:" + strErr); } if (dt.Rows.Count > 0) { drRow["SIZE_CON"] = dt.Rows[0]["SIZE_CON"]; drRow["CODE_EMPTY"] = dt.Rows[0]["FULLOREMPTY"]; string strWeight = string.Empty; if (tallyE.StrMovedMark.Equals("1") || tallyE.StrMovedMark.Equals("2")) { strWeight = dt.Rows[0]["WEIGHT"].ToString(); } else { strWeight = dt.Rows[0]["GROSSWEIGHT"].ToString(); ; } if (strWeight.Length > 0) drRow["WEIGHT"] = decimal.Parse(strWeight) / 1000; else drRow["WEIGHT"] = DBNull.Value; } dt_conDetail.Rows.Add(drRow); Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).UpdateTable(dt_conList, strSqlGetConList, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("同步理箱单主子表异常:" + strErr); return Rollback(tallyE); //return Result.Failure("同步理箱单主子表异常:" + strErr); } Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).UpdateTable(dt_conDetail, sqlGetConDetail, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("同步理箱单主子表异常:" + strErr); return Rollback(tallyE); //return Result.Failure("同步理箱单主子表异常:" + strErr); } return null; }
/// <summary> /// 同步船图 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string UpdateImage(TallyE tallyE) { //错误提示 string strErr = string.Empty; string strSql_ImageAll = string.Format("select * from CON_IMAGE where 1=0"); string strSql = string.Format(@"select * from CON_IMAGE where ship_id='{0}' and container_no='{1}'", tallyE.StrNewShip_Id, tallyE.StrContainer_No); var dt = Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteQuery_DataTable(strSql, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("同步船图异常:" + strErr); return Rollback(tallyE); //return Result.Failure("同步船图异常:" + strErr); } if (dt.Rows.Count > 0) { dt.Rows[0]["UNLOAD_MARK"] = "1"; dt.Rows[0]["MOVED"] = "0"; //智能识别自动理货处理 if (tallyE.StrWork_No.Substring(0, 1) == "P" || tallyE.StrWork_No.Substring(0, 1) == "X") { dt.Rows[0]["WORK_NO"] = "9999"; dt.Rows[0]["TALLY_MARK"] = "A"; dt.Rows[0]["CODE_CRANE"] = tallyE.StrWork_No; } else { dt.Rows[0]["WORK_NO"] = tallyE.StrWork_No; } dt.Rows[0]["USER_CODE"] = tallyE.StrWork_No; if (tallyE.StrInOutType.Equals("I")) { if (Convert.IsDBNull(dt.Rows[0]["WORK_DATE"])) dt.Rows[0]["WORK_DATE"] = tallyE.StrTime; dt.Rows[0]["USER_NAME"] = tallyE.StrWork_No; } else { dt.Rows[0]["WORK_DATE"] = tallyE.StrTime; ; dt.Rows[0]["BAYNO"] = tallyE.StrBay_No; //如果新贝位目前存在箱号,则与当前箱所在贝位调换 string strSqlUpdate = "update CON_IMAGE set BayNo=nvl((select Max(BayNo) BayNo from con_image where SHIP_ID=" + tallyE.StrNewShip_Id + " and CONTAINER_NO ='" + tallyE.StrContainer_No + "'),'" + tallyE.StrBay_No + "')" + " where SHIP_ID=" + tallyE.StrNewShip_Id + " and BayNO='" + tallyE.StrBay_No + "' and CONTAINER_NO !='" + tallyE.StrContainer_No + "'"; Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).ExecuteNonQuery(strSqlUpdate, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("同步舱单异常:" + strErr); return Rollback(tallyE); //return Result.Failure("同步舱单异常:" + strErr); } Oracle.DataAccess(RegistryKey.KeyPath_Oracle_Tally).UpdateTable(dt, strSql_ImageAll, out strErr); if (!string.IsNullOrWhiteSpace(strErr)) { log.LogCatalogFailure("同步舱单异常:" + strErr); return Rollback(tallyE); //return Result.Failure("同步舱单异常:" + strErr); } } } return null; }
/// <summary> /// 捣箱进出口装卸箱作业 /// </summary> /// <param name="tallyE">TallyE数据对象</param> /// <returns>结果</returns> public string Moved_Load_Unload(TallyE tallyE) { //错误提示 string strErr = string.Empty; //返回数据对象 string strJson = null; log.LogCatalogSuccess("gb." + tallyE.StrTeam_No + ".jjr." + tallyE.StrHoliady_Mark + ".yb." + tallyE.StrNight_Mark); //作业校验 strJson = new Pub(log).Moved_CheckWork(tallyE); if (!string.IsNullOrWhiteSpace(strJson)) { return(strJson); } try { //同步船图 strJson = new Pub(log).Moved_UpdateImage(tallyE); if (!string.IsNullOrWhiteSpace(strJson)) { return(strJson); } //更新配载指令 strJson = new Pub(log).Moved_UpdateInstruction(tallyE); if (!string.IsNullOrWhiteSpace(strJson)) { return(strJson); } //生成理货单编号 strJson = new Pub(log).Moved_GenerateTallyNum(tallyE); if (!string.IsNullOrWhiteSpace(strJson)) { return(strJson); } //同步理箱单主子表 strJson = new Pub(log).UpdateTallyList(tallyE); if (!string.IsNullOrWhiteSpace(strJson)) { return(strJson); } log.LogCatalogSuccess("tally_dx_ok"); //调指令发送码头 strJson = new Pub(log).SendInstruction(tallyE); if (!string.IsNullOrWhiteSpace(strJson)) { return(strJson); } return(Result.Success(null, null)); } catch (Exception ex) { log.strWorkType = "dxload_unload_ec"; log.LogCatalogFailure("异常:" + ex.Message); return(new Pub(log).Rollback(tallyE)); //return Result.Failure("异常:" + ex.Message); } }