精华内容
下载资源
问答
  • 该系统包含了权限管理、模块管理、配置管理和页面打印功能,代码齐全,sql脚本也包含在内,可正常运行,三周的任务量,仅供大家学习,可作为项目设计使用
  • layui表格打印全部数据

    万次阅读 2019-01-16 16:09:04
  • 项目技术选型 编写环境 Windows10 专业版 - 1803 Spring Tool Suite 3.9.4.RELEASE Spring5 + SpringMvc5 + Spring-Data-Jpa Mysql 8.0.11 架构选型 项目前后端分离,降低耦合度 前端 前端选用 layui 2.3.0,以 ...

    缺物流管理系统项目经验的,推荐看看这个项目。

    项目需求说明

    首先,发货客户与快递公司签订货运合同(货运单),把货物交给快递公司来托运,并按照货运合同的付款方式付款。快递公司根据货物运输线路,为货物配车,找到合适的车辆后,与司机签订运输合同(回执单),并按照运输合同的运费结算方式结算。司机对货物检查无误后,装车,然后发车,发车后,货物的任何损失由司机承担。

    司机到达目的地后,需要经过货物验收,验收通过,填写一份司机回执单,快递公司这时同时通知发货客户和收货客户,货物已到达。如果货物没有通过验收,则填写差错记录。如果该货物不需要中转,通知收货客户来提货,客户验收通过后,填写客户回执单,快递公司这时通知发货客户,所发货物已被提走。

    如果该货物需要中转,则填写一份中转信息单,快递公司这时同时通知发货客户和收货客户,货物已被中转。中转成功后,收货客户来提货,并通知发货客户,货物已被提,然后进行转货结算。

    项目技术选型

    编写环境

    • Windows10 专业版 - 1803

    • Spring Tool Suite 3.9.4.RELEASE

    • Spring5 + SpringMvc5 + Spring-Data-Jpa

    • Mysql 8.0.11

    架构选型

    项目前后端分离,降低耦合度

    前端

    前端选用 layui 2.3.0,以 html 的形式保存,通过 js 向后端请求数据

    后端

    后端选用 SpringBoot 2.0.2 进行快速的原型开发,内部采用SSH(Spring + SpringMVC + Hibernate)

    特色

    1. Hibernate 采用 SpringBoot-data-jpa 进行封装,简化数据库操作,采用命名规范进行数据库的增删改查,去除了接口的实现

    2. 使用 Springboot 进行快速开发,简化了配置文件的编写

    3. 项目中采用了 Swagger2.0,自动扫描 Controller 中的 RequestMapping,形成接口文档

    接口截图文档如下:

    必备技能!单点登录系统原理与实现!

    功能模块介绍

    票据管理

    票据管理主要是对票据信息进行分发和历史票据的查询

    票据分发

    票据分发主要是对货运单进行司机分配,分发后,该货运单以及相应的货运回执单的状态会被更新为未到运单和未到车辆,同时更新发货时间

    票据查询

    票据查询主要是查询所有的历史票据

    主要进行货运单的分发(分发到司机)及历史单据的查询

    接货管理

    接货管理主要由工作人员负责填写一份货运单合同。合同中发货客户和收货客户信息都是下拉选择后自动查找数据库返回前台,职员编号通过获取当前登录用户的编号自动填写。实际交货日期、是否有效、是否审核都是禁止填写,后续事件触发后自动补充填写。提交合同后,货运单事件表修改该合同状态为待运,票据状态为已填。填完货运单后,自动跳转添加货物信息

    填写接货单

    接货单中,部分信息由数据库读取自动生成 接货单中的发货和收货客户由数据库返回前端显示 中转地及中转费在填写完发货地和收货地后,根据路线情况动态生成 添加货运单的同时自动生成货运单号,以HY开头,提交合同后,添加票据,类型为货运单,状态为已填,修改货运单事件表状态为待发

    
    String goodsBillCode = "HY";
    while (true) {
    goodsBillCode += randomCode();
        if (goodsBillDao.findByGoodsBillCode(goodsBillCode) == null) {
            break;
        }
    }
    goodsBill.setGoodsBillCode(goodsBillCode);
    goodsBill.setValidity("无效");
    goodsBill.setIfAudit("未审核");
    goodsBill.setIfSettleAccounts("未结账");
    goodsBillDao.save(goodsBill);
    
    BillInfo billInfo = new BillInfo();
    billInfo.setBillType("货运单");
    billInfo.setBillCode(goodsBillCode);
    billInfo.setBillState("已填");
    billInfo.setWriteDate(new Date());
    billInfoDao.save(billInfo);
    
    GoodsBillEvent goodsBillEvent = new GoodsBillEvent();
    goodsBillEvent.setGoodsBillId(goodsBillCode);
    goodsBillEvent.setEventName("待发");
    goodsBillEvent.setRemark("单据已填");
    goodsBillEvent.setOccurTime(new Date());
    goodsBillEventDao.save(goodsBillEvent);
    
    

    添加货物后,给回执单一个编号,以HZ开头,并且修改货运单状态为有效和已填

    String goodsRevertBillId = "HZ";
    while (true) {
        goodsRevertBillId += randomCode();
        if (cargoReceiptDetailDao.findByGoodsRevertBillId(goodsRevertBillId) == null) {
            break;
        }
    }
    goodsBill.setValidity("有效");
    goodsBill.setIfAudit("审核");123456789
    
    

    死磕18个Java 8的日期处理,工作必用!

    查询接货单

    查询页面可以查看不同状态的货运单:待发运单、未到运单、未结运单、所有运单。页面以分页形式展示货运单编号、事件名称、备注、发生时间等简略信息。只有在待运状态的货运单,才有修改和删除功能,其他状态不能对其数据操作。所有页面都可以通过货运单编号查看详情。

    刚填写好后的接货单将会以待发的状态保存在待发运单中

    可以查看运单的详细内容

    对待发运单可以进行修改或删除 删除货运单时只能修改货运单及票据状态,不能真正删除

    
    
    
    GoodsBillEvent goodsBillEvent = new GoodsBillEvent();
    goodsBillEvent.setGoodsBillId(goodsBillCode);
    goodsBillEvent.setEventName("删除货运单");
    goodsBillEvent.setRemark("顾客不想发货");
    goodsBillEvent.setOccurTime(new Date());
    
    BillInfo billInfo = billInfoDao.findByBillCode(goodsBillCode);
    billInfo.setBillState("作废");
    
    

    配车管理

    主要进行货运回执单的填写。下拉选择未填写的货运回执单,选择后数据库查询联系人、地址等信息直接填写到页面。货运单状态自动填写为未出合同。

    装货地点下拉选择,能找到所有路线的出发地,交货地点后台根据装货地点查询能到达的相应目的地供工作人员选择。起运时间和司机编号在分发票据的时候自动补充填写。是否结算在结算页面事件触发更改。

    查询页面可以查看运输合同在不同阶段的状态:未出合同、未到合同、未结车辆、所有合同。页面以分页形式展示货运回执单编号、回执单状态、收货联系人等大致信息。只有运输合同状态为未出合同时,才有修改和删除功能,其他状态不能对其进行数据操作。所有页面都可以通过货运单编号查看详情

    填写运输合同

    填写主要是填写货运回执单主表,后端会检索数据库中没有运输合同的信息,从而显示在下拉框中,填票人选择相应的货运单后,会返显部分信息 填写后运输合同将处于未出合同状态 添加货运回执单的同时添加票据,类型为货运回执单,状态为已填,修改货运单事件表状态为待发。

    
    
    
    BillInfo billInfo = new BillInfo();
    billInfo.setBillType("货运回执单");
    billInfo.setBillCode(cargoReceipt.getGoodsRevertBillCode());
    billInfo.setBillState("已填");
    billInfo.setWriteDate(new Date());
    billInfoDao.save(billInfo);
    
    
    

    查询运输合同

    可以查询未出合同、未到车辆、未结合同、所有合同4个状态的货运回执单

    可以查看未出合同的详细信息并进行修改、删除操作 删除货运回执单时只能修改货运单及票据状态,不能真正删除

    
    
    BillInfo billInfo = billInfoDao.findByBillCode(goodsRevertBillCode);
    billInfo.setBillState("作废");
    billInfo.setWriteDate(new Date());
    
    

    操作同接货类似,在此不重复展示

    到货管理

    司机可以在此进行到货回执的填写、用户可以填写顾客回执,并进行历史货物的查询

    到货主要分两个部分:1. 司机填写到货回执,确认货物到货;2. 客户填写收货回执,确认收货

    司机到货回执

    司机填写到货回执,同时后端更新货运单和货运回执为未结;同时客服可以进行提货回告和到货回告并进行填写

    面试:数据量很大,分页查询很慢,有什么优化方案?

    客户到货回执

    客户填写到货回执后,同时客服可以进行收货回告

    客户可以查询自己的收货历史

    中转管理

    中转管理主要是进行中转公司信息的填写、查询以及对货物中转信息的录入和历史查询

    中转公司

    选择某一个城市,并对该城市的中转公司信息进行录入

    可以在中转公司信息查询中查询所有的中转公司信息

    使用 Redis 实现一个轻量级的搜索引擎,牛逼啊 !

    中转信息

    中转信息主要是填写中转货物的中转信息

    可以在中转历史中查询所有的中转信息

    源码地址

    前端项目地址:https://github.com/anselleeyy/logistics-front

    后端项目地址:https://github.com/anselleeyy/logistics-back

    点击阅读全文前往微服务电商教程

    展开全文
  • 打印单据,A4纸,每个单据占一个A4纸,两个单据之间不挨着 <style type="text/css" media="print">.Noprint { DISPLAY: none;}/* 打印,再次元素之后进行分页 */.PageNext{page-break-after: always;}</...

    打印单据,A4纸,每个单据占一个A4纸,两个单据之间不挨着

     

    <style type="text/css" media="print">
    .Noprint { DISPLAY: none;}
    /* 打印,再次元素之后进行分页 */
    .PageNext{page-break-after: always;}
    </style>

     

    <table class='PageNext'></table>

     

     

    OK,搞定

    转载于:https://www.cnblogs.com/omiwa/p/4487115.html

    展开全文
  • 单据编号:' + data["djbh"] + ' td > tr > '; newstr += ' < tr > < td colspan = "4" style = "font-size:10px;line-height:20px" > 机构:' + data["jigou"] + ' td > tr > '; newstr += ' < tr > < td...

    个人小说网站友书-绿色、纯净、无广告欢迎广大同行前来指点、阅读
    话不多说,直接上代码,

    function Print(data) {
                    $.post("../../program/ashx/PrintAshx.ashx", { Id: data, OrderId: $("#HiddenField1").val() }, function (data) {
                        if (data != "" && data != null && data != undefined) {
                            var head = "<html><head><title></title></head><body><OBJECT classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2' height='0' id='WebBrowser3' width='0' VIEWASTEXT></OBJECT><div align='center'><table width=250px align='center'>";//先生成头部
                            var foot = "</table></div></body></html>";//生成尾部
                            var newstr = "";
                            newstr += '<tr><td colspan="4" style="font-size:10px;line-height:20px">单据编号:' + data["djbh"] + '</td></tr>';
                            newstr += '<tr><td colspan="4" style="font-size:10px;line-height:20px">机构:' + data["jigou"] + '</td></tr>';
                            newstr += '<tr><td colspan="4" style="font-size:10px;line-height:20px">中心:' + data["center"] + '</td></tr>';
                            newstr += '<tr><td colspan="4" style="font-size:10px;line-height:20px" align="left">-------------------收款清单-------------------</td></tr>'
                            newstr += '<tr><td style="font-size:10px" colspan="4">付款人:' + data["fukuan"] + '     ' + "\t\t\t" + '打印时间:' + data["sysdt"] + '</td></tr>';
                            newstr += '<tr><td style="font-size:10px" colspan="4">------------------------------------------------</td></tr>';
                            newstr += '<tr><td style="font-size:10px" style="width:20%" align="center"></br>序号</td><td style="width:40%;font-size:10px" align="center">项目</td><td style="width:20%;font-size:10px" align="center">数量</td><td style="width:20%;font-size:10px" align="center">金额</td></tr>';
                            newstr += '<tr><td style="font-size:10px" style="width:20%;font-size:10px" align="center">' + data["xh"] + '</td><td style="width:50%;font-size:10px" align="center">' + data["item"] + '</td><td style="width:10%;font-size:10px" align="center">' + data["shuliang"] + '</td><td style="width:20%;font-size:10px" align="center">' + data["zongjia"] + '</td></tr>';
                            newstr += "<tr></tr>" + data["youhui"];
                            newstr += '<tr><td style="font-size:10px" colspan="4"></br>应付合计:' + data["yingfu"] + '</td></tr>';
                            newstr += '<tr><td style="font-size:10px" colspan="4"></br>支付金额:' + data["shifu"] + '</td></tr>';
                            newstr += '<tr><td style="font-size:10px" colspan="4"></br>支付时间:' + data["sysdt"] + '</td></tr>';
                            newstr += '<tr><td style="font-size:10px" colspan="4"></br>------------------------------------------------</td></tr>';
                            newstr += '<tr><td style="font-size:10px" colspan="4">收款人:' + data["username"] + '</td></tr>';
                            newstr += '<tr><td style="font-size:10px" colspan="4">------------------------------------------------</td></tr>';
                            newstr += '<tr><td style="font-size:10px" colspan="4"></br>备注:此单为缴款凭证,请妥善保存</td></tr>';
                            newstr += '<tr><td style="font-size:10px" colspan="4"></br>联系电话:' + data["tel"] + '</td></tr>';
                            newstr += '<tr><td style="font-size:10px" colspan="4"></br>地址:' + data["dizhi"] + ' </td></tr>';
    
    ----------------------------以上内容为拼接要打印的html页面------------------
                            var oldstr = document.body.innerHTML;//获取原本网页页面代码
                            document.body.innerHTML = head + newstr + foot;//拼接打印页面
                            if (getExplorer() == "IE") {//判断是否IE浏览器,是,调用去除页眉页脚的方法,否,直接输出即可
                                pagesetup_null();
                            }
                            window.print();
                            document.body.innerHTML = oldstr;//还原网页;  
                            return false;
    
                        }
                    }, "Json");
                }
    
                function pagesetup_null() {
                    var hkey_root, hkey_path, hkey_key;
                    hkey_root = "HKEY_CURRENT_USER";
                    hkey_path = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
                    try {
                        var RegWsh = new ActiveXObject("WScript.Shell");
                        hkey_key = "header";
                        RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "");
                        hkey_key = "footer";
                        RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "");
                    } catch (e) { }
                }
    
                function getExplorer() {
                    var explorer = window.navigator.userAgent;
                    //ie 
                    if (explorer.indexOf("MSIE") >= 0) {
                        return "IE";
                    }
                        //firefox 
                    else if (explorer.indexOf("Firefox") >= 0) {
                        return "Firefox";
                    }
                        //Chrome
                    else if (explorer.indexOf("Chrome") >= 0) {
                        return "Chrome";
                    }
                        //Opera
                    else if (explorer.indexOf("Opera") >= 0) {
                        return "Opera";
                    }
                        //Safari
                    else if (explorer.indexOf("Safari") >= 0) {
                        return "Safari";
                    }
                }

    结果截图展示:
    这里写图片描述

    这里写图片描述

    如有问题,请加我QQ:631931078或352167311

    展开全文
  • 常用的打印设置:使用C-Lodop插件实现常用单据打印功能;以常用订货单和调拨单为例设置打印功能; 需要下载Lodop 打印的插件:http://www.lodop.net/download.html 1、常用订货单设置: //引入: <link rel=...
  • 直接放入ifram 标签 或者enbed 出现问题,ifram会出现ie bug在火狐、谷歌中图片显示正常,enbed 标签和ifram 标签的在赋值后加载我也有问题,打印我是直接延续使用原来项目中使用的Lodop. <!DOCTYPE html> <...
  • 【web打印】之jsprint

    千次阅读 2017-08-07 19:11:26
    单据号 label > < div class = "layui-input-inline" > < input type = "text" name = "title" lay-verify = "title" autocomplete = "off" value = "17入字CR170300002号" class = "layui-...
  • --<div class="layui-upload layui-inline layui-show-xs-block">--> <!--<button type="button" class="layui-btn layui-btn-normal" id="btnSelectFile">选择Excel</button>--> <!--...
  • cell-2-0-0 laytable-cell-numbers"2010-11-09/div/td td data-field="4" data-key="2-0-1" class="layui-table-col-special"div class="layui-table-cell laytable-cell-2-0-1 laytable-cell-numbers" 已打印/div/...
  • swsyth_kp_spxz_khxz_js

    2019-10-03 19:32:44
    //ul[@class="layui-nav layui-nav-tree"]/li[3] ' ).click() 45 # 点击票据管理层级下的单据管理按钮 46 driver.find_element_by_xpath( ' //a[@data-url="/home/bill/ndjgl.html"] ' ).click() 47 # ...
  • C#求学之路MVC《医院管理系统》项目研发文献

    千次阅读 多人点赞 2019-01-16 16:45:00
    开发工具与关键技术:java、 SSM框架 、layui、 ajax 一、项目概要 整套系统分为“单位信息、系统管理、供应商中心、公告管理、挂号收费、医生工作站、体检中心、化验中心、医技工作站、护士工作站、药房管理、会....
  • 基金管理系统源码

    2021-05-19 11:20:57
    layui,采用的后端开发语言框架等有:SSM,oracle数据库,因此本项目可跨越平台运行,实现一次编写,到处运行,本系统可使用于国内及海外各企业或学习者等,解决了人工运算的繁琐流程,大大缩减了基金公司的成本。...
  • 二、关键技术:C#+SQL Server+JavaScript+Layui 三、项目模块:首页,采购订货,采购入库,采购退货,货商结算。 四、技术点总结(事务流程、数据库、框架): (1)事务流程:采购订货à采购入库à采购退货à货...

空空如也

空空如也

1
收藏数 15
精华内容 6
关键字:

layui打印单据