浏览代码

药房字典优化

lihong 4 月之前
父节点
当前提交
a4ca6155bb

+ 51 - 2
src/main/java/cn/hnthyy/thmz/controller/mz/YpZdGroupNameController.java

@@ -8,12 +8,16 @@ import cn.hnthyy.thmz.pageDto.YpZdGroupNamePageDto;
 import cn.hnthyy.thmz.service.his.yp.YpZdGroupNameService;
 import cn.hnthyy.thmz.service.his.zd.ZdUnitCodeService;
 import cn.hnthyy.thmz.vo.YpZdGroupNameVo;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 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 javax.servlet.http.HttpServletRequest;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -123,11 +127,56 @@ public class YpZdGroupNameController {
                 return resultMap;
             }
             if (StringUtils.isBlank(ypZdGroupNameVo.getMzFlag())) {
-                ypZdGroupNameVo.setMzFlag("0");
+                resultMap.put("code", -1);
+                resultMap.put("message", "门诊标识不能为空");
+                return resultMap;
             }
             if (StringUtils.isBlank(ypZdGroupNameVo.getYfFlag())) {
-                ypZdGroupNameVo.setYfFlag("0");
+                resultMap.put("code", -1);
+                resultMap.put("message", "药房标识不能为空");
+                return resultMap;
+            }
+            if (StringUtils.isBlank(ypZdGroupNameVo.getZyFlag())) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "住院标识不能为空");
+                return resultMap;
+            }
+            if (StringUtils.isBlank(ypZdGroupNameVo.getXyFlag())) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "西药房标识不能为空");
+                return resultMap;
+            }
+            if (StringUtils.isBlank(ypZdGroupNameVo.getZcyFlag())) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "中草药标识不能为空");
+                return resultMap;
+            }
+            if(StringUtils.isNotBlank(ypZdGroupNameVo.getStartTime()) && StringUtils.isBlank(ypZdGroupNameVo.getEndTime())){
+                resultMap.put("code", -1);
+                resultMap.put("message", "有效开始时间不为空,结束时间不能为空");
+                return resultMap;
+            }
+            if(StringUtils.isNotBlank(ypZdGroupNameVo.getEndTime()) && StringUtils.isBlank(ypZdGroupNameVo.getStartTime())){
+                resultMap.put("code", -1);
+                resultMap.put("message", "有效结束时间不为空,开始时间不能为空");
+                return resultMap;
+            }
+            if(StringUtils.isNotBlank(ypZdGroupNameVo.getStartTime()) && StringUtils.isNotBlank(ypZdGroupNameVo.getEndTime())){
+                try {
+                    Date startTime = DateUtil.parseDateTime("2025-06-13 " + ypZdGroupNameVo.getStartTime() + ":00");
+                    Date endTime = DateUtil.parseDateTime("2025-06-13 " + ypZdGroupNameVo.getEndTime() + ":00");
+                    if(startTime.getTime() > endTime.getTime()){
+                        resultMap.put("code", -1);
+                        resultMap.put("message", "有效开始时间不能大于结束时间");
+                        return resultMap;
+                    }
+                }catch (Exception e){
+                    resultMap.put("code", -1);
+                    resultMap.put("message", "有效开始时间或结束时间格式不对");
+                    return resultMap;
+                }
             }
+            ypZdGroupNameVo.setDelFlag(Convert.toStr(ypZdGroupNameVo.getDelFlag(),"0"));
             ypZdGroupNameVo.setPyCode(PyWbUtil.toBigFirstChar(ypZdGroupNameVo.getGroupName()));
             ypZdGroupNameVo.setWbCode(PyWbUtil.getWBCode(ypZdGroupNameVo.getGroupName()));
             YpZdGroupName ypZdGroupName = ypZdGroupNameService.queryByGroupNo(ypZdGroupNameVo.getGroupNo());

+ 13 - 0
src/main/java/cn/hnthyy/thmz/entity/his/yp/YpZdGroupName.java

@@ -19,6 +19,19 @@ public class YpZdGroupName {
     private String groupName;
     //门诊标识
     private String mzFlag;
+    //住院标识
+    private String zyFlag;
+    //西药药房 0 否 1是
+    private String xyFlag;
+    //中药药房 0 否 1是
+    private String zcyFlag;
+    //有效开始时间
+    private String startTime;
+    //有效结束时间
+    private String endTime;
+    private String officePos;
+    //删除标识 0 有效 1删除
+    private String delFlag;
     //药房标识
     private String yfFlag;
 }

