123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322 |
- #pragma once
- #include "basic_struct.h"
- #include <vector>
- #include <map>
- #include "../Schema/schema_struct.h"
- using namespace std;
- #ifdef SMARTEVALUATIONLOGIC_EXPORTS
- #define SMARTEVALUATIONLOGIC_API __declspec(dllexport)
- #else
- #define SMARTEVALUATIONLOGIC_API __declspec(dllimport)
- #endif
- //设置cookie
- SMARTEVALUATIONLOGIC_API int SetCookie(std::string path, std::string name , std::string value);
- //设置本地服务器的cookie
- SMARTEVALUATIONLOGIC_API int SetLocalServerCookie( std::string name , std::string value);
- //设置远端服务器地址
- SMARTEVALUATIONLOGIC_API int SetServerUrl(std::string server_url);
- SMARTEVALUATIONLOGIC_API int SetScanConfig(std::string app_data_dir, std::string scan_data_dir);
- SMARTEVALUATIONLOGIC_API int InitalizeScan(bool bOnlineCard, int subjectid, int nOnlineScanType);
- /*======================================================================*/
- /*=============================试卷图片上传相关=========================*/
- /*======================================================================*/
- /************************************************************************/
- /* 设置试卷图像上传消息返回窗口句柄 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int SetHandlerWndForImg( HWND hwnd );
- /************************************************************************/
- /* 开始试卷图像上传 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int StartUploadePaperImg();
- /************************************************************************/
- /* 停止试卷图像上传 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int StopUploadePaperImg();
- /************************************************************************/
- /* 查询试卷图像上传任务 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int QueryUploadePaperImg(vector<IMG_UPLOAD_TASK>& tasks);
- /************************************************************************/
- /* 查询当前试卷图像上传任务 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int GetCurrentUploadTaskInfo(IMG_UPLOAD_TASK& task);
- /************************************************************************/
- /* 清空已上传完成的数据 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int ClearUploadedPaperImg();
- /*======================================================================*/
- /*=============================扫描仪控制相关===========================*/
- /*======================================================================*/
- /************************************************************************/
- /* 获取扫描仪列表 (返回获取到信息的条数) */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int GetScannerList(vector<SCANNER_INFO> & scannerList);
- /************************************************************************/
- /* 获取默认扫描仪信息(成功返回1 失败返回0) */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int GetDefaultScannerInfo(SCANNER_INFO &scannerInfo);
- /************************************************************************/
- /* 选择/改变选中的扫描仪(成功返回1 失败返回0) */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int ConnectScanner(const int nIndex);
- /************************************************************************/
- /* 显示扫描仪设置 (成功返回1 失败返回0) */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int ShowScannerSetting(const unsigned int nId);
- /************************************************************************/
- /* 断开连接选中的扫描仪 (成功返回1 失败返回0) */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int DisconnectScanner();
- /*======================================================================*/
- /*=============================识别流程控制相关=========================*/
- /*======================================================================*/
- /************************************************************************/
- /* 注册窗口,识别模块遇到问题将向该窗口发送消息 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int SetHandlerWnd(HWND hwnd);
- SMARTEVALUATIONLOGIC_API string GetBatchCode();
- /************************************************************************/
- /* 加载模板 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int LoadSchema(long long examId, std::string examName, long examCourseId, std::string courseName, const std::string schemaPath, std::string rule = "");
- /************************************************************************/
- /* 准备扫描 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int ReadyScanEX(FEEDER_TYPE feederType,const ScanParam & param);
- /************************************************************************/
- /*设置从文件夹扫描的路径(继续扫描时使用) */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int SetFolderScanDir(const std::string img_dir);
- /************************************************************************/
- /*获取扫描状态 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int GetServiceSate();
- /************************************************************************/
- /*开始扫描 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int Start();
- /************************************************************************/
- /* 暂停扫描 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int Pause();
- /************************************************************************/
- /* 继续扫描 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int Resume();
- /************************************************************************/
- /* 停止扫描 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int Stop();
- /************************************************************************/
- /* 清除临时扫描数据 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int ClearDbTemp();
- /************************************************************************/
- /* 放弃本次扫描结果 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int GiveUpCurrentBatch();
- /************************************************************************/
- /* 扫描完成离开本次扫描调用 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int leaveCurrentBatch();
- /************************************************************************/
- /* 开始试卷成绩上传 (参数,接收进度消息的句柄) */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int StartUploadPaper(HWND hWnd);
- /*======================================================================*/
- /*=============================异常处理相关=============================*/
- /*======================================================================*/
- /************************************************************************/
- /* 重新识别试卷 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int ReIdentify(const int paper_id, const std::string& stu_code, std::vector<img_param> params);
- /************************************************************************/
- /* 查询模板图像路径 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int QueryMubanImgPath(int page_index,std::string& imgPath);
- /************************************************************************/
- /* 查询模板图像数量 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int QueryMubanImgCount(int& page_count);
- /************************************************************************/
- /* 查询异常试卷总数 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int QueryExptionPaperCount(int & exc_count, int & total_count);
- /************************************************************************/
- /* 查询异常类型信息 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int QueryExptionTypeInfo(vector<EXCEPTION_TYPE_INFO> & infos);
- /************************************************************************/
- /* 加载试卷异常列表 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int QueryExceptionPaper(const long exception_type, vector<STUDENT_INFO> &studengList);
- /************************************************************************/
- /* 加载正常试卷列表 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int QueryNormalPaper(vector<STUDENT_INFO> &studengList);
- /************************************************************************/
- /* 加载异常试卷详情 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int QueryPaperDetail(const int paper_id,PAPER_DETAIL &paper_detail,vector<PAGE_DETAIL> &pageList,vector<GROUP_QUESTION> &questionList);
- /************************************************************************/
- /* 更新试卷考生 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int UpdatePaperStudent( const int paper_id,const std::string examinee_id ,const std::string student_code,const std::string studentName,const long schoolId,const std::string stuCode = "",const std::string stuSchoolCode = "",const std::string className = "",const std::string gradeName = "",bool bReIdentify=false);
- /************************************************************************/
- /* 忽略试卷 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int IgnorePaper(const int paper_id);
- /************************************************************************/
- /* 忽略试卷 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int IgnoreException(const long exceptions);
- /************************************************************************/
- /* 覆盖试卷 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int ReplacePaper(const int paper_id,int &paper_id_ret);
- /************************************************************************/
- /* 全部覆盖试卷 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int ReplaceAllKaoHaoChongTu(vector<int> &paper_id_List);
- /************************************************************************/
- /* 智能识别 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int AiReadImgPaper(const int subject, const int id, std::vector<questionAi> aiVec, const std::vector<std::wstring> imgPath, vector<vector<AI_RET_RECT2>> &retList);
- /************************************************************************/
- /* 设置扫描督学卡 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int SetScanInspector(int ntype, std::string strShoolID);
- /************************************************************************/
- /* 下载图片 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int DownLoadImg(HWND hWnd, std::string strExamId, int type);
- /************************************************************************/
- /* 下载模板 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int HttpDownloadTemplate(std::string from, std::string fileName);
- /************************************************************************/
- /* 取消下次继续扫描结果状态 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int CloseContineScan();
- /************************************************************************/
- /* 开启下次继续扫描结果状态 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int StartContiuneScan();
- /************************************************************************/
- /* 从云端下载异常试卷 */
- /************************************************************************/
- enum MsgType
- {
- LOAD_ERROR_LIST_BEGIN,
- LOAD_ERROR_LIST, // 获取异常列表
- LOAD_ERROR_LIST_END,
- LOAD_ERROR_FAILED,
- LOAD_ERROR_EXAM_NAME,
- LOAD_PAPER_TYPE,
- LOAD_CLOUD_FILE_BEGIN,
- LOAD_CLOUD_FILE, // 获取云文件
- LOAD_CLOUD_FILE_END,
- };
- SMARTEVALUATIONLOGIC_API bool ExitCloud();
- SMARTEVALUATIONLOGIC_API bool InitCloud(const char*path);
- struct ISmartLogicNotify{
- virtual void OnNotify(MsgType type, const char*msg) = 0;
- };
- SMARTEVALUATIONLOGIC_API int PreErrorHandleRestoreSite(bool bcontinue,int scan_type, const ScanParam&scanparam);
- SMARTEVALUATIONLOGIC_API int ParseErrorPaperFromCloud(const std::string&strUrl, const std::string&session, const std::string&exam_id, const std::string&destDir, ISmartLogicNotify*pNotify = NULL);
- SMARTEVALUATIONLOGIC_API void exit_thread_error_handle_restore_site();
- SMARTEVALUATIONLOGIC_API void SetErrorHandle(bool bErrorHandle);
- /*======================================================================*/
- /*=============================识别小工具=============================*/
- /*======================================================================*/
- /************************************************************************/
- /* 检测试卷上指定区域的交叉点 */
- /************************************************************************/
- struct _IplImage;
- typedef struct _IplImage IplImage;
- SMARTEVALUATIONLOGIC_API int DetectCross(const IplImage * img, int detect_x, int detect_y, int detect_w, int detect_h,std::vector<Cross>& crosss );
- SMARTEVALUATIONLOGIC_API void getCurScanExam(std::string exam_code, std::vector<std::vector<coverStu>> &stuInfo);
- SMARTEVALUATIONLOGIC_API void getCoverStuInfoByExamCode(std::string examCode, std::vector<coverStu> &stuInfo);
- SMARTEVALUATIONLOGIC_API void writeToexcel(std::string path, std::vector<std::vector<coverStu>> &stuInfo, std::vector<coverStu> &stuInfo2,bool flag1,bool flag2,bool flag3);
- /*模板测试工具类*/
- class CLocateTester;
- class SMARTEVALUATIONLOGIC_API CLocateTestExport
- {
- public:
- CLocateTestExport(void);
- ~CLocateTestExport(void);
- bool isReady();
- bool isSameSchema(const schema::SCHEMA& schema);
- bool test(const schema::SCHEMA& schema,const std::vector<std::string>& img_paths);
- bool isResultOk();
- bool getTestResult(std::string &error_msg);
- private:
- CLocateTester * tester;
- };
- SMARTEVALUATIONLOGIC_API int InitIdentiferDllAlgorithm();
- SMARTEVALUATIONLOGIC_API void FreeIdentiferDllAlgorithm();
- struct IUploudNotify;
- SMARTEVALUATIONLOGIC_API void InitUploadManager(bool bEanble, bool bCountiue, bool bErrorHanle, bool bOnlineCard, IUploudNotify*pNotify);
- SMARTEVALUATIONLOGIC_API void OnScanListFilter(bool bsuccess,int nUploadState);
- SMARTEVALUATIONLOGIC_API int UploadOnScanCmd(int nCmd, const char*param ,void*ret=nullptr);
- SMARTEVALUATIONLOGIC_API void QuickHandle(bool bGetPath, char*path_nor, int nor_len, char*path_exc, int exc_len);
- SMARTEVALUATIONLOGIC_API int BatchServiceCmd(int cmd, void*param, void*ret);
- SMARTEVALUATIONLOGIC_API void SetExamName(const wchar_t * name);
- SMARTEVALUATIONLOGIC_API vector<int> GetAllConfictPaper(int student_paper_id,string student_id);
- /************************************************************************/
- /* 校验考号冲突是否是本次扫描(是1 否0) */
- /* 返回值:是1 否0 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int ExamineThisScan(PAPER_DETAIL &paper_detail);
- /************************************************************************/
- /* 设置试卷为缺考 */
- /* 参数:absent: 1 非缺考 2 确认缺考 3 标记缺考 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int SetAbsentExam(PAPER_DETAIL &paper_detail, int absent);
- /************************************************************************/
- /* 查询有异常的客观题 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int QueryKeGuanTiYiChang(const int paper_id, std::vector<KEGUANTI_DETAIL>& keguantiList);
- /************************************************************************/
- /* 更新异常客观题 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API int UpdateKeGuanTiYiChang(const int paper_id, std::vector<KEGUANTI_DETAIL>& keguantiList);
- /************************************************************************/
- /* 设置是否全学科在线 */
- /************************************************************************/
- SMARTEVALUATIONLOGIC_API void SetAllSubject(bool all=true);
|