Переглянути джерело

数据拉取定时任务、逻辑补充

zhouyy 2 місяців тому
батько
коміт
f1f94b34bf

+ 14 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/FinanceMonthlyWorktimeController.java

@@ -1,10 +1,15 @@
 package com.management.platform.controller;
 
 
+import com.management.platform.service.FinanceMonthlyWorktimeService;
+import com.management.platform.util.HttpRespMsg;
 import org.springframework.web.bind.annotation.RequestMapping;
-
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * <p>
  *  前端控制器
@@ -17,5 +22,13 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/finance-monthly-worktime")
 public class FinanceMonthlyWorktimeController {
 
+    @Resource
+    private FinanceMonthlyWorktimeService financeMonthlyWorktimeService;
+
+    @RequestMapping("/send")
+    public HttpRespMsg send(@RequestParam("fmwId")String fmwId, HttpServletRequest request) {
+        return financeMonthlyWorktimeService.send(fmwId,request);
+    }
+
 }
 

+ 5 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/FmwDetailMapper.java

@@ -2,6 +2,10 @@ package com.management.platform.mapper;
 
 import com.management.platform.entity.FmwDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.vo.TisTimeVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface FmwDetailMapper extends BaseMapper<FmwDetail> {
 
+    List<TisTimeVO> getTisTime(@Param("fmwId") String fmwId);
 }

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/FinanceMonthlyWorktimeService.java

@@ -2,6 +2,9 @@ package com.management.platform.service;
 
 import com.management.platform.entity.FinanceMonthlyWorktime;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.util.HttpRespMsg;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface FinanceMonthlyWorktimeService extends IService<FinanceMonthlyWorktime> {
 
+    HttpRespMsg send(String fmwId, HttpServletRequest request);
 }

+ 61 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceMonthlyWorktimeServiceImpl.java

@@ -1,10 +1,25 @@
 package com.management.platform.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.entity.FinanceMonthlyWorktime;
+import com.management.platform.entity.User;
+import com.management.platform.entity.vo.TisTimeVO;
 import com.management.platform.mapper.FinanceMonthlyWorktimeMapper;
+import com.management.platform.mapper.FmwDetailMapper;
+import com.management.platform.mapper.UserMapper;
 import com.management.platform.service.FinanceMonthlyWorktimeService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.task.DataCollectTask;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.http.*;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -17,4 +32,49 @@ import org.springframework.stereotype.Service;
 @Service
 public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthlyWorktimeMapper, FinanceMonthlyWorktime> implements FinanceMonthlyWorktimeService {
 
+    @Resource
+    private FinanceMonthlyWorktimeMapper financeMonthlyWorktimeMapper;
+
+    @Resource
+    private FmwDetailMapper fmwDetailMapper;
+
+    @Resource
+    private UserMapper userMapper;
+    @Override
+    public HttpRespMsg send(String fmwId, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        String userId = request.getHeader("Token");
+        User user = userMapper.selectById(userId);
+        String dateStr = "currentDate";//TODO 填充日期
+        FinanceMonthlyWorktime financeMonthlyWorktime = financeMonthlyWorktimeMapper.selectById(fmwId);
+        if(null == financeMonthlyWorktime){
+            httpRespMsg.setError("未找到当前内容");
+            return httpRespMsg;
+        }
+        if(0 == financeMonthlyWorktime.getStatus()){
+            httpRespMsg.setError("未定稿,无法发送");
+            return httpRespMsg;
+        }
+
+        List<TisTimeVO> timeVOList = fmwDetailMapper.getTisTime(fmwId);
+
+        RestTemplate restTemplate = new RestTemplate();
+        String insertUrl = DataCollectTask.PREFIX_URL +"/dataCollect/insertCisData";
+        if(!CollectionUtils.isEmpty(timeVOList)){
+            timeVOList.forEach(t->t.setDateStr(dateStr));
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
+            Map<String, Object> requestBody = new HashMap<>();
+            requestBody.put("tisList", timeVOList);
+            HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers);
+            ResponseEntity<String> tisResponse = restTemplate.exchange(insertUrl, HttpMethod.POST, requestEntity, String.class);
+            if (tisResponse.getStatusCode() == HttpStatus.OK) {
+//                System.out.println("插入成功");
+            }else{
+                httpRespMsg.setError("发送失败");
+            }
+        }
+
+        return httpRespMsg;
+    }
 }

+ 37 - 19
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/DataCollectTask.java

@@ -2,9 +2,9 @@ package com.management.platform.task;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.management.platform.entity.*;
-import com.management.platform.entity.vo.TisTimeVO;
 import com.management.platform.mapper.*;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.*;
 import org.springframework.scheduling.annotation.Async;
