Commit 69b4d198 authored by caotao's avatar caotao

修改批量修改风电、光伏预警规则时只输入部分数据报错问题。

parent 54aa0665
...@@ -20,6 +20,7 @@ import com.yeejoin.amos.boot.module.jxiop.biz.tdengine.FanWarningRecord; ...@@ -20,6 +20,7 @@ import com.yeejoin.amos.boot.module.jxiop.biz.tdengine.FanWarningRecord;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.beanutils.BeanMap; import org.apache.commons.beanutils.BeanMap;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -33,8 +34,6 @@ import java.util.*; ...@@ -33,8 +34,6 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
*
*
* @author system_generator * @author system_generator
* @date 2023-08-15 * @date 2023-08-15
*/ */
...@@ -81,7 +80,7 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -81,7 +80,7 @@ public class IdxBizFanWarningRecordController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}") @PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新") @ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<IdxBizFanWarningRecordDto> updateBySequenceNbrIdxBizFanWarningRecord(@RequestBody IdxBizFanWarningRecordDto model,@PathVariable(value = "sequenceNbr") String sequenceNbr) { public ResponseModel<IdxBizFanWarningRecordDto> updateBySequenceNbrIdxBizFanWarningRecord(@RequestBody IdxBizFanWarningRecordDto model, @PathVariable(value = "sequenceNbr") String sequenceNbr) {
model.setSequenceNbr(sequenceNbr); model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(idxBizFanWarningRecordServiceImpl.updateWithModel(model)); return ResponseHelper.buildResponse(idxBizFanWarningRecordServiceImpl.updateWithModel(model));
} }
...@@ -95,7 +94,7 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -95,7 +94,7 @@ public class IdxBizFanWarningRecordController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}") @DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除") @ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){ public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(idxBizFanWarningRecordServiceImpl.removeById(sequenceNbr)); return ResponseHelper.buildResponse(idxBizFanWarningRecordServiceImpl.removeById(sequenceNbr));
} }
...@@ -107,7 +106,7 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -107,7 +106,7 @@ public class IdxBizFanWarningRecordController extends BaseController {
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}") @GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个") @ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<IdxBizFanWarningRecordDto> selectOne(@PathVariable Long sequenceNbr) { public ResponseModel<IdxBizFanWarningRecordDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(idxBizFanWarningRecordServiceImpl.queryBySeq(sequenceNbr)); return ResponseHelper.buildResponse(idxBizFanWarningRecordServiceImpl.queryBySeq(sequenceNbr));
} }
...@@ -121,8 +120,8 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -121,8 +120,8 @@ public class IdxBizFanWarningRecordController extends BaseController {
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page") @GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询") @ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<IdxBizFanWarningRecordDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam public ResponseModel<Page<IdxBizFanWarningRecordDto>> queryForPage(@RequestParam(value = "current") int current, @RequestParam
(value = "size") int size) { (value = "size") int size) {
Page<IdxBizFanWarningRecordDto> page = new Page<IdxBizFanWarningRecordDto>(); Page<IdxBizFanWarningRecordDto> page = new Page<IdxBizFanWarningRecordDto>();
page.setCurrent(current); page.setCurrent(current);
...@@ -136,7 +135,7 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -136,7 +135,7 @@ public class IdxBizFanWarningRecordController extends BaseController {
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "列表全部数据查询", notes = "列表全部数据查询") @ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public ResponseModel<List<IdxBizFanWarningRecordDto>> selectForList() { public ResponseModel<List<IdxBizFanWarningRecordDto>> selectForList() {
return ResponseHelper.buildResponse(idxBizFanWarningRecordServiceImpl.queryForIdxBizFanWarningRecordList()); return ResponseHelper.buildResponse(idxBizFanWarningRecordServiceImpl.queryForIdxBizFanWarningRecordList());
...@@ -151,32 +150,31 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -151,32 +150,31 @@ public class IdxBizFanWarningRecordController extends BaseController {
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getInfoByPointId") @GetMapping(value = "/getInfoByPointId")
@ApiOperation(httpMethod = "GET",value = "根据ANALYSIS_POINT_ID查询单个", notes = "根据ANALYSIS_POINT_ID查询单个") @ApiOperation(httpMethod = "GET", value = "根据ANALYSIS_POINT_ID查询单个", notes = "根据ANALYSIS_POINT_ID查询单个")
public ResponseModel<Map<String, Object>> getInfoByPointId(@RequestParam String ANALYSISPOINTID) { public ResponseModel<Map<String, Object>> getInfoByPointId(@RequestParam String ANALYSISPOINTID) {
LambdaQueryWrapper<IdxBizFanWarningRuleSet> query =new LambdaQueryWrapper<>(); LambdaQueryWrapper<IdxBizFanWarningRuleSet> query = new LambdaQueryWrapper<>();
query.eq(IdxBizFanWarningRuleSet::getAnalysisPointId,ANALYSISPOINTID); query.eq(IdxBizFanWarningRuleSet::getAnalysisPointId, ANALYSISPOINTID);
List<IdxBizFanWarningRuleSet> idxBizFanWarningRecordList = idxBizFanWarningRuleSetService.getBaseMapper().selectList(query); List<IdxBizFanWarningRuleSet> idxBizFanWarningRecordList = idxBizFanWarningRuleSetService.getBaseMapper().selectList(query);
Map<String,Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
for (int i = 0; i < idxBizFanWarningRecordList.size(); i++) { for (int i = 0; i < idxBizFanWarningRecordList.size(); i++) {
IdxBizFanWarningRuleSet idxBizFanWarningRecord = idxBizFanWarningRecordList.get(i); IdxBizFanWarningRuleSet idxBizFanWarningRecord = idxBizFanWarningRecordList.get(i);
if (idxBizFanWarningRecord.getWarningName().equals("注意")){ if (idxBizFanWarningRecord.getWarningName().equals("注意")) {
map.putAll(BeanUtil.beanToMap(idxBizFanWarningRecord)); map.putAll(BeanUtil.beanToMap(idxBizFanWarningRecord));
}else if (idxBizFanWarningRecord.getWarningName().equals("警告")){ } else if (idxBizFanWarningRecord.getWarningName().equals("警告")) {
//警告周期 //警告周期
map.put("jgWarningCycle",idxBizFanWarningRecord.getWarningCycle()); map.put("jgWarningCycle", idxBizFanWarningRecord.getWarningCycle());
map.put("jgWarningIf",idxBizFanWarningRecord.getWarningIf()); map.put("jgWarningIf", idxBizFanWarningRecord.getWarningIf());
}else if (idxBizFanWarningRecord.getWarningName().equals("危险")){ } else if (idxBizFanWarningRecord.getWarningName().equals("危险")) {
//警告周期 //警告周期
map.put("wxWarningCycle",idxBizFanWarningRecord.getWarningCycle()); map.put("wxWarningCycle", idxBizFanWarningRecord.getWarningCycle());
map.put("wxWarningIf",idxBizFanWarningRecord.getWarningIf()); map.put("wxWarningIf", idxBizFanWarningRecord.getWarningIf());
} }
} }
return ResponseHelper.buildResponse(map); return ResponseHelper.buildResponse(map);
} }
/** /**
* 根据pointId修改信息 * 根据pointId修改信息
* *
...@@ -215,32 +213,31 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -215,32 +213,31 @@ public class IdxBizFanWarningRecordController extends BaseController {
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getInfoByPointIdPv") @GetMapping(value = "/getInfoByPointIdPv")
@ApiOperation(httpMethod = "GET",value = "根据ANALYSIS_POINT_ID查询单个", notes = "根据ANALYSIS_POINT_ID查询单个") @ApiOperation(httpMethod = "GET", value = "根据ANALYSIS_POINT_ID查询单个", notes = "根据ANALYSIS_POINT_ID查询单个")
public ResponseModel<Map<String, Object>> getInfoByPointIdPv(@RequestParam String ANALYSISPOINTID) { public ResponseModel<Map<String, Object>> getInfoByPointIdPv(@RequestParam String ANALYSISPOINTID) {
LambdaQueryWrapper<IdxBizPvWarningRuleSet> query =new LambdaQueryWrapper<>(); LambdaQueryWrapper<IdxBizPvWarningRuleSet> query = new LambdaQueryWrapper<>();
query.eq(IdxBizPvWarningRuleSet::getAnalysisPointId,ANALYSISPOINTID); query.eq(IdxBizPvWarningRuleSet::getAnalysisPointId, ANALYSISPOINTID);
List<IdxBizPvWarningRuleSet> idxBizPvWarningRecordList = idxBizPvWarningRuleSetService.getBaseMapper().selectList(query); List<IdxBizPvWarningRuleSet> idxBizPvWarningRecordList = idxBizPvWarningRuleSetService.getBaseMapper().selectList(query);
Map<String,Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
for (int i = 0; i < idxBizPvWarningRecordList.size(); i++) { for (int i = 0; i < idxBizPvWarningRecordList.size(); i++) {
IdxBizPvWarningRuleSet idxBizPvWarningRecord = idxBizPvWarningRecordList.get(i); IdxBizPvWarningRuleSet idxBizPvWarningRecord = idxBizPvWarningRecordList.get(i);
if (idxBizPvWarningRecord.getWarningName().equals("注意")){ if (idxBizPvWarningRecord.getWarningName().equals("注意")) {
map.putAll(BeanUtil.beanToMap(idxBizPvWarningRecord)); map.putAll(BeanUtil.beanToMap(idxBizPvWarningRecord));
}else if (idxBizPvWarningRecord.getWarningName().equals("警告")){ } else if (idxBizPvWarningRecord.getWarningName().equals("警告")) {
//警告周期 //警告周期
map.put("jgWarningCycle",idxBizPvWarningRecord.getWarningCycle()); map.put("jgWarningCycle", idxBizPvWarningRecord.getWarningCycle());
map.put("jgWarningIf",idxBizPvWarningRecord.getWarningIf()); map.put("jgWarningIf", idxBizPvWarningRecord.getWarningIf());
}else if (idxBizPvWarningRecord.getWarningName().equals("危险")){ } else if (idxBizPvWarningRecord.getWarningName().equals("危险")) {
//警告周期 //警告周期
map.put("wxWarningCycle",idxBizPvWarningRecord.getWarningCycle()); map.put("wxWarningCycle", idxBizPvWarningRecord.getWarningCycle());
map.put("wxWarningIf",idxBizPvWarningRecord.getWarningIf()); map.put("wxWarningIf", idxBizPvWarningRecord.getWarningIf());
} }
} }
return ResponseHelper.buildResponse(map); return ResponseHelper.buildResponse(map);
} }
/** /**
* 根据pointId修改信息 * 根据pointId修改信息
* *
...@@ -298,12 +295,16 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -298,12 +295,16 @@ public class IdxBizFanWarningRecordController extends BaseController {
BeanUtil.copyProperties(analysisInfo, idxBizPvWarningRuleSet, "analysisPointIds"); BeanUtil.copyProperties(analysisInfo, idxBizPvWarningRuleSet, "analysisPointIds");
if (idxBizPvWarningRuleSet.getWarningName().equals("警告")) { if (idxBizPvWarningRuleSet.getWarningName().equals("警告")) {
//警告周期 //警告周期
if (StringUtils.isNotBlank(analysisInfo.getString("jgWarningCycle"))) {
idxBizPvWarningRuleSet.setWarningCycle(analysisInfo.get("jgWarningCycle").toString()); idxBizPvWarningRuleSet.setWarningCycle(analysisInfo.get("jgWarningCycle").toString());
}
} else if (idxBizPvWarningRuleSet.getWarningName().equals("危险")) { } else if (idxBizPvWarningRuleSet.getWarningName().equals("危险")) {
//警告周期 //警告周期
if (StringUtils.isNotBlank(analysisInfo.getString("wxWarningCycle"))) {
idxBizPvWarningRuleSet.setWarningCycle(analysisInfo.get("wxWarningCycle").toString()); idxBizPvWarningRuleSet.setWarningCycle(analysisInfo.get("wxWarningCycle").toString());
} }
} }
}
boolean b = idxBizPvWarningRuleSetService.updateBatchById(idxBizFanWarningRecordList); boolean b = idxBizPvWarningRuleSetService.updateBatchById(idxBizFanWarningRecordList);
return ResponseHelper.buildResponse(b); return ResponseHelper.buildResponse(b);
} }
...@@ -315,7 +316,7 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -315,7 +316,7 @@ public class IdxBizFanWarningRecordController extends BaseController {
* @param analysisInfo 主键 * @param analysisInfo 主键
* @return * @return
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@PostMapping(value = "/updateByPointInfoBatchFan") @PostMapping(value = "/updateByPointInfoBatchFan")
@ApiOperation(httpMethod = "POST", value = "根据pointId修改信息", notes = "根据pointId修改信息") @ApiOperation(httpMethod = "POST", value = "根据pointId修改信息", notes = "根据pointId修改信息")
public ResponseModel<Boolean> updateByPointInfoBatchFan(@RequestBody JSONObject analysisInfo) { public ResponseModel<Boolean> updateByPointInfoBatchFan(@RequestBody JSONObject analysisInfo) {
...@@ -327,20 +328,24 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -327,20 +328,24 @@ public class IdxBizFanWarningRecordController extends BaseController {
BeanUtil.copyProperties(analysisInfo, idxBizFanWarningRuleSet, "analysisPointIds"); BeanUtil.copyProperties(analysisInfo, idxBizFanWarningRuleSet, "analysisPointIds");
if (idxBizFanWarningRuleSet.getWarningName().equals("警告")) { if (idxBizFanWarningRuleSet.getWarningName().equals("警告")) {
//警告周期 //警告周期
if (StringUtils.isNotBlank(analysisInfo.getString("jgWarningCycle"))) {
idxBizFanWarningRuleSet.setWarningCycle(analysisInfo.get("jgWarningCycle").toString()); idxBizFanWarningRuleSet.setWarningCycle(analysisInfo.get("jgWarningCycle").toString());
}
} else if (idxBizFanWarningRuleSet.getWarningName().equals("危险")) { } else if (idxBizFanWarningRuleSet.getWarningName().equals("危险")) {
//警告周期 //警告周期
if (StringUtils.isNotBlank(analysisInfo.getString("wxWarningCycle"))) {
idxBizFanWarningRuleSet.setWarningCycle(analysisInfo.get("wxWarningCycle").toString()); idxBizFanWarningRuleSet.setWarningCycle(analysisInfo.get("wxWarningCycle").toString());
} }
} }
}
boolean b = idxBizFanWarningRuleSetService.updateBatchById(idxBizFanWarningRecordList); boolean b = idxBizFanWarningRuleSetService.updateBatchById(idxBizFanWarningRecordList);
return ResponseHelper.buildResponse(b); return ResponseHelper.buildResponse(b);
} }
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/selectFanWarningNum") @GetMapping(value = "/selectFanWarningNum")
@ApiOperation(httpMethod = "GET", value = "查询各风机预警状况", notes = "查询各风机预警状况") @ApiOperation(httpMethod = "GET", value = "查询各风机预警状况", notes = "查询各风机预警状况")
public ResponseModel<Map<String,Object>> selectFanWarningNum(@RequestParam String station) { public ResponseModel<Map<String, Object>> selectFanWarningNum(@RequestParam String station) {
LambdaQueryWrapper<IdxBizFanPointProcessVariableClassification> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<IdxBizFanPointProcessVariableClassification> wrapper = new LambdaQueryWrapper<>();
...@@ -358,7 +363,7 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -358,7 +363,7 @@ public class IdxBizFanWarningRecordController extends BaseController {
List<Integer> wxList = new ArrayList<>(); List<Integer> wxList = new ArrayList<>();
List<Integer> zyList = new ArrayList<>(); List<Integer> zyList = new ArrayList<>();
List<Integer> jgList = new ArrayList<>(); List<Integer> jgList = new ArrayList<>();
List<String> list =new ArrayList<>(); List<String> list = new ArrayList<>();
for (Map<String, Object> map : maps) { for (Map<String, Object> map : maps) {
wxList.add(Integer.valueOf(map.get("危险").toString())); wxList.add(Integer.valueOf(map.get("危险").toString()));
zyList.add(Integer.valueOf(map.get("注意").toString())); zyList.add(Integer.valueOf(map.get("注意").toString()));
...@@ -376,7 +381,6 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -376,7 +381,6 @@ public class IdxBizFanWarningRecordController extends BaseController {
}); });
HashMap<String, Object> wxMapResult = new HashMap<>(); HashMap<String, Object> wxMapResult = new HashMap<>();
wxMapResult.put("data", wxList); wxMapResult.put("data", wxList);
wxMapResult.put("name", "危险"); wxMapResult.put("name", "危险");
...@@ -395,23 +399,23 @@ public class IdxBizFanWarningRecordController extends BaseController { ...@@ -395,23 +399,23 @@ public class IdxBizFanWarningRecordController extends BaseController {
} }
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/selectEquipWarningTotal") @GetMapping(value = "/selectEquipWarningTotal")
@ApiOperation(httpMethod = "GET", value = "预警信息统计富文本", notes = "预警信息统计富文本") @ApiOperation(httpMethod = "GET", value = "预警信息统计富文本", notes = "预警信息统计富文本")
public ResponseModel<Map<String,Object>> selectEquipWarningTotal(@RequestParam String STATION,@RequestParam String EQUIPMENTNAME) { public ResponseModel<Map<String, Object>> selectEquipWarningTotal(@RequestParam String STATION, @RequestParam String EQUIPMENTNAME) {
Map<String, Object> maps = fanWaringRecordMapper.selectEquipWarningTotal(STATION,EQUIPMENTNAME); Map<String, Object> maps = fanWaringRecordMapper.selectEquipWarningTotal(STATION, EQUIPMENTNAME);
return ResponseHelper.buildResponse(maps); return ResponseHelper.buildResponse(maps);
} }
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/selectWarningPoint") @GetMapping(value = "/selectWarningPoint")
@ApiOperation(httpMethod = "GET", value = "预警监测设备右侧预警重复列表", notes = "预警监测设备右侧预警重复列表") @ApiOperation(httpMethod = "GET", value = "预警监测设备右侧预警重复列表", notes = "预警监测设备右侧预警重复列表")
public ResponseModel<Page<FanWarningRecord>> selectFanWarningNum(@RequestParam String STATION,@RequestParam String EQUIPMENTNAME,@RequestParam Integer current,@RequestParam Integer size) { public ResponseModel<Page<FanWarningRecord>> selectFanWarningNum(@RequestParam String STATION, @RequestParam String EQUIPMENTNAME, @RequestParam Integer current, @RequestParam Integer size) {
Page<FanWarningRecord> page = new Page<>(); Page<FanWarningRecord> page = new Page<>();
page.setCurrent(current); page.setCurrent(current);
page.setSize(size); page.setSize(size);
List<FanWarningRecord> maps = fanWaringRecordMapper.selectWarningPoint(STATION,EQUIPMENTNAME,(current-1)*size,size); List<FanWarningRecord> maps = fanWaringRecordMapper.selectWarningPoint(STATION, EQUIPMENTNAME, (current - 1) * size, size);
page.setRecords(maps); page.setRecords(maps);
int total = fanWaringRecordMapper.selectWarningPointTotal(STATION, EQUIPMENTNAME); int total = fanWaringRecordMapper.selectWarningPointTotal(STATION, EQUIPMENTNAME);
page.setTotal(total); page.setTotal(total);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment