Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
96f5f0a56d
  1. 35
      xm-core/src/main/java/com/xm/core/entity/XmQuestion.java
  2. 35
      xm-core/src/main/java/com/xm/core/entity/XmTask.java
  3. 16
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmQuestionMapper.xml
  4. 16
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

35
xm-core/src/main/java/com/xm/core/entity/XmQuestion.java

@ -8,9 +8,9 @@ import java.math.BigDecimal;
/** /**
* 组织 com 顶级模块 xm 大模块 core 小模块 <br> * 组织 com 顶级模块 xm 大模块 core 小模块 <br>
* 实体 XmQuestion所有属性名: <br> * 实体 XmQuestion所有属性名: <br>
* id,name,projectId,projectName,caseId,caseName,endTime,askUserid,askUsername,handlerUserid,handlerUsername,priority,solution,description,createUserid,createUsername,createTime,bugStatus,bizProcInstId,bizFlowState,menuId,menuName,budgetWorkload,budgetCost,actWorkload,actCost,expectResult,opStep,currResult,refRequire,bugSeverity,bugType,tagIds,tagNames,urls,ltime,qtype,caseExecId,remarks,productId,repRate,verNum,vpath,pverNum,bugReason,rate,rworkload,eworkload;<br>
* id,name,projectId,projectName,caseId,caseName,endTime,askUserid,askUsername,handlerUserid,handlerUsername,priority,solution,description,createUserid,createUsername,createTime,bugStatus,bizProcInstId,bizFlowState,menuId,menuName,budgetWorkload,budgetCost,actWorkload,actCost,expectResult,opStep,currResult,refRequire,bugSeverity,bugType,tagIds,tagNames,urls,ltime,qtype,caseExecId,remarks,productId,repRate,verNum,vpath,pverNum,bugReason,rate,initWorkload;<br>
* xm_question xm_question的所有字段名: <br> * xm_question xm_question的所有字段名: <br>
* id,name,project_id,project_name,case_id,case_name,end_time,ask_userid,ask_username,handler_userid,handler_username,priority,solution,description,create_userid,create_username,create_time,bug_status,biz_proc_inst_id,biz_flow_state,menu_id,menu_name,budget_workload,budget_cost,act_workload,act_cost,expect_result,op_step,curr_result,ref_require,bug_severity,bug_type,tag_ids,tag_names,urls,ltime,qtype,case_exec_id,remarks,product_id,rep_rate,ver_num,vpath,pver_num,bug_reason,rate,rworkload,eworkload;<br>
* id,name,project_id,project_name,case_id,case_name,end_time,ask_userid,ask_username,handler_userid,handler_username,priority,solution,description,create_userid,create_username,create_time,bug_status,biz_proc_inst_id,biz_flow_state,menu_id,menu_name,budget_workload,budget_cost,act_workload,act_cost,expect_result,op_step,curr_result,ref_require,bug_severity,bug_type,tag_ids,tag_names,urls,ltime,qtype,case_exec_id,remarks,product_id,rep_rate,ver_num,vpath,pver_num,bug_reason,rate,init_workload;<br>
* 当前主键(包括多主键):<br> * 当前主键(包括多主键):<br>
* id;<br> * id;<br>
*/ */
@ -158,11 +158,8 @@ public class XmQuestion implements java.io.Serializable {
@ApiModelProperty(notes="进度0-100",allowEmptyValue=true,example="",allowableValues="") @ApiModelProperty(notes="进度0-100",allowEmptyValue=true,example="",allowableValues="")
Integer rate; Integer rate;
@ApiModelProperty(notes="剩余工作量(永远不保存数据,参与estimate",allowEmptyValue=true,example="",allowableValues="")
BigDecimal rworkload;
@ApiModelProperty(notes="重新评估工作量,eeworkload=(rworkload+act_workload)",allowEmptyValue=true,example="",allowableValues="")
BigDecimal eworkload;
@ApiModelProperty(notes="原始预估工作量,budget_workload发生变化后,进行备份",allowEmptyValue=true,example="",allowableValues="")
BigDecimal initWorkload;
/**问题编号**/ /**问题编号**/
public XmQuestion(String id) { public XmQuestion(String id) {
@ -450,16 +447,10 @@ public class XmQuestion implements java.io.Serializable {
this.rate = rate; this.rate = rate;
} }
/** /**
* 剩余工作量(永远不保存数据参与estimate
**/
public void setRworkload(BigDecimal rworkload) {
this.rworkload = rworkload;
}
/**
* 重新评估工作量eeworkload=(rworkload+act_workload)
* 原始预估工作量budget_workload发生变化后进行备份
**/ **/
public void setEworkload(BigDecimal eworkload) {
this.eworkload = eworkload;
public void setInitWorkload(BigDecimal initWorkload) {
this.initWorkload = initWorkload;
} }
/** /**
@ -739,16 +730,10 @@ public class XmQuestion implements java.io.Serializable {
return this.rate; return this.rate;
} }
/** /**
* 剩余工作量(永远不保存数据参与estimate
**/
public BigDecimal getRworkload() {
return this.rworkload;
}
/**
* 重新评估工作量eeworkload=(rworkload+act_workload)
* 原始预估工作量budget_workload发生变化后进行备份
**/ **/
public BigDecimal getEworkload() {
return this.eworkload;
public BigDecimal getInitWorkload() {
return this.initWorkload;
} }
} }

