模板



package kd.scan;

import java.io.IOException;
import java.lang.reflect.Method;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

 
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.content.res.AssetFileDescriptor;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
import android.hardware.barcode.Scanner;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Vibrator;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;

public class code_template extends Activity{
//模板标准变量,不允许修改{
public Handler handler;
public Handler sqlhandler;
public sqlhelper sqlhelp;
public myapplication sqlapp;
msgbox showmsg=null;
public String strUUID;
DisplayMetrics dm = new DisplayMetrics();
private MediaPlayer mediaPlayer,mediaPlayerErr;
private boolean playBeep;
private static final float BEEP_VOLUME = 0.10f;//控制音量大小
private boolean vibrate;
private boolean go;
private String strCode;//最后一次扫描的条码内容
private int kk;
private int jj;
private int intBeepCount;//qk 响声的次数
private TabHost  mytabhost;
private boolean blnIsBusy;//标记是否查询完,没有不进行下一次查询
private kd.scan.Control_Waitbar xml_template_ct_wait;
long lngSeconds=0;
private String strUserID;
private String strUserName;

//模板标准变量,不允许修改}

protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  Window window;
  window = getWindow();
   requestWindowFeature(Window.FEATURE_NO_TITLE); 
   window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
                  WindowManager.LayoutParams.FLAG_FULLSCREEN); 
   window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//屏幕常亮
  getWindowManager().getDefaultDisplay().getMetrics(dm);
  showmsg=new msgbox(this);
  setContentView(R.layout.xml_template );
  xml_template_ct_wait=(kd.scan.Control_Waitbar)findViewById(R.id.xml_template_ct_wait);
  mytabhost=(TabHost)findViewById(android.R.id.tabhost);
  mytabhost.setup();
  mytabhost.addTab(mytabhost.newTabSpec("tab1").setIndicator("页签1").setContent(R.id.xml_template_tab1));
  mytabhost.addTab(mytabhost.newTabSpec("tab2").setIndicator("页签2").setContent(R.id.xml_template_tab2));
  mytabhost.addTab(mytabhost.newTabSpec("tab3").setIndicator("页签3").setContent(R.id.xml_template_tab3));
  mytabhost.addTab(mytabhost.newTabSpec("tab4").setIndicator("页签4").setContent(R.id.xml_template_tab4));
  mytabhost.addTab(mytabhost.newTabSpec("tab5").setIndicator("页签5").setContent(R.id.xml_template_tab5));
  handler=new Handler()
  {
    public void handleMessage(Message msg)
         {
     try{
          switch(msg.what )
          {
          case Scanner.BARCODE_READ: {//扫描返回
          playBeepSoundAndVibrate();
          String strtext=(String)msg.obj;
          strtext=strtext.replace("'", "");//源头防注入
          onScanResult(strtext);
             break;
          }
          case 2://savebill返回
           blnIsBusy=false;
           showWait(false,"");
           String[] strData1;
           strData1=msg.getData().getStringArray("strData");
           if(strData1[1].equals("-1") | strData1[1].equals("-999"))
           {
               showmsg.dialog_yes_only("异常", strData1[2], "");
           }
           else
           {
         //todo 此处添加保存成功后(提交)代码
           }
           break;
          case 0: //
           blnIsBusy=false;
           showWait(false,"");
           String[] strData;
           strData=msg.getData().getStringArray("strData");
           if(strData[1].equals("-1") | strData[1].equals("-999"))
           {
               showmsg.dialog_yes_only("异常", strData[2], "");
           }
           else
           {
            //todo 此处添加查询返回后代码,根据msg.arg1区分是哪个函数调用的查询
          
         
           }
           break;
          case 1: //基本没有上,update返回,其实查询就够了
           Long rows;
           String errmsg;
             rows=msg.getData().getLong("returnRows");
             errmsg=msg.getData().getString("errmsg");
             if(rows==-1)
             {
              Log.d("qqkk","error-1:"+errmsg);
             }else if(rows==-999){
              Log.d("qqkk","error-999:"+errmsg);
             
             }
             else
             {
              Log.d("qqkk","OK:"+rows.toString());
             }
          
           break;
         
          }
          }catch(Exception ex)
          {
           showmsg.dialog_yes_only("异常", ex.getMessage(), "");
          }
         // process incoming messages here
         }
  };
  sqlapp=(myapplication)getApplicationContext();
  strUUID=sqlapp.strUUID;
  sqlhelp=sqlapp.sqlhelp;//全局变量保存数据库操作线程
  sqlhelp.superHd=handler;  
  strUserID=sqlapp.strUserID;
  strUserName=sqlapp.strUserName;
  //测试时,暂用管理员
   if(strUserID.equals("0")){//16394 Administrator
    strUserID="16394";
    strUserName="Administrator";
   }

   showWait(true,"等待控件,请稍后...");
 }
 //TODO 自定义代码区******************************************************************************** 
