a
This commit is contained in:
3063
14.宝锐/GZ.LJY000.Biori/UHIK_BAR_BarCodeScan/BarCodeScanEditEx.cs
Normal file
3063
14.宝锐/GZ.LJY000.Biori/UHIK_BAR_BarCodeScan/BarCodeScanEditEx.cs
Normal file
File diff suppressed because it is too large
Load Diff
168
14.宝锐/GZ.LJY000.Biori/UHIK_BAR_BarCodeScan/BarCodeScanEditEx.py
Normal file
168
14.宝锐/GZ.LJY000.Biori/UHIK_BAR_BarCodeScan/BarCodeScanEditEx.py
Normal file
@@ -0,0 +1,168 @@
|
||||
import clr
|
||||
clr.AddReference("System")
|
||||
clr.AddReference("System.Xml")
|
||||
clr.AddReference("Kingdee.BOS")
|
||||
clr.AddReference("Kingdee.BOS.Core")
|
||||
clr.AddReference("Kingdee.BOS.DataEntity")
|
||||
clr.AddReference("Kingdee.BOS.App")
|
||||
clr.AddReference("Kingdee.BOS.Contracts")
|
||||
clr.AddReference("Kingdee.BOS.ServiceHelper")
|
||||
clr.AddReference("Kingdee.K3.BD.BarCode.Business.PlugIn")
|
||||
clr.AddReference("Kingdee.K3.BD.BarCode.ServiceHelper")
|
||||
|
||||
from Kingdee.BOS import *
|
||||
from Kingdee.BOS.Contracts import *
|
||||
from Kingdee.BOS.Core import *
|
||||
from Kingdee.BOS.Core.List import *
|
||||
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
|
||||
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
|
||||
from Kingdee.BOS.Core.Metadata.EntityElement import *
|
||||
from Kingdee.BOS.Core.Bill import *
|
||||
from Kingdee.BOS.Core.Metadata import *
|
||||
from Kingdee.BOS.Orm.DataEntity import *
|
||||
from Kingdee.BOS.Util import *
|
||||
from Kingdee.BOS.Core.Util import *
|
||||
from System import *
|
||||
from System.Xml import *
|
||||
from System.ComponentModel import *
|
||||
from System.Collections.Generic import *
|
||||
from System.Text import*
|
||||
from Kingdee.BOS.ServiceHelper import *
|
||||
from Kingdee.K3.BD.BarCode.Business.PlugIn import *
|
||||
from Kingdee.K3.BD.BarCode.ServiceHelper import *
|
||||
|
||||
# 条码扫描
|
||||
|
||||
_isFormisFromBillEx = 0
|
||||
_sFormIdEx = ""
|
||||
_billTypeId = ""
|
||||
_billId = ""
|
||||
|
||||
def FirstOrDefault(collection, func):
|
||||
"""仿Linq的FirstOrDefault
|
||||
|
||||
Args:
|
||||
collection (_type_): 数据集
|
||||
func (_type_): lambda公式
|
||||
|
||||
Returns:
|
||||
_type_: 获取数据集第一个或null
|
||||
"""
|
||||
result = filter(func, collection)
|
||||
|
||||
if len(result) == 0: return None
|
||||
|
||||
return result[0]
|
||||
|
||||
def OnInitialize(e):
|
||||
# tbBarCodeScanEx
|
||||
_isFromBillObj = e.Paramter.GetCustomParameter("isFromBill");
|
||||
global _isFormisFromBillEx
|
||||
_isFormisFromBillEx = 0 if _isFromBillObj == None else int(_isFromBillObj)
|
||||
|
||||
if _isFormisFromBillEx == 1:
|
||||
_sFormIdExObj = e.Paramter.GetCustomParameter("SourceFormId")
|
||||
global _sFormIdEx;
|
||||
_sFormIdEx = "" if _sFormIdExObj == None else _sFormIdExObj
|
||||
|
||||
global _billTypeId
|
||||
_billTypeId = e.Paramter.GetCustomParameter("billTypeId");
|
||||
|
||||
global _billId
|
||||
_billId = e.Paramter.GetCustomParameter("SourceId")
|
||||
|
||||
def OnLoad(e):
|
||||
if _isFormisFromBillEx == 1:
|
||||
this.View.Model.SetValue("FSourceBillName", _sFormIdEx);
|
||||
this.View.Model.SetValue("FSourceBillId", _billId);
|
||||
this.View.Model.SetValue("FIsSave","1")
|
||||
|
||||
if _sFormIdEx != None and _sFormIdEx != "":
|
||||
if _sFormIdEx == "PUR_ReceiveBill":
|
||||
this.View.Model.SetValue("FCreatedBillName", "STK_InStock");
|
||||
this.View.Model.SetItemValueByNumber("FCreatedBillType", "RKD01_SYS",0);
|
||||
# this.View.InvokeFieldUpdateService("FCreatedBillType", 0);
|
||||
if _sFormIdEx == "PRD_MO":
|
||||
this.View.Model.SetValue("FCreatedBillName", "PRD_INSTOCK");
|
||||
this.View.Model.SetItemValueByNumber("FCreatedBillType", "SCRKD01_SYS",0);
|
||||
|
||||
# this.View.UpdateView();
|
||||
|
||||
def DataChanged(e):
|
||||
if e.Field.Key.upper() == "FBARCODE":
|
||||
barCodeInfos = e.NewValue.split("_")
|
||||
rowIndex = e.Row
|
||||
# raise Exception(barCodeInfos[0])
|
||||
FSOURCEBILLNAME = this.View.Model.GetValue("FSOURCEBILLNAME")
|
||||
# 源单单据类型
|
||||
sourceBillTypeId = FSOURCEBILLNAME["Id"]
|
||||
# 源单单据单号
|
||||
sourceBillNo = this.View.Model.GetValue("FSOURCEBILLID")
|
||||
if sourceBillNo == None or sourceBillNo == "":
|
||||
# this.View.Model.SetValue("FSOURCEBILLID",barCodeInfos[4])
|
||||
this.View.Model.SetValue("FISMAPTOSOURCEBILL","1")
|
||||
tableNamesql = """/*dialect*/
|
||||
;WITH #查询表头名 AS (
|
||||
SELECT t0.FID,t0_l.FNAME,REPLACE(t1e.FFIELDKEY,'FSeq','') AS 'EntryName'
|
||||
,FKERNELXML.query('//HeadEntity/TableName').value('(TableName)[1]','varchar(max)') as '单据头表名'
|
||||
FROM T_META_OBJECTTYPE t0
|
||||
INNER JOIN T_META_OBJECTTYPE_L t0_l on t0.FID = t0_l.FID AND t0_l.FLOCALEID = 2052
|
||||
INNER JOIN T_BD_BARCODEITEMENTRY t1e on t1e.FBILLFORMID = t0.FID
|
||||
INNER JOIN T_BD_BARCODEITEM t1 on t1.FID = t1e.FID AND t1.FBARCODEFIELDKEY = 'FBILLSEQ'
|
||||
WHERE 1=1
|
||||
AND t0.FID = '{0}'
|
||||
AND FISTEMPLATE = 0
|
||||
AND FDEVTYPE != 2
|
||||
AND FMODELTYPEID = 100
|
||||
)
|
||||
|
||||
SELECT t0.单据头表名 AS 'HeadTableName'
|
||||
,CONCAT(t0.单据头表名,'Entry') EntryTableName
|
||||
,t0.EntryName
|
||||
FROM #查询表头名 t0
|
||||
"""
|
||||
nameSet = DBServiceHelper.ExecuteDynamicObject(this.Context, tableNamesql);
|
||||
|
||||
if nameSet != None and nameSet.Count > 0:
|
||||
sqlL = """/*dialect*/
|
||||
SELECT t0.FID,t0.FBILLNO
|
||||
,t0e.FENTRYID,t0e.FSEQ
|
||||
FROM {1} t0
|
||||
INNER JOIN {2} t0e on t0.FID = t0e.FID
|
||||
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0e.FMATERIALID
|
||||
WHERE 1 = 1 AND t0.FDOCUMENTSTATUS = 'C'
|
||||
AND t0.FBILLNO = '{0}'
|
||||
AND t1.FNUMBER = '{3}'
|
||||
|
||||
""".format(sourceBillNo ,nameSet[0]["HeadTableName"] ,nameSet[0]["EntryTableName"] ,barCodeInfos[0]);
|
||||
|
||||
dataRes = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL);
|
||||
if dataRes != None and dataRes.Count > 0:
|
||||
data = dataRes[0];
|
||||
|
||||
this.View.Model.SetValue("FBillType", data["FBILLTYPEID"], rowIndex)
|
||||
materialEntity = this.View.Model.BillBusinessInfo.GetEntryEntity("FScanDetailEntity")
|
||||
materialRows = this.View.Model.GetEntityDataObject(materialEntity)
|
||||
materialRows[rowIndex]["BillCode"] = data["FBILLNO"];
|
||||
materialRows[rowIndex]["BillSeq"] = data["FSEQ"];
|
||||
|
||||
# if sourceBillTypeId == "PUR_ReceiveBill":
|
||||
# sqlL = """/*dialect*/
|
||||
# SELECT t0.FBILLNO,t0.FBILLTYPEID,t0.FID,t0.FSUPPLIERID,t0.FRECEIVERID
|
||||
# ,t0e.FENTRYID,t0e.FSEQ,t1.FNUMBER,t0e.FMATERIALID,t0e.FUNITID
|
||||
# FROM T_PUR_RECEIVE t0
|
||||
# INNER JOIN T_PUR_RECEIVEENTRY t0e on t0.FID = t0e.FID
|
||||
# INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0e.FMATERIALID
|
||||
# WHERE t1.FDOCUMENTSTATUS = 'C' AND t1.FFORBIDSTATUS = 'A'
|
||||
# AND t0.FBILLNO = '{0}' AND t1.FNUMBER = '{1}'
|
||||
# """.format(sourceBillNo, barCodeInfos[0])
|
||||
|
||||
# dataRes = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL);
|
||||
# if dataRes != None and dataRes.Count > 0:
|
||||
# data = dataRes[0];
|
||||
|
||||
# this.View.Model.SetValue("FBillType", data["FBILLTYPEID"], rowIndex)
|
||||
# materialEntity = this.View.Model.BillBusinessInfo.GetEntryEntity("FScanDetailEntity")
|
||||
# materialRows = this.View.Model.GetEntityDataObject(materialEntity)
|
||||
# materialRows[rowIndex]["BillCode"] = data["FBILLNO"];
|
||||
# materialRows[rowIndex]["BillSeq"] = data["FSEQ"];
|
||||
2369
14.宝锐/GZ.LJY000.Biori/UHIK_BAR_BarCodeScan/BarCodeScanEditRewrite.cs
Normal file
2369
14.宝锐/GZ.LJY000.Biori/UHIK_BAR_BarCodeScan/BarCodeScanEditRewrite.cs
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,13 @@
|
||||
using GZ.LJY000.Biori.UHIK_BAR_BarCodeScan.PushService;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace GZ.LJY000.Biori.PushService.UHIK_BAR_BarCodeScan
|
||||
{
|
||||
public interface IBarCodeScanPushService
|
||||
{
|
||||
void DoPush(PushServiceExplainArgs explainArgs, out long billId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using Kingdee.BOS.Orm.DataEntity;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace GZ.LJY000.Biori.UHIK_BAR_BarCodeScan.PushService
|
||||
{
|
||||
public class PushServiceExplainArgs
|
||||
{
|
||||
public string sourceFormId { get; set; }
|
||||
public string targetFormId { get; set; }
|
||||
|
||||
public bool isSave { get; set; }
|
||||
public bool isAudit { get; set; }
|
||||
public string createdBillTypeId { get; set; }
|
||||
|
||||
public List<DynamicObject> scanRows;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,255 @@
|
||||
using GZ.LJY000.Biori.PushService.UHIK_BAR_BarCodeScan;
|
||||
using Kingdee.BOS;
|
||||
using Kingdee.BOS.App;
|
||||
using Kingdee.BOS.App.Data;
|
||||
using Kingdee.BOS.Contracts;
|
||||
using Kingdee.BOS.Core.Bill;
|
||||
using Kingdee.BOS.Core.Const;
|
||||
using Kingdee.BOS.Core.DynamicForm;
|
||||
using Kingdee.BOS.Core.DynamicForm.Operation;
|
||||
using Kingdee.BOS.Core.List;
|
||||
using Kingdee.BOS.Core.Metadata;
|
||||
using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs;
|
||||
using Kingdee.BOS.Orm;
|
||||
using Kingdee.BOS.Orm.DataEntity;
|
||||
using Kingdee.BOS.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace GZ.LJY000.Biori.UHIK_BAR_BarCodeScan.PushService
|
||||
{
|
||||
public class PushServicel : IBarCodeScanPushService
|
||||
{
|
||||
private Context Context { get; set; }
|
||||
|
||||
public PushServicel(Context context)
|
||||
{
|
||||
this.Context = context;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sourceFormId"></param>
|
||||
/// <param name="targetFormId"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="Exception"></exception>
|
||||
private DynamicObject GetConvertRuleId(string sourceFormId, string targetFormId)
|
||||
{
|
||||
//获取启用中的规则,按照是否默认,创建日期进行排序
|
||||
var crSqlL = $@"/*dialect*/
|
||||
SELECT TOP 1 FID
|
||||
,FKERNELXML.query('//ConvertRule/Policies/DefaultConvertPolicy/SourceEntryKey').value('(SourceEntryKey)[1]','varchar(max)') as 'SourceEntryKey'
|
||||
,FKERNELXML.query('//ConvertRule/Policies/DefaultConvertPolicy/TargetEntryKey').value('(TargetEntryKey)[1]','varchar(max)') as 'TargetEntryKey'
|
||||
FROM T_META_CONVERTRULE t0
|
||||
WHERE 1 = 1
|
||||
AND t0.FSOURCEFORMID = '{sourceFormId}'
|
||||
AND t0.FTARGETFORMID = '{targetFormId}'
|
||||
AND t0.FSTATUS = 1
|
||||
AND t0.FDEVTYPE = 0
|
||||
ORDER BY t0.FISDEFAULT DESC,t0.FMODIFYDATE DESC
|
||||
|
||||
";
|
||||
|
||||
var resData = DBUtils.ExecuteDynamicObject(this.Context, crSqlL);
|
||||
|
||||
if (!(resData != null && resData.Count > 0))
|
||||
throw new Exception($"需要转换源单据({sourceFormId})的目标单({targetFormId})据不存在转换规则!");
|
||||
|
||||
//转换规则
|
||||
return resData.FirstOrDefault();
|
||||
}
|
||||
|
||||
public void DoPush(PushServiceExplainArgs explainArgs, out long billId)
|
||||
{
|
||||
string sourceFormId = explainArgs.sourceFormId;
|
||||
string targetFormId = explainArgs.targetFormId;
|
||||
|
||||
IConvertService service = ServiceHelper.GetService<IConvertService>();
|
||||
|
||||
billId = 0;
|
||||
var resData = GetConvertRuleId(sourceFormId, targetFormId);
|
||||
var convertRuleId = resData["FID"].ToString(); ;
|
||||
|
||||
var ruleMeta = service.GetConvertRule(this.Context, convertRuleId);
|
||||
if (ruleMeta == null)
|
||||
throw new Exception($"需要转换源单据({sourceFormId})的目标单({targetFormId})据不存在转换规则!");
|
||||
|
||||
//获取元数据服务
|
||||
IMetaDataService metadataService = ServiceHelper.GetService<IMetaDataService>();
|
||||
//获取ViewService
|
||||
IViewService viewService = ServiceHelper.GetService<IViewService>();
|
||||
//获取源单元数据
|
||||
FormMetadata sourceMetada = metadataService.Load(this.Context, sourceFormId) as FormMetadata;
|
||||
|
||||
#region 获取数量转换字段
|
||||
var sqlL = $@"/*dialect*/
|
||||
IF EXISTS (SELECT 1 WHERE OBJECT_ID('tempdb..#查询结果') IS NOT NULL)
|
||||
BEGIN
|
||||
DROP TABLE [dbo].[#查询结果]
|
||||
END
|
||||
|
||||
DECLARE @FromId varchar(100),@TargetFromId varchar(100)
|
||||
|
||||
SET @FromId = '{sourceFormId}'
|
||||
SET @TargetFromId = '{targetFormId}'
|
||||
CREATE TABLE #查询结果 (
|
||||
FromId Nvarchar(100)
|
||||
,FromName Nvarchar(100)
|
||||
,HeadTableName Nvarchar(100)
|
||||
,SourceEntryKey Nvarchar(100)
|
||||
,TargetEntryKey Nvarchar(100)
|
||||
,FFIELDKEY Nvarchar(100)
|
||||
,TargetFromId Nvarchar(100)
|
||||
,QtyFieldName Nvarchar(100)
|
||||
,FKERNELXML xml
|
||||
)
|
||||
|
||||
INSERT INTO #查询结果
|
||||
SELECT t0.FID,t0_l.FNAME
|
||||
,t0.FKERNELXML.query('//HeadEntity/TableName').value('(TableName)[1]','varchar(max)') as '单据头表名'
|
||||
,REPLACE(t1e.FFIELDKEY,'FSeq','') AS 'SourceEntryKey'
|
||||
,REPLACE(t2e.FFIELDKEY,'FSeq','') AS 'TargetEntryKey'
|
||||
,t3e.FFIELDKEY
|
||||
,@TargetFromId
|
||||
,''
|
||||
,t0.FKERNELXML
|
||||
FROM T_META_OBJECTTYPE t0
|
||||
INNER JOIN T_META_OBJECTTYPE_L t0_l on t0.FID = t0_l.FID AND t0_l.FLOCALEID = 2052
|
||||
INNER JOIN T_BD_BARCODEITEMENTRY t1e on t1e.FBILLFORMID = t0.FID
|
||||
INNER JOIN T_BD_BARCODEITEM t1 on t1.FID = t1e.FID AND t1.FBARCODEFIELDKEY = 'FBILLSEQ'
|
||||
INNER JOIN T_BD_BARCODEITEMENTRY t2e on t2e.FID = t1.FID AND t2e.FBILLFORMID = @TargetFromId
|
||||
INNER JOIN T_BD_BARCODEITEMENTRY t3e on t3e.FBILLFORMID = t2e.FBILLFORMID
|
||||
INNER JOIN T_BD_BARCODEITEM t3 on t3.FID = t3e.FID AND t3.FBARCODEFIELDKEY = 'FQTY'
|
||||
WHERE 1=1
|
||||
AND t0.FID = @FromId
|
||||
AND FISTEMPLATE = 0
|
||||
AND FDEVTYPE != 2
|
||||
AND FMODELTYPEID = 100
|
||||
|
||||
DECLARE @QtyFieldkey varchar(100)
|
||||
SELECT @QtyFieldkey = FFIELDKEY
|
||||
FROM #查询结果
|
||||
|
||||
EXEC (N'
|
||||
|
||||
UPDATE t2 SET t2.QtyFieldName = t0.FKERNELXML.query(''//QtyField[Key=""'+ @QtyFieldkey + '""]/PropertyName'').value(''(PropertyName)[1]'',''varchar(max)'')
|
||||
FROM T_META_OBJECTTYPE t0
|
||||
INNER JOIN T_BD_BARCODEITEMENTRY t1e on t1e.FBILLFORMID = t0.FID
|
||||
INNER JOIN T_BD_BARCODEITEM t1 on t1.FID = t1e.FID AND t1.FBARCODEFIELDKEY = ''FQTY''
|
||||
INNER JOIN #查询结果 t2 on t2.TargetFromId = t0.FID
|
||||
WHERE 1 = 1
|
||||
AND t0.FISTEMPLATE = 0
|
||||
AND t0.FDEVTYPE != 2
|
||||
AND t0.FMODELTYPEID = 100
|
||||
')
|
||||
|
||||
SELECT* FROM #查询结果
|
||||
";
|
||||
var entryResData = DBUtils.ExecuteDynamicObject(this.Context, sqlL);
|
||||
var entryRes = entryResData[0];
|
||||
|
||||
#endregion
|
||||
|
||||
#region 获取单据的entryId
|
||||
//var scanEntity = this.View.Model.BillBusinessInfo.GetEntryEntity("FScanDetailEntity");
|
||||
//var scanRows = this.View.Model.GetEntityDataObject(scanEntity);
|
||||
var scanRows = explainArgs.scanRows;
|
||||
var unionTableList = scanRows.Select(row => $" SELECT '{row["BillCode"]}' BillNo,{row["BillSeq"].Long2Int()} FSEQ,{row["Qty"]} Qty , {row["StockerId_Id"]} StockerId ").ToList();
|
||||
|
||||
var sql = $@"
|
||||
SELECT *
|
||||
INTO #seqSet
|
||||
FROM (
|
||||
{string.Join(" UNION ALL ", unionTableList)}
|
||||
)tt
|
||||
|
||||
SELECT t0.FBILLNO,'' ID
|
||||
,t0e.FENTRYID ENTRYID,t0e.FSEQ
|
||||
,ss.Qty
|
||||
FROM {entryRes["HeadTableName"].ToString()} t0
|
||||
INNER JOIN {entryRes["HeadTableName"].ToString() + "Entry"} t0e on t0.FID = t0e.FID
|
||||
INNER JOIN #seqSet ss on ss.BillNo = t0.FBILLNO AND ss.FSEQ = t0e.FSEQ
|
||||
WHERE 1 = 1 AND t0.FDOCUMENTSTATUS = 'C'
|
||||
";
|
||||
|
||||
var dbList = DBUtils.ExecuteDynamicObject(this.Context, $"/*dialect*/{sql}");
|
||||
#endregion
|
||||
|
||||
//目标单据类型
|
||||
//var createdBillType = this.View.Model.GetValue("FCreatedBillType") as DynamicObject;
|
||||
//var createdBillTypeId = createdBillType["Id"].ToString();
|
||||
|
||||
if (dbList != null && dbList.Count() > 0)
|
||||
{
|
||||
List<ListSelectedRow> selectedRows = dbList.Select(x => new ListSelectedRow(x["ID"].ToString(), x["ENTRYID"].ToString(), 0, sourceFormId) { EntryEntityKey = resData["SourceEntryKey"].ToString() }).ToList();
|
||||
|
||||
PushArgs pushArgs = new PushArgs(ruleMeta.Rule, selectedRows.ToArray());//下推入口参数
|
||||
|
||||
//目标单据类型
|
||||
pushArgs.TargetBillTypeId = explainArgs.createdBillTypeId;
|
||||
pushArgs.CustomParams = new Dictionary<string, object>();
|
||||
pushArgs.CustomParams.Add("ScanEntry", dbList);
|
||||
OperateOption option = OperateOption.Create();//选项参数
|
||||
|
||||
//不按照整单下推
|
||||
option.SetVariableValue(ConvertConst.SelectByBillId, false);
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
//源单数据转换目标数据
|
||||
ConvertOperationResult convertResult = service.Push(this.Context, pushArgs, option);
|
||||
|
||||
DynamicObject[] destObjs = convertResult.TargetDataEntities.Select(r => r.DataEntity).ToArray();
|
||||
|
||||
FormMetadata destFormMetadata = metadataService.Load(this.Context, targetFormId) as FormMetadata;
|
||||
|
||||
string msg = string.Empty;
|
||||
|
||||
#region 自动保存
|
||||
|
||||
IOperationResult saveResult = null;
|
||||
|
||||
if (explainArgs.isAudit)
|
||||
{
|
||||
saveResult = ServiceHelper.GetService<ISaveService>().SaveAndAudit(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
|
||||
}
|
||||
else if (explainArgs.isSave)
|
||||
{
|
||||
saveResult = ServiceHelper.GetService<ISaveService>().Save(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
|
||||
}
|
||||
else
|
||||
{
|
||||
saveResult = ServiceHelper.GetService<IDraftService>().Draft(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
|
||||
}
|
||||
|
||||
if (!saveResult.IsSuccess)
|
||||
{
|
||||
if (saveResult.ValidationErrors != null && saveResult.ValidationErrors.Count > 0)
|
||||
{
|
||||
var errorInfo = string.Join(";", saveResult.ValidationErrors.Select(x => x.Message));
|
||||
throw new KDBusinessException("", "未知原因导致自动保存失败原因:" + errorInfo);
|
||||
}
|
||||
throw new KDBusinessException("", "未知原因导致自动保存失败原因:" + JsonUtil.SerializeWithOutNull(saveResult));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
object[] pkArray = (from p in destObjs select p[0]).ToArray();
|
||||
billId = pkArray[0].Long2Int();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("数据不存在,请检查");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user