2 changed files with 0 additions and 316 deletions
-
220xm-core/src/main/java/com/xm/core/ctrl/XmMenuPlanController.java
-
96xm-core/src/main/java/com/xm/core/service/XmMenuPlanService.java
@ -1,220 +0,0 @@ |
|||||
package com.xm.core.ctrl; |
|
||||
|
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||
import com.mdp.core.entity.Result; |
|
||||
import com.mdp.core.entity.Tips; |
|
||||
import com.mdp.core.query.QueryTools; |
|
||||
import com.mdp.core.utils.RequestUtils; |
|
||||
import com.mdp.safe.client.entity.User; |
|
||||
import com.mdp.safe.client.utils.LoginUtils; |
|
||||
import com.xm.core.entity.XmBranchStateHis; |
|
||||
import com.xm.core.entity.XmMenuPlan; |
|
||||
import com.xm.core.service.XmMenuPlanService; |
|
||||
import com.xm.core.service.push.XmMenuPushMsgService; |
|
||||
import com.xm.core.vo.XmMenuPlanVo; |
|
||||
import io.swagger.annotations.*; |
|
||||
import org.apache.commons.logging.Log; |
|
||||
import org.apache.commons.logging.LogFactory; |
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||
import org.springframework.web.bind.annotation.*; |
|
||||
import springfox.documentation.annotations.ApiIgnore; |
|
||||
|
|
||||
import java.util.List; |
|
||||
import java.util.Map; |
|
||||
/** |
|
||||
* url编制采用rest风格,如对XM.xm_menu_plan 功能计划表,无需前端维护,所有数据由汇总统计得出的操作有增删改查,对应的url分别为:<br> |
|
||||
* 新增: xm/xmMenuPlan/add <br> |
|
||||
* 查询: xm/xmMenuPlan/list<br> |
|
||||
* 模糊查询: xm/xmMenuPlan/listKey<br> |
|
||||
* 修改: xm/xmMenuPlan/edit <br> |
|
||||
* 删除: xm/xmMenuPlan/del<br> |
|
||||
* 批量删除: xm/xmMenuPlan/batchDel<br> |
|
||||
* 组织 com.qqkj 顶级模块 oa 大模块 xm 小模块 <br> |
|
||||
* 实体 XmMenuPlan 表 XM.xm_menu_plan 当前主键(包括多主键): id; |
|
||||
***/ |
|
||||
@RestController("xm.core.xmMenuPlanController") |
|
||||
@RequestMapping(value="/**/xm/core/xmMenuPlan") |
|
||||
@Api(tags={"功能计划表,无需前端维护,所有数据由汇总统计得出操作接口"}) |
|
||||
public class XmMenuPlanController { |
|
||||
|
|
||||
static Log logger=LogFactory.getLog(XmMenuPlanController.class); |
|
||||
|
|
||||
@Autowired |
|
||||
private XmMenuPlanService xmMenuPlanService; |
|
||||
|
|
||||
@Autowired |
|
||||
XmMenuPushMsgService pushMsgService ; |
|
||||
|
|
||||
|
|
||||
@ApiOperation( value = "查询功能计划表,无需前端维护,所有数据由汇总统计得出信息列表",notes="listXmMenuPlan,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}") |
|
||||
@ApiImplicitParams({ |
|
||||
@ApiImplicitParam(name="id",value="主键,主键",required=false), |
|
||||
@ApiImplicitParam(name="projectId",value="项目编号",required=false), |
|
||||
@ApiImplicitParam(name="projectName",value="项目名称",required=false), |
|
||||
@ApiImplicitParam(name="menuId",value="功能编号",required=false), |
|
||||
@ApiImplicitParam(name="planStartTime",value="开始时间",required=false), |
|
||||
@ApiImplicitParam(name="planEndTime",value="结束时间",required=false), |
|
||||
@ApiImplicitParam(name="actStartTime",value="实际开始时间",required=false), |
|
||||
@ApiImplicitParam(name="actEndTime",value="实际结束时间",required=false), |
|
||||
@ApiImplicitParam(name="planWorkload",value="计划工作量,根据关联任务汇总",required=false), |
|
||||
@ApiImplicitParam(name="actWorkload",value="实际工作量,根据关联任务汇总",required=false), |
|
||||
@ApiImplicitParam(name="planCostAmount",value="计划成本,根据关联任务汇总",required=false), |
|
||||
@ApiImplicitParam(name="actCostAmount",value="实际成本金额根据关联任务汇总",required=false), |
|
||||
@ApiImplicitParam(name="finishRate",value="总体完成比例0-100之间,根据taskType进行汇总",required=false), |
|
||||
@ApiImplicitParam(name="demandRate",value="需求完成率0-100之间,根据taskType进行汇总",required=false), |
|
||||
@ApiImplicitParam(name="designRate",value="设计完成率0-100之间,根据taskType进行汇总",required=false), |
|
||||
@ApiImplicitParam(name="devRate",value="开发完成率0-100之间,根据taskType进行汇总",required=false), |
|
||||
@ApiImplicitParam(name="uatRate",value="uat测试完成率0-100之间,根据taskType进行汇总",required=false), |
|
||||
@ApiImplicitParam(name="sitRate",value="sit测试完成率0-100之间,根据taskType进行汇总",required=false), |
|
||||
@ApiImplicitParam(name="onlineStatus",value="上线状态0未上线1上线成功",required=false), |
|
||||
@ApiImplicitParam(name="onlineTime",value="上线时间",required=false), |
|
||||
@ApiImplicitParam(name="planStatus",value="计划状态0初始1正常2暂停3延误4结束5关闭",required=false), |
|
||||
@ApiImplicitParam(name="chargeUserid",value="负责人编号",required=false), |
|
||||
@ApiImplicitParam(name="chargeUsername",value="负责人姓名",required=false), |
|
||||
@ApiImplicitParam(name="menuStatus",value="状态0初始1设计中2开发中3测试中4uat测试2已上线3已下线4已删除",required=false), |
|
||||
@ApiImplicitParam(name="ctime",value="创建时间",required=false), |
|
||||
@ApiImplicitParam(name="ltime",value="更新时间",required=false), |
|
||||
@ApiImplicitParam(name="cuserid",value="创建人编号",required=false), |
|
||||
@ApiImplicitParam(name="cusername",value="创建人姓名",required=false), |
|
||||
@ApiImplicitParam(name="calcTime",value="汇总时间",required=false), |
|
||||
@ApiImplicitParam(name="menuName",value="菜单名字",required=false), |
|
||||
@ApiImplicitParam(name="planWorkhours",value="工时数",required=false), |
|
||||
@ApiImplicitParam(name="planWorkerCnt",value="总人数",required=false), |
|
||||
@ApiImplicitParam(name="closedBugs",value="总关闭bugs",required=false), |
|
||||
@ApiImplicitParam(name="activeBugs",value="激活bugs",required=false), |
|
||||
@ApiImplicitParam(name="confirmedBugs",value="已确认bugs总数",required=false), |
|
||||
@ApiImplicitParam(name="resolvedBugs",value="已解决bugs总数",required=false), |
|
||||
@ApiImplicitParam(name="testCases",value="测试案例总数",required=false), |
|
||||
@ApiImplicitParam(name="execCases",value="测试中案例总数",required=false), |
|
||||
@ApiImplicitParam(name="designCases",value="设计中案例总数",required=false), |
|
||||
@ApiImplicitParam(name="finishCases",value="完成案例总数",required=false), |
|
||||
@ApiImplicitParam(name="iterationCnt",value="关联迭代数",required=false), |
|
||||
@ApiImplicitParam(name="taskCnt",value="任务数",required=false), |
|
||||
@ApiImplicitParam(name="finishTaskCnt",value="完成的任务数",required=false), |
|
||||
@ApiImplicitParam(name="pageSize",value="每页记录数",required=false), |
|
||||
@ApiImplicitParam(name="pageNum",value="当前页码,从1开始",required=false), |
|
||||
@ApiImplicitParam(name="total",value="总记录数,服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算",required=false), |
|
||||
@ApiImplicitParam(name="orderBy",value="排序列 如性别、学生编号排序 orderBy = sex desc,student_id desc",required=false), |
|
||||
@ApiImplicitParam(name="count",value="是否进行总条数计算,count=true|false",required=false) |
|
||||
}) |
|
||||
@ApiResponses({ |
|
||||
@ApiResponse(code = 200,response=XmMenuPlan.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'错误码'},total:总记录数,data:[数据对象1,数据对象2,...]}") |
|
||||
}) |
|
||||
@RequestMapping(value="/list",method=RequestMethod.GET) |
|
||||
public Result listXmMenuPlan(@ApiIgnore @RequestParam Map<String,Object> params){ |
|
||||
|
|
||||
RequestUtils.transformArray(params, "ids"); |
|
||||
RequestUtils.transformArray(params, "tagIdList"); |
|
||||
IPage page=QueryTools.initPage(params); |
|
||||
QueryWrapper<XmMenuPlan> qw = QueryTools.initQueryWrapper(XmMenuPlan.class , params); |
|
||||
List<Map<String,Object>> datas = xmMenuPlanService.selectListMapByWhere(page,qw,params); |
|
||||
return Result.ok("query-ok","查询成功").setData(datas).setTotal(page.getTotal()); //列出XmMenuPlan列表 |
|
||||
|
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
/***/ |
|
||||
@ApiOperation( value = "新增一条功能计划表,无需前端维护,所有数据由汇总统计得出信息",notes="addXmMenuPlan,主键如果为空,后台自动生成") |
|
||||
@ApiResponses({ |
|
||||
@ApiResponse(code = 200,response=XmMenuPlan.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") |
|
||||
}) |
|
||||
//@HasQx(value = "xm_core_xmMenuPlan_add",name = "新增需求计划",moduleId = "xm-project",moduleName = "管理端-项目管理系统") |
|
||||
@RequestMapping(value="/add",method=RequestMethod.POST) |
|
||||
public Result addXmMenuPlan(@RequestBody XmMenuPlan xmMenuPlan) { |
|
||||
|
|
||||
if(xmMenuPlanService.countByWhere(xmMenuPlan)>0){ |
|
||||
return Result.error("编号重复,请修改编号再提交"); |
|
||||
|
|
||||
} |
|
||||
xmMenuPlanService.insert(xmMenuPlan); |
|
||||
return Result.ok(); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/***/ |
|
||||
@ApiOperation( value = "删除一条功能计划表,无需前端维护,所有数据由汇总统计得出信息",notes="delXmMenuPlan,仅需要上传主键字段") |
|
||||
@ApiResponses({ |
|
||||
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}") |
|
||||
}) |
|
||||
//@HasQx(value = "xm_core_xmMenuPlan_del",name = "删除需求计划",moduleId = "xm-project",moduleName = "管理端-项目管理系统") |
|
||||
@RequestMapping(value="/del",method=RequestMethod.POST) |
|
||||
public Result delXmMenuPlan(@RequestBody XmMenuPlan xmMenuPlan){ |
|
||||
|
|
||||
xmMenuPlanService.deleteByPk(xmMenuPlan); |
|
||||
User user = LoginUtils.getCurrentUserInfo(); |
|
||||
pushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmMenuPlan.getMenuId(), user.getUserid(), user.getUsername(), xmMenuPlan.getMenuName()+"相关计划删除"); |
|
||||
return Result.ok(); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/***/ |
|
||||
@ApiOperation( value = "根据主键修改一条功能计划表,无需前端维护,所有数据由汇总统计得出信息",notes="editXmMenuPlan") |
|
||||
@ApiResponses({ |
|
||||
@ApiResponse(code = 200,response=XmMenuPlan.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") |
|
||||
}) |
|
||||
//@HasQx(value = "xm_core_xmMenuPlan_edit",name = "修改需求计划",moduleId = "xm-project",moduleName = "管理端-项目管理系统") |
|
||||
@RequestMapping(value="/edit",method=RequestMethod.POST) |
|
||||
public Result editXmMenuPlan(@RequestBody XmMenuPlan xmMenuPlan) { |
|
||||
|
|
||||
xmMenuPlanService.updateByPk(xmMenuPlan); |
|
||||
User user = LoginUtils.getCurrentUserInfo(); |
|
||||
pushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmMenuPlan.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"对需求【"+xmMenuPlan.getMenuName()+"】相关计划进行调整,需求负责人为【"+xmMenuPlan.getChargeUsername()+"】"); |
|
||||
return Result.ok(); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
/***/ |
|
||||
@ApiOperation( value = "根据主键列表批量删除功能计划表,无需前端维护,所有数据由汇总统计得出信息",notes="batchDelXmMenuPlan,仅需要上传主键字段") |
|
||||
@ApiResponses({ |
|
||||
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}") |
|
||||
}) |
|
||||
//@HasQx(value = "xm_core_xmMenuPlan_batchDel",name = "批量删除需求计划",moduleId = "xm-project",moduleName = "管理端-项目管理系统") |
|
||||
@RequestMapping(value="/batchDel",method=RequestMethod.POST) |
|
||||
public Result batchDelXmMenuPlan(@RequestBody List<XmMenuPlan> xmMenuPlans) { |
|
||||
|
|
||||
xmMenuPlanService.batchDelete(xmMenuPlans); |
|
||||
return Result.ok(); |
|
||||
} |
|
||||
@ApiOperation( value = "根据主键列表批量删除功能计划表,无需前端维护,所有数据由汇总统计得出信息",notes="batchEditXmMenuPlan,仅需要上传主键字段") |
|
||||
@ApiResponses({ |
|
||||
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}") |
|
||||
}) |
|
||||
//@HasQx(value = "xm_core_xmMenuPlan_batchEdit",name = "批量修改需求计划",moduleId = "xm-project",moduleName = "管理端-项目管理系统") |
|
||||
@RequestMapping(value="/batchEdit",method=RequestMethod.POST) |
|
||||
public Result batchEditXmMenuPlan(@RequestBody List<XmMenuPlan> xmMenuPlans) { |
|
||||
|
|
||||
xmMenuPlanService.batchUpdate(xmMenuPlans); |
|
||||
User user = LoginUtils.getCurrentUserInfo(); |
|
||||
|
|
||||
for (XmMenuPlan xmMenuPlan : xmMenuPlans) { |
|
||||
pushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmMenuPlan.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"对需求【"+xmMenuPlan.getMenuName()+"】相关计划进行调整,需求负责人为【"+xmMenuPlan.getChargeUsername()+"】"); |
|
||||
} |
|
||||
return Result.ok(); |
|
||||
} |
|
||||
@ApiOperation( value = "根据主键列表批量删除功能计划表,无需前端维护,所有数据由汇总统计得出信息",notes="batchEditXmMenuPlan,仅需要上传主键字段") |
|
||||
@ApiResponses({ |
|
||||
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}") |
|
||||
}) |
|
||||
//@HasQx(value = "xm_core_xmMenuPlan_batchAddPlanByProjectIdAndMenuList",name = "由分配到项目的需求创建需求计划",moduleId = "xm-project",moduleName = "管理端-项目管理系统") |
|
||||
@RequestMapping(value="/batchAddPlanByProjectIdAndMenuList",method=RequestMethod.POST) |
|
||||
public Result batchAddPlanByProjectIdAndMenuList(@RequestBody XmMenuPlanVo vo) { |
|
||||
xmMenuPlanService.batchAddPlanByProjectIdAndMenuList(vo.getProjectId(), vo.getProjectName(), vo.getXmMenus()); |
|
||||
return Result.ok(); |
|
||||
} |
|
||||
|
|
||||
@ApiOperation( value = "计算bug、task、测试案例、等数据",notes="loadTasksToXmMenuPlan") |
|
||||
@ApiResponses({ |
|
||||
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}") |
|
||||
}) |
|
||||
//@HasQx(value = "xm_core_xmMenuPlan_loadTasksToXmMenuPlan",name = "计算需求对应的bug、task、测试案例等数据",moduleId = "xm-project",moduleName = "管理端-项目管理系统") |
|
||||
@RequestMapping(value="/loadTasksToXmMenuPlan",method=RequestMethod.POST) |
|
||||
public Result loadTasksToXmMenuPlan(@RequestBody Map<String,Object> params) { |
|
||||
|
|
||||
int i= xmMenuPlanService.loadTasksToXmMenuPlan((String) params.get("projectId")); |
|
||||
return Result.ok(); |
|
||||
} |
|
||||
} |
|
||||
@ -1,96 +0,0 @@ |
|||||
package com.xm.core.service; |
|
||||
|
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
||||
import com.mdp.core.entity.Tips; |
|
||||
import com.mdp.safe.client.entity.User; |
|
||||
import com.mdp.safe.client.utils.LoginUtils; |
|
||||
import com.xm.core.entity.XmMenu; |
|
||||
import com.xm.core.entity.XmMenuPlan; |
|
||||
import org.springframework.stereotype.Service; |
|
||||
import org.springframework.util.StringUtils; |
|
||||
|
|
||||
import java.util.*; |
|
||||
/** |
|
||||
* 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br> |
|
||||
* 组织 com.qqkj 顶级模块 oa 大模块 xm 小模块 <br> |
|
||||
* 实体 XmMenuPlan 表 XM.xm_menu_plan 当前主键(包括多主键): id; |
|
||||
***/ |
|
||||
@Service("xm.core.xmMenuPlanService") |
|
||||
public class XmMenuPlanService extends BaseService<XmMenuPlanMapper,XmMenuPlan> { |
|
||||
|
|
||||
/** |
|
||||
* 自定义查询,支持多表关联 |
|
||||
* @param page 分页条件 |
|
||||
* @param ew 一定要,并且必须加@Param("ew")注解 |
|
||||
* @param ext 如果xml中需要根据某些值进行特殊处理,可以通过这个进行传递,非必须,注解也可以不加 |
|
||||
* @return |
|
||||
*/ |
|
||||
public List<Map<String,Object>> selectListMapByWhere(IPage page, QueryWrapper ew, Map<String,Object> ext){ |
|
||||
return baseMapper.selectListMapByWhere(page,ew,ext); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 根据前端手动选择的功能列表及项目,批量插入到功能计划表中,如果有重复则忽略 |
|
||||
* @param projectId |
|
||||
* @param projectName |
|
||||
* @param menus |
|
||||
* @return |
|
||||
*/ |
|
||||
public Tips batchAddPlanByProjectIdAndMenuList(String projectId,String projectName,List<XmMenu> menus){ |
|
||||
|
|
||||
Tips tips =new Tips("批量新增成功"); |
|
||||
if(menus==null || menus.size()==0) { |
|
||||
tips.setFailureMsg("功能列表不能为空"); |
|
||||
return tips; |
|
||||
} |
|
||||
if(StringUtils.isEmpty(projectId)) { |
|
||||
tips.setFailureMsg("项目编号不能为空"); |
|
||||
return tips; |
|
||||
} |
|
||||
User user=LoginUtils.getCurrentUserInfo(); |
|
||||
XmMenuPlan queryPlan=new XmMenuPlan(); |
|
||||
queryPlan.setProjectId(projectId); |
|
||||
Map<String,XmMenu> menusMap=new HashMap<>(); |
|
||||
|
|
||||
|
|
||||
Map<String,XmMenuPlan> plansMap=new HashMap<>(); |
|
||||
List<XmMenuPlan> dbMenuPlans=this.selectListByWhere(queryPlan); |
|
||||
List<XmMenuPlan> addPlans=new ArrayList<>(); |
|
||||
for (XmMenuPlan xmMenuPlan : dbMenuPlans) { |
|
||||
plansMap.put(xmMenuPlan.getMenuId(), xmMenuPlan); |
|
||||
} |
|
||||
|
|
||||
for (XmMenu xmMenu : menus) { |
|
||||
menusMap.put(xmMenu.getMenuId(), xmMenu); |
|
||||
XmMenuPlan plan=plansMap.get(xmMenu.getMenuId()); |
|
||||
if(plan==null) { |
|
||||
plan=new XmMenuPlan(); |
|
||||
plan.setProjectId(projectId); |
|
||||
plan.setMenuId(xmMenu.getMenuId()); |
|
||||
plan.setMenuName(xmMenu.getMenuName()); |
|
||||
plan.setPlanStartTime(new Date()); |
|
||||
plan.setCtime(new Date()); |
|
||||
plan.setLtime(new Date()); |
|
||||
plan.setCuserid(user.getUserid()); |
|
||||
plan.setCusername(user.getUsername()); |
|
||||
plan.setProjectName(projectName); |
|
||||
addPlans.add(plan); |
|
||||
} |
|
||||
} |
|
||||
this.batchInsert(addPlans); |
|
||||
return tips; |
|
||||
|
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 计算bug、task、测试案例、等数据 |
|
||||
* @param projectId |
|
||||
* @return |
|
||||
*/ |
|
||||
public int loadTasksToXmMenuPlan(String projectId) { |
|
||||
|
|
||||
return baseMapper.loadTasksToXmMenuPlan( projectId); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue