码迷,mamicode.com
首页 > 其他好文 > 详细

011杰信-创建购销合同Excel报表系列-3-建立合同货物(修改,删除):合同货物表是购销合同表的子表

时间:2016-09-22 19:59:24      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:

前面的一篇文章做的是修改删除,这篇文章做的是合同货物的修改和删除。

业务功能如下:

技术分享

进入上面页面后,有删除和修改两个链接。项目结构如下:

技术分享

技术分享

 

上面的红色框框就是这个功能的代码结构:

我们还是按照Mapper.xml文件->Dao层->Service层->控制层。

 

 

 

COntractProductMapper.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">
<mapper namespace="cn.itcast.jk.mapper.ContractProductMapper">
<resultMap type="cn.itcast.jk.domain.ContractProduct" id="contractProductRM">

<id  property="id" column="CONTRACT_PRODUCT_ID"/>
<result property="contractid" column="CONTRACT_ID"/>
<result property="factoryid" column="FACTORY_ID"/>


<result property="factoryname" column="FACTORY_NAME"/>
<result property="productno" column="PRODUCT_NO"/>
<result property="productimage" column="PRODUCT_IMAGE"/>
<result property="productdesc" column="PRODUCT_DESC"/>
<result property="cnumber" column="CNUMBER"/>
<result property="outnumber" column="OUT_NUMBER"/>
<result property="loadingrate" column="LOADING_RATE"/>
<result property="boxnum" column="BOX_NUM"/>
<result property="packingunit" column="PACKING_UNIT"/>
<result property="price" column="PRICE"/>
<result property="amount" column="AMOUNT"/>
<result property="finished" column="FINISHED"/>
<result property="exts" column="CONTRACT_ID"/>
<result property="orderno" column="CONTRACT_ID"/>
</resultMap>


<!-- 开始写sql语句 -->
<select id="find"  parameterType="map"  resultMap="contractProductRM" >
select * from contract_product_c where 1=1
<if test="contractId != null">and CONTRACT_ID=#{contractId}</if>
</select>

<!-- 取一个数据 -->
<select id="get" parameterType="string"  resultMap="contractProductRM">
<!-- 这个pid可以随便取的 -->

select * from contract_product_c where CONTRACT_PRODUCT_ID=#{pid}
</select>




<insert id="insert" parameterType="cn.itcast.jk.domain.ContractProduct">
insert into contract_product_c
(
CONTRACT_PRODUCT_ID,CONTRACT_ID,FACTORY_ID,FACTORY_NAME,PRODUCT_NO,PRODUCT_IMAGE,PRODUCT_DESC,CNUMBER,OUT_NUMBER,LOADING_RATE,BOX_NUM,PACKING_UNIT,PRICE,AMOUNT,FINISHED,EXTS,ORDER_NO
)
values
(
<!-- 因为 id,contractid,factoryid肯定不能为空,所以jdbcType就不用写了。-->
#{id},
#{contractid},
#{factoryid},
#{factoryname,jdbcType=VARCHAR},
#{productno,jdbcType=VARCHAR},
#{productimage,jdbcType=VARCHAR},
#{productdesc,jdbcType=VARCHAR},
#{cnumber,jdbcType=INTEGER},
#{outnumber,jdbcType=INTEGER},
#{loadingrate,jdbcType=VARCHAR},
#{boxnum,jdbcType=INTEGER},
#{packingunit,jdbcType=VARCHAR},
#{price,jdbcType=VARCHAR},
#{amount,jdbcType=VARCHAR},
#{finished,jdbcType=INTEGER},
#{exts,jdbcType=VARCHAR},
#{orderno,jdbcType=INTEGER}

)

</insert>

<!-- 修改合同货物 -->
<update id="update" parameterType="cn.itcast.jk.domain.ContractProduct">
update contract_product_c 
<set>

