浏览代码

删除多余的

yuanzhi_kuang 4 天之前
父节点
当前提交
97d7b0a81a

+ 25 - 0
metadata/com/kingdee/eas/custom/custom.package

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<package xmlns="com.kingdee.bos.metadata">
+	<package>com.kingdee.eas.custom</package>
+	<name>custom</name>
+	<alias>package[com.kingdee.eas.custom.custom].alias</alias>
+	<description>package[com.kingdee.eas.custom.custom].description</description>
+	<basicCode/>
+	<resource>
+		<rs key="package[com.kingdee.eas.custom.custom].description">
+			<lang locale="zh_CN" value="用户自定义"/>
+			<lang locale="zh_TW" value="用戶自定義"/>
+			<lang locale="en_US" value="custom"/>
+		</rs>
+		<rs key="package[com.kingdee.eas.custom.custom].extendedProperty.userDefined">
+			<lang locale="zh_CN" value="false"/>
+			<lang locale="zh_TW" value="null"/>
+			<lang locale="en_US" value="null"/>
+		</rs>
+		<rs key="package[com.kingdee.eas.custom.custom].alias">
+			<lang locale="zh_CN" value="用户自定义"/>
+			<lang locale="zh_TW" value="用戶自定義"/>
+			<lang locale="en_US" value="custom"/>
+		</rs>
+	</resource>
+</package>

+ 0 - 116
src/com/kingdee/shr/ats/service/GetAtsCusService.java

@@ -1,116 +0,0 @@
-package com.kingdee.shr.ats.service;
-import com.kingdee.bos.BOSException;
-import com.kingdee.bos.Context;
-import com.kingdee.bos.bsf.service.app.IHRMsfService;
-import com.kingdee.eas.basedata.org.AdminOrgUnitCollection;
-import com.kingdee.eas.basedata.org.AdminOrgUnitFactory;
-import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
-import com.kingdee.eas.common.EASBizException;
-import com.kingdee.eas.hr.ats.AttendanceProjectCollection;
-import com.kingdee.eas.hr.ats.AttendanceProjectFactory;
-import com.kingdee.eas.hr.ats.AttendanceProjectInfo;
-import com.kingdee.eas.hr.ats.util.common.AtsCommonUtile;
-import com.kingdee.eas.util.app.DbUtil;
-import com.kingdee.jdbc.rowset.IRowSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
-
-public class GetAtsCusService implements IHRMsfService {
-    private static Logger logger = Logger.getLogger(GetAtsCusService.class);
-
-  
-
-    public Object process(Context ctx, Map param) throws EASBizException, BOSException {
-        List<HashMap<String, String>> successResList = new ArrayList();
-        List<HashMap<String, String>> errorResList = new ArrayList();
-        String personIds = AtsCommonUtile.decodeEmpBase64((String)param.get("personIds"));
-        String companyLongNumber = "";
-        if(ObjectUtils.anyNotNull(param.get("companyLongNumber"))) {
-        	param.get("companyLongNumber");
-        	companyLongNumber = AtsCommonUtile.decodeEmpBase64((String)param.get("companyLongNumber"));
-        }
-        Boolean haveSubOrg = (Boolean)param.get("haveSubOrg");
-        String periodYear = (String)param.get("year");
-        String periodMonth = (String)param.get("month");
-        String periodTimes = (String)param.get("times");
-        String attendProject = (String)param.get("attendProject");
-        StringBuffer sqlBuffer = new StringBuffer();
-        AttendanceProjectCollection attendanceProjectColl = AttendanceProjectFactory.getLocalInstance(ctx).getAttendanceProjectCollection("SELECT ID,COLUMNNO  where NAME = '" + attendProject + "' or number ='" + attendProject + "'");
-        if (attendanceProjectColl != null && attendanceProjectColl.size() > 0) {
-            AttendanceProjectInfo oldModel = attendanceProjectColl.get(0);
-            if (oldModel == null) {
-                return null;
-            } else {
-                String columnName = "S" + oldModel.getColumnNO();
-                String salaryPeriod = periodYear + "-" + periodMonth + "-" + periodTimes;
-                Map<String, String> errorResMap = new HashMap();
-                if (StringUtils.isEmpty(personIds)) {
-                    return null;
-                } else if (StringUtils.isEmpty(attendProject)) {
-                    return null;
-                } else {
-                    errorResList.add((HashMap)errorResMap);
-                    sqlBuffer.append("select FPROPOSERID, sum(" + columnName + ") sumResult from  T_HR_ATS_AttendanceResult where FProposerID in (" + personIds + ")");
-                    
-                    if (!StringUtils.isEmpty(companyLongNumber)) {
-                    	  String sql = "select * from t_org_admin where FLONGNUMBER in (" + companyLongNumber + ") and fid = FCOMPANYID";
-                          IRowSet executeQuery = DbUtil.executeQuery(ctx, sql);
-                          Boolean isCompany = false;
-                          try {
-                              if (executeQuery.next()) {
-                                  isCompany = true;
-                              }
-                          } catch (SQLException var26) {
-                              var26.printStackTrace();
-                          }
-
-                          AdminOrgUnitCollection adminOrgColl = AdminOrgUnitFactory.getLocalInstance(ctx).getAdminOrgUnitCollection(" where longNumber in (" + companyLongNumber + ")");
-                          String companyID = "";
-                          String adminOrgUnitId = "";
-                          AdminOrgUnitInfo row;
-                          if (adminOrgColl != null && adminOrgColl.size() > 0) {
-                              row = adminOrgColl.get(0);
-                              companyLongNumber = row.getLongNumber();
-                              adminOrgUnitId = row.getId().toString();
-                          }
-                          if (haveSubOrg) {
-                              sqlBuffer.append(" and FADMINORGUNITID in (SELECT FID FROM T_ORG_ADMIN where FlongNumber like '" + companyLongNumber + "%')");
-                          } else {
-                              sqlBuffer.append(" and FADMINORGUNITID in ('" + adminOrgUnitId + "')");
-                          }
-                    }
-                    	
-                    
-
-                    sqlBuffer.append(" and FAttenceDate ='" + salaryPeriod + "'");
-                    sqlBuffer.append(" group by FPROPOSERID");
-                 
-                    IRowSet rowset = DbUtil.executeQuery(ctx, sqlBuffer.toString());
-
-                    try {
-                        while(rowset.next()) {
-                        	rowset.getString("FPROPOSERID");
-                        	rowset.getString("sumResult");
-                            Map<String, String> successResMap = new HashMap();
-                            successResMap.put(attendProject, rowset.getString("sumResult"));
-                            successResMap.put("personId", rowset.getString("FPROPOSERID"));
-                            successResList.add((HashMap)successResMap);
-                        }
-                    } catch (SQLException var27) {
-                        var27.printStackTrace();
-                    }
-                    return successResList;
-                }
-            }
-        } else {
-            return null;
-        }
-    }
-}

