package com.kingdee.eas.hr.perf.handler; import com.kingdee.bos.BOSException; import com.kingdee.bos.Context; import com.kingdee.bos.dao.IObjectValue; import com.kingdee.bos.dao.ormapping.ObjectUuidPK; import com.kingdee.eas.common.EASBizException; import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody; import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader; 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.util.NetCtrlHelper; import com.kingdee.shr.perfweb.app.base.evalplan.*; import com.kingdee.shr.perfweb.app.base.evalrule.PerformanceRuleInfo; import com.kingdee.shr.perfweb.app.resource.SHRPerfWebResource; import com.kingdee.shr.perfweb.planexecute.handler.PerfGoalsListHandler; import com.kingdee.shr.perfweb.util.PerfRuleSettingUtil; import com.kingdee.shr.perfweb.util.SHRPerfWebResourceUtil; import com.kingdee.shr.perfweb.utils.CommonValidDataUtils; import com.kingdee.util.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ui.ModelMap; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.*; /** * @author qingwu * @date 2025/3/3 * @apiNote 目标填报下达 */ public class PerfGoalsListHandlerEx extends PerfGoalsListHandler { private static Logger logger = LoggerFactory.getLogger(PerfGoalsListHandlerEx.class); @Override protected void setInitData(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, Map initData) throws SHRWebException { super.setInitData(request, response, modelMap, initData); Context ctx = SHRContext.getInstance().getContext(); Map custom_params = (Map) initData.get("custom_params"); //考核周期 String perfPlanId = (String) custom_params.get("perfPlanId"); try { IPerfPlan iPerfPlan = PerfPlanFactory.getLocalInstance(ctx); PerfPlanInfo perfPlanInfo = iPerfPlan.getPerfPlanInfo(new ObjectUuidPK(perfPlanId)); IObjectValue perobject = (IObjectValue) perfPlanInfo.get("perobjectId");//项目id initData.put("perobjectId", perobject); } catch (BOSException e) { throw new RuntimeException(e); } catch (EASBizException e) { throw new RuntimeException(e); } } public void batchTransmitAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, BatchMessageTipsHeader batchMessageTipsHeader) throws SHRWebException { super.batchTransmitAction(request, response, modelMap, batchMessageTipsHeader); Context ctx = SHRContext.getInstance().getContext(); String transmitType = request.getParameter("transmitType"); String billId = (String) request.getAttribute("billId"); String msgTempID = request.getParameter("msgTempID"); String smsType = request.getParameter("smsType"); String emailType = request.getParameter("emailType"); String portalType = request.getParameter("portalType"); String yzjMsgType = request.getParameter("yzjMsgType"); Set billIds = new HashSet(); billIds.addAll(Arrays.asList(billId.split(","))); List ids = new ArrayList(); ids.addAll(billIds); boolean isDirectlyTransmit = "1".equals(transmitType); if (isDirectlyTransmit) { String period = request.getParameter("period"); for (String id : billIds) { for (BatchMessageTipsBody body : batchMessageTipsHeader.getResult()) { if (id.equals(body.getId())&&Boolean.FALSE.equals(body.isMuitTipsState())) { ids.remove(id); } } } for (String id : ids) { try { GoalsTargetFacadeFactory.getLocalInstance(ctx).batchGoalsTransmit(id, period); } catch (Exception var45) { logger.error("", var45); } finally { } } } } }