ソースを参照

feat: 兑付按照区域区隔

shc 7 ヶ月 前
コミット
3d1c7bb128

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

@@ -6,7 +6,9 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.dto.WmPkgDTO;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysAreaEntity;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysCheckChainNodeCheckHistory;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysImplementPlan;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysPlanPkg;
@@ -17,9 +19,12 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
+import com.qunzhixinxi.hnqz.admin.service.SysAreaEntityService;
 import com.qunzhixinxi.hnqz.admin.service.SysCheckChainNodeCheckHistoryService;
+import com.qunzhixinxi.hnqz.admin.service.SysEnterpriseAreaService;
 import com.qunzhixinxi.hnqz.admin.service.SysImplementPlanService;
 import com.qunzhixinxi.hnqz.admin.service.SysPlanPkgService;
+import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserDrugService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserRoleService;
 import com.qunzhixinxi.hnqz.admin.service.WmPackageRedemptionNoticeService;
@@ -72,6 +77,9 @@ public class WmPackageManager {
     private final SysPlanPkgService planPkgService;
     private final SysImplementPlanService implementPlanService;
     private final SysUserDrugService userDrugService;
+    private final SysEnterpriseAreaService enterpriseAreaService;
+    private final SysAreaEntityService areaEntityService;
+    private final SysUserAreaService userAreaService;
 
     /**
      * 创建执行包兑付通知
@@ -121,12 +129,29 @@ public class WmPackageManager {
             List<SysUserDrug> userDrugs = userDrugService.list(Wrappers.<SysUserDrug>lambdaQuery().eq(SysUserDrug::getUserId, user.getId()));
 
             if (CollUtil.isEmpty(userDrugs)) {
-                throw new BizException("当前人员并未绑定品,无法确定可见范围,请核实");
+                throw new BizException("当前人员并未绑定品,无法确定可见范围,请核实");
             }
 
+            // todo 按区域区隔
+
+            // 1. 获取操作可见的区域
+            List<Long> areaIds = userAreaService.listUserAreas(Long.valueOf(user.getId()));
+
+            if (CollUtil.isEmpty(areaIds)) {
+                throw new BizException("当前人员并未绑定区域,无法确定可见范围,请核实");
+            }
+
+            List<Long> collect = areaEntityService.list(Wrappers.<SysAreaEntity>lambdaQuery().in(SysAreaEntity::getAreaId, areaIds).eq(SysAreaEntity::getAreaType, UpmsType.AreaType.DISTRICT))
+                    .stream().mapToLong(SysAreaEntity::getAreaId).boxed().collect(Collectors.toList());
+
+            List<Long> entIds = enterpriseAreaService.listAreaEnts(collect);
+
+
             List<String> drugIds = userDrugs.stream().map(ud -> ud.getDrugId().toString()).distinct().sorted().collect(Collectors.toList());
 
-            List<WmScorePackage> pkgs = scorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery().in(WmScorePackage::getDrugtable, drugIds));
+            List<WmScorePackage> pkgs = scorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
+                    .in(WmScorePackage::getSendPackageDeptId, entIds)
+                    .in(WmScorePackage::getDrugtable, drugIds));
 
             if (CollUtil.isEmpty(pkgs)) {
                 return res;

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysEnterpriseAreaServiceImpl.java

@@ -123,7 +123,7 @@ public class SysEnterpriseAreaServiceImpl extends ServiceImpl<SysEnterpriseAreaM
     @Override
     public List<Long> listAreaEnts(List<Long> areas) {
         List<Long> collect = areas.stream().distinct().sorted().collect(Collectors.toList());
-        return this.list(Wrappers.<SysEnterpriseArea>lambdaQuery().in(SysEnterpriseArea::getAreaId, collect)).stream().map(SysEnterpriseArea::getEntId).distinct().collect(Collectors.toList());
+        return this.list(Wrappers.<SysEnterpriseArea>lambdaQuery().in(SysEnterpriseArea::getAreaId, collect)).stream().map(SysEnterpriseArea::getEntId).distinct().sorted().collect(Collectors.toList());
     }
 }
 

+ 2 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmReportServiceImpl.java

@@ -1083,7 +1083,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
         List<String> pIds = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getRelationScoreId, scorePackage.getId())).stream().map(WmScorePackage::getId).distinct().sorted().collect(Collectors.toList());
 
         List<Integer> tids = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-                        .eq(WmTask::getTaskStatus, "3")
+                        // .eq(WmTask::getTaskStatus, "3")
                         .in(WmTask::getScorePackageId, pIds)).stream()
                 .mapToInt(t -> Integer.parseInt(t.getId())).boxed().distinct().sorted().collect(Collectors.toList());
 
@@ -1095,7 +1095,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
         if (CollUtil.isNotEmpty(collect)) {
             lambdaQueryWrapper.notIn(WmTask::getId, collect);
         }
-
+        lambdaQueryWrapper.in(WmTask::getScorePackageId, pIds);
         pages = wmTaskService.page(page, lambdaQueryWrapper);
 
         if (pages == null) {