代码修改
This commit is contained in:
@@ -104,6 +104,8 @@
|
|||||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||||
WHERE
|
WHERE
|
||||||
dtl.material_type = '01'
|
dtl.material_type = '01'
|
||||||
|
AND
|
||||||
|
dtl.is_need_manage = '1'
|
||||||
OPTION 输入.formula_id <> ""
|
OPTION 输入.formula_id <> ""
|
||||||
dtl.formula_id = 输入.formula_id
|
dtl.formula_id = 输入.formula_id
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
@@ -123,6 +125,8 @@
|
|||||||
LEFT JOIN md_pb_classstandard mb ON mb.class_id = dtl.material_id
|
LEFT JOIN md_pb_classstandard mb ON mb.class_id = dtl.material_id
|
||||||
WHERE
|
WHERE
|
||||||
dtl.material_type = '02'
|
dtl.material_type = '02'
|
||||||
|
AND
|
||||||
|
dtl.is_need_manage = '1'
|
||||||
OPTION 输入.formula_id <> ""
|
OPTION 输入.formula_id <> ""
|
||||||
dtl.formula_id = 输入.formula_id
|
dtl.formula_id = 输入.formula_id
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import org.springframework.http.HttpStatus;
|
|||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@@ -76,6 +77,14 @@ public class SparePartOutController {
|
|||||||
return new ResponseEntity<>(sparePartOutService.getDisDtl(whereJson), HttpStatus.OK);
|
return new ResponseEntity<>(sparePartOutService.getDisDtl(whereJson), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getStructIvt")
|
||||||
|
@Log("完成单据")
|
||||||
|
@ApiOperation("完成单据")
|
||||||
|
//@PreAuthorize("@el.check('materialtype:list')")
|
||||||
|
public ResponseEntity<Object> getStructIvt(@RequestBody JSONObject whereJson) {
|
||||||
|
return new ResponseEntity<>(sparePartOutService.getStructIvt(whereJson), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/getIvt")
|
@PostMapping("/getIvt")
|
||||||
@Log("查询备件库存")
|
@Log("查询备件库存")
|
||||||
@ApiOperation("查询备件库存")
|
@ApiOperation("查询备件库存")
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public interface SparePartOutService {
|
public interface SparePartOutService {
|
||||||
@@ -34,6 +35,8 @@ public interface SparePartOutService {
|
|||||||
|
|
||||||
JSONArray getDisDtl(JSONObject whereJson);
|
JSONArray getDisDtl(JSONObject whereJson);
|
||||||
|
|
||||||
|
JSONArray getStructIvt(JSONObject whereJson);
|
||||||
|
|
||||||
JSONArray getIvt(JSONObject whereJson);
|
JSONArray getIvt(JSONObject whereJson);
|
||||||
|
|
||||||
void divStruct(JSONObject whereJson);
|
void divStruct(JSONObject whereJson);
|
||||||
|
|||||||
@@ -206,6 +206,19 @@ public class SparePartOutServiceImpl implements SparePartOutService {
|
|||||||
return dtl_rows;
|
return dtl_rows;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONArray getStructIvt(JSONObject whereJson) {
|
||||||
|
String search = (String) whereJson.get("search");
|
||||||
|
HashMap<String, String> map = new HashMap<>();
|
||||||
|
map.put("flag", "12");
|
||||||
|
map.put("material_id", whereJson.getString("material_id"));
|
||||||
|
if (StrUtil.isNotEmpty(search)){
|
||||||
|
map.put("search", search);
|
||||||
|
}
|
||||||
|
JSONArray dtl_rows = WQL.getWO("QEM_BI_SPAREPARTOUT").addParamMap(map).process().getResultJSONArray(0);
|
||||||
|
return dtl_rows;
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public void createCode(JSONObject form) {
|
public void createCode(JSONObject form) {
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
输入.iostorinvdtl_id TYPEAS s_string
|
输入.iostorinvdtl_id TYPEAS s_string
|
||||||
输入.storagevehicle_code TYPEAS s_string
|
输入.storagevehicle_code TYPEAS s_string
|
||||||
输入.iostorinv_id TYPEAS s_string
|
输入.iostorinv_id TYPEAS s_string
|
||||||
|
输入.material_id TYPEAS s_string
|
||||||
|
|
||||||
|
|
||||||
[临时表]
|
[临时表]
|
||||||
@@ -464,6 +465,29 @@
|
|||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "12"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
sa.sect_name,
|
||||||
|
sa.struct_name,
|
||||||
|
ivt.sparepart_only_id,
|
||||||
|
mb.material_code,
|
||||||
|
mb.material_name,
|
||||||
|
ivt.pcsn,
|
||||||
|
ivt.ivt_qty,
|
||||||
|
ivt.qty_unit_name,
|
||||||
|
ivt.instorage_time
|
||||||
|
FROM
|
||||||
|
em_bi_devicesparepartivt ivt
|
||||||
|
LEFT JOIN st_ivt_structattr sa ON sa.struct_id = ivt.struct_id
|
||||||
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = ivt.material_id
|
||||||
|
WHERE
|
||||||
|
ivt.material_id = 输入.material_id
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -980,8 +980,10 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
|||||||
String batch_seq = jo.getString("pcsn");
|
String batch_seq = jo.getString("pcsn");
|
||||||
List<Entity> all = Db.use((DataSource) SpringContextHolder.getBean("dataSource1")).findAll(Entity.create("BATCH_SEQ").set("DR", "0").set("ITEM_ID", item_id).set("BATCH_SEQ", batch_seq));
|
List<Entity> all = Db.use((DataSource) SpringContextHolder.getBean("dataSource1")).findAll(Entity.create("BATCH_SEQ").set("DR", "0").set("ITEM_ID", item_id).set("BATCH_SEQ", batch_seq));
|
||||||
if (ObjectUtil.isNotEmpty(all)) {
|
if (ObjectUtil.isNotEmpty(all)) {
|
||||||
|
log.info(item_id+","+batch_seq+"批次主键为:"+all.get(0).getStr("BATCH_ID"));
|
||||||
return all.get(0).getStr("BATCH_ID");
|
return all.get(0).getStr("BATCH_ID");
|
||||||
} else {
|
} else {
|
||||||
|
log.info(item_id+","+batch_seq+"未查询到批次主键!");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,6 +96,14 @@ export function getDisDtl(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getStructIvt(data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/sb/outbill/getStructIvt',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function createCode(data) {
|
export function createCode(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/sb/outbill/createCode',
|
url: '/api/sb/outbill/createCode',
|
||||||
@@ -144,46 +152,6 @@ export function bucketDtl(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function updateTask(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/sb/outbill/updateTask',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function delTask(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/sb/outbill/delTask',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function reIssueTask(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/sb/outbill/reIssueTask',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function confirmTask(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/sb/outbill/confirmTask',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function cancelTask(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/sb/outbill/cancelTask',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function confirm(data) {
|
export function confirm(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/sb/outbill/confirm',
|
url: '/api/sb/outbill/confirm',
|
||||||
@@ -209,5 +177,5 @@ export function getIvt(data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default { add, edit, del, getType, getBillDtl, disConfirm, insertDtl, getIODtl, commit, checkVehicle,
|
export default { add, edit, del, getType, getBillDtl, disConfirm, insertDtl, getIODtl, commit, checkVehicle,
|
||||||
deleteDisDtl, getDisDtl, createCode, divPoint, cancelCreate, getIvt,
|
deleteDisDtl, getDisDtl, createCode, divPoint, cancelCreate, getIvt, getStructIvt,
|
||||||
divStruct, bucketDtl, updateTask, delTask, reIssueTask, confirmTask, cancelTask, confirm, backConfirm }
|
divStruct, bucketDtl, confirm, backConfirm }
|
||||||
|
|||||||
@@ -197,7 +197,7 @@ export default {
|
|||||||
crudProductRoute.getProductRouteDtl(this.form).then(res => {
|
crudProductRoute.getProductRouteDtl(this.form).then(res => {
|
||||||
this.form.tableData = res
|
this.form.tableData = res
|
||||||
})
|
})
|
||||||
this.form.product_series = this.dict.label.product_series[this.form.product_series]
|
// this.form.product_series = this.dict.label.product_series[this.form.product_series]
|
||||||
},
|
},
|
||||||
handleClose(done) {
|
handleClose(done) {
|
||||||
this.$confirm('确认关闭?')
|
this.$confirm('确认关闭?')
|
||||||
|
|||||||
@@ -56,10 +56,8 @@
|
|||||||
<el-table-column show-overflow-tooltip prop="material_spec" label="规格" align="center"/>
|
<el-table-column show-overflow-tooltip prop="material_spec" label="规格" align="center"/>
|
||||||
<el-table-column show-overflow-tooltip prop="material_model" label="型号" align="center"/>
|
<el-table-column show-overflow-tooltip prop="material_model" label="型号" align="center"/>
|
||||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center"/>
|
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center"/>
|
||||||
<el-table-column show-overflow-tooltip prop="assign_qty" :formatter="crud.formatNum3" label="已出数量"
|
<el-table-column show-overflow-tooltip prop="assign_qty" :formatter="crud.formatNum3" label="已出数量" align="center"/>
|
||||||
align="center"/>
|
<el-table-column show-overflow-tooltip prop="unassign_qty" :formatter="crud.formatNum3" label="未出数量" align="center"/>
|
||||||
<el-table-column show-overflow-tooltip prop="unassign_qty" :formatter="crud.formatNum3" label="未出数量"
|
|
||||||
align="center"/>
|
|
||||||
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center"/>
|
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center"/>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</el-card>
|
||||||
@@ -86,7 +84,7 @@
|
|||||||
type="warning"
|
type="warning"
|
||||||
icon="el-icon-check"
|
icon="el-icon-check"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="createCode()"
|
@click="openStructIvt()"
|
||||||
>
|
>
|
||||||
手动分配
|
手动分配
|
||||||
</el-button>
|
</el-button>
|
||||||
@@ -100,16 +98,6 @@
|
|||||||
>
|
>
|
||||||
删除分配
|
删除分配
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
|
||||||
slot="left"
|
|
||||||
class="filter-item"
|
|
||||||
type="primary"
|
|
||||||
icon="el-icon-plus"
|
|
||||||
size="mini"
|
|
||||||
@click="divStruct()"
|
|
||||||
>
|
|
||||||
确认
|
|
||||||
</el-button>
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
|
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
|
||||||
@@ -134,19 +122,19 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<StructDiv ref="child" :dialog-show.sync="structShow" :sect-prop="sectProp" @tableChanged="tableChanged"/>
|
<StructIvt :dialog-show.sync="structShow" :open-array="ivtParam" :rowmst="openRow" @StructIvtClosed="queryTableDtl"/>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import CRUD, { crud } from '@crud/crud'
|
import CRUD, { crud } from '@crud/crud'
|
||||||
import crudSectattr from '@/api/wms/basedata/st/sectattr'
|
import crudSectattr from '@/api/wms/basedata/st/sectattr'
|
||||||
import StructDiv from '@/views/wms/sb/inbill/StructDialog'
|
import StructIvt from '@/views/wms/sb/outbill/StructIvt'
|
||||||
import sparePart from '@/api/wms/sb/sparepart'
|
import sparePart from '@/api/wms/sb/sparepartout'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DivDialog',
|
name: 'DivDialog',
|
||||||
components: { StructDiv },
|
components: { StructIvt },
|
||||||
mixins: [crud()],
|
mixins: [crud()],
|
||||||
dicts: ['io_bill_status'],
|
dicts: ['io_bill_status'],
|
||||||
props: {
|
props: {
|
||||||
@@ -173,11 +161,13 @@ export default {
|
|||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
stor_id: '',
|
stor_id: '',
|
||||||
sect_id: '',
|
sect_id: '',
|
||||||
|
ivtParam: [],
|
||||||
sectProp: null,
|
sectProp: null,
|
||||||
structShow: false,
|
structShow: false,
|
||||||
bucketObj: null,
|
bucketObj: null,
|
||||||
sects: [],
|
sects: [],
|
||||||
sect_val: null,
|
sect_val: null,
|
||||||
|
openRow: {},
|
||||||
form: {
|
form: {
|
||||||
dtl_row: null,
|
dtl_row: null,
|
||||||
tableMater: []
|
tableMater: []
|
||||||
@@ -198,25 +188,18 @@ export default {
|
|||||||
crudSectattr.getSect({ 'is_attachment': '1', 'sect_type_attr': '00' }).then(res => {
|
crudSectattr.getSect({ 'is_attachment': '1', 'sect_type_attr': '00' }).then(res => {
|
||||||
this.sects = res.content
|
this.sects = res.content
|
||||||
})
|
})
|
||||||
/*let area_type = ''
|
},
|
||||||
if (this.billType === '000101' || this.billType === '000102' || this.billType === '000201' || this.billType === '000202' || this.billType === '000305') {
|
openStructIvt() {
|
||||||
area_type = '\'21\''
|
if (!this.form.dtl_row) {
|
||||||
|
this.crud.notify('请选择一条出库明细', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if (this.billType === '000301' || this.billType === '000303' || this.billType === '000304') {
|
debugger
|
||||||
area_type = '\'37\''
|
sparePart.getStructIvt(this.form.dtl_row).then(res => {
|
||||||
}
|
this.ivtParam = res
|
||||||
if (this.billType === '000302') {
|
this.structShow = true
|
||||||
area_type = '\'26\',\'32\',\'33\',\'34\''
|
this.openRow = this.form.dtl_row
|
||||||
}
|
})
|
||||||
if (this.billType === '000601') {
|
|
||||||
area_type = '\'29\''
|
|
||||||
}
|
|
||||||
if (this.billType === '000401') {
|
|
||||||
area_type = '\'21\',\'26\',\'29\',\'31\',\'35\',\'32\',\'33\',\'34\''
|
|
||||||
}
|
|
||||||
crudPoint.getPoint({ 'area_type': area_type }).then(res => {
|
|
||||||
this.pointlist = res
|
|
||||||
})*/
|
|
||||||
},
|
},
|
||||||
toDelete(data) {
|
toDelete(data) {
|
||||||
data.pop = true
|
data.pop = true
|
||||||
@@ -231,6 +214,7 @@ export default {
|
|||||||
this.$refs['form2'].resetFields()
|
this.$refs['form2'].resetFields()
|
||||||
},
|
},
|
||||||
clcikRow(row, column, event) {
|
clcikRow(row, column, event) {
|
||||||
|
debugger
|
||||||
this.form.dtl_row = row
|
this.form.dtl_row = row
|
||||||
sparePart.getIODtl({ 'bill_code': this.form.dtl_row.bill_code }).then(res => {
|
sparePart.getIODtl({ 'bill_code': this.form.dtl_row.bill_code }).then(res => {
|
||||||
this.openParam = res
|
this.openParam = res
|
||||||
@@ -291,6 +275,11 @@ export default {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
queryTableDtl() {
|
||||||
|
sparePart.getIODtl({ 'bill_code': this.form.dtl_row.bill_code }).then(res => {
|
||||||
|
this.openParam = res
|
||||||
|
})
|
||||||
|
},
|
||||||
disConfirm() {
|
disConfirm() {
|
||||||
debugger
|
debugger
|
||||||
let rows = this.$refs.dis_table.selection
|
let rows = this.$refs.dis_table.selection
|
||||||
@@ -343,20 +332,6 @@ export default {
|
|||||||
this.bucketObj = row
|
this.bucketObj = row
|
||||||
this.form.bucketunique = row.bucketunique
|
this.form.bucketunique = row.bucketunique
|
||||||
this.form.storage_qty = row.storage_qty
|
this.form.storage_qty = row.storage_qty
|
||||||
},
|
|
||||||
divStruct() {
|
|
||||||
debugger
|
|
||||||
let rows = this.$refs.dis_table.selection
|
|
||||||
if (rows.length == 0) {
|
|
||||||
this.crud.notify('请至少勾选一条记录!', CRUD.NOTIFICATION_TYPE.INFO)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!this.sect_id || !this.stor_id) {
|
|
||||||
this.crud.notify('请先选择备件库区!', CRUD.NOTIFICATION_TYPE.INFO)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.structShow = true
|
|
||||||
this.$refs.child.getMsg(false)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
241
mes/qd/src/views/wms/sb/outbill/StructIvt.vue
Normal file
241
mes/qd/src/views/wms/sb/outbill/StructIvt.vue
Normal file
@@ -0,0 +1,241 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
append-to-body
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
destroy-on-close
|
||||||
|
:show-close="false"
|
||||||
|
fullscreen
|
||||||
|
@close="close"
|
||||||
|
@open="open"
|
||||||
|
>
|
||||||
|
<span slot="title" class="dialog-footer">
|
||||||
|
<div class="crud-opts2">
|
||||||
|
<span class="el-dialog__title2">出库手工分配</span>
|
||||||
|
<span class="crud-opts-right2">
|
||||||
|
<!--左侧插槽-->
|
||||||
|
<slot name="left" />
|
||||||
|
<el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button>
|
||||||
|
<el-button slot="left" type="primary" @click="submit">保存</el-button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<div class="crud-opts2">
|
||||||
|
<span class="role-span">可分配库存</span>
|
||||||
|
<div class="crud-opts-form">
|
||||||
|
<el-form ref="form2" :inline="true" :model="queryrow" size="mini">
|
||||||
|
<el-form-item label="备品备件" prop="material_name">
|
||||||
|
<el-input
|
||||||
|
v-model="queryrow.material_name"
|
||||||
|
disabled
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="待分配" prop="unassign_qty">
|
||||||
|
<el-input-number
|
||||||
|
v-model="queryrow.unassign_qty"
|
||||||
|
:controls="false"
|
||||||
|
:precision="3"
|
||||||
|
:min="0"
|
||||||
|
disabled
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="已分配" prop="assign_qty">
|
||||||
|
<el-input-number
|
||||||
|
v-model="queryrow.assign_qty"
|
||||||
|
:controls="false"
|
||||||
|
:precision="3"
|
||||||
|
:min="0"
|
||||||
|
disabled
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="库区" prop="sect_id">
|
||||||
|
<el-cascader
|
||||||
|
placeholder="请选择"
|
||||||
|
:options="sects"
|
||||||
|
:props="{ checkStrictly: true }"
|
||||||
|
clearable
|
||||||
|
@change="sectQueryChange"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="关键字" prop="remark">
|
||||||
|
<el-input
|
||||||
|
v-model="queryrow.remark"
|
||||||
|
clearable
|
||||||
|
style="width: 220px"
|
||||||
|
size="mini"
|
||||||
|
placeholder="货位编码、名称或载具号"
|
||||||
|
prefix-icon="el-icon-search"
|
||||||
|
class="filter-item"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="queryStruct">搜索</el-button>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--表格渲染-->
|
||||||
|
<el-table
|
||||||
|
ref="table"
|
||||||
|
:data="tableDtl"
|
||||||
|
style="width: 100%;"
|
||||||
|
max-height="400"
|
||||||
|
border
|
||||||
|
:highlight-current-row="true"
|
||||||
|
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="55" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="sect_name" label="库区" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="struct_name" label="仓位" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="sparepart_only_id" label="唯一标识" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="material_name" label="物料编码" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="material_code" label="物料名称" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="pcsn" label="批次号" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="ivt_qty" label="库存数量" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="instorage_time" label="入库时间" align="center" />
|
||||||
|
</el-table>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
import CRUD, { header } from '@crud/crud'
|
||||||
|
import crudSectattr from '@/api/wms/basedata/st/sectattr'
|
||||||
|
import checkoutbill from '@/api/wms/st/core/outbill/checkoutbill'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'StructIvt',
|
||||||
|
components: { },
|
||||||
|
mixins: [header()],
|
||||||
|
props: {
|
||||||
|
dialogShow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
rowmst: {
|
||||||
|
type: Object
|
||||||
|
},
|
||||||
|
openArray: {
|
||||||
|
type: Array,
|
||||||
|
default: () => { return [] }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible: false,
|
||||||
|
dialogVisible2: false,
|
||||||
|
queryrow: {},
|
||||||
|
sects: [],
|
||||||
|
tableDtl: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
dialogShow: {
|
||||||
|
handler(newValue, oldValue) {
|
||||||
|
this.dialogVisible = newValue
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openArray: {
|
||||||
|
handler(newValue, oldValue) {
|
||||||
|
this.tableDtl = newValue
|
||||||
|
}
|
||||||
|
},
|
||||||
|
rowmst: {
|
||||||
|
handler(newValue, oldValue) {
|
||||||
|
this.queryrow = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
open() {
|
||||||
|
crudSectattr.getSect({ is_materialstore: '1' }).then(res => {
|
||||||
|
this.sects = res.content
|
||||||
|
})
|
||||||
|
},
|
||||||
|
queryStruct() {
|
||||||
|
this.queryrow.unassign_qty = parseFloat(this.queryrow.unassign_qty) + parseFloat(this.queryrow.assign_qty)
|
||||||
|
this.queryrow.assign_qty = 0
|
||||||
|
checkoutbill.getStructIvt(this.queryrow).then(res => {
|
||||||
|
this.tableDtl = res
|
||||||
|
})
|
||||||
|
},
|
||||||
|
sectQueryChange(val) {
|
||||||
|
if (val.length === 1) {
|
||||||
|
this.queryrow.stor_id = val[0]
|
||||||
|
this.queryrow.sect_id = ''
|
||||||
|
}
|
||||||
|
if (val.length === 0) {
|
||||||
|
this.queryrow.sect_id = ''
|
||||||
|
this.queryrow.stor_id = ''
|
||||||
|
}
|
||||||
|
if (val.length === 2) {
|
||||||
|
this.queryrow.stor_id = val[0]
|
||||||
|
this.queryrow.sect_id = val[1]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleEdit(index, row) {
|
||||||
|
// 判断是否可以关闭编辑状态
|
||||||
|
if (!row.edit) {
|
||||||
|
if (row.plan_qty > this.queryrow.unassign_qty) {
|
||||||
|
this.crud.notify('出库重量不能超过未分配数', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (row.plan_qty > row.canuse_qty) {
|
||||||
|
this.crud.notify('出库重量不能超过库存可出重量', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (row.plan_qty === 0) {
|
||||||
|
this.crud.notify('出库重量为0不能保存', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
row.edit = !row.edit
|
||||||
|
if (row.edit) {
|
||||||
|
this.queryrow.unassign_qty = parseFloat(this.queryrow.unassign_qty) - row.plan_qty
|
||||||
|
this.queryrow.assign_qty = parseFloat(this.queryrow.assign_qty) + row.plan_qty
|
||||||
|
} else {
|
||||||
|
this.queryrow.unassign_qty = parseFloat(this.queryrow.unassign_qty) + row.plan_qty
|
||||||
|
this.queryrow.assign_qty = parseFloat(this.queryrow.assign_qty) - row.plan_qty
|
||||||
|
}
|
||||||
|
this.tableDtl.splice(index, 1, row) // 通过splice 替换数据 触发视图更新
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
this.$emit('StructIvtClosed')
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
if (parseFloat(this.queryrow.assign_qty) === 0) {
|
||||||
|
this.crud.notify('请分配后再提交', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (parseFloat(this.queryrow.unassign_qty) === 0) {
|
||||||
|
const rows = []
|
||||||
|
this.tableDtl.forEach((item) => {
|
||||||
|
if (item.edit) {
|
||||||
|
rows.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
checkoutbill.manualDiv({ 'row': this.queryrow, 'rows': rows }).then(res => {
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
this.$emit('StructIvtClosed')
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$confirm('未分配重量不为0,是否继续提交?')
|
||||||
|
.then(_ => {
|
||||||
|
const rows = []
|
||||||
|
this.tableDtl.forEach((item) => {
|
||||||
|
if (item.edit) {
|
||||||
|
rows.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
checkoutbill.manualDiv({ 'row': this.queryrow, 'rows': rows }).then(res => {
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
this.$emit('StructIvtClosed')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(_ => {
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user