Pārlūkot izejas kodu

日常物耗申请更新

fyz 5 mēneši atpakaļ
vecāks
revīzija
5284cf1065

+ 9 - 6
mjava-lanyun/src/main/java/com/malk/lanyun/controller/TimerController.java

@@ -150,16 +150,16 @@ public class TimerController {
 
     /**
      * 查找项目点档案一个项目编号下所有项目点是否补充
-     * @param request
+     * @param projectCode
      */
     @PostMapping("selectIsSupply")
-    public boolean selectIsSupply(HttpServletRequest request){
+    public Map<String, Boolean> selectIsSupply(String projectCode){
         log.info("开始查找项目编号所有项目点是否补充");
-        return timerService.selectIsSupply(request);
+        return timerService.selectIsSupply(projectCode);
     }
 
-    @PostMapping("testSelectIsSupply")
-    public boolean testSelectIsSupply(HttpServletRequest request){
+    @RequestMapping("testSelectIsSupply")
+    public Map<String, Boolean> testSelectIsSupply(HttpServletRequest request){
         log.info("开始查找项目编号所有项目点是否补充");
         return timerService.testSelectIsSupply(request);
     }
@@ -214,5 +214,8 @@ public class TimerController {
         }
         return McR.success();
     }
-
+    @PostMapping("testNC")
+    public void testNC(){
+        ncService.getProjectOperate();
+    }
 }

+ 18 - 0
mjava-lanyun/src/main/java/com/malk/lanyun/entity/MySqlBean.java

@@ -0,0 +1,18 @@
+package com.malk.lanyun.entity;
+
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "spring.datasource")
+public class MySqlBean {
+
+    private String username;
+    private String password;
+    private String url;
+
+
+}

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

@@ -19,4 +19,7 @@ public interface NCService {
     //供应商付款
     void getSupplierPay();
 
+    //各项目经营分析人工成本
+    void getProjectOperate();
+
 }

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