//提交数据
private void Submit(int Type){
    //组合数据,传递给webserevice,调用条码打印组件打印
  try{
   lngSeconds= System.currentTimeMillis();   //获取开始时间  
  if( !SubmitSafeCheck()){
   showWait(false,"");
     return;
  }
     showWait(true, "数据保存中...");
  String strHead="";//表头
  String strBillClasstypeid="-992";//-992   固定资产盘点数据保存
  String strPrintType=String.valueOf(Type);//预留控制参数0
  String strEntry="";//表体
  String strRow="";//表体的一行
 
//  //组织表体数据
//  for(int i=0;i<ada4._ds.RowCount();i++){
//   strRow=ada4.getValue(i, "资产编码")+"\\"+ada4.getValue(i, "资产名称")+"\\"+ada4.getValue(i, "型号")
//     +"\\"+ada4.getValue(i, "部门ID")+"\\"+ada4.getValue(i, "部门编码")+"\\"+ada4.getValue(i, "部门名称")
//     +"\\"+ada4.getValue(i, "使用人")+"\\"+ada4.getValue(i, "责任人");
//     
//   if(strEntry.equals("")){
//    strEntry=strRow;
//   }else{
//    strEntry=strEntry+"|"+strRow;
//   }
//  }
  //组织表头数据
//  strHead=strBillClasstypeid+"\\" +strPrintType
//    +"\\"+assetcheck_et_schemaname.getText().toString().replace("'", "")//invoice no
//    +"\\"+strUserName ;
  Log.d("cc", (System.currentTimeMillis()-lngSeconds)/1000+"秒");
 
 if(strEntry.equals("")){
  showmsg.dialog_toast("表体没有或者没有选中数据");
  showWait(false,"");
  return;
 }
  savebill(strHead,strEntry,2,0);
  }catch(Exception e){
   showWait(false,"");
   showmsg.dialog_yes_only("异常", e.getMessage(), "");
  }
 }
private boolean SubmitSafeCheck(){
     // todo 添加安全检测代码
   try{

   }catch(Exception e){
   
    showmsg.dialog_yes_only("异常","SubmitSafeCheck:"+e.getMessage(), "");
    return false;
   }
   return true;
  
  }
private void savebill(String strhead,String strentry,int intWhat,int intarg1)
   {
      try{
       if(!blnIsBusy){
        blnIsBusy=true;
      Message msg=sqlhelp.myhandler.obtainMessage();
       Bundle  data=new Bundle();
//          strSQL="select isnull(a.fitemid,'')+' '   fstockid,isnull(a.fname,'')+' '  fstockname,isnull(a.fnumber,'')+' '  fstocknumber,isnull(b.fspid,'')+' '  fstockplaceid,isnull(b.fname,'') +' ' fstockplacename,isnull(b.ffullnumber,'') +' '  fstockplacenumber  "
//           + "  from t_stock  a left join t_stockplace b on a.fspgroupid=b.fspgroupid  "
//           +"  where a.fdeleted=0 and b.fdeleted=0   and a.fnumber='"+strStockNo+"'  and  b.ffullnumber='"+strStockPlaceNo+"'";
       
       data.putString("strhead", strhead);
       data.putString("strentry", strentry);
          data.putString("strYear", strUUID);
       msg.setData(data);
          msg.what =intWhat;
          msg.arg1=intarg1;//通过arg1来区分是哪个函数调用的
          sqlhelp.myhandler.sendMessage(msg);
          }
      }catch(Exception ex){
      showmsg.dialog_yes_only("异常", "savebill:"+ex.getMessage(), "");
      }
   }
 //把选中的行的内容填写到编辑页签
private void setEditText(int intRow)
  {
   if(intRow>=0){
   
   }else{//清空内容
    
   }
  }