<if test="factoryname!=null">FACTORY_NAME=#{factoryname}</if>
<if test="productno!=null">PRODUCT_NO=#{productno}</if>
<if test="productimage!=null">PRODUCT_IMAGE=#{productimage}</if>
<if test="productdesc!=null">PRODUCT_DESC=#{productdesc}</if>
<if test="cnumber!=null">CNUMBER=#{cnumber}</if>
<if test="outnumber!=null">OUT_NUMBER=#{outnumber}</if>
<if test="loadingrate!=null">LOADING_RATE=#{loadingrate}</if>
<if test="boxnum!=null">BOX_NUM=#{boxnum}</if>
<if test="packingunit!=null">PACKING_UNIT=#{packingunit}</if>
<if test="price!=null">PRICE=#{price}</if>
<if test="amount!=null">AMOUNT=#{amount}</if>
<if test="finished!=null">FINISHED=#{finished}</if>
<if test="exts!=null">EXTS=#{exts}</if>
<if test="orderno!=null">ORDER_NO=#{orderno}</if>
</set>
<!-- 这里的id是 ContractProduct这个类里面的id-->
where CONTRACT_PRODUCT_ID=#{id}
</update>
<!-- 删除合同货物  -->
<delete id="deleteById" parameterType="string" >
delete from  contract_product_c where CONTRACT_PRODUCT_ID=#{id}
</delete>


</mapper>

Dao层:就是基础的BaseDaoImpl.java

package cn.itcast.jk.dao.impl;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired;

import cn.itcast.jk.dao.BaseDao;
import cn.itcast.jk.pagination.Page;

public abstract class BaseDaoImpl<T> extends SqlSessionDaoSupport implements BaseDao<T>{
    @Autowired
    //mybatis-spring 1.0无需此方法;mybatis-spring1.2必须注入。
    public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
        super.setSqlSessionFactory(sqlSessionFactory);
    }          
     private String ns;        //命名空间
    public String getNs() {
        return ns;
    }
    public void setNs(String ns) {
        this.ns = ns;
    }
    
    public List<T> findPage(Page page){
        List<T> oList = this.getSqlSession().selectList(ns + ".findPage", page);
        return oList;
    }

    public List<T> find(Map map) {
        List<T> oList = this.getSqlSession().selectList(ns + ".find", map);
        return oList;
    }
    public T get(Serializable id) {
        return this.getSqlSession().selectOne(ns + ".get", id);
    }

    public void insert(T entity) {
        this.getSqlSession().insert(ns + ".insert", entity);
    }

    public void update(T entity) {
        this.getSqlSession().update(ns + ".update", entity);
    }

    public void deleteById(Serializable id) {
        this.getSqlSession().delete(ns + ".deleteById", id);
    }

    public void delete(Serializable[] ids) {
        this.getSqlSession().delete(ns + ".delete", ids);
    }
}

然后在ContractProductDaoImpl.java中写:

package cn.itcast.jk.dao.impl;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import cn.itcast.jk.dao.ContractProductDao;
import cn.itcast.jk.domain.ContractProduct;
import cn.itcast.jk.pagination.Page;
@Repository
public class ContractProductDaoImpl extends BaseDaoImpl<ContractProduct> implements ContractProductDao  {

    public ContractProductDaoImpl()
    {
        super.setNs("cn.itcast.jk.mapper.ContractProductMapper");
        
        
    }
}

 

Service层:

ContractProductServiceImpl.java:

package cn.itcast.jk.service.impl;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.itcast.jk.dao.ContractProductDao;
import cn.itcast.jk.domain.Contract;
import cn.itcast.jk.domain.ContractProduct;
import cn.itcast.jk.pagination.Page;
import cn.itcast.jk.service.ContractProductService;
@Service
public class ContractProductServiceImpl implements ContractProductService{
    @Resource
    ContractProductDao contractProductDao;

@Override
public List<ContractProduct> findPage(Page page) {
    return contractProductDao.findPage(page);
}

@Override
public List<ContractProduct> find(Map paraMap) {
    return contractProductDao.find(paraMap);
}

@Override
public ContractProduct get(Serializable id) {
    return contractProductDao.get(id);
}

@Override
public void insert(ContractProduct contractproduct) {
    contractproduct.setId(UUID.randomUUID().toString());
    contractProductDao.insert(contractproduct);
    
}

@Override
public void update(ContractProduct contractproduct) {
    contractProductDao.update(contractproduct);
}

@Override
public void deleteById(Serializable id) {
    contractProductDao.deleteById(id);
}

@Override
public void delete(Serializable[] ids) {
    contractProductDao.delete(ids);
}


    

}

 

页面层:

新增页面(包含了修改和删除的链接)

jCOntractproductCreate.jsp:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../base.jsp"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<!-- 设置 id为factoryname的input的值-->
<script type="text/javascript">
function setfactoryName(val)
{

var ere=document.getElementById("factoryname");
ere.value=val;


}

</script>
 <!--  <script type="text/javascript" src="../../js/datepicker/WdatePicker.js"></script> -->
