示例#1
0
 /// <summary>
 /// 测试CTOS OCR能否正常访问
 /// </summary>
 /// <returns></returns>
 public string CheckCTOSAPI()
 {
     try
     {
         CtosAPIBLL.CM005001("TEST1234567", TICKET);
         return(string.Empty);
     }
     catch (Exception ex)
     {
         return(ex.Message);
     }
 }
示例#2
0
        /// <summary>
        /// 更新桥吊作业配置
        /// </summary>
        /// <param name="row"></param>
        public void UpdateQCSet(QcSet.T_OCR_QCSETRow row)
        {
            //校验
            if (row.WORKTYPE == "智能" || row.WORKTYPE == "内理")
            {
                if (string.IsNullOrEmpty(row.CONTRACTOR_CODE))
                {
                    throw new Exception("请输入承包商代码");
                }
                if (string.IsNullOrEmpty(row.COMMEND_ID))
                {
                    throw new Exception("请输入指挥手工号");
                }
                if (string.IsNullOrEmpty(row.COMMEND_PAW))
                {
                    throw new Exception("请输入指挥手密码");
                }
                if (string.IsNullOrEmpty(row.DRIVER_ID))
                {
                    throw new Exception("请输入桥吊司机工号");
                }
                if (string.IsNullOrEmpty(row.SHIP_CODE))
                {
                    throw new Exception("请输入船名代码");
                }
                if (string.IsNullOrEmpty(row.IN_VOYAGE_CODE))
                {
                    throw new Exception("请输入进口航次");
                }
                if (string.IsNullOrEmpty(row.OUT_VOYAGE_CODE))
                {
                    throw new Exception("请输入出口航次");
                }
                if (string.IsNullOrEmpty(row.TERMINAL_NO))
                {
                    throw new Exception("请输入无线终端号");
                }
                if (string.IsNullOrEmpty(row.SHIPMENT_DEAL))
                {
                    throw new Exception("请输入装船人工处理");
                }
                if (string.IsNullOrEmpty(row.BERTH_WAY))
                {
                    throw new Exception("请输入靠弦方向");
                }
            }


            row.DEVICE_TYPE = 0;
            row.IS_CHANGE   = 0;
            row.VOYAGE_TYPE = "EX";

            //智能作业模式需登录CTOS
            if (row.WORKTYPE == "智能" || row.WORKTYPE == "内理")
            {
                //读当前设置
                QcSet.T_OCR_QCSETRow row1 = SelectQCSet(row.TRVALCRANE_NO);
                //需要重新登录,修改了指挥手,状态改为作业中
                if (row1.COMMEND_ID != row.COMMEND_ID || row1.DRIVER_ID != row.DRIVER_ID || (row1.STATUS != "作业中" && row.STATUS == "作业中"))
                {
                    if ((row1.COMMEND_ID != row.COMMEND_ID || row1.DRIVER_ID != row.DRIVER_ID) && row1.STATUS == "作业中")
                    {
                        //船舶初始化退出
                        CtosResult op06 = CtosAPIBLL.OP007006(row1.COMMEND_ID, row1.DEVICE_NO, row1.TRVALCRANE_NO, row1.DRIVER_ID, row1.CONTRACTOR_CODE, row1.TICKET_ID);
                    }

                    CtosResult rs = CtosAPIBLL.OP007001(row.COMMEND_ID, row.COMMEND_PAW, row.TERMINAL_NO,
                                                        MainBLL.Parms.DEVICEIP, MainBLL.Parms.TICKETID);

                    //if (row1.DRIVER_ID != row.DRIVER_ID)
                    //{
                    //船舶初始化
                    CtosResult op07 = CtosAPIBLL.OP007030(row.TRVALCRANE_NO, row.DRIVER_ID, row.CONTRACTOR_CODE, row.COMMEND_ID,
                                                          row.SHIP_CODE, row.OUT_VOYAGE_CODE, row.DEVICE_NO, "O", row.BERTH_NUM, row.TICKET_ID);

                    //}

                    if (rs.ERRORCODE != CtosAPIBLL.SUCCESSCODE)
                    {
                        if (string.IsNullOrEmpty(rs.ERRORCODE))
                        {
                            rs.ERRORMSG = ctosDAL.SelectErrcode(Convert.ToInt32(rs.ERRORCODE));
                        }
                        throw new Exception(string.Format("调用CTOS接口OP007001出错。\r\n错误代码{0}\r\n错误描述{1}", rs.ERRORCODE, rs.ERRORMSG));
                    }
                    else
                    {
                        row.TICKET_ID = rs.DIC["TICKET_ID"];
                        if (row1.COMMEND_ID != row.COMMEND_ID)
                        {
                            //原指挥手退出
                            CtosResult rs2 = CtosAPIBLL.OP007002(row1.COMMEND_ID, row1.TERMINAL_NO, row1.TICKET_ID);
                        }
                    }
                }
                //注销 停止作业
                else if (row1.STATUS != "停止作业" && row.STATUS == "停止作业")
                {
                    //船舶初始化退出
                    CtosResult op06 = CtosAPIBLL.OP007006(row.COMMEND_ID, row.DEVICE_NO, row.TRVALCRANE_NO, row.DRIVER_ID, row.CONTRACTOR_CODE, row1.TICKET_ID);

                    CtosResult rs3 = CtosAPIBLL.OP007002(row.COMMEND_ID, row.TERMINAL_NO, row1.TICKET_ID);

                    if (rs3.ERRORCODE != CtosAPIBLL.SUCCESSCODE)
                    {
                        if (string.IsNullOrEmpty(rs3.ERRORCODE))
                        {
                            rs3.ERRORMSG = ctosDAL.SelectErrcode(Convert.ToInt32(rs3.ERRORCODE));
                        }
                        throw new Exception(string.Format("调用CTOS接口OP007002出错。\r\n错误代码{0}\r\n错误描述{1}", rs3.ERRORCODE, rs3.ERRORMSG));
                    }
                    else
                    {
                        //清空数据
                        row.CONTRACTOR_CODE   = string.Empty;
                        row.COMMEND_ID        = string.Empty;
                        row.COMMEND_PAW       = string.Empty;
                        row.DRIVER_ID         = string.Empty;
                        row.SHIP_CODE         = string.Empty;
                        row.IN_VOYAGE_CODE    = string.Empty;
                        row.OUT_VOYAGE_CODE   = string.Empty;
                        row.BERTH_NUM         = string.Empty;
                        row.BERTHPLANNO       = 0;
                        row.VESSELALIASE      = string.Empty;
                        row.INAGENT           = string.Empty;
                        row.OUTAGENT          = string.Empty;
                        row.OWNER             = string.Empty;
                        row.AVESSELNAME       = string.Empty;
                        row.INVESSELLINECODE  = string.Empty;
                        row.OUTVESSELLINECODE = string.Empty;
                    }
                }
            }
            else
            {
                //如果是驳船HKS航线且进出口船代为空,报错
                //if (row.INVESSELLINECODE == "HKS" && string.IsNullOrEmpty(row.INAGENT))
                //{
                //    throw new Exception("该船的进口船代为空,不能保存!请联系驳船计划补录进口船代");
                //}
                //if (row.OUTVESSELLINECODE == "HKS" && string.IsNullOrEmpty(row.OUTAGENT))
                //{
                //    throw new Exception("该船的出口船代为空,不能保存!请联系驳船计划补录出口船代");
                //}

                //核封模式要输入船名航次
                //校验
                if (row.WORKTYPE == "核封")
                {
                    if (string.IsNullOrEmpty(row.SHIP_CODE))
                    {
                        throw new Exception("请输入船名代码");
                    }
                    if (string.IsNullOrEmpty(row.IN_VOYAGE_CODE))
                    {
                        throw new Exception("请输入进口航次");
                    }
                    if (string.IsNullOrEmpty(row.OUT_VOYAGE_CODE))
                    {
                        throw new Exception("请输入出口航次");
                    }
                    if (string.IsNullOrEmpty(row.BERTH_NUM))
                    {
                        throw new Exception("泊位号不能为空");
                    }
                }


                if (row.STATUS == "停止作业")
                {
                    //清空数据
                    row.CONTRACTOR_CODE   = string.Empty;
                    row.COMMEND_ID        = string.Empty;
                    row.COMMEND_PAW       = string.Empty;
                    row.DRIVER_ID         = string.Empty;
                    row.SHIP_CODE         = string.Empty;
                    row.IN_VOYAGE_CODE    = string.Empty;
                    row.OUT_VOYAGE_CODE   = string.Empty;
                    row.BERTH_NUM         = string.Empty;
                    row.BERTHPLANNO       = 0;
                    row.VESSELALIASE      = string.Empty;
                    row.WORKTYPE          = "智能";
                    row.INAGENT           = string.Empty;
                    row.OUTAGENT          = string.Empty;
                    row.OWNER             = string.Empty;
                    row.AVESSELNAME       = string.Empty;
                    row.INVESSELLINECODE  = string.Empty;
                    row.OUTVESSELLINECODE = string.Empty;
                }
            }

            row.OPERATOR_UID = Config.UserId;

            DAL.cctdbDAL.UpdateQCSet(row);
        }