Пример #1
0
        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);
        }
Пример #2
0
        /// <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;
        }
Пример #3
0
        /// <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;
        }
Пример #4
0
        /// <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;
        }
Пример #5
0
        /// <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);
            }
        }
Пример #6
0
 /// <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;
 }
Пример #7
0
        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);
            }
        }
Пример #8
0
        /// <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));
            }
        }
Пример #9
0
        /// <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;
        }
Пример #10
0
        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);
        }
Пример #11
0
        /// <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]));
Пример #12
0
        /// <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;
        }
Пример #13
0
        /// <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);
                }
            }
        }
Пример #14
0
        /// <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;
        }
Пример #15
0
        /// <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;
        }
Пример #16
0
        /// <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);
            }
        }