123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- package com.kingdee.eas.custom.performancenew.handler;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.grapecity.documents.excel.F;
- import com.kingdee.bos.BOSException;
- import com.kingdee.bos.Context;
- import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
- import com.kingdee.bos.metadata.entity.*;
- import com.kingdee.bos.metadata.query.util.CompareType;
- import com.kingdee.bos.sql.ParserException;
- import com.kingdee.bos.util.BOSUuid;
- import com.kingdee.eas.basedata.org.AdminOrgUnitFactory;
- import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
- import com.kingdee.eas.basedata.org.IAdminOrgUnit;
- import com.kingdee.eas.basedata.person.PersonInfo;
- import com.kingdee.eas.common.EASBizException;
- import com.kingdee.eas.custom.performancenew.*;
- import com.kingdee.eas.custom.performancenew.app.orderStatucEnum;
- import com.kingdee.eas.custom.performancenew.app.periodStatusEnum;
- import com.kingdee.eas.custom.performancenew.app.scoreEnum;
- import com.kingdee.eas.framework.CoreBaseInfo;
- import com.kingdee.eas.hr.ats.AtsUtil;
- import com.kingdee.eas.util.app.ContextUtil;
- 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.util.StringUtils;
- import org.springframework.ui.ModelMap;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.lang.reflect.Array;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.Map;
- /**
- * @author qingwu
- * @date 2024/4/11
- * @apiNote 周期季度 普通表单 (专员)
- */
- public class ExamineZQJDEditHandler extends EditHandler {
- private Context ctx = SHRContext.getInstance().getContext();
- /**
- * customDelete 编辑表格删除
- *
- * @param request
- * @param response
- * @param modelMap
- * @return
- * @throws SHRWebException
- */
- public void customDeleteAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException, BOSException, EASBizException {
- //获取删除ID
- String idArray = request.getParameter("idArray");
- IExamineGradePersonEntry iExamineGradePersonEntry = ExamineGradePersonEntryFactory.getLocalInstance(ctx);
- FilterInfo filterInfo = new FilterInfo();
- filterInfo.getFilterItems().add(new FilterItemInfo("id", AtsUtil.toSet(idArray), CompareType.INCLUDE));
- iExamineGradePersonEntry.delete(filterInfo);
- }
- /**
- * 创建页面时 初始化周期解除
- *
- * @param request
- * @param response
- * @param modelMap
- * @return
- * @throws SHRWebException
- */
- @Override
- protected CoreBaseInfo createNewModel(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
- ExamineGradePersonInfo examineGradePersonInfo = (ExamineGradePersonInfo) super.createNewModel(request, response, modelMap);
- examineGradePersonInfo.setPeriodStatus(periodStatusEnum.periodRelieve);
- return examineGradePersonInfo;
- }
- @Override
- public String saveAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
- if (request.getParameter("saveType").equals("save")) {
- return super.saveAction(request, response, modelMap);
- }
- try {
- ExamineGradePersonInfo model = (ExamineGradePersonInfo) request.getAttribute("dynamic_model");
- //获取保存前的数据
- String beforeSave = request.getParameter("beforeSave");
- IExamineGradePerson iExamineGradePerson = ExamineGradePersonFactory.getLocalInstance(ctx);
- IExamineGradePersonEntry iExamineGradePersonEntry = ExamineGradePersonEntryFactory.getLocalInstance(ctx);
- if (beforeSave != null) {
- JSONArray jsonArray = JSONObject.parseArray(beforeSave);
- if (jsonArray.size() > 0) {
- //保存前数据
- ExamineGradePersonEntryCollection upEentrys = new ExamineGradePersonEntryCollection();
- for (int i = 0; i < jsonArray.size(); i++) {
- //拿到保存前的数据去数据库查询
- JSONObject jsonObject = JSONObject.parseObject(jsonArray.get(i).toString());
- ExamineGradePersonEntryInfo examineGradePersonEntryInfo =
- iExamineGradePersonEntry.getExamineGradePersonEntryInfo(new ObjectUuidPK(jsonObject.get("id").toString()));
- upEentrys.add(examineGradePersonEntryInfo);
- }
- //保存后数据
- ExamineGradePersonInfo examineGradePersonInfo = (ExamineGradePersonInfo) model;
- ExamineGradePersonEntryCollection pgEntrys = examineGradePersonInfo.getEntrys();
- //循环判断删除那一列被修改过
- for (int i = 0; i < upEentrys.size(); i++) {
- ExamineGradePersonEntryInfo upExamineGradePersonEntryInfo = upEentrys.get(i);
- for (int j = 0; j < pgEntrys.size(); j++) {
- SelectorItemCollection sic = new SelectorItemCollection();
- ExamineGradePersonEntryInfo pgExamineGradePersonEntryInfo = pgEntrys.get(j);
- if (upExamineGradePersonEntryInfo.getId() == null) {
- pgExamineGradePersonEntryInfo.setParent(examineGradePersonInfo);
- iExamineGradePersonEntry.save(pgExamineGradePersonEntryInfo);
- }
- //判断组织是否被更改
- if (!upExamineGradePersonEntryInfo.getId().equals(pgExamineGradePersonEntryInfo.getId()) && upExamineGradePersonEntryInfo.getAdminOrg().getId().equals(pgExamineGradePersonEntryInfo.getAdminOrg().getId())) {
- sic.add("adminOrg");
- }
- //判断考核人是否被更改
- if (!upExamineGradePersonEntryInfo.getAuditor().getId().equals(pgExamineGradePersonEntryInfo.getAuditor().getId())) {
- sic.add("auditor");
- }
- //判断评分人是否被更改
- if (!upExamineGradePersonEntryInfo.getScorer().getId().equals(pgExamineGradePersonEntryInfo.getScorer().getId())) {
- sic.add("scorer");
- }
- //判断计算得分是否被更改
- if (upExamineGradePersonEntryInfo.getScore() != pgExamineGradePersonEntryInfo.getScore()) {
- sic.add("score");
- }
- //判断领导计算得分是否被更改
- if (upExamineGradePersonEntryInfo.getScoreLeader() != pgExamineGradePersonEntryInfo.getScoreLeader()) {
- sic.add("scoreLeader");
- }
- //判断领导计算得分是否被更改
- if (upExamineGradePersonEntryInfo.getIndex() != pgExamineGradePersonEntryInfo.getIndex()) {
- sic.add("index");
- }
- //if (
- // upExamineGradePersonEntryInfo.getScorer().getId().equals(pgExamineGradePersonEntryInfo.getScorer().getId()) &&
- // upExamineGradePersonEntryInfo.getScore() == pgExamineGradePersonEntryInfo.getScore() &&
- // upExamineGradePersonEntryInfo.getScoreLeader() == pgExamineGradePersonEntryInfo.getScore() &&
- // upExamineGradePersonEntryInfo.getIndex() == pgExamineGradePersonEntryInfo.getIndex() &&
- // upExamineGradePersonEntryInfo.getRemark() == pgExamineGradePersonEntryInfo.getRemark()
- //) {
- // //这里是没有被修改的数据
- // //pgEntrys.remove(pgExamineGradePersonEntryInfo);
- // continue;
- //} else {
- // //修改过的数据
- // pgExamineGradePersonEntryInfo.setParent(examineGradePersonInfo);
- // iExamineGradePersonEntry.save(pgExamineGradePersonEntryInfo);
- //}
- }
- }
- } else {
- //保存后数据
- ExamineGradePersonInfo examineGradePersonInfo = (ExamineGradePersonInfo) model;
- ExamineGradePersonEntryCollection pgEntrys = examineGradePersonInfo.getEntrys();
- for (int j = 0; j < pgEntrys.size(); j++) {
- ExamineGradePersonEntryInfo pgExamineGradePersonEntryInfo = pgEntrys.get(j);
- //修改过的数据
- pgExamineGradePersonEntryInfo.setParent(examineGradePersonInfo);
- iExamineGradePersonEntry.save(pgExamineGradePersonEntryInfo);
- }
- }
- }
- } catch (BOSException e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- } catch (EASBizException e) {
- throw new RuntimeException(e);
- }
- return null;
- }
- /**
- * 锁定周期
- *
- * @param request
- * @param response
- * @param modelMap
- */
- public void periodLockAction(HttpServletRequest request,
- HttpServletResponse response,
- ModelMap modelMap) throws BOSException, EASBizException, ShrWebBizException {
- try {
- String billId = request.getParameter("billId");
- ExamineGradePersonFactory.getLocalInstance(ctx).periodLock(billId);
- } catch (BOSException e) {
- throw new ShrWebBizException(e.getMessage());
- }
- }
- /**
- * 解除周期
- *
- * @param request
- * @param response
- * @param modelMap
- */
- public void periodUnlockAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws
- BOSException, EASBizException, ShrWebBizException {
- try {
- String billId = request.getParameter("billId");
- ExamineGradePersonFactory.getLocalInstance(ctx).periodUnlock(billId);
- } catch (BOSException e) {
- throw new ShrWebBizException(e.getMessage());
- }
- }
- /**
- * 启动排序
- */
- public void startOrderAction(HttpServletRequest request,
- HttpServletResponse response,
- ModelMap modelMap) throws ShrWebBizException {
- try {
- String billId = request.getParameter("billId");
- ExamineGradePersonEntryCollection entrys = getCurrentPersonEqualsScore(billId, null);
- for (int i = 0; entrys != null && i < entrys.size(); i++) {
- ExamineGradePersonEntryInfo entry = entrys.get(i);
- String depName = entry.getAdminOrg().getName();
- if (entry.getPerformanceScoreOrg() == null) {
- throw new ShrWebBizException("部门[" + depName + "] 没有维护组织绩效得分!");
- }
- }
- ExamineGradePersonFactory.getLocalInstance(ctx).startOrder(billId);
- } catch (ParserException e) {
- throw new ShrWebBizException(e);
- } catch (BOSException e) {
- throw new ShrWebBizException(e);
- } catch (ShrWebBizException e) {
- throw new ShrWebBizException(e);
- }
- }
- /**
- * 获取当前登录人等于评分人的数据
- *
- * @param billID
- * @return
- */
- public ExamineGradePersonEntryCollection getCurrentPersonEqualsScore(String billID,
- String adminID) throws ParserException, BOSException {
- SelectorItemCollection sic = new SelectorItemCollection();
- sic.add("*");
- sic.add("adminOrg.*");
- sic.add("performanceScoreOrg.*");
- FilterInfo filterInfo = new FilterInfo();
- FilterItemCollection filterItems = filterInfo.getFilterItems();
- filterItems.add(new FilterItemInfo("parent.id", billID));
- if (!StringUtils.isEmpty(adminID)) {
- filterItems.add(new FilterItemInfo("adminOrg.id", adminID));
- }
- SorterItemCollection sorterItemCollection = new SorterItemCollection("adminOrg.id,index");
- EntityViewInfo entityViewInfo = EntityViewInfo.getInstance(filterInfo, sic, sorterItemCollection);
- IExamineGradePersonEntry iExamineGradePersonEntry = ExamineGradePersonEntryFactory.getLocalInstance(ctx);
- return iExamineGradePersonEntry.getExamineGradePersonEntryCollection(entityViewInfo);
- }
- /**
- * 获取值 表单 编辑表格 排序
- *
- * @param request
- * @param modelID 单据id
- * @return
- * @throws SHRWebException
- */
- @Override
- protected CoreBaseInfo getValue(HttpServletRequest request, String modelID) throws SHRWebException {
- ExamineGradePersonInfo examineGradePersonInfo = (ExamineGradePersonInfo) super.getValue(request, modelID);
- ExamineGradePersonEntryCollection entrys = examineGradePersonInfo.getEntrys();
- entrys.sort("adminOrg.id,index");
- return examineGradePersonInfo;
- }
- }
|