版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块三管理端-检查组管理《JavaEE企业级应用开发项目教程(SSM)》技能目标/Target掌握新增检查组功能的实现掌握查询检查组功能的实现掌握编辑检查组功能的实现掌握删除检查组功能的实现章节概述/
Summary体检的检查项种类繁多,为了方便管理和快速筛选出类别相同的检查项,传智健康将类别相同的检查项放到同一个检查组中进行管理,从而提高了管理效率。这些检查组可以在管理端进行管理,包括检查组的新增、查询、编辑和删除。目录/Contents01020304新增检查组查询检查组编辑检查组删除检查组新增检查组3-1任务描述使用浏览器访问health_backend子模块中的检查组管理页面checkgroup.html。传智健康中可以供用户检查的检查项有很多,如果想查找同一类别的检查项,每次都需要逐条筛选,不仅耗时,而且容易发生数据遗漏。为了提高工作效率、减少失误,统一管理这些检查项时,需要先新增一个检查组。任务描述单击检查组管理页面中的“新增”按钮,弹出新增检查组对话框。在checkgroup.html页面中单击“新增”按钮后会弹出新增检查组对话框,在对话框中填写基本信息和勾选检查项信息后,单击对话框中的“确定”按钮提交新增检查组的数据,实现检查组的新增。由此,可以将新增检查组分解成2个功能,分别是弹出带有检查项数据的新增检查组对话框、完成检查组的新增。任务分析任务分析(1)弹出新增检查组对话框为checkgroup.html页面的“新增”按钮绑定单击事件,在单击事件触发后弹出新增检查组对话框,再提交查询所有检查项的请求。(2)接收和处理查询检查项请求客户端发起查询检查项的请求后,由CheckItemController类的findAll()方法接收页面提交的请求,并调用CheckItemService接口的findAll()方法查询所有检查项。1.弹出带有检查项数据的新增检查组对话框任务分析(3)查询所有检查项在CheckItemServiceImpl类中重写CheckItemService接口的findAll()方法,并在方法中调用CheckItemDao接口的findAllCheckItem()方法从数据库中查询所有检查项。(4)显示检查项查询结果由CheckItemController类中的findAll()方法将查询检查项的结果响应回checkgroup.html页面,checkgroup.html页面根据响应结果在新增检查组对话框中显示检查项信息。1.弹出带有检查项数据的新增检查组对话框任务分析弹出带有检查项数据的新增检查组对话框的实现过程1.弹出带有检查项数据的新增检查组对话框任务分析(1)提交新增检查组数据为checkgroup.html页面新增检查组对话框的“确定”按钮绑定单击事件,在单击事件触发后提交对话框中的数据。(2)接收和处理新增检查组请求客户端发起新增检查组的请求后,由控制器类CheckGroupController的add()方法接收页面提交的请求,请求的参数中包含基本信息和对检查项的引用信息。2.完成检查组的新增任务分析(3)保存新增检查组数据在CheckGroupServiceImpl类中重写CheckGroupService接口的add()方法,在方法中调用CheckGroupDao接口用于新增基本信息的add()方法,用于新增检查组对检查项引用信息的setCheckGroupAndCheckItem()方法。(4)提示新增检查组的结果CheckGroupController类中的add()方法将新增检查组的结果响应回checkgroup.html页面,checkgroup.html页面根据响应结果提示新增检查组成功或失败的信息。2.完成检查组的新增任务分析新增检查组的实现过程2.完成检查组的新增任务实现<el-buttontype="primary"class="butT">新增</el-button><!--新增标签弹层--><divclass="add-form"><el-dialogtitle="新增检查组":visible.sync="dialogFormVisible">
<el-tab-panelabel="基本信息"name="first"></el-tab-pane><el-tab-panelabel="检查项信息"name="second"></el-tab-pane></el-dialog></div><script>varvue=newVue({el:'#app',data:{activeName:'first',
//对话框Tab标签名称formData:{},
//表单数据tableData:[],
//表单中对应的检查项列表数据checkitemIds:[],
//表单中检查项对应的复选框dialogFormVisible:false,//控制添加对话框显示/隐藏
}</script>(1)弹出新增检查组对话框1.弹出带有检查项数据的新增检查组对话框通过设置dialogFormVisible的值,进而改变:visible的属性值,进而控制对话框在页面中显示或隐藏。查看checkgroup.html页面中与“新增”按钮和新增检查组对话框相关的源代码。任务实现在checkgroup.html页面中定义handleCreate()方法,将dialogFormVisible的值修改为true。定义resetForm()方法,在每次显示对话框之前将表单域和检查项列表中的数据清空。resetForm(){this.formData={};//清空表单域this.activeName='first';//默认显示基本信息区this.checkitemIds=[];//清空勾选的检查项},handleCreate(){this.resetForm();//调用重置表单的方法this.dialogFormVisible=true;//修改显示弹窗的属性为trueaxios.get("/checkitem/findAll.do").then((res)=>{if(res.data.flag){
this.tableData=res.data.data;//查询成功为tableData赋值}else{this.$message.error(res.data.message);}});}(1)弹出新增检查组对话框1.弹出带有检查项数据的新增检查组对话框任务实现为checkgroup.html页面的“新增”按钮绑定单击事件,并设置在单击时调用handleCreate()方法。<el-buttontype="primary"class="butT"@click="handleCreate()">新增</el-button>(1)弹出新增检查组对话框1.弹出带有检查项数据的新增检查组对话框任务实现在health_backend子模块的CheckItemController类中定义findAll()方法,用于处理查询所有检查项的请求。@RequestMapping("/findAll")publicResultfindAll(){try{List<CheckItem>list=checkItemService.findAll();//服务调用成功,返回查询结果与查询成功提示信息returnnewResult(true,MessageConstant.
QUERY_CHECKITEM_SUCCESS,list);}catch(Exceptione){e.printStackTrace();//服务调用失败,返回查询失败提示信息returnnewResult(false,MessageConstant.QUERY_CHECKITEM_FAIL);}}(2)实现查询所有检查项1.弹出带有检查项数据的新增检查组对话框任务实现在health_interface子模块的CheckItemService接口中定义findAll()方法,用于查询所有检查项。publicList<CheckItem>findAll();(2)实现查询所有检查项1.弹出带有检查项数据的新增检查组对话框任务实现在health_service_provider子模块的CheckItemServiceImpl类中重写CheckItemService接口的findAll()方法,用于查询所有的检查项。@OverridepublicList<CheckItem>findAll(){returncheckItemDao.findAllCheckItem();(2)实现查询所有检查项1.弹出带有检查项数据的新增检查组对话框任务实现在health_service_provider子模块的CheckItemDao接口中定义findAllCheckItem()方法,用于查询所有的检查项。//查询所有检查项publicList<CheckItem>findAllCheckItem();在health_service_provider子模块的CheckItemDao.xml映射文件中使用<select>元素映射查询语句,从数据库中查询所有的检查项。<!--查询所有的检查项--><selectid="findAllCheckItem"
resultType="com.itheima.pojo.CheckItem">SELECT*FROMt_checkitem</select>(2)实现查询所有检查项1.弹出带有检查项数据的新增检查组对话框任务实现启动ZooKeeper服务。在IDEA中依次启动health_service_provider和health_backend。在浏览器中访问http://localhost:82/pages/checkgroup.html(3)测试弹出带有检查项数据的新增检查组对话框1.弹出带有检查项数据的新增检查组对话框任务实现在检查组页面中,单击“新增”按钮,弹出新增检查组对话框。(3)测试弹出带有检查项数据的新增检查组对话框1.弹出带有检查项数据的新增检查组对话框任务实现在新增检查组对话框单击对话框中的“检查项信息”选项卡,显示检查项信息。(3)测试弹出带有检查项数据的新增检查组对话框1.弹出带有检查项数据的新增检查组对话框任务实现为新增检查组对话框中的“取消”和“确定”按钮绑定单击事件,并设置单击时要执行的操作。<divslot="footer"class="dialog-footer"><el-button@click="dialogFormVisible=false">取消</el-button><el-buttontype="primary"@click="handleAdd()">确定</el-button></div>(1)提交新增检查组请求2.完成检查组的新增任务实现在checkgroup.html页面中定义handleAdd()方法,用于提交表单的数据。handleAdd(){//发送Ajax请求,需要提交检查组基本信息和勾选的检查项信息axios.post("/checkgroup/add.do?checkitemIds="+this.checkitemIds,this.formData).then((res)=>{if(res.data.flag){this.dialogFormVisible=false;//成功,关闭新增对话框//弹出请求成功提示信息this.$message({type:'success',message:res.data.message});}else{//执行失败,弹出提示信息this.$message.error(res.data.message);}});}(1)提交新增检查组数据(1)提交新增检查组请求2.完成检查组的新增任务实现在health_common子模块的com.itheima.pojo包下创建检查组类CheckGroup,在类中声明检查组的属性,定义各个属性的getter/setter方法。(2)创建检查组类2.完成检查组的新增任务实现在health_backend子模块创建控制器类CheckGroupController,在类中定义add()方法,用于处理新增检查组的请求。@RequestMapping("/add")publicResultadd(@RequestBodyCheckGroupcheckGroup,Integer[]checkitemIds){try{checkGroupService.add(checkGroup,checkitemIds);//调用服务成功,返回新增成功提示信息returnnewResult(true,MessageConstant.ADD_CHECKGROUP_SUCCESS);}catch(Exceptione){e.printStackTrace();//调用服务失败,返回新增失败提示信息returnnewResult(false,MessageConstant.ADD_CHECKGROUP_FAIL);}}(3)实现新增检查组控制器2.完成检查组的新增任务实现在health_interface子模块创建接口CheckGroupService,在接口中定义新增检查组的add()方法。publicinterfaceCheckGroupService{
//新增检查组publicvoidadd(CheckGroupcheckGroup,Integer[]checkitemIds);}(4)创建新增检查组服务2.完成检查组的新增任务实现在health_service_provider子模块创建CheckGroupService接口实现类CheckGroupServiceImpl,并重写接口的add()方法,用于新增检查组。@Service(interfaceClass=CheckGroupService.class)@TransactionalpublicclassCheckGroupServiceImplimplementsCheckGroupService{@Autowired//注入DAO对象privateCheckGroupDaocheckGroupDao;//新增检查组同时需要关联检查项(设置多对多关系)
@Overridepublicvoidadd(CheckGroupcheckGroup,Integer[]checkitemIds){checkGroupDao.add(checkGroup);//调用持久层接口IntegercheckGroupId=checkGroup.getId();//获取检查组id//关联检查项this.setCheckGroupAndCheckItem(checkGroupId,checkitemIds);}}(5)实现新增检查组服务2.完成检查组的新增任务实现//设置检查组和检查项多对多关系的方法publicvoidsetCheckGroupAndCheckItem(IntegercheckGroupId,
Integer[]checkitemIds){//设置多对多关系if(checkitemIds!=null&&checkitemIds.length>0){
for(IntegercheckitemId:checkitemIds){//遍历检查项idMap<String,Integer>map=newHashMap<>();map.put("checkgroupId",checkGroupId);//检查组idmap.put("checkitemId",checkitemId);//勾选的检查项idcheckGroupDao.setCheckGroupAndCheckItem(map);//调用持久层接口}}}设置检查组对检查项的引用,遍历数组checkitemIds,把检查组id和遍历的检查项id存储到map集合中。(5)实现新增检查组服务2.完成检查组的新增任务实现在health_service_provider子模块的com.itheima.dao包下创建持久层接口CheckGroupDao,用于处理与检查组相关的操作。publicinterfaceCheckGroupDao{publicvoidadd(CheckGroupcheckGroup);//添加检查组//设置检查组对检查项的引用publicvoidsetCheckGroupAndCheckItem(Map<String,Integer>map);}(6)实现持久层新增检查组2.完成检查组的新增任务实现在health_service_provider子模块创建与CheckGroupDao接口同名的映射文件CheckGroupDao.xml。使用<intert>元素映射新增语句,分别新增检查组的基本信息和检查组对检查项的引用。<!--新增检查组--><insertid="add"parameterType="com.itheima.pojo.CheckGroup"><selectKeykeyProperty="id"resultType="int"order="AFTER">SELECT
LAST_INSERT_ID()</selectKey>INSERTINTOt_checkgroup(code,name,helpCode,sex,remark,attention)
VALUES(#{code},#{name},#{helpCode},#{sex},#{remark},#{attention})</insert><!--设置检查组和检查项多对多关系,操作的是中间关系表--><insertid="setCheckGroupAndCheckItem"parameterType="map">INSERTINTOt_checkgroup_checkitem(checkgroup_id,checkitem_id)VALUES(#{checkgroupId},#{checkitemId})</insert>(6)实现持久层新增检查组2.完成检查组的新增任务实现依次启动ZooKeeper服务、health_service_provider和health_backend。在浏览器中访问http://localhost:82/pages/checkgroup.html,单击“新增”按钮,弹出新增检查组对话框,在对话框中填写检查组的基本信息。(7)测试新增检查组2.完成检查组的新增任务实现单击“检查项信息”选项卡,勾选检查组包含的检查项信息。(7)测试新增检查组2.完成检查组的新增任务实现由于查询检查组的功能暂未开发完成,刚新增的检查组数据并不会展示在检查组管理页面中。(7)测试新增检查组2.完成检查组的新增如果新增失败,页面会提示“新增检查组失败”。如果新增成功,页面会提示“新增检查组成功”。任务实现查询数据库中检查组及引用的检查项数据。成功查询出新增的检查组以及检查组对应的检查项信息,说明新增检查组的操作执行成功。(7)测试新增检查组2.完成检查组的新增查询检查组3-2任务描述在实现新增检查组后,还不能立即从checkgroup.html中查看新增的检查组,为了便于查看检查组信息,可以在访问checkgroup.html页面时,自动将系统中的检查组查询出来并在页面上分页展示。任务分析(1)提交分页查询检查组请求。(2)接收和处理分页查询检查组请求。(3)分页查询检查组。(4)展示分页查询结果。分页展示检查组为checkgroup.html页面的分页条绑定单击事件,在单击事件触发后根据要跳转的页码进行分页查询。页码切换为checkgroup.html页面的“查询”按钮绑定单击事件,在单击事件触发后执行按条件的分页查询。按条件查询检查组查询检查组任务分析分页查询检查组的实现过程任务实现<el-tablesize="small"current-row-key="id":data="dataList"stripe>
</el-table><divclass="pagination-container"><el-paginationclass="pagiantion"></el-pagination></div><script>varvue=newVue({el:'#app',data:{pagination:{//分页属性 currentPage:1,//当前页码 pageSize:10,//每页显示的记录数 total:0,//总记录数 queryString:null//查询条件},dataList:[],//当前页要展示的分页列表数据
},//钩子函数,Vue对象初始化完成后自动执行created(){},})</script>(1)提交分页查询检查组的请求1.分页展示检查组:data="dataList"通过数据双向绑定的方式展示数据el-pagination分页组件,用于实现数据分页分页属性pagination,包括当前页码、每页显示的记录数、总记录数和查询条件dataList表示当前页要展示的数据。created()函数在Vue对象初始化完成后自动执行。查看health_backend子模块下checkgroup.html页面中用于展示检查组的源代码。任务实现在checkgroup.html页面中定义findPage()方法,用于分页查询检查组。findPage(){//定义分页参数varparam={currentPage:this.pagination.currentPage,//当前页pageSize:this.pagination.pageSize,//每页显示记录数
queryString:this.pagination.queryString//查询条件};//发送Ajax请求,进行分页查询axios.post("/checkgroup/findPage.do",param).then((res)=>{this.dataList=res.data.rows;//查询结果this.pagination.total=res.data.total;//总记录数});}(1)提交分页查询检查组的请求1.分页展示检查组任务实现在钩子函数created()中调用findPage()方法,created()函数在Vue对象初始化完成后自动执行,访问checkgroup.html页面后即可实现查询检查组并分页显示。created(){
this.findPage();//调用分页查询方法完成分页查询}(1)提交分页查询检查组的请求1.分页展示检查组任务实现在health_backend子模块的CheckGroupController类中定义findPage()方法,用于处理分页查询检查组的请求。@RequestMapping("/findPage")publicPageResultfindPage(@RequestBodyQueryPageBeanqueryPageBean){//调用服务接口findPage()returncheckGroupService.findPage(queryPageBean);}(2)实现查询检查组控制器1.分页展示检查组任务实现在health_interface子模块的CheckGroupService接口中定义findPage()方法,用于分页查询检查组。//分页查询检查组接口publicPageResultfindPage(QueryPageBeanqueryPageBean);(3)创建查询检查组服务1.分页展示检查组任务实现在health_service_provider子模块的CheckGroupServiceImpl类中重写CheckGroupService接口的findPage()方法,用于分页查询检查组。@OverridepublicPageResultfindPage(QueryPageBeanqueryPageBean){IntegercurrentPage=queryPageBean.getCurrentPage();//获取当前页面IntegerpageSize=queryPageBean.getPageSize();//获取每页显示的记录数StringqueryString=queryPageBean.getQueryString();//获取查询条件//分页插件,会在执行sql之前将分页关键字追加到SQL后面
PageHelper.startPage(currentPage,pageSize);//调用持久层接口方法Page<CheckItem>page=checkGroupDao.findByCondition(queryString);//返回分页结果对象returnnewPageResult(page.getTotal(),page.getResult());}(4)实现查询检查组服务1.分页展示检查组任务实现在health_service_provider子模块的CheckGroupDao接口中定义findByCondition()方法,用于分页查询检查组。//分页查询检查组publicPage<CheckGroup>findByCondition(StringqueryString);(5)实现持久层查询检查组1.分页展示检查组在health_service_provider子模块的CheckGroupDao.xml映射文件中使用<select>元素映射查询语句,进行检查组的条件查询、分页查询。<!--根据条件查询、分页查询检查组--><selectid="findByCondition"parameterType="string" resultType="com.itheima.pojo.CheckGroup">SELECT*FROMt_checkgroup<iftest="value!=nullandvalue.length>0">WHERE
code=#{value}OR
nameLIKE'%${value}%'orhelpCode=#{value}
</if></select>任务实现依次启动ZooKeeper服务、health_service_provider和health_backend,在浏览器中访问http://localhost:82/pages/checkgroup.html。(6)测试分页展示检查组1.分页展示检查组任务实现(7)完善checkgroup.html页面的handleAdd()方法1.分页展示检查组优化handleAdd()方法,在新增检查组成功后调用findPage()方法。以实现新增检查组成功后在checkgroup.html页面中查看最新添加的检查组。//添加检查组handleAdd(){axios.post("/checkgroup/add.do?checkitemIds="+ this.checkitemIds,this.formData).then((res)=>{if(res.data.flag){
this.findPage();//分页查询检查组}
});}任务实现在checkgroup.html页面中定义handleCurrentChange()方法,用于实现页码切换。//切换页码handleCurrentChange(currentPage){this.pagination.currentPage=currentPage;//指定最新的页码this.findPage();//调用分页查询检查组的方法}2.页码切换任务实现在checkgroup.html页面提供了分页组件el-pagination,为el-pagination组件设置与页码相关的属性值。<el-pagination
class="pagiantion"
@current-change="handleCurrentChange"
:current="pagination.currentPage"
:size="pagination.pageSize"
:total="pagination.total"
layout="total,prev,pager,next,jumper"></el-pagination>表示在页码发生改变时触发的方法表示当前页表示每页显示条数表示总条数2.页码切换任务实现导入测试数据。依次启动Zookeeper服务、health_service_provider和health_backend。访问检查组管理页面,单击“>”按钮跳转到下一页。2.页码切换任务实现在checkgroup.html页面为“查询”按钮绑定单击事件,在单击时调用handleCurrentChange(1)方法。<el-buttonclass="dalfBut"
@click="handleCurrentChange(1)">查询</el-button>使findPage()方法返回的数据从查询结果第一条开始返回3.按条件查询检查组任务实现依次启动Zookeeper服务、health_service_provider和health_backend。在浏览器中访问http://localhost:82/pages/checkgroup.html。在查询条件输入框中输入查询条件,单击“查询”按钮进行条件查询。3.按条件查询检查组编辑检查组3-3任务描述编辑对应的检查项时,弹出的编辑检查组对话框中需要显示当前检查组的基本信息和所有的检查项信息,并将检查组关联的检查项设置为勾选状态。编辑检查组时,可以根据需求对检查组的基本信息或关联的检查项信息进行修改。在checkgroup.html页面中单击“编辑”按钮后会弹出编辑检查组对话框并显示检查组数据,修改对话框中的数据后,单击“确定”按钮提交检查组数据,完成检查组的编辑。由此,可以将编辑检查组分解成2个功能,分别是弹出带有检查组数据的编辑检查组对话框,以及完成检查组的编辑。任务分析任务分析(1)弹出编辑检查组对话框为页面中“编辑”按钮绑定单击事件,在单击事件触发后弹出编辑检查组对话框,再依次提交查询基本信息、查询所有检查项、查询检查组对检查项的引用的请求。(2)接收和处理查询检查组请求检查组的数据包含基本信息和对检查项的引用信息,因此,客户端发起查询检查组的请求时,除了要提交查询检查组基本信息的请求,还要提交查询所有检查项的请求、查询检查组对检查项的引用的请求。1.弹出带有检查组数据的编辑检查组对话框任务分析(3)查询检查组数据①重写CheckGroupService接口的findById()方法,在方法中调用CheckGroupDao接口中查询基本信息的findById()方法;②重写findCheckItemIdsByCheckGroupId()方法,在方法中调用CheckGroupDao接口中查询检查组对检查项的引用的findCheckItemIdsByCheckGroupId()方法。(4)显示查询结果将CheckGroupController类中findById()方法的查询结果、CheckItemController类中findAll()方法的查询结果、CheckGroupController类中findCheckItemIdsByCheckGroupId()方法的查询结果依次返回到checkgroup.html页面。1.弹出带有检查组数据的编辑检查组对话框任务分析弹出带有检查组数据的对话框的实现过程任务分析(1)提交编辑检查组数据为编辑检查组对话框的“确定”按钮绑定单击事件,在单击事件触发后提交对话框中的检查组数据。(2)接收和处理编辑检查组请求客户端发起编辑检查组数据的请求后,由控制器类CheckGroupController的edit()方法接收页面提交的请求,请求的参数中包含检查组基本信息和对检查项的引用。2.完成检查组的编辑任务分析(3)编辑检查组数据在CheckItemServiceImpl类中重写CheckGroupService接口的edit()方法,在方法中调用CheckGroupDao接口中的相关方法实现编辑检查组。(4)提示编辑结果CheckGroupController类中的edit()方法将编辑检查组的结果返回checkgroup.html页面,checkgroup.html页面根据返回结果提示编辑成功或失败的信息。2.完成检查组的编辑任务分析完成检查组编辑的实现过程任务实现在checkgroup.html页面中定义handleUpdate()方法,用于弹出编辑检查组对话框后回显数据。handleUpdate(row){this.activeName='first';//每次弹出的编辑对话框默认显示基本信息区this.dialogFormVisible4Edit=true;//编辑对话框显示axios.get("/checkgroup/findById.do?id="+row.id).then((res)=>{
//查询检查组基本信息});axios.get("/checkitem/findAll.do").then((res)=>{//查询检查项信息if(res.data.flag){this.tableData=res.data.data;//查询检查项列表成功,为tableData赋值axios.get("/checkgroup/findCheckItemIdsByCheckGroupId.do?checkgroupId="+
row.id).then((res)=>{
});}
//省略查询错误的提示信息});}1.弹出带有检查组数据的编辑检查组对话框(1)弹出编辑检查组对话框任务实现为checkgroup.html页面的“编辑”按钮绑定单击事件,并设置单击按钮时调用handleUpdate()方法。<el-buttontype="primary"class="mini"
@click="handleUpdate(scope.row)">编辑</el-button>1.弹出带有检查组数据的编辑检查组对话框(1)弹出编辑检查组对话框任务实现在health_backend子模块的CheckGroupController类中定义findById()方法,用于处理根据检查组id查询检查组基本信息的请求。@RequestMapping("/findById")publicResultfindById(Integerid){try{//调用服务接口findById(),返回检查项实体对象CheckGroupcheckGroup
=checkGroupService.findById(id);//调用服务接口成功,返回成功结果信息returnnewResult(true,MessageConstant.QUERY_CHECKGROUP_SUCCESS,checkGroup);}catch(Exceptione){e.printStackTrace();//调用服务接口失败,返回失败结果信息returnnewResult(false,MessageConstant.QUERY_CHECKGROUP_FAIL);}}(2)实现查询检查组控制器1.弹出带有检查组数据的编辑检查组对话框任务实现在CheckGroupController类中定义findCheckItemIdsByCheckGroupId()方法,用于处理根据检查组id查询检查组对检查项的引用的请求。@RequestMapping("/findCheckItemIdsByCheckGroupId")publicResultfindCheckItemIdsByCheckGroupId(IntegercheckgroupId){try{//调用服务接口,发送请求,返回关联的id列表List<Integer>list=checkGroupService. findCheckItemIdsByCheckGroupId(checkgroupId);//服务调用成功,返回查询结果与查询成功提示信息returnnewResult(true, MessageConstant.QUERY_CHECKITEM_SUCCESS,list);}catch(Exceptione){e.printStackTrace();returnnewResult(false,MessageConstant.QUERY_CHECKITEM_FAIL);}}(2)实现查询检查组控制器1.弹出带有检查组数据的编辑检查组对话框任务实现在health_interface子模块的CheckGroupService接口中定义findById()方法,用于根据检查组id查询检查组的基本信息;定义findCheckItemIdsByCheckGroupId()方法,用于根据检查组id查询检查组对检查项的引用。//根据检查组id查询检查组基本信息publicCheckGroupfindById(Integerid);//根据检查组id查询检查组对检查项的引用publicList<Integer>findCheckItemIdsByCheckGroupId(IntegercheckgroupId);(3)创建查询检查组服务1.弹出带有检查组数据的编辑检查组对话框任务实现在health_service_provider子模块的CheckGroupServiceImpl类中重写CheckGroupService接口的findById()方法和findCheckItemIdsByCheckGroupId()方法。//根据检查组id查询检查组基本信息publicCheckGroupfindById(Integerid){//调用持久层方法returncheckGroupDao.findById(id);}//根据检查组id查询检查组对检查项的引用publicList<Integer>findCheckItemIdsByCheckGroupId(IntegercheckgroupId){//调用持久层方法returncheckGroupDao.findCheckItemIdsByCheckGroupId(checkgroupId);}1.弹出带有检查组数据的对话框(4)实现查询检查组服务1.弹出带有检查组数据的编辑检查组对话框任务实现在health_service_provider子模块的CheckGroupDao接口中定义findById()方法,用于根据检查组id查询检查组基本信息;定义findCheckItemIdsByCheckGroupId()方法,用于根据检查组id查询检查组对检查项的引用。//根据检查组id查询检查组基本信息publicCheckGroupfindById(Integerid);//根据检查组id查询检查组对检查项的引用publicList<Integer>findCheckItemIdsByCheckGroupId(IntegercheckgroupId);(5)实现持久层查询检查组1.弹出带有检查组数据的编辑检查组对话框任务实现在health_service_provider子模块的CheckGroupDao.xml映射文件中使用<select>元素映射查询语句,分别查询检查组基本信息、查询检查组对检查项的引用。<!--根据id查询检查组--><selectid="findById"parameterType="int"resultType="com.itheima.pojo.CheckGroup">SELECT*FROMt_checkgroupWHEREid=#{id}</select><!--根据检查组id查询与之关联的检查项id--><selectid="findCheckItemIdsByCheckGroupId" parameterType="int"resultType="int">SELECT
checkitem_idFROM
t_checkgroup_checkitem WHERE
checkgroup_id=#{checkgroup_id}</select>(5)实现持久层查询检查组1.弹出带有检查组数据的编辑检查组对话框任务实现依次启动ZooKeeper服务、health_service_provider和health_backend。在浏览器中访问http://localhost:82/pages/checkgroup.html。1.弹出带有检查组数据的对话框(6)测试弹出带有检查组数据对话框层查询检查组1.弹出带有检查组数据的编辑检查组对话框任务实现找到检查组编码为0001的检查组,单击其右侧的“编辑”按钮,弹出编辑检查组对话框。1.弹出带有检查组数据的对话框(6)测试弹出带有检查组数据对话框层查询检查组1.弹出带有检查组数据的编辑检查组对话框任务实现单击编辑检查组对话框中的“检查项信息”,跳转到检查项信息选项卡。1.弹出带有检查组数据的对话框(6)测试弹出带有检查组数据对话框层查询检查组1.弹出带有检查组数据的编辑检查组对话框任务实现为编辑检查组对话框中的“取消”和“确定”按钮绑定单击事件,并设置单击时要执行的操作。<divslot="footer"class="dialog-footer"><el-button@click="dialogFormVisible4Edit=false">取消</el-button><el-buttontype="primary"@click="handleEdit()">确定</el-button></div>2.完成检查组的编辑(1)提交编辑检查组数据任务实现在checkgroup.html页面中定义handleEdit()方法,用于提交编辑检查组数据。handleEdit(){axios.post("/checkgroup/edit.do?checkitemIds="+this.checkitemIds,this.formData).then((res)=>{if(res.data.flag){this.dialogFormVisible4Edit=false;//关闭编辑对话框//弹出提示信息this.$message({type:'success',message:res.data.message});
this.findPage();//执行分页查询}else{//执行失败,弹出提示信息this.$message.error(res.data.message);}});}2.完成检查组的编辑(1)提交编辑检查组数据任务实现在health_backend子模块的CheckGroupController类中定义edit()方法,用于处理编辑检查组的请求。//编辑检查组@RequestMapping("/edit")publicResultedit(@RequestBodyCheckGroupcheckGroup,Integer[]checkitemIds){try{//调用服务接口edit(),发送请求checkGroupService.edit(checkGroup,checkitemIds);//调用服务成功,返回编辑成功提示信息returnnewResult(true,MessageConstant.EDIT_CHECKGROUP_SUCCESS);}catch(Exceptione){e.printStackTrace();//调用服务失败,返回编辑失败提示信息returnnewResult(false,MessageConstant.EDIT_CHECKGROUP_FAIL);}}2.完成检查组的编辑(2)实现编辑检查组控制器任务实现在health_interface子模块的CheckGroupService接口中定义edit()方法,用于编辑检查组。//编辑检查组publicvoidedit(CheckGroupcheckGroup,Integer[]checkitemIds);2.完成检查组的编辑(3)创建编辑检查组服务任务实现在health_service_provider子模块的CheckGroupServiceImpl类中重写CheckGroupService接口的edit()方法。//编辑检查组,同时需要设置关联关系@Overridepublicvoidedit(CheckGroupcheckGroup,Integer[]checkitemIds){checkGroupDao.edit(checkGroup);//编辑检查组基本信息checkGroupDao.deleteAssociation(checkGroup.getId());//删除关联检查项//重新增立关联检查项this.setCheckGroupAndCheckItem(checkGroup.getId(),checkitemIds);}2.完成检查组的编辑(4)实现编辑检查组服务任务实现在health_service_provider子模块的CheckGroupDao接口中定义edit()方法以编辑检查组基本信息;定义deleteAssociation()方法以删除检查组对检查项的引用。//编辑检查组基本信息publicvoidedit(CheckGroupcheckGroup);//删除检查组和检查项的关联关系(操作中间关系表)publicvoiddeleteAssociation(IntegercheckgroupId);2.完成检查组的编辑(5)实现持久层编辑检查组任务实现在CheckGroupDao.xml映射文件中使用<update>元素映射修改语句,修改检查组的基本信息。<!--编辑检查组基本信息--><updateid="edit"parameterType="com.itheima.pojo.CheckGroup">UPDATE
t_checkgroup<set><iftest="name!=null">name=#{name},</if>
省略其他字段</set>WHERE
id=#{id}</update>2.完成检查组的编辑(5)实现持久层编辑检查组任务实现在CheckGroupDao.xml映射文件中使用<delete>元素映射删除语句,删除检查组对检查项的引用。<!--清理检查组和检查项的关联关系--><deleteid="deleteAssociation"parameterType="int">DELETEFROM
t_checkgroup_checkitemWHERE
checkgroup_id=#{checkgroup_id}</delete>2.完成检查组的编辑(5)实现持久层编辑检查组任务实现依次启动ZooKeeper服务、health_service_provider和health_backend,在浏览器中访问http://localhost:82/pages/checkgroup.html。选择检查组编码为0001的检查组进行编辑,将“说明”的值修改为“一般检查无须空腹”。2.完成检查组的编辑(6)测试编辑检查组任务实现单击编辑检查组对话框的“检查项信息”,将项目编码为0006的检查项取消勾选。2.完成检查组的编辑(6)测试编辑检查组任务实现页面提示“编辑检查组成功”,并且项目编码为0001的数据中说明字段修改为了“一般检查无须空腹”。2.完成检查组的编辑(6)测试编辑检查组任务实现单击其右侧的“编辑”按钮,查看勾选的检查项是否修改成功。2.完成检查组的编辑(6)测试编辑检查组删除检查组3-4任务描述每个检查组右侧都有一个“删除”按钮,单击“删除”按钮可提交删除检查组的请求。为了防止误删数据,在单击“删除”按钮后会弹出提示对话框,让用户确认是否删除该检查组。单击“确定”按钮提交删除检查组的请求。对于检查组列表中重复出现的、与检查项搭配不合理的检查组,或者是已经过时的检查组,除了可以进行编辑外,还可以进行删除。任务分析弹出提示对话框提交删除检查组请求接收和处理删除检查组请求删除检查组数据提示删除检查组的结果12345为checkgroup.html页面的“删除”按钮绑定单击事件,在单击事件触发后弹出提示对话框。为提示对话框“确定”按钮绑定单击事件,在单击事件触发后提交要删除的检查组数据。CheckGroupController类的delete()方法接收页面提交的请求。在CheckGroupServiceImpl类中重写CheckGroupService接口的delete()方法。checkgroup.html页面根据结果提示删除成功或失败的信息。任务分析删除检查组的实现过程任务实现为checkgroup.html页面中的“删除”按钮绑定单击事件,并设置在单击“删除”按钮时调用handleDelete()方法。<el-buttonsize="mini"type="danger"
@click="handleDelete(scope.row)">删除</el-button>(1)弹出提示对话框任务实现在checkgroup.html页面中实现handleDelete()方法,用于删除检查组。handleDelete(row){
this.$confirm('你确定要删除当前数据吗?','提示',{confirmButtonText:'确定',cancelButtonText:'取消',type:'warning'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中秋节习俗探究
- 专业国际贸易居间协议范本(2024版)
- 2025年度数据中心场地租赁及设施升级维护合同4篇
- 2025年度插班生入校社会实践协议范本4篇
- 2025年度建筑安全施工安全监督检验合同范本3篇
- 专项协议:2024版研究报告服务条款版A版
- 2025年度产业园租赁及产业技术创新合同4篇
- 二零二四年事业单位工程技术岗位劳动合同(含技术培训)3篇
- 2025年叉车租赁服务与技术支持合同4篇
- 2024油漆涂料仓库租赁与管理合同
- 2024版智慧电力解决方案(智能电网解决方案)
- 公司SWOT分析表模板
- 小学预防流行性感冒应急预案
- 肺癌术后出血的观察及护理
- 生物医药大数据分析平台建设-第1篇
- 基于Android的天气预报系统的设计与实现
- 冲锋舟驾驶培训课件
- 美术家协会会员申请表
- 聚合收款服务流程
- 中石化浙江石油分公司中石化温州灵昆油库及配套工程项目环境影响报告书
- 搞笑朗诵我爱上班台词
评论
0/150
提交评论