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