{{define "content"}}

备份差异预览

这份备份与当前展示的「{{.DatasetName}}」逐条比对的结果。还没有导入,站内数据一个字节都没动。
{{if .Identical}}
这份备份与当前数据集完全一致:没有新增、没有被删、也没有冲突。
{{end}} {{if .Truncated}}
差异较多,下面每类只列出前 200 条,确切数量看概览表。
{{end}}

概览

实体备份站内 备份新增仅站内有冲突一致
到访 {{num .BackupVisits}} {{num .StoredVisits}} {{num .VisitCounts.Added}} {{num .VisitCounts.Removed}} {{num .VisitCounts.Changed}} {{num .VisitCounts.Same}}
地点 {{num .BackupPlaces}} {{num .StoredPlaces}} {{num .PlaceCounts.Added}} {{num .PlaceCounts.Removed}} {{num .PlaceCounts.Changed}} {{num .PlaceCounts.Same}}
活动类型 {{num .BackupActs}} {{num .StoredActs}} {{num .ActCounts.Added}} {{num .ActCounts.Removed}} {{num .ActCounts.Changed}} {{num .ActCounts.Same}}
对齐按每条记录的 UUID 做:rond 每次导出都会重排记录编号(同样的 822 条到访,两次导出的编号 100% 不同,UUID 却逐条一模一样), 所以只有 UUID 认得出来是同一条;地点没有 UUID,退到「名称 + 坐标」。 站内补录的记录不会出现在真机备份里,一律归到「仅站内有」。

到访

备份里多出来的({{num .VisitCounts.Added}}) —— 目前站内没有这些记录
{{if .VisitAdded}}
{{range .VisitAdded}} {{end}}
到达离开地点活动备注
{{dtt .Arrival}} {{dtt .Departure}} {{if .Place}}{{.Place}}{{else}}—{{end}} {{if .Activity}}{{.Activity}}{{else}}—{{end}} {{if .Remark}}{{.Remark}}{{else}}—{{end}}
{{else}}
没有
{{end}}
只在站内有({{num .VisitCounts.Removed}}) —— 备份里找不到;可能是你在这里补录的,也可能是实机上删掉的。 默认一条都不删;确实想清掉的,勾上左列的「合并时删除」。
{{if .VisitGone}}
{{range .VisitGone}} {{end}}
到达离开地点活动备注来源合并时删除
{{dtt .Arrival}} {{dtt .Departure}} {{if .Place}}{{.Place}}{{else}}—{{end}} {{if .Activity}}{{.Activity}}{{else}}—{{end}} {{if .Remark}}{{.Remark}}{{else}}—{{end}} {{if .UserAdded}}站内补录{{else}}备份里已无{{end}}
{{else}}
没有
{{end}}
两边都有但不一样({{num .VisitCounts.Changed}}) —— 左边是站内当前的值,右边是备份里的值
{{if .VisitClash}}
{{range .VisitClash}} {{end}}
到达地点活动差异合并时
{{dtt .Arrival}} {{if .Place}}{{.Place}}{{else}}—{{end}} {{if .Activity}}{{.Activity}}{{else}}—{{end}} {{range .Fields}}
{{.Label}} {{if .From}}{{.From}}{{else}}(空){{end}} → {{if .To}}{{.To}}{{else}}(空){{end}}
{{end}}
{{else}}
没有
{{end}}

地点

备份里多出来的({{num .PlaceCounts.Added}})
{{if .PlaceAdded}}
{{range .PlaceAdded}} {{end}}
名称省 / 市分类坐标
{{if .Name}}{{.Name}}{{else}}(未命名){{end}} {{.Province}} {{.City}} {{if .POICategory}}{{.POICategory}}{{else}}—{{end}} {{printf "%.5f" .Lat}}, {{printf "%.5f" .Lon}}
{{else}}
没有
{{end}}
只在站内有({{num .PlaceCounts.Removed}}) —— 名下还有到访的地点删不掉(会连带删掉那些到访),会直接报错让你先处理。
{{if .PlaceGone}}
{{range .PlaceGone}} {{end}}
名称省 / 市到访坐标合并时删除
{{if .Name}}{{.Name}}{{else}}(未命名){{end}} {{.Province}} {{.City}} {{num .VisitCount}} {{printf "%.5f" .Lat}}, {{printf "%.5f" .Lon}} {{if gt .VisitCount 0}} 还有到访,不能删 {{else}} {{end}}
{{else}}
没有
{{end}}
两边都有但地址不一样({{num .PlaceCounts.Changed}})
{{if .PlaceClash}}
{{range .PlaceClash}} {{end}}
名称差异合并时
{{if .DB.Name}}{{.DB.Name}}{{else}}(未命名){{end}} {{range .Fields}}
{{.Label}} {{if .From}}{{.From}}{{else}}(空){{end}} → {{if .To}}{{.To}}{{else}}(空){{end}}
{{end}}
{{else}}
没有
{{end}}

活动类型

新增 {{num .ActCounts.Added}} · 仅站内有 {{num .ActCounts.Removed}} · 冲突 {{num .ActCounts.Changed}} · 一致 {{num .ActCounts.Same}}
备份新增
{{range .ActAdded}}
{{.Name}}
{{else}}
没有
{{end}}
仅站内有(勾上=合并时删除)
{{range .ActGone}} {{else}}
没有
{{end}}
名称不同
{{range .ActClash}}
{{range .Fields}}
{{.From}} → {{.To}}
{{end}}
{{else}}
没有
{{end}}

其它实体(只列数量)

实体备份站内
位移{{num .BackupMovements}}{{num .StoredMovements}}
小时天气{{num .BackupWeather}}{{num .StoredWeather}}
原始定位点{{num .BackupRaw}}不单独落库
位移跟着它的起止到访走、天气跟着到访走,所以这两项按到访对齐结果一并处理,不单独做逐条比对。

执行合并

把选中的改动写进当前数据集「{{.DatasetName}}」。整个过程跑在一个事务里,任何一步失败都会整体回滚,数据不会半改。
「仅站内有」的记录默认一条都不删;确实要清掉的,在上面各表里逐条勾「合并时删除」。 名下有到访的地点会被拒绝删除(否则会连带删掉那些到访),先处理到访再来。
合并后再传一次同一份备份,差异应当变成「完全一致」——那说明对齐键(UUID 与坐标)都写进去了。
{{end}}