手动开单优化
This commit is contained in:
@@ -31,7 +31,9 @@ public enum MaterOptTypeEnum {
|
||||
RD_AND_PG(20, "21", "pg粉和软废", "('1503644362108702720','1503644362150645760')", ""),
|
||||
YL_AND_BCP(21, "22", "原料和半成品", "('1503644353019645952','1503644359155912704')", ""),
|
||||
SPARE(22, "23", "备品备件", "('1503644361789935616')", ""),
|
||||
SBGZ(23, "24", "设备故障", "('1541964046385942528')", "");
|
||||
SBGZ(23, "24", "设备故障", "('1541964046385942528')", ""),
|
||||
TJJ_AND_OTHER(24, "22", "添加剂和其他有色金属粉", "('1503644361697660928','1503644362838511616')", "");
|
||||
|
||||
|
||||
|
||||
//顺序号
|
||||
|
||||
@@ -29,8 +29,8 @@ public class InitformulaController {
|
||||
@GetMapping("/queryivt")
|
||||
@Log("查询工令")
|
||||
@ApiOperation("查询工令")
|
||||
public ResponseEntity<Object> queryivt(@RequestParam Map whereJson){
|
||||
return new ResponseEntity<>(initformulaService.queryAll(whereJson),HttpStatus.OK);
|
||||
public ResponseEntity<Object> queryivt(@RequestParam Map whereJson, Pageable page){
|
||||
return new ResponseEntity<>(initformulaService.queryAll(whereJson,page),HttpStatus.OK);
|
||||
}
|
||||
@GetMapping("/queryivt2")
|
||||
@Log("查询工令")
|
||||
|
||||
@@ -11,11 +11,12 @@ import java.util.Map;
|
||||
public interface InitformulaService {
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
* @param whereJson 条件
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
JSONArray queryAll(Map whereJson);
|
||||
* 查询数据分页
|
||||
* @param whereJson 条件
|
||||
* @param page 分页参数
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
Map<String, Object> queryAll(Map whereJson, Pageable page);
|
||||
/**
|
||||
* 查询数据分页
|
||||
* @param whereJson 条件
|
||||
|
||||
@@ -34,13 +34,20 @@ import java.util.Map;
|
||||
public class InitformulaServiceImpl implements InitformulaService {
|
||||
|
||||
@Override
|
||||
public JSONArray queryAll(Map whereJson) {
|
||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
||||
HashMap<String, String> map = new HashMap<>(whereJson);
|
||||
map.put("flag", "1");
|
||||
JSONArray json = WQL.getWO("QPF_INITFORMULA01").addParamMap(map).process().getResultJSONArray(0);
|
||||
double workorder_qty = Double.valueOf(map.get("workorder_qty"));
|
||||
double standard_rate = Double.valueOf(map.get("standard_rate"));
|
||||
JSONObject ret_jo = WQL.getWO("QPF_INITFORMULA01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "structivt.material_id");
|
||||
JSONArray json = ret_jo.getJSONArray("content");
|
||||
JSONArray ja = new JSONArray();
|
||||
double workorder_qty = 0;
|
||||
double standard_rate = 0;
|
||||
if(map.containsKey("workorder_qty")){
|
||||
workorder_qty = Double.valueOf(map.get("workorder_qty"));
|
||||
}
|
||||
if(map.containsKey("standard_rate")){
|
||||
standard_rate = Double.valueOf(map.get("standard_rate"));
|
||||
}
|
||||
for(int i=0;i<json.size();i++){
|
||||
JSONObject jo = json.getJSONObject(i);
|
||||
//需配总量
|
||||
@@ -72,7 +79,8 @@ public class InitformulaServiceImpl implements InitformulaService {
|
||||
}
|
||||
ja.add(jo);
|
||||
}
|
||||
return ja;
|
||||
ret_jo.put("content",ja);
|
||||
return ret_jo;
|
||||
}
|
||||
@Override
|
||||
public Map<String, Object> queryAll2(Map whereJson,Pageable page) {
|
||||
@@ -176,7 +184,7 @@ public class InitformulaServiceImpl implements InitformulaService {
|
||||
@Override
|
||||
public JSONArray queryAll4(Map whereJson) {
|
||||
HashMap<String, String> map = new HashMap<>(whereJson);
|
||||
map.put("flag", "7");
|
||||
map.put("flag", "77");
|
||||
String material_code = map.get("material_code");
|
||||
if (StrUtil.isNotEmpty(material_code)) {
|
||||
map.put("material_code", "%" + material_code + "%");
|
||||
@@ -189,18 +197,19 @@ public class InitformulaServiceImpl implements InitformulaService {
|
||||
}
|
||||
double workorder_qty = Double.valueOf(map.get("workorder_qty"));
|
||||
map.put("bom_id", bom.getString("bom_id"));
|
||||
map.put("material_ids", MaterOptTypeEnum.TJJ_AND_OTHER.getClass_idStr());
|
||||
JSONArray json = WQL.getWO("QPF_INITFORMULA01").addParamMap(map).process().getResultJSONArray(0);
|
||||
JSONArray ja = new JSONArray();
|
||||
for(int i=0;i<json.size();i++){
|
||||
JSONObject jo = json.getJSONObject(i);
|
||||
if(StrUtil.isNotEmpty(jo.getString("mater_standard_rate"))){
|
||||
double mater_standard_rate = jo.getDouble("mater_standard_rate");
|
||||
//需配总量
|
||||
jo.put("need_sum_qty",workorder_qty*mater_standard_rate/100.0);
|
||||
}
|
||||
ja.add(jo);
|
||||
}
|
||||
return ja;
|
||||
// JSONArray ja = new JSONArray();
|
||||
// for(int i=0;i<json.size();i++){
|
||||
// JSONObject jo = json.getJSONObject(i);
|
||||
// if(StrUtil.isNotEmpty(jo.getString("mater_standard_rate"))){
|
||||
// double mater_standard_rate = jo.getDouble("mater_standard_rate");
|
||||
// //需配总量
|
||||
// jo.put("need_sum_qty",workorder_qty*mater_standard_rate/100.0);
|
||||
// }
|
||||
// ja.add(jo);
|
||||
// }
|
||||
return json;
|
||||
}
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -861,7 +870,13 @@ public class InitformulaServiceImpl implements InitformulaService {
|
||||
@Override
|
||||
public JSONArray getlist(Map json) {
|
||||
HashMap<String, String> map = new HashMap<>(json);
|
||||
map.put("flag", "2");
|
||||
String is_bom = map.get("is_bom");
|
||||
if("true".equals(is_bom)){
|
||||
map.put("flag", "2");
|
||||
}else{
|
||||
map.put("flag", "22");
|
||||
map.put("material_ids", MaterOptTypeEnum.THW_AND_GF.getClass_idStr());
|
||||
}
|
||||
JSONArray ret = WQL.getWO("QPF_INITFORMULA01").addParamMap(map).process().getResultJSONArray(0);
|
||||
if(ret.size() == 0){
|
||||
throw new BadRequestException("当前bom明细查询失败!");
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
##########################################
|
||||
|
||||
IF 输入.flag = "1"
|
||||
QUERY
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
structivt.*,
|
||||
mb.material_name,
|
||||
@@ -127,7 +127,7 @@
|
||||
structivt.is_active = 输入.is_active
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
@@ -156,6 +156,28 @@
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "22"
|
||||
QUERY
|
||||
SELECT
|
||||
mb.material_id,
|
||||
mb.material_name,
|
||||
'' AS prior_level,
|
||||
0 AS standard_rate,
|
||||
0 AS seqno
|
||||
FROM
|
||||
md_me_materialbase mb
|
||||
LEFT JOIN md_me_stockmaterialext stockmaterialext ON mb.material_id = stockmaterialext.material_id
|
||||
WHERE
|
||||
mb.is_delete = '0'
|
||||
and stockmaterialext.is_need_move = '1'
|
||||
OPTION 输入.material_ids <> ""
|
||||
mb.material_type_id in 输入.material_ids
|
||||
ENDOPTION
|
||||
order by mb.material_type_id
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
@@ -502,6 +524,31 @@
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "77"
|
||||
QUERY
|
||||
SELECT
|
||||
mb.*, stockmaterialext.is_need_move,
|
||||
measureunit.unit_name AS qty_unit_name,
|
||||
mb.base_unit_id AS qty_unit_id,
|
||||
classstandard.class_name,
|
||||
classstandard.class_code
|
||||
FROM
|
||||
md_me_materialbase mb
|
||||
LEFT JOIN md_me_stockmaterialext stockmaterialext ON mb.material_id = stockmaterialext.material_id
|
||||
LEFT JOIN md_pb_classstandard classstandard ON classstandard.class_id = mb.material_type_id
|
||||
LEFT JOIN md_pb_measureunit measureunit ON measureunit.measure_unit_id = mb.base_unit_id
|
||||
WHERE
|
||||
1 = 1 and stockmaterialext.is_need_move='0'
|
||||
OPTION 输入.material_code <> ""
|
||||
mb.material_code like 输入.material_code
|
||||
ENDOPTION
|
||||
OPTION 输入.material_ids <> ""
|
||||
mb.material_type_id in 输入.material_ids
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "8"
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
|
||||
@@ -19,121 +19,152 @@
|
||||
</span>
|
||||
</div>
|
||||
</span>
|
||||
<!-- 搜索 -->
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
产品bom物料 <el-select
|
||||
v-model="query.material_id"
|
||||
placeholder="产品bom物料"
|
||||
@change="storChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in mateList"
|
||||
:key="item.material_id"
|
||||
:label="item.material_name"
|
||||
:value="item.material_id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
配粉序号<el-input
|
||||
v-model="query.seq_no"
|
||||
disabled
|
||||
style="width: 200px"
|
||||
size="mini"
|
||||
placeholder="配粉序号"
|
||||
class="filter-item"
|
||||
/>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
含量(%)<el-input
|
||||
v-model="query.standard_rate"
|
||||
disabled
|
||||
style="width: 200px"
|
||||
size="mini"
|
||||
placeholder="含量%"
|
||||
class="filter-item"
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="padding-top: 10px;padding-bottom: 10px;">
|
||||
<el-col :span="6">
|
||||
最低库存等级<el-select
|
||||
v-model="query.ivt_level"
|
||||
placeholder="最低库存等级"
|
||||
clearable
|
||||
<div class="head-container">
|
||||
<div >
|
||||
<el-form
|
||||
:inline="true"
|
||||
class="demo-form-inline"
|
||||
label-position="right"
|
||||
label-width="120px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.ST_IVT_LEVEL"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
品质类型<el-select
|
||||
v-model="query.quality_scode"
|
||||
placeholder="品质类型"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.ST_QUALITY_SCODE"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
是否可用<el-select
|
||||
v-model="query.is_active"
|
||||
placeholder="是否可用"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.is_usable"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="queryStruct">搜索</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
ref="table"
|
||||
:data="tableDtl"
|
||||
style="width: 100%;"
|
||||
border
|
||||
:highlight-current-row="true"
|
||||
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||
>
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="material_name" label="物料名称" align="center" />
|
||||
<el-table-column prop="material_code" label="物料编码" align="center" />
|
||||
<el-table-column prop="pcsn" label="批次号" align="center" />
|
||||
<el-table-column prop="quality_scode" label="品质类型" align="center" width="110px" :formatter="quality_scodeFormat" />
|
||||
<el-table-column prop="ivt_level" label="库存等级" align="center" width="100px" :formatter="ivt_levelFormat" />
|
||||
<el-table-column prop="is_active" label="是否可用" align="center" width="110px" :formatter="is_activeFormat" />
|
||||
<el-table-column prop="sum_ivt_qty" label="库存重量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column prop="need_sum_qty" label="需配重量(KG)" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column prop="qty_unit_name" label="单位" align="center" />
|
||||
</el-table>
|
||||
<el-form-item label="产品bom物料">
|
||||
<el-select
|
||||
v-model="query.material_id"
|
||||
placeholder="产品bom物料"
|
||||
@change="storChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in mateList"
|
||||
:key="item.material_id"
|
||||
:label="item.material_name"
|
||||
:value="item.material_id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-checkbox v-model="query.is_bom" @change="storChange2">参考bom</el-checkbox>
|
||||
</el-form-item>
|
||||
<el-form-item label="配粉序号">
|
||||
<el-input
|
||||
v-model="query.seq_no"
|
||||
disabled
|
||||
style="width: 200px"
|
||||
size="mini"
|
||||
placeholder="配粉序号"
|
||||
class="filter-item"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="含量(%)">
|
||||
<el-input
|
||||
v-model="query.standard_rate"
|
||||
disabled
|
||||
style="width: 200px"
|
||||
size="mini"
|
||||
placeholder="含量%"
|
||||
class="filter-item"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="最低库存等级">
|
||||
<el-select
|
||||
v-model="query.ivt_level"
|
||||
placeholder="最低库存等级"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.ST_IVT_LEVEL"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="品质类型">
|
||||
<el-select
|
||||
v-model="query.quality_scode"
|
||||
placeholder="品质类型"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.ST_QUALITY_SCODE"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否可用">
|
||||
<el-select
|
||||
v-model="query.is_active"
|
||||
placeholder="是否可用"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.is_usable"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<rrOperation />
|
||||
</el-form>
|
||||
</div>
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
ref="table"
|
||||
v-loading="crud.loading"
|
||||
:data="crud.data"
|
||||
style="width: 100%;"
|
||||
border
|
||||
:highlight-current-row="true"
|
||||
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||
>
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="material_name" label="物料名称" align="center" />
|
||||
<el-table-column prop="material_code" label="物料编码" align="center" />
|
||||
<el-table-column prop="pcsn" label="批次号" align="center" />
|
||||
<el-table-column prop="quality_scode" label="品质类型" align="center" width="110px" :formatter="quality_scodeFormat" />
|
||||
<el-table-column prop="ivt_level" label="库存等级" align="center" width="100px" :formatter="ivt_levelFormat" />
|
||||
<el-table-column prop="is_active" label="是否可用" align="center" width="110px" :formatter="is_activeFormat" />
|
||||
<el-table-column prop="sum_ivt_qty" label="库存重量" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column prop="need_sum_qty" label="需配重量(KG)" :formatter="crud.formatNum3" align="center" />
|
||||
<el-table-column prop="qty_unit_name" label="单位" align="center" />
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import CRUD, { header} from '@crud/crud'
|
||||
import initformula from "@/api/wms/pf/initformula"
|
||||
import CRUD, {crud, header, presenter} from '@crud/crud'
|
||||
import pagination from "@crud/Pagination";
|
||||
import rrOperation from "@crud/RR.operation";
|
||||
import crudOperation from "@crud/CRUD.operation";
|
||||
import initformula from "@/api/wms/pf/initformula";
|
||||
|
||||
export default {
|
||||
name: 'StructIvt',
|
||||
mixins: [header()],
|
||||
components: { pagination, rrOperation, crudOperation },
|
||||
mixins: [presenter(), header(), crud()],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
url: 'api/initformula/queryivt',
|
||||
idField: 'material_id',
|
||||
sort: 'material_id',
|
||||
optShow: {
|
||||
add: false,
|
||||
edit: false,
|
||||
del: false,
|
||||
download: false,
|
||||
reset: false
|
||||
},
|
||||
query:{
|
||||
is_bom: true, bom_material_id: '', material_id: '', quality_scode: '01', ivt_level: '', is_active: '1', seq_no: '', standard_rate: '',workorder_qty:'0'
|
||||
}
|
||||
})
|
||||
},
|
||||
dicts: ['ST_QUALITY_SCODE', 'ST_IVT_LEVEL', 'is_usable'],
|
||||
props: {
|
||||
dialogShow: {
|
||||
@@ -147,10 +178,8 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
queryrow: {},
|
||||
mateList: [],
|
||||
tableDtl:[],
|
||||
query: { material_id: '', quality_scode: '01', ivt_level: '', is_active: '1', seq_no: '', standard_rate: '',workorder_qty:'0' },
|
||||
queryrow: {},
|
||||
rows: []
|
||||
}
|
||||
},
|
||||
@@ -168,31 +197,39 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
open() {
|
||||
initformula.getlist({'material_id': this.queryrow.material_id}).then(res => {
|
||||
initformula.getlist({'material_id': this.queryrow.material_id, 'is_bom': true}).then(res => {
|
||||
this.mateList = res
|
||||
if(this.mateList.length != 0){
|
||||
this.query.seq_no = this.mateList[0].seqno
|
||||
this.query.standard_rate = this.mateList[0].standard_rate
|
||||
this.query.ivt_level = this.mateList[0].prior_level
|
||||
this.query.material_id = this.mateList[0].material_id
|
||||
this.crud.query.workorder_qty = this.queryrow.workorder_qty
|
||||
this.crud.query.seq_no = this.mateList[0].seqno
|
||||
this.crud.query.standard_rate = this.mateList[0].standard_rate
|
||||
this.crud.query.ivt_level = this.mateList[0].prior_level
|
||||
this.crud.query.material_id = this.mateList[0].material_id
|
||||
}
|
||||
this.queryStruct()
|
||||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
storChange(row) {
|
||||
for (let i = 0; i < this.mateList.length; i++) {
|
||||
const material_id = this.mateList[i].material_id
|
||||
if(material_id===row){
|
||||
if(material_id === row){
|
||||
this.query.seq_no = this.mateList[i].seqno
|
||||
this.query.standard_rate = this.mateList[i].standard_rate
|
||||
this.query.ivt_level = this.mateList[i].prior_level
|
||||
}
|
||||
}
|
||||
},
|
||||
queryStruct() {
|
||||
this.query.workorder_qty = this.queryrow.workorder_qty
|
||||
initformula.queryivt(this.query).then(res => {
|
||||
this.tableDtl = res
|
||||
storChange2(row) {
|
||||
initformula.getlist({'material_id': this.queryrow.material_id, 'is_bom': row}).then(res => {
|
||||
this.mateList = res
|
||||
if(this.mateList.length != 0){
|
||||
this.crud.query.workorder_qty = this.queryrow.workorder_qty
|
||||
this.crud.query.seq_no = this.mateList[0].seqno
|
||||
this.crud.query.standard_rate = this.mateList[0].standard_rate
|
||||
this.crud.query.ivt_level = this.mateList[0].prior_level
|
||||
this.crud.query.material_id = this.mateList[0].material_id
|
||||
}
|
||||
this.crud.toQuery()
|
||||
})
|
||||
},
|
||||
quality_scodeFormat(row, column) {
|
||||
@@ -205,7 +242,7 @@ export default {
|
||||
return this.dict.label.is_usable[row.is_active]
|
||||
},
|
||||
close() {
|
||||
this.query = { material_id: '', quality_scode: '01', ivt_level: '', is_active: '1', seq_no: '', standard_rate: '' }
|
||||
this.crud.resetQuery(false)
|
||||
this.$emit('update:dialogShow', false)
|
||||
},
|
||||
submit() {
|
||||
|
||||
Reference in New Issue
Block a user