Просмотр исходного кода

更新蓝云数据同步功能

zhangkan 1 месяц назад
Родитель
Сommit
c13eebfd24
62 измененных файлов с 24457 добавлено и 4992 удалено
  1. BIN
      .DS_Store
  2. 38 0
      src/main/java/com/muzhi/lanyun/config/AsyncConfig.java
  3. 85 0
      src/main/java/com/muzhi/lanyun/controller/DataTransmissionController.java
  4. 243 28
      src/main/java/com/muzhi/lanyun/controller/DingOaController.java
  5. 40 0
      src/main/java/com/muzhi/lanyun/controller/TimerController.java
  6. 57 0
      src/main/java/com/muzhi/lanyun/entity/ChaifenhuizongLanyun.java
  7. 243 3
      src/main/java/com/muzhi/lanyun/entity/DanganLanyun.java
  8. 105 0
      src/main/java/com/muzhi/lanyun/entity/GongzichaifenbLanyun.java
  9. 105 0
      src/main/java/com/muzhi/lanyun/entity/GongzichaifencLanyun.java
  10. 298 4
      src/main/java/com/muzhi/lanyun/entity/XinziLanyun.java
  11. 78 3
      src/main/java/com/muzhi/lanyun/entity/XinzichaifenbLanyun.java
  12. 79 3
      src/main/java/com/muzhi/lanyun/entity/XinzichaifencLanyun.java
  13. 5 2
      src/main/java/com/muzhi/lanyun/entity/vo/DanganLanyunQuery.java
  14. 2 0
      src/main/java/com/muzhi/lanyun/entity/vo/LanyunDataVo.java
  15. 1 1
      src/main/java/com/muzhi/lanyun/entity/vo/XinziLanyunQuery.java
  16. 12 0
      src/main/java/com/muzhi/lanyun/mapper/ChaifenhuizongLanyunMapper.java
  17. 12 0
      src/main/java/com/muzhi/lanyun/mapper/GongzichaifenbLanyunMapper.java
  18. 12 0
      src/main/java/com/muzhi/lanyun/mapper/GongzichaifencLanyunMapper.java
  19. 5 0
      src/main/java/com/muzhi/lanyun/mapper/xml/ChaifenhuizongMapper.xml
  20. 5 0
      src/main/java/com/muzhi/lanyun/mapper/xml/GongzichaifenbLanyunMapper.xml
  21. 5 0
      src/main/java/com/muzhi/lanyun/mapper/xml/GongzichaifencLanyunMapper.xml
  22. 36 0
      src/main/java/com/muzhi/lanyun/service/DataTransmissionService.java
  23. 96 12
      src/main/java/com/muzhi/lanyun/service/DingOaService.java
  24. 11 0
      src/main/java/com/muzhi/lanyun/service/TimerService.java
  25. 12 3
      src/main/java/com/muzhi/lanyun/service/impl/AccessTokenServiceImpl.java
  26. 1226 0
      src/main/java/com/muzhi/lanyun/service/impl/DataTransmissionServiceImpl.java
  27. 15985 4821
      src/main/java/com/muzhi/lanyun/service/impl/DingOaServiceImpl.java
  28. 1256 0
      src/main/java/com/muzhi/lanyun/service/impl/TimerServiceImpl.java
  29. 7 3
      src/main/resources/application.properties
  30. 408 35
      src/test/java/com/muzhi/lanyun/APITest/Test1.java
  31. 3983 0
      src/test/java/com/muzhi/lanyun/APITest/Test2.java
  32. 7 3
      target/classes/application.properties
  33. BIN
      target/classes/com/muzhi/lanyun/config/AsyncConfig.class
  34. BIN
      target/classes/com/muzhi/lanyun/controller/DataTransmissionController.class
  35. BIN
      target/classes/com/muzhi/lanyun/controller/DingOaController.class
  36. BIN
      target/classes/com/muzhi/lanyun/controller/TimerController.class
  37. BIN
      target/classes/com/muzhi/lanyun/entity/ChaifenhuizongLanyun.class
  38. BIN
      target/classes/com/muzhi/lanyun/entity/DanganLanyun.class
  39. BIN
      target/classes/com/muzhi/lanyun/entity/GongzichaifenbLanyun.class
  40. BIN
      target/classes/com/muzhi/lanyun/entity/GongzichaifencLanyun.class
  41. BIN
      target/classes/com/muzhi/lanyun/entity/XinziLanyun.class
  42. BIN
      target/classes/com/muzhi/lanyun/entity/XinzichaifenbLanyun.class
  43. BIN
      target/classes/com/muzhi/lanyun/entity/XinzichaifencLanyun.class
  44. BIN
      target/classes/com/muzhi/lanyun/entity/vo/DanganLanyunQuery.class
  45. BIN
      target/classes/com/muzhi/lanyun/entity/vo/LanyunDataVo.class
  46. BIN
      target/classes/com/muzhi/lanyun/entity/vo/XinziLanyunQuery.class
  47. BIN
      target/classes/com/muzhi/lanyun/mapper/ChaifenhuizongLanyunMapper.class
  48. BIN
      target/classes/com/muzhi/lanyun/mapper/GongzichaifenbLanyunMapper.class
  49. BIN
      target/classes/com/muzhi/lanyun/mapper/GongzichaifencLanyunMapper.class
  50. BIN
      target/classes/com/muzhi/lanyun/service/DataTransmissionService.class
  51. BIN
      target/classes/com/muzhi/lanyun/service/DingOaService.class
  52. BIN
      target/classes/com/muzhi/lanyun/service/TimerService.class
  53. BIN
      target/classes/com/muzhi/lanyun/service/impl/AccessTokenServiceImpl.class
  54. BIN
      target/classes/com/muzhi/lanyun/service/impl/DataTransmissionServiceImpl.class
  55. BIN
      target/classes/com/muzhi/lanyun/service/impl/DingOaServiceImpl.class
  56. BIN
      target/classes/com/muzhi/lanyun/service/impl/TimerServiceImpl.class
  57. BIN
      target/springboot-lanyun.jar
  58. BIN
      target/springboot-lanyun.jar.original
  59. 0 67
      target/surefire-reports/TEST-com.muzhi.lanyun.TestApplicationTests.xml
  60. 0 4
      target/surefire-reports/com.muzhi.lanyun.TestApplicationTests.txt
  61. BIN
      target/test-classes/com/muzhi/lanyun/APITest/Test1.class
  62. BIN
      target/test-classes/com/muzhi/lanyun/APITest/Test2.class

+ 38 - 0
src/main/java/com/muzhi/lanyun/config/AsyncConfig.java

@@ -0,0 +1,38 @@
+package com.muzhi.lanyun.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+//import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
+
+@Configuration
+public class AsyncConfig {
+    @Bean("businessTaskExecutor")
+    public Executor businessTaskExecutor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        // 核心线程数(即使空闲也会保留)
+        executor.setCorePoolSize(5);
+
+        // 最大线程数(队列满后可扩容到此值)
+        executor.setMaxPoolSize(20);
+
+        // 任务队列容量(缓冲等待执行的任务)
+        executor.setQueueCapacity(100);
+
+        // 线程名前缀(便于日志排查)
+        executor.setThreadNamePrefix("async-task-");
+
+        // 拒绝策略(当队列和线程池都满时如何处理新任务)
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+
+        // 线程空闲超时时间(秒),超过此时间非核心线程会被回收
+//        executor.setKeepAliveSeconds(60);
+
+        // 初始化线程池(必须调用!)
+        executor.initialize();
+        return executor;
+    }
+}

+ 85 - 0
src/main/java/com/muzhi/lanyun/controller/DataTransmissionController.java

@@ -0,0 +1,85 @@
+package com.muzhi.lanyun.controller;
+
+import com.muzhi.lanyun.service.DataTransmissionService;
+import com.muzhi.lanyun.service.TimerService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author ZhangKan
+ * @Data 15:03
+ */
+
+@Api(description = "同步数据")
+@RestController
+@RequestMapping("/dingservice")
+@CrossOrigin//解决跨域问题
+public class DataTransmissionController {
+
+    @Autowired
+    private DataTransmissionService dataTransmissionService;
+
+    /**
+     * 公司福利申请单写入数据库
+     * */
+    @ApiOperation(value = "公司福利申请单写入数据库")
+    @GetMapping("addGongsifuli")
+    public String addGongsifuli(String formInstanceId){
+
+        String gongsifuli = dataTransmissionService.addGongsifuli(formInstanceId);
+        return gongsifuli;
+    }
+
+    /**
+     * 荣誉奖励申请单写入数据库
+     * */
+    @ApiOperation(value = "荣誉奖励申请单写入数据库")
+    @GetMapping("addRongyujiangli")
+    public String addRongyujiangli(String formInstanceId){
+
+        String rongyujiangli = dataTransmissionService.addRongyujiangli(formInstanceId);
+        return rongyujiangli;
+    }
+
+    /**
+     * 营运浮动金额表写入数据库
+     * */
+    @ApiOperation(value = "营运浮动金额表写入数据库")
+    @GetMapping("addYingyunfudong")
+    public String addYingyunfudong(String formInstanceId){
+
+        String yingyunfudong = dataTransmissionService.addYingyunfudong(formInstanceId);
+        return yingyunfudong;
+    }
+
+    /**
+     * 过失单写入数据库
+     * */
+    @ApiOperation(value = "过失单写入数据库")
+    @GetMapping("addGuoshidan")
+    public String addGuoshidan(String formInstanceId){
+
+        String guoshidan = dataTransmissionService.addGuoshidan(formInstanceId);
+        return guoshidan;
+    }
+
+
+
+    //NOTE 2026-02-10新增
+    /**
+     * 考勤数据写入数据库
+     * */
+    @ApiOperation(value = "考勤数据写入数据库")
+    @GetMapping("addKaoqin")
+    public String addKaoqin(String formInstanceId){
+
+        String kaoqin = dataTransmissionService.addKaoqin(formInstanceId);
+        return kaoqin;
+    }
+}

+ 243 - 28
src/main/java/com/muzhi/lanyun/controller/DingOaController.java

