首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

项目变更异常修改

2012-09-07 
项目变更错误修改1加入审核状态数据库--变更表加入表更审核状态字段alter table s_alteration add CHECK_S

项目变更错误修改

1加入审核状态
数据库
--变更表加入表更审核状态字段
alter table s_alteration add CHECK_STATUS_ID varchar(32);

?

配置文件 alteration.hbm.xm:
<property name="checkStatusId" type="string">
?<meta attribute="field-description">审核状态</meta>
?<column name="CHECK_STATUS_ID" length="32" />
</property>

?


2.成员变更时把所在单位带出来
提交时(onsubmit())把页面的单位调整为可见
document.all["bean.workUnit"].disabled = false;

?

在AlterMemberBO的addAlerMember保存变更作者方法中,把单位设置上

alterMember.setWorkUnit(proMember.getWorkUnit());

保存到数据库后id=baseAddBean(alterMember);设置id
proMember.setId(String.valueOf(id));


3审核时项目变更执行特殊方法
checkAction
?--checkListSave 方法
?????? --processSpecialBusiness(moduleIds, moduleName, checkStatusId);
???????????? -- updateMembersAlterInfo(timeId);下的三个方法:saveProjectMembers(timeId);deleteProjectMembers(timeId); updateProjectMembers(timeId);
????????????
?先从变更表中找到变更状态不是2的变更(说明还没有审核)? getAlterations方法
?String querySQL = " from Alteration alteration where alteration.timeId='"
????+ timeId
????+ "' and? alteration.moduleId='"
????+ moduleId
?????+ "' and alteration.checkStatusId<>'2' " ;
?
?然后对项目成员进行新增或者更新或者删除操作,在执行操作之前把刚查到的变更的变更状态变成2
?alteration.setCheckStatusId("2");
?new AlterationBO().baseUpdateBean(alteration);
?
?
4 变更审核不通过的话也要吧变更状态变为2,这样下次变更审核通过的时候就不会找到以前的变更
? writeBackAlterations方法
for (int i = 0; i < timeIds.length; i++) {
???String timeId = timeIds[i];
???if (!"2".equals(checkStatusId)){
????List alterationList = getAlterations(timeId, "projectMember", ADD);
????try {
?????for (Iterator it = alterationList.iterator(); it.hasNext();) {
??????Alteration alteration = (Alteration) it.next();
??????AlterMember alterMember = (AlterMember) new AlterMemberBO()
????????.get("com.eplugger.business.project.model.AlterMember",new Integer(alteration.getModuleEntityId()));
??????alteration.setCheckStatusId("2");
??????new AlterationBO().baseUpdateBean(alteration);
?????}
????} catch (Exception e) {
?????e.printStackTrace();
????}
????return;
???}
???
???
5,刚新增一个成员就删除它
在ProjectMemberAction的变更保存alterSave方法中添加一个标示

// 设置新增标识
???? proMember.setNewAddFlag("1");
????
????
????
在PageListUtil.java中的generateOperateColumn方法进行判断
//项目人员
??if(moduleId.indexOf("Member")>0){
???if("projectMember".equals(moduleId)){
????
????String editOperate="edit";
????ProjectMember member=(ProjectMember) model;
????String deleteFunction = "1".equals(member.getNewAddFlag()) ? "deleteAlteredAuthor": "deleteAuthor";
????if(!user.hasRight(ProjectConst.PROJECT_EDIT,member.getProject())){
?????editOperate="alterEdit";
????}
????content="<td class='tdlistcontent' align='center'>" +
????"<a href='projectMember.do?actionType="+editOperate+"&bean.id=" +
????member.getKeyId() +
????"' class='list_link'>编辑</a> " +
????"<a href="javascript:" + deleteFunction + "('" +
????member.getKeyId()+
????"','" +member.getPersonId()+
????"','" +member.getOrderId()+"')" class="list_link">删除</a>" +
????"</td>";
????
????
在alterMemberList.jsp中添加新增的变更成员删除的脚本(和列表已经有的成员的删除不一样)
/**
? 删除新增的成员
*/
function deleteAlteredAuthor(id,authorId){
?? if(confirm("确认删除所选的成员吗?")){
? ?<%if(user.isTeacher()){%>
???? if(authorId=="<%=user.getKeyId()%>"){
???????? alert("不能将自己从作者列表中删除!");
???????? return;
????? }
??? <%}%>
??? document.all["bean.id"].value=id;
?????? document.projectMemberForm.actionType.value = "deleteAlteredAuthor";
??? document.projectMemberForm.submit();
?? }
}


接着还要再ProjectMemberAction添加一个删除方法
?? public ActionForward deleteAlteredAuthor(ActionMapping mapping,
?????? ActionForm form, HttpServletRequest request, HttpServletResponse response) {
???? ProjectMemberForm thisForm = (ProjectMemberForm) form;
???? Project project = thisForm.getProject();
???? ProjectMember pMember = (ProjectMember) thisForm.getBean();
???? User user = (User) request.getSession().getAttribute(USER);
???? AlterationTime alterationTime = new AlterationTimeBO()
??.generateAlterationTime(StringUtil.intToString(project
????.getKeyId()),project.getProjectClassId(), project.getName(), user);
???? // 1.将项目成员从项目中删除
???? Set members = project.getMembers();
???? Iterator it = members.iterator();
???? while (it.hasNext()) {
?????? ProjectMember memberTemp = (ProjectMember) it.next();
?????? if (pMember.getKeyId() == memberTemp.getKeyId()) {
???????? project.removeAuthor(memberTemp);
???????? break;
?????? }
???? }
???? // 2.删除变更信息
???? AlterMemberBO memberBO = new AlterMemberBO();
???? try {
?????? // 将成员信息从变更人员数据库中删除
?????? memberBO.deleteById(pMember.getId(),
?????????? "com.eplugger.business.project.model.AlterMember");
?????? // 删除变更记录
?????? new AlterationBO()
?????????? .delete(" from Alteration where moduleId='projectmember' and? moduleEntityId='"
?????????????? + pMember.getKeyId()
?????????????? + "' and timeId='"
?????????????? + alterationTime.getKeyId() + "'");

???? } catch (Exception e) {
?????? e.printStackTrace();
?????? generalError(request, e);
???? }

???? thisForm.setBean(new ProjectMember());
???? thisForm.setPageType(BaseForm.PAGETYPE_ADD);
???? return mapping.findForward(ALTER_LIST);
?? }
?
?
?
?
?
????????????????

热点排行