using Demo.Common.Untility;
|
using Demo.Model.Log;
|
using Kingdee.BOS.Core.DynamicForm;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
using Kingdee.BOS.Orm.DataEntity;
|
using Kingdee.BOS.ServiceHelper;
|
using Kingdee.BOS.Util;
|
using Kingdee.BOS.WebApi.Client;
|
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;
|
using System.Threading.Tasks;
|
using ZD.Cloud.Logger;
|
using ZD.Cloud.WebApi;
|
|
namespace Demo.OperationService.SCM.SAL_SaleOrder
|
{
|
[HotUpdate]
|
[Description("销售订单审核拆单")]
|
public class SAL_SaleOrderSplitBill : AbstractOperationServicePlugIn
|
{
|
private void CreateQkForm(AfterExecuteOperationTransaction e)
|
{
|
var client = KingdeeClient.ApiLogin(Context);
|
|
foreach (var data in e.DataEntitys)
|
{
|
var billNo = data.GetValue<string>("BillNo");
|
|
LogService.WriteAsync("SAL_SaleOrderSplitBill=>"+billNo);
|
|
if (data.GetValue<bool>("FIsSplitBill") || data.GetValue<string>("RedBule") == "1") continue;
|
|
//LogService.WriteAsync($"BillNo={billNo},FIsSplitBill={data.GetValue<bool>("FIsSplitBill")},FISLAST={data.GetValue<bool>("FISLAST")},RedBule={data.GetValue<string>("RedBule")}");
|
|
var id = data.GetValue<int>("Id");
|
|
//如果单据已经是_A,在审核时候直接跳过执行
|
if (billNo.EndsWith("_A")) continue;
|
|
var sql = $"Exec V_FilterSaleOrder @id={id}";
|
|
var table = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
|
LogService.WriteAsync(table);
|
|
if (table.Rows.Count == 0) continue;
|
|
string sql3 = $"select top 1 F_YQN_ZDR,FNOTE from T_SAL_ORDER WHERE FID={id}";
|
var table3 = DBServiceHelper.ExecuteDataSet(this.Context, sql3).Tables[0];
|
|
var model = new
|
{
|
FBillTypeID = new
|
{
|
FNUMBER = Context.DBId == "5ffd9795291fb7" ? "XSDD01_SYS" : "XSDD101_SYS"
|
},
|
FDate = DateTime.Now,
|
FSaleOrgId = new
|
{
|
FNumber = "100"
|
},
|
FCustId = new
|
{
|
FNumber = "AR07000000022"
|
},
|
FReceiveId = new
|
{
|
FNumber = "AR07000000022"
|
},
|
FSaleGroupId = new
|
{
|
FNumber = "100002"
|
},
|
FSalerId = new
|
{
|
FNumber = "D080190016"
|
},
|
//FLinkPhone= "13757508209",
|
FSettleId = new
|
{
|
FNumber = "AR07000000022"
|
},
|
FChargeId = new
|
{
|
FNumber = "AR07000000022"
|
},
|
F_zzzz_Assistant = new
|
{
|
FNumber = "087"
|
},
|
FPAYCUSTOMER = new
|
{
|
FNUMBER = "AR07000000022"
|
},
|
FISGUARANTEE = true,
|
FBillNo = $"{billNo}_A",
|
F_YQN_ZDR = table3.Rows.Count == 0 ? string.Empty : table3.Rows[0][0],//制单人
|
FNOTE = table3.Rows.Count == 0 ? string.Empty : table3.Rows[0][1],//整单摘要
|
FSaleOrderEntry = table.AsEnumerable().Select(row => new
|
{
|
FSUBMATERIALNUMBER = new
|
{
|
FNumber = Context.DBId == "5ffd9795291fb7" ? "CSCS0001" : "F9900000000"
|
},
|
|
FRowType = "Standard",
|
FDeliveryDate = DateTime.Now,
|
FStockOrgId = new
|
{
|
FNumber = "100"
|
},
|
FSettleOrgIds = new
|
{
|
FNumber = "100"
|
},
|
FSupplyOrgId = new
|
{
|
FNumber = "100"
|
},
|
FOwnerTypeId = "BD_OwnerOrg",
|
FOwnerId = new
|
{
|
FNumber = "100"
|
},
|
FReserveType = "1",
|
FOUTLMTUNIT = "SAL",
|
FMaterialId = new
|
{
|
FNumber = row["MaterialNo"]
|
},
|
|
F_YQN_DYXH = "CS001",
|
FSOSTOCKID = new
|
{
|
FNumber = row["FStockNo"]
|
},
|
FLot = new
|
{
|
FNumber = row["LotNo"]
|
},
|
FLOT_TEXT=row["FLotName"],
|
FQty = row["Qty"]
|
})
|
};
|
|
LogService.WriteAsync(model);
|
|
|
var restlt = client.Save("SAL_SaleOrder", JsonConvert.SerializeObject(new { Model = model }));
|
LogService.WriteAsync(restlt);
|
|
var response = JsonConvert.DeserializeObject<KingdeeResponse2>(restlt);
|
if (response.Result.ResponseStatus.IsSuccess)
|
{
|
var ids = JsonConvert.SerializeObject(new { Ids = response.Result.ResponseStatus.SuccessEntitys[0].Id });
|
LogService.WriteAsync(ids);
|
var r = client.Submit("SAL_SaleOrder", ids);
|
LogService.WriteAsync(r);
|
r = client.Audit("SAL_SaleOrder", ids);
|
}
|
|
foreach (var item in this.OperationResult.OperateResult)
|
{
|
if (item.PKValue?.ToString() == id.ToString())
|
{
|
item.Message += response.Result.ResponseStatus.IsSuccess ? $"生成墙咔领料单据{billNo}_A" : $"{billNo}生成强卡领料单据失败:{JsonConvert.SerializeObject(response.Result.ResponseStatus.Errors.Select(x => x.Message + ";"))}";
|
}
|
}
|
}
|
|
}
|
|
|
public override void OnPreparePropertys(PreparePropertysEventArgs e)
|
{
|
base.OnPreparePropertys(e);
|
#region 字段信息加载
|
e.FieldKeys.Add("FOrderEntryPlan");
|
e.FieldKeys.Add("FIsSplitBill");
|
e.FieldKeys.Add("FOverOrgTransDirect");
|
e.FieldKeys.Add("FExchangeTypeId");
|
e.FieldKeys.Add("FIsIncludedTax");
|
e.FieldKeys.Add("FSettleModeId");
|
e.FieldKeys.Add("FIsPriceExcludeTax");
|
e.FieldKeys.Add("FRecConditionId");
|
e.FieldKeys.Add("FSettleCurrId");
|
e.FieldKeys.Add("FIsSplitBill");
|
e.FieldKeys.Add("F_zzzz_CheckBox2");
|
e.FieldKeys.Add("F_zzzz_Text7");
|
e.FieldKeys.Add("FCollectionTime");
|
e.FieldKeys.Add("F_zzzz_Assistant");
|
e.FieldKeys.Add("FDifferenceAmount");
|
e.FieldKeys.Add("F_zzzz_Text8");
|
e.FieldKeys.Add("FLCLSituation");
|
e.FieldKeys.Add("FCustInvioce");
|
e.FieldKeys.Add("FPAYCUSTOMER");
|
e.FieldKeys.Add("FWEBANKACCOUNT");
|
e.FieldKeys.Add("FHEADLOCID");
|
e.FieldKeys.Add("FIsMobile");
|
e.FieldKeys.Add("FNote");
|
e.FieldKeys.Add("FISINIT");
|
e.FieldKeys.Add("FChargeId");
|
e.FieldKeys.Add("FReceiveContact");
|
e.FieldKeys.Add("FSettleId");
|
e.FieldKeys.Add("FReceiveAddress");
|
e.FieldKeys.Add("FLinkPhone");
|
e.FieldKeys.Add("FSalerId");
|
e.FieldKeys.Add("FSaleGroupId");
|
e.FieldKeys.Add("FSaleDeptId");
|
e.FieldKeys.Add("FReceiveId");
|
e.FieldKeys.Add("FCOLLECTBALANCEAMOUNT");
|
e.FieldKeys.Add("FCustId");
|
e.FieldKeys.Add("FSaleOrgId");
|
e.FieldKeys.Add("FDate");
|
e.FieldKeys.Add("FBillTypeID");
|
e.FieldKeys.Add("FRowType");
|
e.FieldKeys.Add("FMaterialId");
|
e.FieldKeys.Add("FSUBMATERIALNUMBER");
|
e.FieldKeys.Add("FMapId");
|
e.FieldKeys.Add("FUnitID");
|
e.FieldKeys.Add("FQty");
|
e.FieldKeys.Add("FPrice");
|
e.FieldKeys.Add("FTaxPrice");
|
e.FieldKeys.Add("F_zzzz_Decimal4");
|
e.FieldKeys.Add("FLot");
|
e.FieldKeys.Add("FIsFree");
|
e.FieldKeys.Add("FEntryTaxRate");
|
e.FieldKeys.Add("FDeliveryDate");
|
e.FieldKeys.Add("FStockOrgId");
|
e.FieldKeys.Add("FSettleOrgIds");
|
e.FieldKeys.Add("FSupplyOrgId");
|
e.FieldKeys.Add("FOwnerTypeId");
|
e.FieldKeys.Add("FOwnerId");
|
e.FieldKeys.Add("FEntryNote");
|
e.FieldKeys.Add("FReserveType");
|
e.FieldKeys.Add("F_zzzz_Text9");
|
e.FieldKeys.Add("FPriceBaseQty");
|
e.FieldKeys.Add("FStockUnitID");
|
e.FieldKeys.Add("FStockQty");
|
e.FieldKeys.Add("FStockBaseQty");
|
e.FieldKeys.Add("FOUTLMTUNIT");
|
e.FieldKeys.Add("FOutLmtUnitID");
|
e.FieldKeys.Add("FISMRP");
|
e.FieldKeys.Add("FLOCKSTOCK");
|
e.FieldKeys.Add("F_zzzz_Combo1");
|
e.FieldKeys.Add("F_zzzz_CheckBox");
|
e.FieldKeys.Add("F_zzzz_Text");
|
e.FieldKeys.Add("F_zzzz_Assistant2");
|
e.FieldKeys.Add("F_zzzz_Decimal7");
|
e.FieldKeys.Add("F_zzzz_Decimal8");
|
e.FieldKeys.Add("FSpecialOffer");
|
e.FieldKeys.Add("FMESScheduling");
|
e.FieldKeys.Add("FMESScheduling");
|
e.FieldKeys.Add("FIsUnsalablePrd");
|
e.FieldKeys.Add("FPlanProdDate");
|
e.FieldKeys.Add("FQitao");
|
e.FieldKeys.Add("FOrderEntryPlan");
|
e.FieldKeys.Add("FDetailLocId");
|
e.FieldKeys.Add("FDetailLocAddress");
|
e.FieldKeys.Add("FPlanDate");
|
e.FieldKeys.Add("FTransportLeadTime");
|
e.FieldKeys.Add("FPlanQty");
|
e.FieldKeys.Add("FCOLLECTIONNO");
|
e.FieldKeys.Add("FOtherARBillNo");
|
e.FieldKeys.Add("F_YQN_ZDR");
|
e.FieldKeys.Add("FCreatorId");
|
e.FieldKeys.Add("FISGuarantee");
|
e.FieldKeys.Add("F_zzzz_DDBZ");
|
e.FieldKeys.Add("F_YQN_CSHDDBH");
|
e.FieldKeys.Add("FCreatorId");
|
e.FieldKeys.Add("FModifierId");
|
e.FieldKeys.Add("F_YQN_DYXH");
|
e.FieldKeys.Add("F_YQN_GYS");
|
e.FieldKeys.Add("F_YQN_CGY1");
|
e.FieldKeys.Add("FFIRSTPRINTTIME");
|
e.FieldKeys.Add("F_ZZZZ_PRINTTIMES");
|
e.FieldKeys.Add("F_zzzz_PrintDateTime");
|
e.FieldKeys.Add("FFirstTime");
|
e.FieldKeys.Add("FLastTime");
|
e.FieldKeys.Add("FPrintCount");
|
e.FieldKeys.Add("FIsNeedCheck");
|
e.FieldKeys.Add("FISCASHSALE");
|
e.FieldKeys.Add("F_ZZZZ_QIAO");
|
e.FieldKeys.Add("F_ZZZZ_OEM");
|
e.FieldKeys.Add("FPushPrdPlan");
|
e.FieldKeys.Add("FLotTxt");
|
e.FieldKeys.Add("F_zzzz_Decimal");
|
e.FieldKeys.Add("F_zzzz_Decimal1");
|
e.FieldKeys.Add("F_zzzz_Assistant3");
|
e.FieldKeys.Add("F_zzzz_Assistant4");
|
e.FieldKeys.Add("F_zzzz_Assistant6");
|
e.FieldKeys.Add("F_zzzz_Assistant7");
|
e.FieldKeys.Add("F_zzzz_Assistant8");
|
e.FieldKeys.Add("F_zzzz_Assistant9");
|
e.FieldKeys.Add("FLossParam");
|
e.FieldKeys.Add("F_zzzz_Decimal5");
|
e.FieldKeys.Add("F_zzzz_Text1");
|
e.FieldKeys.Add("F_zzzz_Assistant1");
|
e.FieldKeys.Add("FSOStockId");
|
e.FieldKeys.Add("F_zzzz_FLBZ");
|
e.FieldKeys.Add("F_zzzz_WBBZ");
|
e.FieldKeys.Add("FISLAST");
|
e.FieldKeys.Add("F_zzzz_CQFS");
|
e.FieldKeys.Add("F_zzzz_MLKD");
|
e.FieldKeys.Add("F_zzzz_BGD");
|
e.FieldKeys.Add("F_zzzz_BKD");
|
e.FieldKeys.Add("F_zzzz_DDSL");
|
e.FieldKeys.Add("F_CUT_TIME");
|
e.FieldKeys.Add("F_BZ_TIME");
|
e.FieldKeys.Add("F_loss_backup");
|
e.FieldKeys.Add("FIsCustomerProvide");
|
e.FieldKeys.Add("FISREFRESHLOT");
|
e.FieldKeys.Add("F_zzzz_WBBZ1");
|
e.FieldKeys.Add("FSaleQty");
|
e.FieldKeys.Add("FTotalAmount");
|
e.FieldKeys.Add("FLotEmptyDate");
|
e.FieldKeys.Add("FSaleOutLot");
|
e.FieldKeys.Add("FIsClose");
|
e.FieldKeys.Add("FIsStatistics");
|
e.FieldKeys.Add("F_zzzz_CheckBox1");
|
e.FieldKeys.Add("F_zzzz_Text3");
|
e.FieldKeys.Add("F_zzzz_Text4");
|
e.FieldKeys.Add("F_zzzz_Text5");
|
e.FieldKeys.Add("F_zzzz_Text10");
|
e.FieldKeys.Add("F_zzzz_Text11");
|
e.FieldKeys.Add("F_zzzz_Integer");
|
e.FieldKeys.Add("FParentDateTime");
|
e.FieldKeys.Add("FChildrenDatetime");
|
e.FieldKeys.Add("FSplitSBillNo");
|
e.FieldKeys.Add("FIsNeedAllSend");
|
e.FieldKeys.Add("F_XSDD_PGBZ");
|
e.FieldKeys.Add("F_XSDD_PGSJ");
|
#endregion
|
|
|
|
|
}
|
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
|
{
|
base.AfterExecuteOperationTransaction(e);
|
|
CreateQkForm(e);
|
|
var srcDatas = e.SelectedRows;
|
//// 使用webapi引用组件Kingdee.BOS.WebApi.Client.dll,进行单据处理
|
//K3CloudApiClient client = new K3CloudApiClient("http://localhost/k3Cloud/");
|
////var loginResult = client.ValidateLogin("5fe40ecc0b7bf2", "Administrator", "888888", 2052);//本地环境
|
//var loginResult = client.ValidateLogin("5f56ea565892f4", "Administrator", "ycy123", 2052);//正式环境
|
//var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>();
|
////登录结果类型等于1,代表登录成功
|
//if (resultType == 1)
|
//{
|
CloudClient client = new CloudClient("http://localhost/k3Cloud/");
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单", "API登录成功");
|
Dictionary<string, string> dictionary = new Dictionary<string, string>();
|
foreach (var srcData in srcDatas)
|
{
|
//string billno = srcData["BillNo"].ToString();//单据编号
|
//string UnAuditResult = client.UnAudit("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":['" + billno + "'],\"Ids\":\"\",\"InterationFlags\":\"\",\"NetworkCtrl\":\"\"}");
|
//JObject UnAuditResultObj = JObject.Parse(UnAuditResult);
|
//if (UnAuditResultObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
|
//{
|
// string DeleteResult = client.Delete("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":['" + billno + "'],\"Ids\":\"\",\"NetworkCtrl\":\"\"}");
|
//}
|
bool curr = false;
|
string idlist = string.Empty;//暂存单据集合
|
string savejsonlist = string.Empty;//暂存单据保存JSON
|
string billno = srcData["BillNo"].ToString();//单据编号
|
bool IsSplitBill = bool.Parse(srcData["FIsSplitBill"].ToString());//是否拆单
|
if (IsSplitBill)
|
{
|
try
|
{
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "符合拆单条件:" + billno);
|
string sql = $@"/*dialect*/SELECT B.FQitao
|
FROM dbo.T_SAL_ORDER A(NOLOCK)
|
JOIN dbo.T_SAL_ORDERENTRY B(NOLOCK) ON B.FID = A.FID
|
WHERE A.FBILLNO='{billno}'
|
GROUP BY B.FQitao";
|
DataTable data = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
|
//拆单
|
for (int i = 0; i < data.Rows.Count; i++)
|
{
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "进入拆单循环");
|
#region 拼接表头
|
string SplitBillNo = billno + "-" + (i + 1);//拆单单号
|
StringBuilder sJson = new StringBuilder();
|
sJson.Append("{");
|
sJson.Append("\"NeedUpDateFields\": [],");
|
sJson.Append("\"NeedReturnFields\": [],");
|
sJson.Append("\"IsDeleteEntry\": \"true\",");
|
sJson.Append("\"SubSystemId\": \"\",");
|
sJson.Append("\"IsVerifyBaseDataField\": \"true\",");
|
sJson.Append("\"IsEntryBatchFill\": \"true\",");
|
sJson.Append("\"ValidateFlag\": \"true\",");
|
sJson.Append("\"NumberSearch\": \"true\",");
|
sJson.Append("\"InterationFlags\": \"\",");
|
sJson.Append("\"Model\": {");
|
sJson.Append("\"FID\": 0,");
|
sJson.Append("\"FBillTypeID\": {\"FNUMBER\": \"" + ((srcData["BillTypeID"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FDate\": \"" + (srcData["Date"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FSaleOrgId\": {\"FNumber\": \"" + ((srcData["SaleOrgId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FCustId\": {\"FNumber\": \"" + ((srcData["CustId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FBillNo\": \"" + SplitBillNo + "\",");
|
sJson.Append("\"FCOLLECTBALANCEAMOUNT\": " + (srcData["COLLECTBALANCEAMOUNT"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FReceiveId\": {\"FNumber\": \"" + ((srcData["ReceiveId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FSaleDeptId\": {\"FNumber\": \"" + ((srcData["SaleDeptId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FSaleGroupId\": {\"FNumber\": \"" + ((srcData["SaleGroupId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FSalerId\": {\"FNumber\": \"" + ((srcData["SalerId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FSettleId\": {\"FNumber\": \"" + ((srcData["SettleId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FReceiveContact\": {\"FNumber\": \"" + ((srcData["ReceiveContact"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FChargeId\": {\"FNumber\": \"" + ((srcData["ChargeId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FISINIT\": \"" + (srcData["ISINIT"]?.ToString() ?? "False") + "\",");
|
sJson.Append("\"FISGuarantee\": \"" + (srcData["ISGuarantee"]?.ToString() ?? "false") + "\",");
|
if ((srcData["F_YQN_ZDR"]?.ToString() ?? "") == "")
|
{
|
sJson.Append("\"F_YQN_ZDR\": \"" + ((srcData["CreatorId"] as DynamicObject)?["Name"].ToString() ?? "") + "\",");
|
}
|
else
|
{
|
sJson.Append("\"F_YQN_ZDR\": \"" + (srcData["F_YQN_ZDR"]?.ToString() ?? "") + "\",");
|
}
|
sJson.Append("\"FISCASHSALE\": \"" + (srcData["ISCASHSALE"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FIsNeedCheck\": \"True\",");
|
sJson.Append("\"FISLAST\": \"False\",");
|
sJson.Append("\"FFIRSTPRINTTIME\": \"" + (srcData["FFIRSTPRINTTIME"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_PrintDateTime\": \"" + (srcData["F_zzzz_PrintDateTime"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_ZZZZ_PRINTTIMES\": " + (srcData["F_ZZZZ_PRINTTIMES"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FFirstTime\": \"" + (srcData["FFirstTime"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FLastTime\": \"" + (srcData["FLastTime"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FPrintCount\": " + (srcData["FPrintCount"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_YQN_CSHDDBH\": \"" + (srcData["F_YQN_CSHDDBH"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FCOLLECTIONNO\": \"" + (srcData["COLLECTIONNO"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FOtherARBillNo\": \"" + (srcData["OtherARBillNo"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FNote\": \"" + (srcData["Note"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FIsMobile\": \"" + (srcData["IsMobile"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FHEADLOCID\": {\"FNUMBER\": \"" + ((srcData["HEADLOCID"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FWEBANKACCOUNT\": {\"FNUMBER\": \"" + ((srcData["WEBANKACCOUNT"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FPAYCUSTOMER\": {\"FNUMBER\": \"" + ((srcData["PAYCUSTOMER"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FCustInvioce\": {\"FNUMBER\": \"" + ((srcData["CustInvioce"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FLCLSituation\": \"" + (srcData["LCLSituation"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Text8\": \"" + (srcData["F_zzzz_Text8"]?.ToString() ?? "") + "\",");
|
//sJson.Append("\"FDifferenceAmount\": " + (srcData["FDifferenceAmount"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FCollectionTime\": \"" + (srcData["CollectionTime"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_CheckBox2\": \"" + (srcData["F_zzzz_CheckBox2"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FIsSplitBill\": \"false\",");
|
sJson.Append("\"F_zzzz_Assistant\": {\"FNumber\": \"" + ((srcData["F_zzzz_Assistant"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FLinkPhone\": \"" + (srcData["FLinkPhone"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FReceiveAddress\": \"" + (srcData["ReceiveAddress"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Text7\": \"" + (srcData["F_zzzz_Text7"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FCreatorId\": {\"FUserID\": " + (srcData["CreatorId_Id"]?.ToString() ?? "0") + "},");
|
sJson.Append("\"FModifierId\": {\"FUserID\": " + (srcData["ModifierId_Id"]?.ToString() ?? "0") + "},");
|
sJson.Append("\"F_zzzz_FLBZ\": \"" + (srcData["F_zzzz_FLBZ"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_WBBZ\": \"" + (srcData["F_zzzz_WBBZ"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FIsStatistics\": \"True\",");
|
string no = billno;
|
string bno = string.Empty;
|
if ((no.IndexOf("_") == -1 ? 99999 : no.IndexOf("_")) > (no.IndexOf("-") == -1 ? 99999 : no.IndexOf("-")))
|
{
|
bno = no.Substring(0, no.IndexOf("-"));
|
}
|
else if ((no.IndexOf("_") == -1 ? 99999 : no.IndexOf("_")) < (no.IndexOf("-") == -1 ? 99999 : no.IndexOf("-")))
|
{
|
bno = no.Substring(0, no.IndexOf("_"));
|
}
|
else if ((no.IndexOf("_") == -1 ? 99999 : no.IndexOf("_")) == (no.IndexOf("-") == -1 ? 99999 : no.IndexOf("-")))
|
{
|
bno = no;
|
}
|
sJson.Append("\"FSplitSBillNo\": \""+ bno + "\",");
|
sJson.Append("\"FIsNeedAllSend\": \"" + (srcData["FIsNeedAllSend"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"F_zzzz_CheckBox1\": \"" + (srcData["F_zzzz_CheckBox1"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FIsCustomerProvide\": \"" + (srcData["FIsCustomerProvide"]?.ToString() ?? "false") + "\",");
|
DynamicObjectCollection SaleDataFinance = srcData["SaleOrderFinance"] as DynamicObjectCollection;//财务明细
|
sJson.Append("\"FSaleOrderFinance\":");
|
sJson.Append("{");
|
sJson.Append("\"FSettleCurrId\": {\"FNumber\": \"" + ((SaleDataFinance[0]["SettleCurrId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FRecConditionId\": {\"FNumber\": \"" + ((SaleDataFinance[0]["RecConditionId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FIsPriceExcludeTax\": \"" + (SaleDataFinance[0]["IsPriceExcludeTax"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FSettleModeId\": {\"FNumber\": \"" + ((SaleDataFinance[0]["SettleModeId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FIsIncludedTax\": \"" + (SaleDataFinance[0]["IsIncludedTax"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FExchangeTypeId\": {\"FNumber\": \"" + ((SaleDataFinance[0]["ExchangeTypeId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FOverOrgTransDirect\": \"" + (SaleDataFinance[0]["OverOrgTransDirect"]?.ToString() ?? "false") + "\"");
|
sJson.Append("},");
|
sJson.Append("\"FSaleOrderEntry\": [");
|
#endregion
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "表头JSON处理完");
|
//拆明细
|
DynamicObjectCollection SaleData = srcData["SaleOrderEntry"] as DynamicObjectCollection;//订单明细
|
string sqldtl = $@"/*dialect*/SELECT B.FSEQ
|
FROM dbo.T_SAL_ORDER A(NOLOCK)
|
JOIN dbo.T_SAL_ORDERENTRY B(NOLOCK) ON B.FID = A.FID
|
WHERE A.FBILLNO='{billno}' AND B.FQitao='{data.Rows[i]["FQitao"]}'";
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "表体拼接sql执行语句:" + sqldtl);
|
DataTable datadtl = DBServiceHelper.ExecuteDataSet(this.Context, sqldtl).Tables[0];
|
for (int j = 0; j < datadtl.Rows.Count; j++)
|
{
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "表体循环开始");
|
int fseq = int.Parse(datadtl.Rows[j]["FSEQ"].ToString());
|
sJson.Append("{");
|
sJson.Append("\"FRowType\": \"" + (SaleData[fseq - 1]["RowType"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FMapId\": {\"FName\": \"" + ((SaleData[fseq - 1]["MapId"] as DynamicObject)?["Name"].ToString() ?? "") + "\"},");
|
//sJson.Append("\"FSUBMATERIALNUMBER\": {\"FName\": \"" + ((SaleData[fseq - 1]["SUBMATERIALNUMBER"] as DynamicObject)?["Name"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FSUBMATERIALNUMBER\": {\"FNUMBER\": \"" + ((SaleData[fseq - 1]["SUBMATERIALNUMBER"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
//sJson.Append("\"FMaterialId\": {\"FName\": \"" + ((SaleData[fseq - 1]["MaterialId"] as DynamicObject)?["Name"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FMaterialId\": {\"FNUMBER\": \"" + ((SaleData[fseq - 1]["MaterialId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FUnitID\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["UnitID"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
//sJson.Append("\"FPrice\": " + (SaleData[fseq - 1]["Price"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_zzzz_Decimal4\": " + (SaleData[fseq - 1]["F_zzzz_Decimal4"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FIsFree\": \"" + (SaleData[fseq - 1]["IsFree"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FEntryTaxRate\": " + (SaleData[fseq - 1]["TaxRate"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FDeliveryDate\": \"" + (SaleData[fseq - 1]["DeliveryDate"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FStockOrgId\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["StockOrgId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FSettleOrgIds\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["SettleOrgId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FSupplyOrgId\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["SupplyOrgId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FOwnerTypeId\": \"" + (SaleData[fseq - 1]["OwnerTypeId"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FOwnerId\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["OwnerId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FReserveType\": \"" + (SaleData[fseq - 1]["ReserveType"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Text9\": \" " + (SaleData[fseq - 1]["F_zzzz_Text9"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FPriceBaseQty\": " + (SaleData[fseq - 1]["PriceBaseQty"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FStockUnitID\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["StockUnitID"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FStockQty\": " + (SaleData[fseq - 1]["StockQty"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FStockBaseQty\": " + (SaleData[fseq - 1]["StockBaseQty"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_zzzz_DDBZ\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["F_zzzz_DDBZ"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FOUTLMTUNIT\": \"" + (SaleData[fseq - 1]["OUTLMTUNIT"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FOutLmtUnitID\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["OutLmtUnitID"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FISMRP\": \"" + (SaleData[fseq - 1]["FISMRP"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FLOCKSTOCK\": \"" + (SaleData[fseq - 1]["LOCKSTOCK"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"F_zzzz_CheckBox\": \"" + (SaleData[fseq - 1]["F_zzzz_CheckBox"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FPushPrdPlan\": \"" + (SaleData[fseq - 1]["FPushPrdPlan"]?.ToString() ?? "false") + "\",");
|
//sJson.Append("\"F_zzzz_CheckBox1\": \"" + (SaleData[fseq - 1]["F_zzzz_CheckBox1"]?.ToString() ?? "false") + "\",");
|
//sJson.Append("\"F_zzzz_Combo7\": \"" + (SaleData[fseq - 1]["F_zzzz_Combo7"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_BKD\": " + (SaleData[fseq - 1]["F_zzzz_BKD"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_zzzz_BGD\": " + (SaleData[fseq - 1]["F_zzzz_BGD"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_zzzz_MLKD\": " + (SaleData[fseq - 1]["F_zzzz_MLKD"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_zzzz_CQFS\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["F_zzzz_CQFS"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"F_zzzz_DDSL\": " + (SaleData[fseq - 1]["F_zzzz_DDSL"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_ZZZZ_OEM\": \"" + (SaleData[fseq - 1]["F_ZZZZ_OEM"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_ZZZZ_QIAO\": \"" + (SaleData[fseq - 1]["F_ZZZZ_QIAO"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_YQN_DYXH\": \"" + (SaleData[fseq - 1]["F_YQN_DYXH"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_YQN_GYS\": \"" + (SaleData[fseq - 1]["F_YQN_GYS"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_YQN_CGY1\": \"" + (SaleData[fseq - 1]["F_YQN_CGY1"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Text\": \"" + (SaleData[fseq - 1]["F_zzzz_Text"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Assistant2\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["F_zzzz_Assistant2"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"F_zzzz_Decimal7\": " + (SaleData[fseq - 1]["F_zzzz_Decimal7"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_zzzz_Decimal8\": " + (SaleData[fseq - 1]["F_zzzz_Decimal8"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FSpecialOffer\": \"" + (SaleData[fseq - 1]["SpecialOffer"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FIsClose\": \"" + (SaleData[fseq - 1]["FIsClose"]?.ToString() ?? "A") + "\",");
|
sJson.Append("\"FMESScheduling\": \"" + (SaleData[fseq - 1]["FMESScheduling"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FIsUnsalablePrd\": \"" + (SaleData[fseq - 1]["IsUnsalablePrd"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"FPlanProdDate\": \"" + (SaleData[fseq - 1]["PlanProdDate"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FISREFRESHLOT\": \"" + (SaleData[fseq - 1]["FISREFRESHLOT"]?.ToString() ?? "false") + "\",");
|
sJson.Append("\"F_zzzz_Assistant3\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["F_zzzz_Assistant3"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"F_zzzz_Assistant4\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["F_zzzz_Assistant4"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"F_zzzz_Assistant6\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["F_zzzz_Assistant6"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"F_zzzz_Assistant7\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["F_zzzz_Assistant7"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"F_zzzz_Assistant8\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["F_zzzz_Assistant8"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"F_zzzz_Assistant9\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["F_zzzz_Assistant9"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"F_zzzz_Assistant1\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["F_zzzz_Assistant1"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"F_zzzz_Decimal\": " + (SaleData[fseq - 1]["F_zzzz_Decimal"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_zzzz_Decimal1\": " + (SaleData[fseq - 1]["F_zzzz_Decimal1"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_zzzz_Decimal5\": " + (SaleData[fseq - 1]["F_zzzz_Decimal5"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"F_XSDD_PGBZ\": \"" + (SaleData[fseq - 1]["F_XSDD_PGBZ"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_XSDD_PGSJ\": \"" + (SaleData[fseq - 1]["F_XSDD_PGSJ"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Text1\": \"" + (SaleData[fseq - 1]["F_zzzz_Text1"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_WBBZ1\": \"" + (SaleData[fseq - 1]["F_zzzz_WBBZ1"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FSaleQty\": " + (SaleData[fseq - 1]["FSaleQty"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FTotalAmount\": " + (SaleData[fseq - 1]["FTotalAmount"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FLossParam\": " + (SaleData[fseq - 1]["LossParam"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FEntryNote\": \"" + (SaleData[fseq - 1]["Note"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_BZ_TIME\": \"" + (SaleData[fseq - 1]["F_BZ_TIME"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_CUT_TIME\": \"" + (SaleData[fseq - 1]["F_CUT_TIME"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_loss_backup\": " + (SaleData[fseq - 1]["F_loss_backup"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FSOStockId\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["SOStockId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
//sJson.Append("\"FQitao\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["FQitao"] as DynamicObject)?["FNumber"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FQty\": " + (SaleData[fseq - 1]["Qty"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FLot\": {\"FNumber\": \"" + ((SaleData[fseq - 1]["Lot"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
sJson.Append("\"FTaxPrice\": " + (SaleData[fseq - 1]["TaxPrice"]?.ToString() ?? "0") + ",");
|
sJson.Append("\"FLotEmptyDate\": \"" + (SaleData[fseq - 1]["FLotEmptyDate"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FSaleOutLot\": \"" + (SaleData[fseq - 1]["FSaleOutLot"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Text3\": \"" + (SaleData[fseq - 1]["F_zzzz_Text3"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Text4\": \"" + (SaleData[fseq - 1]["F_zzzz_Text4"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Text5\": \"" + (SaleData[fseq - 1]["F_zzzz_Text5"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Text10\": \"" + (SaleData[fseq - 1]["F_zzzz_Text10"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Text11\": \"" + (SaleData[fseq - 1]["F_zzzz_Text11"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"F_zzzz_Integer\": \"" + (SaleData[fseq - 1]["F_zzzz_Integer"]?.ToString() ?? "0") + "\",");
|
sJson.Append("\"FParentDateTime\": \"" + (SaleData[fseq - 1]["FParentDateTime"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FChildrenDatetime\": \"" + (SaleData[fseq - 1]["FChildrenDatetime"]?.ToString() ?? "") + "\",");
|
sJson.Append("\"FLotTxt\": \"" + (SaleData[fseq - 1]["FLotTxt"]?.ToString() ?? "0") + "\"");
|
//sJson.Append("\"FLotTxt\": \"" + (SaleData[fseq - 1]["FLotTxt"]?.ToString() ?? "0") + "\",");
|
//报错未查出原因,暂拿掉交货明细表体20210302
|
//DynamicObjectCollection SaleDataPlan = SaleData[fseq - 1]["OrderEntryPlan"] as DynamicObjectCollection;
|
//sJson.Append("\"FOrderEntryPlan\": [{");
|
//sJson.Append("\"FDetailLocId\": {\"FNumber\": \"" + ((SaleDataPlan[0]["DetailLocId"] as DynamicObject)?["Number"].ToString() ?? "") + "\"},");
|
//sJson.Append("\"FDetailLocAddress\": \"" + (SaleDataPlan[0]["DetailLocAddress"]?.ToString() ?? "") + "\",");
|
//sJson.Append("\"FPlanDate\": \"" + (SaleDataPlan[0]["PlanDate"]?.ToString() ?? "") + "\",");
|
//sJson.Append("\"FTransportLeadTime\": " + (SaleDataPlan[0]["TransportLeadTime"]?.ToString() ?? "") + ",");
|
//sJson.Append("\"FPlanQty\": " + (SaleDataPlan[0]["PlanQty"]?.ToString() ?? "0") + "}]");
|
sJson.Append("}");
|
|
if (j != datadtl.Rows.Count - 1)
|
{
|
sJson.Append(",");
|
}
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "表体循环结束");
|
}
|
sJson.Append("]");
|
//sJson.Append("\"FSaleOrderPlan\": [");
|
//sJson.Append("{");
|
//sJson.Append("\"FNeedRecAdvance\": " + SaleData[fseq - 1]["RowType"].ToString() + ",");
|
//sJson.Append("\"FRecAdvanceRate\": " + SaleData[fseq - 1]["RowType"].ToString() + ",");
|
//sJson.Append("\"FRecAdvanceAmount\": " + SaleData[fseq - 1]["RowType"].ToString() + ",");
|
//sJson.Append("\"FIsOutStockByRecamount\": " + SaleData[fseq - 1]["RowType"].ToString() + "");
|
//sJson.Append("}");
|
//sJson.Append("]");
|
sJson.Append("}");
|
sJson.Append("}");
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "表体JSON处理结束,单据JSON:" + sJson.ToString());
|
JObject aa = JObject.Parse(JObject.Parse(sJson.ToString())["Model"].ToString());
|
savejsonlist += aa.ToString() + ",";
|
#region 第一版
|
////暂存处理
|
//string DraftResult = client.Draft("SAL_SaleOrder", sJson.ToString());
|
//WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "表体JSON处理结束,暂存结果:" + DraftResult);
|
//JObject DraftResultObj = JObject.Parse(DraftResult);
|
//if (DraftResultObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
|
//{
|
// JObject aa = JObject.Parse(JObject.Parse(sJson.ToString())["Model"].ToString());
|
// aa["FID"] = DraftResultObj["Result"]["Id"].ToString();
|
// savejsonlist += aa.ToString() + ",";
|
// idlist += DraftResultObj["Result"]["Id"].ToString() + ",";
|
// //LogHelper.Info("订单审核拆单json:"+ aa.ToString());
|
//}
|
//else//暂存失败则删除当前单据拆出来的所有暂存单据,并且跳出当前拆单单据,进行下一个拆单处理
|
//{
|
// idlist = idlist.Substring(0, idlist.Length - 1);
|
// string deletemessage = client.Delete("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":[],\"Ids\":\"" + idlist + "\",\"NetworkCtrl\":\"\"}");
|
// WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "暂存失败,删除原订单拆单结果:" + deletemessage);
|
// dictionary.Add(billno, DraftResultObj["Result"]["ResponseStatus"]["Errors"].ToString());
|
// curr = true;
|
// break;
|
//}
|
#endregion
|
|
}
|
string successNo = string.Empty;
|
savejsonlist = savejsonlist.Substring(0, savejsonlist.Length - 1);
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量保存JSON:" + "{\"NumberSearch\":\"true\",\"ValidateFlag\":\"true\",\"IsDeleteEntry\":\"true\",\"IsEntryBatchFill\":\"true\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"SubSystemId\":\"\",\"InterationFlags\":\"\",\"Model\":[" + savejsonlist.Replace("\r", "").Replace("\n", "") + "],\"BatchCount\":" + data.Rows.Count.ToString() + "}");
|
string message = client.BatchSave("SAL_SaleOrder", "{\"NumberSearch\":\"true\",\"ValidateFlag\":\"true\",\"IsDeleteEntry\":\"true\",\"IsEntryBatchFill\":\"true\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"SubSystemId\":\"\",\"InterationFlags\":\"\",\"Model\":[" + savejsonlist.Replace("\r", "").Replace("\n", "") + "],\"BatchCount\":" + data.Rows.Count.ToString() + "}");
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量保存结果:" + message);
|
JObject messageObj = JObject.Parse(message);
|
for (int i = 0; i < messageObj["Result"]["ResponseStatus"]["SuccessEntitys"].ToList().Count; i++)
|
{
|
successNo += messageObj["Result"]["ResponseStatus"]["SuccessEntitys"][i]["Id"].ToString() + ",";
|
}
|
if (successNo.Length > 0)
|
{
|
successNo = successNo.Substring(0, successNo.Length - 1);
|
}
|
if (messageObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
|
{
|
string UnAuditResult = client.UnAudit("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":['" + billno + "'],\"Ids\":\"\",\"InterationFlags\":\"\",\"NetworkCtrl\":\"\"}");
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "反审核结果:" + UnAuditResult);
|
JObject UnAuditResultObj = JObject.Parse(UnAuditResult);
|
if (UnAuditResultObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
|
{
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "删除原单开始时间:" + DateTime.Now.ToString());
|
string DeleteResult = client.Delete("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":['" + billno + "'],\"Ids\":\"\",\"NetworkCtrl\":\"\"}");
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "删除原单结束时间" + DateTime.Now.ToString());
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "删除结果:" + DeleteResult);
|
JObject DeleteResultObj = JObject.Parse(DeleteResult);
|
if (DeleteResultObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
|
{
|
sql = $@"/*dialect*/UPDATE A
|
SET A.FIsStatistics=0
|
FROM dbo.T_SAL_ORDER A
|
WHERE A.FID IN ({successNo})";
|
int rows = DBServiceHelper.Execute(this.Context, sql);
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "更新是否统计结果:" + rows);
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量提交开始时间" + DateTime.Now.ToString());
|
string mes = client.Submit("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":[],\"Ids\":\"" + successNo + "\",\"SelectedPostId\":0,\"NetworkCtrl\":\"\"}");
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量提交结束时间" + DateTime.Now.ToString());
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量提交结果:" + mes);
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量审核开始时间" + DateTime.Now.ToString());
|
string mess = client.Audit("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":[],\"Ids\":\"" + successNo + "\",\"InterationFlags\":\"\",\"NetworkCtrl\":\"\"}");
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量审核结束时间" + DateTime.Now.ToString());
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量审核结果:" + mess);
|
|
|
|
//dictionary.Add(billno, "拆单成功!");
|
}
|
else
|
{
|
if (successNo.Length > 0)
|
{
|
string deletestr = client.Delete("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":[],\"Ids\":\"" + successNo + "\",\"NetworkCtrl\":\"\"}");
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "原单删除失败--拆单成功的单据删除结果:" + deletestr);
|
dictionary.Add(billno, "拆单失败,详细原因:原单删除失败!");
|
}
|
|
}
|
}
|
else
|
{
|
if (successNo.Length > 0)
|
{
|
string unaduitstr = client.Delete("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":[],\"Ids\":\"" + successNo + "\",\"NetworkCtrl\":\"\"}");
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "原单反审核失败--拆单成功的单据删除结果:" + unaduitstr);
|
dictionary.Add(billno, "拆单失败,详细原因:原单反审核失败!");
|
}
|
|
}
|
}
|
else
|
{
|
if (successNo.Length > 0)
|
{
|
string spiltstr = client.Delete("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":[],\"Ids\":\"" + successNo + "\",\"NetworkCtrl\":\"\"}");
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "原单拆单失败--拆单成功的单据删除结果:" + spiltstr);
|
dictionary.Add(billno, "拆单失败,详细原因:原单拆单失败!");
|
}
|
|
}
|
|
#region 第一版
|
//if (curr)
|
//{
|
// string UnAuditResult = client.UnAudit("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":['" + billno + "'],\"Ids\":\"\",\"InterationFlags\":\"\",\"NetworkCtrl\":\"\"}");
|
// WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "拆单暂存失败,进行原单反审核:" + UnAuditResult);
|
//}
|
//else
|
//{
|
// savejsonlist = savejsonlist.Substring(0, savejsonlist.Length - 1);
|
// idlist = idlist.Substring(0, idlist.Length - 1);
|
// WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "JSON:" + savejsonlist);
|
// //拆单暂存完后删除原单据,在对暂存单据进行保存
|
// string UnAuditResult = client.UnAudit("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":['" + billno + "'],\"Ids\":\"\",\"InterationFlags\":\"\",\"NetworkCtrl\":\"\"}");
|
// WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "反审核结果:" + UnAuditResult);
|
// JObject UnAuditResultObj = JObject.Parse(UnAuditResult);
|
// if (UnAuditResultObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
|
// {
|
// string DeleteResult = client.Delete("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":['" + billno + "'],\"Ids\":\"\",\"NetworkCtrl\":\"\"}");
|
// WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "删除结果:" + DeleteResult);
|
// JObject DeleteResultObj = JObject.Parse(DeleteResult);
|
// if (DeleteResultObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
|
// {
|
// string message = client.BatchSave("SAL_SaleOrder", "{\"NumberSearch\":\"true\",\"ValidateFlag\":\"true\",\"IsDeleteEntry\":\"true\",\"IsEntryBatchFill\":\"true\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"SubSystemId\":\"\",\"InterationFlags\":\"\",\"Model\":[" + savejsonlist.Replace("\r", "").Replace("\n", "") + "],\"BatchCount\":" + data.Rows.Count.ToString() + "}");
|
// WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量保存结果:" + message);
|
// JObject messageObj = JObject.Parse(message);
|
// if (messageObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
|
// {
|
// string str = $@"/*dialect*/UPDATE A
|
// SET A.FLOT=A.FLotTxt,A.FLOT_TEXT=ISNULL(C.FNAME,'')
|
// FROM dbo.T_SAL_ORDERENTRY A(NOLOCK)
|
// JOIN dbo.T_SAL_ORDER B(NOLOCK) ON B.FID = A.FID
|
// JOIN T_BD_LOTMASTER_L C(NOLOCK) ON C.FLOTID=A.FLotTxt
|
// WHERE B.FBILLNO LIKE '%{billno}%'";
|
// DBServiceHelper.Execute(this.Context, str);
|
// string mes = client.Submit("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":[],\"Ids\":\"" + idlist + "\",\"SelectedPostId\":0,\"NetworkCtrl\":\"\"}");
|
// WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量提交结果:" + mes);
|
// string mess = client.Audit("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":[],\"Ids\":\"" + idlist + "\",\"InterationFlags\":\"\",\"NetworkCtrl\":\"\"}");
|
// WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "批量审核结果:" + mess);
|
// //dictionary.Add(billno, messageObj["Result"]["ResponseStatus"]["SuccessEntitys"].ToString());
|
// }
|
// else
|
// {
|
// dictionary.Add(billno, messageObj["Result"]["ResponseStatus"]["Errors"].ToString());
|
// }
|
|
// }
|
// else
|
// {
|
// client.Delete("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":[],\"Ids\":\"" + idlist + "\",\"NetworkCtrl\":\"\"}");
|
// }
|
// }
|
// else
|
// {
|
// client.Delete("SAL_SaleOrder", "{\"CreateOrgId\":0,\"Numbers\":[],\"Ids\":\"" + idlist + "\",\"NetworkCtrl\":\"\"}");
|
// }
|
//}
|
#endregion
|
|
|
}
|
catch (Exception ex)
|
{
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "异常信息:" + JsonConvert.SerializeObject(ex));
|
throw new Exception(ex.Message);
|
}
|
|
|
}
|
WriteLog.SAL_SaleOrderSplitBill("订单审核拆单:" + billno, "截止时间:" + DateTime.Now.ToString());
|
|
}
|
//对拆单结果进行提示
|
foreach (var item in dictionary)
|
{
|
ResultMessage.dataError(this.OperationResult.OperateResult, item.Key, "拆单信息:" + item.Value);
|
}
|
|
//}
|
//else
|
//{
|
// throw new Exception("金蝶API登录失败!详细原因:1.检查密码是否调整,调整请联系金蝶开发人员。2.请检查网络状况!");
|
//}
|
|
}
|
|
public static class ResultMessage
|
{/// <summary>
|
/// 修改提示信息
|
/// </summary>
|
/// <param name="operateResult"></param>
|
/// <param name="billno"></param>
|
/// <param name="message"></param>
|
public static void dataError(OperateResultCollection operateResult, string billno, string message)
|
{
|
OperateResult operate = operateResult.Where(n => n.Number == billno).First();
|
operate.Message = message;
|
operate.SuccessStatus = false;
|
operate.MessageType = MessageType.Normal;
|
}
|
|
|
}
|
|
|
|
}
|
}
|