This commit is contained in:
2022-12-10 16:41:21 +08:00
parent bae5e198fd
commit 29d99f2ecc
13 changed files with 412 additions and 36 deletions

View File

@@ -50,7 +50,8 @@
PAGEQUERY
SELECT
plan.*,
ivt.product_area
ivt.product_area,
ivt.point_code
FROM
PDM_BI_SlittingProductionPlan plan
LEFT JOIN ST_IVT_CutPointIvt ivt ON ivt.ext_code = plan.resource_name

View File

@@ -48,6 +48,8 @@ public class InchargeServiceImpl implements InchargeService {
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
String bill_code = MapUtil.getStr(whereJson, "bill_code");
String sap_pcsn = MapUtil.getStr(whereJson, "sap_pcsn");
String pcsn = MapUtil.getStr(whereJson, "pcsn");
HashMap<String, String> map = new HashMap<>();
map.put("flag", "1");
@@ -57,6 +59,8 @@ public class InchargeServiceImpl implements InchargeService {
map.put("create_mode", MapUtil.getStr(whereJson, "create_mode"));
map.put("bill_type", MapUtil.getStr(whereJson, "bill_type"));
if (ObjectUtil.isNotEmpty(bill_code)) map.put("bill_code","%"+bill_code + "%");
if (ObjectUtil.isNotEmpty(sap_pcsn)) map.put("sap_pcsn","%"+sap_pcsn + "%");
if (ObjectUtil.isNotEmpty(pcsn)) map.put("pcsn","%"+pcsn + "%");
//获取人员对应的仓库
UserStorServiceImpl userStorService = new UserStorServiceImpl();

View File

@@ -52,6 +52,7 @@ public class OutChargeServiceImpl implements OutChargeService {
String end_point_code = MapUtil.getStr(whereJson, "end_point_code");
String start_region_code = MapUtil.getStr(whereJson, "start_region_code");
String end_region_code = MapUtil.getStr(whereJson, "end_region_code");
String sap_pcsn = MapUtil.getStr(whereJson, "sap_pcsn");
HashMap<String, String> map = new HashMap<>();
map.put("flag", "15");
@@ -61,6 +62,7 @@ public class OutChargeServiceImpl implements OutChargeService {
if (ObjectUtil.isNotEmpty(vehicle_code)) map.put("vehicle_code", vehicle_code + "%");
if (ObjectUtil.isNotEmpty(material_code)) map.put("material_code", material_code + "%");
if (ObjectUtil.isNotEmpty(pcsn)) map.put("pcsn", pcsn + "%");
if (ObjectUtil.isNotEmpty(sap_pcsn)) map.put("sap_pcsn", sap_pcsn + "%");
if (ObjectUtil.isNotEmpty(start_point_code)) map.put("start_point_code", start_point_code + "%");
if (ObjectUtil.isNotEmpty(end_point_code)) map.put("end_point_code", end_point_code + "%");
if (ObjectUtil.isNotEmpty(start_region_code)) map.put("start_region_code", start_region_code + "%");

View File

@@ -190,12 +190,20 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
total_qty += Double.parseDouble(net_weight);
row.put("box_no", row.get("package_box_sn"));
//判断该木箱是否已经生成入库单
//判断该载具是否已经分配货位或者起点
JSONArray now_dis_rows = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag","18").addParam("box_no",row.get("package_box_sn")).process().getResultJSONArray(0);
if (now_dis_rows.size() > 0) {
throw new BadRequestException("该木箱已经分配过货位,无法继续分配!");
}
//判断该木箱是否已经存在库内
JSONObject str_jo = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '"+row.get("package_box_sn")+"'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(str_jo)){
throw new BadRequestException("木箱:"+row.get("package_box_sn")+"已存在库内,请对数据进行核实!");
}
/*//如果是退货入库,查询对应的包装关系维护交货单号和交货单行号
if (whereJson.get("bill_type").equals("0002")) {
JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("container_name = '" + row.get("container_name") + "'").uniqueResult(0);

View File

@@ -18,6 +18,8 @@
输入.end_time TYPEAS s_string
输入.bill_code TYPEAS s_string
输入.stor_id TYPEAS s_string
输入.sap_pcsn TYPEAS s_string
输入.pcsn TYPEAS s_string
输入.create_mode TYPEAS s_string
输入.bill_type TYPEAS s_string
输入.in_stor_id TYPEAS f_string
@@ -47,10 +49,12 @@
IF 输入.flag = "1"
PAGEQUERY
SELECT
SELECT DISTINCT
ios.*
FROM
ST_IVT_IOStorInv ios
LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinv_id = ios.iostorinv_id
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn
WHERE
ios.is_delete = '0'
AND ios.io_type = '0'
@@ -67,6 +71,14 @@
ios.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.sap_pcsn <> ""
sub.sap_pcsn like 输入.sap_pcsn
ENDOPTION
OPTION 输入.pcsn <> ""
dis.pcsn like 输入.pcsn
ENDOPTION
OPTION 输入.bill_type <> ""
ios.bill_type = 输入.bill_type
ENDOPTION

View File

@@ -583,10 +583,12 @@
IF 输入.flag = "15"
PAGEQUERY
SELECT
SELECT DISTINCT
ios.*
FROM
ST_IVT_IOStorInv ios
LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinv_id = ios.iostorinv_id
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn
WHERE
ios.is_delete = '0'
AND
@@ -606,6 +608,12 @@
OPTION 输入.stor_id <> ""
ios.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.pcsn <> ""
dis.pcsn like 输入.pcsn
ENDOPTION
OPTION 输入.sap_pcsn <> ""
sub.sap_pcsn like 输入.sap_pcsn
ENDOPTION
OPTION 输入.bill_type <> ""
ios.bill_type = 输入.bill_type
ENDOPTION
@@ -670,6 +678,22 @@
ENDQUERY
ENDIF
IF 输入.flag = "18"
QUERY
SELECT
*
FROM
st_ivt_iostorinvdis dis
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id
WHERE
dis.box_no = 输入.box_no
AND work_status < '99'
AND mst.is_delete = '0'
AND mst.bill_status < '99'
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -56,6 +56,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
map.put("begin_time", MapUtil.getStr(whereJson, "begin_time"));
map.put("end_time", MapUtil.getStr(whereJson, "end_time"));
map.put("pcsn", MapUtil.getStr(whereJson, "pcsn"));
map.put("sap_pcsn", MapUtil.getStr(whereJson, "pcsn"));
map.put("is_writeoff", MapUtil.getStr(whereJson, "is_writeoff"));
map.put("vbeln", MapUtil.getStr(whereJson, "vbeln"));
if (!ObjectUtil.isEmpty(bill_code)) map.put("bill_code", "%" + bill_code + "%");

View File

@@ -15,6 +15,7 @@
#################################################
输入.flag TYPEAS s_string
输入.pcsn TYPEAS s_string
输入.sap_pcsn TYPEAS s_string
输入.material_id TYPEAS s_string
输入.material_search TYPEAS s_string
输入.stor_id TYPEAS s_string
@@ -71,6 +72,7 @@
LEFT JOIN ST_IVT_IOStorInvDis dis ON dis.iostorinvdtl_id = dtl.iostorinvdtl_id
LEFT JOIN sys_user user ON user.user_id = mst.upload_optid
INNER JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn
WHERE
mst.is_delete = '0'
and mst.stor_id in 输入.in_stor_id
@@ -80,9 +82,13 @@
ENDOPTION
OPTION 输入.pcsn <> ""
dtl.pcsn = 输入.pcsn
dis.pcsn = 输入.pcsn
ENDOPTION
OPTION 输入.sap_pcsn <> ""
sub.sap_pcsn = 输入.sap_pcsn
ENDOPTION
OPTION 输入.is_writeoff <> ""
mst.is_writeoff = 输入.is_writeoff
ENDOPTION

View File

@@ -330,6 +330,7 @@
<el-table-column prop="restruct_container_name" label="改制来源子卷号" width="120px" />
<el-table-column prop="package_box_sn" label="改制来源子卷木箱号" width="150px" />
<el-table-column prop="resource_name" label="机台编码" min-width="110" show-overflow-tooltip />
<el-table-column prop="ext_code" label="点位" min-width="110" show-overflow-tooltip />
<el-table-column prop="product_name" label="产品编码" min-width="130" show-overflow-tooltip />
<el-table-column prop="product_area" label="生产区域" />
<el-table-column prop="split_group" label="分切组" />

View File

@@ -0,0 +1,292 @@
<template>
<el-dialog
append-to-body
title="出入库单详情"
:visible.sync="dialogVisible"
destroy-on-close
fullscreen
@close="close"
@open="open"
>
<el-form ref="form" style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;" :inline="true" :model="form" size="mini" label-width="85px" label-suffix=":">
<el-form-item label="单据号" prop="bill_code">
<label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
</el-form-item>
<el-form-item label="仓库" prop="stor_id">
<label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label>
<el-select
v-model="form.stor_id"
clearable
placeholder="仓库"
class="filter-item"
style="width: 210px"
:disabled="true"
>
<el-option
v-for="item in storlist"
:key="item.stor_id"
:label="item.stor_name"
:value="item.stor_id"
/>
</el-select>
</el-form-item>
<el-form-item label="业务类型" prop="bill_type">
<el-select
v-model="form.bill_type"
clearable
filterable
size="mini"
placeholder="业务类型"
class="filter-item"
disabled
>
<el-option
v-for="item in dict.INANDOUT_BILL_TYPE"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="单据状态" prop="bill_status">
<el-select
v-model="form.bill_status"
clearable
style="width: 210px"
placeholder="单据状态"
class="filter-item"
disabled
>
<el-option
v-for="item in dict.io_bill_status"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="明细数" prop="detail_count">
<label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-input v-model="form.detail_count" size="mini" disabled style="width: 210px" />
</el-form-item>
<el-form-item label="总重量" prop="total_qty">
<label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-input-number
v-model="form.total_qty"
:controls="false"
:precision="3"
:min="0"
disabled
style="width: 210px"
/>
</el-form-item>
<el-form-item label="业务日期" prop="biz_date">
<el-date-picker v-model="form.biz_date" type="date" placeholder="选择日期" style="width: 210px" value-format="yyyy-MM-dd" :disabled="true" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label>
<el-input v-model="form.remark" style="width: 380px;" rows="2" type="textarea" :disabled="true" />
</el-form-item>
</el-form>
<div class="crud-opts2">
<span class="role-span2">出库明细</span>
</div>
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
<!--表格渲染-->
<el-table
ref="table"
:data="tableDtl"
style="width: 100%;"
max-height="300"
size="mini"
border
:highlight-current-row="true"
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
@current-change="handleDtlCurrentChange"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="bill_code" label="出库单号" align="center" width="120"/>
<el-table-column :formatter="bill_statusFormat" prop="bill_status" label="状态" />
<el-table-column min-width="120" show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
<el-table-column prop="pcsn" label="子卷号" align="center" show-overflow-tooltip />
<el-table-column prop="sap_pcsn" label="sap批次" align="center" show-overflow-tooltip />
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
<el-table-column prop="qty_unit_name" label="单位" align="center" />
<el-table-column prop="source_bill_type" label="源单类型" align="center" width="130px" :formatter="invtypeFormat" />
<el-table-column prop="source_bill_code" label="源单号" align="center" width="130px" />
<el-table-column prop="vbeln" label="交货单号" align="center" width="130px" />
<el-table-column prop="posnr" label="交货单行号" align="center" width="130px" />
<el-table-column show-overflow-tooltip prop="remark" label="明细备注" align="center" />
</el-table>
</el-card>
<div class="crud-opts2">
<span class="role-span">作业明细</span>
</div>
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
<!--表格渲染-->
<el-table
ref="table2"
:data="tabledis"
style="width: 100%;"
max-height="300"
size="mini"
border
:highlight-current-row="true"
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
@current-change="handleDisCurrentChange"
>
<el-table-column min-width="120" show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
<el-table-column prop="pcsn" label="子卷批次号" align="center" show-overflow-tooltip />
<el-table-column prop="sap_pcsn" label="sap批次号" align="center" show-overflow-tooltip />
<el-table-column prop="box_no" label="箱号" align="center" width="250px" show-overflow-tooltip />
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="重量" align="center" />
<el-table-column prop="struct_code" label="仓位" align="center" show-overflow-tooltip />
<!-- <el-table-column prop="next_point_code" label="目的位置" align="center" />-->
<!-- <el-table-column prop="task_code" label="任务号" align="center" />-->
<!-- <el-table-column prop="task_type" label="任务类型" align="center" width="150px" :formatter="taskdtl_typeFormat" />-->
<el-table-column prop="task_status" label="状态" align="center" width="110px" :formatter="task_statusFormat" />
</el-table>
</el-card>
</el-dialog>
</template>
<script>
import { crud } from '@crud/crud'
import checkoutbill from '@/views/wms/st/outbill/checkoutbill'
import crudStorattr from '@/views/wms/basedata/st/stor/storattr'
import crudRawAssist from '@/views/wms/st/inbill/rawassist'
import crudUserStor from '@/views/wms/basedata/st/userStor/userStor'
export default {
name: 'ViewDialog',
components: { },
mixins: [crud()],
dicts: ['io_bill_status', 'work_status', 'task_status', 'SCH_TASK_TYPE_DTL','ST_INV_OUT_TYPE', 'INANDOUT_BILL_TYPE'],
props: {
dialogShow: {
type: Boolean,
default: false
},
rowmst: {
type: Object
}
},
data() {
return {
dialogVisible: false,
tableDtl: [],
tabledis: [],
storlist: [],
currentdtl: null,
currentDis: {},
form: {}
}
},
watch: {
dialogShow: {
handler(newValue) {
this.dialogVisible = newValue
}
},
rowmst: {
handler(newValue) {
this.form = newValue
}
}
},
created() {
checkoutbill.getInvTypes().then(res => {
this.billtypelist = res
})
crudUserStor.getUserStor().then(res => {
this.storlist = res
})
},
methods: {
open() {
this.queryTableDtl()
},
close() {
this.$emit('update:dialogShow', false)
this.currentDis = {}
this.currentdtl = null
this.tableDtl = []
this.tabledis = []
this.$emit('AddChanged')
},
bill_statusFormat(row) {
return this.dict.label.io_bill_status[row.bill_status]
},
taskdtl_typeFormat(row) {
return this.dict.label.SCH_TASK_TYPE_DTL[row.taskdtl_type]
},
task_statusFormat(row) {
return this.dict.label.task_status[row.task_status]
},
work_statusFormat(row) {
return this.dict.label.work_status[row.work_status]
},
handleDtlCurrentChange(current) {
if (current !== null) {
this.tabledis = []
this.currentdtl = current
this.queryTableDdis()
} else {
this.tabledis = []
this.currentdtl = {}
}
},
invtypeFormat(row, column) {
for (const item of this.billtypelist) {
if (item.code === row.source_bill_type) {
return item.name
}
}
},
handleDisCurrentChange(current) {
this.currentDis = current
},
queryTableDtl() {
checkoutbill.getOutBillDtl({ 'iostorinv_id': this.form.iostorinv_id }).then(res => {
this.tableDtl = res
})
},
queryTableDdis() {
if (this.currentdtl !== null) {
checkoutbill.getOutBillTask2({ 'iostorinvdtl_id': this.currentdtl.iostorinvdtl_id }).then(res => {
this.tabledis = res
}).catch(() => {
this.tabledis = []
})
}
}
}
}
</script>
<style>
.crud-opts2 {
padding: 0;
display: -webkit-flex;
display: flex;
align-items: center;
}
.crud-opts2 .el-dialog__title2 {
line-height: 24px;
font-size:20px;
color:#303133;
}
.crud-opts2 .role-span2 {
padding: 0px 0px 20px 0px;
}
.crud-opts2 {
padding: 10px 0px 0px 50px;
}
</style>

View File

@@ -64,7 +64,7 @@
</el-select>
</el-form-item>
<el-form-item label="单据状态">
<!--<el-form-item label="单据状态">
<el-select
v-model="query.bill_status"
clearable
@@ -80,7 +80,7 @@
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form-item>-->
<el-form-item label="物料">
<el-input
v-model="query.material_search"
@@ -90,6 +90,24 @@
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="批次">
<el-input
v-model="query.pcsn"
size="mini"
clearable
placeholder="批次"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="SAP批次">
<el-input
v-model="query.sap_pcsn"
size="mini"
clearable
placeholder="SAP批次"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="单据日期">
<el-date-picker
v-model="query.createTime"
@@ -101,15 +119,6 @@
@change="crud.toQuery"
/>
</el-form-item>
<el-form-item label="批次">
<el-input
v-model="query.pcsn"
size="mini"
clearable
placeholder="批次"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="箱号">
<el-input
v-model="query.box_no"
@@ -246,8 +255,7 @@ import CRUD, { crud, header, presenter } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination'
import crudStorattr from '@/views/wms/basedata/st/stor/storattr'
import ViewDialog from '@/views/wms/st/outbill/ViewDialog'
import ViewDialog from '@/views/wms/st/inAndOutReturn/ViewDialog'
import crudUserStor from '@/views/wms/basedata/st/userStor/userStor'
export default {

View File

@@ -85,6 +85,24 @@
/>
</el-select>
</el-form-item>
<el-form-item label="子卷号">
<el-input
v-model="query.pcsn"
clearable
size="mini"
placeholder="子卷号"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="SAP批次">
<el-input
v-model="query.sap_pcsn"
clearable
size="mini"
placeholder="SAP批次"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<rrOperation />
</el-form>
</div>

View File

@@ -66,25 +66,6 @@
/>
</el-select>
</el-form-item>
<el-form-item label="单据状态">
<el-select
v-model="query.bill_status"
clearable
size="mini"
placeholder="单据状态"
class="filter-item"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.io_bill_status"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="业务类型">
<el-select
v-model="query.bill_type"
@@ -103,6 +84,24 @@
/>
</el-select>
</el-form-item>
<el-form-item label="子卷号">
<el-input
v-model="query.pcsn"
clearable
size="mini"
placeholder="子卷号"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="SAP批次">
<el-input
v-model="query.sap_pcsn"
clearable
size="mini"
placeholder="SAP批次"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<rrOperation />
</el-form>
</div>