소스 검색

1.凯乐士薪酬项同步

WoNiu 5 년 전
부모
커밋
77716eab07

+ 10 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunPayrollDao.java

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

+ 211 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPayrollDO.java

@@ -0,0 +1,211 @@
+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.LocalDateTime;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_PAYROLL")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunPayrollDO extends BasicDO{
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789Scxgmkkz2hbv7pwy8essawhre4";
+
+    /**
+     * 姓名
+     */
+    @JsonProperty("EmployeeName")
+    private String employeeName;
+
+    /**
+     * 薪酬期间
+     */
+    @JsonProperty("Period")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    @DateTimeFormat(pattern = "yyyy/MM/dd")
+    private LocalDateTime period;
+
+    /**
+     * 工号
+     */
+    @JsonProperty("ID")
+    private String employeeId;
+
+    /**
+     * 发放状态
+     */
+    @JsonProperty("SalaryStatus")
+    private String salaryStatus;
+
+    /**
+     * 基本工资
+     */
+    @JsonProperty("BasicWage")
+    private BigDecimal basicWage;
+
+    /**
+     * 应发工资
+     */
+    @JsonProperty("F0000007")
+    private BigDecimal wagesPayable;
+
+    /**
+     * 各类津贴
+     */
+    @JsonProperty("WelfareTotal")
+    private BigDecimal welfareTotal;
+
+    /**
+     * 处罚扣款
+     */
+    @JsonProperty("OtherPlus")
+    private BigDecimal otherPlus;
+
+    /**
+     * 其他扣款
+     */
+    @JsonProperty("OtherDebit")
+    private BigDecimal otherDebit;
+
+    /**
+     * 税后其它扣款
+     */
+    @JsonProperty("F0000015")
+    private BigDecimal taxOtherDebit;
+
+    /**
+     * 社保代扣
+     */
+    @JsonProperty("SIDebit")
+    private BigDecimal siDebit;
+
+    /**
+     * 公积金代扣
+     */
+    @JsonProperty("HouseDebit")
+    private BigDecimal houseDebit;
+
+    /**
+     * 公司缴纳社保
+     */
+    @JsonProperty("CompanySIDebit")
+    private BigDecimal companySiDebit;
+
+    /**
+     * 公司缴纳公积金
+     */
+    @JsonProperty("CompanyHouseDebit")
+    private BigDecimal companyHouseDebit;
+
+    /**
+     * 公司缴纳合计
+     */
+    @JsonProperty("F0000014")
+    private BigDecimal companyTotal;
+
+    /**
+     * 所得税
+     */
+    @JsonProperty("Taxable")
+    private BigDecimal taxable;
+
+    /**
+     * 实发金额
+     */
+    @JsonProperty("ActualPay")
+    private BigDecimal actualPay;
+
+    /**
+     * 绩效奖金包
+     */
+    @JsonProperty("PerformanceWage")
+    private BigDecimal performanceWage;
+
+    /**
+     * 个人代扣合计
+     */
+    @JsonProperty("F0000002")
+    private BigDecimal personalTotal;
+
+    /**
+     * 公司编码
+     */
+    @JsonProperty("F0000004")
+    private String companyCode;
+
+    /**
+     * 加班工资
+     */
+    @JsonProperty("F0000010")
+    private BigDecimal overtimePay;
+
+    /**
+     * 考核系数
+     */
+    @JsonProperty("F0000011")
+    private BigDecimal assessment;
+
+    /**
+     * 绩效奖金
+     */
+    @JsonProperty("F0000012")
+    private BigDecimal achievementBonus;
+
+    /**
+     * 其它应发
+     */
+    @JsonProperty("F0000013")
+    private BigDecimal otherPayables;
+
+    /**
+     * 月薪包
+     */
+    @JsonProperty("F0000016")
+    private BigDecimal monthlySalaryPackage;
+
+    /**
+     * 岗位津贴
+     */
+    @JsonProperty("F0000017")
+    private BigDecimal postAllowance;
+
+    /**
+     * 出勤工资
+     */
+    @JsonProperty("F0000018")
+    private BigDecimal attendanceSalary;
+
+    /**
+     * 激励奖金
+     */
+    @JsonProperty("F0000019")
+    private BigDecimal incentiveBonus;
+
+    /**
+     * 年终奖计提
+     */
+    @JsonProperty("F0000021")
+    private BigDecimal yearBonusAccrual;
+
+    /**
+     * 年终奖发放
+     */
+    @JsonProperty("F0000020")
+    private BigDecimal yearBonusDistribution;
+}

