Browse Source

add:复制任务同时复制标签数据

zoie 1 month ago
parent
commit
9ae6cf6218
2 changed files with 140 additions and 8 deletions
  1. 53 7
      controllers/Task.go
  2. 87 1
      controllers/VerifyTemplate.go

+ 53 - 7
controllers/Task.go

@@ -2625,15 +2625,59 @@ func (c *TaskController) Copy() {
 		T_device_quantity: r.T_device_quantity,
 	}
 	var_.T_report_number, _ = Task.GenerateNextT_report_number(var_.T_device_type)
-	id, is := Task.Add_Task(var_)
+	T_paste_task_id, is := Task.Add_Task(var_)
 	if !is {
 		c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加失败!"}
 		c.ServeJSON()
 		return
 	}
-	NatsServer.Create_Local_Table(T_task_id)
+	NatsServer.Create_Local_Table(T_paste_task_id)
 	Task.Redis_Task_T_report_number_DelK(var_.T_report_number) // 删除redis内的任务编号
 
+	// 复制验证模版数据
+	Map_List := VerifyTemplate.Read_VerifyTemplateMap_List_For_Data(r.T_VerifyTemplate_id, 0, 0)
+	copy_task_Data := VerifyTemplate.Read_VerifyTemplateMapData_List(0, T_task_id, r.T_VerifyTemplate_id, Map_List)
+
+	Data := VerifyTemplate.Read_VerifyTemplateMapData_List(0, T_paste_task_id, r.T_VerifyTemplate_id, Map_List)
+
+	copyDataMap := make(map[string]string)
+	for _, data := range copy_task_Data {
+		copyDataMap[data.T_name] = data.T_value
+	}
+
+	MapDataList := make([]VerifyTemplate.VerifyTemplateMapData, 0)
+	for _, v := range Data {
+		// 已有值则不复制
+		if len(v.T_value) > 0 {
+			continue
+		}
+		if copyDataMap[v.T_name] == "" {
+			continue
+		}
+		val := VerifyTemplate.VerifyTemplateMapData{
+			T_source:               v.T_source,
+			T_task_id:              T_paste_task_id,
+			T_VerifyTemplate_id:    r.T_VerifyTemplate_id,
+			T_VerifyTemplateMap_id: v.T_VerifyTemplateMap_id,
+			T_Required:             v.T_Required,
+			T_Construction:         v.T_Construction,
+
+			T_flow_sort: v.T_flow_sort,
+			T_max_time:  v.T_max_time,
+			T_min_time:  v.T_min_time,
+
+			T_value: copyDataMap[v.T_name],
+		}
+		MapDataList = append(MapDataList, val)
+	}
+	_, is = VerifyTemplate.AddOrUpdate_VerifyTemplateMapData_ADD_History(MapDataList, 0, "")
+	if !is {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "保存失败"}
+		c.ServeJSON()
+		return
+	}
+	System.Add_UserLogs_T(User_r.T_uuid, "任务管理", "复制标签数据", MapDataList)
+
 	// 通知
 	_, company_r := Account.Read_User_ByT_uuid(var_.T_uuid)
 	go wx.WxSend(var_.T_scheme, fmt.Sprintf("【%s-%s】任务派发", company_r.T_name, var_.T_name))
@@ -2642,9 +2686,9 @@ func (c *TaskController) Copy() {
 	go wx.WxSend(var_.T_delivery, fmt.Sprintf("【%s-%s】任务派发", company_r.T_name, var_.T_name))
 
 	// 添加任务操作日志
-	Task.Add_TaskLogs_T(User_r.T_uuid, id, "任务管理", "添加", var_)
-	System.Add_UserLogs_T(User_r.T_uuid, "任务管理", "添加", var_)
-	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: id}
+	Task.Add_TaskLogs_T(User_r.T_uuid, T_paste_task_id, "任务管理", "复制", var_)
+	System.Add_UserLogs_T(User_r.T_uuid, "任务管理", "复制", var_)
+	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_paste_task_id}
 	c.ServeJSON()
 	return
 }
