Ver código fonte

init: init project step4: biz code support

shc 1 ano atrás
pai
commit
94752fede0

+ 6 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/SysImplementPlanDTO.java

@@ -1,5 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.api.dto;
 
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
 import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.LockEnum;
 import lombok.AccessLevel;
@@ -90,6 +91,11 @@ public final class SysImplementPlanDTO {
          */
         private String planName;
 
+        /**
+         * 审核状态
+         */
+        private UpmsState.ImplementPlanState planState;
+
         /**
          * 受托人ID
          */

+ 17 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/vo/SysImplementPlanVO.java

@@ -44,5 +44,22 @@ public final class SysImplementPlanVO {
         private SysImplPlanDetails planDetails;
 
 
+    }
+
+    @Data
+    @EqualsAndHashCode(callSuper = false)
+    public static class ToList extends SysImplementPlan {
+
+        /**
+         * 承接人信息
+         */
+        private Map<String, Object> consigneeInfo;
+
+        /**
+         * 产品信息
+         */
+        private Map<String, Object> skuInfo;
+
+
     }
 }

+ 12 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysImplementPlanController.java

@@ -1,8 +1,11 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
 import com.qunzhixinxi.hnqz.admin.api.dto.SysImplementPlanDTO;
 import com.qunzhixinxi.hnqz.admin.api.dto.SysImplementPlanDetailsDTO;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysImplementPlan;
+import com.qunzhixinxi.hnqz.admin.api.vo.SysImplementPlanVO;
 import com.qunzhixinxi.hnqz.admin.manager.SysImplementPlanManager;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
@@ -13,8 +16,10 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -46,6 +51,11 @@ public class SysImplementPlanController {
         return R.ok(implementPlanManager.pagePlans(query, SecurityUtils.getUser()));
     }
 
+    @GetMapping(value = "/plan/list")
+    public R<List<SysImplementPlanVO.ToList>> listPlans(@RequestParam(value = "planState", required = false, defaultValue = "PASSED") UpmsState.ImplementPlanState planState) {
+        return R.ok(implementPlanManager.listPlans(planState, SecurityUtils.getUser()));
+    }
+
 
     @SysLog(value = "审核计划")
     @PostMapping(value = "/plan/check")
@@ -69,8 +79,8 @@ public class SysImplementPlanController {
     }
 
     @GetMapping(value = "/plan/details/{details_id}")
-    public R<Map<String, Object>> getPlanDetails(@PathVariable(value = "details_id") Integer detailsId){
-        return  R.ok(implementPlanManager.getPlanDetails(detailsId));
+    public R<Map<String, Object>> getPlanDetails(@PathVariable(value = "details_id") Integer detailsId) {
+        return R.ok(implementPlanManager.getPlanDetails(detailsId));
     }
 
 

+ 50 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/SysImplementPlanManager.java

@@ -231,11 +231,13 @@ public class SysImplementPlanManager {
 
         // 服务商管理员(只查询发给我的)
         if (entLevel == 2) {
-            wrapper.eq(SysImplementPlan::getConsigneeId, user.getDeptId());
+            wrapper.eq(SysImplementPlan::getPlanState, UpmsState.ImplementPlanState.PASSED)
+                    .eq(SysImplementPlan::getConsigneeId, user.getDeptId());
         }
         // 区域 (查询发给我的和我下发的)
         else if (entLevel == 1) {
-            wrapper.and(wrp -> wrp.eq(SysImplementPlan::getConsigneeId, user.getDeptId()).or().eq(SysImplementPlan::getConsignorId, user.getDeptId()));
+            wrapper.eq(SysImplementPlan::getPlanState, UpmsState.ImplementPlanState.PASSED)
+                    .and(wrp -> wrp.eq(SysImplementPlan::getConsigneeId, user.getDeptId()).or().eq(SysImplementPlan::getConsignorId, user.getDeptId()));
         }
         // 事业部管理员||药企(只查询我下发的)
         else if (entLevel == -1) {
@@ -402,4 +404,50 @@ public class SysImplementPlanManager {
 
         return detailsMap;
     }
+
+    public List<SysImplementPlanVO.ToList> listPlans(UpmsState.ImplementPlanState planState, HnqzUser user) {
+
+        List<SysImplementPlan> plans = implementPlanService.list(Wrappers.<SysImplementPlan>lambdaQuery()
+                .eq(SysImplementPlan::getConsignorId, user.getDeptId())
+                .eq(SysImplementPlan::getPlanState, planState));
+
+
+        if (CollUtil.isEmpty(plans)) {
+            return Collections.emptyList();
+        }
+
+
+        // 获取承接人ID
+        Set<Integer> consigneeIds = plans.stream().mapToInt(SysImplementPlan::getConsigneeId).boxed().collect(Collectors.toSet());
+        // 获取承接人
+        Map<Integer, SysDept> consigneeMap = deptService.mapConsignee(consigneeIds);
+        // 获取商品信息
+        Set<Integer> skuIds = plans.stream().map(SysImplementPlan::getSkuId).collect(Collectors.toSet());
+        List<Map<String, String>> skuList = drugEntDrugtableService.listDrugs(skuIds);
+        Map<Integer, Map<String, String>> skuMap = skuList.stream().collect(Collectors.toMap(sku -> Integer.valueOf(sku.get("drug_id")), Function.identity()));
+
+
+        return plans.stream().map(p -> {
+            SysImplementPlanVO.ToList copied = BeanUtil.copyProperties(p, SysImplementPlanVO.ToList.class);
+
+            // 设置承接人信息
+            Map<String, Object> consigneeInfo = new HashMap<>(2);
+            consigneeInfo.put("consigneeId", p.getConsigneeId());
+            SysDept sysDept = consigneeMap.get(p.getConsigneeId());
+            consigneeInfo.put("consigneeName", sysDept == null ? "" : sysDept.getName());
+            copied.setConsigneeInfo(consigneeInfo);
+
+            // 产品信息
+            Map<String, String> sku = skuMap.get(p.getSkuId());
+            Map<String, Object> skuInfo = new HashMap<>(3);
+            skuInfo.put("skuId", p.getSkuId());
+            skuInfo.put("skuName", MapUtil.isEmpty(sku) ? "" : sku.get("drug_name"));
+            skuInfo.put("manufacturer", MapUtil.isEmpty(sku) ? "" : sku.get("ent_name"));
+            copied.setSkuInfo(skuInfo);
+
+            return copied;
+
+        }).collect(Collectors.toList());
+
+    }
 }