Commit e7240e6d authored by 1650842865's avatar 1650842865

IM/WM库存盘点审批功能;

parent 28cdfad3
var itemGridManager = null;
$(function () {
initItemGrid();
});
function initItemGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
});
itemGridManager = UICtrl.grid('#maingrid', {
columns: getGridColumns(),
dataAction: 'server',
_tableKey: 'inventoryRecordImDetail',
_local: true,
url: web_app.name + '/inventoryRecord/queryInventoryRecordImByInventoryRecordId.ajax',
parms:{inventoryRecordId:getId()},
height: '95%',
heightDiff: -4,
sortName: 'id',
sortOrder: 'asc',
checkbox: false,
usePager: true,
rownumbers: true,
enabledEdit: false,
fixedCellHeight: true,
selectRowButtonOnly: true,
//autoApplyNextEditor:false,
toolbar: toolbarOptions,
}
);
UICtrl.setSearchAreaToggle(itemGridManager);
}
function getGridColumns() {
var columns = [];
columns = [
{display: "库存盘点凭证", name: "iblnr", width: "80", align: "left", type: "string",},
{display: "会计年度", name: "gjahr", width: "100", align: "left", type: "string"},
{display: "行号", name: "zeili", width: "60", align: "left", type: "string"},
{display: "物料编号", name: "matnr", width: "100", align: "left", type: "string",
//去掉前导零
render: function (item) {
return item.matnr.replace(/^0+/, "");
}
},
{display: "物料描述", name: "maktx", width: "300", align: "left", type: "string"},
{display: "工厂", name: "werks", width: "100", align: "left", type: "string",},
{display: "工厂名称", name: "name1", width: "200", align: "left", type: "string",},
{display: "存储地点", name: "lgort", width: "100", align: "left", type: "string"},
{display: "存储地点名称", name: "lgobe", width: "100", align: "left", type: "string",},
{display: "批次编号", name: "charg", width: "100", align: "left", type: "string",},
{display: "盘点日期", name: "zldat", width: "100", align: "left", type: "string",},
{display: "账面数量", name: "buchm", width: "100", align: "left", type: "money",},
{display: "盘点数量", name: "erfmg", width: "100", align: "left", type: "money",},
{display: "差额数量", name: "difmg", width: "100", minWidth: 60, type: "money", align: "center",},
{display: "计量单位", name: "meins", width: "100", minWidth: 60, type: "string", align: "center",},
{display: "计量单位描述", name: "msehl", width: "100", minWidth: 60, type: "string", align: "center",},
{display: "盘点金额", name: "wrtzl", width: "100", minWidth: 60, type: "money", align: "center",},
{display: "账面金额", name: "wrtbm", width: "100", align: "left", type: "money",},
{display: "本币差额", name: "dmbtr", width: "100", align: "left", type: "money",},
{display: "货币码", name: "waers", width: "100", align: "left", type: "string"},
{display: "货币描述", name: "ktext", width: "100", minWidth: 60, type: "string", align: "center",},
]
return columns;
}
//获取数据保存的参数
function getExtendedData(processAction) {
//回退、打回、转交时,不需要验证必填项是否已经填写;
if (processAction == ProcessAction.BACK
|| processAction == ProcessAction.REPLENISH
|| processAction == ProcessAction.TRANSMIT) {
//不验证
$('#submitForm').attr('check', false);
}
var extendedData = {};
var _grid = UICtrl.getGridManager('#maingrid');
if (_grid) {
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: true
});
if (!datas) {
return false;
}
extendedData.imItems = Public.encodeJSONURI(datas);
}
return extendedData;
}
function getId() {
return $('#id').val();
}
function setId(value) {
$("#id").val(value);
var _grid=UICtrl.getGridManager('#maingrid');
_grid.options.parms.inventoryRecordId = value;
}
function reloadGrid() {
itemGridManager.loadData();
}
function getGridData(){
var _grid = UICtrl.getGridManager('#maingrid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: true
});
return datas;
}
<%--采购申请--%>
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<%@ taglib uri="/WEB-INF/taglib.tld" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<x:base include="layout,dialog,grid,tree,dateTime,combox,attachment,commonTree,comboDialog"/>
<x:script src="/biz/topsun/sap/inventoryRecord/im/inventoryRecordImDetail.js"/>
</head>
<body>
<div class="container-fluid">
<x:billTitle title="IM盘点结果审批" needStatus="true" needPerson="true"/>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="id"/>
<x:hidden name="version"/>
<x:hidden name="billCode"/>
<x:hidden name="fillinDate"/>
<x:hidden name="fullId"/>
<x:hidden name="organId"/>
<x:hidden name="organName"/>
<x:hidden name="deptId"/>
<x:hidden name="deptName"/>
<x:hidden name="positionId"/>
<x:hidden name="positionName"/>
<x:hidden name="personMemberId"/>
<x:hidden name="personMemberName"/>
<x:hidden name="statusId"/>
<x:hidden name="ztype"/>
<div id="maingrid"></div>
</form>
</div>
</body>
\ No newline at end of file
var gridManager = null;
$(document).ready(function () {
initUI();
initPurchaseListGrid();
}
);
function initUI() {
UICtrl.initDefaultLayout();
}
function initPurchaseListGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
});
gridManager = UICtrl.grid('#grid', {
columns : [
{display: "库存盘点凭证", name: "iblnr", width: "80", align: "left", type: "string",},
{display: "会计年度", name: "gjahr", width: "100", align: "left", type: "string"},
{display: "行号", name: "zeili", width: "60", align: "left", type: "string"},
{display: "物料编号", name: "matnr", width: "100", align: "left", type: "string",
//去掉前导零
render: function (item) {
return item.matnr.replace(/^0+/, "");
}
},
{display: "物料描述", name: "maktx", width: "300", align: "left", type: "string"},
{display: "工厂", name: "werks", width: "100", align: "left", type: "string",},
{display: "工厂名称", name: "name1", width: "200", align: "left", type: "string",},
{display: "存储地点", name: "lgort", width: "100", align: "left", type: "string"},
{display: "存储地点名称", name: "lgobe", width: "100", align: "left", type: "string",},
{display: "批次编号", name: "charg", width: "100", align: "left", type: "string",},
{display: "盘点日期", name: "zldat", width: "100", align: "left", type: "string",},
{display: "账面数量", name: "buchm", width: "100", align: "left", type: "money",},
{display: "盘点数量", name: "erfmg", width: "100", align: "left", type: "money",},
{display: "差额数量", name: "difmg", width: "100", minWidth: 60, type: "money", align: "center",},
{display: "计量单位", name: "meins", width: "100", minWidth: 60, type: "string", align: "center",},
{display: "计量单位描述", name: "msehl", width: "100", minWidth: 60, type: "string", align: "center",},
{display: "盘点金额", name: "wrtzl", width: "100", minWidth: 60, type: "money", align: "center",},
{display: "账面金额", name: "wrtbm", width: "100", align: "left", type: "money",},
{display: "本币差额", name: "dmbtr", width: "100", align: "left", type: "money",},
{display: "货币码", name: "waers", width: "100", align: "left", type: "string"},
{display: "货币描述", name: "ktext", width: "100", minWidth: 60, type: "string", align: "center",}
],
dataAction: 'server',
url: web_app.name + '/inventoryRecord/slicedInventoryRecordImList.ajax?',
toolbar: toolbarOptions,
width: '99.8%',
height: '100%',
pageSize: 20,
heightDiff: -4,
sortName: 'fillinDate',
sortOrder: 'desc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: false,
fixedCellHeight: true,
selectRowButtonOnly: true,
enableObjectBag: true,
onDblClickRow: function (data, rowindex, rowobj) {
viewHandler(data.id);
},
}
);
UICtrl.setSearchAreaToggle(gridManager);
}
/**
* 查看采购申请详情
* @param id 采购申请id
* @returns {boolean}
*/
function viewHandler(id) {
if (!id) {
var row = DataUtil.getSelectedRow(gridManager);
if (!row) {
return row;
}
id = row.id;
}
UICtrl.addTabItem({
tabid: 'viewInventoryRecord' + id,
text: '查看库存盘点',
url: web_app.name + '/inventoryRecord/showInventoryRecordDetail.job?isReadOnly=true&bizId=' + id
});
}
function reloadGrid() {
var params = $("#queryMainForm").formToJSON();
UICtrl.gridSearch(gridManager, params);
}
function query(obj) {
var param = $(obj).formToJSON();
UICtrl.gridSearch(gridManager, param);
}
function resetForm(obj) {
$(obj).formClean();
}
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@taglib uri="/WEB-INF/taglib.tld" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<x:base include="layout,dialog,grid,tree,dateTime,combox,attachment,commonTree,comboDialog"/>
<script src='<c:url value="/lib/jquery/jquery.comboDialog.js"/>' type="text/javascript"></script>
<script src='<c:url value="/lib/jquery/jquery.commonTree.js"/>' type="text/javascript"></script>
<script src='<c:url value="/lib/jquery/jquery.flexField.js"/>' type="text/javascript"></script>
<script src='<c:url value="/biz/topsun/sap/inventoryRecord/im/inventoryRecordImList.js"/>' type="text/javascript"></script>
</head>
<body>
<div class="container-fluid">
<div id="layout">
<div position="center" title="">
<x:title title="搜索" hideTable="queryMainForm"/>
<form class="hg-form ui-show" method="post" action="" id="queryMainForm">
<div class="hg-form-row">
<x:hidden name="loginId"/>
<x:inputC name="billCode" label="单据编号" labelCol="1"/>
<x:inputC name="iblnr" label="库存盘点凭证" labelCol="1"/>
<x:inputC name="gjahr" label="会计年度" labelCol="1"/>
<x:inputC name="charg" label="批次编号" labelCol="1"/>
</div>
<div class="hg-form-row">
<x:inputC name="name1" label="工厂名称" labelCol="1"/>
<x:inputC name="lgobe" label="存储地点名称" labelCol="1"/>
<x:inputC name="matnr" label="物料" labelCol="1"/>
<x:inputC name="maktx" label="物料描述" labelCol="1"/>
</div>
<div class="hg-form-row">
<x:checkboxListC name="statusKind" label="common.field.status" list="statusKindsList" labelCol="1" fieldCol="3"/>
</div>
<x:searchButtons/>
</form>
<div id="grid" style="margin:2px;"></div>
</div>
</div>
</div>
</body>
</html>
var gridManager = null;
$(function () {
initGrid();
});
function initGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
});
gridManager = UICtrl.grid('#grid', {
columns: getGridColumns(),
dataAction: 'server',
_tableKey: 'inventoryRecordWmDetail',
_local: true,
url: web_app.name + '/inventoryRecord/queryInventoryRecordWmByInventoryRecordId.ajax',
parms:{inventoryRecordId:getId()},
height: '95%',
heightDiff: -4,
sortName: 'id',
sortOrder: 'asc',
checkbox: false,
usePager: true,
rownumbers: true,
enabledEdit: false,
fixedCellHeight: true,
selectRowButtonOnly: true,
//autoApplyNextEditor:false,
toolbar: toolbarOptions,
}
);
UICtrl.setSearchAreaToggle(gridManager);
}
function getGridColumns() {
var columns = [];
columns = [
{display: "仓库号", name: "lgnum", width: 100, minWidth: 60, type: "string", align: "center"},
{display: "仓库描述", name: "lnumt", width: 200, minWidth: 60, type: "string", align: "center"},
{display: "盘点记录号", name: "ivnum", width: "100", align: "left", type: "string"},
{display: "重新盘点版本", name: "nvers", width: "100", align: "left", type: "string"},
{display: "项目号", name: "ivpos", width: "100", align: "left", type: "string"},
{display: "仓位", name: "lgpla", width: "100", align: "left", type: "string"},
{display: "物料", name: "matnr", width: "100", align: "left", type: "string",
//去掉前导0
render: function (item) {
return item.matnr.replace(/^0+/, "");
}
},
{display: "物料描述", name: "maktx", width: "300", align: "left", type: "string"},
{display: "批次", name: "charg", width: "100", align: "left", type: "string",},
{display: "工厂", name: "werks", width: "100", align: "left", type: "string",},
{display: "工厂名称", name: "name1", width: "200", align: "left", type: "string"},
{display: "存储地点", name: "lgort", width: "100", align: "left", type: "string",},
{display: "存储地点名称", name: "lgobe", width: "100", align: "left", type: "string",},
{display: "库存类别", name: "bestq", width: "100", align: "left", type: "string",},
{display: "特殊库存标识", name: "sobkz", width: "100", align: "left", type: "string",},
{display: "特殊库存编号", name: "sonum", width: 100, minWidth: 60, type: "string", align: "center",},
{display: "盘点数量", name: "menga", width: 100, minWidth: 60, type: "string", align: "center",},
{display: "盘点数量单位", name: "msehl", width: 100, minWidth: 60, type: "string", align: "center",},
{display: "账面数量", name: "gesme", width: "100", align: "left", type: "string",},
{display: "差异", name: "abwei", width: "100", align: "left", type: "string",},
{display: "价值差额", name: "dwert", width: "100", align: "left", type: "string"},
{display: "货币", name: "ktext", width: 100, minWidth: 60, type: "string", align: "center",},
{display: "盘点完成日期", name: "idatu", width: 100, minWidth: 60, type: "string", align: "center",}
]
return columns;
}
//获取数据保存的参数
function getExtendedData(processAction) {
//回退、打回、转交时,不需要验证必填项是否已经填写;
if (processAction == ProcessAction.BACK
|| processAction == ProcessAction.REPLENISH
|| processAction == ProcessAction.TRANSMIT) {
//不验证
$('#submitForm').attr('check', false);
}
var extendedData = {};
var _grid = UICtrl.getGridManager('#grid');
if (_grid) {
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: true
});
if (!datas) {
return false;
}
extendedData.wmItems = Public.encodeJSONURI(datas);
}
return extendedData;
}
function getId() {
return $('#id').val();
}
function setId(value) {
$("#id").val(value);
var _grid=UICtrl.getGridManager('#grid');
_grid.options.parms.inventoryRecordId = value;
}
function reloadGrid() {
gridManager.loadData();
}
function getGridData(){
var _grid = UICtrl.getGridManager('#grid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: true
});
return datas;
}
<%--采购申请--%>
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<%@ taglib uri="/WEB-INF/taglib.tld" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<x:base include="layout,dialog,grid,tree,dateTime,combox,attachment,commonTree,comboDialog"/>
<x:script src="/biz/topsun/sap/inventoryRecord/wm/inventoryRecordWmDetail.js"/>
</head>
<body>
<div class="container-fluid">
<x:billTitle title="WM盘点结果审批" needStatus="true" needPerson="true"/>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="id"/>
<x:hidden name="version"/>
<x:hidden name="billCode"/>
<x:hidden name="fillinDate"/>
<x:hidden name="fullId"/>
<x:hidden name="organId"/>
<x:hidden name="organName"/>
<x:hidden name="deptId"/>
<x:hidden name="deptName"/>
<x:hidden name="positionId"/>
<x:hidden name="positionName"/>
<x:hidden name="personMemberId"/>
<x:hidden name="personMemberName"/>
<x:hidden name="statusId"/>
<x:hidden name="ztype"/>
<div id="grid"></div>
</form>
</div>
</body>
\ No newline at end of file
var gridManager = null;
$(document).ready(function () {
initUI();
initGrid();
}
);
function initUI() {
UICtrl.initDefaultLayout();
}
function initGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
});
gridManager = UICtrl.grid('#grid', {
columns: [
{display: "状态", name: "statusTextView", width: "100", align: "left", type: "string"},
{display: "id", name: "id", width: "140", align: "left", type: "string", hide: true},
{display: "BPM单据号", name: "billCode", width: 150, minWidth: 60, type: "string", align: "center"},
{display: "仓库号", name: "lgnum", width: 100, minWidth: 60, type: "string", align: "center"},
{display: "仓库描述", name: "lnumt", width: 200, minWidth: 60, type: "string", align: "center"},
{display: "盘点记录号", name: "ivnum", width: "100", align: "left", type: "string"},
{display: "重新盘点版本", name: "nvers", width: "100", align: "left", type: "string"},
{display: "项目号", name: "ivpos", width: "100", align: "left", type: "string"},
{display: "仓位", name: "lgpla", width: "100", align: "left", type: "string"},
{display: "物料", name: "matnr", width: "100", align: "left", type: "string",
//去掉前导0
render: function (item) {
return item.matnr.replace(/^0+/, "");
}
},
{display: "物料描述", name: "maktx", width: "300", align: "left", type: "string"},
{display: "批次", name: "charg", width: "100", align: "left", type: "string",},
{display: "工厂", name: "werks", width: "100", align: "left", type: "string",},
{display: "工厂名称", name: "name1", width: "200", align: "left", type: "string"},
{display: "存储地点", name: "lgort", width: "100", align: "left", type: "string",},
{display: "存储地点名称", name: "lgobe", width: "100", align: "left", type: "string",},
{display: "库存类别", name: "bestq", width: "100", align: "left", type: "string",},
{display: "特殊库存标识", name: "sobkz", width: "100", align: "left", type: "string",},
{display: "特殊库存编号", name: "sonum", width: 100, minWidth: 60, type: "string", align: "center",},
{display: "盘点数量", name: "menga", width: 100, minWidth: 60, type: "string", align: "center",},
{display: "盘点数量单位", name: "msehl", width: 100, minWidth: 60, type: "string", align: "center",},
{display: "账面数量", name: "gesme", width: "100", align: "left", type: "string",},
{display: "差异", name: "abwei", width: "100", align: "left", type: "string",},
{display: "价值差额", name: "dwert", width: "100", align: "left", type: "string"},
{display: "货币", name: "ktext", width: 100, minWidth: 60, type: "string", align: "center",},
{display: "盘点完成日期", name: "idatu", width: 100, minWidth: 60, type: "string", align: "center",},
{display: "创建人", name: "personMemberName", width: "100", align: "left", type: "string",},
{display: "消息类型", name: "type", width: 100, minWidth: 60, type: "string", align: "center"},
{display: "消息文本", name: "message", width: 200, minWidth: 60, type: "string", align: "center"},
{display: "创建日期", name: "fillinDate", width: 140, minWidth: 60, type: "date", align: "center"},
],
dataAction: 'server',
url: web_app.name + '/inventoryRecord/slicedInventoryRecordWmList.ajax?',
toolbar: toolbarOptions,
width: '99.8%',
height: '100%',
pageSize: 20,
heightDiff: -4,
sortName: 'fillinDate',
sortOrder: 'desc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: false,
fixedCellHeight: true,
selectRowButtonOnly: true,
enableObjectBag: true,
onDblClickRow: function (data, rowindex, rowobj) {
viewHandler(data.id);
},
}
);
UICtrl.setSearchAreaToggle(gridManager);
}
/**
* 查看详情
* @param id 采购申请id
* @returns {boolean}
*/
function viewHandler(id) {
if (!id) {
var row = DataUtil.getSelectedRow(gridManager);
if (!row) {
return row;
}
id = row.id;
}
UICtrl.addTabItem({
tabid: 'viewInventoryRecord' + id,
text: '查看库存盘点',
url: web_app.name + '/inventoryRecord/showInventoryRecordDetail.job?isReadOnly=true&bizId=' + id
});
}
function reloadGrid() {
var params = $("#queryMainForm").formToJSON();
UICtrl.gridSearch(gridManager, params);
}
function query(obj) {
var param = $(obj).formToJSON();
UICtrl.gridSearch(gridManager, param);
}
function resetForm(obj) {
$(obj).formClean();
}
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@taglib uri="/WEB-INF/taglib.tld" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<x:base include="layout,dialog,grid,tree,dateTime,combox,attachment,commonTree,comboDialog"/>
<script src='<c:url value="/lib/jquery/jquery.comboDialog.js"/>' type="text/javascript"></script>
<script src='<c:url value="/lib/jquery/jquery.commonTree.js"/>' type="text/javascript"></script>
<script src='<c:url value="/lib/jquery/jquery.flexField.js"/>' type="text/javascript"></script>
<script src='<c:url value="/biz/topsun/sap/inventoryRecord/wm/inventoryRecordWmList.js"/>' type="text/javascript"></script>
</head>
<body>
<div class="container-fluid">
<div id="layout">
<div position="center" title="">
<x:title title="搜索" hideTable="queryMainForm"/>
<form class="hg-form ui-show" method="post" action="" id="queryMainForm">
<div class="hg-form-row">
<x:inputC name="billCode" label="单据编号" labelCol="1"/>
<x:inputC name="lnumt" label="仓库描述" labelCol="1"/>
<x:inputC name="ivnum" label="盘点记录号" labelCol="1"/>
<x:inputC name="charg" label="批次编号" labelCol="1"/>
</div>
<div class="hg-form-row">
<x:inputC name="name1" label="工厂名称" labelCol="1"/>
<x:inputC name="lgobe" label="存储地点名称" labelCol="1"/>
<x:inputC name="matnr" label="物料" labelCol="1"/>
<x:inputC name="maktx" label="物料描述" labelCol="1"/>
</div>
<div class="hg-form-row">
<x:checkboxListC name="statusKind" label="common.field.status" list="statusKindsList" labelCol="1" fieldCol="3"/>
</div>
<x:searchButtons/>
</form>
<div id="grid" style="margin:2px;"></div>
</div>
</div>
</div>
</body>
</html>
...@@ -38,14 +38,6 @@ function initializate() { ...@@ -38,14 +38,6 @@ function initializate() {
initMRP(data.value); initMRP(data.value);
initbstmi(data.value); initbstmi(data.value);
initueetk(data.value); initueetk(data.value);
//物料主数据的创建,修改 物料类型为:ZGKL(客供料),字段mrp控制者(DISPO),改为默认并且只能是105
if (data.value == "ZKGL"){
$("#dispo").val("105");//MRP控制者
$("#dispo_text").val("105-客供料");//MRP控制者
}else {
$("#dispo").val("");//MRP控制者
$("#dispo_text").val("");//MRP控制者
}
} }
}); });
...@@ -151,6 +143,7 @@ function initializate() { ...@@ -151,6 +143,7 @@ function initializate() {
} }
} }
showAllBusiness(); showAllBusiness();
initMRP($("#mtart").val());
} else { } else {
$("input[name='businessUsage']").each(function(){ $("input[name='businessUsage']").each(function(){
$(this).attr("checked",false); $(this).attr("checked",false);
...@@ -193,8 +186,8 @@ function initializate() { ...@@ -193,8 +186,8 @@ function initializate() {
//BPM不能修改产成品、半成品、设备类的产品名称、物料组、单位、规格 //BPM不能修改产成品、半成品、设备类的产品名称、物料组、单位、规格
if (mtart == "ZBCP" || mtart == "ZZCP" || mtart == "ZSHB"){ if (mtart == "ZBCP" || mtart == "ZZCP" || mtart == "ZSHB"){
// UICtrl.disable("#matklTypeName"); UICtrl.disable("#matklTypeName");
// UICtrl.disable("#matklName"); UICtrl.disable("#matklName");
// UICtrl.disable("#groes"); // UICtrl.disable("#groes");
// UICtrl.disable("#spartName"); // UICtrl.disable("#spartName");
// UICtrl.disable("#meinsName"); // UICtrl.disable("#meinsName");
...@@ -252,6 +245,21 @@ function initMRP(mtart){ ...@@ -252,6 +245,21 @@ function initMRP(mtart){
UICtrl.setElRequiredFlag("#beskz",true); UICtrl.setElRequiredFlag("#beskz",true);
UICtrl.enable("#beskz"); UICtrl.enable("#beskz");
} }
//物料主数据的创建,修改 物料类型为:ZGKL(客供料),字段mrp控制者(DISPO),改为默认并且只能是105
if (mtart == "ZKGL"){
$("#dispo").val("105");//MRP控制者
$("#dispo_text").val("105-客供料");//MRP控制者
}else if (mtart == "ZBCP" || mtart == "ZZCP"){
$("#dispo").val("106");//MRP控制者
$("#dispo_text").val("106-半成品");//MRP控制者
}else if (mtart == "ZSHB"){
$("#dispo").val("107");//MRP控制者
$("#dispo_text").val("107-自制设备");//MRP控制者
}else {
$("#dispo").val("");//MRP控制者
$("#dispo_text").val("");//MRP控制者
}
} }
function initbstmi(mtart){ function initbstmi(mtart){
...@@ -322,6 +330,7 @@ function showBusiness(busiCode) { ...@@ -322,6 +330,7 @@ function showBusiness(busiCode) {
UICtrl.setElRequiredFlag("#dismm",true); UICtrl.setElRequiredFlag("#dismm",true);
UICtrl.setElRequiredFlag("#werksName",true); UICtrl.setElRequiredFlag("#werksName",true);
UICtrl.setElRequiredFlag("#mtvfp",true); UICtrl.setElRequiredFlag("#mtvfp",true);
initMRP($("#mtart").val());
} }
if (busiCode=="A") { //生产 if (busiCode=="A") { //生产
......
...@@ -124,7 +124,7 @@ function loadOrderItemGrid() { ...@@ -124,7 +124,7 @@ function loadOrderItemGrid() {
onAfterEdit:function (item) { onAfterEdit:function (item) {
if(item.column.name == "lifnrName"){ if(item.column.name == "lifnrName"){
Public.ajax(web_app.name + "/processQuotedPrice/findPriceByProductAndProcess.ajax?" + Public.ajax(web_app.name + "/processQuotedPrice/findPriceByProductAndProcess.ajax?" +
"productCode="+item.record.productCode+ "productCode="+item.record.productCode.replace(/^0+/, '')+
"&outProcess="+item.record.wempf+ "&outProcess="+item.record.wempf+
"&number="+getMengs(item.record)+ "&number="+getMengs(item.record)+
"&lifnr="+item.record.lifnr, "&lifnr="+item.record.lifnr,
...@@ -243,6 +243,9 @@ function getOrderColumns(){ ...@@ -243,6 +243,9 @@ function getOrderColumns(){
},); },);
columns.push({ columns.push({
display: "产品编码", name: "productCode", width: 140, minWidth: 60, type: "string", align: "left", display: "产品编码", name: "productCode", width: 140, minWidth: 60, type: "string", align: "left",
render:function(item){
return item.productCode.replace(/^0+/, '');
}
},); },);
columns.push({ columns.push({
display: "产品名称", name: "productName", width: 200, minWidth: 60, type: "string", align: "left", display: "产品名称", name: "productName", width: 200, minWidth: 60, type: "string", align: "left",
...@@ -373,7 +376,7 @@ function getOrderColumns(){ ...@@ -373,7 +376,7 @@ function getOrderColumns(){
name: "selectQuotedSuppliers", name: "selectQuotedSuppliers",
getParam: function (item) { getParam: function (item) {
return { return {
productCode: item.productCode, productCode: item.productCode.replace(/^0+/, ''),
outProcess: item.wempf outProcess: item.wempf
} }
}, },
......
...@@ -27,6 +27,9 @@ function initGrid() { ...@@ -27,6 +27,9 @@ function initGrid() {
}, },
{ {
display: "产品编码", name: "PLNBEZ", width: "300", align: "left", type: "string", display: "产品编码", name: "PLNBEZ", width: "300", align: "left", type: "string",
render:function(item){
return item.PLNBEZ.replace(/^0+/, '');
}
}, },
{ {
display: "产品名称", name: "MAKTX", width: "300", align: "left", type: "string", display: "产品名称", name: "MAKTX", width: "300", align: "left", type: "string",
......
package com.huigou.topsun.sap.inventoryRecord.application;
import com.huigou.topsun.sap.inventoryRecord.domain.InventoryRecord;
import com.huigou.topsun.sap.inventoryRecord.domain.query.InventoryRecordQueryRequest;
import com.huigou.topsun.sap.inventoryRecord.domain.vo.InventoryRecordVo;
import java.util.List;
import java.util.Map;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1710:23
*/
public interface InventoryRecordApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/inventoryRecord/inventoryRecord.xml";
String PROCESS_DEFINITION_KEY = "sapInventoryRecordProc";
Map<String,Object> slicedInventoryRecordWmList(InventoryRecordQueryRequest queryRequest);
Map<String,Object> slicedInventoryRecordImList(InventoryRecordQueryRequest queryRequest);
InventoryRecord loadInventoryRecord(String id);
String saveInventoryRecordVo(List<InventoryRecordVo> inventoryRecordVos);
}
package com.huigou.topsun.sap.inventoryRecord.application;
import com.huigou.topsun.sap.inventoryRecord.domain.InventoryRecordItemIm;
import com.huigou.topsun.sap.inventoryRecord.domain.query.InventoryRecordQueryRequest;
import com.huigou.topsun.sap.inventoryRecord.domain.vo.InventoryRecordVo;
import java.util.List;
import java.util.Map;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1710:31
*/
public interface InventoryRecordItemImApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/inventoryRecord/inventoryRecord.xml";
void saveInventoryRecordItemIms(String InventoryRecordId, List<InventoryRecordItemIm> InventoryRecordItems);
Map<String, Object> queryInventoryRecordItemIms(InventoryRecordQueryRequest queryRequest);
List<InventoryRecordItemIm> queryInventoryRecordItemIms(String InventoryRecordId);
void saveInventoryRecordImVo(List<InventoryRecordVo> inventoryRecordVos, String inventoryRecordId);
}
package com.huigou.topsun.sap.inventoryRecord.application;
import com.huigou.topsun.sap.inventoryRecord.domain.InventoryRecordItemWm;
import com.huigou.topsun.sap.inventoryRecord.domain.query.InventoryRecordQueryRequest;
import com.huigou.topsun.sap.inventoryRecord.domain.vo.InventoryRecordVo;
import java.util.List;
import java.util.Map;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1710:31
*/
public interface InventoryRecordItemWmApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/inventoryRecord/inventoryRecord.xml";
void saveInventoryRecordItemWms(String InventoryRecordId, List<InventoryRecordItemWm> InventoryRecordItems);
Map<String, Object> queryInventoryRecordItemWms(InventoryRecordQueryRequest queryRequest);
List<InventoryRecordItemWm> queryInventoryRecordItemWms(String InventoryRecordId);
void saveInventoryRecordWmVo(List<InventoryRecordVo> inventoryRecordVos, String inventoryRecordId);
}
package com.huigou.topsun.sap.inventoryRecord.application.impl;
import cn.hutool.core.bean.BeanUtil;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.inventoryRecord.application.InventoryRecordItemImApplication;
import com.huigou.topsun.sap.inventoryRecord.domain.InventoryRecordItemIm;
import com.huigou.topsun.sap.inventoryRecord.domain.query.InventoryRecordQueryRequest;
import com.huigou.topsun.sap.inventoryRecord.domain.vo.InventoryRecordVo;
import com.huigou.topsun.sap.inventoryRecord.repository.InventoryRecordItemImRepository;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import com.huigou.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1710:38
*/
@Service("inventoryRecordItemImApplication")
public class InventoryRecordItemImApplicationImpl extends BaseApplication implements InventoryRecordItemImApplication {
@Autowired
private InventoryRecordItemImRepository inventoryRecordItemImRepository;
@Override
public void saveInventoryRecordItemIms(String inventoryRecordId, List<InventoryRecordItemIm> inventoryRecordItemIms) {
inventoryRecordItemIms.forEach(inventoryRecordItemIm -> {
inventoryRecordItemIm.setInventoryRecordId(inventoryRecordId);
inventoryRecordItemImRepository.save(inventoryRecordItemIm);
});
}
@Override
public Map<String, Object> queryInventoryRecordItemIms(InventoryRecordQueryRequest queryRequest) {
Map<String, Object> map = new HashMap<>();
if (StringUtil.isNotBlank(queryRequest.getInventoryRecordId())){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "inventoryRecordItemIms");
QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
return map;
}
@Override
public List<InventoryRecordItemIm> queryInventoryRecordItemIms(String inventoryRecordId) {
return inventoryRecordItemImRepository.findByInventoryRecordId(inventoryRecordId);
}
@Override
public void saveInventoryRecordImVo(List<InventoryRecordVo> inventoryRecordVos, String inventoryRecordId) {
List<InventoryRecordItemIm> inventoryRecordItemIms = new ArrayList<>();
for (InventoryRecordVo inventoryRecordVo : inventoryRecordVos) {
InventoryRecordItemIm inventoryRecordItemIm = new InventoryRecordItemIm();
BeanUtil.copyProperties(inventoryRecordVo, inventoryRecordItemIm);
inventoryRecordItemIm.setInventoryRecordId(inventoryRecordId);
inventoryRecordItemIms.add(inventoryRecordItemIm);
}
inventoryRecordItemImRepository.save(inventoryRecordItemIms);
}
}
package com.huigou.topsun.sap.inventoryRecord.application.impl;
import cn.hutool.core.bean.BeanUtil;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.inventoryRecord.application.InventoryRecordItemWmApplication;
import com.huigou.topsun.sap.inventoryRecord.domain.InventoryRecordItemWm;
import com.huigou.topsun.sap.inventoryRecord.domain.query.InventoryRecordQueryRequest;
import com.huigou.topsun.sap.inventoryRecord.domain.vo.InventoryRecordVo;
import com.huigou.topsun.sap.inventoryRecord.repository.InventoryRecordItemWmRepository;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import com.huigou.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1710:38
*/
@Service("inventoryRecordItemWmApplication")
public class InventoryRecordItemWmApplicationImpl extends BaseApplication implements InventoryRecordItemWmApplication {
@Autowired
private InventoryRecordItemWmRepository inventoryRecordItemWmRepository;
@Override
public void saveInventoryRecordItemWms(String inventoryRecordId, List<InventoryRecordItemWm> inventoryRecordItemWms) {
inventoryRecordItemWms.forEach(inventoryRecordItemWm -> {
inventoryRecordItemWm.setInventoryRecordId(inventoryRecordId);
inventoryRecordItemWmRepository.save(inventoryRecordItemWm);
});
}
@Override
public Map<String, Object> queryInventoryRecordItemWms(InventoryRecordQueryRequest queryRequest) {
Map<String, Object> map = new HashMap<>();
if (StringUtil.isNotBlank(queryRequest.getInventoryRecordId())){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "inventoryRecordItemWms");
QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
return map;
}
@Override
public List<InventoryRecordItemWm> queryInventoryRecordItemWms(String inventoryRecordId) {
return inventoryRecordItemWmRepository.findByInventoryRecordId(inventoryRecordId);
}
@Override
public void saveInventoryRecordWmVo(List<InventoryRecordVo> inventoryRecordVos, String inventoryRecordId) {
List<InventoryRecordItemWm> inventoryRecordItemWms = new ArrayList<>();
for (InventoryRecordVo inventoryRecordVo : inventoryRecordVos) {
InventoryRecordItemWm inventoryRecordItemWm = new InventoryRecordItemWm();
BeanUtil.copyProperties(inventoryRecordVo,inventoryRecordItemWm);
inventoryRecordItemWm.setInventoryRecordId(inventoryRecordId);
inventoryRecordItemWms.add(inventoryRecordItemWm);
}
inventoryRecordItemWmRepository.save(inventoryRecordItemWms);
}
}
package com.huigou.topsun.sap.inventoryRecord.controller;
import com.huigou.topsun.common.BillStatus;
import com.huigou.topsun.sap.inventoryRecord.application.InventoryRecordApplication;
import com.huigou.topsun.sap.inventoryRecord.application.InventoryRecordItemImApplication;
import com.huigou.topsun.sap.inventoryRecord.application.InventoryRecordItemWmApplication;
import com.huigou.topsun.sap.inventoryRecord.domain.InventoryRecord;
import com.huigou.topsun.sap.inventoryRecord.domain.query.InventoryRecordQueryRequest;
import com.huigou.topsun.sap.inventoryRecord.domain.vo.InventoryRecordVo;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.annotation.SkipAuth;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.JSONUtil;
import com.huigou.util.SDO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1711:50
*/
@Controller
@ControllerMapping("/inventoryRecord")
public class InventoryRecordController extends CommonController {
private final static Logger LOG = LoggerFactory.getLogger(InventoryRecordController.class);
@Override
protected String getPagePath() {
return "/biz/topsun/sap/inventoryRecord/";
}
@Autowired
private InventoryRecordApplication inventoryRecordApplication;
@Autowired
private InventoryRecordItemWmApplication inventoryRecordItemWmApplication;
@Autowired
private InventoryRecordItemImApplication inventoryRecordItemImApplication;
@SkipAuth
@RequestMapping( value = "/getInventoryRecord")
@ResponseBody
private HashMap<String, Object> getInventoryRecord(@RequestBody List<InventoryRecordVo> inventoryRecordVos){
HashMap<String, Object> messageMap = new HashMap<>();
messageMap.put("CODE","S");
messageMap.put("MSG","成功");
messageMap.put("DATA","");
LOG.info("库存盘点数据=={}", JSONUtil.toString(inventoryRecordVos));
String billCode = "";
try {
if (ObjectUtils.isEmpty(inventoryRecordVos)){
messageMap.put("CODE","E");
messageMap.put("MSG","未接收到数据,请检查");
messageMap.put("DATA","");
}else {
billCode = this.inventoryRecordApplication.saveInventoryRecordVo(inventoryRecordVos);
}
}catch (RuntimeException e){
messageMap.put("CODE","E");
messageMap.put("MSG",e.getMessage());
messageMap.put("DATA","");
}
messageMap.put("ZBPMID",billCode);
return messageMap;
}
public String forwardInventoryRecordWmList(){
this.putAttribute("statusKindsList", BillStatus.getValidMap());
this.putAttribute("loginId",this.getOperator().getPersonMemberId());
return forward("wm/inventoryRecordWmList");
}
public String forwardInventoryRecordImList(){
this.putAttribute("statusKindsList", BillStatus.getValidMap());
this.putAttribute("loginId",this.getOperator().getPersonMemberId());
return forward("im/inventoryRecordImList");
}
public String slicedInventoryRecordWmList(){
SDO sdo = this.getSDO();
InventoryRecordQueryRequest queryRequest = sdo.toQueryRequest(InventoryRecordQueryRequest.class);
Map<String, Object> map = inventoryRecordApplication.slicedInventoryRecordWmList(queryRequest);
return toResult(map);
}
public String queryInventoryRecordWmByInventoryRecordId(){
SDO sdo = this.getSDO();
String inventoryRecordId = sdo.getString("inventoryRecordId");
return packGridDataAndResult(inventoryRecordItemWmApplication.queryInventoryRecordItemWms(inventoryRecordId));
}
public String slicedInventoryRecordImList(){
SDO sdo = this.getSDO();
InventoryRecordQueryRequest queryRequest = sdo.toQueryRequest(InventoryRecordQueryRequest.class);
Map<String, Object> map = inventoryRecordApplication.slicedInventoryRecordImList(queryRequest);
return toResult(map);
}
public String queryInventoryRecordImByInventoryRecordId(){
SDO sdo = this.getSDO();
String inventoryRecordId = sdo.getString("inventoryRecordId");
return packGridDataAndResult(inventoryRecordItemImApplication.queryInventoryRecordItemIms(inventoryRecordId));
}
public String showInventoryRecordDetail(){
SDO sdo = this.getSDO();
String id = sdo.getBizId();
InventoryRecord inventoryRecord = inventoryRecordApplication.loadInventoryRecord(id);
switch (inventoryRecord.getZtype()){
case "IM":
return forward("im/inventoryRecordImDetail",inventoryRecord);
case "WM":
return forward("wm/inventoryRecordWmDetail",inventoryRecord);
}
return null;
}
}
package com.huigou.topsun.sap.inventoryRecord.domain;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.huigou.data.domain.model.FlowBillAbstractEntity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @author xin.lu
* @Description: 库存盘点主表
* @date 2025/7/179:52
*/
@Entity
@Data
@Table(name = "sap_inventory_record")
public class InventoryRecord extends FlowBillAbstractEntity {
@Column(name = "ZTYPE")
private String ztype;
@Override
protected String getCodeRuleId() {
return "inventoryRecord";
}
}
package com.huigou.topsun.sap.inventoryRecord.domain;
import com.huigou.data.domain.model.AbstractEntity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;
/**
* IM库存盘点
*/
@Entity
@Data
@Table(name = "sap_inventory_record_item_im")
public class InventoryRecordItemIm extends AbstractEntity {
@Column(name = "inventory_record_id")
private String inventoryRecordId;
@Column(name = "IBLNR")
private String iblnr; // 库存盘点凭证
@Column(name = "GJAHR")
private String gjahr; // 会计年度
@Column(name = "ZEILI")
private String zeili; // 行号
@Column(name = "MATNR")
private String matnr; // 物料编号
@Column(name = "MAKTX")
private String maktx;//物料描述
@Column(name = "WERKS")
private String werks; // 工厂
//工厂名称
@Column(name = "name1")
private String name1;
@Column(name = "LGORT")
private String lgort; // 存储地点
//存储地点名称
@Column(name = "lgobe")
private String lgobe;
@Column(name = "CHARG")
private String charg; // 批次编号
@Column(name = "ZLDAT")
private String zldat; // 盘点日期
@Column(name = "BUCHM")
private BigDecimal buchm; // 账面数量
@Column(name = "ERFMG")
private BigDecimal erfmg; // 盘点数量
@Column(name = "DIFMG")
private BigDecimal difmg; // 差额数量
@Column(name = "MEINS")
private String meins; // 基本计量单位
//单位描述
@Column(name = "MSEHL")
private String msehl;
@Column(name = "WRTZL")
private BigDecimal wrtzl; // 盘点金额
@Column(name = "WRTBM")
private BigDecimal wrtbm; // 账面金额
@Column(name = "DMBTR")
private BigDecimal dmbtr; // 本币差额
@Column(name = "WAERS")
private String waers; // 货币码
//货币描述
@Column(name = "ktext")
private String ktext;
}
\ No newline at end of file
package com.huigou.topsun.sap.inventoryRecord.domain;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.huigou.data.domain.model.AbstractEntity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;
/**
* WM库存盘点
*/
@Entity
@Data
@Table(name = "sap_inventory_record_item_wm")
public class InventoryRecordItemWm extends AbstractEntity {
@Column(name = "inventory_record_id")
private String inventoryRecordId;
// 仓库号
@Column(name = "lgnum")
private String lgnum;
@Column(name = "lnumt")
private String lnumt;
// 盘点记录号
@Column(name = "ivnum")
private String ivnum;
// 重新盘点版本
@Column(name = "nvers")
private String nvers;
// 项目号
@Column(name = "ivpos")
private String ivpos;
// 仓位
@Column(name = "lgpla")
private String lgpla;
// 物料
@Column(name = "matnr")
private String matnr;
// 物料描述
@Column(name = "MAKTX")
private String maktx;
// 批次
@Column(name = "charg")
private String charg;
// 工厂
@Column(name = "werks")
private String werks;
//工厂名称
@Column(name = "name1")
private String name1;
// 存储地点
@Column(name = "lgort")
private String lgort;
//存储地点名称
@Column(name = "lgobe")
private String lgobe;
// 库存类别
@Column(name = "bestq")
private String bestq;
// 特殊库存标识
@Column(name = "sobkz")
private String sobkz;
// 特殊库存编号
@Column(name = "sonum")
private String sonum;
// 盘点数量
@Column(name = "menga")
private BigDecimal menga;
// 盘点数量单位
@Column(name = "altme")
private String altme;
//单位描述
@Column(name = "MSEHL")
private String msehl;
// 账面数量
@Column(name = "gesme")
private BigDecimal gesme;
// 差异
@Column(name = "abwei")
private String abwei;
// 价值差额
@Column(name = "dwert")
private BigDecimal dwert;
// 货币
@Column(name = "waers")
private String waers;
//货币描述
@Column(name = "ktext")
private String ktext;
// 盘点完成日期
@Column(name = "idatu")
private String idatu;
}
\ No newline at end of file
package com.huigou.topsun.sap.inventoryRecord.domain.query;
import com.huigou.data.domain.query.QueryAbstractRequest;
import lombok.Data;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1710:29
*/
@Data
public class InventoryRecordQueryRequest extends QueryAbstractRequest {
//公共条件
private String billCode;
private String inventoryRecordId;
private String ztype;
private String name1;
private String lgobe;
private String matnr;
private String maktx;
private String charg;
//IM查询条件
private String iblnr;
private String gjahr;
//WM查询条件
private String lnumt;
private String ivnum;
private String nvers;
}
package com.huigou.topsun.sap.inventoryRecord.domain.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1810:29
*/
@Data
public class InventoryRecordVo implements Serializable {
@JsonProperty("ZTYPE")
private String ztype;
@JsonProperty("LGNUM")
private String lgnum;
@JsonProperty("LNUMT")
private String lnumt;
@JsonProperty("IVNUM")
private String ivnum;
@JsonProperty("NVERS")
private String nvers;
@JsonProperty("IVPOS")
private String ivpos;
@JsonProperty("LGPLA")
private String lgpla;
@JsonProperty("MATNR")
private String matnr;
@JsonProperty("MAKTX")
private String maktx;
@JsonProperty("CHARG")
private String charg;
@JsonProperty("WERKS")
private String werks;
@JsonProperty("NAME1")
private String name1;
@JsonProperty("LGORT")
private String lgort;
@JsonProperty("LGOBE")
private String lgobe;
@JsonProperty("BESTQ")
private String bestq;
@JsonProperty("SOBKZ")
private String sobkz;
@JsonProperty("SONUM")
private String sonum;
@JsonProperty("MENGA")
private BigDecimal menga;
@JsonProperty("ALTME")
private String altme;
@JsonProperty("MSEHL")
private String msehl;
@JsonProperty("GESME")
private BigDecimal gesme;
@JsonProperty("ABWEI")
private String abwei;
@JsonProperty("DWERT")
private BigDecimal dwert;
@JsonProperty("WAERS")
private String waers;
@JsonProperty("KTEXT")
private String ktext;
@JsonProperty("IDATU")
private String idatu;
@JsonProperty("ZBPMID")
private String zbpmid;
@JsonProperty("ZSP")
private String zsp;
@JsonProperty("ZTSZT")
private String ztszt;
@JsonProperty("UNAME")
private String uname;
@JsonProperty("IBLNR")
private String iblnr; // 库存盘点凭证
@JsonProperty("GJAHR")
private String gjahr; // 会计年度
@JsonProperty("ZEILI")
private String zeili; // 行号
@JsonProperty("ZLDAT")
private String zldat; // 盘点日期
@JsonProperty("BUCHM")
private BigDecimal buchm; // 账面数量
@JsonProperty("ERFMG")
private BigDecimal erfmg; // 盘点数量
@JsonProperty("DIFMG")
private BigDecimal difmg; // 差额数量
@JsonProperty("MEINS")
private String meins; // 基本计量单位
@JsonProperty("WRTZL")
private BigDecimal wrtzl; // 盘点金额
@JsonProperty("WRTBM")
private BigDecimal wrtbm; // 账面金额
@JsonProperty("DMBTR")
private BigDecimal dmbtr; // 本币差额
}
package com.huigou.topsun.sap.inventoryRecord.repository;
import com.huigou.topsun.sap.inventoryRecord.domain.InventoryRecordItemIm;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1710:20
*/
public interface InventoryRecordItemImRepository extends JpaRepository<InventoryRecordItemIm, String> {
List<InventoryRecordItemIm> findByInventoryRecordId(String inventoryRecordId);
}
package com.huigou.topsun.sap.inventoryRecord.repository;
import com.huigou.topsun.sap.inventoryRecord.domain.InventoryRecordItemWm;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1710:21
*/
public interface InventoryRecordItemWmRepository extends JpaRepository<InventoryRecordItemWm,String> {
List<InventoryRecordItemWm> findByInventoryRecordId(String inventoryRecordId);
}
package com.huigou.topsun.sap.inventoryRecord.repository;
import com.huigou.topsun.sap.inventoryRecord.domain.InventoryRecord;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/7/1710:20
*/
public interface InventoryRecordRepository extends JpaRepository<InventoryRecord, String> {
}
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="sapInventoryRecordProc" name="库存盘点" isExecutable="true">
<extensionElements>
<activiti:executionListener event="start" delegateExpression="#{inventoryRecordApplication}"></activiti:executionListener>
<activiti:executionListener event="end" delegateExpression="#{inventoryRecordApplication}"></activiti:executionListener>
</extensionElements>
<startEvent id="startevent1" name="Start"></startEvent>
<endEvent id="endevent1" name="End"></endEvent>
<userTask id="Apply" name="库存盘点" activiti:formKey="inventoryRecord/showInventoryRecordDetail.job">
<extensionElements>
<activiti:taskListener event="all" delegateExpression="#{inventoryRecordApplication}"></activiti:taskListener>
<activiti:taskListener event="saveBizData" delegateExpression="#{inventoryRecordApplication}"></activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="Approve" name="库存盘点审批" activiti:assignee="${assignee} " activiti:formKey="inventoryRecord/showInventoryRecordDetail.job">
<extensionElements>
<activiti:taskListener event="all" delegateExpression="#{inventoryRecordApplication}"></activiti:taskListener>
<activiti:taskListener event="saveBizData" delegateExpression="#{inventoryRecordApplication}"></activiti:taskListener>
</extensionElements>
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="handlerList" activiti:elementVariable="assignee">
<completionCondition>${chiefApprovePassed}</completionCondition>
</multiInstanceLoopCharacteristics>
</userTask>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="Apply"></sequenceFlow>
<sequenceFlow id="flow2" sourceRef="Apply" targetRef="Approve"></sequenceFlow>
<exclusiveGateway id="ApproveFinished" name="审批结束"></exclusiveGateway>
<sequenceFlow id="flow3" name="审批通过" sourceRef="ApprovePassed" targetRef="ApproveFinished">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${approvePassed}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow4" name="审批结束" sourceRef="ApproveFinished" targetRef="endevent1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${approveFinished}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow5" name="审批未结束" sourceRef="ApproveFinished" targetRef="Approve">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approveFinished}]]></conditionExpression>
</sequenceFlow>
<exclusiveGateway id="ApprovePassed" name="审批通过"></exclusiveGateway>
<sequenceFlow id="flow6" sourceRef="Approve" targetRef="ApprovePassed"></sequenceFlow>
<sequenceFlow id="flow9" name="审批未通过" sourceRef="ApprovePassed" targetRef="Apply">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approvePassed}]]></conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_sapInventoryRecordProc">
<bpmndi:BPMNPlane bpmnElement="sapInventoryRecordProc" id="BPMNPlane_sapInventoryRecordProc">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="35.0" width="35.0" x="355.0" y="50.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
<omgdc:Bounds height="35.0" width="35.0" x="355.0" y="550.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Apply" id="BPMNShape_Apply">
<omgdc:Bounds height="55.0" width="161.0" x="292.0" y="140.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Approve" id="BPMNShape_Approve">
<omgdc:Bounds height="55.0" width="161.0" x="292.0" y="240.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="ApproveFinished" id="BPMNShape_ApproveFinished">
<omgdc:Bounds height="40.0" width="40.0" x="352.0" y="440.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="ApprovePassed" id="BPMNShape_ApprovePassed">
<omgdc:Bounds height="40.0" width="40.0" x="352.0" y="349.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
<omgdi:waypoint x="372.0" y="85.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="140.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
<omgdi:waypoint x="372.0" y="195.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="240.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
<omgdi:waypoint x="372.0" y="389.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="440.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="48.0" x="320.0" y="396.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
<omgdi:waypoint x="372.0" y="480.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="550.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="48.0" x="382.0" y="489.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
<omgdi:waypoint x="392.0" y="460.0"></omgdi:waypoint>
<omgdi:waypoint x="519.0" y="459.0"></omgdi:waypoint>
<omgdi:waypoint x="519.0" y="317.0"></omgdi:waypoint>
<omgdi:waypoint x="519.0" y="267.0"></omgdi:waypoint>
<omgdi:waypoint x="489.0" y="267.0"></omgdi:waypoint>
<omgdi:waypoint x="453.0" y="267.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="60.0" x="459.0" y="411.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
<omgdi:waypoint x="372.0" y="295.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="349.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
<omgdi:waypoint x="352.0" y="369.0"></omgdi:waypoint>
<omgdi:waypoint x="231.0" y="369.0"></omgdi:waypoint>
<omgdi:waypoint x="231.0" y="167.0"></omgdi:waypoint>
<omgdi:waypoint x="292.0" y="167.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="60.0" x="257.0" y="376.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
\ No newline at end of file
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
</sql> </sql>
<field name="供应商编码" title="供应商编码" code="supplier" width="100"/> <field name="供应商编码" title="供应商编码" code="supplier" width="100"/>
<field name="供应商名称" title="供应商名称" code="supplierName" width="200"/> <field name="供应商名称" title="供应商名称" code="supplierName" width="200"/>
<condition column="product_code" name="productCode" symbol="=" alias="pi"/> <condition column="product_code" name="productCode" symbol="like" alias="pi"/>
<condition column="out_process" name="outProcess" symbol="=" alias="pi"/> <condition column="out_process" name="outProcess" symbol="=" alias="pi"/>
</easy-search> </easy-search>
......
<?xml version="1.0" encoding="UTF-8" ?>
<query-mappings>
<query name="inventoryRecordWmList" label="库存盘点" table="sap_inventory_record">
<sql-query>
SELECT t.id,
t.bill_code,
t.fillin_date,
t.status,
t.full_id,
t.person_member_name,
t.ZTYPE,
wm.lgnum,
wm.ivpos,
wm.lgpla,
wm.matnr,
wm.charg,
wm.werks,
wm.lgort,
wm.bestq,
wm.sobkz,
wm.sonum,
wm.menga,
wm.altme,
wm.gesme,
wm.abwei,
wm.dwert,
wm.waers,
wm.idatu,
wm.ivnum,
wm.nvers,
wm.lnumt,
wm.name1,
wm.lgobe,
wm.ktext,
wm.msehl,
wm.maktx
FROM sap_inventory_record_item_wm wm
left join sap_inventory_record t on t.id = wm.inventory_record_id WHERE t.ztype = 'WM'
</sql-query>
<condition column="bill_code" name="billCode" type="java.lang.String" symbol="like" alias="p"/>
<condition column="status" name="statusKind" type="java.lang.Integer" symbol="in" alias="p"/>
<condition column="fillin_date" name="fillinBeginDate" type="java.util.Date" symbol="&gt;=" alias="p"/>
<condition column="fillin_date" name="fillinEndDate" type="java.util.Date" symbol="&lt;=" alias="p"/>
<condition column="ztype" name="ztype" type="java.lang.String" symbol="=" alias="t"/>
<condition column="lnumt" name="lnumt" type="java.lang.String" symbol="like" alias="wm"/>
<condition column="ivnum" name="ivnum" type="java.lang.String" symbol="like" alias="wm"/>
<condition column="nvers" name="nvers" type="java.lang.String" symbol="like" alias="wm"/>
<condition column="name1" name="name1" type="java.lang.String" symbol="like" alias="wm"/>
<condition column="lgobe" name="lgobe" type="java.lang.String" symbol="like" alias="wm"/>
<condition column="matnr" name="matnr" type="java.lang.String" symbol="like" alias="wm"/>
<condition column="maktx" name="maktx" type="java.lang.String" symbol="like" alias="wm"/>
</query>
<query name="inventoryRecordImList" label="库存盘点" table="sap_inventory_record">
<sql-query>
SELECT t.id,
t.bill_code,
t.fillin_date,
t.status,
t.full_id,
t.person_member_name,
t.ZTYPE,
im.zeili,
im.matnr,
im.werks,
im.lgort,
im.charg,
im.zldat,
im.buchm,
im.erfmg,
im.difmg,
im.meins,
im.wrtzl,
im.wrtbm,
im.dmbtr,
im.waers,
im.iblnr,
im.gjahr,
im.name1,
im.lgobe,
im.ktext,
im.msehl,
im.maktx
FROM sap_inventory_record_item_im im
left join sap_inventory_record t on t.id = im.inventory_record_id WHERE t.ztype = 'IM'
</sql-query>
<condition column="bill_code" name="billCode" type="java.lang.String" symbol="like" alias="p"/>
<condition column="status" name="statusKind" type="java.lang.Integer" symbol="in" alias="p"/>
<condition column="fillin_date" name="fillinBeginDate" type="java.util.Date" symbol="&gt;=" alias="p"/>
<condition column="fillin_date" name="fillinEndDate" type="java.util.Date" symbol="&lt;=" alias="p"/>
<condition column="ztype" name="ztype" type="java.lang.String" symbol="=" alias="t"/>
<condition column="name1" name="name1" type="java.lang.String" symbol="like" alias="im"/>
<condition column="lgobe" name="lgobe" type="java.lang.String" symbol="like" alias="im"/>
<condition column="matnr" name="matnr" type="java.lang.String" symbol="like" alias="im"/>
<condition column="maktx" name="maktx" type="java.lang.String" symbol="like" alias="im"/>
<condition column="iblnr" name="iblnr" type="java.lang.String" symbol="like" alias="im"/>
<condition column="gjahr" name="gjahr" type="java.lang.String" symbol="like" alias="im"/>
<condition column="charg" name="charg" type="java.lang.String" symbol="like" alias="im"/>
</query>
<query name="inventoryRecordItemIms">
<sql-query>
SELECT t.* FROM sap_inventory_record_item_im t WHERE 1 =1
</sql-query>
<condition column="inventory_record_id" name="inventoryRecordId" type="java.lang.String" symbol="=" alias="t"/>
</query>
<query name="inventoryRecordItemWms">
<sql-query>
SELECT t.* FROM sap_inventory_record_item_wm t WHERE 1 =1
</sql-query>
<condition column="inventory_record_id" name="inventoryRecordId" type="java.lang.String" symbol="=" alias="t"/>
</query>
</query-mappings>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment