Spring +SpringMVC+SpringDataJpa之采购订单页面展示

一、采购订单与各个表之间关系的分析

在这里插入图片描述
分析表格思想:字段的意思 , 字段类型 ,哪些字段不能为空 ,字段的出处

二、组合关系映射配置要求

一方(主表):

@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = “inputUser_id”)
private Employee inputUser;//录入人(当前登录人)
其他多对一相同配置

@OneToMany(cascade = CascadeType.ALL, mappedBy = “bill”, fetch = FetchType.LAZY, orphanRemoval = true)
private List items = new ArrayList();
cascade = CascadeType.ALL级联操作最全
mappedBy = "bill"一方放弃管理多方,多方的外键字段bill_id,一方不管
orphanRemoval = true如果在一方解除了和多方的关系,一方是可以删除掉多方
optional = false) 表示不能为空

页面管理:一方和多方同时管理(crud 时)

多方(从表)billitem:bill_id配置为非空

@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = “bill_id”)
@JsonIgnore//生成json的时候忽略该属性
private Purchasebill bill;// 组合关系,非空

时间格式处理

前台获得数据,显示需要的格式
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone = “GMT+8”)
public Date getVdate() {
return vdate;
}
数据返回后台的时间格式
@DateTimeFormat(pattern = “yyyy-MM-dd”)
public void setVdate(Date vdate) {
this.vdate = vdate;
}

三、前台页面处理

easyui的引入,数据表格参数与对象参数对应
日期选择:
class="easyui-datebox"

单元格内容处理

获取对象的名称

function formatObj(data) {
    if(data){
        return data.name;
    }
}

方法一样,名称不同

function formatEmp(data) {
    if(data){
        return data.username;
    }
}

前台展示状态选择

function formatStatus(action) {
    var data = {
        0:"<div style='color:red;'>待审</div>",
        1:"<div style='color: green'>已审</div>",
        "-1":"<div><s>作废</s></div>"
    };
    //属性
    return data[action];
}

高级查询-日期范围

不能根据出日期数据查询的原因

前端的日期时分秒按照0:00:00来处理,如果不对日期+1处理,结束时间是不能成功获取查询的值.
如下单时间是09-30 15:00:00,而endDate输入09-30,后台获取到09-30 0:00:00
加了一天之后进行查询,不能写<=,只能写<

后台对日期的处理,在条件对象中处理

//如果日期不为空,结束日期加1
Date tempDate = null;
if(endDate!=null){
tempDate = DateUtils.addDays(endDate, 1);
}
后台对下拉列表的处理
根据部门名字查询采购人员
@Query(“select o from Employee o where o.department.name=?1”)
查询所有的供应商
supplierService.findAll();

保存时,常见问题
在这里插入图片描述
原因:后台定义了非空字段,而前台保存时返回的参数中并没有该字段
处理:在controller处理时,给个默认值
方式一:
用shiro会话管理,这个必须写了,UserContext中的set,get方法才能用
//当前登录用户为录入人
Employee loginUser = UserContext.getUser();
purchasebill.setInputUser(loginUser);
方式二:
重写save方法

public void save(Purchasebill purchasebill) {
    //当前登录用户为录入人
    Employee loginUser = UserContext.getUser();
    purchasebill.setInputUser(loginUser);
    super.save(purchasebill);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值