Commit 8214b40c authored by tianbo's avatar tianbo

隐患流程修改

parent 68f6ef4e
package com.yeejoin.amos.latentdanger.common.enums; package com.yeejoin.amos.latentdanger.common.enums;
/**
* @author DELL
*/
public enum ExecuteStateEnum { public enum ExecuteStateEnum {
未执行("未执行", 1, ""), /**
通过("通过", 2, "{\"action\": \"complete\",\"variables\": [{\"name\": \"rejected\",\"value\": false}]}"), * 未执行
驳回("驳回", 3, "{\"action\": \"complete\",\"variables\": [{\"name\": \"rejected\",\"value\": true}]}"), */
已确认("已确认", 4, ""), 未执行("未执行", 0, ""),
停止执行("停止执行", 5, ""), 通过("通过", 1, "{\"action\": \"complete\",\"variables\": [{\"name\": \"rejected\",\"value\": false}]}"),
作业开始执行("作业开始执行", 6, ""), 驳回("驳回", 2, "{\"action\": \"complete\",\"variables\": [{\"name\": \"rejected\",\"value\": true}]}"),
作业完成("作业完成", 7, ""); 已确认("已确认", 3, ""),
停止执行("停止执行", 4, ""),
作业开始执行("作业开始执行", 5, ""),
作业完成("作业完成", 6, "");
/** /**
* 名称,描述 * 名称,描述
......
package com.yeejoin.amos.latentdanger.common.enums;
/**
* @author DELL
*/
public interface LatentDangerState {
/**
* 根据code获取枚举
*
* @param code
* @return
*/
LatentDangerState getEnumByCode(String code);
/**
* 根据code获取枚举名称
*
* @param code
* @return
*/
String getEnumNameByCode(String code);
enum SupervisionDangerStateEnum implements LatentDangerState {
/**
* 提交隐患
*/
提交隐患("提交隐患", "dangerSubmit", null, null),
/**
* 现场确认
*/
现场确认("现场确认", "onSiteConfirm", "leaderConfirm","onSiteConfirm"),
/**
* 检查组长确认
*/
检查组长确认("检查组长确认", "leaderConfirm", "secondConfirm","onSiteConfirm"),
/**
* 隐患二次审核确认
*/
隐患二次审核确认("隐患二次审核确认", "secondConfirm", "taskDispatch","onSiteConfirm"),
/**
* 整改任务分配
*/
整改任务分配("整改任务分配", "taskDispatch", "governFileSubmit",""),
/**
* 提交整改资料
*/
提交整改资料("提交整改资料", "governFileSubmit", "governChargerConfirm",""),
/**
* 整改检查组长确认
*/
整改检查组长确认("整改检查组长确认", "governLeaderConfirm", "governChargerConfirm","governFileSubmit"),
/**
* 整改检查负责人确认
*/
整改检查负责人确认("整改检查负责人确认", "governChargerConfirm", "governLeadershipConfirm","governFileSubmit"),
/**
* 整改检查分管领导确认(根据计划类型不同,分管领导确认完流程不同)
*/
整改检查分管领导确认("整改检查分管领导确认", "governLeadershipConfirm", "governLeaderReviewConfirm","governFileSubmit"),
/**
* 整改检查组长复查确认
*/
整改检查组长复查确认("整改检查组长复查确认", "governLeaderReviewConfirm", "governSecondReviewConfirm","governFileSubmit"),
/**
* 整改二次审核确认
*/
整改二次审核确认("整改二次审核确认", "governSecondReviewConfirm", "endOfGovernance","governFileSubmit"),
/**
* 整改完毕
*/
整改完毕("整改完毕", "endOfGovernance", "","");
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
/**
* 通过下一步骤
*/
private String next;
/**
* 拒绝下一步骤
*/
private String rejectNext;
SupervisionDangerStateEnum(String name, String code, String next, String rejectNext) {
this.name = name;
this.code = code;
this.next = next;
this.rejectNext = rejectNext;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getNext() {
return next;
}
public void setNext(String next) {
this.next = next;
}
public String getRejectNext() {
return rejectNext;
}
public void setRejectNext(String rejectNext) {
this.rejectNext = rejectNext;
}
public LatentDangerState getNextEnum() {
return getEnumByCode(next);
}
public LatentDangerState getRejectNextEnum() {
return getEnumByCode(rejectNext);
}
@Override
public LatentDangerState getEnumByCode(String code) {
for (SupervisionDangerStateEnum _enum : SupervisionDangerStateEnum.values()) {
if (code.equals(_enum.getCode())) {
return _enum;
}
}
return null;
}
@Override
public String getEnumNameByCode(String code) {
String enumName = "";
for(SupervisionDangerStateEnum type: SupervisionDangerStateEnum.values()) {
if (type.getCode().equals(code)) {
enumName = type.getName();
break;
}
}
return enumName;
}
}
enum PatrolDangerLevelEnum implements LatentDangerState {
/**
* 待评审
*/
待评审("待评审", "1"),
待治理("待治理", "2"),
安措计划中("安措计划中", "3"),
待验证("待验证", "4"),
治理完毕("治理完毕", "5"),
已撤销("已撤销", "6"),
延期治理申请("延期治理中", "7"),
延期治理申请待车间部门审核("延期治理待车间部门审核", "8"),
延期治理申请待公司审核("延期治理待公司审核", "9");
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private String code;
PatrolDangerLevelEnum(String name, String code) {
this.name = name;
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Override
public LatentDangerState getEnumByCode(String code) {
for (PatrolDangerLevelEnum _enum : PatrolDangerLevelEnum.values()) {
if (code.equals(_enum.getCode())) {
return _enum;
}
}
return null;
}
@Override
public String getEnumNameByCode(String code) {
String enumName = "";
for(PatrolDangerLevelEnum type: PatrolDangerLevelEnum.values()) {
if (type.getCode().equals(code)) {
enumName = type.getName();
break;
}
}
return enumName;
}
}
}
package com.yeejoin.amos.latentdanger.dao.entity; package com.yeejoin.amos.latentdanger.dao.entity;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import lombok.Data; import lombok.Data;
...@@ -209,4 +210,10 @@ public class LatentDanger extends BasicEntity { ...@@ -209,4 +210,10 @@ public class LatentDanger extends BasicEntity {
* 纬度 * 纬度
*/ */
private String latitude; private String latitude;
/**
* 业务信息
*/
@Column(name = "biz_info")
private JSONObject bizInfo;
} }
package com.yeejoin.amos.latentdanger.business.param; package com.yeejoin.amos.latentdanger.business.param;
import com.alibaba.fastjson.JSONObject;
import lombok.Data; import lombok.Data;
import javax.persistence.Column; import javax.persistence.Column;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -51,12 +53,12 @@ public class LatentDangerDto { ...@@ -51,12 +53,12 @@ public class LatentDangerDto {
/** /**
* 隐患名称 * 隐患名称
*/ */
private String name; private String dangerName;
/** /**
* 整改日期 * 整改日期
*/ */
private String reformLimitDate; private Date reformLimitDate;
/** /**
* 经度 * 经度
...@@ -127,4 +129,9 @@ public class LatentDangerDto { ...@@ -127,4 +129,9 @@ public class LatentDangerDto {
* 检查类型(1无码检查、2计划检查、3无计划检查、4随手拍) * 检查类型(1无码检查、2计划检查、3无计划检查、4随手拍)
*/ */
private String checkMode; private String checkMode;
/**
* 业务信息
*/
private JSONObject bizInfo;
} }
...@@ -20,9 +20,9 @@ public class LatentDangerListParam extends CommonPageable { ...@@ -20,9 +20,9 @@ public class LatentDangerListParam extends CommonPageable {
private Integer belongType; private Integer belongType;
/** /**
* 0:全部;1:待评审;2:待治理;3:安措计划中;4:待验证;5:治理完毕;6:已撤销;7:延期治理中;8:延期治理待车间部门审核;9:延期治理待公司审核 * 隐患流程状态枚举key
*/ */
private Integer dangerState; private String dangerState;
/** /**
* 是否已处理(1:是;2:否) * 是否已处理(1:是;2:否)
...@@ -30,11 +30,13 @@ public class LatentDangerListParam extends CommonPageable { ...@@ -30,11 +30,13 @@ public class LatentDangerListParam extends CommonPageable {
private Boolean isHandle; private Boolean isHandle;
/** /**
* -1:全部;1:一般隐患;2:重大隐患;0:安全问题 * null:全部;隐患等级
*/ */
private Integer dangerLevel; private String dangerLevel;
private String dangerName; private String dangerName;
private String userId; private String userId;
private String dangerIds;
} }
package com.yeejoin.amos.latentdanger.business.param; package com.yeejoin.amos.latentdanger.business.param;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
/**
* @author DELL
*/
public class PageParam<K, V> extends HashMap<K, V> implements Pageable { public class PageParam<K, V> extends HashMap<K, V> implements Pageable {
/** /**
* 页号(大于等于0) * 页号(大于等于0)
*/ */
protected int pageNumber = 0; protected int current = 1;
/** /**
* 每页大小(大于等于0) * 每页大小(大于等于0)
*/ */
protected int pageSize = 10; protected int size = 10;
/** /**
* 起始索引 * 起始索引
...@@ -28,70 +34,65 @@ public class PageParam<K, V> extends HashMap<K, V> implements Pageable { ...@@ -28,70 +34,65 @@ public class PageParam<K, V> extends HashMap<K, V> implements Pageable {
protected Sort sort = null; protected Sort sort = null;
public PageParam() { public PageParam() {
this.pageNumber = 0; this.current = 1;
this.pageSize = 10; this.size = 10;
this.offset = pageSize * pageNumber; this.offset = size * current;
} }
public PageParam(int pageNumber, int pageSize) { public PageParam(int pageNumber, int size) {
this.pageNumber = pageNumber; this.current = pageNumber;
this.pageSize = pageSize; this.size = size;
this.offset = pageSize * pageNumber; this.offset = size * pageNumber;
} }
public PageParam(int pageNumber, int pageSize, Sort sort) { public PageParam(int pageNumber, int size, Sort sort) {
this.pageNumber = pageNumber; this.current = pageNumber;
this.pageSize = pageSize; this.size = size;
this.sort = sort; this.sort = sort;
this.offset = pageSize * pageNumber; this.offset = size * pageNumber;
} }
public void setSize(int size) {
this.size = size;
}
@Override
public int getPageNumber() { public int getPageNumber() {
return this.pageNumber; return 0;
} }
@Override
public int getPageSize() { public int getPageSize() {
return pageSize; return 0;
} }
@Override
public long getOffset() { public long getOffset() {
offset = pageSize * pageNumber; return 0;
return offset;
} }
@Override
public Sort getSort() { public Sort getSort() {
return sort; return null;
} }
@Override
public Pageable next() { public Pageable next() {
return null; return null;
} }
@Override
public Pageable previousOrFirst() { public Pageable previousOrFirst() {
return null; return null;
} }
@Override
public Pageable first() { public Pageable first() {
return null; return null;
} }
@Override
public boolean hasPrevious() { public boolean hasPrevious() {
return false; return false;
} }
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public void setSort(Sort sort) {
this.sort = sort;
}
public void setOffset(int offset) {
this.offset = offset;
}
} }
...@@ -8,6 +8,7 @@ import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel; ...@@ -8,6 +8,7 @@ import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import com.yeejoin.amos.latentdanger.business.param.LatentDangerDto; import com.yeejoin.amos.latentdanger.business.param.LatentDangerDto;
import com.yeejoin.amos.latentdanger.business.param.LatentDangerExecuteParam; import com.yeejoin.amos.latentdanger.business.param.LatentDangerExecuteParam;
import com.yeejoin.amos.latentdanger.business.param.PageParam; import com.yeejoin.amos.latentdanger.business.param.PageParam;
import com.yeejoin.amos.latentdanger.business.vo.LatentDangerDetailVo;
import com.yeejoin.amos.latentdanger.common.enums.LatentDangerLevelEnum; import com.yeejoin.amos.latentdanger.common.enums.LatentDangerLevelEnum;
import com.yeejoin.amos.latentdanger.dao.entity.LatentDanger; import com.yeejoin.amos.latentdanger.dao.entity.LatentDanger;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
...@@ -22,6 +23,7 @@ import com.yeejoin.amos.latentdanger.business.param.LatentDangerPatrolParam; ...@@ -22,6 +23,7 @@ import com.yeejoin.amos.latentdanger.business.param.LatentDangerPatrolParam;
import com.yeejoin.amos.latentdanger.business.util.CommonResponse; import com.yeejoin.amos.latentdanger.business.util.CommonResponse;
import com.yeejoin.amos.latentdanger.business.vo.DangerTimeAxisVo; import com.yeejoin.amos.latentdanger.business.vo.DangerTimeAxisVo;
import com.yeejoin.amos.latentdanger.core.common.response.DangerListResponse; import com.yeejoin.amos.latentdanger.core.common.response.DangerListResponse;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
/** /**
* @author keyong * @author keyong
...@@ -36,8 +38,8 @@ public interface ILatentDangerService { ...@@ -36,8 +38,8 @@ public interface ILatentDangerService {
CommonResponse saveNormal(LatentDangerNormalParam latentDangerParam, String userId, String userRealName, CommonResponse saveNormal(LatentDangerNormalParam latentDangerParam, String userId, String userRealName,
String departmentId, String departmentName, String companyId, String orgCode, RoleBo role); String departmentId, String departmentName, String companyId, String orgCode, RoleBo role);
CommonResponse savePatrol(List<LatentDangerDto> latentDangerDtoList, String userId, String userRealName, List<LatentDanger> savePatrol(List<LatentDangerDto> latentDangerDtoList, String userId, String userRealName,
String departmentId, String departmentName, String companyId, String orgCode, RoleBo role) throws IllegalAccessException, InstantiationException; String departmentId, String departmentName, String companyId, String orgCode, RoleBo role) throws Exception;
CommonResponse list(String toke, String product, String appKey, LatentDangerListParam latentDangerListParam, AgencyUserModel user, String loginOrgCode, String deptId); CommonResponse list(String toke, String product, String appKey, LatentDangerListParam latentDangerListParam, AgencyUserModel user, String loginOrgCode, String deptId);
...@@ -53,9 +55,9 @@ public interface ILatentDangerService { ...@@ -53,9 +55,9 @@ public interface ILatentDangerService {
* @return * @return
*/ */
DangerExecuteSubmitDto execute(LatentDangerExecuteParam latentDangerExecuteParam, String userId, DangerExecuteSubmitDto execute(LatentDangerExecuteParam latentDangerExecuteParam, String userId,
String userRealName, String departmentId, String departmentName, RoleBo role); String userRealName, String departmentId, String departmentName, RoleBo role) throws Exception;
CommonResponse detail(String id, String userId,boolean isFinish); ResponseModel<LatentDangerDetailVo> detail(Long dangerId, String userId, boolean isFinish) throws Exception;
CommonResponse getByInstanceId(String instanceId); CommonResponse getByInstanceId(String instanceId);
...@@ -64,7 +66,7 @@ public interface ILatentDangerService { ...@@ -64,7 +66,7 @@ public interface ILatentDangerService {
void updateDangerStateOfOvertime(); void updateDangerStateOfOvertime();
CommonResponse listFlowRecord(String token, String product, String appKey, Long id); LatentDangerDetailVo listFlowRecord(String token, String product, String appKey, Long id) throws Exception;
void sendLatentDangerExecuteResult(DangerExecuteSubmitDto executeSubmitDto); void sendLatentDangerExecuteResult(DangerExecuteSubmitDto executeSubmitDto);
...@@ -106,4 +108,19 @@ public interface ILatentDangerService { ...@@ -106,4 +108,19 @@ public interface ILatentDangerService {
List<DangerTimeAxisVo> queryExecuteLog(Integer dateTime); List<DangerTimeAxisVo> queryExecuteLog(Integer dateTime);
/**
* 查询所有隐患列表
*
* @param searchParam
* @return
*/
List<LatentDanger> listAllDanger(LatentDangerListParam searchParam);
/**
* 根据ids(逗号分割)删除隐患
*
* @param ids
* @return
*/
Boolean delete(String ids) throws Exception;
} }
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.latentdanger.business.entity.mybatis.extend.LatentDangerFlowRecordBo; import com.yeejoin.amos.latentdanger.business.entity.mybatis.extend.LatentDangerFlowRecordBo;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -14,7 +15,7 @@ public class LatentDangerDetailVo { ...@@ -14,7 +15,7 @@ public class LatentDangerDetailVo {
private Long id; private Long id;
private String name; private String dangerName;
private Long bizId; private Long bizId;
...@@ -28,7 +29,7 @@ public class LatentDangerDetailVo { ...@@ -28,7 +29,7 @@ public class LatentDangerDetailVo {
private String reformTypeName; private String reformTypeName;
private String reformLimitDate; private Date reformLimitDate;
private JSONObject reformJson; private JSONObject reformJson;
...@@ -42,9 +43,21 @@ public class LatentDangerDetailVo { ...@@ -42,9 +43,21 @@ public class LatentDangerDetailVo {
private String dangerTypeName; private String dangerTypeName;
private Boolean currentUserCanExcute; private String checkMode;
private List<String> photoUrls; public String getCheckMode() {
return this.dangerType;
}
private String checkModeName;
public String getCheckModeName() {
return this.dangerTypeName;
}
private Boolean currentUserCanExecute;
private List<String> photoUrl;
private LatentDangerDetailRiskVo riskInfo; private LatentDangerDetailRiskVo riskInfo;
...@@ -56,7 +69,7 @@ public class LatentDangerDetailVo { ...@@ -56,7 +69,7 @@ public class LatentDangerDetailVo {
private List<LatentDangerFlowRecordBo> records; private List<LatentDangerFlowRecordBo> records;
private String delayLimitDate; private Date delayLimitDate;
private String problemDescription; private String problemDescription;
......
...@@ -6,7 +6,6 @@ import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel; ...@@ -6,7 +6,6 @@ import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import com.yeejoin.amos.latentdanger.business.constants.Constants; import com.yeejoin.amos.latentdanger.business.constants.Constants;
import com.yeejoin.amos.latentdanger.common.enums.LatentDangerLevelEnum; import com.yeejoin.amos.latentdanger.common.enums.LatentDangerLevelEnum;
import com.yeejoin.amos.latentdanger.common.enums.LatentDangerReformTypeEnum; import com.yeejoin.amos.latentdanger.common.enums.LatentDangerReformTypeEnum;
import com.yeejoin.amos.latentdanger.common.enums.LatentDangerStateEnum;
import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Before;
...@@ -65,10 +64,10 @@ public class EnumFillAop { ...@@ -65,10 +64,10 @@ public class EnumFillAop {
dicResult.forEach(dic -> LatentDangerReformTypeEnum.addEnumDynamic(dic.getDictDataDesc(), dic.getDictDataValue(), dic.getDictDataKey())); dicResult.forEach(dic -> LatentDangerReformTypeEnum.addEnumDynamic(dic.getDictDataDesc(), dic.getDictDataValue(), dic.getDictDataKey()));
} }
// 获取治理状态枚举 // 获取治理状态枚举
if (ValidationUtil.isEmpty(LatentDangerStateEnum.enumMap)) { // if (ValidationUtil.isEmpty(LatentDangerStateEnum.enumMap)) {
List<DictionarieValueModel> dicResult = // List<DictionarieValueModel> dicResult =
Systemctl.dictionarieClient.dictValues(bizType + LatentDangerStateEnum.dictCode).getResult(); // Systemctl.dictionarieClient.dictValues(bizType + LatentDangerStateEnum.dictCode).getResult();
dicResult.forEach(dic -> LatentDangerStateEnum.addEnumDynamic(dic.getDictDataDesc(), dic.getDictDataValue(), dic.getDictDataKey())); // dicResult.forEach(dic -> LatentDangerStateEnum.addEnumDynamic(dic.getDictDataDesc(), dic.getDictDataValue(), dic.getDictDataKey()));
} // }
} }
} }
...@@ -19,7 +19,7 @@ public class LatentDangerScheduled { ...@@ -19,7 +19,7 @@ public class LatentDangerScheduled {
/** /**
* 每1分钟执行一次:查询逾期的隐患,修改状态 * 每1分钟执行一次:查询逾期的隐患,修改状态
*/ */
@Scheduled(cron = "0 0/1 * * * ?") // @Scheduled(cron = "0 0/1 * * * ?")
public void updateDangerStateOfOvertime() { public void updateDangerStateOfOvertime() {
iLatentDangerService.updateDangerStateOfOvertime(); iLatentDangerService.updateDangerStateOfOvertime();
} }
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<!-- 日志输出级别 --> <!-- 日志输出级别 -->
<root level="DEBUG"> <root level="DEBUG">
<!--<appender-ref ref="FILE" /> --> <appender-ref ref="FILE" />
<appender-ref ref="STDOUT" /> <appender-ref ref="STDOUT" />
</root> </root>
</configuration> </configuration>
\ No newline at end of file
...@@ -3,7 +3,7 @@ spring.datasource.url = jdbc:mysql://172.16.11.20:3306/amos-supervision_v1.0?use ...@@ -3,7 +3,7 @@ spring.datasource.url = jdbc:mysql://172.16.11.20:3306/amos-supervision_v1.0?use
spring.datasource.username= root spring.datasource.username= root
spring.datasource.password= root_123 spring.datasource.password= root_123
## eureka properties: ## eureka properties:
eureka.client.serviceUrl.defaultZone=http://172.16.11.20:10001/eureka/ eureka.client.serviceUrl.defaultZone=http://172.16.10.72:10001/eureka/
security.password=a1234560 security.password=a1234560
security.loginId=jc_wjk006 security.loginId=jc_wjk006
...@@ -12,10 +12,10 @@ security.productApp=STUDIO_APP_MOBILE ...@@ -12,10 +12,10 @@ security.productApp=STUDIO_APP_MOBILE
security.appKey=studio_normalapp_3168830 security.appKey=studio_normalapp_3168830
#redis 配置 #redis 配置
spring.redis.database=1 spring.redis.database=0
spring.redis.host=172.16.11.20 spring.redis.host=172.16.10.85
spring.redis.port=6379 spring.redis.port=6379
spring.redis.password=1234560 spring.redis.password=amos2019Redis
spring.redis.jedis.pool.max-active=200 spring.redis.jedis.pool.max-active=200
spring.redis.jedis.pool.max-wait=-1 spring.redis.jedis.pool.max-wait=-1
spring.redis.jedis.pool.max-idle=10 spring.redis.jedis.pool.max-idle=10
......
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