Ver Fonte

检验分类码列表开发完成

hurugang há 3 anos atrás
pai
commit
df6d43ea85

+ 6 - 1
src/main/java/cn/hnthyy/thmz/controller/zd/JcZdClassController.java

@@ -37,7 +37,7 @@ public class JcZdClassController {
         }
         log.info("查询检查分类字典列表");
         resultMap.put("code", 0);
-        resultMap.put("message", "查询科室列表成功");
+        resultMap.put("message", "查询检查分类字典列表成功");
         resultMap.put("data", jcZdClassService.queryAllJcZdClass(jcZdClass.getCode()));
         return resultMap;
     }
@@ -82,6 +82,11 @@ public class JcZdClassController {
             resultMap.put("message", "保存检查分类失败,分类名称不能为空");
             return resultMap;
         }
+        if (jcZdClass.getName().length()>8) {
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存检查分类失败,分类名称长度不能超过八位");
+            return resultMap;
+        }
        try {
            int num= jcZdClassService.saveJcZdClass(jcZdClass);
            if(num==0){

+ 141 - 0
src/main/java/cn/hnthyy/thmz/controller/zd/JyZdClassController.java

@@ -0,0 +1,141 @@
+package cn.hnthyy.thmz.controller.zd;
+
+import cn.hnthyy.thmz.comment.UserLoginToken;
+import cn.hnthyy.thmz.entity.MzException;
+import cn.hnthyy.thmz.entity.his.zd.JyZdClass;
+import cn.hnthyy.thmz.service.his.zd.JyZdClassService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@Slf4j
+public class JyZdClassController {
+    @Autowired
+    private JyZdClassService jyZdClassService;
+
+    /**
+     * 查询检验分类字典列表
+     * @param jyZdClass
+     * @return
+     */
+    @UserLoginToken
+    @RequestMapping(value = "/listJyZdClass", method = {RequestMethod.GET, RequestMethod.POST})
+    public Map<String, Object> listJyZdClass(@RequestBody JyZdClass jyZdClass) {
+        Map<String, Object> resultMap = new HashMap<>();
+        if(jyZdClass==null){
+            resultMap.put("code", -1);
+            resultMap.put("message", "查询检验分类字典列表失败,参数为空");
+            return resultMap;
+        }
+        if(StringUtils.isBlank(jyZdClass.getCode())){
+            jyZdClass.setCode(null);
+        }else {
+            jyZdClass.setCode("%"+jyZdClass.getCode()+"%");
+        }
+        log.info("查询检验分类字典列表");
+        resultMap.put("code", 0);
+        resultMap.put("message", "查询检验分类字典列表成功");
+        resultMap.put("data", jyZdClassService.queryAllJyZdClass(jyZdClass.getCode()));
+        return resultMap;
+    }
+
+
+
+
+    /**
+     * 根据编码查询分类
+     * @return
+     */
+    @UserLoginToken
+    @RequestMapping(value = "/getJyZdClassByCode", method = {RequestMethod.GET})
+    public Map<String, Object> getJyZdClassByCode(@RequestParam("code") String code) {
+        Map<String, Object> resultMap = new HashMap<>();
+        log.info("根据编码查询分类");
+        resultMap.put("code", 0);
+        resultMap.put("message", "根据编码查询分类成功");
+        resultMap.put("data", jyZdClassService.queryJyZdClassByCode(code));
+        return resultMap;
+    }
+
+
+
+    /**
+     * 保存检验分类
+     * @param jyZdClass
+     * @return
+     */
+    @UserLoginToken
+    @RequestMapping(value = "/saveJyZdClass", method = {RequestMethod.POST})
+    public Map<String, Object> saveJyZdClass(@RequestBody JyZdClass jyZdClass) {
+        log.info("保存检验分类,参数信息");
+        Map<String, Object> resultMap = new HashMap<>();
+        if(jyZdClass==null){
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存检验分类失败,参数为空");
+            return resultMap;
+        }
+        if (StringUtils.isBlank(jyZdClass.getName())) {
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存检验分类失败,分类名称不能为空");
+            return resultMap;
+        }
+        if (StringUtils.isBlank(jyZdClass.getCode())) {
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存检验分类失败,分类编码不能为空");
+            return resultMap;
+        }
+        if (jyZdClass.getCode().length()>3) {
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存检验分类失败,分类编码长度不能超过三位");
+            return resultMap;
+        }
+        if (jyZdClass.getName().length()>8) {
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存检验分类失败,分类名称长度不能超过八位");
+            return resultMap;
+        }
+        try {
+           int num= jyZdClassService.saveJyZdClass(jyZdClass);
+           if(num==0){
+               resultMap.put("code", -1);
+               resultMap.put("message", "保存检验分类失败,请重试或者联系管理员");
+               return resultMap;
+           }
+           resultMap.put("code", 0);
+           resultMap.put("message", "保保存检验分类成功");
+           return resultMap;
+       }catch (MzException e){
+           resultMap.put("code", -1);
+           resultMap.put("message", e.getMessage());
+           return resultMap;
+       }catch (Exception e){
+           e.printStackTrace();
+           resultMap.put("code", -1);
+           resultMap.put("message", "保保存检验分类失败,错误信息:【"+e.getMessage()+"】");
+           log.error("保存检验分类失败,错误信息:[]",e);
+           return resultMap;
+       }
+    }
+
+
+
+    /**
+     * 删除检验分类
+     * @return
+     */
+    @UserLoginToken
+    @RequestMapping(value = "/removeJyZdClass", method = {RequestMethod.GET})
+    public Map<String, Object> removeJyZdClass(@RequestParam("code") String code) {
+        Map<String, Object> resultMap = new HashMap<>();
+        log.info("删除检验分类");
+        resultMap.put("code", 0);
+        resultMap.put("message", "删除检验分类成功");
+        resultMap.put("data", jyZdClassService.removeJyZdClassByCode(code));
+        return resultMap;
+    }
+}

+ 47 - 0
src/main/java/cn/hnthyy/thmz/entity/his/zd/JyZdClass.java

@@ -0,0 +1,47 @@
+package cn.hnthyy.thmz.entity.his.zd;
+
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * @Description  检验分类
+ * @Author  胡如刚
+ * @Date 2021-12-15 
+ */
+
+@Data
+public class JyZdClass  implements Serializable {
+
+	private static final long serialVersionUID =  316991252532934054L;
+
+	/**
+	 * code 分类编码
+	 */
+	private String code;
+
+	/**
+	 * name 分类名称
+	 */
+	private String name;
+
+	/**
+	 * pyCode
+	 */
+	private String pyCode;
+
+	/**
+	 * dCode
+	 */
+	private String wbCode;
+
+	/**
+	 * reqFlag
+	 */
+	private String reqFlag;
+
+	/**
+	 * code 原分类编码编码  修改的时候使用,非数据库字段
+	 */
+	private String oriCode;
+
+}

+ 75 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/zd/JyZdClassMapper.java

@@ -0,0 +1,75 @@
+package cn.hnthyy.thmz.mapper.his.zd;
+
+import cn.hnthyy.thmz.entity.his.zd.JyZdClass;
+import org.apache.ibatis.annotations.*;
+
+import java.util.List;
+
+public interface JyZdClassMapper {
+    /**
+     * 查询所有分类码
+     *
+     * @return
+     */
+    @Select({"<script>",
+            "select code, name, py_code, d_code wb_code from jy_zd_class ",
+            "<when test='code!=null'>",
+            " where code like #{code} or name like #{code} or py_code like #{code} or d_code like #{code}",
+            "</when>"
+            ," order by code desc </script>"})
+    List<JyZdClass> selectAllJyZdClass(@Param("code") String code);
+
+    /**
+     * 根据分类码查询检查分类
+     *
+     * @return
+     */
+    @Select("select code, name, py_code, d_code wb_code from jy_zd_class where code= #{code}")
+    JyZdClass selectJyZdClassByCode(@Param("code") String code);
+
+    /**
+     * 插入分類
+     *
+     * @param jyZdClass
+     * @return
+     */
+    @Insert("if not exists (select name  from jy_zd_class where code=#{code}) " +
+            "INSERT INTO jy_zd_class(code, name, py_code, d_code) " +
+            " VALUES (#{code}, #{name}, #{pyCode},#{wbCode})")
+    int insertJyZdClass(JyZdClass jyZdClass);
+
+
+    /**
+     * 根据分类码删除分类
+     *
+     * @param code
+     * @return
+     */
+    @Delete("delete from jy_zd_class where code = #{code}")
+    int deleteJyZdClassByCode(@Param("code") String code);
+
+    /**
+     * 修改检查分类
+     *
+     * @param jyZdClass
+     * @return
+     */
+    @Update({"<script>",
+            "update jy_zd_class",
+            "<trim prefix='set' prefixOverrides=',' suffix=' where code = #{oriCode} '>",
+            "<when test='code!=null'>",
+            ",code =#{code}",
+            "</when>",
+            "<when test='name!=null'>",
+            ",name =#{name}",
+            "</when>",
+            "<when test='pyCode!=null'>",
+            ",py_code =#{pyCode}",
+            "</when>",
+            "<when test='wbCode!=null'>",
+            ",d_code =#{wbCode}",
+            "</when>",
+            "</trim>",
+            "</script>"})
+    int updateJyZdClass(JyZdClass jyZdClass);
+}

+ 37 - 0
src/main/java/cn/hnthyy/thmz/service/his/zd/JyZdClassService.java

@@ -0,0 +1,37 @@
+package cn.hnthyy.thmz.service.his.zd;
+
+import cn.hnthyy.thmz.entity.MzException;
+import cn.hnthyy.thmz.entity.his.zd.JyZdClass;
+import java.util.List;
+
+public interface JyZdClassService {
+    /**
+     * 查询所有分类码
+     * @param code 通用查询参数
+     * @return
+     */
+    List<JyZdClass> queryAllJyZdClass(String code);
+    /**
+     * 根据分类码查询检查分类
+     *
+     * @return
+     */
+    JyZdClass queryJyZdClassByCode(String code);
+
+    /**
+     * 插入分類
+     *
+     * @param jyZdClass
+     * @return
+     */
+    int saveJyZdClass(JyZdClass jyZdClass) throws MzException;
+
+    /**
+     * 根据分类码删除分类
+     *
+     * @param code
+     * @return
+     */
+    int removeJyZdClassByCode(String code);
+
+}

+ 46 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/zd/JyZdClassServiceImpl.java

@@ -0,0 +1,46 @@
+package cn.hnthyy.thmz.service.impl.his.zd;
+
+import cn.hnthyy.thmz.Utils.PyWbUtil;
+import cn.hnthyy.thmz.entity.MzException;
+import cn.hnthyy.thmz.entity.his.zd.JyZdClass;
+import cn.hnthyy.thmz.mapper.his.zd.JyZdClassMapper;
+import cn.hnthyy.thmz.service.his.zd.JyZdClassService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+@Service
+public class JyZdClassServiceImpl implements JyZdClassService {
+    @SuppressWarnings("all")
+    @Autowired
+    private JyZdClassMapper jyZdClassMapper;
+    @Override
+    public List<JyZdClass> queryAllJyZdClass(String code) {
+        return jyZdClassMapper.selectAllJyZdClass(code);
+    }
+
+    @Override
+    public JyZdClass queryJyZdClassByCode(String code) {
+        return jyZdClassMapper.selectJyZdClassByCode(code);
+    }
+
+    @Override
+    public int saveJyZdClass(JyZdClass jyZdClass) throws MzException {
+        jyZdClass.setPyCode(PyWbUtil.toBigFirstChar(jyZdClass.getName()));
+        jyZdClass.setWbCode(PyWbUtil.getWBCode(jyZdClass.getName()));
+        if(StringUtils.isBlank(jyZdClass.getOriCode())){
+            JyZdClass dbJyZdClass= jyZdClassMapper.selectJyZdClassByCode(jyZdClass.getCode());
+            if(dbJyZdClass!=null){
+                throw new MzException("已经存在相同编码的检验分类,请重新输入分类码!");
+            }
+            return jyZdClassMapper.insertJyZdClass(jyZdClass);
+        }
+        return jyZdClassMapper.updateJyZdClass(jyZdClass);
+    }
+
+    @Override
+    public int removeJyZdClassByCode(String code) {
+        return jyZdClassMapper.deleteJyZdClassByCode(code);
+    }
+}

+ 214 - 4
src/main/resources/static/js/mz/jc_jy_zd_class.js

@@ -8,6 +8,9 @@ $(function () {
             clearJcInput();
         } else {
             //initJyZdClassList();
+            $("#editJyModal").modal();
+            $("#classJyTitle").text("新增");
+            clearJyInput()
         }
 
     });
@@ -19,16 +22,26 @@ $(function () {
             $("#messageModal").modal("hide");
             saveJcZdClass();
         });
+    });
+
 