+ 44 - 3
src/main/java/com/galaxis/manatee/task/ChuanyunHumanResourceScheduledTask.java

@@ -7,6 +7,7 @@ import com.galaxis.manatee.dao.*;
 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.data.object.ChuanyunPayrollDO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.Filter;
 import com.galaxis.manatee.manager.ChuanYunManager;
@@ -34,22 +35,22 @@ public class ChuanyunHumanResourceScheduledTask {
     private final ChuanyunHolidaySalaryRuleDao chuanyunHolidaySalaryRuleDao;
     private final ChuanyunUserCompanyDao chuanyunUserCompanyDao;
     private final ChuanyunCompanyDao chuanyunCompanyDao;
+    private final ChuanyunPayrollDao chuanyunPayrollDao;
 
-    public ChuanyunHumanResourceScheduledTask(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunHolidaySalaryRuleDao chuanyunHolidaySalaryRuleDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunCompanyDao chuanyunCompanyDao) {
+    public ChuanyunHumanResourceScheduledTask(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunHolidaySalaryRuleDao chuanyunHolidaySalaryRuleDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunCompanyDao chuanyunCompanyDao, ChuanyunPayrollDao chuanyunPayrollDao) {
         this.chuanYunManager = chuanYunManager;
         this.chuanyunLogDao = chuanyunLogDao;
         this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
         this.chuanyunHolidaySalaryRuleDao = chuanyunHolidaySalaryRuleDao;
         this.chuanyunUserCompanyDao = chuanyunUserCompanyDao;
         this.chuanyunCompanyDao = chuanyunCompanyDao;
+        this.chuanyunPayrollDao = chuanyunPayrollDao;
     }
 
     /**
      * 每天3点更新日志记录
      */
-//    @Scheduled(fixedDelay = 1000000000L)
     @Scheduled(cron = "0 0 3 * * *")
-//    @Scheduled(fixedDelay = 360000L)
     private void updateLog() {
         var objectMapper = new ObjectMapper();
         var start = 0;
@@ -142,6 +143,9 @@ public class ChuanyunHumanResourceScheduledTask {
         log.info("日志信息保存" + totalCount);
     }
 
+    /**
+     * 法定假日薪资规则同步
+     */
     @Scheduled(fixedDelay = 1000000000L)
     private void getHolidaySalaryRule() {
         var objectMapper = new ObjectMapper();
@@ -175,4 +179,41 @@ public class ChuanyunHumanResourceScheduledTask {
         }
         log.info("法定假日薪资规则同步"+totalCount);
     }
+
+    /**
+     * 凯乐士薪酬项同步
+     */
+    @Scheduled(fixedDelay = 1000000000L)
+    private void getPayroll() {
+        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(ChuanyunPayrollDO.SCHEMA_CODE, filter);
+                if (chuanyunFindAllResponse.getReturnData() == null) {
+                    flag = false;
+                    continue;
+                }
+                if (chuanyunFindAllResponse.getReturnData().getTotalCount() >= start + pageSize) {
+                    start += pageSize;
+                } else {
+                    flag = false;
+                }
+                //转化为POJO
+                List<ChuanyunPayrollDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {});
+                //获取项目总数
+                totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
+                //保存数据
+                chuanyunPayrollDao.saveAll(result);
+            }catch (Exception e) {
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+        log.info("凯乐士薪酬项同步"+totalCount);
+    }
 }