private void showData(String[] strData){
    try{
    String strBarcode="";
    List<String>   ll=new ArrayList<String>();
    DataSet _ds=new DataSet();
    _ds.SetDataSource(strData);
    
    if(_ds.RowCount()==0){
     showmsg.dialog_toast("没有数据");
     setEditText(-1);
    }
   
   
    }catch(Exception e){
     showmsg.dialog_yes_only("异常","showdata4:"+e.getMessage(), "");
    }
 }
   
//检测条码是否重复扫描 
private String  checkBarCodeRepeat(DataSet _ds){
//     
//      String strBarCode="";
//      for(int i=0;i<ada4._ds.RowCount();i++){
//       strBarCode=ada4.getValue(i, "资产编码");
//       for(int j=0;j<_ds.RowCount();j++){
//        if(strBarCode.equals(_ds.GetValue(j, "资产编码"))){
//         return _ds.GetValue(j, "资产编码");
//        }
//       }
//      }
      return "";
     }
//基础资料选择
private void ItemSelect(int requestCode,int Itemclass){
  Intent tt=new Intent(this,baseinfolookup.class );
  tt.putExtra("itemclassid", Itemclass);//
     startActivityForResult(tt,requestCode); //如果用R.id.btitemnofrom,因为数据太长,系统会报错:can only use lower 16 bits for requestCode
}
//处理扫描返回的内容
private void onScanResult(String strScanCode){
   String strStockNo="",strStockPlaceNo="";
   String strBZcode="";//包装条码
   
   int       intIndex=0;
   try{
    if(strScanCode.startsWith("CK")  &  strScanCode.indexOf("|")>0)//仓库仓位条码格式CK004|CW004_000_00_00
    {
    }
    else if(strScanCode.startsWith("CMD")){//扫描了命令条码
       if(strScanCode.equals("CMD提交")){
    
       }
    }
    else//其它情况都认为是扫描了条码,其它情况包括:扫描了仓库仓位,也有可能扫描了职员等
    {
    
//      String strSQL="";
//     strCode=strScanCode;
//        strSQL= " ";
//        showWait(true,"卡片信息读取中...");
//          SendSQLHandler(strSQL,0,1);
   }
    
   }catch(Exception ex){
    showmsg.dialog_yes_only("异常", "onScanResult:"+ex.getMessage(), "");
   }
  }
private void SendSQLHandler(String strSQL,int intWhat,int intarg1)
   {
      try{
       if(!blnIsBusy){
        blnIsBusy=true;
      Message msg=sqlhelp.myhandler.obtainMessage();
       Bundle  data=new Bundle();
//          strSQL="select isnull(a.fitemid,'')+' '   fstockid,isnull(a.fname,'')+' '  fstockname,isnull(a.fnumber,'')+' '  fstocknumber,isnull(b.fspid,'')+' '  fstockplaceid,isnull(b.fname,'') +' ' fstockplacename,isnull(b.ffullnumber,'') +' '  fstockplacenumber  "
//            + "  from t_stock  a left join t_stockplace b on a.fspgroupid=b.fspgroupid  "
//            +"  where a.fdeleted=0 and b.fdeleted=0   and a.fnumber='"+strStockNo+"'  and  b.ffullnumber='"+strStockPlaceNo+"'";
        data.putString("strSQL", strSQL);
       
          data.putString("strYear", strUUID);
       msg.setData(data);
          msg.what =intWhat;
          msg.arg1=intarg1;//通过arg1来区分是哪个函数调用的
          sqlhelp.myhandler.sendMessage(msg);
          }
      }catch(Exception ex){
      showmsg.dialog_yes_only("异常", "SendSQLHandler:"+ex.getMessage(), "");
      }
   }
//显示或者隐藏进度条
private void showWait(boolean blnShow,String strmsg){
   if(blnShow){
    xml_template_ct_wait.setVisibility(View.VISIBLE);
    xml_template_ct_wait.setText(strmsg);
   }else{
    xml_template_ct_wait.setVisibility(View.INVISIBLE);
    xml_template_ct_wait.setText("");
   }
  }
//***************系统函数区***********************************************************************************
protected void onResume() { 
      try{
           playBeep = true;
           AudioManager audioService = (AudioManager) getSystemService(AUDIO_SERVICE);
           if (audioService.getRingerMode() != AudioManager.RINGER_MODE_NORMAL) {
            playBeep = false;
           }
           initBeepSound();
           initBeepSoundErr();
           vibrate = true;
           super.onResume(); 
           sqlhelp.superHd=handler;//切回本activity执行sql需要的handler
 
       }catch(Exception ex)
       {
        showmsg.dialog_yes_only("异常", "onResume:"+ex.getMessage(), "");
       }
       
    }
