|
|
@@ -0,0 +1,113 @@
|
|
|
+package nckd.jxccl.swc.hcdm.business.annualincome;
|
|
|
+
|
|
|
+
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
+import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
+import kd.bos.logging.Log;
|
|
|
+import kd.bos.logging.LogFactory;
|
|
|
+import kd.bos.orm.query.QCP;
|
|
|
+import kd.bos.orm.query.QFilter;
|
|
|
+import kd.sdk.swc.hsas.business.internal.spi.CalResultQueryService;
|
|
|
+import kd.swc.hsbp.common.constants.SWCBaseConstants;
|
|
|
+import nckd.jxccl.swc.constants.SwcConstant;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Tyx 2025-11-05
|
|
|
+ * 年度收入相关单据用服务类
|
|
|
+ */
|
|
|
+public class AnnualIncomeService {
|
|
|
+
|
|
|
+ private static final Log logger = LogFactory.getLog(AnnualIncomeService.class);
|
|
|
+ Long groupId;
|
|
|
+ Date startDate;
|
|
|
+ Date endDate;
|
|
|
+
|
|
|
+ public AnnualIncomeService(Long groupId, Date startDate, Date endDate) {
|
|
|
+ this.groupId = groupId;
|
|
|
+ this.startDate = startDate;
|
|
|
+ this.endDate = endDate;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据核算人员+薪酬项目获取薪资明细
|
|
|
+ * @param calPersonIds
|
|
|
+ * @param itemIds
|
|
|
+ */
|
|
|
+ public void querySalaryDetail(List<Long> calPersonIds, List<Long> itemIds) {
|
|
|
+ logger.info("开始查询薪资明细数据,参数:{},{}", calPersonIds, itemIds);
|
|
|
+ Map<Long, Map<Long, Object>> map = CalResultQueryService.get().getSalaryResult(calPersonIds, itemIds);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过薪资核算组获取核算人员
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public DynamicObjectCollection queryCalPersonByPayRollGroup() {
|
|
|
+ // 先获取核算任务ID
|
|
|
+ List<Long> taskIds = queryCalPayRollTaskByPayRollGroup();
|
|
|
+ // 再根据任务ID获取核算人员
|
|
|
+ return queryCalPersonByCalPayRollTask(taskIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据薪资核算组+日期范围获取核算任务
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<Long> queryCalPayRollTaskByPayRollGroup () {
|
|
|
+ logger.info("开始查询核算任务数据,参数:{},{},{}", groupId, startDate, endDate);
|
|
|
+ QFilter filter = new QFilter("payrollgroup.id", QCP.equals, groupId);
|
|
|
+ filter.and("payrolldate", QCP.large_equals, startDate);
|
|
|
+ filter.and("payrolldate", QCP.less_equals, endDate);
|
|
|
+ DynamicObject[] taskCols = queryCalPayRollTaskByPayRollGroup("id, payrolldate, payrollgroup", filter.toArray());
|
|
|
+ List<Long> taskIds = (List) Arrays.stream(taskCols).map((o) -> {
|
|
|
+ return o.getLong("id");
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ return taskIds;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 根据薪资核算组获取核算任务
|
|
|
+ * @param filter 过滤条件
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private DynamicObject[] queryCalPayRollTaskByPayRollGroup (String selectFields, QFilter[] filter) {
|
|
|
+ logger.info("开始查询核算任务数据,参数:{}", filter.toString());
|
|
|
+ return SwcConstant.CALPAYROLLTASK_HELPER.load(selectFields, filter);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 根据核算任务ID获取核算人员
|
|
|
+ *
|
|
|
+ * @param taskIds
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private DynamicObjectCollection queryCalPersonByCalPayRollTask (List<Long> taskIds) {
|
|
|
+ logger.info("开始查询核算人员数据,参数:{}", taskIds);
|
|
|
+// //QFilter filter = new QFilter("hsas_calpayrolltask.id", QCP.in, taskIds);
|
|
|
+// QFilter filter = new QFilter("filenumber", QCP.equals, "999999");
|
|
|
+// // 计薪人员,工号,证件号
|
|
|
+// List<String> selectFields = new ArrayList<String>();
|
|
|
+// //selectFields.add("employee.id");
|
|
|
+// selectFields.add("filenumber");
|
|
|
+// //selectFields.add("hsas_calpayrolltask.id");
|
|
|
+// //selectFields.add("hsbs_percre.number");
|
|
|
+// DynamicObjectCollection calPersonIds = CalResultQueryService.get().getCalPersonInfos(selectFields, filter.toArray(), null, 0, 1000);
|
|
|
+// return calPersonIds;
|
|
|
+
|
|
|
+ QFilter filter = new QFilter("empnumber", QCP.equals, "999999");
|
|
|
+ List<String> selectFields = new ArrayList<>(SWCBaseConstants.INITCAPACITY_ARRAYLIST);
|
|
|
+ selectFields.add("id");
|
|
|
+ selectFields.add("empnumber");
|
|
|
+ DynamicObjectCollection calPersonCols = CalResultQueryService.get().getCalPersonInfos(selectFields, new QFilter[]{filter}, "id", 0, 1000);
|
|
|
+ return calPersonCols;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|