Pārlūkot izejas kodu

1.HR自助服务中心首页假勤卡片插件

Tyx 3 nedēļas atpakaļ
vecāks
revīzija
de97832f77

+ 864 - 0
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/wtc/wtss/formplugin/web/pc/WtssPersonHomePCPluginEx.java

@@ -0,0 +1,864 @@
+//
+// Source code recreated from a .class file by IntelliJ IDEA
+// (powered by FernFlower decompiler)
+//
+
+package nckd.jimin.jyyy.hr.wtc.wtss.formplugin.web.pc;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Collectors;
+import kd.bos.bill.BillShowParameter;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.dataentity.resource.ResManager;
+import kd.bos.dataentity.serialization.SerializationUtils;
+import kd.bos.dataentity.utils.StringUtils;
+import kd.bos.entity.EntryType;
+import kd.bos.entity.datamodel.events.ChangeData;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.exception.KDBizException;
+import kd.bos.ext.form.control.CustomControl;
+import kd.bos.extplugin.PluginFilter;
+import kd.bos.form.CloseCallBack;
+import kd.bos.form.FormShowParameter;
+import kd.bos.form.IFormView;
+import kd.bos.form.MobileFormShowParameter;
+import kd.bos.form.OpenStyle;
+import kd.bos.form.ShowType;
+import kd.bos.form.StyleCss;
+import kd.bos.form.cardentry.CardEntry;
+import kd.bos.form.container.Container;
+import kd.bos.form.container.Tab;
+import kd.bos.form.control.Control;
+import kd.bos.form.control.Label;
+import kd.bos.form.control.events.RowClickEvent;
+import kd.bos.form.control.events.RowClickEventListener;
+import kd.bos.form.control.events.TabSelectEvent;
+import kd.bos.form.control.events.TabSelectListener;
+import kd.bos.form.events.AfterDoOperationEventArgs;
+import kd.bos.form.events.ClosedCallBackEvent;
+import kd.bos.form.events.CustomEventArgs;
+import kd.bos.form.events.HyperLinkClickEvent;
+import kd.bos.form.events.HyperLinkClickListener;
+import kd.bos.form.field.BasedataEdit;
+import kd.bos.form.field.events.BeforeF7SelectEvent;
+import kd.bos.form.field.events.BeforeF7SelectListener;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.bos.list.ListFilterParameter;
+import kd.bos.list.ListShowParameter;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.bos.orm.query.QFilter;
+import kd.hr.hbp.common.util.HRDateTimeUtils;
+import kd.hr.hbp.common.util.HRMapUtils;
+import kd.sdk.wtc.wtbs.business.custom.WTCCustomControlExtPlugin;
+import kd.sdk.wtc.wtbs.common.enums.WTCApplyType;
+import kd.sdk.wtc.wtbs.common.enums.WTCBillType;
+import kd.sdk.wtc.wtss.business.homepage.BeforeShowApplyPageEvent;
+import kd.sdk.wtc.wtss.business.homepage.BillReplaceExtPlugin;
+import kd.wtc.wtbs.business.bill.BillCommonService;
+import kd.wtc.wtbs.business.extplugin.WTCPluginProxy;
+import kd.wtc.wtbs.business.extplugin.WTCPluginProxyFactory;
+import kd.wtc.wtbs.business.mobile.MobileCommonServiceHelper;
+import kd.wtc.wtbs.business.web.attperiod.PerAttPeriodQueryServiceImpl;
+import kd.wtc.wtbs.common.model.mobile.AbnormalDealModel;
+import kd.wtc.wtbs.common.model.period.PerAttPeriod;
+import kd.wtc.wtbs.common.model.period.PerAttPeriodQueryParam;
+import kd.wtc.wtbs.common.util.Tuple;
+import kd.wtc.wtbs.common.util.WTCCollectionIndexUtil;
+import kd.wtc.wtbs.common.util.WTCCollections;
+import kd.wtc.wtbs.common.util.WTCDateUtils;
+import kd.wtc.wtbs.common.util.WTCInteDateUtil;
+import kd.wtc.wtbs.common.util.WTCMaps;
+import kd.wtc.wtbs.common.util.WTCSerializationUtils;
+import kd.wtc.wtbs.common.util.WTCStringUtils;
+import kd.wtc.wtbs.common.util.third.collect.Lists;
+import kd.wtc.wtbs.common.util.third.util.CollectionUtils;
+import kd.wtc.wtbs.common.util.third.util.NumberUtils;
+import kd.wtc.wtbs.formplugin.util.WTCFormUtils;
+import kd.wtc.wtp.business.attconfirm.impl.AttConfirmQueryServiceImpl;
+import kd.wtc.wtp.common.enums.attconfirm.AttConRecordStatusEnum;
+import kd.wtc.wtp.common.enums.attconfirm.AttConfirmDataStatusEnum;
+import kd.wtc.wtp.common.model.attconfirm.AttConfirmRecordModel;
+import kd.wtc.wtp.common.model.attconfirm.AttConfirmRecordQueryParam;
+import kd.wtc.wtss.business.attstatistics.AttConfirmServiceHelper;
+import kd.wtc.wtss.business.servicehelper.common.HomePageServiceHelper;
+import kd.wtc.wtss.business.servicehelper.common.QuotaStatisticIndexService;
+import kd.wtc.wtss.business.servicehelper.common.SchemaServiceHelper;
+import kd.wtc.wtss.business.servicehelper.mobile.MobileHomePageBusiness;
+import kd.wtc.wtss.business.servicehelper.mobile.MobileHomePageServiceHelper;
+import kd.wtc.wtss.business.servicehelper.pc.PersonHomePCBusiness;
+import kd.wtc.wtss.business.servicehelper.pc.PersonHomePCCountBusiness;
+import kd.wtc.wtss.business.servicehelper.pc.StaffPCAppConfigService;
+import kd.wtc.wtss.business.servicehelper.summaryconf.SummaryConfigDetailService;
+import kd.wtc.wtss.common.constants.PersonHomePCConstants;
+import kd.wtc.wtss.common.constants.StaffPCAppConfigConstants;
+import kd.wtc.wtss.common.dto.DailySource;
+import kd.wtc.wtss.common.dto.MobileHomeConf;
+import kd.wtc.wtss.common.dto.mobilehome.AttRecordModel;
+import kd.wtc.wtss.common.dto.mobilehome.CalendarGetDataModel;
+import kd.wtc.wtss.common.dto.mobilehome.CalendarInitModel;
+import kd.wtc.wtss.common.dto.mobilehome.DateDataModel;
+import kd.wtc.wtss.common.dto.mobilehome.DateStateModel;
+import kd.wtc.wtss.common.dto.summaryconf.SummaryConfDetail;
+import kd.wtc.wtss.common.enums.UnitDataEnum;
+import kd.wtc.wtss.common.utils.WTSSDateUtils;
+
+public class WtssPersonHomePCPluginEx extends AbstractFormPlugin implements RowClickEventListener, PersonHomePCConstants, TabSelectListener, BeforeF7SelectListener, HyperLinkClickListener {
+    private static final Log LOG = LogFactory.getLog(WtssPersonHomePCPluginEx.class);
+
+    public WtssPersonHomePCPluginEx() {
+    }
+
+    public void registerListener(EventObject eventObject) {
+        super.registerListener(eventObject);
+        this.addClickListeners(new String[]{"flexmore", "labelmore", "configap", "labelquestion1", "labelquestion2", "labelquestion3", "btn_attcon"});
+        CardEntry appContainer = (CardEntry)this.getView().getControl("fastappentryentity");
+        appContainer.addRowClickListener(this);
+        CardEntry qtEntryEntityCountContainer = (CardEntry)this.getView().getControl("qtentryentitycount");
+        qtEntryEntityCountContainer.addRowClickListener(this);
+        qtEntryEntityCountContainer.addHyperClickListener(this);
+        Tab tab = (Tab)this.getControl("tabap");
+        tab.addTabSelectListener(this);
+        Container container = (Container)this.getControl("attstavector");
+        container.addClickListener(this);
+        this.addBeforeF7SelectListener("attperiodentry");
+        this.addBeforeF7SelectListener("attperiod");
+    }
+
+    private void addBeforeF7SelectListener(String key) {
+        BasedataEdit personAddEdit = (BasedataEdit)this.getView().getControl(key);
+        personAddEdit.addBeforeF7SelectListener(this);
+    }
+
+    public void beforeBindData(EventObject eventObject) {
+        super.beforeBindData(eventObject);
+        LOG.info("pcpersonhome beforeBindData begin...");
+        this.initCalendar();
+        Long userId = MobileCommonServiceHelper.getInstance().getUserId();
+        Long employeeId = MobileCommonServiceHelper.getInstance().getEmployeeId();
+        this.getPageCache().put("cache_id_userid", String.valueOf(userId));
+        this.getPageCache().put("cache_id_employeeid", String.valueOf(employeeId));
+        String queryDate = WTCDateUtils.date2Str(new Date(), "yyyy-MM-dd");
+        Map<String, String> attFile = MobileHomePageServiceHelper.getAttFileWithEmployeeId(employeeId, queryDate);
+        if (HRMapUtils.isEmpty(attFile)) {
+            this.initControlWithoutValidValue();
+            this.getView().showErrorNotification(ResManager.loadKDString("您无有效的考勤档案,请联系管理员。", "PersonHomePCPlugin_0", "wtc-wtss-formplugin", new Object[0]));
+        } else {
+            long schemeId = MobileHomePageBusiness.getInstance().getSchemeIdWithWorkspace(attFile, "A");
+            if (schemeId == 0L) {
+                this.initControlWithoutValidValue();
+                this.getView().showErrorNotification(ResManager.loadKDString("您未关联假勤自助方案,请联系管理员。", "PersonHomePCPlugin_1", "wtc-wtss-formplugin", new Object[0]));
+            } else {
+                DynamicObject ruleByScheme = SchemaServiceHelper.getInstance().queryRuleByScheme(schemeId, "A");
+                long ruleId = ruleByScheme.getLong("id");
+                Long attfileBoid = Long.parseLong((String)attFile.get("boid"));
+                LOG.info("pcpersonhome archives schemeId:{} attfileBoid:{}", schemeId, attfileBoid);
+                this.getPageCache().put("cache_scheme_id", String.valueOf(schemeId));
+                this.getPageCache().put("cache_attfile_boid", String.valueOf(attfileBoid));
+                this.getPageCache().put("cache_rule_id", String.valueOf(ruleId));
+                long quotaConfigId = ruleByScheme.getLong("quotaconfig.id");
+                StaffPCAppConfigService.initFastApp(ruleId, this.getView());
+                this.initPersonCount(userId, schemeId, quotaConfigId, attfileBoid, employeeId);
+                this.initCommonProblem(schemeId);
+            }
+        }
+    }
+
+    public void propertyChanged(PropertyChangedArgs propertyChangedArgs) {
+        super.propertyChanged(propertyChangedArgs);
+        String fieldKey = propertyChangedArgs.getProperty().getName();
+        Object newValue = WTCCollectionIndexUtil.getEleFromArr(propertyChangedArgs.getChangeSet(), 0).isPresent() ? ((ChangeData)WTCCollectionIndexUtil.getEleFromArr(propertyChangedArgs.getChangeSet(), 0).get()).getNewValue() : null;
+        Object oldValue = WTCCollectionIndexUtil.getEleFromArr(propertyChangedArgs.getChangeSet(), 0).isPresent() ? ((ChangeData)WTCCollectionIndexUtil.getEleFromArr(propertyChangedArgs.getChangeSet(), 0).get()).getOldValue() : null;
+        long userId = Long.parseLong(this.getView().getPageCache().get("cache_id_userid"));
+        long employeeId = Long.parseLong(this.getView().getPageCache().get("cache_id_employeeid"));
+        LOG.info("pcteamhome.beforeBindData.userid:{}", userId);
+        long schemeId = Long.parseLong(this.getView().getPageCache().get("cache_scheme_id"));
+        Date date;
+        if (fieldKey.equals("daydate")) {
+            if (this.reSetOldVal(oldValue, newValue, "daydate")) {
+                return;
+            }
+
+            date = (Date)newValue;
+            String nowDateStr = WTCDateUtils.date2Str(date, "yyyy-MM-dd");
+            //PersonHomePCCountBusiness.getInstance().setDateDetail(userId, nowDateStr, schemeId, this.getView(), employeeId);
+            CalendarGetDataModel queryDateModel = new CalendarGetDataModel();
+            queryDateModel.setChooseDay(nowDateStr);
+            List<String> dateRange = (List)WTCDateUtils.getDateRange(WTCDateUtils.getBeginDayOfMonth(date), WTCDateUtils.getEndDayOfMonth(date)).stream().map((datex) -> {
+                return WTCDateUtils.date2Str(datex, "yyyy-MM-dd");
+            }).collect(Collectors.toList());
+            queryDateModel.setDateList(dateRange);
+            this.initCalendarState(queryDateModel, true);
+        } else if (fieldKey.equals("attperiodentry")) {
+            DynamicObject dynamicObject = this.getModel().getDataEntity().getDynamicObject("attperiodentry");
+            Long personAttPeriodId = dynamicObject.getLong("id");
+            PerAttPeriodQueryServiceImpl instance = PerAttPeriodQueryServiceImpl.getInstance();
+            PerAttPeriodQueryParam queryParam = new PerAttPeriodQueryParam();
+            queryParam.setExtendQFilter(new QFilter("id", "=", personAttPeriodId));
+            List<PerAttPeriod> perAttPeriod = instance.queryPerAttPeriodEntity(queryParam);
+            if (!CollectionUtils.isEmpty(perAttPeriod)) {
+                PerAttPeriod entry = (PerAttPeriod)perAttPeriod.get(0);
+                this.getView().getPageCache().put("PerAttId", String.valueOf(personAttPeriodId));
+                String personAttPeriodIdStr = entry.getId();
+                this.getView().getPageCache().put("PerAttIdStr", personAttPeriodIdStr);
+                long attFileBid = entry.getFileBoId();
+                this.getView().getPageCache().put("cache_attfile_boid", String.valueOf(attFileBid));
+                LOG.info("mobilehome initStatistic query begin...");
+                Map<String, Object> summaryConfig = SummaryConfigDetailService.getInstance().queryInfo(userId, "A", personAttPeriodIdStr, schemeId, 2, attFileBid);
+                LOG.info("mobilehome initStatistic query end...");
+                List<SummaryConfDetail> showSummary = (List)summaryConfig.get("show");
+                this.setDatePreDetail(showSummary);
+            }
+
+            AttConfirmServiceHelper.instance().updateBtnAttConfirmVisible(this.getView());
+        } else if ("qtdate".equals(fieldKey)) {
+            if (this.reSetOldVal(oldValue, newValue, "qtdate")) {
+                return;
+            }
+
+            date = this.getView().getModel().getDataEntity().getDate("qtdate");
+            if (date == null) {
+                date = new Date();
+                this.getView().getModel().getDataEntity().set("qtdate", date);
+            }
+
+            QuotaStatisticIndexService.getInstance().setQuotaDetail(schemeId, userId, date, this.getView(), "2", employeeId);
+        }
+
+    }
+
+    private boolean reSetOldVal(Object oldVal, Object newVal, String key) {
+        if (newVal == null) {
+            this.getModel().beginInit();
+            this.getModel().setValue(key, oldVal);
+            this.getModel().endInit();
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    private void initPersonCount(long userId, long schemeId, long quotaConfigId, Long attfileBid, long employeeId) {
+        List<PerAttPeriod> userAllPeriods = MobileHomePageServiceHelper.getUserAllPeriodsSimpleWithEmployeeId(employeeId);
+        if (CollectionUtils.isEmpty(userAllPeriods)) {
+            this.getView().setVisible(Boolean.FALSE, new String[]{"nckd_flexpanelap", "dateflex", "perflex", "qtflex", "attstavector"});
+            this.getView().showErrorNotification(ResManager.loadKDString("您的档案未有人员考勤期间,导致首页数据无法查看,请联系管理员。", "PersonHomePCPlugin_2", "wtc-wtss-formplugin", new Object[0]));
+        } else {
+            this.getView().setVisible(Boolean.FALSE, new String[]{"attperiod", "flexattperoidconf", "perflex", "qtdate", "qtflex"});
+            Date nowDate = WTCDateUtils.addDays(new Date(), -1);
+            String nowDateStr = WTCDateUtils.date2Str(nowDate, "yyyy-MM-dd");
+            this.getPageCache().put("cache_date", nowDateStr);
+            this.getPageCache().put("current_statistic_mode", "mode_day");
+            this.getModel().setValue("daydate", nowDate);
+            List<Long> PerAttIds = new ArrayList(userAllPeriods.size());
+            long nowTime = nowDate.getTime();
+            String personAttPeriodId = ((PerAttPeriod)userAllPeriods.get(0)).getPrimaryId() + "";
+            String attPeriodId = ((PerAttPeriod)userAllPeriods.get(0)).getAttPeriodId() + "";
+            String personAttPeriodIdStr = ((PerAttPeriod)userAllPeriods.get(0)).getId();
+            Iterator var19 = userAllPeriods.iterator();
+
+            while(var19.hasNext()) {
+                PerAttPeriod periodReport = (PerAttPeriod)var19.next();
+                if (periodReport.getPerAttBeginDate().getTime() < nowDate.getTime()) {
+                    PerAttIds.add(periodReport.getPrimaryId());
+                }
+
+                HRDateTimeUtils.format(periodReport.getPerAttBeginDate(), "yyyy-MM-dd");
+                if (nowTime >= periodReport.getPerAttBeginDate().getTime() && nowTime <= periodReport.getPerAttEndDate().getTime()) {
+                    personAttPeriodId = periodReport.getPrimaryId() + "";
+                    attPeriodId = periodReport.getAttPeriodId() + "";
+                    personAttPeriodIdStr = periodReport.getId();
+                }
+            }
+
+            //this.getModel().setValue("attperiodentry", personAttPeriodId);
+            //this.getModel().setValue("attperiod", attPeriodId);
+            this.getPageCache().put("PerAttIds", SerializationUtils.toJsonString(PerAttIds));
+            this.getPageCache().put("PerAttId", personAttPeriodId);
+            this.getPageCache().put("PerAttIdStr", personAttPeriodIdStr);
+            LOG.info("mobilehome initStatistic query begin...");
+            Map<String, Object> summaryConfig = SummaryConfigDetailService.getInstance().queryInfo(userId, "A", personAttPeriodIdStr, schemeId, 2, attfileBid);
+            LOG.info("mobilehome initStatistic query end...");
+            List<SummaryConfDetail> showSummary = (List)summaryConfig.get("show");
+            this.setDatePreDetail(showSummary);
+            //PersonHomePCCountBusiness.getInstance().setDateDetail(userId, nowDateStr, schemeId, this.getView(), employeeId);
+            AttConfirmServiceHelper.instance().updateBtnAttConfirmVisible(this.getView());
+            if (quotaConfigId == 0L) {
+                this.getView().setVisible(Boolean.FALSE, new String[]{"qttabpage"});
+            } else {
+                this.getPageCache().put("quotaconfig.id", quotaConfigId + "");
+                Date date = this.getView().getModel().getDataEntity().getDate("qtdate");
+                QuotaStatisticIndexService.getInstance().setQuotaDetail(schemeId, userId, date, this.getView(), "2", employeeId);
+            }
+        }
+    }
+
+    private void setDatePreDetail(List<SummaryConfDetail> showSummary) {
+        DynamicObjectCollection dynamicObjects = this.getModel().getDataEntity(true).getDynamicObjectCollection("perentryentitycount");
+        EntryType entryType;
+        if (CollectionUtils.isNotEmpty(dynamicObjects) && WTCStringUtils.isEmpty(this.getPageCache().get("perentryentitycounttype"))) {
+            entryType = (EntryType)((DynamicObject)dynamicObjects.get(0)).getDynamicObjectType();
+            this.getPageCache().put("perentryentitycounttype", WTCSerializationUtils.serializeToBase64(entryType));
+        }
+
+        if (CollectionUtils.isEmpty(showSummary)) {
+            this.getModel().deleteEntryData("perentryentitycount");
+        } else {
+            entryType = this.getPerEntryEntityType(dynamicObjects);
+            this.getModel().deleteEntryData("perentryentitycount");
+            if (entryType != null) {
+                Iterator var5 = showSummary.iterator();
+
+                while(var5.hasNext()) {
+                    SummaryConfDetail summaryConfDetail = (SummaryConfDetail)var5.next();
+                    DynamicObject dynamicObject = new DynamicObject(entryType);
+                    dynamicObject.set("datasouvaluepre", summaryConfDetail.getAttItemValue());
+                    //dynamicObject.set("datasounamepre", summaryConfDetail.getName() + "(" + UnitDataEnum.getRetDesc(summaryConfDetail.getUnit()) + ")");
+                    dynamicObjects.add(dynamicObject);
+                }
+
+                this.getView().updateView("perentryentitycount");
+            }
+        }
+    }
+
+    public void click(EventObject evt) {
+        super.click(evt);
+        Control control = (Control)evt.getSource();
+        Long ruleId = Long.parseLong(this.getView().getPageCache().get("cache_rule_id"));
+        String key = control.getKey();
+        Tab tab = (Tab)this.getControl("tabap");
+        String staType = tab.getCurrentTab();
+        switch (key) {
+            case "flexmore":
+            case "labelmore":
+                ListShowParameter showParameter = new ListShowParameter();
+                showParameter.getOpenStyle().setShowType(ShowType.Modal);
+                showParameter.setFormId("wtss_problemlist");
+                this.getView().showForm(showParameter);
+                break;
+            case "configap":
+                FormShowParameter formShowParameter = new FormShowParameter();
+                formShowParameter.setFormId("wtss_appconfig");
+                OpenStyle openStyle = formShowParameter.getOpenStyle();
+                Optional.ofNullable(openStyle).ifPresent((style) -> {
+                    style.setShowType(ShowType.Modal);
+                });
+                formShowParameter.setCustomParam("ruleId", ruleId);
+                formShowParameter.setCloseCallBack(new CloseCallBack(this, "appConfig"));
+                this.getView().showForm(formShowParameter);
+                break;
+            case "labelquestion1":
+                PersonHomePCBusiness.getInstance().goToProblemDetail(this.getView(), 1);
+                break;
+            case "labelquestion2":
+                PersonHomePCBusiness.getInstance().goToProblemDetail(this.getView(), 2);
+                break;
+            case "labelquestion3":
+                PersonHomePCBusiness.getInstance().goToProblemDetail(this.getView(), 3);
+                break;
+            case "attstavector":
+                if ("daytabpage".equals(staType)) {
+                    this.showConfigPage(this.getView(), "A");
+                } else if ("pertabpage".equals(staType)) {
+                    this.showConfigPage(this.getView(), "B");
+                } else if ("qttabpage".equals(staType)) {
+                    this.showConfigPage(this.getView(), "C");
+                }
+        }
+
+    }
+
+    public void afterDoOperation(AfterDoOperationEventArgs evt) {
+        super.afterDoOperation(evt);
+        String opKey = evt.getOperateKey();
+        if ("attconf".equals(opKey) && evt.getOperationResult().isSuccess()) {
+            this.showAttConfirmPage();
+        }
+
+    }
+
+    private void showConfigPage(IFormView view, String configType) {
+        FormShowParameter showParameter = new FormShowParameter();
+        showParameter.getOpenStyle().setShowType(ShowType.Modal);
+        showParameter.setFormId("wtss_countcig");
+        Long ruleId = Long.parseLong(this.getView().getPageCache().get("cache_rule_id"));
+        long schemeId = Long.parseLong(this.getPageCache().get("cache_scheme_id"));
+        String nowDateStr = this.getView().getPageCache().get("cache_date");
+        String personAttPeriodIdStr = this.getPageCache().get("PerAttIdStr");
+        Map<String, Object> configParams = new HashMap(3);
+        configParams.put("cache_rule_id", ruleId);
+        configParams.put("cache_schemeId_id", schemeId);
+        configParams.put("perioddate", nowDateStr);
+        configParams.put("configtype", configType);
+        configParams.put("cache_attfile_boid", Long.parseLong(view.getPageCache().get("cache_attfile_boid")));
+        configParams.put("PerAttIdStr", personAttPeriodIdStr);
+        configParams.put("quotaconfig.id", this.getPageCache().get("quotaconfig.id"));
+        CloseCallBack callBack = new CloseCallBack(this, "saveconfig");
+        showParameter.setCloseCallBack(callBack);
+        showParameter.setCustomParams(configParams);
+        showParameter.setCaption(ResManager.loadKDString("考勤统计", "AttStaVectorName", "wtc-wtss-formplugin", new Object[0]));
+        view.showForm(showParameter);
+    }
+
+    public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
+        super.closedCallBack(closedCallBackEvent);
+        String actionId = closedCallBackEvent.getActionId();
+        Long ruleId = Long.parseLong(this.getView().getPageCache().get("cache_rule_id"));
+        switch (actionId) {
+            case "appConfig":
+                StaffPCAppConfigService.initFastApp(ruleId, this.getView());
+                break;
+            case "selectAttper":
+                Map<String, String> returnData = (Map)closedCallBackEvent.getReturnData();
+                if (returnData != null && returnData.size() > 0) {
+                    this.getModel().setValue("attperiodentry", returnData.get("pkvalue"));
+                    this.getModel().setValue("attperiod", returnData.get("attperiod"));
+                }
+                break;
+            case "saveconfig":
+                Long userId = Long.parseLong(this.getPageCache().get("cache_id_userid"));
+                Long employeeId = Long.parseLong(this.getPageCache().get("cache_id_employeeid"));
+                long schemeId = Long.parseLong(this.getPageCache().get("cache_scheme_id"));
+                Long attFileBid = Long.parseLong(this.getPageCache().get("cache_attfile_boid"));
+                Date queryDate = this.getModel().getDataEntity().getDate("daydate");
+                String nowDateStr = WTCDateUtils.date2Str(queryDate, "yyyy-MM-dd");
+                PersonHomePCCountBusiness.getInstance().setDateDetail(userId, nowDateStr, schemeId, this.getView(), employeeId);
+                LOG.info("pcpersonhome initStatistic query begin...");
+                String personAttPeriodIdStr = this.getView().getPageCache().get("PerAttIdStr");
+                Map<String, Object> summaryConfig = SummaryConfigDetailService.getInstance().queryInfo(userId, "A", personAttPeriodIdStr, schemeId, 2, attFileBid);
+                LOG.info("pcpersonhome initStatistic query end...");
+                List<SummaryConfDetail> showSummary = (List)summaryConfig.get("show");
+                this.setDatePreDetail(showSummary);
+                String cacheQuotaConfigId = this.getPageCache().get("quotaconfig.id");
+                long quotaConfigId = NumberUtils.isDigits(cacheQuotaConfigId) ? Long.parseLong(cacheQuotaConfigId) : 0L;
+                if (quotaConfigId != 0L) {
+                    Date date = this.getView().getModel().getDataEntity().getDate("qtdate");
+                    QuotaStatisticIndexService.getInstance().setQuotaDetail(schemeId, userId, date, this.getView(), "2", employeeId);
+                }
+                break;
+            case "attconf":
+                AttConfirmServiceHelper.instance().updateBtnAttConfirmVisible(this.getView());
+                String confirmDate = this.getPageCache().get("confirmDate");
+                if (WTCDateUtils.str2Date(confirmDate, "yyyy-MM-dd") != null) {
+                    this.setAttRecordData(confirmDate);
+                }
+        }
+
+    }
+
+    public void entryRowClick(RowClickEvent evt) {
+        RowClickEventListener.super.entryRowClick(evt);
+        CardEntry cardEntry = (CardEntry)evt.getSource();
+        String entryKey = cardEntry.getEntryKey();
+        if ("fastappentryentity".equals(entryKey)) {
+            int openIndex = this.getModel().getEntryCurrentRowIndex("fastappentryentity");
+            String openText = (String)this.getModel().getValue("fastname", openIndex);
+            String app = StaffPCAppConfigConstants.getBillNumber(openText);
+            if (WTCStringUtils.isEmpty(app)) {
+                return;
+            }
+
+            switch (app) {
+                case "A":
+                    this.showAddNewPage("wtabm_vaapplyself", true);
+                    break;
+                case "B":
+                    this.showAddNewPage("wtom_otbillself", true);
+                    break;
+                case "C":
+                    this.showAddNewPage("wts_swshiftselfbill", true);
+                    break;
+                case "D":
+                    this.showAddNewPage("wtam_busitripselfbill", true);
+                    break;
+                case "E":
+                    this.showAddNewPage("wtpm_supsignself", true);
+                    break;
+                case "M":
+                    this.showAddNewPage("wtam_attconfirmbill", false);
+            }
+        } else if ("qtentryentitycount".equals(entryKey)) {
+            this.showQTLineDetailList();
+        }
+
+    }
+
+    public void customEvent(CustomEventArgs cea) {
+        String key = cea.getKey();
+        String eventName = cea.getEventName();
+        LOG.info("pcpersonhome key:{} eventName:{} eventArgs:{} ", new Object[]{key, eventName, cea.getEventArgs()});
+        if (StringUtils.isEmpty(this.getPageCache().get("cache_normal_init"))) {
+            if ("customcalendar".equals(key) && "getDateData".equals(eventName)) {
+                CalendarGetDataModel getDate = (CalendarGetDataModel)SerializationUtils.fromJsonString(cea.getEventArgs(), CalendarGetDataModel.class);
+                this.initCalendarState(getDate, false);
+                this.getModel().setValue("daydate", getDate.getChooseDay());
+            } else if ("customcalendar".equals(key) && "getAttRecord".equals(eventName)) {
+                this.setAttRecordData(cea.getEventArgs());
+                this.getModel().setValue("daydate", cea.getEventArgs());
+            } else if ("customcalendar".equals(key) && "abnormalDeal".equals(eventName)) {
+                AbnormalDealModel abnormalDealModel = (AbnormalDealModel)SerializationUtils.fromJsonString(cea.getEventArgs(), AbnormalDealModel.class);
+                PersonHomePCBusiness.getInstance().showAddNewFormForAbnormal(this.getView(), abnormalDealModel);
+            } else if ("customcalendar".equals(key) && "attConfirm".equals(eventName)) {
+                JSONObject jsonEventArgs = JSONObject.parseObject(cea.getEventArgs());
+                Object jsonAttConfirmId = jsonEventArgs.get("attConfirmId");
+                if (jsonAttConfirmId != null) {
+                    this.getPageCache().put("attConfirmId", String.valueOf(jsonAttConfirmId));
+                    this.getPageCache().put("confirmDate", String.valueOf(jsonEventArgs.get("confirmDate")));
+                    this.getView().invokeOperation("attconf");
+                }
+            }
+
+        }
+    }
+
+    private void initCalendar() {
+        String chooseDay = WTSSDateUtils.getLastDateString();
+        LOG.info("pcpersonhome chooseDay : {}", chooseDay);
+        CustomControl customcontrol = (CustomControl)this.getView().getControl("customcalendar");
+        Map<String, Object> data = new HashMap(16);
+        CalendarInitModel calendarInitModel = new CalendarInitModel();
+        calendarInitModel.setEarliestMonth("2015-01");
+        calendarInitModel.setChooseDay(chooseDay);
+        data.put("event", "init");
+        data.put("args", calendarInitModel);
+        customcontrol.setData(data);
+    }
+
+    private void initCalendarState(CalendarGetDataModel getDate, Boolean isLocateDate) {
+        long userId = Long.parseLong(this.getView().getPageCache().get("cache_id_userid"));
+        long employeeId = Long.parseLong(this.getView().getPageCache().get("cache_id_employeeid"));
+        long schemeId = Long.parseLong(this.getView().getPageCache().get("cache_scheme_id"));
+        CustomControl customcontrol = (CustomControl)this.getView().getControl("customcalendar");
+        Map<String, Object> data = new HashMap(16);
+        Set<Long> abnormalConfig = SchemaServiceHelper.getInstance().getAbnormalConfig(schemeId, "A");
+        String yearMonth = StringUtils.substring(getDate.getChooseDay(), 0, 7);
+        Date beginDayOfMonth = WTCDateUtils.getBeginDayOfMonth(yearMonth);
+        Date lastDayOfMonth = WTCDateUtils.getLastDayOfMonth(yearMonth);
+        Map<Long, Tuple<Date, Date>> tupleMap = HomePageServiceHelper.getInstance().getAttFileMapWithEmployeeId(employeeId, beginDayOfMonth, lastDayOfMonth);
+        LOG.info("pcpersonhome initCalendarState queryScheduleInfoByAttFileBoId begin... abnormalConfig:{} tupleMap:{}", abnormalConfig, tupleMap);
+        Map<String, Map<String, Object>> scheduleInfo = HomePageServiceHelper.getInstance().queryScheduleInfoByMultiBo(userId, tupleMap, getDate.getChooseDay(), abnormalConfig);
+        Map<String, List<DailySource>> dailySourceData = SchemaServiceHelper.getInstance().getPeriodAttItems(schemeId, "A", userId, (String)getDate.getDateList().get(0), (String)getDate.getDateList().get(getDate.getDateList().size() - 1), tupleMap, 2);
+        if (scheduleInfo != null && LOG.isDebugEnabled()) {
+            LOG.debug("pcpersonhome initCalendarState scheduleInfo:{}", SerializationUtils.toJsonString(scheduleInfo));
+        }
+
+        List<DateStateModel> dateStateModels = HomePageServiceHelper.getInstance().getCalendarData(tupleMap, getDate, scheduleInfo, dailySourceData);
+        String dateStateStrings = "";
+        if (!CollectionUtils.isEmpty(dateStateModels)) {
+            dateStateStrings = SerializationUtils.serializeToBase64(dateStateModels);
+            this.getView().getPageCache().put("cache_id_date_state", dateStateStrings);
+        }
+
+        List<AttRecordModel> attRecordModel = HomePageServiceHelper.getInstance().getSignCardDetailWithEmployeeId(employeeId, schemeId, getDate.getChooseDay(), "0", dateStateStrings, false, (String)null);
+        DateDataModel dateDataModel = new DateDataModel();
+        dateDataModel.setDateList(dateStateModels);
+        dateDataModel.setAttRecord(attRecordModel);
+        data.put("event", "dateData");
+        data.put("isLocateDate", isLocateDate);
+        data.put("args", dateDataModel);
+        HomePageServiceHelper.getInstance().setAttConfirmByDate(data, employeeId, WTCDateUtils.str2Date(getDate.getChooseDay(), "yyyy-MM-dd"));
+        HomePageServiceHelper.getInstance().setData(data, attRecordModel, getDate.getChooseDay(), employeeId);
+        final WTCPluginProxy<WTCCustomControlExtPlugin> workCalendarExtPlugin = (WTCPluginProxy<WTCCustomControlExtPlugin>)WTCPluginProxyFactory.create((Object)null, (Class)WTCCustomControlExtPlugin.class, "kd.sdk.wtc.wtss.business.homepage.WorkCalendarCustomExt", (PluginFilter)null);
+        if (workCalendarExtPlugin.hasPlugin()) {
+            JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(data));
+            Map<String, Object> request = WTCMaps.JsonToMap(jsonObject);
+            request.put("attPersonId", userId);
+            request.put("type", "pc");
+            workCalendarExtPlugin.invokeReplace((hrPlugin) -> {
+                hrPlugin.setCustomData(this.getView().getPageId(), "dateData", request);
+                if (LOG.isDebugEnabled()) {
+                    LOG.debug("WorkCalendarCustomExt.class:{},eventName:{}", hrPlugin.getClass().getName(), "dateData");
+                }
+
+            });
+            customcontrol.setData(request);
+        } else {
+            customcontrol.setData(data);
+        }
+
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("pcpersonhome initCalendarState dateDataModel:{}", SerializationUtils.toJsonString(dateDataModel));
+        }
+
+    }
+
+    private void setAttRecordData(String date) {
+        CustomControl customcontrol = (CustomControl)this.getView().getControl("customcalendar");
+        Map<String, Object> data = new HashMap(16);
+        long employeeId = Long.parseLong(this.getView().getPageCache().get("cache_id_employeeid"));
+        long schemeId = Long.parseLong(this.getView().getPageCache().get("cache_scheme_id"));
+        String dateState = this.getView().getPageCache().get("cache_id_date_state");
+        List<AttRecordModel> attRecordModel = HomePageServiceHelper.getInstance().getSignCardDetailWithEmployeeId(employeeId, schemeId, date, "0", dateState, false, (String)null);
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("pcpersonhome attRecord:{}", SerializationUtils.toJsonString(attRecordModel));
+        }
+
+        attRecordModel.sort(Comparator.comparing(AttRecordModel::getDate));
+        data.put("event", "attRecord");
+        data.put("attRecord", attRecordModel);
+        HomePageServiceHelper.getInstance().setAttConfirmByDate(data, employeeId, WTCDateUtils.str2Date(date, "yyyy-MM-dd"));
+        HomePageServiceHelper.getInstance().setData(data, attRecordModel, date, employeeId);
+        final WTCPluginProxy<WTCCustomControlExtPlugin> workCalendarExtPlugin = (WTCPluginProxy<WTCCustomControlExtPlugin>)WTCPluginProxyFactory.create((Object)null, (Class)WTCCustomControlExtPlugin.class, "kd.sdk.wtc.wtss.business.homepage.WorkCalendarCustomExt", (PluginFilter)null);
+        if (workCalendarExtPlugin.hasPlugin()) {
+            JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(data));
+            Map<String, Object> request = WTCMaps.JsonToMap(jsonObject);
+            long userId = Long.parseLong(this.getView().getPageCache().get("cache_id_userid"));
+            request.put("attPersonId", userId);
+            request.put("type", "pc");
+            workCalendarExtPlugin.invokeReplace((hrPlugin) -> {
+                hrPlugin.setCustomData(this.getView().getPageId(), "attRecord", request);
+                if (LOG.isDebugEnabled()) {
+                    LOG.debug("WorkCalendarCustomExt.class:{},eventName:{}", hrPlugin.getClass().getName(), "attRecord");
+                }
+
+            });
+            customcontrol.setData(request);
+        } else {
+            customcontrol.setData(data);
+        }
+
+    }
+
+    private void initCommonProblem(Long schemeId) {
+        MobileHomeConf mobileHomeConf = SchemaServiceHelper.getInstance().getSchemeForHome(schemeId, "A");
+        if (mobileHomeConf != null && mobileHomeConf.isShowProblem()) {
+            if (CollectionUtils.isEmpty(mobileHomeConf.getProblems())) {
+                this.getView().setVisible(Boolean.FALSE, new String[]{"flexmore", "flexproblem1", "flexproblem2", "flexproblem3"});
+                this.getView().setVisible(Boolean.TRUE, new String[]{"comproblemdeftflex"});
+            } else {
+                this.getView().setVisible(Boolean.FALSE, new String[]{"comproblemdeftflex"});
+                String problemsString = SerializationUtils.serializeToBase64(mobileHomeConf.getProblems());
+                LOG.info("pcpersonhome initCommonProblem problemsString: {}", problemsString);
+                this.getView().getPageCache().put("cache_commproblem", problemsString);
+                List<MobileHomeConf.CommProblem> problems = mobileHomeConf.getProblems();
+                if (problems.size() >= 1) {
+                    if (problems.size() == 1) {
+                        this.getView().setVisible(Boolean.FALSE, new String[]{"flexproblem2"});
+                        this.getView().setVisible(Boolean.FALSE, new String[]{"flexproblem3"});
+                    } else if (problems.size() == 2) {
+                        this.getView().setVisible(Boolean.FALSE, new String[]{"flexproblem3"});
+                        ((Label)this.getControl("labelquestion2")).setText("2." + ((MobileHomeConf.CommProblem)problems.get(1)).getProblem());
+                        ((Label)this.getControl("labeltime2")).setText(WTCInteDateUtil.formatDateBySysTzAndUserFmt(((MobileHomeConf.CommProblem)problems.get(1)).getModifyTime()));
+                    } else {
+                        ((Label)this.getControl("labelquestion2")).setText("2." + ((MobileHomeConf.CommProblem)problems.get(1)).getProblem());
+                        ((Label)this.getControl("labeltime2")).setText(WTCInteDateUtil.formatDateBySysTzAndUserFmt(((MobileHomeConf.CommProblem)problems.get(1)).getModifyTime()));
+                        ((Label)this.getControl("labelquestion3")).setText("3." + ((MobileHomeConf.CommProblem)problems.get(2)).getProblem());
+                        ((Label)this.getControl("labeltime3")).setText(WTCInteDateUtil.formatDateBySysTzAndUserFmt(((MobileHomeConf.CommProblem)problems.get(2)).getModifyTime()));
+                    }
+
+                    ((Label)this.getControl("labelquestion1")).setText("1." + ((MobileHomeConf.CommProblem)problems.get(0)).getProblem());
+                    ((Label)this.getControl("labeltime1")).setText(WTCInteDateUtil.formatDateBySysTzAndUserFmt(((MobileHomeConf.CommProblem)problems.get(0)).getModifyTime()));
+                }
+            }
+        } else {
+            LOG.info("pcpersonhome initCommonProblem isShowProblem false");
+            this.getView().setVisible(Boolean.FALSE, new String[]{"flexcommproblem"});
+        }
+    }
+
+    public void tabSelected(TabSelectEvent tabSelectEvent) {
+        String tabKey = tabSelectEvent.getTabKey();
+        if (tabKey.equals("daytabpage")) {
+            this.getView().setVisible(Boolean.TRUE, new String[]{"daydate", "dateflex"});
+            this.getView().setVisible(Boolean.FALSE, new String[]{"attperiod", "flexattperoidconf", "perflex", "qtflex", "qtdate"});
+        } else if (tabKey.equals("pertabpage")) {
+            this.getView().setVisible(Boolean.TRUE, new String[]{"attperiod", "flexattperoidconf", "perflex"});
+            this.getView().setVisible(Boolean.FALSE, new String[]{"daydate", "dateflex", "qtdate", "qtflex"});
+        } else {
+            this.getView().setVisible(Boolean.TRUE, new String[]{"qtdate", "qtflex"});
+            this.getView().setVisible(Boolean.FALSE, new String[]{"daydate", "dateflex", "attperiod", "flexattperoidconf", "perflex"});
+        }
+
+    }
+
+    public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
+        beforeF7SelectEvent.setCancel(true);
+        ListShowParameter listShowParameter = new ListShowParameter();
+        listShowParameter.getOpenStyle().setShowType(ShowType.Modal);
+        listShowParameter.setLookUp(true);
+        listShowParameter.setHasRight(true);
+        Object[] periodIds = new Object[1];
+        DynamicObject dynamicObject = this.getModel().getDataEntity().getDynamicObject("attperiodentry");
+        if (dynamicObject != null) {
+            periodIds[0] = dynamicObject.get("id");
+        }
+
+        listShowParameter.setSelectedRows(periodIds);
+        listShowParameter.setFormId("wtss_attperiod_f7list");
+        listShowParameter.setBillFormId("wtss_perattperiodquery");
+        listShowParameter.setCaption(ResManager.loadKDString("人员考勤期间", "PersonHomePCPlugin_5", "wtc-wtss-formplugin", new Object[0]));
+        StyleCss style = new StyleCss();
+        style.setWidth("1000");
+        style.setHeight("600");
+        listShowParameter.getOpenStyle().setInlineStyleCss(style);
+        CloseCallBack callBack = new CloseCallBack(this, "selectAttper");
+        listShowParameter.setCloseCallBack(callBack);
+        listShowParameter.setParentPageId(this.getView().getPageId());
+        listShowParameter.setMultiSelect(false);
+        listShowParameter.setCustomParam("multiType", Boolean.FALSE);
+        List<Long> PerAttIds = (List)SerializationUtils.fromJsonString(this.getView().getPageCache().get("PerAttIds"), List.class);
+        List<QFilter> qFilters = Lists.newArrayList();
+        qFilters.add(new QFilter("id", "in", PerAttIds));
+        ListFilterParameter filterList = new ListFilterParameter(qFilters, (String)null);
+        listShowParameter.setListFilterParameter(filterList);
+        this.getView().showForm(listShowParameter);
+    }
+
+    public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) {
+        this.showQTLineDetailList();
+    }
+
+    private void initControlWithoutValidValue() {
+        this.getPageCache().put("cache_normal_init", "true");
+        this.getView().setVisible(Boolean.FALSE, new String[]{"flexmore", "flexproblem1", "flexproblem2", "flexproblem3"});
+        this.getView().setVisible(Boolean.FALSE, new String[]{"fastappentryentity", "configap"});
+        this.getView().setVisible(Boolean.FALSE, new String[]{"nckd_flexpanelap", "dateflex", "perflex", "qtflex", "attstavector"});
+    }
+
+    private void showAddNewPage(String formId, boolean isAddNew) {
+        WTCBillType billType = (WTCBillType)BillCommonService.getInstance().BILL_TYPE_MAP.get(formId);
+        BeforeShowApplyPageEvent beforeShowApplyPageEvent = new BeforeShowApplyPageEvent(billType, WTCApplyType.SELF, new BillShowParameter());
+        WTCPluginProxy<BillReplaceExtPlugin> proxy = WTCPluginProxyFactory.create(BillReplaceExtPlugin.class, "kd.sdk.wtc.wtss.business.homepage.BillReplaceExtPlugin");
+        proxy.invokeReplace((plugin) -> {
+            plugin.beforeShowApplyPage(beforeShowApplyPageEvent);
+        });
+        FormShowParameter formShowParameter = beforeShowApplyPageEvent.getFormShowParameter();
+        if (BillCommonService.getInstance().hasFormId(beforeShowApplyPageEvent)) {
+            this.getView().showForm(formShowParameter);
+        } else {
+            IFormView view = this.getView();
+            String key;
+            String pageId;
+            if (isAddNew) {
+                BillShowParameter parameter = PersonHomePCBusiness.getInstance().getBillShowParameter(view.getFormShowParameter().getAppId(), formId, view);
+                if (parameter == null) {
+                    return;
+                }
+
+                key = formId + "_addNewPageId";
+                pageId = view.getPageCache().get(key);
+                if (StringUtils.isNotBlank(pageId)) {
+                    parameter.setPageId(pageId);
+                } else {
+                    view.getPageCache().put(key, parameter.getPageId());
+                }
+
+                view.showForm(parameter);
+            } else {
+                ListShowParameter listShowParameter = WTCFormUtils.getListShowParameter(formId, ShowType.MainNewTabPage);
+                key = formId + "_listPageId";
+                pageId = view.getPageCache().get(key);
+                if (StringUtils.isNotBlank(pageId)) {
+                    listShowParameter.setPageId(pageId);
+                } else {
+                    view.getPageCache().put(key, listShowParameter.getPageId());
+                }
+
+                view.showForm(listShowParameter);
+            }
+
+        }
+    }
+
+    private void showQTLineDetailList() {
+        int openIndex = this.getModel().getEntryCurrentRowIndex("qtentryentitycount");
+        String openName = (String)this.getModel().getValue("datasounameqt", openIndex);
+        String quotaConfigId = String.valueOf(this.getModel().getValue("quotasourceid", openIndex));
+        List<Long> quotaDetailIdList = JSON.parseArray(this.getView().getPageCache().get(quotaConfigId), Long.class);
+        ListShowParameter listShowParameter = new ListShowParameter();
+        ListFilterParameter listFilterParameter = new ListFilterParameter();
+        List<QFilter> qFilters = Lists.newArrayList();
+        qFilters.add(new QFilter("id", "in", quotaDetailIdList));
+        listFilterParameter.setQFilters(qFilters);
+        listShowParameter.setListFilterParameter(listFilterParameter);
+        listShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
+        listShowParameter.setBillFormId("wtss_qtlinedetaillayout");
+        listShowParameter.setPageId("wtss_qtlinedetaillayout" + this.getView().getPageId() + quotaConfigId);
+        listShowParameter.setCustomParam("selectYear", WTCDateUtils.date2Str(this.getModel().getDataEntity().getDate("qtdate"), "yyyy"));
+        listShowParameter.setCaption(ResManager.loadKDString("定额明细-{0}", "PersonHomePCPlugin_3", "wtc-wtss-formplugin", new Object[]{openName}));
+        this.getView().showForm(listShowParameter);
+    }
+
+    private void showAttConfirmPage() {
+        Long attConfirmId;
+        try {
+            attConfirmId = Long.valueOf(this.getPageCache().get("attConfirmId"));
+        } catch (Exception var9) {
+            LOG.warn("PersonHomePCPlugin.showAttConfirmPage.getAttConfirmIdError:{}", var9.getMessage());
+            throw new KDBizException(ResManager.loadKDString("获取考勤确认记录数据异常,请联系管理员处理。", "PersonHomePCPlugin_6", "wtc-wtss-formplugin", new Object[0]));
+        }
+
+        if (attConfirmId != 0L) {
+            AttConfirmRecordQueryParam queryParam = new AttConfirmRecordQueryParam();
+            queryParam.setIds(Collections.singleton(attConfirmId));
+            queryParam.setQueryNotEffect(true);
+            List<AttConfirmRecordModel> recordModels = AttConfirmQueryServiceImpl.getInstance().queryAttConfirmRecordModelList(queryParam);
+            if (!WTCCollections.isEmpty(recordModels)) {
+                AttConfirmRecordModel currentRecordModel = (AttConfirmRecordModel)recordModels.get(0);
+                AttConRecordStatusEnum status = currentRecordModel.getStatus();
+                AttConfirmDataStatusEnum dataStatus = currentRecordModel.getDataStatus();
+                if (AttConRecordStatusEnum.SEND.equals(status) && AttConfirmDataStatusEnum.EFFECT.equals(dataStatus)) {
+                    MobileFormShowParameter showParameter = new MobileFormShowParameter();
+                    showParameter.setFormId("wtss_attconfirmlistpc");
+                    showParameter.getOpenStyle().setShowType(ShowType.Modal);
+                    showParameter.setParentPageId(this.getView().getPageId());
+                    showParameter.setCloseCallBack(new CloseCallBack(this, "attconf"));
+                    showParameter.setCustomParam("cache_attfile_boid", this.getPageCache().get("cache_attfile_boid"));
+                    showParameter.setCustomParam("cache_id_employeeid", this.getPageCache().get("cache_id_employeeid"));
+                    showParameter.setCustomParam("currentrecordid", String.valueOf(attConfirmId));
+                    showParameter.setCustomParam("confirmtype", currentRecordModel.getType().getCode());
+                    this.getView().showForm(showParameter);
+                } else {
+                    FormShowParameter detailParameter = new FormShowParameter();
+                    OpenStyle openStyle = new OpenStyle();
+                    openStyle.setShowType(ShowType.Modal);
+                    detailParameter.setOpenStyle(openStyle);
+                    detailParameter.setParentPageId(this.getView().getPageId());
+                    detailParameter.setFormId("wtam_attconfirmbill");
+                    detailParameter.setCloseCallBack(new CloseCallBack(this, "attconf"));
+                    detailParameter.setCustomParam("attConfirmBillId", attConfirmId);
+                    detailParameter.setCustomParam("source", "personhome");
+                    detailParameter.setCustomParam("attfile", Long.valueOf(this.getPageCache().get("cache_attfile_boid")));
+                    this.getView().showForm(detailParameter);
+                }
+
+            }
+        }
+    }
+
+    private EntryType getPerEntryEntityType(DynamicObjectCollection dynamicObjects) {
+        String entryTypeJSONStr = this.getPageCache().get("perentryentitycounttype");
+        EntryType entryType;
+        if (WTCStringUtils.isEmpty(entryTypeJSONStr)) {
+            if (!WTCCollections.isNotEmpty(dynamicObjects)) {
+                return null;
+            }
+
+            entryType = (EntryType)((DynamicObject)dynamicObjects.get(0)).getDynamicObjectType();
+            this.getPageCache().put("perentryentitycounttype", WTCSerializationUtils.toJsonString(entryType));
+        } else {
+            try {
+                entryType = (EntryType)WTCSerializationUtils.deSerializeFromBase64(entryTypeJSONStr);
+            } catch (Exception var5) {
+                LOG.warn("PersonHomePCPlugin.getPerEntryEntityType.Error:", var5);
+                throw new KDBizException(ResManager.loadKDString("获取期间统计数据失败,请联系管理员。", "PersonHomePCPlugin_7", "wtc-wtss-formplugin", new Object[0]));
+            }
+        }
+
+        return entryType;
+    }
+}