/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:SmartDeviceService.cs
* 2.功能描述:接收智能设备请求
* 编辑履历:
* 作者 日期 版本 修改内容
* 陈晓野 2018/10/25 1.00 新建
*******************************************************************************/
using System;
using System.Data;
using System.ServiceModel;
using System.ServiceModel.Activation;
using Dongke.IBOSS.PRD.Basics.Library;
using Dongke.IBOSS.PRD.Service.DataModels;
using Dongke.IBOSS.PRD.Service.PMModuleLogic;
using Dongke.IBOSS.PRD.Service.SmartDeviceService;
using Dongke.IBOSS.PRD.WCF.Contracts;
using Dongke.IBOSS.PRD.WCF.DataModels;
namespace Dongke.IBOSS.PRD.WCF.Services
{
///
/// 智能设备对接服务
///
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(ConfigurationName = "SmartDeviceService",
InstanceContextMode = InstanceContextMode.PerCall,
ConcurrencyMode = ConcurrencyMode.Multiple,
UseSynchronizationContext = false)]
public class SmartDeviceService : ISmartDevice
{
///
/// 连接测试
///
///
///
public string Test(string message)
{
return message + " is ok";
}
///
/// 自动扫描计件
///
///
public void AddWorkPiece(string accountCode, string userCode, string userPassword,
int procedureID, string barcode)
{
try
{
DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
if (userInfo == null)
{
OutputLog.TraceLog(LogPriority.Warning,
this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name,
" userInfo is null " + userPassword + System.Environment.NewLine +
" accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
LocalPath.LogExePath + "SmartDevice\\");
return;
}
SUserInfo sUserInfo = new SUserInfo();
sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
sUserInfo.AccountCode = accountCode;
sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
sUserInfo.UserCode = userCode;
//DataTable barcodeTable = new DataTable();
//barcodeTable.TableName = "barcodeTable";
//barcodeTable.Columns.Add("BarCode");
//barcodeTable.Columns.Add("UserID");
//barcodeTable.Columns.Add("UserCode");
//barcodeTable.Columns.Add("UserName");
//barcodeTable.Columns.Add("LogoID");
//DataRow drCollectType = barcodeTable.NewRow();
//drCollectType["BarCode"] = barcode;
//drCollectType["UserID"] = sUserInfo.UserID;
//drCollectType["UserCode"] = sUserInfo.UserCode;
//drCollectType["UserName"] = userInfo.Rows[0]["UserName"].ToString();
//barcodeTable.Rows.Add(drCollectType);
DataTable barcodeTable = userInfo;
barcodeTable.Columns.Add("LogoID");
barcodeTable.Columns.Add("BarCode");
barcodeTable.Rows[0]["BarCode"] = barcode;
ProcedureEntity procedureInfo = null;
DataTable dt = PMModuleLogicDAL.AddWorkPiece(procedureID, barcodeTable, sUserInfo, out procedureInfo);
if (dt != null && dt.Rows.Count > 0 && !string.IsNullOrWhiteSpace(dt.Rows[0]["out_errMsg"].ToString()))
{
OutputLog.TraceLog(LogPriority.Warning,
this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name + System.Environment.NewLine +
userPassword + System.Environment.NewLine +
" accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
JsonHelper.ToJson(dt),
LocalPath.LogExePath+ "SmartDevice\\");
}
}
catch (Exception ex)
{
OutputLog.TraceLog(LogPriority.Error,
this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name + System.Environment.NewLine +
userPassword + System.Environment.NewLine +
" accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
ex.ToString(),
LocalPath.LogExePath);
}
}
///
/// 自动扫描计件
///
///
public string AddWorkPieceByStatus(string accountCode, string userCode, string userPassword,
int procedureID, string barcode, string remarks)
{
try
{
DataTable userInfo = SmartDeviceLogic.CheckUserCode(accountCode, userCode);
if (userInfo == null)
{
OutputLog.TraceLog(LogPriority.Warning,
this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name,
" userInfo is null " + userPassword + System.Environment.NewLine +
" accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
LocalPath.LogExePath + "SmartDevice\\");
return "EU-01";
}
SUserInfo sUserInfo = new SUserInfo();
sUserInfo.AccountID = Convert.ToInt32(userInfo.Rows[0]["AccountID"]);
sUserInfo.AccountCode = accountCode;
sUserInfo.UserID = Convert.ToInt32(userInfo.Rows[0]["userid"]);
sUserInfo.UserCode = userCode;
//DataTable barcodeTable = new DataTable();
//barcodeTable.TableName = "barcodeTable";
//barcodeTable.Columns.Add("BarCode");
//barcodeTable.Columns.Add("UserID");
//barcodeTable.Columns.Add("UserCode");
//barcodeTable.Columns.Add("UserName");
//barcodeTable.Columns.Add("LogoID");
//DataRow drCollectType = barcodeTable.NewRow();
//drCollectType["BarCode"] = barcode;
//drCollectType["UserID"] = sUserInfo.UserID;
//drCollectType["UserCode"] = sUserInfo.UserCode;
//drCollectType["UserName"] = userInfo.Rows[0]["UserName"].ToString();
//barcodeTable.Rows.Add(drCollectType);
DataTable barcodeTable = userInfo;
barcodeTable.Columns.Add("LogoID");
barcodeTable.Columns.Add("BarCode");
barcodeTable.Columns.Add("Remarks");
barcodeTable.Rows[0]["BarCode"] = barcode;
barcodeTable.Rows[0]["Remarks"] = remarks;
ProcedureEntity procedureInfo = null;
DataTable dt = PMModuleLogicDAL.AddWorkPiece(procedureID, barcodeTable, sUserInfo, out procedureInfo);
string out_msg = dt.Rows[0]["out_errMsg"].ToString();
if (dt != null && dt.Rows.Count > 0 && !string.IsNullOrWhiteSpace(out_msg))
{
OutputLog.TraceLog(LogPriority.Warning,
this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name + System.Environment.NewLine +
userPassword + System.Environment.NewLine +
" accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
JsonHelper.ToJson(dt),
LocalPath.LogExePath + "SmartDevice\\");
if (out_msg.StartsWith("无效条码"))
{
return "EP-01";
}
if (out_msg.Contains("不能到达该工序"))
{
return "EP-02";
}
return "EP-00";
}
return "OK";
}
catch (Exception ex)
{
OutputLog.TraceLog(LogPriority.Error,
this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name + System.Environment.NewLine +
userPassword + System.Environment.NewLine +
" accountCode:" + accountCode + " userCode:" + userCode + " procedureID:" + procedureID + " barcode:" + barcode,
ex.ToString(),
LocalPath.LogExePath);
return "EE";
}
}
}
}