修改自动采集数据的修改逻辑
This commit is contained in:
@@ -424,11 +424,13 @@ async function saveSumData() {
|
||||
try {
|
||||
// 分组编辑模式
|
||||
if (editingGroupIds && editingGroupIds.length > 0) {
|
||||
let needCreateNew = false; // 是否需要创建新记录(删除了自动采集记录时)
|
||||
|
||||
// 先获取分组信息,确定需要删除的自动采集记录
|
||||
if (editingGroupData && editingGroupData.length > 0) {
|
||||
const chargeItem = editingGroupData.find(i => i.sum_field_key === 'charge_degree') || editingGroupData[0];
|
||||
|
||||
// 查询该分组下所有字段的ID(用于删除重复的自动采集记录)
|
||||
// 查询该分组下所有自动采集的记录
|
||||
const deleteResponse = await fetch('/api/sum-data/batch-query', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
@@ -444,20 +446,61 @@ async function saveSumData() {
|
||||
});
|
||||
const deleteResult = await deleteResponse.json();
|
||||
|
||||
// 删除所有自动采集的记录(避免重复)
|
||||
// 如果有自动采集记录,删除它们并标记需要创建新记录
|
||||
if (deleteResult.success && deleteResult.data && deleteResult.data.length > 0) {
|
||||
const autoIds = deleteResult.data.map(d => d.id);
|
||||
for (const autoId of autoIds) {
|
||||
await fetch(`/api/sum-data/${autoId}`, { method: 'DELETE' });
|
||||
}
|
||||
console.log(`已删除 ${autoIds.length} 条自动采集记录`);
|
||||
needCreateNew = true;
|
||||
}
|
||||
}
|
||||
|
||||
// 读取动态字段值(这些是手动编辑后的记录)
|
||||
// 读取动态字段值
|
||||
const fieldInputs = document.querySelectorAll('#sum-data-dynamic-fields input[data-field-key]');
|
||||
let successCount = 0;
|
||||
|
||||
if (needCreateNew) {
|
||||
// 自动采集记录已删除,需要创建新的手动记录
|
||||
if (editingGroupData && editingGroupData.length > 0) {
|
||||
const chargeItem = editingGroupData.find(i => i.sum_field_key === 'charge_degree') || editingGroupData[0];
|
||||
|
||||
// 收集所有字段
|
||||
const fieldsData = [];
|
||||
for (const input of fieldInputs) {
|
||||
fieldsData.push({
|
||||
sum_field_key: input.getAttribute('data-field-key'),
|
||||
sum_field_name: input.getAttribute('data-field-name') || input.getAttribute('data-field-key'),
|
||||
sum_value: parseFloat(input.value) || 0
|
||||
});
|
||||
}
|
||||
|
||||
// 批量新增手动记录
|
||||
const response = await fetch('/api/sum-data/batch-add', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
report_date: chargeItem.report_date,
|
||||
config_id: chargeItem.config_id,
|
||||
config_name: chargeItem.config_name,
|
||||
split_type: chargeItem.split_type,
|
||||
split_value: chargeItem.split_value,
|
||||
split_name: chargeItem.split_name,
|
||||
total_orders: parseInt(totalOrders) || 0,
|
||||
data_source: 'manual',
|
||||
remark: remark,
|
||||
fields: fieldsData
|
||||
})
|
||||
});
|
||||
const result = await response.json();
|
||||
if (result.success) {
|
||||
successCount = fieldsData.length;
|
||||
}
|
||||
console.log(`新增手动记录结果: ${JSON.stringify(result)}`);
|
||||
}
|
||||
} else {
|
||||
// 原记录是手动的,直接更新
|
||||
for (const input of fieldInputs) {
|
||||
const fieldId = input.getAttribute('data-field-id');
|
||||
const fieldValue = input.value;
|
||||
@@ -478,6 +521,7 @@ async function saveSumData() {
|
||||
console.log(`更新结果: ${JSON.stringify(result)}`);
|
||||
if (result.success) successCount++;
|
||||
}
|
||||
}
|
||||
|
||||
if (successCount > 0) {
|
||||
alert(`更新成功(${successCount} 个字段)`);
|
||||
|
||||
Reference in New Issue
Block a user