rev:修改组盘记录页面

This commit is contained in:
zhangzhiqiang
2023-10-12 20:15:49 +08:00
parent f07be22524
commit 45f53662f2
8 changed files with 239 additions and 19 deletions

View File

@@ -10,6 +10,7 @@ import org.nl.common.utils.RedissonUtils;
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService;
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -18,7 +19,9 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
@@ -39,11 +42,35 @@ public class MdPbBucketrecordController {
@GetMapping
@Log("查询桶记录表")
//("查询桶记录表")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
return new ResponseEntity<>(iMdPbBucketrecordService.queryAll(whereJson,page), HttpStatus.OK);
public ResponseEntity<Object> queryBygroup(@RequestParam Map whereJson, PageQuery page) {
return new ResponseEntity<>(iMdPbBucketrecordService.queryBygroup(whereJson,page), HttpStatus.OK);
}
@PutMapping
@GetMapping("/vechile_code")
@Log("查询桶表详情")
//("查询桶记录表")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
return new ResponseEntity<>(iMdPbBucketrecordService.queryItem(whereJson,page), HttpStatus.OK);
}
@PutMapping("/updategroup")
@Log("修改桶记录表")
//("查询桶记录表")
public ResponseEntity<Object> updategroup(@RequestBody JSONObject whereJson) {
String[] bucket_record_ids = whereJson.getString("bucket_record_id").split(",");
MdPbBucketrecord param = whereJson.toJavaObject(MdPbBucketrecord.class);
List<MdPbBucketrecord> list = new ArrayList<>();
for (String bucket_record_id : bucket_record_ids) {
MdPbBucketrecord item = new MdPbBucketrecord();
BeanUtils.copyProperties(param,item);
item.setBucket_record_id(bucket_record_id);
list.add(item);
}
iMdPbBucketrecordService.updateBatchById(list);
return new ResponseEntity<>(HttpStatus.OK);
}
@PutMapping()
@Log("修改桶记录表")
//("查询桶记录表")
public ResponseEntity<Object> update(@RequestBody JSONObject whereJson) {
@@ -54,7 +81,14 @@ public class MdPbBucketrecordController {
@DeleteMapping
@Log("删除桶记录表")
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
iMdPbBucketrecordService.removeByIds(Arrays.asList(ids));
if (ids != null && ids.length >0){
List<String> list = new ArrayList();
for (String item : ids) {
String[] split = item.split(",");
list.addAll(Arrays.asList(split));
}
iMdPbBucketrecordService.removeByIds(list);
}
return new ResponseEntity<>(HttpStatus.OK);
}

View File

@@ -29,6 +29,10 @@ public interface IMdPbBucketrecordService extends IService<MdPbBucketrecord> {
*/
Object queryAll(Map whereJson, PageQuery page);
Object queryBygroup(Map whereJson, PageQuery page);
Object queryItem(Map whereJson,PageQuery page);
void createBucke(MdPbBucketrecord dao);
/**

View File

@@ -19,5 +19,7 @@ public interface MdPbBucketrecordMapper extends BaseMapper<MdPbBucketrecord> {
List<Map> queryAll(Map<String,Object> map);
List<Map> queryAllBygroup(Map<String,Object> map);
List<Map> getMstList(@Param("storagevehicle_code") String storagevehicle_code,@Param("sale_code") String sale_code);
}

View File

@@ -46,4 +46,37 @@
</if>
GROUP BY storagevehicle_code,sale_code,create_time
</select>
<select id="queryAllBygroup" resultType="java.util.Map">
SELECT
GROUP_CONCAT(bucket_record_id) bucket_record_id,
storagevehicle_code,
count(1) as item_count,
sum(re.storage_qty) storage_qtys,qty_unit_name,status,re.create_time,contract_code,sale_code,
GROUP_CONCAT(ma.material_spec) as material_specs
FROM
MD_PB_BucketRecord re
LEFT JOIN md_me_materialbase ma ON ma.material_id = re.material_id
WHERE
1=1
<if test="material_id != null and material_id != ''">
and ma.material_id = #{material_id}
</if>
<if test="sale_code != null and sale_code != ''">
and re.sale_code like '%${sale_code}%'
</if>
<if test="storagevehicle_type != null and storagevehicle_type != ''">
and re.storagevehicle_type = #{storagevehicle_type}
</if>
<if test="status != null and status != ''">
and re.status = #{status}
</if>
<if test="storagevehicle_code != null and storagevehicle_code != ''">
and re.storagevehicle_code like '%${storagevehicle_code}%'
</if>
<if test="bucketunique != null and bucketunique != ''">
and ( re.bucketunique like '%${bucketunique}%' )
</if>
GROUP BY storagevehicle_code,re.status
order by re.create_time DESC
</select>
</mapper>

View File

@@ -81,6 +81,22 @@ public class MdPbBucketrecordServiceImpl extends ServiceImpl<MdPbBucketrecordMap
return build;
}
@Override
public Object queryBygroup(Map whereJson, PageQuery pageQuery) {
Page<Object> page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize());
TableDataInfo build = TableDataInfo.build(baseMapper.queryAllBygroup(whereJson));
build.setTotalElements(page.getTotal());
return build;
}
@Override
public Object queryItem(Map whereJson,PageQuery pageQuery) {
Page<Object> page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize());
TableDataInfo build = TableDataInfo.build(baseMapper.queryAll(whereJson));
build.setTotalElements(page.getTotal());
return build;
}
@Override
public void createBucke(MdPbBucketrecord dao) {
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(

View File

@@ -23,6 +23,13 @@ export function edit(data) {
data
})
}
export function updategroup(data) {
return request({
url: '/api/mdPbBucketrecord/updategroup',
method: 'put',
data
})
}
export function addPersons(data) {
return request({
@@ -72,4 +79,4 @@ export function excelImport(data) {
})
}
export default { add, edit, del, addPersons, getHeader, deleteRow, addDevices,excelImport }
export default { add, edit, del, addPersons, getHeader, deleteRow, addDevices,excelImport,updategroup }

View File

@@ -64,7 +64,7 @@
</crudOperation>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
:title="crud.status.title">
title="新增组盘信息">
<el-form
ref="form"
:inline="true"
@@ -81,9 +81,6 @@
<el-form-item label="销售单明细" prop="seq_no">
<el-input v-model="form.seq_no" style="width: 200px;" />
</el-form-item>
<el-form-item label="物料编码" prop="material_code">
<el-input v-model="form.material_code" style="width: 200px;" />
</el-form-item>
<el-form-item label="物料规格" prop="material_spec">
<el-input-number v-model="form.material_spec" style="width: 200px;" />
</el-form-item>
@@ -122,16 +119,46 @@
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<el-dialog width ="250" :close-on-click-modal="false" :visible.sync="statusEdit" title="编辑托盘状态">
<el-form
ref="form"
:inline="true"
:model="editForm"
label-width="100px"
style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;"
>
<el-form-item label="托盘号" prop="deliver_code">
<el-input v-model="editForm.storagevehicle_code" style="width: 160px;" />
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="editForm.status" placeholder="" style="width: 120px">
<el-option
v-for="item in dict.BOX_STATUS"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitStatus">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;"
@selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55"/>
<el-table-column prop="storagevehicle_code" label="托盘号"/>
<el-table-column prop="storagevehicle_code" label="托盘号">
<template slot-scope="scope">
<el-link type="warning" @click="vechile(scope.row.storagevehicle_code)">{{ scope.row.storagevehicle_code }}</el-link>
</template>
</el-table-column>
<el-table-column prop="sale_code" label="销售单号"/>
<el-table-column prop="seq_no" label="销售单明细"/>
<el-table-column prop="material_code" label="物料编码"/>
<el-table-column prop="material_spec" label="物料规格"/>
<el-table-column prop="storage_qty" label="数量"/>
<el-table-column prop="item_count" label="托盘明细"/>
<el-table-column prop="material_specs" label="物料规格" show-overflow-tooltip/>
<el-table-column prop="storage_qtys" label="总数量"/>
<el-table-column prop="qty_unit_name" label="计量单位"/>
<el-table-column prop="create_time" label="组盘时间"/>
<el-table-column prop="status" label="状态">
@@ -141,10 +168,7 @@
</el-table-column>
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
<el-button type="warning" size="mini" @click="editStatus(scope.row)">编辑状态</el-button>
</template>
</el-table-column>
</el-table>
@@ -155,6 +179,7 @@
:dialog-show.sync="uploadShow"
@tableChanged3="tableChanged3"
/>
<vechileViewDialog ref="vechileViewDialog" :dialog-show.sync="vachileView" />
<Dialog :dialog-show.sync="dialogShow" />
</div>
</template>
@@ -167,6 +192,7 @@ import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import UploadDialog from '@/views/wms/storage_manage/product/bucketRecord/UploadDialog'
import Dialog from '@/views/wms/storage_manage/product/bucketRecord/Dialog'
import vechileViewDialog from '@/views/wms/storage_manage/product/bucketRecord/vechileViewDialog'
import pagination from '@crud/Pagination'
import Treeselect, {LOAD_CHILDREN_OPTIONS} from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
@@ -197,7 +223,7 @@ const defaultForm = {
export default {
name: 'DeliveryOrder',
dicts: ['PCS_DELIVER_TYPE', 'BOX_STATUS'],
components: {pagination, crudOperation, rrOperation, udOperation, Treeselect, Dialog, UploadDialog},
components: {vechileViewDialog,pagination, crudOperation, rrOperation, udOperation, Treeselect, Dialog, UploadDialog},
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -214,6 +240,9 @@ export default {
},
data() {
return {
statusEdit:false,
vachileView:false,
editForm:{},
classes3: [],
uploadShow: false,
dialogShow: false,
@@ -244,6 +273,10 @@ export default {
})
})
},
vechile(row){
this.vachileView = true
this.$refs.vechileViewDialog.openQ(row)
},
tableChanged3() {
this.crud.toQuery()
},
@@ -276,6 +309,18 @@ export default {
})
}
},
editStatus(row){
this.editForm = row,
this.statusEdit = true
},
submitStatus(){
crudbucketrecord.updategroup(this.editForm).then(res => {
this.editForm = {}
this.crud.notify('编辑成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.statusEdit = false
this.crud.toQuery()
})
},
initClass3() {
const param = {
parent_class_code: '07'

View File

@@ -0,0 +1,79 @@
<template>
<el-dialog
title="托盘明细"
append-to-body
:visible.sync="dialogVisible"
destroy-on-close
width="80%"
>
<!--表格渲染-->
<el-table
ref="table"
v-loading="crud.loading"
:data="crud.data"
size="mini"
style="width: 100%;"
>
<el-table-column type="index" fixed width="80" label="序号" />
<el-table-column prop="storagevehicle_code" fixed width="120" label="托盘号" />
<el-table-column prop="sale_code" width="120" label="销售单号" />
<el-table-column prop="seq_no" label="销售单明细" width="100" />
<el-table-column prop="material_spec" label="物料规格" width="150" />
<el-table-column prop="storage_qty" label="数量" width="150" />
<el-table-column prop="qty_unit_name" label="单位" width="150" />
<el-table-column prop="create_time" label="组盘时间" width="150" />
<el-table-column prop="status" label="状态">
<template slot-scope="scope">
{{ dict.label.BOX_STATUS[scope.row.status] }}
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</template>
<script>
import bucketrecord from '@/views/wms/storage_manage/product/bucketRecord/bucketrecord'
import CRUD, { header, presenter } from '@crud/crud'
import pagination from '@crud/Pagination'
export default {
name: 'vechileViewDialog',
components: {pagination },
cruds() {
return CRUD({ title: '组盘明细', url: '/api/mdPbBucketrecord/vechile_code', crudMethod: { ...bucketrecord }, optShow: {}})
},
mixins: [presenter(), header()],
dicts: ['BOX_STATUS'],
props: {
},
data() {
return {
dialogVisible: false,
tableRadio: null,
checkrow: null,
rows: [],
}
},
methods: {
openQ(query) {
this.crud.query.storagevehicle_code = query
this.dialogVisible = true
this.crud.toQuery()
},
submit() {
this.dialogVisible = false
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
::v-deep .el-dialog__body {
padding-top: 0px;
}
</style>