using Demo.Model.Model;
|
using Kingdee.BOS;
|
using Kingdee.BOS.Core.Bill;
|
using Kingdee.BOS.Core.Bill.PlugIn;
|
using Kingdee.BOS.Core.CommonFilter;
|
using Kingdee.BOS.Core.DynamicForm;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
|
using Kingdee.BOS.Core.List;
|
using Kingdee.BOS.Core.List.PlugIn;
|
using Kingdee.BOS.Core.Metadata;
|
using Kingdee.BOS.Core.Metadata.EntityElement;
|
using Kingdee.BOS.Orm.DataEntity;
|
using Kingdee.BOS.ServiceHelper;
|
using Kingdee.BOS.Util;
|
using Newtonsoft.Json;
|
using Newtonsoft.Json.Linq;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using ZD.Cloud.WebApi;
|
using ZD.Share.Common;
|
|
namespace Demo.BillView.PRD
|
{
|
[Description("[日计划工单] 列表插件"), HotUpdate]
|
public class Pro_DayPlanList : AbstractListPlugIn
|
{
|
//点击按钮触发
|
public override void BarItemClick(BarItemClickEventArgs e)
|
{
|
base.BarItemClick(e);
|
//关闭
|
if (e.BarItemKey.Equals("BTNCLOSE"))
|
{
|
//获取选择记录
|
ListSelectedRowCollection selectRows = this.ListView.SelectedRowsInfo;
|
|
//读取ID,放到数组
|
string[] ID = selectRows.GetPrimaryKeyValues();
|
string FID = "";
|
|
//没有选择行提示
|
if (ID.Length == 0)
|
{
|
//如果选择的是0,即没有选择行记录,弹窗报错,返回
|
this.View.ShowMessage("请选择单据!", MessageBoxType.Notice);
|
return;
|
}
|
else
|
{
|
//如果点击成功,循环ID
|
for (int i = 0; i < ID.Length; i++)
|
{
|
FID = FID + ID[i].ToString() + ",";
|
}
|
FID = FID.Substring(0, FID.Length - 1);
|
string sql = $"/*dialect*/ update Sc_WorkBillSortBillMain set FDocumentStatus = 'E',FHCloseMan = '{Context.UserId}',FHCloseDate = GETDATE() where FID in ({FID})";
|
////LogHelper.Info(sql);
|
DBServiceHelper.Execute(Context, sql);
|
this.View.ShowMessage("操作成功");
|
}
|
}
|
//反关闭
|
else if (e.BarItemKey.Equals("BTNCANCELCLOSE"))
|
{
|
//获取选择记录
|
ListSelectedRowCollection selectRows = this.ListView.SelectedRowsInfo;
|
|
//读取ID,放到数组
|
string[] ID = selectRows.GetPrimaryKeyValues();
|
string FID = "";
|
|
//没有选择行提示
|
if (ID.Length == 0)
|
{
|
//如果选择的是0,即没有选择行记录,弹窗报错,返回
|
this.View.ShowMessage("请选择单据!", MessageBoxType.Notice);
|
return;
|
}
|
else
|
{
|
//如果点击成功,循环ID
|
for (int i = 0; i < ID.Length; i++)
|
{
|
FID = FID + ID[i].ToString() + ",";
|
}
|
FID = FID.Substring(0, FID.Length - 1);
|
//验证 关闭订单
|
//验证所选订单是否存在相同数据 生产订单号+生产订单明细行号
|
string errmsg = "";
|
string fbillno = "";
|
string yzSql = string.Format(@"/*dialect*/
|
SELECT FBILLNO FROM SC_WORKBILLSORTBILLMAIN WHERE FSCORDERNO+CONVERT(VARCHAR,FSRCBILLENTRYSEQ) IN (
|
SELECT FSCORDERNO+CONVERT(VARCHAR,FSRCBILLENTRYSEQ) FROM SC_WORKBILLSORTBILLMAIN
|
WHERE FID IN ({0})
|
GROUP BY
|
FSCORDERNO,FSRCBILLENTRYSEQ
|
HAVING COUNT(*)>1
|
)", FID);
|
DataTable dataTable = DBServiceHelper.ExecuteDataSet(Context, yzSql).Tables[0];
|
if (dataTable.Rows.Count > 0)
|
{
|
errmsg += "所选订单中存在相同生产订单和明细行号数据,订单号:";
|
foreach (DataRow dr in dataTable.Rows)
|
{
|
errmsg += dr["FBILLNO"].ToString();
|
fbillno += $"'{dr["FBILLNO"].ToString()}',";
|
}
|
}
|
yzSql = string.Format(@"/*dialect*/
|
SELECT A.FBILLNO FROM SC_WORKBILLSORTBILLMAIN A
|
JOIN (SELECT * FROM SC_WORKBILLSORTBILLMAIN WHERE FDOCUMENTSTATUS <>'E') B ON A.FSCORDERNO=B.FSCORDERNO AND A.FSRCBILLENTRYSEQ=B.FSRCBILLENTRYSEQ
|
WHERE A.FID IN ({0})
|
", FID);
|
dataTable = DBServiceHelper.ExecuteDataSet(Context, yzSql).Tables[0];
|
if (dataTable.Rows.Count > 0)
|
{
|
errmsg += "\n" + "所选订单中存在生产订单和明细行号关闭后数据重复,订单号:";
|
foreach (DataRow dr in dataTable.Rows)
|
{
|
errmsg += dr["FBILLNO"].ToString();
|
fbillno += $"'{dr["FBILLNO"].ToString()}',";
|
}
|
}
|
string sql = $"/*dialect*/ update Sc_WorkBillSortBillMain set FDocumentStatus = 'C',FHCloseMan = '',FHCloseDate = NULL where FID in ({FID})";
|
if (fbillno.Length > 0)
|
{
|
fbillno = fbillno.Substring(0, fbillno.Length - 1);
|
sql = $"/*dialect*/ update Sc_WorkBillSortBillMain set FDocumentStatus = 'C',FHCloseMan = '',FHCloseDate = NULL where FID in ({FID}) AND FBILLNO NOT IN ({fbillno})";
|
}
|
////LogHelper.Info(sql);
|
DBServiceHelper.Execute(Context, sql);
|
if (errmsg != "")
|
{
|
this.View.ShowMessage("部分单据操作成功\n" + errmsg);
|
return;
|
}
|
this.View.ShowMessage("操作成功");
|
}
|
}
|
//生成领料单
|
else if (e.BarItemKey.Equals("BTNPUSH"))
|
{
|
pushPickMtrl();
|
}
|
else if (e.BarItemKey.Equals("BTNOPENPURORDER"))
|
{
|
//OpenPurOrder();
|
ReleaseProOrder();
|
}
|
|
}
|
public void pushPickMtrl()
|
{
|
try
|
{
|
//获取选择记录
|
ListSelectedRowCollection selectRows = this.ListView.SelectedRowsInfo;
|
if (!(selectRows.Count == 1))
|
{
|
this.View.ShowMessage("请选择单行数据!", MessageBoxType.Notice);
|
return;
|
}
|
List<string> fidList = selectRows.GetEntryPrimaryKeyValues().ToList();
|
string fentryids = string.Join(",", fidList);
|
List<string> updateSql = new List<string>();
|
foreach (var item in fidList)
|
{
|
//var fReceveBillID = DBServiceHelper.ExecuteScalar<int>(Context, $"/*dialect*/select fReceveBillID from Sc_WorkBillSortBillSub where fentryid = {item}", 0);
|
//if (fReceveBillID > 0)//已生成生产领料单 不继续重复添加
|
//{
|
// this.View.ShowMessage("已生成生产领料单!", MessageBoxType.Notice);
|
// return;
|
//}
|
string sql = $"/*dialect*/ exec proc_jit_DayPlanPushPickmtrl {item}";
|
List<Prd_DayPlanPushPickMatrl> prd_DayPlanPushPickMatrl = new List<Prd_DayPlanPushPickMatrl>();
|
prd_DayPlanPushPickMatrl = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<Prd_DayPlanPushPickMatrl>();
|
if (prd_DayPlanPushPickMatrl.Count == 0)
|
{
|
this.View.ShowMessage("没有数据可生成生产领料单!", MessageBoxType.Notice);
|
return;
|
}
|
//var fDate = prd_DayPlanPushPickMatrl.FirstOrDefault().FDATE;
|
var FPrdOrgNumber = prd_DayPlanPushPickMatrl.FirstOrDefault().FOrgNumber;
|
JObject model = new JObject();
|
string fTypeName = "SCLLD01_SYS";//普通生产领料
|
model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = fTypeName }); //单据类型
|
model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //日期:FDate(必填项)
|
model.Add("FPrdOrgId", new JObject() { ["Fnumber"] = FPrdOrgNumber });//生产组织:FPrdOrgId(必填项)
|
model.Add("FStockOrgId", new JObject() { ["Fnumber"] = FPrdOrgNumber });//发料组织:FStockOrgId(必填项)
|
model.Add("FCreatorId", new JObject() { ["FUserID"] = Context.UserId }); //创建人
|
model.Add("FModifierId", new JObject() { ["FUserID"] = Context.UserId }); //修改人
|
JArray Fentity = new JArray();
|
foreach (var pickMatrl in prd_DayPlanPushPickMatrl)
|
{
|
string vd = "FF" + pickMatrl.FFLEXID;//维度值
|
sql = $"SELECT FNUMBER FROM V_BAS_FLEXVALUESENTRY WHERE FENTRYID in (SELECT {vd} FROM dbo.T_BAS_FLEXVALUESDETAIL WHERE FID = {pickMatrl.FStockLocId}) ";
|
string vdNumber = DBServiceHelper.ExecuteScalar<string>(Context, sql, "");//仓位编码
|
JObject FentityModel = new JObject();
|
FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = pickMatrl.FNUMBER });//物料编码:FMaterialId(必填项)
|
FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = pickMatrl.FBaseUnitNumber });//单位:FUnitID(必填项)
|
FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = pickMatrl.FBaseUnitNumber });//基本单位:FBaseUnitId(必填项)
|
FentityModel.Add("FStockUnitId", new JObject() { ["Fnumber"] = pickMatrl.FBaseUnitNumber });//主库存单位:FStockUnitId(必填项)
|
FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = pickMatrl.FStockNumber });//仓库:FStockId(必填项)
|
FentityModel.Add("FStockStatusId", new JObject() { ["Fnumber"] = pickMatrl.FStockStatusNumber });//库存状态:FStockStatusId(必填项)
|
FentityModel.Add("FLot", new JObject() { ["Fnumber"] = pickMatrl.FLOTNUMBER });//批号
|
FentityModel.Add("FMOBILLNO", pickMatrl.FMOBILLNO); //生产订单编号:FMoBillNo(必填项)
|
FentityModel.Add("FOwnerTypeId", pickMatrl.FOwnerTypeId); //货主类型:FOwnerTypeId(必填项)
|
FentityModel.Add("FOwnerId", new JObject() { ["Fnumber"] = pickMatrl.FOwnerTypeNumber }); //货主:FOwnerId(必填项)
|
FentityModel.Add("FKeeperTypeId", pickMatrl.FKeeperTypeId);//保管者类型:FKeeperTypeId(必填项)
|
FentityModel.Add("FKeeperId", new JObject() { ["Fnumber"] = pickMatrl.FKeeperTypeNumber }); //保管者:FKeeperId(必填项)
|
FentityModel.Add("FParentOwnerTypeId", pickMatrl.FOwnerTypeId); //产品货主类型:FParentOwnerTypeId(必填项)
|
FentityModel.Add("FParentOwnerId", new JObject() { ["Fnumber"] = pickMatrl.FOwnerTypeNumber }); //产品货主:FParentOwnerId(必填项)
|
FentityModel.Add("FParentMaterialId", new JObject() { ["Fnumber"] = pickMatrl.FParentMaterialNumber }); //产品编码:FParentMaterialId(必填项)
|
FentityModel.Add("FAppQty", pickMatrl.FACTBASEQTY); //申请数量:FAppQty
|
FentityModel.Add("FActualQty", pickMatrl.FACTBASEQTY); //实发数量:FActualQty
|
FentityModel.Add("FMoEntryId", pickMatrl.FMOENTRYID);
|
FentityModel.Add("FMoId", pickMatrl.FMOID);
|
/////////////////////////////////源单
|
FentityModel.Add("FPPBomBillNo", pickMatrl.FBillNo); //用料清单编号:FPPBomBillNo
|
FentityModel.Add("FPPBomEntryId", pickMatrl.FPPBOMFENTRYID);
|
FentityModel.Add("FSrcBillType", "PRD_PPBOM");
|
FentityModel.Add("FSrcBillNo", pickMatrl.FBillNo);
|
FentityModel.Add("FEntrySrcInterId", pickMatrl.FPPBOMFID);
|
FentityModel.Add("FEntrySrcEnteryId", pickMatrl.FPPBOMFENTRYID);
|
FentityModel.Add("FEntrySrcEntrySeq", pickMatrl.FSEQ);
|
/////////////////////////////////源单
|
/////////////////////////////////需求单据
|
FentityModel.Add("FREQSRC", pickMatrl.FREQSRC);
|
FentityModel.Add("FREQBILLID", pickMatrl.FSALEORDERID);
|
FentityModel.Add("FREQBILLNO", pickMatrl.FSALEORDERNO);
|
FentityModel.Add("FREQENTRYID", pickMatrl.FSALEORDERENTRYID);
|
FentityModel.Add("FREQENTRYSEQ", pickMatrl.FSALEORDERENTRYSEQ);
|
FentityModel.Add("FGROUPROW", "c8f68be4-9284-a153-11ed-00bc5a29e6ca");
|
/////////////////////////////////需求单据
|
FentityModel.Add("FDAYPLANBILLNO", pickMatrl.FDAYPLANBILLNO);
|
FentityModel.Add("FDayPlanFseq", pickMatrl.FDayPlanFseq);
|
FentityModel.Add("FDayPlanFentryId", pickMatrl.FDayPlanFentryId);
|
FentityModel.Add("FDayPlanFid", pickMatrl.FDayPlanFid);
|
FentityModel.Add("FSpreadBillNo", pickMatrl.FSpreadBillNo);
|
|
JObject vdmodel = new JObject();
|
vdmodel.Add("FNumber", vdNumber);
|
FentityModel.Add("FStockLocId", new JObject() { ["FSTOCKLOCID__" + vd] = vdmodel });//仓位
|
|
JArray Fentity2 = new JArray();
|
JObject FentityModel2 = new JObject();
|
FentityModel2.Add("FEntity_Link_FFlowId", "81119477-4778-4d0b-94b9-1c43a1c1f768");
|
FentityModel2.Add("FEntity_Link_FFlowLineId", "5");
|
FentityModel2.Add("FEntity_Link_FRuleId", "PRD_PPBOM2PICKMTRL_NORMAL");
|
FentityModel2.Add("FEntity_Link_FSTableName", "T_PRD_PPBOMENTRY");
|
FentityModel2.Add("FEntity_Link_FSBillId", pickMatrl.FPPBOMFID);
|
FentityModel2.Add("FEntity_Link_FSId", pickMatrl.FPPBOMFENTRYID);
|
FentityModel2.Add("FEntity_Link_FBaseActualQtyOld", pickMatrl.FACTBASEQTY);
|
FentityModel2.Add("FEntity_Link_FBaseActualQty", pickMatrl.FACTBASEQTY);
|
Fentity2.Add(FentityModel2);
|
FentityModel.Add("FEntity_Link ", Fentity2);
|
FentityModel.Add("FBFLowId", new JObject() { ["FID"] = "81119477-4778-4d0b-94b9-1c43a1c1f768" });//业务流程:FBFLowId
|
Fentity.Add(FentityModel);
|
|
//业务流程图:FEntity_Link_FFlowId
|
//推进路线:FEntity_Link_FFlowLineId
|
//转换规则:FEntity_Link_FRuleId
|
//源单表内码:FEntity_Link_FSTableId
|
//源单表:FEntity_Link_FSTableName
|
//源单内码:FEntity_Link_FSBillId
|
//源单分录内码:FEntity_Link_FSId
|
//原始携带量:FEntity_Link_FBaseActualQtyOld
|
//修改携带量:FEntity_Link_FBaseActualQty
|
}
|
model.Add("FEntity", Fentity); //明细信息
|
JObject jsonRoot = new JObject()
|
{
|
["Creator"] = "",
|
["NeedUpDateFields"] = new JArray(),
|
["NeedReturnFields"] = new JArray(),
|
["IsDeleteEntry"] = "false",
|
["SubSystemId"] = "",
|
["IsVerifyBaseDataField"] = "false",
|
["Model"] = model
|
};
|
CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
|
var _result = cloudClient.Save("PRD_PickMtrl", jsonRoot.ToString());
|
var _saveObj = JObject.Parse(_result);
|
var saveIsSuc = _saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
|
if (saveIsSuc != "TRUE")
|
{
|
this.View.ShowErrMessage("领料单生成失败," + _saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
|
return;
|
}
|
var fBillNo = _saveObj["Result"]["Number"].ToString();
|
var fID = _saveObj["Result"]["Id"].ToString();
|
//updateSql.Add($"/*dialect*/ update Sc_WorkBillSortBillSub set FReceveBillNo = '{fBillNo}', FReceveBillID = '{fID}' where FEntryID = {item}");
|
//DBServiceHelper.ExecuteBatch(Context, updateSql);
|
string pageId = Guid.NewGuid().ToString();
|
BillShowParameter showParameter = new BillShowParameter();
|
showParameter.FormId = "PRD_PickMtrl";
|
showParameter.OpenStyle.ShowType = ShowType.MainNewTabPage;
|
showParameter.PageId = pageId;
|
showParameter.Status = OperationStatus.EDIT;
|
// 传入需要修改的销售订单内码,演示代码直接固定写死为100001
|
showParameter.PKey = fID;
|
this.View.ShowForm(showParameter);
|
}
|
}
|
catch (Exception ex)
|
{
|
this.View.ShowErrMessage(ex.Message.ToString());
|
}
|
//this.View.ShowMessage("领料单生成成功");
|
}
|
public void OpenPurOrder()
|
{
|
//获取选择记录
|
ListSelectedRowCollection selectRows = this.ListView.SelectedRowsInfo;
|
if (selectRows.Count == 0)
|
{
|
this.View.ShowMessage("请选择数据!", MessageBoxType.Notice);
|
return;
|
}
|
List<string> fidList = selectRows.GetEntryPrimaryKeyValues().ToList();
|
string fentryids = string.Join(",", fidList);
|
string sql = string.Format("/*dialect*/ select distinct FID from T_PRD_PICKMTRLDATA where FDAYPLANFENTRYID in ({0})", fentryids);
|
DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
|
List<string> pickFidList = new List<string>();
|
pickFidList = dt.AsEnumerable().Select(d => d.Field<int>("FID").ToString()).ToList();
|
string purfentryids = string.Join(",", pickFidList);
|
//foreach (DataRow dr in dt.Rows)
|
//{
|
// purfentryids += dr["FID"].ToString() + ",";
|
//}
|
//purfentryids = purfentryids.Substring(0, purfentryids.Length - 1);
|
string fldName = "FID";
|
IRegularFilterParameter filterParameter = new ListRegularFilterParameter();
|
filterParameter.Filter = string.Format(" {0} IN ({1}) ", fldName, purfentryids);
|
filterParameter.SelectEntitys = new List<string>() { "FEntry" };
|
var listTrackParameter = new ListTrackBillShowParameter();
|
listTrackParameter.FormId = "PRD_PickMtrl";
|
listTrackParameter.PageId = Guid.NewGuid().ToString();
|
listTrackParameter.IsShowFilter = false;
|
listTrackParameter.ListFilterParameter = filterParameter;
|
this.View.ShowForm(listTrackParameter);
|
}
|
|
public void ReleaseProOrder()
|
{
|
ListSelectedRowCollection selectRows = this.ListView.SelectedRowsInfo;
|
if (selectRows.Count == 0)
|
return;
|
List<string> fidList = selectRows.GetEntryPrimaryKeyValues().ToList();
|
string fentryId = string.Join(",", fidList);
|
//生成生产订单
|
string sql = $"/*dialect*/ exec proc_jit_DayPlanAduitAddNemMoOrder {fentryId}";
|
DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
|
if (dt.Rows[0][0].ToString().Contains("成功"))
|
return;
|
foreach (DataRow dr in dt.Rows)
|
{
|
JObject model = new JObject();
|
model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = dr["FBillTypeNumber"].ToString() }); //单据类型
|
model.Add("FCreatorId", new JObject() { ["FUserID"] = Context.UserId }); //创建人
|
model.Add("FModifierId", new JObject() { ["FUserID"] = Context.UserId }); //修改人
|
model.Add("FDate", dr["FDate"].ToString());
|
model.Add("FBILLNO", dr["FSpreadBillNo"].ToString());
|
model.Add("FPrdOrgId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
|
model.Add("FWorkShopID0", new JObject() { ["Fnumber"] = dr["FWorkShopNumber"].ToString() });
|
model.Add("FOwnerTypeId", dr["FOwnerTypeId"].ToString());
|
model.Add("FIsRework", dr["FIsRework"].ToString());
|
model.Add("FBusinessType", dr["FBusinessType"].ToString());
|
model.Add("FTrustteed", dr["FTrustteed"].ToString());
|
model.Add("FIsEntrust", dr["FIsEntrust"].ToString());
|
model.Add("FPPBOMType", dr["FPPBOMType"].ToString());
|
model.Add("FIssueMtrl", dr["FIssueMtrl"].ToString());
|
JArray Fentity = new JArray();
|
JObject FentityModel = new JObject();
|
FentityModel.Add("FProductType", dr["FProductType"].ToString());
|
FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = dr["FMATERIALNUMBER"].ToString() });
|
FentityModel.Add("FWorkShopID", new JObject() { ["Fnumber"] = dr["FWorkShopNumber"].ToString() });
|
FentityModel.Add("FUnitId", new JObject() { ["Fnumber"] = dr["FUnitNumber"].ToString() });
|
FentityModel.Add("FQty", dr["FQty"].ToString());
|
FentityModel.Add("FYieldQty", dr["FYieldQty"].ToString());
|
FentityModel.Add("FPlanStartDate", dr["FPlanStartDate"].ToString());
|
FentityModel.Add("FPlanFinishDate", dr["FPlanFinishDate"].ToString());
|
FentityModel.Add("FRequestOrgId", new JObject() { ["Fnumber"] = dr["FRequestOrgNumber"].ToString() });
|
FentityModel.Add("FBomId", new JObject() { ["Fnumber"] = dr["FBomNumber"].ToString() });
|
FentityModel.Add("FISBACKFLUSH", dr["FISBACKFLUSH"].ToString());
|
FentityModel.Add("FStockInOrgId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
|
FentityModel.Add("FBaseYieldQty", dr["FBaseYieldQty"].ToString());
|
FentityModel.Add("FReqType", dr["FReqType"].ToString());
|
FentityModel.Add("FInStockOwnerTypeId", dr["FInStockOwnerTypeId"].ToString());
|
FentityModel.Add("FBaseStockInLimitH", dr["FBaseStockInLimitH"].ToString());
|
FentityModel.Add("FInStockOwnerId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
|
FentityModel.Add("FCheckProduct", dr["FCheckProduct"].ToString());
|
FentityModel.Add("FBaseStockInLimitL", dr["FBaseStockInLimitL"].ToString());
|
FentityModel.Add("FBaseUnitQty", dr["FBaseUnitQty"].ToString());
|
FentityModel.Add("FRoutingId", new JObject() { ["Fnumber"] = dr["FRoutingNumber"].ToString() });
|
FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = dr["FUnitNumber"].ToString() });
|
FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = dr["FStockNumber"].ToString() });
|
FentityModel.Add("FStockInLimitH", dr["FStockInLimitH"].ToString());
|
FentityModel.Add("FStockInLimitL", dr["FStockInLimitL"].ToString());
|
FentityModel.Add("FCostRate", dr["FCostRate"].ToString());
|
FentityModel.Add("FCreateType", dr["FCreateType"].ToString());
|
FentityModel.Add("FYieldRate", dr["FYieldRate"].ToString());
|
FentityModel.Add("FGroup", dr["FGroup"].ToString());
|
FentityModel.Add("FNoStockInQty", dr["FNoStockInQty"].ToString());
|
FentityModel.Add("FBaseNoStockInQty", dr["FBaseNoStockInQty"].ToString());
|
FentityModel.Add("FRowId", dr["FRowId"].ToString());
|
FentityModel.Add("FPickMtrlStatus", dr["FPickMtrlStatus"].ToString());
|
FentityModel.Add("FMOChangeFlag", dr["FMOChangeFlag"].ToString());
|
FentityModel.Add("FDAYPLANBILLNO", dr["FDAYPLANBILLNO"].ToString());
|
FentityModel.Add("FDayPlanFseq", dr["FDayPlanFseq"].ToString());
|
FentityModel.Add("FDayPlanFentryId", dr["FDayPlanFentryId"].ToString());
|
FentityModel.Add("FDayPlanFid", dr["FDayPlanFid"].ToString());
|
FentityModel.Add("FDayPlanRemainQty", 0);
|
FentityModel.Add("FDayPlanQty", dr["FQty"].ToString());
|
FentityModel.Add("F_TEZV_Base", new JObject() { ["Fnumber"] = dr["FPREBDONENUMBER"].ToString() });//包装标识
|
Fentity.Add(FentityModel);
|
model.Add("FTreeEntity", Fentity);
|
JObject jsonRoot = new JObject()
|
{
|
["Creator"] = "",
|
["NeedUpDateFields"] = new JArray(),
|
["NeedReturnFields"] = new JArray(),
|
["IsDeleteEntry"] = "false",
|
["SubSystemId"] = "",
|
["IsVerifyBaseDataField"] = "false",
|
["Model"] = model
|
};
|
CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
|
var _result = cloudClient.Save("PRD_MO", jsonRoot.ToString());
|
var _saveObj = JObject.Parse(_result);
|
var saveIsSuc = _saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
|
if (saveIsSuc != "TRUE")
|
{
|
this.View.ShowErrMessage("生产订单生成失败," + _saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
|
return;
|
}
|
var fBillNo = _saveObj["Result"]["Number"].ToString();
|
var fID = _saveObj["Result"]["Id"].ToString();
|
//this.View.ShowMessage("生产订单生成成功,单号:" + fBillNo);
|
//生成一张生产订单变更单
|
model = new JObject();
|
model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = "SCDDBGD01_SYS" }); //单据类型
|
model.Add("FCreatorId", new JObject() { ["FUserID"] = Context.UserId }); //创建人
|
model.Add("FModifierId", new JObject() { ["FUserID"] = Context.UserId }); //修改人
|
model.Add("FDate", dr["FDate"].ToString());
|
model.Add("FPrdOrgId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
|
model.Add("FWorkShopID", new JObject() { ["Fnumber"] = dr["FWorkShopNumber"].ToString() });
|
Fentity = new JArray();
|
FentityModel = new JObject();
|
FentityModel.Add("FChangeType", 2);////变更前
|
FentityModel.Add("FProductType", dr["FProductType"].ToString());
|
FentityModel.Add("FMoNo", dr["FBILLNO"].ToString());
|
FentityModel.Add("FMoId", dr["FID"].ToString());
|
FentityModel.Add("FMOENTRYID", dr["FENTRYID"].ToString());
|
FentityModel.Add("FMOENTRYSEQ", dr["FSEQ"].ToString());
|
FentityModel.Add("FStatus", "1");
|
FentityModel.Add("FPlanStartDate", dr["FPlanStartDate"].ToString());
|
FentityModel.Add("FPlanFinishDate", dr["FPlanFinishDate"].ToString());
|
FentityModel.Add("FRequestOrgId", new JObject() { ["Fnumber"] = dr["FRequestOrgNumber"].ToString() });
|
FentityModel.Add("FBomId", new JObject() { ["Fnumber"] = dr["FBomNumber"].ToString() });
|
FentityModel.Add("FReqType", dr["FReqType"].ToString());
|
FentityModel.Add("FStockInOrgId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
|
FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = dr["FMATERIALNUMBER"].ToString() });
|
FentityModel.Add("FUnitId", new JObject() { ["Fnumber"] = dr["FUnitNumber"].ToString() });
|
FentityModel.Add("FWorkShopId1", new JObject() { ["Fnumber"] = dr["FWorkShopNumber"].ToString() });
|
FentityModel.Add("FQty", dr["FMoFentryQty"].ToString());
|
FentityModel.Add("FSrcBillNo", dr["FBILLNO"].ToString());//源单编号
|
FentityModel.Add("FSrcBillId", dr["FID"].ToString());//源单内码
|
FentityModel.Add("FSrcBillEntryId", dr["FENTRYID"].ToString());//源单分录内码
|
FentityModel.Add("FSrcBillEntrySeq", dr["FSEQ"].ToString());//源单行号
|
FentityModel.Add("FCostRate", dr["FCostRate"].ToString());
|
FentityModel.Add("FInStockOwnerTypeId", dr["FInStockOwnerTypeId"].ToString());
|
FentityModel.Add("FInStockOwnerId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
|
FentityModel.Add("FYieldRate", dr["FYieldRate"].ToString());
|
FentityModel.Add("FGroup", dr["FGroup"].ToString());
|
//建立关联关系
|
JArray Fentity2 = new JArray();
|
JObject FentityModel2 = new JObject();
|
FentityModel2.Add("FEntity_Link_FFlowId", "f11b462a-8733-40bd-8f29-0906afc6a201");
|
FentityModel2.Add("FEntity_Link_FFlowLineId", "7");
|
FentityModel2.Add("FEntity_Link_FRuleId", "PRD_MO2MOCHANGE");
|
FentityModel2.Add("FEntity_Link_FSTableName", "T_PRD_MOENTRY");
|
FentityModel2.Add("FEntity_Link_FSBillId", dr["FID"].ToString());
|
FentityModel2.Add("FEntity_Link_FSId", dr["FENTRYID"].ToString());
|
FentityModel2.Add("FEntity_Link_FBaseQtyOld", dr["FMoFentryQty"].ToString());
|
FentityModel2.Add("FEntity_Link_FBaseQty", dr["FMoFentryQty"].ToString());
|
Fentity2.Add(FentityModel2);
|
FentityModel.Add("FEntity_Link", Fentity2);
|
FentityModel.Add("FBFLowId", new JObject() { ["FID"] = "f11b462a-8733-40bd-8f29-0906afc6a201" });//业务流程:FBFLowId
|
Fentity.Add(FentityModel);
|
|
FentityModel = new JObject();
|
FentityModel.Add("FChangeType", 3);////变更后
|
FentityModel.Add("FProductType", dr["FProductType"].ToString());
|
FentityModel.Add("FMoNo", dr["FBILLNO"].ToString());
|
FentityModel.Add("FMoId", dr["FID"].ToString());
|
FentityModel.Add("FMOENTRYID", dr["FENTRYID"].ToString());
|
FentityModel.Add("FMOENTRYSEQ", dr["FSEQ"].ToString());
|
FentityModel.Add("FStatus", "1");
|
FentityModel.Add("FPlanStartDate", dr["FPlanStartDate"].ToString());
|
FentityModel.Add("FPlanFinishDate", dr["FPlanFinishDate"].ToString());
|
FentityModel.Add("FRequestOrgId", new JObject() { ["Fnumber"] = dr["FRequestOrgNumber"].ToString() });
|
FentityModel.Add("FBomId", new JObject() { ["Fnumber"] = dr["FBomNumber"].ToString() });
|
FentityModel.Add("FReqType", dr["FReqType"].ToString());
|
FentityModel.Add("FStockInOrgId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
|
FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = dr["FMATERIALNUMBER"].ToString() });
|
FentityModel.Add("FUnitId", new JObject() { ["Fnumber"] = dr["FUnitNumber"].ToString() });
|
FentityModel.Add("FWorkShopId1", new JObject() { ["Fnumber"] = dr["FWorkShopNumber"].ToString() });
|
FentityModel.Add("FQty", dr["FBgQty"].ToString());
|
FentityModel.Add("FSrcBillNo", dr["FBILLNO"].ToString());//源单编号
|
FentityModel.Add("FSrcBillId", dr["FID"].ToString());//源单内码
|
FentityModel.Add("FSrcBillEntryId", dr["FENTRYID"].ToString());//源单分录内码
|
FentityModel.Add("FSrcBillEntrySeq", dr["FSEQ"].ToString());//源单行号
|
FentityModel.Add("FCostRate", dr["FCostRate"].ToString());
|
FentityModel.Add("FInStockOwnerTypeId", dr["FInStockOwnerTypeId"].ToString());
|
FentityModel.Add("FInStockOwnerId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
|
FentityModel.Add("FYieldRate", dr["FYieldRate"].ToString());
|
FentityModel.Add("FGroup", dr["FGroup"].ToString());
|
//建立关联关系
|
Fentity2 = new JArray();
|
FentityModel2 = new JObject();
|
FentityModel2.Add("FEntity_Link_FFlowId", "f11b462a-8733-40bd-8f29-0906afc6a201");
|
FentityModel2.Add("FEntity_Link_FFlowLineId", "7");
|
FentityModel2.Add("FEntity_Link_FRuleId", "PRD_MO2MOCHANGE");
|
FentityModel2.Add("FEntity_Link_FSTableName", "T_PRD_MOENTRY");
|
FentityModel2.Add("FEntity_Link_FSBillId", dr["FID"].ToString());
|
FentityModel2.Add("FEntity_Link_FSId", dr["FENTRYID"].ToString());
|
FentityModel2.Add("FEntity_Link_FBaseQtyOld", dr["FBgQty"].ToString());
|
FentityModel2.Add("FEntity_Link_FBaseQty", dr["FBgQty"].ToString());
|
Fentity2.Add(FentityModel2);
|
FentityModel.Add("FEntity_Link", Fentity2);
|
FentityModel.Add("FBFLowId", new JObject() { ["FID"] = "f11b462a-8733-40bd-8f29-0906afc6a201" });//业务流程:FBFLowId
|
Fentity.Add(FentityModel);
|
model.Add("FEntity", Fentity);
|
jsonRoot = new JObject()
|
{
|
["Creator"] = "",
|
["NeedUpDateFields"] = new JArray(),
|
["NeedReturnFields"] = new JArray(),
|
["IsDeleteEntry"] = "false",
|
["SubSystemId"] = "",
|
["IsVerifyBaseDataField"] = "false",
|
["IsAutoSubmitAndAudit"] = true,//自动调用提交和审核功能
|
["Model"] = model
|
};
|
LogService.Write("生产订单变更单json:" + jsonRoot.ToString());
|
_result = cloudClient.Save("PRD_MOChange", jsonRoot.ToString());
|
_saveObj = JObject.Parse(_result);
|
saveIsSuc = _saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
|
if (saveIsSuc != "TRUE")
|
{
|
//删除生产订单
|
var json = new
|
{
|
Ids = fID
|
};
|
LogService.Write("json:" + json);
|
cloudClient.Delete("PRD_MO", JsonConvert.SerializeObject(json));
|
LogService.Write("JsonConvert.SerializeObject(json):" + JsonConvert.SerializeObject(json));
|
LogService.Write("生产订单变更单生成失败," + _saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
|
this.View.ShowErrMessage("生产订单变更单生成失败," + _saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
|
return;
|
}
|
var _fBillNo = _saveObj["Result"]["Number"].ToString();
|
var _fID = _saveObj["Result"]["Id"].ToString();
|
string _sql = string.Format(@"
|
/*dialect*/
|
update Sc_WorkBillSortBillMain set
|
FMoId = '{0}',
|
FMoEntryId = (select FentryId from T_PRD_MOENTRY where FID ={0}),
|
FMoBillNo = '{1}'
|
where FID={2}", fID, fBillNo, dr["FDayPlanFId"].ToString());
|
//LogService.Write(_sql);
|
DBServiceHelper.Execute(Context, _sql);
|
//扣除源生产订单 可排日计划数量
|
_sql = string.Format(@"
|
/*dialect*/
|
update T_PRD_MOENTRY set
|
FDayPlanQty =FDayPlanQty - {0}
|
where FEntryID={1}", dr["FQty"].ToString(), dr["FENTRYID"].ToString());
|
//LogService.Write(_sql);
|
DBServiceHelper.Execute(Context, _sql);
|
this.View.ShowMessage("生产订单生成成功,单号:" + fBillNo + "\r\n生产订单变更单生成成功:单号" + _fBillNo);
|
}
|
|
}
|
}
|
}
|