Browse Source

完工报告生成成品入库单

master
姜鹏 2 weeks ago
parent
commit
ef9b07abfc
  1. 5
      ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs
  2. 4
      ICSSoft.WMS.WebAPI/ICSSoft.Common/TransTypeEnum.cs
  3. 42
      ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs
  4. 46
      ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs

5
ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs

@ -103,6 +103,11 @@
public static string ICSManufactureReceiveURL = url+ "ManufactureReceiveDoc/Approve";
public static string U9ICSManufactureReceiveURL = url+ "U9ManufactureReceiveDoc/Approve";
/// <summary>
/// 根据完工报告单生成成品入库单
/// </summary>
public static string ICSManufactureReceiveCreateURL = url+ "ManufactureReceiveDoc/Create";
/// <summary>
/// 返工工单
/// </summary>

4
ICSSoft.WMS.WebAPI/ICSSoft.Common/TransTypeEnum.cs

@ -136,6 +136,10 @@ namespace ICSSoft.Common
[DBValue("72")]
ManufactureMESReceive,
[Description("产成品入库-产成品入库单-mes-更新")]
[DBValue("72-1")]
ManufactureMESReceiveUpt,
[Description("销售发货-销售发货单")]
[DBValue("19")]
SalesShipmentDoc, //(合并发料)

42
ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs

