rev:内包间优化

This commit is contained in:
2024-01-05 15:57:04 +08:00
parent c883a4d1ee
commit 65ac6ccf47
6 changed files with 195 additions and 111 deletions

View File

@@ -76,6 +76,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@SneakyThrows
public Map<String, Object> receiveTaskStatusAcs(String string) { public Map<String, Object> receiveTaskStatusAcs(String string) {
log.info("receiveTaskStatusAcs请求参数--------------------------------------" + string); log.info("receiveTaskStatusAcs请求参数--------------------------------------" + string);
JSONArray array = JSONArray.parseArray(string); JSONArray array = JSONArray.parseArray(string);
@@ -84,41 +85,53 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
for (int i = 0; i < array.size(); i++) { for (int i = 0; i < array.size(); i++) {
JSONObject row = array.getJSONObject(i); JSONObject row = array.getJSONObject(i);
String task_id = row.getString("task_id"); String task_id = row.getString("task_id");
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); RLock lock = redissonClient.getLock(task_id);
// 任务处理类 boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
String processing_class = taskObj.getString("handle_class");
//1:执行中,2:完成 ,3:acs取消
String acs_task_status = row.getString("task_status");
String car_no = row.getString("car_no");
if (StrUtil.isNotEmpty(car_no)) {
taskObj.put("car_no", car_no);
WQLObject.getWQLObject("SCH_BASE_Task").update(taskObj);
}
String message = "";
String status = "";
if ("1".equals(acs_task_status)) {
status = TaskStatusEnum.EXECUTING.getCode();
}
if ("2".equals(acs_task_status)) {
status = TaskStatusEnum.FINISHED.getCode();
}
if ("3".equals(acs_task_status)) {
status = "0";
}
// 任务处理类
try { try {
Class<?> clz = Class.forName(processing_class); if (tryLock){
Object obj = clz.newInstance(); JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
// 调用每个任务类的forceFinishInst()强制结束方法 // 任务处理类
Method m = obj.getClass().getDeclaredMethod("updateTaskStatus", JSONObject.class, String.class); String processing_class = taskObj.getString("handle_class");
m.invoke(obj, row, status); //1:执行中,2:完成 ,3:acs取消
} catch (Exception e) { String acs_task_status = row.getString("task_status");
e.printStackTrace(); String car_no = row.getString("car_no");
message = e.getMessage(); if (StrUtil.isNotEmpty(car_no)) {
throw new BadRequestException(message); taskObj.put("car_no", car_no);
WQLObject.getWQLObject("SCH_BASE_Task").update(taskObj);
}
String message = "";
String status = "";
if ("1".equals(acs_task_status)) {
status = TaskStatusEnum.EXECUTING.getCode();
}
if ("2".equals(acs_task_status)) {
status = TaskStatusEnum.FINISHED.getCode();
}
if ("3".equals(acs_task_status)) {
status = "0";
}
// 任务处理类
try {
Class<?> clz = Class.forName(processing_class);
Object obj = clz.newInstance();
// 调用每个任务类的forceFinishInst()强制结束方法
Method m = obj.getClass().getDeclaredMethod("updateTaskStatus", JSONObject.class, String.class);
m.invoke(obj, row, status);
} catch (Exception e) {
e.printStackTrace();
message = e.getMessage();
throw new BadRequestException(message);
}
}else {
throw new BadRequestException("任务标识为:"+task_id+"的任务正在操作中!");
}
} finally {
if (tryLock) {
lock.unlock();
}
} }
}
}
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value()); result.put("status", HttpStatus.OK.value());
result.put("message", "任务状态反馈成功!"); result.put("message", "任务状态反馈成功!");
@@ -947,7 +960,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Override @Override
public JSONObject sendGetGoalStruct(JSONObject whereJson) { public JSONObject sendGetGoalStruct(JSONObject whereJson) {
log.info("sendGetGoalStruct请求参数为--------------------------" + whereJson.toString()); log.info("sendGetGoalStruct请求参数为--------------------------" + whereJson.toString());
//type:2、反馈尺寸3、申请4、申请6、套轴申请7、套轴完成8、拔轴完成 //type:2、反馈尺寸3、申请4、申请6、套轴申请7、套轴完成8、拔轴完成
String type = whereJson.getString("type"); String type = whereJson.getString("type");
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
@@ -978,24 +991,37 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
String zg_generation = zg_jo.getString("qzz_generation"); String zg_generation = zg_jo.getString("qzz_generation");
if (StrUtil.isEmpty(zg_generation) || StrUtil.isEmpty(zg_size)) { if (StrUtil.isEmpty(zg_generation) || StrUtil.isEmpty(zg_size)) {
//如果纸管工位的代数和尺寸为空,则把气胀轴搬运到气胀轴缓存位 /*如果纸管工位的代数和尺寸为空,判断是否存在正在纸管出库且符合条件的任务
JSONObject jo = new JSONObject(); 1、存在则反馈ACS等待
jo.put("task_type", "010603"); 2、不存在则把气胀轴搬运到气胀轴缓存位*/
jo.put("point_code1", cbz_jo.getString("point_code")); JSONObject paper_jo = WQLObject.getWQLObject("sch_base_task").query("task_type = '010601' AND task_status < '07' AND is_delete = '0' AND product_area = '" + product_area + "' order by create_time").uniqueResult(0);
JSONObject fhd_jo = WQLObject.getWQLObject("st_ivt_shaftivt").query("point_type = '7' AND product_area = '" + product_area + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(paper_jo)) {
jo.put("point_code2", fhd_jo.getString("point_code")); JSONObject resq_jo = paper_jo.getJSONObject("request_param");
jo.put("product_area", product_area);
jo.put("vehicle_code", "qzz"); JSONObject plan_jo = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '" + resq_jo.getString("container_name1") + "'").uniqueResult(0);
jo.put("truss_type", "8"); String paper_tube_or_FRP = plan_jo.getString("paper_tube_or_frp");
JSONObject request_param = new JSONObject(); String paper_name;
request_param.put("have_size", cbz_size); if ("1".equals(paper_tube_or_FRP)) {
request_param.put("have_generation", cbz_generation); paper_name = plan_jo.getString("paper_tube_description");
jo.put("request_param", request_param.toString()); } else {
paperTrussTask.createTask(jo); paper_name = plan_jo.getString("frp_description");
result.put("status", HttpStatus.OK.value()); }
result.put("is_bushing", "0"); String need_size = String.valueOf(paper_name.split("\\|")[2].charAt(0));
result.put("message", "反馈成功!"); JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("ext_code = '" + plan_jo.getString("resource_name") + "'").uniqueResult(0);
return result; //获取分切机维护的气涨轴代数
String need_generation = cut_jo.getString("qzz_generation");
if (cbz_size.equals(need_size) && zg_generation.equals(need_generation)) {
//todo:反馈ACS让气胀轴等待
result.put("status", HttpStatus.OK.value());
result.put("is_bushing", "2");
result.put("message", "反馈成功!");
return result;
} else {
return createTask(result, product_area, cbz_jo, cbz_size, cbz_generation);
}
} else {
return createTask(result, product_area, cbz_jo, cbz_size, cbz_generation);
}
} else { } else {
if (cbz_size.equals(zg_size) && zg_generation.equals(cbz_generation)) { if (cbz_size.equals(zg_size) && zg_generation.equals(cbz_generation)) {
//todo:反馈ACS可以进行穿轴 //todo:反馈ACS可以进行穿轴
@@ -1168,11 +1194,34 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
result.put("status", HttpStatus.OK.value()); result.put("status", HttpStatus.OK.value());
result.put("device_code", struct_jo.getString("point_code")); result.put("device_code", struct_jo.getString("point_code"));
result.put("message", "反馈成功!"); result.put("message", "反馈成功!");
log.info("sendGetGoalStruct输出参数为--------------------------" + result.toString());
return result;
}
//创建气胀轴放货任务
private JSONObject createTask(JSONObject result, String product_area, JSONObject cbz_jo, String cbz_size, String cbz_generation) {
JSONObject jo = new JSONObject();
jo.put("task_type", "010603");
jo.put("point_code1", cbz_jo.getString("point_code"));
JSONObject fhd_jo = WQLObject.getWQLObject("st_ivt_shaftivt").query("point_type = '7' AND product_area = '" + product_area + "'").uniqueResult(0);
jo.put("point_code2", fhd_jo.getString("point_code"));
jo.put("product_area", product_area);
jo.put("vehicle_code", "qzz");
jo.put("truss_type", "8");
JSONObject request_param = new JSONObject();
request_param.put("have_size", cbz_size);
request_param.put("have_generation", cbz_generation);
jo.put("request_param", request_param.toString());
paperTrussTask.createTask(jo);
result.put("status", HttpStatus.OK.value());
result.put("is_bushing", "0");
result.put("message", "反馈成功!");
return result; return result;
} }
@Override @Override
public JSONObject actionFinishRequest(JSONObject whereJson) { public JSONObject actionFinishRequest(JSONObject whereJson) {
log.info("actionFinishRequest请求参数为--------------------------" + whereJson.toString());
String type = whereJson.getString("action"); String type = whereJson.getString("action");
String task_code = whereJson.getString("task_code1"); String task_code = whereJson.getString("task_code1");
WQLObject ivt_shaftivt = WQLObject.getWQLObject("st_ivt_shaftivt"); WQLObject ivt_shaftivt = WQLObject.getWQLObject("st_ivt_shaftivt");
@@ -1227,7 +1276,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
jo.put("task_type", "010606"); jo.put("task_type", "010606");
jo.put("truss_type", "1"); jo.put("truss_type", "1");
jo.put("task_status", TaskStatusEnum.SURE_START.getCode()); jo.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
jo.put("point_code1", plan_jo.getString("start_code")); jo.put("point_code1", plan_jo.getString("start_code"));
jo.put("point_code2", in_jo.getString("point_code")); jo.put("point_code2", in_jo.getString("point_code"));
JSONObject hchj_jo = WQLObject.getWQLObject("st_ivt_shaftivt").query("point_code = '" + plan_jo.getString("start_code") + "'").uniqueResult(0); JSONObject hchj_jo = WQLObject.getWQLObject("st_ivt_shaftivt").query("point_code = '" + plan_jo.getString("start_code") + "'").uniqueResult(0);

View File

@@ -238,12 +238,6 @@ public class OutServiceImpl implements OutService {
throw new BadRequestException("点位:" + empty_vehicle.getString("point_code") + "载具号为空!"); throw new BadRequestException("点位:" + empty_vehicle.getString("point_code") + "载具号为空!");
} }
jo.put("vehicle_code", point_code + "废箔"); jo.put("vehicle_code", point_code + "废箔");
if (jo.getString("vehicle_code").contains("废箔")) {
System.out.println("YES-------");
}
if (!jo.getString("vehicle_code").contains("废箔")) {
System.out.println("NO-------");
}
jo.put("product_area", cut_ivt.getString("product_area")); jo.put("product_area", cut_ivt.getString("product_area"));
//分切>输送线 子卷出站 //分切>输送线 子卷出站
jo.put("task_type", "010404"); jo.put("task_type", "010404");

View File

@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
@@ -20,6 +21,8 @@ import org.nl.wms.basedata.master.service.dto.ClassstandardDto;
import org.nl.wms.basedata.st.service.impl.UserAreaServiceImpl; import org.nl.wms.basedata.st.service.impl.UserAreaServiceImpl;
import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.sch.service.TaskService; import org.nl.wms.sch.service.TaskService;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -28,6 +31,7 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
/** /**
* @author ldjun * @author ldjun
@@ -41,6 +45,8 @@ public class TaskServiceImpl implements TaskService {
private final ClassstandardService classstandardService; private final ClassstandardService classstandardService;
private final RedissonClient redissonClient;
@Override @Override
public Map<String, Object> queryAll(Map form, Pageable page) { public Map<String, Object> queryAll(Map form, Pageable page) {
@@ -110,61 +116,75 @@ public class TaskServiceImpl implements TaskService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@SneakyThrows
public void operation(Map<String, Object> map) { public void operation(Map<String, Object> map) {
String task_id = MapUtil.getStr(map, "task_id"); String task_id = MapUtil.getStr(map, "task_id");
String method_name = MapUtil.getStr(map, "method_name"); RLock lock = redissonClient.getLock(task_id);
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
if ("finish".equals(method_name)) { try {
//强制执行,只把任务变更成完成状态 if (tryLock){
// 更改任务状态为完成 String method_name = MapUtil.getStr(map, "method_name");
taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode()); JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
taskObj.put("update_optid", SecurityUtils.getCurrentUserId()); if ("finish".equals(method_name)) {
taskObj.put("update_optname", SecurityUtils.getCurrentUsername()); //强制执行,只把任务变更成完成状态
taskObj.put("update_time", DateUtil.now()); // 更改任务状态为完成
taskObj.put("remark", "任务被强制完成,不执行任何逻辑!"); taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode());
WQLObject.getWQLObject("SCH_BASE_Task").update(taskObj); taskObj.put("update_optid", SecurityUtils.getCurrentUserId());
} else { taskObj.put("update_optname", SecurityUtils.getCurrentUsername());
// 任务处理类 taskObj.put("update_time", DateUtil.now());
String processing_class = taskObj.getString("handle_class"); taskObj.put("remark", "任务被强制完成,不执行任何逻辑!");
String message = ""; WQLObject.getWQLObject("SCH_BASE_Task").update(taskObj);
try { } else {
Class<?> clz = Class.forName(processing_class); // 任务处理类
Object obj = clz.newInstance(); String processing_class = taskObj.getString("handle_class");
// 调用每个任务类的method_name()强制结束方法 String message = "";
Method m = obj.getClass().getMethod(method_name, String.class); try {
JSONObject result = (JSONObject) m.invoke(obj, task_id); Class<?> clz = Class.forName(processing_class);
if (ObjectUtil.isEmpty(result)) { Object obj = clz.newInstance();
return; // 调用每个任务类的method_name()强制结束方法
} Method m = obj.getClass().getMethod(method_name, String.class);
JSONArray arr = result.getJSONArray("errArr"); JSONObject result = (JSONObject) m.invoke(obj, task_id);
WQLObject wo = WQLObject.getWQLObject("sch_base_task"); if (ObjectUtil.isEmpty(result)) {
if (ObjectUtil.isNotEmpty(arr)) { return;
for (int i = 0; i < arr.size(); i++) { }
JSONObject json = arr.getJSONObject(i); JSONArray arr = result.getJSONArray("errArr");
JSONObject param = new JSONObject(); WQLObject wo = WQLObject.getWQLObject("sch_base_task");
param.put("task_id", json.getString("task_id")); if (ObjectUtil.isNotEmpty(arr)) {
param.put("remark", json.getString("message")); for (int i = 0; i < arr.size(); i++) {
wo.update(param); JSONObject json = arr.getJSONObject(i);
JSONObject param = new JSONObject();
param.put("task_id", json.getString("task_id"));
param.put("remark", json.getString("message"));
wo.update(param);
}
throw new BadRequestException("任务操作失败!");
} else {
JSONObject param = new JSONObject();
param.put("task_id", task_id);
param.put("remark", "操作成功");
wo.update(param);
}
} catch (InvocationTargetException e) {
if (ObjectUtil.isNull(e.getTargetException().getMessage())) {
message = e.getTargetException().toString();
} else {
message = e.getTargetException().getMessage();
}
throw new BadRequestException(message);
} catch (Exception e) {
e.printStackTrace();
throw new BadRequestException(e.getMessage());
} }
throw new BadRequestException("任务操作失败!");
} else {
JSONObject param = new JSONObject();
param.put("task_id", task_id);
param.put("remark", "操作成功");
wo.update(param);
} }
} catch (InvocationTargetException e) { }else {
if (ObjectUtil.isNull(e.getTargetException().getMessage())) { throw new BadRequestException("任务标识为:"+task_id+"的任务正在操作中!");
message = e.getTargetException().toString(); }
} else { }finally {
message = e.getTargetException().getMessage(); if (tryLock) {
} lock.unlock();
throw new BadRequestException(message);
} catch (Exception e) {
e.printStackTrace();
throw new BadRequestException(e.getMessage());
} }
} }
} }
} }

View File

@@ -63,7 +63,7 @@ public class PaperTrussTask extends AbstractAcsTask {
if ("010605".equals(json.getString("task_type")) || "010603".equals(json.getString("task_type")) || "010604".equals(json.getString("task_type"))) { if ("010605".equals(json.getString("task_type")) || "010603".equals(json.getString("task_type")) || "010604".equals(json.getString("task_type"))) {
dto.setVersion(json.getJSONObject("request_param").getString("have_generation")); dto.setVersion(json.getJSONObject("request_param").getString("have_generation"));
} }
if ("010606".equals(json.getString("task_type"))) { if ("010606".equals(json.getString("task_type")) || "010602".equals(json.getString("task_type"))) {
dto.setVersion(json.getJSONObject("request_param").getString("need_generation")); dto.setVersion(json.getJSONObject("request_param").getString("need_generation"));
} }
resultList.add(dto); resultList.add(dto);

View File

@@ -2,6 +2,7 @@ package org.nl.wms.sch.tasks;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@@ -11,6 +12,7 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.manage.TaskStatusEnum;
@@ -93,7 +95,7 @@ public class PaperTubeTask extends AbstractAcsTask {
out_jo.put("container_name2", req_param.getString("container_name2")); out_jo.put("container_name2", req_param.getString("container_name2"));
//查询对应的分切计划 //查询对应的分切计划
JSONObject plan_jo = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '" + req_param.getString("container_name1") + "'").uniqueResult(0); JSONObject plan_jo = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '" + req_param.getString("container_name1") + "' AND is_delete = '0'").uniqueResult(0);
String paper_tube_or_FRP = plan_jo.getString("paper_tube_or_frp"); String paper_tube_or_FRP = plan_jo.getString("paper_tube_or_frp");
String paper_name; String paper_name;
if ("1".equals(paper_tube_or_FRP)) { if ("1".equals(paper_tube_or_FRP)) {
@@ -141,6 +143,25 @@ public class PaperTubeTask extends AbstractAcsTask {
request_param.put("need_generation", need_generation); request_param.put("need_generation", need_generation);
jo.put("request_param", request_param.toString()); jo.put("request_param", request_param.toString());
paperTrussTask.createTask(jo); paperTrussTask.createTask(jo);
} else {
//如果穿拔轴上存在一根气胀轴且没有任务则下发ACS允许套轴
if ("1".equals(have_qzz)) {
String device_code = cbz_jo.getString("point_code");
//判断是否存在任务
JSONObject paper_jo = WQLObject.getWQLObject("sch_base_task").query("point_code1 = '" + device_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(paper_jo)) {
//给穿拔轴机下发套轴
WmsToAcsService wmsToAcsService = SpringContextHolder.getBean(WmsToAcsService.class);
JSONArray action_rows = new JSONArray();
JSONObject action_jo = new JSONObject();
action_jo.put("device_code", device_code);
action_jo.put("code", "to_command");
action_jo.put("product_area", product_area);
action_jo.put("value", "4");
action_rows.add(action_jo);
wmsToAcsService.action(action_rows);
}
}
} }
//更新出库口的库存信息 //更新出库口的库存信息

View File

@@ -91,8 +91,8 @@ public class HandMoveStorAcsTask extends AbstractAcsTask {
throw new BadRequestException("查询不到操作的任务记录!"); throw new BadRequestException("查询不到操作的任务记录!");
} }
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
map.put("work_status", "02"); /*map.put("work_status", "02");
wo_dtl.update(map, "task_id='" + task_id + "'"); wo_dtl.update(map, "task_id='" + task_id + "'");*/
map.put("task_status", TaskStatusEnum.EXECUTING.getCode()); map.put("task_status", TaskStatusEnum.EXECUTING.getCode());
map.put("update_optid", currentUserId + ""); map.put("update_optid", currentUserId + "");
map.put("update_optname", nickName); map.put("update_optname", nickName);