package com.idea.oa.testPlan.controller; import com.alibaba.fastjson.JSONArray; import com.github.pagehelper.PageInfo; import com.github.pagehelper.StringUtil; import com.idea.oa.task.model.ProTaskRelation; import com.idea.oa.task.model.ProTaskRelationExample; import com.idea.oa.task.service.ProTaskRelationService; import com.idea.oa.task.utils.ConstantsInfo; import com.idea.oa.testPlan.model.*; import com.idea.oa.testPlan.model.in.TestPlanIn; import com.idea.oa.testPlan.service.TestPlanCommanderService; import com.idea.oa.testPlan.service.TestPlanService; import com.rockstar.common.base.BaseController; import com.rockstar.common.domain.AjaxResult; import com.rockstar.frame.model.extend.DateTrans; import com.rockstar.frame.model.extend.TableSplitResult; import com.rockstar.frame.model.extend.Tablepar; import com.rockstar.shiro.util.ShiroUtils; import com.rockstar.util.SnowflakeIdWorker; import io.swagger.annotations.Api; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Date; import java.util.List; /** * Created by pengyq on 2020. */ @Controller @RequestMapping(value = "TestPlanController") @Api(value = "测试管理/测试计划") public class TestPlanController extends BaseController { @Autowired private ProTaskRelationService proTaskRelationService; //主表 @Autowired private TestPlanService modelService; @Autowired private TestPlanCommanderService testPlanCommanderService; @PostMapping(value = "list", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object list(Tablepar tablepar, TestPlan model, DateTrans dt) { PageInfo page = modelService.list(tablepar, model, dt); TableSplitResult result = new TableSplitResult(page.getPageNum(), page.getTotal(), page.getList()); return result; } /** * 对应页面(测试管理/测试计划)获取列表数组 * * @param tablepar * @param model * @param dt * @return */ @PostMapping(value = "listVo", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object listVo(Tablepar tablepar, TestPlanIn model, DateTrans dt) { List list = modelService.listVo(tablepar, model, dt); return list; } /** * 对应页面(测试管理/测试计划)获取列表总数 * * @param model * @param dt * @return */ @PostMapping(value = "getTotal", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object getTotal(TestPlanIn model, DateTrans dt) { Long total = modelService.getTotal(model, dt); return total; } @PostMapping(value = "listAll", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object listAll(TestPlan model, DateTrans dt) { return modelService.listAll(model, dt); } /** * 添加对象数据,对象数组中有多个负责人id,所以需要解析他们,并插入他们 * * @param info * @return */ @PostMapping(value = "add", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult add(String info) { System.out.println(info); if (info != null) { List testPlanIns = JSONArray.parseArray(info, TestPlanIn.class); StringBuilder addFirst=new StringBuilder(); for (TestPlanIn testPlanIn : testPlanIns) { testPlanIn.setCreatedAt(new Date()); testPlanIn.setUpdatedAt(testPlanIn.getCreatedAt()); testPlanIn.setCreatedBy(ShiroUtils.getUser().getId()); testPlanIn.setUpdatedBy(testPlanIn.getCreatedBy()); testPlanIn.setStatus(0); testPlanIn.setId(SnowflakeIdWorker.getUUID()); //添加主目录 modelService.insertWithoutId(testPlanIn); addFirst.append(testPlanIn.getId()+','); //下面是添加负责人 String handleUserId = testPlanIn.getHandleUserId(); if (!StringUtil.isEmpty(handleUserId)) { String[] userIds = handleUserId.split(","); for (int i = 0; i < userIds.length; i++) { TestPlanCommander testPlanCommander = new TestPlanCommander(); testPlanCommander.setPlanId(testPlanIn.getId()); testPlanCommander.setCommanderId(userIds[i]); testPlanCommander.setSort(i); testPlanCommander.setCreatedAt(new Date()); testPlanCommander.setCreatedBy(ShiroUtils.getUser().getId()); testPlanCommander.setStatus(0); testPlanCommanderService.insert(testPlanCommander); } } } // 判断是否存在关联任务id,注意任务编号已经改成任务id if(StringUtils.isNotEmpty(testPlanIns.get(0).getTaskNo())) { ProTaskRelationExample example1 = new ProTaskRelationExample(); example1.createCriteria().andTaskIdEqualTo(testPlanIns.get(0).getTaskNo()).andTaskRelationNameEqualTo(ConstantsInfo.TEST_PLAN); List proTaskRelations = proTaskRelationService.selectByExample(example1); if(proTaskRelations!=null&&proTaskRelations.size()>0){ ProTaskRelation proTaskRelation = proTaskRelations.get(0); proTaskRelation.setStatus(ConstantsInfo.RELATION_TASK_COM); proTaskRelation.setFirst(addFirst.toString()); proTaskRelationService.updateByPrimaryKeySelective(proTaskRelation); } } return result(1); } else { return result(-1); } } @PostMapping(value = "remove/{id}", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult remove(@PathVariable("id") String id) { int result = 0; {//这是正式删除 // result = modelService.deleteByPrimaryKey(id); // TestPlanCommanderExample testUsecaseStepExample = new TestPlanCommanderExample(); // testUsecaseStepExample.createCriteria().andPlanIdEqualTo(id); // testPlanCommanderService.deleteByExample(testUsecaseStepExample); } {//这是修改删除 TestPlanIn record = new TestPlanIn(); record.setId(id); record.setStatus(1); record.setUpdatedBy(ShiroUtils.getUser().getId()); record.setUpdatedAt(new Date()); result = modelService.updateByPrimaryKeySelective(record); TestPlanCommander testUsecaseStep = new TestPlanCommander(); testUsecaseStep.setStatus(1); TestPlanCommanderExample testUsecaseStepExample = new TestPlanCommanderExample(); testUsecaseStepExample.createCriteria().andPlanIdEqualTo(id); testPlanCommanderService.updateByExampleSelective(testUsecaseStep, testUsecaseStepExample); } return result(result); } /** * 修改对象数据,对象数组中有多个负责人id,所以需要解析他们,并插入他们 * * @param info * @return */ @PostMapping(value = "edit", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult editSave(String info) { System.out.println("edit:" + info); if (info != null) { List testPlanIns = JSONArray.parseArray(info, TestPlanIn.class); for (TestPlanIn testPlanIn : testPlanIns) { if (!StringUtil.isEmpty(testPlanIn.getId())) { testPlanIn.setUpdatedBy(ShiroUtils.getUser().getId()); testPlanIn.setUpdatedAt(new Date()); testPlanIn.setCreatedAt(null); testPlanIn.setCreatedBy(null); modelService.updateByPrimaryKeySelective(testPlanIn); //先删除负责人,再添加负责人 TestPlanCommanderExample example = new TestPlanCommanderExample(); example.createCriteria().andPlanIdEqualTo(testPlanIn.getId()); testPlanCommanderService.deleteByExample(example); //下面是添加负责人 String handleUserId = testPlanIn.getHandleUserId(); if (!StringUtil.isEmpty(handleUserId)) { String[] userIds = handleUserId.split(","); for (int i = 0; i < userIds.length; i++) { TestPlanCommander testPlanCommander = new TestPlanCommander(); testPlanCommander.setPlanId(testPlanIn.getId()); testPlanCommander.setCommanderId(userIds[i]); testPlanCommander.setSort(i); testPlanCommander.setCreatedAt(new Date()); testPlanCommander.setCreatedBy(ShiroUtils.getUser().getId()); testPlanCommander.setStatus(0); testPlanCommanderService.insert(testPlanCommander); } } }else{ testPlanIn.setCreatedAt(new Date()); testPlanIn.setUpdatedAt(testPlanIn.getCreatedAt()); testPlanIn.setCreatedBy(ShiroUtils.getUser().getId()); testPlanIn.setUpdatedBy(testPlanIn.getCreatedBy()); testPlanIn.setStatus(0); testPlanIn.setId(SnowflakeIdWorker.getUUID()); //添加主目录 modelService.insertWithoutId(testPlanIn); //下面是添加负责人 String handleUserId = testPlanIn.getHandleUserId(); if (!StringUtil.isEmpty(handleUserId)) { String[] userIds = handleUserId.split(","); for (int i = 0; i < userIds.length; i++) { TestPlanCommander testPlanCommander = new TestPlanCommander(); testPlanCommander.setPlanId(testPlanIn.getId()); testPlanCommander.setCommanderId(userIds[i]); testPlanCommander.setSort(i); testPlanCommander.setCreatedAt(new Date()); testPlanCommander.setCreatedBy(ShiroUtils.getUser().getId()); testPlanCommander.setStatus(0); testPlanCommanderService.insert(testPlanCommander); } } } } return result(1); } else { return result(-1); } } /** * 修改计划状态 * @param info * @return */ @PostMapping(value = "editStatus", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult editStatus(String info) { System.out.println("editStatus:" + info); if (info != null) { List testPlanIns = JSONArray.parseArray(info, TestPlanIn.class); for (TestPlanIn testPlanIn : testPlanIns) { if (!StringUtil.isEmpty(testPlanIn.getId())) { TestPlanIn newTestPlanIn = new TestPlanIn(); newTestPlanIn.setId(testPlanIn.getId()); //对状态说明或者备注 newTestPlanIn.setStatusremark(testPlanIn.getStatusremark()); newTestPlanIn.setStatus(testPlanIn.getStatus()); newTestPlanIn.setUpdatedBy(ShiroUtils.getUser().getId()); newTestPlanIn.setUpdatedAt(new Date()); modelService.updateByPrimaryKeySelective(newTestPlanIn); } } return result(1); } else { return result(-1); } } @PostMapping(value = "getById", produces = {"application/json;charset=UTF-8"}) @ResponseBody public TestPlan getById(String id) { return modelService.selectByPrimaryKey(id); } /** * 前端根据id获取数据 * * @param id * @return */ @PostMapping(value = "getVoById", produces = {"application/json;charset=UTF-8"}) @ResponseBody public TestPlanIn getVoById(String id) { return modelService.getVoById(id); } /** * 前端根据ids获取数据, ids是类似数组的字符串,例如:1684651,6431,或者:135456135 又或者:1651631,等 * * @param ids * @return */ @PostMapping(value = "getVoByIds", produces = {"application/json;charset=UTF-8"}) @ResponseBody public List getVoByIds(String ids) { return modelService.getVoByIds(ids); } } package com.idea.oa.testPlan.controller; import com.alibaba.fastjson.JSONArray; import com.github.pagehelper.PageInfo; import com.idea.oa.testPlan.model.TestUsecase; import com.idea.oa.testPlan.model.TestUsecaseStep; import com.idea.oa.testPlan.model.TestUsecaseStepExample; import com.idea.oa.testPlan.model.in.TestUsecaseIn; import com.idea.oa.testPlan.service.TestUsecaseService; import com.idea.oa.testPlan.service.TestUsecaseStepService; import com.rockstar.common.base.BaseController; import com.rockstar.common.domain.AjaxResult; import com.rockstar.frame.model.extend.DateTrans; import com.rockstar.frame.model.extend.TableSplitResult; import com.rockstar.frame.model.extend.Tablepar; import com.rockstar.shiro.util.ShiroUtils; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * Created by pengyq on 2020. */ @Controller @RequestMapping(value = "TestUsecaseController") @Api(value = "测试管理/用例库") public class TestUsecaseController extends BaseController { //主表 @Autowired private TestUsecaseService modelService; @Autowired private TestUsecaseStepService testUsecaseStepService; @PostMapping(value = "list", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object list(Tablepar tablepar, TestUsecase model, DateTrans dt) { PageInfo page = modelService.list(tablepar, model, dt); TableSplitResult result = new TableSplitResult(page.getPageNum(), page.getTotal(), page.getList()); return result; } /** * 测试管理/用例库下的列表展示 * * @param tablepar * @param model * @param dt * @return */ @PostMapping(value = "listVo", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object listVo(Tablepar tablepar, TestUsecaseIn model, DateTrans dt) { PageInfo page = modelService.listVo(tablepar, model, dt); TableSplitResult result = new TableSplitResult(page.getPageNum(), page.getTotal(), page.getList()); return result; } /** * 测试管理/用例库下的列表展示,并展示是否已经被某个测试计划id选中 * * @param tablepar * @param model * @param dt * @return */ @PostMapping(value = "listVoWithHasSelect", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object listVoWithHasSelect(Tablepar tablepar, TestUsecaseIn model, DateTrans dt) { PageInfo page = modelService.listVoWithHasSelect(tablepar, model, dt); TableSplitResult result = new TableSplitResult(page.getPageNum(), page.getTotal(), page.getList()); return result; } @PostMapping(value = "listAll", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object listAll(TestUsecase model, DateTrans dt) { return modelService.listAll(model, dt); } /** * 导出用例时获取所有数据 * * @param model * @param dt * @return */ @PostMapping(value = "findAllByInfo", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object findAllByInfo(TestUsecaseIn model, DateTrans dt) { return modelService.findAllByInfo(model, dt); } @PostMapping(value = "add", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult add(TestUsecaseIn record) { System.out.println("add start"); // System.out.println(testUsecaseSteps); System.out.println(record); record.setCreatedAt(new Date()); record.setUpdatedAt(record.getCreatedAt()); record.setCreatedBy(ShiroUtils.getUser().getId()); record.setUpdatedBy(record.getCreatedBy()); record.setStatus(0); String usecaseId = modelService.insertReturnId(record); if (record != null) { if (record.getTestUsecaseSteps() != null) { List list = JSONArray.parseArray(record.getTestUsecaseSteps(), TestUsecaseStep.class); System.out.println(list); TestUsecaseStep testUsecaseStep = null; for (int i = 0; i < list.size(); i++) { testUsecaseStep = list.get(i); testUsecaseStep.setUsecaseId(usecaseId); // if (StringUtils.isEmpty(testUsecaseStep.getId())) { testUsecaseStep.setCreatedAt(new Date()); testUsecaseStep.setUpdatedAt(record.getCreatedAt()); testUsecaseStep.setCreatedBy(ShiroUtils.getUser().getId()); testUsecaseStep.setUpdatedBy(record.getCreatedBy()); testUsecaseStep.setStatus(0); testUsecaseStepService.insert(testUsecaseStep); // } else { // record.setUpdatedAt(new Date()); // record.setUpdatedBy(ShiroUtils.getUser().getId()); // testUsecaseStepService.updateByPrimaryKeySelective(testUsecaseStep); // } } } return this.success(); } else { return this.error(); } } @PostMapping(value = "remove/{id}", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult remove(@PathVariable("id") String id) { // int result = modelService.deleteByPrimaryKey(id); TestUsecase record = new TestUsecase(); record.setId(id); record.setStatus(1); record.setUpdatedBy(ShiroUtils.getUser().getId()); record.setUpdatedAt(new Date()); int result = modelService.updateByPrimaryKeySelective(record); TestUsecaseStep testUsecaseStep = new TestUsecaseStep(); testUsecaseStep.setStatus(1); testUsecaseStep.setUpdatedBy(ShiroUtils.getUser().getId()); testUsecaseStep.setUpdatedAt(new Date()); TestUsecaseStepExample testUsecaseStepExample = new TestUsecaseStepExample(); testUsecaseStepExample.createCriteria().andUsecaseIdEqualTo(id); testUsecaseStepService.updateByExampleSelective(testUsecaseStep, testUsecaseStepExample); return result(result); } @PostMapping(value = "edit", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult editSave(TestUsecaseIn record) { System.out.println("edit start"); // System.out.println(testUsecaseSteps); System.out.println(record); record.setUpdatedBy(ShiroUtils.getUser().getId()); record.setUpdatedAt(new Date()); record.setCreatedAt(null); record.setCreatedBy(null); record.setStatus(null); int result = modelService.updateByPrimaryKeySelective(record); if (result > 0) {//修改成功 //如果修改成功进行下面的操作 //1.修改或者添加步骤并把步骤id记录下来,最后删除步骤id以外的丢弃步骤 ArrayList inids = new ArrayList<>(); if (record.getTestUsecaseSteps() != null) { List list = JSONArray.parseArray(record.getTestUsecaseSteps(), TestUsecaseStep.class); // System.out.println(list); TestUsecaseStep testUsecaseStep = null; for (int i = 0; i < list.size(); i++) { testUsecaseStep = list.get(i); testUsecaseStep.setUsecaseId(record.getId()); if (StringUtils.isEmpty(testUsecaseStep.getId())) { testUsecaseStep.setCreatedAt(new Date()); testUsecaseStep.setUpdatedAt(record.getCreatedAt()); testUsecaseStep.setCreatedBy(ShiroUtils.getUser().getId()); testUsecaseStep.setUpdatedBy(record.getCreatedBy()); testUsecaseStep.setStatus(0); String s = testUsecaseStepService.insertReturnId(testUsecaseStep); if (s != null) { inids.add(s); } } else { inids.add(testUsecaseStep.getId()); testUsecaseStep.setUpdatedAt(new Date()); testUsecaseStep.setUpdatedBy(ShiroUtils.getUser().getId()); testUsecaseStepService.updateByPrimaryKeySelective(testUsecaseStep); } } } TestUsecaseStep testUsecaseStep = new TestUsecaseStep(); testUsecaseStep.setStatus(1); testUsecaseStep.setUpdatedBy(ShiroUtils.getUser().getId()); testUsecaseStep.setUpdatedAt(new Date()); TestUsecaseStepExample testUsecaseStepExample = new TestUsecaseStepExample(); testUsecaseStepExample.createCriteria().andUsecaseIdEqualTo(record.getId()).andIdNotIn(inids); testUsecaseStepService.updateByExampleSelective(testUsecaseStep, testUsecaseStepExample); } else {//修改失败 } // int result = modelService.updateByPrimaryKeySelective(model); return result(result); } @PostMapping(value = "getById", produces = {"application/json;charset=UTF-8"}) @ResponseBody public TestUsecase getById(String id) { return modelService.selectByPrimaryKey(id); } @PostMapping(value = "test", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object getTest() { System.out.println("test"); return null; } @PostMapping(value = "getVoById", produces = {"application/json;charset=UTF-8"}) @ResponseBody public TestUsecaseIn getVoById(String id) { return modelService.getVoById(id); } } package com.idea.oa.testPlan.service; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.idea.oa.testPlan.mapper.TestPlanExtendMapper; import com.idea.oa.testPlan.mapper.TestPlanMapper; import com.idea.oa.testPlan.model.TestPlan; import com.idea.oa.testPlan.model.TestPlanExample; import com.idea.oa.testPlan.model.in.TestPlanIn; import com.rockstar.common.base.BaseService; import com.rockstar.common.support.Convert; import com.rockstar.frame.model.extend.DateTrans; import com.rockstar.frame.model.extend.Tablepar; import com.rockstar.util.DateUtils; import com.rockstar.util.SnowflakeIdWorker; import com.rockstar.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; @Service public class TestPlanService implements BaseService { //文件mapper @Autowired private TestPlanMapper modelMapper; @Autowired private TestPlanExtendMapper testPlanExtendMapper; /** * 分页查询 * * @return */ public PageInfo list(Tablepar tablepar, TestPlan model, DateTrans dt) { PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize()); List list = modelMapper.selectByExample(getCondition(model,dt)); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } /** * 查询指定 * * @return */ public List listAll(TestPlan model, DateTrans dt) { return modelMapper.selectByExample(getCondition(model,dt)); } private TestPlanExample getCondition(TestPlan model, DateTrans dt) { TestPlanExample ex = new TestPlanExample(); ex.setOrderByClause("created_at asc"); TestPlanExample.Criteria criteria = ex.createCriteria(); if(StringUtils.isNotEmpty(model.getPlanName())){ criteria.andPlanNameLike("%"+model.getPlanName()+"%"); } if(StringUtils.isNotEmpty(model.getProId())){ criteria.andProIdEqualTo(model.getProId()); } if(StringUtils.isNotEmpty(model.getTaskNo())){ criteria.andTaskNoEqualTo(model.getTaskNo()); } if(dt != null){ if(StringUtils.isNotEmpty(dt.getDate_from_1())){ criteria.andCreatedAtGreaterThanOrEqualTo(DateUtils.string2Date(dt.getDate_from_1())); } if(StringUtils.isNotEmpty(dt.getDate_to_1())){ criteria.andCreatedAtLessThanOrEqualTo(DateUtils.string2Date(dt.getDate_to_1())); } } return ex; } @Override public int deleteByPrimaryKey(String ids) { List lista = Convert.toListStrArray(ids); TestPlanExample example = new TestPlanExample(); example.createCriteria().andIdIn(lista); return modelMapper.deleteByExample(example); } @Override public TestPlan selectByPrimaryKey(String id) { return modelMapper.selectByPrimaryKey(id); } @Override public int updateByPrimaryKeySelective(TestPlan record) { return modelMapper.updateByPrimaryKeySelective(record); } @Override public int updateByExampleSelective(TestPlan record, TestPlanExample example) { return modelMapper.updateByExampleSelective(record, example); } @Override public int updateByExample(TestPlan record, TestPlanExample example) { return modelMapper.updateByExample(record, example); } @Override public List selectByExample(TestPlanExample example) { return modelMapper.selectByExample(example); } @Override public long countByExample(TestPlanExample example) { return modelMapper.countByExample(example); } public long countByExample(TestPlan model, DateTrans dt) { return modelMapper.countByExample(getCondition(model,dt)); } @Override public int deleteByExample(TestPlanExample example) { return modelMapper.deleteByExample(example); } public int insert(TestPlan record){ record.setId(SnowflakeIdWorker.getUUID()); return insertWithoutId(record); } public int insertWithoutId(TestPlan record){ return modelMapper.insert(record); } @Override public int insertSelective(TestPlan record) { record.setId(SnowflakeIdWorker.getUUID()); record.setCreatedAt(new Date()); return modelMapper.insertSelective(record); } public List listVo(Tablepar tablepar, TestPlanIn model, DateTrans dt) { int i = (tablepar.getPageNum() - 1) * tablepar.getPageSize(); tablepar.setPageNum(i); List list=testPlanExtendMapper.listVo(tablepar, model, dt); return list; } public Long getTotal(TestPlanIn model, DateTrans dt) { return testPlanExtendMapper.getTotal( model, dt); } public TestPlanIn getVoById(String id) { if (StringUtils.isEmpty(id)){ return null; } TestPlanIn testPlanIn = new TestPlanIn(); testPlanIn.setId(id); List testPlanIns = testPlanExtendMapper.listVo(new Tablepar(), testPlanIn, new DateTrans()); if (testPlanIns.isEmpty()){ return null; }else{ return testPlanIns.get(0); } } /** * 前端根据ids获取数据, ids是类似数组的字符串,例如:1684651,6431,或者:135456135 又或者:1651631,等 * @param ids * @return */ public List getVoByIds(String ids) { if (StringUtils.isEmpty(ids)){ return null; } String[] split = ids.split(","); TestPlanIn testPlanIn = new TestPlanIn(); testPlanIn.setIds(split); List testPlanIns = testPlanExtendMapper.listVo(new Tablepar(), testPlanIn, new DateTrans()); if (testPlanIns.isEmpty()){ return null; }else{ return testPlanIns; } } } package com.idea.oa.testPlan.service; import com.alibaba.fastjson.JSONArray; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.idea.oa.testPlan.mapper.TestUsecaseExtendMapper; import com.idea.oa.testPlan.mapper.TestUsecaseMapper; import com.idea.oa.testPlan.model.TestUsecase; import com.idea.oa.testPlan.model.TestUsecaseExample; import com.idea.oa.testPlan.model.in.TestUsecaseIn; import com.rockstar.common.base.BaseService; import com.rockstar.common.support.Convert; import com.rockstar.frame.model.extend.DateTrans; import com.rockstar.frame.model.extend.Tablepar; import com.rockstar.util.DateUtils; import com.rockstar.util.SnowflakeIdWorker; import com.rockstar.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; import java.util.Map; @Service public class TestUsecaseService implements BaseService { //文件mapper @Autowired private TestUsecaseMapper modelMapper; @Autowired private TestUsecaseExtendMapper testUsecaseExtendMapper; /** * 分页查询 * * @return */ public PageInfo list(Tablepar tablepar, TestUsecase model, DateTrans dt) { PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize()); List list = modelMapper.selectByExample(getCondition(model,dt)); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } /** * 查询指定 * * @return */ public List listAll(TestUsecase model, DateTrans dt) { return modelMapper.selectByExample(getCondition(model,dt)); } private TestUsecaseExample getCondition(TestUsecase model, DateTrans dt) { TestUsecaseExample ex = new TestUsecaseExample(); ex.setOrderByClause("created_at asc"); TestUsecaseExample.Criteria criteria = ex.createCriteria(); if(StringUtils.isNotEmpty(model.getUsecaseTitle())){ criteria.andUsecaseTitleLike("%"+model.getUsecaseTitle()+"%"); } if(model.getIdPro()!=null){ criteria.andIdProEqualTo(model.getIdPro()); } if(dt != null){ if(StringUtils.isNotEmpty(dt.getDate_from_1())){ criteria.andCreatedAtGreaterThanOrEqualTo(DateUtils.string2Date(dt.getDate_from_1())); } if(StringUtils.isNotEmpty(dt.getDate_to_1())){ criteria.andCreatedAtLessThanOrEqualTo(DateUtils.string2Date(dt.getDate_to_1())); } } return ex; } @Override public int deleteByPrimaryKey(String ids) { List lista = Convert.toListStrArray(ids); TestUsecaseExample example = new TestUsecaseExample(); example.createCriteria().andIdIn(lista); return modelMapper.deleteByExample(example); } @Override public TestUsecase selectByPrimaryKey(String id) { return modelMapper.selectByPrimaryKey(id); } @Override public int updateByPrimaryKeySelective(TestUsecase record) { return modelMapper.updateByPrimaryKeySelective(record); } @Override public int updateByExampleSelective(TestUsecase record, TestUsecaseExample example) { return modelMapper.updateByExampleSelective(record, example); } @Override public int updateByExample(TestUsecase record, TestUsecaseExample example) { return modelMapper.updateByExample(record, example); } @Override public List selectByExample(TestUsecaseExample example) { return modelMapper.selectByExample(example); } @Override public long countByExample(TestUsecaseExample example) { return modelMapper.countByExample(example); } public long countByExample(TestUsecase model, DateTrans dt) { return modelMapper.countByExample(getCondition(model,dt)); } @Override public int deleteByExample(TestUsecaseExample example) { return modelMapper.deleteByExample(example); } public int insert(TestUsecase record){ // record.setCreatedAt(new Date()); // record.setUpdatedAt(record.getCreatedAt()); // record.setCreatedBy(ShiroUtils.getUser().getId()); // record.setUpdatedBy(record.getCreatedBy()); // record.setStatus(0); record.setId(SnowflakeIdWorker.getUUID()); return insertWithoutId(record); } public String insertReturnId(TestUsecase record){ record.setId(SnowflakeIdWorker.getUUID()); int i = insertWithoutId(record); if (i>0){ return record.getId(); }else{ return null; } } public int insertWithoutId(TestUsecase record){ // record.setCreatedAt(new Date()); return modelMapper.insert(record); } @Override public int insertSelective(TestUsecase record) { record.setId(SnowflakeIdWorker.getUUID()); record.setCreatedAt(new Date()); return modelMapper.insertSelective(record); } public PageInfo listVo(Tablepar tablepar, TestUsecaseIn model, DateTrans dt) { PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize()); List list = testUsecaseExtendMapper.selectMoreByInfo(model,dt); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } public TestUsecaseIn getVoById(String id) { return testUsecaseExtendMapper.getVoById(id); } /** * 导出用例时获取所有数据 * @param model * @param dt * @return */ public List> findAllByInfo(TestUsecaseIn model, DateTrans dt) { // System.out.println(model); List ids=null; if (model.getIdList() != null) { ids = JSONArray.parseArray(model.getIdList(), String.class); // ids = Convert.toListStrArray(model.getIdList()); // for (String id : ids) { // System.out.println("获取数据:"+id); // } } return testUsecaseExtendMapper.findAllByInfo(model,ids, dt); } public PageInfo listVoWithHasSelect(Tablepar tablepar, TestUsecaseIn model, DateTrans dt) { PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize()); List list = testUsecaseExtendMapper.listVoWithHasSelect(model,dt); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } } package com.idea.oa.testPlan.mapper; import com.idea.oa.testPlan.model.TestPlan; import com.idea.oa.testPlan.model.TestPlanExample; import java.util.List; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @Component public interface TestPlanMapper { long countByExample(TestPlanExample example); int deleteByExample(TestPlanExample example); int deleteByPrimaryKey(String id); int insert(TestPlan record); int insertSelective(TestPlan record); List selectByExample(TestPlanExample example); TestPlan selectByPrimaryKey(String id); int updateByExampleSelective(@Param("record") TestPlan record, @Param("example") TestPlanExample example); int updateByExample(@Param("record") TestPlan record, @Param("example") TestPlanExample example); int updateByPrimaryKeySelective(TestPlan record); int updateByPrimaryKey(TestPlan record); } package com.idea.oa.testPlan.mapper; import com.idea.oa.testPlan.model.TestUsecase; import com.idea.oa.testPlan.model.TestUsecaseExample; import java.util.List; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @Component public interface TestUsecaseMapper { long countByExample(TestUsecaseExample example); int deleteByExample(TestUsecaseExample example); int deleteByPrimaryKey(String id); int insert(TestUsecase record); int insertSelective(TestUsecase record); List selectByExample(TestUsecaseExample example); TestUsecase selectByPrimaryKey(String id); int updateByExampleSelective(@Param("record") TestUsecase record, @Param("example") TestUsecaseExample example); int updateByExample(@Param("record") TestUsecase record, @Param("example") TestUsecaseExample example); int updateByPrimaryKeySelective(TestUsecase record); int updateByPrimaryKey(TestUsecase record); } package com.idea.oa.testPlan.controller; import com.github.pagehelper.PageInfo; import com.idea.oa.testPlan.model.TestPlanCommander; import com.idea.oa.testPlan.service.TestPlanCommanderService; import com.rockstar.common.base.BaseController; import com.rockstar.common.domain.AjaxResult; import com.rockstar.frame.model.extend.DateTrans; import com.rockstar.frame.model.extend.TableSplitResult; import com.rockstar.frame.model.extend.Tablepar; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Date; /** * Created by pengyq on 2020. */ @Controller @RequestMapping(value = "TestPlanCommanderController") @Api(value="测试管理/测试计划/负责人关联表") public class TestPlanCommanderController extends BaseController { //主表 @Autowired private TestPlanCommanderService modelService; @PostMapping(value = "list",produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object list(Tablepar tablepar, TestPlanCommander model, DateTrans dt){ PageInfo page= modelService.list(tablepar,model,dt); TableSplitResult result=new TableSplitResult(page.getPageNum(), page.getTotal(), page.getList()); return result; } @PostMapping(value = "listAll",produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object listAll(TestPlanCommander model, DateTrans dt){ return modelService.listAll(model,dt); } @PostMapping(value = "add",produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult add(TestPlanCommander record){ record.setCreatedAt(new Date()); int result = modelService.insert(record); return result(result); } @PostMapping(value = "remove/{id}",produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult remove(@PathVariable("id") String id){ int result = modelService.deleteByPrimaryKey(id); return result(result); } @PostMapping(value = "edit",produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult editSave(TestPlanCommander model){ int result = modelService.updateByPrimaryKeySelective(model); return result(result); } @PostMapping(value = "getById",produces = {"application/json;charset=UTF-8"}) @ResponseBody public TestPlanCommander getById(String id) { return modelService.selectByPrimaryKey(id); } } package com.idea.oa.testPlan.service; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.idea.oa.testPlan.mapper.TestPlanCommanderMapper; import com.idea.oa.testPlan.model.TestPlanCommander; import com.idea.oa.testPlan.model.TestPlanCommanderExample; import com.rockstar.common.base.BaseService; import com.rockstar.common.support.Convert; import com.rockstar.frame.model.extend.DateTrans; import com.rockstar.frame.model.extend.Tablepar; import com.rockstar.util.DateUtils; import com.rockstar.util.SnowflakeIdWorker; import com.rockstar.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; @Service public class TestPlanCommanderService implements BaseService { //文件mapper @Autowired private TestPlanCommanderMapper modelMapper; /** * 分页查询 * * @return */ public PageInfo list(Tablepar tablepar, TestPlanCommander model, DateTrans dt) { PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize()); List list = modelMapper.selectByExample(getCondition(model,dt)); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } /** * 查询指定 * * @return */ public List listAll(TestPlanCommander model, DateTrans dt) { return modelMapper.selectByExample(getCondition(model,dt)); } private TestPlanCommanderExample getCondition(TestPlanCommander model, DateTrans dt) { TestPlanCommanderExample ex = new TestPlanCommanderExample(); ex.setOrderByClause("created_at asc"); TestPlanCommanderExample.Criteria criteria = ex.createCriteria(); // if(StringUtils.isNotEmpty(model.getPlanName())){ // criteria.andPlanNameLike("%"+model.getPlanName()+"%"); // } // if(StringUtils.isNotEmpty(model.getProId())){ // criteria.andProIdEqualTo(model.getProId()); // } if(StringUtils.isNotEmpty(model.getPlanId())){ criteria.andPlanIdEqualTo(model.getPlanId()); } if(dt != null){ if(StringUtils.isNotEmpty(dt.getDate_from_1())){ criteria.andCreatedAtGreaterThanOrEqualTo(DateUtils.string2Date(dt.getDate_from_1())); } if(StringUtils.isNotEmpty(dt.getDate_to_1())){ criteria.andCreatedAtLessThanOrEqualTo(DateUtils.string2Date(dt.getDate_to_1())); } } return ex; } @Override public int deleteByPrimaryKey(String ids) { List lista = Convert.toListStrArray(ids); TestPlanCommanderExample example = new TestPlanCommanderExample(); example.createCriteria().andIdIn(lista); return modelMapper.deleteByExample(example); } @Override public TestPlanCommander selectByPrimaryKey(String id) { return modelMapper.selectByPrimaryKey(id); } @Override public int updateByPrimaryKeySelective(TestPlanCommander record) { return modelMapper.updateByPrimaryKeySelective(record); } @Override public int updateByExampleSelective(TestPlanCommander record, TestPlanCommanderExample example) { return modelMapper.updateByExampleSelective(record, example); } @Override public int updateByExample(TestPlanCommander record, TestPlanCommanderExample example) { return modelMapper.updateByExample(record, example); } @Override public List selectByExample(TestPlanCommanderExample example) { return modelMapper.selectByExample(example); } @Override public long countByExample(TestPlanCommanderExample example) { return modelMapper.countByExample(example); } public long countByExample(TestPlanCommander model, DateTrans dt) { return modelMapper.countByExample(getCondition(model,dt)); } @Override public int deleteByExample(TestPlanCommanderExample example) { return modelMapper.deleteByExample(example); } public int insert(TestPlanCommander record){ record.setId(SnowflakeIdWorker.getUUID()); return insertWithoutId(record); } public int insertWithoutId(TestPlanCommander record){ record.setCreatedAt(new Date()); return modelMapper.insert(record); } @Override public int insertSelective(TestPlanCommander record) { record.setId(SnowflakeIdWorker.getUUID()); record.setCreatedAt(new Date()); return modelMapper.insertSelective(record); } } package com.idea.oa.testPlan.mapper; import com.idea.oa.testPlan.model.TestPlanCommander; import com.idea.oa.testPlan.model.TestPlanCommanderExample; import java.util.List; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @Component public interface TestPlanCommanderMapper { long countByExample(TestPlanCommanderExample example); int deleteByExample(TestPlanCommanderExample example); int deleteByPrimaryKey(String id); int insert(TestPlanCommander record); int insertSelective(TestPlanCommander record); List selectByExample(TestPlanCommanderExample example); TestPlanCommander selectByPrimaryKey(String id); int updateByExampleSelective(@Param("record") TestPlanCommander record, @Param("example") TestPlanCommanderExample example); int updateByExample(@Param("record") TestPlanCommander record, @Param("example") TestPlanCommanderExample example); int updateByPrimaryKeySelective(TestPlanCommander record); int updateByPrimaryKey(TestPlanCommander record); } package com.idea.oa.testPlan.controller; import com.github.pagehelper.PageInfo; import com.idea.oa.testPlan.model.TestUsecaseStep; import com.idea.oa.testPlan.service.TestUsecaseStepService; import com.rockstar.common.base.BaseController; import com.rockstar.common.domain.AjaxResult; import com.rockstar.frame.model.extend.DateTrans; import com.rockstar.frame.model.extend.TableSplitResult; import com.rockstar.frame.model.extend.Tablepar; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Date; import java.util.List; /** * Created by pengyq on 2020. */ @Controller @RequestMapping(value = "TestUsecaseStepController") @Api(value="测试管理/用例库/用例步骤详细关联表") public class TestUsecaseStepController extends BaseController { //主表 @Autowired private TestUsecaseStepService modelService; @PostMapping(value = "list",produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object list(Tablepar tablepar, TestUsecaseStep model, DateTrans dt){ PageInfo page= modelService.list(tablepar,model,dt); TableSplitResult result=new TableSplitResult(page.getPageNum(), page.getTotal(), page.getList()); return result; } @PostMapping(value = "listAll",produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object listAll(TestUsecaseStep model, DateTrans dt){ return modelService.listAll(model,dt); } /** * 通过usecaseid来获取所有的步骤 * @param model * @return */ @PostMapping(value = "/findListByUsecaseId",produces = {"application/json;charset=UTF-8"}) @ResponseBody public List findListByUsecaseId(TestUsecaseStep model){ return modelService.findListByUsecaseId(model); } @PostMapping(value = "add",produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult add(TestUsecaseStep record){ record.setCreatedAt(new Date()); int result = modelService.insert(record); return result(result); } @PostMapping(value = "remove/{id}",produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult remove(@PathVariable("id") String id){ int result = modelService.deleteByPrimaryKey(id); return result(result); } @PostMapping(value = "edit",produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult editSave(TestUsecaseStep model){ int result = modelService.updateByPrimaryKeySelective(model); return result(result); } @PostMapping(value = "getById",produces = {"application/json;charset=UTF-8"}) @ResponseBody public TestUsecaseStep getById(String id) { return modelService.selectByPrimaryKey(id); } } package com.idea.oa.testPlan.service; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.idea.oa.testPlan.mapper.TestUsecaseStepMapper; import com.idea.oa.testPlan.model.TestUsecaseStep; import com.idea.oa.testPlan.model.TestUsecaseStepExample; import com.rockstar.common.base.BaseService; import com.rockstar.common.support.Convert; import com.rockstar.frame.model.extend.DateTrans; import com.rockstar.frame.model.extend.Tablepar; import com.rockstar.util.DateUtils; import com.rockstar.util.SnowflakeIdWorker; import com.rockstar.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; @Service public class TestUsecaseStepService implements BaseService { //文件mapper @Autowired private TestUsecaseStepMapper modelMapper; /** * 分页查询 * * @return */ public PageInfo list(Tablepar tablepar, TestUsecaseStep model, DateTrans dt) { PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize()); List list = modelMapper.selectByExample(getCondition(model,dt)); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } /** * 查询指定 * * @return */ public List listAll(TestUsecaseStep model, DateTrans dt) { return modelMapper.selectByExample(getCondition(model,dt)); } private TestUsecaseStepExample getCondition(TestUsecaseStep model, DateTrans dt) { TestUsecaseStepExample ex = new TestUsecaseStepExample(); ex.setOrderByClause("created_at asc"); TestUsecaseStepExample.Criteria criteria = ex.createCriteria(); // if(StringUtils.isNotEmpty(model.getPlanName())){ // criteria.andPlanNameLike("%"+model.getPlanName()+"%"); // } if(StringUtils.isNotEmpty(model.getUsecaseId())){ criteria.andUsecaseIdEqualTo(model.getUsecaseId()); } // if(StringUtils.isNotEmpty(model.getTaskNo())){ // criteria.andTaskNoEqualTo(model.getTaskNo()); // } if(dt != null){ if(StringUtils.isNotEmpty(dt.getDate_from_1())){ criteria.andCreatedAtGreaterThanOrEqualTo(DateUtils.string2Date(dt.getDate_from_1())); } if(StringUtils.isNotEmpty(dt.getDate_to_1())){ criteria.andCreatedAtLessThanOrEqualTo(DateUtils.string2Date(dt.getDate_to_1())); } } return ex; } @Override public int deleteByPrimaryKey(String ids) { List lista = Convert.toListStrArray(ids); TestUsecaseStepExample example = new TestUsecaseStepExample(); example.createCriteria().andIdIn(lista); return modelMapper.deleteByExample(example); } @Override public TestUsecaseStep selectByPrimaryKey(String id) { return modelMapper.selectByPrimaryKey(id); } @Override public int updateByPrimaryKeySelective(TestUsecaseStep record) { return modelMapper.updateByPrimaryKeySelective(record); } @Override public int updateByExampleSelective(TestUsecaseStep record, TestUsecaseStepExample example) { return modelMapper.updateByExampleSelective(record, example); } @Override public int updateByExample(TestUsecaseStep record, TestUsecaseStepExample example) { return modelMapper.updateByExample(record, example); } @Override public List selectByExample(TestUsecaseStepExample example) { return modelMapper.selectByExample(example); } @Override public long countByExample(TestUsecaseStepExample example) { return modelMapper.countByExample(example); } public long countByExample(TestUsecaseStep model, DateTrans dt) { return modelMapper.countByExample(getCondition(model,dt)); } @Override public int deleteByExample(TestUsecaseStepExample example) { return modelMapper.deleteByExample(example); } public int insert(TestUsecaseStep record){ record.setId(SnowflakeIdWorker.getUUID()); return insertWithoutId(record); } public String insertReturnId(TestUsecaseStep record){ record.setId(SnowflakeIdWorker.getUUID()); int i = insertWithoutId(record); if (i>0){ return record.getId(); }else{ return null; } } public int insertWithoutId(TestUsecaseStep record){ // record.setCreatedAt(new Date()); return modelMapper.insert(record); } @Override public int insertSelective(TestUsecaseStep record) { record.setId(SnowflakeIdWorker.getUUID()); record.setCreatedAt(new Date()); return modelMapper.insertSelective(record); } public List findListByUsecaseId(TestUsecaseStep model) { TestUsecaseStepExample ex = new TestUsecaseStepExample(); ex.setOrderByClause("step_number asc"); TestUsecaseStepExample.Criteria criteria = ex.createCriteria(); // if(StringUtils.isNotEmpty(model.getUsecaseId())){ criteria.andUsecaseIdEqualTo(model.getUsecaseId()); // } criteria.andStatusEqualTo(0); return modelMapper.selectByExample(ex); } } package com.idea.oa.testPlan.mapper; import com.idea.oa.testPlan.model.TestUsecaseStep; import com.idea.oa.testPlan.model.TestUsecaseStepExample; import java.util.List; import org.apache.ibatis.annotations.Param; public interface TestUsecaseStepMapper { long countByExample(TestUsecaseStepExample example); int deleteByExample(TestUsecaseStepExample example); int deleteByPrimaryKey(String id); int insert(TestUsecaseStep record); int insertSelective(TestUsecaseStep record); List selectByExample(TestUsecaseStepExample example); TestUsecaseStep selectByPrimaryKey(String id); int updateByExampleSelective(@Param("record") TestUsecaseStep record, @Param("example") TestUsecaseStepExample example); int updateByExample(@Param("record") TestUsecaseStep record, @Param("example") TestUsecaseStepExample example); int updateByPrimaryKeySelective(TestUsecaseStep record); int updateByPrimaryKey(TestUsecaseStep record); }