123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package com.kingdee.eas.hr.project.handler;
- import com.kingdee.bos.BOSException;
- import com.kingdee.bos.Context;
- import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
- import com.kingdee.bos.metadata.entity.SelectorItemCollection;
- import com.kingdee.bos.metadata.entity.SelectorItemInfo;
- import com.kingdee.eas.common.EASBizException;
- import com.kingdee.eas.framework.CoreBaseInfo;
- import com.kingdee.eas.hr.project.IProjectChange;
- import com.kingdee.eas.hr.project.IProjectManagement;
- import com.kingdee.eas.hr.project.ProjectChangeFactory;
- import com.kingdee.eas.hr.project.ProjectChangeInfo;
- import com.kingdee.eas.hr.project.ProjectManagementFactory;
- import com.kingdee.eas.hr.project.ProjectManagementInfo;
- import com.kingdee.shr.base.syssetting.context.SHRContext;
- import com.kingdee.shr.base.syssetting.exception.SHRWebException;
- import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
- import com.kingdee.shr.base.syssetting.web.handler.EditHandler;
- import com.kingdee.shr.common.util.StringUtils;
- import java.util.HashMap;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.ui.ModelMap;
- public class ProjectChangeEditHandler extends EditHandler
- {
- private static final Logger logger = LoggerFactory.getLogger(ProjectChangeEditHandler.class);
- protected void verifyModel(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model)
- throws SHRWebException
- {
- try
- {
- super.verifyModel(request, response, model);
- if ((model instanceof ProjectChangeInfo))
- {
- ProjectChangeInfo info = (ProjectChangeInfo)model;
- ObjectUuidPK objectUuidPK = new ObjectUuidPK(info.getChangeProject().getId());
- IProjectManagement iProjectManagement = ProjectManagementFactory.getRemoteInstance();
- ProjectManagementInfo projectManagementInfo = iProjectManagement.getProjectManagementInfo(objectUuidPK);
- if(info.getId() != null ) {
- if(projectManagementInfo.isBeingChanged() && !projectManagementInfo.getSourceBillId().equals(info.getId().toString())){
- throw new ShrWebBizException("保存失败,项目正在变更,不能二次变更!");
- }
- }else {
- if (projectManagementInfo.isBeingChanged()) {
- throw new ShrWebBizException("保存失败,项目正在变更,不能二次变更!");
- }
- }
-
- }
- } catch (EASBizException e) {
- e.printStackTrace();
- } catch (BOSException e) {
- e.printStackTrace();
- }
- }
- public String submitAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
- throws SHRWebException
- {
- Context ctx = SHRContext.getInstance().getContext();
- String billId = request.getParameter("billId");
- Map result = new HashMap();
- if (!StringUtils.isEmpty(billId)) {
- try {
- IProjectChange iProjectChange = ProjectChangeFactory.getLocalInstance(ctx);
- ProjectChangeInfo projectChangeInfo = iProjectChange.getProjectChangeInfo("where id = '" + billId + "'");
- ProjectManagementInfo changeProjectInfo = projectChangeInfo.getChangeProject();
- changeProjectInfo.setBeingChanged(true);
- changeProjectInfo.setSourceBillId(projectChangeInfo.getId().toString());
- IProjectManagement iProjectManagement = ProjectManagementFactory.getLocalInstance(ctx);
- SelectorItemCollection sic = new SelectorItemCollection();
- sic.add(new SelectorItemInfo("beingChanged"));
- sic.add(new SelectorItemInfo("sourceBillId"));
- iProjectManagement.updatePartial(changeProjectInfo, sic);
- } catch (Exception var9) {
- logger.error(var9.getMessage(), var9);
- throw new ShrWebBizException("项目失败!", var9);
- }
- }
- return super.submitAction(request, response, modelMap);
- }
-
- // public void auditPorjectAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
- // throws SHRWebException, BOSException, EASBizException
- // {
- // Context ctx = SHRContext.getInstance().getContext();
- // String billId = request.getParameter("billId");
- // Map result = new HashMap();
- // if (!StringUtils.isEmpty(billId))
- // try {
- // IProjectChange iProjectChange = ProjectChangeFactory.getLocalInstance(ctx);
- // ProjectChangeInfo projectChangeInfo = iProjectChange.getProjectChangeInfo("where id = '" + billId + "'");
- //
- // BigDecimal chaManDays = projectChangeInfo.getChaManDays();
- // BigDecimal oriManDays = projectChangeInfo.getOriManDays();
- // BigDecimal changedManDays = chaManDays.subtract(oriManDays);
- //
- // ProjectManagementInfo changeProject = projectChangeInfo.getChangeProject();
- // changeProject.setChangedManDays(changedManDays);
- // System.out.print("变更人天值赋值成功" + changedManDays);
- // changeProject.setBeingChanged(false);
- // System.out.print("是否变更中值为false");
- //
- // BigDecimal oriManDays2 = projectChangeInfo.getOriManDays();
- // System.out.print("项目总人天的值获取成功" + oriManDays2);
- // BigDecimal add = oriManDays2.add(changedManDays);
- // System.out.print("变更人天的值累加成功" + add);
- //
- // changeProject.setTotalPersonDays(add);
- // System.out.print("把累加后的值赋值给项目总人天成功");
- //
- // IProjectManagement iProjectManagement = ProjectManagementFactory.getLocalInstance(ctx);
- // SelectorItemCollection sic = new SelectorItemCollection();
- //
- // sic.add(new SelectorItemInfo("changedManDays"));
- // sic.add(new SelectorItemInfo("beingChanged"));
- // System.out.print("变更人天更新成功");
- //
- // sic.add(new SelectorItemInfo("totalPersonDays"));
- // System.out.print("项目总人天更新成功成功");
- //
- // iProjectManagement.updatePartial(changeProject, sic);
- // } catch (Exception var9) {
- // logger.error(var9.getMessage(), var9);
- // throw new ShrWebBizException("审核项目失败!", var9);
- // }
- // else {
- // result.put("errorMsg", "数据异常,billId为空!");
- // }
- //
- // JSONUtils.writeJson(response, result);
- // }
- }
|