+ 0 - 265
src/com/kingdee/shr/compensation/service/CalSubmitSchemeFunctionService.java

@@ -1,265 +0,0 @@
-/*     */ package com.kingdee.shr.compensation.service;
-/*     */ 
-/*     */ import com.kingdee.bos.Context;
-/*     */ import com.kingdee.eas.basedata.hraux.BasicItemInfo;
-/*     */ import com.kingdee.eas.util.app.DbUtil;
-/*     */ import com.kingdee.jdbc.rowset.IRowSet;
-/*     */ import com.kingdee.shr.compensation.util.Base64Utils;
-/*     */ import com.kingdee.shr.compensation.util.db.CmpInSql;
-/*     */ import com.kingdee.shr.compensation.util.db.CmpInSqlFactory;
-/*     */ import com.kingdee.shr.rpts.ctrlreport.osf.OSFExecutor;
-/*     */ import com.kingdee.shr.validaterule.formula.SalaryCalFunction2;
-/*     */ import java.text.SimpleDateFormat;
-/*     */ import java.util.ArrayList;
-/*     */ import java.util.Calendar;
-/*     */ import java.util.Date;
-/*     */ import java.util.HashMap;
-/*     */ import java.util.Iterator;
-/*     */ import java.util.List;
-/*     */ import java.util.Locale;
-/*     */ import java.util.Map;
-/*     */ import java.util.Map.Entry;
-/*     */ import org.apache.commons.lang3.StringUtils;
-/*     */ import org.slf4j.Logger;
-/*     */ import org.slf4j.LoggerFactory;
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ public class CalSubmitSchemeFunctionService extends SalaryCalFunction2 {
-/*     */    private static final Logger logger = LoggerFactory.getLogger(CalSubmitSchemeFunctionService.class);
-/*     */    private final SimpleDateFormat sdf_yyyy_MM_dd = new SimpleDateFormat("yyyy-MM-dd");
-/*     */    private static final String EARLIEST_EFFDT = "1900-01-01";
-/*     */    private static final String MAX_ENDDATE = "2199-12-31";
-/*     */ 
-/*     */    public String getCurMonthPeriodEndDate(Context ctx, String mainTableName, Map paramMap, HashMap tempMap, BasicItemInfo calScheme, String mainTableRowFilter, double nullDefaultVal) {
-/*  39 */       String entryId = (String)paramMap.get(mainTableName.toUpperCase(Locale.ENGLISH) + "_FID");
-/*  40 */       String tempMapKey = "CalSubmitSchemeFunctionService_getCurMonthPeriodEndDate";
-/*  41 */       if (tempMap.get(tempMapKey) == null) {
-/*     */          try {
-/*  43 */             tempMap.put(tempMapKey, this.initPeriodRecord(ctx, mainTableName, mainTableRowFilter, (String)null, new Date()));
-/*  44 */          } catch (Exception var12) {
-/*  45 */             logger.error(var12.getMessage(), var12);
-/*  46 */             tempMap.put(tempMapKey, new HashMap());
-/*     */          }      }
-/*     */ 
-/*  49 */       Map<String, String> result = (HashMap)tempMap.get(tempMapKey);
-/*  50 */       if (result.containsKey(entryId)) {
-/*  51 */          return (String)result.get(entryId);
-/*     */       } else {
-/*  53 */          return 0.0D == nullDefaultVal ? "1900-01-01" : "2199-12-31";
-/*     */       }
-/*     */    }
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */    public String getCurMonEndDateForSubElement(Context ctx, String mainTableName, Map paramMap, HashMap tempMap, BasicItemInfo calScheme, String mainTableRowFilter, String submitElement, double nullDefaultVal) {
-/*  73 */       if (StringUtils.isEmpty(submitElement)) {
-/*  74 */          return 0.0D == nullDefaultVal ? "1900-01-01" : "2199-12-31";
-/*     */       } else {
-/*  76 */          String entryId = (String)paramMap.get(mainTableName.toUpperCase(Locale.ENGLISH) + "_FID");
-/*     */ 
-/*  78 */          String tempMapKey = "CalSubmitSchemeFunctionService_getCurMonEndDateForSubElement_" + submitElement;
-/*  79 */          if (tempMap.get(tempMapKey) == null) {
-/*     */             try {
-/*  81 */                tempMap.put(tempMapKey, this.initPeriodRecord(ctx, mainTableName, mainTableRowFilter, submitElement, new Date()));
-/*  82 */             } catch (Exception var13) {
-/*  83 */                logger.error(var13.getMessage(), var13);
-/*  84 */                tempMap.put(tempMapKey, new HashMap());
-/*     */             }         }
-/*     */ 
-/*  87 */          Map<String, String> result = (HashMap)tempMap.get(tempMapKey);
-/*  88 */          if (result.containsKey(entryId)) {
-/*  89 */             return (String)result.get(entryId);
-/*     */          } else {
-/*  91 */             return 0.0D == nullDefaultVal ? "1900-01-01" : "2199-12-31";
-/*     */          }
-/*     */       }
-/*     */    }
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */    private Map<String, String> initPeriodRecord(Context ctx, String mainTableName, String mainTableRowFilter, String submitElement, Date effectDate) throws Exception {
-/* 109 */       Map<String, String> result = new HashMap();
-/*     */ 
-/* 111 */       StringBuilder osql = new StringBuilder();
-/* 112 */       osql.append("select entry.fid entryId, entry.fpersonId personId, subPeriod.fsubmitschemeid submitScheme,periodDetail.FendDate endDate from ").append(mainTableName).append(" entry ").append(" left join T_HR_SBatchSubmitShemeBill bill on bill.fid = entry.fbillId ").append(" left join T_HR_SCalSubmitPeriod subPeriod on subPeriod.fsubmitSchemeId=bill.fsubmitSchemeId ").append(" left join T_HR_SubmitPeriod period on period.fid=subPeriod.fsubmitperiodid ").append(" left join T_HR_SubmitPeriodDetail periodDetail on periodDetail.fbillId = period.fid ").append(" where subPeriod.fstate = ").append(1).append(" and periodDetail.fstate=").append(1);
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/* 119 */       if (StringUtils.isNotEmpty(mainTableRowFilter)) {
-/* 120 */          osql.append(" and entry.fid in (").append(mainTableRowFilter).append(") ");
-/*     */       }
-/* 122 */       if (StringUtils.isNotEmpty(submitElement)) {
-/*     */ 
-/* 124 */          osql.append(" and subPeriod.fsubmitElementId in (select fid from T_HR_SSubmitElement where fnumber ='").append(submitElement).append("') ");
-/* 125 */          osql.append(" and entry.fsubmitElementId in (select fid from T_HR_SSubmitElement where fnumber ='").append(submitElement).append("') ");
-/*     */       }
-/* 127 */       osql.append(" and periodDetail.FstartDate <= {ts '").append(this.sdf_yyyy_MM_dd.format(effectDate)).append("'} and periodDetail.FendDate >= {ts '").append(this.sdf_yyyy_MM_dd.format(effectDate)).append("'}").append(" order by periodDetail.FendDate desc ");
-/*     */ 
-/*     */ 
-/*     */ 
-/* 131 */       IRowSet peroidRowSet = DbUtil.executeQuery(ctx, osql.toString());
-/* 132 */       while(peroidRowSet.next()) {
-/* 133 */          result.put(peroidRowSet.getString("entryId"), this.sdf_yyyy_MM_dd.format(peroidRowSet.getDate("endDate")));
-/*     */       }
-/* 135 */       return result;
-/*     */    }
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */ 
-/*     */    public double getAtsDataWithSubOrg(Context ctx, Map<String, Object> paramMap, HashMap<String, Object> tempMap, String mainTableName, String mainTableRowFilter, String project, double isVac, String company, double needSubOrg, double relativePeriod) {
-/* 145 */       boolean haveSubOrg = 1.0D == needSubOrg;
-/* 146 */       boolean vacProject = 1.0D == isVac;
-/* 147 */       String key = "AtsResult:" + project + "-" + company + "-" + needSubOrg + "-" + isVac + "-" + relativePeriod;
-/* 148 */       Map<String, List<Object>> mapData = null;
-/* 149 */       List<Object> listData = null;      Map dateMap;      
-/* 150 */       if (tempMap.get(key) == null) {
-/*     */ 
-/* 152 */          Map<String, Map<String, String>> dataMap = this.getSubDataGroupByEffectDate(ctx, mainTableName, mainTableRowFilter, relativePeriod);
-/* 153 */          if (dataMap.isEmpty() || ((Map)dataMap.get("sqlMap")).isEmpty()) {
-/* 154 */             return 0.0D;
-/*     */          }
-/* 156 */          Map<String, String> sqlMap = (Map)dataMap.get("sqlMap");
-/* 157 */          dateMap = (Map)dataMap.get("effectDateMap");
-/* 158 */          Iterator<String> iterator = sqlMap.keySet().iterator();
-/* 159 */          HashMap param = new HashMap();
-/* 160 */          while(iterator.hasNext()) {
-/* 161 */             String dateKey = (String)iterator.next();
-/* 162 */             String rangeSql = (String)sqlMap.get(dateKey);
-/* 163 */             String[] yearAndMonth = dateKey.split("~");
-/* 164 */             param.put("year", yearAndMonth[0]);
-/* 165 */             param.put("month", yearAndMonth[1]);
-/*     */ 
-/* 167 */             String l = ctx.getLocale().getLanguage();
-/*     */ 
-/* 169 */             String companyLongNumber = " select fLongNumber from T_ORG_ADMIN where fid in   (select FADMINORGID  from T_ORG_ADMINORGtreehis where fDisplayName_" + l + " = '" + company + "') ";
-/*     */ 
-/* 171 */             param.put("companyLongNumber", Base64Utils.encodeWithSalt(companyLongNumber));
-/* 172 */             param.put("personIds", Base64Utils.encodeWithSalt(rangeSql));
-/* 173 */             param.put("haveSubOrg", haveSubOrg);
-/* 174 */             param.put("attendProject", project);
-/*     */             List tempListData;
-/* 176 */             if (!vacProject) {
-/* 177 */                tempListData = (List)OSFExecutor.executeOSF(ctx, param, "getAttendSumByHrOrg");
-/*     */             } else {
-/* 179 */                tempListData = (List)OSFExecutor.executeOSF(ctx, param, "getHolidayProjectSummary");
-/*     */             }
-/* 181 */             if (tempListData != null) {
-/* 182 */                if (mapData == null) {
-/* 183 */                   mapData = new HashMap();
-/*     */                }
-/* 185 */                listData = (List)mapData.get(dateKey);
-/* 186 */                if (listData == null) {
-/* 187 */                   listData = new ArrayList();
-/* 188 */                   mapData.put(dateKey, listData);
-/*     */                }
-/* 190 */                ((List)listData).addAll(tempListData);
-/*     */             }         }
-/*     */ 
-/* 193 */          tempMap.put(key, mapData);
-/* 194 */          tempMap.put(key + "-effectDate", dateMap);
-/*     */       }
-/* 196 */       String personId = (String)paramMap.get(mainTableName.toUpperCase() + "_FPERSONID");
-/* 197 */       String id = (String)paramMap.get(mainTableName.toUpperCase() + "_FID");
-/* 198 */       dateMap = (Map)tempMap.get(key + "-effectDate");
-/* 199 */       String dateKey = (String)dateMap.get(id);
-/* 200 */       Map<String, List<Object>> resultData = (Map)tempMap.get(key);
-/* 201 */       dateKey = "";
-/* 202 */       HashMap<String, Object> atsResultMap = null;
-/* 203 */       if (null != resultData && null != resultData.get(dateKey) && !((List)resultData.get(dateKey)).isEmpty()) {
-/* 204 */          List<Object> atsResultData = (List)resultData.get(dateKey);
-/* 205 */          Iterator i = atsResultData.iterator();         while(i.hasNext()) {
-/* 206 */             HashMap<String, Object> map = (HashMap)i.next();
-/* 207 */             dateKey = map.containsKey("personId") ? map.get("personId").toString() : "";
-/* 208 */             if (dateKey.equals(personId)) {
-/* 209 */                atsResultMap = map;
-/* 210 */                break;
-/*     */             }         }
-/*     */       }
-/*     */ 
-/* 214 */       if (null != atsResultMap) {
-/* 215 */          double res = 0.0D;
-/* 216 */          if (null != atsResultMap.get(project) && !"".equals(atsResultMap.get(project))) {
-/* 217 */             res = Double.parseDouble(atsResultMap.get(project).toString());
-/*     */          }
-/* 219 */          return res;
-/*     */       } else {
-/* 221 */          return 0.0D;
-/*     */       }
-/*     */    }
-/*     */    public Map<String, Map<String, String>> getSubDataGroupByEffectDate(Context ctx, String mainTableName, String mainTableRowFilter, double relativePeriod) {
-/* 225 */       String sql = "select FID, FEffectDate, FPersonID from " + mainTableName + " where FID in (" + mainTableRowFilter + ")";
-/* 226 */       Map<String, List<String>> effectDateMap = new HashMap();
-/* 227 */       Map<String, String> sqlMap = new HashMap();
-/* 228 */       Map<String, String> dateMap = new HashMap();
-/* 229 */       HashMap dataMap = new HashMap();
-/*     */       try {
-/* 231 */          IRowSet executeQuery = DbUtil.executeQuery(ctx, sql);
-/* 232 */          if (null != executeQuery) {
-/* 233 */             while(executeQuery.next()) {
-/* 234 */                Date effectDate = executeQuery.getDate("FEffectDate");
-/* 235 */                String personId = executeQuery.getString("FPersonID");
-/* 236 */                String id = executeQuery.getString("FID");
-/* 237 */                if (effectDate != null) {
-/* 238 */                   Calendar c = Calendar.getInstance();
-/* 239 */                   c.setTime(effectDate);
-/* 240 */                   c.add(2, (int)relativePeriod);
-/* 241 */                   int year = c.get(1);
-/* 242 */                   int month = c.get(2) + 1;
-/* 243 */                   dateMap.put(id, year + "~" + month);
-/* 244 */                   List<String> list = (List)effectDateMap.get(year + "~" + month);
-/* 245 */                   if (list == null) {
-/* 246 */                      list = new ArrayList();
-/* 247 */                      effectDateMap.put(year + "~" + month, list);
-/*     */                   }
-/* 249 */                   ((List)list).add(personId);
-/*     */                }            }         }
-/*     */ 
-/* 252 */          if (effectDateMap.isEmpty()) {            return dataMap;         }
-/* 253 */          CmpInSql<String> instance = CmpInSqlFactory.getInstance();
-/* 254 */          Iterator var21 = effectDateMap.entrySet().iterator();         while(var21.hasNext()) {            Entry<String, List<String>> entry = (Entry)var21.next();
-/* 255 */             List<String> personList = (List)entry.getValue();
-/* 256 */             sqlMap.put(entry.getKey(), instance.createInSqlBaseOnFId(ctx, personList).replace("(", "").replace(")", ""));
-/*     */          }
-/* 258 */          dataMap.put("sqlMap", sqlMap);
-/* 259 */          dataMap.put("effectDateMap", dateMap);
-/* 260 */       } catch (Exception var19) {
-/* 261 */          var19.printStackTrace();
-/*     */       }
-/* 263 */       return dataMap;
-/*     */    }
-/*     */ }

