Przeglądaj źródła

提交仓库
财务月度经营情况
月度物耗成本
代码提交

zfc 9 miesięcy temu
rodzic
commit
059e296d45

+ 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>

+ 5 - 1
mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java

@@ -1,6 +1,7 @@
 package com.malk.lanyun.controller;
 
 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;
@@ -34,6 +35,8 @@ public class TimerController {
     @Autowired
     private TimerService timerService;
 
+    @Autowired
+    private NCService ncService;
     /**
      * 月度定额更新
      */
@@ -47,7 +50,8 @@ public class TimerController {
     @RequestMapping("test")
     McR test() {
 
-        log.info("test");
+        ncService.getNcInfo();
+//        ncService.getNcCgInfo();
 
         return McR.success();
     }

+ 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();
+            }
+        }
+    }
+}