【springmvc+mybatis项目实战】杰信商贸-32.出口报运修改+报运货物批量展现-批量修改控件1

上一次我们完成了出口报运业务-购销合同查询与上报,但是其中有很多东西没有完善,我们接下来逐步完成我们的出口报运剩下的业务。

我们要解决其中一个问题:我们在购销合同查询界面点击“上报”之后就会直接上报至出口报运,如果用户仅仅是误点或者测试,这个有点过于草率,我们需要加一些限制来保证操作的正确性。

还有一点就是我们的主信息不全

毛重、净重、长宽高等信息我们都没有填写,我们都应该添加。我们只能在修改中去添加它。

所以我们增加修改的方法:
回顾一下我们之前的出口报运的Mapper映射文件中已经配置了修改的语句:

<update id="update" parameterType="cn.hpu.jk.domain.Export">
	update export_c
	<set>
		<if test="inputDate != null"> INPUT_DATE=#{inputDate},</if>
		<if test="contractIds != null"> CONTRACT_IDS=#{contractIds},</if>
		<if test="customerContract != null"> CUSTOMER_CONTRACT=#{customerContract},</if>
		<if test="lcno != null"> LCNO=#{lcno},</if>
		<if test="consignee != null"> CONSIGNEE=#{consignee},</if>
		<if test="marks != null"> MARKS=#{marks},</if>
		<if test="remark != null"> REMARK=#{remark},</if>
		<if test="shipmentPort != null"> SHIPMENT_PORT=#{shipmentPort},</if>
		<if test="destinationPort != null"> DESTINATION_PORT=#{destinationPort},</if>
		<if test="transportMode != null"> TRANSPORT_MODE=#{transportMode},</if>
		<if test="priceCondition != null"> PRICE_CONDITION=#{priceCondition},</if>
		<if test="grossWeight != null"> GROSS_WEIGHT=#{grossWeight},</if>
		<if test="netWeight != null"> NET_WEIGHT=#{netWeight},</if>
		<if test="measurement != null"> MEASUREMENT=#{measurement},</if>
	</set>
	where export_id=#{id}
</update>

然后Dao层和Service层上次也都写好了方法,下面我们直接在Controller层添加修改的方法:

//转向修改界面
@RequestMapping("/cargo/export/toupdate.action")
public String toupdate(String id,Model model){
	Export obj=exportService.get(id);
	model.addAttribute("obj", obj);

	return "/cargo/export/jExportUpdate.jsp";
}

//进行修改
@RequestMapping("/cargo/export/update.action")
public String update(Export export){
	exportService.update(export);

	return "redirect:/cargo/export/list.action";
}

然后我们的出口报运主界面已经有修改的按钮了:

<ul>
<li id="view"><a href="#" onclick="formSubmit('toview.action','_self');this.blur();">查看</a></li>
<li id="update"><a href="#" onclick="formSubmit('toupdate.action','_self');this.blur();">修改</a></li>
<li id="delete"><a href="#" onclick="formSubmit('delete.action','_self');this.blur();">删除</a></li>
<li id="new"><a href="#" onclick="formSubmit('submit.action','_self');this.blur();">上报</a></li>
<li id="new"><a href="#" onclick="formSubmit('cancel.action','_self');this.blur();">取消</a></li>
</ul>

接下来编写我们的修改的jsp页面:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../base.jsp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>修改出口报运信息</title>
    <script language="javascript" src="${ctx}/js/datepicker/WdatePicker.js"></script>
</head>
<body>
<form method="post">

<div id="menubar">
<div id="middleMenubar">
<div id="innerMenubar">
    <div id="navMenubar">
<ul>
<li id="save"><a href="#" onclick="formSubmit('update.action','_self');">确定</a></li>
<li id="back"><a href="list.action">返回</a></li>
</ul>
    </div>
</div>
</div>
</div>

<div class="textbox" id="centerTextbox">

    <div class="textbox-header">
    <div class="textbox-inner-header">
    <div class="textbox-title">
		修改出口报运信息
    </div>
    </div>
    </div>
