using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using Newtonsoft.Json;
using Saraff.Twain;
using HXX.Scanner.Socket;
using HXX.Scanner.Common;
namespace HXX.Scanner.Biz.Socket
{
///
/// 业务处理 重传
///
public class biz_reUpload
{
public static List current_list = new List();
public static del_notify_startScan on_startScan;
///
/// 主业务
///
///
///
public static void Work(IntPtr connId, cmd_reUpload data)
{
try
{
if (config_environment.scan_state == true || !http_manager.check_is_queue_empty())
{
var response = new response_reUpload_error()
{
batchNumber = data.batchNumber,
subjectCode = data.subjectCode,
code = 500,
msg = "扫描正在进行中或有尚未完成的上传",
};
//SocketServerManager.Send_Family(connId, response.ToJson());
SocketServerManager.Send_Single(connId, response.ToJson());
}
else
{
config_environment.web_parameter.batchNumber = data.batchNumber;
config_environment.web_parameter.subjectCode = data.subjectCode;
config_environment.web_parameter.uploadUrl = data.uploadUrl;
config_environment.web_parameter.jsonParam = data.jsonParam;
config_environment.web_parameter.token = data.token;
config_environment.scan_state = true;
on_startScan(data.uploadUrl);
var list = new biz_db().get_not_upload_list(data.batchNumber, data.subjectCode);
current_list = list;
if (list.Count > 0)
{
foreach (var record in list)
{
var eq = new upf() { entity = record, result = new ResponseEntity(), upload_type = upload_type_enum.reUpload };
new http_manager().Upload(eq);
}
}
else
{
var response_finish = new response_reUpload_all_finish() { subjectCode = data.subjectCode, batchNumber = data.batchNumber, number = 0, failedNumber = 0 };
//SocketServerManager.Send_Family(connId, response_finish.ToJson());
SocketServerManager.Send_Single(connId, response_finish.ToJson());
}
}
}
catch (Exception ee)
{
var response = new response_reUpload_error()
{
batchNumber = data.batchNumber,
subjectCode = data.subjectCode,
code = 500,
msg = ee.Message,
};
//SocketServerManager.Send_Family(connId, response.ToJson());
SocketServerManager.Send_Single(connId, response.ToJson());
}
finally
{
config_environment.scan_state = false;
}
}
}
}