Przeglądaj źródła

feat: user bind drug

shc 8 miesięcy temu
rodzic
commit
6672bda043

+ 32 - 0
doc/db/35sys_user_drug.sql

@@ -0,0 +1,32 @@
+USE `cnbg_20240511_001`;
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_user_drug
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user_drug`;
+CREATE TABLE `sys_user_drug`
+(
+    `record_id`   INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '信息',
+    `user_id`     INT                         NOT NULL COMMENT '用户ID',
+    `drug_id`     INT                         NOT NULL COMMENT '药品ID',
+    `create_by`   VARCHAR(64)                 NOT NULL COMMENT '创建人',
+    `create_time` DATETIME                    NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    PRIMARY KEY `pk_id` (`record_id`) USING BTREE,
+    UNIQUE KEY `uk_uid_dgId` (`user_id`, `drug_id`) USING BTREE
+) ENGINE = InnoDB
+  DEFAULT CHARSET = utf8mb4
+  COLLATE = utf8mb4_general_ci
+  ROW_FORMAT = DYNAMIC COMMENT ='管理员可见药品';
+
+
+-- ----------------------------
+-- Records of sys_user_drug
+-- ----------------------------
+BEGIN;
+COMMIT;
+
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 1 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/SysUserDTO.java

@@ -98,6 +98,7 @@ public final class SysUserDTO {
 
     }
 
+
     @Data
     public static class OnPage{
 

+ 34 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/SysUserDrug.java

@@ -0,0 +1,34 @@
+package com.qunzhixinxi.hnqz.admin.api.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 管理员和产品关系
+ *
+ * @author jimmy
+ * @date 2024-10-20 14:05
+ */
+@Data
+@TableName(value = "sys_user_drug")
+public class SysUserDrug implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(type = IdType.AUTO)
+    private Integer recordId;
+
+    private Integer userId;
+
+    private Integer drugId;
+
+    private String createBy;
+
+    private LocalDateTime createTime;
+
+}

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

@@ -69,7 +69,6 @@ import javax.validation.Valid;
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -1487,4 +1486,15 @@ public class SysUserController {
         return R.ok(userManager.listUserCerts(userId));
     }
 
+    @SysLog("给监察员绑定产品")
+    @PostMapping(value = "/prod/bind")
+    public R<Boolean> bindDrug(@Validated @RequestBody SysUserDTO.OnProdBind resource){
+        return R.ok(userManager.bindDrug(resource, SecurityUtils.getUser()));
+    }
+
+    @GetMapping(value = "/list/bind/prod")
+    public R<List<Integer>> listBondProds(@RequestParam(value = "userId") Integer userId){
+        return R.ok(userManager.listBondProds(userId));
+    }
+
 }

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

@@ -130,6 +130,7 @@ public class WmDaDrugEntDrugtableController {
     }
 
 
+
     /**
      * 通过id查询档案-药企药品
      *
@@ -177,7 +178,7 @@ public class WmDaDrugEntDrugtableController {
 
         WmDaDrugEntDrugtable query = new WmDaDrugEntDrugtable();
         query.setDrugname(wmDaDrugEntDrugtable.getDrugname());
-		int count = wmDaDrugEntDrugtableService.count(Wrappers.query(query));
+        int count = wmDaDrugEntDrugtableService.count(Wrappers.query(query));
         if (count > 0) {
             return R.failed("药品名称已存在");
         }

+ 43 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/SysUserManager.java

@@ -9,9 +9,11 @@ import com.qunzhixinxi.hnqz.admin.api.dto.SysUserDTO;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysFile;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUserCertificate;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUserDrug;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.admin.service.SysFileService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserCertificateService;
+import com.qunzhixinxi.hnqz.admin.service.SysUserDrugService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
 import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
@@ -19,7 +21,9 @@ import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -42,6 +46,7 @@ public class SysUserManager {
 
     private final SysFileService fileService;
     private final SysUserService userService;
+    private final SysUserDrugService userDrugService;
     private final WmDaDrugEntDrugtableService drgEntDrugtableService;
     private final SysUserCertificateService userCertificateService;
 
@@ -174,4 +179,42 @@ public class SysUserManager {
             return map;
         }).collect(Collectors.toList());
     }
+
+
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean bindDrug(SysUserDTO.OnProdBind resource, HnqzUser user) {
+
+
+        // 删除老数据
+        userDrugService.remove(Wrappers.<SysUserDrug>lambdaQuery().eq(SysUserDrug::getUserId, resource.getUserId()));
+
+        List<Integer> productIds = resource.getProductIds();
+
+        LocalDateTime now = LocalDateTime.now();
+        String username = user.getUsername();
+
+        if (CollUtil.isNotEmpty(productIds)) {
+            List<SysUserDrug> collect = productIds.stream().map(prod -> {
+                SysUserDrug rel = new SysUserDrug();
+                rel.setUserId(resource.getUserId());
+                rel.setDrugId(prod);
+                rel.setCreateBy(username);
+                rel.setCreateTime(now);
+                return rel;
+
+            }).collect(Collectors.toList());
+
+
+            userDrugService.saveBatch(collect);
+
+        }
+
+        return Boolean.TRUE;
+    }
+
+    public List<Integer> listBondProds(Integer userId) {
+
+        return userDrugService.list(Wrappers.<SysUserDrug>lambdaQuery().eq(SysUserDrug::getUserId, userId))
+                .stream().mapToInt(SysUserDrug::getDrugId).distinct().sorted().boxed().collect(Collectors.toList());
+    }
 }

+ 15 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/SysUserDrugMapper.java

@@ -0,0 +1,15 @@
+package com.qunzhixinxi.hnqz.admin.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUserDrug;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户药品关系mapper
+ *
+ * @author jimmy
+ * @date 2024-10-20 14:07
+ */
+@Mapper
+public interface SysUserDrugMapper extends BaseMapper<SysUserDrug> {
+}

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

@@ -0,0 +1,13 @@
+package com.qunzhixinxi.hnqz.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUserDrug;
+
+/**
+ * 用户管理员药品关系服务
+ *
+ * @author jimmy
+ * @date 2024-10-20 14:08
+ */
+public interface SysUserDrugService extends IService<SysUserDrug> {
+}

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

@@ -0,0 +1,21 @@
+package com.qunzhixinxi.hnqz.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUserDrug;
+import com.qunzhixinxi.hnqz.admin.mapper.SysUserDrugMapper;
+import com.qunzhixinxi.hnqz.admin.service.SysUserDrugService;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 用户管理员药品关系服务实现
+ *
+ * @author jimmy
+ * @date 2024-10-20 14:09
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class SysUserDrugServiceImpl extends ServiceImpl<SysUserDrugMapper, SysUserDrug> implements SysUserDrugService {
+}