作者 朱兆平

仓库入库

1 import axios from 'axios' 1 import axios from 'axios'
2 import http from "../http"; 2 import http from "../http";
3 3
4 - 4 +let baseServiceURL = 'wms-server-warehouse/wms'
5 let baseUrl = 'wms-server-warehouse/wms/station' 5 let baseUrl = 'wms-server-warehouse/wms/station'
6 let baseUrl1 = 'wms-server-warehouse/wms/house' 6 let baseUrl1 = 'wms-server-warehouse/wms/house'
7 let baseUrl2 = 'wms-server-warehouse/wms/inventroyrecord' 7 let baseUrl2 = 'wms-server-warehouse/wms/inventroyrecord'
@@ -43,6 +43,9 @@ export const delInventoryrecord = params => { return axios.get(`${baseUrl2}/delI @@ -43,6 +43,9 @@ export const delInventoryrecord = params => { return axios.get(`${baseUrl2}/delI
43 43
44 export const addInventoryrecord = params => { return http.post(`${baseUrl2}/addInventoryrecord`,params)}; 44 export const addInventoryrecord = params => { return http.post(`${baseUrl2}/addInventoryrecord`,params)};
45 45
  46 +//批量入库
  47 +export const batchImpNewinventroyrecord = params => { return http.post(`${baseServiceURL}/newinventroyrecord/batchImpNewinventroyrecord`,params)};
  48 +
46 export const ediInventroyrecord = params => { return http.post(`${baseUrl2}/ediInventroyrecord`,params)}; 49 export const ediInventroyrecord = params => { return http.post(`${baseUrl2}/ediInventroyrecord`,params)};
47 //库位管理 50 //库位管理
48 export const selectLocations = params => { return axios.get(`${baseUrl3}/selectLocations`, { params: params }); }; 51 export const selectLocations = params => { return axios.get(`${baseUrl3}/selectLocations`, { params: params }); };
@@ -27,15 +27,15 @@ @@ -27,15 +27,15 @@
27 </el-form-item> 27 </el-form-item>
28 </el-col> 28 </el-col>
29 <el-col :span="6"> 29 <el-col :span="6">
30 - <el-form-item label=" " :label-width="formLabelWidth" prop="pcs">  
31 - <el-input v-model.number="addForm.pcs" autocomplete="off" suffix-icon="el-icon-files" clearable > 30 + <el-form-item label=" " :label-width="formLabelWidth" prop="totalpcs">
  31 + <el-input v-model.number="addForm.totalpcs" autocomplete="off" suffix-icon="el-icon-files" clearable >
32 <template slot="prepend">总&nbsp;件&nbsp;数</template> 32 <template slot="prepend">总&nbsp;件&nbsp;数</template>
33 </el-input> 33 </el-input>
34 </el-form-item> 34 </el-form-item>
35 </el-col> 35 </el-col>
36 <el-col :span="6"> 36 <el-col :span="6">
37 - <el-form-item label=" " :label-width="formLabelWidth" prop="weight">  
38 - <el-input v-model="addForm.weight" autocomplete="off" suffix-icon="el-icon-files" clearable> 37 + <el-form-item label=" " :label-width="formLabelWidth" prop="totalweight">
  38 + <el-input v-model="addForm.totalweight" autocomplete="off" suffix-icon="el-icon-files" clearable>
39 <template slot="prepend">总&nbsp;重&nbsp;量</template> 39 <template slot="prepend">总&nbsp;重&nbsp;量</template>
40 </el-input> 40 </el-input>
41 </el-form-item> 41 </el-form-item>
@@ -50,24 +50,24 @@ @@ -50,24 +50,24 @@
50 </el-form-item> 50 </el-form-item>
51 </el-col> 51 </el-col>
52 <el-col :span="6"> 52 <el-col :span="6">
53 - <el-form-item label=" " :label-width="formLabelWidth" prop="weight">  
54 - <el-input v-model="addForm.weight" autocomplete="off" suffix-icon="el-icon-files" clearable> 53 + <el-form-item label=" " :label-width="formLabelWidth" prop="billweight">
  54 + <el-input v-model="addForm.billweight" autocomplete="off" suffix-icon="el-icon-files" clearable>
55 <template slot="prepend">入库重量</template> 55 <template slot="prepend">入库重量</template>
56 </el-input> 56 </el-input>
57 </el-form-item> 57 </el-form-item>
58 </el-col> 58 </el-col>
59 <el-col :span="6"> 59 <el-col :span="6">
60 - <el-form-item label=" " :label-width="formLabelWidth" prop="billweight">  
61 - <el-input v-model="addForm.billweight" autocomplete="off" suffix-icon="el-icon-files" clearable> 60 + <el-form-item label=" " :label-width="formLabelWidth" prop="feeweight">
  61 + <el-input v-model="addForm.feeweight" autocomplete="off" suffix-icon="el-icon-files" clearable>
62 <template slot="prepend">计费重量</template> 62 <template slot="prepend">计费重量</template>
63 </el-input> 63 </el-input>
64 </el-form-item> 64 </el-form-item>
65 </el-col> 65 </el-col>
66 <el-col :span="6"> 66 <el-col :span="6">
67 - <el-form-item label=" " :label-width="formLabelWidth" prop="packge"> 67 + <el-form-item label=" " :label-width="formLabelWidth" prop="packingid">
68 <div class="my-text-area"> 68 <div class="my-text-area">
69 <div class="el-input-group__prepend prepand">包装类型</div> 69 <div class="el-input-group__prepend prepand">包装类型</div>
70 - <el-select v-model="addForm.packge" 70 + <el-select v-model="addForm.packingid"
71 placeholder="包装类型" 71 placeholder="包装类型"
72 filterable 72 filterable
73 default-first-option 73 default-first-option
@@ -87,14 +87,14 @@ @@ -87,14 +87,14 @@
87 </el-row> 87 </el-row>
88 <el-row> 88 <el-row>
89 <el-col :span="6"> 89 <el-col :span="6">
90 - <el-form-item label=" " :label-width="formLabelWidth" prop="vol">  
91 - <el-tooltip class="item" effect="dark" content="单位:厘米,每行录入一个体积信息格式如:1x2x3x4(长x宽x高x件数),回车换行" placement="right"> 90 + <el-form-item label=" " :label-width="formLabelWidth" prop="goodssize">
  91 + <el-tooltip class="item" effect="dark" content="单位:厘米,每行录入一个尺寸信息格式如:1x2x3x4(长x宽x高x件数),回车换行" placement="right">
92 <div class="my-text-area"> 92 <div class="my-text-area">
93 <div class="el-input-group__prepend prepand">体&emsp;&emsp;积</div> 93 <div class="el-input-group__prepend prepand">体&emsp;&emsp;积</div>
94 - <el-input v-model="addForm.vol" 94 + <el-input v-model="addForm.goodssize"
95 type="textarea" 95 type="textarea"
96 autosize 96 autosize
97 - placeholder="请输入体积" 97 + placeholder="请输入尺寸"
98 style="float: left;width:calc(100% - 89px)" 98 style="float: left;width:calc(100% - 89px)"
99 > 99 >
100 </el-input> 100 </el-input>
@@ -103,8 +103,8 @@ @@ -103,8 +103,8 @@
103 </el-form-item> 103 </el-form-item>
104 </el-col> 104 </el-col>
105 <el-col :span="6"> 105 <el-col :span="6">
106 - <el-form-item label=" " :label-width="formLabelWidth" prop="volValue">  
107 - <el-input v-model="addForm.volValue" autocomplete="off" suffix-icon="el-icon-files" disabled> 106 + <el-form-item label=" " :label-width="formLabelWidth" prop="goodsvol">
  107 + <el-input v-model="addForm.goodsvol" autocomplete="off" suffix-icon="el-icon-files" disabled>
108 <template slot="prepend">入库体积</template> 108 <template slot="prepend">入库体积</template>
109 </el-input> 109 </el-input>
110 </el-form-item> 110 </el-form-item>
@@ -153,18 +153,18 @@ @@ -153,18 +153,18 @@
153 </el-form-item> 153 </el-form-item>
154 </el-col> 154 </el-col>
155 <el-col :span="6"> 155 <el-col :span="6">
156 - <el-form-item label=" " :label-width="formLabelWidth" prop="transcar">  
157 - <el-input v-model="addForm.transcar" autocomplete="off" suffix-icon="el-icon-files" > 156 + <el-form-item label=" " :label-width="formLabelWidth" prop="licenseplate">
  157 + <el-input v-model="addForm.licenseplate" autocomplete="off" suffix-icon="el-icon-files" >
158 <template slot="prepend">运输车辆</template> 158 <template slot="prepend">运输车辆</template>
159 </el-input> 159 </el-input>
160 </el-form-item> 160 </el-form-item>
161 </el-col> 161 </el-col>
162 <el-col :span="6"> 162 <el-col :span="6">
163 - <el-form-item label=" " :label-width="formLabelWidth" prop="customername"> 163 + <el-form-item label=" " :label-width="formLabelWidth" prop="custcode">
164 <el-autocomplete 164 <el-autocomplete
165 - v-model="addForm.customername" 165 + v-model="addForm.custcode"
166 :fetch-suggestions="crmQuerySearch" 166 :fetch-suggestions="crmQuerySearch"
167 - placeholder="请输入货主名称" 167 + placeholder="请输入客户代码"
168 :trigger-on-focus="false" 168 :trigger-on-focus="false"
169 value-key = "roleName" 169 value-key = "roleName"
170 clearable 170 clearable
@@ -355,12 +355,24 @@ @@ -355,12 +355,24 @@
355 fixed="left" 355 fixed="left"
356 width="55" 356 width="55"
357 /> 357 />
358 - <el-table-column  
359 - fixed  
360 - prop="waybill"  
361 - label="货物单号"  
362 - width="120">  
363 - </el-table-column> 358 + <el-table-column
  359 + fixed
  360 + prop="waybill"
  361 + label="主单号"
  362 + width="120">
  363 + <template slot-scope="scope">
  364 + {{scope.row.waybill}}
  365 + </template>
  366 + </el-table-column>
  367 + <el-table-column
  368 + fixed
  369 + prop="waybill"
  370 + label="分单号"
  371 + width="120">
  372 + <template slot-scope="scope">
  373 + {{scope.row.billfhl}}
  374 + </template>
  375 + </el-table-column>
364 <el-table-column 376 <el-table-column
365 fixed 377 fixed
366 prop="serialnumber" 378 prop="serialnumber"
@@ -369,39 +381,39 @@ @@ -369,39 +381,39 @@
369 </el-table-column> 381 </el-table-column>
370 <el-table-column 382 <el-table-column
371 prop="pcs" 383 prop="pcs"
372 - label="件数" 384 + label="入库件数"
373 width="60"> 385 width="60">
374 </el-table-column> 386 </el-table-column>
375 - <el-table-column  
376 - prop="weight"  
377 - label="重量"  
378 - width="60">  
379 - </el-table-column>  
380 - <el-table-column  
381 - prop="billweight"  
382 - label="计费重量"  
383 - width="70">  
384 - </el-table-column>  
385 <el-table-column 387 <el-table-column
386 - prop="vol"  
387 - label="体积" 388 + prop="billweight"
  389 + label="入库重量"
388 width="60"> 390 width="60">
389 </el-table-column> 391 </el-table-column>
390 - <el-table-column  
391 - prop="area"  
392 - label="库区"  
393 - width="60">  
394 - </el-table-column> 392 + <el-table-column
  393 + prop="feeweight"
  394 + label="计费重量"
  395 + width="70">
  396 + </el-table-column>
  397 + <el-table-column
  398 + prop="goodssize"
  399 + label="尺寸"
  400 + width="60">
  401 + </el-table-column>
  402 +<!-- <el-table-column-->
  403 +<!-- prop="area"-->
  404 +<!-- label="库区"-->
  405 +<!-- width="60">-->
  406 +<!-- </el-table-column>-->
395 <el-table-column 407 <el-table-column
396 prop="location" 408 prop="location"
397 label="库位" 409 label="库位"
398 width="60"> 410 width="60">
399 </el-table-column> 411 </el-table-column>
400 - <el-table-column  
401 - prop="station"  
402 - label="出入库场站"  
403 - width="100">  
404 - </el-table-column> 412 +<!-- <el-table-column-->
  413 +<!-- prop="station"-->
  414 +<!-- label="出入库场站"-->
  415 +<!-- width="100">-->
  416 +<!-- </el-table-column>-->
405 <el-table-column 417 <el-table-column
406 prop="status" 418 prop="status"
407 label="状态" 419 label="状态"
@@ -412,7 +424,7 @@ @@ -412,7 +424,7 @@
412 </template> 424 </template>
413 </el-table-column> 425 </el-table-column>
414 <el-table-column 426 <el-table-column
415 - prop="transcar" 427 + prop="licenseplate"
416 label="运输车辆信息" 428 label="运输车辆信息"
417 width="100"> 429 width="100">
418 </el-table-column> 430 </el-table-column>
@@ -432,29 +444,29 @@ @@ -432,29 +444,29 @@
432 <!-- width="100">--> 444 <!-- width="100">-->
433 <!-- </el-table-column>--> 445 <!-- </el-table-column>-->
434 <el-table-column 446 <el-table-column
435 - prop="customername"  
436 - label="客户名称"  
437 - width="80">  
438 - </el-table-column>  
439 - <el-table-column  
440 - prop="goodstype"  
441 - label="货物类型" 447 + prop="custcode"
  448 + label="客户代码"
442 width="80"> 449 width="80">
443 </el-table-column> 450 </el-table-column>
444 - <el-table-column  
445 - prop="house"  
446 - label="出入库仓库"  
447 - width="100">  
448 - </el-table-column>  
449 - <el-table-column  
450 - prop="ietype"  
451 - label="类型"  
452 - width="60">  
453 - <template slot-scope="scope">  
454 - <span v-if="scope.row.ietype ==='I'">进</span>  
455 - <span v-if="scope.row.ietype ==='E'">出</span>  
456 - </template>  
457 - </el-table-column> 451 +<!-- <el-table-column-->
  452 +<!-- prop="goodstype"-->
  453 +<!-- label="货物类型"-->
  454 +<!-- width="80">-->
  455 +<!-- </el-table-column>-->
  456 +<!-- <el-table-column-->
  457 +<!-- prop="house"-->
  458 +<!-- label="出入库仓库"-->
  459 +<!-- width="100">-->
  460 +<!-- </el-table-column>-->
  461 +<!-- <el-table-column-->
  462 +<!-- prop="ietype"-->
  463 +<!-- label="类型"-->
  464 +<!-- width="60">-->
  465 +<!-- <template slot-scope="scope">-->
  466 +<!-- <span v-if="scope.row.ietype ==='I'">进</span>-->
  467 +<!-- <span v-if="scope.row.ietype ==='E'">出</span>-->
  468 +<!-- </template>-->
  469 +<!-- </el-table-column>-->
458 <el-table-column 470 <el-table-column
459 prop="opter" 471 prop="opter"
460 label="出入库经办人" 472 label="出入库经办人"
@@ -614,6 +626,7 @@ @@ -614,6 +626,7 @@
614 selectInventroyrecords, 626 selectInventroyrecords,
615 delInventoryrecord, 627 delInventoryrecord,
616 addInventoryrecord, 628 addInventoryrecord,
  629 + batchImpNewinventroyrecord,
617 ediInventroyrecord, 630 ediInventroyrecord,
618 selectAreas, 631 selectAreas,
619 selectLocations, 632 selectLocations,
@@ -661,7 +674,7 @@ @@ -661,7 +674,7 @@
661 console.log(err.name + ' '+ err.message) 674 console.log(err.name + ' '+ err.message)
662 callback(); 675 callback();
663 if (err && err.message===''){ 676 if (err && err.message===''){
664 - _this.addForm.volValue = (tempVol/1000000).toFixed(2) 677 + _this.addForm.goodsvol = (tempVol/1000000).toFixed(2)
665 _this.volAreatextMerge(lineStr) 678 _this.volAreatextMerge(lineStr)
666 } 679 }
667 680
@@ -702,10 +715,10 @@ @@ -702,10 +715,10 @@
702 otherDrawerVisible: false, 715 otherDrawerVisible: false,
703 addForm: { 716 addForm: {
704 area: '', 717 area: '',
705 - billweight: '', 718 + feeweight: '',
706 custel: '', 719 custel: '',
707 customer: '', 720 customer: '',
708 - customername: '', 721 + custcode: '',
709 goodstype: '运单', 722 goodstype: '运单',
710 house:'', 723 house:'',
711 ietype:'I', 724 ietype:'I',
@@ -713,13 +726,14 @@ @@ -713,13 +726,14 @@
713 opter:'', 726 opter:'',
714 opttime: '', 727 opttime: '',
715 pcs: '', 728 pcs: '',
  729 + totalpcs:0,
716 serialnumber: '', 730 serialnumber: '',
717 station: '', 731 station: '',
718 status: '', 732 status: '',
719 - transcar: '', 733 + licenseplate: '',
720 transtype:'销售入库', 734 transtype:'销售入库',
721 - vol:'',  
722 - volValue:0, 735 + goodssize:'',
  736 + goodsvol:0,
723 waybill:'', 737 waybill:'',
724 billfhl:'', 738 billfhl:'',
725 //随货文件 739 //随货文件
@@ -729,8 +743,9 @@ @@ -729,8 +743,9 @@
729 files:[], 743 files:[],
730 damages:[], 744 damages:[],
731 sphCodes:[], 745 sphCodes:[],
732 - weight:'',  
733 - packge:'', 746 + billweight:0,
  747 + totalweight:0,
  748 + packingid:'',
734 remark:'', 749 remark:'',
735 remark1:'', 750 remark1:'',
736 remark2:'', 751 remark2:'',
@@ -773,15 +788,15 @@ @@ -773,15 +788,15 @@
773 { pattern: /^[0-9A-Z]+$/, message: '分单号格式只支持数字与大写字母' } 788 { pattern: /^[0-9A-Z]+$/, message: '分单号格式只支持数字与大写字母' }
774 ], 789 ],
775 pcs: [ 790 pcs: [
776 - { required: true, message: '件数必填', trigger: 'blur' }, 791 + { required: true, message: '入库件数必填', trigger: 'blur' },
777 { type:"number", message: '件数必须为整数'} 792 { type:"number", message: '件数必须为整数'}
778 ], 793 ],
779 - weight: [  
780 - { required: true, message: '重量为必填项', trigger: 'blur' }, 794 + billweight: [
  795 + { required: true, message: '入库重量为必填项', trigger: 'blur' },
781 // eslint-disable-next-line no-useless-escape 796 // eslint-disable-next-line no-useless-escape
782 { pattern: /^([0-9]+)(\.\d{2})?$/, message: '只允许输入数字与小数,支持到小数点后两位' } 797 { pattern: /^([0-9]+)(\.\d{2})?$/, message: '只允许输入数字与小数,支持到小数点后两位' }
783 ], 798 ],
784 - billweight: [ 799 + feeweight: [
785 { required: true, message: '计费重量为必填项', trigger: 'blur' }, 800 { required: true, message: '计费重量为必填项', trigger: 'blur' },
786 { pattern: /^([0-9]+)(\.\d{2})?$/, message: '只允许输入数字与小数,支持到小数点后两位' } 801 { pattern: /^([0-9]+)(\.\d{2})?$/, message: '只允许输入数字与小数,支持到小数点后两位' }
787 ], 802 ],
@@ -791,18 +806,18 @@ @@ -791,18 +806,18 @@
791 location: [ 806 location: [
792 { required: true, message: '库位为必填项', trigger: 'blur' } 807 { required: true, message: '库位为必填项', trigger: 'blur' }
793 ], 808 ],
794 - customername: [ 809 + custcode: [
795 { required: true, message: '货主名称为必填项', trigger: 'blur' } 810 { required: true, message: '货主名称为必填项', trigger: 'blur' }
796 ], 811 ],
797 opter: [ 812 opter: [
798 { required: true, message: '必须包含经办人信息', trigger: 'blur' } 813 { required: true, message: '必须包含经办人信息', trigger: 'blur' }
799 ], 814 ],
800 - vol:[  
801 - { required: true, message: '体积信息必填', trigger: 'blur' }, 815 + goodssize:[
  816 + { required: true, message: '尺寸信息必填', trigger: 'blur' },
802 { validator: checkInputArea, trigger: 'blur' } 817 { validator: checkInputArea, trigger: 'blur' }
803 // { pattern: /^[0-9\.x]+$/gm, message: '体积信息只能输入数字和(.)点符号与x小写字母' } 818 // { pattern: /^[0-9\.x]+$/gm, message: '体积信息只能输入数字和(.)点符号与x小写字母' }
804 ], 819 ],
805 - packge:[ 820 + packingid:[
806 { required: true, message: '包装信息必选', trigger: 'blur' } 821 { required: true, message: '包装信息必选', trigger: 'blur' }
807 ] 822 ]
808 }, 823 },
@@ -837,38 +852,22 @@ @@ -837,38 +852,22 @@
837 }, 852 },
838 // 添加对话框,打开事件 853 // 添加对话框,打开事件
839 applyAdd() { 854 applyAdd() {
840 - this.addForm = {  
841 - area: '',  
842 - billweight: '',  
843 - custel: '',  
844 - customer: '',  
845 - customername: '',  
846 - goodstype: '',  
847 - house:'',  
848 - ietype:'',  
849 - location:'',  
850 - opter:'',  
851 - opttime: '',  
852 - pcs: '',  
853 - serialnumber: '',  
854 - station: '',  
855 - status: '',  
856 - transcar: '',  
857 - transtype:'',  
858 - vol:'',  
859 - pacage:'',  
860 - waybill:'',  
861 - weight:'',  
862 - remark:'',  
863 - remark1:'',  
864 - remark2:'',  
865 - remark3:'',  
866 - remark4:'',  
867 - remark5:'',  
868 - uuid:''  
869 - };  
870 - this.dialogApply= 'create';  
871 - this.apply_dialog.addDialog = true; 855 + let ld = this.$loading({
  856 + text:"入库中..."
  857 + })
  858 + batchImpNewinventroyrecord(this.tableData).then((response) => {
  859 + let res = response.data;
  860 + // 添加失败
  861 + if (res.code !== '200') {
  862 + return this.$message.error(res.msg);
  863 + }
  864 + // 添加,成功
  865 + this.$message.success(res.msg);
  866 + }).catch(error => {
  867 + this.$message.error(error.toString());
  868 + }).finally(()=>{
  869 + ld.close()
  870 + });
872 }, 871 },
873 batchAdd(){ 872 batchAdd(){
874 this.$refs.addForm.validate(valid => { 873 this.$refs.addForm.validate(valid => {
@@ -885,7 +884,7 @@ @@ -885,7 +884,7 @@
885 this.$refs.addForm.validate(valid => { 884 this.$refs.addForm.validate(valid => {
886 // 未通过,表单预校验 885 // 未通过,表单预校验
887 if (!valid) return; 886 if (!valid) return;
888 - addInventoryrecord(this.addForm).then((response) => { 887 + batchImpNewinventroyrecord(this.addForm).then((response) => {
889 let res = response.data; 888 let res = response.data;
890 // 添加失败 889 // 添加失败
891 if (res.code !== '200') { 890 if (res.code !== '200') {
@@ -1145,6 +1144,7 @@ @@ -1145,6 +1144,7 @@
1145 1144
1146 }, 1145 },
1147 submitUpload(formData){ 1146 submitUpload(formData){
  1147 + const fileServiceName = '/api/wlpt-custom-service-workflow'
1148 let ld = this.$loading({ 1148 let ld = this.$loading({
1149 text:"图片数据上传中..." 1149 text:"图片数据上传中..."
1150 }) 1150 })
@@ -1155,7 +1155,7 @@ @@ -1155,7 +1155,7 @@
1155 return this.$message.error(res.msg); 1155 return this.$message.error(res.msg);
1156 } 1156 }
1157 this.$message.success(res.msg); 1157 this.$message.success(res.msg);
1158 - this.addForm.annex = res.data.relativePath 1158 + this.addForm.annex = fileServiceName + res.data.relativePath
1159 }).finally(()=>{ 1159 }).finally(()=>{
1160 ld.close() 1160 ld.close()
1161 }) 1161 })