+    $("#btn_jy_save").click(function (t) {
+        $("#messageModal").modal();
+        $("#messageContent").html("确认要保存当前检验分类吗?");
+        $("#messageButton").off("click").on("click", function (t) {
+            $("#messageModal").modal("hide");
+            saveJyZdClass();
+        });
     });
-    //initJyZdClassList();
+
+    initJyZdClassList();
 
     $("#btn_query").click(function (t) {
         var sourceGroup = getIndex("source_group");
         if (sourceGroup == 0) {
             initJcZdClassList()
         } else {
-            //initJyZdClassList();
+            initJyZdClassList();
         }
 
     });
@@ -50,7 +63,7 @@ function sourceChange(object) {
     if (sourceGroup == 0) {
         initJcZdClassList();
     } else {
-        //initJyZdClassList();
+        initJyZdClassList();
     }
 }
 
@@ -131,6 +144,50 @@ function saveJcZdClass() {
     });
 }
 
+/**
+ * 保存檢验分类
+ */
+function saveJyZdClass() {
+    var oriCode= $("#oriCode").val();
+    var data = null;
+    //修改檢验分类
+    if (oriCode != null) {
+        data = JSON.stringify({
+            oriCode: oriCode,
+            name: $("#jyName").val(),
+            code: $("#jyCode").val()
+        });
+    } else {
+        //新增檢验分类
+        data = JSON.stringify({
+            name: $("#jyName").val(),
+            code: $("#jyCode").val()
+        });
+    }
+    $.ajax({
+        type: "POST",
+        url: '/thmz/saveJyZdClass',
+        contentType: "application/json;charset=UTF-8",
+        dataType: "json",
+        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
+        data: data,
+        success: function (res) {
+            if (res == '401' || res == 401) {
+                window.location.href = '/thmz/login/view'
+                return;
+            }
+            if (res.code == 0) {
+                $("#editJyModal").modal("hide");
+                clearJyInput();
+                $('#tb_table').bootstrapTable('refresh');
+                successMesage(res);
+            } else {
+                errorMesage(res);
+            }
+        }
+    });
+}
+
 
 /**
  * 清空输入框
@@ -149,6 +206,15 @@ function clearJcInput() {
     $("#comment8").val(null);
 }
 
+/**
+ * 清空输入框
+ */
+function clearJyInput() {
+    $("#jyCode").val(null);
+    $("#jyName").val(null);
+    $("#oriCode").val(null);
+}
+
 
 /**
  * 查询菜单列表
@@ -272,6 +338,90 @@ function initJcZdClassList() {
     });
 }
 
+/**
+ * 查询检验列表
+ */
+function initJyZdClassList() {
+    $('#tb_table').bootstrapTable("destroy");
+    $('#tb_table').bootstrapTable({
+        url: '/thmz/listJyZdClass',         //请求后台的URL(*)
+        method: 'post',                      //请求方式(*)
+        toolbar: '#toolbar',                //工具按钮用哪个容器
+        striped: true,                      //是否显示行间隔色
+        cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+        pagination: true,                   //是否显示分页(*)
+        sortable: true,                     //是否启用排序
+        sortOrder: "asc",                   //排序方式
+        queryParams: queryParams,           //传递参数(*)
+        sidePagination: "client",           //分页方式:client客户端分页,server服务端分页(*)
+        pageNumber: 1,                       //初始化加载第一页,默认第一页
+        pageSize: 5,                       //每页的记录行数(*)
+        pageList: [5, 10, 25, 50, 100],        //可供选择的每页的行数(*)
+        search: false,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
+        strictSearch: true,
+        showColumns: false,                  //是否显示所有的列
+        showRefresh: false,                  //是否显示刷新按钮
+        minimumCountColumns: 2,             //最少允许的列数
+        clickToSelect: true,                //是否启用点击选中行
+        uniqueId: "ID",                     //每一行的唯一标识,一般为主键列
+        showToggle: false,                    //是否显示详细视图和列表视图的切换按钮
+        cardView: false,                    //是否显示详细视图
+        detailView: false,
+        //rowStyle:rowStyle,//通过自定义函数设置行样式
+        ajaxOptions: {
+            headers: {
+                'Accept': 'application/json',
+                'Authorization': 'Bearer ' + localStorage.getItem("token")
+            }
+        },
+        columns: [
+            {
+                title: '操作',
+                align: "center",
+                valign: 'middle',
+                formatter: function (value, row, index) {
+                    var str = '<button type="button" class="btn btn-primary  btn-sm" onclick="editJyMenu(' + row.code + ')">编辑</button>';
+                    str += '<button type="button" class="btn btn-warning  btn-sm" onclick="deleteJyMenu(' + row.code + ')">删除</button>';
+                    return [str].join('');
+                }
+            },
+            {
+                field: 'code',
+                title: '分类编码',
+                align: "center",
+                valign: 'middle'
+            },
+            {
+                field: 'name',
+                title: '分类名称',
+                align: "center",
+                valign: 'middle'
+            }
+        ],
+        responseHandler: function (res) {
+            if (res == '401' || res == 401) {
+                window.location.href = '/thmz/login/view'
+                return;
+            }
+            var ress = eval(res);
+            if (ress.code == -1) {
+                if (ress.message != null && ress.message != '') {
+                    errorMesage(res);
+                }
+                return {
+                    "total": 0,//总页数
+                    "rows": {}   //数据
+                };
+            }
+            return {
+                "total": ress.data.length,//总页数
+                "rows": ress.data   //数据
+            };
+        },
+    });
+}
+
+
 /**
  * 构建列表查询参数
  * @param params
@@ -286,7 +436,7 @@ function queryParams(params) {
 
 
 /**
- * 打开编辑窗口
+ * 打开编辑检查窗口
  * @param code
  */
 function editJcMenu(code) {
@@ -352,3 +502,63 @@ function deleteJcMenu(code) {
 }
 
 
+
+
+
+/**
+ * 打开编辑检验窗口
+ * @param code
+ */
+function editJyMenu(code) {
+    $("#classJyTitle").text("修改");
+    $.ajax({
+        type: "GET",
+        url: '/thmz/getJyZdClassByCode?code=' + code,
+        dataType: "json",
+        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
+        success: function (res) {
+            if (res == '401' || res == 401) {
+                window.location.href = '/thmz/login/view'
+                return;
+            }
+            if (res.code == 0) {
+                $("#jyCode").val(res.data.code);
+                $("#jyName").val(res.data.name);
+                $("#oriCode").val(res.data.code);
+                $("#editJyModal").modal();
+            } else {
+                errorMesage(res);
+            }
+        }
+    });
+}
+
+/**
+ * 删除检验分类
+ * @param id
+ */
+function deleteJyMenu(code) {
+    $("#messageModal").modal();
+    $("#messageContent").html("确认要删除当前检验分类吗?");
+    $("#messageButton").off("click").on("click", function (t) {
+        $("#messageModal").modal("hide");
+        $.ajax({
+            type: "GET",
+            url: '/thmz/removeJyZdClass?code=' + code,
+            dataType: "json",
+            headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
+            success: function (res) {
+                if (res == '401' || res == 401) {
+                    window.location.href = '/thmz/login/view'
+                    return;
+                }
+                if (res.code == 0) {
+                    $('#tb_table').bootstrapTable('refresh');
+                    successMesage(res);
+                } else {
+                    errorMesage(res);
+                }
+            }
+        });
+    });
+}

+ 44 - 2
src/main/resources/templates/mz/jc_jy_zd_class.html

@@ -135,15 +135,57 @@
                 </form>
             </div>
             <div class="modal-footer">
-                <input id="requestId" type="hidden"/>
                 <button type="button" class="btn btn-primary" id="btn_save">保存</button>
                 <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
             </div>
         </div>
     </div>
 </div>
-<!--新增或者编辑菜单信息弹窗结尾-->
+<!--新增或者编辑检查分类信息弹窗结尾-->
+
 
+<!--新增或者编辑检查分类信息弹窗开始-->
+<div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-hidden="true" id="editJyModal">
+    <div class="modal-dialog modal-lg">
+        <div class="modal-content" style="width: 420px;margin-left: 200px;margin-top: 150px;">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span>
+                </button>
+                <h4 class="modal-title modal-title-thmz">检验分类管理【<span id="classJyTitle">新增</span>】</h4>
+            </div>
+            <div class="modal-body">
+                <form class="form-horizontal form-label-left" novalidate autocomplete="off">
+                    <div class="item form-group thmz_alert">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="jyCode">分类编码 <span
+                                class="required">*</span>
+                        </label>
+                        <div class="col-md-6 col-sm-6 col-xs-12">
+                            <input id="oriCode" type="hidden"/>
+                            <input id="jyCode" class="form-control optional" type="text"
+                                   data-validate-length-range="0,4"
+                                   placeholder="请输入">
+                        </div>
+                    </div>
+                    <div class="item form-group thmz_alert">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="jyName">分类名称 <span
+                                class="required">*</span>
+                        </label>
+                        <div class="col-md-6 col-sm-6 col-xs-12">
+                            <input id="jyName" class="form-control optional" type="text"
+                                   data-validate-length-range="0,10"
+                                   placeholder="请输入">
+                        </div>
+                    </div>
+                </form>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-primary" id="btn_jy_save">保存</button>
+                <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
+            </div>
+        </div>
+    </div>
+</div>
+<!--新增或者编辑菜单信息弹窗结尾-->
 
 
 <!--提示弹窗开始-->