35
xm-core/src/main/java/com/xm/core/entity/XmTask.java

@ -8,9 +8,9 @@ import java.math.BigDecimal;
/** /**
* 组织 com 顶级模块 xm 大模块 core 小模块 <br> * 组织 com 顶级模块 xm 大模块 core 小模块 <br>
* 实体 XmTask所有属性名: <br> * 实体 XmTask所有属性名: <br>
* id,name,parentTaskid,parentTaskname,projectId,projectName,level,sortLevel,executorUserid,executorUsername,preTaskid,preTaskname,startTime,endTime,milestone,description,remarks,createUserid,createUsername,createTime,rate,budgetCost,budgetWorkload,actCost,actWorkload,taskState,taskType,taskClass,toTaskCenter,actStartTime,actEndTime,bizProcInstId,bizFlowState,phaseId,phaseName,taskSkillNames,exeUsernames,taskSkillIds,exeUserids,taskOut,planType,settleSchemel,menuId,menuName,productId,cbranchId,cdeptid,tagIds,tagNames,ntype,childrenCnt,ltime,pidPaths,lvl,isTpl,keyPath,uniInnerPrice,uniOutPrice,calcType,ptype,wtype,bctrl,rworkload,eworkload;<br>
* id,name,parentTaskid,parentTaskname,projectId,projectName,level,sortLevel,executorUserid,executorUsername,preTaskid,preTaskname,startTime,endTime,milestone,description,remarks,createUserid,createUsername,createTime,rate,budgetCost,budgetWorkload,actCost,actWorkload,taskState,taskType,taskClass,toTaskCenter,actStartTime,actEndTime,bizProcInstId,bizFlowState,phaseId,phaseName,taskSkillNames,exeUsernames,taskSkillIds,exeUserids,taskOut,planType,settleSchemel,menuId,menuName,productId,cbranchId,cdeptid,tagIds,tagNames,ntype,childrenCnt,ltime,pidPaths,lvl,isTpl,keyPath,uniInnerPrice,uniOutPrice,calcType,ptype,wtype,bctrl,initWorkload;<br>
* xm_task xm_task的所有字段名: <br> * xm_task xm_task的所有字段名: <br>
* id,name,parent_taskid,parent_taskname,project_id,project_name,level,sort_level,executor_userid,executor_username,pre_taskid,pre_taskname,start_time,end_time,milestone,description,remarks,create_userid,create_username,create_time,rate,budget_cost,budget_workload,act_cost,act_workload,task_state,task_type,task_class,to_task_center,act_start_time,act_end_time,biz_proc_inst_id,biz_flow_state,phase_id,phase_name,task_skill_names,exe_usernames,task_skill_ids,exe_userids,task_out,plan_type,settle_schemel,menu_id,menu_name,product_id,cbranch_id,cdeptid,tag_ids,tag_names,ntype,children_cnt,ltime,pid_paths,lvl,is_tpl,key_path,uni_inner_price,uni_out_price,calc_type,ptype,wtype,bctrl,rworkload,eworkload;<br>
* id,name,parent_taskid,parent_taskname,project_id,project_name,level,sort_level,executor_userid,executor_username,pre_taskid,pre_taskname,start_time,end_time,milestone,description,remarks,create_userid,create_username,create_time,rate,budget_cost,budget_workload,act_cost,act_workload,task_state,task_type,task_class,to_task_center,act_start_time,act_end_time,biz_proc_inst_id,biz_flow_state,phase_id,phase_name,task_skill_names,exe_usernames,task_skill_ids,exe_userids,task_out,plan_type,settle_schemel,menu_id,menu_name,product_id,cbranch_id,cdeptid,tag_ids,tag_names,ntype,children_cnt,ltime,pid_paths,lvl,is_tpl,key_path,uni_inner_price,uni_out_price,calc_type,ptype,wtype,bctrl,init_workload;<br>
* 当前主键(包括多主键):<br> * 当前主键(包括多主键):<br>
* id;<br> * id;<br>
*/ */
@ -206,11 +206,8 @@ public class XmTask implements java.io.Serializable {
@ApiModelProperty(notes="报工限制0-不限制,1-不得超出预估工时",allowEmptyValue=true,example="",allowableValues="") @ApiModelProperty(notes="报工限制0-不限制,1-不得超出预估工时",allowEmptyValue=true,example="",allowableValues="")
String bctrl; String bctrl;
@ApiModelProperty(notes="剩余工作量(永远不保存数据,参与estimate",allowEmptyValue=true,example="",allowableValues="")
BigDecimal rworkload;
@ApiModelProperty(notes="重新评估工作量,eworkload=(rworkload+act_workload)",allowEmptyValue=true,example="",allowableValues="")
BigDecimal eworkload;
@ApiModelProperty(notes="原始预估工作量,budget_workload发生变化后,进行备份",allowEmptyValue=true,example="",allowableValues="")
BigDecimal initWorkload;
/**任务编号**/ /**任务编号**/
public XmTask(String id) { public XmTask(String id) {
@ -594,16 +591,10 @@ public class XmTask implements java.io.Serializable {
this.bctrl = bctrl; this.bctrl = bctrl;
} }
/** /**
* 剩余工作量(永远不保存数据参与estimate
**/
public void setRworkload(BigDecimal rworkload) {
this.rworkload = rworkload;
}
/**
* 重新评估工作量eworkload=(rworkload+act_workload)
* 原始预估工作量budget_workload发生变化后进行备份
**/ **/
public void setEworkload(BigDecimal eworkload) {
this.eworkload = eworkload;
public void setInitWorkload(BigDecimal initWorkload) {
this.initWorkload = initWorkload;
} }
/** /**
@ -979,16 +970,10 @@ public class XmTask implements java.io.Serializable {
return this.bctrl; return this.bctrl;
} }
/** /**
* 剩余工作量(永远不保存数据参与estimate
**/
public BigDecimal getRworkload() {
return this.rworkload;
}
/**
* 重新评估工作量eworkload=(rworkload+act_workload)
* 原始预估工作量budget_workload发生变化后进行备份
**/ **/
public BigDecimal getEworkload() {
return this.eworkload;
public BigDecimal getInitWorkload() {
return this.initWorkload;
} }
} }

