Kaynağa Gözat

写人员信息

xiaochan 3 yıl önce
ebeveyn
işleme
7efb8c0924

+ 47 - 0
src/main/java/thyyxxk/webserver/constants/RestrictedDrugLevels.java

@@ -0,0 +1,47 @@
+package thyyxxk.webserver.constants;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.extern.slf4j.Slf4j;
+import thyyxxk.webserver.utils.StringUtil;
+
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+@Slf4j
+public enum RestrictedDrugLevels {
+
+    UNRESTRICTED_USE_OF_MEDICINES("0", "非限制使用药品"),
+    RESTRICTED_USE_OF_MEDICINES("1", "非限制使用药品"),
+    SPECIAL_USE_MEDICINES("2", "非限制使用药品");
+
+    private final String code;
+
+    private final String name;
+
+
+    RestrictedDrugLevels(String code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static String getName(String code) {
+        if (StringUtil.isBlank(code)) {
+            return "";
+        }
+        for (RestrictedDrugLevels value : RestrictedDrugLevels.values()) {
+            if (code.trim().equals(value.getCode())) {
+                return value.getName();
+            }
+        }
+        return null;
+    }
+
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+
+}

+ 43 - 0
src/main/java/thyyxxk/webserver/constants/Ysjb.java

@@ -0,0 +1,43 @@
+package thyyxxk.webserver.constants;
+
+
+import thyyxxk.webserver.utils.StringUtil;
+
+public enum Ysjb {
+
+    RESIDENT_PHYSICIAN("1", "住院医师"),
+    ATTENDING_PHYSICIAN("2", "主治医师"),
+    DEPUTY_CHIEF_PHYSICIAN("3", "副主任医师"),
+    CHIEF_PHYSICIAN("4", "主任医师"),
+    TRAINING_PHYSICIAN("5", "进修医师"),
+    CHIEF_RESIDENT("6", "总住院医师"),
+    INTERN("9", "实习医师");
+
+    private final String code;
+    private final String name;
+
+    Ysjb(String code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static String getName(String code) {
+        if (StringUtil.isBlank(code)) {
+            return "";
+        }
+        for (Ysjb ysjb : Ysjb.values()) {
+            if (code.trim().equals(ysjb.getCode())) {
+                return ysjb.getName();
+            }
+        }
+        return null;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

+ 8 - 0
src/main/java/thyyxxk/webserver/controller/PublicController.java

@@ -11,9 +11,11 @@ import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.utils.ListUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -139,4 +141,10 @@ public class PublicController {
     public ResultVo<List<ZkList>> getTheTransferList() {
         return service.getTheTransferList();
     }
+
+    @GetMapping("/getPeopleToFillInInformation")
+    public ResultVo<Map<String, Object>> getPeopleToFillInInformation() throws InvocationTargetException, IllegalAccessException {
+        return service.getPeopleToFillInInformation();
+    }
+
 }

+ 5 - 3
src/main/java/thyyxxk/webserver/controller/settings/SettingsController.java

@@ -1,8 +1,10 @@
 package thyyxxk.webserver.controller.settings;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.login.PersonnelQueryConditions;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.login.VueMenu;
 import thyyxxk.webserver.entity.settings.deptphones.DeptPhones;
@@ -38,9 +40,9 @@ public class SettingsController {
         return service.getDeptTree();
     }
 
-    @GetMapping("/getAllUsers")
-    public ResultVo<List<UserInfo>> getAllUsers() {
-        return service.getAllUsers();
+    @PostMapping("/getAllUsers")
+    public ResultVo<IPage<UserInfo>> getAllUsers(@RequestBody PersonnelQueryConditions param) {
+        return service.getAllUsers(param);
     }
 
     @GetMapping("/getAllRoles")

+ 22 - 0
src/main/java/thyyxxk/webserver/dao/his/PublicDao.java

@@ -460,4 +460,26 @@ public interface PublicDao {
             "where a.ward_code = b.dept")
     List<ZkList> getTheTransferList();
 
+    @Select("select RTRIM(code) AS code,RTRIM(name) AS name from  zd_emp_position where isnull(del_flag,0) = 0")
+    List<GetDropdownBox> getEmpPosition();
+
+    @Select("select RTRIM(code) AS code,RTRIM(name) AS name " +
+            "from zd_emp_inmark")
+    List<GetDropdownBox> getEmpInmark();
+
+    @Select("select RTRIM(code) AS code,RTRIM(name) AS name " +
+            "from zd_ifcadre")
+    List<GetDropdownBox> getZdIfcadre();
+
+    @Select("select RTRIM(code) AS code,RTRIM(name) AS name " +
+            "from zd_emp_title " +
+            "where isnull(del_flag, 0) = 0")
+    List<GetDropdownBox> getZdEmpTitle();
+
+    @Select("select RTRIM(code) AS code,RTRIM(name) AS name " +
+            "from mzy_zd_charge_type " +
+            "where isnull(del_flag, 0) = 0")
+    List<GetDropdownBox> getMzyZdChargeType();
+
+
 }

+ 38 - 8
src/main/java/thyyxxk/webserver/dao/his/settings/SettingsDao.java

@@ -1,5 +1,8 @@
 package thyyxxk.webserver.dao.his.settings;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.*;
 import thyyxxk.webserver.entity.dictionary.PureCodeName;
 import thyyxxk.webserver.entity.login.UserInfo;
@@ -8,8 +11,6 @@ import thyyxxk.webserver.entity.settings.deptphones.DeptPhones;
 import thyyxxk.webserver.entity.settings.permissions.MenuItem;
 import thyyxxk.webserver.entity.settings.permissions.Role;
 import thyyxxk.webserver.entity.settings.users.WorkIntegrationPlatformAdvice;
-import thyyxxk.webserver.entity.socketmessage.SocketMessage;
-import thyyxxk.webserver.entity.socketmessage.SystemMessage;
 
 import java.util.List;
 
@@ -45,12 +46,41 @@ public interface SettingsDao {
             "select rtrim(dept_code) from a_employee_mi where code=#{code})")
     List<PureCodeName> selectDeptsByUserCode(@Param("code") String code);
 
-    @Select("select rtrim(code) as code, rtrim(code_rs) as codeRs, rtrim(name) as name, " +
-            "rtrim(dept_code) as deptCode, deptName=(select rtrim(name) from zd_unit_code where code=dept_code), " +
-            "title=(select rtrim(name) from zd_emp_title where code=emp_tit_code), " +
-            "position=(select rtrim(name) from zd_emp_position where code=emp_po_code) " +
-            "from a_employee_mi where isnull(del_flag,0)!=1 and isnull(dept_code,'')!=''")
-    List<UserInfo> selectAllUsers();
+    @Select("select                    rtrim(code)         as code, " +
+            "                          rtrim(code_rs)      as codeRs, " +
+            "                          rtrim(name)         as name, " +
+            "                          rtrim(isnull(dept_code,''))    as deptCode, " +
+            "    deptName=(select rtrim(name) " +
+            "              from zd_unit_code " +
+            "              where code = dept_code), " +
+            "                          rtrim(emp_po_code) as emp_po_code, " +
+            "    position=(select rtrim(name) " +
+            "              from zd_emp_position " +
+            "              where code = emp_po_code), " +
+            "                          rtrim(mark) as mark, " +
+            "    mark_name =           (select rtrim(name) from zd_emp_inmark b where b.code = a.mark), " +
+            "                          rtrim(ifcadre) as ifcadre, " +
+            "    ifcadre_name =        (select rtrim(name) from zd_ifcadre b where a.ifcadre = b.code), " +
+            "                          rtrim(py_code) as py_code, " +
+            "                          rtrim(d_code) as d_code, " +
+            "                          rtrim(order_yn) as order_yn /*医生处方权 1 普通处方权 2 毒麻药处方权*/, " +
+            "                          rtrim(ysjb) as ysjb, " +
+            "                          rtrim(emp_tit_code) as emp_tit_code, " +
+            "    title=(select rtrim(name) " +
+            "           from zd_emp_title " +
+            "           where code = emp_tit_code), " +
+            "                          rtrim(gh_charge_type) as gh_charge_type, " +
+            "    gh_charge_type_name = (select rtrim(name) from mzy_zd_charge_type b where b.code = gh_charge_type), " +
+            "                          rtrim(doctor_xz_yp) as doctor_xz_yp /* 0 非限制使用药品 1 限制使用药品 2 特殊使用药品  */, " +
+            "                          rtrim(login_flag) as login_flag /*病区允许就诊 1 允许 2 不允许*/, " +
+            "                          isnull(del_flag, 0) as del_flag, " +
+            "                          rtrim(social_no) as social_no /*身份证*/, " +
+            "                          rtrim(phone_no) as phone_no /* 手机 号码*/," +
+            "                          rtrim(yb_code) as yb_code " +
+            "from a_employee_mi a  " +
+            " ${ew.customSqlSegment} ")
+    IPage<UserInfo> selectAllUsers(IPage<UserInfo> page,
+                                   @Param(Constants.WRAPPER) QueryWrapper<?> queryWrapper);
 
     @Select("select rtrim(code) as code, rtrim(code_rs) as codeRs, rtrim(name) as name, " +
             "rtrim(dept_code) as deptCode, deptName=(select rtrim(name) from zd_unit_code where code=dept_code), " +

+ 18 - 0
src/main/java/thyyxxk/webserver/entity/login/PersonnelQueryConditions.java

@@ -0,0 +1,18 @@
+package thyyxxk.webserver.entity.login;
+
+import lombok.Data;
+
+/**
+ * @author 肖蟾
+ */
+@Data
+public class PersonnelQueryConditions {
+    private String name;
+    private String code;
+    private String deptCode;
+    private Integer whetherToDisable;
+    private Integer isThereAMedicalInsuranceCode;
+    private Integer pageSize;
+    private Integer currentPage;
+    private long total;
+}

+ 120 - 1
src/main/java/thyyxxk/webserver/entity/login/UserInfo.java

@@ -1,25 +1,144 @@
 package thyyxxk.webserver.entity.login;
 
 import lombok.Data;
+import thyyxxk.webserver.constants.RestrictedDrugLevels;
+import thyyxxk.webserver.constants.Ysjb;
+import thyyxxk.webserver.utils.StringUtil;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @author dj
  */
 @Data
 public class UserInfo {
+
+    /**
+     * 编码
+     */
     private String code;
+
+    /**
+     * 名字
+     */
     private String name;
     private String password;
+
+    /**
+     * 工号
+     */
     private String codeRs;
+    /**
+     * 技术职称
+     */
+    private String empTitCode;
     private String title;
+
+    /**
+     * 职务
+     */
+    private String empPoCode;
     private String position;
-    private String deptName;
+
     private String avatar;
     private String token;
     private String sid;
+
+    /**
+     * 医保编码
+     */
     private String ybCode;
     private String deptCode;
+    private String deptName;
+
+    /**
+     * 在院标志
+     */
+    private String mark;
+    private String markName;
+
+    /**
+     * 干工标志
+     */
+    private String ifcader;
+    private String ifcaderName;
+
+    /**
+     * 拼音 五笔码
+     */
+    private String pyCode;
+    private String dCode;
+    /**
+     * 医生处方权 1 普通处方权 2 毒麻药处方权
+     */
+    private String orderYn;
+    /**
+     * 病历级别
+     * {@link Ysjb}
+     */
+    private String ysjb;
+
+    /**
+     * 挂号号别
+     */
+    private String ghChargeType;
+    private String ghChargeTypeName;
+    /**
+     * 病区允许就诊 1 允许 2 不允许
+     */
+    private String loginFlag;
+    /**
+     * 限制药品级别
+     * {@link RestrictedDrugLevels}
+     */
+    private String doctorXzYp;
+
+    /**
+     * 停用标志
+     */
+    private String delFlag;
+
+    /**
+     * 身份证
+     */
+    private String socialNo;
+
+    /**
+     * 手机号码
+     */
+    private String phoneNo;
+
+
     private List<Integer> roles;
+
+    public String getLoginFlag() {
+        if (StringUtil.notBlank(loginFlag)) {
+            if ("1".equals(loginFlag)) {
+                return "允许";
+            } else if ("2".equals(loginFlag)) {
+                return "不允许";
+            }
+        }
+        return "";
+    }
+
+    public String getDoctorXzYpName() {
+        return RestrictedDrugLevels.getName(doctorXzYp);
+    }
+
+    public String getYsjbName() {
+        return Ysjb.getName(ysjb);
+    }
+
+    public String getOrderYnName() {
+        if (StringUtil.notBlank(orderYn)) {
+            if ("1".equals(orderYn)) {
+                return "普通处方权";
+            } else if ("2".equals(orderYn)) {
+                return "毒麻药处方权";
+            }
+        }
+        return orderYn;
+    }
 }

+ 19 - 4
src/main/java/thyyxxk/webserver/service/PublicServer.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.zaxxer.hikari.util.ConcurrentBag;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.ListUtils;
 import org.jetbrains.annotations.NotNull;
@@ -12,6 +13,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import thyyxxk.webserver.config.exception.BizException;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
+import thyyxxk.webserver.constants.Capacity;
+import thyyxxk.webserver.constants.RestrictedDrugLevels;
+import thyyxxk.webserver.constants.Ysjb;
 import thyyxxk.webserver.dao.his.PublicDao;
 import thyyxxk.webserver.dao.his.yibao.TransferInOfExpensesDao;
 import thyyxxk.webserver.entity.ResultVo;
@@ -32,11 +36,9 @@ import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.YaoPinXiangMu;
 import thyyxxk.webserver.utils.*;
 import thyyxxk.webserver.websocket.WebSocketServer;
 
+import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -676,6 +678,19 @@ public class PublicServer {
         return ResultVoUtil.success(list);
     }
 
+    public ResultVo<Map<String, Object>> getPeopleToFillInInformation() throws InvocationTargetException, IllegalAccessException {
+        Map<String, Object> map = new HashMap<>(Capacity.EIGHT);
+        map.put("restrictedDrugLevels", EnumToJson.toJson(RestrictedDrugLevels.values()));
+        map.put("ysjbData", EnumToJson.toJson(Ysjb.values()));
+        map.put("deptData", getDept().getData());
+        map.put("empPosition", dao.getEmpPosition());
+        map.put("empInmark", dao.getEmpInmark());
+        map.put("zdIfcadre", dao.getZdIfcadre());
+        map.put("zdEmpTitle", dao.getZdEmpTitle());
+        map.put("mzyZdChargeType", dao.getMzyZdChargeType());
+        return ResultVoUtil.success(map);
+    }
+
 
 }
 

+ 2 - 1
src/main/java/thyyxxk/webserver/service/medicalinsurance/SetlListUpldService.java

@@ -603,6 +603,7 @@ public class SetlListUpldService {
      */
     private QueryWrapper<?> statementQueryConditions(JieSuanDanChaXun param) {
         QueryWrapper<?> qw = new QueryWrapper<>();
+        log.info("查询参数:{}", JSON.toJSONString(param));
         if (StringUtil.notBlank(param.getStartTime())) {
             qw.ge("a.setl_time", param.getStartTime());
             qw.le("a.setl_time", param.getEndTime());
@@ -640,7 +641,7 @@ public class SetlListUpldService {
             qw.isNotNull("a.setl_list_id");
         }
         if (param.getAuditFlag() != All) {
-            qw.eq("c.audit_flag", param.getFlag());
+            qw.eq("c.audit_flag", param.getAuditFlag());
         }
         if (param.getHiPaymtd() != null && param.getHiPaymtd() != 0) {
             qw.eq("a.hi_paymtd", param.getHiPaymtd());

+ 37 - 8
src/main/java/thyyxxk/webserver/service/settings/SettingsService.java

@@ -1,6 +1,9 @@
 package thyyxxk.webserver.service.settings;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -8,12 +11,14 @@ import org.springframework.transaction.annotation.Transactional;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.settings.SettingsDao;
 import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.login.PersonnelQueryConditions;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.login.VueMenu;
 import thyyxxk.webserver.entity.settings.deptphones.DeptPhones;
 import thyyxxk.webserver.entity.settings.permissions.*;
 import thyyxxk.webserver.entity.settings.users.ChangePwdParam;
 import thyyxxk.webserver.entity.settings.users.WorkIntegrationPlatformAdvice;
+import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.service.externalhttp.CorpWxSrvc;
 import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.StringUtil;
@@ -32,11 +37,13 @@ import java.util.List;
 public class SettingsService {
     private final SettingsDao dao;
     private final CorpWxSrvc srvc;
+    private final PublicServer publicServer;
 
     @Autowired
-    public SettingsService(SettingsDao dao, CorpWxSrvc srvc) {
+    public SettingsService(SettingsDao dao, CorpWxSrvc srvc, PublicServer publicServer) {
         this.dao = dao;
         this.srvc = srvc;
+        this.publicServer = publicServer;
     }
 
     public ResultVo<UserInfo> getUserInfo() {
@@ -81,14 +88,36 @@ public class SettingsService {
         return ResultVoUtil.success(list);
     }
 
-    public ResultVo<List<UserInfo>> getAllUsers() {
-        String code = TokenUtil.getTokenUserId();
-        List<Integer> roles = dao.getUserRoles(code);
-        if (roles.contains(1) || roles.contains(2)) {
-            return ResultVoUtil.success(dao.selectAllUsers());
-        } else {
-            return ResultVoUtil.success(dao.getDeptUsersByUserCode(code));
+    public ResultVo<IPage<UserInfo>> getAllUsers(PersonnelQueryConditions param) {
+        IPage<UserInfo> page = new Page<>(param.getCurrentPage(), param.getPageSize(), param.getTotal() == 0);
+        if (publicServer.needRule(1, 2)) {
+            return ResultVoUtil.success(dao.selectAllUsers(page, personnelQuery(param)));
+        }
+        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "你没有查看的权限.");
+    }
+
+    private QueryWrapper<?> personnelQuery(PersonnelQueryConditions param) {
+        QueryWrapper<?> qw = new QueryWrapper<>();
+        if (StringUtil.notBlank(param.getDeptCode())) {
+            qw.eq("dept_code", param.getDeptCode());
+        }
+        if (StringUtil.notBlank(param.getName())) {
+            qw.and(QueryWrapper -> QueryWrapper.
+                    like("name", param.getName())
+                    .or()
+                    .eq("code_rs", param.getName())
+            );
+        }
+
+        if (param.getWhetherToDisable() != 9) {
+            qw.eq("isnull(del_flag,0)", param.getWhetherToDisable());
+        }
+        if (param.getIsThereAMedicalInsuranceCode() == 1) {
+            qw.isNotNull("yb_code");
+        } else if (param.getIsThereAMedicalInsuranceCode() == 2) {
+            qw.isNull("yb_code");
         }
+        return qw;
     }
 
     public ResultVo<List<Role>> getAllRoles() {

+ 61 - 0
src/main/java/thyyxxk/webserver/utils/EnumToJson.java

@@ -0,0 +1,61 @@
+package thyyxxk.webserver.utils;
+
+
+import com.alibaba.fastjson.JSON;
+import thyyxxk.webserver.constants.RestrictedDrugLevels;
+import thyyxxk.webserver.constants.Ysjb;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public class EnumToJson {
+    /**
+     * 通过反射机制,将枚举值转化为json串
+     *
+     * @param enumValues
+     * @return
+     * @throws IllegalAccessException
+     * @throws InvocationTargetException
+     */
+    public static JSON toJson(Enum<?>[] enumValues) throws IllegalAccessException, InvocationTargetException {
+        StringBuffer buffer = new StringBuffer("[");
+        boolean obj1st = true;
+        for (Object obj : enumValues) {
+            if (obj1st) {
+                obj1st = false;
+            } else {
+                buffer.append(",");
+            }
+            buffer.append("{");
+
+            Method[] methods = obj.getClass().getMethods();
+            boolean method1st = true;
+            for (Method method : methods) {
+
+                //获取枚举值的get方法
+                if (method.getName().startsWith("get") && method.getParameterTypes().length == 0 && !method.getName().contains("Class")) {
+                    //处理逗号
+                    if (method1st) {
+                        method1st = false;
+                    } else {
+                        buffer.append(",");
+                    }
+                    //将get方法的get去掉,并且首字母小写
+                    String name = method.getName().replace("get", "");
+                    buffer.append("\"" + name.substring(0, 1).toLowerCase() + name.substring(1) + "\":\"");
+                    buffer.append(method.invoke(obj) + "\"");
+                }
+            }
+            buffer.append("}");
+        }
+        buffer.append("]");
+        return JSON.parseArray(buffer.toString());
+    }
+
+    public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
+        System.out.println(toJson(RestrictedDrugLevels.values()));
+        System.out.println(toJson(Ysjb.values()));
+    }
+
+
+}

+ 2 - 0
src/main/java/thyyxxk/webserver/utils/IdCardUtil.java

@@ -37,6 +37,8 @@ public class IdCardUtil {
         return isValidate18IdCard(idCard);
     }
 
+
+
     private static boolean isValidate18IdCard(String idCard) {
         // 非18位为假
         if (idCard.length() != MAX_LENGTH) {