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

Merge remote-tracking branch 'origin/mjava-lanyun_8-22'

# Conflicts:
#	mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java
#	mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/NCServiceImpl.java
fyz 11 місяців тому
батько
коміт
d4066dd0cb

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

@@ -12,7 +12,10 @@ public class ProjectAnalysisMapper implements RowMapper<ProjectAnalysis> {
     public ProjectAnalysis mapRow(ResultSet resultSet, int i) throws SQLException {
         ProjectAnalysis projectAnalysis = new ProjectAnalysis();
         projectAnalysis.setProjectName(resultSet.getString("project_name"));
-        projectAnalysis.setMonth(resultSet.getLong("month"));
+//        projectAnalysis.setBelongProject(resultSet.getString("belong_name"));
+        projectAnalysis.setMonth(resultSet.getString("month"));
+//        projectAnalysis.setStatus(resultSet.getString("status"));
+//        projectAnalysis.setDLevel(resultSet.getString("d_level"));
         projectAnalysis.setPredictIncome(resultSet.getBigDecimal("predict_income"));
         projectAnalysis.setOpen(resultSet.getBigDecimal("open"));
         projectAnalysis.setIncome(resultSet.getBigDecimal("income"));
@@ -28,6 +31,12 @@ 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;
     }

+ 4 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java

@@ -1,8 +1,11 @@
 package com.malk.lanyun.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.malk.lanyun.entity.ProjectAnalysis;
 import com.alibaba.fastjson.JSON;
 import com.malk.lanyun.entity.ProjectAnalysis;
 import com.malk.lanyun.service.NCService;
+import com.malk.lanyun.service.NCService;
 import com.malk.lanyun.service.TimerService;
 import com.malk.server.common.McException;
 import com.malk.server.common.McR;
@@ -55,6 +58,7 @@ public class TimerController {
     }
 
 
+
     @RequestMapping("testOne")
     McR testOne() {
         ncService.getNcInfo();

+ 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 Long month;
+    private String month;
     private String status;
     private String dLevel;
     private BigDecimal predictIncome;

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

@@ -50,6 +50,9 @@ public class ScheduleTask {
         log.info("定时方法执行时间 :" + new Date());
     }
 
+    /**
+     * 各项目经营分析每月1日上午4点自动插入数据库
+     */
     @Scheduled(cron = "0 0 4 1 * ?")
     void insertAnalysisList(){
         timerService.insertAnalysisList();

+ 68 - 73
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/NCServiceImpl.java

@@ -1,7 +1,6 @@
 package com.malk.lanyun.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.malk.lanyun.entity.SqlServerBean;
 import com.malk.lanyun.service.NCService;
 import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
@@ -11,7 +10,6 @@ import com.malk.utils.UtilDateTime;
 import com.malk.utils.UtilMap;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Service;
 
 import java.sql.Connection;
@@ -28,12 +26,20 @@ import java.util.Map;
 @Slf4j
 public class NCServiceImpl implements NCService {
 
+
     @Autowired
-    private YDClient ydClient;
+    private YDService ydService;
 
     @Autowired
-    private SqlServerBean sqlBean;
+    private YDClient ydClient;
 
+    // 数据库连接信息
+    // 数据库连接信息
+//    String url = "jdbc:sqlserver://58.246.128.122:2433;databaseName=lanyun";
+    String url = "jdbc:sqlserver://192.168.0.237:1433;databaseName=lanyun";
+    String user = "sa";
+    //    String password = "!lanyunnc@2023#";
+    String password = "LANyunnc!2024#";
 
     // 获取当前日期
     LocalDate today = LocalDate.now();
@@ -50,16 +56,23 @@ public class NCServiceImpl implements NCService {
             // 加载 JDBC 驱动
             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
             // 建立连接
-            connection = DriverManager.getConnection(sqlBean.getUrl(), sqlBean.getUsername(), sqlBean.getPassword());
+            connection = DriverManager.getConnection(url, user, password);
             // 创建 Statement 对象
             statement = connection.createStatement();
 
             // 执行查询
+//            String sql = "SELECT b.adjustperiod AS adjustperiod, b.pk_accasoa AS pk_accasoa, a.name AS accasoa_name, SUM ( b.creditamount ) AS creditamount\n" +
+//                    "            FROM gl_detail b JOIN bd_accasoa a ON b.pk_accasoa = a.pk_accasoa WHERE  b.yearv = "+year+"\n" +
+//                    "            AND b.accountcode IN ( '50010101', '500102', '500103', '500117', '500114', '500115', '500118', '500119', '500109', '500133' )\n" +
+//                    "            AND b.pk_accountingbook IN ( SELECT pk_accountingbook FROM org_accountingbook WHERE code IN ( 'A01-0004', 'A02-0004', 'A03-0004', 'A04-0004', 'A05-0004', 'A06-0004', 'A10-0004', 'A11-0004' ) )\n" +
+//                    "            GROUP BY b.adjustperiod,  b.pk_accasoa, a.name";
+
+            //生产
             String sql = "SELECT b.adjustperiod AS adjustperiod, b.pk_accasoa AS pk_accasoa, a.name AS accasoa_name, SUM ( b.creditamount ) AS creditamount\n" +
-                    "            FROM gl_detail b JOIN bd_accasoa a ON b.pk_accasoa = a.pk_accasoa WHERE  b.yearv = "+year+"\n" +
-                    "            AND b.accountcode IN ( '50010101', '500102', '500103', '500117', '500114', '500115', '500118', '500119', '500109', '500133' )\n" +
-                    "            AND b.pk_accountingbook IN ( SELECT pk_accountingbook FROM org_accountingbook WHERE code IN ( 'A01-0004', 'A02-0004', 'A03-0004', 'A04-0004', 'A05-0004', 'A06-0004', 'A10-0004', 'A11-0004' ) )\n" +
-                    "            GROUP BY b.adjustperiod,  b.pk_accasoa, a.name";
+                    "            FROM [192.168.0.237].[lanyun].[dbo].[gl_detail] b JOIN [192.168.0.237].[lanyun].[dbo].[bd_accasoa] a ON b.pk_accasoa = a.pk_accasoa\n" +
+                    "            WHERE b.yearv = "+year+" AND b.accountcode IN ( '50010101', '500102', '500103', '500117', '500114', '500115', '500118', '500119', '500109', '500133' )\n" +
+                    "            AND b.pk_accountingbook IN ( SELECT pk_accountingbook FROM [192.168.0.237].[lanyun].[dbo].[org_accountingbook] WHERE code IN ( 'A01-0004', 'A02-0004', 'A03-0004', 'A04-0004', 'A05-0004', 'A06-0004', 'A10-0004', 'A11-0004' ) )\n" +
+                    "            GROUP BY  b.adjustperiod,  b.pk_accasoa, a.name";
 
             resultSet = statement.executeQuery(sql);
 
@@ -88,7 +101,6 @@ public class NCServiceImpl implements NCService {
                         .build(), YDConf.FORM_OPERATION.create);
             }
         } catch (Exception e) {
-            log.info("数据库连接异常"+e.toString());
             e.printStackTrace();
         } finally {
             // 关闭资源
@@ -114,16 +126,23 @@ public class NCServiceImpl implements NCService {
             // 加载 JDBC 驱动
             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
             // 建立连接
-            connection = DriverManager.getConnection(sqlBean.getUrl(), sqlBean.getUsername(), sqlBean.getPassword());
+            connection = DriverManager.getConnection(url, user, password);
 
             // 创建 Statement 对象
             statement = connection.createStatement();
 
             // 测试sql 执行查询
-            String sql = "SELECT b.adjustperiod AS adjustperiod, b.pk_accasoa AS pk_accasoa,a.name AS accasoa_name, SUM ( b.creditamount ) AS creditamount\n" +
-                    "            FROM gl_detail b JOIN bd_accasoa a ON b.pk_accasoa = a.pk_accasoa WHERE b.yearv = "+year+" AND b.accountcode IN ( '500114', '500115' )\n" +
-                    "            AND b.pk_accountingbook IN ( SELECT pk_accountingbook FROM org_accountingbook WHERE code IN ( 'A01-0004', 'A02-0004', 'A03-0004', 'A04-0004', 'A05-0004', 'A06-0004', 'A10-0004', 'A11-0004' ))\n" +
-                    "            GROUP BY b.adjustperiod,  b.pk_accasoa,  a.name";
+//            String sql = "SELECT b.adjustperiod AS adjustperiod, b.pk_accasoa AS pk_accasoa,a.name AS accasoa_name, SUM ( b.creditamount ) AS creditamount\n" +
+//                    "            FROM gl_detail b JOIN bd_accasoa a ON b.pk_accasoa = a.pk_accasoa WHERE b.yearv = "+year+" AND b.accountcode IN ( '500114', '500115' )\n" +
+//                    "            AND b.pk_accountingbook IN ( SELECT pk_accountingbook FROM org_accountingbook WHERE code IN ( 'A01-0004', 'A02-0004', 'A03-0004', 'A04-0004', 'A05-0004', 'A06-0004', 'A10-0004', 'A11-0004' ))\n" +
+//                    "            GROUP BY b.adjustperiod,  b.pk_accasoa,  a.name";
+
+            //生产 sql
+            String sql= "SELECT b.adjustperiod AS adjustperiod, b.pk_accasoa AS pk_accasoa, a.name AS accasoa_name, SUM ( b.creditamount ) AS creditamount\n" +
+                    "            FROM [192.168.0.237].[lanyun].[dbo].[gl_detail] b JOIN [192.168.0.237].[lanyun].[dbo].[bd_accasoa] a ON b.pk_accasoa = a.pk_accasoa\n" +
+                    "            WHERE b.yearv = "+year+" AND b.accountcode IN ( '500114', '500115' )\n" +
+                    "            AND b.pk_accountingbook IN ( SELECT pk_accountingbook FROM [192.168.0.237].[lanyun].[dbo].[org_accountingbook] WHERE code IN ( 'A01-0004', 'A02-0004', 'A03-0004', 'A04-0004', 'A05-0004', 'A06-0004', 'A10-0004', 'A11-0004' ))\n" +
+                    "            GROUP BY b.adjustperiod, b.pk_accasoa, a.name";
 
 
             resultSet = statement.executeQuery(sql);
@@ -143,6 +162,7 @@ public class NCServiceImpl implements NCService {
                 log.info("periodv:"+resultSet.getString("accasoa_name"));
                 log.info("creditamount:"+resultSet.getBigDecimal("creditamount"));
 
+                //写入月度项目经营情况
                 ydClient.operateData(YDParam.builder()
                         .appType("APP_ERBDTFS82HOVBPL3NFH0")
                         .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
@@ -151,9 +171,7 @@ public class NCServiceImpl implements NCService {
                         .build(), YDConf.FORM_OPERATION.create);
             }
         } catch (Exception e) {
-            log.info("数据库连接异常"+e.toString());
             e.printStackTrace();
-
         } finally {
             // 关闭资源
             try {
@@ -166,9 +184,6 @@ public class NCServiceImpl implements NCService {
         }
     }
 
-    /**
-     * 大业主项目
-     */
     @Override
     public void getNcCost() {
         // 获取当前年
@@ -181,46 +196,37 @@ public class NCServiceImpl implements NCService {
             // 加载 JDBC 驱动
             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
             // 建立连接
-            connection = DriverManager.getConnection(sqlBean.getUrl(), sqlBean.getUsername(), sqlBean.getPassword());
+            connection = DriverManager.getConnection(url, user, password);
 
             // 创建 Statement 对象
             statement = connection.createStatement();
 
-            // 测试sql 执行查询
-            String sql = "SELECT b.adjustperiod AS adjustperiod, b.pk_accasoa AS pk_accasoa,a.name AS accasoa_name, SUM ( b.creditamount ) AS creditamount\n" +
-                    "            FROM gl_detail b JOIN bd_accasoa a ON b.pk_accasoa = a.pk_accasoa WHERE b.yearv = "+year+" AND b.accountcode IN ( '500114', '500115' )\n" +
-                    "            AND b.pk_accountingbook IN ( SELECT pk_accountingbook FROM org_accountingbook WHERE code IN ( 'A01-0004', 'A02-0004', 'A03-0004', 'A04-0004', 'A05-0004', 'A06-0004', 'A10-0004', 'A11-0004' ))\n" +
-                    "            GROUP BY b.adjustperiod,  b.pk_accasoa,  a.name";
-
-
+            // 执行查询
+            String sql = "SELECT yearv,periodv,SUM(creditamount) as creditamount  FROM gl_detail where yearv = '"+year+"' and accountcode in('500114','500115') and adjustperiod in ('01','02','03','06','10','11') GROUP BY yearv, periodv";
             resultSet = statement.executeQuery(sql);
 
+            // 处理结果集
             while (resultSet.next()) {
                 Map hashMap = new HashMap();
+                hashMap.put("",resultSet.getString("yearv"));
 
-                String yearAndNonth = year +"-"+resultSet.getString("adjustperiod");
-                hashMap.put("dateField_m0dkzhwp", UtilDateTime.parse(yearAndNonth,"yyyy-MM"));
-                hashMap.put("textField_m0dkzhwo", yearAndNonth);
-                hashMap.put("textField_m0dkzhwu",resultSet.getString("pk_accasoa"));
-                hashMap.put("textField_m0dkzhwv",resultSet.getString("accasoa_name"));
-                hashMap.put("textField_m0eudqp0","大业主项目ID");
-                hashMap.put("textField_m0eudqp2","大业主项目名称");
-                hashMap.put("numberField_m0dkzhx1",resultSet.getBigDecimal("creditamount"));
+                hashMap.put("",resultSet.getString("periodv"));
 
-                log.info("yearv:"+UtilDateTime.parse(yearAndNonth,"yyyy-MM"));
-                log.info("periodv:"+resultSet.getString("pk_accasoa"));
-                log.info("periodv:"+resultSet.getString("accasoa_name"));
-                log.info("creditamount:"+resultSet.getBigDecimal("creditamount"));
+                hashMap.put("",resultSet.getString("creditamount"));
 
-                ydClient.operateData(YDParam.builder()
-                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
-                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                        .formUuid("FORM-87BF51F1E54D4D73A987939613D07BD5ZZE9")
-                        .formDataJson(JSON.toJSONString(hashMap))
-                        .build(), YDConf.FORM_OPERATION.create);
+                log.info("yearv"+resultSet.getString("yearv"));
+                log.info("periodv"+resultSet.getString("periodv"));
+                log.info("creditamount"+resultSet.getString("creditamount"));
+
+               //写入大业主项目物料成本管控
+//                ydClient.operateData(YDParam.builder()
+//                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
+//                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+//                        .formUuid("FORM-EC67BCB875264EE9AE25C9D663568CAFCYU6")
+//                        .formDataJson(JSON.toJSONString(hashMap))
+//                        .build(), YDConf.FORM_OPERATION.create);
             }
         } catch (Exception e) {
-            log.info("数据库连接异常"+e.toString());
             e.printStackTrace();
         } finally {
             // 关闭资源
@@ -246,46 +252,35 @@ public class NCServiceImpl implements NCService {
             // 加载 JDBC 驱动
             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
             // 建立连接
-            connection = DriverManager.getConnection(sqlBean.getUrl(), sqlBean.getUsername(), sqlBean.getPassword());
+            connection = DriverManager.getConnection(url, user, password);
 
             // 创建 Statement 对象
             statement = connection.createStatement();
 
-            // 测试sql 执行查询
-            String sql = "SELECT b.adjustperiod AS adjustperiod, b.pk_accasoa AS pk_accasoa,a.name AS accasoa_name, SUM ( b.creditamount ) AS creditamount\n" +
-                    "            FROM gl_detail b JOIN bd_accasoa a ON b.pk_accasoa = a.pk_accasoa WHERE b.yearv = "+year+" AND b.accountcode like '6602%' " +
-                    "            AND b.pk_accountingbook IN ( SELECT pk_accountingbook FROM org_accountingbook WHERE code IN ( 'A01-0004', 'A02-0004', 'A03-0004', 'A04-0004', 'A05-0004', 'A06-0004', 'A10-0004', 'A11-0004' ))\n" +
-                    "            GROUP BY b.adjustperiod,  b.pk_accasoa,  a.name";
-
-
+            // 执行查询
+            String sql = "SELECT yearv,periodv,SUM(creditamount) as creditamount  FROM gl_detail where yearv = '"+year+"' and accountcode in('60010301','60010302') and adjustperiod in ('01','02','03','04','05','06','10') GROUP BY yearv, periodv";
             resultSet = statement.executeQuery(sql);
 
+            // 处理结果集
             while (resultSet.next()) {
                 Map hashMap = new HashMap();
+                hashMap.put("",resultSet.getString("yearv"));
 
-                String yearAndNonth = year +"-"+resultSet.getString("adjustperiod");
-                hashMap.put("dateField_m0dkzhwp", UtilDateTime.parse(yearAndNonth,"yyyy-MM"));
-                hashMap.put("textField_m0dkzhwo", yearAndNonth);
-                hashMap.put("textField_m0dkzhwu",resultSet.getString("pk_accasoa"));
-                hashMap.put("textField_m0dkzhwv",resultSet.getString("accasoa_name"));
-                hashMap.put("textField_m0eudqp0","部门");
-                hashMap.put("numberField_m0dkzhx1",resultSet.getBigDecimal("creditamount"));
+                hashMap.put("",resultSet.getString("periodv"));
 
-                log.info("yearv:"+UtilDateTime.parse(yearAndNonth,"yyyy-MM"));
-                log.info("periodv:"+resultSet.getString("pk_accasoa"));
-                log.info("periodv:"+resultSet.getString("accasoa_name"));
-                log.info("creditamount:"+resultSet.getBigDecimal("creditamount"));
+                hashMap.put("",resultSet.getString("creditamount"));
 
+                log.info("yearv"+resultSet.getString("yearv"));
+                log.info("periodv"+resultSet.getString("periodv"));
+                log.info("creditamount"+resultSet.getString("creditamount"));
 
-                ydClient.operateData(YDParam.builder()
-                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
-                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                        .formUuid("FORM-5654B7C22E7546E9BBE7B4EF46DE08BAXZXU")
-                        .formDataJson(JSON.toJSONString(hashMap))
-                        .build(), YDConf.FORM_OPERATION.create);
+//                //收款金额
+//                ydClient.operateData(YDParam.builder()
+//                        .formUuid("")
+//                        .formDataJson(JSON.toJSONString(hashMap))
+//                        .build(), YDConf.FORM_OPERATION.create);
             }
         } catch (Exception e) {
-            log.info("数据库连接异常"+e.toString());
             e.printStackTrace();
         } finally {
             // 关闭资源

+ 69 - 8
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

@@ -325,11 +325,9 @@ public class TimerServiceImpl implements TimerService {
     @SneakyThrows
     @Override
     public List<ProjectAnalysis> projectAnalysisGroup(Map<String, Object> data){
-        String sql = "";
-        String month = String.valueOf(data.get("month"));
-        log.info(month);
+        final String[] sql = {"",""};
         if (data.isEmpty()){
-            sql = "SELECT " +
+            sql[0] = "SELECT " +
                     " `month`, " +
                     " sum( predict_income ) predict_income," +
                     " NULL as project_name, " +
@@ -351,8 +349,28 @@ public class TimerServiceImpl implements TimerService {
                     " lanyun_project_analysis  " +
                     "GROUP BY " +
                     " `month`";
+            sql[1]= "SELECT " +
+                    " '合计' as `month` , " +
+                    " sum( predict_income ) predict_income," +
+                    " NULL as project_name, " +
+                    " SUM( `open` ) `open`, " +
+                    " SUM( income ) income, " +
+                    " SUM( person ) person, " +
+                    " SUM( person_cost ) person_cost, " +
+                    " SUM( material ) material, " +
+                    " SUM( other_cost ) other_cost, " +
+                    " SUM( cost_sum ) cost_sum, " +
+                    " SUM( taxes ) taxes, " +
+                    " SUM( gross_profit ) gross_profit, " +
+                    " SUM( gross_profit )/ SUM( income ) gross_margin, " +
+                    " SUM( overhead ) overhead, " +
+                    " SUM( corporate_income_tax ) corporate_income_tax, " +
+                    " SUM( net_profit ) net_profit, " +
+                    " SUM( net_profit )/ SUM( income ) net_margin  " +
+                    "FROM " +
+                    " lanyun_project_analysis  " ;
         }else {
-            sql = "SELECT " +
+            sql[0] = "SELECT " +
                     " `month`," +
                     "  project_name, " +
                     "  predict_income, " +
@@ -372,13 +390,46 @@ public class TimerServiceImpl implements TimerService {
                     "  net_margin  " +
                     "FROM " +
                     " lanyun_project_analysis " +
-                    " WHERE " +
-                    " `month` = \""+month+"\"" ;
+                    " WHERE 1=1";
+            sql[1] = "SELECT " +
+                    " '合计' as `month`, " +
+                    " sum( predict_income ) predict_income," +
+                    " NULL as project_name, " +
+                    " SUM( `open` ) `open`, " +
+                    " SUM( income ) income, " +
+                    " SUM( person ) person, " +
+                    " SUM( person_cost ) person_cost, " +
+                    " SUM( material ) material, " +
+                    " SUM( other_cost ) other_cost, " +
+                    " SUM( cost_sum ) cost_sum, " +
+                    " SUM( taxes ) taxes, " +
+                    " SUM( gross_profit ) gross_profit, " +
+                    " SUM( gross_profit )/ SUM( income ) gross_margin, " +
+                    " SUM( overhead ) overhead, " +
+                    " SUM( corporate_income_tax ) corporate_income_tax, " +
+                    " SUM( net_profit ) net_profit, " +
+                    " SUM( net_profit )/ SUM( income ) net_margin  " +
+                    " FROM " +
+                    " lanyun_project_analysis  " +
+                    " WHERE 1=1 ";
+
+            data.forEach((k,v)->{
+                if (k.equals("low")){
+                    sql[0] = sql[0] + " AND `net_margin` < 0.05" ;
+                    sql[1] = sql[1] + " AND `net_margin` < 0.05" ;
+                }else {
+                    sql[0] = sql[0] + " AND `" + k +"` = \"" + v +"\"" ;
+                    sql[1] = sql[1] + " AND `" + k +"` = \"" + v +"\"" ;
+                }
+            });
+            sql[1] = sql[1] +  " GROUP BY `month` ";
         }
 //        Class.forName(driver);
 //        Connection connection = DriverManager.getConnection(url, username, password);
 //        Statement statement = connection.createStatement();
-        List<ProjectAnalysis> analysisList = jdbcTemplate.query(sql, new ProjectAnalysisMapper());
+        List<ProjectAnalysis> analysisList = jdbcTemplate.query(sql[0], new ProjectAnalysisMapper());
+        List<ProjectAnalysis> analysisSum= jdbcTemplate.query(sql[1], new ProjectAnalysisMapper());
+        analysisList.add(analysisSum.get(0));
         log.info("results:{}",analysisList);
         if (ObjectUtil.isNotNull(analysisList)&&analysisList.size()>0){
             return analysisList;
@@ -396,6 +447,16 @@ public class TimerServiceImpl implements TimerService {
                 .formUuid("FORM-954C78969A864D95A1BC0CE9F69299E8VI38")
                 .searchFieldJson(JSON.toJSONString(UtilMap.map("radioField_m0dkcxod", "否")))
                 .build());
+        dataList.forEach(e->{
+            ydClient.operateData(YDParam.builder()
+                    .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                    .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                    .formInstanceId(UtilMap.getString(e, "formInstanceId"))
+//                    .useLatestVersion(true)
+//                    .updateFormDataJson(JSONObject.toJSONString(new HashMap<>()))
+                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("radioField_m0dkcxod", "是")))
+                    .build(), YDConf.FORM_OPERATION.update);
+        });
         Connection connection = null;
         PreparedStatement ps = null;
         try {