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

各项目经营分析报表插入数据库

fyz месяцев назад: 11
Родитель
Сommit
c0d429f939

+ 1 - 11
mjava-lanyun/src/main/java/com/malk/lanyun/Mapper/ProjectAnalysisMapper.java

@@ -11,12 +11,8 @@ public class ProjectAnalysisMapper implements RowMapper<ProjectAnalysis> {
     @Override
     public ProjectAnalysis mapRow(ResultSet resultSet, int i) throws SQLException {
         ProjectAnalysis projectAnalysis = new ProjectAnalysis();
-//        System.out.println(resultSet.findColumn("month"));
         projectAnalysis.setProjectName(resultSet.getString("project_name"));
-//        projectAnalysis.setBelongProject(resultSet.getString("belong_name"));
-        projectAnalysis.setMonth(resultSet.getString("month"));
-//        projectAnalysis.setStatus(resultSet.getString("status"));
-//        projectAnalysis.setDLevel(resultSet.getString("d_level"));
+        projectAnalysis.setMonth(resultSet.getLong("month"));
         projectAnalysis.setPredictIncome(resultSet.getBigDecimal("predict_income"));
         projectAnalysis.setOpen(resultSet.getBigDecimal("open"));
         projectAnalysis.setIncome(resultSet.getBigDecimal("income"));
@@ -32,12 +28,6 @@ public class ProjectAnalysisMapper implements RowMapper<ProjectAnalysis> {
         projectAnalysis.setCorporateIncomeTax(resultSet.getBigDecimal("corporate_income_tax"));
         projectAnalysis.setNetProfit(resultSet.getBigDecimal("net_profit"));
         projectAnalysis.setNetMargin(resultSet.getBigDecimal("net_margin"));
-//        projectAnalysis.setFormat(resultSet.getString("format"));
-//        projectAnalysis.setCustomerSystem(resultSet.getString("customer_system"));
-//        projectAnalysis.setProfitLoss(resultSet.getString("profit_loss"));
-//        projectAnalysis.setApproachDate(resultSet.getString("approach_date"));
-//        projectAnalysis.setLevel(resultSet.getString("level"));
-//        projectAnalysis.setNotes(resultSet.getString("notes"));
 
         return projectAnalysis;
     }

+ 10 - 2
mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java

@@ -1,5 +1,6 @@
 package com.malk.lanyun.controller;
 
+import com.malk.lanyun.entity.ProjectAnalysis;
 import com.malk.lanyun.service.TimerService;
 import com.malk.server.common.McR;
 import lombok.extern.slf4j.Slf4j;
@@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.sql.SQLException;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -51,8 +53,14 @@ public class TimerController {
         timerService.execlExport(data,response,request);
     }
 
+    /**
+     * 分组查询项目点经营分析报表
+     * @param data 传参年月
+     * @return 返回封装McR
+     */
     @PostMapping("projectAnalysisGroup")
-    void projectAnalysisGroup(@RequestBody Map<String,Object> data) {
-        timerService.projectAnalysisGroup(data);
+    McR<ProjectAnalysis> projectAnalysisGroup(@RequestBody Map<String,Object> data) {
+        List<ProjectAnalysis> projectAnalyses = timerService.projectAnalysisGroup(data);
+        return McR.success(projectAnalyses);
     }
 }

+ 1 - 1
mjava-lanyun/src/main/java/com/malk/lanyun/entity/ProjectAnalysis.java

@@ -11,7 +11,7 @@ import java.math.BigDecimal;
 public class ProjectAnalysis implements Serializable {
     private String projectName;
     private String belongProject;
-    private String month;
+    private Long month;
     private String status;
     private String dLevel;
     private BigDecimal predictIncome;

+ 6 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/schedule/ScheduleTask.java

@@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.web.bind.annotation.GetMapping;
 
 import java.util.Date;
 
@@ -48,4 +49,9 @@ public class ScheduleTask {
         timerService.monthRiskMerits();
         log.info("定时方法执行时间 :" + new Date());
     }
+
+    @Scheduled(cron = "0 0 4 1 * ?")
+    void insertAnalysisList(){
+        timerService.insertAnalysisList();
+    }
 }

+ 1 - 1
mjava-lanyun/src/main/java/com/malk/lanyun/service/TimerService.java

@@ -47,5 +47,5 @@ public interface TimerService {
     /**
      * 每日同步各项目分析报表
      */
-    void insertProjectAnalysis();
+    void insertAnalysisList();
 }

+ 61 - 5
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

@@ -24,6 +24,9 @@ import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
 import java.time.LocalDateTime;
 import java.util.*;
 
@@ -211,8 +214,9 @@ public class TimerServiceImpl implements TimerService {
                     .appType("APP_ERBDTFS82HOVBPL3NFH0")
                     .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
                     .formInstanceId(UtilMap.getString(e, "formInstanceId"))
-//                    .useLatestVersion(true)
-                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("tableField_lr3dmdpk", list)))
+                    .useLatestVersion(true)
+                    .updateFormDataJson(JSONObject.toJSONString(new HashMap<>()))
+//                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("tableField_lr3dmdpk", list)))
                     .build(), YDConf.FORM_OPERATION.update);
         });
     }
