Browse Source

Merge remote-tracking branch 'origin/master'

master
chentaiyu 4 years ago
parent
commit
ad8d78b7cb
  1. 13
      xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java
  2. 50
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  3. 40
      xm-core/src/main/java/com/xm/core/entity/XmQuestion.java
  4. 4
      xm-core/src/main/java/com/xm/core/service/XmMenuService.java
  5. 4
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java
  6. 9
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
  7. 14
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmQuestionMapper.xml
  8. 11
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

13
xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java

@ -273,6 +273,7 @@ public class XmMenuController {
}
xmMenuService.parentIdPathsCalcBeforeSave(xmMenu);
xmMenu.setStatus("0");
xmMenu.setChildrenCnt(0);
xmMenuService.insert(xmMenu);
xmRecordService.addXmMenuRecord(xmMenu.getProductId(),xmMenu.getMenuId(),"新增产品需求","新增需求"+xmMenu.getMenuName());
m.put("data",xmMenu);
@ -305,9 +306,15 @@ public class XmMenuController {
if(taskCount>0) {
tips.setFailureMsg("存在"+taskCount+"个任务关联该需求,不允许删除");
}else {
xmMenu=this.xmMenuService.selectOneObject(xmMenu);
List<String> ids=new ArrayList<>();
ids.add(xmMenu.getMenuId());
List<XmMenu> xmMenus=this.xmMenuService.selectListByIdsWithsChildrenCnt(ids);
if(xmMenus==null || xmMenus.size()==0){
return ResponseHelper.failed("data-0","数据不存在");
}
xmMenu=xmMenus.get(0);
if(xmMenu.getChildrenCnt()!=null && xmMenu.getChildrenCnt()>0){
return ResponseHelper.failed("hadChild","该需求池有子需求,不能删除");
return ResponseHelper.failed("hadChild","该需求有子需求,不能删除");
}
if(!groupService.calcCanOpMenus(xmMenu)){
return ResponseHelper.failed("noqx","您无权删除此需求。");
@ -440,7 +447,7 @@ public class XmMenuController {
List<XmMenu> noExists=new ArrayList<>();
List<String> hasChildMenus=new ArrayList<>();
List<XmMenu> canDelList=new ArrayList<>();
List<XmMenu> xmMenusDb=this.xmMenuService.selectListByIds(xmMenus.stream().map(i->i.getMenuId()).collect(Collectors.toList()));
List<XmMenu> xmMenusDb=this.xmMenuService.selectListByIdsWithsChildrenCnt(xmMenus.stream().map(i->i.getMenuId()).collect(Collectors.toList()));
for (XmMenu xmMenu : xmMenusDb) {
boolean canDel=this.xmMenuService.checkCanDelAllChild(xmMenu,xmMenusDb);
if(canDel){

50
xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java

@ -6,6 +6,7 @@ import com.mdp.audit.log.client.annotation.AuditLog;
import com.mdp.audit.log.client.annotation.OperType;
import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException;
import com.mdp.core.utils.BaseUtils;
import com.mdp.core.utils.NumberUtil;
import com.mdp.core.utils.RequestUtils;
import com.mdp.core.utils.ResponseHelper;
@ -279,6 +280,55 @@ public class XmTaskController {
return m;
}
/***/
@ApiOperation( value = "根据主键批量修改修改任务中的某些字段信息",notes="editXmMenu")
@ApiResponses({
@ApiResponse(code = 200,response=XmMenu.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
})
@HasQx(value = "xm_core_xmTask_editSomeFields",name = "批量修改修改任务中的某些字段",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/editSomeFields",method=RequestMethod.POST)
public Map<String,Object> editSomeFields(@RequestBody Map<String,Object> xmTaskMap) {
Map<String,Object> m = new HashMap<>();
Tips tips=new Tips("成功更新一条数据");
try{
List<String> ids= (List<String>) xmTaskMap.get("ids");
if(ids==null || ids.size()==0){
ResponseHelper.failed("ids-0","ids不能为空");
}
XmTask xmTask= BaseUtils.fromMap(xmTaskMap,XmTask.class);
List<XmTask> xmTasksDb=xmTaskService.selectListByIds(ids);
if(xmTasksDb==null ||xmTasksDb.size()==0){
ResponseHelper.failed("tasks-0","该任务已不存在");
}
List<XmTask> can=new ArrayList<>();
List<XmTask> no=new ArrayList<>();
if(can.size()<=0){
//return ResponseHelper.failed("noqx","您无权修改选中的任务。");
}
Set<String> fields=new HashSet<>();
fields.add("childrenCnt");
fields.add("ntype");
fields.add("pidPaths");
for (String fieldName : xmTaskMap.keySet()) {
if(fields.contains(fieldName)){
return ResponseHelper.failed(fieldName+"-no-edit",fieldName+"不允许修改");
}
}
xmTaskService.editSomeFields(xmTaskMap);
xmRecordService.addXmTaskRecord(xmTask.getProjectId(),xmTask.getId(),"修改项目任务","修改任务"+xmTask.getMenuName(),"", JSON.toJSONString(xmTask));
//m.put("data",xmMenu);
}catch (BizException e) {
tips=e.getTips();
logger.error("",e);
}catch (Exception e) {
tips.setFailureMsg(e.getMessage());
logger.error("",e);
}
m.put("tips", tips);
return m;
}
@ApiOperation( value = "查询任务的信息详情,免登录",notes="taskDetail,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}")
@ApiResponses({

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

@ -8,9 +8,9 @@ import java.math.BigDecimal;
/**
* 组织 com 顶级模块 xm 大模块 core 小模块 <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,iterationId,iterationName,caseExecId,remarks,productId,repRate,verNum,vpath,pverNum,bugReason,rate;<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;<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,iteration_id,iteration_name,case_exec_id,remarks,product_id,rep_rate,ver_num,vpath,pver_num,bug_reason,rate;<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;<br>
* 当前主键(包括多主键):<br>
* id;<br>
*/
@ -128,15 +128,9 @@ public class XmQuestion implements java.io.Serializable {
@ApiModelProperty(notes="最后更新时间",allowEmptyValue=true,example="",allowableValues="")
Date ltime;
@ApiModelProperty(notes="问题类型risk-风险、bug-功能问题、consult-普通咨询、",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="问题类型2-风险、1-功能问题、3-普通咨询、(暂时不用这个字段了)",allowEmptyValue=true,example="",allowableValues="")
String qtype;
@ApiModelProperty(notes="迭代编号",allowEmptyValue=true,example="",allowableValues="")
String iterationId;
@ApiModelProperty(notes="迭代名称",allowEmptyValue=true,example="",allowableValues="")
String iterationName;
@ApiModelProperty(notes="关联的案例执行编号",allowEmptyValue=true,example="",allowableValues="")
String caseExecId;
@ -390,23 +384,11 @@ public class XmQuestion implements java.io.Serializable {
this.ltime = ltime;
}
/**
* 问题类型risk-风险bug-功能问题consult-普通咨询
* 问题类型2-风险1-功能问题3-普通咨询暂时不用这个字段了
**/
public void setQtype(String qtype) {
this.qtype = qtype;
}
/**
* 迭代编号
**/
public void setIterationId(String iterationId) {
this.iterationId = iterationId;
}
/**
* 迭代名称
**/
public void setIterationName(String iterationName) {
this.iterationName = iterationName;
}
/**
* 关联的案例执行编号
**/
@ -679,23 +661,11 @@ public class XmQuestion implements java.io.Serializable {
return this.ltime;
}
/**
* 问题类型risk-风险bug-功能问题consult-普通咨询
* 问题类型2-风险1-功能问题3-普通咨询暂时不用这个字段了
**/
public String getQtype() {
return this.qtype;
}
/**
* 迭代编号
**/
public String getIterationId() {
return this.iterationId;
}
/**
* 迭代名称
**/
public String getIterationName() {
return this.iterationName;
}
/**
* 关联的案例执行编号
**/

4
xm-core/src/main/java/com/xm/core/service/XmMenuService.java

@ -305,5 +305,9 @@ public class XmMenuService extends BaseService {
public void editSomeFields(Map<String, Object> xmMenuMap) {
super.update("editSomeFields",xmMenuMap);
}
public List<XmMenu> selectListByIdsWithsChildrenCnt(List<String> ids) {
return super.selectList("selectListByIdsWithsChildrenCnt",ids);
}
}

4
xm-core/src/main/java/com/xm/core/service/XmTaskService.java

@ -721,5 +721,9 @@ public class XmTaskService extends BaseService {
public void updateActCostAndActWorkloadAfterSettle(String taskId,String toTaskState) {
super.update("updateActCostAndActWorkloadAfterSettle",map("id",taskId,"taskState",toTaskState));
}
public void editSomeFields(Map<String, Object> xmTaskMap) {
super.update("editSomeFields",xmTaskMap);
}
}

9
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml

@ -184,6 +184,15 @@
#{item}
</foreach>
</update>
<select id="selectListByIdsWithsChildrenCnt" parameterType="List" resultType="com.xm.core.entity.XmMenu">
select (select count(*) from xm_menu m where m.pmenu_id=res.menu_id) as children_cnt,res.* from xm_menu res
where (res.menu_id) in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")" >
( #{item})
</foreach>
</select>
<!--结束 自定义sql函数区域-->

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

@ -31,6 +31,8 @@
</if>
<if test="key != null and key !='' "> and res.name like #{key} </if>
<if test="work != null and work != ''"> and res.status != 'resolved' </if>
<if test="linkIterationId != null and linkIterationId != ''"> and exists (select 1 from xm_menu m where m.iteration_id=#{linkIterationId} and m.menu_id=res.menu_id) </if>
</sql>
<!-- 插入流程审批表数据 -->
<insert id="insertProcessApprova"
@ -138,7 +140,7 @@
insert into xm_question(
<include refid="columns"/>
) 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},#{iterationId},#{iterationName},#{caseExecId},#{remarks},#{productId},#{repRate},#{verNum},#{vpath},#{pverNum},#{bugReason},#{rate}
#{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}
)
</insert>
@ -201,7 +203,7 @@
<!--sql片段 列-->
<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,iteration_id,iteration_name,case_exec_id,remarks,product_id,rep_rate,ver_num,vpath,pver_num,bug_reason,rate
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
</sql>
<!--sql片段 动态条件 YYYY-MM-DD HH24:MI:SS-->
@ -243,8 +245,6 @@
<if test="urls != null and urls != ''"> and res.urls = #{urls} </if>
<if test="ltime != null"> and date_format(res.ltime,'%Y-%m-%d') = date_format(#{ltime},'%Y-%m-%d') </if>
<if test="qtype != null and qtype != ''"> and res.qtype = #{qtype} </if>
<if test="iterationId != null and iterationId != ''"> and res.iteration_id = #{iterationId} </if>
<if test="iterationName != null and iterationName != ''"> and res.iteration_name = #{iterationName} </if>
<if test="caseExecId != null and caseExecId != ''"> and res.case_exec_id = #{caseExecId} </if>
<if test="remarks != null and remarks != ''"> and res.remarks = #{remarks} </if>
<if test="productId != null and productId != ''"> and res.product_id = #{productId} </if>
@ -293,8 +293,6 @@
urls = #{urls},
ltime = #{ltime},
qtype = #{qtype},
iteration_id = #{iterationId},
iteration_name = #{iterationName},
case_exec_id = #{caseExecId},
remarks = #{remarks},
product_id = #{productId},
@ -342,8 +340,6 @@
<if test="urls != null and urls != ''"> urls = #{urls}, </if>
<if test="ltime != null"> ltime = #{ltime}, </if>
<if test="qtype != null and qtype != ''"> qtype = #{qtype}, </if>
<if test="iterationId != null and iterationId != ''"> iteration_id = #{iterationId}, </if>
<if test="iterationName != null and iterationName != ''"> iteration_name = #{iterationName}, </if>
<if test="caseExecId != null and caseExecId != ''"> case_exec_id = #{caseExecId}, </if>
<if test="remarks != null and remarks != ''"> remarks = #{remarks}, </if>
<if test="productId != null and productId != ''"> product_id = #{productId}, </if>
@ -392,8 +388,6 @@
urls = #{item.urls},
ltime = #{item.ltime},
qtype = #{item.qtype},
iteration_id = #{item.iterationId},
iteration_name = #{item.iterationName},
case_exec_id = #{item.caseExecId},
remarks = #{item.remarks},
product_id = #{item.productId},

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

@ -355,6 +355,17 @@
res.task_state=ifnull(#{taskState},res.task_state)
where id=#{id}
</update>
<update id="editSomeFields" parameterType="HashMap">
update xm_task
<set>
<include refid="someFieldSet"/>
</set>
where id in
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")" >
#{item}
</foreach>
</update>
<!--结束 自定义sql函数区域-->

Loading…
Cancel
Save