给商品扩展表增加‘是否默认基础单位’字段
This commit is contained in:
@@ -763,4 +763,11 @@ alter table jsh_user change loginame login_name varchar(255) NOT NULL COMMENT '
|
||||
-- by jishenghua
|
||||
-- 给功能表增加插件管理
|
||||
-- ----------------------------
|
||||
INSERT INTO `jsh_functions` VALUES (245,'000107', '插件管理', '0001', '/pages/manage/plugin.html', '\0', '0170', '', '电脑版', '', 'icon-notebook', '0');
|
||||
INSERT INTO `jsh_functions` VALUES (245,'000107', '插件管理', '0001', '/pages/manage/plugin.html', '\0', '0170', '', '电脑版', '', 'icon-notebook', '0');
|
||||
|
||||
-- ----------------------------
|
||||
-- 时间:2020年04月25日
|
||||
-- by jishenghua
|
||||
-- 给商品扩展表增加 是否默认基础单位 字段
|
||||
-- ----------------------------
|
||||
alter table jsh_material_extend add default_flag VARCHAR(1) DEFAULT 1 COMMENT '是否为默认单位,1是,0否' after low_decimal;
|
||||
|
||||
448
erp_web/js/easyui/datagrid-dnd.js
Normal file
448
erp_web/js/easyui/datagrid-dnd.js
Normal file
@@ -0,0 +1,448 @@
|
||||
(function($){
|
||||
$.extend($.fn.datagrid.defaults, {
|
||||
dropAccept: 'tr.datagrid-row',
|
||||
dragSelection: false,
|
||||
dragDelay: 100,
|
||||
onBeforeDrag: function(row){}, // return false to deny drag
|
||||
onStartDrag: function(row){},
|
||||
onStopDrag: function(row){},
|
||||
onDragEnter: function(targetRow, sourceRow){}, // return false to deny drop
|
||||
onDragOver: function(targetRow, sourceRow){}, // return false to deny drop
|
||||
onDragLeave: function(targetRow, sourceRow){},
|
||||
onBeforeDrop: function(targetRow, sourceRow, point){},
|
||||
onDrop: function(targetRow, sourceRow, point){}, // point:'append','top','bottom'
|
||||
});
|
||||
$.extend($.fn.datagrid.methods, {
|
||||
_appendRows: function(jq, row){
|
||||
return jq.each(function(){
|
||||
var dg = $(this);
|
||||
var rows = $.isArray(row) ? row : [row];
|
||||
$.map(rows, function(row){
|
||||
dg.datagrid('appendRow', row).datagrid('enableDnd', dg.datagrid('getRows').length-1);
|
||||
});
|
||||
});
|
||||
},
|
||||
_insertRows: function(jq, param){
|
||||
return jq.each(function(){
|
||||
var dg = $(this);
|
||||
var index = param.index;
|
||||
var row = param.row;
|
||||
var rows = $.isArray(row) ? row : [row];
|
||||
$.map(rows, function(row, i){
|
||||
dg.datagrid('insertRow', {
|
||||
index: (index+i),
|
||||
row: row
|
||||
}).datagrid('enableDnd', index+i);
|
||||
});
|
||||
});
|
||||
},
|
||||
_getRowIndexs: function(jq, row){
|
||||
var dg = jq;
|
||||
var rows = $.isArray(row) ? row : [row];
|
||||
var indexs = $.map(rows, function(row){
|
||||
return dg.datagrid('getRowIndex', row);
|
||||
});
|
||||
return $.grep(indexs, function(index){
|
||||
if (index >= 0){return true;}
|
||||
});
|
||||
},
|
||||
_deleteRows: function(jq, indexs){
|
||||
return jq.each(function(){
|
||||
// sort desc
|
||||
indexs.sort(function(x,y){
|
||||
if (parseInt(x)>parseInt(y)){
|
||||
return -1;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
for(var i=0; i<indexs.length; i++){
|
||||
$(this).datagrid('deleteRow', indexs[i]);
|
||||
}
|
||||
});
|
||||
},
|
||||
_setSelections: function(jq){
|
||||
return jq.each(function(){
|
||||
var rows = $(this).datagrid('getRows');
|
||||
for(var i=0; i<rows.length; i++){
|
||||
if (rows[i]._selected){
|
||||
$(this).datagrid('selectRow', i);
|
||||
rows[i]._selected = undefined;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
clearInsertingFlag: function(jq){
|
||||
return jq.each(function(){
|
||||
var opts = $(this).datagrid('options');
|
||||
if (opts.insertingIndex >= 0){
|
||||
var tr = opts.finder.getTr(this, opts.insertingIndex);
|
||||
tr.removeClass('datagrid-row-top datagrid-row-bottom');
|
||||
opts.insertingIndex = -1;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var disabledDroppingRows = [];
|
||||
|
||||
function enableDroppable(aa){
|
||||
$.map(aa, function(row){
|
||||
$(row).droppable('enable');
|
||||
});
|
||||
}
|
||||
|
||||
$.extend($.fn.datagrid.methods, {
|
||||
resetDroppable: function(jq){
|
||||
return jq.each(function(){
|
||||
var c = $(this).datagrid('getPanel')[0];
|
||||
var my = [];
|
||||
var left = [];
|
||||
for(var i=0; i<disabledDroppingRows.length; i++){
|
||||
var t = disabledDroppingRows[i];
|
||||
var p = $(t).closest('div.datagrid-wrap');
|
||||
if (p.length && p[0] == c){
|
||||
my.push(t);
|
||||
} else {
|
||||
left.push(t);
|
||||
}
|
||||
}
|
||||
disabledDroppingRows = left;
|
||||
enableDroppable(my);
|
||||
});
|
||||
},
|
||||
enableDnd: function(jq, index){
|
||||
if (!$('#datagrid-dnd-style').length){
|
||||
$('<style id="datagrid-dnd-style">' +
|
||||
'.datagrid-row-top>td{border-top:1px solid red}' +
|
||||
'.datagrid-row-bottom>td{border-bottom:1px solid red}' +
|
||||
'</style>'
|
||||
).appendTo('head');
|
||||
}
|
||||
return jq.each(function(){
|
||||
var target = this;
|
||||
var state = $.data(this, 'datagrid');
|
||||
var dg = $(this);
|
||||
var opts = state.options;
|
||||
|
||||
var draggableOptions = {
|
||||
disabled: false,
|
||||
revert: true,
|
||||
cursor: 'pointer',
|
||||
proxy: function(source) {
|
||||
var p = $('<div style="z-index:9999999999999"></div>').appendTo('body');
|
||||
var draggingRow = getDraggingRow(source);
|
||||
var rows = $.isArray(draggingRow) ? draggingRow : [draggingRow];
|
||||
$.map(rows, function(row,i){
|
||||
var index = dg.datagrid('getRowIndex', row);
|
||||
var tr1 = opts.finder.getTr(target, index, 'body', 1);
|
||||
var tr2 = opts.finder.getTr(target, index, 'body', 2);
|
||||
tr2.clone().removeAttr('id').removeClass('droppable').appendTo(p);
|
||||
tr1.clone().removeAttr('id').removeClass('droppable').find('td').insertBefore(p.find('tr:eq('+i+') td:first'));
|
||||
$('<td><span class="tree-dnd-icon tree-dnd-no" style="position:static"> </span></td>').insertBefore(p.find('tr:eq('+i+') td:first'));
|
||||
});
|
||||
p.find('td').css('vertical-align','middle');
|
||||
p.hide();
|
||||
return p;
|
||||
},
|
||||
deltaX: 15,
|
||||
deltaY: 15,
|
||||
delay: opts.dragDelay,
|
||||
onBeforeDrag:function(e){
|
||||
var draggingRow = getDraggingRow(this);
|
||||
if (opts.onBeforeDrag.call(target, draggingRow) == false){return false;}
|
||||
if ($(e.target).parent().hasClass('datagrid-cell-check')){return false;}
|
||||
if (e.which != 1){return false;}
|
||||
},
|
||||
onStartDrag: function() {
|
||||
$(this).draggable('proxy').css({
|
||||
left: -10000,
|
||||
top: -10000
|
||||
});
|
||||
var draggingRow = getDraggingRow(this);
|
||||
setValid(draggingRow, false);
|
||||
state.draggingRow = draggingRow;
|
||||
opts.onStartDrag.call(target, draggingRow);
|
||||
},
|
||||
onDrag: function(e) {
|
||||
var x1=e.pageX,y1=e.pageY,x2=e.data.startX,y2=e.data.startY;
|
||||
var d = Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
|
||||
if (d>3){ // when drag a little distance, show the proxy object
|
||||
$(this).draggable('proxy').show();
|
||||
var tr = opts.finder.getTr(target, parseInt($(this).attr('datagrid-row-index')), 'body');
|
||||
$.extend(e.data, {
|
||||
startX: tr.offset().left,
|
||||
startY: tr.offset().top,
|
||||
offsetWidth: 0,
|
||||
offsetHeight: 0
|
||||
});
|
||||
}
|
||||
this.pageY = e.pageY;
|
||||
},
|
||||
onEndDrag: function(e){
|
||||
var dd = $(this).data('draggable').droppables.filter(function(){
|
||||
var dropObj = $(this);
|
||||
if (dropObj.droppable('options').disabled){return false;}
|
||||
if (dropObj.hasClass('datagrid-row') && !dropObj.hasClass('datagrid-row-over')){
|
||||
return false;
|
||||
}
|
||||
var p2 = dropObj.offset();
|
||||
if (e.pageX > p2.left && e.pageX < p2.left + dropObj.outerWidth()
|
||||
&& e.pageY > p2.top && e.pageY < p2.top + dropObj.outerHeight()){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
var trs = dd.filter(function(){
|
||||
return $(this).hasClass('datagrid-row');
|
||||
});
|
||||
if (trs.length){
|
||||
dd = trs;
|
||||
}
|
||||
$(this).data('draggable').droppables = dd;
|
||||
},
|
||||
onStopDrag:function(){
|
||||
enableDroppable(disabledDroppingRows);
|
||||
disabledDroppingRows = [];
|
||||
setValid(state.draggingRow, true);
|
||||
opts.onStopDrag.call(target, state.draggingRow);
|
||||
}
|
||||
};
|
||||
var droppableOptions = {
|
||||
disabled: false,
|
||||
accept: opts.dropAccept,
|
||||
onDragEnter: function(e, source){
|
||||
if ($(this).droppable('options').disabled){return;}
|
||||
var dTarget = getDataGridTarget(this);
|
||||
var dOpts = $(dTarget).datagrid('options');
|
||||
var tr = dOpts.finder.getTr(dTarget, null, 'highlight');
|
||||
var sRow = getDraggingRow(source);
|
||||
var dRow = getRow(this);
|
||||
if (tr.length && dRow){
|
||||
cb();
|
||||
}
|
||||
|
||||
function cb(){
|
||||
if (opts.onDragEnter.call(target, dRow, sRow) == false){
|
||||
$(dTarget).datagrid('clearInsertingFlag');
|
||||
tr.droppable('disable');
|
||||
tr.each(function(){
|
||||
disabledDroppingRows.push(this);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
onDragOver: function(e, source) {
|
||||
if ($(this).droppable('options').disabled){
|
||||
return;
|
||||
}
|
||||
if ($.inArray(this, disabledDroppingRows) >= 0){
|
||||
return;
|
||||
}
|
||||
var dTarget = getDataGridTarget(this);
|
||||
var dOpts = $(dTarget).datagrid('options');
|
||||
var tr = dOpts.finder.getTr(dTarget, null, 'highlight');
|
||||
if (tr.length){
|
||||
if (!isValid(tr)){
|
||||
setProxyFlag(source, false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
setProxyFlag(source, true);
|
||||
|
||||
var sRow = getDraggingRow(source);
|
||||
var dRow = getRow(this);
|
||||
if (tr.length){
|
||||
var pageY = source.pageY;
|
||||
var top = tr.offset().top;
|
||||
var bottom = tr.offset().top + tr.outerHeight();
|
||||
$(dTarget).datagrid('clearInsertingFlag');
|
||||
dOpts.insertingIndex = tr.attr('datagrid-row-index');
|
||||
if (pageY > top + (bottom - top) / 2) {
|
||||
tr.addClass('datagrid-row-bottom');
|
||||
} else {
|
||||
tr.addClass('datagrid-row-top');
|
||||
}
|
||||
if (dRow){
|
||||
cb();
|
||||
}
|
||||
}
|
||||
|
||||
function cb(){
|
||||
if (opts.onDragOver.call(target, dRow, sRow) == false){
|
||||
setProxyFlag(source, false);
|
||||
$(dTarget).datagrid('clearInsertingFlag');
|
||||
tr.droppable('disable');
|
||||
tr.each(function(){
|
||||
disabledDroppingRows.push(this);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
onDragLeave: function(e, source) {
|
||||
if ($(this).droppable('options').disabled){
|
||||
return;
|
||||
}
|
||||
setProxyFlag(source, false);
|
||||
var dTarget = getDataGridTarget(this);
|
||||
$(dTarget).datagrid('clearInsertingFlag');
|
||||
var sRow = getDraggingRow(source);
|
||||
var dRow = getRow(this);
|
||||
if (dRow){
|
||||
opts.onDragLeave.call(target, dRow, sRow);
|
||||
}
|
||||
},
|
||||
onDrop: function(e, source) {
|
||||
if ($(this).droppable('options').disabled){
|
||||
return;
|
||||
}
|
||||
var sTarget = getDataGridTarget(source);
|
||||
var dTarget = getDataGridTarget(this);
|
||||
var dOpts = $(dTarget).datagrid('options');
|
||||
var tr = dOpts.finder.getTr(dTarget, null, 'highlight');
|
||||
|
||||
var point = null;
|
||||
var sRow = getDraggingRow(source);
|
||||
var dRow = null;
|
||||
if (tr.length){
|
||||
if (!isValid(tr)){
|
||||
return;
|
||||
}
|
||||
point = tr.hasClass('datagrid-row-top') ? 'top' : 'bottom';
|
||||
dRow = getRow(tr);
|
||||
}
|
||||
|
||||
$(dTarget).datagrid('clearInsertingFlag');
|
||||
if (opts.onBeforeDrop.call(target, dRow, sRow, point) == false){
|
||||
return;
|
||||
}
|
||||
insert.call(this);
|
||||
opts.onDrop.call(target, dRow, sRow, point);
|
||||
|
||||
function insert(){
|
||||
var destIndex = parseInt(tr.attr('datagrid-row-index'));
|
||||
|
||||
if (!point){
|
||||
var indexs = $(sTarget).datagrid('_getRowIndexs', sRow);
|
||||
$(dTarget).datagrid('_appendRows', sRow);
|
||||
$(sTarget).datagrid('_deleteRows', indexs);
|
||||
$(dTarget).datagrid('_setSelections');
|
||||
} else if (dTarget != sTarget){
|
||||
var index = point == 'top' ? destIndex : (destIndex+1);
|
||||
if (index >= 0){
|
||||
var indexs = $(sTarget).datagrid('_getRowIndexs', sRow);
|
||||
$(dTarget).datagrid('_insertRows', {
|
||||
index: index,
|
||||
row: sRow
|
||||
});
|
||||
$(sTarget).datagrid('_deleteRows', indexs);
|
||||
$(dTarget).datagrid('_setSelections');
|
||||
}
|
||||
} else {
|
||||
var dg = $(dTarget);
|
||||
var index = point == 'top' ? destIndex : (destIndex+1);
|
||||
if (index >= 0){
|
||||
var indexs = dg.datagrid('_getRowIndexs', sRow);
|
||||
var destIndex = parseInt(tr.attr('datagrid-row-index'));
|
||||
var index = point == 'top' ? destIndex : (destIndex+1);
|
||||
if (index >= 0){
|
||||
dg.datagrid('_insertRows', {
|
||||
index: index,
|
||||
row: sRow
|
||||
});
|
||||
for(var i=0; i<indexs.length; i++){
|
||||
if (indexs[i] > index){
|
||||
indexs[i] += indexs.length;
|
||||
}
|
||||
}
|
||||
dg.datagrid('_deleteRows', indexs);
|
||||
dg.datagrid('_setSelections');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (index != undefined){
|
||||
var trs = opts.finder.getTr(this, index);
|
||||
} else {
|
||||
var trs = opts.finder.getTr(this, 0, 'allbody');
|
||||
}
|
||||
trs.draggable(draggableOptions);
|
||||
trs.droppable(droppableOptions);
|
||||
setDroppable(target);
|
||||
|
||||
function setProxyFlag(source, allowed){
|
||||
var icon = $(source).draggable('proxy').find('span.tree-dnd-icon');
|
||||
icon.removeClass('tree-dnd-yes tree-dnd-no').addClass(allowed ? 'tree-dnd-yes' : 'tree-dnd-no');
|
||||
}
|
||||
function getRow(tr){
|
||||
if (!$(tr).hasClass('datagrid-row')){return null}
|
||||
var target = $(tr).closest('div.datagrid-view').children('table')[0];
|
||||
var opts = $(target).datagrid('options');
|
||||
return opts.finder.getRow(target, $(tr));
|
||||
}
|
||||
function getDraggingRow(tr){
|
||||
if (!$(tr).hasClass('datagrid-row')){return null}
|
||||
var target = getDataGridTarget(tr);
|
||||
var opts = $(target).datagrid('options');
|
||||
var rows = $(target).datagrid('getRows');
|
||||
for(var i=0; i<rows.length; i++){
|
||||
rows[i]._selected = undefined;
|
||||
}
|
||||
if (opts.dragSelection){
|
||||
if ($(tr).hasClass('datagrid-row-selected')){
|
||||
var rows = $(target).datagrid('getSelections');
|
||||
$.map(rows, function(row){
|
||||
row._selected = true;
|
||||
});
|
||||
return rows;
|
||||
}
|
||||
}
|
||||
var row = opts.finder.getRow(target, $(tr));
|
||||
row._selected = $(tr).hasClass('datagrid-row-selected');
|
||||
return row;
|
||||
}
|
||||
function setDroppable(target){
|
||||
getDroppableBody(target).droppable(droppableOptions).droppable('enable');
|
||||
}
|
||||
function getDataGridTarget(el){
|
||||
return $(el).closest('div.datagrid-view').children('table')[0];
|
||||
}
|
||||
function getDroppableBody(target){
|
||||
var dc = $(target).data('datagrid').dc;
|
||||
return dc.view;
|
||||
}
|
||||
function isValid(tr){
|
||||
var opts = $(tr).droppable('options');
|
||||
if (opts.disabled || opts.accept == 'no-accept'){
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
function setValid(rows, valid){
|
||||
var accept = valid ? opts.dropAccept : 'no-accept';
|
||||
$.map($.isArray(rows)?rows:[rows], function(row){
|
||||
var index = $(target).datagrid('getRowIndex', row);
|
||||
opts.finder.getTr(target, index).droppable({accept:accept});
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
disableDnd: function(jq){
|
||||
return jq.each(function(){
|
||||
var target = this;
|
||||
var state = $.data(this, 'datagrid');
|
||||
var dg = $(this);
|
||||
var opts = state.options;
|
||||
var trs = opts.finder.getTr(this, 0, 'allbody');
|
||||
trs.draggable('disable');
|
||||
trs.droppable('disable');
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -15,6 +15,7 @@
|
||||
<link type="text/css" rel="stylesheet" href="/css/material.css"/>
|
||||
<script type="text/javascript" src="/js/easyui/jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="/js/easyui/locale/easyui-lang-zh_CN.js"></script>
|
||||
<script type="text/javascript" src="/js/easyui/datagrid-dnd.js"></script>
|
||||
<script src="/js/handlebars.js"></script>
|
||||
<script type="text/javascript" src="/js/common/outlook_in.js"></script>
|
||||
<script type="text/javascript" src="/js/common/common.js"></script>
|
||||
@@ -1090,9 +1091,21 @@
|
||||
{
|
||||
reject(); //撤销
|
||||
}
|
||||
},
|
||||
{
|
||||
id:'tips',
|
||||
text:'【注意:基础单位必须排在第一个】'
|
||||
}
|
||||
],
|
||||
|
||||
onBeforeDrag : function(row) {
|
||||
//首次进来可以拖动
|
||||
if (editIndex !== undefined) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
onLoadSuccess:function(){
|
||||
$(this).datagrid('enableDnd');
|
||||
},
|
||||
onLoadError:function()
|
||||
{
|
||||
$.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error');
|
||||
@@ -1646,6 +1659,8 @@
|
||||
function accept(objInfo) {
|
||||
append(0);
|
||||
removeit();
|
||||
//在更新商品信息的时候更新排序
|
||||
var sortList = [];
|
||||
//判断单位是否填写正确
|
||||
var meList = $("#materialExtendData").datagrid('getRows');
|
||||
var unit = $("#Unit").val();
|
||||
@@ -1666,6 +1681,19 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
for(var i=0; i<meList.length;i++) {
|
||||
var sortObj = {};
|
||||
if(meList[i].Id) {
|
||||
sortObj.id=meList[i].Id;
|
||||
if(i==0) {
|
||||
sortObj.defaultFlag=1;
|
||||
} else {
|
||||
sortObj.defaultFlag=0;
|
||||
}
|
||||
sortList.push(sortObj);
|
||||
}
|
||||
}
|
||||
objInfo.sortList = sortList;
|
||||
if ($("#materialExtendData").datagrid('getChanges').length) {
|
||||
if (!CheckData())
|
||||
return false;
|
||||
|
||||
@@ -20,6 +20,8 @@ public class MaterialExtend {
|
||||
|
||||
private BigDecimal lowDecimal;
|
||||
|
||||
private String defaultFlag;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private String createSerial;
|
||||
@@ -96,6 +98,14 @@ public class MaterialExtend {
|
||||
this.lowDecimal = lowDecimal;
|
||||
}
|
||||
|
||||
public String getDefaultFlag() {
|
||||
return defaultFlag;
|
||||
}
|
||||
|
||||
public void setDefaultFlag(String defaultFlag) {
|
||||
this.defaultFlag = defaultFlag == null ? null : defaultFlag.trim();
|
||||
}
|
||||
|
||||
public Date getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
@@ -606,6 +606,76 @@ public class MaterialExtendExample {
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagIsNull() {
|
||||
addCriterion("default_flag is null");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagIsNotNull() {
|
||||
addCriterion("default_flag is not null");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagEqualTo(String value) {
|
||||
addCriterion("default_flag =", value, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagNotEqualTo(String value) {
|
||||
addCriterion("default_flag <>", value, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagGreaterThan(String value) {
|
||||
addCriterion("default_flag >", value, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagGreaterThanOrEqualTo(String value) {
|
||||
addCriterion("default_flag >=", value, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagLessThan(String value) {
|
||||
addCriterion("default_flag <", value, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagLessThanOrEqualTo(String value) {
|
||||
addCriterion("default_flag <=", value, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagLike(String value) {
|
||||
addCriterion("default_flag like", value, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagNotLike(String value) {
|
||||
addCriterion("default_flag not like", value, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagIn(List<String> values) {
|
||||
addCriterion("default_flag in", values, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagNotIn(List<String> values) {
|
||||
addCriterion("default_flag not in", values, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagBetween(String value1, String value2) {
|
||||
addCriterion("default_flag between", value1, value2, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andDefaultFlagNotBetween(String value1, String value2) {
|
||||
addCriterion("default_flag not between", value1, value2, "defaultFlag");
|
||||
return (Criteria) this;
|
||||
}
|
||||
|
||||
public Criteria andCreateTimeIsNull() {
|
||||
addCriterion("create_time is null");
|
||||
return (Criteria) this;
|
||||
|
||||
@@ -75,7 +75,7 @@ public class MaterialExtendService {
|
||||
}
|
||||
|
||||
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||
public String saveDetials(String inserted, String deleted, String updated,Long materialId) throws Exception {
|
||||
public String saveDetials(String inserted, String deleted, String updated, String sortList, Long materialId) throws Exception {
|
||||
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
||||
logService.insertLog("商品价格扩展",
|
||||
BusinessConstants.LOG_OPERATION_TYPE_ADD, request);
|
||||
@@ -83,6 +83,7 @@ public class MaterialExtendService {
|
||||
JSONArray insertedJson = JSONArray.parseArray(inserted);
|
||||
JSONArray deletedJson = JSONArray.parseArray(deleted);
|
||||
JSONArray updatedJson = JSONArray.parseArray(updated);
|
||||
JSONArray sortJson = JSONArray.parseArray(sortList);
|
||||
if (null != insertedJson) {
|
||||
for (int i = 0; i < insertedJson.size(); i++) {
|
||||
MaterialExtend materialExtend = new MaterialExtend();
|
||||
@@ -143,7 +144,39 @@ public class MaterialExtendService {
|
||||
if (StringUtils.isNotEmpty(tempUpdatedJson.getString("LowDecimal"))) {
|
||||
materialExtend.setLowDecimal(tempUpdatedJson.getBigDecimal("LowDecimal"));
|
||||
}
|
||||
this.updateMaterialExtend(materialExtend, request);
|
||||
this.updateMaterialExtend(materialExtend);
|
||||
}
|
||||
}
|
||||
//处理条码的排序,基础单位排第一个
|
||||
if (null != sortJson && sortJson.size()>0) {
|
||||
//此处为更新的逻辑
|
||||
for (int i = 0; i < sortJson.size(); i++) {
|
||||
JSONObject tempSortJson = JSONObject.parseObject(sortJson.getString(i));
|
||||
MaterialExtend materialExtend = new MaterialExtend();
|
||||
if(StringUtil.isExist(tempSortJson.get("id"))) {
|
||||
materialExtend.setId(tempSortJson.getLong("id"));
|
||||
}
|
||||
if(StringUtil.isExist(tempSortJson.get("defaultFlag"))) {
|
||||
materialExtend.setDefaultFlag(tempSortJson.getString("defaultFlag"));
|
||||
}
|
||||
this.updateMaterialExtend(materialExtend);
|
||||
}
|
||||
} else {
|
||||
//新增的时候将第一条记录设置为默认基础单位
|
||||
MaterialExtendExample example = new MaterialExtendExample();
|
||||
example.createCriteria().andMaterialIdEqualTo(materialId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
||||
List<MaterialExtend> meList = materialExtendMapper.selectByExample(example);
|
||||
if(meList!=null) {
|
||||
for(int i=0; i<meList.size(); i++) {
|
||||
MaterialExtend materialExtend = new MaterialExtend();
|
||||
materialExtend.setId(meList.get(i).getId());
|
||||
if(i==0) {
|
||||
materialExtend.setDefaultFlag("1"); //默认
|
||||
} else {
|
||||
materialExtend.setDefaultFlag("0"); //非默认
|
||||
}
|
||||
this.updateMaterialExtend(materialExtend);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@@ -167,9 +200,9 @@ public class MaterialExtendService {
|
||||
}
|
||||
|
||||
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||
public int updateMaterialExtend(MaterialExtend MaterialExtend, HttpServletRequest request) throws Exception{
|
||||
public int updateMaterialExtend(MaterialExtend MaterialExtend) throws Exception{
|
||||
User user = userService.getCurrentUser();
|
||||
MaterialExtend.setUpdateTime(new Date().getTime());
|
||||
MaterialExtend.setUpdateTime(System.currentTimeMillis());
|
||||
MaterialExtend.setUpdateSerial(user.getLoginName());
|
||||
int res =0;
|
||||
try{
|
||||
|
||||
@@ -157,7 +157,7 @@ public class MaterialService {
|
||||
mId = materials.get(0).getId();
|
||||
}
|
||||
JSONObject mObj = JSON.parseObject(beanJson);
|
||||
materialExtendService.saveDetials(mObj.getString("inserted"), mObj.getString("deleted"), mObj.getString("updated"), mId);
|
||||
materialExtendService.saveDetials(mObj.getString("inserted"), mObj.getString("deleted"), mObj.getString("updated"),mObj.getString("sortList"), mId);
|
||||
if(mObj.get("stock")!=null) {
|
||||
String stockStr = mObj.getString("stock");
|
||||
JSONArray stockArr = JSONArray.parseArray(stockStr);
|
||||
@@ -193,7 +193,7 @@ public class MaterialService {
|
||||
materialMapperEx.updateUnitIdNullByPrimaryKey(id); //将多单位置空
|
||||
}
|
||||
JSONObject mObj = JSON.parseObject(beanJson);
|
||||
materialExtendService.saveDetials(mObj.getString("inserted"),mObj.getString("deleted"),mObj.getString("updated"),id);
|
||||
materialExtendService.saveDetials(mObj.getString("inserted"),mObj.getString("deleted"),mObj.getString("updated"),mObj.getString("sortList"),id);
|
||||
if(mObj.get("stock")!=null) {
|
||||
String stockStr = mObj.getString("stock");
|
||||
JSONArray stockArr = JSONArray.parseArray(stockStr);
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<result column="commodity_decimal" jdbcType="DECIMAL" property="commodityDecimal" />
|
||||
<result column="wholesale_decimal" jdbcType="DECIMAL" property="wholesaleDecimal" />
|
||||
<result column="low_decimal" jdbcType="DECIMAL" property="lowDecimal" />
|
||||
<result column="default_flag" jdbcType="VARCHAR" property="defaultFlag" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="create_serial" jdbcType="VARCHAR" property="createSerial" />
|
||||
<result column="update_serial" jdbcType="VARCHAR" property="updateSerial" />
|
||||
@@ -77,7 +78,8 @@
|
||||
</sql>
|
||||
<sql id="Base_Column_List">
|
||||
id, material_id, bar_code, commodity_unit, purchase_decimal, commodity_decimal, wholesale_decimal,
|
||||
low_decimal, create_time, create_serial, update_serial, update_time, tenant_id, delete_Flag
|
||||
low_decimal, default_flag, create_time, create_serial, update_serial, update_time,
|
||||
tenant_id, delete_Flag
|
||||
</sql>
|
||||
<select id="selectByExample" parameterType="com.jsh.erp.datasource.entities.MaterialExtendExample" resultMap="BaseResultMap">
|
||||
select
|
||||
@@ -112,14 +114,16 @@
|
||||
<insert id="insert" parameterType="com.jsh.erp.datasource.entities.MaterialExtend">
|
||||
insert into jsh_material_extend (id, material_id, bar_code,
|
||||
commodity_unit, purchase_decimal, commodity_decimal,
|
||||
wholesale_decimal, low_decimal, create_time,
|
||||
create_serial, update_serial, update_time,
|
||||
tenant_id, delete_Flag)
|
||||
wholesale_decimal, low_decimal, default_flag,
|
||||
create_time, create_serial, update_serial,
|
||||
update_time, tenant_id, delete_Flag
|
||||
)
|
||||
values (#{id,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, #{barCode,jdbcType=VARCHAR},
|
||||
#{commodityUnit,jdbcType=VARCHAR}, #{purchaseDecimal,jdbcType=DECIMAL}, #{commodityDecimal,jdbcType=DECIMAL},
|
||||
#{wholesaleDecimal,jdbcType=DECIMAL}, #{lowDecimal,jdbcType=DECIMAL}, #{createTime,jdbcType=TIMESTAMP},
|
||||
#{createSerial,jdbcType=VARCHAR}, #{updateSerial,jdbcType=VARCHAR}, #{updateTime,jdbcType=BIGINT},
|
||||
#{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR})
|
||||
#{wholesaleDecimal,jdbcType=DECIMAL}, #{lowDecimal,jdbcType=DECIMAL}, #{defaultFlag,jdbcType=VARCHAR},
|
||||
#{createTime,jdbcType=TIMESTAMP}, #{createSerial,jdbcType=VARCHAR}, #{updateSerial,jdbcType=VARCHAR},
|
||||
#{updateTime,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}
|
||||
)
|
||||
</insert>
|
||||
<insert id="insertSelective" parameterType="com.jsh.erp.datasource.entities.MaterialExtend">
|
||||
insert into jsh_material_extend
|
||||
@@ -148,6 +152,9 @@
|
||||
<if test="lowDecimal != null">
|
||||
low_decimal,
|
||||
</if>
|
||||
<if test="defaultFlag != null">
|
||||
default_flag,
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
create_time,
|
||||
</if>
|
||||
@@ -192,6 +199,9 @@
|
||||
<if test="lowDecimal != null">
|
||||
#{lowDecimal,jdbcType=DECIMAL},
|
||||
</if>
|
||||
<if test="defaultFlag != null">
|
||||
#{defaultFlag,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
#{createTime,jdbcType=TIMESTAMP},
|
||||
</if>
|
||||
@@ -245,6 +255,9 @@
|
||||
<if test="record.lowDecimal != null">
|
||||
low_decimal = #{record.lowDecimal,jdbcType=DECIMAL},
|
||||
</if>
|
||||
<if test="record.defaultFlag != null">
|
||||
default_flag = #{record.defaultFlag,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="record.createTime != null">
|
||||
create_time = #{record.createTime,jdbcType=TIMESTAMP},
|
||||
</if>
|
||||
@@ -278,6 +291,7 @@
|
||||
commodity_decimal = #{record.commodityDecimal,jdbcType=DECIMAL},
|
||||
wholesale_decimal = #{record.wholesaleDecimal,jdbcType=DECIMAL},
|
||||
low_decimal = #{record.lowDecimal,jdbcType=DECIMAL},
|
||||
default_flag = #{record.defaultFlag,jdbcType=VARCHAR},
|
||||
create_time = #{record.createTime,jdbcType=TIMESTAMP},
|
||||
create_serial = #{record.createSerial,jdbcType=VARCHAR},
|
||||
update_serial = #{record.updateSerial,jdbcType=VARCHAR},
|
||||
@@ -312,6 +326,9 @@
|
||||
<if test="lowDecimal != null">
|
||||
low_decimal = #{lowDecimal,jdbcType=DECIMAL},
|
||||
</if>
|
||||
<if test="defaultFlag != null">
|
||||
default_flag = #{defaultFlag,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
create_time = #{createTime,jdbcType=TIMESTAMP},
|
||||
</if>
|
||||
@@ -342,6 +359,7 @@
|
||||
commodity_decimal = #{commodityDecimal,jdbcType=DECIMAL},
|
||||
wholesale_decimal = #{wholesaleDecimal,jdbcType=DECIMAL},
|
||||
low_decimal = #{lowDecimal,jdbcType=DECIMAL},
|
||||
default_flag = #{defaultFlag,jdbcType=VARCHAR},
|
||||
create_time = #{createTime,jdbcType=TIMESTAMP},
|
||||
create_serial = #{createSerial,jdbcType=VARCHAR},
|
||||
update_serial = #{updateSerial,jdbcType=VARCHAR},
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
from jsh_material_extend d
|
||||
where d.material_id = '${materialId}'
|
||||
and ifnull(d.delete_Flag,'0') !='1'
|
||||
order by d.id asc
|
||||
order by d.default_flag desc,d.id asc
|
||||
</select>
|
||||
|
||||
<select id="getMaxTimeByTenantAndTime" resultType="java.lang.Long">
|
||||
|
||||
Reference in New Issue
Block a user