package com.x.okr.assemble.control.jaxrs.okrworkbaseinfo; import javax.servlet.http.HttpServletRequest; import com.x.base.core.project.http.ActionResult; import com.x.base.core.project.http.EffectivePerson; import com.x.base.core.project.jaxrs.WoId; import com.x.base.core.project.logger.Logger; import com.x.base.core.project.logger.LoggerFactory; import com.x.okr.assemble.control.OkrUserCache; import com.x.okr.assemble.control.jaxrs.okrworkbaseinfo.exception.ExceptionGetOkrUserCache; import com.x.okr.assemble.control.jaxrs.okrworkbaseinfo.exception.ExceptionWorkBaseInfoProcess; import com.x.okr.assemble.control.jaxrs.okrworkbaseinfo.exception.ExceptionWorkIdEmpty; import com.x.okr.assemble.control.jaxrs.okrworkbaseinfo.exception.ExceptionWorkNotExists; import com.x.okr.assemble.control.jaxrs.queue.WrapInWorkDynamic; import com.x.okr.entity.OkrWorkBaseInfo; public class ActionProgressAdjust extends BaseAction { private static Logger logger = LoggerFactory.getLogger( ActionProgressAdjust.class ); protected ActionResult execute( HttpServletRequest request, EffectivePerson effectivePerson, String workId, Integer percent ) throws Exception { ActionResult result = new ActionResult<>(); OkrWorkBaseInfo okrWorkBaseInfo = null; OkrUserCache okrUserCache = null; Boolean check = true; if( workId == null || workId.isEmpty() ){ check = false; Exception exception = new ExceptionWorkIdEmpty(); result.error( exception ); } try { okrUserCache = okrUserInfoService.getOkrUserCacheWithPersonName( effectivePerson.getDistinguishedName() ); }catch(Exception e){ check = false; Exception exception = new ExceptionGetOkrUserCache( e, effectivePerson.getDistinguishedName() ); result.error( exception ); logger.error( e, effectivePerson, request, null); } if(check){ try { okrWorkBaseInfo = okrWorkBaseInfoService.get( workId ); if( okrWorkBaseInfo == null ){ check = false; Exception exception = new ExceptionWorkNotExists( workId ); result.error( exception ); } } catch ( Exception e ) { check = false; Exception exception = new ExceptionWorkBaseInfoProcess( e, "查询指定ID的具体工作信息时发生异常。ID:" + workId ); result.error( exception ); logger.error( e, effectivePerson, request, null); } } if( check ){ try{ okrWorkBaseInfoOperationService.progressAdjust( workId, percent ); result.setData( new Wo( workId ) ); }catch(Exception e){ Exception exception = new ExceptionWorkBaseInfoProcess( e, "工作进度调整操作过程中发生异常。ID:" + workId ); result.error( exception ); logger.error( e, effectivePerson, request, null); } } if( check ){ if( okrWorkBaseInfo != null ){ WrapInWorkDynamic.sendWithWorkInfo( okrWorkBaseInfo, effectivePerson.getDistinguishedName(), okrUserCache.getLoginUserName(), okrUserCache.getLoginIdentityName() , "调整工作进展", "工作进展调整成功!调整工作进展至["+percent+"%]" ); } } return result; } public static class Wo extends WoId { public Wo( String id ) { this.setId( id ); } } }