|
|
@@ -210,54 +210,114 @@ 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" +
|
|
|
+ "\t\titem_quarter,\n" +
|
|
|
+ " phone_dollars\n" +
|
|
|
+ ")\n" +
|
|
|
+ "SELECT \n" +
|
|
|
+ " g.CONTRACT_ID,\n" +
|
|
|
+ " g.FEE_DATE_SHANYAO AS item_month,\n" +
|
|
|
+ "\t\tg.item_quarter,\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" +
|
|
|
+ "\t\t\t\tCONCAT(LEFT(a.FEE_DATE_SHANYAO,4), QUARTER(CONCAT(a.FEE_DATE_SHANYAO,'01'))) AS item_quarter,\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" +
|
|
|
+ "\t\tWHERE a.FEE_DATE_SHANYAO>=" + startAccountPeriod + " AND a.FEE_DATE_SHANYAO<=" + endAccountPeriod + " \t\t\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;");
|
|
|
+
|
|
|
+
|
|
|
+ //重新汇总
|
|
|
+ DBSql.update(connUpdate, "UPDATE BO_EU_DNV_RPT_MONTH_PUMA SET total_dollars=onetime_dollars+tube_dollars+property_manage_dollars+construction_dollars+phone_dollars+datacard_dollars+adsl_dollars WHERE 1=1");
|
|
|
+
|
|
|
+
|
|
|
+ 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();
|
|
|
}
|