16
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmQuestionMapper.xml

@ -140,7 +140,7 @@
insert into xm_question( insert into xm_question(
<include refid="columns"/> <include refid="columns"/>
) values ( ) values (
#{id},#{name},#{projectId},#{projectName},#{caseId},#{caseName},#{endTime},#{askUserid},#{askUsername},#{handlerUserid},#{handlerUsername},#{priority},#{solution},#{description},#{createUserid},#{createUsername},#{createTime},#{bugStatus},#{bizProcInstId},#{bizFlowState},#{menuId},#{menuName},#{budgetWorkload},#{budgetCost},#{actWorkload},#{actCost},#{expectResult},#{opStep},#{currResult},#{refRequire},#{bugSeverity},#{bugType},#{tagIds},#{tagNames},#{urls},#{ltime},#{qtype},#{caseExecId},#{remarks},#{productId},#{repRate},#{verNum},#{vpath},#{pverNum},#{bugReason},#{rate},#{rworkload},#{eworkload}
#{id},#{name},#{projectId},#{projectName},#{caseId},#{caseName},#{endTime},#{askUserid},#{askUsername},#{handlerUserid},#{handlerUsername},#{priority},#{solution},#{description},#{createUserid},#{createUsername},#{createTime},#{bugStatus},#{bizProcInstId},#{bizFlowState},#{menuId},#{menuName},#{budgetWorkload},#{budgetCost},#{actWorkload},#{actCost},#{expectResult},#{opStep},#{currResult},#{refRequire},#{bugSeverity},#{bugType},#{tagIds},#{tagNames},#{urls},#{ltime},#{qtype},#{caseExecId},#{remarks},#{productId},#{repRate},#{verNum},#{vpath},#{pverNum},#{bugReason},#{rate},#{initWorkload}
) )
</insert> </insert>
@ -203,7 +203,7 @@
<!--sql片段 列--> <!--sql片段 列-->
<sql id="columns"> <sql id="columns">
id,name,project_id,project_name,case_id,case_name,end_time,ask_userid,ask_username,handler_userid,handler_username,priority,solution,description,create_userid,create_username,create_time,bug_status,biz_proc_inst_id,biz_flow_state,menu_id,menu_name,budget_workload,budget_cost,act_workload,act_cost,expect_result,op_step,curr_result,ref_require,bug_severity,bug_type,tag_ids,tag_names,urls,ltime,qtype,case_exec_id,remarks,product_id,rep_rate,ver_num,vpath,pver_num,bug_reason,rate,rworkload,eworkload
id,name,project_id,project_name,case_id,case_name,end_time,ask_userid,ask_username,handler_userid,handler_username,priority,solution,description,create_userid,create_username,create_time,bug_status,biz_proc_inst_id,biz_flow_state,menu_id,menu_name,budget_workload,budget_cost,act_workload,act_cost,expect_result,op_step,curr_result,ref_require,bug_severity,bug_type,tag_ids,tag_names,urls,ltime,qtype,case_exec_id,remarks,product_id,rep_rate,ver_num,vpath,pver_num,bug_reason,rate,init_workload
</sql> </sql>
<!--sql片段 动态条件 YYYY-MM-DD HH24:MI:SS--> <!--sql片段 动态条件 YYYY-MM-DD HH24:MI:SS-->
@ -254,8 +254,7 @@
<if test="pverNum != null and pverNum != ''"> and res.pver_num = #{pverNum} </if> <if test="pverNum != null and pverNum != ''"> and res.pver_num = #{pverNum} </if>
<if test="bugReason != null and bugReason != ''"> and res.bug_reason = #{bugReason} </if> <if test="bugReason != null and bugReason != ''"> and res.bug_reason = #{bugReason} </if>
<if test="rate != null and rate != ''"> and res.rate = #{rate} </if> <if test="rate != null and rate != ''"> and res.rate = #{rate} </if>
<if test="rworkload != null and rworkload != ''"> and res.rworkload = #{rworkload} </if>
<if test="eworkload != null and eworkload != ''"> and res.eworkload = #{eworkload} </if>
<if test="initWorkload != null and initWorkload != ''"> and res.init_workload = #{initWorkload} </if>
</sql> </sql>
<!--sql片段 更新字段 --> <!--sql片段 更新字段 -->
<sql id="set"> <sql id="set">
@ -304,8 +303,7 @@
pver_num = #{pverNum}, pver_num = #{pverNum},
bug_reason = #{bugReason}, bug_reason = #{bugReason},
rate = #{rate}, rate = #{rate},
rworkload = #{rworkload},
eworkload = #{eworkload}
init_workload = #{initWorkload}
</sql> </sql>
<sql id="someFieldSet"> <sql id="someFieldSet">
<if test="name != null and name != ''"> name = #{name}, </if> <if test="name != null and name != ''"> name = #{name}, </if>
@ -353,8 +351,7 @@
<if test="pverNum != null and pverNum != ''"> pver_num = #{pverNum}, </if> <if test="pverNum != null and pverNum != ''"> pver_num = #{pverNum}, </if>
<if test="bugReason != null and bugReason != ''"> bug_reason = #{bugReason}, </if> <if test="bugReason != null and bugReason != ''"> bug_reason = #{bugReason}, </if>
<if test="rate != null and rate != ''"> rate = #{rate}, </if> <if test="rate != null and rate != ''"> rate = #{rate}, </if>
<if test="rworkload != null and rworkload != ''"> rworkload = #{rworkload}, </if>
<if test="eworkload != null and eworkload != ''"> eworkload = #{eworkload}, </if>
<if test="initWorkload != null and initWorkload != ''"> init_workload = #{initWorkload}, </if>
</sql> </sql>
<!--sql片段 批量更新 --> <!--sql片段 批量更新 -->
<sql id="batchSet"> <sql id="batchSet">
@ -403,7 +400,6 @@
pver_num = #{item.pverNum}, pver_num = #{item.pverNum},
bug_reason = #{item.bugReason}, bug_reason = #{item.bugReason},
rate = #{item.rate}, rate = #{item.rate},
rworkload = #{item.rworkload},
eworkload = #{item.eworkload}
init_workload = #{item.initWorkload}
</sql> </sql>
</mapper> </mapper>