@@ -26,8 +26,9 @@ public class DingOaController {
     @Autowired
     private DingOaService dingOaService;
 
+    //--------------------------------------------查询----------------------------------------------------------
     //获取数据库中【蓝云薪资总表】实体类表数据进行前端接口调用展示数据
-    @ApiOperation(value = "获取数据库中【蓝云薪资总表】实体类表数据进行前端接口调用展示数据")
+    @ApiOperation(value = "获取数据库中【蓝云薪资总表A】实体类表数据进行前端接口调用展示数据")
     @GetMapping("getXinziLanyun")
     public LanyunDataVo getXinziLanyun(Integer currentPage, Integer pageSize,
                                         XinziLanyunQuery xinziLanyunQuery){
@@ -70,9 +71,19 @@ public class DingOaController {
         return danganLanyun;
     }
 
+    //--------------------------------------------导入----------------------------------------------------------
     /**
      * ⬇⬇⬇宜搭批量导入表单写入数据库的方法⬇⬇⬇
      * */
+    //导入人员档案
+    @ApiOperation(value = "导入人员档案")
+    @PostMapping("importRYDA")
+    public R importRYDA(String data, String formInstId){
+
+        R importRYDA = dingOaService.importRYDA(data, formInstId);
+        return importRYDA;
+    }
+
     //导入薪资档案
     @ApiOperation(value = "导入薪资档案")
     @PostMapping("importXZDA")
@@ -81,6 +92,14 @@ public class DingOaController {
         R importXZDA = dingOaService.importXZDA(data, formInstId);
         return importXZDA;
     }
+    //导入薪资档案//remark 2026-02-03新增
+    @ApiOperation(value = "导入薪资档案")
+    @PostMapping("deleteXZDA")
+    public R deleteXZDA(String jisuannianyue, String shenfenzhenghao){
+
+        R deleteXZDA = dingOaService.deleteXZDA(jisuannianyue, shenfenzhenghao);
+        return deleteXZDA;
+    }
 
     //导入浮动数据
     @ApiOperation(value = "导入浮动数据")
@@ -90,6 +109,14 @@ public class DingOaController {
         R importFDSJ = dingOaService.importFDSJ(data, formInstId);
         return importFDSJ;
     }
+    //清除浮动数据
+    @ApiOperation(value = "清除浮动数据")
+    @PostMapping("deleteFDSJ")
+    public R deleteFDSJ(long jisuannianyue, String shenfenzhenghao){
+
+        R deleteFDSJ = dingOaService.deleteFDSJ(jisuannianyue, shenfenzhenghao);
+        return deleteFDSJ;
+    }
 
     //导入社保公积金
     @ApiOperation(value = "导入社保公积金")
@@ -99,17 +126,90 @@ public class DingOaController {
         R importSBGJJ = dingOaService.importSBGJJ(data, formInstId);
         return importSBGJJ;
     }
+    //清除社保公积金
+    @ApiOperation(value = "清除社保公积金")
+    @PostMapping("deleteSBGJJ")
+    public R deleteSBGJJ(long jisuannianyue, String shenfenzhenghao){
+
+        R deleteSBGJJ = dingOaService.deleteSBGJJ(jisuannianyue, shenfenzhenghao);
+        return deleteSBGJJ;
+    }
+
+    //导入绩效考核
+    @ApiOperation(value = "导入绩效考核")
+    @PostMapping("importJXKH")
+    public R importJXKH(String data, String formInstId){
+
+        R importJXKH = dingOaService.importJXKH(data, formInstId);
+        return importJXKH;
+    }
+
+    //导入个税调差
+    @ApiOperation(value = "导入个税调差")
+    @PostMapping("importGSTC")
+    public R importGSTC(String data, String formInstId){
+
+        R importGSTC = dingOaService.importGSTC(data, formInstId);
+        return importGSTC;
+    }
+
+    //导入日志案例扣款
+    @ApiOperation(value = "导入日志案例扣款")
+    @PostMapping("importRZALKK")
+    public R importRZALKK(String data, String formInstId){
+
+        R importRZALKK = dingOaService.importRZALKK(data, formInstId);
+        return importRZALKK;
+    }
+
+    //导入月度处罚单
+    @ApiOperation(value = "导入月度处罚单")
+    @PostMapping("importYDCFD")
+    public R importYDCFD(String data, String formInstId){
+
+        R importYDCFD = dingOaService.importYDCFD(data, formInstId);
+        return importYDCFD;
+    }
+
+    /**导入薪资结果A表*/
+    @ApiOperation(value = "导入薪资结果A表")
+    @PostMapping("importXZJG")
+    public R importXZJG(String data, String formInstId){
+
+        R importXZJG = dingOaService.importXZJG(data, formInstId);
+        return importXZJG;
+    }
+
+    //【测算使用,已停用】导入工时算薪
+    @ApiOperation(value = "导入工时算薪")
+    @PostMapping("importGSSX")
+    public R importGSSX(String data, String formInstId){
+
+        R importGSSX = dingOaService.importGSSX(data, formInstId);
+        return importGSSX;
+    }
+
+    //【20250509新增】导入考勤数据
+    @ApiOperation(value = "【20250509新增】导入考勤数据")
+    @PostMapping("importKQ")
+    public R importKQ(String data, String formInstId){
+
+        R importKQ = dingOaService.importKQ(data, formInstId);
+        return importKQ;
+    }
     /**
      * ⬆⬆⬆宜搭批量导入表单写入数据库的方法⬆⬆⬆
      * */
 
 
+    //--------------------------------------------同步----------------------------------------------------------
     //获取钉钉组织架构人员信息-同步至宜搭人员信息表
     @ApiOperation(value = "获取钉钉组织架构人员信息-同步至宜搭人员信息表")
     @PostMapping("getRenyuan")
-    @Scheduled(cron = "0 0 21 * * ?")//每天21:00触发(也就是凌晨22点01分触发)
-//    @Scheduled(cron = "0 0/10 * * * ?")//每10分钟执行一次
-//    @Scheduled(cron = "0 */10 * * * ?")//每隔10分钟执行一次
+//    @Scheduled(cron = "0 0 18 * * ?")//每天18:00触发(也就是晚上18点00分触发)//STOP 注意,考虑不在当天同步【不启用该定时,已停用】
+//    @Scheduled(cron = "0 0 9 * * ?")//每天9:00触发(也就是早上9点00分触发)//STOP 注意,部署在云璞服务器时需要关闭【最后一次版本,已停用】
+
+//    @Scheduled(cron = "0 0 18 * * ?")//每天18:00触发(也就是晚上18点00分触发)//NOTE 【NEW】注意,部署在云璞服务器时需要关闭
     public String getRenyuan(){
 
         String renyuan = dingOaService.getRenyuan();
@@ -117,6 +217,8 @@ public class DingOaController {
     }
 
     //获取宜搭人员信息表,更新宜搭人员状态
+    /**【20251121停用,改为获取人员离开架构时间接口】*/
+    //STOP【停用!!!!!!】
     @ApiOperation(value = "获取宜搭人员信息表,更新宜搭人员状态")
     @PostMapping("getRenyuanStatus")
     public String getRenyuanStatus(){
@@ -125,19 +227,55 @@ public class DingOaController {
         return renyuanStatus;
     }
 
-    //计算同步考勤数据-同步至宜搭应出勤天数表单
-    @ApiOperation(value = "计算同步考勤数据-同步至宜搭应出勤天数表单")
+    //获取钉钉人员离开架构时间,更新宜搭人员档案
+    /**【20251121新增,改为获取人员离开架构时间接口】*/
+    @ApiOperation(value = "获取钉钉人员离开架构时间,更新宜搭人员档案")
+    @PostMapping("getRenyuanLeaveTime")
+//    @Scheduled(cron = "0 0 1 * * ?")//每天1:00触发(也就是早上1点00分触发)//STOP 注意,部署在云璞服务器时需要关闭【最后一次版本,已停用】
+
+//    @Scheduled(cron = "0 0 21 * * ?")//每天21:00触发(也就是晚上21点00分触发)//NOTE 【NEW】注意,部署在云璞服务器时需要关闭
+    public String getRenyuanLeaveTime(){
+
+        String renyuanLeaveTime = dingOaService.getRenyuanLeaveTime();
+        return renyuanLeaveTime;
+    }
+
+    //计算同步考勤数据-同步至宜搭应出勤天数表单(同步当月数据)
+    @ApiOperation(value = "计算同步考勤数据-同步至宜搭应出勤天数表单(同步当月数据)")
     @PostMapping("tongbuKaoqin")
-    @Scheduled(cron = "0 0 22 * * ?")//每天23:10触发(也就是凌晨23点10分触发)
-//    @Scheduled(cron = "0 10 0 * * ?")//每天00:10触发(也就是凌晨0点10分触发)
-//    @Scheduled(cron = "0 0/10 * * * ?")//每10分钟执行一次
-//    @Scheduled(cron = "0 */10 * * * ?")//每隔10分钟执行一次
+//    @Scheduled(cron = "0 0 3 * * ?")//每天03:00触发(也就是凌晨3点00分触发)//STOP 注意,部署在云璞服务器时需要关闭【最后一次版本,已停用】
+
+//    @Scheduled(cron = "0 0 4 * * ?")//每天04:00触发(也就是早上4点00分触发)//NOTE 【NEW】注意,部署在云璞服务器时需要关闭
     public String tongbuKaoqin(){
 
         String tongbuKaoqin = dingOaService.tongbuKaoqin();
         return tongbuKaoqin;
     }
 
+    //计算同步考勤数据-同步至宜搭应出勤天数表单(每月1~5日同步上月考勤)
+    @ApiOperation(value = "计算同步考勤数据-同步至宜搭应出勤天数表单(每月1、5日同步上月考勤)")
+    @PostMapping("tongbuKaoqin2")
+//    @Scheduled(cron = "0 0 3 * * ?")//每天03:00触发(也就是凌晨3点00分触发)//STOP 注意,部署在云璞服务器时需要关闭【最后一次版本,已停用】
+
+//    @Scheduled(cron = "0 30 10 * * ?")//每天10:30触发(也就是早上10点30分触发)//NOTE 【NEW】注意,部署在云璞服务器时需要关闭
+    public String tongbuKaoqin2(){
+
+        String tongbuKaoqin2 = dingOaService.tongbuKaoqin2();
+        return tongbuKaoqin2;
+    }
+
+    //复制薪资档案(每月1日复制上月的薪资档案)
+    @ApiOperation(value = "复制薪资档案(每月1日复制上月的薪资档案)")
+    @PostMapping("copyXinzidangan")
+//    @Scheduled(cron = "0 0 13 1 * ?")//每月1日13:00触发(也就是下午13点00分触发)//STOP 【NEW】注意,部署在云璞服务器时需要关闭
+    public String copyXinzidangan(){
+
+        String copyXinzidangan = dingOaService.copyXinzidangan();
+        return copyXinzidangan;
+    }
+
+
+    //--------------------------------------------废弃功能----------------------------------------------------------
     //批量修改档案及浮动数据方法
     @ApiOperation(value = "批量修改档案及浮动数据方法")
     @PostMapping("updateDangan")
@@ -156,51 +294,114 @@ public class DingOaController {
         return updateXinziA;
     }
 
+    //--------------------------------------------算薪过程----------------------------------------------------------
     /**
      * ======计算同步薪资总表数据-同步至宜搭【工资核算表(A)】表单======
      */
+//    @ApiOperation(value = "计算同步薪资总表数据-同步至宜搭【工资核算表(A)】表单")
+//    @PostMapping("tongbuXinzihesuanA")
+//    public R tongbuXinzihesuanA(@RequestBody JSONObject obj){
+//
+//        R tongbuXinzihesuanA = dingOaService.tongbuXinzihesuanA(obj);
+//        return tongbuXinzihesuanA;
+//    }
+
+    //启用异步执行
     @ApiOperation(value = "计算同步薪资总表数据-同步至宜搭【工资核算表(A)】表单")
     @PostMapping("tongbuXinzihesuanA")
-//    @Scheduled(cron = "0 0 22 * * ?")//每天23:10触发(也就是凌晨23点10分触发)
-//    @Scheduled(cron = "0 10 0 * * ?")//每天00:10触发(也就是凌晨0点10分触发)
-//    @Scheduled(cron = "0 0/10 * * * ?")//每10分钟执行一次
-//    @Scheduled(cron = "0 */10 * * * ?")//每隔10分钟执行一次
     public R tongbuXinzihesuanA(@RequestBody JSONObject obj){
 
-        R tongbuXinzihesuanA = dingOaService.tongbuXinzihesuanA(obj);
-        return tongbuXinzihesuanA;
+        dingOaService.tongbuXinzihesuanA(obj);
+//        R tongbuXinzihesuanA_1 = dingOaService.tongbuXinzihesuanA_1(obj);//测试试用
+        return R.ok();
     }
 
     /**
      * ======拆分金额-薪资总表数据-同步至宜搭【工资核算表(B)(C)】表单======
      */
+//    @ApiOperation(value = "拆分金额-薪资总表数据-同步至宜搭【工资核算表(B)(C)】表单")
+//    @PostMapping("chaifenjine")
+//    public R chaifenjine(@RequestBody JSONObject obj){
+//
+//        R chaifenjine = dingOaService.chaifenjine(obj);
+//        return chaifenjine;
+//    }
+
+    //启用异步执行
     @ApiOperation(value = "拆分金额-薪资总表数据-同步至宜搭【工资核算表(B)(C)】表单")
     @PostMapping("chaifenjine")
-//    @Scheduled(cron = "0 0 22 * * ?")//每天23:10触发(也就是凌晨23点10分触发)
-//    @Scheduled(cron = "0 10 0 * * ?")//每天00:10触发(也就是凌晨0点10分触发)
-//    @Scheduled(cron = "0 0/10 * * * ?")//每10分钟执行一次
-//    @Scheduled(cron = "0 */10 * * * ?")//每隔10分钟执行一次
     public R chaifenjine(@RequestBody JSONObject obj){
 
-        R chaifenjine = dingOaService.chaifenjine(obj);
-        return chaifenjine;
+        dingOaService.chaifenjine(obj);
+        return R.ok();
     }
 
     /**
      * ======拆分归属-薪资总表数据-同步至宜搭【工资核算表(B)(C)】表单======
      */
+//    @ApiOperation(value = "拆分归属-薪资总表数据-同步至宜搭【工资核算表(B)(C)】表单")
+//    @PostMapping("chaifenguishu")
+//    public R chaifenguishu(@RequestBody JSONObject obj){
+//
+//        R chaifenguishu = dingOaService.chaifenguishu(obj);
+//        return chaifenguishu;
+//    }
+
+    //启用异步执行
     @ApiOperation(value = "拆分归属-薪资总表数据-同步至宜搭【工资核算表(B)(C)】表单")
     @PostMapping("chaifenguishu")
-//    @Scheduled(cron = "0 0 22 * * ?")//每天23:10触发(也就是凌晨23点10分触发)
-//    @Scheduled(cron = "0 10 0 * * ?")//每天00:10触发(也就是凌晨0点10分触发)
-//    @Scheduled(cron = "0 0/10 * * * ?")//每10分钟执行一次
-//    @Scheduled(cron = "0 */10 * * * ?")//每隔10分钟执行一次
     public R chaifenguishu(@RequestBody JSONObject obj){
 
-        R chaifenguishu = dingOaService.chaifenguishu(obj);
-        return chaifenguishu;
+        dingOaService.chaifenguishu(obj);
+        return R.ok();
     }
 
+    /**
+     * ======定额考核-绩效工资-同步至宜搭【工资核算表(A)】表单======
+     */
+    @ApiOperation(value = "定额考核-绩效工资-同步至宜搭【工资核算表(A)】表单")
+    @PostMapping("jixiaogongzi")
+    public R jixiaogongzi(@RequestBody JSONObject obj){
+
+        R jixiaogongzi = dingOaService.jixiaogongzi(obj);
+        return jixiaogongzi;
+    }
+
+    /**
+     * 创建【发薪申请】流程表单
+     */
+    @ApiOperation(value = "创建【发薪申请】流程表单")
+    @PostMapping("createFaxinshenqing")
+    public R createFaxinshenqing(@RequestBody JSONObject obj){
+
+        R createFaxinshenqing = dingOaService.createFaxinshenqing(obj);
+        return createFaxinshenqing;
+    }
+
+    /**
+     * 创建【考核工资申请】流程表单
+     */
+    @ApiOperation(value = "创建【考核工资申请】流程表单")
+    @PostMapping("createKaohegongzishenqing")
+    public R createKaohegongzishenqing(@RequestBody JSONObject obj){
+
+        R createKaohegongzishenqing = dingOaService.createKaohegongzishenqing(obj);
+        return createKaohegongzishenqing;
+    }
+
+    /**
+     * 项目点薪资从数据库回写【薪资核算A表】
+     */
+    @ApiOperation(value = "项目点薪资从数据库回写【薪资核算A表】")
+    @PostMapping("writeBackXinzizihesuanA")
+    public R writeBackXinzizihesuanA(@RequestBody JSONObject obj){
+
+        R writeBackXinzizihesuanA = dingOaService.writeBackXinzizihesuanA(obj);
+        return writeBackXinzizihesuanA;
+    }
+
+
+    //--------------------------------------------废弃功能----------------------------------------------------------
     /**
      * 表单打开时加载(默认加载出所属部门)【废弃,未启用】
      */
@@ -223,4 +424,18 @@ public class DingOaController {
 
         return rzjy;
     }
+
+    //--------------------------------------------考勤数据自动记录,和钉钉OA审批单相关----------------------------------------------------------
+    /**----------【连接器】----------*/
+    /**更新宜搭考勤数据表的缺卡次数*/
+    @ApiOperation(value = "更新宜搭考勤数据表的缺卡次数")
+    @PostMapping("updateYidaKaoqin")
+    @ResponseBody
+    public R updateYidaKaoqin(String processInstanceId){
+
+        R updateYidaKaoqin = dingOaService.updateYidaKaoqin(processInstanceId);
+        System.out.println(updateYidaKaoqin);
+
+        return updateYidaKaoqin;
+    }
 }

+ 40 - 0
src/main/java/com/muzhi/lanyun/controller/TimerController.java

@@ -0,0 +1,40 @@
+package com.muzhi.lanyun.controller;
+
+import com.muzhi.lanyun.service.AccessTokenService;
+import com.muzhi.lanyun.service.TimerService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author ZhangKan
+ * @Data 15:03
+ */
+
+@Api(description = "定时同步数据")
+@RestController
+@RequestMapping("/dingservice")
+@CrossOrigin//解决跨域问题
+public class TimerController {
+
+    @Autowired
+    private TimerService timerService;
+
+    //每日考勤定时同步
+    @ApiOperation(value = "每日考勤定时同步")
+    @GetMapping("addKaoqinDay")
+//    @Scheduled(cron = "0 30 5 * * ?")//每天5:30触发(也就是凌晨5点30分触发)//TODO 注意,部署在云璞服务器时需要关闭
+//    @Scheduled(cron = "0 30 11 * * ?")//每天11:30触发(也就是中午11点30分触发)//TODO 注意,部署在云璞服务器时需要关闭
+    public String addKaoqinDay(){
+
+        String addKaoqinDay = timerService.addKaoqinDay();
+        return addKaoqinDay;
+    }
+
+
+}

+ 57 - 0
src/main/java/com/muzhi/lanyun/entity/ChaifenhuizongLanyun.java

@@ -0,0 +1,57 @@
+package com.muzhi.lanyun.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import java.math.BigDecimal;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "拆分汇总表", description = "拆分金额汇总表")
+public class ChaifenhuizongLanyun {
+
+    @Basic
+    @Column(name = "汇总类型:工资、考核工资")
+    private String type;
+    @Basic
+    @Column(name = "计算年月")
+    private String jisuannianyue;
+    @Basic
+    @Column(name = "所属类别")
+    private String suoshuleibie;
+    @Basic
+    @Column(name = "拆分归属")
+    private String chaifenguishu;
+
+    @Basic
+    @Column(name = "应发工资")
+    private BigDecimal yingfagongzi;
+    @Basic
+    @Column(name = "实发工资")
+    private BigDecimal shifagongzi;
+
+    @Basic
+    @Column(name = "服务费")
+    private BigDecimal fuwufei;
+    @Basic
+    @Column(name = "税费")
+    private BigDecimal shuifei;
+    @Basic
+    @Column(name = "开票金额")
+    private BigDecimal kaipiaojine;
+    @Basic
+    @Column(name = "实支金额")
+    private BigDecimal shizhijine;
+    @Basic
+    @Column(name = "企业社保公积金")
+    private BigDecimal qiyeshebaogongjijin;
+
+    @Basic
+    @Column(name = "企业社保公积金")
+    private Integer jixinrenshu;
+}

+ 243 - 3
src/main/java/com/muzhi/lanyun/entity/DanganLanyun.java

@@ -16,6 +16,7 @@ import java.math.BigDecimal;
 @Accessors(chain = true)
 @ApiModel(value = "档案信息", description = "档案汇总表")
 public class DanganLanyun {
+
     /**
      * 人员基础信息
      * */
@@ -49,6 +50,12 @@ public class DanganLanyun {
     @Basic
     @Column(name = "入职日期")
     private String ruzhiriqi;//
+
+    //20250731新增
+    @Basic
+    @Column(name = "离职日期")
+    private String lizhiriqi;//
+
     @Basic
     @Column(name = "司龄")
     private BigDecimal siling;//
@@ -73,6 +80,10 @@ public class DanganLanyun {
     @Basic
     @Column(name = "劳务归属2")
     private String laowuguishu2;//
+    @Basic
+    @Column(name = "劳务归属3")
+    private String laowuguishu3;//
+
     @Basic
     @Column(name = "部门id")
     private String bumenid;//
@@ -89,6 +100,43 @@ public class DanganLanyun {
     /**
      * 薪资档案
      * */
+    //新增字段
+    @Basic
+    @Column(name = "一级部门")
+    private String yijibumen;//
+    @Basic
+    @Column(name = "二级部门")
+    private String erjibumen;//
+    @Basic
+    @Column(name = "标准日工时")
+    private BigDecimal biaozhunrigongshi;//
+    @Basic
+    @Column(name = "固定补贴金额")
+    private BigDecimal gudingbutiejine;//
+    @Basic
+    @Column(name = "工会费外")
+    private BigDecimal gonghuifeiwai;//
+    @Basic
+    @Column(name = "是否统计日志")
+    private String shifoutongjirizhi;//
+    @Basic
+    @Column(name = "是否定额考核")
+    private String shifoudingekaohe;//
+    @Basic
+    @Column(name = "算薪方式")
+    private String suanxinfangshi;//
+    @Basic
+    @Column(name = "是否算薪")
+    private String shifousuanxin;//
+
+    /**针对临时工等特殊情况的人员算薪使用*/
+    @Basic
+    @Column(name = "工时单价")
+    private BigDecimal danjia;//
+    @Basic
+    @Column(name = "时天月")//
+    private BigDecimal shitianyue;//
+
     @Basic
     @Column(name = "薪资等级")
     private String xinzidengji;//
@@ -108,7 +156,7 @@ public class DanganLanyun {
     @Column(name = "技能工资")
     private BigDecimal jinenggongzi;//
     @Basic
-    @Column(name = "保密工资")
+    @Column(name = "竞业保密工资")//REMARK 20260212由保密工资改为竞业保密工资
     private BigDecimal baomigongzi;//
     @Basic
     @Column(name = "延顶工资")
@@ -134,12 +182,60 @@ public class DanganLanyun {
     @Basic
     @Column(name = "全部拆分金额")
     private BigDecimal quanbuchaifenjine;
+
     @Basic
     @Column(name = "排班班次")
     private String paibanbanci;//
+
+    //REMARK 20260326薪资档案中增加字段
+    @Basic
+    @Column(name = "年假工资")
+    private BigDecimal nianjiagongzi;
+    @Basic
+    @Column(name = "社保补贴")
+    private BigDecimal shebaobutie;
+    @Basic
+    @Column(name = "名单类型")
+    private String mingdanleixing;
+
+    @Basic
+    @Column(name = "缺卡次数")
+    private BigDecimal quekacishu;
+    @Basic
+    @Column(name = "补卡次数(需扣款)")
+    private BigDecimal bukacishuxukoukuan;
+
+    @Basic
+    @Column(name = "补卡次数(无需扣款)")
+    private BigDecimal bukacishuwuxukoukuan;
+
+    @Basic
+    @Column(name = "迟到次数")
+    private BigDecimal chidaocishu;
+    @Basic
+    @Column(name = "迟到时长")
+    private BigDecimal chidaoshichang;
+    @Basic
+    @Column(name = "早退次数")
+    private BigDecimal zaotuicishu;
+    @Basic
+    @Column(name = "早退时长")
+    private BigDecimal zaotuishichang;
+    @Basic
+    @Column(name = "旷工次数")
+    private BigDecimal kuanggongcishu;
+
+    @Basic
+    @Column(name = "节假日工时")//20250509新增
+    private BigDecimal jiejiarigongshi;
+
+    @Basic
+    @Column(name = "标准天数")//20251023新增
+    private BigDecimal biaozhuntianshu;
     @Basic
     @Column(name = "标准工时")
     private BigDecimal biaozhungongshi;
+
     @Basic
     @Column(name = "应出工时")
     private BigDecimal yingchugongshi;
@@ -237,7 +333,7 @@ public class DanganLanyun {
     @Column(name = "高温补贴金额")
     private BigDecimal gaowenbutiejine;
     @Basic
-    @Column(name = "管理补贴金额")
+    @Column(name = "管理补贴金额")//最新改为「调扣金额」
     private BigDecimal guanlibutiejine;//
     @Basic
     @Column(name = "社保补贴金额")
@@ -279,9 +375,129 @@ public class DanganLanyun {
     /**
      * 补贴金额
      * */
+    /**引用福利申请单*/
+    //荣誉奖励
+    @Basic
+    @Column(name = "荣誉奖励")
+    private BigDecimal rongyujiangli;//
+
+    /**浮动表维护*/
+    //公司奖励
     @Basic
-    @Column(name = "奖励金额")
+    @Column(name = "奖励金额:后改为「公司奖励」")
     private BigDecimal jianglijine;//
+    //小业主费用
+    @Basic
+    @Column(name = "小业主费用")
+    private BigDecimal xiaoyezhufeiyong;//
+    //甲方奖励
+    @Basic
+    @Column(name = "甲方奖励")
+    private BigDecimal jiafangjiangli;//
+
+
+    /**【以下】营运浮动数据填报,新增时间:2024-12-10*/
+    /**奖励类*/
+    //最美员工
+    @Basic
+    @Column(name = "最美员工")
+    private BigDecimal zuimeiyuangong1;//
+    //优秀员工
+    @Basic
+    @Column(name = "优秀员工")
+    private BigDecimal youxiuyuangong1;//
+    //甲方奖励
+    @Basic
+    @Column(name = "甲方奖励")
+    private BigDecimal jiafangjiangli1;//
+    //楼层奖励
+    @Basic
+    @Column(name = "楼层奖励")
+    private BigDecimal loucengjiangli1;//
+    //小业主费用
+    @Basic
+    @Column(name = "小业主费用")
+    private BigDecimal xiaoyezhufeiyong1;//
+    //项目考核
+    @Basic
+    @Column(name = "项目考核")
+    private BigDecimal xiangmukaohe1;//
+
+    /**补贴类*/
+    //岗位补贴
+    @Basic
+    @Column(name = "岗位补贴")
+    private BigDecimal gangweibutie1;//
+    //甲方补贴
+    @Basic
+    @Column(name = "甲方补贴")
+    private BigDecimal jiafangbutie1;//
+    //待岗补贴
+    @Basic
+    @Column(name = "待岗补贴")
+    private BigDecimal daigangbutie1;//
+    //固定岗位补贴
+    @Basic
+    @Column(name = "固定岗位补贴")
+    private BigDecimal gudinggangweibutie1;//
+    //打卡费用
+    @Basic
+    @Column(name = "打卡费用")
+    private BigDecimal dakafeiyong1;//
+    //超房补贴
+    @Basic
+    @Column(name = "超房补贴")
+    private BigDecimal chaofangbutie1;//
+    //双班补贴
+    @Basic
+    @Column(name = "双班补贴")
+    private BigDecimal shuangbanbutie1;//
+    //早班补贴
+    @Basic
+    @Column(name = "早班补贴")
+    private BigDecimal zaobanbutie1;//
+    //晚班补贴
+    @Basic
+    @Column(name = "晚班补贴")
+    private BigDecimal wanbanbutie1;//
+    //交通补贴
+    @Basic
+    @Column(name = "交通补贴")
+    private BigDecimal jiaotongbutie1;//
+    //食堂补贴
+    @Basic
+    @Column(name = "食堂补贴")
+    private BigDecimal shitangbutie1;//
+    //生日补贴
+    @Basic
+    @Column(name = "生日补贴")
+    private BigDecimal shengributie1;//
+    //过年补贴
+    @Basic
+    @Column(name = "过年补贴")
+    private BigDecimal guonianbutie1;//
+    //洗车补贴
+    @Basic
+    @Column(name = "洗车补贴")
+    private BigDecimal xichebutie1;//
+    //房间补贴
+    @Basic
+    @Column(name = "房间补贴")
+    private BigDecimal fangjianbutie1;//
+
+    //高温费(专项)20250731新增
+    @Basic
+    @Column(name = "高温费(专项)")
+    private BigDecimal gaowenfeizhuanxiang1;//
+
+    /**扣款类*/
+    //其他扣款
+    @Basic
+    @Column(name = "其他扣款")
+    private BigDecimal qitakoukuan1;//
+    /**【以上】营运浮动数据填报,新增时间:2024-12-10*/
+
+
     @Basic
     @Column(name = "提成奖金")
     private BigDecimal tichengjiangjin;//
@@ -303,12 +519,27 @@ public class DanganLanyun {
     @Basic
     @Column(name = "其他扣款")
     private BigDecimal qitakoukuan;//
+
+    @Basic
+    @Column(name = "日志扣款")
+    private BigDecimal rizhikoukuan;//
+    @Basic
+    @Column(name = "案例扣款")
+    private BigDecimal anlikoukuan;//
+
     @Basic
     @Column(name = "应发工资")
     private BigDecimal yingfagongzi;
+
     @Basic
     @Column(name = "社保缴纳基数")
     private BigDecimal shebaojiaonajishu;//
+
+    //TODO 20250615调整,新增字段「当地最低工资」
+    @Basic
+    @Column(name = "当地最低工资")
+    private BigDecimal dangdizuidigongzi;//
+
     @Basic
     @Column(name = "个人养老")
     private BigDecimal gerenyanglao;//
@@ -357,6 +588,11 @@ public class DanganLanyun {
     @Basic
     @Column(name = "实发工资")
     private BigDecimal shifagongzi;
+
+    @Basic
+    @Column(name = "拆分归属记载A")
+    private String chaifenguishujizai1;//
+
     @Basic
     @Column(name = "是否拆分金额")
     private String shifouchaifenjine;//
@@ -372,6 +608,10 @@ public class DanganLanyun {
     @Basic
     @Column(name = "拆分归属标记3")
     private String chaifenguishubiaoji3;//
+    @Basic
+    @Column(name = "拆分归属标记4")
+    private String chaifenguishubiaoji4;//
+
     @Basic
     @Column(name = "社保缴纳城市")
     private String shebaojiaonachengshi;

+ 105 - 0
src/main/java/com/muzhi/lanyun/entity/GongzichaifenbLanyun.java

@@ -0,0 +1,105 @@
+package com.muzhi.lanyun.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import java.math.BigDecimal;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "拆分表", description = "工资拆分表B")
+public class GongzichaifenbLanyun {
+
+    @Basic
+    @Column(name = "所属类别")
+    private String suoshuleibie;
+    @Basic
+    @Column(name = "计算年月")
+    private String jisuannianyue;
+    @Basic
+    @Column(name = "员工姓名")
+    private String yuangongxingming;
+    @Basic
+    @Column(name = "身份证号")
+    private String shenfenzhenghao;
+    @Basic
+    @Column(name = "项目名称")
+    private String xiangmumingcheng;
+    @Basic
+    @Column(name = "移动电话")
+    private String yidongdianhua;
+    @Basic
+    @Column(name = "银行名称")
+    private String yinhangmingcheng;
+    @Basic
+    @Column(name = "银行卡号")
+    private String yinhangkahao;
+    @Basic
+    @Column(name = "劳动归属")
+    private String laodongguishu;
+    @Basic
+    @Column(name = "劳务归属1")
+    private String laowuguishu1;
+    @Basic
+    @Column(name = "劳务归属2")
+    private String laowuguishu2;
+    @Basic
+    @Column(name = "劳务归属3")
+    private String laowuguishu3;
+
+    @Basic
+    @Column(name = "归属标记")
+    private String guishubiaoji;
+    @Basic
+    @Column(name = "归属应发工资")
+    private BigDecimal guishuyingfagongzi;
+    @Basic
+    @Column(name = "个人社保公积金")
+    private BigDecimal gerenshebaogongjijin;
+    @Basic
+    @Column(name = "归属税前工资")
+    private BigDecimal guishushuiqiangongzi;
+
+    @Basic
+    @Column(name = "员工编码:钉钉userid")
+    private String yuangongbianma;
+
+    @Basic
+    @Column(name = "职位名称")
+    private String zhiweimingcheng;
+    @Basic
+    @Column(name = "薪资标准")
+    private BigDecimal xinzibiaozhun;
+    @Basic
+    @Column(name = "应出勤日")
+    private BigDecimal yingchuqinri;
+    @Basic
+    @Column(name = "实出勤日")
+    private BigDecimal shichuqinri;
+    @Basic
+    @Column(name = "顶班工资")
+    private BigDecimal dingbangongzi;
+    @Basic
+    @Column(name = "外派工资")
+    private BigDecimal waipaigongzi;
+    @Basic
+    @Column(name = "加班小计")
+    private BigDecimal jiabanxiaoji;
+    @Basic
+    @Column(name = "补贴小计")
+    private BigDecimal butiexiaoji;
+    @Basic
+    @Column(name = "缺勤扣款")
+    private BigDecimal queqinkoukuan;
+    @Basic
+    @Column(name = "奖惩合计")//使用处罚金额字段
+    private BigDecimal jiangchengheji;
+    @Basic
+    @Column(name = "其他扣款")
+    private BigDecimal qitakoukuan;
+}

+ 105 - 0
src/main/java/com/muzhi/lanyun/entity/GongzichaifencLanyun.java

@@ -0,0 +1,105 @@
+package com.muzhi.lanyun.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import java.math.BigDecimal;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "拆分表", description = "工资拆分表B")
+public class GongzichaifencLanyun {
+
+    @Basic
+    @Column(name = "所属类别")
+    private String suoshuleibie;
+    @Basic
+    @Column(name = "计算年月")
+    private String jisuannianyue;
+    @Basic
+    @Column(name = "员工姓名")
+    private String yuangongxingming;
+    @Basic
+    @Column(name = "身份证号")
+    private String shenfenzhenghao;
+    @Basic
+    @Column(name = "项目名称")
+    private String xiangmumingcheng;
+    @Basic
+    @Column(name = "移动电话")
+    private String yidongdianhua;
+    @Basic
+    @Column(name = "银行名称")
+    private String yinhangmingcheng;
+    @Basic
+    @Column(name = "银行卡号")
+    private String yinhangkahao;
+    @Basic
+    @Column(name = "劳动归属")
+    private String laodongguishu;
+    @Basic
+    @Column(name = "劳务归属1")
+    private String laowuguishu1;
+    @Basic
+    @Column(name = "劳务归属2")
+    private String laowuguishu2;
+    @Basic
+    @Column(name = "劳务归属3")
+    private String laowuguishu3;
+
+    @Basic
+    @Column(name = "归属标记")
+    private String guishubiaoji;
+    @Basic
+    @Column(name = "归属应发工资")
+    private BigDecimal guishuyingfagongzi;
+    @Basic
+    @Column(name = "个人社保公积金")
+    private BigDecimal gerenshebaogongjijin;
+    @Basic
+    @Column(name = "归属税前工资")
+    private BigDecimal guishushuiqiangongzi;
+
+    @Basic
+    @Column(name = "员工编码:钉钉userid")
+    private String yuangongbianma;
+
+    @Basic
+    @Column(name = "职位名称")
+    private String zhiweimingcheng;
+    @Basic
+    @Column(name = "薪资标准")
+    private BigDecimal xinzibiaozhun;
+    @Basic
+    @Column(name = "应出勤日")
+    private BigDecimal yingchuqinri;
+    @Basic
+    @Column(name = "实出勤日")
+    private BigDecimal shichuqinri;
+    @Basic
+    @Column(name = "顶班工资")
+    private BigDecimal dingbangongzi;
+    @Basic
+    @Column(name = "外派工资")
+    private BigDecimal waipaigongzi;
+    @Basic
+    @Column(name = "加班小计")
+    private BigDecimal jiabanxiaoji;
+    @Basic
+    @Column(name = "补贴小计")
+    private BigDecimal butiexiaoji;
+    @Basic
+    @Column(name = "缺勤扣款")
+    private BigDecimal queqinkoukuan;
+    @Basic
+    @Column(name = "奖惩合计")//使用处罚金额字段
+    private BigDecimal jiangchengheji;
+    @Basic
+    @Column(name = "其他扣款")
+    private BigDecimal qitakoukuan;
+}

+ 298 - 4
src/main/java/com/muzhi/lanyun/entity/XinziLanyun.java

@@ -23,6 +23,14 @@ public class XinziLanyun {
     @Basic
     @Column(name = "异常信息")
     private String errmessage;
+
+    @Basic
+    @Column(name = "是否已发起薪资申请")
+    private String shifouyifaqixinzishenqing;
+    @Basic
+    @Column(name = "是否已计算绩效考核")
+    private String shifouyijisuanjixiaokaohe;
+
     @Basic
     @Column(name = "所属类别")
     private String suoshuleibie;
@@ -50,6 +58,12 @@ public class XinziLanyun {
     @Basic
     @Column(name = "入职日期")
     private String ruzhiriqi;
+
+    //20250731新增
+    @Basic
+    @Column(name = "离职日期")
+    private String lizhiriqi;
+
     @Basic
     @Column(name = "司龄")
     private BigDecimal siling;
@@ -74,12 +88,51 @@ public class XinziLanyun {
     @Basic
     @Column(name = "劳务归属2")
     private String laowuguishu2;
+    @Basic
+    @Column(name = "劳务归属3")
+    private String laowuguishu3;//
+
     @Basic
     @Column(name = "部门id")
     private String bumenid;
     @Basic
     @Column(name = "部门")
     private String bumen;
+
+    //新增字段
+    @Basic
+    @Column(name = "一级部门")
+    private String yijibumen;//
+    @Basic
+    @Column(name = "二级部门")
+    private String erjibumen;//
+    @Basic
+    @Column(name = "标准日工时")
+    private BigDecimal biaozhunrigongshi;//
+    @Basic
+    @Column(name = "固定补贴金额")
+    private BigDecimal gudingbutiejine;//
+    @Basic
+    @Column(name = "工费费外")
+    private BigDecimal gonghuifeiwai;//
+    @Basic
+    @Column(name = "是否统计日志")
+    private String shifoutongjirizhi;//
+    @Basic
+    @Column(name = "是否定额考核")
+    private String shifoudingekaohe;//
+    @Basic
+    @Column(name = "算薪方式")
+    private String suanxinfangshi;//
+
+    /**针对临时工等特殊情况的人员算薪使用*/
+    @Basic
+    @Column(name = "单价")
+    private BigDecimal danjia;//
+    @Basic
+    @Column(name = "时天月")
+    private BigDecimal shitianyue;//
+
     @Basic
     @Column(name = "职位名称")
     private String zhiweimingcheng;
@@ -105,7 +158,7 @@ public class XinziLanyun {
     @Column(name = "技能工资")
     private BigDecimal jinenggongzi;
     @Basic
-    @Column(name = "保密工资")
+    @Column(name = "竞业保密工资")//REMARK 20260212由保密工资改为竞业保密工资
     private BigDecimal baomigongzi;
     @Basic
     @Column(name = "延顶工资")
@@ -134,9 +187,56 @@ public class XinziLanyun {
     @Basic
     @Column(name = "排班班次")
     private String paibanbanci;
+
+    //REMARK 20260326薪资档案中增加字段
+    @Basic
+    @Column(name = "年假工资")
+    private BigDecimal nianjiagongzi;
+    @Basic
+    @Column(name = "社保补贴")
+    private BigDecimal shebaobutie;
+    @Basic
+    @Column(name = "名单类型")
+    private String mingdanleixing;
+
+    @Basic
+    @Column(name = "缺卡次数")
+    private BigDecimal quekacishu;
+    @Basic
+    @Column(name = "补卡次数(需扣款)")
+    private BigDecimal bukacishuxukoukuan;
+
+    @Basic
+    @Column(name = "补卡次数(需扣款)")
+    private BigDecimal bukacishuwuxukoukuan;
+
+    @Basic
+    @Column(name = "迟到次数")
+    private BigDecimal chidaocishu;
+    @Basic
+    @Column(name = "迟到时长")
+    private BigDecimal chidaoshichang;
+    @Basic
+    @Column(name = "早退次数")
+    private BigDecimal zaotuicishu;
+    @Basic
+    @Column(name = "早退时长")
+    private BigDecimal zaotuishichang;
+    @Basic
+    @Column(name = "旷工次数")
+    private BigDecimal kuanggongcishu;
+
+    @Basic
+    @Column(name = "节假日工时")//20250509新增
+    private BigDecimal jiejiarigongshi;
+
     @Basic
     @Column(name = "标准工时")
     private BigDecimal biaozhungongshi;
+    @Basic
+    @Column(name = "标准天数")//20251023新增
+    private BigDecimal biaozhuntianshu;
+
     @Basic
     @Column(name = "应出工时")
     private BigDecimal yingchugongshi;
@@ -234,7 +334,7 @@ public class XinziLanyun {
     @Column(name = "高温补贴金额")
     private BigDecimal gaowenbutiejine;
     @Basic
-    @Column(name = "管理补贴金额")
+    @Column(name = "管理补贴金额")//最新改为「调扣金额」
     private BigDecimal guanlibutiejine;
     @Basic
     @Column(name = "社保补贴金额")
@@ -272,9 +372,128 @@ public class XinziLanyun {
     @Basic
     @Column(name = "补贴金额小计")
     private BigDecimal butiejinexiaoji;
+
+    /**引用福利申请单*/
+    //荣誉奖励
+    @Basic
+    @Column(name = "荣誉奖励")
+    private BigDecimal rongyujiangli;//
+
+    /**浮动表维护*/
+    //公司奖励
+    @Basic
+    @Column(name = "奖励金额:后改为「公司奖励」")
+    private BigDecimal jianglijine;//
+    //小业主费用
+    @Basic
+    @Column(name = "小业主费用")
+    private BigDecimal xiaoyezhufeiyong;//
+    //甲方奖励
+    @Basic
+    @Column(name = "甲方奖励")
+    private BigDecimal jiafangjiangli;//
+
+    /**【以下】营运浮动数据填报,新增时间:2024-12-10*/
+    /**奖励类*/
+    //最美员工
+    @Basic
+    @Column(name = "最美员工")
+    private BigDecimal zuimeiyuangong1;//
+    //优秀员工
+    @Basic
+    @Column(name = "优秀员工")
+    private BigDecimal youxiuyuangong1;//
+    //甲方奖励
+    @Basic
+    @Column(name = "甲方奖励")
+    private BigDecimal jiafangjiangli1;//
+    //楼层奖励
+    @Basic
+    @Column(name = "楼层奖励")
+    private BigDecimal loucengjiangli1;//
+    //小业主费用
+    @Basic
+    @Column(name = "小业主费用")
+    private BigDecimal xiaoyezhufeiyong1;//
+    //项目考核
     @Basic
-    @Column(name = "奖励金额")
-    private BigDecimal jianglijine;
+    @Column(name = "项目考核")
+    private BigDecimal xiangmukaohe1;//
+
+    /**补贴类*/
+    //岗位补贴
+    @Basic
+    @Column(name = "岗位补贴")
+    private BigDecimal gangweibutie1;//
+    //甲方补贴
+    @Basic
+    @Column(name = "甲方补贴")
+    private BigDecimal jiafangbutie1;//
+    //待岗补贴
+    @Basic
+    @Column(name = "待岗补贴")
+    private BigDecimal daigangbutie1;//
+    //固定岗位补贴
+    @Basic
+    @Column(name = "固定岗位补贴")
+    private BigDecimal gudinggangweibutie1;//
+    //打卡费用
+    @Basic
+    @Column(name = "打卡费用")
+    private BigDecimal dakafeiyong1;//
+    //超房补贴
+    @Basic
+    @Column(name = "超房补贴")
+    private BigDecimal chaofangbutie1;//
+    //双班补贴
+    @Basic
+    @Column(name = "双班补贴")
+    private BigDecimal shuangbanbutie1;//
+    //早班补贴
+    @Basic
+    @Column(name = "早班补贴")
+    private BigDecimal zaobanbutie1;//
+    //晚班补贴
+    @Basic
+    @Column(name = "晚班补贴")
+    private BigDecimal wanbanbutie1;//
+    //交通补贴
+    @Basic
+    @Column(name = "交通补贴")
+    private BigDecimal jiaotongbutie1;//
+    //食堂补贴
+    @Basic
+    @Column(name = "食堂补贴")
+    private BigDecimal shitangbutie1;//
+    //生日补贴
+    @Basic
+    @Column(name = "生日补贴")
+    private BigDecimal shengributie1;//
+    //过年补贴
+    @Basic
+    @Column(name = "过年补贴")
+    private BigDecimal guonianbutie1;//
+    //洗车补贴
+    @Basic
+    @Column(name = "洗车补贴")
+    private BigDecimal xichebutie1;//
+    //房间补贴
+    @Basic
+    @Column(name = "房间补贴")
+    private BigDecimal fangjianbutie1;//
+
+    //高温费(专项)20250731新增
+    @Basic
+    @Column(name = "高温费(专项)")
+    private BigDecimal gaowenfeizhuanxiang1;//
+
+    /**扣款类*/
+    //其他扣款
+    @Basic
+    @Column(name = "其他扣款")
+    private BigDecimal qitakoukuan1;//
+    /**【以上】营运浮动数据填报,新增时间:2024-12-10*/
+
     @Basic
     @Column(name = "提成奖金")
     private BigDecimal tichengjiangjin;
@@ -296,12 +515,30 @@ public class XinziLanyun {
     @Basic
     @Column(name = "其他扣款")
     private BigDecimal qitakoukuan;
+
+    @Basic
+    @Column(name = "日志扣款")
+    private BigDecimal rizhikoukuan;//
+    @Basic
+    @Column(name = "案例扣款")
+    private BigDecimal anlikoukuan;//
+
     @Basic
     @Column(name = "应发工资")
     private BigDecimal yingfagongzi;
+
     @Basic
     @Column(name = "社保缴纳基数")
     private BigDecimal shebaojiaonajishu;
+
+    //TODO 20250615调整,新增以下2个字段「当地最低工资」、「最低工资差额」
+    @Basic
+    @Column(name = "当地最低工资")
+    private BigDecimal dangdizuidigongzi;
+    @Basic
+    @Column(name = "最低工资差额")
+    private BigDecimal zuidigongzichae;
+
     @Basic
     @Column(name = "个人养老")
     private BigDecimal gerenyanglao;
@@ -350,9 +587,24 @@ public class XinziLanyun {
     @Basic
     @Column(name = "实发工资")
     private BigDecimal shifagongzi;
+
+    @Basic
+    @Column(name = "拆分归属记载A")
+    private String chaifenguishujizai1;
     @Basic
     @Column(name = "是否拆分金额")
     private String shifouchaifenjine;
+
+    @Basic
+    @Column(name = "拆分金额B")//本部第一笔计算工资
+    private BigDecimal chaifenjineb;
+    @Basic
+    @Column(name = "拆分金额C")//外部第二笔计算工资
+    private BigDecimal chaifenjinec;
+    @Basic
+    @Column(name = "拆分金额D")//本部绩效考核工资
+    private BigDecimal chaifenjined;
+
     @Basic
     @Column(name = "实际拆分金额")
     private BigDecimal shijichaifenjine;
@@ -365,6 +617,35 @@ public class XinziLanyun {
     @Basic
     @Column(name = "拆分归属标记3")
     private String chaifenguishubiaoji3;
+    @Basic
+    @Column(name = "拆分归属标记4")
+    private String chaifenguishubiaoji4;//
+
+    @Basic
+    @Column(name = "拆分归属标记1应发")
+    private BigDecimal chaifenguishubiaoji1yingfa;
+    @Basic
+    @Column(name = "拆分归属标记1实发")
+    private BigDecimal chaifenguishubiaoji1shifa;
+    @Basic
+    @Column(name = "拆分归属标记2应发")
+    private BigDecimal chaifenguishubiaoji2yingfa;
+    @Basic
+    @Column(name = "拆分归属标记2实发")
+    private BigDecimal chaifenguishubiaoji2shifa;
+    @Basic
+    @Column(name = "拆分归属标记3应发")
+    private BigDecimal chaifenguishubiaoji3yingfa;
+    @Basic
+    @Column(name = "拆分归属标记3实发")
+    private BigDecimal chaifenguishubiaoji3shifa;
+    @Basic
+    @Column(name = "拆分归属标记4应发")
+    private BigDecimal chaifenguishubiaoji4yingfa;
+    @Basic
+    @Column(name = "拆分归属标记4实发")
+    private BigDecimal chaifenguishubiaoji4shifa;
+
     @Basic
     @Column(name = "社保缴纳城市")
     private String shebaojiaonachengshi;
@@ -441,6 +722,19 @@ public class XinziLanyun {
     @Column(name = "服务费")
     private BigDecimal fuwufei;
 
+    //TODO 20260130调整,新增字段「人事浮动小计、营运浮动小计」
+    @Basic
+    @Column(name = "人事浮动小计")
+    private BigDecimal renshifudongxiaoji;
+    @Basic
+    @Column(name = "营运浮动小计")
+    private BigDecimal yingyunfudongxiaoji;
+
+    //TODO 20260120调整,新增字段「算薪完成时间」
+    @Basic
+    @Column(name = "算薪完成时间")
+    private String suanxinwanchengshijian;
+
 //    public String getGongzixulie() {
 //        return gongzixulie;
 //    }

+ 78 - 3
src/main/java/com/muzhi/lanyun/entity/XinzichaifenbLanyun.java

@@ -74,12 +74,51 @@ public class XinzichaifenbLanyun {
     @Basic
     @Column(name = "劳务归属2")
     private String laowuguishu2;
+    @Basic
+    @Column(name = "劳务归属3")
+    private String laowuguishu3;//
+
     @Basic
     @Column(name = "部门id")
     private String bumenid;
     @Basic
     @Column(name = "部门")
     private String bumen;
+
+    //新增字段
+    @Basic
+    @Column(name = "一级部门")
+    private String yijibumen;//
+    @Basic
+    @Column(name = "二级部门")
+    private String erjibumen;//
+    @Basic
+    @Column(name = "标准日工时")
+    private BigDecimal biaozhunrigongshi;//
+    @Basic
+    @Column(name = "固定补贴金额")
+    private BigDecimal gudingbutiejine;//
+    @Basic
+    @Column(name = "工费费外")
+    private BigDecimal gonghuifeiwai;//
+    @Basic
+    @Column(name = "是否统计日志")
+    private String shifoutongjirizhi;//
+    @Basic
+    @Column(name = "是否定额考核")
+    private String shifoudingekaohe;//
+    @Basic
+    @Column(name = "算薪方式")
+    private String suanxinfangshi;//
+
+    /**针对临时工等特殊情况的人员算薪使用*/
+    @Basic
+    @Column(name = "单价")
+    private BigDecimal danjia;//
+    @Basic
+    @Column(name = "时天月")
+    private BigDecimal shitianyue;//
+
     @Basic
     @Column(name = "职位名称")
     private String zhiweimingcheng;
@@ -234,7 +273,7 @@ public class XinzichaifenbLanyun {
     @Column(name = "高温补贴金额")
     private BigDecimal gaowenbutiejine;
     @Basic
-    @Column(name = "管理补贴金额")
+    @Column(name = "管理补贴金额")//最新改为「调扣金额」
     private BigDecimal guanlibutiejine;
     @Basic
     @Column(name = "社保补贴金额")
@@ -272,9 +311,27 @@ public class XinzichaifenbLanyun {
     @Basic
     @Column(name = "补贴金额小计")
     private BigDecimal butiejinexiaoji;
+
+    /**引用福利申请单*/
+    //荣誉奖励
     @Basic
-    @Column(name = "奖励金额")
-    private BigDecimal jianglijine;
+    @Column(name = "荣誉奖励")
+    private BigDecimal rongyujiangli;//
+
+    /**浮动表维护*/
+    //公司奖励
+    @Basic
+    @Column(name = "奖励金额:后改为「公司奖励」")
+    private BigDecimal jianglijine;//
+    //小业主费用
+    @Basic
+    @Column(name = "小业主费用")
+    private BigDecimal xiaoyezhufeiyong;//
+    //甲方奖励
+    @Basic
+    @Column(name = "甲方奖励")
+    private BigDecimal jiafangjiangli;//
+
     @Basic
     @Column(name = "提成奖金")
     private BigDecimal tichengjiangjin;
@@ -296,9 +353,18 @@ public class XinzichaifenbLanyun {
     @Basic
     @Column(name = "其他扣款")
     private BigDecimal qitakoukuan;
+
+    @Basic
+    @Column(name = "日志扣款")
+    private BigDecimal rizhikoukuan;//
+    @Basic
+    @Column(name = "案例扣款")
+    private BigDecimal anlikoukuan;//
+
     @Basic
     @Column(name = "应发工资")
     private BigDecimal yingfagongzi;
+
     @Basic
     @Column(name = "社保缴纳基数")
     private BigDecimal shebaojiaonajishu;
@@ -350,9 +416,14 @@ public class XinzichaifenbLanyun {
     @Basic
     @Column(name = "实发工资")
     private BigDecimal shifagongzi;
+
     @Basic
     @Column(name = "是否拆分金额")
     private String shifouchaifenjine;
+    @Basic
+    @Column(name = "拆分归属记载A")
+    private String chaifenguishujizai1;
+
     @Basic
     @Column(name = "实际拆分金额")
     private BigDecimal shijichaifenjine;
@@ -365,6 +436,10 @@ public class XinzichaifenbLanyun {
     @Basic
     @Column(name = "拆分归属标记3")
     private String chaifenguishubiaoji3;
+    @Basic
+    @Column(name = "拆分归属标记4")
+    private String chaifenguishubiaoji4;
+
     @Basic
     @Column(name = "社保缴纳城市")
     private String shebaojiaonachengshi;

+ 79 - 3
src/main/java/com/muzhi/lanyun/entity/XinzichaifencLanyun.java

@@ -74,12 +74,51 @@ public class XinzichaifencLanyun {
     @Basic
     @Column(name = "劳务归属2")
     private String laowuguishu2;
+    @Basic
+    @Column(name = "劳务归属3")
+    private String laowuguishu3;//
+
     @Basic
     @Column(name = "部门id")
     private String bumenid;
     @Basic
     @Column(name = "部门")
     private String bumen;
+
+    //新增字段
+    @Basic
+    @Column(name = "一级部门")
+    private String yijibumen;//
+    @Basic
+    @Column(name = "二级部门")
+    private String erjibumen;//
+    @Basic
+    @Column(name = "标准日工时")
+    private BigDecimal biaozhunrigongshi;//
+    @Basic
+    @Column(name = "固定补贴金额")
+    private BigDecimal gudingbutiejine;//
+    @Basic
+    @Column(name = "工费费外")
+    private BigDecimal gonghuifeiwai;//
+    @Basic
+    @Column(name = "是否统计日志")
+    private String shifoutongjirizhi;//
+    @Basic
+    @Column(name = "是否定额考核")
+    private String shifoudingekaohe;//
+    @Basic
+    @Column(name = "算薪方式")
+    private String suanxinfangshi;//
+
+    /**针对临时工等特殊情况的人员算薪使用*/
+    @Basic
+    @Column(name = "单价")
+    private BigDecimal danjia;//
+    @Basic
+    @Column(name = "时天月")
+    private BigDecimal shitianyue;//
+
     @Basic
     @Column(name = "职位名称")
     private String zhiweimingcheng;
@@ -234,7 +273,7 @@ public class XinzichaifencLanyun {
     @Column(name = "高温补贴金额")
     private BigDecimal gaowenbutiejine;
     @Basic
-    @Column(name = "管理补贴金额")
+    @Column(name = "管理补贴金额")//最新改为「调扣金额」
     private BigDecimal guanlibutiejine;
     @Basic
     @Column(name = "社保补贴金额")
@@ -272,9 +311,28 @@ public class XinzichaifencLanyun {
     @Basic
     @Column(name = "补贴金额小计")
     private BigDecimal butiejinexiaoji;
+
+    /**引用福利申请单*/
+    //荣誉奖励
     @Basic
-    @Column(name = "奖励金额")
-    private BigDecimal jianglijine;
+    @Column(name = "荣誉奖励")
+    private BigDecimal rongyujiangli;//
+
+    /**浮动表维护*/
+    //公司奖励
+    @Basic
+    @Column(name = "奖励金额:后改为「公司奖励」")
+    private BigDecimal jianglijine;//
+    //小业主费用
+    @Basic
+    @Column(name = "小业主费用")
+    private BigDecimal xiaoyezhufeiyong;//
+    //甲方奖励
+    @Basic
+    @Column(name = "甲方奖励")
+    private BigDecimal jiafangjiangli;//
+
+
     @Basic
     @Column(name = "提成奖金")
     private BigDecimal tichengjiangjin;
@@ -296,9 +354,18 @@ public class XinzichaifencLanyun {
     @Basic
     @Column(name = "其他扣款")
     private BigDecimal qitakoukuan;
+
+    @Basic
+    @Column(name = "日志扣款")
+    private BigDecimal rizhikoukuan;//
+    @Basic
+    @Column(name = "案例扣款")
+    private BigDecimal anlikoukuan;//
+
     @Basic
     @Column(name = "应发工资")
     private BigDecimal yingfagongzi;
+
     @Basic
     @Column(name = "社保缴纳基数")
     private BigDecimal shebaojiaonajishu;
@@ -350,9 +417,14 @@ public class XinzichaifencLanyun {
     @Basic
     @Column(name = "实发工资")
     private BigDecimal shifagongzi;
+
     @Basic
     @Column(name = "是否拆分金额")
     private String shifouchaifenjine;
+    @Basic
+    @Column(name = "拆分归属记载A")
+    private String chaifenguishujizai1;
+
     @Basic
     @Column(name = "实际拆分金额")
     private BigDecimal shijichaifenjine;
@@ -365,6 +437,10 @@ public class XinzichaifencLanyun {
     @Basic
     @Column(name = "拆分归属标记3")
     private String chaifenguishubiaoji3;
+    @Basic
+    @Column(name = "拆分归属标记4")
+    private String chaifenguishubiaoji4;
+
     @Basic
     @Column(name = "社保缴纳城市")
     private String shebaojiaonachengshi;

+ 5 - 2
src/main/java/com/muzhi/lanyun/entity/vo/DanganLanyunQuery.java

@@ -12,8 +12,8 @@ public class DanganLanyunQuery {
     // https://mc.cloudpure.cn/tianhe/tbservice/getTianheTB?page=1&limit=10
     // &name=&xmbh&xmfzr=&xmzt&sfgd=&rwStart=&rwEnd=
 
-    @ApiModelProperty(value = "部门编号,匹配查询")
-    private String bmbh;
+    @ApiModelProperty(value = "多个部门编号,匹配查询")
+    private List bmbhs;
 
     @ApiModelProperty(value = "多个人员编号,包含查询")
     private List userids;
@@ -23,4 +23,7 @@ public class DanganLanyunQuery {
 
     @ApiModelProperty(value = "计算年月,匹配查询")
     private String jsny;
+
+    @ApiModelProperty(value = "是否定额考核,匹配查询")
+    private String sfdekh;
 }

+ 2 - 0
src/main/java/com/muzhi/lanyun/entity/vo/LanyunDataVo.java

@@ -11,5 +11,7 @@ public class LanyunDataVo<T> {
     private String msg;
     private Integer currentPage;
     private Long totalCount;
+    private Float shuiqianSum;
+    private Float shifaSum;
     private List<T> data;
 }

+ 1 - 1
src/main/java/com/muzhi/lanyun/entity/vo/XinziLanyunQuery.java

@@ -13,7 +13,7 @@ public class XinziLanyunQuery {
     // &name=&xmbh&xmfzr=&xmzt&sfgd=&rwStart=&rwEnd=
 
     @ApiModelProperty(value = "部门编号,匹配查询")
-    private String bmbh;
+    private List bmbhs;
 
     @ApiModelProperty(value = "多个人员编号,包含查询")
     private List userids;

+ 12 - 0
src/main/java/com/muzhi/lanyun/mapper/ChaifenhuizongLanyunMapper.java

@@ -0,0 +1,12 @@
+package com.muzhi.lanyun.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muzhi.lanyun.entity.ChaifenhuizongLanyun;
+import com.muzhi.lanyun.entity.XinziLanyun;
+import org.springframework.stereotype.Repository;
+
+//在对应的Mapper上面继承基本的类BaseMapper
+@Repository//代表持久层,或者加入@Mapper注解
+public interface ChaifenhuizongLanyunMapper extends BaseMapper<ChaifenhuizongLanyun> {
+    //所有的CRUD操作都已经编写完成了
+}

+ 12 - 0
src/main/java/com/muzhi/lanyun/mapper/GongzichaifenbLanyunMapper.java

@@ -0,0 +1,12 @@
+package com.muzhi.lanyun.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muzhi.lanyun.entity.GongzichaifenbLanyun;
+import com.muzhi.lanyun.entity.XinzichaifenbLanyun;
+import org.springframework.stereotype.Repository;
+
+//在对应的Mapper上面继承基本的类BaseMapper
+@Repository//代表持久层,或者加入@Mapper注解
+public interface GongzichaifenbLanyunMapper extends BaseMapper<GongzichaifenbLanyun> {
+    //所有的CRUD操作都已经编写完成了
+}

+ 12 - 0
src/main/java/com/muzhi/lanyun/mapper/GongzichaifencLanyunMapper.java

@@ -0,0 +1,12 @@
+package com.muzhi.lanyun.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muzhi.lanyun.entity.GongzichaifenbLanyun;
+import com.muzhi.lanyun.entity.GongzichaifencLanyun;
+import org.springframework.stereotype.Repository;
+
+//在对应的Mapper上面继承基本的类BaseMapper
+@Repository//代表持久层,或者加入@Mapper注解
+public interface GongzichaifencLanyunMapper extends BaseMapper<GongzichaifencLanyun> {
+    //所有的CRUD操作都已经编写完成了
+}

+ 5 - 0
src/main/java/com/muzhi/lanyun/mapper/xml/ChaifenhuizongMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+        <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.muzhi.lanyun.mapper.ChaifenhuizongLanyunMapper">
+
+</mapper>

+ 5 - 0
src/main/java/com/muzhi/lanyun/mapper/xml/GongzichaifenbLanyunMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+        <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.muzhi.lanyun.mapper.GongzichaifenbLanyunMapper">
+
+</mapper>

+ 5 - 0
src/main/java/com/muzhi/lanyun/mapper/xml/GongzichaifencLanyunMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+        <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.muzhi.lanyun.mapper.GongzichaifencLanyunMapper">
+
+</mapper>

+ 36 - 0
src/main/java/com/muzhi/lanyun/service/DataTransmissionService.java

@@ -0,0 +1,36 @@
+package com.muzhi.lanyun.service;
+
+/**
+ * @Author ZhangKan
+ * @Data 15:34
+ */
+public interface DataTransmissionService {
+
+    /**
+     * 公司福利申请单写入数据库
+     * */
+    String addGongsifuli(String formInstanceId);
+
+    /**
+     * 荣誉奖励申请单写入数据库
+     * */
+    String addRongyujiangli(String formInstanceId);
+
+    /**
+     * 营运浮动金额表写入数据库
+     * */
+    String addYingyunfudong(String formInstanceId);
+
+    /**
+     * 过失单写入数据库
+     * */
+    String addGuoshidan(String formInstanceId);
+
+
+
+    //NOTE 2026-02-10新增
+    /**
+     * 考勤数据写入数据库
+     * */
+    String addKaoqin(String formInstanceId);
+}

+ 96 - 12
src/main/java/com/muzhi/lanyun/service/DingOaService.java

@@ -19,74 +19,158 @@ import java.util.Map;
  */
 public interface DingOaService {
 
-    //获取数据库中【蓝云薪资总表】实体类表数据进行前端接口调用展示数据
+    //--------------------------------------------查询----------------------------------------------------------
+
+    //获取数据库中【蓝云薪资总表A】实体类表数据进行前端接口调用展示数据
     public LanyunDataVo<XinziLanyun> getXinziLanyun(Integer currentPage, Integer pageSize, XinziLanyunQuery xinziLanyunQuery);
 
-    //获取数据库中【拆分A表】实体类表数据进行前端接口调用展示数据
+    //获取数据库中【拆分B表】实体类表数据进行前端接口调用展示数据
     public LanyunDataVo<XinzichaifenbLanyun> getChaifenbLanyun(Integer currentPage, Integer pageSize, XinziLanyunQuery xinziLanyunQuery);
 
-    //获取数据库中【拆分B表】实体类表数据进行前端接口调用展示数据
+    //获取数据库中【拆分C表】实体类表数据进行前端接口调用展示数据
     public LanyunDataVo<XinzichaifencLanyun> getChaifencLanyun(Integer currentPage, Integer pageSize, XinziLanyunQuery xinziLanyunQuery);
 
-
     /**
      * 蓝云档案汇总表
      * */
     //获取数据库中【蓝云档案汇总表】实体类表数据进行前端接口调用展示数据
     public LanyunDataVo<DanganLanyun> getDanganLanyun(Integer currentPage, Integer pageSize, DanganLanyunQuery danganLanyunQuery);
 
+
+    //--------------------------------------------导入----------------------------------------------------------
     /**
      * ⬇⬇⬇宜搭批量导入表单写入数据库的方法⬇⬇⬇
      * */
+    //导入人员档案
+    R importRYDA(String data, String formInstId);
+
     //导入薪资档案
     R importXZDA(String data, String formInstId);
+    //清除薪资档案
+    R deleteXZDA(String jisuannianyue, String shenfenzhenghao);
 
     //导入浮动数据
     R importFDSJ(String data, String formInstId);
+    //清除浮动数据
+    R deleteFDSJ(long jisuannianyue, String shenfenzhenghao);
 
     //导入社保公积金
     R importSBGJJ(String data, String formInstId);
+    //清除社保公积金
+    R deleteSBGJJ(long jisuannianyue, String shenfenzhenghao);
+
+    //导入绩效考核
+    R importJXKH(String data, String formInstId);
+
+    //导入个税调差
+    R importGSTC(String data, String formInstId);
+
+    //导入日志案例扣款
+    R importRZALKK(String data, String formInstId);
+
+    //导入月度处罚单
+    R importYDCFD(String data, String formInstId);
+
+    /**导入薪资结果A表*/
+    R importXZJG(String data, String formInstId);
+
+    //【测算使用,已停用】导入工时算薪
+    R importGSSX(String data, String formInstId);
+
+    //【20250509新增】导入考勤数据//STOP 功能没问题,但已停用
+    R importKQ(String data, String formInstId);
     /**
      * ⬆⬆⬆宜搭批量导入表单写入数据库的方法⬆⬆⬆
      * */
 
+
+    //--------------------------------------------同步----------------------------------------------------------
     //获取钉钉组织架构人员信息-同步至宜搭人员信息表
     String getRenyuan();
 
-    //获取宜搭人员信息表,更新宜搭人员状态
+    //【停用】获取宜搭人员信息表,更新宜搭人员状态
+    /**【20251121停用,改为获取人员离开架构时间接口】*/
     String getRenyuanStatus();
 
-    //计算同步考勤数据-同步至宜搭应出勤天数表单
+    //获取钉钉人员离开架构时间,更新宜搭人员档案
+    /**【20251121新增,改为获取人员离开架构时间接口】*/
+    String getRenyuanLeaveTime();
+
+    //计算同步考勤数据-同步至宜搭应出勤天数表单(同步当月数据)
     String tongbuKaoqin();
 
+    //计算同步考勤数据-同步至宜搭应出勤天数表单(每月1、5日同步上月考勤)
+    String tongbuKaoqin2();
+
+
+    //复制薪资档案(每月1日复制上月的薪资档案)
+    String copyXinzidangan();
+
+
+    //--------------------------------------------废弃功能----------------------------------------------------------
     //批量修改档案及浮动数据方法
     R updateDangan(JSONObject obj);
 
     //批量修改工资核算A表数据
     R updateXinziA(JSONObject obj);
 
+
+    //--------------------------------------------算薪过程----------------------------------------------------------
     /**
      * ======计算同步薪资总表数据-同步至宜搭【工资核算表(A)】表单======
      */
-    R tongbuXinzihesuanA(JSONObject obj);
+    R tongbuXinzihesuanA_1(JSONObject obj);//NOTE 原始方法
+    void tongbuXinzihesuanA(JSONObject obj);//NOTE 异步执行
 
     /**
-     * ======拆分金额-薪资总表数据-同步至宜搭【工资核算表(B)(C)】表单======
+     * ======拆分金额-薪资总表数据-同步至宜搭【工资核算表(A)】表单======
      */
-    R chaifenjine(JSONObject obj);
+    R chaifenjine_1(JSONObject obj);//NOTE 原始方法
+    void chaifenjine(JSONObject obj);//NOTE 异步执行
 
     /**
-     * ======拆分归属-薪资总表数据-同步至宜搭【工资核算表(B)(C)】表单======
+     * ======拆分归属-薪资总表数据-同步至宜搭【工资核算表(A)】表单======
      */
-    R chaifenguishu(JSONObject obj);
+    R chaifenguishu_1(JSONObject obj);//NOTE 原始方法
+    void chaifenguishu(JSONObject obj);//NOTE 异步执行
+
+    /**
+     * ======定额考核-绩效工资-同步至宜搭【工资核算表(A)】表单、包含拆分归属动作(考核工资申请单的拆分汇总金额写入数据库)======
+     */
+    R jixiaogongzi(JSONObject obj);
+
+    /**
+     * 创建【发薪申请】流程表单
+     * */
+    R createFaxinshenqing(JSONObject obj);
+
+    /**
+     * 创建【考核工资申请】流程表单
+     * */
+    R createKaohegongzishenqing(JSONObject obj);
 
+    /**
+     * 项目点薪资从数据库回写【薪资核算A表】
+     * */
+    R writeBackXinzizihesuanA(JSONObject obj);
+
+
+
+    //--------------------------------------------废弃功能----------------------------------------------------------
     /**
      * 表单打开时加载(默认加载出所属部门)【废弃,未启用】
      */
     List getBumen(String userid, String deptid);
 
     /**
-     * 表单提交时校验(入职登记)
+     * 表单提交时校验(入职登记)【废弃,未启用】
      */
     Map getRZJY(String processInstances);
+
+
+
+    //--------------------------------------------考勤数据自动记录,和钉钉OA审批单相关----------------------------------------------------------
+    /**----------【连接器】----------*/
+    /**更新宜搭考勤数据表的缺卡次数*/
+    R updateYidaKaoqin(String processInstanceId);
 }

+ 11 - 0
src/main/java/com/muzhi/lanyun/service/TimerService.java

@@ -0,0 +1,11 @@
+package com.muzhi.lanyun.service;
+
+/**
+ * @Author ZhangKan
+ * @Data 15:34
+ */
+public interface TimerService {
+
+    //每日考勤定时同步
+    String addKaoqinDay();
+}

+ 12 - 3
src/main/java/com/muzhi/lanyun/service/impl/AccessTokenServiceImpl.java

@@ -44,11 +44,20 @@ import java.util.TreeMap;
 public class AccessTokenServiceImpl implements AccessTokenService {
 
     //蓝云
+
+    //最早使用,现在只由NC开发使用
+//    //APPKEY
+//    private static String APPKEY = "dingfwn4kpmb4g3dy4fj";
+//    //APPSECRET
+//    private static String APPSECRET = "OwdkUc9nvBivpwsg0AiaEcyWLtZ678fskqBJwP7B5CQNrycIoyKuWslFTCOOaZG4";
+//    //AgenthId:2871877887
+
+    //最新增加应用
     //APPKEY
-    private static String APPKEY = "dingfwn4kpmb4g3dy4fj";
+    private static String APPKEY = "dingxv6fjc70behebefy";
     //APPSECRET
-    private static String APPSECRET = "OwdkUc9nvBivpwsg0AiaEcyWLtZ678fskqBJwP7B5CQNrycIoyKuWslFTCOOaZG4";
-    //AgenthId:2871877887
+    private static String APPSECRET = "dTYB0Kid8W0jHtaA3Iki0DuQPmf74_-CBIf7eAVym1O5inVJgdXP9k3YP8vHzJqQ";
+    //AgenthId:4104119449
 
     public static String accessToken = null;
 

Разница между файлами не показана из-за своего большого размера
+ 1226 - 0
src/main/java/com/muzhi/lanyun/service/impl/DataTransmissionServiceImpl.java


Разница между файлами не показана из-за своего большого размера
+ 15985 - 4821
src/main/java/com/muzhi/lanyun/service/impl/DingOaServiceImpl.java


Разница между файлами не показана из-за своего большого размера
+ 1256 - 0
src/main/java/com/muzhi/lanyun/service/impl/TimerServiceImpl.java


+ 7 - 3
src/main/resources/application.properties

@@ -1,5 +1,9 @@
-server.port=8109
-server.servlet.context-path=/lanyun
+#???????
+#server.port=8999
+
+#???????
+server.port=8118
+server.servlet.context-path=/api/lanyun
 
 server.tomcat.uri-encoding=UTF-8
 
@@ -17,7 +21,7 @@ server.tomcat.uri-encoding=UTF-8
 
 # 云璞【47.98.130.40服务器】测试数据库
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-spring.datasource.url=jdbc:mysql://47.97.181.40:3306/dingtalk?serverTimezone=GMT%2B8
+spring.datasource.url=jdbc:mysql://47.110.74.198:3306/dingtalk?serverTimezone=GMT%2B8
 spring.datasource.username=root
 spring.datasource.password=cp-root@2022++
 

Разница между файлами не показана из-за своего большого размера
+ 408 - 35
src/test/java/com/muzhi/lanyun/APITest/Test1.java


Разница между файлами не показана из-за своего большого размера
+ 3983 - 0
src/test/java/com/muzhi/lanyun/APITest/Test2.java


+ 7 - 3
target/classes/application.properties

@@ -1,5 +1,9 @@
-server.port=8109
-server.servlet.context-path=/lanyun
+#???????
+#server.port=8999
+
+#???????
+server.port=8118
+server.servlet.context-path=/api/lanyun
 
 server.tomcat.uri-encoding=UTF-8
 
@@ -17,7 +21,7 @@ server.tomcat.uri-encoding=UTF-8
 
 # ��象�47.98.130.40���������������ݿ�
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-spring.datasource.url=jdbc:mysql://47.97.181.40:3306/dingtalk?serverTimezone=GMT%2B8
+spring.datasource.url=jdbc:mysql://47.110.74.198:3306/dingtalk?serverTimezone=GMT%2B8
 spring.datasource.username=root
 spring.datasource.password=cp-root@2022++
 

BIN
target/classes/com/muzhi/lanyun/config/AsyncConfig.class


BIN
target/classes/com/muzhi/lanyun/controller/DataTransmissionController.class


BIN
target/classes/com/muzhi/lanyun/controller/DingOaController.class


BIN
target/classes/com/muzhi/lanyun/controller/TimerController.class


BIN
target/classes/com/muzhi/lanyun/entity/ChaifenhuizongLanyun.class


BIN
target/classes/com/muzhi/lanyun/entity/DanganLanyun.class


BIN
target/classes/com/muzhi/lanyun/entity/GongzichaifenbLanyun.class


BIN
target/classes/com/muzhi/lanyun/entity/GongzichaifencLanyun.class


BIN
target/classes/com/muzhi/lanyun/entity/XinziLanyun.class


BIN
target/classes/com/muzhi/lanyun/entity/XinzichaifenbLanyun.class


BIN
target/classes/com/muzhi/lanyun/entity/XinzichaifencLanyun.class


BIN
target/classes/com/muzhi/lanyun/entity/vo/DanganLanyunQuery.class


BIN
target/classes/com/muzhi/lanyun/entity/vo/LanyunDataVo.class


BIN
target/classes/com/muzhi/lanyun/entity/vo/XinziLanyunQuery.class


BIN
target/classes/com/muzhi/lanyun/mapper/ChaifenhuizongLanyunMapper.class


BIN
target/classes/com/muzhi/lanyun/mapper/GongzichaifenbLanyunMapper.class


BIN
target/classes/com/muzhi/lanyun/mapper/GongzichaifencLanyunMapper.class


BIN
target/classes/com/muzhi/lanyun/service/DataTransmissionService.class


BIN
target/classes/com/muzhi/lanyun/service/DingOaService.class


BIN
target/classes/com/muzhi/lanyun/service/TimerService.class


BIN
target/classes/com/muzhi/lanyun/service/impl/AccessTokenServiceImpl.class


BIN
target/classes/com/muzhi/lanyun/service/impl/DataTransmissionServiceImpl.class


BIN
target/classes/com/muzhi/lanyun/service/impl/DingOaServiceImpl.class


BIN
target/classes/com/muzhi/lanyun/service/impl/TimerServiceImpl.class


BIN
target/springboot-lanyun.jar


BIN
target/springboot-lanyun.jar.original


Разница между файлами не показана из-за своего большого размера
+ 0 - 67
target/surefire-reports/TEST-com.muzhi.lanyun.TestApplicationTests.xml


+ 0 - 4
target/surefire-reports/com.muzhi.lanyun.TestApplicationTests.txt

@@ -1,4 +0,0 @@
--------------------------------------------------------------------------------
-Test set: com.muzhi.lanyun.TestApplicationTests
--------------------------------------------------------------------------------
-Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.215 s - in com.muzhi.lanyun.TestApplicationTests

BIN
target/test-classes/com/muzhi/lanyun/APITest/Test1.class


BIN
target/test-classes/com/muzhi/lanyun/APITest/Test2.class