浏览代码

1.新增同步法定假日薪资规则

WoNiu 5 年之前
父节点
当前提交
ceabb0c2d1

+ 9 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunHolidaySalaryRuleDao.java

@@ -0,0 +1,9 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunHolidaySalaryRuleDO;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunHolidaySalaryRuleDao extends GalaxisRepository<ChuanyunHolidaySalaryRuleDO,String> {
+}

+ 65 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunHolidaySalaryRuleDO.java

@@ -0,0 +1,65 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_HOLIDAY_SALARY_RULE")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunHolidaySalaryRuleDO extends BasicDO{
+
+    /**
+     * 表编码
+     */
+    public static final String SCHEMA_CODE ="D001789c4b18d595e624fd2bd63e8fbbbdca1d4";
+
+    /**
+     * 年份
+     */
+    @JsonProperty("F0000005")
+    private Integer year;
+
+    /**
+     * 日期
+     */
+    @JsonProperty("F0000001")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    @DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss")
+    private LocalDateTime holidayDate;
+
+    /**
+     * 日期说明
+     */
+    @JsonProperty("F0000002")
+    private String content;
+
+    /**
+     * 日期类型
+     */
+    @JsonProperty("F0000003")
+    private String dateType;
+
+    /**
+     * 加成系数
+     */
+    @JsonProperty("F0000004")
+    private BigDecimal coefficient;
+
+}

+ 39 - 1
src/main/java/com/galaxis/manatee/task/ChuanyunHumanResourceScheduledTask.java

@@ -3,8 +3,10 @@ package com.galaxis.manatee.task;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.galaxis.manatee.dao.ChuanyunGroupProjectDao;
+import com.galaxis.manatee.dao.ChuanyunHolidaySalaryRuleDao;
 import com.galaxis.manatee.dao.ChuanyunLogDao;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunGroupProjectDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunHolidaySalaryRuleDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunLogDO;
 import com.galaxis.manatee.entity.chuanyun.dto.Filter;
 import com.galaxis.manatee.manager.ChuanYunManager;
@@ -29,11 +31,13 @@ public class ChuanyunHumanResourceScheduledTask {
     private final ChuanYunManager chuanYunManager;
     private final ChuanyunLogDao chuanyunLogDao;
     private final ChuanyunGroupProjectDao chuanyunGroupProjectDao;
+    private final ChuanyunHolidaySalaryRuleDao chuanyunHolidaySalaryRuleDao;
 
-    public ChuanyunHumanResourceScheduledTask(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao) {
+    public ChuanyunHumanResourceScheduledTask(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunHolidaySalaryRuleDao chuanyunHolidaySalaryRuleDao) {
         this.chuanYunManager = chuanYunManager;
         this.chuanyunLogDao = chuanyunLogDao;
         this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
+        this.chuanyunHolidaySalaryRuleDao = chuanyunHolidaySalaryRuleDao;
     }
 
     /**
@@ -108,4 +112,38 @@ public class ChuanyunHumanResourceScheduledTask {
         }
         log.info("日志信息保存" + totalCount);
     }
+
+    @Scheduled(fixedDelay = 1000000000L)
+    private void updateHolidaySalaryRule() {
+        var objectMapper = new ObjectMapper();
+        var start = 0;
+        var totalCount = 0L;
+        var flag = true;
+        while (flag) {
+            try {
+                //从氚云查询数据
+                var filter = Filter.instance(start, start + pageSize, true);
+                var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunHolidaySalaryRuleDO.SCHEMA_CODE, filter);
+                if (chuanyunFindAllResponse.getReturnData() == null) {
+                    flag = false;
+                    continue;
+                }
+                if (chuanyunFindAllResponse.getReturnData().getTotalCount() >= start + pageSize) {
+                    start += pageSize;
+                } else {
+                    flag = false;
+                }
+                //转化为POJO
+                List<ChuanyunHolidaySalaryRuleDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {});
+                //获取项目总数
+                totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
+                //保存数据
+                chuanyunHolidaySalaryRuleDao.saveAll(result);
+            }catch (Exception e) {
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+        log.info("法定假日薪资规则同步"+totalCount);
+    }
 }