feat: 新增预警与附件模块,优化工位派工功能

1. 新增预警规则、预警消息、业务附件数据库表与CRUD逻辑
2. 为拧紧记录添加审核人、审核时间字段及审核留痕功能
3. 优化产线点位类型与编号描述,更新工位组合下发菜单名称为工艺路线派工
4. 新增上传文件获取原文件名与大小的工具方法
5. 在系统管理菜单新增预警中心与附件中心入口
This commit is contained in:
SunYF
2026-09-14 16:31:08 +08:00
parent 0ab21b1234
commit 5c3b747a20
399 changed files with 147674 additions and 2213 deletions
+28
View File
@@ -75,3 +75,31 @@ func serveUploadFile(w http.ResponseWriter, r *http.Request, dir, name string) {
w.Header().Set("Content-Type", ct)
http.ServeContent(w, r, name, time.Time{}, f)
}
// saveUploadFileFull 同 saveUploadFile,但额外返回原始文件名与字节大小(附件登记用)
func saveUploadFileFull(r *http.Request, field, dir string) (string, string, int64, error) {
sub := time.Now().Format("2006-01-02")
full := filepath.Join(dir, sub)
if err := os.MkdirAll(full, 0o755); err != nil {
return "", "", 0, err
}
file, header, err := r.FormFile(field)
if err != nil {
return "", "", 0, err
}
defer file.Close()
ext := strings.ToLower(filepath.Ext(header.Filename))
if ext == "" {
ext = ".bin"
}
name := time.Now().Format("20060102150405") + "_" + randHex(6) + ext
dst, err := os.Create(filepath.Join(full, name))
if err != nil {
return "", "", 0, err
}
defer dst.Close()
if _, err := io.Copy(dst, file); err != nil {
return "", "", 0, err
}
return filepath.ToSlash(filepath.Join(sub, name)), header.Filename, header.Size, nil
}