@@ -2792,10 +2836,12 @@ func (c *TaskController) SyncVerifyTemplateMapData() {
 			continue
 		}
 		val := VerifyTemplate.VerifyTemplateMapData{
-			T_source:               T_source,
+			T_source:               v.T_source,
 			T_task_id:              paste_task.T_task_id,
 			T_VerifyTemplate_id:    paste_task.T_VerifyTemplate_id,
 			T_VerifyTemplateMap_id: v.T_VerifyTemplateMap_id,
+			T_Required:             v.T_Required,
+			T_Construction:         v.T_Construction,
 
 			T_flow_sort: v.T_flow_sort,
 			T_max_time:  v.T_max_time,
@@ -2806,7 +2852,7 @@ func (c *TaskController) SyncVerifyTemplateMapData() {
 		MapDataList = append(MapDataList, val)
 	}
 	var ids []int64
-	ids, is = VerifyTemplate.AddOrUpdate_VerifyTemplateMapData(MapDataList)
+	ids, is = VerifyTemplate.AddOrUpdate_VerifyTemplateMapData_ADD_History(MapDataList, 0, "")
 	if !is {
 		c.Data["json"] = lib.JSONS{Code: 202, Msg: "保存失败"}
 		c.ServeJSON()

+ 87 - 1
controllers/VerifyTemplate.go

@@ -737,7 +737,8 @@ func (c *VerifyTemplateController) Map_Data_Pu() {
 	return
 }
 
-func (c *VerifyTemplateController) Map_Data_Copy() {
+// 相同模版id复制标签数据
+func (c *VerifyTemplateController) Map_Data_Copy2() {
 	// 验证登录 User_is, User_r
 	User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
 	if !User_is {
@@ -811,6 +812,91 @@ func (c *VerifyTemplateController) Map_Data_Copy() {
 	return
 }
 
+// 通过标签名称复制标签数据
+func (c *VerifyTemplateController) Map_Data_Copy() {
+	// 验证登录 User_is, User_r
+	User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
+	if !User_is {
+		c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
+		c.ServeJSON()
+		return
+	}
+
+	T_source, _ := c.GetInt("T_source")
+
+	T_flow, _ := c.GetInt("T_flow")
+
+	if T_flow == 0 && T_source == 0 {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_source Err!"}
+		c.ServeJSON()
+		return
+	}
+
+	T_copy_task_id := c.GetString("T_copy_task_id")
+	copy_task, is := Task.Read_Task(T_copy_task_id)
+	if !is {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_copy_task_id 错误!"}
+		c.ServeJSON()
+		return
+	}
+	T_paste_task_id := c.GetString("T_paste_task_id")
+	paste_task, is := Task.Read_Task(T_paste_task_id)
+	if !is {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_paste_task_id 错误!"}
+		c.ServeJSON()
+		return
+	}
+
+	copy_task_Map_List := VerifyTemplate.Read_VerifyTemplateMap_List_For_Data(copy_task.T_VerifyTemplate_id, 0, 0)
+	copy_task_Data := VerifyTemplate.Read_VerifyTemplateMapData_List(T_source, T_copy_task_id, copy_task.T_VerifyTemplate_id, copy_task_Map_List)
+
+	Map_List := VerifyTemplate.Read_VerifyTemplateMap_List_For_Data(paste_task.T_VerifyTemplate_id, 0, 0)
+	Data := VerifyTemplate.Read_VerifyTemplateMapData_List(T_source, T_paste_task_id, paste_task.T_VerifyTemplate_id, Map_List)
+
+	copyDataMap := make(map[string]string)
+	for _, data := range copy_task_Data {
+		copyDataMap[data.T_name] = data.T_value
+	}
+
+	MapDataList := make([]VerifyTemplate.VerifyTemplateMapData, 0)
+	for _, v := range Data {
+		// 已有值则不复制
+		if len(v.T_value) > 0 {
+			continue
+		}
+		if copyDataMap[v.T_name] == "" {
+			continue
+		}
+		val := VerifyTemplate.VerifyTemplateMapData{
+			T_source:               v.T_source,
+			T_task_id:              paste_task.T_task_id,
+			T_VerifyTemplate_id:    paste_task.T_VerifyTemplate_id,
+			T_VerifyTemplateMap_id: v.T_VerifyTemplateMap_id,
+			T_Required:             v.T_Required,
+			T_Construction:         v.T_Construction,
+
+			T_flow_sort: v.T_flow_sort,
+			T_max_time:  v.T_max_time,
+			T_min_time:  v.T_min_time,
+
+			T_value: copyDataMap[v.T_name],
+		}
+		MapDataList = append(MapDataList, val)
+	}
+	var ids []int64
+	ids, is = VerifyTemplate.AddOrUpdate_VerifyTemplateMapData_ADD_History(MapDataList, 0, "")
+	if !is {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "保存失败"}
+		c.ServeJSON()
+		return
+	}
+	System.Add_UserLogs_T(User_r.T_uuid, "验证模版标签数据", "通过标签名称复制", MapDataList)
+
+	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: ids}
+	c.ServeJSON()
+	return
+}
+
 // 添加标签数据
 func (c *VerifyTemplateController) Map_Data_History_List() {
 	// 验证登录 User_is, User_r