Browse Source

fix: 知会增加检索条件,分页筛选条件时间判断

lixuesong 2 months ago
parent
commit
adbb274515

+ 27 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmPackageManager.java

@@ -28,6 +28,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatus;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSupervision;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.api.model.excel.WmScorePackageCheckStatusExcelModel;
 import com.qunzhixinxi.hnqz.admin.api.model.excel.WmScorePackageInfoExcelModel;
@@ -36,6 +37,7 @@ import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntDrugtableMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageStatusMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskSupervisionMapper;
 import com.qunzhixinxi.hnqz.admin.service.SysAreaEntityService;
 import com.qunzhixinxi.hnqz.admin.service.SysCheckChainNodeCheckHistoryService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
@@ -117,6 +119,7 @@ public class WmPackageManager {
   private final WmPackageTaskTypeQtyService packageTaskTypeQtyService;
   private final SysDeptRelationMapper sysDeptRelationMapper;
   private final SysCheckChainNodeCheckHistoryMapper sysCheckChainNodeCheckHistoryMapper;
+  private final WmTaskSupervisionMapper taskSupervisionMapper;
 
   /**
    * 创建执行包兑付通知
@@ -189,11 +192,12 @@ public class WmPackageManager {
           .eq(WmPackageRedemptionNotice::getCreateBy, user.getUsername());
 
       List<WmScorePackage> pkgs = scorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
-              .eq(StrUtil.isNotBlank(query.getPkgId()), WmScorePackage::getId, query.getPkgId())
-              .eq(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName())
-              .eq(StrUtil.isNotBlank(query.getProvAbbr()), WmScorePackage::getProvAbbr, query.getProvAbbr())
-              .in(CollUtil.isNotEmpty(skuIds), WmScorePackage::getDrugtable, skuIds)
-              .between(WmScorePackage::getStartTime, issueDate, expiryDate));
+          .eq(StrUtil.isNotBlank(query.getPkgId()), WmScorePackage::getId, query.getPkgId())
+          .eq(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName())
+          .eq(StrUtil.isNotBlank(query.getProvAbbr()), WmScorePackage::getProvAbbr, query.getProvAbbr())
+          .in(CollUtil.isNotEmpty(skuIds), WmScorePackage::getDrugtable, skuIds)
+          .between(StrUtil.isAllNotBlank(query.getYear(), query.getQuarter()), WmScorePackage::getStartTime, issueDate,
+              expiryDate));
 
       if (CollUtil.isEmpty(pkgs)) {
         return res;
@@ -254,7 +258,8 @@ public class WmPackageManager {
           .eq(StrUtil.isNotBlank(query.getProvAbbr()), WmScorePackage::getProvAbbr, query.getProvAbbr())
           .in(CollUtil.isNotEmpty(skuIds), WmScorePackage::getDrugtable, skuIds)
           .in(WmScorePackage::getSendPackageDeptId, entIds).in(WmScorePackage::getDrugtable, drugIds)
-          .between(WmScorePackage::getStartTime, issueDate, expiryDate));
+          .between(StrUtil.isAllNotBlank(query.getYear(), query.getQuarter()), WmScorePackage::getStartTime, issueDate,
+              expiryDate));
 
       if (CollUtil.isEmpty(pkgs)) {
         return res;
@@ -624,6 +629,22 @@ public class WmPackageManager {
     // 接包企业
     result.put("toEntId", scorePackage.getDeptId());
 
+    // 监督扣减分值:取上方所选的执行包下,所有监督流程走完的任务,在第一个监督员角色(四个角色)下监督意见为“监督不通过”的任务分值总和
+    // 开发理解的取值逻辑:取监督结果为不通过,监察状态为CKT2(待人用疫苗事业部总经理审核),且不可修改的数据对应的任务分值总和,即为监督扣减分值
+    List<WmTaskSupervision> taskSupervisions = taskSupervisionMapper.selectList(Wrappers
+        .<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, packageId)
+        .eq(WmTaskSupervision::getSupervisionResult, Boolean.FALSE).eq(WmTaskSupervision::getModifiable, Boolean.FALSE)
+        .eq(WmTaskSupervision::getSupervisionState, UpmsState.TaskSupervisionState.CKT2));
+
+    Set<String> supRegTaskIds =
+        taskSupervisions.stream().map(task -> String.valueOf(task.getTaskId())).collect(Collectors.toSet());
+
+    double supervisionDeductScore = CollUtil.isEmpty(taskSupervisions) ? 0
+        : taskId2EntityMap.entrySet().stream().filter(entry -> supRegTaskIds.contains(entry.getKey()))
+            .mapToDouble(entry -> entry.getValue().getScore()).sum();
+    // 监督扣减分值
+    result.put("supervisionDeductScore", supervisionDeductScore);
+
     return result;
   }