精华内容
下载资源
问答
  • 统计员工业绩app是一款效率办公应用,统计员工业绩app提供了高效的客户管理和考勤管理功能,实现企业办公无纸化,大大提高了企业员工办公效率。功能介绍一个好的团队,需要一个好的管理;一个好的管理,需要一个好的...

    统计员工业绩app是一款效率办公应用,统计员工业绩app提供了高效的客户管理和考勤管理功能,实现企业办公无纸化,大大提高了企业员工办公效率。

    功能介绍

    一个好的团队,需要一个好的管理;一个好的管理,需要一个好的工具;“统计员工业绩”APP是一款让你随时掌管团队的好工具。

    通过GPS技术、数字化技术、大数据挖掘技术、云应用技术、掌上签名技术等,实现对业务员的精准考勤、数字化业务员的工作细节,移动化处理工作任务、实时了解团队情况等的功能。极大的提高业务处理效率。从而有效实现业务员绩效与维护客户关系的有效应用。

    软件特色

    1、高效的客户打理功能,到访定位客户位置,自动安位置排序客户资料;

    2、业务员行为考勤管理,实现位置考勤、拜访客户位置记录、工作任务提示等;

    3、企业无纸化办公,现在在线合同申请、审批、工作汇报提交、无纸化报销申报、位置识别考勤等功能。

    更新日志

    1、客户管理、合作伙伴独立

    2、一体化通知查看中心

    3、考勤、工作任务、合同管理流程化

    4、签字方式的审核办法

    相关下载:手机办公   手机效率软件

    下载地址:http://30tqyb.com/app/425567.html

    展开全文
  • 员工管理系统、 开发工具:Android Studio 数据库: sqlite 数据库 部分源码 manifest.xml配置文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=...

    员工管理系统、

    开发工具:Android Studio
    数据库: sqlite
    源码:https://gitee.com/van_is_dead/company
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    数据库
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    部分源码
    manifest.xml配置文件

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.company">
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".SearchActivity"></activity>
            <activity android:name=".GuanliActivity" />
            <activity android:name=".GloginActivity" />
            <activity android:name=".RegisterActivity" />
            <activity android:name=".IntroductionActivity" />
            <activity android:name=".NewsActivity" />
            <activity android:name=".FirstActivity" />
    
            <activity android:name=".LoginActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    

    员工界面

    package com.example.company;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.database.Cursor;
    import android.database.SQLException;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.os.Bundle;
    import android.text.format.Time;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.SimpleCursorAdapter;
    import android.widget.TextView;
    import android.widget.Toast;
    
    
    public class FirstActivity extends AppCompatActivity {
    
        private Cursor cursor;
        @Override
        public void onDestroy(){
            super.onDestroy();
            cursor.close();
        }
    
    
    
        //定义共享优先数据及基础字段  用于签到功能实现
        private String MY_RMBCost ="MY_RMBCost";
    
        private String TodayTime ="TodayTime";
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_first);
    
            //--------------------------------------------------------------登录
            Button btnlongin = findViewById(R.id.login);
            btnlongin.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(FirstActivity.this,LoginActivity.class);
                    startActivity(intent);
                }
            });
    
            //-------------------------------------------------------------签到
            final Button bt_qiandao = (Button)findViewById(R.id.bt_qiandao);
            final TextView tv_time = (TextView)findViewById(R.id.tv_qiandaotime);
    
            SharedPreferences my_rmb_data = getSharedPreferences(MY_RMBCost, 0);//读取共享数据
    
            Time t = new Time();
            t.setToNow();
            int lastmonth = t.month + 1 ;
            final String str =  t.year + "年" + lastmonth + "月" + t.monthDay + "日";
    
    
            final String nowtime =my_rmb_data.getString(TodayTime, "").toString();
    
            if(nowtime.equals(str)==true)
            {
                tv_time.setText("日期:"+ nowtime +"已签到!");
                bt_qiandao.setBackgroundResource(R.drawable.yqd);
                bt_qiandao.setText("✔签到");
            }
            else
            {
                tv_time.setText("日期:"+ str);
                bt_qiandao.setBackgroundResource(R.drawable.qd);
            }
    
            //签到功能
            bt_qiandao.setOnClickListener(new View.OnClickListener() {
    
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    SharedPreferences my_rmb_data = getSharedPreferences(MY_RMBCost, 0);
                    if(my_rmb_data.getString(TodayTime, "").toString().equals(str)==true)
                    {
                        Toast.makeText(FirstActivity.this , "今日已签到!", Toast.LENGTH_SHORT).show();
                    }
                    else
                    {
                        my_rmb_data.edit()
                                .putString(TodayTime, str)
                                .commit();
                        tv_time.setText("日期:"+ str +"已签到!");
                        bt_qiandao.setBackgroundResource(R.drawable.yqd);
                        bt_qiandao.setText("✔签到");
                        Toast.makeText( FirstActivity.this , "签到成功!", Toast.LENGTH_SHORT).show();
                    }
                }
            });
            //-------------------------------------每日资讯
            //ArrayAdapter<News> listAdapter= new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,News.news);
    
    
            ListView listnews = findViewById(R.id.list_news);
            //listnews.setAdapter(listAdapter);
    
            //设置游标适配器
            SQLiteOpenHelper starbuzzDatabaseHelper=new CompanyDatabaseHelper(this);
            //获得数据库引用
            try {
                SQLiteDatabase db =starbuzzDatabaseHelper.getReadableDatabase();
                cursor = db.query("NEWS",
                        new String[]{"_id","TITLE"},
                        null,null,null,null,null);
                SimpleCursorAdapter listAdapter = new SimpleCursorAdapter(this,
                        android.R.layout.simple_list_item_1,
                        cursor,
                        new String[]{"TITLE"},
                        new int[]{android.R.id.text1},
                        0);
                listnews.setAdapter(listAdapter);
    
            }catch (SQLException e){
                Log.e("sqlite",e.getMessage());
                Toast toast=Toast.makeText(this,"Database unavaiable",Toast.LENGTH_SHORT);
                toast.show();
            }
            //指定监听器 相应选项单击
            AdapterView.OnItemClickListener itemClickListener=new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    
                    Intent intent = new Intent(FirstActivity.this,NewsActivity.class);
                    intent.putExtra(NewsActivity.EXTRA_DRINKID,(int)id);
                    startActivity(intent);
    
                }
            };
            listnews.setOnItemClickListener(itemClickListener);
            //-------------------------------------------------公司简介
            Button btnintroduction = findViewById(R.id.introduction);
            btnintroduction.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(FirstActivity.this,IntroductionActivity.class);
                    startActivity(intent);
                }
            });
    
        }
    }
    
    

    登录注册

    package com.example.company;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.LinearLayout;
    import android.widget.RelativeLayout;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import java.util.ArrayList;
    
    public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
    
    //    @Override
    //    protected void onCreate(Bundle savedInstanceState) {
    //        super.onCreate(savedInstanceState);
    //        setContentView(R.layout.activity_login);
    //
    //        Button mbtnlogin = findViewById(R.id.btn_login);
    //        mbtnlogin.setOnClickListener(new View.OnClickListener() {
    //            @Override
    //            public void onClick(View v) {
    //
    //                Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
    //                Intent intent = new Intent(LoginActivity.this,FirstActivity.class);
    //                startActivity(intent);
    //            }
    //        });
    //
    //        Button btnback = findViewById(R.id.btn_back);
    //        btnback.setOnClickListener(new View.OnClickListener() {
    //            @Override
    //            public void onClick(View v) {
    //                Intent intent = new Intent(LoginActivity.this,FirstActivity.class);
    //                startActivity(intent);
    //            }
    //        });
    //    }
        private CompanyDatabaseHelper mDBOpenHelper;
    
        private EditText mEtLoginactivityUsername;
        private EditText mEtLoginactivityPassword;
        private Button mBtLonginactivittRegister;
        private Button mBtLoginactivityLogin;
        private Button mBtLoginactivityGl;
        private String rname;
        private String rpassword;
    
    
        /**
         * 创建 Activity 时先来重写 onCreate() 方法
         * 保存实例状态
         * super.onCreate(savedInstanceState);
         * 设置视图内容的配置文件
         * setContentView(R.layout.activity_login);
         * 上面这行代码真正实现了把视图层 View 也就是 layout 的内容放到 Activity 中进行显示
         * 初始化视图中的控件对象 initView()
         * 实例化 DBOpenHelper,待会进行登录验证的时候要用来进行数据查询
         * mDBOpenHelper = new DBOpenHelper(this);
         */
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
    
            initView();
            rpassword();
    
            mDBOpenHelper = new CompanyDatabaseHelper(this);
        }
    
       //记住密码
        private void rpassword(){
            if(rname!=null && rpassword!=null)
            {
                mEtLoginactivityUsername.setText(rname);
                mEtLoginactivityPassword.setText(rpassword);
            }
        }
        /**
         * onCreae()中大的布局已经摆放好了,接下来就该把layout里的东西
         * 声明、实例化对象然后有行为的赋予其行为
         * 这样就可以把视图层View也就是layout 与 控制层 Java 结合起来了
         */
        private void initView() {
            // 初始化控件
            mBtLoginactivityLogin = findViewById(R.id.bt_loginactivity_login);
            mBtLoginactivityGl = findViewById(R.id.bt_loginactivityGl);
           mBtLonginactivittRegister = findViewById(R.id.bt_loginactivity_register);
            mEtLoginactivityUsername = findViewById(R.id.et_loginactivity_username);
            mEtLoginactivityPassword = findViewById(R.id.et_loginactivity_password);
    
    
    
    
            // 设置点击事件监听器
            mBtLoginactivityLogin.setOnClickListener(this);
            mBtLonginactivittRegister.setOnClickListener(this);
            mBtLoginactivityGl.setOnClickListener(this);
        }
    
        public void onClick(View view) {
            switch (view.getId()) {
                // 跳转到注册界面
                case R.id.bt_loginactivity_register:
                    startActivity(new Intent(this, RegisterActivity.class));
                    finish();
                    break;
                case R.id.bt_loginactivityGl:
                    startActivity(new Intent(this,GloginActivity.class));
                    finish();
                    break;
                    /**
                 * 登录验证:
                 *
                 * 从EditText的对象上获取文本编辑框输入的数据,并把左右两边的空格去掉
                 *  String name = mEtLoginactivityUsername.getText().toString().trim();
                 *  String password = mEtLoginactivityPassword.getText().toString().trim();
                 *  进行匹配验证,先判断一下用户名密码是否为空,
                 *  if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password))
                 *  再进而for循环判断是否与数据库中的数据相匹配
                 *  if (name.equals(user.getName()) && password.equals(user.getPassword()))
                 *  一旦匹配,立即将match = true;break;
                 *  否则 一直匹配到结束 match = false;
                 *
                 *  登录成功之后,进行页面跳转:
                 *
                 *  Intent intent = new Intent(this, MainActivity.class);
                 *  startActivity(intent);
                 *  finish();//销毁此Activity
                 */
                case R.id.bt_loginactivity_login:
                    String name = mEtLoginactivityUsername.getText().toString().trim();
                    String password = mEtLoginactivityPassword.getText().toString().trim();
                     rname = name;
                     rpassword = password;
    
                    if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(password)) {
                        ArrayList<User> data = mDBOpenHelper.getAllData();
                        boolean match = false;
                        for (int i = 0; i < data.size(); i++) {
                            User user = data.get(i);
                            if (name.equals(user.getName()) && password.equals(user.getPassword())) {
                                match = true;
                                break;
                            } else {
                                match = false;
                            }
                        }
                        if (match) {
    
                            Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
                            Intent intent = new Intent(this, FirstActivity.class);
                            startActivity(intent);
                            finish();//销毁此Activity
                        } else {
                            Toast.makeText(this, "用户名或密码不正确,请重新输入", Toast.LENGTH_SHORT).show();
                        }
                    } else {
                        Toast.makeText(this, "请输入你的用户名或密码", Toast.LENGTH_SHORT).show();
                    }
                    break;
            }
        }
    }
    package com.example.company;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    
    import android.widget.Toast;
    
    import androidx.appcompat.app.AppCompatActivity;
    /**
    
     */
    /**
     * 此类 implements View.OnClickListener 之后,
     * 就可以把onClick事件写到onCreate()方法之外
     * 这样,onCreate()方法中的代码就不会显得很冗余
     */
    public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
    
    
        private CompanyDatabaseHelper mDBOpenHelper;
        private Button mBtRegisteractivityRegister;
    
        private EditText mEtRegisteractivityUsername;
        private EditText mEtRegisteractivityPassword1;
        private EditText mEtRegisteractivityPassword2;
        private Button mBtRegisteractivityBack;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
    
            initView();
    
            mDBOpenHelper = new CompanyDatabaseHelper(this);
    
    
        }
    
        private void initView(){
            mBtRegisteractivityRegister = findViewById(R.id.bt_registeractivity_register);
    
            mBtRegisteractivityBack = findViewById(R.id.bt_registeractivity_back);
    
            mEtRegisteractivityUsername = findViewById(R.id.et_registeractivity_username);
            mEtRegisteractivityPassword1 = findViewById(R.id.et_registeractivity_password1);
            mEtRegisteractivityPassword2 = findViewById(R.id.et_registeractivity_password2);
    
    
    
            /**
             * 注册页面能点击的就三个地方
             * top处返回箭头、刷新验证码图片、注册按钮
             */
            mBtRegisteractivityBack.setOnClickListener(this);
    
            mBtRegisteractivityRegister.setOnClickListener(this);
        }
    
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.bt_registeractivity_back: //返回登录页面
                    Intent intent1 = new Intent(this, LoginActivity.class);
                    startActivity(intent1);
                    finish();
                    break;
    
                case R.id.bt_registeractivity_register:    //注册按钮
                    //获取用户输入的用户名、密码、验证码
                    String username = mEtRegisteractivityUsername.getText().toString().trim();
                    String password1 = mEtRegisteractivityPassword1.getText().toString().trim();
                    String password2 = mEtRegisteractivityPassword2.getText().toString().trim();
    
                    //注册验证
                    if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password1) && !TextUtils.isEmpty(password2) ) {
                        if (password1.equals(password2)) {
                            //将用户名和密码加入到数据库中
                            mDBOpenHelper.login_add(username, password1);
                            Intent intent2 = new Intent(this, FirstActivity.class);
                            startActivity(intent2);
                            finish();
                            Toast.makeText(this,  "验证通过,注册成功", Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(this, "密码不一致,注册失败", Toast.LENGTH_SHORT).show();
                        }
                    }else {
                        Toast.makeText(this, "未完善信息,注册失败", Toast.LENGTH_SHORT).show();
                    }
                    break;
            }
        }
    }
    
    
    

    管理员

    package com.example.company;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class GuanliActivity extends AppCompatActivity implements View.OnClickListener {
    
        private Cursor cursor;
    
        private CompanyDatabaseHelper mDBOpenHelper;
        private Button mbtadd;
        private Button mbtdelete;
        private  Button mbtupdate;
        private Button mbtsearch;
        private Button mbtback;
    
        private EditText medtname;
        private EditText medtsex;
        private EditText medttel;
        private EditText medtposition;
        private EditText medttime;
    
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_guanli);
            initView();
    
            mDBOpenHelper = new CompanyDatabaseHelper(this);
        }
    
        private void initView(){
            mbtadd = findViewById(R.id.bt_add);
            mbtdelete = findViewById(R.id.bt_delete);
            mbtupdate = findViewById(R.id.bt_update);
            mbtsearch = findViewById(R.id.bt_search);
            mbtback = findViewById(R.id.bt_guanliback);
    
            medtname = findViewById(R.id.edt_name);
            medtsex = findViewById(R.id.edt_sex);
            medttel = findViewById(R.id.edt_tel);
            medtposition = findViewById(R.id.edt_position);
            medttime = findViewById(R.id.edt_time);
    
            mbtadd.setOnClickListener(this);
            mbtdelete.setOnClickListener(this);
            mbtupdate.setOnClickListener(this);
            mbtsearch.setOnClickListener(this);
            mbtback.setOnClickListener(this);
        }
    
        public void onClick(View view){
            switch (view.getId()){
                case R.id.bt_add:
    //                int mid =Integer.parseInt (medtid.getText().toString());
                    String name = medtname.getText().toString().trim();
                    String sex = medtsex.getText().toString().trim();
                    String tel = medttel.getText().toString().trim();
                    String position = medtposition.getText().toString().trim();
                    String time = medttime.getText().toString().trim();
                    mDBOpenHelper.yuangong_add(name,sex,tel,position,time);
                    Toast.makeText(this,  "添加成功", Toast.LENGTH_SHORT).show();
                    medtname.setText("");
                    medtsex.setText("");
                    medttel.setText("");
                    medtposition.setText("");
                    medttime.setText("");
                    break;
                case R.id.bt_delete:
                    AlertDialog alertDialog = new AlertDialog.Builder(this)
                            .setTitle("删除员工信息")
                            .setMessage("是否删除")
                            .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialogInterface, int i) {
                                    String name = medtname.getText().toString().trim();
                                    String position = medtposition.getText().toString().trim();
                                    mDBOpenHelper.yuangong_delete(name);
                                    medtname.setText("");
                                    medtsex.setText("");
                                    medttel.setText("");
                                    medtposition.setText("");
                                    medttime.setText("");
    
                                }
                            })
                            .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialogInterface, int i) {
                                    return;
                                }
                            }).create();
                    alertDialog.show();
                    break;
                case R.id.bt_update:
                    String uname = medtname.getText().toString().trim();
                    String utel = medttel.getText().toString().trim();
                    String uposition = medtposition.getText().toString().trim();
                    mDBOpenHelper.yuangong_updata(uname,uposition,utel);
                    Toast.makeText(this,"更新成功",Toast.LENGTH_SHORT).show();
                    medtname.setText("");
                    medtsex.setText("");
                    medttel.setText("");
                    medtposition.setText("");
                    medttime.setText("");
                    break;
                case R.id.bt_search:
                    startActivity(new Intent(GuanliActivity.this, SearchActivity.class));
                    finish();//销毁此Activity
    
                    break;
    
                case R.id.bt_guanliback:
                    startActivity(new Intent(GuanliActivity.this, GloginActivity.class));
                    finish();//销毁此Activity
                    break;
            }
    
        }
    }
    
    

    数据库

    package com.example.company;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    
    import java.util.ArrayList;
    
    public class CompanyDatabaseHelper extends SQLiteOpenHelper {
        private static final String DB_NAME="company.db";
        private static final int DB_VER=1;
        private SQLiteDatabase db;
    
        public CompanyDatabaseHelper(Context context){
            super(context,DB_NAME,null,DB_VER);
            db = getReadableDatabase();
        }
        @Override
        public void onCreate(SQLiteDatabase db) {
            //建每日讯息表
            db.execSQL("CREATE TABLE NEWS(_id INTEGER PRIMARY KEY AUTOINCREMENT," +
                    "TITLE TEXT," +
                    "IMAGE_RESOURCE_ID INTEGER," +
                    "CONTENT TEXT);");
            //建立登录表
            db.execSQL("CREATE TABLE  USER( _id INTEGER PRIMARY KEY AUTOINCREMENT," +
                    "name TEXT," +
                    "password TEXT);");
            //建立管理员登录表
            db.execSQL("CREATE TABLE  GUSER( _id INTEGER PRIMARY KEY AUTOINCREMENT," +
                    "gname TEXT," +
                    "password TEXT);");
            db.execSQL("INSERT INTO guser (gname,password) VALUES('zzz','123')");
            //建立用户信息表
            db.execSQL("CREATE TABLE  YUANGONG( _id INTEGER PRIMARY KEY AUTOINCREMENT," +
                    "name TEXT," +
                    "sex TEXT,"+
                    "tel TEXT,"+
                    "position TEXT,"+
                    "TIME DATE);");
    
            //插入每日讯息
            insertNews(db,"通知1",R.drawable.news01,"aaaaaaaaaaaaaaaaaaaaaaaa");
            insertNews(db,"通知2",R.drawable.news02,"bbbbbbbbbbbbbbbbbbbbbbbbbb");
        }
        private static void insertNews(SQLiteDatabase db,String title,int resourceId,String content){
            ContentValues newsValues = new ContentValues();
            newsValues.put("TITLE",title);
            newsValues.put("IMAGE_RESOURCE_ID",resourceId);
            newsValues.put("CONTENT",content);
    
            long result = db.insert("NEWS",null,newsValues);
            //日志插入结果
            Log.d("sqlite","insert"+title+"_id"+result);
        }
    //登录表的相关操作
        public void login_add(String name,String password){
            db.execSQL("INSERT INTO user (name,password) VALUES(?,?)",new Object[]{name,password});
        }
        public void login_delete(String name,String password){
            db.execSQL("DELETE FROM user WHERE name = AND password ="+name+password);
        }
        public void login_updata(String password){
            db.execSQL("UPDATE user SET password = ?",new Object[]{password});
        }
    
        //管理员登录表的操作
        public void glogin_add(String name,String password){
            db.execSQL("INSERT INTO user (name,password) VALUES(?,?)",new Object[]{name,password});
        }
        public void glogin_delete(String name,String password){
            db.execSQL("DELETE FROM user WHERE name = AND password ="+name+password);
        }
        public void glogin_updata(String password){
            db.execSQL("UPDATE user SET password = ?",new Object[]{password});
        }
    
        public ArrayList<User> getAllData2(){
    
            ArrayList<User> list = new ArrayList<User>();
            Cursor cursor = db.query("guser",null,null,null,null,null,"gname DESC");
            while(cursor.moveToNext()){
                String gname = cursor.getString(cursor.getColumnIndex("gname"));
                String password = cursor.getString(cursor.getColumnIndex("password"));
                list.add(new User(gname,password));
            }
            cursor.close();
            return list;
        }
    
        public ArrayList<User> getAllData(){
    
            ArrayList<User> list = new ArrayList<User>();
            Cursor cursor = db.query("user",null,null,null,null,null,"name DESC");
            while(cursor.moveToNext()){
                String name = cursor.getString(cursor.getColumnIndex("name"));
                String password = cursor.getString(cursor.getColumnIndex("password"));
                list.add(new User(name,password));
            }
            cursor.close();
            return list;
        }
    
        //员工表的相关操作
        public void yuangong_add(String name,String sex,String tel,String position,String time){
            db.execSQL("INSERT INTO yuangong (name,sex,tel,position,time) VALUES(?,?,?,?,?)",new Object[]{name,sex,tel,position,time});
        }
        public void yuangong_delete(String name){
            db.execSQL("DELETE FROM yuangong WHERE name = ? ", new Object[]{name});
        }
        public void yuangong_updata(String name,String tel,String position){
    
            db.execSQL("update yuangong set tel=?,position=? where name=?", new Object[]{tel,position,name});
        }
        @Override
        public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
    
        }
    
    }
    
    
    展开全文
  • 详细的工作统计能够帮助影楼管理者实施监督工作,同时也是员工绩效考核的有力依据。利亚方舟影楼管理软件可以分别查看门市、摄影、化妆、引导、修片、选片、设计等各个部门人员的工作统计,以及工作用时统计。工作...

    想知道影楼各个部门岗位员工的工作详情吗?

    详细的工作统计能够帮助影楼管理者实施监督工作,同时也是员工绩效考核的有力依据。利亚方舟影楼管理软件可以分别查看门市、摄影、化妆、引导、修片、选片、设计等各个部门人员的工作统计,以及工作用时统计。

    工作统计是员工能力的体现,能够有效激发员工的工作热情。

    d2db3531eee7767caa2aeafb2ce9a885.png

    No.1 员工项目汇总

    根据各部门每个员工统计个人订单项目,可按拍摄状态和选片状态进行筛选查询。汇总内容包括订单类型/类别、客户来源、套系类别、套系金额、加挑二销、服务人员等。可实时查看该员工项目的进展情况。

    c2b7cbf9858de7ec59593fc63ddfc6ed.png

    No.2 门市接单

    可按照时间、部门、订单套系统计/订单收款统计等条件查询门市接单详情。按订单类型分类统计接单数量及总数量,如婚纱订单、儿童订单、写真订单,自动汇总套系总价和套系平均价,让管理者清楚得知门市接单情况和各个员工的接单能力。

    0030ebddbf2a90e5bd5fd980c08dc8e9.png
    084ac979c49d4b1e080111a0f117a790.png

    No.3 摄影师工作统计

    统计摄影师的拍摄数量、拍摄状态,方便财务核算业绩。按接单人、摄影师、客服人员分别查询订单情况。

    a1c2a4fa85ed108986ee1b565a9030ea.png

    No.4 摄影助理工作统计

    统计摄影助理服务的订单数量、订单总价及均价,方便财务核算业绩。按接单人、摄影师、客服人员分别查询订单情况。

    9d4dc778b7f36730fcd55533e7867d8e.png

    No.5 化妆师工作统计

    统计化妆师服务的订单数量、订单总价及均价,方便财务核算业绩。按接单人、摄影师、客服人员分别查询订单情况。

    63d3e87b7f11a5400be2270f92bba041.png

    No.6 化妆助理工作统计

    统计化妆助理服务的订单数量、订单总价及均价,方便财务核算业绩。按接单人、摄影师、客服人员分别查询订单情况。

    27818f364b37de337adb1946f5290de9.png

    No.7 引导师工作统计

    统计引导师服务的订单数量、订单总价及均价,方便财务核算业绩。按接单人、摄影师、客服人员分别查询订单情况。

    94f758690687f2184e122e71dd6aa3cf.png

    No.8 引导助理工作统计

    统计引导助理服务的订单数量、订单总价及均价,方便财务核算业绩。按接单人、摄影师、客服人员分别查询订单情况。

    ff815fee5b3d52d5b843fc7446cf36bb.png

    No.9 初修师工作统计

    统计初修师完成的订单数量、订单总价及均价,显示初修日期和初修状态。

    7cb9196612a27657bf5f43bbfc2d5ceb.png

    No.10 选片师工作统计

    统计选片师完成的订单数量、订单总价及均价,显示选片日期、状态、加挑二销金额。选片师工作统计可清楚展现选片师的二销能力。

    6b324719cc0628aadeb326dbb1deb76a.png

    No.11 精修师工作统计

    统计精修师完成的订单数量、订单总价及均价,显示精修日期和精修状态。

    70368d54d5e69421436b1563577028de.png

    No.12 设计师工作统计

    统计设计师完成的订单数量、订单总价及均价,显示设计日期和设计状态。

    c1c3b136c8c59e269ae6696877a93a38.png

    No.13 工作统计用时

    统计订单从选片到产品完成所用的时间。不需要手动输入操作,软件自动统计选片完成时间及产品完成时间,计算用时天数。一般情况下影楼有标准的周期时间天数,工作用时少表示订单消化量快,服务效率高,各部门服务过程配合度高。超过标准天数即体现该流程不顺畅,订单成本高。此功能有利于影楼管理者监控流程状态,把控成本。

    ca21a6c67e22232411f21b45eda50789.png

    以上是利亚方舟影楼管理软件工作统计模块的全部细分详情。总的来说,工作统计是方便影楼管理者实时查询各部门员工的工作情况,有效反映店内订单的消化率,各部门工作配合程度。统计工作相对于人工来说是难以完成的,需要耗费大量的时间精力,如果使用系统,只需影楼在每个环节流程正常进行,即可自动统计各项工作,管理者只需筛选查看,简单方便易操作。

    展开全文
  • 作品介绍:把家政带入互联网,这也不算什么新鲜事了。...作品名称:家政客户端+家政员工端+家政服务web端管理信息系统 兼容版本:Axure8、Axure9 作品内容:Axure高保真家政服务用户端app全局说明+家政服务员

    作品介绍:把家政带入互联网,这也不算什么新鲜事了。这几年来,在手机下单,上门服务已经是常态。如今的消费已经是趋向于智能消费,例如不想做饭就可以叫外卖,出门不想开车就叫网约车。衣食住行可以靠一部智能手机解决,家政服务同样可以如此。到目前为止,多数家政平台还只是初步占领市场,还并没真正意义上的独角兽出现。这也意味着大部分企业仍然大有可为。

    作品名称:家政客户端+家政员工端+家政服务web端管理信息系统

    兼容版本:Axure8、Axure9

    作品内容:Axure高保真家政服务用户端app全局说明+家政服务员工移动端app+家政服务web端管理信息系统(订单管理+服务管理+报表统计+财务管理+营销管理+人员管理)

    Axure原型链接及下载地址https://www.pmdaniu.com/storages/120608/3da40d4fb1effdb735eb98774e4e5d42-30328/start.html#g=1&p=%E5%85%A8%E5%B1%80%E8%AF%B4%E6%98%8E

    作品图片展示:全局说明-产品整体架构图

     作品图片展示:全局说明-家政需求逻辑图

     

      作品图片展示:用户端-首页                                                                   作品图片展示:用户端-我的订单

                            

     作品图片展示:用户端-我的                                                                作品图片展示:用户端-评价

                             

       作品图片展示:员工端-首页                                                                   作品图片展示:员工端-工单订单

                               

     作品图片展示:员工端-工单详情                                                              作品图片展示:员工端-工单订单

                       

      作品图片展示:家政服务web端管理信息系统-订单列表

     作品图片展示:家政服务web端管理信息系统-首页

     

      作品图片展示:家政服务web端管理信息系统-财务管理-今日回款列表

      作品图片展示:家政服务web端管理信息系统-员工管理

     

       作品图片展示:家政服务web端管理信息系统-微信管理-消息接口设置

     Axure原型链接及下载地址https://www.pmdaniu.com/storages/120608/3da40d4fb1effdb735eb98774e4e5d42-30328/start.html#g=1&p=%E5%85%A8%E5%B1%80%E8%AF%B4%E6%98%8E

    展开全文
  • 我要做一个员工管理的 签到呀 什么日常工作提醒 笔记之类的 这个服务器后台一般是用WEB接口 还是用什么来通讯好呢 请问???
  • Empleados 该项目是使用版本11.0.6生成的。 如果您想看这个项目,请访问此,尽情享受吧! 开发服务器 为开发服务器运行ng serve 。... 如果您更改任何源文件,该应用程序将自动重新加载。 代码脚手架 ...
  • 查看安装过程启明星系列软件安装通用教程 启明星员工请假加班系统可以让员工进行请假和加班。核心功能包括:年休假管理,调休管理,假种管理,多级审批,邮件通知, 微信请假,数据... 启明星员工请假系统appform v25.0
  • 启明星员工请假加班系统可以让员工进行请假和加班。核心功能包括:年休假管理,调休管理,假种管理,多级审批,邮件通知, 微信请假,... 启明星员工请假系统appform v12.0 更新的内容包括: (1)优化了年休假用户自
  • 启明星员工请假加班系统可以让员工进行请假和加班。核心功能包括:年休假管理,调休管理,假种管理,多级审批,邮件通知, ...启明星员工请假系统appform v25.0 更新的内容包括:1、优化了安装方法2、优化了登录页面。
  • 今天给大家分享一个超简单的员工管理系统源码地址:https://github.com/newpanjing/simpleui_demo我们首先创建一个django项目,这里我们推荐用PyCharm这是添加好员工和财务模块后的结构这是启动后...
  • 启明星员工请假加班系统可以让员工进行请假和加班。核心功能包括:年休假管理,调休管理,假种管理,多级审批,邮件通知, 微信请假,数据报表,部门加单,图表视图,数据导出
  • 员工追踪应用 该应用程序使用节点,查询器和MySQL管理公司的员工
  • 启明星员工请假系统appform v8.8 bulid2014.5.28 更新日志: 1)增加了请假上传附件功能,管理员可以设置请假类型是否需要上传附件 2)优化了手机邮件审批 3)优化了报表,引入了百度echarts生产报表 4)其他一些...
  • 管理接口、数据库、bug、任务,使每个人各司其职,稳步推进项目 5.3良好的心态 在项目开发过程中,保持良好的心态很重要! 在和别人沟通时,一定要保持足够的耐心,学会表达的同时也要学会倾听。 要学会...
  • 启明星Appform员工请假系统简介 启明星员工请假加班系统可以让员工进行请假和加班。核心功能包括:年休假管理,调休管理,假种管理,多级审批,邮件通知, 微信请假,数据报表,部门加单,图表视图,数据导出等。 ...
  • 现在只要打开APP,数据报表智能统计,实时推送~~轻松解决手工统计数据的烦恼!!实时获取智能数据报表美滴滴新增“门店报表”功能,涵盖门店业绩、服务内耗、服务人数、新客人数、下单数等业务数据。告别门店人员...
  • 启明星员工请假系统appform新版发布啦 v8.0,此系统是为了解决如下的需求而开发:需求如下:1. 要有加班和请假两种申请.2. 加班和请假其实都分两部分,第一部分是管理人员(有电脑的), 第二是所有1线的操作人员(他们...
  • 员工管理系统-源码

    2021-02-14 18:44:56
    我面临着建立一个使用节点,查询器和MySQL管理公司员工的解决方案的挑战。 我的项目至少应: 添加部门,角色和员工 查看部门,角色和员工 更新员工角色 我还包括console.table NPM软件包,以更有效地查看数据。 ...
  • 员工管理系统

    2021-05-15 15:45:21
    获取方式 https://www.kuangstudy.com/app/code 导入 伪造数据库 @NoArgsConstructor @Data public class Employee { private Integer id; private String lastName; private String email; private Integer ...
  • 这项工作将需要您将应用程序的UI分解为组件,管理组件状态并响应用户事件。 用户故事 作为用户,我希望能够一次查看我的整个员工目录,以便我可以快速访问他们的信息。 商业环境 雇员或经理可以查看其他雇员的非...
  • 电子服务可以对教员的选举和晋升进行集中管理,还可以对希腊高等教育机构的内部和外部评估成员的注册表进行汇编和维护。 先决条件 Python 2.7 吉特 点子 节点JS 纱 开发说明 后端安装 获取仓库并安装依赖项 克隆此...
  • 员工管理网-源码

    2021-02-11 09:14:26
    Create React App入门 该项目是通过。 可用脚本 在项目目录中,可以运行: npm start 在开发模式下运行应用程序。 打开在浏览器中查看。 如果进行编辑,页面将重新加载。 您还将在控制台中看到任何棉绒错误。 npm ...
  • Balaesang区政府办公室中用于员工出勤数据管理的Android应用程序。 此应用程序是使用构建的 关于 创建该应用程序是为了解决在Balaesang District政府办公环境中记录员工出勤情况的问题。 到目前为止,在Balaesang区...
  • 员工信息管理系统

    2011-10-18 11:44:28
    员工信息管理系统 实现了登录,信息管理的基本功能,程序比较简单,也适合入门的朋友学习。 对数据库的操作实现了程序的基本功能,请阅读源码查看更详细的内容。 数据库文件在DB文件夹下,请用sql2005及更高的版本...
  • 员工信息管理系统.net

    2012-05-21 18:48:43
    简单员工信息管理源码 员工信息管理系统 实现了登录,信息管理的基本功能,程序比较简单,也适合入门的朋友学习。 对数据库的操作实现了程序的基本功能,请阅读源码查看更详细的内容。 数据库文件在DB_51aspx文件夹...
  • 员工请假管理 c# SQL

    2011-06-12 16:49:44
    项目名称:员工请假管理系统 项目文件:Employee 数据库文件都存放在:Employee\App_Data目录下。
  • 近期,财务人员小王遇到了一个难题:公司员工通过个税APP填写了六项专项附加扣除信息,现在工资期到了,要怎么把数据导出给人事专员计算工资呢? 小编有绝招!分模块逐条点击汇总计算?NO!计算量太大了!其实自然人...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 428
精华内容 171
关键字:

员工管理app