|
|
@@ -2522,11 +2522,6 @@ public class contractApproveController {
|
|
|
@Mapping(value = "com.awspaas.user.apps.donenow_ctt.insertPumaDataByQuarter")
|
|
|
public ResponseObject insertPumaDataByQuarter(UserContext uc) {
|
|
|
try {
|
|
|
- ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance(
|
|
|
- "obj_516c3984931b4153b18f5445a2ed30d0",
|
|
|
- uc.getUID(),
|
|
|
- "彪马客户对账单-季度"
|
|
|
- );
|
|
|
String querySql = "SELECT item_quarter, " +
|
|
|
"sum(onetime_dollars) as onetime_dollars, " +
|
|
|
"sum(tube_dollars) as tube_dollars, " +
|
|
|
@@ -2538,8 +2533,7 @@ public class contractApproveController {
|
|
|
"sum(vats_service_dollars) as vats_service_dollars, " +
|
|
|
"sum(product_dollars) as product_dollars, " +
|
|
|
"sum(adsl_dollars) as adsl_dollars, " +
|
|
|
- "sum(total_dollars) as total_dollars, " +
|
|
|
- "sum(VATS_SERVICE_DOLLARS) as VATS_SERVICE_DOLLARS " +
|
|
|
+ "sum(total_dollars) as total_dollars " +
|
|
|
"FROM VIEW_EU_DNV_RPT_MONTH_PUMA " +
|
|
|
"GROUP BY item_quarter";
|
|
|
|
|
|
@@ -2549,20 +2543,41 @@ public class contractApproveController {
|
|
|
}
|
|
|
|
|
|
List<String> detailIds = new ArrayList<>();
|
|
|
- List<String> duplicateQuarters = new ArrayList<>();
|
|
|
+ String userName = uc.getUserName();
|
|
|
+
|
|
|
for (RowMap data : queryResult) {
|
|
|
- String itemQuarter = data.get("item_quarter").toString();
|
|
|
- String checkDuplicateSql = "SELECT COUNT(1) FROM BO_EU_DNRPT_MONTH_PUMA WHERE ITEM_QUARTER = ?";
|
|
|
- int count = DBSql.getInt(checkDuplicateSql, new Object[]{itemQuarter});
|
|
|
- if (count > 0) {
|
|
|
- duplicateQuarters.add(itemQuarter);
|
|
|
+ // 保留:item_quarter 非空校验
|
|
|
+ Object itemQuarterObj = data.get("item_quarter");
|
|
|
+ if (itemQuarterObj == null) {
|
|
|
continue;
|
|
|
}
|
|
|
+ String itemQuarter = itemQuarterObj.toString();
|
|
|
+
|
|
|
+ // 核心步骤1:先通过SQL查询(SELECT)获取对应季度旧BO的 bindId(真实流程ID)
|
|
|
+ // 无eq筛选,直接用原生SQL查询,精准获取该季度对应的bindId
|
|
|
+ String selectBindIdSql = "SELECT bindId FROM BO_EU_DNRPT_MONTH_PUMA WHERE ITEM_QUARTER = ?";
|
|
|
+ RowMap oldBoRow = DBSql.getMap(selectBindIdSql, new Object[]{itemQuarter});
|
|
|
+ String processId = null; // 初始化流程ID(bindId)
|
|
|
+ if (oldBoRow != null) {
|
|
|
+ // 从查询结果中提取真实的bindId(流程ID)
|
|
|
+ processId = oldBoRow.get("bindId").toString();
|
|
|
+ }
|
|
|
|
|
|
- String dateRange = convertQuarterToDateRange(itemQuarter);
|
|
|
+ // 核心步骤2:仅调用你需要的 SDK.getProcessAPI().deleteById(),删除旧流程(同步process表)
|
|
|
+ if (StringUtils.isNotBlank(processId)) {
|
|
|
+ SDK.getProcessAPI().deleteById(processId, userName);
|
|
|
+ }
|
|
|
|
|
|
+ // 保留:创建新流程实例和新BO(原有逻辑,无多余修改)
|
|
|
+ ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance(
|
|
|
+ "obj_516c3984931b4153b18f5445a2ed30d0",
|
|
|
+ uc.getUID(),
|
|
|
+ "彪马客户对账单-季度" + itemQuarter
|
|
|
+ );
|
|
|
+
|
|
|
+ String dateRange = convertQuarterToDateRange(itemQuarter);
|
|
|
BigDecimal totalDollars = convertToBigDecimal(data.get("total_dollars"));
|
|
|
- String requestAmountCn = convertNumberToChinese(totalDollars); // 转大写
|
|
|
+ String requestAmountCn = convertNumberToChinese(totalDollars);
|
|
|
|
|
|
BO detailBO = new BO();
|
|
|
detailBO.setBindId(processInstance.getId());
|
|
|
@@ -2580,27 +2595,17 @@ public class contractApproveController {
|
|
|
detailBO.set("PRODUCT_DOLLARS", convertToBigDecimal(data.get("product_dollars")));
|
|
|
detailBO.set("ADSL_DOLLARS", convertToBigDecimal(data.get("adsl_dollars")));
|
|
|
detailBO.set("TOTAL_DOLLARS", totalDollars);
|
|
|
- detailBO.set("VATS_SERVICE_DOLLARS", convertToBigDecimal(data.get("VATS_SERVICE_DOLLARS")));
|
|
|
detailBO.set("REQUEST_AMOUNT_CN", requestAmountCn);
|
|
|
|
|
|
SDK.getBOAPI().createDataBO("BO_EU_DNRPT_MONTH_PUMA", detailBO, uc);
|
|
|
detailIds.add(detailBO.getId());
|
|
|
}
|
|
|
|
|
|
+ // 构建返回结果
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
result.put("isCreated", true);
|
|
|
result.put("insertCount", detailIds.size());
|
|
|
- result.put("duplicateCount", duplicateQuarters.size());
|
|
|
- result.put("duplicateQuarters", duplicateQuarters);
|
|
|
- result.put("detailRecordIds", detailIds);
|
|
|
-
|
|
|
- String message;
|
|
|
- if (!duplicateQuarters.isEmpty()) {
|
|
|
- message = String.format("成功创建 %d 条季度汇总明细记录,跳过 %d 条重复季度数据(重复季度:%s)",
|
|
|
- detailIds.size(), duplicateQuarters.size(), String.join(",", duplicateQuarters));
|
|
|
- } else {
|
|
|
- message = String.format("成功创建 %d 条季度汇总明细记录", detailIds.size());
|
|
|
- }
|
|
|
+ String message = String.format("成功创建 %d 条季度汇总明细记录(已同步删除关联流程数据)", detailIds.size());
|
|
|
result.put("message", message);
|
|
|
|
|
|
ResponseObject responseObject = ResponseObject.newOkResponse();
|