来料和分料分页面展示,代码优化修改
This commit is contained in:
parent
e2bb23f0ca
commit
e3e16fa568
|
|
@ -70,11 +70,19 @@ public class BusiMaterialOperateController extends BaseController
|
|||
/**
|
||||
* 新增物料操作流水
|
||||
*/
|
||||
@GetMapping("/add")
|
||||
public String add(@RequestParam(name = "operType",required = false) String operType,ModelMap mmap)
|
||||
@GetMapping("/addIn")
|
||||
public String addIn()
|
||||
{
|
||||
mmap.put("operType",operType);
|
||||
return prefix + "/add";
|
||||
return prefix + "/addIn";
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物料操作流水
|
||||
*/
|
||||
@GetMapping("/addOut")
|
||||
public String addOut()
|
||||
{
|
||||
return prefix + "/addOut";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.busi.controller;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -131,15 +132,61 @@ public class BusiProductRequireController extends BaseController
|
|||
return toAjax(busiProductRequireService.deleteBusiProductRequireByIds(ids));
|
||||
}
|
||||
|
||||
////////////////
|
||||
|
||||
/**
|
||||
* 通过订单ID查询 物料类型列表
|
||||
*/
|
||||
@PostMapping("/selMaterialTypeListByOrderId")
|
||||
@ResponseBody
|
||||
public AjaxResult selMaterialTypeListByOrderId(@RequestParam(name = "orderId",required = false) String orderId)
|
||||
{
|
||||
List<Map<String,String>> list = busiProductRequireService.selMaterialTypeListByOrderId(orderId);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过订单ID和物料类型查询 物料颜色列表
|
||||
*/
|
||||
@PostMapping("/selMaterialColorListByOrderIdAndType")
|
||||
@ResponseBody
|
||||
public AjaxResult selMaterialColorListByOrderIdAndType(@RequestParam Map<String,String> queryMap)
|
||||
{
|
||||
List<Map<String,String>> list = busiProductRequireService.selMaterialColorListByOrderIdAndType(queryMap);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过订单ID查询产品需求列表
|
||||
*/
|
||||
@PostMapping("/listByOrderId")
|
||||
@ResponseBody
|
||||
public AjaxResult list(@RequestParam(name = "orderId",required = false) String orderId)
|
||||
public AjaxResult listByOrderId(@RequestParam(name = "orderId", required = false) String orderId) {
|
||||
BusiProductRequire query = new BusiProductRequire();
|
||||
query.setOrderId(orderId);
|
||||
List<BusiProductRequire> list = busiProductRequireService.selectBusiProductRequireList(query);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过产品ID查询 物料类型列表
|
||||
*/
|
||||
@PostMapping("/selMaterialTypeListByProductId")
|
||||
@ResponseBody
|
||||
public AjaxResult selMaterialTypeListByProductId(@RequestParam(name = "productId",required = false) String productId)
|
||||
{
|
||||
List<Map<String,String>> list = busiProductRequireService.selectMaterialRequireByOrderId(orderId);
|
||||
List<Map<String,String>> list = busiProductRequireService.selMaterialTypeListByProductId(productId);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过产品ID和查询物料颜色查询物料类型需求列表
|
||||
*/
|
||||
@PostMapping("/materialColorListByProductIdAndType")
|
||||
@ResponseBody
|
||||
public AjaxResult selMaterialColorListByProductIdAndType(@RequestParam Map<String,String> queryMap)
|
||||
{
|
||||
List<Map<String,String>> list = busiProductRequireService.selMaterialColorListByProductIdAndType(queryMap);
|
||||
return success(list);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
|
|||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 物料需求对象 busi_material_require
|
||||
*
|
||||
|
|
@ -24,7 +26,7 @@ public class BusiMaterialRequire extends BaseEntity
|
|||
|
||||
/** 数量 */
|
||||
@Excel(name = "数量")
|
||||
private Long amount;
|
||||
private BigDecimal amount;
|
||||
|
||||
/** 单位 */
|
||||
@Excel(name = "单位")
|
||||
|
|
@ -56,15 +58,15 @@ public class BusiMaterialRequire extends BaseEntity
|
|||
{
|
||||
return productRequireId;
|
||||
}
|
||||
public void setAmount(Long amount)
|
||||
{
|
||||
|
||||
public BigDecimal getAmount() {
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void setAmount(BigDecimal amount) {
|
||||
this.amount = amount;
|
||||
}
|
||||
|
||||
public Long getAmount()
|
||||
{
|
||||
return amount;
|
||||
}
|
||||
public void setUnit(String unit)
|
||||
{
|
||||
this.unit = unit;
|
||||
|
|
|
|||
|
|
@ -87,11 +87,11 @@ public interface BusiProductRequireMapper
|
|||
*/
|
||||
public int deleteBusiMaterialRequireByProductRequireId(String id);
|
||||
|
||||
/**
|
||||
* 通过订单ID查询物料需求列表
|
||||
*
|
||||
* @param orderId 订单ID
|
||||
* @return 结果
|
||||
*/
|
||||
List<Map<String, String>> selectMaterialRequireByOrderId(String orderId);
|
||||
List<Map<String, String>> selMaterialTypeListByOrderId(String orderId);
|
||||
|
||||
List<Map<String, String>> selMaterialColorListByOrderIdAndType(Map<String, String> queryMap);
|
||||
|
||||
List<Map<String, String>> selMaterialTypeListByProductId(String productId);
|
||||
|
||||
List<Map<String, String>> selMaterialColorListByProductIdAndType(Map<String, String> queryMap);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,11 +61,11 @@ public interface IBusiProductRequireService
|
|||
*/
|
||||
public int deleteBusiProductRequireById(String id);
|
||||
|
||||
/**
|
||||
* 按订单查询物料需求
|
||||
*
|
||||
* @param id 产品需求主键
|
||||
* @return 结果
|
||||
*/
|
||||
public List<Map<String,String>> selectMaterialRequireByOrderId(String orderId);
|
||||
List<Map<String, String>> selMaterialTypeListByOrderId(String orderId);
|
||||
|
||||
List<Map<String, String>> selMaterialColorListByOrderIdAndType(Map<String, String> queryMap);
|
||||
|
||||
List<Map<String, String>> selMaterialTypeListByProductId(String productId);
|
||||
|
||||
List<Map<String, String>> selMaterialColorListByProductIdAndType(Map<String, String> queryMap);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -111,8 +111,23 @@ public class BusiProductRequireServiceImpl implements IBusiProductRequireService
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, String>> selectMaterialRequireByOrderId(String orderId) {
|
||||
return busiProductRequireMapper.selectMaterialRequireByOrderId(orderId);
|
||||
public List<Map<String, String>> selMaterialTypeListByOrderId(String orderId) {
|
||||
return busiProductRequireMapper.selMaterialTypeListByOrderId(orderId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, String>> selMaterialColorListByOrderIdAndType(Map<String, String> queryMap) {
|
||||
return busiProductRequireMapper.selMaterialColorListByOrderIdAndType(queryMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, String>> selMaterialTypeListByProductId(String productId) {
|
||||
return busiProductRequireMapper.selMaterialTypeListByProductId(productId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, String>> selMaterialColorListByProductIdAndType(Map<String, String> queryMap) {
|
||||
return busiProductRequireMapper.selMaterialColorListByProductIdAndType(queryMap);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -130,15 +130,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</foreach>
|
||||
</insert>
|
||||
|
||||
|
||||
<select id="selectMaterialRequireByOrderId" parameterType="String" resultType="java.util.Map">
|
||||
select max(A.classify) classifyCode,max(sdd2.dict_label) classifyVal, max(A.color) colorCode, max(sdd.dict_label) colorVal,sum(A.amount) amount, MAX(sdd3.dict_label) unitVal, max(A.unit) as unitCode
|
||||
from busi_material_require A
|
||||
left join busi_product_require B on A.product_require_id = B.id
|
||||
left join busi_order bo on B.order_id = bo.id
|
||||
left join sys_dict_data sdd on sdd.dict_type='busi_color' and A.color = sdd.dict_value
|
||||
left join sys_dict_data sdd2 on sdd2.dict_type='busi_material_type' and A.classify = sdd2.dict_value
|
||||
left join sys_dict_data sdd3 on sdd3.dict_type='busi_material_unit' and A.unit = sdd3.dict_value
|
||||
where B.order_id = #{orderId} group by (A.color + A.classify)
|
||||
<select id="selMaterialTypeListByOrderId" parameterType="String" resultType="java.util.Map">
|
||||
SELECT DISTINCT bmr.classify classifyCode
|
||||
from busi_material_require bmr
|
||||
LEFT JOIN busi_product_require bpr
|
||||
on bmr.product_require_id = bpr.id
|
||||
where bpr.order_id = #{orderId}
|
||||
</select>
|
||||
<select id="selMaterialColorListByOrderIdAndType" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT DISTINCT bmr.color AS colorCode
|
||||
FROM busi_material_require bmr
|
||||
LEFT JOIN busi_product_require bpr
|
||||
ON bmr.product_require_id = bpr.id
|
||||
WHERE bpr.order_id = #{orderId} AND bmr.classify = #{classify}
|
||||
</select>
|
||||
<select id="selMaterialTypeListByProductId" parameterType="String" resultType="java.util.Map">
|
||||
SELECT DISTINCT bmr.classify AS classifyCode
|
||||
FROM busi_material_require bmr
|
||||
WHERE bmr.product_require_id = #{productId}
|
||||
</select>
|
||||
<select id="selMaterialColorListByProductIdAndType" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT DISTINCT bmr.color AS colorCode
|
||||
FROM busi_material_require bmr
|
||||
WHERE bmr.product_require_id = #{productId} AND bmr.classify = #{classify}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -525,6 +525,20 @@ var table = {
|
|||
}
|
||||
return distinct ? $.common.uniqueFn(rows) : rows;
|
||||
},
|
||||
// 返回数据字典显示值
|
||||
getDictText: function(datas, value) {
|
||||
if ($.common.isEmpty(datas) || $.common.isEmpty(value)) {
|
||||
return '';
|
||||
}
|
||||
var actions = [];
|
||||
$.each(datas, function(index, dict) {
|
||||
if (dict.dictValue == ('' + value)) {
|
||||
actions.push(dict.dictLabel);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return actions.join('');
|
||||
},
|
||||
// 回显数据字典
|
||||
selectDictLabel: function(datas, value) {
|
||||
if ($.common.isEmpty(datas) || $.common.isEmpty(value)) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||
<head>
|
||||
<th:block th:include="include :: header('新增物料操作')" />
|
||||
<th:block th:include="include :: header('新增来料')" />
|
||||
</head>
|
||||
<body class="white-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
|
||||
|
|
@ -15,18 +15,22 @@
|
|||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label" title="若无对应的物料选项,请先在产品需求中添加物料需求">物料选择:<i class="fa fa-question-circle-o"></i></label>
|
||||
<div class="col-sm-6">
|
||||
<select id="post" name="colorAndType" class="form-control required" >
|
||||
<div class="col-sm-3">
|
||||
<select id="classify" name="classify" class="form-control required" >
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<select id="color" name="color" class="form-control required" >
|
||||
</select>
|
||||
</div>
|
||||
<label class="control-label text-danger">需求量:<span id="requireAmount" class=""> -- </span></label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">数量:</label>
|
||||
<label class="col-sm-3 control-label is-required">来料数量:</label>
|
||||
<div class="col-sm-6">
|
||||
<input name="amount" class="form-control" type="text" required>
|
||||
</div>
|
||||
<label class="control-label text-danger">库存量:<span id="requireAmount" class=""> -- </span></label>
|
||||
<label class="control-label text-danger">当前库存量:<span id="requireAmount" class=""> -- </span></label>
|
||||
</div>
|
||||
<div class="form-group" th:style="${operType==null}?'':'display:none'">
|
||||
<label class="col-sm-3 control-label">操作类型:</label>
|
||||
|
|
@ -65,8 +69,10 @@
|
|||
focusCleanup: true
|
||||
});
|
||||
|
||||
$("#post").change(function(){
|
||||
$("#requireAmount").empty().append($("#post :selected").attr("requireAmount"));
|
||||
$("#classify").change(function(){
|
||||
var orderId = $("#treeId").val();
|
||||
var classify = $("#classify").val();
|
||||
queryColorList(orderId, classify);
|
||||
})
|
||||
|
||||
function submitHandler() {
|
||||
|
|
@ -87,24 +93,39 @@
|
|||
$("#treeId").val(body.find('#treeId').val());
|
||||
$("#treeName").val(body.find('#treeName').val());
|
||||
$.modal.close(index);
|
||||
queryMetarial(body.find('#treeId').val());
|
||||
queryClassifyList(body.find('#treeId').val());
|
||||
}
|
||||
};
|
||||
$.modal.openOptions(options);
|
||||
}
|
||||
|
||||
/*物料需求查询*/
|
||||
function queryMetarial(orderId) {
|
||||
var url = ctx + "busi/productRequire/listByOrderId?orderId=" + orderId;
|
||||
/*物料需求类型查询*/
|
||||
function queryClassifyList(orderId) {
|
||||
var url = ctx + "busi/productRequire/selMaterialTypeListByOrderId?orderId=" + orderId;
|
||||
$.operate.ajaxPost(url, {}, function (result) {
|
||||
var data = result.data;
|
||||
$("#post").empty();
|
||||
$("#post").append("<option value=''>请选择物料</option>");
|
||||
$("#classify").empty().append("<option value=''>请选择物料</option>");
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var val = data[i].colorCode + ';' + data[i].classifyCode + ';' + data[i].unitCode;
|
||||
var text = data[i].colorVal + ',' + data[i].classifyVal;
|
||||
var requireAmount = data[i].amount + data[i].unitVal;
|
||||
$("#post").append("<option requireAmount='" + requireAmount + "' value='" + val + "'>" + text + "</option>");
|
||||
var val = data[i].classifyCode;
|
||||
var text = data[i].classifyText;
|
||||
$("#classify").append("<option value='" + val + "'>" + text + "</option>");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/*物料需求颜色查询*/
|
||||
function queryColorList(orderId, classify) {
|
||||
var url = ctx + "busi/productRequire/selMaterialColorListByOrderIdAndType";
|
||||
$.operate.ajaxPost(url, {
|
||||
orderId:orderId,
|
||||
classify:classify
|
||||
}, function (result) {
|
||||
var data = result.data;
|
||||
$("#color").empty().append("<option value=''>请选择颜色</option>");
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var val = data[i].colorCode;
|
||||
var text = data[i].colorText;
|
||||
$("#color").append("<option value='" + val + "'>" + text + "</option>");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,141 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||
<head>
|
||||
<th:block th:include="include :: header('新增来料')" />
|
||||
</head>
|
||||
<body class="white-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
|
||||
<form class="form-horizontal m" id="form-materialperate-add">
|
||||
<input name="oprateType" type="hidden" value="1">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">订单:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="treeId" name="orderId" type="hidden">
|
||||
<input id="treeName" name="orderName" readonly="true" onclick="selectOrder(1)" class="form-control" type="text" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label" title="若无对应的物料选项,请先在产品需求中添加物料需求">物料选择:<i class="fa fa-question-circle-o"></i></label>
|
||||
<div class="col-sm-3">
|
||||
<select id="classify" name="classify" class="form-control required" >
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<select id="color" name="color" class="form-control required" >
|
||||
</select>
|
||||
</div>
|
||||
<label class="control-label text-danger">需求量:<span id="requireAmount" class=""> -- </span></label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">来料数量:</label>
|
||||
<div class="col-sm-6">
|
||||
<input name="amount" class="form-control" type="text" required>
|
||||
</div>
|
||||
<label class="control-label text-danger">当前库存量:<span id="requireAmount" class=""> -- </span></label>
|
||||
</div>
|
||||
<!-- <div class="form-group" th:style="${operType==null}?'':'display:none'">-->
|
||||
<!-- <label class="col-sm-3 control-label">操作类型:</label>-->
|
||||
<!-- <div class="col-sm-8">-->
|
||||
<!-- <select name="oprateType" class="form-control m-b">-->
|
||||
<!-- <option value="1" th:selected="${operType ne '2'}">入库</option>-->
|
||||
<!-- <option value="2" th:selected="${operType eq '2'}">出库</option>-->
|
||||
<!-- </select>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">备注信息:</label>
|
||||
<div class="col-sm-8">
|
||||
<textarea name="remark" class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group" th:if="${operType!=null}">
|
||||
<div class="col-sm-5"></div>
|
||||
<div class="col-sm-2">
|
||||
<a class="btn btn-success" onclick="submitHandler()" >
|
||||
保存
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<a class="btn btn-info" onclick="$.modal.closeTab()" >
|
||||
关闭
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<th:block th:include="include :: footer" />
|
||||
<script th:inline="javascript">
|
||||
var prefix = ctx + "busi/materialperate";
|
||||
var colorDatas = [[${@dict.getType('busi_color')}]];
|
||||
var sizeDatas = [[${@dict.getType('busi_size')}]];
|
||||
var classifyDatas = [[${@dict.getType('busi_material_type')}]];
|
||||
|
||||
$("#form-materialperate-add").validate({
|
||||
focusCleanup: true
|
||||
});
|
||||
|
||||
$("#classify").change(function(){
|
||||
var orderId = $("#treeId").val();
|
||||
var classify = $("#classify").val();
|
||||
queryColorList(orderId, classify);
|
||||
})
|
||||
|
||||
function submitHandler() {
|
||||
if ($.validate.form()) {
|
||||
$.operate.save(prefix + "/add", $('#form-materialperate-add').serialize());
|
||||
}
|
||||
}
|
||||
|
||||
/*订单选择*/
|
||||
function selectOrder(status) {
|
||||
var options = {
|
||||
title: '选择订单',
|
||||
width: "480",
|
||||
height: "500",
|
||||
url: ctx + "busi/order/selectOrder/" + status,
|
||||
callBack: function(index, layero){
|
||||
var body = $.modal.getChildFrame(index);
|
||||
$("#treeId").val(body.find('#treeId').val());
|
||||
$("#treeName").val(body.find('#treeName').val());
|
||||
$.modal.close(index);
|
||||
queryClassifyList(body.find('#treeId').val());
|
||||
}
|
||||
};
|
||||
$.modal.openOptions(options);
|
||||
}
|
||||
|
||||
/*物料需求类型查询*/
|
||||
function queryClassifyList(orderId) {
|
||||
var url = ctx + "busi/productRequire/selMaterialTypeListByOrderId?orderId=" + orderId;
|
||||
$.operate.ajaxPost(url, {}, function (result) {
|
||||
var data = result.data;
|
||||
$("#color").empty();
|
||||
$("#classify").empty().append("<option value=''>请选择物料</option>");
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var val = data[i].classifyCode;
|
||||
var text = $.table.getDictText(classifyDatas, val);
|
||||
$("#classify").append("<option value='" + val + "'>" + text + "</option>");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/*物料需求颜色查询*/
|
||||
function queryColorList(orderId, classify) {
|
||||
var url = ctx + "busi/productRequire/selMaterialColorListByOrderIdAndType";
|
||||
$.operate.ajaxPost(url, {
|
||||
orderId:orderId,
|
||||
classify:classify
|
||||
}, function (result) {
|
||||
var data = result.data;
|
||||
$("#color").empty().append("<option value=''>请选择颜色</option>");
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var val = data[i].colorCode;
|
||||
var text = $.table.getDictText(colorDatas, val);;
|
||||
$("#color").append("<option value='" + val + "'>" + text + "</option>");
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,154 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||
<head>
|
||||
<th:block th:include="include :: header('新增分料')" />
|
||||
</head>
|
||||
<body class="white-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
|
||||
<form class="form-horizontal m" id="form-materialperate-add">
|
||||
<input name="oprateType" type="hidden" value="1">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">订单:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="treeId" name="orderId" type="hidden">
|
||||
<input id="treeName" name="orderName" readonly="true" onclick="selectOrder(1)" class="form-control" type="text" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">产品:</label>
|
||||
<div class="col-sm-8">
|
||||
<select id="product" class="form-control" >
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label" title="若无对应的物料选项,请先添加来料">物料选择:<i class="fa fa-question-circle-o"></i></label>
|
||||
<div class="col-sm-4">
|
||||
<select id="classify" name="classify" class="form-control required" >
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<select id="color" name="color" class="form-control required" >
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label is-required">数量:</label>
|
||||
<div class="col-sm-6">
|
||||
<input name="amount" class="form-control" type="text" required>
|
||||
</div>
|
||||
<label class="control-label text-danger">库存量:<span id="requireAmount" class=""> -- </span></label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">备注信息:</label>
|
||||
<div class="col-sm-8">
|
||||
<textarea name="remark" class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group" th:if="${operType!=null}">
|
||||
<div class="col-sm-5"></div>
|
||||
<div class="col-sm-2">
|
||||
<a class="btn btn-success" onclick="submitHandler()" >
|
||||
保存
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<a class="btn btn-info" onclick="$.modal.closeTab()" >
|
||||
关闭
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<th:block th:include="include :: footer" />
|
||||
<script th:inline="javascript">
|
||||
var prefix = ctx + "busi/materialperate"
|
||||
var colorDatas = [[${@dict.getType('busi_color')}]];
|
||||
var sizeDatas = [[${@dict.getType('busi_size')}]];
|
||||
var classifyDatas = [[${@dict.getType('busi_material_type')}]];
|
||||
|
||||
$("#form-materialperate-add").validate({
|
||||
focusCleanup: true
|
||||
});
|
||||
|
||||
$("#product").change(function(){
|
||||
queryClassifyList($("#product").val());
|
||||
})
|
||||
|
||||
$("#classify").change(function(){
|
||||
queryColorList($("#product").val(), $("#classify").val());
|
||||
})
|
||||
|
||||
function submitHandler() {
|
||||
if ($.validate.form()) {
|
||||
$.operate.save(prefix + "/add", $('#form-materialperate-add').serialize());
|
||||
}
|
||||
}
|
||||
|
||||
/*订单选择*/
|
||||
function selectOrder(status) {
|
||||
var options = {
|
||||
title: '选择订单',
|
||||
width: "480",
|
||||
height: "500",
|
||||
url: ctx + "busi/order/selectOrder/" + status,
|
||||
callBack: function(index, layero){
|
||||
var body = $.modal.getChildFrame(index);
|
||||
$("#treeId").val(body.find('#treeId').val());
|
||||
$("#treeName").val(body.find('#treeName').val());
|
||||
$.modal.close(index);
|
||||
queryProductList(body.find('#treeId').val());
|
||||
}
|
||||
};
|
||||
$.modal.openOptions(options);
|
||||
}
|
||||
|
||||
/*产品需求查询*/
|
||||
function queryProductList(orderId) {
|
||||
var url = ctx + "busi/productRequire/listByOrderId?orderId=" + orderId;
|
||||
$.operate.ajaxPost(url, {}, function (result) {
|
||||
var data = result.data;
|
||||
$("#color,#classify").empty();
|
||||
$("#product").empty().append("<option value=''>请选择产品</option>");
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var val = data[i].id;
|
||||
var text = $.table.getDictText(colorDatas, data[i].color) + "," + $.table.getDictText(sizeDatas, data[i].size);
|
||||
$("#product").append("<option value='" + val + "'>" + text + "</option>");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/*物料需求类型查询*/
|
||||
function queryClassifyList(productId) {
|
||||
var url = ctx + "busi/productRequire/selMaterialTypeListByProductId?productId=" + productId;
|
||||
$.operate.ajaxPost(url, {}, function (result) {
|
||||
var data = result.data;
|
||||
$("#color").empty();
|
||||
$("#classify").empty().append("<option value=''>请选择物料</option>");
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var val = data[i].classifyCode;
|
||||
var text = $.table.getDictText(classifyDatas, val);
|
||||
$("#classify").append("<option value='" + val + "'>" + text + "</option>");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/*物料需求颜色查询*/
|
||||
function queryColorList(productId, classify) {
|
||||
var url = ctx + "busi/productRequire/materialColorListByProductIdAndType";
|
||||
$.operate.ajaxPost(url, {
|
||||
productId:productId,
|
||||
classify:classify
|
||||
}, function (result) {
|
||||
var data = result.data;
|
||||
$("#color").empty().append("<option value=''>请选择颜色</option>");
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var val = data[i].colorCode;
|
||||
var text = $.table.getDictText(colorDatas, val);
|
||||
$("#color").append("<option value='" + val + "'>" + text + "</option>");
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -43,8 +43,11 @@
|
|||
</div>
|
||||
|
||||
<div class="btn-group-sm" id="toolbar" role="group">
|
||||
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="busi:materialperate:add">
|
||||
<i class="fa fa-plus"></i> 添加
|
||||
<a class="btn btn-success" onclick="addIn()" shiro:hasPermission="busi:materialperate:add">
|
||||
<i class="fa fa-plus"></i> 添加来料
|
||||
</a>
|
||||
<a class="btn btn-success" onclick="addOut()" shiro:hasPermission="busi:materialperate:add">
|
||||
<i class="fa fa-minus"></i> 添加分料
|
||||
</a>
|
||||
<!-- <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="busi:materialperate:edit">-->
|
||||
<!-- <i class="fa fa-edit"></i> 修改-->
|
||||
|
|
@ -169,6 +172,14 @@
|
|||
};
|
||||
$.modal.openOptions(options);
|
||||
}
|
||||
|
||||
function addIn(){
|
||||
$.modal.open("添加来料", prefix + "/addIn");
|
||||
}
|
||||
|
||||
function addOut(){
|
||||
$.modal.open("添加分料", prefix + "/addOut");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h4 class="form-header h4">物料需求信息</h4>
|
||||
<h4 class="form-header h4">单件产品物料需求</h4>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<button type="button" class="btn btn-white btn-sm" onclick="addColumn()"><i class="fa fa-plus"> 增加</i></button>
|
||||
|
|
@ -130,7 +130,7 @@
|
|||
align: 'center',
|
||||
title: '数量',
|
||||
formatter: function(value, row, index) {
|
||||
var html = $.common.sprintf("<input class='form-control digits required' type='text' name='busiMaterialRequireList[%s].amount' value='%s'>", index, value);
|
||||
var html = $.common.sprintf("<input class='form-control number required' type='text' name='busiMaterialRequireList[%s].amount' value='%s'>", index, value);
|
||||
return html;
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h4 class="form-header h4">物料需求信息</h4>
|
||||
<h4 class="form-header h4">单件产品物料需求</h4>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<button type="button" class="btn btn-white btn-sm" onclick="addColumn()"><i class="fa fa-plus"> 增加</i></button>
|
||||
|
|
@ -132,7 +132,7 @@
|
|||
align: 'center',
|
||||
title: '数量',
|
||||
formatter: function(value, row, index) {
|
||||
var html = $.common.sprintf("<input class='form-control digits required' type='text' name='busiMaterialRequireList[%s].amount' value='%s'>", index, value);
|
||||
var html = $.common.sprintf("<input class='form-control number required' type='text' name='busiMaterialRequireList[%s].amount' value='%s'>", index, value);
|
||||
return html;
|
||||
}
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue