Commit 0592f77d authored by helinlin's avatar helinlin

修改bug

parent 42388b5d
......@@ -14,6 +14,7 @@ import org.springframework.stereotype.Component;
import com.yeejoin.amos.boot.module.command.api.dto.SeismometeorologyDto;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;
/**
* @description:
* @author: tw
......@@ -28,41 +29,37 @@ public class SeismometeorologyDtoDao {
/**
* 保存对象SeismometeorologyDto
* @param
*
* @param
*/
public void saveObj(SeismometeorologyDto book) {
mongoTemplate.save(book);
}
/**
*
* 24小時预警
*
* **/
public List<SeismometeorologyDto> findCarStateByWatchSn(){
**/
public List<SeismometeorologyDto> findCarStateByWatchSn() {
System.out.println(new Date().getTime());
Query query = new Query(Criteria.where("releaseTime").gte(getStartTime())
.lte(getEndTime()));
Sort sort= Sort.by(Sort.Direction.DESC, "releaseTime");
Sort sort = Sort.by(Sort.Direction.DESC, "releaseTime");
query.with(sort);
List<SeismometeorologyDto> gpsList = mongoTemplate.find(query, SeismometeorologyDto.class);
return gpsList;
}
/**
*
*当天气象预警
*
* **/
public List<SeismometeorologyDto> findDutyCarStateBy(){
* 当天气象预警
**/
public List<SeismometeorologyDto> findDutyCarStateBy() {
System.out.println(new Date().getTime());
Query query = new Query(Criteria.where("releaseTime").gte(getStartTime())
.lte(getEndTime()));
Sort sort= Sort.by(Sort.Direction.DESC, "releaseTime");
Sort sort = Sort.by(Sort.Direction.DESC, "releaseTime");
query.with(sort);
List<SeismometeorologyDto> gpsList = mongoTemplate.find(query, SeismometeorologyDto.class);
return gpsList;
......@@ -71,19 +68,19 @@ public class SeismometeorologyDtoDao {
private static Date getStartTime() {
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR_OF_DAY,0);
todayStart.set(Calendar.MINUTE,0);
todayStart.set(Calendar.SECOND,0);
todayStart.set(Calendar.MILLISECOND,0);
todayStart.set(Calendar.HOUR_OF_DAY, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
return todayStart.getTime();
}
private static Date getEndTime() {
Calendar todayEnd = Calendar.getInstance();
todayEnd.set(Calendar.HOUR_OF_DAY,23);
todayEnd.set(Calendar.MINUTE,59);
todayEnd.set(Calendar.SECOND,59);
todayEnd.set(Calendar.MILLISECOND,999);
todayEnd.set(Calendar.HOUR_OF_DAY, 23);
todayEnd.set(Calendar.MINUTE, 59);
todayEnd.set(Calendar.SECOND, 59);
todayEnd.set(Calendar.MILLISECOND, 999);
return todayEnd.getTime();
}
......
......@@ -90,7 +90,7 @@ public class LatentDanger extends BasicEntity {
/**
* 限制时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date reformLimitDate;
private Integer overtimeState;
......
......@@ -21,7 +21,7 @@
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.0.3</version>
<version>4.0.0</version>
<exclusions>
<exclusion>
<artifactId>poi-ooxml</artifactId>
......@@ -32,12 +32,12 @@
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.0.3</version>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.0.3</version>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
......
......@@ -8,73 +8,72 @@ import java.util.List;
/**
* The persistent class for the p_check_input database table.
*
*/
@Entity
@Table(name="p_check_input")
@NamedQuery(name="CheckInput.findAll", query="SELECT c FROM CheckInput c")
@Table(name = "p_check_input")
@NamedQuery(name = "CheckInput.findAll", query = "SELECT c FROM CheckInput c")
public class CheckInput extends BasicEntity {
private static final long serialVersionUID = 1L;
/**
* 巡检记录id
*/
@Column(name="check_id")
@Column(name = "check_id")
private Long checkId;
/**
* 检查项id
*/
@Column(name="input_id")
@Column(name = "input_id")
private Long inputId;
/**
* 检查项名称
*/
@Column(name="input_name")
@Column(name = "input_name")
private String inputName;
/**
* 巡检点检查项
*/
@Column(name="route_point_item_id")
@Column(name = "route_point_item_id")
private Long routePointItemId;
/**
* 输入值
*/
@Column(name="input_value")
@Column(name = "input_value")
private String inputValue;
/**
* 是否合格
*/
@Column(name="is_ok")
@Column(name = "is_ok")
private String isOk;
/**
* 序号
*/
@Column(name="order_no")
@Column(name = "order_no")
private int orderNo;
/**
* 权限系统org code
*/
@Column(name="org_code")
@Column(name = "org_code")
private String orgCode;
/**
* 检查点分类id
*/
@Column(name="point_classify_id")
@Column(name = "point_classify_id")
private Long pointClassifyId;
/**
* 检查点分类名称
*/
@Column(name="point_classify_name")
@Column(name = "point_classify_name")
private String pointClassifyName;
/**
......@@ -90,37 +89,49 @@ public class CheckInput extends BasicEntity {
/**
* 执行人ids
*/
@Column(name="user_id")
@Column(name = "user_id")
private String userId;
/**
* 执行人名称
*/
@Column(name="user_name")
@Column(name = "user_name")
private String userName;
/**
* 陪同检查人ids
*/
@Column(name = "accompany_user_id")
private String accompanyUserId;
/**
* 陪同检查人名称
*/
@Column(name = "accompany_user_name")
private String accompanyUserName;
/**
* 执行部门ids
*/
@Column(name="dep_id")
@Column(name = "dep_id")
private String depId;
/**
* 执行部门名称
*/
@Column(name="dep_name")
@Column(name = "dep_name")
private String depName;
/**
* 安全隐患个数
*/
@Column(name="safety_danger_num")
@Column(name = "safety_danger_num")
private int safetyDangerNum;
/**
* 重大隐患个数
*/
@Column(name="major_danger_num")
@Column(name = "major_danger_num")
private int majorDangerNum;
private List<DangerDto> dangerDtoList;
......@@ -304,4 +315,20 @@ public class CheckInput extends BasicEntity {
public void setDangerDtoList(List<DangerDto> dangerDtoList) {
this.dangerDtoList = dangerDtoList;
}
public String getAccompanyUserId() {
return accompanyUserId;
}
public void setAccompanyUserId(String accompanyUserId) {
this.accompanyUserId = accompanyUserId;
}
public String getAccompanyUserName() {
return accompanyUserName;
}
public void setAccompanyUserName(String accompanyUserName) {
this.accompanyUserName = accompanyUserName;
}
}
\ No newline at end of file
......@@ -39,7 +39,9 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.exception.BaseException;
......@@ -146,6 +148,8 @@ public class CommandController extends BaseController {
@Autowired
IUserCarService userCarService;
@Autowired
RestTemplate restTemplate;
/**
* 警情列表
......@@ -1530,4 +1534,13 @@ public class CommandController extends BaseController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "getAMapWeather", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取百度地图天气", notes = "获取百度地图天气")
public ResponseModel<Object> getAMapWeather() {
ResponseEntity<HashMap> weather = restTemplate.getForEntity(
"https://restapi.amap.com/v3/weather/weatherInfo?key=4bee67717254d93067fdbc09cd61c7d9&city=610100&extensions=all",
HashMap.class);
return ResponseHelper.buildResponse(weather);
}
}
\ No newline at end of file
......@@ -4,10 +4,7 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.supervision.business.constants.XJConstant;
import com.yeejoin.amos.supervision.business.dto.CheckDto;
import com.yeejoin.amos.supervision.business.dto.CheckInputItemDto;
import com.yeejoin.amos.supervision.business.param.CheckInfoPageParam;
import com.yeejoin.amos.supervision.business.param.CheckPageParam;
import com.yeejoin.amos.supervision.business.param.CheckRecordParam;
import com.yeejoin.amos.supervision.business.param.CheckStatisticalParam;
import com.yeejoin.amos.supervision.business.param.*;
import com.yeejoin.amos.supervision.business.service.intfc.ICheckService;
import com.yeejoin.amos.supervision.business.service.intfc.IPlanTaskService;
import com.yeejoin.amos.supervision.business.service.intfc.ISafety3DDataSendService;
......@@ -50,6 +47,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
@RestController
@RequestMapping(value = "/api/check")
......@@ -546,8 +544,15 @@ public class CheckController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "保存检查记录", notes = "保存检查记录")
@RequestMapping(value = "/saveRecord", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
public ResponseModel saveSupervisionCheckRecord(@ApiParam(value = "检查信息", required = false) @RequestBody(required = true) CheckRecordParam requestParam) {
public ResponseModel saveSupervisionCheckRecord(
@ApiParam(value = "检查信息", required = false)
@RequestBody CheckRecordParam requestParam) {
try {
//存放检查人信息
requestParam.getCheckItems().forEach(checkInputParam -> {
checkInputParam.setUserId(getUserId());
checkInputParam.setUserName(getUserInfo().getRealName());
});
ReginParams reginParams = getSelectedOrgInfo();
String orgCode = getOrgCode(reginParams);
requestParam.setOrgCode(orgCode);
......
......@@ -19,8 +19,10 @@ public class CheckInputParam {
private boolean isCheck;
private String remark;
private Long routePointItemId;
private String userId;
private String userName;
private String userId;//检查人ID
private String userName;//检查人姓名
private String accompanyUserId;//陪同检查人姓名
private String accompanyUserName;//陪同检查人姓名
private String depId;
private String depName;
private List<CheckShot> checkInputShot = new ArrayList<>();
......
......@@ -1455,6 +1455,8 @@ public class CheckServiceImpl implements ICheckService {
checkInput.setRemark(item.getRemark());
checkInput.setUserId(item.getUserId());
checkInput.setUserName(item.getUserName());
checkInput.setAccompanyUserId(item.getAccompanyUserId());
checkInput.setAccompanyUserName(item.getAccompanyUserName());
checkInput.setDepId(item.getDepId());
checkInput.setDepName(item.getDepName());
//1.校验结果
......
......@@ -315,6 +315,10 @@ public class HiddenDangerServiceImpl implements IHiddenDangerService {
List<CheckShot> shotList = iCheckShotDao.findAllByCheckIdAndCheckInputId(checkInput.getCheckId(), checkInput.getId());
result.put("checkUserId", checkInput.getUserId());
result.put("checkUserName", checkInput.getUserName());
result.put("accompanyUserId", checkInput.getAccompanyUserId());
result.put("accompanyUserName", checkInput.getAccompanyUserName());
result.put("accompanyingUserId", checkInput.getAccompanyUserId());
result.put("accompanyingUserName",checkInput.getAccompanyUserName());
result.put("planExecuteTime", checkInput.getCreateDate());
result.put("checkPhotoUrl", shotList.stream().map(CheckShot::getPhotoData).collect(Collectors.joining(",")));
}
......
......@@ -5,7 +5,6 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import com.alibaba.excel.metadata.Sheet;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
......@@ -13,7 +12,6 @@ import com.google.zxing.common.BitMatrix;
import com.yeejoin.amos.supervision.business.vo.PointVo;
import com.yeejoin.amos.supervision.exception.YeeException;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.ss.usermodel.*;
......
......@@ -44,7 +44,10 @@ public class CheckVo {
* 检查人
*/
private String userName;
/**
* 陪同检查人
*/
private String accompanyUserName;
/**
* 责任单位ID
*/
......
......@@ -16,10 +16,6 @@
<version>${amos-biz-boot.version}</version>
<exclusions>
<exclusion>
<artifactId>easypoi-base</artifactId>
<groupId>cn.afterturn</groupId>
</exclusion>
<exclusion>
<artifactId>poi-ooxml</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
......
......@@ -13,7 +13,8 @@
</preConditions>
<comment>p_point ADD COLUMN last_check_id</comment>
<sql>
ALTER TABLE p_point ADD COLUMN `last_check_id` varchar(32) DEFAULT NULL COMMENT '最近检查记录(漏检不算)' AFTER `original_id`;
ALTER TABLE p_point ADD COLUMN `last_check_id` varchar(32) DEFAULT NULL COMMENT '最近检查记录(漏检不算)' AFTER
`original_id`;
</sql>
</changeSet>
......@@ -25,7 +26,8 @@
</preConditions>
<comment>p_input_item ADD COLUMN check_type</comment>
<sql>
ALTER TABLE p_input_item ADD COLUMN `check_type` varchar(32) DEFAULT NULL COMMENT '检查类别' AFTER `test_requirement`;
ALTER TABLE p_input_item ADD COLUMN `check_type` varchar(32) DEFAULT NULL COMMENT '检查类别' AFTER
`test_requirement`;
</sql>
</changeSet>
......@@ -37,7 +39,8 @@
</preConditions>
<comment>p_input_item ADD COLUMN item_parent</comment>
<sql>
ALTER TABLE p_input_item ADD COLUMN `item_parent` varchar(50) DEFAULT NULL COMMENT '父类检查项id' AFTER `check_type`;
ALTER TABLE p_input_item ADD COLUMN `item_parent` varchar(50) DEFAULT NULL COMMENT '父类检查项id' AFTER
`check_type`;
</sql>
</changeSet>
......@@ -49,7 +52,8 @@
</preConditions>
<comment>p_input_item ADD COLUMN item_classify</comment>
<sql>
ALTER TABLE p_input_item ADD COLUMN `item_classify` varchar(50) DEFAULT NULL COMMENT '检查项分类' AFTER `item_parent`;
ALTER TABLE p_input_item ADD COLUMN `item_classify` varchar(50) DEFAULT NULL COMMENT '检查项分类' AFTER
`item_parent`;
</sql>
</changeSet>
......@@ -61,7 +65,8 @@
</preConditions>
<comment>p_input_item ADD COLUMN item_type_classify</comment>
<sql>
ALTER TABLE p_input_item ADD COLUMN `item_type_classify` varchar(50) DEFAULT NULL COMMENT '适用检查类别' AFTER `item_classify`;
ALTER TABLE p_input_item ADD COLUMN `item_type_classify` varchar(50) DEFAULT NULL COMMENT '适用检查类别' AFTER
`item_classify`;
</sql>
</changeSet>
......@@ -73,7 +78,8 @@
</preConditions>
<comment>p_input_item ADD COLUMN item_level</comment>
<sql>
ALTER TABLE p_input_item ADD COLUMN `item_level` varchar(50) DEFAULT NULL COMMENT '检查项等级' AFTER `item_type_classify`;修改列
ALTER TABLE p_input_item ADD COLUMN `item_level` varchar(50) DEFAULT NULL COMMENT '检查项等级' AFTER
`item_type_classify`;修改列
</sql>
</changeSet>
......@@ -107,7 +113,8 @@
</preConditions>
<comment>p_plan_task_detail ADD COLUMN executor_name</comment>
<sql>
ALTER TABLE `p_plan_task_detail` ADD COLUMN `executor_name` text DEFAULT null COMMENT '执行人名称' AFTER `executor_id`;
ALTER TABLE `p_plan_task_detail` ADD COLUMN `executor_name` text DEFAULT null COMMENT '执行人名称' AFTER
`executor_id`;
</sql>
</changeSet>
......@@ -119,7 +126,8 @@
</preConditions>
<comment>p_plan_task_detail ADD COLUMN item_num</comment>
<sql>
ALTER TABLE `p_plan_task_detail` ADD COLUMN `item_num` int(11) DEFAULT 0 COMMENT '检查项个数' AFTER `executor_name`;
ALTER TABLE `p_plan_task_detail` ADD COLUMN `item_num` int(11) DEFAULT 0 COMMENT '检查项个数' AFTER
`executor_name`;
</sql>
</changeSet>
......@@ -131,7 +139,8 @@
</preConditions>
<comment>p_plan_task_detail ADD COLUMN executed_num</comment>
<sql>
ALTER TABLE `p_plan_task_detail` ADD COLUMN `executed_num` int(11) DEFAULT 0 COMMENT '已执行个数' AFTER `item_num`;
ALTER TABLE `p_plan_task_detail` ADD COLUMN `executed_num` int(11) DEFAULT 0 COMMENT '已执行个数' AFTER
`item_num`;
</sql>
</changeSet>
......@@ -143,7 +152,8 @@
</preConditions>
<comment>p_plan_task_detail ADD COLUMN safety_danger_num</comment>
<sql>
ALTER TABLE `p_plan_task_detail` ADD COLUMN `safety_danger_num` int(11) DEFAULT 0 COMMENT '安全隐患个数' AFTER `executed_num`;
ALTER TABLE `p_plan_task_detail` ADD COLUMN `safety_danger_num` int(11) DEFAULT 0 COMMENT '安全隐患个数' AFTER
`executed_num`;
</sql>
</changeSet>
......@@ -155,7 +165,8 @@
</preConditions>
<comment>p_plan_task_detail ADD COLUMN major_danger_num</comment>
<sql>
ALTER TABLE `p_plan_task_detail` ADD COLUMN `major_danger_num` int(11) DEFAULT 0 COMMENT '重大隐患个数' AFTER `safety_danger_num`;
ALTER TABLE `p_plan_task_detail` ADD COLUMN `major_danger_num` int(11) DEFAULT 0 COMMENT '重大隐患个数' AFTER
`safety_danger_num`;
</sql>
</changeSet>
......@@ -165,7 +176,8 @@
</preConditions>
<comment>p_plan_task_detail modify column is_finish</comment>
<sql>
alter table `p_plan_task_detail` modify column `is_finish` int(11) COMMENT '0-未开始,1-执行中,2-已完成,3-超时漏检(有一个检查项漏检则为漏检)' after `create_date`;
alter table `p_plan_task_detail` modify column `is_finish` int(11) COMMENT
'0-未开始,1-执行中,2-已完成,3-超时漏检(有一个检查项漏检则为漏检)' after `create_date`;
</sql>
</changeSet>
......@@ -189,7 +201,8 @@
</preConditions>
<comment>p_check ADD COLUMN company_name</comment>
<sql>
ALTER TABLE `p_check` ADD COLUMN `company_name` varchar(255) DEFAULT NULL COMMENT '责任单位名称' AFTER `company_id`;
ALTER TABLE `p_check` ADD COLUMN `company_name` varchar(255) DEFAULT NULL COMMENT '责任单位名称' AFTER
`company_id`;
</sql>
</changeSet>
......@@ -201,7 +214,8 @@
</preConditions>
<comment>p_check_input ADD COLUMN safety_danger_num</comment>
<sql>
ALTER TABLE `p_check_input` ADD COLUMN `safety_danger_num` int(11) DEFAULT NULL COMMENT '安全隐患个数' AFTER `danger_handle_state`;
ALTER TABLE `p_check_input` ADD COLUMN `safety_danger_num` int(11) DEFAULT NULL COMMENT '安全隐患个数' AFTER
`danger_handle_state`;
</sql>
</changeSet>
......@@ -213,7 +227,8 @@
</preConditions>
<comment>p_check_input ADD COLUMN major_danger_num</comment>
<sql>
ALTER TABLE `p_check_input` ADD COLUMN `major_danger_num` int(11) DEFAULT NULL COMMENT '重大隐患个数' AFTER `safety_danger_num`;
ALTER TABLE `p_check_input` ADD COLUMN `major_danger_num` int(11) DEFAULT NULL COMMENT '重大隐患个数' AFTER
`safety_danger_num`;
</sql>
</changeSet>
<changeSet author="gaojianqiang" id="1630567666-1">
......@@ -272,7 +287,8 @@
CREATE TABLE `p_check_report` (
`id` bigint(30) NOT NULL COMMENT '主键',
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '报告名称',
`plan_type` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '计划类型(0单位级/1公司级)',
`plan_type` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT
'计划类型(0单位级/1公司级)',
`plan_task_id` bigint(30) NULL DEFAULT NULL COMMENT '关联计划任务id',
`check_user` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '执行人',
`start_check_date` datetime NULL DEFAULT NULL COMMENT '检查实际开始时间',
......@@ -312,4 +328,29 @@
ALTER TABLE `p_plan` MODIFY COLUMN `create_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';
</sql>
</changeSet>
<changeSet author="helinlin" id="2022-1-5 16:53:48">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="p_check_input" columnName="accompany_user_id"/>
</not>
</preConditions>
<comment>p_check_input add column</comment>
<sql>
alter table `p_check_input` add column `accompany_user_id` text DEFAULT NULL COMMENT '陪同检查人ids';
</sql>
</changeSet>
<changeSet author="helinlin" id="2022-1-5 16:53:48">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="p_check_input" columnName="accompany_user_name"/>
</not>
</preConditions>
<comment>p_check_input add column</comment>
<sql>
alter table `p_check_input` add column `accompany_user_name` text DEFAULT NULL COMMENT '陪同检查人名称';
</sql>
</changeSet>
</databaseChangeLog>
\ No newline at end of file
......@@ -2012,6 +2012,7 @@
ci.major_danger_num,
ci.create_date checkTime,
ci.user_name,
ci.accompany_user_name,
pp.original_id,
pp.name companyName,
......
......@@ -1152,6 +1152,8 @@
pii.picture_json picJson,
pci.user_id userId,
pci.user_name userName,
pci.accompany_user_id accompanyUserId,
pci.accompany_user_name accompanyUserName,
pii.id itemId,
group_concat(pcs.photo_data) photoData,
COALESCE (pci.input_value, '') selectValue,
......
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