protected void onStart() {
   // TODO Auto-generated method stub
   // TODO Auto-generated method stub
     try{
   Scanner.m_handler=handler; 
   //初始化扫描头
   Scanner.InitSCA(); 
   super.onStart();  
     }catch(Exception e){
      showmsg.dialog_yes_only("异常",e.getMessage(), "");
     }
  }
public boolean onKeyDown(int keyCode, KeyEvent event) {
   // TODO Auto-generated method stub
   
   if(event.getRepeatCount()==0){
    if(keyCode==4)
    { 
    // finish();
    }    
      else if((keyCode==220))    // KEYCODE_BRIGHTNESS_DOWN
    {
       if(!blnIsBusy)   {
     Scanner.Read(); }
    }
   }
   
   return super.onKeyDown(keyCode, event);
  }
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
     String scantext;
        String strStockinfo;
    String[] strdata;
   String strisreturn="";
   try{
     //todo 此处添加调用其他activity返回后响应代码,常用于基础资料查询返回和日期选择返回
   
      }catch(Exception e)
      {
        showmsg.dialog_err_only("异常", "onActivityResult:"+e.getMessage(), "");
      }
    }
public boolean onCreateOptionsMenu(Menu menu) {
     setIconEnable(menu, true);  //android 4.0显示菜单图标有问题,需用反射
     menu.add( 1,R.string.xml_template_out,0,R.string.xml_template_out).setIcon(android.R.drawable.stat_sys_upload);
    menu.add( 1,R.string.xml_template_in,0,R.string.xml_template_in).setIcon(android.R.drawable.stat_sys_download);
    //menu.add( 1,R.string.xml_template_print,0,R.string.xml_template_print).setIcon(android.R.drawable.ic_menu_view);
    menu.add( 1,R.string.xml_template_print,0,R.string.xml_template_print).setIcon(R.drawable.print);
     menu.add( 1,R.string.xml_template_del,0,R.string.xml_template_del).setIcon(android.R.drawable.ic_menu_delete);
   // menu.add( 1,R.string.xml_template_del,0,R.string.xml_template_del).setIcon(R.drawable.agt);
    menu.add( 1,R.string.xml_template_del,0,R.string.xml_template_reset).setIcon(android.R.drawable.ic_menu_rotate);
    menu.add( 1,R.string.xml_template_save,0,R.string.xml_template_save).setIcon(android.R.drawable.ic_menu_save);
   
   return true;
  }
private void setIconEnable(Menu menu, boolean enable) 
     { 
         try  
        {  //利用反射
             Class<?> clazz = Class.forName("com.android.internal.view.menu.MenuBuilder"); 
             Method m = clazz.getDeclaredMethod("setOptionalIconsVisible", boolean.class); 
            m.setAccessible(true); 
           
             //MenuBuilder实现Menu接口,创建菜单时,传进来的menu其实就是MenuBuilder对象(java的多态特征) 
            m.invoke(menu, enable); 
              
       } catch (Exception e)  
        { 
            e.printStackTrace(); 
         } 
    } 

public boolean onMenuItemSelected(int featureId, MenuItem item) {
   // TODO Auto-generated method stub
  
   try{
   if(item.getGroupId()==1)
   {
      switch(item.getItemId())
      {
      case R.string.xml_template_save://保存数据
     //todo
       showmsg.dialog_err_only("异常", "保存失败", "" );
       break;
      }

   }
   }catch(Exception e)
   {
    showmsg.dialog_yes_only("异常", e.getMessage(), "");
   }
   return super.onMenuItemSelected(featureId, item);
  }
private void initBeepSound() {
  if (playBeep && mediaPlayer == null) {
   // The volume on STREAM_SYSTEM is not adjustable, and users found it
   // too loud,
   // so we now play on the music stream.
   setVolumeControlStream(AudioManager.STREAM_MUSIC);
   mediaPlayer = new MediaPlayer();
   mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
   mediaPlayer.setOnCompletionListener(beepListener);

//   AssetFileDescriptor file = getResources().openRawResourceFd(
//     R.raw.beep);
   AssetFileDescriptor file = getResources().openRawResourceFd(
     R.raw.beep);
   try {
    mediaPlayer.setDataSource(file.getFileDescriptor(),
      file.getStartOffset(), file.getLength());
    file.close();
    mediaPlayer.setVolume(BEEP_VOLUME, BEEP_VOLUME);
   
    mediaPlayer.prepare();
   } catch (IOException e) {
    mediaPlayer = null;
   }
  }
 }
private void initBeepSoundErr() {
  if (playBeep && mediaPlayerErr == null) {
   // The volume on STREAM_SYSTEM is not adjustable, and users found it
   // too loud,
   // so we now play on the music stream.
   setVolumeControlStream(AudioManager.STREAM_MUSIC);
   mediaPlayerErr = new MediaPlayer();
   mediaPlayerErr.setAudioStreamType(AudioManager.STREAM_MUSIC);
   mediaPlayerErr.setOnCompletionListener(beepListener);

//   AssetFileDescriptor file = getResources().openRawResourceFd(
//     R.raw.beep);
   AssetFileDescriptor file = getResources().openRawResourceFd(
     R.raw.err1);
   try {
    mediaPlayerErr.setDataSource(file.getFileDescriptor(),
      file.getStartOffset(), file.getLength());
    file.close();
    mediaPlayerErr.setVolume(BEEP_VOLUME, BEEP_VOLUME);
   
    mediaPlayerErr.prepare();
   } catch (IOException e) {
    mediaPlayerErr = null;
   }
  }
 }
private static final long VIBRATE_DURATION = 200L;//震动时间  qk
private void playBeepSoundAndVibrate() {
  if (playBeep && mediaPlayer != null) {
   mediaPlayer.start();
   
  }
  if (vibrate) {
   Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
   vibrator.vibrate(VIBRATE_DURATION);
  }
 }
private void playBeepSoundAndVibrateErr() {
  if (playBeep && mediaPlayerErr != null) {
   mediaPlayerErr.start();
   
  }
  if (vibrate) {
   Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
   vibrator.vibrate(VIBRATE_DURATION);
  }
 }
 /**
  * When the beep has finished playing, rewind to queue up another one.
  */
private final OnCompletionListener beepListener = new OnCompletionListener() {
  public void onCompletion(MediaPlayer mediaPlayer) {
   mediaPlayer.seekTo(0);
    if(intBeepCount>0)
    {
    mediaPlayer.start();//qk  连续响几次
    intBeepCount--;
    }
   
  }
 };

}

--

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <kd.scan.Control_Waitbar
        android:id="@+id/xml_template_ct_wait"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        ></kd.scan.Control_Waitbar>
<!--     <LinearLayout  -->
<!--         android:id="@+id/xml_template_ll_wait" -->
<!--         android:layout_width="300dp" -->
<!--         android:layout_height="wrap_content" -->
<!--         android:orientation="horizontal" -->
<!--         android:background="@drawable/waitbar" -->
<!--         android:layout_gravity="center" -->
<!--         android:visibility="visible" -->
<!--         > -->
<!--          <ProgressBar -->
<!--         android:id="@+id/xml_template_wait" -->
<!--         android:layout_width="wrap_content" -->
<!--         android:layout_height="wrap_content" -->
<!--         android:layout_gravity="center_vertical" -->
<!--          /> -->
<!--      <TextView  -->
<!--     android:id="@+id/xml_template_tv_waitmsg" -->
<!--     android:layout_width="wrap_content" -->
<!--     android:layout_height="wrap_content" -->
<!--     android:layout_gravity="center_vertical" -->
<!--     android:textColor="@color/white" -->
<!--     android:text="代码模板,请稍后..." -->
<!--          /> -->
<!--     </LinearLayout> -->
   
     <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
      
        android:orientation="vertical"
        >
     
     <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
         
            ></TabWidget>
       <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            >
 
     <!--    *******************************************xml_template_tab1********************************************* -->
       <RelativeLayout 
    android:id="@+id/xml_template_tab1"
         android:background="#00000000"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
       
     </RelativeLayout>
    
     <!--   *********************************xml_template_tab2*************************************** -->
 
     <LinearLayout
         android:id="@+id/xml_template_tab2"
      android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
         >
                 
     </LinearLayout>
    <!--   *********************************xml_template_tab3*************************************** -->
 
     <LinearLayout
         android:id="@+id/xml_template_tab3"
      android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
         >
                 
     </LinearLayout>
     <!--   *********************************xml_template_tab4*************************************** -->
 
     <LinearLayout
         android:id="@+id/xml_template_tab4"
      android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
         >
                 
     </LinearLayout>
     <!--   *********************************xml_template_tab5*************************************** -->
 
     <LinearLayout
         android:id="@+id/xml_template_tab5"
      android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
         >
                 
     </LinearLayout>
  </FrameLayout>
  </LinearLayout>   