+ 45 - 7
src/main/java/cn/hnthyy/thmz/mapper/his/yp/YpZdGroupNameMapper.java

@@ -15,8 +15,25 @@ public interface YpZdGroupNameMapper {
      * @param groupNo
      * @return
      */
-    @Select("select group_no,dept_code,py_code,d_code wb_code,group_name,mz_flag,yf_flag from yp_zd_group_name WITH(NOLOCK) where group_no=#{groupNo}")
+    @Select("select * from yp_zd_group_name WITH(NOLOCK) where group_no=#{groupNo}")
     YpZdGroupName selectByGroupNo(@Param("groupNo") String groupNo);
+    /**
+     * @description: 查询门诊 西药或中草药房 type =1 为 西药 2 中药
+     * @author: lihong
+     * @date: 2025/6/13 16:42
+     * @param: type
+     * @return: java.util.List<cn.hnthyy.thmz.entity.his.yp.YpZdGroupName>
+     **/
+    @Select(" <script>" +
+            " select * from yp_zd_group_name WITH(NOLOCK) where isnull(del_flag,'0') ='0' and mz_flag = '1'" +
+            " <if test='type == 1'>" +
+            " and xy_flag = '1'"+
+            "</if>"+
+            " <if test='type == 2'>" +
+            " and zcy_flag = '1'"+
+            "</if>"+
+            "</script>")
+    List<YpZdGroupName> selectByXyOrZcy(Integer type);
 
     /**
      * 根据科室编码查询药房
@@ -24,7 +41,7 @@ public interface YpZdGroupNameMapper {
      * @param deptCode
      * @return
      */
-    @Select("select group_no,dept_code,py_code,d_code wb_code,group_name,mz_flag,yf_flag from yp_zd_group_name WITH(NOLOCK) where dept_code=#{deptCode}")
+    @Select("select * from yp_zd_group_name WITH(NOLOCK) where dept_code=#{deptCode}")
     YpZdGroupName selectByDeptCode(@Param("deptCode") String deptCode);
 
     /**
@@ -34,7 +51,7 @@ public interface YpZdGroupNameMapper {
      * @return
      */
     @Select({"<script>",
-            "SELECT top ${pageSize} group_no,dept_code,py_code,d_code wb_code,group_name,mz_flag,yf_flag" +
+            "SELECT top ${pageSize} *" +
                     " FROM (SELECT ROW_NUMBER() OVER (ORDER BY yp_zd_group_name.group_no desc) " +
                     "AS RowNumber,* from yp_zd_group_name WITH(NOLOCK) where 1=1 " +
                     "<when test='ypZdGroupName.groupNo!=null'>" +
@@ -69,7 +86,7 @@ public interface YpZdGroupNameMapper {
      * @return
      */
     @Select({"<script>",
-            "SELECT group_no,dept_code,py_code,d_code wb_code,group_name,mz_flag,yf_flag " +
+            "SELECT * " +
                     "from yp_zd_group_name WITH(NOLOCK) where 1=1 " +
                     "<when test='ypZdGroupName.groupNo!=null'>" +
                     " and group_no =#{ypZdGroupName.groupNo}" +
@@ -101,7 +118,7 @@ public interface YpZdGroupNameMapper {
      * @return
      */
     @Select({"<script>",
-            "SELECT group_no,dept_code,py_code,d_code wb_code,group_name,mz_flag,yf_flag" +
+            "SELECT *" +
                     " FROM  yp_zd_group_name WITH(NOLOCK) ",
             " order by group_no ASC",
             "</script>"})
@@ -146,9 +163,9 @@ public interface YpZdGroupNameMapper {
      * @param ypZdGroupNameVo
      * @return
      */
-    @Insert("insert into yp_zd_group_name(group_no,dept_code,py_code,d_code,group_name,mz_flag,yf_flag)" +
+    @Insert("insert into yp_zd_group_name(group_no,dept_code,py_code,d_code,group_name,mz_flag,yf_flag,zy_flag,xy_flag,zcy_flag,start_time,end_time,del_flag,office_pos)" +
             " values(#{groupNo,jdbcType=VARCHAR},#{deptCode,jdbcType=VARCHAR},#{pyCode,jdbcType=VARCHAR}," +
-            "#{wbCode,jdbcType=VARCHAR},#{groupName,jdbcType=VARCHAR},#{mzFlag,jdbcType=CHAR},#{yfFlag,jdbcType=CHAR})")
+            "#{wbCode,jdbcType=VARCHAR},#{groupName,jdbcType=VARCHAR},#{mzFlag,jdbcType=CHAR},#{yfFlag,jdbcType=CHAR},#{zyFlag,jdbcType=VARCHAR},#{xyFlag,jdbcType=VARCHAR},#{zcyFlag,jdbcType=VARCHAR},#{startTime,jdbcType=VARCHAR},#{endTime,jdbcType=VARCHAR},#{delFlag,jdbcType=VARCHAR},#{delFlag,jdbcType=VARCHAR},#{officePos,jdbcType=VARCHAR})")
     int insertYpZdGroupName(YpZdGroupNameVo ypZdGroupNameVo);
 
     /**
@@ -181,6 +198,27 @@ public interface YpZdGroupNameMapper {
             "<when test='yfFlag!=null'>",
             ",yf_flag =#{yfFlag,jdbcType=CHAR}",
             "</when>",
+            "<when test='xyFlag!=null'>",
+            ",xy_flag =#{xyFlag,jdbcType=VARCHAR}",
+            "</when>",
+            "<when test='zyFlag!=null'>",
+            ",zy_flag =#{zyFlag,jdbcType=VARCHAR}",
+            "</when>",
+            "<when test='zcyFlag!=null'>",
+            ",zcy_flag =#{zcyFlag,jdbcType=VARCHAR}",
+            "</when>",
+            "<when test='startTime!=null'>",
+            ",start_time =#{startTime,jdbcType=VARCHAR}",
+            "</when>",
+            "<when test='endTime!=null'>",
+            ",end_time =#{endTime,jdbcType=VARCHAR}",
+            "</when>",
+            "<when test='delFlag!=null'>",
+            ",del_flag =#{delFlag,jdbcType=VARCHAR}",
+            "</when>",
+            "<when test='officePos!=null'>",
+            ",office_pos =#{officePos,jdbcType=VARCHAR}",
+            "</when>",
             "</trim>"
             , "</script>"})
     int updateYpZdGroupName(YpZdGroupNameVo ypZdGroupNameVo);

+ 13 - 0
src/main/java/cn/hnthyy/thmz/vo/YpZdGroupNameVo.java

@@ -25,4 +25,17 @@ public class YpZdGroupNameVo {
     private String deptName;
     //是否修改
     private Integer isEdit;
+    //西药药房 0 否 1是
+    private String xyFlag;
+    //中药药房 0 否 1是
+    private String zcyFlag;
+    //有效开始时间
+    private String startTime;
+    //有效结束时间
+    private String endTime;
+    private String officePos;
+    //删除标识 0 有效 1删除
+    private String delFlag;
+    //住院标识
+    private String zyFlag;
 }

+ 42 - 0
src/main/resources/otherSource/update_table.sql

@@ -2170,5 +2170,47 @@ alter table t_common_params alter column params_content varchar(800) null
 go
 
 
+--药房增加字段
+alter table yp_zd_group_name
+    add zy_flag varchar(5)
+go
+
+exec sp_addextendedproperty 'MS_Description', '住院药房标识 0 否 1 是', 'SCHEMA', 'dbo', 'TABLE', 'yp_zd_group_name', 'COLUMN', 'zy_flag'
+go
+
+alter table yp_zd_group_name
+    add xy_flag varchar(5)
+go
+
+exec sp_addextendedproperty 'MS_Description', '是否 西药药房 0 否 1是', 'SCHEMA', 'dbo', 'TABLE', 'yp_zd_group_name', 'COLUMN', 'xy_flag'
+go
+
+alter table yp_zd_group_name
+    add zcy_flag varchar(5)
+go
+
+exec sp_addextendedproperty 'MS_Description', '是否中草药药房 0 否 1是', 'SCHEMA', 'dbo', 'TABLE', 'yp_zd_group_name', 'COLUMN', 'zcy_flag'
+go
+
+alter table yp_zd_group_name
+    add del_flag varchar(1)
+go
+
+exec sp_addextendedproperty 'MS_Description', '删除标识 0有效 1删除 ', 'SCHEMA', 'dbo', 'TABLE', 'yp_zd_group_name', 'COLUMN', 'del_flag'
+go
+
+alter table yp_zd_group_name
+    add start_time varchar(150)
+go
+
+exec sp_addextendedproperty 'MS_Description', '有效开始时间', 'SCHEMA', 'dbo', 'TABLE', 'yp_zd_group_name', 'COLUMN', 'start_time'
+go
+
+alter table yp_zd_group_name
+    add end_time varchar(150)
+go
+
+exec sp_addextendedproperty 'MS_Description', '有效结束时间', 'SCHEMA', 'dbo', 'TABLE', 'yp_zd_group_name', 'COLUMN', 'end_time'
+go
 
 

+ 85 - 12
src/main/resources/static/js/mz/group_name.js

@@ -17,10 +17,7 @@ $(function () {
     });
     //角色保存按钮点击事件
     $("#btn_save").click(function (t) {
-        var validatorResult = validator.checkAll($("#editGroupForm"));
-        if (validatorResult) {
             saveGroupName();
-        }
     });
     //初始化表格数据
     getAllGroupName();
@@ -70,6 +67,13 @@ function saveGroupName() {
         groupName: $("#groupName").val(),
         mzFlag: $("#mzFlag").val(),
         yfFlag: $("#yfFlag").val(),
+        zyFlag: $("#zyFlag").val(),
+        xyFlag: $("#xyFlag").val(),
+        zcyFlag: $("#zcyFlag").val(),
+        startTime: $("#startTime").val(),
+        endTime: $("#endTime").val(),
+        delFlag: $("#delFlag").val(),
+        officePos: $("#officePos").val(),
         isEdit: $("#groupNo").attr("readonly") == 'readonly' ? 1 : 0 //1:修改 0:新增
     });
     $.ajax({
@@ -105,9 +109,23 @@ function clearInput() {
     $("#groupNo").val(null);
     $("#groupName").val(null);
     $("#deptCode").val(null);
+    $("#deptCode").selectpicker('refresh');
     $("#mzFlag").val(null);
+    $("#mzFlag").selectpicker('refresh');
     $("#yfFlag").val(null);
-    $("#deptCode").selectpicker('refresh');
+    $("#yfFlag").selectpicker('refresh');
+    $("#zyFlag").val(null);
+    $("#zyFlag").selectpicker('refresh');
+    $("#xyFlag").val(null);
+    $("#xyFlag").selectpicker('refresh');
+    $("#zcyFlag").val(null);
+    $("#zcyFlag").selectpicker('refresh');
+    $("#startTime").val(null);
+    $("#endTime").val(null);
+    $("#delFlag").val('0');
+    $("#delFlag").selectpicker('refresh');
+    $("#officePos").val(null);
+
 }
 
 /**
@@ -168,6 +186,15 @@ function getAllGroupName() {
                    /* str += '<button type="button" class="btn btn-warning  btn-sm" onclick=removeByGroupNo(' + groupNo + ')>删除</button>';*/
                     return [str].join('');
             }
+            },
+             {
+                field: 'delFlag',
+                title: '状态',
+                align: "center",
+                valign: 'middle',
+                formatter: function (value, row, index) {
+                    return value == null || value =='0' ? '有效' : '停用';
+                }
             },
             {
                 field: 'groupNo',
@@ -185,31 +212,65 @@ function getAllGroupName() {
                 align: "center",
                 valign: 'middle'
             }, {
-                field: 'pyCode',
-                title: '拼音编码',
+                field: 'zyFlag',
+                title: '是否住院药房',
                 align: "center",
-                valign: 'middle'
+                valign: 'middle',
+            formatter: function (value, row, index) {
+                return value == null || value =='0' ? '否' : '是';
+            }
             }, {
-                field: 'wbCode',
-                title: '五笔编码',
+                field: 'xyFlag',
+                title: '是否西药房',
                 align: "center",
                 valign: 'middle',
+            formatter: function (value, row, index) {
+                return value == null || value =='0' ? '否' : '是';
+             }
             }, {
+                field: 'zcyFlag',
+                title: '是否中草药房',
+                align: "center",
+                valign: 'middle',
+                formatter: function (value, row, index) {
+                    return value == null || value =='0' ? '否' : '是';
+                }
+            }
+            , {
                 field: 'mzFlag',
                 title: '是否门诊',
                 align: "center",
                 valign: 'middle',
                 formatter: function (value, row, index) {
-                    return value == 0 ? '否' : '是';
+                    return value == '0' || value== null ? '否' : '是';
                 }
-            }, {
+            }
+            , {
                 field: 'yfFlag',
                 title: '是否药房',
                 align: "center",
                 valign: 'middle',
                 formatter: function (value, row, index) {
-                    return value == 0 ? '否' : '是';
+                    return value == '0' || value == null ? '否' : '是';
                 }
+            },
+             {
+                field: 'startTime',
+                title: '有效开始时间',
+                align: "center",
+                valign: 'middle'
+            },
+            {
+                field: 'endTime',
+                title: '有效结束时间',
+                align: "center",
+                valign: 'middle'
+            },
+            {
+                field: 'officePos',
+                title: '地址',
+                align: "center",
+                valign: 'middle'
             }
         ],
         responseHandler: function (res) {
@@ -271,9 +332,21 @@ function updateYpZdGroupName(row) {
     $("#groupNo").val(row.groupNo);
     $("#groupName").val(row.groupName);
     $("#mzFlag").val(row.mzFlag);
+    $("#mzFlag").selectpicker('refresh');
     $("#yfFlag").val(row.yfFlag);
+    $("#yfFlag").selectpicker('refresh');
     $("#deptCode").val(row.deptCode);
     $("#deptCode").selectpicker('refresh');
+    $("#zyFlag").val(row.zyFlag ==null ? '0' : row.zyFlag);
+    $("#zyFlag").selectpicker('refresh');
+    $("#xyFlag").val(row.xyFlag == null ? '0' : row.xyFlag);
+    $("#xyFlag").selectpicker('refresh');
+    $("#zcyFlag").val(row.zcyFlag == null ? '0' : row.zcyFlag);
+    $("#zcyFlag").selectpicker('refresh');
+    $("#startTime").val(row.startTime);
+    $("#endTime").val(row.endTime);
+    $("#delFlag").val(row.delFlag == null ? '0' : row.delFlag);
+    $("#delFlag").selectpicker('refresh');
     $("#editModal").modal();
 }
 

+ 69 - 0
src/main/resources/templates/mz/group_name.html

@@ -90,6 +90,63 @@
                             </select>
                         </div>
                     </div>
+                    <div class="item form-group ">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="zyFlag">是否住院 <span
+                                class="required">*</span>
+                        </label>
+                        <div class="col-md-5 col-sm-5 col-xs-12">
+                            <select class="form-control show-tick" required="required" title="请选择"
+                                    id="zyFlag">
+                                <option value="0">否</option>
+                                <option value="1">是</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="item form-group ">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="xyFlag">是否西药房 <span
+                                class="required">*</span>
+                        </label>
+                        <div class="col-md-5 col-sm-5 col-xs-12">
+                            <select class="form-control show-tick" required="required" title="请选择"
+                                    id="xyFlag">
+                                <option value="0">否</option>
+                                <option value="1">是</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="item form-group ">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="zcyFlag">是否中草药房 <span
+                                class="required">*</span>
+                        </label>
+                        <div class="col-md-5 col-sm-5 col-xs-12">
+                            <select class="form-control show-tick" required="required" title="请选择"
+                                    id="zcyFlag">
+                                <option value="0">否</option>
+                                <option value="1">是</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="item form-group ">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="startTime">有效开始时间
+                        </label>
+                        <div class="col-md-5 col-sm-5 col-xs-12">
+                            <input id="startTime" class="form-control optional" type="text" placeholder="格式:HH:mm" >
+                        </div>
+                    </div>
+                    <div class="item form-group ">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="startTime" placeholder="格式:HH:mm">有效结束时间
+                        </label>
+                        <div class="col-md-5 col-sm-5 col-xs-12">
+                            <input id="endTime" class="form-control optional" type="text"  >
+                        </div>
+                    </div>
+                    <div class="item form-group ">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="officePos">地址
+                        </label>
+                        <div class="col-md-5 col-sm-5 col-xs-12">
+                            <input id="officePos" class="form-control optional" type="text"  >
+                        </div>
+                    </div>
                     <div class="item form-group ">
                         <label class="control-label col-md-3 col-sm-3 col-xs-12" for="mzFlag">是否药房 <span
                                 class="required">*</span>
@@ -102,6 +159,18 @@
                             </select>
                         </div>
                     </div>
+                    <div class="item form-group ">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="delFlag">有效或停用 <span
+                                class="required">*</span>
+                        </label>
+                        <div class="col-md-5 col-sm-5 col-xs-12">
+                            <select class="form-control show-tick" required="required" title="请选择"
+                                    id="delFlag">
+                                <option value="0">有效</option>
+                                <option value="1">停用</option>
+                            </select>
+                        </div>
+                    </div>
                 </form>
             </div>
             <div class="modal-footer">