修改商品类别展示方式为树形结构

This commit is contained in:
cjl
2019-02-20 11:46:51 +08:00
parent 9fff3f2aac
commit 6bbc0aefb4
15 changed files with 2369 additions and 1247 deletions

View File

@@ -15,65 +15,53 @@
<script type="text/javascript" src="/js/common/common.js"></script> <script type="text/javascript" src="/js/common/common.js"></script>
</head> </head>
<body> <body>
<!-- 查询 -->
<div id="searchPanel" class="easyui-panel" style="padding:10px;" title="查询窗口" iconCls="icon-search" collapsible="true"
closable="false">
<table id="searchTable">
<tr>
<td>名称:</td>
<td>
<input name="searchName" id="searchName" style="width:100px;"/>
</td>
<td>&nbsp;</td>
<td>类别:</td>
<td>
<select name="searchParentId_f" id="searchParentId_f" style="width:100px;"></select>
<select name="searchParentId_s" id="searchParentId_s" style="width:100px;"></select>
<select name="searchParentId_t" id="searchParentId_t" style="width:100px;"></select>
</td>
<td>&nbsp;</td>
<td>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" id="searchBtn">查询</a>&nbsp;&nbsp;
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-redo" id="searchResetBtn">重置</a>
</td>
</tr>
</table>
</div>
<!-- 数据显示table --> <!-- 数据显示table -->
<div id="tablePanel" class="easyui-panel" style="padding:1px;top:300px;" title="商品类别列表" iconCls="icon-list" <div id="tablePanel" class="easyui-panel" style="padding:1px;top:300px;" title="商品类别列表" iconCls="icon-list"
collapsible="true" closable="false"> collapsible="true" closable="false">
<table id="tableData" style="top:300px;border-bottom-color:#FFFFFF"></table> <table id="tableData" style="top:300px;border-bottom-color:#FFFFFF">
</table>
</div> </div>
<div id="materialCategoryDlg" class="easyui-dialog" style="width:380px;padding:10px 20px" <div id="materialCategoryDlg" class="easyui-dialog" style="width:380px;padding:10px 20px"
closed="true" buttons="#dlg-buttons" modal="true" cache="false" collapsible="false" closable="true"> closed="true" buttons="#dlg-buttons" modal="true" cache="false" collapsible="false" closable="true">
<form id="materialCategoryFM" method="post" novalidate> <form id="materialCategoryFM" method="post" novalidate>
<table> <table>
<tr>
<td>上级目录</td>
<td style="padding:5px">
<input name="parentName" id="parentName" style="width: 200px;height: 20px" readonly="readonly"/>
<a href="javascript:void(0)" class="l-btn l-btn-plain" group="" id="lookForSelectMaterialCategory">
<span class="l-btn-left"><span class="l-btn-text icon-search l-btn-icon-left"></span></span></a>
<input name="parentid" id="parentid" type="hidden"/>
</td>
</tr>
<tr> <tr>
<td>名称</td> <td>名称</td>
<td style="padding:5px"> <td style="padding:5px">
<input name="Name" id="Name" class="easyui-validatebox" <input name="Name" id="Name" class="easyui-validatebox"
data-options="required:true,validType:'length[2,30]'" style="width: 100px;height: 20px"/> data-options="required:true,validType:'length[2,30]'" style="width: 200px;height: 20px"/>
<input name="id" id="id" type="hidden"/>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>层次</td> <td>编号</td>
<td style="padding:5px"> <td style="padding:5px">
<select name="CategoryLevel" id="CategoryLevel" style="width:100px;"> <input name="serialNo" id="serialNo" style="width: 200px;height: 20px"/>
<option value="1">一级分类</option>
<option value="2">二级分类</option>
<option value="3">三级分类</option>
</select>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>上级</td> <td>序号</td>
<td style="padding:5px"> <td style="padding:5px">
<select name="ParentId_f" id="ParentId_f" style="width:100px;height: 20px"></select> <input name="sort" id="sort" style="width: 200px;height: 20px"/>
<select name="ParentId_s" id="ParentId_s" style="width:100px;height: 20px"></select>
</td> </td>
</tr> </tr>
<tr>
<td>备注</td>
<td style="padding:5px">
<textarea name="remark" id="remark" placeholder="暂无备注信息"
style="width: 200px; height:40px;"></textarea>
</td>
</tr>
</table> </table>
</form> </form>
</div> </div>
@@ -82,169 +70,18 @@
<a href="javascript:void(0)" id="cancelMaterialCategory" class="easyui-linkbutton" iconCls="icon-cancel" <a href="javascript:void(0)" id="cancelMaterialCategory" class="easyui-linkbutton" iconCls="icon-cancel"
onclick="javascript:$('#materialCategoryDlg').dialog('close')">取消</a> onclick="javascript:$('#materialCategoryDlg').dialog('close')">取消</a>
</div> </div>
<div id="forSelectMaterialCategoryDlg" class="easyui-dialog" style="width:380px;padding:10px 20px"
closed="true" modal="true" cache="false" collapsible="false" closable="true">
</div>
<script type="text/javascript"> <script type="text/javascript">
var materialCategoryList = null; var url;
var materialCategoryID = null;
var parentid_search = null;
var lei = null;
//初始化界面 //初始化界面
$(function () { $(function () {
var treeHeight=webH-35;
//初始化系统基础信息 //初始化系统基础信息
initSystemData(1);
initSelectInfo(1);
initTableData();
ininPager();
initForm();
});
//初始化系统基础信息
function initSystemData(parentid_search) {
$.ajax({
type: "get",
url: "/materialCategory/getAllList",
data: ({
parentId: parentid_search
}),
//设置为同步
async: false,
dataType: "json",
success: function (res) {
if(res && res.code === 200){
materialCategoryList = res.data;
} else {
$.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error');
return;
}
}
});
}
//初始化页面选项卡
function initSelectInfo(lei) {
var options = "";
if (materialCategoryList != null) {
options = "";
for (var i = 0; i < materialCategoryList.length; i++) {
var materialCategory = materialCategoryList[i];
if (0 == i) {
materialCategoryID = materialCategory.id;
}
options += '<option value="' + materialCategory.id + '">' + materialCategory.name + '</option>';
}
//$("#ParentId").empty().append(options);
if (lei == 1) {
$("#searchParentId_f").empty().append('<option value="">全部</option>').append(options);
}
else if (lei == 2) {
$("#searchParentId_s").empty().append('<option value="">全部</option>').append(options);
}
else if (lei == 3) {
$("#searchParentId_t").empty().append('<option value="">全部</option>').append(options);
}
else if (lei == 11) {
$("#ParentId_f").empty().append('<option value="">全部</option>').append(options);
}
else if (lei == 12) {
$("#ParentId_s").empty().append('<option value="">全部</option>').append(options);
}
}
}
$("#searchParentId_f").change(
function () {
var parentid_search = $("#searchParentId_f").val();
if (parentid_search != '') {
initSystemData(parentid_search);
initSelectInfo(2);
}
}
);
$("#searchParentId_s").change(
function () {
var parentid_search = $("#searchParentId_s").val();
if (parentid_search != '') {
initSystemData(parentid_search);
initSelectInfo(3);
}
}
);
$("#CategoryLevel").change(
function () {
var CategoryLevel = $("#CategoryLevel").val();
if (CategoryLevel == 1) {
$("#ParentId_f").empty();
$("#ParentId_s").empty();
}
else if (CategoryLevel == 2) {
initSystemData(1);
initSelectInfo(11);
$("#ParentId_s").enabled = false;
}
else if (CategoryLevel == 3) {
initSystemData(1);
initSelectInfo(11);
}
}
);
$("#ParentId_f").change(
function () {
var ParentId_f = $("#ParentId_f").val();
initSystemData(ParentId_f);
initSelectInfo(12);
}
);
//防止表单提交重复
function initForm() {
$('#materialCategoryFM').form({
onSubmit: function () {
return false;
}
});
}
//初始化表格数据
function initTableData() {
$('#tableData').datagrid({ $('#tableData').datagrid({
//title:'商品类别列表', height: treeHeight,
//iconCls:'icon-save',
//width:700,
height: heightInfo,
nowrap: false,
rownumbers: false,
//动画效果
animate: false,
//选中单行
singleSelect: true,
collapsible: false,
selectOnCheck: false,
//fitColumns:true,
//单击行是否选中
//checkOnSelect : false,
pagination: true,
//交替出现背景
striped: true,
//loadFilter: pagerFilter,
pageSize: initPageSize,
pageList: initPageNum,
columns: [[
{field: 'id', width: 35, align: "center", checkbox: true},
{title: '名称', field: 'name', width: 250},
{
title: '操作', field: 'op', align: "center", width: 130, formatter: function (value, rec) {
var str = '';
var rowInfo = rec.id + 'AaBb' + rec.parentId + 'AaBb' + rec.categoryLevel + 'AaBb' + rec.name;
str += '<img src="/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editMaterialCategory(\'' + rowInfo + '\');"/>&nbsp;<a onclick="editMaterialCategory(\'' + rowInfo + '\');" style="text-decoration:none;color:black;" href="javascript:void(0)">编辑</a>&nbsp;&nbsp;';
str += '<img src="/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteMaterialCategory(' + rec.id + ');"/>&nbsp;<a onclick="deleteMaterialCategory(' + rec.id + ');" style="text-decoration:none;color:black;" href="javascript:void(0)">删除</a>&nbsp;&nbsp;';
return str;
}
}
]],
toolbar: [ toolbar: [
{ {
id: 'addMaterialCategory', id: 'addMaterialCategory',
@@ -264,100 +101,91 @@
} }
} }
], ],
onLoadError: function () { });
$.messager.alert('页面加载提示', '页面加载异常,请稍后再试!', 'error'); $('#tableData').prev('.datagrid-view2').find(".datagrid-body").append("<ul id='tt'><ul>");
$('#tt').tree({
url: '/materialCategory/getMaterialCategoryTree',
animate: true,
checkbox: true,
onDblClick: function(node){
//双击修改
editMaterialCategory(node);
}
});
});
function addMaterialCategory() {
$('#materialCategoryFM').form('clear');
$('#materialCategoryDlg').dialog('open').dialog('setTitle', '<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/>&nbsp;增加商品类别信息');
$(".window-mask").css({width: webW, height: webH});
$("#Name").val("").focus();
$("#parentName").val("");
$("#parentid").val("");
$("#serialNo").val("");
$("#sort").val("");
$("#remark").val("");
$("#id").val("");
url = '/materialCategory/addMaterialCategory';
}
function editMaterialCategory(node) {
var id=node.id;
$.ajax({
type: "post",
url: '/materialCategory/findById',
dataType: "json",
data: ({
id: id
}),
success: function(res) {
if(res) {
if(res.code!=200){
$.messager.alert('提示', res.msg, 'error');
return;
}
$('#materialCategoryFM').form('clear');
$('#materialCategoryDlg').dialog('open').dialog('setTitle', '<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/>&nbsp;修改商品类别信息');
$(".window-mask").css({width: webW, height: webH});
$("#Name").val(res.data.name).focus();
$("#parentName").val(res.data.parentName);
$("#parentid").val(res.data.parentId);
$("#serialNo").val(res.data.serialNo);
$("#sort").val(res.data.sort);
$("#remark").val(res.data.remark);
$("#id").val(res.data.id);
url = '/materialCategory/editMaterialCategory';
}
},
//此处添加错误处理
error: function () {
$.messager.alert('提示', '修改商品类别信息异常,请稍后再试!', 'error');
return; return;
} }
}); });
showMaterialCategoryDetails(1, initPageSize);
}
//初始化键盘enter事件
$(document).keydown(function (event) {
//兼容 IE和firefox 事件
var e = window.event || event;
var k = e.keyCode || e.which || e.charCode;
//兼容 IE,firefox 兼容
var obj = e.srcElement ? e.srcElement : e.target;
//绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
if (k == "13" && (obj.id == "CategoryLevel" || obj.id == "Name")) {
$("#saveMaterialCategory").click();
}
//搜索按钮添加快捷键
if (k == "13" && (obj.id == "searchParentId" || (obj.id == "searchName"))) {
$("#searchBtn").click();
}
});
//分页信息处理
function ininPager() {
try {
var opts = $("#tableData").datagrid('options');
var pager = $("#tableData").datagrid('getPager');
pager.pagination({
onSelectPage: function (pageNum, pageSize) {
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh', {
pageNumber: pageNum,
pageSize: pageSize
});
showMaterialCategoryDetails(pageNum, pageSize);
}
});
}
catch (e) {
$.messager.alert('异常处理提示', "分页信息异常 : " + e.name + ": " + e.message, 'error');
}
}
//删除商品类别信息
function deleteMaterialCategory(materialCategoryID) {
$.messager.confirm('删除确认', '确定要删除此商品类别信息吗?', function (r) {
if (r) {
$.ajax({
type: "post",
url: "/materialCategory/" + materialCategoryID + "/delete",
dataType: "json",
success: function (res) {
if(res && res.code == 200) {
$("#searchBtn").click();
} else {
$.messager.alert('删除提示', '删除商品类别信息失败,请稍后再试!', 'error');
}
},
//此处添加错误处理
error: function () {
$.messager.alert('删除提示', '删除商品类别信息异常,请稍后再试!', 'error');
return;
}
});
}
});
} }
//批量删除商品类别 //批量删除商品类别
function batDeleteMaterialCategory() { function batDeleteMaterialCategory() {
var row = $('#tableData').datagrid('getChecked'); var nodes = $('#tt').tree('getChecked');
if (row.length == 0) { if (nodes.length == 0) {
$.messager.alert('删除提示', '没有记录被选中!', 'info'); $.messager.alert('删除提示', '没有记录被选中!', 'info');
return; return;
} }
if (row.length > 0) { if (nodes.length > 0) {
$.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条商品类别信息吗?', function (r) { $.messager.confirm('删除确认', '确定要删除选中的' + nodes.length + '条商品类别信息吗?', function (r) {
if (r) { if (r) {
var ids = ""; var ids = "";
for (var i = 0; i < row.length; i++) { for (var i = 0; i < nodes.length; i++) {
if (i == row.length - 1) { if (i == nodes.length - 1) {
ids += row[i].id; ids += nodes[i].id;
break; break;
} }
//alert(row[i].id); //alert(row[i].id);
ids += row[i].id + ","; ids += nodes[i].id + ",";
} }
$.ajax({ $.ajax({
type: "post", type: "post",
url: "/materialCategory/batchDelete", url: "/materialCategory/batchDeleteMaterialCategory",
dataType: "json", dataType: "json",
async: false, async: false,
data: ({ data: ({
@@ -365,8 +193,7 @@
}), }),
success: function (res) { success: function (res) {
if(res && res.code === 200) { if(res && res.code === 200) {
$("#searchBtn").click(); $('#tt').tree('reload');
$(":checkbox").attr("checked", false);
} else { } else {
$.messager.alert('删除提示', '删除商品类别信息失败,请稍后再试!', 'error'); $.messager.alert('删除提示', '删除商品类别信息失败,请稍后再试!', 'error');
} }
@@ -382,49 +209,29 @@
} }
} }
//增加
var url;
var materialCategoryID = 0;
//保存编辑前的名称
var orgMaterialCategory = "";
function addMaterialCategory() {
$('#materialCategoryFM').form('clear');
$('#materialCategoryDlg').dialog('open').dialog('setTitle', '<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/>&nbsp;增加商品类别信息');
$(".window-mask").css({width: webW, height: webH});
$("#Name").val("").focus();
orgMaterialCategory = "";
materialCategoryID = 0;
url = '/materialCategory/add';
}
//保存信息 //保存信息
$("#saveMaterialCategory").off("click").on("click", function () { $("#saveMaterialCategory").off("click").on("click", function () {
var parent = 1; if (!$("#Name").val()) {
if ($("#ParentId_f").val() != "" && $("#ParentId_f").val() != null) { $.messager.alert('提示', '商品类别名称不能为空!', 'warning');
parent = $("#ParentId_f").val(); return;
}
if ($("#ParentId_s").val() != "" && $("#ParentId_s").val() != null) {
parent = $("#ParentId_s").val();
} }
var objInfo = $("#materialCategoryFM").serializeObject();
$.ajax({ $.ajax({
type: "post", type: "post",
url: url, url: url,
dataType: "json", dataType: "json",
data: ({ data: ({
info: JSON.stringify({ info: JSON.stringify(objInfo)
ParentId: parent,
CategoryLevel: $("#CategoryLevel").val(),
Name: $.trim($("#Name").val())
})
}), }),
success: function(res) { success: function(res) {
if(res && res.code === 200) { if(res) {
if(res.code!=200){
$.messager.alert('提示', res.msg, 'error');
return;
}
$('#materialCategoryDlg').dialog('close'); $('#materialCategoryDlg').dialog('close');
//加载完以后重新初始化 //加载完以后重新初始化
var opts = $("#tableData").datagrid('options'); $('#tt').tree('reload');
showMaterialCategoryDetails(opts.pageNumber, opts.pageSize);
} }
}, },
//此处添加错误处理 //此处添加错误处理
@@ -434,88 +241,26 @@
} }
}); });
}); });
$('#btnSetFunctions').click(function () {
//编辑信息 var currentRow = $("#tableData").datagrid("getSelected");
function editMaterialCategory(materialCategoryTotalInfo) { if (currentRow == null) {
var materialCategoryInfo = materialCategoryTotalInfo.split("AaBb"); $.messager.alert('提示',"请选择一条数据再操作!",'warning');
return false;
$("#ParentId").focus().val(materialCategoryInfo[1]);
$("#CategoryLevel").val(materialCategoryInfo[2]);
$("#Name").val(materialCategoryInfo[3]);
//orgMaterialCategory = materialCategoryInfo[1];
$('#materialCategoryDlg').dialog('open').dialog('setTitle', '<img src="/js/easyui-1.3.5/themes/icons/pencil.png"/>&nbsp;编辑商品类别信息');
$(".window-mask").css({width: webW, height: webH});
materialCategoryID = materialCategoryInfo[0];
//焦点在名称输入框==定焦在输入文字后面
$("#Name").val("").focus().val(materialCategoryInfo[3]);
url = '/materialCategory/update?id=' + materialCategoryInfo[0];
}
//搜索处理
$("#searchBtn").unbind().bind({
click: function () {
showMaterialCategoryDetails(1, initPageSize);
var opts = $("#tableData").datagrid('options');
var pager = $("#tableData").datagrid('getPager');
opts.pageNumber = 1;
opts.pageSize = initPageSize;
pager.pagination('refresh', {
pageNumber: 1,
pageSize: initPageSize
});
} }
this.href = "/pages/manage/roleFunctions.html?id=" + currentRow.id;
}); });
//查询父级商品类别
$("#lookForSelectMaterialCategory").on("click", function () {
function showMaterialCategoryDetails(pageNo, pageSize) { $('#forSelectMaterialCategoryDlg').dialog({
var parent = 1; title: '商品类别选择',
if ($("#searchParentId_f").val() != "" && $("#searchParentId_f").val() != null) { width: webW/2,
parent = $("#searchParentId_f").val(); height: webH/2,
} closed: false,
if ($("#searchParentId_s").val() != "" && $("#searchParentId_s").val() != null) { cache: false,
parent = $("#searchParentId_s").val(); href: '/pages/materials/materialcategory_forselect.html',
} modal: true,
if ($("#searchParentId_t").val() != "" && $("#searchParentId_t").val() != null) { resizable:true
parent = $("#searchParentId_t").val();
}
$.ajax({
type: "get",
url: "/materialCategory/list",
dataType: "json",
data: ({
search: JSON.stringify({
name: $.trim($("#searchName").val()),
parentId: parent,
}),
currentPage: pageNo,
pageSize: pageSize
}),
success: function (res) {
if(res && res.code === 200){
if(res.data && res.data.page) {
$("#tableData").datagrid('loadData', res.data.page);
}
}
},
//此处添加错误处理
error: function () {
$.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error');
return;
}
}); });
}
//重置按钮
$("#searchResetBtn").unbind().bind({
click: function () {
$("#searchParentId_f").val("");
$("#searchParentId_s").val("");
$("#searchParentId_t").val("");
//加载完以后重新初始化
$("#searchBtn").click();
}
}); });
</script> </script>

View File

@@ -0,0 +1,45 @@
<!DOCTYPE html>
<html>
<head>
<title>商品类别选择</title>
<meta charset="utf-8">
<!-- 指定以IE8的方式来渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/>
<link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon"/>
<script type="text/javascript" src="/js/jquery-1.8.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="/js/easyui-1.3.5/themes/default/easyui.css"/>
<link rel="stylesheet" type="text/css" href="/js/easyui-1.3.5/themes/icon.css"/>
<link type="text/css" rel="stylesheet" href="/css/common.css"/>
<script type="text/javascript" src="/js/easyui-1.3.5/jquery.easyui.min.js"></script>
<script type="text/javascript" src="/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="/js/common/common.js"></script>
</head>
<body>
<!-- 数据显示table -->
<div>
<ul id="ttForSelect"></ul>
</div>
<script type="text/javascript">
$(function () {
$('#ttForSelect').tree({
url: '/materialCategory/getMaterialCategoryTree',
animate: true,
onDblClick: function (node) {
//双击修改
forSelectMaterialCategory(node);
}
});
function forSelectMaterialCategory(node) {
console.log(node);
$("#parentName").val(node.text);
$("#parentid").val(node.id);
$('#forSelectMaterialCategoryDlg').dialog('close');
}
});
</script>
</body>
</html>

View File

@@ -5291,3 +5291,51 @@ end;
// //
DELIMITER ; DELIMITER ;
-- ----------------------------
-- 时间2019年2月18日
-- version1.0.3
-- 此次更新修改产品类型表jsh_materialcategory添加一些字段
-- 特别提醒之后的sql都是在之前基础上迭代可以对已存在的系统进行数据保留更新
-- ----------------------------
-- ----------------------------
-- 产品类型表添加字段sort显示顺序
-- ----------------------------
alter table jsh_materialcategory add sort varchar(10) DEFAULT null COMMENT '显示顺序';
-- ----------------------------
-- 产品类型表添加字段status状态0系统默认1启用2删除
-- ----------------------------
alter table jsh_materialcategory add status varchar(1) DEFAULT '0' COMMENT '状态0系统默认1启用2删除';
-- ----------------------------
-- 产品类型表添加字段serial_no编号
-- ----------------------------
alter table jsh_materialcategory add serial_no varchar(100) DEFAULT null COMMENT '编号';
-- ----------------------------
-- 产品类型表添加字段remark备注
-- ----------------------------
alter table jsh_materialcategory add remark varchar(1024) DEFAULT null COMMENT '备注';
-- ----------------------------
-- 产品类型表添加字段create_time创建时间
-- ----------------------------
alter table jsh_materialcategory add create_time datetime DEFAULT null COMMENT '创建时间';
-- ----------------------------
-- 产品类型表添加字段creator创建人
-- ----------------------------
alter table jsh_materialcategory add creator bigint(20) DEFAULT null COMMENT '创建人';
-- ----------------------------
-- 产品类型表添加字段update_time更新时间
-- ----------------------------
alter table jsh_materialcategory add update_time datetime DEFAULT null COMMENT '更新时间';
-- ----------------------------
-- 产品类型表添加字段updater更新人
-- ----------------------------
alter table jsh_materialcategory add updater bigint(20) DEFAULT null COMMENT '更新人';
-- ----------------------------
-- 去掉jsh_materialcategory外键
-- ----------------------------
ALTER TABLE jsh_materialcategory DROP FOREIGN KEY FK3EE7F725237A77D8;
-- ----------------------------
-- 修改根目录父节点id为-1
-- ----------------------------
update jsh_materialcategory set ParentId='-1' where id='1'

View File

@@ -70,6 +70,19 @@ public class BusinessConstants {
public static final String SEQ_TO_STRING_LESS_INSERT = "0"; public static final String SEQ_TO_STRING_LESS_INSERT = "0";
//单据编号 //单据编号
public static final String DEPOT_NUMBER_SEQ = "depot_number_seq"; public static final String DEPOT_NUMBER_SEQ = "depot_number_seq";
/**
* 商品类别根目录id
* */
public static final Long MATERIAL_CATEGORY_ROOT_ID = 1L;
/**
* 商品类别状态
* 0系统默认1启用2删除
* */
public static final String MATERIAL_CATEGORY_STATUS_DEFAULT = "0";
public static final String MATERIAL_CATEGORY_STATUS_ENABLE = "1";
public static final String MATERIAL_CATEGORY_STATUS_DELETE = "2";

View File

@@ -59,6 +59,19 @@ public class ExceptionConstants {
//商品库存不足 //商品库存不足
public static final int MATERIAL_STOCK_NOT_ENOUGH_CODE = 8000004; public static final int MATERIAL_STOCK_NOT_ENOUGH_CODE = 8000004;
public static final String MATERIAL_STOCK_NOT_ENOUGH_MSG = "商品:%s库存不足"; public static final String MATERIAL_STOCK_NOT_ENOUGH_MSG = "商品:%s库存不足";
/**
* 商品类别信息
* type = 75
* */
//添加商品类别信息失败
public static final int MATERIAL_CATEGORY_ADD_FAILED_CODE = 7500000;
public static final String MATERIAL_CATEGORY_ADD_FAILED_MSG = "添加商品类别信息失败";
//删除商品类别信息失败
public static final int MATERIAL_CATEGORY_DELETE_FAILED_CODE = 7500001;
public static final String MATERIAL_CATEGORY_DELETE_FAILED_MSG = "删除商品类别信息失败";
//修改商品类别信息失败
public static final int MATERIAL_CATEGORY_EDIT_FAILED_CODE = 7500002;
public static final String MATERIAL_CATEGORY_EDIT_FAILED_MSG = "添加商品类别信息失败";
/** /**
* 标准正常返回/操作成功返回 * 标准正常返回/操作成功返回

View File

@@ -1,13 +1,22 @@
package com.jsh.erp.controller; package com.jsh.erp.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.gson.JsonObject;
import com.jsh.erp.constants.ExceptionConstants;
import com.jsh.erp.datasource.entities.MaterialCategory; import com.jsh.erp.datasource.entities.MaterialCategory;
import com.jsh.erp.datasource.entities.SerialNumberEx;
import com.jsh.erp.datasource.vo.TreeNode;
import com.jsh.erp.exception.BusinessRunTimeException;
import com.jsh.erp.service.materialCategory.MaterialCategoryService; import com.jsh.erp.service.materialCategory.MaterialCategoryService;
import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.BaseResponseInfo;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -45,7 +54,7 @@ public class MaterialCategoryController {
* @param request * @param request
* @return * @return
*/ */
@GetMapping(value = "/findById") @RequestMapping(value = "/findById")
public BaseResponseInfo findById(@RequestParam("id") Long id, HttpServletRequest request) { public BaseResponseInfo findById(@RequestParam("id") Long id, HttpServletRequest request) {
BaseResponseInfo res = new BaseResponseInfo(); BaseResponseInfo res = new BaseResponseInfo();
try { try {
@@ -53,8 +62,16 @@ public class MaterialCategoryController {
JSONObject outer = new JSONObject(); JSONObject outer = new JSONObject();
if (null != dataList) { if (null != dataList) {
for (MaterialCategory mc : dataList) { for (MaterialCategory mc : dataList) {
outer.put("id", mc.getId());
outer.put("name", mc.getName()); outer.put("name", mc.getName());
outer.put("parentId", mc.getParentid()); outer.put("parentId", mc.getParentid());
List<MaterialCategory> dataParentList = materialCategoryService.findById(mc.getParentid());
if(dataParentList!=null&&dataParentList.size()>0){
outer.put("parentName", dataParentList.get(0).getName());
}
outer.put("sort", mc.getSort());
outer.put("serialNo", mc.getSerialNo());
outer.put("remark", mc.getRemark());
} }
} }
res.code = 200; res.code = 200;
@@ -66,4 +83,81 @@ public class MaterialCategoryController {
} }
return res; return res;
} }
/**
* create by: cjl
* description:
* 获取商品类别树数据
* create time: 2019/2/19 11:49
* @Param:
* @return com.alibaba.fastjson.JSONArray
*/
@RequestMapping(value = "/getMaterialCategoryTree")
public JSONArray getMaterialCategoryTree() throws Exception{
JSONArray arr=new JSONArray();
List<TreeNode> materialCategoryTree = materialCategoryService.getMaterialCategoryTree();
if(materialCategoryTree!=null&&materialCategoryTree.size()>0){
for(TreeNode node:materialCategoryTree){
String str=JSON.toJSONString(node);
JSONObject obj=JSON.parseObject(str);
arr.add(obj) ;
}
}
return arr;
}
/**
* create by: cjl
* description:
* 新增商品类别数据
* create time: 2019/2/19 17:17
* @Param: beanJson
* @return java.lang.Object
*/
@RequestMapping(value = "/addMaterialCategory")
public Object addMaterialCategory(@RequestParam("info") String beanJson) throws Exception {
JSONObject result = ExceptionConstants.standardSuccess();
MaterialCategory mc= JSON.parseObject(beanJson, MaterialCategory.class);
int i= materialCategoryService.addMaterialCategory(mc);
if(i<1){
throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_CATEGORY_ADD_FAILED_CODE,
ExceptionConstants.MATERIAL_CATEGORY_ADD_FAILED_MSG);
}
return result;
}
/**
* create by: cjl
* description:
* 修改商品类别数据
* create time: 2019/2/20 9:30
* @Param: beanJson
* @return java.lang.Object
*/
@RequestMapping(value = "/editMaterialCategory")
public Object editMaterialCategory(@RequestParam("info") String beanJson) throws Exception {
JSONObject result = ExceptionConstants.standardSuccess();
MaterialCategory mc= JSON.parseObject(beanJson, MaterialCategory.class);
int i= materialCategoryService.editMaterialCategory(mc);
if(i<1){
throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_CATEGORY_ADD_FAILED_CODE,
ExceptionConstants.MATERIAL_CATEGORY_ADD_FAILED_MSG);
}
return result;
}
/**
* create by: cjl
* description:
* 批量删除商品类别信息
* create time: 2019/2/19 17:26
* @Param: ids
* @return java.lang.Object
*/
@RequestMapping(value = "/batchDeleteMaterialCategory")
public Object batchDeleteMaterialCategory(@RequestParam("ids") String ids) throws Exception {
JSONObject result = ExceptionConstants.standardSuccess();
int i= materialCategoryService.batchDeleteMaterialCategoryByIds(ids);
if(i<1){
throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_CATEGORY_DELETE_FAILED_CODE,
ExceptionConstants.MATERIAL_CATEGORY_DELETE_FAILED_MSG);
}
return result;
}
} }

View File

@@ -1,5 +1,7 @@
package com.jsh.erp.datasource.entities; package com.jsh.erp.datasource.entities;
import java.util.Date;
public class MaterialCategory { public class MaterialCategory {
/** /**
* This field was generated by MyBatis Generator. * This field was generated by MyBatis Generator.
@@ -33,6 +35,70 @@ public class MaterialCategory {
*/ */
private Long parentid; private Long parentid;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column jsh_materialcategory.sort
*
* @mbggenerated
*/
private String sort;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column jsh_materialcategory.status
*
* @mbggenerated
*/
private String status;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column jsh_materialcategory.serial_no
*
* @mbggenerated
*/
private String serialNo;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column jsh_materialcategory.remark
*
* @mbggenerated
*/
private String remark;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column jsh_materialcategory.create_time
*
* @mbggenerated
*/
private Date createTime;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column jsh_materialcategory.creator
*
* @mbggenerated
*/
private Long creator;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column jsh_materialcategory.update_time
*
* @mbggenerated
*/
private Date updateTime;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column jsh_materialcategory.updater
*
* @mbggenerated
*/
private Long updater;
/** /**
* This method was generated by MyBatis Generator. * This method was generated by MyBatis Generator.
* This method returns the value of the database column jsh_materialcategory.Id * This method returns the value of the database column jsh_materialcategory.Id
@@ -128,4 +194,196 @@ public class MaterialCategory {
public void setParentid(Long parentid) { public void setParentid(Long parentid) {
this.parentid = parentid; this.parentid = parentid;
} }
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column jsh_materialcategory.sort
*
* @return the value of jsh_materialcategory.sort
*
* @mbggenerated
*/
public String getSort() {
return sort;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column jsh_materialcategory.sort
*
* @param sort the value for jsh_materialcategory.sort
*
* @mbggenerated
*/
public void setSort(String sort) {
this.sort = sort == null ? null : sort.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column jsh_materialcategory.status
*
* @return the value of jsh_materialcategory.status
*
* @mbggenerated
*/
public String getStatus() {
return status;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column jsh_materialcategory.status
*
* @param status the value for jsh_materialcategory.status
*
* @mbggenerated
*/
public void setStatus(String status) {
this.status = status == null ? null : status.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column jsh_materialcategory.serial_no
*
* @return the value of jsh_materialcategory.serial_no
*
* @mbggenerated
*/
public String getSerialNo() {
return serialNo;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column jsh_materialcategory.serial_no
*
* @param serialNo the value for jsh_materialcategory.serial_no
*
* @mbggenerated
*/
public void setSerialNo(String serialNo) {
this.serialNo = serialNo == null ? null : serialNo.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column jsh_materialcategory.remark
*
* @return the value of jsh_materialcategory.remark
*
* @mbggenerated
*/
public String getRemark() {
return remark;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column jsh_materialcategory.remark
*
* @param remark the value for jsh_materialcategory.remark
*
* @mbggenerated
*/
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column jsh_materialcategory.create_time
*
* @return the value of jsh_materialcategory.create_time
*
* @mbggenerated
*/
public Date getCreateTime() {
return createTime;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column jsh_materialcategory.create_time
*
* @param createTime the value for jsh_materialcategory.create_time
*
* @mbggenerated
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column jsh_materialcategory.creator
*
* @return the value of jsh_materialcategory.creator
*
* @mbggenerated
*/
public Long getCreator() {
return creator;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column jsh_materialcategory.creator
*
* @param creator the value for jsh_materialcategory.creator
*
* @mbggenerated
*/
public void setCreator(Long creator) {
this.creator = creator;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column jsh_materialcategory.update_time
*
* @return the value of jsh_materialcategory.update_time
*
* @mbggenerated
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column jsh_materialcategory.update_time
*
* @param updateTime the value for jsh_materialcategory.update_time
*
* @mbggenerated
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column jsh_materialcategory.updater
*
* @return the value of jsh_materialcategory.updater
*
* @mbggenerated
*/
public Long getUpdater() {
return updater;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column jsh_materialcategory.updater
*
* @param updater the value for jsh_materialcategory.updater
*
* @mbggenerated
*/
public void setUpdater(Long updater) {
this.updater = updater;
}
} }

View File

@@ -1,6 +1,7 @@
package com.jsh.erp.datasource.entities; package com.jsh.erp.datasource.entities;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
public class MaterialCategoryExample { public class MaterialCategoryExample {
@@ -443,6 +444,526 @@ public class MaterialCategoryExample {
addCriterion("ParentId not between", value1, value2, "parentid"); addCriterion("ParentId not between", value1, value2, "parentid");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andSortIsNull() {
addCriterion("sort is null");
return (Criteria) this;
}
public Criteria andSortIsNotNull() {
addCriterion("sort is not null");
return (Criteria) this;
}
public Criteria andSortEqualTo(String value) {
addCriterion("sort =", value, "sort");
return (Criteria) this;
}
public Criteria andSortNotEqualTo(String value) {
addCriterion("sort <>", value, "sort");
return (Criteria) this;
}
public Criteria andSortGreaterThan(String value) {
addCriterion("sort >", value, "sort");
return (Criteria) this;
}
public Criteria andSortGreaterThanOrEqualTo(String value) {
addCriterion("sort >=", value, "sort");
return (Criteria) this;
}
public Criteria andSortLessThan(String value) {
addCriterion("sort <", value, "sort");
return (Criteria) this;
}
public Criteria andSortLessThanOrEqualTo(String value) {
addCriterion("sort <=", value, "sort");
return (Criteria) this;
}
public Criteria andSortLike(String value) {
addCriterion("sort like", value, "sort");
return (Criteria) this;
}
public Criteria andSortNotLike(String value) {
addCriterion("sort not like", value, "sort");
return (Criteria) this;
}
public Criteria andSortIn(List<String> values) {
addCriterion("sort in", values, "sort");
return (Criteria) this;
}
public Criteria andSortNotIn(List<String> values) {
addCriterion("sort not in", values, "sort");
return (Criteria) this;
}
public Criteria andSortBetween(String value1, String value2) {
addCriterion("sort between", value1, value2, "sort");
return (Criteria) this;
}
public Criteria andSortNotBetween(String value1, String value2) {
addCriterion("sort not between", value1, value2, "sort");
return (Criteria) this;
}
public Criteria andStatusIsNull() {
addCriterion("status is null");
return (Criteria) this;
}
public Criteria andStatusIsNotNull() {
addCriterion("status is not null");
return (Criteria) this;
}
public Criteria andStatusEqualTo(String value) {
addCriterion("status =", value, "status");
return (Criteria) this;
}
public Criteria andStatusNotEqualTo(String value) {
addCriterion("status <>", value, "status");
return (Criteria) this;
}
public Criteria andStatusGreaterThan(String value) {
addCriterion("status >", value, "status");
return (Criteria) this;
}
public Criteria andStatusGreaterThanOrEqualTo(String value) {
addCriterion("status >=", value, "status");
return (Criteria) this;
}
public Criteria andStatusLessThan(String value) {
addCriterion("status <", value, "status");
return (Criteria) this;
}
public Criteria andStatusLessThanOrEqualTo(String value) {
addCriterion("status <=", value, "status");
return (Criteria) this;
}
public Criteria andStatusLike(String value) {
addCriterion("status like", value, "status");
return (Criteria) this;
}
public Criteria andStatusNotLike(String value) {
addCriterion("status not like", value, "status");
return (Criteria) this;
}
public Criteria andStatusIn(List<String> values) {
addCriterion("status in", values, "status");
return (Criteria) this;
}
public Criteria andStatusNotIn(List<String> values) {
addCriterion("status not in", values, "status");
return (Criteria) this;
}
public Criteria andStatusBetween(String value1, String value2) {
addCriterion("status between", value1, value2, "status");
return (Criteria) this;
}
public Criteria andStatusNotBetween(String value1, String value2) {
addCriterion("status not between", value1, value2, "status");
return (Criteria) this;
}
public Criteria andSerialNoIsNull() {
addCriterion("serial_no is null");
return (Criteria) this;
}
public Criteria andSerialNoIsNotNull() {
addCriterion("serial_no is not null");
return (Criteria) this;
}
public Criteria andSerialNoEqualTo(String value) {
addCriterion("serial_no =", value, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoNotEqualTo(String value) {
addCriterion("serial_no <>", value, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoGreaterThan(String value) {
addCriterion("serial_no >", value, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoGreaterThanOrEqualTo(String value) {
addCriterion("serial_no >=", value, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoLessThan(String value) {
addCriterion("serial_no <", value, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoLessThanOrEqualTo(String value) {
addCriterion("serial_no <=", value, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoLike(String value) {
addCriterion("serial_no like", value, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoNotLike(String value) {
addCriterion("serial_no not like", value, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoIn(List<String> values) {
addCriterion("serial_no in", values, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoNotIn(List<String> values) {
addCriterion("serial_no not in", values, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoBetween(String value1, String value2) {
addCriterion("serial_no between", value1, value2, "serialNo");
return (Criteria) this;
}
public Criteria andSerialNoNotBetween(String value1, String value2) {
addCriterion("serial_no not between", value1, value2, "serialNo");
return (Criteria) this;
}
public Criteria andRemarkIsNull() {
addCriterion("remark is null");
return (Criteria) this;
}
public Criteria andRemarkIsNotNull() {
addCriterion("remark is not null");
return (Criteria) this;
}
public Criteria andRemarkEqualTo(String value) {
addCriterion("remark =", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotEqualTo(String value) {
addCriterion("remark <>", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThan(String value) {
addCriterion("remark >", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThanOrEqualTo(String value) {
addCriterion("remark >=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThan(String value) {
addCriterion("remark <", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThanOrEqualTo(String value) {
addCriterion("remark <=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLike(String value) {
addCriterion("remark like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotLike(String value) {
addCriterion("remark not like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkIn(List<String> values) {
addCriterion("remark in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotIn(List<String> values) {
addCriterion("remark not in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkBetween(String value1, String value2) {
addCriterion("remark between", value1, value2, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotBetween(String value1, String value2) {
addCriterion("remark not between", value1, value2, "remark");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreatorIsNull() {
addCriterion("creator is null");
return (Criteria) this;
}
public Criteria andCreatorIsNotNull() {
addCriterion("creator is not null");
return (Criteria) this;
}
public Criteria andCreatorEqualTo(Long value) {
addCriterion("creator =", value, "creator");
return (Criteria) this;
}
public Criteria andCreatorNotEqualTo(Long value) {
addCriterion("creator <>", value, "creator");
return (Criteria) this;
}
public Criteria andCreatorGreaterThan(Long value) {
addCriterion("creator >", value, "creator");
return (Criteria) this;
}
public Criteria andCreatorGreaterThanOrEqualTo(Long value) {
addCriterion("creator >=", value, "creator");
return (Criteria) this;
}
public Criteria andCreatorLessThan(Long value) {
addCriterion("creator <", value, "creator");
return (Criteria) this;
}
public Criteria andCreatorLessThanOrEqualTo(Long value) {
addCriterion("creator <=", value, "creator");
return (Criteria) this;
}
public Criteria andCreatorIn(List<Long> values) {
addCriterion("creator in", values, "creator");
return (Criteria) this;
}
public Criteria andCreatorNotIn(List<Long> values) {
addCriterion("creator not in", values, "creator");
return (Criteria) this;
}
public Criteria andCreatorBetween(Long value1, Long value2) {
addCriterion("creator between", value1, value2, "creator");
return (Criteria) this;
}
public Criteria andCreatorNotBetween(Long value1, Long value2) {
addCriterion("creator not between", value1, value2, "creator");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNull() {
addCriterion("update_time is null");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNotNull() {
addCriterion("update_time is not null");
return (Criteria) this;
}
public Criteria andUpdateTimeEqualTo(Date value) {
addCriterion("update_time =", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotEqualTo(Date value) {
addCriterion("update_time <>", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThan(Date value) {
addCriterion("update_time >", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("update_time >=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThan(Date value) {
addCriterion("update_time <", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
addCriterion("update_time <=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeIn(List<Date> values) {
addCriterion("update_time in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotIn(List<Date> values) {
addCriterion("update_time not in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeBetween(Date value1, Date value2) {
addCriterion("update_time between", value1, value2, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
addCriterion("update_time not between", value1, value2, "updateTime");
return (Criteria) this;
}
public Criteria andUpdaterIsNull() {
addCriterion("updater is null");
return (Criteria) this;
}
public Criteria andUpdaterIsNotNull() {
addCriterion("updater is not null");
return (Criteria) this;
}
public Criteria andUpdaterEqualTo(Long value) {
addCriterion("updater =", value, "updater");
return (Criteria) this;
}
public Criteria andUpdaterNotEqualTo(Long value) {
addCriterion("updater <>", value, "updater");
return (Criteria) this;
}
public Criteria andUpdaterGreaterThan(Long value) {
addCriterion("updater >", value, "updater");
return (Criteria) this;
}
public Criteria andUpdaterGreaterThanOrEqualTo(Long value) {
addCriterion("updater >=", value, "updater");
return (Criteria) this;
}
public Criteria andUpdaterLessThan(Long value) {
addCriterion("updater <", value, "updater");
return (Criteria) this;
}
public Criteria andUpdaterLessThanOrEqualTo(Long value) {
addCriterion("updater <=", value, "updater");
return (Criteria) this;
}
public Criteria andUpdaterIn(List<Long> values) {
addCriterion("updater in", values, "updater");
return (Criteria) this;
}
public Criteria andUpdaterNotIn(List<Long> values) {
addCriterion("updater not in", values, "updater");
return (Criteria) this;
}
public Criteria andUpdaterBetween(Long value1, Long value2) {
addCriterion("updater between", value1, value2, "updater");
return (Criteria) this;
}
public Criteria andUpdaterNotBetween(Long value1, Long value2) {
addCriterion("updater not between", value1, value2, "updater");
return (Criteria) this;
}
} }
/** /**

View File

@@ -93,14 +93,4 @@ public interface MaterialCategoryMapper {
* @mbggenerated * @mbggenerated
*/ */
int updateByPrimaryKey(MaterialCategory record); int updateByPrimaryKey(MaterialCategory record);
List<MaterialCategory> selectByConditionMaterialCategory(
@Param("name") String name,
@Param("parentId") Integer parentId,
@Param("offset") Integer offset,
@Param("rows") Integer rows);
int countsByMaterialCategory(
@Param("name") String name,
@Param("parentId") Integer parentId);
} }

View File

@@ -0,0 +1,35 @@
package com.jsh.erp.datasource.mappers;
import com.jsh.erp.datasource.entities.MaterialCategory;
import com.jsh.erp.datasource.vo.TreeNode;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* Description
*
* @Author: cjl
* @Date: 2019/2/18 17:23
*/
public interface MaterialCategoryMapperEx {
List<MaterialCategory> selectByConditionMaterialCategory(
@Param("name") String name,
@Param("parentId") Integer parentId,
@Param("offset") Integer offset,
@Param("rows") Integer rows);
int countsByMaterialCategory(
@Param("name") String name,
@Param("parentId") Integer parentId);
List<TreeNode> getNodeTree();
List<TreeNode> getNextNodeTree(@Param("id") Long id);
int addMaterialCategory(MaterialCategory mc);
int batchDeleteMaterialCategoryByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]);
int editMaterialCategory(MaterialCategory mc);
}

View File

@@ -0,0 +1,96 @@
package com.jsh.erp.datasource.vo;
import java.util.List;
/**
* Description
* 树形结构基本元素
* @Author: cjl
* @Date: 2019/2/19 11:27
*/
public class TreeNode {
/**
* id主键
* */
private Long id;
/**
* text显示的文本
* */
private String text;
/**
*state节点状态'open' 或 'closed',默认:'open'。如果为'closed'的时候,将不自动展开该节点。
* */
private String state="open";
/**
*iconCls 节点图标id
* */
private String iconCls;
/**
* checked 是否被选中
* */
private boolean checked;
/**
*attributes 自定义属性
* */
private String attributes;
/**
* children 子节点
* */
private List<TreeNode> children;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getIconCls() {
return iconCls;
}
public void setIconCls(String iconCls) {
this.iconCls = iconCls;
}
public boolean isChecked() {
return checked;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
public String getAttributes() {
return attributes;
}
public void setAttributes(String attributes) {
this.attributes = attributes;
}
public List<TreeNode> getChildren() {
return children;
}
public void setChildren(List<TreeNode> children) {
this.children = children;
}
}

View File

@@ -1,9 +1,14 @@
package com.jsh.erp.service.materialCategory; package com.jsh.erp.service.materialCategory;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.jsh.erp.constants.BusinessConstants;
import com.jsh.erp.datasource.entities.MaterialCategory; import com.jsh.erp.datasource.entities.MaterialCategory;
import com.jsh.erp.datasource.entities.MaterialCategoryExample; import com.jsh.erp.datasource.entities.MaterialCategoryExample;
import com.jsh.erp.datasource.entities.User;
import com.jsh.erp.datasource.mappers.MaterialCategoryMapper; import com.jsh.erp.datasource.mappers.MaterialCategoryMapper;
import com.jsh.erp.datasource.mappers.MaterialCategoryMapperEx;
import com.jsh.erp.datasource.vo.TreeNode;
import com.jsh.erp.service.user.UserService;
import com.jsh.erp.utils.StringUtil; import com.jsh.erp.utils.StringUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -12,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List; import java.util.List;
@Service @Service
@@ -20,6 +26,10 @@ public class MaterialCategoryService {
@Resource @Resource
private MaterialCategoryMapper materialCategoryMapper; private MaterialCategoryMapper materialCategoryMapper;
@Resource
private MaterialCategoryMapperEx materialCategoryMapperEx;
@Resource
private UserService userService;
public MaterialCategory getMaterialCategory(long id) { public MaterialCategory getMaterialCategory(long id) {
return materialCategoryMapper.selectByPrimaryKey(id); return materialCategoryMapper.selectByPrimaryKey(id);
@@ -38,11 +48,11 @@ public class MaterialCategoryService {
} }
public List<MaterialCategory> select(String name, Integer parentId, int offset, int rows) { public List<MaterialCategory> select(String name, Integer parentId, int offset, int rows) {
return materialCategoryMapper.selectByConditionMaterialCategory(name, parentId, offset, rows); return materialCategoryMapperEx.selectByConditionMaterialCategory(name, parentId, offset, rows);
} }
public int countMaterialCategory(String name, Integer parentId) { public int countMaterialCategory(String name, Integer parentId) {
return materialCategoryMapper.countsByMaterialCategory(name, parentId); return materialCategoryMapperEx.countsByMaterialCategory(name, parentId);
} }
@Transactional(value = "transactionManager", rollbackFor = Exception.class) @Transactional(value = "transactionManager", rollbackFor = Exception.class)
@@ -80,4 +90,68 @@ public class MaterialCategoryService {
example.createCriteria().andIdEqualTo(id); example.createCriteria().andIdEqualTo(id);
return materialCategoryMapper.selectByExample(example); return materialCategoryMapper.selectByExample(example);
} }
/**
* create by: cjl
* description:
*获取商品类别树数据
* create time: 2019/2/19 14:30
* @Param:
* @return java.util.List<com.jsh.erp.datasource.vo.TreeNode>
*/
public List<TreeNode> getMaterialCategoryTree() throws Exception{
return materialCategoryMapperEx.getNodeTree();
}
/**
* create by: cjl
* description:
* 新增商品类别信息
* create time: 2019/2/19 16:30
* @Param: mc
* @return void
*/
public int addMaterialCategory(MaterialCategory mc) throws Exception {
if(mc==null){
return 0;
}
if(mc.getParentid()==null){
//没有给定父级目录的id默认设置父级目录为根目录
mc.setParentid(BusinessConstants.MATERIAL_CATEGORY_ROOT_ID);
}
//数据状态新增时默认设置为启用
mc.setStatus(BusinessConstants.MATERIAL_CATEGORY_STATUS_ENABLE);
Date date=new Date();
User userInfo=userService.getCurrentUser();
//创建时间
mc.setCreateTime(date);
//创建人
mc.setCreator(userInfo==null?null:userInfo.getId());
//更新时间
mc.setUpdateTime(date);
//更新人
mc.setUpdater(userInfo==null?null:userInfo.getId());
return materialCategoryMapperEx.addMaterialCategory(mc);
}
public int batchDeleteMaterialCategoryByIds(String ids) throws Exception {
//更新时间
Date updateDate =new Date();
//更新人
User userInfo=userService.getCurrentUser();
Long updater=userInfo==null?null:userInfo.getId();
StringBuffer sb=new StringBuffer();
String strArray[]=ids.split(",");
if(strArray.length<1){
return 0;
}
return materialCategoryMapperEx.batchDeleteMaterialCategoryByIds(updateDate,updater,strArray);
}
public int editMaterialCategory(MaterialCategory mc) {
//更新时间
mc.setUpdateTime(new Date());
//更新人
User userInfo=userService.getCurrentUser();
mc.setUpdater(userInfo==null?null:userInfo.getId());
return materialCategoryMapperEx.editMaterialCategory(mc);
}
} }

View File

@@ -10,6 +10,14 @@
<result column="Name" jdbcType="VARCHAR" property="name" /> <result column="Name" jdbcType="VARCHAR" property="name" />
<result column="CategoryLevel" jdbcType="SMALLINT" property="categorylevel" /> <result column="CategoryLevel" jdbcType="SMALLINT" property="categorylevel" />
<result column="ParentId" jdbcType="BIGINT" property="parentid" /> <result column="ParentId" jdbcType="BIGINT" property="parentid" />
<result column="sort" jdbcType="VARCHAR" property="sort" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="serial_no" jdbcType="VARCHAR" property="serialNo" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="creator" jdbcType="BIGINT" property="creator" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="updater" jdbcType="BIGINT" property="updater" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<!-- <!--
@@ -82,7 +90,8 @@
WARNING - @mbggenerated WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify. This element is automatically generated by MyBatis Generator, do not modify.
--> -->
Id, Name, CategoryLevel, ParentId Id, Name, CategoryLevel, ParentId, sort, status, serial_no, remark, create_time,
creator, update_time, updater
</sql> </sql>
<select id="selectByExample" parameterType="com.jsh.erp.datasource.entities.MaterialCategoryExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.jsh.erp.datasource.entities.MaterialCategoryExample" resultMap="BaseResultMap">
<!-- <!--
@@ -136,9 +145,15 @@
This element is automatically generated by MyBatis Generator, do not modify. This element is automatically generated by MyBatis Generator, do not modify.
--> -->
insert into jsh_materialcategory (Id, Name, CategoryLevel, insert into jsh_materialcategory (Id, Name, CategoryLevel,
ParentId) ParentId, sort, status,
serial_no, remark, create_time,
creator, update_time, updater
)
values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{categorylevel,jdbcType=SMALLINT}, values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{categorylevel,jdbcType=SMALLINT},
#{parentid,jdbcType=BIGINT}) #{parentid,jdbcType=BIGINT}, #{sort,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR},
#{serialNo,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{creator,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP}, #{updater,jdbcType=BIGINT}
)
</insert> </insert>
<insert id="insertSelective" parameterType="com.jsh.erp.datasource.entities.MaterialCategory"> <insert id="insertSelective" parameterType="com.jsh.erp.datasource.entities.MaterialCategory">
<!-- <!--
@@ -159,6 +174,30 @@
<if test="parentid != null"> <if test="parentid != null">
ParentId, ParentId,
</if> </if>
<if test="sort != null">
sort,
</if>
<if test="status != null">
status,
</if>
<if test="serialNo != null">
serial_no,
</if>
<if test="remark != null">
remark,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="creator != null">
creator,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="updater != null">
updater,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@@ -173,6 +212,30 @@
<if test="parentid != null"> <if test="parentid != null">
#{parentid,jdbcType=BIGINT}, #{parentid,jdbcType=BIGINT},
</if> </if>
<if test="sort != null">
#{sort,jdbcType=VARCHAR},
</if>
<if test="status != null">
#{status,jdbcType=VARCHAR},
</if>
<if test="serialNo != null">
#{serialNo,jdbcType=VARCHAR},
</if>
<if test="remark != null">
#{remark,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="creator != null">
#{creator,jdbcType=BIGINT},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="updater != null">
#{updater,jdbcType=BIGINT},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.jsh.erp.datasource.entities.MaterialCategoryExample" resultType="java.lang.Integer"> <select id="countByExample" parameterType="com.jsh.erp.datasource.entities.MaterialCategoryExample" resultType="java.lang.Integer">
@@ -204,6 +267,30 @@
<if test="record.parentid != null"> <if test="record.parentid != null">
ParentId = #{record.parentid,jdbcType=BIGINT}, ParentId = #{record.parentid,jdbcType=BIGINT},
</if> </if>
<if test="record.sort != null">
sort = #{record.sort,jdbcType=VARCHAR},
</if>
<if test="record.status != null">
status = #{record.status,jdbcType=VARCHAR},
</if>
<if test="record.serialNo != null">
serial_no = #{record.serialNo,jdbcType=VARCHAR},
</if>
<if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
<if test="record.creator != null">
creator = #{record.creator,jdbcType=BIGINT},
</if>
<if test="record.updateTime != null">
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
</if>
<if test="record.updater != null">
updater = #{record.updater,jdbcType=BIGINT},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@@ -218,7 +305,15 @@
set Id = #{record.id,jdbcType=BIGINT}, set Id = #{record.id,jdbcType=BIGINT},
Name = #{record.name,jdbcType=VARCHAR}, Name = #{record.name,jdbcType=VARCHAR},
CategoryLevel = #{record.categorylevel,jdbcType=SMALLINT}, CategoryLevel = #{record.categorylevel,jdbcType=SMALLINT},
ParentId = #{record.parentid,jdbcType=BIGINT} ParentId = #{record.parentid,jdbcType=BIGINT},
sort = #{record.sort,jdbcType=VARCHAR},
status = #{record.status,jdbcType=VARCHAR},
serial_no = #{record.serialNo,jdbcType=VARCHAR},
remark = #{record.remark,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
creator = #{record.creator,jdbcType=BIGINT},
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
updater = #{record.updater,jdbcType=BIGINT}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@@ -239,6 +334,30 @@
<if test="parentid != null"> <if test="parentid != null">
ParentId = #{parentid,jdbcType=BIGINT}, ParentId = #{parentid,jdbcType=BIGINT},
</if> </if>
<if test="sort != null">
sort = #{sort,jdbcType=VARCHAR},
</if>
<if test="status != null">
status = #{status,jdbcType=VARCHAR},
</if>
<if test="serialNo != null">
serial_no = #{serialNo,jdbcType=VARCHAR},
</if>
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="creator != null">
creator = #{creator,jdbcType=BIGINT},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="updater != null">
updater = #{updater,jdbcType=BIGINT},
</if>
</set> </set>
where Id = #{id,jdbcType=BIGINT} where Id = #{id,jdbcType=BIGINT}
</update> </update>
@@ -250,7 +369,15 @@
update jsh_materialcategory update jsh_materialcategory
set Name = #{name,jdbcType=VARCHAR}, set Name = #{name,jdbcType=VARCHAR},
CategoryLevel = #{categorylevel,jdbcType=SMALLINT}, CategoryLevel = #{categorylevel,jdbcType=SMALLINT},
ParentId = #{parentid,jdbcType=BIGINT} ParentId = #{parentid,jdbcType=BIGINT},
sort = #{sort,jdbcType=VARCHAR},
status = #{status,jdbcType=VARCHAR},
serial_no = #{serialNo,jdbcType=VARCHAR},
remark = #{remark,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
creator = #{creator,jdbcType=BIGINT},
update_time = #{updateTime,jdbcType=TIMESTAMP},
updater = #{updater,jdbcType=BIGINT}
where Id = #{id,jdbcType=BIGINT} where Id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jsh.erp.datasource.mappers.MaterialCategoryMapper"> <mapper namespace="com.jsh.erp.datasource.mappers.MaterialCategoryMapperEx">
<select id="selectByConditionMaterialCategory" parameterType="com.jsh.erp.datasource.entities.MaterialCategoryExample" resultMap="BaseResultMap"> <select id="selectByConditionMaterialCategory" parameterType="com.jsh.erp.datasource.entities.MaterialCategoryExample" resultMap="com.jsh.erp.datasource.mappers.MaterialCategoryMapper.BaseResultMap">
select * select *
FROM jsh_materialcategory FROM jsh_materialcategory
where 1=1 where 1=1
@@ -29,4 +29,67 @@
</if> </if>
and Id !=1 and Id !=1
</select> </select>
<resultMap id="BaseTreeResultMap" type="com.jsh.erp.datasource.vo.TreeNode">
<result column="id" property="id"/>
<result column="name" property="text"/>
<collection column="id" property="children" javaType="java.util.ArrayList"
ofType="com.jsh.erp.datasource.vo.TreeNode" select="getNextNodeTree"/>
</resultMap>
<resultMap id="NextTreeResultMap" type="com.jsh.erp.datasource.vo.TreeNode">
<result column="id" property="id"/>
<result column="name" property="text"/>
<collection column="id" property="children" javaType="java.util.ArrayList"
ofType="com.jsh.erp.datasource.vo.TreeNode" select="getNextNodeTree"/>
</resultMap>
<sql id="Base_Column_List">
id, name
</sql>
<select id="getNextNodeTree" resultMap="NextTreeResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM jsh_materialcategory
WHERE ParentId = #{id}
and status !='2'
order by sort asc
</select>
<select id="getNodeTree" resultMap="BaseTreeResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM jsh_materialcategory
WHERE ParentId = -1
and status !='2'
order by sort asc
</select>
<insert id="addMaterialCategory" parameterType="com.jsh.erp.datasource.entities.MaterialCategory"
useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into jsh_materialcategory
(Name, CategoryLevel, ParentId, sort,status,serial_no,remark,
create_Time, creator,update_Time, updater)
values
(#{name},#{categorylevel},#{parentid},#{sort},#{status},#{serialNo},#{remark},
#{createTime},#{creator},#{updateTime},#{updater}
)
</insert>
<update id="batchDeleteMaterialCategoryByIds">
update jsh_materialcategory
set update_Time=#{updateTime},updater=#{updater},status='2'
where id in (
<foreach collection="ids" item="id" separator=",">
#{id}
</foreach>
)
</update>
<update id="editMaterialCategory">
update jsh_materialcategory
set update_Time=#{updateTime},updater=#{updater},
ParentId=#{parentid},sort=#{sort},serial_no=#{serialNo},
name=#{name},remark=#{remark}
where id =#{id}
</update>
</mapper> </mapper>