</TabHost>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在现有省、市港口信息化系统进行有效整合基础上,借鉴新 一代的感知-传输-应用技术体系,实现对码头、船舶、货物、重 大危险源、危险货物装卸过程、航管航运等管理要素的全面感知、 有效传输和按需定制服务,为行政管理人员和相关单位及人员提 供高效的管理辅助,并为公众提供便捷、实时的水运信息服务。 建立信息整合、交换和共享机制,建立健全信息化管理支撑 体系,以及相关标准规范和安全保障体系;按照“绿色循环低碳” 交通的要求,搭建高效、弹性、高可扩展性的基于虚拟技术的信 息基础设施,支撑信息平台低成本运行,实现电子政务建设和服务模式的转变。 实现以感知港口、感知船舶、感知货物为手段,以港航智能 分析、科学决策、高效服务为目的和核心理念,构建“智慧港口”的发展体系。 结合“智慧港口”相关业务工作特点及信息化现状的实际情况,本项目具体建设目标为: 一张图(即GIS 地理信息服务平台) 在建设岸线、港口、港区、码头、泊位等港口主要基础资源图层上,建设GIS 地理信息服务平台,在此基础上依次接入和叠加规划建设、经营、安全、航管等相关业务应用专题数据,并叠 加动态数据,如 AIS/GPS/移动平台数据,逐步建成航运管理处 "一张图"。系统支持扩展框架,方便未来更多应用资源的逐步整合。 现场执法监管系统 基于港口(航管)执法基地建设规划,依托统一的执法区域 管理和数字化监控平台,通过加强对辖区内的监控,结合移动平 台,形成完整的多维路径和信息追踪,真正做到问题能发现、事态能控制、突发问题能解决。 运行监测和辅助决策系统 对区域港口与航运业务日常所需填报及监测的数据经过科 学归纳及分析,采用统一平台,消除重复的填报数据,进行企业 输入和自动录入,并进行系统智能判断,避免填入错误的数据, 输入的数据经过智能组合,自动生成各业务部门所需的数据报 表,包括字段、格式,都可以根据需要进行定制,同时满足扩展 性需要,当有新的业务监测数据表需要产生时,系统将分析新的 需求,将所需字段融合进入日常监测和决策辅助平台的统一平台中,并生成新的所需业务数据监测及决策表。 综合指挥调度系统 建设以港航应急指挥中心为枢纽,以各级管理部门和经营港 口企业为节点,快速调度、信息共享的通信网络,满足应急处置中所需要的信息采集、指挥调度和过程监控等通信保障任务。 设计思路 根据项目的建设目标和“智慧港口”信息化平台的总体框架、 设计思路、建设内容及保障措施,围绕业务协同、信息共享,充 分考虑各航运(港政)管理处内部管理的需求,平台采用“全面 整合、重点补充、突出共享、逐步完善”策略,加强重点区域或 运输通道交通基础设施、运载装备、运行环境的监测监控,完善 运行协调、应急处置通信手段,促进跨区域、跨部门信息共享和业务协同。 以“统筹协调、综合监管”为目标,以提供综合、动态、实 时、准确、实用的安全畅通和应急数据共享为核心,围绕“保畅通、抓安全、促应急"等实际需求来建设智慧港口信息化平台。 系统充分整合和利用航运管理处现有相关信息资源,以地理 信息技术、网络视频技术、互联网技术、移动通信技术、云计算 技术为支撑,结合航运管理处专网与行业数据交换平台,构建航 运管理处与各部门之间智慧、畅通、安全、高效、绿色低碳的智 慧港口信息化平台。 系统充分考虑航运管理处安全法规及安全职责今后的变化 与发展趋势,应用目前主流的、成熟的应用技术,内联外引,优势互补,使系统建设具备良好的开放性、扩展性、可维护性。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值