Kaynağa Gözat

各项目经营分析报表抽取NC数据整合宜搭收入写入数据库回写宜搭

fyz 3 ay önce
ebeveyn
işleme
1155f98b7f

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

@@ -224,6 +224,11 @@ public class TimerController {
     public void testNC(){
         ncService.getProjectOperate();
     }
+
+    @PostMapping("testNCToYiDa")
+    public void testNCToYiDa(){
+        ncService.ncToYiDa();
+    }
     /**
      * 分组查询项目点经营分析报表
      *

+ 8 - 1
mjava-lanyun/src/main/java/com/malk/lanyun/schedule/NCTask.java

@@ -48,8 +48,15 @@ public class NCTask {
     /**
      * 每月1日凌晨6点跑批NC供应商付款
      */
-    @Scheduled(cron = "0 0 7 * * ?")
+    @Scheduled(cron = "0 0 6 * * ?")
     void supplierPay() {
         ncService.getSupplierPay();
     }
+    /**
+     * 每月1日凌晨6点跑批NC同步宜搭
+     */
+    @Scheduled(cron = "0 0 0/2 * * ?")
+    void ncToYiDa() {
+        ncService.ncToYiDa();
+    }
 }

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

@@ -22,4 +22,5 @@ public interface NCService {
     //各项目经营分析人工成本
     void getProjectOperate();
 
+    void ncToYiDa();
 }

+ 101 - 26
mjava-lanyun/src/main/java/com/malk/lanyun/service/impl/NCServiceImpl.java