<div>

    <div>
		<table class="commonTable" cellspacing="1">
				<input type="hidden" name="id" value="${obj.id}"/>
		        <tr>
		        	<td class="columnTitle_mustbe">合同或确认书号:</td>
		            <td class="tableContent">${obj.customerContract }</td>
		            <td class="columnTitle_mustbe">制单日期:</td>
		            <td class="tableContent">
		            <input type="text" style="width: 90px" name="inputDate" class="Wdate" value="<fmt:formatDate value="${obj.inputDate }" pattern="yyyy-MM-dd"/>"
		             onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/>
		            </td>
		        </tr>

		        <tr>
		        	<td class="columnTitle_mustbe">信用证号:</td>
		            <td class="tableContent"><input type="text" name="lcon" value="${obj.lcon }"/></td>
		            <td class="columnTitle_mustbe">收货人及地址:</td>
		            <td class="tableContent"><input type="text" name="consignee" value="${obj.consignee}"/></td>
		        </tr>

		        <tr>
		         	<td class="columnTitle_mustbe">装运港:</td>
		            <td class="tableContent"><input type="text" name="shipmentPort" value="${obj.shipmentPort}"/></td>
		            <td class="columnTitle_mustbe">目的港:</td>
		            <td class="tableContent"><input type="text" name="destinationPort" value="${obj.destinationPort}"/></td>
		        </tr>

		        <tr>
		         	<td class="columnTitle_mustbe">价格条件:</td>
		            <td class="tableContent">
		            <input type="radio" name="priceCondition" value="2" <c:if test="${obj.priceCondition=='FOB'}"> checked="checked"</c:if>/>FOB
		            <input type="radio" name="priceCondition" value="1" <c:if test="${obj.priceCondition=='CIF'}"> checked="checked"</c:if>/>CIF
		            </td>
		            <td class="columnTitle_mustbe">运输方式:</td>
		            <td class="tableContent">
		            <input type="radio" name="transportMode" value="2" <c:if test="${obj.transportMode=='AIR'}"> checked="checked"</c:if>/>AIR
		            <input type="radio" name="transportMode" value="1" <c:if test="${obj.transportMode=='SEA'}"> checked="checked"</c:if>/>SEA
		            </td>
		        </tr>

		        <tr>
		       		<td class="columnTitle_mustbe">唛头:</td>
		            <td class="tableContent"><textarea  name="marks" style="height:200px;width: 400px">${obj.marks}</textarea></td>
		            <td class="columnTitle_mustbe">备注:</td>
		            <td class="tableContent"><textarea  name="remark" style="height:200px;width: 400px">${obj.remark}</textarea></td>
		        </tr>
			</table>
	</div>
</div>

</form>
</body>
</html>

至于总毛重、总净重、体积在我们提交修改的时候再去通过总计货物以及附件的方式进行计算,这里不需要用户去输入,所以修改界面中并没有这几个字段。

然后我们进行测试:
点击修改:

转到修改界面:

填写修改信息:

提交之后修改成功!

可以看到状态还没有,我们默认刚上报的出口报运信息是“草稿”状态,所以我们在之前的Service的insert方法中添加:
export.setState(0);//默认是草稿状态

然后“上报”和“草稿”之间的切换我们之前做过,在这里就不赘述了。

因为我们要完成“分次报运”,也就是我一次并不把某个出口报运条目下的所有货物报运,我要分批次报运,一个合同可以分多次进行报运。例如:有一个货物1000件,这次报运只运输800件,下次在运输200件。

一般情况下大多一个合同一次报运,只有特殊情况下才有多个合同一次报运,一个合同多次报运,但是这个功能必须要有。

所以我们的修改不仅仅是对出口报运信息进行修改,同时也要对报运下货物信息进行修改,修改报运下的货物信息时,用户只能修改货物的数量,而且只能修改小。如果已经分次报运,它只显示剩余的值=合同的货物总数-实际出货数量。

以往我们之前都要一个一个的修改货物信息很不方便,我们这次要实现批量修改,我们要修改货物的数量(实现分次报运);以及修改新增的7个字段。

如何添加批量修改脚本,请看下一篇总结:出口报运修改+报运货物批量展现-批量修改控件2

转载请注明出处:http://blog.csdn.net/acmman/article/details/49019401

时间: 2024-11-08 21:21:55

【springmvc+mybatis项目实战】杰信商贸-32.出口报运修改+报运货物批量展现-批量修改控件1的相关文章

【springmvc+mybatis项目实战】杰信商贸-1.项目背景

1.项目背景 杰信项目物流行业的项目, 杰信商贸是国际物流行业一家专门从事进出口玻璃器皿贸易的公司.公司总部位于十一个朝代的帝王之都西安,业务遍及欧美.随着公司不断发展壮大,旧的信息系统已无法满足公司的快速发展需求,妨碍公司成长,在此背景下,公司领导决定研发<杰信商贸综合管理平台>. <杰信商贸综合管理平台>分三期完成.一期完成仓储管理(包括:采购单.仓库.货物.条形码.入库.出库.退货.盘点.库存.库存上限报警.统计查询)和展会管理(包括:展会管理.出单管理),形成货物统一数字化

