// 定义字段映射
const FieldKeysMap = {
	"STK_MisDelivery": "FID,FEntity_FEntryID,FBillNo,FStockLocId.FF102029.fname,FMaterialId.fnumber,FBOXNO_LT,FQty,FInventoryQty,FENCHASENUM_LT,FFabricOrderNo_LT,FInventoryQty,FAuxPropId.FF101501.FDATAVALUE,Flot.FNumber,FWorkCenterId.fname,FDate,FEntryNote,FPickingPeople_LT.fname,FSTOCKERID.fname,FWorkDeptId_LT.fname",
	"SP_PickMtrl": "FID,FEntity_FEntryID,FBillNo,FStockLocId.FF102029.fname,FMaterialId.fnumber,FBOXNO_LT,FActualQty,FInventoryQty,FENCHASENUM_LT,FFabricOrderNo_LT,FInventoryQty,FAuxPropId.FF101501.FDATAVALUE,Flot.FNumber,FWorkCenterId.fname,FEntrtyMemo,FDate,FPickerId.fname,FSTOCKERID.fname,FStockActualQty,FWorkShopId.fname",
	"LT_PRD_PMCWorkBench": "FID,FEntity_FEntryID,FBillNo,FStockLocId.FF102029.fname,FMaterialId.fnumber,FBOXNO_LT,FActualQty,FInventoryQty,FENCHASENUM_LT,FFabricOrderNo_LT,FInventoryQty,FAuxPropId.FF101501.FDATAVALUE,Flot.FNumber,FEWorkCenterId_LT.fname,FEntrtyMemo,FDate,FApplicantId.fname,FSTOCKERID.fname,FStockActualQty,FWorkShopId.fname",
	"PUR_MRB": "FID,FPURMRBENTRY_FEntryID,FBillNo,FStockLocId.FF102029.fname,FMaterialId.fnumber,FBOXNO_LT,FInventoryQty,FENCHASENUM_LT,FInventoryQty,FAuxPropId.FF101501.FDATAVALUE,Flot.FNumber,FDate,FSTOCKERID.fname,FStockId.FNumber,FRMREALQTY,FFabricOrderNo,FPURCHASERID.fname"
};

