Browse Source

Merge remote-tracking branch 'origin/master'

master
God 11 months ago
parent
commit
1dda8719d5
  1. 12
      yxt-as-ui/src/api/Common/dictcommons.js
  2. 50
      yxt-as-ui/src/api/maintenance/maintenanceOutbound.js
  3. 49
      yxt-as-ui/src/api/maintenance/maintenanceReturnBound.js
  4. 12
      yxt-as-ui/src/api/storage/allocation.js
  5. 11
      yxt-as-ui/src/api/storage/deliveryNotice.js
  6. 23
      yxt-as-ui/src/api/storage/inOutStorage.js
  7. 17
      yxt-as-ui/src/api/storage/maintenanceInOrOutBound.js
  8. 17
      yxt-as-ui/src/api/storage/oldPartsInAndOutStorage.js
  9. 15
      yxt-as-ui/src/api/storage/oldPartsInvertory.js
  10. 10
      yxt-as-ui/src/api/storage/receivingGoods.js
  11. 9
      yxt-as-ui/src/api/warehouse/warehouseArea.js
  12. 24
      yxt-as-ui/src/router/index.js
  13. 9
      yxt-as-ui/src/views/goods/category/categoryAdd.vue
  14. 632
      yxt-as-ui/src/views/maintenance/maintenanceOutbound/index.vue
  15. 205
      yxt-as-ui/src/views/maintenance/maintenanceOutbound/relation/chooseproducts.vue
  16. 549
      yxt-as-ui/src/views/maintenance/maintenanceReturnBound/index.vue
  17. 205
      yxt-as-ui/src/views/maintenance/maintenanceReturnBound/relation/chooseproducts.vue
  18. 10
      yxt-as-ui/src/views/operation/claimbilling/claimbilling.vue
  19. 14
      yxt-as-ui/src/views/operation/claimbilling/claimbillingAdd.vue
  20. 10
      yxt-as-ui/src/views/operation/claimbilling/claimbillingInfo.vue
  21. 14
      yxt-as-ui/src/views/operation/preregistration/preregistrationAdd.vue
  22. 10
      yxt-as-ui/src/views/operation/preregistration/preregistrationInfo.vue
  23. 8
      yxt-as-ui/src/views/operation/repairbill/repairbillAdd.vue
  24. 6
      yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue
  25. 5
      yxt-as-ui/src/views/storage/allocation/allocationAdd.vue
  26. 4
      yxt-as-ui/src/views/storage/deliveryNotice/index.vue
  27. 69
      yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue
  28. 8
      yxt-as-ui/src/views/storage/deliveryNotice/receiptInfo.vue
  29. 85
      yxt-as-ui/src/views/storage/inOutStorage/index.vue
  30. 56
      yxt-as-ui/src/views/storage/inStorage/inStorageAdd.vue
  31. 297
      yxt-as-ui/src/views/storage/maintenanceInOrOutBound/index.vue
  32. 276
      yxt-as-ui/src/views/storage/maintenanceInOrOutBound/maintenanceOutboundInfo.vue
  33. 272
      yxt-as-ui/src/views/storage/maintenanceInOrOutBound/maintenanceReturnBoundInfo.vue
  34. 5
      yxt-as-ui/src/views/storage/oldPartsInAndOutStorage/index.vue
  35. 5
      yxt-as-ui/src/views/storage/oldPartsInvertory/index.vue
  36. 4
      yxt-as-ui/src/views/storage/outStorage/relation/chooseproducts.vue
  37. 4
      yxt-as-ui/src/views/storage/receivingGoods/index.vue
  38. 634
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue
  39. 10
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsInfo.vue
  40. 164
      yxt-as-ui/src/views/storage/receivingGoods/relation/chooseproducts.vue
  41. 11
      yxt-as-ui/src/views/storage/receivingGoods/upShelfAddRecord.vue
  42. 5
      yxt-as-ui/src/views/storage/upShelf/upShelfAdd.vue
  43. 2
      yxt-as-ui/src/views/warehouse/goodsShelves/index.vue
  44. 6
      yxt-as-ui/src/views/workFlow/suopeikaipiaoFlow/claimbillingDaiBan.vue
  45. 8
      yxt-as-ui/src/views/workFlow/suopeikaipiaoFlow/claimbillingEdit.vue
  46. 6
      yxt-as-ui/src/views/workFlow/suopeikaipiaoFlow/claimbillingYiBan.vue
  47. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java
  48. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java
  49. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java
  50. 7
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillQuery.java
  51. 5
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillVo.java
  52. 48
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/InventoryBillDetailsVo.java
  53. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java
  54. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailDto.java
  55. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailSDto.java
  56. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusreservebill/AsBusreserveBill.java
  57. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusreservebill/AsBusreserveBillDetailsVo.java
  58. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusreservebill/AsBusreserveBillDto.java
  59. 5
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml
  60. 34
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  61. 2
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.java
  62. 38
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.xml
  63. 11
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillRest.java
  64. 235
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  65. 2
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusreservebill/AsBusreserveBillMapper.xml
  66. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusreservebill/AsBusreserveBillService.java
  67. 5
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeign.java
  68. 7
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeignFallback.java
  69. 17
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsUpdateCountQuery.java
  70. 1
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoutbill/WmsOutBillInventoryQuery.java
  71. 9
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoutbill/WmsOutBillService.java

12
yxt-as-ui/src/api/Common/dictcommons.js