@@ -91,11 +91,11 @@ public interface TimerService {
 
     /**
      * 查找项目点档案一个项目编号下所有项目点是否补充
-     * @param request
+     * @param
      */
-    boolean selectIsSupply(HttpServletRequest request);
+    Map<String, Boolean> selectIsSupply(String projectCode);
 
-    boolean testSelectIsSupply(HttpServletRequest request);
+    Map<String, Boolean> testSelectIsSupply(HttpServletRequest request);
 
     void updateAnalysis(Map<String,Object> data);
 

+ 356 - 25
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/NCServiceImpl.java

@@ -2,6 +2,7 @@ package com.malk.lanyun.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
+import com.malk.lanyun.entity.MySqlBean;
 import com.malk.lanyun.entity.SqlServerBean;
 import com.malk.lanyun.service.NCService;
 import com.malk.server.aliwork.YDConf;
@@ -14,12 +15,10 @@ 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.sql.*;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -33,7 +32,8 @@ public class NCServiceImpl implements NCService {
 
     @Autowired
     private SqlServerBean sqlBean;
-
+    @Autowired
+    private MySqlBean mySqlBean;
     @Autowired
     private YDService ydService;
 
@@ -61,11 +61,8 @@ public class NCServiceImpl implements NCService {
             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.adjustperiod = "+ month +
-                    "            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             FROM gl_detail b JOIN bd_accasoa a ON b.pk_accasoa = a.pk_accasoa WHERE  b.yearv = "+year+"\n AND b.adjustperiod = "+ month +
+                    "            AND b.accountcode IN ( '50010101', '500102', '500103', '500117', '500114', '500115', '500118', '500119', '500109', '500133' )             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' ) )             GROUP BY b.adjustperiod,  b.pk_accasoa, a.name";
 
             resultSet = statement.executeQuery(sql);
 
@@ -128,11 +125,8 @@ public class NCServiceImpl implements NCService {
             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.adjustperiod = "+ month +
-                    "            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             FROM gl_detail b JOIN bd_accasoa a ON b.pk_accasoa = a.pk_accasoa WHERE b.yearv = "+year+" AND b.adjustperiod = "+ month +
+                    "            AND b.accountcode IN ( '500114', '500115' )             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' ))             GROUP BY b.adjustperiod,  b.pk_accasoa,  a.name";
 
 
             resultSet = statement.executeQuery(sql);
@@ -198,11 +192,8 @@ public class NCServiceImpl implements NCService {
             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.adjustperiod = "+ month +
-                    "            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             FROM gl_detail b JOIN bd_accasoa a ON b.pk_accasoa = a.pk_accasoa WHERE b.yearv = "+year+" AND b.adjustperiod = "+ month +
+                    "            AND b.accountcode IN ( '500114', '500115' )             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' ))             GROUP BY b.adjustperiod,  b.pk_accasoa,  a.name";
 
 
             resultSet = statement.executeQuery(sql);
@@ -267,11 +258,9 @@ public class NCServiceImpl implements NCService {
             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.adjustperiod = '"+ month + "'" +
+            String sql = "SELECT b.adjustperiod AS adjustperiod, b.pk_accasoa AS pk_accasoa,a.name AS accasoa_name, SUM ( b.creditamount ) AS creditamount             FROM gl_detail b JOIN bd_accasoa a ON b.pk_accasoa = a.pk_accasoa WHERE b.yearv = "+year+" AND b.adjustperiod = '"+ month + "'" +
                     "            AND (b.accountcode like '6602%' OR b.accountcode IN ('660101','660103','660104'))" +
-                    "            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";
+                    "            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' ))             GROUP BY b.adjustperiod,  b.pk_accasoa,  a.name";
 
 
             resultSet = statement.executeQuery(sql);
@@ -382,6 +371,349 @@ public class NCServiceImpl implements NCService {
             }
         }
     }
+
+    @Override
+    public void getProjectOperate() {
+        int year = lastMonth.getYear();
+        String month = String.format("%02d",lastMonth.getMonthValue()) ;
+        deleteMonthDate("FORM-5654B7C22E7546E9BBE7B4EF46DE08BAXZXU","textField_m0dkzhwo", String.valueOf(year),month);
+
+        System.out.println(month);
+        Connection connection = null;
+        Statement statement = null;
+        ResultSet resultSet = null;
+        Connection mysqlCon = null;
+        PreparedStatement ps = null;
+        try {
+            // 加载 JDBC 驱动
+            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
+            // 建立连接
+            connection = DriverManager.getConnection(sqlBean.getUrl(), sqlBean.getUsername(), sqlBean.getPassword());
+            mysqlCon = DriverManager.getConnection(mySqlBean.getUrl(), mySqlBean.getUsername(), mySqlBean.getPassword());
+
+            // 创建 Statement 对象
+            statement = connection.createStatement();
+
+            //获取生产成本-工资
+            String sql = "SELECT\n" +
+                    "\tbd_project.project_code xmcode,\n" +
+                    "\tbd_project.project_name xmname,\n" +
+                    "\tgl_detail.yearv yearv,\n" +
+                    "\tgl_detail.adjustperiod monthv,\n" +
+                    "\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localdebitamount ELSE 0 END ) JFFS,\n" +
+                    "\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localcreditamount ELSE 0 END ) DFFS \n" +
+                    "FROM\n" +
+                    "\tgl_detail gl_detail\n" +
+                    "\tLEFT JOIN gl_docfree1 ON gl_detail.assid = gl_docfree1.assid\n" +
+                    "\tLEFT JOIN org_dept ON gl_docfree1.f1 = org_dept.pk_dept\n" +
+                    "\tLEFT JOIN bd_project ON gl_docfree1.f10 = bd_project.pk_project\n" +
+                    "\tLEFT JOIN org_accountingbook ON gl_detail.pk_accountingbook = org_accountingbook.pk_accountingbook\n" +
+                    "\tLEFT JOIN bd_accasoa ON gl_detail.pk_accasoa = bd_accasoa.pk_accasoa\n" +
+                    "\tLEFT JOIN bd_account ON bd_accasoa.pk_account = bd_account.pk_account \n" +
+                    "WHERE\n" +
+                    "\tbd_account.CODE IN ( '50010101', '500103', '500102', '500117' ) \n" +
+                    "\tAND gl_detail.yearv = '2024' \n" +
+                    "\tAND gl_detail.adjustperiod = '10' \n" +
+                    "\tAND org_accountingbook.CODE IN ( 'A01-0004', 'A02-0004', 'A11-0004', 'A03-0004', 'A06-0004', 'A04-0004', 'A05-0004', 'A10-0004' ) \n" +
+                    "\tAND gl_detail.discardflagv <> 'Y' \n" +
+                    "\tAND gl_detail.dr = 0 \n" +
+                    "\tAND gl_detail.voucherkindv <> 255 \n" +
+                    "\tAND gl_detail.tempsaveflag <> 'Y' \n" +
+                    "\tAND gl_detail.voucherkindv <> 5 \n" +
+                    "\tAND ( gl_docfree1.F1 <> 'NN/A' OR gl_docfree1.F10 <> 'NN/A' ) \n" +
+                    "\tAND 1 = 1 \n" +
+                    "GROUP BY\n" +
+                    "\tgl_detail.yearv,\n" +
+                    "\tgl_detail.adjustperiod,\n" +
+                    "\tbd_project.project_code,\n" +
+                    "\tbd_project.project_name \n" +
+                    "ORDER BY\n" +
+                    "\txmcode ASC ";
+
+            resultSet = statement.executeQuery(sql);
+//            String insert = "INSERT INTO `dingtalk`.`lanyun_project_analysis_copy1`(`month`,`project_name`,`person_cost`) VALUES (?,?,?)";
+//            String yearAndNonth = year +"-"+resultSet.getString("adjustperiod");
+//            Map hashMap = new HashMap();
+//            ps = mysqlCon.prepareStatement(insert);
+//            ps.setObject(1,UtilDateTime.parse(yearAndNonth,"yyyy-MM").getTime());
+//            ps.setObject(2,resultSet.getBigDecimal("xmname"));
+//            ps.setObject(3,resultSet.getBigDecimal("JFFS"));
+            List<Map<String,Object>> personCostList = new ArrayList<>();
+            while (resultSet.next()) {
+                HashMap<String, Object> personCost = new HashMap<>();
+                log.info("xmcode:{}",resultSet.getString("xmcode"));
+                personCost.put("xmcode",resultSet.getString("xmcode"));
+                personCost.put("xmname",resultSet.getString("xmname"));
+                personCost.put("person_cost_compute",resultSet.getString("JFFS"));
+                personCostList.add(personCost);
+            }
+            //获取生产成本-材料费
+            sql = "SELECT\n" +
+                    "\tbd_project.project_code xmcode,\n" +
+                    "\tbd_project.project_name xmname,\n" +
+                    "\tgl_detail.yearv yearv,\n" +
+                    "\tgl_detail.adjustperiod monthv,\n" +
+                    "\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localdebitamount ELSE 0 END ) JFFS,\n" +
+                    "\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localcreditamount ELSE 0 END ) DFFS \n" +
+                    "FROM\n" +
+                    "\tgl_detail gl_detail\n" +
+                    "\tLEFT JOIN gl_docfree1 ON gl_detail.assid = gl_docfree1.assid\n" +
+                    "\tLEFT JOIN org_dept ON gl_docfree1.f1 = org_dept.pk_dept\n" +
+                    "\tLEFT JOIN bd_project ON gl_docfree1.f10 = bd_project.pk_project\n" +
+                    "\tLEFT JOIN org_accountingbook ON gl_detail.pk_accountingbook = org_accountingbook.pk_accountingbook\n" +
+                    "\tLEFT JOIN bd_accasoa ON gl_detail.pk_accasoa = bd_accasoa.pk_accasoa\n" +
+                    "\tLEFT JOIN bd_account ON bd_accasoa.pk_account = bd_account.pk_account \n" +
+                    "WHERE\n" +
+                    "\tbd_account.CODE IN ( '500114' ) \n" +
+                    "\tAND gl_detail.yearv = '2024' \n" +
+                    "\tAND gl_detail.adjustperiod = '10' \n" +
+                    "\tAND org_accountingbook.CODE IN ( 'A01-0004', 'A02-0004', 'A11-0004', 'A03-0004', 'A06-0004', 'A04-0004', 'A05-0004', 'A10-0004' ) \n" +
+                    "\tAND gl_detail.discardflagv <> 'Y' \n" +
+                    "\tAND gl_detail.dr = 0 \n" +
+                    "\tAND gl_detail.voucherkindv <> 255 \n" +
+                    "\tAND gl_detail.tempsaveflag <> 'Y' \n" +
+                    "\tAND gl_detail.voucherkindv <> 5 \n" +
+                    "\tAND ( gl_docfree1.F1 <> 'NN/A' OR gl_docfree1.F10 <> 'NN/A' ) \n" +
+                    "\tAND 1 = 1 \n" +
+                    "GROUP BY\n" +
+                    "\tgl_detail.yearv,\n" +
+                    "\tgl_detail.adjustperiod,\n" +
+                    "\tbd_project.project_code,\n" +
+                    "\tbd_project.project_name \n" +
+                    "ORDER BY\n" +
+                    "\txmcode ASC ";
+
+            resultSet = statement.executeQuery(sql);
+            List<Map<String,Object>> materialList = new ArrayList<>();
+            while (resultSet.next()) {
+                HashMap<String, Object> personCost = new HashMap<>();
+                personCost.put("xmcode",resultSet.getString("xmcode"));
+                personCost.put("xmname",resultSet.getString("xmname"));
+                personCost.put("material_compute",resultSet.getString("JFFS"));
+                materialList.add(personCost);
+            }
+            //获取5001科目总生产成本
+            sql = "SELECT\n" +
+                    "\tA.yearv,\n" +
+                    "\tA.monthv,\n" +
+                    "\tA.xmcode,\n" +
+                    "\tA.xmname,\n" +
+                    "\tsum( A.JFFS ) JFFS,\n" +
+                    "\tsum( A.DFFS ) DFFS \n" +
+                    "FROM\n" +
+                    "\t(\n" +
+                    "\tSELECT\n" +
+                    "\t\tgl_detail.yearv yearv,\n" +
+                    "\t\tgl_detail.adjustperiod monthv,\n" +
+                    "\t\torg_accountingbook.CODE orgcode,\n" +
+                    "\t\torg_accountingbook.NAME orgname,\n" +
+                    "\t\tsubstring( bd_account.CODE, 0, 5 ) kmbm,\n" +
+                    "\t\tbd_accasoa.dispname,\n" +
+                    "\t\torg_dept.CODE bmcode,\n" +
+                    "\t\torg_dept.NAME bmname,\n" +
+                    "\t\tbd_project.project_code xmcode,\n" +
+                    "\t\tbd_project.project_name xmname,\n" +
+                    "\t\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localdebitamount ELSE 0 END ) JFFS,\n" +
+                    "\t\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localcreditamount ELSE 0 END ) DFFS \n" +
+                    "\tFROM\n" +
+                    "\t\tgl_detail gl_detail\n" +
+                    "\t\tLEFT JOIN gl_docfree1 ON gl_detail.assid = gl_docfree1.assid\n" +
+                    "\t\tLEFT JOIN org_dept ON gl_docfree1.f1 = org_dept.pk_dept\n" +
+                    "\t\tLEFT JOIN bd_project ON gl_docfree1.f10 = bd_project.pk_project\n" +
+                    "\t\tLEFT JOIN org_accountingbook ON gl_detail.pk_accountingbook = org_accountingbook.pk_accountingbook\n" +
+                    "\t\tLEFT JOIN bd_accasoa ON gl_detail.pk_accasoa = bd_accasoa.pk_accasoa\n" +
+                    "\t\tLEFT JOIN bd_account ON bd_accasoa.pk_account = bd_account.pk_account \n" +
+                    "\tWHERE\n" +
+                    "\t\tsubstring( bd_account.CODE, 0, 5 ) IN ('5001') \n" +
+                    "\t\tAND gl_detail.yearv = '2024' \n" +
+                    "\t\tAND gl_detail.adjustperiod = '10' \n" +
+                    "\t\tAND org_accountingbook.CODE IN ( 'A01-0004', 'A02-0004', 'A11-0004', 'A03-0004', 'A06-0004', 'A04-0004', 'A05-0004', 'A10-0004' ) \n" +
+                    "\t\tAND gl_detail.discardflagv <> 'Y' \n" +
+                    "\t\tAND gl_detail.dr = 0 \n" +
+                    "\t\tAND gl_detail.voucherkindv <> 255 \n" +
+                    "\t\tAND gl_detail.tempsaveflag <> 'Y' \n" +
+                    "\t\tAND gl_detail.voucherkindv <> 5 \n" +
+                    "\t\tAND ( gl_docfree1.F1 <> 'NN/A' OR gl_docfree1.F10 <> 'NN/A' ) \n" +
+                    "\t\tAND 1 = 1 \n" +
+                    "\tGROUP BY\n" +
+                    "\t\tgl_detail.pk_accasoa,\n" +
+                    "\t\tgl_detail.pk_accountingbook,\n" +
+                    "\t\tgl_detail.yearv,\n" +
+                    "\t\tgl_detail.adjustperiod,\n" +
+                    "\t\torg_dept.CODE,\n" +
+                    "\t\torg_dept.NAME,\n" +
+                    "\t\torg_accountingbook.CODE,\n" +
+                    "\t\torg_accountingbook.NAME,\n" +
+                    "\t\tbd_accasoa.dispname,\n" +
+                    "\t\tbd_account.CODE,\n" +
+                    "\t\tbd_project.project_code,\n" +
+                    "\t\tbd_project.project_name \n" +
+                    "\t) A \n" +
+                    "GROUP BY\n" +
+                    "\tA.yearv,\n" +
+                    "\tA.monthv,\n" +
+                    "\tA.xmcode,\n" +
+                    "\tA.xmname \n" +
+                    "ORDER BY\n" +
+                    "\txmcode ASC";
+
+            resultSet = statement.executeQuery(sql);
+            List<Map<String,Object>> otherList = new ArrayList<>();
+            while (resultSet.next()) {
+                HashMap<String, Object> personCost = new HashMap<>();
+                personCost.put("xmcode",resultSet.getString("xmcode"));
+                personCost.put("xmname",resultSet.getString("xmname"));
+                personCost.put("other_compute",resultSet.getString("JFFS"));
+                otherList.add(personCost);
+            }
+
+            //管理费用分子6601+6602+6603
+            sql = "SELECT\n" +
+                    "\tsum( A.JFFS ) JFFS,\n" +
+                    "\tsum( A.DFFS ) DFFS \n" +
+                    "FROM\n" +
+                    "\t(\n" +
+                    "\tSELECT\n" +
+                    "\t\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localdebitamount ELSE 0 END ) JFFS,\n" +
+                    "\t\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localcreditamount ELSE 0 END ) DFFS \n" +
+                    "\tFROM\n" +
+                    "\t\tgl_detail gl_detail\n" +
+                    "\t\tLEFT JOIN gl_docfree1 ON gl_detail.assid = gl_docfree1.assid\n" +
+                    "\t\tLEFT JOIN org_dept ON gl_docfree1.f1 = org_dept.pk_dept\n" +
+                    "\t\tLEFT JOIN bd_project ON gl_docfree1.f10 = bd_project.pk_project\n" +
+                    "\t\tLEFT JOIN org_accountingbook ON gl_detail.pk_accountingbook = org_accountingbook.pk_accountingbook\n" +
+                    "\t\tLEFT JOIN bd_accasoa ON gl_detail.pk_accasoa = bd_accasoa.pk_accasoa\n" +
+                    "\t\tLEFT JOIN bd_account ON bd_accasoa.pk_account = bd_account.pk_account \n" +
+                    "\tWHERE\n" +
+                    "\t\tsubstring( bd_account.CODE, 0, 5 ) IN ( '6602', '6601' ) \n" +
+                    "\t\tAND gl_detail.yearv = '2024' \n" +
+                    "\t\tAND gl_detail.adjustperiod = '10' \n" +
+                    "\t\tAND org_accountingbook.CODE IN ( 'A01-0004', 'A02-0004', 'A11-0004', 'A03-0004', 'A06-0004', 'A04-0004', 'A05-0004', 'A10-0004' ) \n" +
+                    "\t\tAND gl_detail.discardflagv <> 'Y' \n" +
+                    "\t\tAND gl_detail.dr = 0 \n" +
+                    "\t\tAND gl_detail.voucherkindv <> 255 \n" +
+                    "\t\tAND gl_detail.tempsaveflag <> 'Y' \n" +
+                    "\t\tAND gl_detail.voucherkindv <> 5 \n" +
+                    "\t\tAND ( gl_docfree1.F1 <> 'NN/A' OR gl_docfree1.F10 <> 'NN/A' ) \n" +
+                    "\t\tUNION ALL\n" +
+                    "\tSELECT\n" +
+                    "\t\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localdebitamount ELSE 0 END ) JFFS,\n" +
+                    "\t\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localcreditamount ELSE 0 END ) DFFS \n" +
+                    "\tFROM\n" +
+                    "\t\tgl_detail gl_detail\n" +
+                    "\t\tLEFT JOIN org_accountingbook ON gl_detail.pk_accountingbook = org_accountingbook.pk_accountingbook\n" +
+                    "\t\tLEFT JOIN bd_accasoa ON gl_detail.pk_accasoa = bd_accasoa.pk_accasoa\n" +
+                    "\t\tLEFT JOIN bd_account ON bd_accasoa.pk_account = bd_account.pk_account \n" +
+                    "\tWHERE\n" +
+                    "\t\tsubstring( bd_account.CODE, 0, 5 ) IN ( '6603' ) \n" +
+                    "\t\tAND gl_detail.yearv = '2024' \n" +
+                    "\t\tAND gl_detail.adjustperiod = '10' \n" +
+                    "\t\tAND org_accountingbook.CODE IN ( 'A01-0004', 'A02-0004', 'A11-0004', 'A03-0004', 'A06-0004', 'A04-0004', 'A05-0004', 'A10-0004' ) \n" +
+                    "\t\tAND gl_detail.discardflagv <> 'Y' \n" +
+                    "\t\tAND gl_detail.dr = 0 \n" +
+                    "\t\tAND gl_detail.voucherkindv <> 255 \n" +
+                    "\t\tAND gl_detail.tempsaveflag <> 'Y' \n" +
+                    "\t\tAND gl_detail.voucherkindv <> 5 \n" +
+                    "\tAND 1 = 1 \n" +
+                    "\t)A";
+
+            resultSet = statement.executeQuery(sql);
+            List<Map<String,Object>> manageList = new ArrayList<>();
+            while (resultSet.next()) {
+                HashMap<String, Object> personCost = new HashMap<>();
+                personCost.put("manage_compute",resultSet.getString("JFFS"));
+                manageList.add(personCost);
+            }
+            //管理费用分母
+            sql = "SELECT\n" +
+                    "\tbd_project.project_code xmcode,\n" +
+                    "\tbd_project.project_name xmname,\n" +
+                    "\tgl_detail.yearv yearv,\n" +
+                    "\tgl_detail.adjustperiod monthv,\n" +
+                    "\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localdebitamount ELSE 0 END ) JFFS,\n" +
+                    "\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localcreditamount ELSE 0 END ) DFFS \n" +
+                    "FROM\n" +
+                    "\tgl_detail gl_detail\n" +
+                    "\tLEFT JOIN gl_docfree1 ON gl_detail.assid = gl_docfree1.assid\n" +
+                    "\tLEFT JOIN org_dept ON gl_docfree1.f1 = org_dept.pk_dept\n" +
+                    "\tLEFT JOIN bd_project ON gl_docfree1.f10 = bd_project.pk_project\n" +
+                    "\tLEFT JOIN org_accountingbook ON gl_detail.pk_accountingbook = org_accountingbook.pk_accountingbook\n" +
+                    "\tLEFT JOIN bd_accasoa ON gl_detail.pk_accasoa = bd_accasoa.pk_accasoa\n" +
+                    "\tLEFT JOIN bd_account ON bd_accasoa.pk_account = bd_account.pk_account \n" +
+                    "WHERE\n" +
+                    "\tbd_account.CODE IN ( '600101','600109','600102','600106','600103') \n" +
+                    "\tAND gl_detail.yearv = '2024' \n" +
+                    "\tAND gl_detail.adjustperiod = '10' \n" +
+                    "\tAND org_accountingbook.CODE IN ( 'A01-0004', 'A02-0004', 'A11-0004', 'A03-0004', 'A06-0004', 'A04-0004', 'A05-0004', 'A10-0004' ) \n" +
+                    "\tAND gl_detail.discardflagv <> 'Y' \n" +
+                    "\tAND gl_detail.dr = 0 \n" +
+                    "\tAND gl_detail.voucherkindv <> 255 \n" +
+                    "\tAND gl_detail.tempsaveflag <> 'Y' \n" +
+                    "\tAND gl_detail.voucherkindv <> 5 \n" +
+                    "\tAND ( gl_docfree1.F1 <> 'NN/A' OR gl_docfree1.F10 <> 'NN/A' ) \n" +
+                    "\tAND 1 = 1 \n" +
+                    "GROUP BY\n" +
+                    "\tgl_detail.yearv,\n" +
+                    "\tgl_detail.adjustperiod,\n" +
+                    "\tbd_project.project_code,\n" +
+                    "\tbd_project.project_name \n" +
+                    "ORDER BY\n" +
+                    "\txmcode ASC ";
+
+            resultSet = statement.executeQuery(sql);
+            List<Map<String,Object>> manageProjectList = new ArrayList<>();
+            while (resultSet.next()) {
+                HashMap<String, Object> personCost = new HashMap<>();
+                personCost.put("xmcode",resultSet.getString("xmcode"));
+                personCost.put("xmname",resultSet.getString("xmname"));
+                personCost.put("manage_project_compute",resultSet.getString("JFFS"));
+                manageProjectList.add(personCost);
+            }
+
+            //企业所得税6801
+            sql = "SELECT\n" +
+                    "\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localdebitamount ELSE 0 END ) JFFS,\n" +
+                    "\tsum( CASE WHEN adjustperiod >= '01' AND adjustperiod <= '12' THEN gl_detail.localcreditamount ELSE 0 END ) DFFS \n" +
+                    "FROM\n" +
+                    "\tgl_detail gl_detail\n" +
+                    "\tLEFT JOIN org_accountingbook ON gl_detail.pk_accountingbook = org_accountingbook.pk_accountingbook\n" +
+                    "\tLEFT JOIN bd_accasoa ON gl_detail.pk_accasoa = bd_accasoa.pk_accasoa\n" +
+                    "\tLEFT JOIN bd_account ON bd_accasoa.pk_account = bd_account.pk_account \n" +
+                    "WHERE\n" +
+                    "\tsubstring( bd_account.CODE, 0, 5 ) IN ( '6801' ) \n" +
+                    "\tAND gl_detail.yearv = '2024' \n" +
+                    "\tAND gl_detail.adjustperiod = '10' \n" +
+                    "\tAND org_accountingbook.CODE IN ( 'A01-0004', 'A02-0004', 'A11-0004', 'A03-0004', 'A06-0004', 'A04-0004', 'A05-0004', 'A10-0004' ) \n" +
+                    "\tAND gl_detail.discardflagv <> 'Y' \n" +
+                    "\tAND gl_detail.dr = 0 \n" +
+                    "\tAND gl_detail.voucherkindv <> 255 \n" +
+                    "\tAND gl_detail.tempsaveflag <> 'Y' \n" +
+                    "\tAND gl_detail.voucherkindv <> 5 ";
+
+            resultSet = statement.executeQuery(sql);
+            List<Map<String,Object>> businessIncomeList = new ArrayList<>();
+            while (resultSet.next()) {
+                HashMap<String, Object> personCost = new HashMap<>();
+                personCost.put("business_income_compute",resultSet.getString("JFFS"));
+                businessIncomeList.add(personCost);
+            }
+        } catch (Exception e) {
+            log.info("数据库连接异常"+e.toString());
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            try {
+                if (resultSet != null) resultSet.close();
+                if (mysqlCon != null) mysqlCon.close();
+                if (statement != null) statement.close();
+                if (connection != null) connection.close();
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
     private void deleteMonthDate(String formUuid,String key, String year, String month){
         String yearAndMonth = year;
         if (ObjectUtil.isNotNull(month)){
@@ -400,6 +732,5 @@ public class NCServiceImpl implements NCService {
                     .formInstanceId(e.get("formInstanceId").toString())
                     .build(), YDConf.FORM_OPERATION.delete);
         });
-
     }
 }

+ 19 - 81
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/TimerServiceImpl.java

@@ -813,78 +813,7 @@ public class TimerServiceImpl implements TimerService {
         }
     }
 
-    //    public void projectUnshipped() {
-//        //无需出库项目
-//        List<Map> materialList = ydService.queryFormData_all(YDParam.builder()
-//                .appType("APP_ERBDTFS82HOVBPL3NFH0")
-//                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-//                .formUuid("FORM-38649DA9003B48F4A7DC476122E4D6C1JNKU")
-//                .build());
-//        List<Map<String,Object>> result = new ArrayList<>();
-//        Set<String> set = materialList.stream().map(map -> map.get("textField_ltxutdfi").toString()).collect(Collectors.toSet());
-//        Map<String, List<Map>> codeList = materialList.stream().collect(Collectors.groupingBy(map -> map.get("textField_ltxutdfi").toString()));
-//        codeList.forEach((k,sList)->{
-//            Map<String, Object> hashMap = new HashMap<>();
-//            IntSummaryStatistics sum = sList.stream().collect(Collectors.summarizingInt(e -> parseInt(e.get("numberField_lu24bwd0").toString())));
-//            if (sum.getSum() == 0){
-//                hashMap.put("code",sList.get(0).get("textField_ltxutdfi"));
-//                hashMap.put("sum",sum.getSum());
-//                result.add(hashMap);
-//            }
-//        });
-//        List<Map<String,Object>> noNeedResult = result;
-//        //本周已出库项目
-//        long beginWeek = DateUtil.beginOfWeek(DateUtil.date()).getTime();
-//        long endWeek = DateUtil.endOfWeek(DateUtil.date()).getTime();
-//        String[] dateList = new String[2];
-//        dateList[0] = String.valueOf(beginWeek);
-//        dateList[1] = String.valueOf(endWeek);
-//        List<Map> alredyList = ydService.queryFormData_all(YDParam.builder()
-//                .appType("APP_ERBDTFS82HOVBPL3NFH0")
-//                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-//                .formUuid("FORM-38649DA9003B48F4A7DC476122E4D6C1JNKU")
-//                .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_lvvthng6", (Object) dateList)))
-//                .build());
-//        if (alredyList.size()>0 && ObjectUtil.isNotNull(alredyList)){
-//            alredyList = alredyList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
-//                    new TreeSet<>(Comparator.comparing(o-> o.get("textField_ltxutdfi").toString()))), ArrayList::new));
-//
-//            //合并无需出库项目和本周已出库项目
-//            alredyList.forEach(o->{
-//                HashMap<String, Object> map = new HashMap<>();
-//                map.put("code",o.get("textField_ltxutdfi"));
-//                noNeedResult.add(map);
-//            });
-//        }
-//        //处理数据
-//        List<Map> allProjectList = ydService.queryFormData_all(YDParam.builder()
-//                .appType("APP_ERBDTFS82HOVBPL3NFH0")
-//                .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-//                .formUuid("FORM-38649DA9003B48F4A7DC476122E4D6C1JNKU")
-//                .build());
-//        allProjectList.forEach(e->{
-//            int status = 1;
-//            if (ObjectUtil.isNotEmpty(e.get("selectField_lrn2oy4a")) && "已撤场".equals(e.get("selectField_lrn2oy4a").toString())){
-//                status = 0;
-//            }else {
-//                for (int i = 0; i < noNeedResult.size(); i++) {
-//                    if (e.get("textField_ltxrn8h1").equals(noNeedResult.get(i).get("code"))){
-//                        status = 0;
-//                        break;
-//                    }
-//                }
-//                for (String s : set) {
-//
-//                }
-//            }
-//            ydClient.operateData(YDParam.builder()
-//                    .appType("APP_ERBDTFS82HOVBPL3NFH0")
-//                    .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-//                    .formInstanceId(e.get("formInstanceId").toString())
-//                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("numberField_m230rjg5",status)))
-//                    .build(), YDConf.FORM_OPERATION.update);
-//        });
-//    }
+
     @Override
     public void projectUnshipped() {
         List<Map> allProjectList = ydService.queryFormData_all(YDParam.builder()
@@ -1057,37 +986,46 @@ public class TimerServiceImpl implements TimerService {
     @Override
     public void updateIsSupply(HttpServletRequest request) {
         Map params = request.getParameterMap();
+//        log.info("params:{}",params.toString());
+//        List<Object> formInstId = Arrays.asList(params.get("formInstId"));
+        String[] strings = (String[]) params.get("formInstId");
+        log.info("formInstId:{}",strings[0]);
         ydClient.operateData(YDParam.builder()
                 .appType("APP_ERBDTFS82HOVBPL3NFH0")
                 .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                .formInstanceId(params.get("formInstId").toString())
+                .formInstanceId(strings[0])
                 .updateFormDataJson(JSON.toJSONString(UtilMap.map("radioField_m38dy26d","是")))
                 .build(), YDConf.FORM_OPERATION.update);
     }
 
     @Override
-    public boolean selectIsSupply(HttpServletRequest request) {
-        Map params = request.getParameterMap();
+    public Map<String, Boolean> selectIsSupply(String projectCode) {
+//        Map params = request.getParameterMap();
+//        String[] strings = (String[]) params.get("projectCode");
         List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
                 .appType("APP_ERBDTFS82HOVBPL3NFH0")
                 .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
                 .formUuid("FORM-97BA6C6C8C50416A9E5854F2F4B5C3F3R4WC")
-                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lrr3rg6h", params.get("projectCode").toString())))
+                .searchFieldJson(JSON.toJSONString(UtilMap.map("textField_lrr3rg6h", projectCode)))
                 .build());
+        Map<String, Boolean> map = new HashMap<>();
+        map.put("success",true);
         if (ObjectUtil.isNotNull(dataList)){
             for (int i = 0; i < dataList.size(); i++) {
-                String isSupply = dataList.get(i).get("radioField_m38dy26d").toString();
+                String isSupply = dataList.get(i).get("radioField_m38dy26d") == null?"":dataList.get(i).get("radioField_m38dy26d").toString();
                 if ("否".equals(isSupply)||"".equals(isSupply)){
-                    return false;
+                    map.put("success",false);
                 }
             }
         }
-        return true;
+        return map;
     }
 
     @Override
-    public boolean testSelectIsSupply(HttpServletRequest request) {
-        return false;
+    public Map<String, Boolean> testSelectIsSupply(HttpServletRequest request) {
+        Map<String, Boolean> map = new HashMap<>();
+        map.put("success",true);
+        return map;
     }
 
     @Override