package com.kingdee.eas.custom.performancenew.handler; import com.kingdee.bos.BOSException; import com.kingdee.bos.Context; import com.kingdee.bos.ctrl.swing.StringUtils; import com.kingdee.bos.metadata.entity.SelectorItemCollection; import com.kingdee.eas.common.EASBizException; import com.kingdee.eas.custom.performancenew.*; import com.kingdee.eas.custom.performancenew.app.periodStatusEnum; import com.kingdee.shr.base.syssetting.context.SHRContext; import com.kingdee.shr.base.syssetting.web.handler.EditHandler; import com.kingdee.shr.base.syssetting.web.json.JSONUtils; import org.springframework.ui.ModelMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author qingwu * @date 2024/4/11 * @apiNote 周期季度 */ public class ExamineZQJDEditHandler extends EditHandler { private Context ctx = SHRContext.getInstance().getContext(); /** * 锁定周期 * * @param request * @param response * @param modelMap */ public void periodLockAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws BOSException, EASBizException { String billId = request.getParameter("billId"); IExamineGradePerson iExamineGradePerson = ExamineGradePersonFactory.getLocalInstance(ctx); ExamineGradePersonCollection examineGradePersonCollection = iExamineGradePerson.getExamineGradePersonCollection("where id = '" + billId + "'"); if (examineGradePersonCollection.size() > 0) { SelectorItemCollection sic = new SelectorItemCollection(); ExamineGradePersonInfo examineGradePersonInfo = examineGradePersonCollection.get(0); examineGradePersonInfo.setPeriodStatus(periodStatusEnum.periodLock); sic.add("periodStatus"); iExamineGradePerson.updatePartial(examineGradePersonInfo, sic); } } /** * 解除周期 * * @param request * @param response * @param modelMap */ public void periodUnlockAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws BOSException, EASBizException { String billId = request.getParameter("billId"); IExamineGradePerson iExamineGradePerson = ExamineGradePersonFactory.getLocalInstance(ctx); ExamineGradePersonCollection examineGradePersonCollection = iExamineGradePerson.getExamineGradePersonCollection("where id = '" + billId + "'"); if (examineGradePersonCollection.size() > 0) { SelectorItemCollection sic = new SelectorItemCollection(); ExamineGradePersonInfo examineGradePersonInfo = examineGradePersonCollection.get(0); examineGradePersonInfo.setPeriodStatus(periodStatusEnum.periodRelieve); sic.add("periodStatus"); iExamineGradePerson.updatePartial(examineGradePersonInfo, sic); } } /** * 启动排序 */ public void startOrderAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) { try { //组织绩效与个人绩效分布对应关系 IPersonRelationOrg iPersonRelationOrg = PersonRelationOrgFactory.getLocalInstance(ctx); PersonRelationOrgCollection personRelationOrgCollection = iPersonRelationOrg.getPersonRelationOrgCollection(); if (personRelationOrgCollection.size() > 0) { for (int i = 0; i < personRelationOrgCollection.size(); i++) { PersonRelationOrgInfo personRelationOrgInfo = personRelationOrgCollection.get(i); //判断数据是否完整性,累积比例是否等于100 int sum = getCumulativeSum(personRelationOrgInfo); if(sum>100){ }else{ } } } } catch (BOSException e) { e.printStackTrace(); throw new RuntimeException(e); } } /** * 累加比例累积和 */ public int getCumulativeSum(PersonRelationOrgInfo personRelationOrgInfo) { int sum = 0; sum += personRelationOrgInfo.getMeritA(); sum += personRelationOrgInfo.getMeritBplus(); sum += personRelationOrgInfo.getMeritB(); sum += personRelationOrgInfo.getMeritBminus(); sum += personRelationOrgInfo.getMeritC(); sum += personRelationOrgInfo.getMeritD(); return sum; } /** * 校验是否存在该年度 * * @param request * @param response * @param modelMap * @return */ public void getExistsYearAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) { String year = request.getParameter("year"); String periodType = request.getParameter("periodType"); String quarter = request.getParameter("quarter"); if (periodType.equals("季度")) { getExistsMonthAction(request, response, modelMap); } if (!StringUtils.isEmpty(year)) { try { IExamineGradePerson iExamineGradePerson = ExamineGradePersonFactory.getLocalInstance(ctx); Boolean exists = iExamineGradePerson.exists("where year = '" + year + "' and periodType='1'"); JSONUtils.SUCCESS(exists); } catch (Exception e) { throw new RuntimeException(e); } } } /** * 校验是该年度是否存在该季度或月度 * * @param request * @param response * @param modelMap * @return */ public void getExistsMonthAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) { String year = request.getParameter("year"); String periodType = request.getParameter("periodType"); String quarter = request.getParameter("quarter"); if (!StringUtils.isEmpty(year)) { try { IExamineGradePerson iExamineGradePerson = ExamineGradePersonFactory.getLocalInstance(ctx); Boolean exists = iExamineGradePerson.exists("where year = '" + year + "' and quarter='" + quarter + "'"); JSONUtils.SUCCESS(exists); } catch (Exception e) { throw new RuntimeException(e); } } } }