@ -170,3 +170,15 @@ export function getInventoryList(params) {
}
})
}
// 查询分页列表 -- 维修工单列表
export function getAsBusrepairBill(params) {
return request({
url: '/as/v1/AsBusrepairBill/listPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}

50
yxt-as-ui/src/api/maintenance/maintenanceOutbound.js

@ -0,0 +1,50 @@
import request from '@/utils/request'
export default {
// 选择工单初始化数据
initBill: function(data) {
return request({
url: '/as/v1/AsBusrepairInventorybill/init',
method: 'get',
params: data
});
},
// 查询分页列表
getGoodsListPage: function(params) {
return request({
url: '/wms/apiadmin/WmsOutBill/getInventoryList',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 新增、保存
saveBill: function(data) {
return request({
url: '/as/v1/AsBusrepairInventorybill/outBill',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
});
},
// 详情
detailsBill: function(data) {
return request({
url: '/as/v1/AsBusrepairInventorybill/details',
method: 'get',
params: data
});
},
}

49
yxt-as-ui/src/api/maintenance/maintenanceReturnBound.js

@ -0,0 +1,49 @@
import request from '@/utils/request'
export default {
// 选择工单初始化数据
initBill: function(data) {
return request({
url: '/as/v1/AsBusrepairInventorybill/init',
method: 'get',
params: data
});
},
// 查询分页列表
getGoodsListPage: function(params) {
return request({
url: '/wms/apiadmin/WmsOutBill/getInventoryList',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 新增、保存
saveBill: function(data) {
return request({
url: '/as/v1/AsBusrepairInventorybill/quitBill',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
});
},
// 详情
detailsBill: function(data) {
return request({
url: '/as/v1/AsBusrepairInventorybill/details',
method: 'get',
params: data
});
},
}

12
yxt-as-ui/src/api/storage/allocation.js

@ -44,9 +44,13 @@ export default {
// 查询所有仓库
getWarehouses: function(params) {
return request({
url: '/wms/apiadmin/base/wmswarehouseinfo/selectAll',
method: 'get'
})
url: '/wms/apiadmin/base/wmswarehouseinfo/listAll',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
@ -55,7 +59,7 @@ export default {
return request({
url: '/wms/apiadmin/base/wmswarehousearea/selectAll',
method: 'get',
data: data,
params: data,
headers: { 'Content-Type': 'application/json' }
});
},

11
yxt-as-ui/src/api/storage/deliveryNotice.js

@ -55,16 +55,5 @@ export default {
});
},
// 选择供应商
choiceSupplier: function(params) {
return request({
url: '/pms/v1/pmssupplierinfo/choiceSupplierInfo?orgSid=' + params,
method: 'post',
headers: {
'Content-Type': 'application/json'
}
})
},
}

23
yxt-as-ui/src/api/storage/inOutStorage.js

@ -27,29 +27,26 @@ export default {
});
},
// 选择供应商
choiceSupplier: function(params) {
return request({
url: '/wms/apiadmin/base/basesupplierinfo/choiceSupplierInfo',
method: 'post',
data: params,
})
},
// 查询所有仓库
getWarehouses: function(params) {
return request({
url: '/wms/apiadmin/base/wmswarehouseinfo/selectAll',
method: 'get'
url: '/wms/apiadmin/base/wmswarehouseinfo/listAll',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 根据仓库查询库位
getWarehouseareas: function(data) {
return request({
url: '/wms/apiadmin/base/wmswarehousearea/selectAll',
method: 'get',
data: data,
url: '/wms/apiadmin/base/wmswarehousearea/selectAll',
method: 'get',
params: data,
headers: { 'Content-Type': 'application/json' }
});
},
}

17
yxt-as-ui/src/api/storage/maintenanceInOrOutBound.js

@ -0,0 +1,17 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/as/v1/AsBusrepairInventorybill/pageList',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
}

17
yxt-as-ui/src/api/storage/oldPartsInAndOutStorage.js

@ -39,17 +39,22 @@ export default {
// 查询所有仓库
getWarehouses: function(params) {
return request({
url: '/wms/apiadmin/base/wmswarehouseinfo/selectAll',
method: 'get'
})
url: '/wms/apiadmin/base/wmswarehouseinfo/listAll',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 根据仓库查询库位
getWarehouseareas: function(data) {
return request({
url: '/wms/apiadmin/base/wmswarehousearea/selectAll',
method: 'get',
data: data,
url: '/wms/apiadmin/base/wmswarehousearea/selectAll',
method: 'get',
params: data,
headers: { 'Content-Type': 'application/json' }
});
},

15
yxt-as-ui/src/api/storage/oldPartsInvertory.js

@ -61,17 +61,22 @@ export default {
// 查询所有仓库
getWarehouses: function(params) {
return request({
url: '/wms/apiadmin/base/wmswarehouseinfo/selectAll',
method: 'get'
url: '/wms/apiadmin/base/wmswarehouseinfo/listAll',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 根据仓库查询库位
getWarehouseareas: function(data) {
return request({
url: '/wms/apiadmin/base/wmswarehousearea/selectAll',
method: 'get',
data: data,
url: '/wms/apiadmin/base/wmswarehousearea/selectAll',
method: 'get',
params: data,
headers: { 'Content-Type': 'application/json' }
});
},

10
yxt-as-ui/src/api/storage/receivingGoods.js

@ -73,16 +73,6 @@ export default {
})
},
// 选择供应商
choiceSupplier: function(params) {
return request({
url: '/pms/v1/pmssupplierinfo/choiceSupplierInfo?orgSid=' + params,
method: 'post',
headers: {
'Content-Type': 'application/json'
}
})
},
deleteBySids: function(data) {

9
yxt-as-ui/src/api/warehouse/warehouseArea.js

@ -30,11 +30,10 @@ export default {
// 根据仓库sid查询库区
getAllWarehouseareaBysid: function(params) {
return request({
url: '/wms/apiadmin/base/wmswarehousearea/selectAll?ckSid='+params,
method: 'get',
headers: {
'Content-Type': 'application/json'
}
url: '/wms/apiadmin/base/wmswarehousearea/selectAll',
method: 'get',
params: data,
headers: { 'Content-Type': 'application/json' }
})
},

24
yxt-as-ui/src/router/index.js

@ -124,6 +124,30 @@ export const constantRoutes = [{
},
]
},
{
path: '/maintenance',
component: Layout,
redirect: '/maintenance',
meta: {
title: '维修领料'
},
children: [
{
path: '/maintenanceOutbound/index',
component: () => import('@/views/maintenance/maintenanceOutbound/index.vue'),
name: 'MaintenanceOutbound',
meta: { title: '维修出库', noCache: true }
},
{
path: '/maintenanceReturnBound/index',
component: () => import('@/views/maintenance/maintenanceReturnBound/index.vue'),
name: 'MaintenanceReturnBound',
meta: { title: '维修退库', noCache: true }
},
]
},
{
path: '/warehouse',
component: Layout,

9
yxt-as-ui/src/views/goods/category/categoryAdd.vue

@ -312,8 +312,15 @@
}
this.$emit('doback')
},
showAdd() {},
showAdd() {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.initTypes(row.sid)
.then(resp => {
if (resp.success) {

632
yxt-as-ui/src/views/maintenance/maintenanceOutbound/index.vue

@ -0,0 +1,632 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<!-- 标题 -->
<div>新增维修出库</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" @click="seleMaintenance">选择维修工单</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">出库</el-button>
<el-button type="info" size="small" @click="handleReturn()">清空</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<!-- <div class="title">
<div>基础信息</div>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 制单人</div>
<el-form-item prop="createByName">
<span class="addinputw addinputInfo">{{formobj.createByName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 制单部门</div>
<el-form-item prop="deptName">
<span class="addinputw addinputInfo">{{formobj.deptName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单日期</div>
<el-form-item prop="createByName">
<el-form-item><span class="addinputw addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 领料人</div>
<el-form-item prop="warehouseManager">
<el-select v-model="formobj.warehouseManager" filterable clearable placeholder="请选择"
class="addinputw addinputInfo" @change="receivePerSelect">
<el-option v-for="item in receivePerList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">备注</div>
<el-form-item>
<el-input v-model="formobj.remarks" placeholder="备注" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>维修工单</div>
</div>
<el-row>
<el-col :span="8">
<div class="span-sty">维修工单编号</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.sourceBillNo}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.billDate}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">服务顾问</div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.waitorName }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">工单类型</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.billType}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">科目</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.subject}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"></div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo"></span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">客户名称</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.customerName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">车牌号/车架号</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.vehMark}}/{{formobj.vinNo}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">客户单位</div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.customerOrg }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>服务项目</div>
</div>
<el-table v-loading="listLoading" :data="formobj.sitemVoList" border>
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="操作" wid align="center" width="120">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="addGoods(scope.row)">商品出库</el-button>
</template>
</el-table-column>
<el-table-column label="服务项目" prop="serviceItem" align="center" />
<el-table-column label="工种" prop="serviceType" align="center" />
<el-table-column label="科目" prop="subject" align="center" />
<el-table-column label="维修人" prop="repairerName" align="center" />
<el-table-column label="考核工时" prop="examineHourPrice" align="center" />
<el-table-column label="工时单价" prop="hourPrice" align="center" />
<el-table-column label="工时数" prop="hours" align="center" />
<el-table-column label="销售价" prop="price" align="center" />
<el-table-column label="折扣" prop="discount" align="center" />
<el-table-column label="优惠" prop="discountAmount" align="center" />
<el-table-column label="金额" prop="amount" align="center" />
<el-table-column label="备注" prop="remarks" align="center" />
</el-table>
<div class="title titleOne">
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.detailList" border>
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="操作" wid align="center" width="80">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="deleteGoods(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="项目名称" prop="serviceItem" align="center" />
<!-- <el-table-column label="商品名称" prop="goodsSpuName" align="center" /> -->
<el-table-column label="商品名称" align="center" min-width="120">
<template slot-scope="scope">
<el-popover placement="right" width="900" trigger="click">
<div>
<el-table :data="commodityData" v-loading="commodityLoading" highlight-current-row
@current-change="commodityCurrentChange($event, scope.row)">
<el-table-column fixed prop="goodsSpuName" label="商品名称" align="center" />
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" />
<el-table-column prop="unit" label="单位" align="center" />
</el-table>
<pagination v-show="commodityData.length > 0" :total="commodityQuery.total" :page.sync="commodityQuery.current"
:limit.sync="commodityQuery.size" class="total pager" @pagination="commodityInput(scope.row)" />
<!-- <el-pagination :page.sync="commodityQuery.current" :page-size="commodityQuery.size"
layout="total, pager" :total="commodityQuery.total" /> -->
</div>
<el-input slot="reference" v-model="scope.row.goodsSpuName" @input="commodityInput(scope.row)"
clearable placeholder="商品名称" />
</el-popover>
</template>
</el-table-column>
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="单位" prop="unit" align="center" />
<el-table-column label="仓库" prop="warehouseName" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center" />
<el-table-column label="销售单价" prop="price" align="center" />
<el-table-column label="已出数量" prop="outboundCount" align="center" />
<el-table-column label="出库数量" align="center" width="120">
<template slot-scope="scope">
<el-input @input="commodityComputeYHAndXSJE(scope.row,$event)" v-model="scope.row.count" clearable
placeholder="" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column label="金额" prop="amount" align="center" />
<el-table-column label="备注" align="center" width="220">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<!-- 选择维修单 -->
<chooseproducts v-show="viewState == 2" ref="divSp" @backData="backData" @doback="resetState" />
</div>
</template>
<script>
import req from '@/api/maintenance/maintenanceOutbound.js'
import chooseproducts from './relation/chooseproducts'
import {
getOrgSidByPath,
selAllByOrgSidPath
} from '@/api/Common/dictcommons'
import {
getCurrentDate
} from '@/utils/index.js'
export default {
components: {
chooseproducts,
},
data() {
return {
viewState: 1,
listLoading: false,
submitdisabled: false,
formobj: {
"sid": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"sourceBillSid": "",
"warehouseManagerSid": "",
"warehouseManager": "",
"useOrgSid": "",
"createOrgSid": "",
"deptSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1),
"deptName": window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1),
"createTime": getCurrentDate(),
"remarks": "",
"sourceBillNo": "",
"waitorName": "",
"billDate": "",
"billType": "",
"subject": "",
"customerName": "",
"vehMark": "",
"vinNo": "",
"customerOrg": "",
"sitemVoList": [
],
"detailList": [
]
},
receivePerList: [],
// commodity
commodityLoading: false,
commodityQuery: {
current: 1,
size: 10,
total: 0,
params: {
name: '',
inOrg: "",
outOrg: ""
}
},
commodityData: [],
rules: {
createByName: [{
required: true,
message: '制单人不能为空',
trigger: 'blur'
}],
deptName: [{
required: true,
message: '制单部门不能为空',
trigger: 'blur'
}],
createTime: [{
required: true,
message: '制单日期不能为空',
trigger: 'blur'
}],
warehouseManager: [{
required: true,
message: '请选择领料人',
trigger: 'change'
}],
}
}
},
created() {
this.initData()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
methods: {
initData() {
selAllByOrgSidPath({
orgSidPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.receivePerList = res.data
console.log("aaaaaa", this.receivePerList);
}
})
},
backData(value) {
this.viewState = 1
//
var params = {
sid: value
}
req.initBill(params)
.then(resp => {
if (resp.success) {
console.log('>>>>>>>>>initBill', resp)
this.formobj = resp.data
this.formobj.detailList = []
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.createByName = window.sessionStorage.getItem('name')
this.formobj.createTime = getCurrentDate()
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
} else {
// resp.code
}
})
.catch(() => {})
},
resetState() {
this.viewState = 1
},
seleMaintenance() {
this.viewState = 2
const aa = []
this.$refs['divSp'].showData(aa, this.formobj.createOrgSid)
},
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
if (this.formobj.detailList.length == 0) {
this.$message({
showClose: true,
type: 'warning',
message: "商品不能为空"
})
return
}
for (var i = 0; i < this.formobj.detailList.length; i++) {
var item = this.formobj.detailList[i]
if (item.goodSpuSid == '') {
this.$message({
showClose: true,
type: 'warning',
message: "请添加商品"
})
return
}
if (Number(item.count) == 0) {
this.$message({
showClose: true,
type: 'warning',
message: "商品出库数量不能0"
})
return
}
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
req.saveBill(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
} else {
// resp.code
}
})
.catch(() => {})
}
})
},
handleReturn(isreload) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.formobj = {
"sid": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"sourceBillSid": "",
"warehouseManagerSid": "",
"warehouseManager": "",
"useOrgSid": "",
"createOrgSid": "",
"deptSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem(
'defaultOrgPath').lastIndexOf('/') + 1),
"deptName": window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem(
'defaultOrgPathName').lastIndexOf('/') + 1),
"createTime": getCurrentDate(),
"remarks": "",
"sourceBillNo": "",
"waitorName": "",
"billDate": "",
"billType": "",
"subject": "",
"customerName": "",
"vehMark": "",
"vinNo": "",
"customerOrg": "",
"sitemVoList": [
],
"detailList": [
]
}
},
indexMethod(index) {
return index + 1
},
receivePerSelect(val) {
const choose = this.receivePerList.filter((item) => item.sid == val)
console.log('>>>>>>>>>receivePerSelect', choose)
this.formobj.warehouseManagerSid = choose[0].sid
this.formobj.warehouseManager = choose[0].name
},
commodityInput(row) {
console.log("commodityInput》》》》", row)
this.commodityQuery.params.name = row.goodsSpuName
this.commodityQuery.params.busrepairBillsid = row.sitemSid
this.commodityLoading = true
req.getGoodsListPage(this.commodityQuery).then((response) => {
if (response.success) {
this.commodityLoading = false
this.commodityData = response.data.records
this.commodityQuery.total = response.data.total
} else {
this.serviceLoading = false
this.commodityData = []
this.commodityQuery.total = 0
}
})
},
commodityCurrentChange(value, row) {
console.log("commodityCurrentChange》》》》", value)
console.log("commodityCurrentChange》》》》", row)
row.inventorySid = value.inventorySid
row.goodSpuSid = value.goodSpuSid
row.goodsSpuName = value.goodsSpuName
row.goodsSkuSid = value.goodsSkuSid
row.goodsSkuTitle = value.goodsSkuTitle
row.goodsSkuCode = value.goodsSkuCode
row.goodsSkuOwnSpec = value.goodsSkuOwnSpec
row.unit = value.unit
row.warehouseSid = value.warehouseSid
row.warehouseName = value.warehouseName
row.warehouseRackSid = value.warehouseRackSid
row.warehouseRackCode = value.warehouseRackCode
row.outboundCount = value.outboundCount
row.count =0
row.amount = 0.00
row.price = value.price
row.remarks = ''
document.body.click()
},
addGoods(row) {
var goods = {
"sitemSid": row.serviceItemSid,
'serviceItem': row.serviceItem,
"inventorySid": "",
"goodsID": "",
"goodSpuSid": "",
"goodsSpuName": "",
"goodsSkuSid": "",
"goodsSkuTitle": "",
"goodsSkuCode": "",
"goodsSkuOwnSpec": "",
"currentCount": "",
"unit": "",
"warehouseSid": "",
"warehouseName": "",
"warehouseRackSid": "",
"warehouseRackCode": "",
"count": 0,
"price": '',
'amount': 0.00,
"outboundCount": 0,
"remarks": ""
}
this.formobj.detailList.push(goods)
},
deleteGoods(row) {
const index = this.formobj.detailList.findIndex((item) => item.goodSpuSid == row.goodSpuSid)
console.log('>>>>>>>>>receivePerSelect', index)
this.formobj.detailList.splice(index, 1)
},
commodityComputeYHAndXSJE(row, val) {
console.log("aaa", row);
console.log("aaa", val);
row.amount = (Number(row.count) * Number(row.price)).toFixed(2)
},
}
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.el-radio /deep/ .el-radio__label {
font-size: 14px !important;
}
</style>

205
yxt-as-ui/src/views/maintenance/maintenanceOutbound/relation/chooseproducts.vue

@ -0,0 +1,205 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>选择维修工单</div>
<div>
<!-- <el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button> -->
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="120px" class="tab-header">
<el-form-item label="工单编号" class="searchlist">
<el-input v-model="listQuery.params.billNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="客户名称" class="searchlist">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable />
</el-form-item>
<el-form-item label="车牌号" class="searchlist">
<el-input v-model="listQuery.params.vehMark" placeholder="" clearable />
</el-form-item>
<el-form-item label="进厂日期">
<el-date-picker v-model="listQuery.params.entryStartTime" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
<el-date-picker v-model="listQuery.params.entryEndTime" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">维修工单列表</div>
<!-- <pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>-->
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%">
<!-- @selection-change="handleSelectionChange"> -->
<!-- <el-table-column width="50px" type="selection" align="center"/> -->
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toInfo(scope.row)">确认</el-button>
</template>
</el-table-column>
<el-table-column prop="billNo" label="工单编号" align="center" />
<el-table-column prop="billType" label="工单类型" align="center" />
<el-table-column prop="customerName" label="客户名称" align="center" />
<el-table-column prop="mobile" label="联系电话" align="center" />
<el-table-column prop="vinNo" label="车架号" align="center" />
<el-table-column prop="vehMark" label="车牌号" align="center" />
<el-table-column prop="entryTime" label="进厂日期" align="center" />
</el-table>
</div>
<div class="pages">
<div class="tit" />
<!-- 翻页 -->
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current"
:limit.sync="listQuery.size" class="pagination" @pagination="getList" />
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import {
getAsBusrepairBill
} from '@/api/Common/dictcommons'
export default {
name: 'SelectVehicle',
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
list: [],
number: '',
listLoading: false,
listQuery: {
current: 1,
size: 10,
params: {
nodeCode: 3,
billNo: '',
customerName: '',
vehMark: '',
entryStartTime: '',
entryEndTime: ''
},
total: 0
}
}
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
// this.listQuery.params.menuUrl = this.$route.path
this.listQuery.params.menuUrl = ""
getAsBusrepairBill(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 10,
params: {
nodeCode: 3,
billNo: '',
customerName: '',
vehMark: '',
entryStartTime: '',
entryEndTime: ''
},
total: 0
}
this.getList()
},
handleSelectionChange(row) {
this.sids = row
},
showData(value, createOrgSid) {
// const aa = []
// if (value.length > 0) {
// for (var i = 0; i < value.length; i++) {
// aa.push(value[i].saleVehSid)
// }
// this.listQuery.params.saleVehSids = aa
// } else {
// this.listQuery.params.saleVehSids = []
// }``
this.listQuery.params.createOrgSid = createOrgSid
this.listQuery.current = 1
this.listQuery.size = 10
this.listQuery.total = 0
this.getList()
},
//
AddUpdateReturn() {
if (this.sids.length > 0) {
this.$emit('backData', this.sids)
} else {
this.$notify({
title: '提示',
message: '请至少选择一条记录进行操作',
type: 'error',
duration: 2000
})
}
},
toInfo(row){
this.$emit('backData', row.sid)
},
//
handleReturn() {
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

549
yxt-as-ui/src/views/maintenance/maintenanceReturnBound/index.vue

@ -0,0 +1,549 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<!-- 标题 -->
<div>新增维修退库</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" @click="seleMaintenance">选择维修工单</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">退库</el-button>
<el-button type="info" size="small" @click="handleReturn()">清空</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<!-- <div class="title">
<div>基础信息</div>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 制单人</div>
<el-form-item prop="createByName">
<span class="addinputw addinputInfo">{{formobj.createByName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 制单部门</div>
<el-form-item prop="deptName">
<span class="addinputw addinputInfo">{{formobj.deptName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单日期</div>
<el-form-item prop="createByName">
<el-form-item><span class="addinputw addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 领料人</div>
<el-form-item prop="warehouseManager">
<el-select v-model="formobj.warehouseManager" filterable clearable placeholder="请选择"
class="addinputw addinputInfo" @change="receivePerSelect">
<el-option v-for="item in receivePerList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">备注</div>
<el-form-item>
<el-input v-model="formobj.remarks" placeholder="备注" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>维修工单</div>
</div>
<el-row>
<el-col :span="8">
<div class="span-sty">维修工单编号</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.sourceBillNo}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.billDate}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">服务顾问</div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.waitorName }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">工单类型</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.billType}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">科目</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.subject}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"></div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo"></span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">客户名称</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.customerName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">车牌号/车架号</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.vehMark}}/{{formobj.vinNo}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">客户单位</div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.customerOrg }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>服务项目</div>
</div>
<el-table v-loading="listLoading" :data="formobj.sitemVoList" border>
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="服务项目" prop="serviceItem" align="center" />
<el-table-column label="工种" prop="serviceType" align="center" />
<el-table-column label="科目" prop="subject" align="center" />
<el-table-column label="维修人" prop="repairerName" align="center" />
<el-table-column label="考核工时" prop="examineHourPrice" align="center" />
<el-table-column label="工时单价" prop="hourPrice" align="center" />
<el-table-column label="工时数" prop="hours" align="center" />
<el-table-column label="销售价" prop="price" align="center" />
<el-table-column label="折扣" prop="discount" align="center" />
<el-table-column label="优惠" prop="discountAmount" align="center" />
<el-table-column label="金额" prop="amount" align="center" />
<el-table-column label="备注" prop="remarks" align="center" />
</el-table>
<div class="title titleOne">
<div>商品列表</div>
<el-button type="primary" size="mini" class="btntopblueline" @click="returnAll()">全退</el-button>
</div>
<el-table v-loading="listLoading" :data="formobj.detailList" border>
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="项目名称" prop="serviceItem" align="center" />
<el-table-column label="商品名称" prop="goodsSpuName" align="center" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="单位" prop="unit" align="center" />
<!-- <el-table-column label="仓库" prop="warehouseName" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center" />
-->
<el-table-column label="仓库" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable
@change="selectWarehouseName(scope.row,$event)">
<el-option v-for="(item,i) in warehouseList" :key="i" :label="item.warehouseName" :value="item.sid">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="库位" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseRackCode" :disabled="scope.row.warehouseName==''" clearable
@focus="getWarehouseAreaList(scope.row.warehouseSid)" placeholder="请选择"
@change="selectWarehouseAreaCode(scope.row,$event)">
<el-option v-for="(item,i) in warehouseRackList" :key="i" :label="item.areaCode" :value="item.sid">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="已出数量" prop="outboundCount" align="center" />
<el-table-column label="退库数量" align="center" width="120">
<template slot-scope="scope">
<el-input v-model="scope.row.count" clearable placeholder=""
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column label="销售单价" prop="price" align="center" />
<el-table-column label="备注" align="center" width="220">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<!-- 选择维修单 -->
<chooseproducts v-show="viewState == 2" ref="divSp" @backData="backData" @doback="resetState" />
</div>
</template>
<script>
import req from '@/api/maintenance/maintenanceReturnBound.js'
import req2 from '@/api/storage/allocation.js'
import chooseproducts from './relation/chooseproducts'
import {
getOrgSidByPath,
selAllByOrgSidPath
} from '@/api/Common/dictcommons'
import {
getCurrentDate
} from '@/utils/index.js'
export default {
components: {
chooseproducts,
},
data() {
return {
viewState: 1,
listLoading: false,
submitdisabled: false,
formobj: {
"sid": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"sourceBillSid": "",
"warehouseManagerSid": "",
"warehouseManager": "",
"useOrgSid": "",
"createOrgSid": "",
"deptSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1),
"deptName": window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1),
"createTime": getCurrentDate(),
"remarks": "",
"sourceBillNo": "",
"waitorName": "",
"billDate": "",
"billType": "",
"subject": "",
"customerName": "",
"vehMark": "",
"vinNo": "",
"customerOrg": "",
"sitemVoList": [
],
"detailList": [
]
},
receivePerList: [],
warehouseList: [],
warehouseRackList: [],
rules: {
createByName: [{
required: true,
message: '制单人不能为空',
trigger: 'blur'
}],
deptName: [{
required: true,
message: '制单部门不能为空',
trigger: 'blur'
}],
createTime: [{
required: true,
message: '制单日期不能为空',
trigger: 'blur'
}],
warehouseManager: [{
required: true,
message: '请选择领料人',
trigger: 'change'
}],
}
}
},
created() {
this.initData()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
methods: {
initData() {
selAllByOrgSidPath({
orgSidPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.receivePerList = res.data
console.log("aaaaaa", this.receivePerList);
}
})
this.getWarehouseList()
},
backData(value) {
this.viewState = 1
//
var params = {
sid: value
}
req.initBill(params)
.then(resp => {
if (resp.success) {
console.log('>>>>>>>>>initBill', resp)
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.createByName = window.sessionStorage.getItem('name')
this.formobj.createTime = getCurrentDate()
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
} else {
// resp.code
}
})
.catch(() => {})
},
resetState() {
this.viewState = 1
},
seleMaintenance() {
this.viewState = 2
const aa = []
this.$refs['divSp'].showData(aa, this.formobj.createOrgSid)
},
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
this.$refs['form_obj'].validate((valid) => {
if (valid) {
req.saveBill(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
} else {
// resp.code
}
})
.catch(() => {})
}
})
},
handleReturn(isreload) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.formobj = {
"sid": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"sourceBillSid": "",
"warehouseManagerSid": "",
"warehouseManager": "",
"useOrgSid": "",
"createOrgSid": "",
"deptSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem(
'defaultOrgPath').lastIndexOf('/') + 1),
"deptName": window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem(
'defaultOrgPathName').lastIndexOf('/') + 1),
"createTime": getCurrentDate(),
"remarks": "",
"sourceBillNo": "",
"waitorName": "",
"billDate": "",
"billType": "",
"subject": "",
"customerName": "",
"vehMark": "",
"vinNo": "",
"customerOrg": "",
"sitemVoList": [
],
"detailList": [
]
}
},
indexMethod(index) {
return index + 1
},
receivePerSelect(val) {
const choose = this.receivePerList.filter((item) => item.sid == val)
console.log('>>>>>>>>>receivePerSelect', choose)
this.formobj.warehouseManagerSid = choose[0].sid
this.formobj.warehouseManager = choose[0].name
},
getWarehouseList() {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data
console.log("aaaaaa", this.warehouseList);
}
})
},
getWarehouseAreaList(sid) {
var query = {
ckSid: sid
}
req2.getWarehouseareas(query).then((res) => {
if (res.success) {
this.warehouseRackList = res.data
console.log("bbbbb", this.warehouseRackList);
}
})
},
selectWarehouseName(row, val) {
console.log("selectWarehouseName", row);
console.log("selectWarehouseName", val);
const choose = this.warehouseList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseName', choose)
row.warehouseName = choose[0].warehouseName
row.warehouseSid = choose[0].sid
row.warehouseRackCode = ''
row.warehouseRackSid = ''
},
selectWarehouseAreaCode(row, val) {
console.log("selectWarehouseAreaCode", val);
const choose = this.warehouseRackList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseAreaCode', choose)
row.warehouseRackCode = choose[0].areaCode
row.warehouseRackSid = choose[0].sid
},
returnAll() {
for (var i = 0; i < this.formobj.detailList.length; i++) {
var item = this.formobj.detailList[i]
item.count = item.outboundCount
}
}
}
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.el-radio /deep/ .el-radio__label {
font-size: 14px !important;
}
</style>

