int F930101(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret= 0; int dev_usage = 0; T_t_attend_txdtl tTxdtl; if(strlen(rPack->sdate0) != 8) { *pRetCode = E_DEVPHYID_NULL; goto L_RETU; } /* ret=chk_dyn_key(rPack->lcert_code,rPack->scust_limit2); if(ret) { writelog(LOG_ERR,"subsys_id[%d]dyn_key[%s]",rPack->lcert_code,rPack->scust_limit2); *pRetCode = ret; goto L_RETU; } */ memset(&tTxdtl,0,sizeof(tTxdtl)); tTxdtl.serial_no= rPack->lvol3; //上传端流水号 tTxdtl.sys_id = rPack->lcert_code; //上传工作站标识(前置机注册号) // tTxdtl.mode_code=rPack->lvol6; //模式代码 tTxdtl.card_no= rPack->lvol7; //交易卡号 // tTxdtl.use_type= rPack->lvol8; //考勤类型 // tTxdtl.inductor_no= rPack->lvol9; //感应头标记 // tTxdtl.work_mark=rPack->lvol10; //上下班标志 tTxdtl.tx_mark=rPack->lvol11; //999交易标志 des2src(tTxdtl.device_id, rPack->sdate0); //物理设备ID des2src(tTxdtl.tx_date,rPack->sdate1); //发生日期(格式化输入的日期) des2src(tTxdtl.crc,rPack->sbank_code2); //CRC校验 des2src(tTxdtl.tx_time,rPack->spost_code2); //发生时间(格式化输入的时间) getsysdate(tTxdtl.col_date); getsystime(tTxdtl.col_time); // ret=check(&tTxdtl); // if(ret) // { // tTxdtl.status[0]='5'; //无效交易 // //tTxdtl.err_code=ret; // writelog(LOG_DEBUG,"无效流水device_id[%d]serial_no[%d]",tTxdtl.device_id,tTxdtl.serial_no); // return ret; // } // else // tTxdtl.status[0]='1'; ret = SaveDoorJSBSerial(&tTxdtl); if(ret) { *pRetCode = ret; goto L_RETU; } return 0; L_RETU: return -1; }
int F930101(TRUSERID *handle,int iRequest,ST_PACK *rPack,int *pRetCode,char *szMsg) { int ret= 0; int dev_usage = 0; T_t_door_txdtl tTxdtl; if(strlen(rPack->sdate0) != 8) { *pRetCode = E_DEVPHYID_NULL; goto L_RETU; } /* ret=chk_dyn_key(rPack->lcert_code,rPack->scust_limit2); if(ret) { writelog(LOG_ERR,"subsys_id[%d]dyn_key[%s]",rPack->lcert_code,rPack->scust_limit2); *pRetCode = ret; goto L_RETU; } */ memset(&tTxdtl,0,sizeof(tTxdtl)); tTxdtl.serial_no= rPack->lvol3; //上传端流水号 tTxdtl.sys_id = rPack->lcert_code; //上传工作站标识(前置机注册号) tTxdtl.mode_code=rPack->lvol6; //模式代码 tTxdtl.card_no= rPack->lvol7; //交易卡号 tTxdtl.use_type= rPack->lvol8; //考勤类型 tTxdtl.inductor_no= rPack->lvol9; //感应头标记 tTxdtl.work_mark=rPack->lvol10; //上下班标志 tTxdtl.tx_mark=rPack->lvol11; //999交易标志 des2src(tTxdtl.device_id, rPack->sdate0); //物理设备ID des2src(tTxdtl.tx_date,rPack->sdate1); //发生日期(格式化输入的日期) des2src(tTxdtl.crc,rPack->sbank_code2); //CRC校验 des2src(tTxdtl.tx_time,rPack->spost_code2); //发生时间(格式化输入的时间) getsysdate(tTxdtl.col_date); getsystime(tTxdtl.col_time); ret=check(&tTxdtl); if(ret) { // tTxdtl.status[0]='5'; //无效交易 // tTxdtl.err_code=ret; writelog(LOG_DEBUG,"无效流水[%s][%d]",tTxdtl.device_id,tTxdtl.serial_no); return ret; } else tTxdtl.status[0]='1'; ret = GetDevUsageByDevId(tTxdtl.device_id,&dev_usage); if(ret) { *pRetCode = ret; goto L_RETU; } switch(dev_usage) { case DU_JSB_CONFRENCE: ret = SaveDoorJSBSerial(&tTxdtl); if(ret) { writelog(LOG_ERR,"保存计时宝流水失败,errcode[%d]",ret); break; } ret = UpdateConferSerial(&tTxdtl); break; case DU_JSB_ATTENDANCE: ret = InsertKQSerial(&tTxdtl); if(ret) { writelog(LOG_ERR,"插入考勤流水表失败,errcode[%d]",ret); break; } default: ret = SaveDoorJSBSerial(&tTxdtl); break; } if(ret) { *pRetCode = ret; goto L_RETU; } return 0; L_RETU: return -1; }