Browse Source

osf提交

yuanzhi_kuang 2 months ago
parent
commit
03ab76e5da

+ 131 - 13
websrc/com/kingdee/eas/custom/esign/service/OnboardingSalaryDataService.java

@@ -1,5 +1,19 @@
 package com.kingdee.eas.custom.esign.service;
 
+import java.sql.SQLException;
+
+import com.alibaba.fastjson.JSONObject;
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.util.BOSObjectType;
+import com.kingdee.bos.util.BOSUuid;
+import com.kingdee.eas.custom.esign.ESignTemplateFileEntryFieldInfo;
+import com.kingdee.eas.custom.esign.ESignTemplateFileEntryInfo;
+import com.kingdee.eas.custom.esign.FieldMappingEntryCollection;
+import com.kingdee.eas.custom.esign.FieldMappingEntryInfo;
+import com.kingdee.eas.fi.arap.util.DBUtil;
+import com.kingdee.jdbc.rowset.IRowSet;
+
  
 
 
@@ -35,9 +49,9 @@ public class OnboardingSalaryDataService extends OtherESignConfigDataService {
     	// 4. 试用期绩效奖金(税前)= 试用期标准绩效奖金
     	sql.append("    ISNULL(SUM(CASE WHEN sitem.FNUMBER = 'TD74' THEN fas.FMoney ELSE 0 END), 0) AS prob_perf_bonus ,\n");
     	// 5. 国内餐补 = 餐补补贴
-    	sql.append("    ISNULL(SUM(CASE WHEN sitem.FNUMBER = 'T025' THEN fas.FMoney ELSE 0 END), 0) AS domestic_meal_subsidy ,\n");
+    	sql.append("    ISNULL(SUM(CASE WHEN sitem.FNUMBER = 'T014' THEN fas.FMoney ELSE 0 END), 0) AS domestic_meal_subsidy ,\n");
     	// 6. 艰苦补贴 = 艰苦补贴
-    	sql.append("    ISNULL(SUM(CASE WHEN sitem.FNUMBER = 'T038' THEN fas.FMoney ELSE 0 END), 0) AS hardship_subsidy ,\n");
+    	sql.append("    ISNULL(SUM(CASE WHEN sitem.FNUMBER = 'TD05' THEN fas.FMoney ELSE 0 END), 0) AS hardship_subsidy ,\n");
     	// 7. 社保公积金补贴 = 社保公积金补贴
     	sql.append("    ISNULL(SUM(CASE WHEN sitem.FNUMBER = 'TD101' THEN fas.FMoney ELSE 0 END), 0) AS social_fund \n");
     	
@@ -56,19 +70,18 @@ public class OnboardingSalaryDataService extends OtherESignConfigDataService {
     	sql.append("LEFT JOIN T_HR_EmployeeContract econtract on econtract.FEmployeeID = person.FID\n");
     	sql.append("LEFT JOIN T_HR_LabContractFirstParty firstParty on econtract.FContFirstPartyID = firstParty.FID \n");
     	
-    	// -------------------------- WHERE子句 --------------------------
-    	// 过滤条件:
-    	// 1. 薪资项目编码仅包含指定项(固定工资、绩效、补贴等)
-    	// 2. 薪资生效日期为2199-12-31(永久生效)
-    	// 3. 可选条件:按人员ID过滤(启用时删除注释,注意数据库注释用--)
+ 
     	sql.append("WHERE \n");
-    	sql.append("    sitem.FNUMBER IN ('TD01', 'T012', 'T013', 'TD02', 'TD04', 'TD74', 'T025', 'T038', 'TD101') \n");
+    	sql.append("    sitem.FNUMBER IN ('TD01', 'T012', 'T013', 'TD02', 'TD04', 'TD74', 'T014', 'TD05', 'TD101') \n");
     	sql.append("    and fas.FLeffectDay = '2199-12-31 00:00:00' \n");
-    	// 数据库兼容的注释:-- 开头,嵌入SQL内不会报错(如需启用可删除前面的//)
-    	// sql.append("    -- and person.fid = 'X+0AAACrsleA733t' \n");
-    	sql.append("and  person.fid  in (select FEmployeeID from T_HR_EmployeeContract where fid = '"+id+"')  ") ;
-    	// -------------------------- GROUP BY子句 --------------------------
-    	// 分组逻辑:按人员唯一标识+基础信息分组,保证聚合函数(SUM)结果正确
+        
+        BOSUuid read = BOSUuid.read(id);
+        BOSObjectType type = read.getType();
+    	 if (type.toString().equals("7BD37592")){//id类型为合同
+         	sql.append("and  person.fid  in (select FEmployeeID from T_HR_EmployeeContract where fid = '"+id+"')" ) ;
+         }else  if (type.toString().equals("80EF7DED")){//id类型为员工felse
+         	sql.append("and person.fid = '"+id+"'");
+         }
     	sql.append("GROUP BY \n");
     	sql.append("    person.FID, person.FNAME_L2 , elation.FEnterDate , person.FIDCardNO , firstParty.FName_l2 \n");
     	
@@ -82,5 +95,110 @@ public class OnboardingSalaryDataService extends OtherESignConfigDataService {
     }
  
 
+	
+//	/**
+//     * 执行SQL查询并将结果封装为JSON对象
+//     *
+//     * @param sql     要执行的查询SQL
+//     * @param context 上下文对象
+//     * @param entrys  字段映射明细集合
+//     * @return 封装后的JSON对象,包含电子签模板各字段信息
+//     */
+//    public JSONObject getData(String sql, Context context, FieldMappingEntryCollection entrys) {
+//        // 创建JSON对象用于存储最终封装的数据
+//        JSONObject jsonObject = new JSONObject();
+//        try {
+//            // 执行SQL查询,获取结果集
+//            IRowSet iRowSet1 = DBUtil.executeQuery(context, sql);
+//            // 遍历结果集中的每一行数据
+//				while (iRowSet1.next()) {
+//				    // 遍历每个字段映射明细项
+//				    for (int i = 0; i < entrys.size(); i++) {
+//				        // 获取当前索引对应的字段映射明细信息
+//				        FieldMappingEntryInfo fieldMappingEntryInfo = entrys.get(i);
+//				        // 获取明细项中关联的电子签模板字段信息
+//				        ESignTemplateFileEntryFieldInfo eField = fieldMappingEntryInfo.getEField();
+//				        // 判断该字段是否无效(已废弃)
+//				        boolean invalid = eField.isInvalid();
+//				        // 若字段无效,跳过当前循环(不处理)
+//				        if (invalid) {
+//				            continue;
+//				        }
+//				        // 获取明细项中关联的电子签模板明细信息
+//				        ESignTemplateFileEntryInfo template = fieldMappingEntryInfo.getTemplate();
+//				        // 获取电子签模板的ID
+//				        String eSignTemplateId = template.getESignTemplateId();
+//				        // 从JSON对象中获取该模板ID对应的子JSON对象
+//				        JSONObject templateJSON = jsonObject.getJSONObject(eSignTemplateId);
+//				        // 若模板对应的子JSON对象不存在,则创建并初始化(设置ID和名称)
+//				        if (templateJSON == null) {
+//				            templateJSON = new JSONObject();
+//				            templateJSON.put("id", eSignTemplateId); // 设置模板ID
+//				            templateJSON.put("name", template.getName()); // 设置模板名称
+//				            jsonObject.put(eSignTemplateId, templateJSON); // 将模板信息存入主JSON对象
+//				        }
+//				        // 从模板子JSON对象中获取字段信息对应的子JSON对象
+//				        JSONObject fields = templateJSON.getJSONObject("fields");
+//				        // 若字段信息子JSON对象不存在,则创建并添加到模板子JSON中
+//				        if (fields == null) {
+//				            fields = new JSONObject();
+//				            templateJSON.put("fields", fields);
+//				        }
+//				        // 获取电子签模板字段的ID
+//				        String templateFieldId = eField.getTemplateFieldId();
+//				        // 创建用于存储字段值信息的JSON对象
+//				        JSONObject value = new JSONObject();
+//				        value.put("name", eField.getTemplateFieldName()); // 设置字段名称
+//				        // 获取明细项中关联的数据源字段信息
+//				        //DataConfigSelectFieldEntryInfo dataSourceField = fieldMappingEntryInfo.getDataSourceField();
+////                    if (dataSourceField==null){
+////                        value.put("value","");
+////                        value.put("dataFormat", eField.getDataFormat());
+////                    }else {
+//				        // 获取数据源字段的映射键(对应数据库列名)
+//				        String name = fieldMappingEntryInfo.getEFieldMark();
+//				        // 去除映射键中的双引号(处理可能的格式问题)
+//				        //name = name.replace("\"", "");
+//				        // 从结果集中获取该字段对应的值,并存入字段值JSON对象
+//				        if (name != null && !name.equals("")) {
+//				            try {
+//								value.put("value", iRowSet1.getObject(name));
+//							} catch (SQLException e) {
+//								e.printStackTrace();
+//							}
+//				        }
+//				        // 设置字段的数据类型(取自数据源字段的类型别名)
+//				        //value.put("dataType", dataSourceField.getDataType().getAlias());
+////                    if (dataSourceField.getDataType().getAlias().equals("Date")) {
+////                        Object object = iRowSet1.getObject(name);
+////                        if (object != null) {
+////                            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
+////                            value.put("value", simpleDateFormat.format(iRowSet1.getDate(name)));
+////                        }
+////                        value.put("dataFormat", eField.getDataFormat());
+////                    }
+//				        //}
+//				        if (eField.getComponentType().getValue() == 6 || eField.getComponentType().getValue() == 106) {
+//				            value.put("positionX", eField.getPositionX());
+//				            value.put("positionY", eField.getPositionY());
+//				            value.put("pageNum", eField.getPageNum());
+//				        }
+//				        // 将字段值信息存入字段信息子JSON对象(以模板字段ID为键)
+//				        fields.put(templateFieldId, value);
+//				    }
+//				}
+//		 
+//
+//        } catch (BOSException e) {
+//            // BOS异常时,封装为运行时异常抛出
+//            throw new RuntimeException(e);
+//        } catch (SQLException e) {
+//            // SQL异常时,封装为运行时异常抛出
+//            throw new RuntimeException(e);
+//        }  
+//        // 返回封装好的JSON对象
+//        return jsonObject;
+//    }
+
      
 }