소스 검색

Merge branch 'dev-1.1.0' of https://172.16.32.165/hurugang/thmz_system into dev-1.1.0

hurugang 4 년 전
부모
커밋
f733776eb2

+ 14 - 0
src/main/java/cn/hnthyy/thmz/controller/NavigationController.java

@@ -179,6 +179,20 @@ public class NavigationController {
         return "sfy_config";
     }
 
+    /**
+     * 打开发药员基础设置页面
+     *
+     * @return
+     */
+    @RequestMapping("/fy-config")
+    public String fyConfig(HttpServletRequest httpServletRequest) throws Exception {
+        List<String> urls = getRoleUrls(httpServletRequest);
+        if (!urls.contains("/thmz/fy-config")) {
+            throw new Exception("您没有此模块的权限,请联系管理员开通!");
+        }
+        return "fy_config";
+    }
+
     /**
      * 打印机设置页面
      *

+ 127 - 0
src/main/java/cn/hnthyy/thmz/controller/mz/DispensingWindowsController.java

@@ -0,0 +1,127 @@
+package cn.hnthyy.thmz.controller.mz;
+
+import cn.hnthyy.thmz.Utils.JsonUtil;
+import cn.hnthyy.thmz.Utils.MacAddressUtil;
+import cn.hnthyy.thmz.Utils.TokenUtil;
+import cn.hnthyy.thmz.comment.UserLoginToken;
+import cn.hnthyy.thmz.entity.thmz.DispensingWindows;
+import cn.hnthyy.thmz.entity.thmz.User;
+import cn.hnthyy.thmz.entity.thmz.Windows;
+import cn.hnthyy.thmz.service.thmz.DispensingWindowsService;
+import cn.hnthyy.thmz.service.thmz.WindowsService;
+import com.auth0.jwt.interfaces.DecodedJWT;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@Slf4j
+public class DispensingWindowsController {
+    @Autowired
+    private DispensingWindowsService dispensingWindowsService;
+
+    /**
+     * 保存窗口号,药房,打印机
+     * @param dispensingWindows
+     * @return
+     */
+    @UserLoginToken
+    @RequestMapping(value = "/saveDispensingWindows", method = {RequestMethod.POST})
+    public Map<String, Object> saveDispensingWindows(@RequestBody DispensingWindows dispensingWindows, HttpServletRequest httpServletRequest) {
+        Map<String, Object> resultMap = new HashMap<>();
+        if(dispensingWindows==null){
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存发药员设置失败,参数为空");
+            return resultMap;
+        }
+        if(dispensingWindows.getWindowsNo()==null){
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存发药员设置失败,窗口号为空");
+            return resultMap;
+        }
+        if(dispensingWindows.getGroupNo()==null){
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存发药员设置失败,药房为空");
+            return resultMap;
+        }
+        String token = TokenUtil.getToken(httpServletRequest);
+        if (StringUtils.isBlank(token)) {
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存发药员设置失败,用户Token不存在");
+            return resultMap;
+        }
+        DecodedJWT decodedJWT=TokenUtil.parseJWT(token);
+        User tokenUser=(User)JsonUtil.jsontoObject(decodedJWT.getSubject(),User.class);
+        try {
+            dispensingWindows.setUserIdCode(tokenUser.getUserIdCode());
+            dispensingWindows.setCreateDate(new Date());
+            DispensingWindows fyWindows = dispensingWindowsService.queryLastDispensingWindowsByUserIdCode(tokenUser.getUserIdCode(), null);
+            if(fyWindows!=null){
+                dispensingWindows.setId(fyWindows.getId());
+            }
+            int num =dispensingWindowsService.saveDispensingWindows(dispensingWindows);
+            if(num==1){
+                resultMap.put("code", 0);
+                resultMap.put("message", "保存发药员设置成功");
+                return resultMap;
+            }
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存发药员设置失败");
+            return resultMap;
+        }catch (Exception e){
+            e.printStackTrace();
+            resultMap.put("code", -1);
+            resultMap.put("message", "保存发药员设置失败,错误信息:【"+e.getMessage()+"】");
+            log.error("保存发药员设置失败,错误信息:[]",e.getMessage());
+            return resultMap;
+        }
+    }
+
+
+    /**
+     * 查询用户的最后一个在使用中的发药员设置
+     * @return
+     */
+    @UserLoginToken
+    @RequestMapping(value = "/getLastDispensingWindowsByCurrentUser", method = {RequestMethod.GET})
+    public Map<String, Object> getLastDispensingWindowsByCurrentUser(HttpServletRequest httpServletRequest) {
+        Map<String, Object> resultMap = new HashMap<>();
+        String token = TokenUtil.getToken(httpServletRequest);
+        if (StringUtils.isBlank(token)) {
+            resultMap.put("code", -1);
+            resultMap.put("message", "查询发药员设置失败,用户Token不存在");
+            return resultMap;
+        }
+        try {
+            String ipAddress=MacAddressUtil.getIpAddr(httpServletRequest);
+            DecodedJWT decodedJWT=TokenUtil.parseJWT(token);
+            User tokenUser=(User)JsonUtil.jsontoObject(decodedJWT.getSubject(),User.class);
+            DispensingWindows dispensingWindows=dispensingWindowsService.queryLastDispensingWindowsByUserIdCode(tokenUser.getUserIdCode(),ipAddress);
+            if(dispensingWindows!=null){
+                resultMap.put("code", 0);
+                resultMap.put("message", "查询发药员设置成功");
+                resultMap.put("data",dispensingWindows);
+                return resultMap;
+            }
+            resultMap.put("code", -2);
+            resultMap.put("message", "查询发药员设置失败");
+            return resultMap;
+        }catch (Exception e){
+            e.printStackTrace();
+            resultMap.put("code", -1);
+            resultMap.put("message", "查询发药员设置失败,错误信息:【"+e.getMessage()+"】");
+            log.error("查询发药员设置失败,错误信息:[]",e.getMessage());
+            return resultMap;
+        }
+    }
+
+}

