|
@@ -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;
|
|
|
+ }
|
|
|
+}
|