@@ -39,7 +39,7 @@ public class DataCollectTask {
     @Resource
     private ProjectCategoryMapper projectCategoryMapper;
 
-    private static final String PREFIX_URL = "http://58.210.104.138:10020";
+    public static final String PREFIX_URL = "http://58.210.104.138:10020";
 
     private static final int specialCompanyId = 7536;
 
@@ -53,6 +53,8 @@ public class DataCollectTask {
 
     @Resource
     private FmwDetailMapper fmwDetailMapper;
+    @Autowired
+    private FinanceMonthlyWorktimeMapper financeMonthlyWorktimeMapper;
 
 
 //    private static HikariDataSource sqlServerDataSource;
@@ -71,10 +73,41 @@ public class DataCollectTask {
         RestTemplate restTemplate = new RestTemplate();
         String insertUrl = PREFIX_URL+"/dataCollect/insertCisData";
         SimpleDateFormat sdfYmd = new SimpleDateFormat("yyyy-MM-dd");
+        SimpleDateFormat sdfYm = new SimpleDateFormat("yyyy-MM");
         Date date = new Date();
+        String dateYm = sdfYm.format(date);
+
+        List<FinanceMonthlyWorktime> financeMonthlyWorktimes = financeMonthlyWorktimeMapper.selectList(new LambdaQueryWrapper<FinanceMonthlyWorktime>()
+                .eq(FinanceMonthlyWorktime::getCompanyId, specialCompanyId)
+                .eq(FinanceMonthlyWorktime::getYmonth, dateYm)
+                .eq(FinanceMonthlyWorktime::getStatus, 1)
+        );
+        if(!CollectionUtils.isEmpty(financeMonthlyWorktimes)){
+//            for (FinanceMonthlyWorktime financeMonthlyWorktime : financeMonthlyWorktimes) {
+////                sdfYmd.format(financeMonthlyWorktime.get)
+//                List<TisTimeVO> timeVOList = fmwDetailMapper.getTisTimeByDateYm(financeMonthlyWorktime.getId());
+//                if(!CollectionUtils.isEmpty(timeVOList)){
+//                    timeVOList.forEach(t->t.setDateStr(dateStr));
+//                    HttpHeaders headers = new HttpHeaders();
+//                    headers.setContentType(MediaType.APPLICATION_JSON);
+//                    Map<String, Object> requestBody = new HashMap<>();
+//                    requestBody.put("tisList", timeVOList);
+//                    HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers);
+//
+//                    ResponseEntity<String> tisResponse = restTemplate.exchange(insertUrl, HttpMethod.POST, requestEntity, String.class);
+//                    if (tisResponse.getStatusCode() == HttpStatus.OK) {
+//                        System.out.println("插入成功");
+//                    }else{
+//                        System.out.println(dateStr + "插入失败");
+//                    }
+//                }
+//            }
+
+        }
+
         String dateStr = sdfYmd.format(date);
-//        List<TisTimeVO> timeVOList = fmwDetailMapper.getTisTimeByDate(specialCompanyId,dateStr);
-        List<TisTimeVO> timeVOList =  reportMapper.getTisTimeByDate(specialCompanyId,dateStr);
+//        List<TisTimeVO> timeVOList = fmwDetailMapper.getTisTimeByDateYm(specialCompanyId,dateStr);
+//        List<TisTimeVO> timeVOList =  reportMapper.getTisTimeByDate(specialCompanyId,dateStr);
 
 //        for (TisTimeVO tisTimeVO : timeVOList) {
 //            String sqlQuery = "select top 1 iRealCOID from ca_batchmap where cMOCode = ? and iMOSubSN = ? ";
@@ -91,21 +124,6 @@ public class DataCollectTask {
 //                System.err.println("数据库操作错误: " + e.getMessage());
 //            }
 //        }
-        if(!CollectionUtils.isEmpty(timeVOList)){
-            timeVOList.forEach(t->t.setDateStr(dateStr));
-            HttpHeaders headers = new HttpHeaders();
-            headers.setContentType(MediaType.APPLICATION_JSON);
-            Map<String, Object> requestBody = new HashMap<>();
-            requestBody.put("tisList", timeVOList);
-            HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers);
-
-            ResponseEntity<String> tisResponse = restTemplate.exchange(insertUrl, HttpMethod.POST, requestEntity, String.class);
-            if (tisResponse.getStatusCode() == HttpStatus.OK) {
-                System.out.println("插入成功");
-            }else{
-                System.out.println(dateStr + "插入失败");
-            }
-        }
 
 //        for (TisTimeVO tisTimeVO : timeVOList) {
 //            String sqlQuery = "select top 1 iRealCOID from ca_batchmap where cMOCode = ? and iMOSubSN = ? ";

+ 13 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/FmwDetailMapper.xml

@@ -0,0 +1,13 @@
+<?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.management.platform.mapper.FmwDetailMapper">
+
+    <select id="getTisTime" resultType="com.management.platform.entity.vo.TisTimeVO">
+        select extra_field4 as orderId,extra_field5 as line
+             ,sum(maintance_time+debug_time+waiting_time+assist_time+public_time) as workTime
+        from fmw_detail
+        where fmw_id = #{fmwId}
+        group by extra_field4,extra_field5
+    </select>
+</mapper>