+ 36 - 0
src/main/java/cn/hnthyy/thmz/entity/thmz/DispensingWindows.java

@@ -0,0 +1,36 @@
+package cn.hnthyy.thmz.entity.thmz;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 发药窗口打印机
+ */
+@Data
+public class DispensingWindows {
+    //主键
+    private Long id;
+    //发药药房
+    private String groupNo;
+    //窗口号
+    private Integer windowsNo;
+    //默认门诊处方打印机下标
+    private Integer mzCfPrintIndex;
+    //默认儿科处方打印机下标
+    private Integer ekCfPrintIndex;
+    //默认急诊处方打印机下标
+    private Integer jzCfPrintIndex;
+    //默认注射单打印机下标
+    private Integer zsdPrintIndex;
+    //默认标签打印机下标
+    private Integer bqPrintIndex;
+    //用户id
+    private String userIdCode;
+    //ip地址 mac地址
+    private String ipAddress;
+    //创建时间
+    private Date createDate;
+    //当前设置的更新时间
+    private Date updateDate;
+}

+ 72 - 0
src/main/java/cn/hnthyy/thmz/mapper/thmz/DispensingWindowsMapper.java

@@ -0,0 +1,72 @@
+package cn.hnthyy.thmz.mapper.thmz;
+
+import cn.hnthyy.thmz.entity.thmz.DispensingWindows;
+import cn.hnthyy.thmz.entity.thmz.Windows;
+import org.apache.ibatis.annotations.*;
+
+public interface DispensingWindowsMapper {
+    /**
+     * 新增窗口记录
+     *
+     * @param dispensingWindows
+     * @return
+     */
+    @Insert("INSERT INTO t_dispensing_windows(group_no,windows_no,mz_cf_print_index,ek_cf_print_index,jz_cf_print_index,zsd_print_index,bq_print_index,user_id_code,ip_address, create_date,update_date) VALUES " +
+            "(#{groupNo,jdbcType=VARCHAR},#{windowsNo,jdbcType=INTEGER},#{mzCfPrintIndex,jdbcType=INTEGER},#{ekCfPrintIndex,jdbcType=INTEGER},#{jzCfPrintIndex,jdbcType=INTEGER}," +
+            "#{zsdPrintIndex,jdbcType=INTEGER},#{bqPrintIndex,jdbcType=INTEGER},#{userIdCode,jdbcType=VARCHAR},#{ipAddress,jdbcType=VARCHAR}, #{createDate,jdbcType=TIMESTAMP}, #{updateDate,jdbcType=TIMESTAMP})")
+    @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
+    int insertDispensingUser(DispensingWindows dispensingWindows);
+
+    /**
+     * 查询用户的最后一个在使用中的窗口号
+     *
+     * @param userIdCode
+     * @return
+     */
+    @Select({"<script>",
+            "select id,group_no,windows_no,mz_cf_print_index,ek_cf_print_index,jz_cf_print_index,zsd_print_index,bq_print_index," +
+                    "user_id_code,ip_address, create_date,update_date from t_dispensing_windows where user_id_code= #{userIdCode,jdbcType=VARCHAR} " +
+                    "<when test='ipAddress!=null'>",
+            " or ip_address= #{ipAddress,jdbcType=VARCHAR} ",
+            "</when>",
+            "order by create_date desc limit 1",
+            "</script>"})
+    DispensingWindows selectLastDispensingWindowsByUserIdCode(@Param("userIdCode") String userIdCode, @Param("ipAddress") String ipAddress);
+
+    /**
+     * 更新设置
+     *
+     * @param dispensingWindows
+     * @return
+     */
+    @Update({"<script>",
+            "update t_dispensing_windows",
+            "<trim prefix='set' prefixOverrides=',' suffix=' where id=#{id,jdbcType=BIGINT}' >",
+            "<when test='groupNo!=null'>",
+            "group_no=#{groupNo,jdbcType=VARCHAR}",
+            "</when>",
+            "<when test='windowsNo!=null'>",
+            ",windows_no=#{windowsNo,jdbcType=INTEGER}",
+            "</when>",
+            "<when test='mzCfPrintIndex!=null'>",
+            ",mz_cf_print_index=#{mzCfPrintIndex,jdbcType=INTEGER}",
+            "</when>",
+            "<when test='ekCfPrintIndex!=null'>",
+            ",ek_cf_print_index=#{ekCfPrintIndex,jdbcType=INTEGER}",
+            "</when>",
+            "<when test='jzCfPrintIndex!=null'>",
+            ",jz_cf_print_index=#{jzCfPrintIndex,jdbcType=INTEGER}",
+            "</when>",
+            "<when test='zsdPrintIndex!=null'>",
+            ",zsd_print_index=#{zsdPrintIndex,jdbcType=INTEGER}",
+            "</when>",
+            "<when test='bqPrintIndex!=null'>",
+            ",bq_print_index=#{bqPrintIndex,jdbcType=INTEGER}",
+            "</when>",
+            "<when test='updateDate!=null'>",
+            ",update_date=#{updateDate,jdbcType=TIMESTAMP}",
+            "</when>",
+            "</trim>",
+            "</script>"})
+    int updateDispensingWindows(DispensingWindows dispensingWindows);
+}