</head>
<body>
    <form method="post">
    <input text="text" name="contractid" value="${contractId}">
    
        <div id="menubar">
            <div id="middleMenubar">
                <div id="innerMenubar">
                    <div id="navMenubar">
                        <ul>
                            <li id="save"><a href="#"
                                onclick="formSubmit(‘insert.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">
                        <tr>
                            <td class="columnTitle_mustbe">厂家名称:</td>
                            <td class="tableContent">
                            
                            <!-- <input type= name="factoryname" /> -->
                            <!-- this.selectedIndex当前选中的索引值 -->
                            <select  name="factoryid" onchange="setfactoryName(this.options[this.selectedIndex].text)">
                            <option value="">--请选择--</option>
                             <c:forEach items="${listfactory}" var="f">
                               <option value="${f.id}">${f.factoryName }</option>
                             
                             </c:forEach>
                    
                            
                            </select>
                            <input  type="hidden" id="factoryname" name="factoryname">
                            
                            
                            </td>
                            
                            
                            
                            <td class="columnTitle_mustbe">货号</td>
                            <td class="tableContent"><input type="text" name="productno" /></td>
                        </tr>

                        <tr>
                            <td class="columnTitle_mustbe">货物照片</td>
                            <td class="tableContent"><input type="text" name="productimage" /></td>
                            <td class="columnTitle_mustbe">货物描述</td>
                            <td class="tableContent"><input type="text" name="productdesc" /></td>
                        </tr>
                        <tr>
                            <td class="columnTitle_mustbe">数量</td>
                            <td class="tableContent"><input type="text" name="cnumber" /></td>
                        
                            <td class="columnTitle_mustbe">实际出货数量</td>
                            <td class="tableContent"><input type="text" name="outnumber" /></td>
                        </tr>



                        <tr>
                            <td class="columnTitle_mustbe">装率</td>
                            <td class="tableContent"><input type="text" name="loadingrate" /></td>
                            
                            <td class="columnTitle_mustbe">箱数</td>
                        <td class="tableContent"><input type="text" name="boxnum" /></td>
                        </tr>
                        <tr>
                                <td class="columnTitle_mustbe">包装单位</td>
                            <td class="tableContent"><input type="text" name="packingunit" /></td>
                            <td class="columnTitle_mustbe">单价</td>
                            <td class="tableContent"><input type="text" name="price" /></td>
                            
                        </tr>
                            <tr>
                                <td class="columnTitle_mustbe">总金额</td>
                            <td class="tableContent"><input type="text" name="amount" /></td>
                            <td class="columnTitle_mustbe">是否出货完毕</td>
                            <td class="tableContent"><input type="text" name="finished" /></td>
                            
                        </tr>
                            <tr>
                                <td class="columnTitle_mustbe">附件</td>
                            <td class="tableContent"><input type="text" name="exts" /></td>
                            <td class="columnTitle_mustbe">排序号</td>
                    <td class="tableContent"><input type="text" name="orderno" /></td>
                            
                        </tr>
                    </table>
                </div>
            </div>
    </form>
    
    
    
    <div class="eXtremeTable" >
<table id="ec_table" class="tableRegion" width="98%" >
    <thead>
    <tr>
        <td class="tableHeader"><input type="checkbox" name="selid" onclick="checkAll(‘id‘,this)"></td>
        <td class="tableHeader">厂家名称</td>
        <td class="tableHeader">货号</td>
        <td class="tableHeader">数量</td>
        <td class="tableHeader">实际出货数量</td>
        <td class="tableHeader">装率</td>
        <td class="tableHeader">箱数</td>
        <td class="tableHeader">包装单位</td>
        <td class="tableHeader">单价</td>
        <td class="tableHeader">总金额</td>
        <td class="tableHeader">操作</td>
    </tr>
    </thead>
    
    
    <tbody class="tableBody" >
    <!--var="o"的意思是给datalist取个别名,之后用起来就简单了-->
    <c:forEach items="${datalist}" var="o" varStatus="status">
    <tr class="odd" onmouseover="this.className=‘highlight‘" onmouseout="this.className=‘odd‘" >
    <!-- 做了一个选择框 -->
        <td><input type="checkbox" name="id" value="${o.id}"/></td>
        <td>${status.index+1}</td>
        
        <td>${o.factoryname}</td>
        <td>${o.productno}</td>
         <td>${o.cnumber}</td>
         <td>${o.outnumber}</td>
         <td>${o.loadingrate}</td>
         <td>${o.boxnum}</td>
         <td>${o.packingunit}</td>
         <td>${o.price}</td>
         <td>${o.amount}</td>
          <td>
          <a href="${ctx}/cargo/contractproduct/update.action?id=${o.id}">[修改]</a>
             <a href="${ctx}/cargo/contractproduct/deleteByid.action?id=${o.id}&contractId=${o.contractid}">[删除]</a>
          </td>
      
    </tr>
    </c:forEach>
    
    </tbody>
