zhouyy 3 هفته پیش
والد
کامیت
f1edbc2a8a

+ 5 - 4
fhKeeper/formulahousekeeper/collectdata/src/main/java/com/management/collectdata/controller/DataCollectController.java

@@ -43,7 +43,7 @@ public class DataCollectController {
 
     static {
         HikariConfig sqlServerConfig = new HikariConfig();
-        sqlServerConfig.setJdbcUrl("jdbc:sqlserver://192.168.0.174:1433;databaseName=DHG2;encrypt=true;trustServerCertificate=true");
+        sqlServerConfig.setJdbcUrl("jdbc:sqlserver://192.168.0.174:1433;databaseName=UFDATA_001_2023;encrypt=true;trustServerCertificate=true");
         sqlServerConfig.setUsername("gongshi");
         sqlServerConfig.setPassword("Sgh-110c");
         sqlServerConfig.setMaximumPoolSize(5);
@@ -340,7 +340,7 @@ public class DataCollectController {
 
     @RequestMapping("/getWorkDayDataList")
     public List<UserFvTime> getWorkDayDataList(@RequestBody PageBO pageBO) {
-        String sqlQuery = " select id,emp_no,attendance_date,earliest_clock_date,last_clock_date,worktime_total_hour,overtime_total_hour " +
+        String sqlQuery = " select id,emp_no,emp_name,attendance_date,earliest_clock_date,last_clock_date,worktime_total_hour,overtime_total_hour " +
                 " from att_work_hour_day  where create_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)  order by id limit ?,? ";
         List<UserFvTime> resList = new ArrayList<>();
         SimpleDateFormat sdfAll = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -355,6 +355,7 @@ public class DataCollectController {
                 while (resultSet.next()) {
                     UserFvTime userFvTime = new UserFvTime();
                     userFvTime.setCompanyId(companyId);
+                    userFvTime.setName(resultSet.getString("emp_name"));
                     userFvTime.setProcinstId(resultSet.getString("id"));
                     userFvTime.setUserId(resultSet.getString("emp_no"));
                     userFvTime.setWorkDate(null==resultSet.getDate("attendance_date")?null:LocalDate.parse(sdfYmd.format(resultSet.getDate("attendance_date")), DateTimeFormatter.ofPattern("yyyy-MM-dd")));
@@ -379,7 +380,7 @@ public class DataCollectController {
 
     @RequestMapping("/getLeaveSheetDataSum")
     public String getLeaveSheetDataSum() {
-        String sqlCount = "select count(*) from att_holiday_leave_order where audit_status = 3 and is_delete = 0 and create_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)";
+        String sqlCount = "select count(*) from att_holiday_leave_order where audit_status = 3 and is_delete = 0 and create_date >= DATE_SUB(CURDATE(), INTERVAL 14 DAY)";
         int totalCount = 0;
         try (Connection connection = mysqlDataSource.getConnection()) {
             PreparedStatement countStmt = connection.prepareStatement(sqlCount);
@@ -403,7 +404,7 @@ public class DataCollectController {
                 " from att_holiday_leave_order ahlo " +
                 " left join emp_info eie on ahlo.emp_origin_id = eie.origin_id " +
                 " left join emp_info eic on ahlo.create_id = eic.origin_id " +
-                " where ahlo.audit_status = 3 and ahlo.is_delete = 0 and ahlo.create_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) order by ahlo.id limit ?,? ";
+                " where ahlo.audit_status = 3 and ahlo.is_delete = 0 and ahlo.create_date >= DATE_SUB(CURDATE(), INTERVAL 14 DAY) order by ahlo.id limit ?,? ";
         SimpleDateFormat sdfAll = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         SimpleDateFormat sdfYmd = new SimpleDateFormat("yyyy-MM-dd");
         List<LeaveSheet> resList = new ArrayList<>();

+ 3 - 0
fhKeeper/formulahousekeeper/collectdata/src/main/java/com/management/collectdata/entity/UserFvTime.java

@@ -59,6 +59,9 @@ public class UserFvTime extends Model<UserFvTime> {
     @TableField("cancel_normal")
     private Integer cancelNormal;
 
+    @TableField(exist = false)
+    private String name;
+
 
     @Override
     protected Serializable pkVal() {

+ 11 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/BillServiceImpl.java

@@ -9,12 +9,14 @@ import com.management.platform.mapper.BillMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.service.BillService;
 import com.management.platform.util.HttpRespMsg;
+import org.apache.commons.codec.binary.Hex;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.security.SecureRandom;
 import java.text.SimpleDateFormat;
 import java.util.Collections;
 import java.util.Date;
@@ -36,6 +38,15 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements Bi
     @Resource
     private UserMapper userMapper;
 
+    public static void main(String[] args) {
+        SecureRandom secureRandom = new SecureRandom();
+        // 生成16字节的随机数据
+        byte[] randomBytes = new byte[16];
+        secureRandom.nextBytes(randomBytes);
+        String hex = Hex.encodeHexString(randomBytes).toUpperCase();
+        System.out.println(hex);
+    }
+
 
     @Override
     public HttpRespMsg getPrepayId(Integer id, HttpServletRequest request) {

+ 65 - 41
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/DataCollectTask.java

@@ -190,6 +190,7 @@ public class DataCollectTask {
 
 
     @Scheduled(cron = "0 0 1 * * ?")
+//    @Scheduled(cron = "0 05 16 * * ?")
     @Async
     public void sqlServerTask() {
         RestTemplate restTemplate = new RestTemplate();
@@ -262,6 +263,7 @@ public class DataCollectTask {
     }
 
     @Scheduled(cron = "0 30 1 * * ?")
+//@Scheduled(cron = "0 33 16 * * ?")
     public void workDayTask(){
         RestTemplate restTemplate = new RestTemplate();
         String sumUrl = PREFIX_URL+"/dataCollect/getWorkDayDataSum";
@@ -305,18 +307,24 @@ public class DataCollectTask {
                         List<UserFvTime> dataList = listResponse.getBody();
                         if(org.apache.commons.collections.CollectionUtils.isNotEmpty(dataList)){
                             for (UserFvTime userFvTime : dataList) {
+                                if(StringUtils.isBlank(userFvTime.getProcinstId())){
+                                    System.out.println(userFvTime);
+                                }
                                 User tmp = userMap.get(userFvTime.getUserId());
+                                if(null == tmp){
+                                    System.out.println("缺失id=== "+userFvTime.getUserId()+",缺失名字=== "+userFvTime.getName());
+                                }
                                 userFvTime.setUserId(null==tmp?null:tmp.getId());
                             }
-                            List<UserFvTime> realDataList = dataList.stream().filter(t -> null != t.getUserId()).collect(Collectors.toList());
+                            List<UserFvTime> realDataList = dataList.stream().filter(t -> StringUtils.isNotBlank(t.getUserId())).collect(Collectors.toList());
                             if(!CollectionUtils.isEmpty(realDataList)){
-                                List<String> collect = dataList.stream().map(UserFvTime::getProcinstId).distinct().collect(Collectors.toList());
+                                List<String> collect = realDataList.stream().map(UserFvTime::getProcinstId).distinct().collect(Collectors.toList());
                                 List<String> existIds = userFvTimeMapper.getExistIds(collect,specialCompanyId);
                                 if(!CollectionUtils.isEmpty(existIds)){
-                                    toUpdateList.addAll(dataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-                                    toAddList.addAll(dataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                    toUpdateList.addAll(realDataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                    toAddList.addAll(realDataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
                                 }else{
-                                    toAddList.addAll(dataList);
+                                    toAddList.addAll(realDataList);
                                 }
                                 if(!CollectionUtils.isEmpty(toAddList)){
                                     userFvTimeMapper.batchInsertCollect(toAddList);
@@ -342,6 +350,7 @@ public class DataCollectTask {
     }
 
     @Scheduled(cron = "0 0 2 * * ?")
+//@Scheduled(cron = "0 43 16 * * ?")
     @Async
     public void leaveSheetTask(){
         RestTemplate restTemplate = new RestTemplate();
@@ -390,23 +399,31 @@ public class DataCollectTask {
                                 User opTmp = userMap.get(leaveSheet.getOperatorId());
                                 leaveSheet.setOwnerId(null==ownerTmp?null:ownerTmp.getId());
                                 leaveSheet.setOperatorId(null==opTmp?null:opTmp.getId());
+                                if(null != ownerTmp && null == opTmp){
+                                    leaveSheet.setOperatorId(ownerTmp.getId());
+                                }
+
                             }
-                            List<String> collect = dataList.stream().map(LeaveSheet::getProcinstId).distinct().collect(Collectors.toList());
-                            List<String> existIds = leaveSheetMapper.getExistIds(collect,specialCompanyId);
-                            if(!CollectionUtils.isEmpty(existIds)){
-                                toUpdateList.addAll(dataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-                                toAddList.addAll(dataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-                            }else{
-                                toAddList.addAll(dataList);
-                            }
-                            if(!CollectionUtils.isEmpty(toAddList)){
-                                leaveSheetMapper.batchInsert(toAddList);
-                            }
-                            if(!CollectionUtils.isEmpty(toUpdateList)){
-                                for (LeaveSheet tmp : toUpdateList) {
-                                    leaveSheetMapper.updateById(tmp);
+                            List<LeaveSheet> realDataList = dataList.stream().filter(t -> StringUtils.isNotBlank(t.getOwnerId())).collect(Collectors.toList());
+                            if(!CollectionUtils.isEmpty(realDataList)){
+                                List<String> collect = realDataList.stream().map(LeaveSheet::getProcinstId).distinct().collect(Collectors.toList());
+                                List<String> existIds = leaveSheetMapper.getExistIds(collect,specialCompanyId);
+                                if(!CollectionUtils.isEmpty(existIds)){
+                                    toUpdateList.addAll(realDataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                    toAddList.addAll(realDataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                }else{
+                                    toAddList.addAll(realDataList);
+                                }
+                                if(!CollectionUtils.isEmpty(toAddList)){
+                                    leaveSheetMapper.batchInsert(toAddList);
+                                }
+                                if(!CollectionUtils.isEmpty(toUpdateList)){
+                                    for (LeaveSheet tmp : toUpdateList) {
+                                        leaveSheetMapper.updateById(tmp);
+                                    }
                                 }
                             }
+
                             toUpdateList.clear();
                             toAddList.clear();
                         }
@@ -422,6 +439,7 @@ public class DataCollectTask {
     }
 
     @Scheduled(cron = "0 30 2 * * ?")
+//@Scheduled(cron = "0 46 16 * * ?")
     @Async
     public void sqlServerProjectTypeTask() {
         RestTemplate restTemplate = new RestTemplate();
@@ -505,6 +523,7 @@ public class DataCollectTask {
     }
 
     @Scheduled(cron = "0 0 3 * * ?")
+//@Scheduled(cron = "0 48 16 * * ?")
     @Async
     public void sqlServerProjectTask() {
         RestTemplate restTemplate = new RestTemplate();
@@ -655,6 +674,7 @@ public class DataCollectTask {
     }
 
     @Scheduled(cron = "0 30 3 * * ?")
+//@Scheduled(cron = "0 20 17 * * ?")
     @Async
     public void businessTripTask(){
         RestTemplate restTemplate = new RestTemplate();
@@ -704,32 +724,36 @@ public class DataCollectTask {
                                 User ownerTmp = userMap.get(businessTrip.getOwnerId());
                                 businessTrip.setOwnerId(null==ownerTmp?null:ownerTmp.getId());
                             }
-                            List<String> collect = dataList.stream().map(BusinessTrip::getProcinstId).distinct().collect(Collectors.toList());
-                            List<String> existIds = businessTripMapper.getExistIds(collect,specialCompanyId);
-                            if(!CollectionUtils.isEmpty(existIds)){
-                                toUpdateList.addAll(dataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-                                toAddList.addAll(dataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-                            }else{
-                                toAddList.addAll(dataList);
-                            }
-                            if(!CollectionUtils.isEmpty(toAddList)){
+                            List<BusinessTrip> realDataList = dataList.stream().filter(t -> StringUtils.isNotBlank(t.getOwnerId())).collect(Collectors.toList());
+                            if(!CollectionUtils.isEmpty(realDataList)){
+                                List<String> collect = realDataList.stream().map(BusinessTrip::getProcinstId).distinct().collect(Collectors.toList());
+                                List<String> existIds = businessTripMapper.getExistIds(collect,specialCompanyId);
+                                if(!CollectionUtils.isEmpty(existIds)){
+                                    toUpdateList.addAll(realDataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                    toAddList.addAll(realDataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                }else{
+                                    toAddList.addAll(realDataList);
+                                }
+                                if(!CollectionUtils.isEmpty(toAddList)){
 //                                businessTripMapper.batchInsert(toAddList);
-                                for (BusinessTrip businessTrip : toAddList) {
-                                    businessTripMapper.insert(businessTrip);
-                                    BustripProject bustripProject = new BustripProject();
-                                    bustripProject.setBustripId(businessTrip.getId());
-                                    Project project = projectCodeMap.get(businessTrip.getCCcxmNo());
-                                    bustripProject.setProjectId(null == project?null:project.getId());
-                                    bustripProject.setStartDate(businessTrip.getStartDate());
-                                    bustripProject.setEndDate(businessTrip.getEndDate());
-                                    bustripProjectMapper.insert(bustripProject);
+                                    for (BusinessTrip businessTrip : toAddList) {
+                                        businessTripMapper.insert(businessTrip);
+                                        BustripProject bustripProject = new BustripProject();
+                                        bustripProject.setBustripId(businessTrip.getId());
+                                        Project project = projectCodeMap.get(businessTrip.getCCcxmNo());
+                                        bustripProject.setProjectId(null == project?null:project.getId());
+                                        bustripProject.setStartDate(businessTrip.getStartDate());
+                                        bustripProject.setEndDate(businessTrip.getEndDate());
+                                        bustripProjectMapper.insert(bustripProject);
+                                    }
                                 }
-                            }
-                            if(!CollectionUtils.isEmpty(toUpdateList)){
-                                for (BusinessTrip tmp : toUpdateList) {
-                                    businessTripMapper.updateById(tmp);
+                                if(!CollectionUtils.isEmpty(toUpdateList)){
+                                    for (BusinessTrip tmp : toUpdateList) {
+                                        businessTripMapper.updateById(tmp);
+                                    }
                                 }
                             }
+
                             toUpdateList.clear();
                             toAddList.clear();
                         }