mirror of
https://github.com/weizhiqiang1995/erp-pro.git
synced 2024-09-20 15:06:00 +08:00
产品新增根据产品规格查询库存流水订单
This commit is contained in:
parent
49da76e549
commit
88b31c09a2
|
@ -146,5 +146,17 @@ public class MaterialController {
|
|||
public void queryMaterialTockByNormsIdAndDepotId(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
materialService.queryMaterialTockByNormsIdAndDepotId(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据产品规格id获取库存订单
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/MaterialController/queryMaterialDepotItemByNormsId")
|
||||
@ResponseBody
|
||||
public void queryMaterialDepotItemByNormsId(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
materialService.queryMaterialDepotItemByNormsId(inputObject, outputObject);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -59,4 +59,6 @@ public interface MaterialDao {
|
|||
|
||||
public Map<String, Object> queryMaterialTockByNormsIdAndDepotId(Map<String, Object> params) throws Exception;
|
||||
|
||||
public List<Map<String, Object>> queryMaterialDepotItemByNormsId(Map<String, Object> params, PageBounds pageBounds) throws Exception;
|
||||
|
||||
}
|
||||
|
|
|
@ -27,4 +27,6 @@ public interface MaterialService {
|
|||
|
||||
public void queryMaterialTockByNormsIdAndDepotId(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void queryMaterialDepotItemByNormsId(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
}
|
||||
|
|
|
@ -498,5 +498,23 @@ public class MaterialServiceImpl implements MaterialService{
|
|||
Map<String, Object> bean = materialDao.queryMaterialTockByNormsIdAndDepotId(params);
|
||||
outputObject.setBean(bean);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据产品规格id获取库存订单
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void queryMaterialDepotItemByNormsId(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
params.put("userId", inputObject.getLogParams().get("id"));
|
||||
List<Map<String, Object>> beans = materialDao.queryMaterialDepotItemByNormsId(params,
|
||||
new PageBounds(Integer.parseInt(params.get("page").toString()), Integer.parseInt(params.get("limit").toString())));
|
||||
PageList<Map<String, Object>> beansPageList = (PageList<Map<String, Object>>)beans;
|
||||
int total = beansPageList.getPaginator().getTotalCount();
|
||||
outputObject.setBeans(beans);
|
||||
outputObject.settotal(total);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -202,17 +202,20 @@
|
|||
a.id,
|
||||
b.`name` unitName,
|
||||
CASE b.base_unit WHEN '1' THEN '基础单位' WHEN '2' THEN '副单位' ELSE '' END baseUnit,
|
||||
IFNULL(a.safety_tock, '0') safetyTock,
|
||||
IFNULL(a.safety_tock, 0) safetyTock,
|
||||
FORMAT(a.retail_price, 2) retailPrice,
|
||||
FORMAT(a.low_price, 2) lowPrice,
|
||||
FORMAT(a.estimate_purchase_price, 2) estimatePurchasePrice,
|
||||
FORMAT(a.sale_price, 2) salePrice,
|
||||
IFNULL(SUM(c.oper_number * (CASE d.type WHEN 2 THEN 1 ELSE -1 END)), 0) currentTock
|
||||
IFNULL(SUM(c.oper_number * (CASE d.sub_type
|
||||
WHEN 10 THEN 0
|
||||
ELSE CASE d.type WHEN 2 THEN 1 ELSE -1 END
|
||||
END)), 0) currentTock
|
||||
FROM
|
||||
erp_material_norms a
|
||||
LEFT JOIN erp_unit b ON a.unit_id = b.id
|
||||
LEFT JOIN erp_depotitem c ON a.id = c.m_unit_id
|
||||
LEFT JOIN erp_depothead d ON c.header_id = d.id AND d.sub_type != '10'
|
||||
LEFT JOIN erp_depothead d ON c.header_id = d.id
|
||||
WHERE
|
||||
a.meterial_id = #{id}
|
||||
AND a.delete_flag = '0'
|
||||
|
@ -396,5 +399,30 @@
|
|||
AND b.sub_type != '10'
|
||||
GROUP BY a.m_unit_id
|
||||
</select>
|
||||
|
||||
<select id="queryMaterialDepotItemByNormsId" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
b.id,
|
||||
b.default_number defaultNumber,
|
||||
a.oper_number operNumber,
|
||||
b.type,
|
||||
a.unit_price unitPrice,
|
||||
b.link_number linkNumber,
|
||||
b.status,
|
||||
b.sub_type subType,
|
||||
CONVERT(IFNULL(a.tax_last_money, a.all_price), decimal(24, 2)) taxLastMoney,
|
||||
CONVERT (b.oper_time, CHAR) operTime,
|
||||
c.supplier supplierName
|
||||
FROM
|
||||
erp_depotitem a
|
||||
LEFT JOIN erp_depothead b ON a.header_id = b.id
|
||||
LEFT JOIN erp_supplier c ON b.organ_id = c.id
|
||||
WHERE
|
||||
a.m_unit_id = #{mUnitId}
|
||||
AND a.tenant_id = #{userId}
|
||||
AND a.delete_flag = '0'
|
||||
AND b.sub_type != '10'
|
||||
ORDER BY b.oper_time DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -137,6 +137,11 @@
|
|||
<property id="depotId" name="depotId" ref="required" var="仓库id"/>
|
||||
<property id="mUnitId" name="mUnitId" ref="required" var="规格id"/>
|
||||
</url>
|
||||
<url id="material012" path="/post/MaterialController/queryMaterialDepotItemByNormsId" val="根据产品规格id获取库存订单" allUse="2">
|
||||
<property id="mUnitId" name="mUnitId" ref="required" var="规格id"/>
|
||||
<property id="limit" name="limit" ref="required,num" var="分页参数,每页多少条数据" />
|
||||
<property id="page" name="page" ref="required,num" var="分页参数,第几页"/>
|
||||
</url>
|
||||
<!-- 产品结束 -->
|
||||
|
||||
<!-- 其他入库开始 -->
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
|
||||
var mUnitId = "";
|
||||
|
||||
layui.config({
|
||||
base: basePath,
|
||||
version: skyeyeVersion
|
||||
|
@ -35,6 +37,17 @@ layui.config({
|
|||
form.render();
|
||||
}
|
||||
});
|
||||
|
||||
$("body").on("click", ".notice-title-click", function(e){
|
||||
mUnitId = $(this).attr("rowid");
|
||||
_openNewWindows({
|
||||
url: "../../tpl/material/materialstocklist.html",
|
||||
title: "库存明细",
|
||||
pageId: "materialstocklist",
|
||||
area: ['100vw', '100vh'],
|
||||
callBack: function(refreshCode){
|
||||
}});
|
||||
});
|
||||
|
||||
});
|
||||
});
|
|
@ -0,0 +1,83 @@
|
|||
|
||||
layui.config({
|
||||
base: basePath,
|
||||
version: skyeyeVersion
|
||||
}).extend({ //指定js别名
|
||||
window: 'js/winui.window'
|
||||
}).define(['window', 'table', 'jquery', 'winui'], function (exports) {
|
||||
|
||||
winui.renderColor();
|
||||
|
||||
var $ = layui.$,
|
||||
table = layui.table;
|
||||
|
||||
//表格渲染
|
||||
table.render({
|
||||
id: 'messageTable',
|
||||
elem: '#messageTable',
|
||||
method: 'post',
|
||||
url: reqBasePath + 'material012',
|
||||
where: {mUnitId: parent.mUnitId},
|
||||
even: true, //隔行变色
|
||||
page: true,
|
||||
limits: [8, 16, 24, 32, 40, 48, 56],
|
||||
limit: 8,
|
||||
cols: [[
|
||||
{ title: '序号', type: 'numbers'},
|
||||
{ field: 'defaultNumber', title: '单据编号', align: 'left', width: 250, templet: function(d){
|
||||
var str = '<a lay-event="details" class="notice-title-click">' + d.defaultNumber + '</a>';
|
||||
if(!isNull(d.linkNumber)){
|
||||
str += '<span class="state-new">[转]</span>';
|
||||
if(d.status == 2){
|
||||
str += '<span class="state-up"> [正常]</span>';
|
||||
}else{
|
||||
str += '<span class="state-down"> [预警]</span>';
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}},
|
||||
{ field: 'supplierName', title: '供应商', align: 'left', width: 150},
|
||||
{ field: 'unitPrice', title: '入库单价', align: 'left', width: 120 },
|
||||
{ field: 'operNumber', title: '数量', align: 'left', width: 120, templet: function(d){
|
||||
if(d.type == 2){
|
||||
return d.operNumber;
|
||||
}else{
|
||||
return "-" + d.operNumber;
|
||||
}
|
||||
}},
|
||||
{ field: 'taxLastMoney', title: '含税合计', align: 'left', width: 120 },
|
||||
{ field: 'operTime', title: '单据日期', align: 'center', width: 140 }
|
||||
]],
|
||||
done: function(){
|
||||
}
|
||||
});
|
||||
|
||||
table.on('tool(messageTable)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
|
||||
var data = obj.data; //获得当前行数据
|
||||
var layEvent = obj.event; //获得 lay-event 对应的值
|
||||
if (layEvent === 'details') { //详情
|
||||
details(data);
|
||||
}
|
||||
});
|
||||
|
||||
//详情
|
||||
function details(data){
|
||||
rowId = data.id;
|
||||
var url = "";
|
||||
if(data.subType == '1'){//采购入库
|
||||
url = "../../tpl/purchaseput/purchaseputdetails.html";
|
||||
}else if(data.subType == '4'){//其他入库
|
||||
url = "../../tpl/otherwarehous/otherwarehousdetails.html";
|
||||
}
|
||||
_openNewWindows({
|
||||
url: url,
|
||||
title: "单据详情",
|
||||
pageId: "otherwarehousdetails",
|
||||
area: ['90vw', '90vh'],
|
||||
callBack: function(refreshCode){
|
||||
}});
|
||||
}
|
||||
|
||||
exports('materialstocklist', {});
|
||||
|
||||
});
|
|
@ -17,7 +17,7 @@
|
|||
<div class="layui-form-item layui-col-xs12">
|
||||
<label class="layui-form-label">当前存量:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
<a class="notice-title-click">{{currentTock}}</a>
|
||||
<a class="notice-title-click" rowid="{{id}}">{{currentTock}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
|
@ -99,7 +99,7 @@
|
|||
<td>{{baseUnit}}</td>
|
||||
<td>{{unitName}}</td>
|
||||
<td>{{safetyTock}}</td>
|
||||
<td><a class="notice-title-click">{{currentTock}}</a></td>
|
||||
<td><a class="notice-title-click" rowid="{{id}}">{{currentTock}}</a></td>
|
||||
<td>{{retailPrice}}</td>
|
||||
<td>{{lowPrice}}</td>
|
||||
<td>{{estimatePurchasePrice}}</td>
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title></title>
|
||||
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
|
||||
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
|
||||
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin:auto 10px;">
|
||||
<table id="messageTable" lay-filter="messageTable"></table>
|
||||
</div>
|
||||
<script src="../../assets/lib/layui/layui.js"></script>
|
||||
<script src="../../assets/lib/layui/custom.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({base: '../../js/material/'}).use('materialstocklist');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in a new issue