</table>
</div>
</body>
</html>

 

更新页面:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="../../base.jsp"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<!-- 设置 id为factoryname的input的值-->
<script type="text/javascript">
function setfactoryName(val)
{

var ere=document.getElementById("factoryname");
ere.value=val;


}

</script>
 <!--  <script type="text/javascript" src="../../js/datepicker/WdatePicker.js"></script> -->
</head>
<body>
    <form method="post">
    <input text="text" name="contractid" value="${contractId}">
    
        <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">
                        <tr>
                            <td class="columnTitle_mustbe">厂家名称:</td>
                            <td class="tableContent">
                            
                            <!-- <input type= name="factoryname" /> -->
                            <!-- this.selectedIndex当前选中的索引值 -->
                            <select  name="factoryid" onchange="setfactoryName(this.options[this.selectedIndex].text)">
                            <option value="">--请选择--</option>
                             <c:forEach items="${listfactory}" var="f">
                               <option value="${f.id}">${f.factoryName }</option>
                             </c:forEach>
                           </select>
                            <input  type="hidden" id="factoryname" name="factoryname">
                            </td>
                            
                            
                            
                            <td class="columnTitle_mustbe">货号</td>
                            <td class="tableContent"><input type="text" name="productno" value=${ obj.productno}/></td>
                        </tr>

                        <tr>
                            <td class="columnTitle_mustbe">货物照片</td>
                            <td class="tableContent"><input type="text" name="productimage" value=${ obj.productimage}/></td>
                            <td class="columnTitle_mustbe">货物描述</td>
                            <td class="tableContent">
                            <textarea name="productDesc" style="height:120px;">${ obj.productdesc}</textarea>
                            </td>
                        </tr>
                        <tr>
                            <td class="columnTitle_mustbe">数量</td>
                            <td class="tableContent"><input type="text" name="cnumber" value=${ obj.cnumber}/></td>
                            <td class="columnTitle_mustbe">实际出货数量</td>
                            <td class="tableContent"><input type="text" name="outnumber" value=${ obj.outnumber}/></td>
                        </tr>



                        <tr>
                            <td class="columnTitle_mustbe">装率</td>
                            <td class="tableContent"><input type="text" name="loadingrate" value=${ obj.loadingrate}/></td>
                            
                            <td class="columnTitle_mustbe">箱数</td>
                        <td class="tableContent"><input type="text" name="boxnum" value=${ obj.boxnum}/></td>
                        </tr>
                        <tr>
                                <td class="columnTitle_mustbe">包装单位</td>
                            <td class="tableContent"><input type="text" name="packingunit" value=${ obj.packingunit}/></td>
                            <td class="columnTitle_mustbe">单价</td>
                            <td class="tableContent"><input type="text" name="price" value=${ obj.price}/></td>
                            
                        </tr>
                            <tr>
                                <td class="columnTitle_mustbe">总金额</td>
                            <td class="tableContent"><input type="text" name="amount" value=${ obj.amount}/></td>
                            <td class="columnTitle_mustbe">是否出货完毕</td>
                            <td class="tableContent"><input type="text" name="finished" value=${ obj.finished} /></td>
                            
                        </tr>
                            <tr>
                                <td class="columnTitle_mustbe">附件</td>
                            <td class="tableContent"><input type="text" name="exts" value=${ obj.exts}/></td>
                            <td class="columnTitle_mustbe">排序号</td>
                    <td class="tableContent"><input type="text" name="orderno" value=${ obj.orderno}/></td>
                        </tr>
                    </table>
                </div>
            </div>
    </form>
    
    
    

</body>
</html>

 

 

 

运行一切OK.

 

011杰信-创建购销合同Excel报表系列-3-建立合同货物(修改,删除):合同货物表是购销合同表的子表

标签:

原文地址:http://www.cnblogs.com/shenxiaoquan/p/5897596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!