Эх сурвалжийг харах

feat: 补全兑付通知终止

shc 7 сар өмнө
parent
commit
158da7f116

+ 49 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/SysArchiveManager.java

@@ -14,6 +14,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysImplPlanDetailsItem;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysImplementPlan;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysPlanPkg;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageContract;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageRedemptionNotice;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatus;
@@ -30,6 +31,7 @@ import com.qunzhixinxi.hnqz.admin.service.SysImplPlanDetailsService;
 import com.qunzhixinxi.hnqz.admin.service.SysImplementPlanService;
 import com.qunzhixinxi.hnqz.admin.service.SysPlanPkgService;
 import com.qunzhixinxi.hnqz.admin.service.WmPackageContractService;
+import com.qunzhixinxi.hnqz.admin.service.WmPackageRedemptionNoticeService;
 import com.qunzhixinxi.hnqz.admin.service.WmPackageTaskTypeQtyService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
@@ -76,6 +78,7 @@ public class SysArchiveManager {
     private final WmPackageContractService packageContractService;
     private final WmPackageTaskTypeQtyService packageTaskTypeQtyService;
     private final WmScoreTaskTypeService packageTaskTypeService;
+    private final WmPackageRedemptionNoticeService packageRedemptionNoticeService;
 
     private final WmTaskService taskService;
     private final WmTaskContentService taskContentService;
@@ -156,6 +159,9 @@ public class SysArchiveManager {
         // 1.14 获取监察建议记录
         List<WmTaskSupervisionAdvice> taskSupervisionAdviceRecords = getTaskSupervisionAdviceRecords(taskSupervisionRecords);
 
+        // 1.15 获取执行包的兑付通知
+        List<WmPackageRedemptionNotice> redemptionNoticeRecords = getRedemptionNoticeRecords(packageRecords);
+
 
         // 保存归档信息
         // 2.1 构建归档项
@@ -427,6 +433,24 @@ public class SysArchiveManager {
             items.addAll(collect);
         }
 
+        // 2.2.15 兑付通知记录
+        if (CollUtil.isNotEmpty(redemptionNoticeRecords)){
+            String clzName = WmPackageRedemptionNotice.class.getSimpleName();
+            String fullClzName = WmPackageRedemptionNotice.class.getName();
+
+            List<SysArchiveItem> collect = redemptionNoticeRecords.stream().map(record -> {
+                SysArchiveItem item = new SysArchiveItem();
+                item.setClassName(clzName);
+                item.setFullClassName(fullClzName);
+                item.setItemContent(JSONUtil.toJsonStr(record));
+                item.setArchiveId(archiveId);
+
+                return item;
+            }).collect(Collectors.toList());
+
+            items.addAll(collect);
+        }
+
         archiveItemService.saveBatch(items);
 
 
@@ -519,6 +543,12 @@ public class SysArchiveManager {
             taskSupervisionAdviceService.removeByIds(collect);
         }
 
+        // 3.15 删除执行包兑付通知
+        if (CollUtil.isNotEmpty(redemptionNoticeRecords)){
+            Set<Integer> collect = redemptionNoticeRecords.stream().mapToInt(WmPackageRedemptionNotice::getNoticeId).boxed().collect(Collectors.toSet());
+            packageRedemptionNoticeService.removeByIds(collect);
+        }
+
         //~ 更新必要数据==========================
         // 如果不是跟计划,需要父级更新可用分值
         if (!isRootPlan) {
@@ -796,5 +826,24 @@ public class SysArchiveManager {
 
     }
 
+    /**
+     * 获取积分包兑付通知
+     *
+     * @param packageRecords 积分包记录
+     * @return 兑付通知记录
+     */
+    private List<WmPackageRedemptionNotice> getRedemptionNoticeRecords(Collection<WmScorePackage> packageRecords) {
+
+        if (CollUtil.isEmpty(packageRecords)) {
+            return Collections.emptyList();
+        }
+
+        List<Integer> collect = packageRecords.stream().map(pkg -> Integer.parseInt(pkg.getId())).distinct().sorted().collect(Collectors.toList());
+
+        return packageRedemptionNoticeService.list(Wrappers.<WmPackageRedemptionNotice>lambdaQuery().in(WmPackageRedemptionNotice::getPackageId, collect));
+
+
+    }
+
 
 }