ssj项目-采购订单管理

该博客详细介绍了ssj项目中采购订单管理的实现过程,包括准备工作、添加查询条件和数据明细操作。首先创建实体类并配置关系,接着在前端页面展示,然后添加时间查询条件,并实现采购订单的查询组件。在后台编写查询方法,支持供应商和购买者的下拉选择。在保存数据时遇到问题并在JS中处理N-to-N响应。
摘要由CSDN通过智能技术生成

1.准备工作 创建 实体类 配置关系和 前端页面 展示

1.Purchasebill组合关系的一方

package cn.itsource.aisell.domain;

import com.fasterxml.jackson.annotation.JsonFormat;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * (Purchasebill)实体类
 *
 * @author jie
 * @since 2019-08-13 18:54:08
 */
@Entity
@Table(name="purchasebill")
public class Purchasebill extends BaseDomain {
   

    private Date vdate; // 交易时间 前台传过来
    private BigDecimal totalAmount; //订单总金额 后台计算
    private BigDecimal totalNum;// 总数量
    private Date inputtime = new Date(); //录入时间 后台生成
    private Date auditortime; //审核时间 
    private Integer status; //单据状态 0 未审核 -1 不通过 1 通过
    @ManyToOne(fetch = FetchType.LAZY,optional = false)
    @JoinColumn(name = "supplier_id")
    private Supplier supplier;// 多对一  供应商(需要选择) 可以为空

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "auditor_id")
    private Employee auditor; //审核人 录入可以为null

    @ManyToOne(fetch = FetchType.LAZY,optional = false)
    @JoinColumn(name = "inputuser_id")
    private Employee inputuser;//录入人 不能为null 当前登陆用户

    @ManyToOne(fetch = FetchType.LAZY,optional = false)
    @JoinColumn(name = "buyer_id")
    private Employee buyer; //采购员

    //明細  强级联  orphanRemoval 一方解除关系 去删除
    @OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY,mappedBy ="bill",orphanRemoval = true)
    private List<Purchasebillitem> items = new ArrayList<>();
	//格式化时间  最好写在 getset方法上  
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8")
    public Date getVdate() {
   
        return vdate;
    }
    @JsonFormat(pattern = "yyyy-MM-dd")
    public void setVdate(Date vdate) {
   
        this.vdate = vdate;
    }


2.purchasebillitem组合关系的多方


    private BigDecimal price; //价格  
    private BigDecimal num; //数量
    private BigDecimal amount; //产品小计 价格*数量
    private String descs; //描述
	//  非空 产品
    @ManyToOne(fetch = FetchType.LAZY,optional = false)
    @JoinColumn(name = "product_id")
    private Product product;

    @ManyToOne(fetch = FetchType.LAZY,optional = false)
    @JoinColumn(name = "bill_id")
    @JsonIgnore //  返回页面 不展示出来  生成json 的时候忽略这个属性
    private Purchasebill bill;

3.purchasebill.jsp

<table id="purchasebillGrid" class="easyui-datagrid" data-options="fit:true,fixed:true,fitColumns:true,toolbar:'#tb',singleSelect:true";
       url="/purchasebill/page"
       iconCls="icon-save"
       rownumbers="true" pagination="true">
    <thead>
    <tr>
        <th width="20"  field="vdate">交易时间</th>
        <th width="20"  field="supplier" data-options="formatter:formatObj">供应商</th>
        <th width="20"  field="buyer"  data-options="formatter:formatEmp">采购员</th>
        <th width="20"  field="totalNum">总数量</th>
        <th width="20"  field="totalAmount" >总金额</th>
        <th width="20"  field="status" data-options="formatter:formatStatus" >状态</th>
    </tr>
    </thead>
</table>

4.purchasebill.js

//表格数据格式化 formatObj 供应商转换
function formatObj(value){
   
    if(value){
   
        return value.name;
    }
}
//ormatEmp 采购员
function formatEmp(value){
   
    if(value){
   
        return value.username;
    }
}
// 状态转换  0 1 -1
function formatStatus(value){
   
    var data = {
   
        0:"<div style='color: green'>审核中</div>",
        1:"<div style='color: red'>审核通过</div>",
        "-1":"<div><s>审核未通过</s></div>"
    };
    return data[value];
}

2.添加 查询条件 主要是时间查询 首先添加查询组件

<div id="cc" class="easyui-calendar"></div>
<form id="searchForm" action="/purchasebill/download" method="post">
    日期 : <input name="beginDate" class="easyui-datebox" style="height:32px" sharedCalendar="#cc">
    - <input name="endDate" class="easyui-datebox" style="height:32px" sharedCalendar="#cc">

    状态 :<select class="easyui-combobox" name="status"
                data-options="panelHeight:'auto'"
     >
    <option value="">--请选择--</option>
    <option value="0">待审</option>
    <option value="-1">作废</option>
    <option value="1">已审</option>
</select>
    <a href="#" data-method="search"  class="easyui-linkbutton" iconCls="icon-search">查找</a>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值