曾经做过一个小功能 供应商申请记录 有新增的供应商申请记录和变更的供应商申请记录 都要进行审核 有保存和驳回 操作。
话不多说,上代码。
1-这是供应商申请记录的一个list 列表数据展示
/**
* @Title:供应商异常申请类Controller
* @Description:
* @Author:cenwei
* @Since:2018-05-22 17:57:22
* @Version:1.1.0
* @Copyright:Copyright (c) 浙江蘑菇加电子商务有限公司 2015 ~ 2016 版权所有
*/
@Controller
@RequestMapping("/assets/goods/supplier_apply")
public class SupplierApplyController extends BaseController {
private static Logger logger = Logger.getLogger(SupplierApplyController.class);
@Resource
private ISupplierApplyService supplierApplyService;
@Resource
private ISupplierService supplierService;
@Resource
private ISupplierBankService supplierBankService;
//列表
@RequestMapping("/list")
public String list(ModelMap model,String sessionId) {
model.addAttribute("sessionId", sessionId);
return "/goods/supplier_apply_list";
}
@ResponseBody
@RequestMapping("/ajaxList")
public String ajaxList(SupplierApply supplierApply, Query query, String sessionId) {
PagerModel<SupplierApply> pm = null;
try {
pm = this.supplierApplyService.getPagerModelByQuery(supplierApply, query);
} catch (Exception e) {
logger.error("SupplierApplyController-ajaxList:"+e);
e.printStackTrace();
}
return JsonUtils.toJson(pm);
}
2-申请单处理 确定操作
@ResponseBody
@RequestMapping("/pass")
public String Pass(String id,Supplier supplierVo,HttpServletRequest request ,String sessionId) {
SupplierApply supplierApply=null;
//新插入的供应商
Supplier newSupplier=null;
//原始存在的供应商
Supplier supplier =null;
SimpleReturnVo returnVo = new SimpleReturnVo(ERROR, "保存失败");
try {
User user = this.getLoginUser(sessionId);
if (null != user && StringUtils.isNotBlank(user.getUsername())) {
String userName=user.getUsername();
if (StringUtils.isNotBlank(id)) {
//新增的供应商对象
supplier = this.supplierService.getSupplierById(id);
newSupplier = this.supplierService.getSupplierById(id);
supplierApply = this.supplierApplyService.getSupplierApplyByspId(newSupplier.getId());
List<SupplierBank> newSupplierBanks = this.supplierBankService.getSupplierBanksByspId(id);
//如果是新增的申请单 要新插入有用的数据
if(SupplierApplyEnum.XZ.getType().equals(supplierApply.getApplyType())) {
//新生成uuid 供应商 插入数据库
newSupplier.setId(UUIDGenerator.generate());
// List<SupplierBank> bankList= new ArrayList<SupplierBank>();
for (SupplierBank supplierBank :newSupplierBanks){
supplierBank.setId(UUIDGenerator.generate());
supplierBank.setSupplierId(newSupplier.getId());
supplierBank.setUpdateTime(new Date());
supplierBank.setUpdator(userName);
// bankList.add(supplierBank);
}
this.supplierBankService.insertSupplierBankBatch(newSupplierBanks);
newSupplier.setIsReal(1);
newSupplier.setStatus(1);
supplierApply.setSupplierId(newSupplier.getId());
newSupplier.setCode(supplierVo.getCode());
supplier.setCode(supplierVo.getCode());
supplierApply.setRemark(supplierVo.getRemark());
newSupplier.setUpdateTime(new Date());
newSupplier.setUpdator(userName);
this.supplierService.updateSupplier(supplier);
this.supplierService.addSupplier(newSupplier);
//如果是变更的申请单 要改之前供应商数据 以及银行数据
}else{
//获得根据传过来的newid 得到新表单的对象
Supplier newsupplier = this.supplierService.getSupplierById(id);
//获得原始有效的供应商对象
supplier =this.supplierService.getSupplierById(supplierApply.getSupplierId());
//更新supplier里面的银行数据 根据supplierId 将原始的银行数据都删除 再重新添加新的银行数据 关联supplierId
//首先将原始供应商的对象的所有银行数据删除
this.supplierBankService.delSupplierBankBySupplierId(supplier.getId());
for (SupplierBank supplierBank :newSupplierBanks){
supplierBank.setId(UUIDGenerator.generate());
supplierBank.setSupplierId(supplier.getId());
supplierBank.setUpdateTime(new Date());
supplierBank.setUpdator(userName);
}
this.supplierBankService.insertSupplierBankBatch(newSupplierBanks);
supplier.setIsReal(1);
supplier.setName(newSupplier.getName());
supplier.setTaxNumber(newSupplier.getTaxNumber());
supplier.setUpdator(userName);
supplier.setUpdateTime(new Date());
// supplierApply.setSupplierId(supplier.getId());
supplier.setCode(supplierVo.getCode());
newsupplier.setCode(supplierVo.getCode());
supplierApply.setRemark(supplierVo.getRemark());
supplier.setUpdateTime(new Date());
supplier.setUpdator(userName);
this.supplierService.updateSupplier(newsupplier);
this.supplierService.updateSupplier(supplier);
}
supplierApply.setApplyStatus(SupplierApplyEnum.YTG.getType());
supplierApply.setUpdator(userName);
supplierApply.setUpdateTime(new Date());
this.supplierApplyService.updateSupplierApply(supplierApply);
returnVo = new SimpleReturnVo(SUCCESS, "保存成功");
}
}else{
returnVo = new SimpleReturnVo(ERROR, "用户信息获取失败,请重新登录");
}
}catch(Exception e){
logger.error("SupplierApplyController-pass:"+e);
e.printStackTrace();
}
return JsonUtils.toJson(returnVo);
}
3-申请单驳回操作
@ResponseBody
@RequestMapping("/reject")
public String reject( SupplierApply supplierApplyVo,String sessionId,HttpServletRequest request) {
SimpleReturnVo returnVo = new SimpleReturnVo(ERROR, "驳回失败");
try{
User user = this.getLoginUser(sessionId);
if (null != user && StringUtils.isNotBlank(user.getUsername())) {
String userName = user.getUsername();
if(supplierApplyVo!=null){
SupplierApply supplierApply =this.supplierApplyService.getSupplierApplyByspId(supplierApplyVo.getNewSupplierId());
supplierApply.setApplyStatus(SupplierApplyEnum.YBH.getType());
supplierApply.setFeedback(supplierApplyVo.getFeedback());
supplierApplyService.updateSupplierApply(supplierApply);
returnVo = new SimpleReturnVo(SUCCESS, "驳回成功");
}
}else{
returnVo = new SimpleReturnVo(ERROR, "用户信息获取失败,请重新登录");
}
} catch (Exception e) {
logger.error("SupplierApplyController-noPass:" + e);
e.printStackTrace();
}
return JsonUtils.toJson(returnVo);
}
4-点击申请记录表单的 “处理”操作的 一个表单(或是新增或是变更的新旧表单)展示
@RequestMapping("/input")
public String input(ModelMap model,String id,String sessionId) {
try {
if(StringUtils.isNotBlank(id)){
SupplierApply supplierApply=this.supplierApplyService.getSupplierApplyById(id);
if (SupplierApplyEnum.BG.getType().equals(supplierApply.getApplyType())) {
Supplier oldSupplier = this.supplierService.getSupplierById(supplierApply.getOldSupplierId());
Supplier newSupplier = this.supplierService.getSupplierById(supplierApply.getNewSupplierId());
model.addAttribute("oldSupplier", oldSupplier);
model.addAttribute("newSupplier", newSupplier);
model.addAttribute("sessionId", sessionId);
model.addAttribute("SupplierApply", supplierApply);
return "/goods/supplier_apply_inputss";
}else {
//属于新增类型的申请单 只有一条供应商数据
Supplier supplier = this.supplierService.getSupplierById(supplierApply.getNewSupplierId());
model.addAttribute("supplier", supplier);
model.addAttribute("sessionId", sessionId);
model.addAttribute("SupplierApply", supplierApply);
return "/goods/supplier_apply_input";
}
}
} catch (Exception e) {
logger.error("SupplierApplyController-input:"+e);
e.printStackTrace();
}
return null;
}
下面上一些前段页面的代码
1-这是供应商申请记录表的页面
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>供应商异常申请类管理</title>
<#include "/share/include.ftl" />
<#import "/share/toolbar_common.ftl" as tolbcom/>
<#assign name_space='supplier_apply'>
<script type="text/javascript" language="javascript" src="${BasePath}/resources/js/goods/supplier_apply.js"></script>
<script>
var _jsSessionId='${sessionId!''}'; //sessionId
/**
* 初始化操作按钮
* @param value
* @param row
* @param index
* @returns {String}
*/
function optsFormatter(value, row, index) {
var returnMsg="";
var id = row.id;
var status = row.applyStatus;
console.info(status);
if(status=="SQZ"){
var update=<#if checkPrivileges(sessionId,systemSn,name_space,2) == true>'<a href="javascript:void(0)" class="easyui-linkbutton" style="color: blue;" iconCls="icon-del" plain="true" onclick="supplier_apply.edit(\''
+ id + '\')">处理</a> '<#else>''</#if>;
var select=<#if checkPrivileges(sessionId,systemSn,name_space,2) == true>'<a href="javascript:void(0)" class="easyui-linkbutton" style="color: blue;" iconCls="icon-del" plain="true" onclick="supplier_apply.select(\''
+ id + '\')">查看</a> '<#else>''</#if>;
returnMsg = update + select;
} else{
var select=<#if checkPrivileges(sessionId,systemSn,name_space,2) == true>'          <a href="javascript:void(0)" class="easyui-linkbutton" style="color: blue;" iconCls="icon-del" plain="true" onclick="supplier_apply.select(\''
+ id + '\')">查看</a> '<#else>''</#if>;
returnMsg = select;
}
var delFlag = row.delFlag;
if(delFlag==0){
returnMsg="";
}
return returnMsg;
}
function parsePage() {
supplier_apply.init();
};
</script>
</head>
<body class="easyui-layout">
<div data-options="region:'north',border:false">
<div id="toolbar" class="easyui-toolbar">
<#if checkPrivileges(sessionId,systemSn,name_space,0) == true>
<a href="javascript:void(0)" iconCls="icon-refresh" plain="true" id="jsRefresh">刷新</a>
<a>-</a>
</#if>
<#if checkPrivileges(sessionId,systemSn,name_space,2) == true>
<a href="javascript:void(0)" iconCls="icon-edit" plain="true" id="jsEdit">处理</a>
<a>-</a>
</#if>
<#--<#if checkPrivileges(sessionId,systemSn,name_space,3) == true>
<a href="javascript:void(0)" iconCls="icon-del" plain="true" id="jsDel">删除</a>
<a>-</a>
</#if>-->
</div>
<#if checkPrivileges(sessionId,systemSn,name_space,1) == true>
<div class="search-div">
<form name="searchForm" id="searchForm" action="" method="post" onsubmit="return false;">
<table class="search-tb" >
<col width="100" />
<col />
<col width="100" />
<col />
<col width="100" />
<col />
<tbody>
<tr>
<th>供应商名称 :</th>
<td>
<input class="ipt jsClearValue" name="nameTmp" style="width: 150px;" />
</td>
<th>供应商编码 :</th>
<td>
<input class="ipt jsClearValue" name="codeTmp" style="width: 150px;" />
</td>
<th>审批状态:</th>
<td>
<select id="cc" class="easyui-combobox" name="applyStatus" style="width: 100px;">
<option value="">全部</option>
<option value="SQZ">申请中</option>
<option value="YTG">已通过</option>
<option value="YBH">已驳回</option>
<option value="WTJ">未提交</option>
</select>
</td>
<td>
<a iconCls="icon-search" class="easyui-linkbutton ml10" id="SearchBtn" data-options="iconCls:'icon-search'">查询</a>
</td>
</tr>
</tbody>
</table>
</form>
</div>
</#if>
</div>
<!--列表start-->
<div data-options="region:'center',border:false">
<table id="subDg" class="easyui-datagrid" data-options="collapsible : true,rownumbers:true,pagination : true,pageSize : 20,pageList : [ 20, 50,100 ],
url :'${BasePath}/assets/goods/supplier_apply/ajaxList.do?sessionId=${sessionId!''}', method : 'post',singleSelect : false">
<thead>
<tr>
<th data-options="field:'id',checkbox:true"></th>
<th data-options="field:'opt',width : 150,align:'left',formatter : optsFormatter">操作</th>
<th data-options="field:'applyNo',width : 150,align:'left'">申请单号</th>
<th data-options="field:'applyType',width : 150,align:'left',formatter:supplier_apply.applyTypeFormatter">申请类型</th>
<th data-options="field:'applyStatus',width : 150,align:'left',formatter : supplier_apply.applyStatusFormatter,styler:supplier_apply.applyStatusStyler">审批状态</th>
<th data-options="field:'applyManName',width : 150,align:'left'">申请人</th>
<th data-options="field:'applyDept',width : 150,align:'left'">所属部门</th>
<th data-options="field:'code',width : 150,align:'left'">供应商编码</th>
<th data-options="field:'name',width : 300,align:'left'">供应商名称</th>
<th data-options="field:'taxNumber',width : 150,align:'left'">纳税人识别号</th>
<th data-options="field:'status',width : 100,align:'left',formatter : supplier_apply.statusFormatter,styler : supplier_apply.statusStyler">状态</th>
<th data-options="field:'applyDate',width : 200,align:'left'">申请日期</th>
<th data-options="field:'remark',width : 150,align:'left'">备注</th>
<th data-options="field:'createTime',width : 200,align:'left'">创建时间</th>
<th data-options="field:'creator',width : 150,align:'left'">创建人</th>
<th data-options="field:'updateTime',width : 200,align:'left'">修改时间</th>
<th data-options="field:'updator',width : 150,align:'left'">修改人</th>
</tr>
</thead>
</table>
</div>
<!--列表end-->
</body>
</html>
本文介绍了一个供应商申请审核系统的实现细节,包括申请记录的列表展示、审核通过与驳回操作及前端页面设计。系统实现了对供应商申请记录的管理,支持新增和变更申请的处理。

被折叠的 条评论
为什么被折叠?