+ 0 - 486
src/com/kingdee/shr/compensation/web/handler/timepiece/bill/TimepieceSchemeBillEditHandlerEx.java

@@ -1,486 +0,0 @@
-package com.kingdee.shr.compensation.web.handler.timepiece.bill;
-
-
-import com.kingdee.bos.BOSException;
-import com.kingdee.bos.Context;
-import com.kingdee.bos.metadata.entity.EntityViewInfo;
-import com.kingdee.bos.metadata.entity.FilterInfo;
-import com.kingdee.bos.metadata.entity.FilterItemInfo;
-import com.kingdee.bos.metadata.entity.SelectorItemCollection;
-import com.kingdee.bos.metadata.entity.SelectorItemInfo;
-import com.kingdee.bos.metadata.query.util.CompareType;
-import com.kingdee.eas.framework.CoreBaseInfo;
-import com.kingdee.eas.util.ToolUtils;
-import com.kingdee.eas.util.app.DbUtil;
-import com.kingdee.jdbc.rowset.IRowSet;
-import com.kingdee.shr.base.syssetting.context.SHRContext;
-import com.kingdee.shr.base.syssetting.exception.SHRWebException;
-import com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBillEntryCollection;
-import com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBillEntryFactory;
-import com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBillEntryInfo;
-import com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBillInfo;
-import com.kingdee.shr.compensation.app.integrate.CalSubmitItemCollection;
-import com.kingdee.shr.compensation.app.integrate.CalSubmitItemFactory;
-import com.kingdee.shr.compensation.app.integrate.CalSubmitItemInfo;
-import com.kingdee.shr.compensation.app.integrate.IBatchSubmitShemeBillEntry;
-import com.kingdee.shr.compensation.exception.ExceptionHandle;
-import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
-import java.math.BigDecimal;
-import java.sql.SQLException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang3.ObjectUtils;
-import org.springframework.ui.ModelMap;
-
-
-/**
- * 提报单拓展
- * @author coyle
- * 20250520
- */
-public class TimepieceSchemeBillEditHandlerEx extends TimepieceSchemeBillEditHandler {
-
-	private static  SimpleDateFormat  SDF = new SimpleDateFormat("yyyy-MM-dd");
-	//完成率  		 		
-	private static String COMRATE = "MQ005";
-	//岗位类型
-	private static String JOBTYPE = "MQ004";
-	//技能等级 SKILLLEVEL
-	private static String SKILLLEVEL = "MQ003";
-	//是否现场作业 On site
-	private static String ONSITE = "MQ007";
-	//班组任职 Team app
-	private static String TEAMAPP = "MQ007";
-	//工资序列 Salary seq
-	private static String SALARYSEQ = "MQ007";
-	
-	private static String[] ITEMNUMS = {COMRATE,JOBTYPE,SKILLLEVEL,ONSITE,TEAMAPP,SALARYSEQ};
-	
-	private static Map<String,String> FEILDS = new HashMap();
-	
- 
-
-	
-	public TimepieceSchemeBillEditHandlerEx() throws BOSException {
-		Context ctx = SHRContext.getInstance().getContext();
-		CalSubmitItemCollection subColl = CalSubmitItemFactory.getLocalInstance(ctx)
-				.getCalSubmitItemCollection("SELECT ID,FieldSn,number  where  number in (" + ToolUtils.aryToStr(ITEMNUMS) + ")");
-		if (subColl != null && subColl.size() > 0) {
-			for (int i =0 ;i<subColl.size();i++) {
-				CalSubmitItemInfo itemInfo = subColl.get(i);
-				if (itemInfo != null) {
-					String columnName = "S" + itemInfo.getFieldSn();
-					FEILDS.put(itemInfo.getNumber() , columnName);
-				}
-			}
-		}
-	}
-
-
-	
-	protected void beforeSave(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model)
-			throws SHRWebException {
-		super.beforeSave(request, response, model);
-		BatchSubmitShemeBillInfo info = (BatchSubmitShemeBillInfo) model;
-		BatchSubmitShemeBillEntryCollection entry = info.getEntry();
-		String billId = "";
-		if(ObjectUtils.allNotNull(info.getId())) {
-			billId = info.getId().toString();
-		}
-		//拉取mes点检率数据
-		exeDataOnDay(billId,entry);
-		
-		
-	 
-	}
-	
-	
-	
-	/**
-	 * 设置点检率数据
-	 * @param billId
-	 * @param entrys
-	 * @throws SHRWebException
-	 */
-	public void setMesData(Context ctx,String billId,BatchSubmitShemeBillEntryCollection entrys,HashMap<String, HashMap> mesData ) throws SHRWebException {
-//		Map<String, Set<String>> personDateMap = new HashMap<>();
-		for (int i = 0; i < entrys.size(); i++) {
-			BatchSubmitShemeBillEntryInfo entry = entrys.get(i);
-			String pId = entry.getPerson().getId().toString();
-			Date effectDate = entry.getEffectDate();
-			String eDate = SDF.format(effectDate);
-			String key = pId+"_"+eDate;
-			HashMap  valMap = mesData.get(key);
-			if(ObjectUtils.isEmpty(valMap)) {
-				continue;
-			}
-			for (String field : FEILDS.keySet()) {  // 或者使用 ITEMNUMS
-				String sVal = FEILDS.get(field);
-				if (entry.containsKey(sVal)) {
-					entry.put(sVal, valMap.get(sVal));  // 设置为 0 或其他默认值
-				}
-			}
-		}
-	}
-	
-	
-	
-	/**
-	 * 从中间表获取mes数据
-	 */
-	private HashMap<String,HashMap>  getMesData(Context ctx ,HashSet<String> selectPerson,DateRange dateRange) {
-		HashMap<String,HashMap> checkMap =  new HashMap();
-		Set<String>  checkbillIds = new HashSet();
-		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-		try {
-			String sql = " select fid ,CFComrate, cfpersonId, cfpositiontype , cfskillLevel , onSite , teamApp , salarysEq ,"
-					+ " fbizDate  "
-					+ " from  CT_CAL_InspectionRate  where cfpersonid in "
-					+ "( "
-					+ ToolUtils.aryToStr(selectPerson,true) 
-					+ " ) "
-					+ " and cfbizDate >= '"
-					+ dateFormat.format(dateRange.getMinDate()) 
-					+ "' and  cfbizDate <= '" 
-					+ dateFormat.format(dateRange.getMaxDate()) 
-					+"'" ;
-			
-			IRowSet rst =  DbUtil.executeQuery(ctx, sql);
-			while( rst.next() ) {
-				//点检率id存入
-				String checkbillId  = rst.getString("fid");
-				checkbillIds.add(checkbillId);
-				String pId = rst.getString("cfPersonId");
-				Date bizDate = rst.getDate("fbizDate");
-				String eDate = SDF.format(bizDate);
-				String key = pId+"_"+eDate;
-				HashMap<String,String> valMap = new HashMap(); 
-				BigDecimal comrate = rst.getBigDecimal("CFComrate");
-				valMap.put(FEILDS.get(COMRATE), comrate.toString());
-				//
-				valMap.put(FEILDS.get(JOBTYPE), rst.getString("cfpositiontype"));
-				valMap.put(FEILDS.get(SKILLLEVEL), rst.getString("cfskillLevel"));
-				valMap.put(FEILDS.get(ONSITE), rst.getString("onSite"));
-				valMap.put(FEILDS.get(TEAMAPP), rst.getString("teamApp"));
-				valMap.put(FEILDS.get(SALARYSEQ), rst.getString("salarysEq"));
-				checkMap.put(key, valMap);
-			}
-		}catch(BOSException e){
-			e.printStackTrace();
-		} catch (SQLException e) {
-			e.printStackTrace();
-		}
-		return checkMap;
-						
-	}
-	
-	
-	
-	
-	/**
-	 * 数据处理
-	 * 校验对应的某一天已存在数据/mes数据获取等
-	 * @param billId
-	 * @param entrys
-	 * @throws SHRWebException
-	 */
-	public void exeDataOnDay(String billId,BatchSubmitShemeBillEntryCollection entrys) throws SHRWebException {
-		Context ctx = SHRContext.getInstance().getContext();
-		Map<String, Set<String>> personDateMap = new HashMap<>();
-		//
-		HashSet<String> selectPerson = new HashSet();
-		HashSet<String> selectDate = new HashSet();
-		for (int i = 0; i < entrys.size(); i++) {
-			BatchSubmitShemeBillEntryInfo entry = entrys.get(i);
-			String personId = entry.getPerson().getId().toString();
-			selectPerson.add(personId);
-			Date effectDate = entry.getEffectDate();
-			// 增加对 effectDate 为 null 的检查
-			if (effectDate == null) {
-				throw new IllegalArgumentException("分录中发生日期不能为空,请检查");
-			}
-			String formattedEffectDate = SDF.format(effectDate);
-			selectDate.add(formattedEffectDate);
-			// 使用 computeIfAbsent 减少冗余代码,并增加重复检查
-			personDateMap.computeIfAbsent(personId, k -> new HashSet<>());
-			if (!personDateMap.get(personId).add(formattedEffectDate)) {
-				// 如果 add 方法返回 false,说明该日期已经存在,抛出异常
-				throw new IllegalArgumentException("分录中" + entry.getPerson().getName() + ",有当日重复提报的数据,请检查");
-			}
-		
-		}
-		
-		if (personDateMap.isEmpty()) {
-			return;
-		}
-		// 找出最大日期与最小日期
-		DateRange dateRange = findMinMaxDate(selectDate);
-		//校验重复
-		verifiOneData(ctx, billId, selectPerson, dateRange, personDateMap);
-		//校验完后进行mes数据填充;
-		//获取mes数据
-		HashMap<String, HashMap> mesData = getMesData(ctx, selectPerson, dateRange);
-		setMesData(ctx, billId, entrys, mesData);
-	}
-	
-	
-	
-	
- 
-	
-	/**
-	 * 校验当天是否有重复数据
-	 * @param ctx
-	 * @param billId
-	 * @param selectPerson
-	 * @param dateRange
-	 * @param personDateMap
-	 * @throws SHRWebException 
-	 */
-	public void verifiOneData(Context ctx ,String billId,HashSet<String> selectPerson,DateRange dateRange,Map<String, Set<String>> personDateMap) throws SHRWebException {
-		HashMap<String,String> dataMap = new HashMap();
-		try {
-			IBatchSubmitShemeBillEntry entryIns = BatchSubmitShemeBillEntryFactory.getLocalInstance(ctx);
-			FilterInfo filter = new FilterInfo();
-			filter.getFilterItems().add(new FilterItemInfo("person", selectPerson, CompareType.INCLUDE));
-			filter.getFilterItems().add(new FilterItemInfo("bill.id",   billId , CompareType.NOTEQUALS  ));
-			filter.getFilterItems().add(new FilterItemInfo("effectDate",  dateRange.getMaxDate() , CompareType.LESS_EQUALS));
-			filter.getFilterItems().add(new FilterItemInfo("effectDate",  dateRange.getMinDate() , CompareType.GREATER_EQUALS  ));
-			EntityViewInfo viewInfo = new EntityViewInfo();
-			SelectorItemCollection selector = viewInfo.getSelector();
-			selector.add(new SelectorItemInfo("person.id"));
-			selector.add(new SelectorItemInfo("person.name"));
-			selector.add(new SelectorItemInfo("bill.number"));
-			selector.add(new SelectorItemInfo("effectDate"));
-			viewInfo.setFilter(filter);
-			BatchSubmitShemeBillEntryCollection entryCol = entryIns.getBatchSubmitShemeBillEntryCollection(viewInfo);
-			for(int i = 0;i<entryCol.size();i++) {
-				BatchSubmitShemeBillEntryInfo entryInfo  = entryCol.get(i);
-				Date effectDate = entryInfo.getEffectDate();
-				String  personId = entryInfo.getPerson().getId().toString();
-				Set<String> pAndDate = personDateMap.get(personId);
-				if(pAndDate.contains(SDF.format(effectDate))) {
-					String  personName = entryInfo.getPerson().getName().toString();
-					BatchSubmitShemeBillInfo billInfo = entryInfo.getBill();
-					String billNo = billInfo.getNumber();
-					dataMap.put(personName, billNo);
-				}
-			}
-		 
-		} catch (BOSException e) {
-			e.printStackTrace();
-		}
-		 //如果dataMap不为空则循环dataMap的数据组成字符串并抛出异常,"存在哪些人,单据编码为:****"
-		if(!dataMap.isEmpty()) {
-			String errorMsg = "存在以下当日重复提报人员,姓名与单据编码为:";
-			for(String personName : dataMap.keySet()) {
-				String billNo = dataMap.get(personName);
-				errorMsg += personName + ":" + billNo + "  ";
-			}
-			throw new SHRWebException(errorMsg);
-		}
-	}
-	
-	
-	
-	
-	
-	
-	/**
-	 * handler校验,先不启用
-	 * @param request
-	 * @param response
-	 * @param modelMap
-	 * @throws SHRWebException
-	 */
-	public void hasDataOnDayAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
-			throws SHRWebException {
-		Context ctx = SHRContext.getInstance().getContext();
-		// 获取人员 //格式为[pseron1:2025-04-03,person2:2025-04-03],需要转为map
-		String proposers = request.getParameter("proposers");
-		if (proposers == null || proposers.isEmpty()) {
-			return;
-		}
-		 
-		String[] personArr = proposers.split(",");
-		HashSet<String> selectPerson = new HashSet();
-		HashSet<String> selectData = new HashSet();
-		Map<String, Set<String>> personDateMap = new HashMap<>();
-		for (int i = 0; i< personArr.length;i++) {
-			String personIds = personArr[i];
-			String[] parts = personIds.split(":");
-			if (parts.length == 2) {
-				String personId = parts[0].trim();
-				String date = parts[1].trim();
-				selectPerson.add(personId);
-				selectData.add(date);
-				personDateMap.computeIfAbsent(personId, k -> new HashSet<>()).add(date);
-			}
-		}
-
-		if (personDateMap.isEmpty()) {
-			return;
-		}
-		
-		HashMap<String,String> dataMap = new HashMap();
-		
-		// 找出最大日期与最小日期
-		DateRange dateRange = findMinMaxDate(selectData);
-		IBatchSubmitShemeBillEntry entryIns;
-		try {
-			entryIns = BatchSubmitShemeBillEntryFactory.getLocalInstance(ctx);
-			FilterInfo filter = new FilterInfo();
-			filter.getFilterItems().add(new FilterItemInfo("proposer", selectPerson, CompareType.INCLUDE));
-			filter.getFilterItems().add(new FilterItemInfo("effectDate",  dateRange.getMaxDate() , CompareType.LESS_EQUALS));
-			filter.getFilterItems().add(new FilterItemInfo("effectDate",  dateRange.getMinDate() , CompareType.GREATER_EQUALS  ));
-			EntityViewInfo viewInfo = new EntityViewInfo();
-			viewInfo.setFilter(filter);
-			BatchSubmitShemeBillEntryCollection entryCol = entryIns.getBatchSubmitShemeBillEntryCollection(viewInfo);
-			for(int i = 0;i<entryCol.size();i++) {
-				BatchSubmitShemeBillEntryInfo entryInfo  = entryCol.get(i);
-				Date effectDate = entryInfo.getEffectDate();
-				String  personId = entryInfo.getPerson().getId().toString();
-				Set<String> pAndDate = personDateMap.get(personId);
-				if(pAndDate.contains(SDF.format(effectDate))) {
-					String  personName = entryInfo.getPerson().getName().toString();
-					BatchSubmitShemeBillInfo billInfo = entryInfo.getBill();
-					String billNo = billInfo.getNumber();
-					dataMap.put(personName, billNo);
-				}
-			}
-		 
-		} catch (BOSException e) {
-			e.printStackTrace();
-		}
-		Map resultMap = new HashMap();
-		JSONUtils.SUCCESS( resultMap );
-	}
-
-
-
-	private DateRange findMinMaxDate(HashSet<String> subDate) {
-		if (subDate == null || subDate.isEmpty()) {
-			return null;
-		}
-
-		List<Date> dates = new ArrayList<>();
-		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-		for (String dateString : subDate) {
-			try {
-				dates.add(dateFormat.parse(dateString.trim()));
-			} catch (ParseException e) {
-				// 处理日期格式不正确的情况
-				e.printStackTrace();
-				return null; // 如果有日期格式不正确,直接返回 null
-			}
-		}
-		if (dates.isEmpty()) {
-			return null;
-		}
-
-		Date minDate = Collections.min(dates);
-		Date maxDate = Collections.max(dates);
-
-		return new DateRange(minDate, maxDate);
-	}
-
-	// 定义一个辅助类来存储日期范围
-	private static class DateRange {
-		private final Date minDate;
-		private final Date maxDate;
-
-		public DateRange(Date minDate, Date maxDate) {
-			this.minDate = minDate;
-			this.maxDate = maxDate;
-		}
-
-		public Date getMinDate() {
-			return minDate;
-		}
-
-		public Date getMaxDate() {
-			return maxDate;
-		}
-	}
-	
-	
-	
-	
-	protected void afterSave(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model)
-			throws SHRWebException {
-		super.afterSave(request, response, model);
-		BatchSubmitShemeBillInfo info = (BatchSubmitShemeBillInfo) model;
-		BatchSubmitShemeBillEntryCollection entry = info.getEntry();
-		String billId = "";
-		if(ObjectUtils.allNotNull(info.getId())) {
-			billId = info.getId().toString();
-		}
-//		exeDataOnDay(billId,entry);
-		 
-	}
-	
-	
-	 
-	public void getDataOnDay(String billId,BatchSubmitShemeBillEntryCollection entrys) throws SHRWebException {
-		Context ctx = SHRContext.getInstance().getContext();
-		Map<String, Set<String>> personDateMap = new HashMap<>();
-		//
-		HashSet<String> selectPerson = new HashSet();
-		HashSet<String> selectDate = new HashSet();
-		for (int i = 0; i < entrys.size(); i++) {
-			BatchSubmitShemeBillEntryInfo entry = entrys.get(i);
-			String personId = entry.getPerson().getId().toString();
-			selectPerson.add(personId);
-			Date effectDate = entry.getEffectDate();
-		
-			String formattedEffectDate = SDF.format(effectDate);
-			selectDate.add(formattedEffectDate);
-			// 使用 computeIfAbsent 减少冗余代码,并增加重复检查
-			personDateMap.computeIfAbsent(personId, k -> new HashSet<>());
-			if (!personDateMap.get(personId).add(formattedEffectDate)) {
-				// 如果 add 方法返回 false,说明该日期已经存在,抛出异常
-				throw new IllegalArgumentException("分录中" + entry.getPerson().getName() + ",有当日重复提报的数据,请检查");
-			}
-		}
-		
-		if (personDateMap.isEmpty()) {
-			return;
-		}
-		// 找出最大日期与最小日期
-		DateRange dateRange = findMinMaxDate(selectDate);
-		//校验重复
-		verifiOneData(ctx, billId, selectPerson, dateRange, personDateMap);
-		//获取mes数据
-		HashMap<String, HashMap> mesData = getMesData(ctx, selectPerson, dateRange);
-		setMesData(ctx, billId, entrys, mesData);
-	}
-	
-	
-	public String saveAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
-			throws SHRWebException {
-		try {
-			BatchSubmitShemeBillInfo model = (BatchSubmitShemeBillInfo) request.getAttribute("dynamic_model");
-			this.doFieldPermFilterSave(request, model);
-			this.doSave(request, response, model);
-			this.afterSave(request, response, model);
-			this.saveAttachment(request, response, model);
-			Object responseData = this.generateResponseDataAfterSave(request, response, model);
-			this.writeSuccessData(responseData);
-		} catch (Exception var6) {
-			ExceptionHandle.handleException(var6);
-		}
-
-		return null;
-	}
-}