+ 36 - 0
src/main/java/cn/hnthyy/thmz/service/impl/thmz/DispensingWindowsServiceImpl.java

@@ -0,0 +1,36 @@
+package cn.hnthyy.thmz.service.impl.thmz;
+
+import cn.hnthyy.thmz.entity.thmz.DispensingWindows;
+import cn.hnthyy.thmz.mapper.thmz.DispensingWindowsMapper;
+import cn.hnthyy.thmz.service.thmz.DispensingWindowsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+@Service
+public class DispensingWindowsServiceImpl implements DispensingWindowsService {
+    @SuppressWarnings("all")
+    @Autowired
+    private DispensingWindowsMapper dispensingWindowsMapper;
+    @Override
+    public int saveDispensingWindows(DispensingWindows dispensingWindows) {
+        if(dispensingWindows.getId()==null){
+            return dispensingWindowsMapper.insertDispensingUser(dispensingWindows);
+        }
+        dispensingWindows.setUpdateDate(new Date());
+        return dispensingWindowsMapper.updateDispensingWindows(dispensingWindows);
+
+    }
+
+    @Override
+    public DispensingWindows queryLastDispensingWindowsByUserIdCode(String userIdCode,String ipAddress) {
+        return dispensingWindowsMapper.selectLastDispensingWindowsByUserIdCode(userIdCode,ipAddress);
+    }
+
+    @Override
+    public int modifyDispensingWindows(DispensingWindows dispensingWindows) {
+        return dispensingWindowsMapper.updateDispensingWindows(dispensingWindows);
+    }
+
+}

+ 28 - 0
src/main/java/cn/hnthyy/thmz/service/thmz/DispensingWindowsService.java

@@ -0,0 +1,28 @@
+package cn.hnthyy.thmz.service.thmz;
+
+import cn.hnthyy.thmz.entity.thmz.DispensingWindows;
+import cn.hnthyy.thmz.entity.thmz.Windows;
+
+public interface DispensingWindowsService {
+    /**
+     * 新增窗口记录
+     *
+     * @param dispensingWindows
+     * @return
+     */
+    int saveDispensingWindows(DispensingWindows dispensingWindows);
+
+    /**
+     * 查询用户的最后一个在使用中的窗口号
+     * @param userIdCode
+     * @return
+     */
+    DispensingWindows queryLastDispensingWindowsByUserIdCode(String userIdCode, String ipAddress);
+
+    /**
+     * 更新打印机下标
+     * @param dispensingWindows
+     * @return
+     */
+    int modifyDispensingWindows(DispensingWindows dispensingWindows);
+}

+ 156 - 0
src/main/resources/static/js/fy_config.js

