Browse Source

Merge remote-tracking branch 'origin/branch-2024-8-21'

# Conflicts:
#	mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java
zfc 11 months ago
parent
commit
0b5a3fc3d8

+ 9 - 0
mjava-lanyun/pom.xml

@@ -15,6 +15,7 @@
     <properties>
         <maven.compiler.source>8</maven.compiler.source>
         <maven.compiler.target>8</maven.compiler.target>
+        <sqlserver-jdbc.version>6.4.0.jre8</sqlserver-jdbc.version>
     </properties>
 
     <dependencies>
@@ -24,6 +25,14 @@
             <artifactId>mjava</artifactId>
             <version>${mjava.version}</version>
         </dependency>
+
+        <!-- sqlserver依赖 -->
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>mssql-jdbc</artifactId>
+            <scope>runtime</scope>
+            <version>${sqlserver-jdbc.version}</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 26 - 23
mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java

@@ -1,17 +1,28 @@
 package com.malk.lanyun.controller;
 
-import com.malk.lanyun.entity.ProjectAnalysis;
+import com.alibaba.fastjson.JSON;
+import com.malk.lanyun.service.NCService;
 import com.malk.lanyun.service.TimerService;
+import com.malk.server.common.McException;
 import com.malk.server.common.McR;
+import com.malk.service.dingtalk.DDClient;
+import com.malk.service.dingtalk.DDClient_Dedicated;
+import com.malk.utils.UtilDateTime;
+import com.malk.utils.UtilExcel;
+import com.malk.utils.UtilMap;
+import com.malk.utils.UtilString;
+import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.sql.SQLException;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 错误抛出与拦截详见 CatchException
@@ -24,6 +35,8 @@ public class TimerController {
     @Autowired
     private TimerService timerService;
 
+    @Autowired
+    private NCService ncService;
     /**
      * 月度定额更新
      */
@@ -36,31 +49,21 @@ public class TimerController {
 
     @RequestMapping("test")
     McR test() {
+        return McR.success();
+    }
 
-        log.info("test");
 
+    @RequestMapping("testOne")
+    McR testOne() {
+        ncService.getNcInfo();
         return McR.success();
     }
 
-    /**
-     * 采购订单导出excel
-     * @param data 前端传入数据
-     * @param response 响应头
-     * @param request  请求头
-     */
-    @PostMapping("exportExecl")
-    void exportAttendance(@RequestBody Map data, HttpServletResponse response, HttpServletRequest request) {
-        timerService.execlExport(data,response,request);
+    @RequestMapping("testTwo")
+    McR testTwo() {
+        ncService.getNcCgInfo();
+        return McR.success();
     }
 
-    /**
-     * 分组查询项目点经营分析报表
-     * @param data 传参年月
-     * @return 返回封装McR
-     */
-    @PostMapping("projectAnalysisGroup")
-    McR<ProjectAnalysis> projectAnalysisGroup(@RequestBody Map<String,Object> data) {
-        List<ProjectAnalysis> projectAnalyses = timerService.projectAnalysisGroup(data);
-        return McR.success(projectAnalyses);
-    }
+
 }

+ 19 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/NCService.java

@@ -0,0 +1,19 @@
+package com.malk.lanyun.service;
+
+public interface NCService {
+
+
+    //财务月度经营情况
+    void getNcInfo();
+
+
+    //月度物耗成本
+    void getNcCgInfo();
+
+    //大业主项目物料成本管控
+    void getNcCost();
+
+    //部门费用达成明细
+    void getNcCollection();
+
+}

+ 293 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/NCServiceImpl.java

@@ -0,0 +1,293 @@
+package com.malk.lanyun.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.malk.lanyun.service.NCService;
+import com.malk.server.aliwork.YDConf;
+import com.malk.server.aliwork.YDParam;
+import com.malk.service.aliwork.YDClient;
+import com.malk.service.aliwork.YDService;
+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.stereotype.Service;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.TemporalAdjusters;
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+@Slf4j
+public class NCServiceImpl implements NCService {
+
+
+    @Autowired
+    private YDService ydService;
+
+    @Autowired
+    private YDClient ydClient;
+
+    // 数据库连接信息
+    String url = "jdbc:sqlserver://58.246.128.122:2433;databaseName=lanyun";
+    String user = "sa";
+    String password = "!lanyunnc@2023#";
+
+    // 获取当前日期
+    LocalDate today = LocalDate.now();
+    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+    @Override
+    public void getNcInfo() {
+        // 获取当前年
+        int year = today.getYear();
+
+        Connection connection = null;
+        Statement statement = null;
+        ResultSet resultSet = null;
+        try {
+            // 加载 JDBC 驱动
+            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
+            // 建立连接
+            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 [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);
+
+            // 处理结果集
+            while (resultSet.next()) {
+                Map hashMap = new HashMap();
+
+                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("numberField_m0dkzhx1",resultSet.getBigDecimal("creditamount"));
+
+                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"));
+
+                //写入月度项目经营情况
+                ydClient.operateData(YDParam.builder()
+                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                        .formUuid("FORM-D7FAD41DA72041ED96431F4219F082B7DTNH")
+                        .formDataJson(JSON.toJSONString(hashMap))
+                        .build(), YDConf.FORM_OPERATION.create);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            try {
+                if (resultSet != null) resultSet.close();
+                if (statement != null) statement.close();
+                if (connection != null) connection.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public void getNcCgInfo() {
+        // 获取当前年
+        int year = today.getYear();
+
+        Connection connection = null;
+        Statement statement = null;
+        ResultSet resultSet = null;
+        try {
+            // 加载 JDBC 驱动
+            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
+            // 建立连接
+            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";
+
+            //生产 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);
+
+            while (resultSet.next()) {
+                Map hashMap = new HashMap();
+
+                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("numberField_m0dkzhx1",resultSet.getBigDecimal("creditamount"));
+
+                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"));
+
+                //写入月度项目经营情况
+                ydClient.operateData(YDParam.builder()
+                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+                        .formUuid("FORM-EC67BCB875264EE9AE25C9D663568CAFCYU6")
+                        .formDataJson(JSON.toJSONString(hashMap))
+                        .build(), YDConf.FORM_OPERATION.create);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            try {
+                if (resultSet != null) resultSet.close();
+                if (statement != null) statement.close();
+                if (connection != null) connection.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public void getNcCost() {
+        // 获取当前年
+        int year = today.getYear();
+
+        Connection connection = null;
+        Statement statement = null;
+        ResultSet resultSet = null;
+        try {
+            // 加载 JDBC 驱动
+            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
+            // 建立连接
+            connection = DriverManager.getConnection(url, user, password);
+
+            // 创建 Statement 对象
+            statement = connection.createStatement();
+
+            // 执行查询
+            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"));
+
+                hashMap.put("",resultSet.getString("periodv"));
+
+                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-EC67BCB875264EE9AE25C9D663568CAFCYU6")
+//                        .formDataJson(JSON.toJSONString(hashMap))
+//                        .build(), YDConf.FORM_OPERATION.create);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            try {
+                if (resultSet != null) resultSet.close();
+                if (statement != null) statement.close();
+                if (connection != null) connection.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public void getNcCollection() {
+        // 获取当前年
+        int year = today.getYear();
+
+        Connection connection = null;
+        Statement statement = null;
+        ResultSet resultSet = null;
+        try {
+            // 加载 JDBC 驱动
+            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
+            // 建立连接
+            connection = DriverManager.getConnection(url, user, password);
+
+            // 创建 Statement 对象
+            statement = connection.createStatement();
+
+            // 执行查询
+            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"));
+
+                hashMap.put("",resultSet.getString("periodv"));
+
+                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()
+//                        .formUuid("")
+//                        .formDataJson(JSON.toJSONString(hashMap))
+//                        .build(), YDConf.FORM_OPERATION.create);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            try {
+                if (resultSet != null) resultSet.close();
+                if (statement != null) statement.close();
+                if (connection != null) connection.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+}