【springmvc+mybatis项目实战】杰信商贸-13.购销合同列表

我们接下来开始编写购销合同的列表业务 首先我们现往我们的FACTORY_C和基础表中倒入一些数据方便我们测试 导入数据的SQL文件:jk.sql (点击下载) 然后我们看到数据已经插入 启动服务器查看我们的数据已经插入 接下来我们开始做购销合同的业务.首先我们的数据库表已经建立(CONTRACT_C),我们首先创建购销合同的实体类Contract.java: package cn.hpu.jk.domain; import java.util.Date; public class Contrac

【springmvc+mybatis项目实战】杰信商贸-31.出口报运业务-购销合同查询与上报

我们上一篇完成了出口报运增删查修的mapper+Dao+Service+Controller,而且在Controller中添加和获取出口报运的列表的方法,然后成功获取了出口报运的列表: 然后我们这次要添加出口报运的"新增"方法,但是这个"新增"和以往的新增方法不同,这个要与之前的购销合同关联在一起. 我们出口报运的"新增"是这样的: 用户要选择多个合同,然后进行报运.(体现出业务关联) 报运新增时,报运专责只能看到已上报的购销合同. (操作出口报

【springmvc+mybatis项目实战】杰信商贸-8.生产厂家修改

上一次我们做了生产厂家的新增,下面我们来做一下生产厂家的修改 回顾一下我们的FactoryMapper.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

【springmvc+mybatis项目实战】杰信商贸-11.购销合同业务

生产厂家我们做完了,接下来我们要做一个更加复杂的业务,就是"货运管理" 首先我们先了解一下业务,什么是"货运管理"? "货运管理"是国际物流的概念,往常我们货物送到国内没有那么多事情,但是货物发往国外就多了很多手续,依靠小物流公司我们是很不可能的,需要行业的大背景的支撑.下面我们来看看它是怎么做的 a)业务:购销合同 当我们的客户通过展会.其它渠道跟杰信公司联系上以后,他们看上杰信的货物样品,他们会跟杰信签订一个购买合同(样式要求,货物数量),客

【springmvc+mybatis项目实战】杰信商贸-15.细粒度的权限控制+业务上报取消

上一篇总结我们完成了购销合同的增删改查业务,这一篇我们首先完成权限控制以及业务的上报取消的设置功能. 先说我们的权限控制 1.细粒度的权限控制 a)日常权限框架: 基于角色权限,用户.角色.权限(URL.主菜单.左侧菜单.按钮) b)数据权限: 纵向的数据权限过滤:对数据进行过滤 1)本人(专责):登录后只能看到自己的信息Where条件 create_by = #{当前登录者id} 2)部门(集团公司):登录后登录人是经理级别A.只能看本部门Where条件 create_dept=#{当前登录者

【springmvc+mybatis项目实战】杰信商贸-34.业务出口报运WebService1

我们要为出口报运做一个WebService,来提供跨系统的信息查询功能. 我们使用的技术是 -------Apache CXF WebService 作用:两个异构系统,需要共享数据. 需求:我们要给客户提供合同追踪.在出口报运中增加一个WebService,用户可以通过它的系统来访问这个服务,展现出口报运单,主要可以浏览用户的订单状态(走到哪个流程).查看出口报运单 开发步骤:将现有的Service改造成WebService 1)将CXF整合到项目中,加入jar包.依赖jar.我们系统才 CX

【springmvc+mybatis项目实战】杰信商贸-33.出口报运修改+报运货物批量展现-批量修改控件2

具体批量修改的几个要点: 1)批量展示 mrecord控件(自定义) 也就是在html界面上的table表格中添加新的行,这个时候我们使用javascript来实现这种效果就行了,innerHTML 实现往一个区域div增加一段html代码,table,tr,td都用利用js动态插入.这里我们使用控件来完成. 下面我们来实现 我们来修改我们的jExportupdate.jsp,在修改出口报运信息下添加报运下货物的列表信息,并且将需要添加的货物列表添加上去,并且将动态表格的js文件和javascr

【springmvc+mybatis项目实战】杰信商贸-4.maven依赖+PO对+映射文件

我们来为刚刚创建的数据库表来在工程中创建PO对象 首先我们要创建工程 项目的开发环境 序号 工  具                用  途 1 MyEclipse 2014   IDE 2 JDK 1.7.9        Java虚拟机 3 TOMCAT 7.0.26       中间件 4 Oracle11g/10g.MySQL 5.0.87数据库 5 PL/SQL .SQLyog 8.2SQL控制台 6 apache-maven-3.0.5MAVEN 7 PowerDesigner 15