千家论坛_智能建筑与智能家居技术交流社区

标题: 只有考勤才能吃饭的两种解决方案讨论 [打印本页]

作者: latain    时间: 2005-6-21 17:18
标题: 只有考勤才能吃饭的两种解决方案讨论
<TABLE border=0 class=tablebody2 style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" width="90%">

<TR>
<TD  width="100%"><IMG align=absMiddle border=0 src="http://www.1000bbs.com/Skins/Default/topicface/face1.gif"> <B></B>

<P>谢谢大家!各家的产品不同,解决方案也不仅相同,总体上有两种:</P>
<P>一、ID卡 考勤和售饭使用同一套软件,系统时时通讯,考勤的数据可以下传到就餐的数据里,相当与给那些正常上班的人进行“解冻”,就可在消费机上就餐了,否则报警。</P>
<P>二、IC卡 考勤时考勤机给IC些个标记,吃饭的时候,由另外的消费机识别是否考勤,如果考勤才能吃饭,注:好多厂家是用两台考勤机来实现,只能记次消费。</P>
<P>请大家多指教,是否还有其他成熟的方案,按照班次更准确的进行考勤就餐管理的系统?</P>
<P>QQ;4817930   电话:0311-83030430    </P></TD></TR></TABLE>
作者: davei    时间: 2005-6-21 18:12
<P>同意楼主所说,不过第一种情况,考勤和餐饮机都要是全实时的,线路不能有一点问题,还有就是早餐,是不是也只有打了上班卡才能吃。</P>
作者: cwjjack    时间: 2005-6-23 16:06
<P>这样呀,太简单了用ID卡就可以了。发一个定餐+混饭的源代码,B/S结构</P><P>&lt;!--#include file="conn.asp"--&gt;
&lt;%
'http://192.168.200.100/kaoq/kcardsea.asp?cardid=0000999999&amp;jihao=10261
'这条是表示卡钟向服务器IP地址为192.168.200.100发送为卡号为0000999999和发送这台卡钟的机器编号10261</P><P>
   if request("CardId")="" or request("jihao")="" then
    Response.Write "Ricom Systemswww.ricom.com.hk"&amp;"count=0&amp;"&amp;"gzbh=&amp;"&amp;"xm="&amp;"TransErr"&amp;"&amp;bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
        '卡钟自动上传卡号,和机器编号,如果上传为空值,就发一条数据告诉卡钟没有接收成功。
   else        
'定义时间变量。
        dim jobb,dtime,ddate,skkhtemp
dim jobb1,nowtime,beforetime,aftertime
ddate=year(now)&amp;"-"&amp;month(now)&amp;"-"&amp;day(now)
if hour(now)&lt;10 then
    dtime="0"&amp;hour(now)
else
    dtime=hour(now)
end if
if minute(now)&lt;10 then      
    dtime=dtime&amp;":"&amp;"0"&amp;minute(now)
else
    dtime=dtime&amp;":"&amp;minute(now)
end if   
if second(now)&lt;10 then
    dtime=dtime&amp;":"&amp;"0"&amp;second(now)
else
    dtime=dtime&amp;":"&amp;second(now)
end if
           
nowtime=cdate(ddate&amp;" "&amp;dtime)
nowtime1=ddate&amp;" "&amp;dtime
    'nowtime='2003-05-01 10:00'
   
skkhtemp=Right("0000000"&amp;trim(request("CardId")),7)
        '定义卡号不足7位地自动在前补0   
   end if
   
   set jobb0=server.CreateObject("adodb.recordset")
   set jobb0.activeconnection=conn
   jobb0.open "select beforetime from ST_CS_SYSTEM ",,1,3
   if jobb0.eof then
        Response.Write "Ricom Systemswww.ricom.com.hkcount=0&amp;gzbh=&amp;"&amp;"xm=参数没有设置&amp;"&amp;"bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
    response.end
   else
        beforetime=dateadd("s",- jobb0("beforetime"),nowtime)