205
yxt-as-ui/src/views/maintenance/maintenanceReturnBound/relation/chooseproducts.vue

@ -0,0 +1,205 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>选择维修工单</div>
<div>
<!-- <el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button> -->
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="120px" class="tab-header">
<el-form-item label="工单编号" class="searchlist">
<el-input v-model="listQuery.params.billNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="客户名称" class="searchlist">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable />
</el-form-item>
<el-form-item label="车牌号" class="searchlist">
<el-input v-model="listQuery.params.vehMark" placeholder="" clearable />
</el-form-item>
<el-form-item label="进厂日期">
<el-date-picker v-model="listQuery.params.entryStartTime" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
<el-date-picker v-model="listQuery.params.entryEndTime" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">维修工单列表</div>
<!-- <pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>-->
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%">
<!-- @selection-change="handleSelectionChange"> -->
<!-- <el-table-column width="50px" type="selection" align="center"/> -->
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toInfo(scope.row)">确认</el-button>
</template>
</el-table-column>
<el-table-column prop="billNo" label="工单编号" align="center" />
<el-table-column prop="billType" label="工单类型" align="center" />
<el-table-column prop="customerName" label="客户名称" align="center" />
<el-table-column prop="mobile" label="联系电话" align="center" />
<el-table-column prop="vinNo" label="车架号" align="center" />
<el-table-column prop="vehMark" label="车牌号" align="center" />
<el-table-column prop="entryTime" label="进厂日期" align="center" />
</el-table>
</div>
<div class="pages">
<div class="tit" />
<!-- 翻页 -->
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current"
:limit.sync="listQuery.size" class="pagination" @pagination="getList" />
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import {
getAsBusrepairBill
} from '@/api/Common/dictcommons'
export default {
name: 'SelectVehicle',
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
list: [],
number: '',
listLoading: false,
listQuery: {
current: 1,
size: 10,
params: {
nodeCode: 3,
billNo: '',
customerName: '',
vehMark: '',
entryStartTime: '',
entryEndTime: ''
},
total: 0
}
}
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
// this.listQuery.params.menuUrl = this.$route.path
this.listQuery.params.menuUrl = ""
getAsBusrepairBill(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 10,
params: {
nodeCode: 3,
billNo: '',
customerName: '',
vehMark: '',
entryStartTime: '',
entryEndTime: ''
},
total: 0
}
this.getList()
},
handleSelectionChange(row) {
this.sids = row
},
showData(value, createOrgSid) {
// const aa = []
// if (value.length > 0) {
// for (var i = 0; i < value.length; i++) {
// aa.push(value[i].saleVehSid)
// }
// this.listQuery.params.saleVehSids = aa
// } else {
// this.listQuery.params.saleVehSids = []
// }``
this.listQuery.params.createOrgSid = createOrgSid
this.listQuery.current = 1
this.listQuery.size = 10
this.listQuery.total = 0
this.getList()
},
//
AddUpdateReturn() {
if (this.sids.length > 0) {
this.$emit('backData', this.sids)
} else {
this.$notify({
title: '提示',
message: '请至少选择一条记录进行操作',
type: 'error',
duration: 2000
})
}
},
toInfo(row){
this.$emit('backData', row.sid)
},
//
handleReturn() {
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

10
yxt-as-ui/src/views/operation/claimbilling/claimbilling.vue

@ -13,7 +13,7 @@
<el-input v-model="listQuery.params.useOrgName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="申请部门">
<el-input v-model="listQuery.params.createDeptName" placeholder="" clearable/>
<el-input v-model="listQuery.params.deptName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="申请人">
<el-input v-model="listQuery.params.createByName" placeholder="" clearable/>
@ -46,7 +46,7 @@
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">索赔单开票申请申请列表</div>
<div class="tit">索赔单开票申请列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->
@ -68,7 +68,7 @@
</el-table-column>
<el-table-column prop="billNo" label="单据编号" align="center" width="160" />
<el-table-column prop="useOrgName" label="分公司" align="center" min-width="120" />
<el-table-column prop="createDeptName" label="申请部门" align="center" min-width="120" />
<el-table-column prop="deptName" label="申请部门" align="center" min-width="120" />
<el-table-column prop="createByName" label="申请人" align="center" width="120" />
<el-table-column prop="createTime" label="申请日期" align="center" width="120" />
<el-table-column prop="closeDate" label="办结日期" align="center" width="120" />
@ -159,7 +159,7 @@ export default {
total: 0,
params: {
useOrgName: '',
createDeptName: '',
deptName: '',
createByName: '',
billNo: '',
createTimeStart: '',
@ -280,7 +280,7 @@ export default {
total: 0,
params: {
useOrgName: '',
createDeptName: '',
deptName: '',
createByName: '',
billNo: '',
createTimeStart: '',

14
yxt-as-ui/src/views/operation/claimbilling/claimbillingAdd.vue

@ -15,7 +15,7 @@
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.createDeptName }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
@ -141,8 +141,8 @@ export default {
billNo: '',
createByName: '',
createBySid: '',
createDeptName: '',
createDeptSid: '',
deptName: '',
deptSid: '',
createOrgSid: '',
createTime: '',
detailList: [],
@ -217,8 +217,8 @@ export default {
})
this.formobj.createByName = window.sessionStorage.getItem('name')
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.createDeptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.createDeptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
var nowDate = new Date()
var date = {
year: nowDate.getFullYear(),
@ -375,8 +375,8 @@ export default {
billNo: '',
createByName: '',
createBySid: '',
createDeptName: '',
createDeptSid: '',
deptName: '',
deptSid: '',
createOrgSid: '',
createTime: '',
detailList: [],

10
yxt-as-ui/src/views/operation/claimbilling/claimbillingInfo.vue

@ -12,7 +12,7 @@
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.createDeptName }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
@ -84,8 +84,8 @@ export default {
billNo: '',
createByName: '',
createBySid: '',
createDeptName: '',
createDeptSid: '',
deptName: '',
deptSid: '',
createOrgSid: '',
createTime: '',
detailList: [],
@ -137,8 +137,8 @@ export default {
billNo: '',
createByName: '',
createBySid: '',
createDeptName: '',
createDeptSid: '',
deptName: '',
deptSid: '',
createOrgSid: '',
createTime: '',
detailList: [],

14
yxt-as-ui/src/views/operation/preregistration/preregistrationAdd.vue

@ -20,7 +20,7 @@
</el-col>
<el-col :span="6">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.createDept }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="10">
<div class="span-sty">制单日期</div>
@ -209,8 +209,8 @@ export default {
vinNo: '',
trackLog: '',
trackLogs: [],
createDeptSid: '',
createDept: '',
deptSid: '',
deptName: '',
customerOrg: '',
userSid: ''
},
@ -255,8 +255,8 @@ export default {
this.formobj.createByName = window.sessionStorage.getItem('name')
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.userSid = window.sessionStorage.getItem('userSid')
this.formobj.createDept = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.createDeptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
var nowDate = new Date()
var date = {
year: nowDate.getFullYear(),
@ -498,8 +498,8 @@ export default {
vinNo: '',
trackLog: '',
trackLogs: [],
createDeptSid: '',
createDept: '',
deptSid: '',
deptName: '',
customerOrg: '',
userSid: ''
}

10
yxt-as-ui/src/views/operation/preregistration/preregistrationInfo.vue

@ -16,7 +16,7 @@
</el-col>
<el-col :span="6">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.createDept }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="10">
<div class="span-sty">制单日期</div>
@ -117,8 +117,8 @@ export default {
vinNo: '',
trackLog: '',
trackLogs: [],
createDeptSid: '',
createDept: '',
deptSid: '',
deptName: '',
customerOrg: '',
userSid: ''
}
@ -163,8 +163,8 @@ export default {
vinNo: '',
trackLog: '',
trackLogs: [],
createDeptSid: '',
createDept: '',
deptSid: '',
deptName: '',
customerOrg: '',
userSid: ''
}

8
yxt-as-ui/src/views/operation/repairbill/repairbillAdd.vue

@ -21,7 +21,7 @@
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.dept }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单日期</div>
@ -632,7 +632,7 @@ export default {
orgPath: '',
createBySid: '',
deptSid: '',
dept: '',
deptName: '',
operatorSid: '',
nodeCode: '',
settleVo: {
@ -806,7 +806,7 @@ export default {
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.formobj.createByName = window.sessionStorage.getItem('name')
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.dept = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
var nowDate = new Date()
var date = {
@ -1209,7 +1209,7 @@ export default {
orgPath: '',
createBySid: '',
deptSid: '',
dept: '',
deptName: '',
operatorSid: '',
nodeCode: '',
settleVo: {

6
yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue

@ -17,7 +17,7 @@
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.dept }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单日期</div>
@ -369,7 +369,7 @@ export default {
orgPath: '',
createBySid: '',
deptSid: '',
dept: '',
deptName: '',
operatorSid: '',
nodeCode: '',
settleVo: {
@ -546,7 +546,7 @@ export default {
orgPath: '',
createBySid: '',
deptSid: '',
dept: '',
deptName: '',
operatorSid: '',
nodeCode: '',
settleVo: {

5
yxt-as-ui/src/views/storage/allocation/allocationAdd.vue

@ -235,7 +235,10 @@
},
getWarehouseList() {
req.getWarehouses().then((res) => {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data

4
yxt-as-ui/src/views/storage/deliveryNotice/index.vue

@ -20,7 +20,7 @@
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
</el-form-item>
<el-form-item label="来源单号">
<el-form-item label="采购单号">
<el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="业务类型">
@ -79,7 +79,7 @@
<el-table-column prop="billNo" label="单据编号" align="center" width="220" />
<el-table-column prop="createTime" label="单据日期" align="center" width="150" />
<el-table-column prop="createByName" label="制单人" align="center" width="150" />
<el-table-column prop="sourceBillNo" label="来源单号" align="center" width="180" />
<el-table-column prop="sourceBillNo" label="采购单号" align="center" width="180" />
<el-table-column prop="busTypeValue" label="业务类型" align="center" width="150" />
<el-table-column prop="supplierName" label="供应商" align="center" width="150" />
<el-table-column prop="contact" label="联系人" align="center" width="150" />

69
yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue

@ -17,10 +17,10 @@
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<!-- <div class="title">
<div>基础信息</div>
</div>
<el-row>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
@ -38,7 +38,7 @@
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<div class="span-sty">采购单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
@ -140,8 +140,8 @@
<el-table-column label="是否质检" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.isQuality" size="small" @change="changeTheme">
<el-radio :label="0">需要</el-radio>
<el-radio :label="1">不需要</el-radio>
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</template>
</el-table-column>
@ -211,6 +211,7 @@
getCurrentDate
} from '@/utils/index.js'
import {
choiceSupplierInfo,
getOrgSidByPath
} from '@/api/Common/dictcommons'
@ -259,7 +260,16 @@
}
}
},
created() {},
created() {
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
},
methods: {
// getOrgPathSid() {
// getOrgSidByPath({
@ -282,25 +292,40 @@
},
getsupplierLust() {
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
req.choiceSupplier(res.data).then((resp) => {
if (resp.success) {
this.supplierNameList = resp.data
console.log("aaaaaa", this.supplierNameList);
}
})
// getOrgSidByPath({
// orgPath: window.sessionStorage.getItem('defaultOrgPath')
// }).then((res) => {
// if (res.success) {
// this.formobj.createOrgSid = res.data
// this.formobj.useOrgSid = res.data
// req.choiceSupplierInfo(res.data).then((resp) => {
// if (resp.success) {
// this.supplierNameList = resp.data
// console.log("aaaaaa", this.supplierNameList);
// }
// })
// }
// })
choiceSupplierInfo({
deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}).then((resp) => {
if (resp.success) {
this.supplierNameList = resp.data
console.log("aaaaaa", this.supplierNameList);
}
})
},
getWarehouseList() {
req2.getWarehouses().then((res) => {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data
@ -635,7 +660,7 @@
this.$refs['form_obj'].clearValidate()
})
this.getWarehouseList()
// this.getWarehouseList()
this.getsupplierLust()
// this.getOrgPathSid()
var params = {

8
yxt-as-ui/src/views/storage/deliveryNotice/receiptInfo.vue

@ -15,10 +15,10 @@
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<div class="title">
<!-- <div class="title">
<div>基础信息</div>
</div>
<el-row>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">单据编号</div>
@ -37,7 +37,7 @@
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<div class="span-sty">采购单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">

85
yxt-as-ui/src/views/storage/inOutStorage/index.vue

@ -81,21 +81,21 @@
@selection-change="selectionLineChangeHandle">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed prop="goodsID" label="商品ID" align="center" width="120"/>
<el-table-column fixed prop="goodsSpuName" label="商品名称" align="center" width="120"/>
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" width="120"/>
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" width="120"/>
<el-table-column prop="unit" label="单位" align="center"width="80"/>
<el-table-column prop="warehouseName" label="仓库" align="center"width="100"/>
<el-table-column prop="warehouseRackCode" label="库位" align="center" width="100"/>
<el-table-column prop="billNo" label="来源单号" align="center" width="120"/>
<el-table-column prop="billType" label="单据类型" align="center"width="120"/>
<el-table-column prop="createTime" label="发生时间" align="center" width="120"/>
<el-table-column prop="busTypeValue" label="业务类型" align="center" width="120"/>
<el-table-column prop="billObjName" label="客户/供应商" align="center" width="150"/>
<el-table-column prop="batchNumber" label="批次号" align="center" width="100"/>
<el-table-column prop="count" label="数量" align="center" width="80"/>
<el-table-column prop="currentCount" label="出入库后的库存" align="center" width="150"/>
<el-table-column fixed prop="goodsID" label="商品ID" align="center" width="120" />
<el-table-column fixed prop="goodsSpuName" label="商品名称" align="center" width="120" />
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" width="120" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" width="120" />
<el-table-column prop="unit" label="单位" align="center" width="80" />
<el-table-column prop="warehouseName" label="仓库" align="center" width="100" />
<el-table-column prop="warehouseRackCode" label="库位" align="center" width="100" />
<el-table-column prop="billNo" label="来源单号" align="center" width="120" />
<el-table-column prop="billType" label="单据类型" align="center" width="120" />
<el-table-column prop="createTime" label="发生时间" align="center" width="120" />
<el-table-column prop="busTypeValue" label="业务类型" align="center" width="120" />
<el-table-column prop="billObjName" label="客户/供应商" align="center" width="150" />
<el-table-column prop="batchNumber" label="批次号" align="center" width="100" />
<el-table-column prop="count" label="数量" align="center" width="80" />
<el-table-column prop="currentCount" label="出入库后的库存" align="center" width="150" />
</el-table>
</div>
<!-- End 项目列表 -->
@ -115,6 +115,10 @@
<script>
import req from '@/api/storage/inOutStorage.js'
import {
choiceSupplierInfo,
getOrgSidByPath
} from '@/api/Common/dictcommons'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
@ -200,6 +204,16 @@
this.loadList()
this.getsupplierLust()
this.getWarehouseList()
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
},
methods: {
supplierNameSelect(val) {
@ -212,20 +226,45 @@
},
getsupplierLust() {
var params = {
createOrgSid: ""
}
req.choiceSupplier(params).then((res) => {
if (res.success) {
this.supplierList = res.data
// var params = {
// createOrgSid: ""
// }
// req.choiceSupplier(params).then((res) => {
// if (res.success) {
// this.supplierList = res.data
console.log("aaaaaa", this.supplierList);
// console.log("aaaaaa", this.supplierList);
// }
// })
choiceSupplierInfo({
deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}).then((resp) => {
if (resp.success) {
this.supplierList = resp.data
console.log("aaaaaa", this.supplierList);
}
})
// choiceSupplierInfo({
// orgSid: res.data
// }).then((resp) => {
// if (resp.success) {
// this.supplierList = resp.data
// console.log("aaaaaa", this.supplierNameList);
// }
// })
},
getWarehouseList() {
req.getWarehouses().then((res) => {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data

56
yxt-as-ui/src/views/storage/inStorage/inStorageAdd.vue

@ -325,6 +325,7 @@
<script>
import req from '@/api/storage/inStorage.js'
import req2 from '@/api/storage/allocation.js'
import { choiceSupplierInfo, getOrgSidByPath } from '@/api/Common/dictcommons'
export default {
components: {},
data() {
@ -382,7 +383,16 @@
isUpdata: false
}
},
created() {},
created() {
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
},
methods: {
commodityInput(value) {
@ -871,20 +881,48 @@
},
getsupplierLust() {
var params = {
createOrgSid: ""
}
req.choiceSupplier(params).then((res) => {
if (res.success) {
this.supplierList = res.data
// var params = {
// createOrgSid: ""
// }
// req.choiceSupplier(params).then((res) => {
// if (res.success) {
// this.supplierList = res.data
console.log("aaaaaa", this.supplierList);
// console.log("aaaaaa", this.supplierList);
// }
// })
choiceSupplierInfo({
deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}).then((resp) => {
if (resp.success) {
this.supplierList = resp.data
console.log("aaaaaa", this.supplierList);
}
})
// getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
// if (res.success) {
// this.formobj.createOrgSid = res.data
// this.formobj.useOrgSid = res.data
// choiceSupplierInfo({ orgSid: res.data }).then((resp) => {
// if (resp.success) {
// this.supplierList = resp.data
// console.log("aaaaaa", this.supplierNameList);
// }
// })
// }
// })
},
getWarehouseList() {
req2.getWarehouses().then((res) => {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data

297
yxt-as-ui/src/views/storage/maintenanceInOrOutBound/index.vue

@ -1,8 +1,299 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="维修领/退料查询" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">
{{ searchxianshitit }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header">
<el-form-item label="单据编号">
<el-input v-model="queryParams.params.billNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="单据日期">
<el-date-picker v-model="queryParams.params.createTimestart" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
<el-date-picker v-model="queryParams.params.createTimeEnd" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
</el-form-item>
<el-form-item label="维修工单编号">
<el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="业务类型">
<el-select v-model="queryParams.params.busTypeValue" filterable clearable placeholder="请选择"
style="width:100%">
<el-option v-for="item in billStateList" :key="item.sid" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="操作人">
<el-input v-model="queryParams.params.createByName" placeholder="" clearable />
</el-form-item>
<el-form-item label="经办人">
<el-input v-model="queryParams.params.warehouseManager" placeholder="" clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
<el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</div>
</div>
</div>
<!-- Start 项目列表头部 -->
<div class="listtop">
<div class="tit">维修领/退料列表</div>
</div>
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
<div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="selectionLineChangeHandle">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="80" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="单据编号" align="center">
<template slot-scope="scope">
<div style="color: #1890FF; text-decoration: underline ;" @click="showResult(scope.row)">
{{ scope.row.billNo }}
</div>
</template>
</el-table-column>
<el-table-column prop="createTime" label="单据时间" align="center" />
<el-table-column prop="sourceBillNo" label="维修工单编号" align="center" />
<el-table-column prop="busTypeValue" label="业务类型" align="center" />
<el-table-column prop="createByName" label="操作人" align="center" />
<el-table-column prop="warehouseManager" label="经办人" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
</el-table>
</div>
<!-- End 项目列表 -->
<div class="pages">
<div class="tit" />
<!-- 翻页 -->
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
</div>
</div>
</div>
<!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 -->
<divOutInfo v-show="viewState == 2 " ref="divOutInfo" @doback="resetState" @reloadlist="loadList" />
<divReturnInfo v-show="viewState == 3" ref="divReturnInfo" @doback="resetState" @reloadlist="loadList" />
</div>
</template>
<script>
</script>
import req from '@/api/storage/maintenanceInOrOutBound.js'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divOutInfo from './maintenanceOutboundInfo.vue'
import divReturnInfo from './maintenanceReturnBoundInfo.vue'
export default {
components: {
ButtonBar,
Pagination,
pageye,
divOutInfo,
divReturnInfo
},
data() {
return {
dialogVisible: false,
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
tableLoading: false,
dataList: [],
btnList: [{
type: 'success',
size: 'small',
icon: 'export',
btnKey: 'toBuild',
btnLabel: '导出'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
},
sids: [],
selectionList: [],
billStateList: [{
name: "维修出库",
sid: "0"
},
{
name: "维修退库",
sid: "1"
}
],
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
this.loadList()
},
methods: {
selectionLineChangeHandle(val) {
console.log("val", val);
this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
switch (btnKey) {
case 'doDel':
// this.doDel()
this.toRelevancy()
break
case 'toBuild':
this.toBuild()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
}
this.loadList()
},
<style>
</style>
toBuild() {
if (this.sids.length > 0) {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.exportExcel(this.queryParams.params).then((resp) => {
loading.close()
const blob = new Blob([resp], {
type: 'application/vnd.ms-excel'
})
const fileName = '旧件出入库记录' + '.xls'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'nonde'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
}).catch(() => {
loading.close()
})
} else {
this.$message({
type: "warning",
showClose: true,
message: '请至少选择一条记录进行操作'
})
}
},
showResult(row) {
if (row.busTypeValue == '维修出库') {
this.viewState = 2
this.$refs['divOutInfo'].showAdd(row)
}
if (row.busTypeValue == '维修退库') {
this.viewState = 3
this.$refs['divReturnInfo'].showAdd(row)
}
},
toRelevancy() {
this.viewState = 4
this.$refs['divinfo'].showAdd()
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
resetState() {
this.viewState = 1
},
}
}
</script>
<style scoped>
</style>

276
yxt-as-ui/src/views/storage/maintenanceInOrOutBound/maintenanceOutboundInfo.vue

@ -0,0 +1,276 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<!-- 标题 -->
<div>维修出库</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<!-- <div class="title">
<div>基础信息</div>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.createByName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.deptName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单日期</div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">领料人</div>
<el-form-item prop="warehouseManager">
<span class="addinputw addinputInfo">{{formobj.warehouseManager}}</span>
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">备注</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.remarks}}</span>
</el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>维修工单</div>
</div>
<el-row>
<el-col :span="8">
<div class="span-sty">维修工单编号</div>
<el-form-item prop="sourceBillNo">
<span class="addinputw addinputInfo">{{formobj.sourceBillNo}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item prop="billDate">
<span class="addinputw addinputInfo">{{formobj.billDate}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">服务顾问</div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.waitorName }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">工单类型</div>
<el-form-item prop="billType">
<span class="addinputw addinputInfo">{{formobj.billType}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">科目</div>
<el-form-item prop="subject">
<span class="addinputw addinputInfo">{{formobj.subject}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"></div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo"></span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">客户名称</div>
<el-form-item prop="customerName">
<span class="addinputw addinputInfo">{{formobj.customerName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">车牌号/车架号</div>
<el-form-item prop="vehMark">
<span class="addinputw addinputInfo">{{formobj.vehMark}}/{{formobj.vinNo}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">客户单位</div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.customerOrg }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>服务项目</div>
</div>
<el-table v-loading="listLoading" :data="formobj.sitemVoList" border>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="服务项目" prop="serviceItem" align="center" />
<el-table-column label="工种" prop="serviceType" align="center" />
<el-table-column label="科目" prop="subject" align="center" />
<el-table-column label="维修人" prop="repairerName" align="center" />
<el-table-column label="考核工时" prop="examineHourPrice" align="center" />
<el-table-column label="工时单价" prop="hourPrice" align="center" />
<el-table-column label="工时数" prop="hours" align="center" />
<el-table-column label="销售价" prop="price" align="center" />
<el-table-column label="折扣" prop="discount" align="center" />
<el-table-column label="优惠" prop="discountAmount" align="center" />
<el-table-column label="金额" prop="amount" align="center" />
<el-table-column label="备注" prop="remarks" align="center" />
</el-table>
<div class="title titleOne">
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.detailList" border>
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="项目名称" prop="serviceItem" align="center" />
<el-table-column label="商品名称" prop="goodsSpuName" align="center" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="单位" prop="unit" align="center" />
<el-table-column label="仓库" prop="warehouseName" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center" />
<el-table-column label="销售单价" prop="price" align="center" />
<el-table-column label="已出数量" prop="outboundCount" align="center" />
<el-table-column label="出库数量" prop="count" align="center" />
<el-table-column label="金额" prop="amount" align="center" />
<el-table-column label="备注" prop="remarks" align="center" />
</el-table>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/maintenance/maintenanceOutbound.js'
export default {
components: {},
data() {
return {
viewState: 1,
listLoading: false,
submitdisabled: false,
formobj: {
},
}
},
created() {
},
methods: {
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {}
this.$emit('doback')
},
indexMethod(index) {
return index + 1
},
showAdd(row) {
var params = {
sid: row.sid
}
req.detailsBill(params)
.then(resp => {
if (resp.success) {
console.log('>>>>>>>>>initBill', resp)
this.formobj = resp.data
} else {
// resp.code
}
})
.catch(() => {})
},
}
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.el-radio /deep/ .el-radio__label {
font-size: 14px !important;
}
</style>

272
yxt-as-ui/src/views/storage/maintenanceInOrOutBound/maintenanceReturnBoundInfo.vue

@ -0,0 +1,272 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>维修退库</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<!-- <div class="title">
<div>基础信息</div>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.createByName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.deptName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单日期</div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">领料人</div>
<el-form-item prop="warehouseManager">
<span class="addinputw addinputInfo">{{formobj.warehouseManager}}</span>
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">备注</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.remarks}}</span>
</el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>维修工单</div>
</div>
<el-row>
<el-col :span="8">
<div class="span-sty">维修工单编号</div>
<el-form-item prop="sourceBillNo">
<span class="addinputw addinputInfo">{{formobj.sourceBillNo}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item prop="billDate">
<span class="addinputw addinputInfo">{{formobj.billDate}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">服务顾问</div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.waitorName }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">工单类型</div>
<el-form-item prop="billType">
<span class="addinputw addinputInfo">{{formobj.billType}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">科目</div>
<el-form-item prop="subject">
<span class="addinputw addinputInfo">{{formobj.subject}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"></div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo"></span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">客户名称</div>
<el-form-item prop="customerName">
<span class="addinputw addinputInfo">{{formobj.customerName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">车牌号/车架号</div>
<el-form-item prop="vehMark">
<span class="addinputw addinputInfo">{{formobj.vehMark}}/{{formobj.vinNo}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">客户单位</div>
<el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.customerOrg }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>服务项目</div>
</div>
<el-table v-loading="listLoading" :data="formobj.baseGoodsSkus" border>
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="服务项目" prop="serviceItem" align="center" />
<el-table-column label="工种" prop="serviceType" align="center" />
<el-table-column label="科目" prop="subject" align="center" />
<el-table-column label="维修人" prop="repairerName" align="center" />
<el-table-column label="考核工时" prop="examineHourPrice" align="center" />
<el-table-column label="工时单价" prop="hourPrice" align="center" />
<el-table-column label="工时数" prop="hours" align="center" />
<el-table-column label="销售价" prop="price" align="center" />
<el-table-column label="折扣" prop="discount" align="center" />
<el-table-column label="优惠" prop="discountAmount" align="center" />
<el-table-column label="金额" prop="amount" align="center" />
<el-table-column label="备注" prop="remarks" align="center" />
</el-table>
<div class="title titleOne">
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.baseGoodsSkus" border>
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="项目名称" prop="serviceItem" align="center" />
<el-table-column label="商品名称" prop="goodsSpuName" align="center" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="单位" prop="unit" align="center" />
<el-table-column label="仓库" prop="warehouseName" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center" />
<el-table-column label="已出数量" prop="outboundCount" align="center" />
<el-table-column label="退库数量" prop="count" align="center" />
<el-table-column label="销售单价" prop="price" align="center" />
<el-table-column label="备注" prop="remarks" align="center" />
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/maintenance/maintenanceReturnBound.js'
export default {
components: {},
data() {
return {
listLoading: false,
activeNames: ['1'],
submitdisabled: false,
formobj: {
},
}
},
created() {},
methods: {
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {}
this.$emit('doback')
},
indexMethod(index) {
return index + 1
},
showAdd(row) {
var params = {
sid: row.sid
}
req.detailsBill(params)
.then(resp => {
if (resp.success) {
console.log('>>>>>>>>>initBill', resp)
this.formobj = resp.data
} else {
// resp.code
}
})
.catch(() => {})
},
}
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.el-radio /deep/ .el-radio__label {
font-size: 14px !important;
}
</style>

5
yxt-as-ui/src/views/storage/oldPartsInAndOutStorage/index.vue

@ -390,7 +390,10 @@
})
},
getWarehouseList() {
req.getWarehouses().then((res) => {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data

5
yxt-as-ui/src/views/storage/oldPartsInvertory/index.vue

@ -383,7 +383,10 @@
})
},
getWarehouseList() {
req.getWarehouses().then((res) => {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data

4
yxt-as-ui/src/views/storage/outStorage/relation/chooseproducts.vue

@ -56,7 +56,7 @@
<script>
import Pagination from '@/components/pagination'
import { getInventoryList } from '@/api/Common/dictcommons'
import { chooseproducts } from '@/api/Common/dictcommons'
export default {
name: 'SelectVehicle',
@ -103,7 +103,7 @@ export default {
//
getList() {
this.listLoading = true
getInventoryList(this.listQuery).then((response) => {
chooseproducts(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total

4
yxt-as-ui/src/views/storage/receivingGoods/index.vue

@ -20,7 +20,7 @@
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
</el-form-item>
<el-form-item label="来源单号">
<el-form-item label="预期到货通知单号">
<el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="业务类型">
@ -75,7 +75,7 @@
<el-table-column prop="billNo" width="220" label="单据编号" align="center" />
<el-table-column prop="createTime" label="单据日期" align="center" />
<el-table-column prop="createByName" label="制单人" align="center" />
<el-table-column prop="sourceBillNo" label="来源单号" width="220"align="center" />
<el-table-column prop="sourceBillNo" label="预期到货通知单号" width="220"align="center" />
<el-table-column prop="busTypeValue" label="业务类型" align="center" />
<el-table-column prop="supplierName" label="供应商" align="center" />
<el-table-column prop="deliveryDate" label="到货日期" align="center" />

634
yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue

@ -1,101 +1,103 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>{{title}}收货单</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit">确认</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<!-- 标题 -->
<div>{{title}}收货单</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit">确认</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<!-- <div class="title">
<div>基础信息</div>
</div>
<el-row>
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<!-- <el-col :span="8">
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<!-- <el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item> <el-input v-model="formobj.createByName" placeholder="" class="addinputw addinputInfo"
clearable /></el-form-item>
</el-col> -->
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 单据日期</div>
<el-form-item prop="createTime"> <el-date-picker v-model="formobj.createTime" type="date"
class="addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 业务类型</div>
<el-form-item prop="busTypeValue"><el-select v-model="formobj.busTypeValue" filterable clearable
placeholder="请选择" class="addinputInfo" @change="busTypeSelect">
<el-option v-for="item in busTypeList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 供应商</div>
<el-form-item prop="supplierName"> <el-select v-model="formobj.supplierName" filterable clearable
placeholder="请选择" class="addinputInfo" @change="supplierNameSelect">
<el-option v-for="item in supplierList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 到货日期</div>
<el-form-item prop="deliveryDate"><el-date-picker v-model="formobj.deliveryDate" type="date"
class="addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">单据状态</div>
<el-form-item> <span class="addinputInfo">{{formobj.billState}}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo"
type="textarea" :rows="4" clearable /></el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>商品列表</div>
<!-- <el-button type="primary" size="mini" class="btntopblueline" @click="batchAddAll()">批次收货</el-button> -->
</div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;" ref="dataTable">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column align="center" width="180">
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 单据日期</div>
<el-form-item prop="createTime"> <el-date-picker v-model="formobj.createTime" type="date"
class="addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">预期到货通知单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 业务类型</div>
<el-form-item prop="busTypeValue"><el-select v-model="formobj.busTypeValue" filterable clearable
placeholder="请选择" class="addinputInfo" @change="busTypeSelect">
<el-option v-for="item in busTypeList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 供应商</div>
<el-form-item prop="supplierName"> <el-select v-model="formobj.supplierName" filterable clearable
placeholder="请选择" class="addinputInfo" @change="supplierNameSelect">
<el-option v-for="item in supplierList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 到货日期</div>
<el-form-item prop="deliveryDate"><el-date-picker v-model="formobj.deliveryDate" type="date"
class="addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">单据状态</div>
<el-form-item> <span class="addinputInfo">{{formobj.billState}}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo"
type="textarea" :rows="4" clearable /></el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>商品列表</div>
<el-button type="primary" size="mini" class="btntopblueline" @click="seleMaintenance()">选择商品</el-button>
<!-- <el-button type="primary" size="mini" class="btntopblueline" @click="batchAddAll()">批次收货</el-button> -->
</div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;" ref="dataTable">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<!-- <el-table-column align="center" width="180">
<template slot="header" slot-scope="scope">
<i v-if="!isUpdata" class="add-btn-icon el-icon-plus" style="color: red;font-size:20px"
@click="commodityAdd(scope.row)"></i>
@ -103,14 +105,20 @@
</template>
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoods(scope.row)">删除</el-button>
<!-- <el-button type="primary" size="mini" @click="doAddBatch(scope.row)">批次+</el-button> -->
<!-- <i v-if="!isUpdata" class="el-icon-delete" @click="commodityDelete(scope.$index)"></i> -->
<el-button type="primary" size="mini" @click="doAddBatch(scope.row)">批次+</el-button>
<i v-if="!isUpdata" class="el-icon-delete" @click="commodityDelete(scope.$index)"></i>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label="操作" align="center" width="120">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoods(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column v-if="isUpdata" label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品名称" align="center" min-width="200" v-if="!isUpdata">
<!-- <el-table-column label="商品名称" align="center" min-width="200" v-if="!isUpdata">
<template slot-scope="scope" v-if="!isUpdata">
<el-popover placement="right" width="900" trigger="click" v-if="!isUpdata">
<div>
@ -130,11 +138,11 @@
@input="commodityInput(scope.row.goodsSpuName)" clearable placeholder="商品名称" />
</el-popover>
</template>
</el-table-column>
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<!-- <el-table-column label="仓库" align="center" width="180">
</el-table-column> -->
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<!-- <el-table-column label="仓库" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable
@change="selectWarehouseName(scope.row,$event)">
@ -153,68 +161,68 @@
</el-select>
</template>
</el-table-column> -->
<!-- <el-table-column label="预约数量" prop="orderCount" align="center" width="120" v-if="isUpdata" /> -->
<el-table-column label="实收数量" align="center" width="120">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE(scope.row,$event)"
v-model="scope.row.actualInCount" clearable placeholder=""
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column label="拒收数量" align="center" width="120">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.rejectCount" clearable placeholder=""
@input="commodityComputeYHAndXSJE2(scope.row,$event)"
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column label="拒收原因" align="center" width="180">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.rejectReason" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="是否质检" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.isQuality" size="small">
<el-radio :label="0">需要</el-radio>
<el-radio :label="1">不需要</el-radio>
</el-radio-group>
</template>
</el-table-column>
<el-table-column label="质检状态" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.qualityState" size="small">
<el-radio :label="0">合格</el-radio>
<el-radio :label="1">不合格</el-radio>
</el-radio-group>
</template>
</el-table-column>
<el-table-column label="载具说明" align="center" width="180">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.packageRemark" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="入库单价" align="center" width="150">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE3(scope.row,$event)"
v-model="scope.row.cost" clearable placeholder=""
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
<el-table-column label="税率" align="center" width="150">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE4(scope.row,$event)"
v-model="scope.row.taxAmount" clearable placeholder=""
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
<!-- <el-table-column label="含税单价" prop="taxPrice" @input="commodityComputeYHAndXSJE5(scope.row,$event)"
<!-- <el-table-column label="预约数量" prop="orderCount" align="center" width="120" v-if="isUpdata" /> -->
<el-table-column label="实收数量" align="center" width="120">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE(scope.row,$event)"
v-model="scope.row.actualInCount" clearable placeholder=""
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column label="拒收数量" align="center" width="120">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.rejectCount" clearable placeholder=""
@input="commodityComputeYHAndXSJE2(scope.row,$event)"
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column label="拒收原因" align="center" width="180">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.rejectReason" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="是否质检" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.isQuality" size="small">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</template>
</el-table-column>
<el-table-column label="质检状态" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.qualityState" size="small">
<el-radio :label="0">合格</el-radio>
<el-radio :label="1">不合格</el-radio>
</el-radio-group>
</template>
</el-table-column>
<el-table-column label="载具说明" align="center" width="180">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.packageRemark" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="入库单价" align="center" width="150">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE3(scope.row,$event)"
v-model="scope.row.cost" clearable placeholder=""
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
<el-table-column label="税率" align="center" width="150">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE4(scope.row,$event)"
v-model="scope.row.taxAmount" clearable placeholder=""
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
<!-- <el-table-column label="含税单价" prop="taxPrice" @input="commodityComputeYHAndXSJE5(scope.row,$event)"
align="center" width="150" /> -->
<el-table-column label="入库金额" prop="amount" align="center" width="150" />
</el-table>
<el-table-column label="入库金额" prop="amount" align="center" width="150" />
</el-table>
<!-- <div class="title"
<!-- <div class="title"
style="display: flex;align-items: center;justify-content: space-between;height:40px;margin-top: 10px;">
<div>商品-批次</div>
</div>
@ -249,9 +257,12 @@
</el-table-column>
</el-table> -->
</el-form>
</el-form>
</div>
</div>
<!-- 选择商品 -->
<chooseproducts v-show="viewState == 2" ref="divSp" @backData="backData" @doback="resetState" />
</div>
@ -263,10 +274,18 @@
import {
getCurrentDate
} from '@/utils/index.js'
import chooseproducts from './relation/chooseproducts'
import {
choiceSupplierInfo,
getOrgSidByPath
} from '@/api/Common/dictcommons'
export default {
components: {},
components: {
chooseproducts,
},
data() {
return {
viewState: 1,
title: '【新增】',
listLoading: false,
submitdisabled: false,
@ -344,100 +363,170 @@
}
}
},
created() {},
created() {
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
},
methods: {
commodityInput(value) {
this.commodityQuery.params.name = value
this.commodityLoading = true
req.getGoodsListPage(this.commodityQuery).then((response) => {
if (response.success) {
this.commodityLoading = false
this.commodityData = response.data.records
this.commodityQuery.total = response.data.total
} else {
this.serviceLoading = false
this.commodityData = []
this.commodityQuery.total = 0
}
})
},
commodityDelete(index) {
this.formobj.list.splice(index, 1)
},
commodityCurrentChange(value, row) {
console.log("commodityCurrentChange》》》》", value)
console.log("commodityCurrentChange》》》》", row)
row.goodsSkuSid = value.goodsSkuSid
row.goodsSkuTitle = value.goodsSpuName
row.goodsSpuName = value.goodsSpuName
row.goodsSkuCode = value.goodsSkuCode
row.goodsSkuOwnSpec = value.goodsSkuOwnSpec
row.unit = value.unit
row.warehouseSid = value.warehouseSid
row.warehouseName = value.warehouseName
row.warehouseRackSid = value.warehouseRackSid
row.warehouseRackName = value.warehouseRackName
row.actualInCount = 0
row.rejectCount = 0
row.rejectReason = ''
row.isQuality = 1
row.qualityState = 0
row.packageRemark = ''
row.cost = value.cost
row.taxAmount = value.taxAmount
row.taxPrice = value.taxPrice
row.amount = value.amount
row.shelfLife = value.shelfLife
document.body.click()
},
// commodityInput(value) {
// this.commodityQuery.params.name = value
// this.commodityLoading = true
// req.getGoodsListPage(this.commodityQuery).then((response) => {
// if (response.success) {
// this.commodityLoading = false
// this.commodityData = response.data.records
// this.commodityQuery.total = response.data.total
// } else {
// this.serviceLoading = false
// this.commodityData = []
// this.commodityQuery.total = 0
// }
// })
// },
// commodityDelete(index) {
// this.formobj.list.splice(index, 1)
// },
// commodityCurrentChange(value, row) {
// console.log("commodityCurrentChange", value)
// console.log("commodityCurrentChange", row)
// row.goodsSkuSid = value.goodsSkuSid
// row.goodsSkuTitle = value.goodsSpuName
// row.goodsSpuName = value.goodsSpuName
// row.goodsSkuCode = value.goodsSkuCode
// row.goodsSkuOwnSpec = value.goodsSkuOwnSpec
// row.unit = value.unit
// row.warehouseSid = value.warehouseSid
// row.warehouseName = value.warehouseName
// row.warehouseRackSid = value.warehouseRackSid
// row.warehouseRackName = value.warehouseRackName
// row.actualInCount = 0
// row.rejectCount = 0
// row.rejectReason = ''
// row.isQuality = 1
// row.qualityState = 0
// row.packageRemark = ''
// row.cost = value.cost
// row.taxAmount = value.taxAmount
// row.taxPrice = value.taxPrice
// row.amount = value.amount
// row.shelfLife = value.shelfLife
// document.body.click()
// },
// //
// commodityHeader(h, {
// column
// }) {
// return h(
// 'div',
// [
// h('span', column.label),
// h('i', {
// class: 'add-btn-icon el-icon-plus',
// style: 'color: red;font-size:20px',
// on: {
// click: this.commodityAdd //
// }
// })
// ]
// )
// },
// commodityAdd() {
// this.formobj.list.push({
// "goodsSkuSid": "",
// "goodsSkuTitle": "",
// "goodsSkuCode": "",
// "goodsSkuOwnSpec": "",
// "unit": "",
// "warehouseSid": "",
// "warehouseName": "",
// "warehouseRackSid": "",
// "warehouseRackName": "",
// "actualInCount": 0,
// "rejectCount": 0,
// "rejectReason": "",
// "isQuality": 1,
// "qualityState": 0,
// "packageRemark": "",
// "state": 0,
// "xh": "",
// "orderCount": 0,
// "cost": 0,
// "taxAmount": 0,
// "taxPrice": 0,
// "amount": 0,
// 'shelfLife': 0
// })
// },
backData(value) {
this.viewState = 1
if (value.length > 0) {
value.forEach((e) => {
this.formobj.list.push({
// goodSpuSid: e.goodsSpuSid,
// goodsSpuName: e.goodsSpuName,
// goodsSkuSid: e.goodsSkuSid,
// goodsSkuTitle: e.goodsSkuTitle,
// goodsSkuCode: e.goodsSkuCode,
// goodsSkuOwnSpec: e.goodsSkuOwnSpec,
// unit: e.unit,
// warehouseSid: e.warehouseSid,
// warehouseName: e.warehouseName,
// warehouseRackSid: e.warehouseRackSid,
// warehouseRackCode: e.warehouseRackCode,
// money: e.money,
// moneyAll: '',
// outCount: '',
// inventorySid: e.inventorySid, // sid
"goodsSkuSid": e.goodsSpuSid,
"goodsSpuName": e.goodsSpuName,
"goodsSkuTitle": e.goodsSkuTitle,
"goodsSkuCode": e.goodsSkuCode,
"goodsSkuOwnSpec": e.indexes,
"unit": e.goodsUnitName,
"warehouseSid": e.warehouseSid,
"warehouseName": e.warehouseName,
"warehouseRackSid": e.warehouseRackSid,
"warehouseRackName": e.warehouseRackCode,
"actualInCount": 0,
"rejectCount": 0,
"rejectReason": "",
"isQuality": 1,
"qualityState": 0,
"packageRemark": "",
"state": 0,
"xh": "",
"orderCount": 0,
"cost": 0,
"taxAmount": 0,
"taxPrice": 0,
"amount": 0,
'shelfLife': 0
//
commodityHeader(h, {
column
}) {
return h(
'div',
[
h('span', column.label),
h('i', {
class: 'add-btn-icon el-icon-plus',
style: 'color: red;font-size:20px',
on: {
click: this.commodityAdd //
}
})
]
)
})
}
},
commodityAdd() {
this.formobj.list.push({
"goodsSkuSid": "",
"goodsSkuTitle": "",
"goodsSkuCode": "",
"goodsSkuOwnSpec": "",
"unit": "",
"warehouseSid": "",
"warehouseName": "",
"warehouseRackSid": "",
"warehouseRackName": "",
"actualInCount": 0,
"rejectCount": 0,
"rejectReason": "",
"isQuality": 1,
"qualityState": 0,
"packageRemark": "",
"state": 0,
"xh": "",
"orderCount": 0,
"cost": 0,
"taxAmount": 0,
"taxPrice": 0,
"amount": 0,
'shelfLife': 0
})
resetState() {
this.viewState = 1
},
seleMaintenance() {
this.viewState = 2
const aa = []
this.$refs['divSp'].showData(aa, this.formobj.createOrgSid)
},
doGoodsDel(sid) {
console.log("doGoodsDel》》》》", sid)
@ -636,24 +725,53 @@
},
getsupplierLust() {
var params = {
orgSid: window.sessionStorage.getItem('orgSid'),
}
req.choiceSupplier(window.sessionStorage.getItem('orgSid')).then((res) => {
if (res.success) {
this.supplierList = res.data
// var params = {
// depSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
// .getItem('defaultOrgPath').lastIndexOf('/') + 1),
// }
console.log("aaaaaa", this.supplierList);
// var depSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
// .getItem('defaultOrgPath').lastIndexOf('/') + 1)
// req.choiceSupplier(depSid).then((res) => {
// if (res.success) {
// this.supplierList = res.data
// console.log("aaaaaa", this.supplierList);
// }
// })
choiceSupplierInfo({
deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}).then((resp) => {
if (resp.success) {
this.supplierList = resp.data
console.log("aaaaaa", this.supplierList);
}
})
// getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
// if (res.success) {
// this.formobj.createOrgSid = res.data
// this.formobj.useOrgSid = res.data
// choiceSupplierInfo({ deptSid: res.data }).then((resp) => {
// if (resp.success) {
// this.supplierList = resp.data
// console.log("aaaaaa", this.supplierNameList);
// }
// })
// }
// })
},
getWarehouseList() {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getWarehouses().then((res) => {
req2.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data

10
yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsInfo.vue

@ -15,10 +15,10 @@
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<div class="title">
<!-- <div class="title">
<div>基础信息</div>
</div>
<el-row>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
@ -92,8 +92,8 @@
<el-table-column label="是否质检" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.isQuality" :disabled="true" size="small">
<el-radio :label="0">需要</el-radio>
<el-radio :label="1">不需要</el-radio>
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</template>
</el-table-column>

164
yxt-as-ui/src/views/storage/receivingGoods/relation/chooseproducts.vue

@ -0,0 +1,164 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>选择商品</div>
<div>
<el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="120px" class="tab-header">
<el-form-item label="商品名称" class="searchlist">
<el-input v-model="listQuery.params.goodsSpuName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="商品编码" class="searchlist">
<el-input v-model="listQuery.params.goodsSkuCode" placeholder="" clearable/>
</el-form-item>
<el-form-item label="供应商" class="searchlist">
<el-input v-model="listQuery.params.manufacturerName" placeholder="" clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">商品列表</div>
<!-- <pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>-->
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column prop="goodsSpuName" label="商品名称" align="center" />
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" />
<el-table-column prop="indexes" label="规格" align="center" />
<el-table-column prop="goodsUnitName" label="单位" align="center" />
<el-table-column prop="manufacturerName" label="供应商" align="center" />
</el-table>
</div>
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import { chooseproducts } from '@/api/Common/dictcommons'
export default {
name: 'SelectVehicle',
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
list: [],
number: '',
listLoading: false,
listQuery: {
current: 1,
size: 5,
params: {
createOrgSid: '',
goodsSpuName: '',
goodsSkuCode: '',
manufacturerName: ''
},
total: 0
}
}
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
chooseproducts(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery.current = 1
this.listQuery.size = 5
this.listQuery.total = 0
this.listQuery.params.goodsSpuName = ''
this.listQuery.params.goodsSkuCode = ''
this.listQuery.params.manufacturerName = ''
this.getList()
},
handleSelectionChange(row) {
this.sids = row
},
showData(value, createOrgSid) {
// const aa = []
// if (value.length > 0) {
// for (var i = 0; i < value.length; i++) {
// aa.push(value[i].saleVehSid)
// }
// this.listQuery.params.saleVehSids = aa
// } else {
// this.listQuery.params.saleVehSids = []
// }``
this.listQuery.params.createOrgSid = createOrgSid
this.listQuery.current = 1
this.listQuery.size = 5
this.listQuery.total = 0
this.getList()
},
//
AddUpdateReturn() {
if (this.sids.length > 0) {
this.$emit('backData', this.sids)
} else {
this.$notify({ title: '提示', message: '请至少选择一条记录进行操作', type: 'error', duration: 2000 })
}
},
//
handleReturn() {
this.$emit('doback')
}
}
}
</script>
<style scoped>
</style>

11
yxt-as-ui/src/views/storage/receivingGoods/upShelfAddRecord.vue

@ -16,10 +16,10 @@
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<!-- <div class="title">
<div>基础信息</div>
</div>
<el-row>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item>
@ -334,7 +334,10 @@
},
getWarehouseList() {
req2.getWarehouses().then((res) => {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data

5
yxt-as-ui/src/views/storage/upShelf/upShelfAdd.vue

@ -341,7 +341,10 @@
},
getWarehouseList() {
req2.getWarehouses().then((res) => {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data

2
yxt-as-ui/src/views/warehouse/goodsShelves/index.vue

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="库位列表" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<button-bar ref="btnbar" view-title="库位管理" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">

6
yxt-as-ui/src/views/workFlow/suopeikaipiaoFlow/claimbillingDaiBan.vue

@ -15,7 +15,7 @@
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.createDeptName }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
@ -126,8 +126,8 @@ export default {
billNo: '',
createByName: '',
createBySid: '',
createDeptName: '',
createDeptSid: '',
deptName: '',
deptSid: '',
createOrgSid: '',
createTime: '',
detailList: [],

8
yxt-as-ui/src/views/workFlow/suopeikaipiaoFlow/claimbillingEdit.vue

@ -14,7 +14,7 @@
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.createDeptName }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
@ -140,8 +140,8 @@ export default {
billNo: '',
createByName: '',
createBySid: '',
createDeptName: '',
createDeptSid: '',
deptName: '',
deptSid: '',
createOrgSid: '',
createTime: '',
detailList: [],
@ -213,7 +213,7 @@ export default {
if (res.success) {
this.formobj = res.data
this.formobj.instanceId = res.data.procInstId
choiceSupplierInfo({ deptSid: this.formobj.createDeptSid }).then((resp) => {
choiceSupplierInfo({ deptSid: this.formobj.deptSid }).then((resp) => {
if (resp.success) {
this.supplier_list = resp.data
}

6
yxt-as-ui/src/views/workFlow/suopeikaipiaoFlow/claimbillingYiBan.vue

@ -12,7 +12,7 @@
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.createDeptName }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
@ -84,8 +84,8 @@ export default {
billNo: '',
createByName: '',
createBySid: '',
createDeptName: '',
createDeptSid: '',
deptName: '',
deptSid: '',
createOrgSid: '',
createTime: '',
detailList: [],

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java

@ -84,9 +84,9 @@ public class AsBusrepairBill extends BaseEntity {
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("制单部门sid")
private String deptSid;
private String deptSid; // 制单部门sid
@ApiModelProperty("制单部门")
private String dept;
private String deptName; // 制单部门
@ApiModelProperty("班组sid")
private String groupSid;
@ApiModelProperty("班组名称")

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java

@ -28,9 +28,9 @@ public class AsBusrepairBillDetailsVo implements Vo {
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单部门sid")
private String deptSid;
private String deptSid; // 制单部门sid
@ApiModelProperty("制单部门")
private String dept;
private String deptName; // 制单部门
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("操作人Sid")

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java

@ -25,9 +25,9 @@ public class AsBusrepairBillDto implements Dto {
@ApiModelProperty("班组名称")
private String groupName;
@ApiModelProperty("制单部门sid")
private String deptSid;
private String deptSid; // 制单部门sid
@ApiModelProperty("制单部门")
private String dept;
private String deptName; // 制单部门
@ApiModelProperty("操作人Sid")
private String operatorSid;
@ApiModelProperty("操作人")

7
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillQuery.java

@ -1,6 +1,7 @@
package com.yxt.anrui.as.api.asbusrepairinventorybill;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@ -14,6 +15,8 @@ public class AsBusrepairInventorybillQuery implements Query {
private String userSid;
private String orgPath;
@ApiModelProperty("菜单url")
private String menuUrl;
//单据编号
private String billNo;
@ -35,4 +38,8 @@ public class AsBusrepairInventorybillQuery implements Query {
//经办人
private String warehouseManager;
}

5
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillVo.java

@ -16,8 +16,8 @@ public class AsBusrepairInventorybillVo {
private String billNo;
@ApiModelProperty("单据时间")
private String createTime;
@ApiModelProperty("维修工单sid")
private String sourceBillSid;
// @ApiModelProperty("维修工单sid")
// private String sourceBillSid;
@ApiModelProperty("维修工单编号")
private String sourceBillNo;
@ApiModelProperty("操作人")
@ -26,4 +26,5 @@ public class AsBusrepairInventorybillVo {
private String busTypeValue;
@ApiModelProperty("经办人")
private String warehouseManager;
private String remarks;
}

48
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/InventoryBillDetailsVo.java

@ -21,28 +21,44 @@ public class InventoryBillDetailsVo {
private String createBySid;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("操作部门sid")
private String createDeptSid;
@ApiModelProperty("操作日期")
private String createTime;
@ApiModelProperty("领料人sid")
@ApiModelProperty("来源单sid")
private String sourceBillSid;
@ApiModelProperty("库管操作人sid")
private String warehouseManagerSid;
@ApiModelProperty("领料人名称")
@ApiModelProperty("库管操作人")
private String warehouseManager;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("部门sid")
private String deptSid;
@ApiModelProperty("部门")
private String deptName;
@ApiModelProperty("操作日期")
private String createTime;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("维修工单sid")
private String sourceBillSid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("业务类型key")
private String busTypeKey;
@ApiModelProperty("业务类型value")
private String busTypeValue;
@ApiModelProperty("维修工单编号")
private String sourceBillNo;
@ApiModelProperty("服务顾问姓名")
private String waitorName;
@ApiModelProperty("单据日期")
private String billDate;
@ApiModelProperty("工单类型0正常工单、1保险理赔、2协议单位")
private String billType;
@ApiModelProperty("科目")
private String subject;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("客户单位")
private String customerOrg;
private List<SitemsVo> sitemVoList = new ArrayList<>();
private List<AsBusrepairInventorybillDetailSDto> detailList = new ArrayList<>();
private String orgPath;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java

@ -18,6 +18,8 @@ public class AsBusrepairInventorybillDetail extends BaseEntity {
private String billSid;
@ApiModelProperty("工单服务项目记录sid")
private String sitemSid;
@ApiModelProperty("项目名称")
private String serviceItem;
@ApiModelProperty("商品库存sid")
private String inventorySid;
@ApiModelProperty("商品ID")

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailDto.java

@ -17,6 +17,8 @@ public class AsBusrepairInventorybillDetailDto {
private String sitemSid;
@ApiModelProperty("商品库存sid")
private String inventorySid;
@ApiModelProperty("项目名称")
private String serviceItem;
@ApiModelProperty("商品ID")
@JsonProperty("goodsID")
private String goodsID;

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailSDto.java

@ -16,6 +16,8 @@ public class AsBusrepairInventorybillDetailSDto {
@ApiModelProperty("工单服务项目记录sid")
private String sitemSid;
@ApiModelProperty("项目名称")
private String serviceItem;
@ApiModelProperty("商品库存sid")
private String inventorySid;
@ApiModelProperty("商品ID")

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusreservebill/AsBusreserveBill.java

@ -91,9 +91,9 @@ public class AsBusreserveBill extends BaseEntity {
@ApiModelProperty("组织全路径")
private String orgSidPath; // 组织全路径
@ApiModelProperty("制单部门sid")
private String createDeptSid; // 制单部门sid
private String deptSid; // 制单部门sid
@ApiModelProperty("制单部门")
private String createDept; // 制单部门
private String deptName; // 制单部门
@ApiModelProperty("客户单位")
private String customerOrg; // 客户单位

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusreservebill/AsBusreserveBillDetailsVo.java

@ -92,9 +92,9 @@ public class AsBusreserveBillDetailsVo implements Vo {
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
@ApiModelProperty("制单部门sid")
private String createDeptSid; // 制单部门sid
private String deptSid; // 制单部门sid
@ApiModelProperty("制单部门")
private String createDept; // 制单部门
private String deptName; // 制单部门
@ApiModelProperty("客户单位")
private String customerOrg; // 客户单位
private List<AsbillSitemVo> sitemVos = new ArrayList<>();

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusreservebill/AsBusreserveBillDto.java

@ -92,9 +92,9 @@ public class AsBusreserveBillDto implements Dto {
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
@ApiModelProperty("制单部门sid")
private String createDeptSid; // 制单部门sid
private String deptSid; // 制单部门sid
@ApiModelProperty("制单部门")
private String createDept; // 制单部门
private String deptName; // 制单部门
@ApiModelProperty("客户单位")
private String customerOrg; // 客户单位
private List<AsbillSitemVo> sitemVos = new ArrayList<>();

5
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml

@ -38,7 +38,7 @@
b.billNo,
b.nodeName,
b.useOrgName,
b.dept,
b.deptName,
b.createByName,
b.createTime,
b.billType,
@ -59,6 +59,7 @@
FROM as_busrepair_bill AS b
LEFT JOIN as_busrepair_bill_vech AS v ON b.sid = v.billSid
LEFT JOIN as_busrepair_bill_invoice AS i ON b.sid = i.billSid
LEFT JOIN anrui_portal.sys_organization as s ON b.deptSid = s.sid
<where>
${ew.sqlSegment}
</where>
@ -113,7 +114,7 @@
<select id="billPageList" resultType="com.yxt.anrui.as.api.asbusrepairbill.AsBusrepairBillPageListVo">
select a.sid,
a.useOrgName,
a.dept as deptName,
a.deptName,
a.createByName,
a.subject,
DATE_FORMAT(a.entryTime, '%Y-%m-%d') as entryTime,

34
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java

@ -54,10 +54,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.*;
/**
* @description:
@ -97,6 +94,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
private FinUncollectedReceivablesDetailedFeign finUncollectedReceivablesDetailedFeign;
@Autowired
private AsBusclaimBillService asBusclaimBillService;
/**
* 维修领料获取派工单
*
@ -510,16 +508,16 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("b.orgSidPath", orgSidPath);
qw.like("s.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("b.orgSidPath", orgSidPath);
qw.like("s.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("b.orgSidPath", orgSidPath);
qw.like("s.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("b.orgSidPath", orgSidPath);
qw.like("s.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("b.createBySid", query.getUserSid());
} else {
@ -530,12 +528,27 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
PagerVo<AsBusrepairBillVo> p = new PagerVo<>();
return p;
}
} else {
String deptSid = "";
String orgPath = query.getOrgPath();
if (StringUtils.isNotBlank(orgPath)) {
List<String> split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptSid = sysOrganization.getSid();
}
}
qw.eq("b.deptSid", deptSid);
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("b.useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getDept())) {
qw.like("b.dept", query.getDept());
qw.like("b.deptName", query.getDept());
}
if (StringUtils.isNotBlank(query.getCreateByName())) {
qw.like("b.createByName", query.getCreateByName());
@ -595,7 +608,6 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
if (StringUtils.isNotBlank(query.getNodeCode())) {
qw.eq("b.nodeCode", query.getNodeCode());
}
qw.eq("1", "1");
qw.orderByDesc("b.createTime");
IPage<AsBusrepairBill> page = PagerUtil.queryToPage(pagerQuery);
IPage<AsBusrepairBillVo> pagging = baseMapper.listPage(page, qw);
@ -853,7 +865,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
for (AsBusrepairBillPageListVo record : pagging.getRecords()) {
List<String> billNos = asBusclaimBillService.selectByRepairBillSid(record.getSid());
record.setNum(String.valueOf(billNos.size()));
record.setSpdBillNo(String.join(",",billNos));
record.setSpdBillNo(String.join(",", billNos));
}
PagerVo<AsBusrepairBillPageListVo> p = PagerUtil.pageToVo(pagging, null);
return p;

2
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.java

@ -26,4 +26,6 @@ public interface AsBusrepairInventorybillMapper extends BaseMapper<AsBusrepairIn
IPage<AsBusrepairInventorybillVo> pageList(IPage<AsBusrepairInventorybill> page, @Param(Constants.WRAPPER) QueryWrapper<AsBusrepairInventorybill> qw);
String selOutBoundCount(@Param("sourceBillSid") String sourceBillSid, @Param("busTypeKey")String busTypeKey, @Param("goodsID")String goodsID);
int selectNum(String bill);
}

38
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.xml

@ -2,25 +2,33 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.as.biz.asbusrepairinventorybill.AsBusrepairInventorybillMapper">
<select id="pageList" resultType="com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillVo">
select sid,
billNo,
DATE_FORMAT(createTime, '%Y-%m-%d') as createTime,
sourceBillSid,
sourceBillNo,
createByName,
busTypeValue,
warehouseManager
from as_busrepair_inventorybill
select a.sid,
a.billNo,
DATE_FORMAT(a.createTime, '%Y-%m-%d') as createTime,
a.sourceBillSid,
b.billNo as sourceBillNo,
a.createByName,
a.busTypeValue,
a.warehouseManager
from as_busrepair_inventorybill as a
left join as_busrepair_bill as b on a.sourceBillSid = b.sid
left join anrui_portal.sys_organization as s on a.deptSid = s.sid
<where>
${ew.sqlSegment}
</where>
order by a.id desc
</select>
<select id="selOutBoundCount" resultType="java.lang.String">
SELECT
IFNULL(SUM(d.count),0)
FROM
as_busrepair_inventorybill_detail AS d
LEFT JOIN as_busrepair_inventorybill AS b ON d.billSid = b.sid
WHERE d.goodsID = #{goodsID} AND b.sourceBillSid = #{sourceBillSid} AND b.busTypeKey = #{busTypeKey}
SELECT IFNULL(SUM(d.count), 0)
FROM as_busrepair_inventorybill_detail AS d
LEFT JOIN as_busrepair_inventorybill AS b ON d.billSid = b.sid
WHERE d.goodsID = #{goodsID}
AND b.sourceBillSid = #{sourceBillSid}
AND b.busTypeKey = #{busTypeKey}
</select>
<select id="selectNum" resultType="java.lang.Integer">
select IFNULL(CAST(REPLACE(MAX(billNo), #{bill}, '') AS SIGNED), 0) as code
from as_busrepair_inventorybill
where billNo LIKE concat(#{bill}, '%')
</select>
</mapper>

11
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillRest.java

@ -34,22 +34,16 @@ public class AsBusrepairInventorybillRest {
return asBusrepairInventorybillService.saveOrUdateBill(dto);
}
/* @PostMapping("/outBill")
@ApiOperation("出库")
ResultBean outBill(@RequestBody AsBusrepairInventorybillDto dto) {
return asBusrepairInventorybillService.outBill(dto);
}*/
@PostMapping("/outBill")
@ApiOperation("出库")
ResultBean outBill(@RequestBody AsBusrepairInventorybillDto dto) {
return asBusrepairInventorybillService.outBill(dto);
return asBusrepairInventorybillService.newOutBill(dto);
}
@PostMapping("/quitBill")
@ApiOperation("退库")
ResultBean quitBill(@RequestBody AsBusrepairInventorybillDto dto) {
return asBusrepairInventorybillService.quitBill(dto);
return asBusrepairInventorybillService.newQuitBill(dto);
}
@PostMapping("/details")
@ -74,4 +68,5 @@ public class AsBusrepairInventorybillRest {
}
}

235
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java

@ -1,21 +1,29 @@
package com.yxt.anrui.as.biz.asbusrepairinventorybill;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.as.api.asbusrepairbill.AsBusrepairBill;
import com.yxt.anrui.as.api.asbusrepairbill.AsBusrepairBillDetailsVo;
import com.yxt.anrui.as.api.asbusrepairbill.GoodsDetailsVo;
import com.yxt.anrui.as.api.asbusrepairbill.SitemVo;
import com.yxt.anrui.as.api.asbusrepairinventorybill.*;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailDto;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailSDto;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.SitemsVo;
import com.yxt.anrui.as.api.asbusreservebill.AsBusreserveBillVo;
import com.yxt.anrui.as.api.enums.AsBillTypeEnum;
import com.yxt.anrui.as.api.utils.AsRule;
import com.yxt.anrui.as.api.utils.domain.AsBillNo;
import com.yxt.anrui.as.biz.asbusrepairbill.AsBusrepairBillService;
import com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailService;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign;
import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventoryFeign;
import com.yxt.anrui.as.feign.wms.wmsInventory.WmsUpdateCountQuery;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDetailDto;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDto;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillFeign;
@ -25,10 +33,12 @@ import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import javassist.Loader;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@ -51,7 +61,12 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private AsBusrepairBillService asBusrepairBillService;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Resource
private WmsInventoryFeign wmsInventoryFeign;
@Autowired
private SysUserFeign sysUserFeign;
/**
* 维修出/退库分页列表
*
@ -62,32 +77,71 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
AsBusrepairInventorybillQuery query = pagerQuery.getParams();
QueryWrapper<AsBusrepairInventorybill> qw = new QueryWrapper<>();
if (query != null) {
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("s.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("s.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("s.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("s.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("a.createBySid", query.getUserSid());
} else {
PagerVo<AsBusrepairInventorybillVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<AsBusrepairInventorybillVo> p = new PagerVo<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getUserSid())) {
qw.eq("createBySid", query.getUserSid());
qw.eq("a.createBySid", query.getUserSid());
}
//单据编号
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("billNo", query.getBillNo());
qw.like("a.billNo", query.getBillNo());
}
//单据日期开始时间-单据日期结束时间
qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')"
qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (a.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (a.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')"
);
//维修工单编号
if (StringUtils.isNotBlank(query.getSourceBillNo())) {
qw.like("sourceBillNo", query.getSourceBillNo());
qw.like("b.billNo", query.getSourceBillNo());
}
//业务类型
if (StringUtils.isNotBlank(query.getBusTypeValue())) {
qw.like("busTypeValue", query.getBusTypeValue());
qw.like("a.busTypeValue", query.getBusTypeValue());
}
//操作人
if (StringUtils.isNotBlank(query.getCreateByName())) {
qw.like("createByName", query.getCreateByName());
qw.like("a.createByName", query.getCreateByName());
}
//经办人
if (StringUtils.isNotBlank(query.getWarehouseManager())) {
qw.like("warehouseManager", query.getWarehouseManager());
qw.like("a.warehouseManager", query.getWarehouseManager());
}
}
@ -166,17 +220,149 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
return rb.success();
}
/**
* 生成单据编号
*
* @param orgSid
* @return
*/
public String getApplyCode(String orgSid, String billType) {
//获取分公司sid
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(orgSid);
String orgCode = resultBean1.getData().getOrgCode();
AsBillNo b = new AsBillNo();
b.setOrgCode(orgCode);
b.setBillType(billType);
String bill = AsRule.getBill(b);
int i = baseMapper.selectNum(bill);
String billNo = AsRule.getBillNo(bill, i);
return billNo;
}
public ResultBean newOutBill(AsBusrepairInventorybillDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = saveBill(dto, "0");
return rb.success().setData(sid);
}
public ResultBean newQuitBill(AsBusrepairInventorybillDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = saveBill(dto, "1");
return rb.success().setData(sid);
}
public String saveBill(AsBusrepairInventorybillDto dto, String busTypeKey) {
AsBusrepairInventorybill entity = new AsBusrepairInventorybill();
BeanUtil.copyProperties(dto, entity, "id", "sid");
if (busTypeKey.equals("0")) {
entity.setBusTypeKey("0");
entity.setBusTypeValue("维修出库");
String billNo = getApplyCode(dto.getCreateOrgSid(), "WXCKD");
entity.setBillNo(billNo);
} else if (busTypeKey.equals("1")) {
entity.setBusTypeKey("1");
entity.setBusTypeValue("维修退库");
String billNo = getApplyCode(dto.getCreateOrgSid(), "WXTKD");
entity.setBillNo(billNo);
}
baseMapper.insert(entity);
List<AsBusrepairInventorybillDetailSDto> detailList = dto.getDetailList();
if (!detailList.isEmpty()) {
for (AsBusrepairInventorybillDetailSDto sDto : detailList) {
AsBusrepairInventorybillDetail detail = new AsBusrepairInventorybillDetail();
BeanUtil.copyProperties(sDto, detail);
if (StringUtils.isNotBlank(sDto.getOutboundCount())) {
detail.setCurrentCount(new BigDecimal(sDto.getOutboundCount()));
}
detail.setBillSid(entity.getSid());
asBusrepairInventorybillDetailService.insert(detail);
WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery();
countQuery.setSid(sDto.getInventorySid());
countQuery.setCount(new BigDecimal(sDto.getCount()));
if (busTypeKey.equals("0")) {
//维修出库
countQuery.setAddOrReduce(1);
} else if (busTypeKey.equals("1")) {
//维修退库
countQuery.setAddOrReduce(0);
}
wmsInventoryFeign.updateInventoryCount(countQuery);
}
}
return entity.getSid();
}
public ResultBean<InventoryBillDetailsVo> details(String sid) {
ResultBean<InventoryBillDetailsVo> rb = ResultBean.fireFail();
AsBusrepairInventorybill asBusrepairInventorybill = fetchBySid(sid);
InventoryBillDetailsVo inventoryBillDetailsVo = new InventoryBillDetailsVo();
BeanUtil.copyProperties(asBusrepairInventorybill, inventoryBillDetailsVo, "sid");
List<SitemsVo> sitemVoList = asBusrepairBillService.selectSitemList(asBusrepairInventorybill.getSourceBillSid());
sitemVoList.removeAll(Collections.singleton(null));
if (!sitemVoList.isEmpty()) {
inventoryBillDetailsVo.setSitemVoList(sitemVoList);
InventoryBillDetailsVo vo = new InventoryBillDetailsVo();
AsBusrepairInventorybill entity = fetchBySid(sid);
if (null != entity) {
BeanUtil.copyProperties(entity, vo);
String sourceBillSid = entity.getSourceBillSid();
vo.setCreateTime(DateUtil.formatDate(entity.getCreateTime()));
AsBusrepairBillDetailsVo data = asBusrepairBillService.fetchDetailsBySid(sourceBillSid).getData();
if (null != data) {
if (StringUtils.isNotBlank(data.getBillNo())) {
vo.setSourceBillNo(data.getBillNo());
}
if (StringUtils.isNotBlank(data.getWaitorName())) {
vo.setWaitorName(data.getWaitorName());
}
if (StringUtils.isNotBlank(data.getCreateDate())) {
vo.setBillDate(data.getCreateDate());
}
if (StringUtils.isNotBlank(data.getBillType())) {
vo.setBillType(data.getBillType());
}
if (StringUtils.isNotBlank(data.getSubject())) {
vo.setSubject(data.getSubject());
}
if (StringUtils.isNotBlank(data.getCustomerName())) {
vo.setCustomerName(data.getCustomerName());
}
if (StringUtils.isNotBlank(data.getVehMark())) {
vo.setVehMark(data.getVehMark());
}
if (StringUtils.isNotBlank(data.getVinNo())) {
vo.setVinNo(data.getVinNo());
}
if (StringUtils.isNotBlank(data.getCustomerOrg())) {
vo.setCustomerOrg(data.getCustomerOrg());
}
List<SitemVo> sitemVos = data.getSitemVos();
List<SitemsVo> sitemsVos = new ArrayList<>();
if (!sitemVos.isEmpty()) {
for (SitemVo sitemVo : sitemVos) {
SitemsVo sitemsVo = new SitemsVo();
BeanUtil.copyProperties(sitemVo, sitemsVo);
List<String> staffNameList = sitemVo.getStaffNameList();
StringBuffer sb = new StringBuffer();
if (!staffNameList.isEmpty()) {
for (String name : staffNameList) {
sb.append(name).append(",");
}
sb.delete(sb.length() - 1, sb.length());
sitemsVo.setRepairerName(sb.toString());
}
sitemsVos.add(sitemsVo);
}
vo.setSitemVoList(sitemsVos);
}
List<AsBusrepairInventorybillDetailSDto> list = new ArrayList<>();
List<AsBusrepairInventorybillDetail> goodsDetails = asBusrepairInventorybillDetailService.selectByMainSid(sid);
if (!goodsDetails.isEmpty()) {
for (AsBusrepairInventorybillDetail goodsDetail : goodsDetails) {
AsBusrepairInventorybillDetailSDto goodsDetailsVo = new AsBusrepairInventorybillDetailSDto();
BeanUtil.copyProperties(goodsDetail, goodsDetailsVo);
list.add(goodsDetailsVo);
}
vo.setDetailList(list);
}
}
}
return rb.success().setData(inventoryBillDetailsVo);
return rb.success().setData(vo);
}
public ResultBean<AsBusrepairInventoryBillInit> init(String sid) {
@ -195,14 +381,7 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
vo.setBillDate(data.getCreateDate());
}
if (StringUtils.isNotBlank(data.getBillType())) {
String billType = data.getBillType();
if (billType.equals("0")) {
vo.setBillType("正常工单");
} else if (billType.equals("1")) {
vo.setBillType("保险理赔");
} else if (billType.equals("2")) {
vo.setBillType("协议单位");
}
vo.setBillType(data.getBillType());
}
if (StringUtils.isNotBlank(data.getSubject())) {
vo.setSubject(data.getSubject());

2
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusreservebill/AsBusreserveBillMapper.xml

@ -5,7 +5,7 @@
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.as.api.asbusreservebill.AsBusreserveBillVo">
SELECT a.* FROM as_busreserve_bill as a
left join anrui_portal.sys_organization as s on a.createDeptSid = s.sid
left join anrui_portal.sys_organization as s on a.deptSid = s.sid
<where>
${ew.sqlSegment}
</where>

4
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusreservebill/AsBusreserveBillService.java

@ -373,8 +373,8 @@ public class AsBusreserveBillService extends MybatisBaseService<AsBusreserveBill
billDto.setOperatorSid(bill.getCreateBySid());
billDto.setCreateByName(bill.getCreateByName());
billDto.setOperator(bill.getCreateByName());
billDto.setDept(bill.getCreateDept());
billDto.setDeptSid(bill.getCreateDeptSid());
billDto.setDeptName(bill.getDeptName());
billDto.setDeptSid(bill.getDeptSid());
if (StringUtils.isNotBlank(bill.getCustomerSid())) {
billDto.setCustomerSid(bill.getCustomerSid());
}

5
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeign.java

@ -24,4 +24,9 @@ public interface WmsInventoryFeign {
@ApiOperation("查询部门下所有的商品信息")
@PostMapping("/getPackageGoodsVo")
public ResultBean<PagerVo<WmsInventoryPackageVo>> getPackageGoodsVo(@RequestBody PagerQuery<WmsInventoryPackageQuery> pq);
@ApiOperation("修改库存数量")
@PostMapping("/updateInventoryCount")
ResultBean updateInventoryCount(@RequestBody WmsUpdateCountQuery query);
}

7
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeignFallback.java

@ -51,4 +51,9 @@ public class WmsInventoryFeignFallback implements WmsInventoryFeign {
public ResultBean<PagerVo<WmsInventoryPackageVo>> getPackageGoodsVo(PagerQuery<WmsInventoryPackageQuery> pq) {
return null;
}
}
@Override
public ResultBean updateInventoryCount(WmsUpdateCountQuery query) {
return null;
}
}

17
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsUpdateCountQuery.java

@ -0,0 +1,17 @@
package com.yxt.anrui.as.feign.wms.wmsInventory;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/3/20 9:14
*/
@Data
public class WmsUpdateCountQuery {
private String sid;
private BigDecimal count;
private Integer addOrReduce; // 0增加 1减少
}

1
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoutbill/WmsOutBillInventoryQuery.java

@ -31,4 +31,5 @@ public class WmsOutBillInventoryQuery implements Query {
private String orgPath;
private String busrepairBillSid;//维修工单sid
private String name;
}

9
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoutbill/WmsOutBillService.java

@ -128,6 +128,9 @@ public class WmsOutBillService extends MybatisBaseService<WmsOutBillMapper, WmsO
if (StringUtils.isNotBlank(query.getGoodsSpuName())) {
qw.like("wi.goodsSpuName", query.getGoodsSpuName());
}
if (StringUtils.isNotBlank(query.getName())) {
qw.like("wi.goodsSpuName", query.getName());
}
//商品编码
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) {
qw.like("wi.goodsSkuCode", query.getGoodsSkuCode());
@ -154,7 +157,11 @@ public class WmsOutBillService extends MybatisBaseService<WmsOutBillMapper, WmsO
String chuKuCount = asBusrepairInventorybillFeign.selOutBoundCount(billSid, "0", record.getGoodsID()).getData();
String ruKuCount = asBusrepairInventorybillFeign.selOutBoundCount(billSid, "1", record.getGoodsID()).getData();
BigDecimal count = new BigDecimal(chuKuCount).subtract(new BigDecimal(ruKuCount));
record.setOutboundCount(count.toString());
if (null != count) {
record.setOutboundCount("0");
} else {
record.setOutboundCount(count.toString());
}
}
}
PagerVo<WmsOutBillInventoryVo> p = PagerUtil.pageToVo(pagging, null);

Loading…
Cancel
Save