@@ -323,6 +327,7 @@ public class TimerServiceImpl implements TimerService {
     public List<ProjectAnalysis> projectAnalysisGroup(Map<String, Object> data){
         String sql = "";
         String month = String.valueOf(data.get("month"));
+        log.info(month);
         if (data.isEmpty()){
             sql = "SELECT " +
                     " `month`, " +
@@ -374,6 +379,7 @@ public class TimerServiceImpl implements TimerService {
 //        Connection connection = DriverManager.getConnection(url, username, password);
 //        Statement statement = connection.createStatement();
         List<ProjectAnalysis> analysisList = jdbcTemplate.query(sql, new ProjectAnalysisMapper());
+        log.info("results:{}",analysisList);
         if (ObjectUtil.isNotNull(analysisList)&&analysisList.size()>0){
             return analysisList;
         }
@@ -383,13 +389,63 @@ public class TimerServiceImpl implements TimerService {
     }
 
     @Override
-    public void insertProjectAnalysis() {
+    public void insertAnalysisList() {
         List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
                 .appType("APP_ERBDTFS82HOVBPL3NFH0")
                 .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
                 .formUuid("FORM-954C78969A864D95A1BC0CE9F69299E8VI38")
-//                .searchFieldJson(JSON.toJSONString(UtilMap.map("selectField_lrnd0lxr", "小业主")))
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("radioField_m0dkcxod", "否")))
                 .build());
-        String sql = "INSERT INTO `dingtalk`.`lanyun_project_analysis`(`id`, `project_name`, `belong_project`, `month`, `status`, `d_level`, `predict_income`, `open`, `income`, `person`, `person_cost`, `material`, `other_cost`, `cost_sum`, `taxes`, `gross_profit`, `gross_margin`, `overhead`, `corporate_income_tax`, `net_profit`, `net_margin`, `format`, `customer_system`, `profit_loss`, `approach_date`, `level`, `notes`) VALUES ();\n";
+        Connection connection = null;
+        PreparedStatement ps = null;
+        try {
+            Class.forName(driver);
+            connection = DriverManager.getConnection(url, username, password);
+            String sql = "INSERT INTO `lanyun_project_analysis`(`project_name`, `belong_project`, `month`, " +
+                    "`status`, `d_level`, `predict_income`, `open`, `income`, `person`, `person_cost`, `material`, `other_cost`, " +
+                    "`cost_sum`, `taxes`, `gross_profit`, `gross_margin`, `overhead`, `corporate_income_tax`, `net_profit`, " +
+                    "`net_margin`, `format`, `customer_system`, `profit_loss`, `approach_date`, `level`, `notes`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
+
+            ps = connection.prepareStatement(sql);
+            for (int i = 0; i < dataList.size(); i++) {
+                ps.setObject(1,dataList.get(i).get("textField_dliiyul"));
+                ps.setObject(2,dataList.get(i).get("textField_bheotm5"));
+                ps.setObject(3,dataList.get(i).get("dateField_lcwv382"));
+                ps.setObject(4,dataList.get(i).get("textField_pa6o780"));
+                ps.setObject(5,dataList.get(i).get("textField_lz2jttrl"));
+                ps.setObject(6,dataList.get(i).get("numberField_5wyyb42"));
+                ps.setObject(7,dataList.get(i).get("numberField_c4acnrg"));
+                ps.setObject(8,dataList.get(i).get("numberField_zjdki9k"));
+                ps.setObject(9,dataList.get(i).get("numberField_hg6jznm"));
+                ps.setObject(10,dataList.get(i).get("numberField_7ga9c5w"));
+                ps.setObject(11,dataList.get(i).get("numberField_c3cqsfv"));
+                ps.setObject(12,dataList.get(i).get("numberField_avaexyf"));
+                ps.setObject(13,dataList.get(i).get("numberField_gub2ul5"));
+                ps.setObject(14,dataList.get(i).get("numberField_hqiac12"));
+                ps.setObject(15,dataList.get(i).get("numberField_lz6mt3xq"));
+                ps.setObject(16,dataList.get(i).get("numberField_lz9n3fm9"));
+                ps.setObject(17,dataList.get(i).get("numberField_ln701sy"));
+                ps.setObject(18,dataList.get(i).get("numberField_fmhzxdr"));
+                ps.setObject(19,dataList.get(i).get("numberField_lz6mt3xr"));
+                ps.setObject(20,dataList.get(i).get("numberField_lz9n3fma"));
+                ps.setObject(21,dataList.get(i).get("textField_tpb3m2f"));
+                ps.setObject(22,dataList.get(i).get("textField_2adicsn"));
+                ps.setObject(23,dataList.get(i).get("textField_1yw4mx4"));
+                ps.setObject(24,dataList.get(i).get("dateField_ji5yfvf"));
+                ps.setObject(25,dataList.get(i).get("textField_h2qx5nz"));
+                ps.setObject(26,dataList.get(i).get("textField_35paoph"));
+
+                ps.addBatch();
+                if (i%500==0){
+                    ps.executeBatch();
+                    ps.clearBatch();
+                }
+            }
+            ps.executeBatch();
+            connection.close();
+        } catch (Exception exception) {
+            throw new RuntimeException(exception);
+        }
+
     }
 }