aftertime=dateadd("s",jobb0("beforetime"),nowtime)
   end if
   
   set jobb1=server.CreateObject("adodb.recordset")
   set jobb1.activeconnection=conn
   '查找数据库里是否有这张卡的人事资料,如果没有就在卡钟显示非法卡,并且可以外接报警灯,提示工作人员
   jobb1.open "select xm,gzbh,poskh,mustpre from ST_CS_GZB where gzbh ='"&amp;skkhtemp&amp;"' and (outf is null or outf&gt;'"&amp;ddate&amp;"')",,1,3
   if jobb1.eof then
        Response.Write "Ricom Systemswww.ricom.com.hkcount=0&amp;gzbh=&amp;"&amp;"xm=非法卡&amp;"&amp;"bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
    response.end</P><P>
   else
      '这里判是就餐还是定餐
      set jobb2=server.CreateObject("adodb.recordset")
      set jobb2.activeconnection=conn
      jobb2.open "select machine_fun from parameter where coding ="&amp;clng(trim(request("jihao"))),,1,3
      if jobb2.eof then  
           '在数据库查找,这台卡钟是否设置了
           Response.Write "Ricom Systemswww.ricom.com.hkcount=0&amp;gzbh=&amp;"&amp;"xm=卡钟未设置&amp;"&amp;"bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
       response.end
      else
        if jobb2("machine_fun")=1 then   '订餐
            'response.write trim(request("CardId"))&amp;"abc"
            'response.write ddate&amp;"abc"
            'response.write ddate&amp;" "&amp;dtime&amp;"abc"
            'response.write dtime&amp;"abc"
            'response.write clng(trim(request("jihao")))&amp;"abc"
            'response.write jobb2("machine_fun")&amp;"abc"
            'response.write jobb1("gzbh")
     'response.end
  set jobb21=server.CreateObject("adodb.recordset")
          set jobb21.activeconnection=conn
           '判断卡钟是否是在订餐时间内
          jobb21.Open "select xh from ST_CS_CC_DC where jhfw like '%"&amp;trim(request("jihao"))&amp;"%' and dcdate1&lt;='"&amp;nowtime1&amp;"' and dcdate2&gt;='"&amp;nowtime1&amp;"'",,1,3              
     if jobb21.eof then
           Response.Write "Ricom Systemswww.ricom.com.hkcount=0&amp;gzbh=&amp;"&amp;"xm=未在定餐时间内&amp;"&amp;"bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
     else  
       conn.execute "insert into ST_RECORD_DC(poskh,fdate,skrq,sksj,DevID,machine_fun,gzbh)values('"&amp;trim(request("CardId"))&amp;"','"&amp;ddate&amp;"','"&amp;ddate&amp;" "&amp;left(dtime,5)&amp;"','"&amp;left(dtime,5)&amp;"',"&amp;clng(trim(request("jihao")))&amp;","&amp;jobb2("machine_fun")&amp;",'"&amp;jobb1("gzbh")&amp;"')"
       Response.Write "Ricom Systemswww.ricom.com.hk"&amp;"count=1&amp;gzbh="&amp;jobb1("gzbh")&amp;"&amp;"&amp;"xm="&amp;jobb1("xm")&amp;skkhtemp&amp;"订餐成功"&amp;"&amp;"&amp;"bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
           end if   </P><P>
       response.end
    else   '就餐
       'machine_fun=2
      
       set jobb3=server.CreateObject("adodb.recordset")
          set jobb3.activeconnection=conn
           '判断卡钟的就餐时间
          jobb3.Open "select xh,defaultmoney,defaultmoney1,ghfw from ST_CS_CC where ghfw like '%"&amp;left(skkhtemp,1)&amp;"%' and jhfw like '%"&amp;trim(request("jihao"))&amp;"%' and qssjc&lt;='"&amp;dtime&amp;"' and zzsjc&gt;='"&amp;dtime&amp;"'",,1,3              
     if jobb3.eof then
           Response.Write "Ricom Systemswww.ricom.com.hkcount=0&amp;gzbh=&amp;"&amp;"xm=未在就餐时间&amp;"&amp;"bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
        response.end
          end if        
         
          '每餐只能就餐一次
          set jobb5=server.CreateObject("adodb.recordset")
          set jobb5.activeconnection=conn
          'response.write "Select gzbh from ST_RECORD Where gzbh='"&amp;jobb1("gzbh")&amp;"' and fdate='"&amp;ddate&amp;"' and skrq&gt;='"&amp;(beforetime)&amp;"' and cc="&amp;jobb3("xh")
          jobb5.Open "Select gzbh from ST_RECORD Where gzbh='"&amp;jobb1("gzbh")&amp;"' and fdate='"&amp;ddate&amp;"' and (skrq&lt;'"&amp;beforetime&amp;"' or skrq&gt;'"&amp;aftertime&amp;"') and cc="&amp;jobb3("xh")
          if jobb5.Eof then
             set jobb52=server.CreateObject("adodb.recordset")
             set jobb52.activeconnection=conn
             jobb52.Open "Select gzbh from ST_RECORD Where gzbh='"&amp;jobb1("gzbh")&amp;"' and fdate='"&amp;ddate&amp;"' and (skrq&gt;='"&amp;beforetime&amp;"' and skrq&lt;='"&amp;aftertime&amp;"') and cc="&amp;jobb3("xh")
             if jobb52.eof then  '已就餐,但是还在定义的时间范围内,不报警
             else
                Response.Write "Ricom Systemswww.ricom.com.hk"&amp;"count=1&amp;gzbh="&amp;jobb1("gzbh")&amp;"&amp;"&amp;"xm="&amp;jobb1("xm")&amp;"&amp;"&amp;"bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
          response.end
             end if
          else
       '重复就餐,并且报警
             Response.Write "Ricom Systemswww.ricom.com.hkcount=0&amp;gzbh=&amp;"&amp;"xm=重复就餐&amp;"&amp;"bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
          response.end
          end if
         
          '自己特别设置的就餐卡,不用定餐也可以就餐
          if left(skkhtemp,1)&lt;&gt;"1" and left(skkhtemp,1)&lt;&gt;"2" then
           set jobb4=server.CreateObject("adodb.recordset")
           set jobb4.activeconnection=conn
        '判断是否已经定餐了,如果没有定餐就餐,报警
           jobb4.Open "Select gzbh from ST_RECORD_DC_RESULT Where gzbh='"&amp;jobb1("gzbh")&amp;"' and fdate='"&amp;ddate&amp;"' and cc="&amp;jobb3("xh")&amp;" and flag='T'"
           if jobb4.eof then
                Response.Write "Ricom Systemswww.ricom.com.hkcount=0&amp;gzbh=&amp;"&amp;"xm=未定餐&amp;"&amp;"bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
             response.end
           end if
          end if
  '判断不同人员就餐的金额
        if mid(skkhtemp,2,1)="1"then  
            conn.execute "insert into ST_RECORD(atttime,gzbh,poskh,skrq,fdate,jcje,cc,oper,posid) Values('"&amp;dtime&amp;"','"&amp;jobb1("gzbh")&amp;"','"&amp;trim(request("CardId"))&amp;"','"&amp;ddate&amp;" "&amp;dtime&amp;"','"&amp;ddate&amp;"',"&amp;jobb3("defaultmoney1")&amp;","&amp;jobb3("xh")&amp;",0,"&amp;clng(trim(request("jihao")))&amp;")"
     else
         conn.execute "insert into ST_RECORD(atttime,gzbh,poskh,skrq,fdate,jcje,cc,oper,posid) Values('"&amp;dtime&amp;"','"&amp;jobb1("gzbh")&amp;"','"&amp;trim(request("CardId"))&amp;"','"&amp;ddate&amp;" "&amp;dtime&amp;"','"&amp;ddate&amp;"',"&amp;jobb3("defaultmoney")&amp;","&amp;jobb3("xh")&amp;",0,"&amp;clng(trim(request("jihao")))&amp;")"
  end if                  
     Response.Write "Ricom Systemswww.ricom.com.hk"&amp;"count=1&amp;gzbh="&amp;jobb1("gzbh")&amp;"&amp;"&amp;"xm="&amp;jobb1("xm")&amp;skkhtemp&amp;"&amp;"&amp;"bmbh=&amp;"&amp;"ksbh=1"&amp;"&amp;"&amp;"ly="
       '消费成功,并且在卡钟上显示姓名和工号,(这里可以自己随便定义显示的内容如:可以显示剩于金额和次数)
        response.end
    end if
      end if
   end if
   
   conn.close
   response.end
   
   </P><P>  %&gt;</P><P>