export function getSearchParam(condition) {
	let FilterString = [{ //其他出库
			"Left": "(",
			"FieldName": "FDocumentStatus",
			"Compare": "105",
			"Value": "A",
			"Right": "",
			"Logic": 1
		},
		// {//审核中
		// 	"Left": "",
		// 	"FieldName": "FDocumentStatus",
		// 	"Compare": "105",
		// 	"Value": "B",
		// 	"Right": "",
		// 	"Logic": 1
		// },
		{
			"Left": "",
			"FieldName": "FDocumentStatus",
			"Compare": "105",
			"Value": "D",
			"Right": ")",
			"Logic": 0
		}, {
			"Left": "",
			"FieldName": "FStockOrgId.FNumber",
			"Compare": "67",
			"Value": condition.FStockOrgId,
			"Right": "",
			"Logic": 0
		},
		{
			"FieldName": "FBillNo",
			"Compare": "17",
			"Value": condition.billNo,
			"Left": "",
			"Right": "",
			"Logic": 0
		},
		{
			"Left": "",
			"FieldName": "FStockId.FName",
			"Compare": "17",
			"Value": "面料",
			"Right": "",
			"Logic": 0
		},
		{
			"FieldName": "FDate",
			"Compare": "39",
			"Value": condition.range[0],
			"Left": "(",
			"Right": "",
			"Logic": "0"
		},
		{
			"FieldName": "FDate",
			"Compare": "16",
			"Value": condition.range[1],
			"Left": "",
			"Right": ")",
			"Logic": "0"
		}
	]
	let FieldKeys =
		"FID,FWorkCenterId.fname,FPickingPeople_LT.fname,FSTOCKERID.fname,FBillNo,FDate,FNote,FStockOrgId"
	console.log(condition.FBillType)
	if (condition.FBillType != null) { //领料
		FilterString.push({
			"Left": "",
			"FieldName": "FBillType",
			"Compare": "105",
			"Value": condition.FBillType,
			"Right": "",
			"Logic": 0
		});
		console.log('aaaa')
		FieldKeys =
			"FID,FWorkCenterId_LT.fname,FApplicantId.fname,FSTOCKERID.fname,FBillNo,FDate,FDescription,FStockOrgId"
	}
	if (condition.FormId == "STK_MisDelivery") { //其他出库
		FilterString.push({
			"Left": "",
			"FieldName": "FStockDirect",
			"Compare": "29",
			"Value": "GENERAL",
			"Right": "",
			"Logic": 0
		});
		FieldKeys =
			"FID,FWorkCenterId.fname,FPickingPeople_LT.fname,FSTOCKERID.fname,FBillNo,FDate,FNote,FStockOrgId"
	}
	if (condition.FormId == "SP_PickMtrl") { //简单生产领料单
		FieldKeys =
			"FID,FWorkCenterId.fname,FPickerId.fname,FSTOCKERID.fname,FBillNo,FDate,FDescription,FStockOrgId"
	}
	if (condition.FormId == "PUR_MRB") { //采购退料单
		FieldKeys =
			"FID,FSupplierID.fname,FPURCHASERID.fname,FPURCHASEDEPTID.fname,FSTOCKERID.fname,FBillNo,FDate,FStockOrgId"
	}
	console.log(FieldKeys)

	return {
		"parameters": [{
			"FormId": condition.FormId,
			"FieldKeys": FieldKeys,
			"FilterString": FilterString
		}]
	}
}
export function getBillDetailListParam(condition) {
	console.log(condition)
	// let FieldKeys = ""; // 在外部定义
	// if (condition.FormId == "STK_MisDelivery") { //其他出库
	// 	FieldKeys =
	// 		"FID,FEntity_FEntryID,FBillNo,FStockLocId.FF102029.fname,FMaterialId.fnumber,FBOXNO_LT,FQty,FInventoryQty,FENCHASENUM_LT,FFabricOrderNo_LT,FInventoryQty,FAuxPropId.FF101501.FDATAVALUE,Flot.FNumber,FWorkCenterId.fname,FDate,FEntryNote,FPickingPeople_LT.fname,FSTOCKERID.fname,FWorkDeptId_LT.fname"
	// }
	// if (condition.FormId == "SP_PickMtrl") { //简单生产领料单
	// 	FieldKeys =
	// 		"FID,FEntity_FEntryID,FBillNo,FStockLocId.FF102029.fname,FMaterialId.fnumber,FBOXNO_LT,FActualQty,FInventoryQty,FENCHASENUM_LT,FFabricOrderNo_LT,FInventoryQty,FAuxPropId.FF101501.FDATAVALUE,Flot.FNumber,FWorkCenterId.fname,FEntrtyMemo,FDate,FPickerId.fname,FSTOCKERID.fname,FStockActualQty,FWorkShopId.fname"
	// }
	// if (condition.FormId == "LT_PRD_PMCWorkBench") { //生产领料料管平台
	// 	FieldKeys =
	// 		"FID,FEntity_FEntryID,FBillNo,FStockLocId.FF102029.fname,FMaterialId.fnumber,FBOXNO_LT,FActualQty,FInventoryQty,FENCHASENUM_LT,FFabricOrderNo_LT,FInventoryQty,FAuxPropId.FF101501.FDATAVALUE,Flot.FNumber,FEWorkCenterId_LT.fname,FEntrtyMemo,FDate,FApplicantId.fname,FSTOCKERID.fname,FStockActualQty,FWorkShopId.fname"
	// }
	//"FID,FEntity_FEntryID,FBillNo,FStockLocId.FF102029.fname,FMaterialId.fnumber,FBOXNO_LT,FActualQty,FInventoryQty,FENCHASENUM_LT,FFabricOrderNo_LT,FInventoryQty,FAuxPropId.FF101501.FDATAVALUE,Flot.FNumber,FEWorkCenterId_LT.fname,FEntrtyMemo,FDate,FApplicantId.fname,FSTOCKERID.fname,FStockActualQty,FWorkShopId.fname"
	return {
		"parameters": [{
			"FormId": condition.FormId,
			"FieldKeys": FieldKeysMap[condition.FormId],
			"FilterString": [{
				"Left": "",
				"FieldName": "FID",
				"Compare": "338",
				"Value": condition.selectedFID,
				"Right": "",
				"Logic": 0
			}],
		}]
	}

}
// 定义一个函数来创建库存查询请求数据
export function createInventoryQueryRequest(value) {
	return {
		parameters: [{
			FormId: "STK_Inventory",
			FieldKeys: "fID",
			FilterString: [{
					Left: "",
					FieldName: "FStockLocId.FF102029.FName",
					Compare: "67",
					Value: value,
					Right: "",
					Logic: 0
				},
				{
					Left: "",
					FieldName: "FBaseQty",
					Compare: "21",
					Value: "0",
					Right: "",
					Logic: 0
				}
			]
		}]
	};
}

