Browse Source

feat: supervision by drug

shc 8 months ago
parent
commit
c0f5a8abde

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmSupervisionController.java

@@ -40,7 +40,7 @@ public class WmSupervisionController {
     @PostMapping(value = "/supervision/pkg/page")
     public R<Page<Map<String, Object>>> pagePackage(@Validated @RequestBody WmSupervisionDto.OnPkgPage query) {
 
-        return R.ok(supervisionManager.pagePkg(query));
+        return R.ok(supervisionManager.pagePkg(query, SecurityUtils.getUser()));
     }
 
     @SysLog(value = "执行包监察")

+ 13 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmSupervisionManager.java

@@ -23,6 +23,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmWarnUserRelation;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysEnterpriseAreaService;
 import com.qunzhixinxi.hnqz.admin.service.SysRoleService;
+import com.qunzhixinxi.hnqz.admin.service.SysUserDrugService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserRoleService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.WmPackageSupervisionService;
@@ -83,18 +84,27 @@ public class WmSupervisionManager {
     private final WmWarnUserRelationService warnUserRelationService;
     private final WmRoleSupervisionWarnService roleSupervisionWarnService;
     private final SysUserRoleService userRoleService;
+    private final SysUserDrugService userDrugService;
 
 
     /**
      * 获取监察分页
      *
-     * @param query 查询条件
+     * @param query    查询条件
+     * @param operator 操作人
      * @return 分页结果
      */
-    public Page<Map<String, Object>> pagePkg(WmSupervisionDto.OnPkgPage query) {
+    public Page<Map<String, Object>> pagePkg(WmSupervisionDto.OnPkgPage query, HnqzUser operator) {
 
         Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
 
+        List<Integer> drugIds = userDrugService.listDrugIdByUserId(operator.getId());
+
+        if (CollUtil.isEmpty(drugIds)){
+            log.info("当前操作人没有分配产品");
+            return page;
+        }
+
         // 筛查区域和服务商名称
         List<Long> areaCode = query.getAreaCode();
         List<Long> entIds;
@@ -120,7 +130,7 @@ public class WmSupervisionManager {
             finalEntIds.addAll(entIds.stream().map(Long::intValue).collect(Collectors.toSet()));
         }
 
-        packageService.pageForSupervision(page, query.getPkgName(), query.getSupervision(), finalEntIds);
+        packageService.pageForSupervision(page, query.getPkgName(), query.getSupervision(), finalEntIds, drugIds);
 
         List<Map<String, Object>> records = page.getRecords();
         if (CollUtil.isNotEmpty(records)) {

+ 3 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmScorePackageMapper.java

@@ -17,6 +17,7 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.time.LocalDate;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -202,5 +203,6 @@ public interface WmScorePackageMapper extends DataScopeMapper<WmScorePackage> {
     Page<Map<String, Object>> pageForSupervision(@Param(value = "page") Page<Map<String, Object>> page,
                                                  @Param(value = "pkgName") String pkgName,
                                                  @Param(value = "supervision") Boolean supervision,
-                                                 @Param(value = "entIds") Set<Integer> finalEntIds);
+                                                 @Param(value = "entIds") Set<Integer> finalEntIds,
+                                                 @Param(value = "drugIds") Collection<String> drugIds);
 }

+ 10 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/SysUserDrugService.java

@@ -3,6 +3,8 @@ package com.qunzhixinxi.hnqz.admin.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUserDrug;
 
+import java.util.List;
+
 /**
  * 用户管理员药品关系服务
  *
@@ -10,4 +12,12 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysUserDrug;
  * @date 2024-10-20 14:08
  */
 public interface SysUserDrugService extends IService<SysUserDrug> {
+
+    /**
+     * 根据用户ID获取绑定的产品
+     *
+     * @param uId 用户ID
+     * @return 药品ID列表
+     */
+    List<Integer> listDrugIdByUserId(Integer uId);
 }

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmScorePackageService.java

@@ -26,6 +26,7 @@ import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 
 import java.time.LocalDate;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -268,7 +269,7 @@ public interface WmScorePackageService extends IService<WmScorePackage> {
      * @param supervision 监察状态
      * @param finalEntIds 所属服务商ID
      */
-    void pageForSupervision(Page<Map<String, Object>> page, String pkgName, Boolean supervision, Set<Integer> finalEntIds);
+    void pageForSupervision(Page<Map<String, Object>> page, String pkgName, Boolean supervision, Set<Integer> finalEntIds, Collection<Integer> drugIds);
 
     Map<String, Object> indPkgStat(HnqzUser user);
 

+ 15 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysUserDrugServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUserDrug;
 import com.qunzhixinxi.hnqz.admin.mapper.SysUserDrugMapper;
@@ -8,6 +9,9 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * 用户管理员药品关系服务实现
  *
@@ -18,4 +22,15 @@ import org.springframework.stereotype.Service;
 @Service
 @AllArgsConstructor
 public class SysUserDrugServiceImpl extends ServiceImpl<SysUserDrugMapper, SysUserDrug> implements SysUserDrugService {
+
+    /**
+     * 根据用户ID获取绑定的产品
+     *
+     * @param uId 用户ID
+     * @return 药品ID列表
+     */
+    @Override
+    public List<Integer> listDrugIdByUserId(Integer uId) {
+        return this.list(Wrappers.<SysUserDrug>lambdaQuery().eq(SysUserDrug::getUserId, uId)).stream().mapToInt(SysUserDrug::getDrugId).boxed().distinct().sorted().collect(Collectors.toList());
+    }
 }

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

@@ -113,6 +113,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -3985,8 +3986,8 @@ public class WmScorePackaeServiceImpl extends ServiceImpl<WmScorePackageMapper,
      * @param finalEntIds 所属服务商ID
      */
     @Override
-    public void pageForSupervision(Page<Map<String, Object>> page, String pkgName, Boolean supervision, Set<Integer> finalEntIds) {
-        this.baseMapper.pageForSupervision(page, pkgName, supervision, finalEntIds);
+    public void pageForSupervision(Page<Map<String, Object>> page, String pkgName, Boolean supervision, Set<Integer> finalEntIds, Collection<Integer> drugIds) {
+        this.baseMapper.pageForSupervision(page, pkgName, supervision, finalEntIds, drugIds.stream().map(String::valueOf).collect(Collectors.toList()));
     }
 
     @Override

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -1811,6 +1811,12 @@
           #{id}
         </foreach>
       </if>
+      <if test="drugIds != null and drugIds.size > 0">
+        AND p.drugtable IN
+        <foreach collection="drugIds" item="id" open="(" separator="," close=")">
+          #{id}
+        </foreach>
+      </if>
     </where>
 
   </select>