国海实时一卡通
曹望君  QQ:17571611
TEL:0769-2062459 13713313384 FAX:0769-2314127
EMAIL:CWJJACK@163.COM
实时TCP/IP考勤、门禁、消费机
只做TCP/IP实时系列一卡通,和OEM产品。
</P>
作者: Awei    时间: 2005-6-24 13:29
同意!!!
作者: tqqyu168    时间: 2005-6-28 11:16
高手呀
作者: jerryjxf    时间: 2005-11-15 19:37
<P>有谁有这种系统啊,我在平时很碰到过好多客户需要这种功能。如谁有这种功能的,请与我联系。</P><P>我的QQ:106297000     MSN:jerryjxf@hotmail.com</P><P><a href="mailtjerryjxf@21cn.com" target="_blank" >jerryjxf@21cn.com</A></P>
作者: 皮皮鸟    时间: 2005-11-16 08:56
<P>3楼的朋友对程序很了解啊~~</P><P>ID卡在通讯中断的时候也可以刷卡消费!可以设定消费上限!</P><P>考勤,看你配置的控制器,是否有存储后备内存!</P>
作者: zj2cl    时间: 2005-11-16 10:49
<P>也给我份方案吧。谢了!<a href="mailtdapeng_jn@163.com" target="_blank" >dapeng_jn@163.com</A></P>
作者: 东莞汇多    时间: 2005-11-17 15:47
现在这种需求很多,特别是企业,不错
作者: kingwin2006    时间: 2005-12-3 23:11
<P>钟鼎文E考勤机可以完全满足你的要求。</P><P><a href="http://www.kingwin.cn" target="_blank" >http://www.kingwin.cn</A></P>
作者: dtls2005    时间: 2005-12-12 12:05
<H1><FONT face=宋体 size=1>大家好,我是系统集成商请教校园一卡通方案</FONT></H1><P>                               考勤、食堂、门禁、图书馆管理</P><P>                                                                 谢谢!</P><P>dtls2004@163.com</P>




欢迎光临 千家论坛_智能建筑与智能家居技术交流社区 (http://bbs.qianjia.com:8020/) Powered by Discuz! X3.2