function getActualQtyKey(FormId) {
	const keyMap = {
		'LT_PRD_PMCWorkBench': 'FActualQty',
		'SP_PickMtrl': 'FActualQty',
		'STK_MisDelivery': 'FQty',
		'PUR_MRB': 'FRMREALQTY'
	};
	return keyMap[FormId] || 'FQty';
}

function createEntityObject(item, actualQtyKey) {
	return {
		"FEntryID": item["FEntity.FEntryID"],
		"FInventoryQty": item["FInventoryQty"],
		"FAuxPropId": {
			"FAUXPROPID__FF101501": {
				"FNumber": item["FAuxPropId.FF101501.FDATAVALUE"]
			}
		},
		"FStockLocId": {
			"FSTOCKLOCID__FF102029": {
				"Fname": item["FStockLocId.FF102029.fname"]
			}
		},
		"FLot": {
			"FNumber": item["Flot.FNumber"]
		},
		"FENCHASENUM_LT": item["FENCHASENUM.LT"],
		[actualQtyKey]: item[actualQtyKey] // 使用动态键名
	};
}

export function getSaveParam(FormId, data, indexList) {
	const targetFID = data;
	const actualQtyKey = getActualQtyKey(FormId);

	const FEntityObjects = indexList
		.filter(item => item.FID === targetFID)
		.map(item => createEntityObject(item, actualQtyKey));

	const needUpdateFields = [
		"FInventoryQty",
		"FAuxPropId",
		"FStockLocId",
		"FIsScanFabric",
		"FLot",
		"FENCHASENUM_LT",
		actualQtyKey // 直接添加到数组中
	];

	return {
		"parameters": [
			FormId,
			{
				"NeedUpDateFields": needUpdateFields,
				"NeedReturnFields": ["FID"],
				"IsDeleteEntry": "true",
				"SubSystemId": "",
				"IsVerifyBaseDataField": "false",
				"IsEntryBatchFill": "true",
				"ValidateFlag": "true",
				"NumberSearch": "true",
				"IsAutoAdjustField": "false",
				"InterationFlags": "",
				"IgnoreInterationFlag": "",
				"IsControlPrecision": "false",
				"ValidateRepeatJson": "false",
				"Model": {
					"FID": targetFID,
					"FIsScanFabric": true,
					"FEntity": FEntityObjects
				}
			}
		]
	};
}
export function getSubmitParam(FormId, data) {
	const params = {
		"parameters": [
			FormId,
			{
				"CreateOrgId": 0,
				"Numbers": [],
				"Ids": data.toString(),
				"SelectedPostId": 0,
				"UseOrgId": 0,
				"NetworkCtrl": "",
				"IgnoreInterationFlag": ""
			}
		]
	};
	console.log(params);
	return params;
}
export function getAuditParam(FormId, data) {
	const params = {
		"parameters": [
			FormId,
			{
				"CreateOrgId": 0,
				"Numbers": [],
				"Ids": data.toString(),
				"InterationFlags": "",
				"UseOrgId": 0,
				"NetworkCtrl": "",
				"IsVerifyProcInst": "true",
				"IgnoreInterationFlag": "",
				"UseBatControlTimes": "false"
			}
		]
	}
	console.log(params)
	return params
}