ab56a9bcf7
SVN-Revision: r240
718 lines
31 KiB
C#
718 lines
31 KiB
C#
using Kingdee.BOS.WebApi.Client;
|
||
using Kingdee.BOS.WebApi.DataEntities;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.Data;
|
||
using System.Drawing;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Windows.Forms;
|
||
using Newtonsoft.Json.Linq;
|
||
using Newtonsoft.Json;
|
||
using Lskj.Util;
|
||
using Lskj.Core;
|
||
using Data_Prd_PPBom;
|
||
using Data_Prd_PickMtrl;
|
||
using Data_Prd_Instock;
|
||
|
||
namespace DXApplication3
|
||
{
|
||
public partial class Form1 : DevExpress.XtraEditors.XtraForm
|
||
{
|
||
public Form1()
|
||
{
|
||
InitializeComponent();
|
||
DBConfig.Instance.ServerName = "183.223.99.133,14331";
|
||
DBConfig.Instance.DataBase = "lserp";
|
||
if (LoginByAppSecret() && DBConfig.Instance.CreateConnection())
|
||
{
|
||
CreatePrd_MoAndInstock();
|
||
//DataTable dataBase = GetDataBase("mps_planTaskListTab",AsFieldKeys);
|
||
//DataTable ApiSource = GetApiSource("PRD_MO", dataBase, FieldKeys);
|
||
//insertToDataBase(ApiSource, dataBase, "mps_planTaskListTab", "mps_lpt_billdocument_id","mps_lpt_id",AsFieldKeys);
|
||
//GetExcept(ApiSource, dataBase, "mps_planTaskListTab", "mps_lpt_billdocument_id", "mps_lpt_id", AsFieldKeys);
|
||
//gridControl1.DataSource = ApiSource;
|
||
//insertToDataBase(ApiSource,dataBase);
|
||
//gridControl1.DataSource = ApiSource;
|
||
//UpDateFields("PRD_INSTOCK");
|
||
//SubmitFields("BD_MATERIAL");
|
||
//AuditFields("PRD_MO", "101574");
|
||
//UnAuditFields("PRD_MO","101570");
|
||
//DeleteFields("PRD_MO", "101568");
|
||
//ViewFields("BD_MATERIAL", "109376");
|
||
}
|
||
else
|
||
{
|
||
MessageBox.Show(LoginByAppSecret() ? "数据库连接失败!" : "Api连接失败!");
|
||
}
|
||
}
|
||
private string FieldKeys = "fid,FBillNo,FID,FBillType.fname,FMaterialId,FSpecification,FQty,FProductType,FMemoItem";
|
||
private string AsFieldKeys = "mps_lpt_id,mps_lpt_billdocument_id,mps_lpt_productid,mps_lpt_tagid,mps_lpt_khbilldocument_id,mps_lpt_waferbatch_id,mps_lpt_sumamount,mps_lpt_productiontype,mps_lpt_bak";
|
||
private K3CloudApiClient apiClient = new K3CloudApiClient("https://rychip.ik3cloud.com/k3cloud/");//serverUrl需要以“/”结尾
|
||
|
||
public bool LoginByAppSecret()
|
||
{
|
||
string appId = "214972_7c3q2cuP4npZ2a1EQ/TtSZ9G4L2W7smL";
|
||
string appSecret = "e36cf74480c24f23b33eddb76760b434";
|
||
//dbId:账套ID
|
||
//userName:第三方系统登录授权的用户
|
||
//appId:第三方系统登录授权的应用ID
|
||
//appSecret:第三方系统登录授权的应用密钥
|
||
//lcid:账套语系,默认2052,(中文为2052,中文繁体为3076,英文为1033)
|
||
string loginResult = apiClient.LoginByAppSecret("20180807124126", "administrator", appId, appSecret, 2052);
|
||
JObject loginResultObj = JObject.Parse(loginResult);
|
||
JToken loginResultType;
|
||
loginResultObj.TryGetValue("LoginResultType", out loginResultType);
|
||
|
||
// 登陆成功,开始保存数据
|
||
//loginResultType.Value<Int32>():
|
||
// 0 密码错误
|
||
// 1 登录成功
|
||
// -1 登录失败
|
||
if (loginResultType != null && loginResultType.Value<Int32>() == 1)
|
||
{
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
private DataTable ToDataTable(List<List<Object>> jsonList,DataTable dataBase, string fieldKeys)
|
||
{
|
||
DataTable dt = new DataTable();
|
||
string[] sArray = fieldKeys.Split(new string[]{","},StringSplitOptions.None);
|
||
for (int i = 0; i < sArray.Length; i++)
|
||
{
|
||
if (jsonList[0][i] != null)
|
||
{
|
||
dt.Columns.Add(sArray[i], dataBase.Columns[i].DataType);
|
||
}
|
||
else
|
||
dt.Columns.Add(sArray[i]);
|
||
}
|
||
for (int i = 0; i < jsonList.Count; i++)
|
||
{
|
||
DataRow dr = dt.NewRow();
|
||
for (int j = 0; j < jsonList[i].Count; j++)
|
||
{
|
||
dr[j] = jsonList[i][j]==null? "":jsonList[i][j];
|
||
}
|
||
dt.Rows.Add(dr);
|
||
}
|
||
return dt;
|
||
}
|
||
private DataTable GetApiSource(string formId,DataTable getDataBaseType,string fieldKeys)
|
||
{
|
||
var dataObj = new
|
||
{
|
||
FormId = formId,//物料清单唯一标识FormId = "ENG_BOM"
|
||
FieldKeys = fieldKeys,//需查询的字段key集合,字符串类型,格式:"key1,key2,..."(必录) 注(查询单据体内码,需加单据体Key和下划线,如:FEntryKey_FEntryId)
|
||
//FilterString = "FDocumentStatus='C'",//获取已经审核BOM
|
||
OrderString = "",//排序
|
||
TopRowCount = 0,
|
||
StartRow = 0,
|
||
Limit = 0
|
||
};
|
||
var data = JsonConvert.SerializeObject(dataObj);
|
||
var result = apiClient.ExecuteBillQuery(data);
|
||
DataTable dataTable = ToDataTable(result, getDataBaseType, AsFieldKeys);
|
||
|
||
return dataTable;
|
||
}
|
||
/// <summary>
|
||
/// 暂存单据
|
||
/// </summary>
|
||
private void DraftFields(string formId)
|
||
{
|
||
/*var Content = new
|
||
{
|
||
model =new
|
||
{
|
||
FPrdOrgId = new
|
||
{
|
||
FNumber = "101",
|
||
},
|
||
FDescription ="测试操作用生产订单",
|
||
FBillType=new
|
||
{
|
||
FNumber = "SCRKD01_SYS",
|
||
},
|
||
|
||
}
|
||
};*/
|
||
var Content = new
|
||
{
|
||
Model = new
|
||
{
|
||
SubHeadEntity5 = new
|
||
{
|
||
FIsCoby = true,
|
||
FIsMainPrd = true,
|
||
},
|
||
FBillType = new
|
||
{
|
||
FNumber = "SCRKD01_SYS",
|
||
},
|
||
IsDeleteEntry = "false",
|
||
FStockOrgId = new
|
||
{
|
||
FNumber = "101",
|
||
},
|
||
FPrdOrgId = new
|
||
{
|
||
FNumber = "101",
|
||
},
|
||
FEntity = new[]
|
||
{
|
||
new
|
||
{
|
||
FIsNew = false,
|
||
FProductType ="1",
|
||
FInStockType ="1",
|
||
FSrcEntryId ="105199",
|
||
FMaterialId =new
|
||
{
|
||
FNumber="7.03.01329",
|
||
},
|
||
FMoBillNo = "MO001457",
|
||
FMoId="101574",
|
||
FMoEntryId="101698",
|
||
FMoEntrySeq=1,
|
||
FSrcInterId ="105180",
|
||
FSrcEntrySeq=1,
|
||
FSrcBillType="PRD_MO",
|
||
FBaseUnitId =new
|
||
{
|
||
FNumber = "ke",
|
||
},
|
||
FUnitID = new
|
||
{
|
||
FNumber = "ke",
|
||
},
|
||
FStockId =new
|
||
{
|
||
FNumber = "P003",
|
||
},
|
||
FOwnerId = new
|
||
{
|
||
FNumber = "101",
|
||
},
|
||
FStockStatusId =new
|
||
{
|
||
FNumber = "KCZT01_SYS",
|
||
},
|
||
FMustQty ="9",
|
||
FRealQty ="9",
|
||
FLot =new
|
||
{
|
||
FNumber = "BMG0020",
|
||
},
|
||
FAuxpropId = new
|
||
{
|
||
FAUXPROPID__FF100004 = new
|
||
{
|
||
FNUMBER = "00000",
|
||
},
|
||
FAUXPROPID__FF100005 = new
|
||
{
|
||
FNUMBER = "20191106",
|
||
},
|
||
},
|
||
FEntity_Link =new[]
|
||
{
|
||
new
|
||
{
|
||
FEntity_Link_FSTableName ="T_PRD_MORPTENTRY",
|
||
FEntity_Link_FRuleId ="PRD_MORPT2INSTOCK",
|
||
FEntity_Link_FSBillId ="105180",
|
||
FEntity_Link_FSId ="105199",
|
||
FEntity_Link_FSTableId =0,
|
||
FEntity_Link_FBasePrdRealQtyOld ="8",
|
||
FEntity_Link_FBasePrdRealQty ="8",
|
||
},
|
||
},
|
||
}
|
||
}
|
||
},
|
||
};
|
||
var data = JsonConvert.SerializeObject(Content);
|
||
JObject jObject = JObject.Parse(data);
|
||
var result = apiClient.Draft(formId, data);
|
||
}
|
||
private void UpDateFields(string formId)
|
||
{
|
||
/*var Content = new
|
||
{
|
||
model =new
|
||
{
|
||
FPrdOrgId = new
|
||
{
|
||
FNumber = "101",
|
||
},
|
||
FDescription ="测试操作用生产订单",
|
||
FBillType=new
|
||
{
|
||
FNumber = "SCRKD01_SYS",
|
||
},
|
||
|
||
}
|
||
};*/
|
||
var Content = new
|
||
{
|
||
Model = new
|
||
{
|
||
SubHeadEntity5 = new
|
||
{
|
||
FIsCoby = true,
|
||
FIsMainPrd = true,
|
||
},
|
||
FBillType = new
|
||
{
|
||
FNumber = "SCRKD01_SYS",
|
||
},
|
||
IsDeleteEntry = "false",
|
||
FStockOrgId = new
|
||
{
|
||
FNumber = "101",
|
||
},
|
||
FPrdOrgId = new
|
||
{
|
||
FNumber = "101",
|
||
},
|
||
FEntity = new[]
|
||
{
|
||
new
|
||
{
|
||
FIsNew = false,
|
||
FProductType ="1",
|
||
FInStockType ="1",
|
||
FSrcEntryId ="105199",
|
||
FMaterialId =new
|
||
{
|
||
FNumber="7.03.01329",
|
||
},
|
||
FMoBillNo = "MO001457",
|
||
FMoId="101574",
|
||
FMoEntryId="101698",
|
||
FMoEntrySeq=1,
|
||
FSrcInterId ="105180",
|
||
FSrcEntrySeq=1,
|
||
FSrcBillType="PRD_MO",
|
||
FBaseUnitId =new
|
||
{
|
||
FNumber = "ke",
|
||
},
|
||
FUnitID = new
|
||
{
|
||
FNumber = "ke",
|
||
},
|
||
FStockId =new
|
||
{
|
||
FNumber = "P003",
|
||
},
|
||
FOwnerId = new
|
||
{
|
||
FNumber = "101",
|
||
},
|
||
FStockStatusId =new
|
||
{
|
||
FNumber = "KCZT01_SYS",
|
||
},
|
||
FMustQty ="9",
|
||
FRealQty ="9",
|
||
FLot =new
|
||
{
|
||
FNumber = "BMG0020",
|
||
},
|
||
FAuxpropId = new
|
||
{
|
||
FAUXPROPID__FF100004 = new
|
||
{
|
||
FNUMBER = "00000",
|
||
},
|
||
FAUXPROPID__FF100005 = new
|
||
{
|
||
FNUMBER = "20191106",
|
||
},
|
||
},
|
||
FEntity_Link =new[]
|
||
{
|
||
new
|
||
{
|
||
FEntity_Link_FSTableName ="T_PRD_MORPTENTRY",
|
||
FEntity_Link_FRuleId ="PRD_MORPT2INSTOCK",
|
||
FEntity_Link_FSBillId ="105180",
|
||
FEntity_Link_FSId ="105199",
|
||
FEntity_Link_FSTableId =0,
|
||
FEntity_Link_FBasePrdRealQtyOld ="8",
|
||
FEntity_Link_FBasePrdRealQty ="8",
|
||
},
|
||
},
|
||
}
|
||
}
|
||
},
|
||
};
|
||
var data = JsonConvert.SerializeObject(Content);
|
||
JObject jObject = JObject.Parse(data);
|
||
var result = apiClient.Save(formId, data);
|
||
}
|
||
/// <summary>
|
||
/// 提交单据数据
|
||
/// </summary>
|
||
/// <param name="formId"></param>
|
||
private void SubmitFields(string formId)
|
||
{
|
||
var dataObj = new { };
|
||
var data = JsonConvert.SerializeObject(dataObj);
|
||
var result = apiClient.Submit(formId, data);
|
||
}
|
||
/// <summary>
|
||
/// 审核单据数据
|
||
/// </summary>
|
||
/// <param name="formId"></param>
|
||
private void AuditFields(string formId,string numbers)
|
||
{
|
||
var dataObj = new
|
||
{
|
||
ids = numbers,
|
||
};
|
||
var data = JsonConvert.SerializeObject(dataObj);
|
||
var result = apiClient.Audit(formId, data);
|
||
}
|
||
/// <summary>
|
||
/// 删除单据信息
|
||
/// </summary>
|
||
/// <param name="formId"></param>
|
||
private void DeleteFields(string formId,string number)
|
||
{
|
||
var dataObj = new
|
||
{
|
||
ids = number,
|
||
};
|
||
var data = JsonConvert.SerializeObject(dataObj);
|
||
var result = apiClient.Delete(formId, data);
|
||
}
|
||
/// <summary>
|
||
/// 反审核
|
||
/// </summary>
|
||
/// <param name="formId"></param>
|
||
private void UnAuditFields(string formId,string numbers)
|
||
{
|
||
var dataObj = new
|
||
{
|
||
ids = numbers,
|
||
};
|
||
var data = JsonConvert.SerializeObject(dataObj);
|
||
var result = apiClient.UnAudit(formId, data);
|
||
}
|
||
/// <summary>
|
||
/// 查看
|
||
/// </summary>
|
||
/// <param name="formId"></param>
|
||
private void ViewFields(string formId,string numbers)
|
||
{
|
||
var dataObj = new
|
||
{
|
||
id = numbers,
|
||
};
|
||
var data = JsonConvert.SerializeObject(dataObj);
|
||
var result = apiClient.View(formId, data);
|
||
JObject JObject = JObject.Parse(result);
|
||
string value = JObject["Result"]["Result"]["Id"].ToString();
|
||
}
|
||
/// <summary>
|
||
/// 获取数据库表格内容
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
private DataTable GetDataBase(string tableName)
|
||
{
|
||
string sqlValue = string.Format("select * from {0}",tableName);
|
||
return SqlHelper.ExecuteDataTable(sqlValue);
|
||
}
|
||
/// <summary>
|
||
/// 获取指定列数据表
|
||
/// </summary>
|
||
/// <param name="tableName"></param>
|
||
/// <returns></returns>
|
||
private DataTable GetDataBase(string tableName,string asFieldKeys)
|
||
{
|
||
string sqlValue = string.Format("select {0} from {1}", asFieldKeys, tableName);
|
||
return SqlHelper.ExecuteDataTable(sqlValue);
|
||
}
|
||
/// <summary>
|
||
/// 数据添加到数据库中
|
||
/// </summary>
|
||
/// <param name="apiSource"></param>
|
||
/// <param name="dataBase"></param>
|
||
///
|
||
private void insertToDataBase(DataTable apiSource, DataTable dataBase, string tableName, string primaryKey, string identityKeys, string asfieldKeys)
|
||
{
|
||
string insertSql = "insert into {0} ({1}) values ({2});";
|
||
if (apiSource != null && apiSource.Rows.Count > 0)
|
||
{
|
||
foreach (DataRow row in apiSource.Rows)
|
||
{
|
||
if (apiSource.Select(string.Format("{0}='{1}'", primaryKey + "", row[primaryKey] + "")).Length == 0)
|
||
{
|
||
string insertFields = string.Empty;//添加的列名
|
||
string insertValues = string.Empty;//列数据
|
||
foreach (DataColumn col in dataBase.Columns)
|
||
{
|
||
if (asfieldKeys.Contains(col.ColumnName))
|
||
{
|
||
insertValues += string.Format("'{0}',", row[col.ColumnName]);
|
||
insertFields += string.Format(col.ColumnName + ",");
|
||
}
|
||
else if (col.ColumnName == "mps_lpt_id")
|
||
continue;
|
||
else if ((col.DataType == typeof(Decimal) || col.DataType == typeof(Int32)) && !col.AllowDBNull)
|
||
{
|
||
insertValues += "0,";
|
||
insertFields += string.Format(col.ColumnName + ",");
|
||
}
|
||
else if (col.AllowDBNull)
|
||
continue;
|
||
else
|
||
{
|
||
insertValues += string.Format("'',");
|
||
insertFields += string.Format(col.ColumnName + ",");
|
||
}
|
||
}
|
||
try
|
||
{
|
||
SqlHelper.ExecuteNonQuery(string.Format(insertSql, "mps_planTaskListTab", insertFields.TrimEnd(','), insertValues.TrimEnd(',')));
|
||
}
|
||
catch (Exception)
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
else
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 比较差异并更新数据库中的数据
|
||
/// </summary>
|
||
private void GetExcept(DataTable apiSource, DataTable dataBase, string tableName, string primaryKey, string identityKeys ,string asfieldKeys)
|
||
{
|
||
DataTable DataBase = GetDataBase(tableName);
|
||
DataTable T_Except = new DataTable();
|
||
try
|
||
{
|
||
T_Except = dataBase.AsEnumerable().Except(apiSource.AsEnumerable(), DataRowComparer.Default).CopyToDataTable();//数据库与api比较
|
||
}
|
||
catch (Exception)
|
||
{
|
||
}
|
||
foreach (DataRow row in T_Except.Rows)
|
||
{
|
||
if (apiSource.Select(string.Format("{0}='{1}'",primaryKey+"",row[primaryKey]+"")).Length>0)
|
||
continue;
|
||
else
|
||
{
|
||
string delSql = "delete from {0} where {1} = '{2}'";
|
||
try
|
||
{
|
||
SqlHelper.ExecuteNonQuery(string.Format(delSql, tableName, primaryKey, row[primaryKey]));
|
||
}
|
||
catch (Exception)
|
||
{
|
||
continue;
|
||
}
|
||
|
||
}
|
||
}
|
||
DataTable F_Except = new DataTable();
|
||
try
|
||
{
|
||
F_Except = apiSource.AsEnumerable().Except(dataBase.AsEnumerable(), DataRowComparer.Default).CopyToDataTable();//api与数据库比较,添加并更新
|
||
}
|
||
catch (Exception)
|
||
{
|
||
}
|
||
foreach (DataRow row in F_Except.Rows)
|
||
{
|
||
if (dataBase.Select(string.Format("{0}='{1}'", primaryKey + "", row[primaryKey] + "")).Length > 0)
|
||
{
|
||
foreach (DataColumn col in row.Table.Columns)
|
||
{
|
||
string UpdateSql = "update {0} set {1} = '{2}' where {3} = '{4}'";
|
||
string x = string.Format(UpdateSql, tableName, col.ColumnName, row[col.ColumnName], primaryKey, row[primaryKey]);
|
||
try
|
||
{
|
||
SqlHelper.ExecuteNonQuery(string.Format(UpdateSql, tableName, col.ColumnName, row[col.ColumnName], primaryKey, row[primaryKey]));
|
||
}
|
||
catch (Exception)
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
string insertSql = "insert into {0} ({1}) values ({2})";
|
||
string insertFields = string.Empty;
|
||
string insertValues = string.Empty;
|
||
foreach (DataColumn col in DataBase.Columns)
|
||
{
|
||
if (asfieldKeys.Contains(col.ColumnName))
|
||
{
|
||
insertValues += string.Format("'{0}',", row[col.ColumnName]);
|
||
insertFields += string.Format(col.ColumnName + ",");
|
||
}
|
||
else if (col.ColumnName == identityKeys)
|
||
continue;
|
||
else if ((col.DataType == typeof(Decimal) || col.DataType == typeof(Int32)) && !col.AllowDBNull)
|
||
{
|
||
insertValues += "0,";
|
||
insertFields += string.Format(col.ColumnName + ",");
|
||
}
|
||
else if (col.AllowDBNull)
|
||
continue;
|
||
else
|
||
{
|
||
insertValues += string.Format("'',");
|
||
insertFields += string.Format(col.ColumnName + ",");
|
||
}
|
||
}
|
||
try
|
||
{
|
||
string x = string.Format(insertSql, tableName, insertFields.TrimEnd(','), insertValues.TrimEnd(','));
|
||
SqlHelper.ExecuteNonQuery(string.Format(insertSql, tableName, insertFields.TrimEnd(','), insertValues.TrimEnd(',')));
|
||
}
|
||
catch (Exception)
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
private void CreatePrd_MoAndInstock()
|
||
{
|
||
Data_Prd_Mo_Update data_Prd_Mo_Update = new Data_Prd_Mo_Update();
|
||
data_Prd_Mo_Update.Model = new Model();
|
||
data_Prd_Mo_Update.Model.FID = 101635;
|
||
data_Prd_Mo_Update.NeedReturnFields = new List<string>() { "Fid", "FBillNo", "FTreeEntity.FEntryId" };
|
||
//data_Prd_Mo_Update.Model.FBillType = new FBillType() { FNUMBER = "SCDD01_SYS" };
|
||
//data_Prd_Mo_Update.Model.FPrdOrgId = new FPrdOrgId() { FNumber = "101" };
|
||
//FTreeEntityItem fTreeEntityItem = new FTreeEntityItem();
|
||
//fTreeEntityItem.FMaterialId = new FMaterialId() { FNumber = "7.03.90012" };
|
||
//fTreeEntityItem.FUnitId = new FUnitId() { FNumber = "ke" };
|
||
//fTreeEntityItem.FWorkShopID = new FWorkShopID() { FNumber = "BM005" };
|
||
//fTreeEntityItem.FBomId = new FBomId() { FNumber = "M009D-RY1220" };
|
||
//fTreeEntityItem.FQty = 50;
|
||
//data_Prd_Mo_Update.Model.FTreeEntity = new List<FTreeEntityItem>();
|
||
//data_Prd_Mo_Update.Model.FTreeEntity.Add(fTreeEntityItem);
|
||
var Prd_MoResult = apiClient.Draft("PRD_MO", JsonConvert.SerializeObject(data_Prd_Mo_Update));//暂存生产订单
|
||
|
||
JObject Prd_MoId = JObject.Parse(Prd_MoResult);
|
||
|
||
Data_Prd_Mo_Update data_Prd_Mo_Draft = new Data_Prd_Mo_Update();
|
||
data_Prd_Mo_Draft.Model = new Model();
|
||
data_Prd_Mo_Draft.Model.FID = Convert.ToInt32(Prd_MoId["Result"]["NeedReturnData"][0]["FID"].ToString());//获取订单id
|
||
|
||
apiClient.Save("PRD_MO", JsonConvert.SerializeObject(data_Prd_Mo_Update));//保存生产订单
|
||
|
||
Data_Prd_Mo_Submit data_Prd_Mo_Submit = new Data_Prd_Mo_Submit() { Ids = Prd_MoId["Result"]["NeedReturnData"][0]["FID"].ToString() };
|
||
var submit = apiClient.Submit("PRD_MO", JsonConvert.SerializeObject(data_Prd_Mo_Submit));//提交
|
||
Data_Prd_Mo_Audit data_Prd_Mo_Audit = new Data_Prd_Mo_Audit() { Ids = Prd_MoId["Result"]["NeedReturnData"][0]["FID"].ToString() };
|
||
var audit = apiClient.Audit("PRD_MO", JsonConvert.SerializeObject(data_Prd_Mo_Audit));//审核
|
||
|
||
|
||
DataExecuteBillQuery GetPrd_PPBOMId = new DataExecuteBillQuery() //查询用料单ID
|
||
{
|
||
FormId = "PRD_PPBOM",
|
||
FieldKeys="Fid",
|
||
FilterString = string.Format("FMOBillNO='{0}'",Prd_MoId["Result"]["NeedReturnData"][0]["FBillNo"].ToString()),
|
||
};
|
||
|
||
var Prd_PPBOMId = apiClient.ExecuteBillQuery(JsonConvert.SerializeObject(GetPrd_PPBOMId));//获取用料清单ID数组
|
||
|
||
//Data_Prd_PPBom_Update data_Prd_PPBom_Update = new Data_Prd_PPBom_Update();
|
||
//data_Prd_PPBom_Update.NeedUpDateFields = new List<string>() { "FMaterialID2", "FEntity" };
|
||
//data_Prd_PPBom_Update.Model = new Data_Prd_PPBom.Model();
|
||
//data_Prd_PPBom_Update.Model.FID = Convert.ToInt32(Prd_PPBomId[0][0]);
|
||
//data_Prd_PPBom_Update.NeedReturnFields = new List<string>() { "Fid", "FBillNo", "FEntity.FEntryId" };
|
||
//Data_Prd_PPBom.FEntityItem fEntityItem = new Data_Prd_PPBom.FEntityItem();
|
||
//fEntityItem.FMaterialID2 = new FMaterialID2() { FNumber = "2001002" };
|
||
//data_Prd_PPBom_Update.Model.FEntity = new List<Data_Prd_PPBom.FEntityItem>();
|
||
//data_Prd_PPBom_Update.Model.FEntity.Add(fEntityItem);
|
||
//var Prd_PPBom_Update = apiClient.Save("PRD_PPBOM", JsonConvert.SerializeObject(data_Prd_PPBom_Update));//每次执行会增加一条子物料
|
||
|
||
Data_Prd_PPBom_Submit data_Prd_PPBom_Submit = new Data_Prd_PPBom_Submit() { Ids = Prd_PPBOMId[0][0].ToString() };
|
||
var Prd_PPBom_Submit = apiClient.Submit("PRD_PPBOM", JsonConvert.SerializeObject(data_Prd_PPBom_Submit));//提交
|
||
|
||
Data_Prd_PPBom_Audit data_Prd_PPBom_Audit = new Data_Prd_PPBom_Audit() { Ids = Prd_PPBOMId[0][0].ToString() };
|
||
var Prd_PPBom_Audit = apiClient.Audit("PRD_PPBOM", JsonConvert.SerializeObject(data_Prd_PPBom_Audit));//用料单审核
|
||
|
||
|
||
Data_Prd_Mo_ToStart data_Prd_Mo_ToStart = new Data_Prd_Mo_ToStart() { Ids = Prd_MoId["Result"]["NeedReturnData"][0]["FID"].ToString() };
|
||
var excute = apiClient.ExcuteOperation("PRD_MO", "ToStart", JsonConvert.SerializeObject(data_Prd_Mo_ToStart));//执行到开工
|
||
|
||
|
||
//下推用料单到领料单
|
||
Data_Prd_PPBom_Push data_Prd_PPBom_Push = new Data_Prd_PPBom_Push();
|
||
data_Prd_PPBom_Push.Ids = Prd_PPBOMId[0][0].ToString();
|
||
data_Prd_PPBom_Push.TargetBillTypeId = "";
|
||
data_Prd_PPBom_Push.TargetFormId = "PRD_PickMtrl";
|
||
data_Prd_PPBom_Push.IsDraftWhenSaveFail = true.ToString();
|
||
data_Prd_PPBom_Push.IsEnableDefaultRule = true.ToString();
|
||
|
||
|
||
//var Prd_PPBom_Push = apiClient.Push("PRD_PPBOM", JsonConvert.SerializeObject(data_Prd_PPBom_Push));//领料单暂存后需要补充数据
|
||
|
||
DataExecuteBillQuery GetPrd_PickMtrlId = new DataExecuteBillQuery() //查询领料单ID
|
||
{
|
||
FormId = "PRD_PickMtrl",
|
||
FieldKeys = "Fid",
|
||
FilterString = string.Format("FMOBillNO='{0}'", Prd_MoId["Result"]["NeedReturnData"][0]["FBillNo"].ToString()),
|
||
};
|
||
|
||
var Prd_PickMtrlId = apiClient.ExecuteBillQuery(JsonConvert.SerializeObject(GetPrd_PickMtrlId));//获取领料清单ID数组
|
||
|
||
Data_Prd_PickMtrl_Update data_Prd_PickMtrl_Update = new Data_Prd_PickMtrl_Update();
|
||
data_Prd_PickMtrl_Update.Model = new Data_Prd_PickMtrl.Model();
|
||
data_Prd_PickMtrl_Update.NeedUpDateFields = new List<string>() { "FEntity", "FStockId" };
|
||
data_Prd_PickMtrl_Update.NeedReturnFields = new List<string>() { "FEntity.FStockId" };
|
||
data_Prd_PickMtrl_Update.Model.FID = Convert.ToInt32(Prd_PickMtrlId[0][0].ToString());
|
||
Data_Prd_PickMtrl.FEntityItem fEntityItem_PickMtrl = new Data_Prd_PickMtrl.FEntityItem();
|
||
fEntityItem_PickMtrl.FStockId = new Data_Prd_PickMtrl.FStockId() { FNumber = "P003" };
|
||
|
||
data_Prd_PickMtrl_Update.Model.FEntity = new List<Data_Prd_PickMtrl.FEntityItem>();
|
||
data_Prd_PickMtrl_Update.Model.FEntity.Add(fEntityItem_PickMtrl);
|
||
|
||
var Prd_PickMtrl_Update = apiClient.Save("PRD_PickMtrl", JsonConvert.SerializeObject(data_Prd_PickMtrl_Update));//保存领料单
|
||
|
||
|
||
Data_Prd_PickMtrl_Submit data_Prd_PickMtrl_Submit = new Data_Prd_PickMtrl_Submit() { Ids = Prd_PickMtrlId[0][0].ToString() };
|
||
var Prd_PickMtrl_Submit = apiClient.Submit("PRD_PickMtrl", JsonConvert.SerializeObject(data_Prd_PickMtrl_Submit));//提交
|
||
|
||
Data_Prd_PickMtrl_Audit data_Prd_PickMtrl_Audit = new Data_Prd_PickMtrl_Audit() { Ids = Prd_PickMtrlId[0][0].ToString() };
|
||
var Prd_PickMtrl_Audit = apiClient.Audit("PRD_PickMtrl", JsonConvert.SerializeObject(data_Prd_PickMtrl_Audit));//审核
|
||
|
||
|
||
//根据生产订单号,生成生产入库单
|
||
Data_Prd_Instock_Update data_Prd_Instock_Update = new Data_Prd_Instock_Update();
|
||
data_Prd_Instock_Update.Model = new Data_Prd_Instock.Model();
|
||
|
||
Data_Prd_Instock.FEntityItem fEntityItem_Instock = new Data_Prd_Instock.FEntityItem();
|
||
|
||
data_Prd_Instock_Update.Model.FEntity = new List<Data_Prd_Instock.FEntityItem>();
|
||
data_Prd_Instock_Update.Model.FEntity.Add(fEntityItem_Instock);
|
||
|
||
var Prd_Instock_Update = apiClient.Save("PRD_INSTOCK", JsonConvert.SerializeObject(data_Prd_Instock_Update));
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
|