Browse Source

科室创建的时候科室编码自动生成

hurugang 4 years ago
parent
commit
aaca2f9de7

+ 4 - 2
src/main/java/cn/hnthyy/thmz/controller/mz/UnitCodeController.java

@@ -261,8 +261,10 @@ public class UnitCodeController {
         User tokenUser=(User)JsonUtil.jsontoObject(decodedJWT.getSubject(),User.class);
         zdUnitCode.setOpDate(new Date());
         zdUnitCode.setOpId(tokenUser.getUserIdCode());
-        zdUnitCode.setPyCode(PyWbUtil.toBigFirstChar(zdUnitCode.getName()));
-        zdUnitCode.setWbCode(PyWbUtil.getWBCode(zdUnitCode.getName()));
+        if(StringUtils.isNotBlank(zdUnitCode.getName())){
+            zdUnitCode.setPyCode(PyWbUtil.toBigFirstChar(zdUnitCode.getName()));
+            zdUnitCode.setWbCode(PyWbUtil.getWBCode(zdUnitCode.getName()));
+        }
        try {
            if(StringUtils.isBlank(zdUnitCode.getOriginalCode())){
                //新增部门记录

+ 14 - 10
src/main/java/cn/hnthyy/thmz/enums/ClassCodeEnum.java

@@ -7,21 +7,25 @@ import java.util.List;
  * 科室分类
  */
 public enum ClassCodeEnum {
-    HOSPITAL_WIDE(0,"全院"),
-    CLINIC(1,"临床"),
-    MEDICAL_LABORATORY(2,"医技"),
-    ADMINISTRATIVE(3,"行政"),
-    LOGISTICS(5,"后勤"),
-    COLLEGE(6,"院级"),
-    OTHER(7,"其他"),
-    NURSE(8,"护理");
-
+    HOSPITAL_WIDE(0,"全院","3"),
+    CLINIC(1,"临床","1"),
+    MEDICAL_LABORATORY(2,"医技","2"),
+    ADMINISTRATIVE(3,"行政","3"),
+    LOGISTICS(5,"后勤","3"),
+    COLLEGE(6,"院级","3"),
+    OTHER(7,"其他","3"),
+    NURSE(8,"护理","8");
+    //编码
     public Integer code;
+    //名称
     public String name;
+    //科室编码前缀
+    public String unitCodePrefix;
 
-    ClassCodeEnum(Integer code, String name){
+    ClassCodeEnum(Integer code, String name,String unitCodePrefix){
         this.code=code;
         this.name=name;
+        this.unitCodePrefix=unitCodePrefix;
     }
 
     /**

+ 8 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/zd/ZdUnitCodeMapper.java

@@ -135,6 +135,14 @@ public interface ZdUnitCodeMapper {
             " ) </script>"})
     List<ZdUnitCode> checkZdUnitCode(ZdUnitCode zdUnitCode);
 
+    /**
+     * 根据编码模糊查询类似编码最大的记录
+     * @param code
+     * @return
+     */
+    @Select(" select top 1* from zd_unit_code where code  like #{code}  order BY code desc ")
+    ZdUnitCode selectLastZdUnitCodeByCode(@Param("code") String code);
+
     /**
      * 新增科室字典
      *

+ 2 - 1
src/main/java/cn/hnthyy/thmz/service/his/zd/ZdUnitCodeService.java

@@ -1,5 +1,6 @@
 package cn.hnthyy.thmz.service.his.zd;
 
+import cn.hnthyy.thmz.entity.MzException;
 import cn.hnthyy.thmz.entity.his.zd.ZdUnitCode;
 import cn.hnthyy.thmz.pageDto.ZdUnitCodePageDto;
 
@@ -39,7 +40,7 @@ public interface ZdUnitCodeService {
      * @param zdUnitCode
      * @return
      */
-    int saveZdUnitCode(ZdUnitCode zdUnitCode);
+    int saveZdUnitCode(ZdUnitCode zdUnitCode) throws MzException;
 
     /**
      * 修改科室字典

+ 23 - 1
src/main/java/cn/hnthyy/thmz/service/impl/his/zd/ZdUnitCodeServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.hnthyy.thmz.service.impl.his.zd;
 
+import cn.hnthyy.thmz.entity.MzException;
 import cn.hnthyy.thmz.entity.his.zd.ZdMzClass;
 import cn.hnthyy.thmz.entity.his.zd.ZdUnitCode;
 import cn.hnthyy.thmz.enums.ClassCodeEnum;
@@ -71,7 +72,28 @@ public class ZdUnitCodeServiceImpl implements ZdUnitCodeService {
     }
 
     @Override
-    public int saveZdUnitCode(ZdUnitCode zdUnitCode) {
+    public int saveZdUnitCode(ZdUnitCode zdUnitCode) throws MzException {
+        if(zdUnitCode.getClassCode()==null){
+            throw new MzException("分类码不能为空!");
+        }
+        ClassCodeEnum classCodeEnum=ClassCodeEnum.getClassCodeByCode(zdUnitCode.getClassCode());
+        if(classCodeEnum==null){
+            throw new MzException("分类码不正确!");
+        }
+        ZdUnitCode dbZdUnitCode= zdUnitCodeMapper.selectLastZdUnitCodeByCode(classCodeEnum.unitCodePrefix+"%");
+        String code=null;
+        if(dbZdUnitCode==null){
+            //如果没有的分类,直接设置901开头的科室编码
+            dbZdUnitCode= zdUnitCodeMapper.selectLastZdUnitCodeByCode("901%");
+        }
+        if(dbZdUnitCode==null){
+            code = "9010000";
+        }else {
+            Integer tempCode = Integer.valueOf(dbZdUnitCode.getCode());
+            tempCode++;
+            code = tempCode.toString();
+        }
+        zdUnitCode.setCode(code);
        int num=zdUnitCodeMapper.insertZdUnitCode(zdUnitCode);
         initMap(zdUnitCode.getCode(),YesNoEnum.YES);
         return num;

+ 22 - 20
src/main/resources/static/js/mz/unit_code.js

@@ -115,17 +115,19 @@ var TableInit = function () {
                         }
                         return "否";
                     }
-                }, {
-                    field: 'xnhDeptCode',
-                    title: '新农合科室编码',
-                    align: "center",
-                    valign: 'middle',
-                }, {
-                    field: 'xnhDeptName',
-                    title: '新农合科室名称',
-                    align: "center",
-                    valign: 'middle',
-                }, {
+                }
+                // , {
+                //     field: 'xnhDeptCode',
+                //     title: '新农合科室编码',
+                //     align: "center",
+                //     valign: 'middle',
+                // }, {
+                //     field: 'xnhDeptName',
+                //     title: '新农合科室名称',
+                //     align: "center",
+                //     valign: 'middle',
+                // }
+                , {
                     field: 'parentName',
                     title: '父科室',
                     align: "center",
@@ -455,12 +457,12 @@ function deleteSubmit() {
  * 清空部门编辑窗口
  */
 function clearModel() {
-    $("#codePlus").val(null);
+   // $("#codePlus").val(null);
     $("#namePlus").val(null);
     // $("#pyCodePlus").val(null);
     // $("#wbCodePlus").val(null);
-    $("#xnhDeptCodePlus").val(null);
-    $("#xnhDeptNamePlus").val(null);
+    // $("#xnhDeptCodePlus").val(null);
+    // $("#xnhDeptNamePlus").val(null);
     $("#officePosPlus").val(null);
     $("#sortCodePlus").val(null);
     $("#classTypePlus").selectpicker('val', null);//默认不选中
@@ -500,12 +502,12 @@ function fillModel(code) {
                 return;
             }
             if (res.code == 0) {
-                $("#codePlus").val(res.data.code);
+                // $("#codePlus").val(res.data.code);
                 $("#namePlus").val(res.data.name);
                 // $("#pyCodePlus").val(res.data.pyCode);
                 // $("#wbCodePlus").val(res.data.wbCode);
-                $("#xnhDeptCodePlus").val(res.data.xnhDeptCode);
-                $("#xnhDeptNamePlus").val(res.data.xnhDeptName);
+                // $("#xnhDeptCodePlus").val(res.data.xnhDeptCode);
+                // $("#xnhDeptNamePlus").val(res.data.xnhDeptName);
                 $("#officePosPlus").val(res.data.officePos);
                 $("#sortCodePlus").val(res.data.sortCode);
                 $("#classTypePlus").selectpicker('val', res.data.classCode);
@@ -572,12 +574,12 @@ $(function () {
             return;
         }
         var params = {
-            "code": $("#codePlus").val(),
+         //   "code": $("#codePlus").val(),
             "name": $("#namePlus").val(),
             // "pyCode": $("#pyCodePlus").val(),
             // "wbCode": $("#wbCodePlus").val(),
-            "xnhDeptCode": $("#xnhDeptCodePlus").val(),
-            "xnhDeptName": $("#xnhDeptNamePlus").val(),
+            // "xnhDeptCode": $("#xnhDeptCodePlus").val(),
+            // "xnhDeptName": $("#xnhDeptNamePlus").val(),
             "officePos": $("#officePosPlus").val(),
             "sortCode": $("#sortCodePlus").val(),
             "classCode": $("#classTypePlus").val(),

+ 24 - 24
src/main/resources/templates/mz/unit_code.html

@@ -72,15 +72,15 @@
                         <h4 class="modal-title" id="myModalLabel">新增科室</h4>
                     </div>
                     <div class="modal-body">
-                        <form class="form-horizontal form-label-left" novalidate id="formPlus">
+                        <form class="form-horizontal form-label-left" novalidate id="formPlus" autocomplete="off">
                             <div class="item form-group">
-                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="codePlus">科室编码 <span
-                                        class="required">*</span>
-                                </label>
-                                <div class="col-md-6 col-sm-6 col-xs-12">
-                                    <input id="codePlus" class="form-control col-md-7 col-xs-12"
-                                           data-validate-length-range="4,7" required="required" type="text">
-                                </div>
+                                <!--<label class="control-label col-md-3 col-sm-3 col-xs-12" for="codePlus">科室编码 <span-->
+                                        <!--class="required">*</span>-->
+                                <!--</label>-->
+                                <!--<div class="col-md-6 col-sm-6 col-xs-12">-->
+                                    <!--<input id="codePlus" class="form-control col-md-7 col-xs-12"-->
+                                           <!--data-validate-length-range="4,7" required="required" type="text">-->
+                                <!--</div>-->
                             </div>
                             <div class="item form-group">
                                 <label class="control-label col-md-3 col-sm-3 col-xs-12" for="namePlus">科室名称 <span
@@ -109,22 +109,22 @@
                                            <!--data-validate-length-range="1,8" class="form-control col-md-7 col-xs-12">-->
                                 <!--</div>-->
                             <!--</div>-->
-                            <div class="item form-group">
-                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="xnhDeptCodePlus">新农合科室编码
-                                </label>
-                                <div class="col-md-6 col-sm-6 col-xs-12">
-                                    <input type="text" id="xnhDeptCodePlus" data-validate-length-range="1,20"
-                                           class="form-control col-md-7 col-xs-12">
-                                </div>
-                            </div>
-                            <div class="item form-group">
-                                <label class="control-label col-md-3 col-sm-3 col-xs-12" for="xnhDeptNamePlus">新农合科室名称
-                                </label>
-                                <div class="col-md-6 col-sm-6 col-xs-12">
-                                    <input type="text" id="xnhDeptNamePlus" data-validate-length-range="1,25"
-                                           class="form-control col-md-7 col-xs-12">
-                                </div>
-                            </div>
+                            <!--<div class="item form-group">-->
+                                <!--<label class="control-label col-md-3 col-sm-3 col-xs-12" for="xnhDeptCodePlus">新农合科室编码-->
+                                <!--</label>-->
+                                <!--<div class="col-md-6 col-sm-6 col-xs-12">-->
+                                    <!--<input type="text" id="xnhDeptCodePlus" data-validate-length-range="1,20"-->
+                                           <!--class="form-control col-md-7 col-xs-12">-->
+                                <!--</div>-->
+                            <!--</div>-->
+                            <!--<div class="item form-group">-->
+                                <!--<label class="control-label col-md-3 col-sm-3 col-xs-12" for="xnhDeptNamePlus">新农合科室名称-->
+                                <!--</label>-->
+                                <!--<div class="col-md-6 col-sm-6 col-xs-12">-->
+                                    <!--<input type="text" id="xnhDeptNamePlus" data-validate-length-range="1,25"-->
+                                           <!--class="form-control col-md-7 col-xs-12">-->
+                                <!--</div>-->
+                            <!--</div>-->
                             <div class="item form-group">
                                 <label class="control-label col-md-3 col-sm-3 col-xs-12" for="officePosPlus">就诊地点
                                 </label>