16
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

@ -449,7 +449,7 @@
insert into xm_task( insert into xm_task(
<include refid="columns"/> <include refid="columns"/>
) values ( ) values (
#{id},#{name},#{parentTaskid},#{parentTaskname},#{projectId},#{projectName},#{level},#{sortLevel},#{executorUserid},#{executorUsername},#{preTaskid},#{preTaskname},#{startTime},#{endTime},#{milestone},#{description},#{remarks},#{createUserid},#{createUsername},#{createTime},#{rate},#{budgetCost},#{budgetWorkload},#{actCost},#{actWorkload},#{taskState},#{taskType},#{taskClass},#{toTaskCenter},#{actStartTime},#{actEndTime},#{bizProcInstId},#{bizFlowState},#{phaseId},#{phaseName},#{taskSkillNames},#{exeUsernames},#{taskSkillIds},#{exeUserids},#{taskOut},#{planType},#{settleSchemel},#{menuId},#{menuName},#{productId},#{cbranchId},#{cdeptid},#{tagIds},#{tagNames},#{ntype},#{childrenCnt},#{ltime},#{pidPaths},#{lvl},#{isTpl},#{keyPath},#{uniInnerPrice},#{uniOutPrice},#{calcType},#{ptype},#{wtype},#{bctrl},#{rworkload},#{eworkload}
#{id},#{name},#{parentTaskid},#{parentTaskname},#{projectId},#{projectName},#{level},#{sortLevel},#{executorUserid},#{executorUsername},#{preTaskid},#{preTaskname},#{startTime},#{endTime},#{milestone},#{description},#{remarks},#{createUserid},#{createUsername},#{createTime},#{rate},#{budgetCost},#{budgetWorkload},#{actCost},#{actWorkload},#{taskState},#{taskType},#{taskClass},#{toTaskCenter},#{actStartTime},#{actEndTime},#{bizProcInstId},#{bizFlowState},#{phaseId},#{phaseName},#{taskSkillNames},#{exeUsernames},#{taskSkillIds},#{exeUserids},#{taskOut},#{planType},#{settleSchemel},#{menuId},#{menuName},#{productId},#{cbranchId},#{cdeptid},#{tagIds},#{tagNames},#{ntype},#{childrenCnt},#{ltime},#{pidPaths},#{lvl},#{isTpl},#{keyPath},#{uniInnerPrice},#{uniOutPrice},#{calcType},#{ptype},#{wtype},#{bctrl},#{initWorkload}
) )
</insert> </insert>
@ -512,7 +512,7 @@
<!--sql片段 列--> <!--sql片段 列-->
<sql id="columns"> <sql id="columns">
id,name,parent_taskid,parent_taskname,project_id,project_name,level,sort_level,executor_userid,executor_username,pre_taskid,pre_taskname,start_time,end_time,milestone,description,remarks,create_userid,create_username,create_time,rate,budget_cost,budget_workload,act_cost,act_workload,task_state,task_type,task_class,to_task_center,act_start_time,act_end_time,biz_proc_inst_id,biz_flow_state,phase_id,phase_name,task_skill_names,exe_usernames,task_skill_ids,exe_userids,task_out,plan_type,settle_schemel,menu_id,menu_name,product_id,cbranch_id,cdeptid,tag_ids,tag_names,ntype,children_cnt,ltime,pid_paths,lvl,is_tpl,key_path,uni_inner_price,uni_out_price,calc_type,ptype,wtype,bctrl,rworkload,eworkload
id,name,parent_taskid,parent_taskname,project_id,project_name,level,sort_level,executor_userid,executor_username,pre_taskid,pre_taskname,start_time,end_time,milestone,description,remarks,create_userid,create_username,create_time,rate,budget_cost,budget_workload,act_cost,act_workload,task_state,task_type,task_class,to_task_center,act_start_time,act_end_time,biz_proc_inst_id,biz_flow_state,phase_id,phase_name,task_skill_names,exe_usernames,task_skill_ids,exe_userids,task_out,plan_type,settle_schemel,menu_id,menu_name,product_id,cbranch_id,cdeptid,tag_ids,tag_names,ntype,children_cnt,ltime,pid_paths,lvl,is_tpl,key_path,uni_inner_price,uni_out_price,calc_type,ptype,wtype,bctrl,init_workload
</sql> </sql>
<!--sql片段 动态条件 YYYY-MM-DD HH24:MI:SS--> <!--sql片段 动态条件 YYYY-MM-DD HH24:MI:SS-->
@ -579,8 +579,7 @@
<if test="ptype != null and ptype != ''"> and res.ptype = #{ptype} </if> <if test="ptype != null and ptype != ''"> and res.ptype = #{ptype} </if>
<if test="wtype != null and wtype != ''"> and res.wtype = #{wtype} </if> <if test="wtype != null and wtype != ''"> and res.wtype = #{wtype} </if>
<if test="bctrl != null and bctrl != ''"> and res.bctrl = #{bctrl} </if> <if test="bctrl != null and bctrl != ''"> and res.bctrl = #{bctrl} </if>
<if test="rworkload != null and rworkload != ''"> and res.rworkload = #{rworkload} </if>
<if test="eworkload != null and eworkload != ''"> and res.eworkload = #{eworkload} </if>
<if test="initWorkload != null and initWorkload != ''"> and res.init_workload = #{initWorkload} </if>
</sql> </sql>
<!--sql片段 更新字段 --> <!--sql片段 更新字段 -->
<sql id="set"> <sql id="set">
@ -645,8 +644,7 @@
ptype = #{ptype}, ptype = #{ptype},
wtype = #{wtype}, wtype = #{wtype},
bctrl = #{bctrl}, bctrl = #{bctrl},
rworkload = #{rworkload},
eworkload = #{eworkload}
init_workload = #{initWorkload}
</sql> </sql>
<sql id="someFieldSet"> <sql id="someFieldSet">
<if test="name != null and name != ''"> name = #{name}, </if> <if test="name != null and name != ''"> name = #{name}, </if>
@ -710,8 +708,7 @@
<if test="ptype != null and ptype != ''"> ptype = #{ptype}, </if> <if test="ptype != null and ptype != ''"> ptype = #{ptype}, </if>
<if test="wtype != null and wtype != ''"> wtype = #{wtype}, </if> <if test="wtype != null and wtype != ''"> wtype = #{wtype}, </if>
<if test="bctrl != null and bctrl != ''"> bctrl = #{bctrl}, </if> <if test="bctrl != null and bctrl != ''"> bctrl = #{bctrl}, </if>
<if test="rworkload != null and rworkload != ''"> rworkload = #{rworkload}, </if>
<if test="eworkload != null and eworkload != ''"> eworkload = #{eworkload}, </if>
<if test="initWorkload != null and initWorkload != ''"> init_workload = #{initWorkload}, </if>
</sql> </sql>
<!--sql片段 批量更新 --> <!--sql片段 批量更新 -->
<sql id="batchSet"> <sql id="batchSet">
@ -776,7 +773,6 @@
ptype = #{item.ptype}, ptype = #{item.ptype},
wtype = #{item.wtype}, wtype = #{item.wtype},
bctrl = #{item.bctrl}, bctrl = #{item.bctrl},
rworkload = #{item.rworkload},
eworkload = #{item.eworkload}
init_workload = #{item.initWorkload}
</sql> </sql>
</mapper> </mapper>
Loading…
Cancel
Save