@@ -0,0 +1,156 @@
+//@ sourceURL=fy_config.js
+var LODOP; //声明为全局变量
+var printSucess=false;
+$(function (){
+
+    $(".selectpicker").selectpicker({
+        dropuAuto: false
+    });
+    //延迟触发列表加载,因为一开始打印程序还没有加载成功
+    setTimeout('createPrinterList()',500);
+
+    var html = '<option value="71">门诊西药房</option><option value="81">门诊中药房</option><option value="82">颗粒剂药房</option>';
+    $('#groupNoSelect').html(html);
+    $('#groupNoSelect').selectpicker('refresh');
+
+    delay(getLastDispensingWindowsByCurrentUser);
+
+
+    /**
+     * 提交按钮点击事件
+     */
+    $("#send").on("click",function (t) {
+        //
+        var data = {
+            "groupNo": $("#groupNoSelect").val(),
+            "windowsNo":$("#winNo").val(),
+            "mzCfPrintIndex": $("#printSelect_mzcf").val(),
+            "ekCfPrintIndex": $("#printSelect_ekcf").val(),
+            "jzCfPrintIndex": $("#printSelect_jzcf").val(),
+            "zsdPrintIndex": $("#printSelect_zsd").val(),
+            "bqPrintIndex": $("#printSelect_bq").val()
+        };
+        console.log("表单数据");
+        console.log(data);
+        $.ajax({
+            type: "POST",
+            contentType: "application/json;charset=UTF-8",
+            url: "/thmz/saveDispensingWindows",
+            dataType: 'json',
+            data: JSON.stringify(data),
+            headers:{'Accept': 'application/json','Authorization':'Bearer '+ localStorage.getItem("token")},
+            success: function(result) {
+                if(result=='401' || result==401){
+                    window.location.href='/thmz/login/view'
+                    return;
+                }
+                if(result.code == 0) {
+                    successMesage(result);
+                } else {
+                    errorMesage(result);
+                }
+            }
+        });
+    });
+
+});
+
+
+/**
+ * 查询当前用户的基础设置
+ */
+function getLastDispensingWindowsByCurrentUser() {
+    /**
+     * 查询发药员参数信息
+     */
+    $.ajax({
+        type: "GET",
+        contentType: "application/json;charset=UTF-8",
+        url: "/thmz/getLastDispensingWindowsByCurrentUser",
+        dataType: 'json',
+        headers:{'Accept': 'application/json','Authorization':'Bearer '+ localStorage.getItem("token")},
+        success: function(result) {
+            if(result=='401' || result==401){
+                window.location.href='/thmz/login/view'
+                return;
+            }
+            if(result.code == 0) {
+                $("#winNo").val(result.data.windowsNo);
+                if(result.data.mzCfPrintIndex!=null){
+                    $('#printSelect_mzcf').selectpicker('val', result.data.mzCfPrintIndex);
+                    $('#printSelect_mzcf').selectpicker('refresh');
+                }
+                if(result.data.ekCfPrintIndex!=null){
+                    $('#printSelect_ekcf').selectpicker('val', result.data.ekCfPrintIndex);
+                    $('#printSelect_ekcf').selectpicker('refresh');
+                }
+                if(result.data.jzCfPrintIndex!=null){
+                    $('#printSelect_jzcf').selectpicker('val', result.data.jzCfPrintIndex);
+                    $('#printSelect_jzcf').selectpicker('refresh');
+                }
+                if(result.data.zsdPrintIndex!=null){
+                    $('#printSelect_zsd').selectpicker('val', result.data.zsdPrintIndex);
+                    $('#printSelect_zsd').selectpicker('refresh');
+                }
+                if(result.data.bqPrintIndex!=null){
+                    $('#printSelect_bq').selectpicker('val', result.data.bqPrintIndex);
+                    $('#printSelect_bq').selectpicker('refresh');
+                }
+                if(result.data.groupNo!=null) {
+                    $('#groupNoSelect').selectpicker('val', result.data.groupNo);
+                    $('#groupNoSelect').selectpicker('refresh');
+                }
+            } else {
+                errorMesage(result);
+            }
+        }
+    });
+}
+
+//延迟加载方法
+function delay(callback){
+    if(printSucess){
+        callback();
+        return;
+    }else{setTimeout(function(){delay(callback)}, 100)}
+}
+
+
+
+
+
+
+
+/**
+ * 加载打印机列表
+ * @constructor
+ */
+function createPrinterList() {
+    LODOP = getLodop();
+    LODOP.PRINT_INITA(6, 0, "92mm", "120mm", "泰和门诊发药打印");
+    //获取打印机设备数,用于进行遍历
+    var count = LODOP.GET_PRINTER_COUNT();
+    var html = "";
+    for (var i = 0; i < count; i++) {
+        //根据设备序号获取设备名
+        var msg = LODOP.GET_PRINTER_NAME(i);
+        html += "<option value='" + i + "'>" + msg + "</option>";
+    }
+    $('#printSelect_mzcf').html(html);
+    $('#printSelect_mzcf').selectpicker('refresh');
+    $('#printSelect_ekcf').html(html);
+    $('#printSelect_ekcf').selectpicker('refresh');
+    $('#printSelect_jzcf').html(html);
+    $('#printSelect_jzcf').selectpicker('refresh');
+    $('#printSelect_zsd').html(html);
+    $('#printSelect_zsd').selectpicker('refresh');
+    $('#printSelect_bq').html(html);
+    $('#printSelect_bq').selectpicker('refresh');
+    printSucess=true;
+}
+
+
+
+
+
+

