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