|
|
using NFine.Data.Extensions;using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;using System.Threading.Tasks;using NFine.Code;using NFine.Repository;using System.Data.Common;using NFine.Domain._03_Entity.SRM;using ICS.Application.Entity;using Newtonsoft.Json;using System.Configuration;using System.Data.SqlClient;using ICS.Data;using Newtonsoft.Json.Linq;using NFine.Domain._03_Entity.WMS;using System.Net;using System.IO;using Dapper;
namespace NFine.Application.WMS{ public class WareHouseLotinspectionApp : RepositoryFactory<ICSVendor> { public static DataTable MDInvmes = new DataTable();
public DataTable GetICSInspect(ref Pagination jqgridparam) { DataTable dt = new DataTable(); List<DbParameter> parameter = new List<DbParameter>(); string sql = @" select a.ID,B.F_ItemName DepName,a.InspectCode,a.Status,Case When a.Type=0 Then '标准检验' ELSE '超期检验' END Type
,a.Type AS TypeValue ,a.Memo,a.CreatePerson,a.CreateDateTime,a.MUSER,a.MUSERName ,a.EATTRIBUTE1 AS DeptCode,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8, a.EATTRIBUTE9,a.EATTRIBUTE10 from ICSInspect a LEFT JOIN (SELECT a. F_ItemCode,a.F_ItemName FROM Sys_SRM_ItemsDetail a INNER JOIN Sys_SRM_Items b ON a.F_ItemId=b.F_id WHERE b.F_EnCode='ApproveRoleConfig') B ON a.EATTRIBUTE1=B.F_ItemCode where a.Status='3'";
sql = string.Format(sql); // DataTable dttest = Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); }
public DataTable GetICSMOApplyNegDetail(string InspectCode, ref Pagination jqgridparam) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>(); string sql = @" select a.ID,a.InspectCode,a.LotNo,a.Sequence,b.InvCode,a.Quantity,a.Amount,a.InspectQuantity,a.ExtensionID,a.MUSER
,a.MUSERName,a.MTIME ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8, a.EATTRIBUTE9,a.EATTRIBUTE10 from ICSInspectDetail a left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint left join ICSInventoryLot b on b.LotNo=a.LotNo and b.WorkPoint=a.WorkPoint WHERE a.InspectCode='" + InspectCode + "' ";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); }
public string DeleteICSInspect(string keyValue) { //站点信息
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; keyValue = keyValue.Substring(1, keyValue.Length - 2); string sql = string.Empty; try {
string chksql = @"select LotNo,EATTRIBUTE1 AS DocStatus from ICSInspectDetail
WHERE InspectCode IN ({0}) AND WorkPoint='{1}'";
chksql = string.Format(chksql, keyValue.TrimEnd(','), WorkPoint); DataTable chkdt = SqlHelper.GetDataTableBySql(chksql); foreach (DataRow dr in chkdt.Rows) { if (dr["DocStatus"].ToString() == "已检验") { throw new Exception("已经开始检验的单据无法删除!"); } } sql += string.Format(@" update ICSWareHouseLotInfo set Inspect=0
where LotNo IN (select LotNo FROM dbo.ICSInspectDetail WHERE InspectCode IN ({0}) and WorkPoint ='{1}') and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
sql += string.Format(@"DELETE FROM dbo.ICSInspect WHERE InspectCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); sql += string.Format(@"DELETE FROM dbo.ICSInspectDetail WHERE InspectCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0) {
} } catch (Exception ex) { msg = ex.Message; } return msg; } public DataTable GetICSInspectTemporary(string InspectCode) { string sql = @"SELECT a.ID,
a.InspectCode, Case When d.Type=0 Then '标准检验' ELSE '超期检验' END AS DocType, c.InvCode, a.Quantity, a.Amount, b.InvName, b.InvStd, b.InvUnit, a.LotNo, a.EATTRIBUTE1 AS DocStatus,a.InspectQuantity,a.ExtensionID,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 FROM ICSInspectDetail aLEFT JOIN ICSInspect d ON d.InspectCode=a.InspectCode and d.WorkPoint=a.WorkPointLEFT JOIN ICSInventoryLot c ON c.LotNo=a.LotNo and c.WorkPoint=a.WorkPointLEFT JOIN ICSInventory b ON c.InvCode = b.InvCode and a.WorkPoint=b.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.InspectCode='" + InspectCode + "'";
DataTable table = Repository().FindDataSetBySql(sql).Tables[0]; DataTable dtCloned = table.Clone(); foreach (DataColumn col in dtCloned.Columns) { col.DataType = typeof(string); } foreach (DataRow row in table.Rows) { DataRow newrow = dtCloned.NewRow(); foreach (DataColumn column in dtCloned.Columns) { newrow[column.ColumnName] = row[column.ColumnName].ToString();
} dtCloned.Rows.Add(newrow); } if (MDInvmes.Rows.Count > 0) { dtCloned.Merge(MDInvmes, false); } return dtCloned; } /// <summary>
/// 获取检验单单据类型
/// </summary>
/// <returns></returns>
public DataTable GetInspectDocType(string ID) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = @"select Type,Case When Type=0 then '标准检验' ELSE '超期检验' END AS DocType from ICSInspect
where ID='{0}' and WorkPoint='{1}'";
sql = string.Format(sql, ID, WorkPoint); DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } /// <summary>
/// 获取检验单检验部门
/// </summary>
/// <returns></returns>
public DataTable GetInspectDept(string ID) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = ""; if (ID == "") { sql = @"select B.F_ItemName AS Name,B.F_ItemCode AS Code from Sys_SRM_Items A
LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id where A.F_EnCode='ApproveRoleConfig'";
} else { sql = @"select B.F_ItemName AS Name,B.F_ItemCode AS Code into #tempdept from ICSInspect A
INNER JOIN Sys_SRM_ItemsDetail B ON B.F_ItemCode=A.EATTRIBUTE1 INNER JOIN Sys_SRM_Items C ON C.F_Id=B.F_ItemId where A.ID='{0}' and A.WorkPoint='{1}' AND C.F_EnCode='ApproveRoleConfig' UNION ALL select B.F_ItemName AS Name,B.F_ItemCode AS Code from Sys_SRM_Items A LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id where A.F_EnCode='ApproveRoleConfig'
select distinct * from #tempdept
drop table #tempdept";
sql = string.Format(sql, ID, WorkPoint); } DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } public void ClearTemp() { MDInvmes.Rows.Clear(); }
#region 条码验证方法
/// <summary>
/// 检查条码状态,验证条码是否可以添加
/// 规则:已审核的不可再次添加,复审后的允许再次添加
/// </summary>
/// <param name="lotNo">单个条码</param>
/// <returns>验证结果</returns>
public string SeachInspectLotcheck(string lotNo) { try { // 参数验证
if (string.IsNullOrWhiteSpace(lotNo)) { return JsonConvert.SerializeObject(new { success = false, message = "条码不能为空" }); }
// 检查条码是否为"已审核"状态
bool isApproved = CheckIfLotIsApproved(lotNo.Trim());
if (isApproved) { // 如果条码状态为"已审核",返回错误信息
return JsonConvert.SerializeObject(new { success = false, message = $"条码 {lotNo} 已审核,不允许再次添加" }); }
// 条码通过验证
return JsonConvert.SerializeObject(new { success = true, message = "验证通过" }); } catch (Exception ex) { // 记录异常日志
string errorMessage = $"SeachInspectLotcheck验证条码{lotNo}状态时发生错误"; System.Diagnostics.Trace.TraceError($"{errorMessage}: {ex.Message}");
return JsonConvert.SerializeObject(new { success = false, message = "验证过程中发生错误,请稍后重试" }); } }
/// <summary>
/// 检查单个条码是否为"已审核"状态
/// 规则:已审核的不可再次添加,复审后的允许再次添加
/// 所以我们只检查条码是否有状态为"已审核"的记录
/// </summary>
private bool CheckIfLotIsApproved(string lotNo) { // 获取数据库连接字符串
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
using (var connection = new SqlConnection(connectionString)) { connection.Open();
// 获取当前工作站点
string workPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
// 查询条码是否有状态为"已审核"的记录
// 注意:我们只检查"已审核"状态,"已复审"状态允许再次添加
string sql = @"
SELECT TOP 1 1 FROM ICSInspectDetail d WHERE d.LotNo = @LotNo AND d.WorkPoint = @WorkPoint AND d.EATTRIBUTE1 = '已审核' ";
var parameters = new { LotNo = lotNo, WorkPoint = workPoint };
var result = connection.QueryFirstOrDefault<int>(sql, parameters);
return result == 1; // 找到记录表示条码已审核,不允许添加
} }
/// <summary>
/// 批量检查条码是否可以添加
/// 规则:已审核的不可再次添加,复审后的允许再次添加
/// </summary>
/// <param name="lotNos">条码数组</param>
/// <returns>验证结果</returns>
public string SeachInspectLotcheckBatch(string[] lotNos) { try { // 参数验证
if (lotNos == null || lotNos.Length == 0) { return JsonConvert.SerializeObject(new { success = false, message = "条码列表为空" }); }
// 获取数据库连接字符串
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
using (var connection = new SqlConnection(connectionString)) { connection.Open();
// 获取当前工作站点
string workPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
// 将数组转换为逗号分隔的字符串
string lotNoList = string.Join("','", lotNos.Select(l => l.Trim()));
// SQL查询语句 - 批量检查状态为"已审核"的条码
string sql = $@"
SELECT DISTINCT LotNo FROM ICSInspectDetail d WHERE d.LotNo IN ('{lotNoList}') AND d.WorkPoint = '{workPoint}' AND d.EATTRIBUTE1 = '已审核' ORDER BY LotNo ";
// 查询状态为"已审核"的条码
var approvedLots = connection.Query<string>(sql).ToList();
if (approvedLots != null && approvedLots.Count > 0) { return JsonConvert.SerializeObject(new { success = false, message = $"条码 {string.Join(", ", approvedLots)} 已审核,不允许再次添加" }); }
// 所有条码都通过验证
return JsonConvert.SerializeObject(new { success = true, message = "验证通过" }); } } catch (Exception ex) { // 记录异常日志
string errorMessage = $"SeachInspectLotcheckBatch验证条码状态时发生错误"; System.Diagnostics.Trace.TraceError($"{errorMessage}: {ex.Message}");
return JsonConvert.SerializeObject(new { success = false, message = "验证过程中发生错误,请稍后重试" }); } } #endregion
public DataTable GetInspectLot(string invcode, string WHCode, string InspectType, ref Pagination jqgridparam) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; List<DbParameter> parameter = new List<DbParameter>(); DataTable table = new DataTable(); string wherestr = ""; if (!string.IsNullOrEmpty(invcode)) { wherestr += " and a.InvCode like '%" + invcode + "%'"; } if (!string.IsNullOrEmpty(WHCode)) { wherestr += " and a.WarehouseCode like '%" + WHCode + "%'"; } if (InspectType == "0") { wherestr += " and B.ExpirationDate>GETDATE()"; } else { wherestr += " and B.ExpirationDate<GETDATE()"; } string sql = @" select A.ID,A.LotNo,A.InvCode,C.InvName,C.InvStd,C.InvUnit,A.Quantity,B.Amount,B.ExtensionID
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 from ICSWareHouseLotInfo A INNER JOIN ICSInventoryLot B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint INNER JOIN ICSInventory C ON C.InvCode=A.InvCode AND B.WorkPoint=A.WorkPoint LEFT JOIN ICSExtension F ON F.ID=B.ExtensionID AND F.WorkPoint=B.WorkPoint where ISNULL(A.LockQuantity,0)=0 AND A.Quantity>0 AND C.InvOQC=1 AND NOT EXISTS ( SELECT 1 FROM ICSInspect a2 INNER JOIN ICSInspectDetail d2 ON d2.InspectCode = a2.InspectCode AND d2.WorkPoint = a2.WorkPoint LEFT JOIN dbo.ICSInventoryLot e2 ON e2.LotNo = d2.LotNo AND e2.WorkPoint = d2.WorkPoint LEFT JOIN dbo.ICSWareHouseLotInfo g2 ON g2.LotNo = e2.LotNo AND g2.WorkPoint = e2.WorkPoint WHERE g2.LotNo IS NOT NULL AND d2.EATTRIBUTE1 IN( '已检验', '已审核','未检验' ) AND CONVERT(DECIMAL(18,4), ISNULL(d2.InspectQuantity, 0)) != CONVERT(DECIMAL(18,4), ISNULL(d2.Quantity, 0)) -- 关联条件 AND d2.LotNo = A.LotNo AND d2.WorkPoint = A.WorkPoint )AND A.WorkPoint='" + WorkPoint + "'" + wherestr
; //sql += " Order BY f.BatchCode";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public void AddMOApplyNegTemp(string json) { var data = json.ToJObject(); if (MDInvmes.Columns.Count <= 0) { MDInvmes.Columns.Add("ZJID", typeof(string)); MDInvmes.Columns.Add("InvCode", typeof(string)); MDInvmes.Columns.Add("INVNAME", typeof(string)); MDInvmes.Columns.Add("InvStd", typeof(string)); MDInvmes.Columns.Add("InvUnit", typeof(string)); MDInvmes.Columns.Add("Quantity", typeof(string)); MDInvmes.Columns.Add("IssueNegQuantity", typeof(string)); MDInvmes.Columns.Add("ExtensionID", typeof(string)); MDInvmes.Columns.Add("Amount", typeof(string)); MDInvmes.Columns.Add("ID", typeof(string)); } string usercode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; DataRow newrow = MDInvmes.NewRow(); newrow["ZJID"] = data["ZJID"]; newrow["InvName"] = data["InvName"]; newrow["InvCode"] = data["InvCode"]; newrow["InvStd"] = data["InvStd"]; newrow["InvUnit"] = data["InvUnit"]; newrow["Amount"] = data["Amount"]; newrow["IssueNegQuantity"] = data["IssueNegQuantity"]; newrow["ExtensionID"] = data["ExtensionID"]; newrow["Quantity"] = ""; newrow["ID"] = data["ID"]; MDInvmes.Rows.Add(newrow);
}
public void UpdateMOApplyNegTemp(string json) { var data = json.ToJObject(); string usercode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; var info = MDInvmes.Select(string.Format("TLZID='{0}'", data["TLZID"])); if (info != null && info.Length > 0) { info[0]["ZJID"] = data["ZJID"]; info[0]["InvName"] = data["InvName"]; info[0]["InvCode"] = data["InvCode"]; info[0]["InvStd"] = data["InvStd"]; info[0]["InvUnit"] = data["InvUnit"]; info[0]["Amount"] = data["Amount"]; info[0]["IssueNegQuantity"] = data["IssueNegQuantity"]; info[0]["ExtensionID"] = data["ExtensionID"]; info[0]["Quantity"] = 0; } else { DataRow newrow = MDInvmes.NewRow(); newrow["ZJID"] = data["ZJID"]; newrow["InvName"] = data["InvName"]; newrow["InvCode"] = data["InvCode"]; newrow["InvStd"] = data["InvStd"]; newrow["InvUnit"] = data["InvUnit"]; newrow["Amount"] = data["Amount"]; newrow["IssueNegQuantity"] = data["IssueNegQuantity"]; newrow["ExtensionID"] = data["ExtensionID"]; newrow["Quantity"] = 0; newrow["ID"] = data["ID"]; newrow["TLZID"] = data["TLZID"]; MDInvmes.Rows.Add(newrow); } }
public string SaveInspect(string LotNOList, string DocType, string DeptCode, string Memo) { string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; string sql = string.Empty; try { string codes = string.Empty; //获取单号
sql = @"DECLARE @MaxNO INT,@date varchar(20)='LOTIA'+SUBSTRING(CONVERT(varchar(8), GETDATE(), 112), 1, 8)
SELECT @MaxNO=SUBSTRING(MAX(InspectCode),LEN(@date)+1,LEN(MAX(InspectCode))-LEN(@date))+1 FROM ICSInspect WHERE SUBSTRING(InspectCode, 1, LEN(@date))=@date IF @MaxNO IS NULL BEGIN SELECT @date+'00001' AS Code END ELSE BEGIN SELECT @date+REPLICATE('0',5-LEN(@MaxNO))+CAST(@MaxNO AS nvarchar(10)) AS Code END ";
string Code = Repository().FindDataSetBySql(sql).Tables[0].Rows[0]["Code"].ToString(); //创建主表
sql = @"IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{5}')
BEGIN RAISERROR('操作人:{2} 不存在!',16,1); RETURN END
insert into ICSInspect (ID,InspectCode,Status,Type,Memo,CreatePerson,CreateDateTime,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1) values (NEWID(),'{0}','3','{1}','{7}','{2}','{3}','{2}','{4}','{3}','{5}','{6}')";
sql = string.Format(sql, Code, DocType, MUSER, DateTime.Now, MUSERNAME, WorkPoint, DeptCode, Memo);
int LineNO = 0; List<string> chkLotNoList = new List<string>(); foreach (string LotNo in LotNOList.Split(',')) { LineNO++; // 创建子表,并修改条码库存检验状态为检验中
sql += @" INSERT INTO ICSInspectDetail(ID,InspectCode,Sequence,LotNo,Quantity,Amount,InspectQuantity,
ExtensionID,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1) select NEWID(),'{0}','{1}',A.LotNo,A.Quantity ,B.Amount,0,B.ExtensionID,'{2}','{3}',GETDATE(),'{4}','未检验' from ICSWareHouseLotInfo A INNER JOIN ICSInventoryLot B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint where A.LotNo='{5}' AND A.WorkPoint='{4}' update ICSWareHouseLotInfo set Inspect=1 where LotNo='{5}' and WorkPoint='{4}'";
sql = string.Format(sql, Code, LineNO, MUSER, MUSERNAME, WorkPoint, LotNo);
if (chkLotNoList.Contains(LotNo)) { throw new Exception("检验条码不可重复添加!"); } chkLotNoList.Add(LotNo); }
if (SqlHelper.ExecuteNonQuery(sql) == 0) { throw new Exception("检验单信息创建失败!"); } } catch (Exception ex) { return ex.Message; }
return msg; }
public string UpdateInspect(string InspectCode, string LotNOList, string DeptCode, string Memo) { string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; string sql = string.Empty; try { List<string> LotList = LotNOList.Split(',').ToList(); string codes = string.Empty; //获取单号
string chksql = @"SELECT LotNo,Sequence FROM ICSInspectDetail
WHERE InspectCode='{0}' AND WorkPoint='{1}' ORDER BY Sequence DESC";
chksql = string.Format(chksql, InspectCode, WorkPoint); DataTable dt = SqlHelper.GetDataTableBySql(chksql); foreach (DataRow dr in dt.Rows) { if (LotList.Contains(dr["LotNo"].ToString())) { LotList.Remove(dr["LotNo"].ToString()); } else { sql += "delete from ICSInspectDetail where InspectCode='{0}' AND LotNo='{1}' AND WorkPoint='{2}' "; sql = string.Format(sql, InspectCode, dr["LotNo"].ToString(), WorkPoint); } }
int LineNO = Convert.ToInt32(dt.Rows[0]["Sequence"]); List<string> chkLotNoList = new List<string>(); foreach (string LotNo in LotList) { LineNO++; // 创建子表
sql += @" update ICSInspect set EATTRIBUTE1='{6}',Memo='{7}'
where InspectCode='{0}' and WorkPoint='{4}' INSERT INTO ICSInspectDetail(ID,InspectCode,Sequence,LotNo,Quantity,Amount,InspectQuantity, ExtensionID,MUSER, MUSERName,MTIME,WorkPoint,EATTRIBUTE1) select NEWID(),'{0}','{1}',A.LotNo,A.Quantity ,B.Amount,0,B.ExtensionID,'{2}','{3}',GETDATE(),'{4}','未检验' from ICSWareHouseLotInfo A INNER JOIN ICSInventoryLot B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint where A.LotNo='{5}' AND A.WorkPoint='{4}'";
sql = string.Format(sql, InspectCode, LineNO, MUSER, MUSERNAME, WorkPoint, LotNo, DeptCode, Memo);
if (chkLotNoList.Contains(LotNo)) { throw new Exception("检验条码不可重复添加!"); } chkLotNoList.Add(LotNo); }
if (SqlHelper.ExecuteNonQuery(sql) == 0) { throw new Exception("检验单信息修改失败!"); } } catch (Exception ex) { return ex.Message; }
return msg; } public DataTable GetICSMOApplyNegDetailTemp(string ApplyNegCode) { string sql = @"SELECT
a.ID, a.ID as TLZID, a.ApplyNegCode, a.InvCode, a.Quantity, a.Amount, a.SourceDetailID as ZJID, b.InvName, b.InvStd, b.InvUnit,a.IssueNegQuantity,a.ExtensionID,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 FROM ICSMOApplyNegDetail aLEFT JOIN ICSInventory b ON a.InvCode = b.InvCode and a.WorkPoint=b.WorkPoint
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint where a.ApplyNegCode='" + ApplyNegCode + "'";
DataTable table = Repository().FindDataSetBySql(sql).Tables[0]; if (MDInvmes == null || MDInvmes.Columns.Count <= 0) MDInvmes = table.Clone(); DataTable dtCloned = table.Clone(); foreach (DataColumn col in dtCloned.Columns) { col.DataType = typeof(string); } foreach (DataRow row in table.Rows) { DataRow newrow = dtCloned.NewRow(); foreach (DataColumn column in dtCloned.Columns) { newrow[column.ColumnName] = row[column.ColumnName].ToString();
} dtCloned.Rows.Add(newrow); } if (MDInvmes.Rows.Count > 0) { //dtCloned.Merge(Invmes, false);
foreach (DataRow data in MDInvmes.Rows) {
var info = dtCloned.Select(string.Format("TLZID='{0}'", data["TLZID"])); if (info != null && info.Length > 0) { info[0]["ZJID"] = data["ZJID"]; info[0]["InvName"] = data["InvName"]; info[0]["InvCode"] = data["InvCode"]; info[0]["InvStd"] = data["InvStd"]; info[0]["InvUnit"] = data["InvUnit"]; info[0]["Amount"] = data["Amount"]; info[0]["IssueNegQuantity"] = data["IssueNegQuantity"]; info[0]["ExtensionID"] = data["ExtensionID"]; info[0]["Quantity"] = 0; } else { DataRow newrow = dtCloned.NewRow(); newrow["ZJID"] = data["ZJID"]; newrow["InvName"] = data["InvName"]; newrow["InvCode"] = data["InvCode"]; newrow["InvStd"] = data["InvStd"]; newrow["InvUnit"] = data["InvUnit"]; newrow["Amount"] = data["Amount"]; newrow["Quantity"] = 0; newrow["ID"] = data["ID"]; newrow["TLZID"] = data["TLZID"]; newrow["IssueNegQuantity"] = data["IssueNegQuantity"]; newrow["ExtensionID"] = data["ExtensionID"]; dtCloned.Rows.Add(newrow); } } } return dtCloned; }
public string UpdateICSMOApplyNeg(string ICSASN) { string msg = ""; string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "MOIssueDocNegativeApply/Update"; string result = HttpPost(APIURL, ICSASN); JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
string MessAge = Obj["Message"].ToString(); string Success = Obj["Success"].ToString(); if (Success.ToUpper() == "FALSE") { msg = MessAge; } return msg; } public static string HttpPost(string url, string body) { try { Encoding encoding = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
request.ContentType = "application/json; charset=utf-8";
byte[] buffer = encoding.GetBytes(body); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) { return reader.ReadToEnd(); } } catch (WebException ex) { throw new Exception(ex.Message); } } }}
|