123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188 |
- //@ sourceURL=drug_storage.js
- let groupNo = window.localStorage["groupYk"];//药库编码
- var hospitalName ='长沙泰和医院'
- $(function () {
- getAjaxRequst("/thmz/queryHospitalName",{},true,function (res) {
- hospitalName = res.data
- $('.hospitalName').text(hospitalName)
- })
- init_daterangepicker();
- $('.datetime').datetimepicker({
- language: 'zh-CN',
- format: 'yyyy-mm-dd',
- autoclose: true,
- minView: 2,
- startView: 2,
- });
- initSearchList('<div id="medicinePopoverContent"><table id="tb_table_medicine"></table></div>',
- 'drugName', 600, 250);
- initSearchList('<div id="medicinePopoverContent"><table id="tb_table_drug1"></table></div>',
- 'drugName1', 600, 250);
- initSearchList('<div id="medicinePopoverContent"><table id="tb_table_bar1"></table></div>',
- 'barCode1', 600, 250);
- initSearchList('<div id="employeePopoverContent"><table id="tb_table_employee"></table></div>',
- 'purchaserNameLabel', 300, 250);
- initSearchList('<div id="supplyPopoverContent"><table id="tb_table_supply"></table></div>',
- ['supplyNameLabel', 'supplyNameSearch'], 300, 250);
- $('#drugName').on('input', debounce(e=>{
- inputDrugName()
- },500));
- $('#drugName1').on('input', debounce(e=>{
- inputDrugName1()
- },500));
- //商品码检索药品
- $('#barCode1').on('input', debounce(e=>{
- inputBarCode()
- },500));
- function inputDrugName() {
- showDrugPopover({
- method: 'POST',
- data: JSON.stringify({
- searchText: $("#drugName").val() == "" ? null : $("#drugName").val(),
- groupNo: groupNo,
- delFlag: 0
- }),
- url: '/thmz/getYpZdDictBase',
- columns: [
- {
- field: 'stockAmount',
- title: '库存',
- align: "center",
- valign: 'middle',
- formatter: function (value, row, index) {
- return value.toFixed(0);
- }
- }],
- onClickRow: function (row, $element) {
- $('#drugName').webuiPopover('hide');
- $('#chargeCode').val(row['code']);
- $('#serial').val(row['serial']);
- $('#drugName').val(row['name']);
- $('#specification').val(row['specification']);
- $('#packRetprice').val(row['packRetprice']);
- $('#buyPrice').val(row['buyPrice']);
- $('#manufactoryName').val(row['manufactoryName']);
- $('#manuCode').val(row['manuCode']);
- $('#licenseNo').val(row['pzwh']);
- $('#nationalCode').val(row['nationalCode']);
- }
- });
- };
- function inputDrugName1() {
- showDrugPopoverNew({
- method: 'POST',
- data: JSON.stringify({
- searchText: $("#drugName1").val() == "" ? null : $("#drugName1").val(),
- groupNo: groupNo,
- delFlag: 0
- }),
- url: '/thmz/getYpZdDictBase',
- columns: [
- {
- field: 'barCode',
- title: '商品码',
- align: "center",
- valign: 'middle'
- },{
- field: 'stockAmount',
- title: '库存',
- align: "center",
- valign: 'middle',
- formatter: function (value, row, index) {
- return value.toFixed(0);
- }
- }],
- onClickRow: function (row, $element) {
- $('#drugName1').webuiPopover('hide');
- $('#chargeCode1').val(row['code']);
- $('#serial1').val(row['serial']);
- $('#drugName1').val(row['name']);
- $('#barCode1').val(row['barCode']);
- $('#specification1').val(row['specification']);
- $('#packRetprice1').val(row['packRetprice']);
- $('#buyPrice1').val(row['buyPrice']);
- $('#manufactoryName1').val(row['manufactoryName']);
- $('#manuCode1').val(row['manuCode']);
- $('#licenseNo1').val(row['pzwh']);
- $('#nationalCode1').val(row['nationalCode']);
- $('#buyAmt1').val(null);
- $('#buyValue1').val(null);
- $('#manuNo1').val('');
- $('#producingDate1').val(null);
- $('#effDate1').val(null);
- }
- }, 'tb_table_drug1');
- };
- //商品码检索药品明细
- function inputBarCode() {
- showDrugPopoverNew({
- method: 'POST',
- data: JSON.stringify({
- searchText: $("#barCode1").val() == "" ? null : $("#barCode1").val(),
- groupNo: groupNo,
- delFlag: 0
- }),
- url: '/thmz/getYpZdDictBaseByBarCode',
- columns: [
- {
- field: 'barCode',
- title: '商品码',
- align: "center",
- valign: 'middle'
- },{
- field: 'stockAmount',
- title: '库存',
- align: "center",
- valign: 'middle',
- formatter: function (value, row, index) {
- if(!isEmpty(value)){
- return value.toFixed(0);
- } else {
- return value;
- }
- }
- }],
- onClickRow: function (row, $element) {
- $('#barCode1').webuiPopover('hide');
- $('#chargeCode1').val(row['code']);
- $('#serial1').val(row['serial']);
- $('#drugName1').val(row['name']);
- $('#barCode1').val(row['barCode']);
- $('#specification1').val(row['specification']);
- $('#packRetprice1').val(row['packRetprice']);
- $('#buyPrice1').val(row['buyPrice']);
- $('#manufactoryName1').val(row['manufactoryName']);
- $('#manuCode1').val(row['manuCode']);
- $('#licenseNo1').val(row['pzwh']);
- $('#nationalCode1').val(row['nationalCode']);
- $('#buyAmt1').val(null);
- $('#buyValue1').val(null);
- $('#manuNo1').val('');
- $('#producingDate1').val(null);
- $('#effDate1').val(null);
- }
- }, 'tb_table_bar1');
- };
- $('#purchaserNameLabel').on('input focus', function (e) {
- showEmployeePopover({
- data: {
- searchText: $("#purchaserNameLabel").val() == "" ? null : $("#purchaserNameLabel").val(),
- },
- onClickRow: function (row, $element) {
- $('#purchaserNameLabel').webuiPopover('hide');
- $('#purchaser').val(row['employeeCode']);
- $('#purchaserNameLabel').val(row['employeeName']);
- }
- });
- });
- $('#supplyNameLabel').on('input focus', function (e) {
- showSupplyPopover({
- data: {
- searchText: $("#supplyNameLabel").val() == "" ? null : $("#supplyNameLabel").val(),
- },
- onClickRow: function (row, $element) {
- $('#supplyNameLabel').webuiPopover('hide');
- $('#supplyCode').val(row['code']);
- $('#supplyNameLabel').val(row['name']);
- }
- });
- });
- $('#supplyNameSearch').on('input focus', function (e) {
- showSupplyPopover({
- data: {
- searchText: $("#supplyNameSearch").val() == "" ? null : $("#supplyNameSearch").val(),
- },
- onClickRow: function (row, $element) {
- $('#supplyNameSearch').webuiPopover('hide');
- $('#supplyCodeSearch').val(row['code']);
- $('#supplyNameSearch').val(row['name']);
- }
- });
- });
- $('#buyAmt').on('input focus', function (e) {
- $("#buyValue").val((e.target.value * $("#buyPrice").val()).toFixed(2));
- });
- $('#buyPrice').on('input focus', function (e) {
- $("#buyValue").val((e.target.value * $("#buyAmt").val()).toFixed(2));
- });
- $('#buyAmt1').on('input focus', function (e) {
- $("#buyValue1").val((e.target.value * $("#buyPrice1").val()).toFixed(2));
- });
- $('#buyPrice1').on('input focus', function (e) {
- $("#buyValue1").val((e.target.value * $("#buyAmt1").val()).toFixed(2));
- });
- $('#reportrange span').html(moment().subtract(29, 'days').format('YYYY-MM-DD') + ' - ' + moment().format('YYYY-MM-DD'));
- $(".selectpicker").selectpicker();
- if (groupNo == null) {
- return errorMesageSimaple('药库参数未设置,请在药品管理参数设置中设置');
- }
- $("#btn_query").click(function (t) {
- initRecordTable();
- });
- $("#btn_record").click(function () {
- $("#recordModal").modal("show");
- initRecordTable();
- });
- initDetailed();
- initBar();
- $("#addDetailed").click(function () {
- $("#detailedFormModal").modal("hide");
- if ($("#checkerName").val() == '') {//新增
- let ids = $("#tb_table_detailed").jqGrid("getDataIDs");//得到jqgrid当前行数
- let rowid = Math.max.apply(Math, ids);//获得当前最大行号
- let formData = {};
- let t = $("#detailedForm").serializeArray();
- $.each(t, function () {
- formData[this.name] = this.value
- });
- $("#tb_table_detailed").addRowData(rowid + 1, formData, 'first');
- $("#tb_table_detailed").jqGrid('editRow', rowid + 1);
- } else {//修改
- var ids = $("#tb_bar_code").jqGrid("getDataIDs");//得到jqgrid当前行数
- var rowid = Math.max.apply(Math,ids);//获得当前最大行号
- if(rowid == "-Infinity"){
- rowid = 0;
- }
- $("#tb_bar_code").saveRow(rowid);//取消最后一行的编辑状态
- let form = $("#detailedForm").serializeObject();
- form.inDocuNo = $("#inDocuNoLabel").val();
- form.purchaser = $("#purchaser").val();
- form.supplyCode = $("#supplyCode").val();
- form.groupNo = groupNo;
- form.ypManuBarCodes = $("#tb_bar_code").getRowData();
- request({
- url: '/modifYpInDetl',
- method: 'POST',
- data: JSON.stringify(form)
- }).then((res) => {
- successMesage(res);
- loadDetailed(form.inDocuNo);
- });
- }
- });
- $("#btn_save").on('click', function () {
- let ypInDetlVoList = $("#tb_table_detailed").jqGrid("getRowData");
- if (ypInDetlVoList == null || ypInDetlVoList.length === 0) {
- return errorMesageSimaple('没有可保存数据!');
- }
- if ($("#purchaser").val() === "" || $("#supplyCode").val() === "") {
- return errorMesageSimaple('采购人和供应商不能为空!');
- }
- ypInDetlVoList[0].purchaser = $("#purchaser").val();
- ypInDetlVoList[0].supplyCode = $("#supplyCode").val();
- ypInDetlVoList[0].inDocuNo = $("#inDocuNoLabel").val();
- ypInDetlVoList[0].groupNo = groupNo;
- ypInDetlVoList[0].ypManuBarCodes = $("#tb_bar_code").getRowData();
- request({
- url: '/saveYpInDetlList',
- method: 'POST',
- data: JSON.stringify(ypInDetlVoList)
- }).then((res) => {
- initValue();
- successMesage(res);
- });
- });
- $("#btn_clean").on('click', function () {
- initValue();
- });
- $("#btn_audit").on('click', function () {
- let ypInDetlVoList = $("#tb_table_detailed").jqGrid("getRowData");
- if (isEmpty($("#inDocuNoLabel").val()) || ypInDetlVoList == null || ypInDetlVoList.length === 0) {
- return errorMesageSimaple('没有可审核的数据!');
- }
- if (ypInDetlVoList[0]['confirmFlag'] === '1') {
- return errorMesageSimaple('当前入库单已审核通过,请勿重复审核!');
- }
- $("#btn_audit").attr("disabled",true);
- request({
- url: '/auditYpInDetl',
- method: 'GET',
- data: {
- inDocuNo: $("#inDocuNoLabel").val()
- }
- }).then((res) => {
- if(res.code == 0){
- successMesage(res);
- initValue();
- }
- }).catch((res) => {
- $("#btn_audit").attr("disabled",false);
- });
- });
- $("#btn_daily").click(function (t) {
- setPrintHtml();
- });
- // 确认药品追溯码集合
- $("#saveBarList").click(function () {
- if(barC === 1){
- return errorMesageSimaple('当前扫码未进行追溯码检查,请检查!');
- }
- // 有重复错误追溯码信息
- if(barFor){
- return errorMesageSimaple('当前扫码有重复或者错误追溯码信息,请检查!');
- }
- let barList = $("#drugTracCodgStr").val();
- let rowid = $('#rowid2').val();
- let buyAmt2 = $("#buyAmt2").val();
- if(!isEmpty(barList)){
- let str = removeLastComma(barList.replaceAll('\n', ','), ',');
- let clFlag = $('#clFlag').val()
- if(clFlag === '1'){
- if(Number.parseInt(buyAmt2) !== str.split(',').length){
- return errorMesageSimaple('当前入库单数量与扫码数量不一致,请检查!');
- }
- } else if(clFlag === '0'){
- if(1 !== str.split(',').length){
- return errorMesageSimaple('当前入库单数量与扫码数量不一致,请检查!');
- }
- }
- // 更新追溯码内容
- $("#tb_bar_code").setCell(rowid, 'drugTracCodg', str);
- // 更新追溯码扫码数量
- $("#tb_bar_code").setCell(rowid, 'quantity', str.split(',').length);
- $("#tb_bar_code").setCell(rowid, 'clFlag', clFlag);
- $("#tb_bar_code").setCell(rowid, 'clFlagName', clFlag);
- $("#tb_bar_code").saveRow(rowid);
- }
- $("#barListModal").modal('hide');
- })
- // 添加药品追溯码入库信息
- $("#addDetailedForBar").click(function () {
- if ($("#checkerName1").val() === '') {//新增
- let formData = $("#tb_bar_code").jqGrid("getRowData");
- formData.forEach(function (item, index, arr) {
- $("#tb_table_detailed").jqGrid('addRowData', index + 1, item);
- $("#tb_table_detailed").jqGrid('editRow', index + 1);
- })
- } else {//修改
- let ids = $("#tb_bar_code1").jqGrid("getDataIDs");//得到jqgrid当前行数
- let rowid = Math.max.apply(Math,ids);//获得当前最大行号
- if(rowid == "-Infinity"){
- rowid = 0;
- }
- $("#tb_bar_code1").saveRow(rowid);//取消最后一行的编辑状态
- let form = $("#barForm").serializeObject();
- form.inDocuNo = $("#inDocuNoLabel").val();
- form.purchaser = $("#purchaser").val();
- form.supplyCode = $("#supplyCode").val();
- form.groupNo = groupNo;
- form.ypManuBarCodes = $("#tb_bar_code").getRowData();
- request({
- url: '/modifYpInDetl',
- method: 'POST',
- data: JSON.stringify(form)
- }).then((res) => {
- successMesage(res);
- loadDetailed(form.inDocuNo);
- });
- }
- $("#barFormModal").modal("hide");
- });
- // 追溯码检查
- $("#checkBarList").click(function () {
- drugBarStat();
- });
- // 追溯码去重
- $("#checkBarRe").click(function () {
- drugBarRepeat()
- drugBarStat();
- });
- });
- /**
- * 初始化表单和grid
- */
- function initValue() {
- $("#purchaser").val("");
- $("#checkerName").val("");
- $("#purchaserNameLabel").val("");
- $("#supplyCode").val("");
- $("#supplyNameLabel").val("");
- $("#inDateLabel").val("");
- $("#inDocuNoLabel").val("");
- $("#tb_table_detailed").jqGrid("clearGridData");
- $("#confirmFlag").val("");
- $("#addDetailed").attr("disabled",false);
- $("#btn_save").attr("disabled",false);
- $("#btn_audit").attr("disabled",false);
- }
- /**
- * 查询列表
- */
- function initRecordTable() {
- $('#tb_record').bootstrapTable('destroy');
- $('#tb_record').bootstrapTable({
- url: '/thmz/getYpInDetlPage', //请求后台的URL(*)
- method: 'POST', //请求方式(*)
- toolbar: '#toolbar', //工具按钮用哪个容器
- striped: true, //是否显示行间隔色
- cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
- pagination: true, //是否显示分页(*)
- sortable: true, //是否启用排序
- sortOrder: "asc", //排序方式
- queryParams: recordTableQueryParams, //传递参数(*)
- sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
- pageNumber: 1, //初始化加载第一页,默认第一页
- pageSize: 10, //每页的记录行数(*)
- pageList: [10, 20, 40, 100], //可供选择的每页的行数(*)
- search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
- strictSearch: true,
- showColumns: false, //是否显示所有的列
- showRefresh: false, //是否显示刷新按钮
- minimumCountColumns: 2, //最少允许的列数
- clickToSelect: true, //是否启用点击选中行
- uniqueId: "ID", //每一行的唯一标识,一般为主键列
- showToggle: false, //是否显示详细视图和列表视图的切换按钮
- cardView: false, //是否显示详细视图
- detailView: false,
- ajaxOptions: {
- headers: {
- 'Accept': 'application/json',
- 'Authorization': 'Bearer ' + localStorage.getItem("token")
- }
- },
- columns: [
- {
- title: '操作',
- field: 'op',
- align: "center",
- valign: 'middle',
- formatter: function (value, row, index) {
- var str = '';
- if($("#confirmFlagSearch").val() === "0"){
- str = '<button type="button" class="registration-no-color-foot-button" title="删除" onclick="removeYpInDetl(\'' + row.inDocuNo + '\')"><i class="fa fa-times"></i></button>';
- }
- str += '<button type="button" class="registration-no-color-foot-button" title="详细" onclick="getYpInDetlDetail(\'' + row.inDocuNo + '\')"><i class="fa fa-plus"></i></button>';
- return str;
- }
- }, {
- field: 'inDate',
- title: '入库日期',
- align: "center",
- valign: 'middle',
- formatter: function (value, row, index) {
- return value == null ? "-" : format(value, "yyyy-MM-dd HH:mm:ss");
- }
- }, {
- field: 'reptNo',
- title: '发票号',
- align: "center",
- valign: 'middle'
- }, {
- field: 'inDocuNo',
- title: '入库单号',
- align: "center",
- valign: 'middle'
- },
- {
- field: 'purchaserName',
- title: '采购员',
- align: "center",
- valign: 'middle'
- },
- {
- field: 'supplyName',
- title: '供应商',
- align: "center",
- valign: 'middle'
- },
- {
- field: 'buyValue',
- title: '购入金额',
- align: "center",
- valign: 'middle',
- formatter: function (value, row, index) {
- return value.toFixed(2);
- }
- },
- {
- field: 'packValue',
- title: '零售金额',
- align: "center",
- valign: 'middle',
- formatter: function (value, row, index) {
- return value.toFixed(2);
- }
- }
- ],
- onDblClickRow: function (row) {
- getYpInDetlDetail(row.inDocuNo)
- },
- responseHandler: function (res) {
- if (res == '401' || res == 401) {
- window.location.href = '/thmz/login/view'
- return;
- }
- var ress = eval(res);
- if (ress.code == -1) {
- errorMesage(res);
- return {
- "total": 0,//总页数
- "rows": {} //数据
- };
- }
- return {
- "total": ress.total,//总页数
- "rows": ress.data //数据
- };
- }
- });
- }
- function removeYpInDetl(inDocuNo) {
- if (!confirm("确定删除该张单据吗?")) {
- return;
- }
- request({
- url: '/removeYpInDetlByInDocuNo',
- method: 'GET',
- data: {inDocuNo: inDocuNo}
- }).then((res) => {
- successMesage(res);
- initRecordTable();
- });
- }
- function getYpInDetlDetail(inDocuNo) {
- $("#recordModal").modal("hide");
- loadDetailed(inDocuNo);
- }
- function recordTableQueryParams(params) {
- let rePortRangeArr = getRePortRangeArr();
- let temp = {
- inType:'0,2,3',
- beginTime: rePortRangeArr[0],
- endTime: rePortRangeArr[1],
- groupNo: groupNo,
- reptNo: $("#reptNoSearch").val() == '' ? null : $("#reptNoSearch").val(),
- supplyCode: $("#supplyCodeSearch").val() == '' ? null : $("#supplyCodeSearch").val(),
- confirmFlag: $("#confirmFlagSearch").val(),
- inDocuNo: $("#inDocuNoSearch").val() == '' ? null : $("#inDocuNoSearch").val(),
- pageSize: params.limit, //页面大小
- pageIndex: params.offset / params.limit //页码
- };
- return JSON.stringify(temp);
- }
- /**
- * 加载详细表格数据
- * @param inDocuNo
- */
- function loadDetailed(inDocuNo) {
- $("#tb_table_detailed").jqGrid('setGridParam', {
- datatype: 'JSON',
- postData: {inDocuNo: inDocuNo}
- }).trigger('reloadGrid');
- }
- /**
- * 初始化详细表格
- */
- function initDetailed() {
- let selectRowId;//选中的行号
- $.jgrid.gridUnload("tb_table_detailed");
- $("#tb_table_detailed").jqGrid({
- datatype: 'local',
- mtype: 'get',
- url: '/thmz/getYpInDetlDetailed',
- loadBeforeSend: function (jqXHR) {
- jqXHR.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
- jqXHR.setRequestHeader("Accept", 'application/json');
- },
- ajaxCellOptions: {
- beforeSend: function (XMLHttpRequest) {
- XMLHttpRequest.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
- }
- },
- height: screen.height * 0.3,
- toolbar: [true, "top"],
- styleUI: 'Bootstrap',
- viewrecords: true,
- autowidth: false,
- autoScroll: true,
- shrinkToFit: true,
- rowNum: -1,//取消分页
- caption: '入库单明细',
- cellEdit: false,
- sortable: false,
- loadonce: false, //一次加载全部数据到客户端,由客户端进行排序。
- sortname: 'chargeCode', //设置默认的排序列
- sortorder: 'desc',
- cellsubmit: "remote",
- colNames: ['药品编码', '药品名称', '生产厂家', '规格', '零售价', '零售金额', '购入价', '购入量', '购入金额', '有效期', '生产日期', '药品追溯码', '批号', '传票号', '传票日期', '文号', '入库人',
- '入库类别名称','入库类别', '结账标记', '发票日期', '药品国家医保编码', '规格编码', '生成厂家编码', '序号', '审核状态'],
- colModel: [
- {name: 'chargeCode', index: 'chargeCode', align: 'center', width: 100, sortable: false},
- {name: 'drugName', index: 'drugName', align: 'left', width: 160},
- {name: 'manufactoryName', index: 'manufactoryName', align: 'left', width: 160},
- {name: 'specification', index: 'specification', align: 'center', width: 120},
- {name: 'packRetprice', index: 'packRetprice', align: 'center', width: 100},
- {
- name: 'packValue', index: 'packValue', align: 'center', width: 100,
- formatter: function (cellvalue, options, rowObject) {
- return (rowObject.packRetprice * rowObject.buyAmt).toFixed(2)
- }
- },
- {name: 'buyPrice', index: 'buyPrice', align: 'center', width: 100},
- {name: 'buyAmt', index: 'buyAmt', align: 'center', width: 100},
- {
- name: 'buyValue', index: 'buyValue', align: 'center', width: 100,
- formatter: function (cellvalue, options, rowObject) {
- return (rowObject.buyPrice * rowObject.buyAmt).toFixed(2)
- }
- },
- {
- name: 'effDate', index: 'effDate', align: 'center', width: 100,
- formatter: function (cellvalue, options, rowObject) {
- return cellvalue == null ? "" : format(cellvalue, "yyyy-MM-dd");
- }
- }, {
- name: 'producingDate', index: 'producingDate', align: 'center', width: 100,
- formatter: function (cellvalue, options, rowObject) {
- return cellvalue == null ? "" : format(cellvalue, "yyyy-MM-dd");
- }
- },
- {name: 'drugTracCodg', index: 'drugTracCodg', align: 'center', width: 140},
- {name: 'manuNo', index: 'manuNo', align: 'center', width: 100},
- {name: 'reptNo', index: 'reptNo', align: 'center', width: 100},
- {
- name: 'reptDate', index: 'reptDate', align: 'center', width: 120,
- formatter: function (cellvalue, options, rowObject) {
- return cellvalue == null ? "" : format(cellvalue, "yyyy-MM-dd");
- }
- },
- {name: 'licenseNo', index: 'licenseNo', align: 'center', width: 120},
- {name: 'checkerName', index: 'checkerName', align: 'center', width: 100},
- {
- name: 'inTypeName', index: 'inTypeName', align: 'center', width: 100,
- formatter: function (cellvalue, options, rowObject) {
- let str = '';
- switch (rowObject.inType) {
- case '0':
- str = '入库';
- break;
- case '1':
- str = '退库';
- break;
- case '2':
- str = '赠药';
- break;
- case '3':
- str = '紧急入库';
- }
- return str
- }
- },
- {
- name: 'inType', index: 'inType', align: 'center', width: 100, hidden: true
- },
- {
- name: 'acctType', index: 'acctType', align: 'center', width: 100,
- formatter: function (cellvalue, options, rowObject) {
- return cellvalue === 1 ? '已结账' : '未结账'
- }
- },
- {
- name: 'fpDate', index: 'fpDate', align: 'center', width: 100,
- formatter: function (cellvalue, options, rowObject) {
- return cellvalue == null ? "" : format(cellvalue, "yyyy-MM-dd");
- }
- },
- {name: 'nationalCode', index: 'nationalCode', align: 'center', width: 120},
- {
- name: 'serial', index: 'serial', hidden: true
- }, {
- name: 'manuCode', index: 'manuCode', hidden: true
- }, {
- name: 'inSeri', index: 'inSeri', hidden: true
- }, {
- name: 'confirmFlag', index: 'confirmFlag', hidden: true
- }
- ],
- jsonReader: {
- root: "data", repeatitems: false
- },
- onCellSelect: function (rowid, iCol, cellcontent, e) {
- selectRowId = rowid;
- },
- ondblClickRow: function (row) {
- let rowData = $('#tb_table_detailed').jqGrid('getRowData', row);
- let inType = 0;
- switch (rowData) {
- case "入库":
- inType = 0;
- break;
- case "退库":
- inType = 1;
- break;
- case "赠药":
- inType = 2;
- break;
- case "紧急入库":
- inType = 3;
- }
- rowData.inType = inType;
- $("#detailedForm")[0].reset();
- $("#confirmFlag").val()==1?$("#addDetailed").attr("disabled",true):$("#addDetailed").attr("disabled",false);
- $("#detailedFormModal").modal("show");
- $.each(rowData, function (key, value) {
- $("#" + key).val(value);
- });
- isEmpty(rowData.checkerName)?$("#div_bar_code").hide():$("#div_bar_code").show();
- loadBar(rowData.inDocuNo, rowData.chargeCode, rowData.manuNo);
- $("#barCode").val("");
- },
- loadComplete: function (res) { //加载完成(初始加载),回调函数
- if (res == '401' || res == 401) {
- window.location.href = '/thmz/login/view';
- return;
- }
- if (res.code == -1) {
- return errorMesage(res);
- }
- if (res.data != null && res.data.length > 0) {
- $("#xxform")[0].reset();
- let data = res.data[0];
- $("#inDocuNoLabel").val(data['inDocuNo']);
- $("#inDateLabel").val(format(data['inDate'], "yyyy-MM-dd HH:mm:ss"));
- $("#purchaserNameLabel").val(data['purchaserName']);
- $("#purchaser").val(data['purchaser']);
- $("#supplyNameLabel").val(data['supplyName']);
- $("#supplyCode").val(data['supplyCode']);
- $("#confirmFlag").val(data['confirmFlag']);
- }
- if($("#confirmFlag").val()==1){
- $("#btn_save").attr("disabled",true);
- $("#btn_audit").attr("disabled",true);
- }else{
- $("#btn_save").attr("disabled",false);
- $("#btn_audit").attr("disabled",false);
- }
- }
- });
- $("#t_tb_table_detailed").append("<button class='registration-no-color-foot-button' title='新增药品' id='showDetailed' style='color: #35D082;margin-left: 10px;'><i class='fa fa-plus'></i></button>");
- $("#t_tb_table_detailed").append("<button class='registration-no-color-foot-button' title='新增入库信息' id='showDrugBarDetailed' style='color: #35D082;margin-left: 10px;'><i class='fa fa-plus-square'></i></button>");
- $("#t_tb_table_detailed").append("<button class='registration-no-color-foot-button' title='删除药品' id='removeDetailed' style='color: red;margin-left: 10px;'><i class='fa fa-trash-o'></i></button>");
- $("#showDetailed").on('click', function () {
- $("#detailedForm")[0].reset();
- $("#detailedFormModal").modal("show");
- $("#div_bar_code").hide();
- $("#manuNo").attr("disabled",false);
- $("#confirmFlag").val()==1?$("#addDetailed").attr("disabled",true):$("#addDetailed").attr("disabled",false);
- let rowData = $("#tb_table_detailed").jqGrid("getRowData")[0];
- if(rowData){
- $("#reptNo").val(rowData['reptNo']);
- $("#reptDate").val(rowData['reptDate']);
- }else{
- $("#reptNo").val(null);
- $("#reptDate").val(null);
- }
- });
- // 增加入库信息扫入
- $("#showDrugBarDetailed").on('click', function () {
- $("#barForm")[0].reset();
- $("#barFormModal").modal("show");
- $("#div_bar_code").show();
- $("#chargeCode1").val('');
- $("#manuNo1").attr("disabled",false);
- $("#confirmFlag").val()===1 ? $("#addDetailed").attr("disabled",true) : $("#addDetailed").attr("disabled",false);
- let rowData = $("#tb_table_detailed").jqGrid("getRowData")[0];
- if(rowData){
- $("#reptNo1").val(rowData['reptNo']);
- $("#reptDate1").val(rowData['reptDate']);
- }else{
- $("#reptNo1").val(null);
- $("#reptDate1").val(null);
- }
- $("#tb_bar_code").jqGrid('clearGridData');
- });
- $("#removeDetailed").on('click', function () {
- if($("#confirmFlag").val() == 1){
- return errorMesageSimaple('已审核,禁止操作!');
- }
- if (selectRowId == null) {
- return errorMesageSimaple('请选择一行进行删除!');
- }
- $("#tb_table_detailed").jqGrid("delRowData", selectRowId);
- });
- }
- /**
- * 加载入库药品条码表格数据
- * @param inDocuNo 入库单号
- * @param chargeCode 药品编码
- * @param manuNo 批号
- */
- function loadBar(inDocuNo, chargeCode, manuNo) {
- $("#tb_bar_code").jqGrid('setGridParam', {
- datatype: 'JSON',
- postData: JSON.stringify({chargeCode: chargeCode,manuNo: manuNo,inDocuNo:inDocuNo})
- }).trigger('reloadGrid');
- }
- /**
- * 初始化入库药品条码表格数据
- */
- function initBar() {
- $.jgrid.gridUnload("tb_bar_code");
- $("#tb_bar_code").jqGrid({
- datatype: 'local',
- mtype: 'POST',
- url: '/thmz/getYpManuBarCode',
- loadBeforeSend: function (jqXHR) {
- jqXHR.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
- jqXHR.setRequestHeader("Accept", 'application/json;charset=UTF-8');
- jqXHR.setRequestHeader("Content-Type", 'application/json;charset=UTF-8');
- },
- ajaxCellOptions: {
- beforeSend: function (XMLHttpRequest) {
- XMLHttpRequest.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
- }
- },
- height: screen.height * 0.2,
- toolbar: [true, "top"],
- styleUI: 'Bootstrap',
- viewrecords: true,
- autowidth: false,
- autoScroll: true,
- shrinkToFit: true,
- rowNum: -1,//取消分页
- cellEdit: true,
- classes: {
- // 为选中行添加的CSS类
- "ui-state-highlight": "your-custom-class"
- },
- sortable: false,
- loadonce: true, //一次加载全部数据到客户端,由客户端进行排序。
- cellsubmit: "clientArray",
- caption: '入库药品关联条码',
- rownumbers: true,//是否显示序号
- // multiselect: true,
- // multiboxonly: true,
- // multiselectWidth: 60,
- colNames: ['药品编码','药品名称','商品码','追溯码','追溯码数量','批号','入库单号','1','是否拆零','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18'],
- colModel: [
- {name: 'chargeCode', index: 'chargeCode', align: 'center', width: 120,sortable: false},
- {name: 'drugName', index: 'drugName', align: 'left', width: 160,sortable: false},
- {name: 'barCode', index: 'barCode', align: 'center', width: 120,sortable: false},
- {name: 'drugTracCodg', index: 'drugTracCodg', align: 'left', width: 200,sortable: false},
- {name: 'quantity', index: 'quantity', align: 'center', width: 120,sortable: false},
- {name: 'manuNo', index: 'manuNo', align: 'center', width: 150,sortable: false},
- {name: 'inDocuNo', index: 'inDocuNo', align: 'center', width: 150,sortable: false},
- {name: 'clFlag', index: 'clFlag',align: 'center', width: 100,hidden: true},
- {name: 'clFlagName', index: 'clFlagName',align: 'center', width: 100,sortable: false,
- formatter: function (cellvalue, options, rowObject) {
- if(isEmpty(cellvalue)){
- return '';
- } else {
- return cellvalue === '0' ? '否' : '是';
- }
- }
- },
- {name: 'manufactoryName', index: 'manufactoryName',hidden: true},
- {name: 'specification', index: 'specification',hidden: true},
- {name: 'packRetprice', index: 'packRetprice',hidden: true},
- {name: 'buyAmt', index: 'buyAmt',hidden: true},
- {name: 'buyPrice', index: 'buyPrice',hidden: true},
- {name: 'effDate', index: 'effDate',hidden: true},
- {name: 'producingDate', index: 'producingDate',hidden: true},
- {name: 'manuNo', index: 'manuNo',hidden: true},
- {name: 'reptNo', index: 'reptNo',hidden: true},
- {name: 'reptDate', index: 'reptDate',hidden: true},
- {name: 'licenseNo', index: 'licenseNo',hidden: true},
- {name: 'nationalCode', index: 'nationalCode',hidden: true},
- {name: 'serial', index: 'serial',hidden: true},
- {name: 'manuCode', index: 'manuCode',hidden: true},
- {name: 'inSeri', index: 'inSeri',hidden: true},
- {name: 'inType', index: 'inType',hidden: true},
- {name: 'fpDate', index: 'fpDate',hidden: true},
- ],
- jsonReader: {
- root: "data", repeatitems: false
- },
- afterSubmitCell: function(rowid, cellname, value, iRow, iCol) {
- $("#tb_bar_code").setCell(rowid, iCol, value);
- return true; // 必须返回 ture or false,否则 下面的 afterSaveCell 方法执行不了的
- },
- afterSaveCell: function (rowid, celname, value, iRow, iCol) {
- $("#tb_bar_code").setCell(rowid, iCol, value);
- return true;
- },
- onCellSelect: function (rowid, iCol, cellcontent, e) {
- $("#tb_bar_code #jqg_tb_bar_code_" + rowid).prop("checked", true);//打钩
- if(iCol === 4){
- let rowData = $("#tb_bar_code").jqGrid("getRowData", rowid);
- $("#barListForm")[0].reset();
- $("#clFlag option:selected").val('1')
- $("#barListModal").modal("show");
- $('#chargeCode2').val(rowData['chargeCode']);
- $('#buyAmt2').val(rowData['buyAmt']);
- $('#quantity2').val(rowData['quantity']);
- $('#drugName2').val(rowData['drugName']);
- $('#barCode2').val(rowData['barCode']);
- if(!isEmpty(rowData['drugTracCodg'])){
- let str = (rowData['drugTracCodg'] + ',').replaceAll(',', '\n');
- $('#drugTracCodgStr').val(str);
- }
- $('#rowid2').val(rowid);
- }
- },
- beforeSelectRow: function(rowid, e) {
- // 阻止行选择
- return true;
- },
- beforeEditCell: function(rowid,iCol,cellcontent,e){
- },
- loadComplete: function (res) { //加载完成(初始加载),回调函数
- /*$("#barCode").focus();*/
- if (res == '401' || res == 401) {
- window.location.href = '/thmz/login/view';
- return;
- }
- if (res.code == -1) {
- errorMesage(res);
- }else{
- // if(!isEmpty(res.data) && res.data.length>0){
- // $("#manuNo").attr("disabled",true)
- // }else{
- // $("#manuNo").attr("disabled",false)
- // }
- }
- }
- });
- $("#t_tb_bar_code").append("<button class='registration-no-color-foot-button' title='添加药品' id='addBarCode' style='color: #35D082;margin-left: 10px;'><i class='fa fa-plus'></i></button>");
- $("#t_tb_bar_code").append("<button class='registration-no-color-foot-button' title='删除条码' id='removeBarCode' style='color: red;margin-left: 10px;'><i class='fa fa-trash-o'></i></button>");
- // $("#t_tb_bar_code").append("<input id='barCode' name='barCode' type='text' style='margin-left: 10px;' autocomplete='off' placeholder='扫描条码...'>");
- $("#addBarCode").on('click', function () {
- if(isEmpty($("#chargeCode1").val())){
- return errorMesageSimaple('药品编码为空,请重新设置药品!');
- }
- let barDataList = $("#tb_bar_code").jqGrid("getGridParam").data;//得到jqgrid当前行数
- let rowid = barDataList.length
- if(barDataList.length !== 0 ){
- // 因为新增的数据都是放在首行,所以id最大的是第一行数据
- rowid = Number.parseInt(barDataList[0].id) + 1
- }
- $("#tb_bar_code").saveRow(rowid);
- let formData = {}
- let t = $("#barForm").serializeArray();
- $.each(t, function () {
- formData[this.name.replace('1', '')] = this.value
- });
- formData['inDocuNo'] = $("#inDocuNoLabel").val();
- formData['drugTracCodg'] = '';
- $("#tb_bar_code").addRowData(rowid, formData,'first');
- // $("#tb_bar_code").jqGrid('editRow', rowid+1);
- });
- $("#removeBarCode").on('click', function () {
- if (!confirm("确定删除该条药品追溯码吗?")) {
- return;
- }
- let selectRowId = $("#tb_bar_code").jqGrid("getGridParam", "selrow");
- if(isEmpty(selectRowId)){
- return errorMesageSimaple('请选择一行数据!');
- }
- $("#tb_bar_code").jqGrid("delRowData", selectRowId);
- });
- /**
- * 条码赋值
- * @param value
- */
- function autoBar(value){
- let selectRowId = $("#tb_bar_code").jqGrid("getGridParam", "selrow");
- if(isEmpty(selectRowId)){
- return errorMesageSimaple('请选择一个药品!');
- }
- // 获取当前追溯码信息
- let ypTracCodg = $("#tb_bar_code").getCell(selectRowId, 'drugTracCodg')
- if(!isEmpty(ypTracCodg)){
- // 更新追溯码内容
- $("#tb_bar_code").setCell(selectRowId, 'drugTracCodg', ypTracCodg + ',' + value);
- // 更新追溯码扫码数量(这里不需要加1,因为最后会多一个",")
- $("#tb_bar_code").setCell(selectRowId, 'quantity', ypTracCodg.split(',').length);
- } else {
- $("#tb_bar_code").setCell(selectRowId, 'drugTracCodg', value);
- $("#tb_bar_code").setCell(selectRowId, 'quantity', 1);
- }
- $("#barCode").val("");
- }
- /**
- * 扫码条码
- */
- $("#barCode").on('input', debounce(e=>{
- autoBar(e.delegateTarget.value)
- },500));
- }
- /**
- * 生产报表数据
- */
- function setPrintHtml() {
- let date = {inDocuNo: $("#inDocuNoLabel").val()};
- request({
- url: '/getYpInDetlDetailed',
- method: 'GET',
- data: date
- }).then((res) => {
- console.log(res);
- let html = '';
- let packRetpriceSum = 0;
- let buyPriceSum = 0;
- $('.sjh').remove();
- for (let i = 0; i < res['data'].length; i++) {
- let data = res['data'][i];
- let packRetprice = keepTwoDecimal(parseFloat(data['buyAmt']) * parseFloat(data['packRetprice']));
- let buyPrice = keepTwoDecimal(parseFloat(data['buyAmt']) * parseFloat(data['buyPrice']));
- packRetpriceSum += packRetprice;
- buyPriceSum += buyPrice;
- if (i === 0) {
- $(".printDate").html(format(new Date(), "yyyy-MM-dd HH:mm"));
- $(".supplyName").html(data['supplyName']);
- $(".inDocuNo").html(data['inDocuNo']);
- $(".confirmDate").html(format(data['confirmDate'], "yyyy-MM-dd HH:mm"));
- $(".lister").html($(".current_user")[0].innerText);
- $(".listerAudit").html(data['confirmName']);
- }
- html += '<tr class="sjh">';
- html += '<td class="xtd" style="text-align: center;">' + data['chargeCode'] + '</td>';
- html += '<td class="xtd" style="text-align: left;">' + data['drugName'] + '</td>';
- html += '<td class="xtd" style="text-align: left;">' + data['specification'] + '</td>';
- html += '<td class="xtd" style="text-align: center;">' + data['buyAmt'] + '</td>';
- html += '<td class="xtd" style="text-align: center;">' + data['buyPrice'] + '</td>';
- html += '<td class="xtd" style="text-align: center;">' + data['packRetprice'] + '</td>';
- html += '<td class="xtd" style="text-align: center;">' + buyPrice + '</td>';
- html += '<td class="xtd" style="text-align: center;">' + packRetprice + '</td>';
- html += '<td class="xtd" style="text-align: center;">' + data['manuNo'] + '</td>';
- html += '<td class="xtd" style="text-align: left;">' + (isEmpty(data['manufactoryName'])?'':data['manufactoryName']) + '</td>';
- html += '<td class="xtd" style="text-align: center;">' + format(data['effDate'], "yyyy-MM-dd") + '</td>';
- html += '</tr>';
- }
- $("#base_tr").after(html);
- $(".packRetpriceSum").html(keepTwoDecimal(packRetpriceSum));
- $(".buyPriceSum").html(keepTwoDecimal(buyPriceSum));
- $(".balance").html(keepTwoDecimal(Math.abs(packRetpriceSum-buyPriceSum)));
- print();
- });
- }
- /**
- * 打印报表
- */
- function print() {
- setDefaultPrint();
- LODOP = getLodop();
- LODOP.PRINT_INITA(6, 0, "215mm", "280mm", "入库单打印");
- LODOP.SET_PRINT_PAGESIZE(1, "215mm", "280mm", "");
- //设置默认打印机
- LODOP.SET_PRINTER_INDEX(defaultPrintIndex);
- LODOP.SET_PRINT_STYLE("FontSize", 11); //字体大小
- LODOP.SET_PRINT_STYLEA(0, "ItemType", 2);
- var strStyle = "<style>table,td,th {border-width: 1px;padding-bottom:0px;" +
- "border-style: solid;border-collapse: collapse;table-layout:fixed;word-wrap:break-word;font-size: 13}.xtd{border: 1px solid black;}</style>";
- LODOP.ADD_PRINT_HTM("0mm", "0mm", "RightMargin:0mm", "BottomMargin:0mm", strStyle + document.getElementById("report_table_1").innerHTML);
- //LODOP.PRINT();
- LODOP.PREVIEW();
- }
- // 追溯码扫码计数统计
- let barFor = false
- let barC = 1
- function drugBarStat(){
- barFor = false
- barC = 0
- $('#quantity2').val(null)
- $('#drugTracCodgAt').val(null);
- let sum = 0;
- let str = $("#drugTracCodgStr").val();
- let infoErr = '错误:\n';
- let infoRep = '重复:\n';
- if(!isEmpty(str)){
- let barInfo = str.replaceAll('\n', ',').split(',')
- if(barInfo.length > 0) {
- for(let i in barInfo){
- if(barInfo[i].length === 20){
- sum++;
- } else {
- if(barInfo[i] > 0 && barInfo[i].length !== 20){
- sum++;
- barFor = true
- infoErr += barInfo[i] + '\n';
- }
- }
- }
- let barInfoCp = [...barInfo]
- let repStr = ''
- for(let i in barInfo){
- let rep = 1;
- // 不能用index的序号去比,因为它已经比过了
- let index = 0;
- if(!(isEmpty(repStr) || repStr.indexOf(barInfo[i]) === -1)){
- continue
- }
- for(let j in barInfoCp){
- if(j > i && barInfo[i] === barInfoCp[j]){
- rep++;
- barFor = true
- if(isEmpty(repStr)){
- repStr = barInfo[i]
- } else if(repStr.indexOf(barInfo[i]) === -1){
- repStr += ',' + barInfo[i]
- }
- index = j
- }
- }
- if(rep > 1){
- infoRep = infoRep + barInfo[i] + '重复出现:' + rep + '次。 \n'
- rep = 1
- }
- }
- }
- }
- let info = infoErr + '\n' + infoRep
- $('#quantity2').val(sum)
- $('#drugTracCodgAt').val(info);
- }
- /**
- * 去掉最后一个字符
- * @param str 字符串
- * @param char 去掉的字符
- * @returns {string}
- */
- function removeLastComma(str, char) {
- if (str.endsWith(char)) {
- str = str.substring(0, str.length - 1);
- }
- return str;
- }
- function drugBarRepeat(){
- let barStr = $("#drugTracCodgStr").val()
- if(!isEmpty(barStr)) {
- let barInfo = barStr.replaceAll('\n', ',').split(',')
- if (barInfo.length > 0) {
- let barData = new Set(barInfo)
- let barList = [...barData]
- let data = ''
- for(let i in barList){
- if(!isEmpty(barList[i])) {
- data += (barList[i] + '\n')
- }
- }
- $("#drugTracCodgStr").val(data)
- }
- }
- }
|