@ -3440,7 +3440,7 @@ and d.lotno is null";
}
/// <summary>
/// MES成品入库单调用ERP接口
/// 完工报告单入库调用ERP接口
/// </summary>
/// <param name="TransType"></param>
/// <param name="Identification"></param>
@ -3505,7 +3505,7 @@ and d.lotno is null";
}
#region ERP开立状态单据审核
#region 完工报告单入库创建ERP成品入库单
string sql = @"DECLARE @quantity DECIMAL(38,4);
DECLARE @rcvquantity DECIMAL(38,4);
SELECT @quantity=SUM(Quantity),@rcvquantity=SUM(RCVQuantity) FROM ICSManufactureReceive b
@ -3515,33 +3515,29 @@ BEGIN
RAISERROR('" + language.GetNameByCode("WMSAPIInfo096") + @"',16,1);
RETURN
END
select LotNo,WorkPoint,InvCode,ToWarehouseCode,MUSER,Quantity,TransCode,TransSequence
select a.WorkPoint,a.ToWarehouseCode,b.RCVID,b.RCVDetailID,a.MUSER,GETDATE() AS MTIME,a.InvCode,a.Quantity,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock,mo.Amount,mo.MODetailID,b.RCVID+a.WorkPoint AS Costre
INTO #NewTempERP
from ICSWareHouseLotInfoLog
WHERE Identification='{0}' AND ERPUpload='0'
from ICSWareHouseLotInfoLog a
INNER JOIN ICSMO mo ON mo.MOCode=a.TransCode AND mo.Sequence=a.TransSequence AND mo.WorkPoint=a.WorkPoint
INNER JOIN ICSManufactureReceive b ON b.SourceCode=mo.MOCode AND b.Sequence=mo.Sequence AND b.WorkPoint=mo.WorkPoint AND b.RCVCode='{3}'
INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock004' AND a.WorkPoint=conStock.WorkPoint
WHERE a.Identification='{0}' AND a.ERPUpload='0'
SELECT b.RCVID AS ID,a.MUSER AS [User],SYSDATETIME() AS MTime,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock,a.WorkPoint
FROM #NewTempERP a
INNER JOIN ICSMO mo ON mo.MOCode=a.TransCode AND mo.Sequence=a.TransSequence AND mo.WorkPoint=a.WorkPoint
INNER JOIN ICSManufactureReceive b ON b.SourceCode=mo.MOCode AND b.Sequence=mo.Sequence AND b.WorkPoint=mo.WorkPoint AND b.RCVCode='{3}'
INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock004' AND a.WorkPoint=conStock.WorkPoint
GROUP BY b.RCVID,a.MUSER,con.Enable,conStock.Enable,a.WorkPoint
SELECT DISTINCT Costre,WorkPoint,ToWarehouseCode AS WHCode,RCVID AS MOCode,MUSER AS [User],MTime,UpdateStock,UpdateTodoQuantity FROM #NewTempERP
SELECT Costre,RCVDetailID AS Sequence,InvCode,SUM(Quantity) AS Quantity,Amount,RCVDetailID AS MODetailID FROM #NewTempERP
GROUP BY Costre,RCVDetailID,InvCode,Quantity,Amount,RCVDetailID
DROP TABLE #NewTempERP";
DROP TABLE #NewTempERP";
sql = string.Format(sql, Identification, checklotno, checkrcvcode, TransCode);
DataTable dt = DBHelper.SQlReturnData(sql, cmd);
string Inputstr = JsonConvert.SerializeObject(dt);
log.Debug("MES成品入库单入库调用ERP接口传参:" + Environment.NewLine + Inputstr);
//U9ICSManufactureReceiveURL
DataSet ds = DBHelper.SQlReturnDataSet(sql, cmd);
string Inputstr = DataToJsonHelper.DataSetToJson(ds, "details", "Costre");
log.Debug("完工报告单入库调用ERP接口传参:" + Environment.NewLine + Inputstr);
string resultStr = "";
if (DBHelper.IsU9())
{ resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.U9ICSManufactureReceiveURL, Inputstr); }
else
resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.ICSManufactureReceiveURL, Inputstr);
resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.ICSManufactureReceiveCreateURL, Inputstr);
Result result = new Result();
result = JsonConvert.DeserializeObject<Result>(resultStr);
@ -3549,7 +3545,7 @@ WHERE Identification='{0}' AND ERPUpload='0'
{
try
{
foreach (DataRow dr in dt.Rows)
foreach (DataRow dr in ds.Tables[0].Rows)
{
ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "", "", cmd, language, BusinessCode);
}

46
ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs

@ -6135,6 +6135,18 @@ LEFT JOIN (SELECT SUM(Quantity) AS sumQty,SUM(InQuantity) AS sumIsQty,WorkPoint,
orderby = @" a.MTIME DESC";
}
#endregion
#region 产成品入库-产成品入库单-mes
else if (TransType == TransTypeEnum.ManufactureMESReceive.GetDescription())
{
columns = @" DISTINCT a.RCVCode AS TransCode";
tableName = @"ICSManufactureReceive a ";
where = @" a.WorkPoint='{1}' AND a.Type='1' AND a.Status='1' AND a.Quantity>ISNULL(a.RCVQuantity, 0)";
orderby = @" a.MTIME DESC";
}
#endregion
#region 采购拒收
else if (TransType == TransTypeEnum.PurchaseRejectDoc.GetDescription())
{
@ -6163,7 +6175,7 @@ LEFT JOIN (SELECT SUM(Quantity) AS sumQty,SUM(InQuantity) AS sumIsQty,WorkPoint,
else
{
//throw new Exception();
throw new Exception("未设置当前类型的查询");
}
where = string.Format(where, JsonData.TransCode, JsonData.WorkPoint, enableCode);
sql = string.Format(sql, columns, tableName, where, orderby);
@ -30238,6 +30250,14 @@ a.ExtensionID
foreach (var item in JsonData)
{
string workPointSql = string.Format(@"IF NOT EXISTS(SELECT DISTINCT WorkPoint FROM ICSMO WHERE MOCode='{0}')
BEGIN
RAISERROR(' {0} ',16,1)
RETURN
END
SELECT DISTINCT WorkPoint FROM ICSMO WHERE MOCode='{0}'", item.MOCode);
string workPointCode = (string)DBHelper.ExecuteScalar(workPointSql, cmd);
//检验自由项
Colspan = item.ProjectCode + "~" + item.BatchCode + "~" + item.Version
@ -30247,14 +30267,14 @@ a.ExtensionID
+ "~" + item.cFree8 + "~" + item.cFree9 + "~" + item.cFree10;
sql = @"select ID,Colspan from ICSExtension a
where Colspan='{0}' and WorkPoint='{1}'";
sql = string.Format(sql, Colspan, item.WorkPoint);
sql = string.Format(sql, Colspan, workPointCode);
DataTable dttt = DBHelper.SQlReturnData(sql, cmd);
if (dttt.Rows.Count == 0)
{
IDD = Guid.NewGuid().ToString();
sql = @"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
select '{17}','{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}',GETDATE(),'{15}',f.F_RealName,'{16}'from Sys_SRM_User f where f.F_Account='{15}' and f.F_Location='{16}'";
sql = string.Format(sql, Colspan, item.ProjectCode, item.BatchCode, item.Version, item.Brand, item.cFree1, item.cFree2, item.cFree3, item.cFree4, item.cFree5, item.cFree6, item.cFree7, item.cFree8, item.cFree9, item.cFree10, item.MUSER, item.WorkPoint, IDD);
sql = string.Format(sql, Colspan, item.ProjectCode, item.BatchCode, item.Version, item.Brand, item.cFree1, item.cFree2, item.cFree3, item.cFree4, item.cFree5, item.cFree6, item.cFree7, item.cFree8, item.cFree9, item.cFree10, item.MUSER, workPointCode, IDD);
if (!DBHelper.ExecuteNonQuery(sql, cmd))
{
throw new Exception(language.GetNameByCode("WMSAPIInfo366"));
@ -30340,7 +30360,7 @@ a.ExtensionID
--
-- INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransID,TransCode,TransSequence,LotNo,InvCode,Quantity,Lock,TransType,BusinessCode,MUSER,MUSERName,MTIME,WorkPoint)
-- VALUES(NEWID(),'{10}',(SELECT ID FROM ICSMO WHERE MOCode='{1}' AND Sequence='{2}' AND WorkPoint='{9}'),'{1}','{2}','{3}','{4}',{5},0,'17','17','{8}','{8}',GETDATE(),'{9}')";
sql = string.Format(sql, item.ID, item.MOCode, item.Sequence, item.LotNo, item.InvCode, item.Quantity, item.BatchCode, item.ProductDate, item.MUSER, item.WorkPoint, Identification, IDD);
sql = string.Format(sql, item.ID, item.MOCode, item.Sequence, item.LotNo, item.InvCode, item.Quantity, item.BatchCode, item.ProductDate, item.MUSER, workPointCode, Identification, IDD);
log.Debug("同步产成品条码SQL:" + Environment.NewLine + sql);
if (!DBHelper.ExecuteNonQuery(sql, cmd))
@ -30364,7 +30384,7 @@ a.ExtensionID
END
SELECT 1 FROM ICSContainer WHERE ContainerCode='{0}' AND WorkPoint='{1}'";
sql = string.Format(sql, item.ContainerCode, item.WorkPoint, item.MUSER, ContainerID, item.ContainerName);
sql = string.Format(sql, item.ContainerCode, workPointCode, item.MUSER, ContainerID, item.ContainerName);
DataTable dt = DBHelper.SQlReturnData(sql, cmd);
if (dt == null || dt.Rows.Count <= 0)
{
@ -30373,7 +30393,7 @@ a.ExtensionID
sql = @"select 1 FROM ICSContainerLot WHERE LotNo='{0}' AND WorkPoint='{1}'
";
sql = string.Format(sql, item.LotNo, item.WorkPoint);
sql = string.Format(sql, item.LotNo, workPointCode);
DataTable dttte = DBHelper.SQlReturnData(sql, cmd);
if (dttte.Rows.Count > 0)
{
@ -30382,7 +30402,7 @@ a.ExtensionID
sql = @"UPDATE ICSContainerLot SET ContainerID=(SELECT ID FROM ICSContainer WHERE ContainerCode='{0}' AND WorkPoint='{1}' )
where lotno='{2}' and WorkPoint='{1}'
";
sql = string.Format(sql, item.ContainerCode, item.WorkPoint, item.LotNo);
sql = string.Format(sql, item.ContainerCode, workPointCode, item.LotNo);
if (!DBHelper.ExecuteNonQuery(sql, cmd))
{
@ -30394,7 +30414,7 @@ a.ExtensionID
sql = @"select 1 from ICSInventoryLot
where LotNo='{0}' and WorkPoint='{1}'
";
sql = string.Format(sql, item.LotNo, item.WorkPoint);
sql = string.Format(sql, item.LotNo, workPointCode);
DataTable dttaa = DBHelper.SQlReturnData(sql, cmd);
if (dttaa.Rows.Count > 0)
{
@ -30404,20 +30424,20 @@ a.ExtensionID
FROM ICSContainer a
WHERE a.ContainerCode='{0}' AND WorkPoint='{2}'
";
sql = string.Format(sql, item.ContainerCode, item.MUSER, item.WorkPoint, item.LotNo);
sql = string.Format(sql, item.ContainerCode, item.MUSER, workPointCode, item.LotNo);
if (!DBHelper.ExecuteNonQuery(sql, cmd))
{
throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo525"), item.WorkPoint, item.LotNo));
throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo525"), workPointCode, item.LotNo));
}
///记录日志
sql = @"INSERT INTO ICSContainerLog(ID,ContainerID,ContainerOrLotNo,Type,MUSER,MUSERName,WorkPoint,MTIME)
VALUES(NEWID(), (SELECT DISTINCT ID FROM ICSContainer WHERE ContainerCode='{0}'), '{1}', 2, '{2}', (SELECT DISTINCT F_RealName FROM Sys_SRM_User WHERE F_Account='{2}'), '{3}', GETDATE())";
sql = string.Format(sql, item.ContainerCode, item.LotNo, item.MUSER, item.WorkPoint);
sql = string.Format(sql, item.ContainerCode, item.LotNo, item.MUSER, workPointCode);
if (!DBHelper.ExecuteNonQuery(sql, cmd))
{
throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo526"), item.WorkPoint, item.LotNo));
throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo526"), workPointCode, item.LotNo));
}
}
@ -30426,7 +30446,7 @@ a.ExtensionID
}
codes += "'" + item.LotNo + item.WorkPoint + "',";
codes += "'" + item.LotNo + workPointCode + "',";
}
#region 查询返回数据

Loading…
Cancel
Save