+ 3 - 165
src/main/resources/static/js/mz/to-medicine-test.js

@@ -1,87 +1,6 @@
-//@ sourceURL=to-medicine.js
+//@ sourceURL=to-medicine-test.js
 //待取药队列
-var currentList = [{
-    patient_id:1,
-    name:'王坤1'
-},{
-    patient_id:2,
-    name:'王坤2'
-},{
-    patient_id:3,
-    name:'王坤3'
-},{
-    patient_id:4,
-    name:'王坤4'
-},{
-    patient_id:5,
-    name:'王坤5'
-},{
-    patient_id:6,
-    name:'王坤6'
-},{
-    patient_id:7,
-    name:'王坤7'
-},{
-    patient_id:8,
-    name:'王坤8'
-},{
-    patient_id:9,
-    name:'王坤9'
-},{
-    patient_id:10,
-    name:'王坤10'
-},{
-    patient_id:11,
-    name:'王坤11'
-},{
-    patient_id:12,
-    name:'王坤12'
-},{
-    patient_id:13,
-    name:'王坤13'
-},{
-    patient_id:14,
-    name:'王坤14'
-},{
-    patient_id:2,
-    name:'王坤15'
-},{
-    patient_id:3,
-    name:'王坤16'
-},{
-    patient_id:4,
-    name:'王坤17'
-},{
-    patient_id:5,
-    name:'王坤18'
-},{
-    patient_id:6,
-    name:'王坤19'
-},{
-    patient_id:7,
-    name:'王坤20'
-},{
-    patient_id:8,
-    name:'王坤21'
-},{
-    patient_id:9,
-    name:'王坤22'
-},{
-    patient_id:10,
-    name:'王坤23'
-},{
-    patient_id:11,
-    name:'王坤24'
-},{
-    patient_id:12,
-    name:'王坤25'
-},{
-    patient_id:13,
-    name:'王坤26'
-},{
-    patient_id:14,
-    name:'王坤27'
-}];
+var currentList = new Array();
 //过号名单队列
 var pastList = new Array();
 //正在配药队列
@@ -89,88 +8,7 @@ var dispenseList = new Array();
 //正在取药
 var rightPerson = null;
 //临时待取药队列
-var tempCurrentList = [{
-    patient_id:1,
-    name:'王坤1'
-},{
-    patient_id:2,
-    name:'王坤2'
-},{
-    patient_id:3,
-    name:'王坤3'
-},{
-    patient_id:4,
-    name:'王坤4'
-},{
-    patient_id:5,
-    name:'王坤5'
-},{
-    patient_id:6,
-    name:'王坤6'
-},{
-    patient_id:7,
-    name:'王坤7'
-},{
-    patient_id:8,
-    name:'王坤8'
-},{
-    patient_id:9,
-    name:'王坤9'
-},{
-    patient_id:10,
-    name:'王坤10'
-},{
-    patient_id:11,
-    name:'王坤11'
-},{
-    patient_id:12,
-    name:'王坤12'
-},{
-    patient_id:13,
-    name:'王坤13'
-},{
-    patient_id:14,
-    name:'王坤14'
-},{
-    patient_id:2,
-    name:'王坤15'
-},{
-    patient_id:3,
-    name:'王坤16'
-},{
-    patient_id:4,
-    name:'王坤17'
-},{
-    patient_id:5,
-    name:'王坤18'
-},{
-    patient_id:6,
-    name:'王坤19'
-},{
-    patient_id:7,
-    name:'王坤20'
-},{
-    patient_id:8,
-    name:'王坤21'
-},{
-    patient_id:9,
-    name:'王坤22'
-},{
-    patient_id:10,
-    name:'王坤23'
-},{
-    patient_id:11,
-    name:'王坤24'
-},{
-    patient_id:12,
-    name:'王坤25'
-},{
-    patient_id:13,
-    name:'王坤26'
-},{
-    patient_id:14,
-    name:'王坤27'
-}];
+var tempCurrentList = new Array();
 //临时过号名单
 var tempPastList = new Array();
 

+ 53 - 9
src/main/resources/static/js/mz/west_pharmacy_dispensing.js

@@ -1,5 +1,9 @@
 //@ sourceURL=west_pharmacy_dispensing.js
 var LODOP; //声明为全局变量
