fix: 支持档口入库码同日安全替换 (#304)
This commit is contained in:
@@ -131,8 +131,15 @@ func (h *Handler) InnerCodeImport(c *gin.Context) {
|
||||
fail(c, http.StatusInternalServerError, "保存临时上传文件失败;没有导入任何数据。")
|
||||
return
|
||||
}
|
||||
result, err := service.ImportInnerCodeExcel(h.db, tmpPath, fileHeader.Filename, currentUser(c).UserID)
|
||||
options := innerCodeImportOptions(c)
|
||||
result, err := service.ImportInnerCodeExcelWithOptions(
|
||||
h.db, tmpPath, fileHeader.Filename, currentUser(c).UserID, options,
|
||||
)
|
||||
if err != nil {
|
||||
if service.IsInnerCodeSnapshotReplaceBlocked(err) {
|
||||
fail(c, http.StatusConflict, err.Error()+";本次没有删除或导入任何数据。")
|
||||
return
|
||||
}
|
||||
if service.IsInvalidInnerCodeImport(err) {
|
||||
fail(c, http.StatusBadRequest, err.Error()+";请修正文件后重新导入。")
|
||||
return
|
||||
@@ -140,11 +147,22 @@ func (h *Handler) InnerCodeImport(c *gin.Context) {
|
||||
fail(c, http.StatusInternalServerError, "档口入库码写库失败,本次导入已整体回滚,请稍后重试。")
|
||||
return
|
||||
}
|
||||
message := fmt.Sprintf("导入完成:业务日期 %s,读取 %d 行,新增 %d 条,更新 %d 条,恢复 %d 条,同业务键合并 %d 行。",
|
||||
result.BusinessDate, result.TotalRows, result.CreatedCount, result.UpdatedCount, result.RestoredCount, result.MergedRows)
|
||||
replaceSummary := ""
|
||||
if options.ReplaceDeletedUnprocessedSnapshot {
|
||||
replaceSummary = fmt.Sprintf(",替换旧数据 %d 条", result.ReplacedCount)
|
||||
}
|
||||
message := fmt.Sprintf("导入完成:业务日期 %s,读取 %d 行,新增 %d 条,更新 %d 条,恢复 %d 条,同业务键合并 %d 行%s。",
|
||||
result.BusinessDate, result.TotalRows, result.CreatedCount, result.UpdatedCount,
|
||||
result.RestoredCount, result.MergedRows, replaceSummary)
|
||||
h.innerCodeRedirect(c, result.BusinessDate, "", "", 1, innerCodeFeedbackSuccess, message)
|
||||
}
|
||||
|
||||
func innerCodeImportOptions(c *gin.Context) service.InnerCodeImportOptions {
|
||||
return service.InnerCodeImportOptions{
|
||||
ReplaceDeletedUnprocessedSnapshot: c.PostForm("replace_unprocessed_snapshot") == "1",
|
||||
}
|
||||
}
|
||||
|
||||
// InnerCodeDelete 软删除当前页已选记录;不撤销任何顺运宝远端操作。
|
||||
func (h *Handler) InnerCodeDelete(c *gin.Context) {
|
||||
businessDate, status, keyword := c.PostForm("date"), c.PostForm("status"), c.PostForm("q")
|
||||
|
||||
Reference in New Issue
Block a user