@@ -777,20 +777,15 @@ public class NCServiceImpl implements NCService {
             log.info("sumProject:{}",sumProject);
             log.info("sumSamll:{}",sumSamll);
 
-            List<Map> personList = ydService.queryFormData_all(YDParam.builder()
-                    .appType("APP_ERBDTFS82HOVBPL3NFH0")
-                    .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-                    .formUuid("FORM-B8997C89645241F996FB7A53AAC393B08R96")
-                    .searchFieldJson(JSON.toJSONString(UtilMap.map("radioField_m1zuxqf0","是")))
-                    .build());
-//            List<Map> smallList = ydService.queryFormData_all(YDParam.builder()
-//                    .appType("APP_ERBDTFS82HOVBPL3NFH0")
-//                    .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
-//                    .formUuid("FORM-7E47DA25341647ED9B17F3BC728AC3F7XRSZ")
-//                    .searchFieldJson(JSON.toJSONString(UtilMap.map("dateField_lr3cqz3x, dateField_lr3cqz3y", startList,endList)))
-//                    .build());
-//            Double sumSamll = smallList.size()==0?0.0:smallList.stream().map(e -> new Double(e.get("numberField_lrnc4oxe_value").toString())).reduce(0.0, Double::sum);
-//            log.info("sumSmall:{}",sumSamll);
+            String delete = "DELETE \n" +
+                    "FROM\n" +
+                    "\t`lanyun_project_analysis` \n" +
+                    "WHERE\n" +
+                    "\tmonthString = '"+ yearAndMonth +"' \n" +
+                    "\t";
+
+            ps[0].executeQuery(delete);
+
             String insert = "INSERT INTO `dingtalk`.`lanyun_project_analysis_copy1`(`project_name`, `belong_project`, `month`, `status`, `predict_income`, " +
                     "`open`, `income`, `person`, `person_cost`, `material`, `other_cost`, `cost_sum`, `taxes`, `gross_profit`, `gross_margin`, `overhead`, " +
                     "`corporate_income_tax`, `net_profit`, `net_margin`, `format`, `customer_system`, `profit_loss`, `approach_date`, `level`, `notes`, " +
@@ -799,8 +794,6 @@ public class NCServiceImpl implements NCService {
             ps[0] = mysqlCon.prepareStatement(insert);
 
             dataList.forEach(e->{
-//                if ("PM00167".equals(e.get("textField_ltxrn8h1"))){
-
                 List<Map> tableList = ydService.queryDetails(YDParam.builder().
                         appType("APP_ERBDTFS82HOVBPL3NFH0")
                         .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
@@ -811,9 +804,11 @@ public class NCServiceImpl implements NCService {
                 tableList = tableList.stream().filter(item -> yearAndMonth.equals(item.get("textField_luh0k82j"))).collect(Collectors.toList());
                 String code = e.get("textField_ltxrn8h1").toString();
                 String name = e.get("textField_lrr3rg6i").toString();
+                int personCount = e.get("numberField_lrpvi1wf_value") == null || e.get("numberField_lrpvi1wf_value").toString().isEmpty() ? 0 : Integer.parseInt(e.get("numberField_lrpvi1wf_value").toString());
                 log.info("项目点名称:{}",name);
                 final Double[] sum = {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
                 final Integer[] person = {0};
+                person[0] = person[0] + personCount;
                 if (!tableList.isEmpty()){
                     tableList.forEach(t->{
                         double open = t.get("numberField_lrru2to2_value") == null || t.get("numberField_lrru2to2_value").toString().isEmpty() ? 0.0: Double.parseDouble(t.get("numberField_lrru2to2_value").toString());
@@ -821,11 +816,9 @@ public class NCServiceImpl implements NCService {
                         //小业主预估
                         double small = (t.get("numberField_m5uf580r_value") == null || t.get("numberField_m5uf580r_value").toString().isEmpty()) ? 0f : Double.parseDouble(t.get("numberField_m5uf580r_value").toString());
                         //总计人数
-                        int personCount = t.get("numberField_lrpvi1wf_value") == null ? 0 : Integer.parseInt(t.get("numberField_lrpvi1wf_value").toString());
                         sum[7] = sum[7] + income;
                         sum[8] = sum[8] + open;
                         sum[0] = sum[0] + small;
-                        person[0] = person[0] + personCount;
                     });
                 }
 
@@ -838,14 +831,14 @@ public class NCServiceImpl implements NCService {
 //                        }
 //                    });
 //                }
-                //算薪人数
-                if (ObjectUtil.isNotNull(personList)){
-                    personList.forEach(s->{
-                        if (name.equals(s.get("textField_lxmxtgkp"))){
-                            person[0] = person[0] + 1;
-                        }
-                    });
-                }
+//                //算薪人数
+//                if (ObjectUtil.isNotNull(personList)){
+//                    personList.forEach(s->{
+//                        if (name.equals(s.get("textField_lxmxtgkp"))){
+//                            person[0] = person[0] + 1;
+//                        }
+//                    });
+//                }
                 //生产成本-工资
                 if (ObjectUtil.isNotNull(personCostList)){
                     personCostList.forEach(s->{
@@ -982,6 +975,88 @@ public class NCServiceImpl implements NCService {
         }
     }
 
+    @Override
+    public void ncToYiDa() {
+        int year = lastMonth.getYear();
+        String month = String.format("%02d",lastMonth.getMonthValue()) ;
+        String yearAndMonth = year +"-"+month;
+
+        String sql = "SELECT\n" +
+                "\t* \n" +
+                "FROM\n" +
+                "\t`lanyun_project_analysis` \n" +
+                "WHERE\n" +
+                "\tmonthString >= '"+ yearAndMonth +"' \n" +
+                "\tAND is_cogradient = '否' \n" +
+                "\tAND income + person + cost_sum + overhead > 0";
+        Connection connection = null;
+        Statement statement = null;
+        PreparedStatement ps = null;
+        ResultSet resultSet = null;
+        List<String> ids = new ArrayList<>();
+        try {
+            connection = DriverManager.getConnection(mySqlBean.getUrl(), mySqlBean.getUsername(), mySqlBean.getPassword());
+            statement = connection.createStatement();
+            resultSet = statement.executeQuery(sql);
+            while (resultSet.next()){
+                Map<String, Object> map = new HashMap<>();
+                map.put("textField_dliiyul",resultSet.getString("project_name"));
+                map.put("textField_bheotm5",resultSet.getString("belong_project"));
+                map.put("dateField_lcwv382",resultSet.getString("month"));
+                map.put("textField_pa6o780",resultSet.getString("status"));
+                map.put("numberField_5wyyb42",resultSet.getString("predict_income"));
+                map.put("numberField_c4acnrg",resultSet.getString("open"));
+                map.put("numberField_zjdki9k",resultSet.getString("income"));
+                map.put("numberField_hg6jznm",resultSet.getString("person"));
+                map.put("numberField_7ga9c5w",resultSet.getString("person_cost"));
+                map.put("numberField_c3cqsfv",resultSet.getString("material"));
+                map.put("numberField_m7a8qfru",resultSet.getString("folding_repair"));
+                map.put("numberField_avaexyf",resultSet.getString("other_cost"));
+                map.put("numberField_gub2ul5",resultSet.getString("cost_sum"));
+                map.put("numberField_hqiac12",resultSet.getString("taxes"));
+                map.put("numberField_lz6mt3xq",resultSet.getString("gross_profit"));
+                map.put("numberField_lz9n3fm9",resultSet.getString("gross_margin"));
+                map.put("numberField_ln701sy",resultSet.getString("overhead"));
+                map.put("numberField_fmhzxdr",resultSet.getString("corporate_income_tax"));
+                map.put("numberField_lz6mt3xr",resultSet.getString("net_profit"));
+                map.put("numberField_lz9n3fma",resultSet.getString("net_margin"));
+                map.put("textField_tpb3m2f",resultSet.getString("format"));
+                map.put("textField_2adicsn",resultSet.getString("customer_system"));
+                map.put("textField_1yw4mx4",resultSet.getString("profit_loss"));
+                map.put("dateField_ji5yfvf",resultSet.getString("approach_date"));
+                map.put("textField_h2qx5nz",resultSet.getString("level"));
+                map.put("textField_35paoph",resultSet.getString("notes"));
+
+                String id = resultSet.getString("id");
+                ids.add(id);
+
+                ydClient.operateData(YDParam.builder()
+                        .appType("APP_ERBDTFS82HOVBPL3NFH0")
+                        .systemToken("RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP")
+//                        .formUuid("FORM-946B7B31D7FD45268DA992681F81F619FFVC")
+                        .formUuid("FORM-954C78969A864D95A1BC0CE9F69299E8VI38")
+                        .formDataJson(JSON.toJSONString(map))
+                        .build(), YDConf.FORM_OPERATION.create);
+            }
+            String join = "('" + String.join("','", ids) + "')";
+            sql = "UPDATE `lanyun_project_analysis_copy1` SET is_cogradient = '是' WHERE id in "+ join +"";
+            ps = connection.prepareStatement(sql);
+            ps.execute();
+        } catch (SQLException e) {
+            log.info("数据库执行失败:{}",e);
+        }finally {
+            try {
+                statement.close();
+                ps.close();
+                connection.close();
+            } catch (SQLException e) {
+                log.info("数据库关闭失败");
+                throw new RuntimeException(e);
+            }
+        }
+
+    }
+
     private void deleteMonthDate(String formUuid,String key, String year, String month){
         String yearAndMonth = year;
         if (ObjectUtil.isNotNull(month)){