Преглед изворни кода

彪马月统计--固话更新

zhangyao пре 2 недеља
родитељ
комит
81efae40dc

+ 98 - 46
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/controller/contractServiceController.java

@@ -210,54 +210,106 @@ public class contractServiceController {
 */
     @Mapping(value = "com.awspaas.user.apps.donenow_ctt.BO_EU_DNV_RPT_MONTH_PUMA")
     public ResponseObject BO_EU_DNV_RPT_MONTH_PUMA(UserContext uc, int startAccountPeriod, int endAccountPeriod) {
-        // 直接执行upsert操作,无需先删除
-        String sql = "INSERT INTO BO_EU_DNV_RPT_MONTH_PUMA \n" +
-                "\tSELECT t.*, onetime_dollars+tube_dollars+property_manage_dollars+construction_dollars+phone_dollars+datacard_dollars+adsl_dollars AS total_dollars, \n" +
-                "\t       CONCAT(LEFT(item_month,4), QUARTER(CONCAT(item_month,'01'))) AS item_quarter, \n" +
-                "\t       '" + uc.getUID() + "' AS userid \n" +
-                "FROM (\n" +
-                "    SELECT item_month, a.CONTRACT_ID, no AS contract_no, project_Location, CONTRACT_START_DATE, \n" +
-                "           GROUP_CONCAT(DISTINCT ITEM_MODEL) AS ITEM_MODEL,\n" +
-                "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4684 AND contract_id = a.contract_id), 0) AS adsl_dollars,\n" +
-                "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4683 AND contract_id = a.contract_id), 0) AS onetime_dollars,\n" +
-                "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4685 AND contract_id = a.contract_id), 0) AS tube_dollars,\n" +
-                "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4686 AND contract_id = a.contract_id), 0) AS property_manage_dollars,\n" +
-                "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4687 AND contract_id = a.contract_id), 0) AS construction_dollars,\n" +
-                "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4688 AND contract_id = a.contract_id), 0) AS phone_dollars,\n" +
-                "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4689 AND contract_id = a.contract_id), 0) AS datacard_dollars,\n" +
-                "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4691 AND contract_id = a.contract_id), 0) AS datacard_personal_dollars,\n" +
-                "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4690 AND contract_id = a.contract_id), 0) AS vats_service_dollars,\n" +
-                "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND item_type = 1318 AND contract_id = a.contract_id), 0) AS product_dollars\n" +
-                "    FROM VIEW_EU_DNV_POSTED_ALL a\n" +
-                "    WHERE account_id = 'e9358570-f6f3-4a43-9268-ae265f3cc030'\n" +
-                "    GROUP BY item_month, a.CONTRACT_ID, no, project_Location, CONTRACT_START_DATE\n" +
-                ") t \n" +
-                "WHERE t.item_month >= " + startAccountPeriod + " AND t.item_month <= " + endAccountPeriod + "\n" +
-                "ORDER BY item_month\n" +
-                "ON DUPLICATE KEY UPDATE \n" +
-                "    contract_no = VALUES(contract_no),\n" +
-                "    project_Location = VALUES(project_Location),\n" +
-                "    CONTRACT_START_DATE = VALUES(CONTRACT_START_DATE),\n" +
-                "    ITEM_MODEL = VALUES(ITEM_MODEL),\n" +
-                "    adsl_dollars = VALUES(adsl_dollars),\n" +
-                "    onetime_dollars = VALUES(onetime_dollars),\n" +
-                "    tube_dollars = VALUES(tube_dollars),\n" +
-                "    property_manage_dollars = VALUES(property_manage_dollars),\n" +
-                "    construction_dollars = VALUES(construction_dollars),\n" +
-                "    phone_dollars = VALUES(phone_dollars),\n" +
-                "    datacard_dollars = VALUES(datacard_dollars),\n" +
-                "    datacard_personal_dollars = VALUES(datacard_personal_dollars),\n" +
-                "    vats_service_dollars = VALUES(vats_service_dollars),\n" +
-                "    product_dollars = VALUES(product_dollars),\n" +
-                "    total_dollars = VALUES(total_dollars),\n" +
-                "    item_quarter = VALUES(item_quarter),\n" +
-                "    userid = VALUES(userid);";
-
-        contractLogger.info("BO_EU_DNV_RPT_MONTH_PUMA SQL: " + sql);
 
-        DBSql.update(sql);
+        Connection connUpdate = null;
+        try {
+            connUpdate = DBSql.open();
+            connUpdate.setAutoCommit(false);
+
+            DBSql.update(connUpdate, "delete from BO_EU_DNV_RPT_MONTH_PUMA where item_month >=" + startAccountPeriod + " AND item_month <=" + endAccountPeriod);
+
+            // 直接执行upsert操作,无需先删除
+            String sql = "INSERT INTO BO_EU_DNV_RPT_MONTH_PUMA \n" +
+                    "\tSELECT t.*, onetime_dollars+tube_dollars+property_manage_dollars+construction_dollars+phone_dollars+datacard_dollars+adsl_dollars AS total_dollars, \n" +
+                    "\t       CONCAT(LEFT(item_month,4), QUARTER(CONCAT(item_month,'01'))) AS item_quarter, \n" +
+                    "\t       '" + uc.getUID() + "' AS userid \n" +
+                    "FROM (\n" +
+                    "    SELECT item_month, a.CONTRACT_ID, no AS contract_no, project_Location, CONTRACT_START_DATE, \n" +
+                    "           GROUP_CONCAT(DISTINCT ITEM_MODEL) AS ITEM_MODEL,\n" +
+                    "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4684 AND contract_id = a.contract_id), 0) AS adsl_dollars,\n" +
+                    "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4683 AND contract_id = a.contract_id), 0) AS onetime_dollars,\n" +
+                    "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4685 AND contract_id = a.contract_id), 0) AS tube_dollars,\n" +
+                    "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4686 AND contract_id = a.contract_id), 0) AS property_manage_dollars,\n" +
+                    "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4687 AND contract_id = a.contract_id), 0) AS construction_dollars,\n" +
+                    "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4688 AND contract_id = a.contract_id), 0) AS phone_dollars,\n" +
+                    "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4689 AND contract_id = a.contract_id), 0) AS datacard_dollars,\n" +
+                    "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4691 AND contract_id = a.contract_id), 0) AS datacard_personal_dollars,\n" +
+                    "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND group_Label = 4690 AND contract_id = a.contract_id), 0) AS vats_service_dollars,\n" +
+                    "           IFNULL((SELECT SUM(IFNULL(DOLLARS,0)) FROM VIEW_EU_DNV_POSTED_ALL WHERE item_month = a.item_month AND item_type = 1318 AND contract_id = a.contract_id), 0) AS product_dollars\n" +
+                    "    FROM VIEW_EU_DNV_POSTED_ALL a\n" +
+                    "    WHERE account_id = 'e9358570-f6f3-4a43-9268-ae265f3cc030'\n" +
+                    "    GROUP BY item_month, a.CONTRACT_ID, no, project_Location, CONTRACT_START_DATE\n" +
+                    ") t \n" +
+                    "WHERE t.item_month >= " + startAccountPeriod + " AND t.item_month <= " + endAccountPeriod + "\n" +
+                    "ORDER BY item_month\n" +
+                    "ON DUPLICATE KEY UPDATE \n" +
+                    "    contract_no = VALUES(contract_no),\n" +
+                    "    project_Location = VALUES(project_Location),\n" +
+                    "    CONTRACT_START_DATE = VALUES(CONTRACT_START_DATE),\n" +
+                    "    ITEM_MODEL = VALUES(ITEM_MODEL),\n" +
+                    "    adsl_dollars = VALUES(adsl_dollars),\n" +
+                    "    onetime_dollars = VALUES(onetime_dollars),\n" +
+                    "    tube_dollars = VALUES(tube_dollars),\n" +
+                    "    property_manage_dollars = VALUES(property_manage_dollars),\n" +
+                    "    construction_dollars = VALUES(construction_dollars),\n" +
+                    "    phone_dollars = VALUES(phone_dollars),\n" +
+                    "    datacard_dollars = VALUES(datacard_dollars),\n" +
+                    "    datacard_personal_dollars = VALUES(datacard_personal_dollars),\n" +
+                    "    vats_service_dollars = VALUES(vats_service_dollars),\n" +
+                    "    product_dollars = VALUES(product_dollars),\n" +
+                    "    total_dollars = VALUES(total_dollars),\n" +
+                    "    item_quarter = VALUES(item_quarter),\n" +
+                    "    userid = VALUES(userid);";
+
+            contractLogger.info("BO_EU_DNV_RPT_MONTH_PUMA SQL: " + sql);
+
+            DBSql.update(connUpdate, sql);
+
+            DBSql.update(connUpdate, "UPDATE BO_EU_DNV_RPT_MONTH_PUMA p JOIN( SELECT b.REFERENCE_NAME,b.CONTRACT_ID,a.FEE_DATE_SHANYAO,SUM(a.EXTENDED_PRICE) AS EXTENDED_PRICE FROM BO_EU_DNCTT_PROXY_PAY a JOIN BO_EU_DNCRM_INSTALLED_PRODUCT b ON b.REFERENCE_NAME=CONCAT('固话',a.PHONE) GROUP BY b.REFERENCE_NAME,b.CONTRACT_ID,a.FEE_DATE_SHANYAO) g ON p.CONTRACT_ID=g.CONTRACT_ID AND p.item_month=g.FEE_DATE_SHANYAO SET p.phone_dollars=g.EXTENDED_PRICE");
+
+            DBSql.update(connUpdate, "INSERT INTO BO_EU_DNV_RPT_MONTH_PUMA (\n" +
+                    "    CONTRACT_ID,\n" +
+                    "    item_month,\n" +
+                    "    phone_dollars\n" +
+                    ")\n" +
+                    "SELECT \n" +
+                    "    g.CONTRACT_ID,\n" +
+                    "    g.FEE_DATE_SHANYAO AS item_month,\n" +
+                    "    g.EXTENDED_PRICE AS phone_dollars\n" +
+                    "FROM (\n" +
+                    "    SELECT \n" +
+                    "        b.REFERENCE_NAME,\n" +
+                    "        b.CONTRACT_ID,\n" +
+                    "        a.FEE_DATE_SHANYAO,\n" +
+                    "        SUM(a.EXTENDED_PRICE) AS EXTENDED_PRICE\n" +
+                    "    FROM BO_EU_DNCTT_PROXY_PAY a\n" +
+                    "    JOIN BO_EU_DNCRM_INSTALLED_PRODUCT b \n" +
+                    "        ON b.REFERENCE_NAME = CONCAT('固话', a.PHONE)\n" +
+                    " WHERE a.FEE_DATE_SHANYAO>='" + startAccountPeriod + "' AND a.FEE_DATE_SHANYAO<='" + endAccountPeriod + "' \n" +
+                    "    GROUP BY b.REFERENCE_NAME, b.CONTRACT_ID, a.FEE_DATE_SHANYAO\n" +
+                    ") g\n" +
+                    "ON DUPLICATE KEY UPDATE \n" +
+                    "    phone_dollars = g.EXTENDED_PRICE;");
+
+            connUpdate.commit();
+        } catch (SQLException e) {
+            e.printStackTrace();
+            try {
+                connUpdate.rollback();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+        } finally {
+            if (connUpdate != null) {
+                try {
+                    connUpdate.setAutoCommit(true);
+                } catch (SQLException e) {
+
+                }
+            }
+            DBSql.close(connUpdate);
+        }
 
-        DBSql.update("UPDATE BO_EU_DNV_RPT_MONTH_PUMA p JOIN( SELECT b.REFERENCE_NAME,b.CONTRACT_ID,a.FEE_DATE_SHANYAO,SUM(a.EXTENDED_PRICE) AS EXTENDED_PRICE FROM BO_EU_DNCTT_PROXY_PAY a JOIN BO_EU_DNCRM_INSTALLED_PRODUCT b ON b.REFERENCE_NAME=CONCAT('固话',a.PHONE) GROUP BY b.REFERENCE_NAME,b.CONTRACT_ID,a.FEE_DATE_SHANYAO) g ON p.CONTRACT_ID=g.CONTRACT_ID AND p.item_month=g.FEE_DATE_SHANYAO SET p.phone_dollars=g.EXTENDED_PRICE");
 
         return ResponseObject.newOkResponse();
     }