+var printIndex;
+var mzCfPrintIndex;
+var ekCfPrintIndex;
+var jzCfPrintIndex;
 $(function () {
     init_daterangepicker();
     initTable();
@@ -234,7 +238,6 @@ function printPrescription(patientId, orderNo, realNo, chargeDate, times, receip
         warnDept: warnDept,
         groupNo: 71
     };
-    console.log(tem);
     $.ajax({
         type: "POST",
         url: '/thmz/getPrintPrescriptionData',
@@ -249,8 +252,7 @@ function printPrescription(patientId, orderNo, realNo, chargeDate, times, receip
             }
             if (res.code == 0) {
                 successMesage(res);
-                console.log("查询打印数据结果");
-                console.log(res.data);
+                setPrint();//初始化默认打印机
                 $('#print_view input').attr("value", "");
                 if (null != res.data) {
                     for (var key in res.data) {
@@ -258,16 +260,20 @@ function printPrescription(patientId, orderNo, realNo, chargeDate, times, receip
                     }
                 }
                 var list = res.data.list;
-                if (list[0].drugFlag == 2 || list[0].drugFlag == 3) {
+                /*if (list[0].drugFlag == 2 || list[0].drugFlag == 3) {
                     $('#drugFlag').attr("value", "麻、精一");
                 } else if (list[0].drugFlag == 4) {
                     $('#drugFlag').attr("value", "精二");
-                }else if(res.data.warnDeptName.indexOf("儿科") != -1){
+                }else */
+                if(res.data.warnDeptName.indexOf("儿科") != -1){
                     $('#drugFlag').attr("value", "儿科");
+                    printIndex = ekCfPrintIndex;
                 }else if(res.data.warnDeptName.indexOf("急诊") != -1){
                     $('#drugFlag').attr("value", "急诊");
+                    printIndex = jzCfPrintIndex;
                 }else if(list[0].drugFlag == '' || list[0].drugFlag == null || list[0].drugFlag == 6){
                     $('#drugFlag').attr("value", "普通");
+                    printIndex = mzCfPrintIndex;
                 }
                 $('#priceTime').attr("value", format(list[0].priceTime, "yyyy-MM-dd HH:mm"));
                 $('#employeeName').attr("value", res.data.employeeName + "/" + res.data.employeeCode);
@@ -309,14 +315,14 @@ function printPrescription(patientId, orderNo, realNo, chargeDate, times, receip
                 LODOP.PRINT_INITA(6, 0, "141mm", "171mm", "泰和医院处方笺");
                 LODOP.SET_PRINT_STYLE("FontSize", 9); //字体大小
                 //设置默认打印机
-                //LODOP.SET_PRINTER_INDEX(-1);
+                LODOP.SET_PRINTER_INDEX(printIndex);
                 LODOP.SET_PRINT_PAGESIZE(1, '141mm', '171mm', "CreateCustomPage");
                 LODOP.SET_SHOW_MODE("BKIMG_WIDTH", "141mm");
                 LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", "171mm");
                 LODOP.SET_PRINT_MODE("CREATE_CUSTOM_PAGE_NAME", "门诊处方笺");//对新建的纸张重命名
                 LODOP.ADD_PRINT_HTM("10mm", "5mm", "RightMargin:5mm","BottomMargin:5mm", $("div[id='print_view']").html());
-                //LODOP.PRINT();
-                LODOP.PREVIEW();
+                LODOP.PRINT();
+                //LODOP.PREVIEW();
             } else {
                 errorMesage(res);
             }
@@ -349,6 +355,39 @@ function cleanParams() {
     $("#dispensingStatusSearch").selectpicker('refresh');
 }
 
+/**
+ * 查询默认打印机
+ */
+function setPrint() {
+    if (mzCfPrintIndex >= 0 && ekCfPrintIndex >= 0 && jzCfPrintIndex >= 0) {
+        return;
+    }
+    $.ajax({
+        type: "GET",
+        url: '/thmz/getLastDispensingWindowsByCurrentUser',
+        contentType: "application/json;charset=UTF-8",
+        dataType: "json",
+        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
+        async: false,
+        success: function (res) {
+            if (res == '401' || res == 401) {
+                window.location.href = '/thmz/login/view'
+                return;
+            }
+            if (res.code == 0) {
+                mzCfPrintIndex = res.data.mzCfPrintIndex;
+                ekCfPrintIndex = res.data.ekCfPrintIndex;
+                jzCfPrintIndex = res.data.jzCfPrintIndex;
+            } else {
+                mzCfPrintIndex = -1;
+                ekCfPrintIndex = -1;
+                jzCfPrintIndex = -1;
+            }
+        }
+    });
+}
+
+
 
 var prescriptionPrintWebsocket = null;
 var toMedicineWebsocket = null;
@@ -376,9 +415,14 @@ prescriptionPrintWebsocket.onopen = function (event) {
 prescriptionPrintWebsocket.onmessage = function (event) {
     var printStatus = $("#printStatusSearch").val();
     var dispensingStatus = $("#dispensingStatusSearch").val();
-    if (data.type == 0 && data.content == 1 && printStatus == 0 && dispensingStatus == 0) {//来自缴费成功后的消息
+    var data = JSON.parse(event.data);
+    if (data.type == 'jf' && data.content == 1 && printStatus == 0 && dispensingStatus == 0) {//来自缴费成功后的消息
         console.log("刷新配药表格");
         initTable();
+        if($("#aotuPrint1").is(':checked')){//自动打印
+            console.log("自动打印");
+            printPrescription(data.patientId, data.orderNo, data.realNo, data.chargeDate, data.times, data.receiptNo, data.warnDept);
+        }
     }
 }
 

+ 40 - 10
src/main/resources/static/js/mz/west_pharmacy_send.js

@@ -1,5 +1,7 @@
 //@ sourceURL=west_pharmacy_send.js
 var LODOP; //声明为全局变量
+var zsdPrintIndex;
+var bqPrintIndex;
 $(function () {
     init_daterangepicker();
     initTbTable();
@@ -328,7 +330,6 @@ function printInjectionOralMedicine(patientId, orderNo, realNo, times, receiptNo
         receiptNo: receiptNo,
         groupNo: 71
     };
-    console.log(tem);
     $.ajax({
         type: "POST",
         url: '/thmz/getPrintInjectionData',
@@ -342,8 +343,6 @@ function printInjectionOralMedicine(patientId, orderNo, realNo, times, receiptNo
                 return;
             }
             if (res.code == 0) {
-                console.log("查询打印数据结果");
-                console.log(res.data);
                 var injections = new Array();//注射液
                 var drugs = new Array();//普通药品
                 for (let i = 0; i < res.data.length; i++) {
@@ -362,6 +361,7 @@ function printInjectionOralMedicine(patientId, orderNo, realNo, times, receiptNo
                         styling: 'bootstrap3'
                     });
                 }
+                setPrint();
                 if (injections.length > 0) {
                     $(".zsd_two_tr").remove();
                     $(".zsd_one_tr").remove();
@@ -454,21 +454,21 @@ function printInjectionOralMedicine(patientId, orderNo, realNo, times, receiptNo
                     LODOP.PRINT_INITA(6, 0, "148mm", "210mm", "泰和医院门、急诊注射单");
                     LODOP.SET_PRINT_STYLE("FontSize", 9); //字体大小
                     //设置默认打印机
-                    //LODOP.SET_PRINTER_INDEX(-1);
+                    LODOP.SET_PRINTER_INDEX(zsdPrintIndex);
                     LODOP.SET_PRINT_PAGESIZE(2, '148mm', '210mm', "CreateCustomPage");
                     LODOP.SET_SHOW_MODE("BKIMG_WIDTH", "148mm");
                     LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", "210mm");
                     LODOP.SET_PRINT_MODE("CREATE_CUSTOM_PAGE_NAME", "泰和医院门、急诊注射单");//对新建的纸张重命名
                     LODOP.ADD_PRINT_HTM("10mm", "5mm", "148mm", "210mm", $("div[id='print_view_zsd']").html());
-                    //LODOP.PRINT();
-                    LODOP.PREVIEW();
+                    LODOP.PRINT();
+                    //LODOP.PREVIEW();
                 }
                 if(drugs.length > 0){
                     LODOP = getLodop();
                     LODOP.PRINT_INITA(6, 0, "60mm", "80mm", "患者药品标签");
                     LODOP.SET_PRINT_STYLE("FontSize", 9); //字体大小
                     //设置默认打印机
-                    //LODOP.SET_PRINTER_INDEX(-1);
+                    LODOP.SET_PRINTER_INDEX(bqPrintIndex);
                     LODOP.SET_PRINT_PAGESIZE(2, '60mm', '80mm', "CreateCustomPage");
                     LODOP.SET_SHOW_MODE("BKIMG_WIDTH", "60mm");
                     LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", "80mm");
@@ -488,8 +488,8 @@ function printInjectionOralMedicine(patientId, orderNo, realNo, times, receiptNo
                         LODOP.ADD_PRINT_HTM("5mm", "5mm", "RightMargin:5mm","BottomMargin:5mm", $("div[id='print_view_bq']").html());
                         LODOP.NewPage();//下一页
                     }
-                    //LODOP.PRINT();
-                    LODOP.PREVIEW();
+                    LODOP.PRINT();
+                    //LODOP.PREVIEW();
                 }
             } else {
                 errorMesage(res);
@@ -708,7 +708,6 @@ function prescriptionDetail(realNo, groupNo, orderNo, receiptNo, times, patientI
                 return;
             }
             var ress = eval(res);
-            console.log(ress);
             if (ress.data.length > 0) {
                 $("#employeeNameLabel").val(ress.data[0].employeeName);
                 $("#warnDeptNameLabel").val(ress.data[0].warnDeptName);
@@ -913,6 +912,37 @@ function callNumber(patientId, name) {
     toMedicineWebSocket.send(JSON.stringify({patient_id: patientId, name: name, type: 'jh'}));
 }
 
+/**
+ * 查询默认打印机
+ */
+function setPrint() {
+    if (zsdPrintIndex >= 0 && bqPrintIndex >= 0) {
+        return;
+    }
+    $.ajax({
+        type: "GET",
+        url: '/thmz/getLastDispensingWindowsByCurrentUser',
+        contentType: "application/json;charset=UTF-8",
+        dataType: "json",
+        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
+        async: false,
+        success: function (res) {
+            if (res == '401' || res == 401) {
+                window.location.href = '/thmz/login/view'
+                return;
+            }
+            if (res.code == 0) {
+                zsdPrintIndex = res.data.zsdPrintIndex;
+                bqPrintIndex = res.data.bqPrintIndex;
+            } else {
+                zsdPrintIndex = -1;
+                bqPrintIndex = -1;
+            }
+        }
+    });
+}
+
+
 var prescriptionPrintWebSocket = null;
 var toMedicineWebSocket = null;
 

+ 95 - 0
src/main/resources/templates/fy_config.html

@@ -0,0 +1,95 @@
+<link rel="stylesheet" href="/thmz/css/bootstrap/css/bootstrap-select.css"/>
+<script src="/thmz/js/dependent/bootstrap-select.js"></script>
+<script src="/thmz/js/dependent/LodopFuncs.js"></script>
+<script src="/thmz/js/fy_config.js"></script>
+<title>发药窗口设置</title>
+<div class="row" style="height: calc(100% - 60px);overflow-y: auto;">
+    <div class="col-md-12 col-sm-12 col-xs-12">
+        <div class="x_panel">
+            <div class="x_title">
+                <h2>发药窗口参数设置<small id="titleInfo">修改</small></h2>
+                <ul class="nav navbar-right panel_toolbox">
+                    <!--    <li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
+                        </li>-->
+                    <!--<li class="dropdown">-->
+                        <!--<a href="#" onclick="editWindows()" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a>-->
+                    <!--</li>-->
+                    <!--   <li><a class="close-link"><i class="fa fa-close"></i></a>
+                       </li>-->
+                </ul>
+                <div class="clearfix"></div>
+            </div>
+            <div class="x_content">
+
+                <form class="form-horizontal form-label-left" novalidate id="fy_config_form" autocomplete="off">
+                    <span class="section" style="font-size: 16px">发药窗口参数信息</span>
+                    <div class="item form-group">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="groupNoSelect">药房 <span class="required">*</span>
+                        </label>
+                        <div class="col-md-4 col-sm-4 col-xs-12">
+                            <select class="form-control selectpicker show-tick" required="required" id="groupNoSelect">
+                            </select>
+                        </div>
+                    </div>
+                    <div class="item form-group">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="winNo">发药窗口 <span class="required">*</span>
+                        </label>
+                        <div class="col-md-4 col-sm-4 col-xs-12">
+                            <input type="text" id="winNo"  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="printSelect_mzcf">门诊处方打印机名称 <span class="required">*</span>
+                        </label>
+                        <div class="col-md-4 col-sm-4 col-xs-12">
+                            <select class="form-control selectpicker show-tick" required="required" id="printSelect_mzcf">
+                            </select>
+                        </div>
+                    </div>
+                    <div class="item form-group">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="printSelect_ekcf">儿科处方打印机名称 <span class="required">*</span>
+                        </label>
+                        <div class="col-md-4 col-sm-4 col-xs-12">
+                            <select class="form-control selectpicker show-tick" required="required" id="printSelect_ekcf">
+                            </select>
+                        </div>
+                    </div>
+                    <div class="item form-group">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="printSelect_jzcf">急诊处方打印机名称 <span class="required">*</span>
+                        </label>
+                        <div class="col-md-4 col-sm-4 col-xs-12">
+                            <select class="form-control selectpicker show-tick" required="required" id="printSelect_jzcf">
+                            </select>
+                        </div>
+                    </div>
+                    <div class="item form-group">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="printSelect_zsd">注射单打印机名称 <span class="required">*</span>
+                        </label>
+                        <div class="col-md-4 col-sm-4 col-xs-12">
+                            <select class="form-control selectpicker show-tick" required="required" id="printSelect_zsd">
+                            </select>
+                        </div>
+                    </div>
+                    <div class="item form-group">
+                        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="printSelect_bq">标签打印机名称 <span class="required">*</span>
+                        </label>
+                        <div class="col-md-4 col-sm-4 col-xs-12">
+                            <select class="form-control selectpicker show-tick" required="required" id="printSelect_bq">
+                            </select>
+                        </div>
+                    </div>
+                    <div class="ln_solid"></div>
+                    <div class="form-group">
+                        <div class="col-md-6 col-md-offset-3">
+                            <button id="send" type="button" class="btn btn-success">提交</button>
+                        </div>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>
+
+<object  id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0>
+    <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0></embed>
+</object>