Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 11 months ago
parent
commit
50fd0c8811
  1. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java
  2. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java
  3. 50
      yxt-as-ui/src/api/maintenance/maintenanceOutbound.js
  4. 49
      yxt-as-ui/src/api/maintenance/maintenanceReturnBound.js
  5. 12
      yxt-as-ui/src/api/storage/allocation.js
  6. 15
      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. 9
      yxt-as-ui/src/api/warehouse/warehouseArea.js
  11. 459
      yxt-as-ui/src/views/maintenance/maintenanceOutbound/index.vue
  12. 7
      yxt-as-ui/src/views/maintenance/maintenanceOutbound/relation/chooseproducts.vue
  13. 806
      yxt-as-ui/src/views/maintenance/maintenanceReturnBound/index.vue
  14. 273
      yxt-as-ui/src/views/maintenance/maintenanceReturnBound/relation/chooseproducts.vue
  15. 5
      yxt-as-ui/src/views/storage/allocation/allocationAdd.vue
  16. 7
      yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue
  17. 5
      yxt-as-ui/src/views/storage/inOutStorage/index.vue
  18. 5
      yxt-as-ui/src/views/storage/inStorage/inStorageAdd.vue
  19. 54
      yxt-as-ui/src/views/storage/maintenanceInOrOutBound/index.vue
  20. 276
      yxt-as-ui/src/views/storage/maintenanceInOrOutBound/maintenanceOutboundInfo.vue
  21. 270
      yxt-as-ui/src/views/storage/maintenanceInOrOutBound/maintenanceReturnBoundInfo.vue
  22. 5
      yxt-as-ui/src/views/storage/oldPartsInAndOutStorage/index.vue
  23. 5
      yxt-as-ui/src/views/storage/oldPartsInvertory/index.vue
  24. 2
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue
  25. 5
      yxt-as-ui/src/views/storage/receivingGoods/upShelfAddRecord.vue
  26. 5
      yxt-as-ui/src/views/storage/upShelf/upShelfAdd.vue
  27. 10
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheck/AsBusclaimCheckQuery.java
  28. 3
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheck/AsBusclaimCheckVo.java
  29. 6
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApply.java
  30. 36
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDetailsVo.java
  31. 29
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDto.java
  32. 18
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyFile.java
  33. 8
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyQuery.java
  34. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyVo.java
  35. 7
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetail.java
  36. 6
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailDto.java
  37. 12
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailVo.java
  38. 6
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/AsBusclaimInvoiceBill.java
  39. 6
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/AsBusclaimInvoiceBillDetailsVo.java
  40. 6
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/AsBusclaimInvoiceBillDto.java
  41. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/AsBusclaimInvoiceBillQuery.java
  42. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/AsBusclaimInvoiceBillVo.java
  43. 7
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillQuery.java
  44. 5
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillVo.java
  45. 48
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/InventoryBillDetailsVo.java
  46. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java
  47. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailDto.java
  48. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailSDto.java
  49. 37
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheck/AsBusclaimCheckMapper.xml
  50. 78
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheck/AsBusclaimCheckService.java
  51. 2
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyMapper.java
  52. 19
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyMapper.xml
  53. 125
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyService.java
  54. 3
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailMapper.xml
  55. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillMapper.xml
  56. 8
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillService.java
  57. 2
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebilldetail/AsBusclaimInvoiceBillDetailMapper.java
  58. 10
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebilldetail/AsBusclaimInvoiceBillDetailMapper.xml
  59. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebilldetail/AsBusclaimInvoiceBillDetailService.java
  60. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java
  61. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  62. 33
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.xml
  63. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillRest.java
  64. 169
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  65. 27
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailMapper.xml
  66. 5
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeign.java
  67. 7
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeignFallback.java
  68. 17
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsUpdateCountQuery.java
  69. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoutbill/WmsOutBillInventoryQuery.java
  70. 1
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoutbill/WmsOutBillMapper.xml
  71. 13
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoutbill/WmsOutBillService.java
  72. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBill.java
  73. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.java
  74. 15
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.xml
  75. 35
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java
  76. 43
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/app/AppShelfBillListVo.java

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfundday/ScheduledLoanFundDayService.java

@ -40,7 +40,7 @@ public class ScheduledLoanFundDayService {
* 每天晚上12点遍历还款计划表中的公司垫款余额按照以下规则计算
* 每笔垫款的累计资金占用费用A金融应收未收表中
* 截止到当天垫款余额在还款计划表中T 当天新增的资金占用费B
* A=A+BB =T*7/10000
* A=A+BB =T*10/10000
* 需要建立每日资金占用费记录表还款计划明细表sid日期当日垫款余额当日资金占用费
*/
//查询
@ -55,7 +55,7 @@ public class ScheduledLoanFundDayService {
//截止到当天垫款余额T
BigDecimal paymentMoneyAll = list.get(i).getPaymentMoney();
//当天资金占用费B
BigDecimal fundDay = paymentMoneyAll.multiply(new BigDecimal("7")).divide(new BigDecimal("10000"),2, RoundingMode.HALF_UP);
BigDecimal fundDay = paymentMoneyAll.multiply(new BigDecimal("10")).divide(new BigDecimal("10000"),2, RoundingMode.HALF_UP);
LoanRepaymentPlanDetails loanRepaymentPlanDetails = list.get(i);
LoanFundDay loanFundDay = new LoanFundDay();
loanFundDay.setBusSid(loanRepaymentPlanDetails.getSid());

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java

@ -126,7 +126,7 @@ public class LoanPushFundHistoryService extends MybatisBaseService<LoanPushFundH
String finalPath = "";
Map<String, Object> dataMap = new HashMap();
List<Map<String, Object>> newList = new ArrayList<>();
dataMap.put("percent", "日万");
dataMap.put("percent", "日万");
String useOrgSid = "";
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(orgPath);
if (orgSidByPath.getSuccess()) {

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' }
});
},

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

@ -31,17 +31,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' }
});
},
}

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' }
});
},

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' }
})
},

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

@ -24,22 +24,22 @@
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 操作</div>
<el-form-item prop="goodsName">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
<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="goodsCode">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
<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>
<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>
@ -50,8 +50,8 @@
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 领料人</div>
<el-form-item prop="upShelfName">
<el-select v-model="formobj.upShelfName" filterable clearable placeholder="请选择"
<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>
@ -63,7 +63,7 @@
<el-col :span="16">
<div class="span-sty">备注</div>
<el-form-item>
<el-input v-model="formobj.indexes" placeholder="备注" class="addinputw addinputInfo" clearable />
<el-input v-model="formobj.remarks" placeholder="备注" class="addinputw addinputInfo" clearable />
</el-form-item>
</el-col>
@ -75,23 +75,23 @@
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 维修工单编号</div>
<el-form-item prop="goodsName">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
<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"><span class="must">*</span> 单据日期</div>
<el-form-item prop="goodsCode">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
<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.createTime }}</span></el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.waitorName }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
@ -99,16 +99,16 @@
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 工单类型</div>
<el-form-item prop="goodsName">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
<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"><span class="must">*</span> 科目</div>
<el-form-item prop="goodsCode">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
<div class="span-sty">科目</div>
<el-form-item>
<span class="addinputw addinputInfo">{{formobj.subject}}</span>
</el-form-item>
</el-col>
@ -123,23 +123,23 @@
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 客户名称</div>
<el-form-item prop="goodsName">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
<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"><span class="must">*</span> 车牌号/车架号</div>
<el-form-item prop="goodsCode">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
<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.createTime }}</span></el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.customerOrg }}</span></el-form-item>
</el-form-item>
</el-col>
</el-row>
@ -147,60 +147,84 @@
<div class="title titleOne">
<div>服务项目</div>
</div>
<el-table v-loading="listLoading" :data="formobj.baseGoodsSkus" border>
<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="80">
<el-table-column label="操作" wid align="center" width="120">
<template slot-scope="scope">
<el-button type="primary" size="mini"
@click="showGoodsSkuDttail(scope.row.baseGoodsSkuExtend)">商品出库</el-button>
<el-button type="primary" size="mini" @click="addGoods(scope.row)">商品出库</el-button>
</template>
</el-table-column>
<el-table-column label="服务项目" prop="goodsSkuCode" align="center" />
<el-table-column label="工种" prop="title" align="center" />
<el-table-column label="科目" prop="externalCode" align="center" />
<el-table-column label="维修人" prop="indexes" align="center" />
<el-table-column label="考核工时" prop="ownSpec" align="center" />
<el-table-column label="工时单价" prop="ownSpec" align="center" />
<el-table-column label="工时数" prop="ownSpec" align="center" />
<el-table-column label="销售价" prop="ownSpec" align="center" />
<el-table-column label="折扣" prop="ownSpec" align="center" />
<el-table-column label="优惠" prop="ownSpec" align="center" />
<el-table-column label="金额" prop="ownSpec" align="center" />
<el-table-column label="备注" prop="ownSpec" 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 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="showGoodsSkuDttail(scope.row.baseGoodsSkuExtend)">删除</el-button>
<el-button type="primary" size="mini" @click="deleteGoods(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="项目名称" prop="goodsSkuCode" align="center" />
<el-table-column label="商品名称" prop="title" align="center" />
<el-table-column label="商品编码" prop="externalCode" align="center" />
<el-table-column label="规格" prop="indexes" align="center" />
<el-table-column label="单位" prop="ownSpec" align="center" />
<el-table-column label="仓库" prop="ownSpec" align="center" />
<el-table-column label="库位" prop="ownSpec" align="center" />
<el-table-column label="销售单价" prop="ownSpec" align="center" />
<el-table-column label="已出数量" prop="ownSpec" align="center" />
<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.actualInCount"
clearable placeholder="" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
<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="ownSpec" align="center" />
<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.actualInCount" clearable placeholder="" />
<el-input v-model="scope.row.remarks" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
@ -217,12 +241,15 @@
</template>
<script>
import req from '@/api/goods/goods.js'
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,
@ -232,56 +259,73 @@
viewState: 1,
listLoading: false,
submitdisabled: false,
formobj: {
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: '',
}
},
commodityData: [],
rules: {
goodsName: [{
required: true,
message: '商品名称不能为空',
trigger: 'blur'
}],
goodsCode: [{
createByName: [{
required: true,
message: '商品编码不能为空',
message: '制单人不能为空',
trigger: 'blur'
}],
goodsUnitName: [{
required: true,
message: '请选择计量单位',
trigger: 'change'
}],
goodsTypeName: [{
required: true,
message: '请选择商品类别',
trigger: 'change'
}],
brandName: [{
required: true,
message: '请选择商品品牌',
trigger: 'change'
}],
manufacturerName: [{
deptName: [{
required: true,
message: '请选择商品厂家',
trigger: 'change'
}],
sortNo: [{
required: true,
message: '商品排序不能为空',
message: '制单部门不能为空',
trigger: 'blur'
}],
inventoryAlertUpperLimit: [{
createTime: [{
required: true,
message: '商品上限不能为空',
message: '制单日期不能为空',
trigger: 'blur'
}],
inventoryAlertLowerLimitt: [{
warehouseManager: [{
required: true,
message: '商品下限不能为空',
trigger: 'blur'
message: '请选择领料人',
trigger: 'change'
}],
}
}
},
@ -290,6 +334,7 @@
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
methods: {
initData() {
@ -303,31 +348,47 @@
}
})
},
backData(value) {
this.viewState = 1
if (value.length > 0) {
value.forEach((e) => {
this.formobj.detailsList.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
})
})
//
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
@ -340,10 +401,42 @@
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.saveGoods(this.formobj)
req.saveBill(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
@ -366,7 +459,35 @@
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) {
@ -375,8 +496,96 @@
receivePerSelect(val) {
const choose = this.receivePerList.filter((item) => item.sid == val)
console.log('>>>>>>>>>receivePerSelect', choose)
this.formobj.manufacturerSid = choose[0].sid
this.formobj.manufacturerName = choose[0].manufacturerName
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.sourceBillSid
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.goodsID = value.goodsID
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 = {
"sourceBillNo": this.formobj.sourceBillNo,
"sourceBillSid": this.formobj.sourceBillSid,
"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)
},
}

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

@ -126,7 +126,8 @@
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 = this.$route.path
this.listQuery.params.menuUrl = ""
getAsBusrepairBill(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
@ -190,8 +191,8 @@
}
},
toInfo(){
this.$emit('backData', this.sids[0].sid)
toInfo(row){
this.$emit('backData', row.sid)
},
//
handleReturn() {

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

@ -1,368 +1,388 @@
<template>
<div>
<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 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>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<!-- <div class="title">
<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="goodsName">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 操作部门</div>
<el-form-item prop="goodsCode">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</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"><span class="must">*</span> 领料人</div>
<el-form-item prop="goodsUnitName">
<el-select v-model="formobj.goodsUnitName" placeholder="请选择领料人" class="addinputw"
@change="selectunitNameChange">
<el-option v-for="item in unitNameList" :key="item.sid" :label="item.unitName" :value="item.sid" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">备注</div>
<el-form-item>
<el-input v-model="formobj.indexes" 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"><span class="must">*</span> 维修工单编号</div>
<el-form-item prop="goodsName">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 单据日期</div>
<el-form-item prop="goodsCode">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</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"><span class="must">*</span> 工单类型</div>
<el-form-item prop="goodsName">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 科目</div>
<el-form-item prop="goodsCode">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</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"><span class="must">*</span> 客户名称</div>
<el-form-item prop="goodsName">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 车牌号/车架号</div>
<el-form-item prop="goodsCode">
<span class="addinputw addinputInfo">{{formobj.goodsName}}</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>
<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="操作" wid align="center" width="80">
<template slot-scope="scope">
<el-button type="primary" size="mini"
@click="showGoodsSkuDttail(scope.row.baseGoodsSkuExtend)">商品出库</el-button>
</template>
</el-table-column>
<el-table-column label="服务项目" prop="goodsSkuCode" align="center" />
<el-table-column label="工种" prop="title" align="center" />
<el-table-column label="科目" prop="externalCode" align="center" />
<el-table-column label="维修人" prop="indexes" align="center" />
<el-table-column label="考核工时" prop="ownSpec" align="center" />
<el-table-column label="工时单价" prop="ownSpec" align="center" />
<el-table-column label="工时数" prop="ownSpec" align="center" />
<el-table-column label="销售价" prop="ownSpec" align="center" />
<el-table-column label="折扣" prop="ownSpec" align="center" />
<el-table-column label="优惠" prop="ownSpec" align="center" />
<el-table-column label="金额" prop="ownSpec" align="center" />
<el-table-column label="备注" prop="ownSpec" align="center" />
</el-table>
<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.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="操作" wid align="center" width="80">
<template slot-scope="scope">
<el-button type="primary" size="mini"
@click="showGoodsSkuDttail(scope.row.baseGoodsSkuExtend)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="项目名称" prop="goodsSkuCode" align="center" />
<el-table-column label="商品名称" prop="title" align="center" />
<el-table-column label="商品编码" prop="externalCode" align="center" />
<el-table-column label="规格" prop="indexes" align="center" />
<el-table-column label="单位" prop="ownSpec" align="center" />
<el-table-column label="仓库" prop="ownSpec" align="center" />
<el-table-column label="库位" prop="ownSpec" align="center" />
<el-table-column label="销售单价" prop="ownSpec" align="center" />
<el-table-column label="已出数量" prop="ownSpec" 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.actualInCount" clearable placeholder=""
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column label="销售单价" prop="ownSpec" align="center" />
<el-table-column label="备注" align="center" width="220">
<template slot-scope="scope">
<el-input v-model="scope.row.actualInCount" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
</el-form>
<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/goods/goods.js'
import req2 from '@/api/goods/brand.js'
import req3 from '@/api/goods/category.js'
import req4 from '@/api/goods/factory.js'
import req5 from '@/api/goods/unit.js'
import uploadImg from '@/components/uploadFile/uploadImg'
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: {
uploadImg
chooseproducts,
},
data() {
return {
viewState: 1,
listLoading: false,
activeNames: ['1'],
imgList: [],
submitdisabled: false,
formobj: {
"sid": "",
"userSid": window.sessionStorage.getItem('userSid'),
"orgPath": window.sessionStorage.getItem('orgSidPath'),
"goodsName": "",
"goodsCode": "",
"goodsPY": "",
"barCode": "",
"goodsUnitSid": "",
"goodsUnitName": "",
"goodsTypeSid": "",
"goodsTypeName": "",
"indexes": "",
"shelfLife": "",
"brandSid": "",
"brandName": "",
"manufacturerSid": "",
"manufacturerName": "",
"isOriginalFactory": "2",
"isOriginalFactoryValue": "",
"sortNo": "",
"skuRemarks": "",
"inventoryAlertUpperLimit": "",
"inventoryAlertLowerLimit": "",
"isLockingSalesPrice": "2",
"isLockingSalesPriceValue": "",
"minimumSalesPrice": "",
"standardPurchasePrice": "",
"agencyPrice": "",
"picPath": []
"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": [
]
},
brandList: [],
cateList: [],
facturerList: [],
unitNameList: [],
receivePerList: [],
warehouseList: [],
warehouseRackList: [],
rules: {
goodsName: [{
createByName: [{
required: true,
message: '商品名称不能为空',
message: '制单人不能为空',
trigger: 'blur'
}],
goodsCode: [{
deptName: [{
required: true,
message: '商品编码不能为空',
message: '制单部门不能为空',
trigger: 'blur'
}],
goodsUnitName: [{
required: true,
message: '请选择计量单位',
trigger: 'change'
}],
goodsTypeName: [{
createTime: [{
required: true,
message: '请选择商品类别',
trigger: 'change'
}],
brandName: [{
required: true,
message: '请选择商品品牌',
trigger: 'change'
}],
manufacturerName: [{
required: true,
message: '请选择商品厂家',
trigger: 'change'
}],
sortNo: [{
required: true,
message: '商品排序不能为空',
trigger: 'blur'
}],
inventoryAlertUpperLimit: [{
required: true,
message: '商品上限不能为空',
message: '制单日期不能为空',
trigger: 'blur'
}],
inventoryAlertLowerLimitt: [{
warehouseManager: [{
required: true,
message: '商品下限不能为空',
trigger: 'blur'
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
selectIsOriginalFactory(val) {
console.log('selectIsOriginalFactory》》》》', val)
this.formobj.isOriginalFactoryValue = val == '1' ? '是' : '否'
console.log("aaaaaa", this.receivePerList);
},
selectIsLockingSalesPrice(val) {
console.log('selectIsLockingSalesPrice》》》》', val)
}
})
this.formobj.isLockingSalesPriceValue = val == '1' ? '是' : '否'
this.getWarehouseList()
},
initData() {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
userSid: window.sessionStorage.getItem('userSid'),
menuUrl: this.$route.path
}
req2.getAllBrand(parpams).then(resp => {
this.brandList = resp.data
})
req3.getAllType(parpams).then(resp => {
this.cateList = resp.data
})
req4.getAllFacturer(parpams).then(resp => {
this.facturerList = resp.data
})
req5.getAllUnit(parpams).then(resp => {
this.unitNameList = resp.data
})
},
backData(value) {
console.log('backData》》》》', value)
console.log('imgList', this.imgList)
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.picPath = this.imgList
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.saveGoods(this.formobj)
req.saveBill(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
@ -381,102 +401,108 @@
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
"sid": "",
"userSid": window.sessionStorage.getItem('userSid'),
"orgPath": window.sessionStorage.getItem('orgSidPath'),
"goodsName": "",
"goodsCode": "",
"goodsPY": "",
"barCode": "",
"goodsUnitSid": "",
"goodsUnitName": "",
"goodsTypeSid": "",
"goodsTypeName": "",
"indexes": "",
"shelfLife": "",
"brandSid": "",
"brandName": "",
"manufacturerSid": "",
"manufacturerName": "",
"isOriginalFactory": "2",
"isOriginalFactoryValue": "",
"sortNo": "",
"skuRemarks": "",
"inventoryAlertUpperLimit": "",
"inventoryAlertLowerLimit": "",
"isLockingSalesPrice": "2",
"isLockingSalesPriceValue": "",
"minimumSalesPrice": "",
"standardPurchasePrice": "",
"agencyPrice": "",
"picPath": []
}
this.imgList = []
this.$emit('doback')
},
showAdd() {
// var sid = require('uuid').v1()
// console.log('>>>>>>>>>showAdd', sid)
// this.formobj.sid = sid
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
},
showEdit(row) {
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
},
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
getWarehouseList() {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req.initGoods(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
req2.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data
for (var i = 0; i < resp.data.picPath.length; i++) {
var item = resp.data.picPath[i]
this.imgList.push({
url: item.url
})
}
}
})
.catch(e => {
this.formobj = row
})
},
selectBrandChange(val) {
const choose = this.brandList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectBrandChange', choose)
this.formobj.brandSid = choose[0].sid
this.formobj.brandName = choose[0].brandName
console.log("aaaaaa", this.warehouseList);
}
})
},
selectCateChange(val) {
const choose = this.cateList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectCateChange', choose)
this.formobj.goodsTypeSid = choose[0].sid
this.formobj.goodsTypeName = choose[0].goodsTypeName
getWarehouseAreaList(sid) {
var query = {
ckSid: sid
}
req2.getWarehouseareas(query).then((res) => {
if (res.success) {
this.warehouseRackList = res.data
console.log("bbbbb", this.warehouseRackList);
}
})
},
selectfacturerChange(val) {
const choose = this.facturerList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectfacturerChange', choose)
this.formobj.manufacturerSid = choose[0].sid
this.formobj.manufacturerName = choose[0].manufacturerName
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 = ''
},
selectunitNameChange(val) {
const choose = this.unitNameList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectunitNameChange', choose)
this.formobj.goodsUnitSid = choose[0].sid
this.formobj.goodsUnitName = choose[0].unitName
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
}
}
}
}

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

@ -2,9 +2,9 @@
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>选择商品</div>
<div>选择维修工单</div>
<div>
<el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button>
<!-- <el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button> -->
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
@ -13,14 +13,22 @@
<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 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.goodsSkuCode" placeholder="" clearable/>
<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.manufacturerName" placeholder="" clearable />
<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;">
@ -30,24 +38,33 @@
</div>
</div>
<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>
<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 :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"/>
<div class="tit" />
<!-- 翻页 -->
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current"
:limit.sync="listQuery.size" class="pagination" @pagination="getList" />
</div>
</div>
</div>
@ -55,110 +72,134 @@
</template>
<script>
import Pagination from '@/components/pagination'
import { getInventoryList } from '@/api/Common/dictcommons'
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: 5,
params: {
createOrgSid: '',
goodsSpuName: '',
goodsSkuCode: '',
manufacturerName: ''
},
total: 0
}
}
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
export default {
name: 'SelectVehicle',
components: {
Pagination
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
getInventoryList(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
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
}
})
},
//
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')
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>

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

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

@ -322,7 +322,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
@ -657,7 +660,7 @@
this.$refs['form_obj'].clearValidate()
})
this.getWarehouseList()
// this.getWarehouseList()
this.getsupplierLust()
// this.getOrgPathSid()
var params = {

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

@ -261,7 +261,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/inStorage/inStorageAdd.vue

@ -919,7 +919,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

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

@ -9,11 +9,11 @@
</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.goodsID" placeholder="" clearable />
<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="选择日期"
<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>
@ -22,7 +22,7 @@
</el-date-picker>
</el-form-item>
<el-form-item label="维修工单编号">
<el-input v-model="queryParams.params.vinNo" placeholder="" clearable />
<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="请选择"
@ -32,10 +32,10 @@
</el-select>
</el-form-item>
<el-form-item label="操作人">
<el-input v-model="queryParams.params.billNo" placeholder="" clearable />
<el-input v-model="queryParams.params.createByName" placeholder="" clearable />
</el-form-item>
<el-form-item label="经办人">
<el-input v-model="queryParams.params.billNo" placeholder="" clearable />
<el-input v-model="queryParams.params.warehouseManager" placeholder="" clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
@ -57,17 +57,17 @@
<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.sid)">
{{ scope.row.confirmResult }}
<div style="color: #1890FF; text-decoration: underline ;" @click="showResult(scope.row)">
{{ scope.row.billNo }}
</div>
</template>
</el-table-column>
<el-table-column prop="goodsSpuName" label="单据时间"align="center" />
<el-table-column prop="goodsSkuCode" label="维修工单编号" align="center" />
<el-table-column prop="vinNo" label="业务类型" align="center" />
<el-table-column prop="manufacturerName" label="操作人" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="经办人" align="center" />
<el-table-column prop="unit" label="备注" align="center" />
<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>
@ -82,26 +82,26 @@
</div>
<!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 -->
<!-- <divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" /> -->
<!-- <divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList" /> -->
<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>
import req from '@/api/storage/oldPartsInAndOutStorage.js'
import req from '@/api/storage/maintenanceInOrOutBound.js'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
// import divAdd from './oldPartsInStorageAdd.vue'
// import divInfo from './oldPartsInvertoryInfo.vue'
import divOutInfo from './maintenanceOutboundInfo.vue'
import divReturnInfo from './maintenanceReturnBoundInfo.vue'
export default {
components: {
ButtonBar,
Pagination,
pageye,
// divAdd,
// divInfo
divOutInfo,
divReturnInfo
},
data() {
return {
@ -268,6 +268,18 @@
}
},
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()

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>

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

@ -0,0 +1,270 @@
<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.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 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

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

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

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

@ -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

10
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheck/AsBusclaimCheckQuery.java

@ -15,4 +15,14 @@ public class AsBusclaimCheckQuery implements Query {
private static final long serialVersionUID = -5046272268264726533L;
@ApiModelProperty("维修工单号")
private String repairBillNo;
@ApiModelProperty("差异金额开始范围")
private String cyStartMoney;
@ApiModelProperty("差异金额结束范围")
private String cyEndMoney;
@ApiModelProperty("组织全路径")
private String orgPath;
private String userSid;
@ApiModelProperty("菜单url")
private String menuUrl;
}

3
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheck/AsBusclaimCheckVo.java

@ -72,4 +72,7 @@ public class AsBusclaimCheckVo {
//合计
private String all2;
//差异合计
private String all3;
}

6
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApply.java

@ -19,9 +19,9 @@ public class AsBusclaimCheckApply extends BaseEntity {
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请部门")
private String createDeptName;
private String deptSid;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("附件")
private String file;
@ApiModelProperty("创建组织sid")

36
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDetailsVo.java

@ -1,11 +1,13 @@
package com.yxt.anrui.as.api.asbusclaimcheckapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailVo;
import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -19,17 +21,37 @@ public class AsBusclaimCheckApplyDetailsVo {
private String sid;
private String createBySid;
private String createByName;
// private String orgPath;
private String createTime;
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请部门")
private String createDeptName;
private String deptSid;
@ApiModelProperty("申请部门名称")
private String deptName;
private List<String> fileList = new ArrayList<>();
private List<AsBusclaimCheckApplyFile> fileList = new ArrayList<>();
private String remarks;
private List<AsBusclaimCheckApplyDetailVo> detailList = new ArrayList<>();
private String billNo;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("办结日期")
private String closeDate;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("任务iD")
private String taskId;
@ApiModelProperty("环节iD")
private String taskDefKey;
@ApiModelProperty("流程状态")
private String nodeState;
private List<AsBusclaimCheckApplyDetailVo> detailsList = new ArrayList<>();
}

29
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDto.java

@ -18,17 +18,36 @@ public class AsBusclaimCheckApplyDto {
private String sid;
private String createBySid;
private String createByName;
// private String orgPath;
private String createTime;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请部门")
private String createDeptName;
private String deptSid;
@ApiModelProperty("申请部门名称")
private String deptName;
private List<String> fileList = new ArrayList<>();
private List<AsBusclaimCheckApplyFile> fileList = new ArrayList<>();
private String remarks;
private String billNo;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("办结日期")
private String closeDate;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("任务iD")
private String taskId;
@ApiModelProperty("环节iD")
private String taskDefKey;
@ApiModelProperty("流程状态")
private String nodeState;
private List<AsBusclaimCheckApplyDetailDto> detailsList = new ArrayList<>();
}

18
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyFile.java

@ -0,0 +1,18 @@
package com.yxt.anrui.as.api.asbusclaimcheckapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class AsBusclaimCheckApplyFile {
private String url;
}

8
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyQuery.java

@ -15,8 +15,8 @@ public class AsBusclaimCheckApplyQuery implements Query {
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请部门")
private String createDeptName;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("单据编号")
@ -30,6 +30,8 @@ public class AsBusclaimCheckApplyQuery implements Query {
@ApiModelProperty("办结日期结束时间")
private String closeDateEnd;
private String createBySid;
private String orgPath;
private String userSid;
@ApiModelProperty("菜单url")
private String menuUrl;
}

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyVo.java

@ -22,8 +22,8 @@ public class AsBusclaimCheckApplyVo {
private String billNo;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请部门")
private String createDeptName;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请日期")

7
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetail.java

@ -41,8 +41,9 @@ public class AsBusclaimCheckApplyDetail extends BaseEntity {
private BigDecimal claimOtherAmount;
@ApiModelProperty("预留")
private BigDecimal reserved;
@ApiModelProperty("原因")
private String reason;
@ApiModelProperty("原因key")
private String reasonKey;
@ApiModelProperty("原因value")
private String reasonValue;
}

6
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailDto.java

@ -37,6 +37,8 @@ public class AsBusclaimCheckApplyDetailDto {
private String claimOtherAmount;
@ApiModelProperty("预留")
private String reserved;
@ApiModelProperty("原因")
private String reason;
@ApiModelProperty("原因key")
private String reasonKey;
@ApiModelProperty("原因value")
private String reasonValue;
}

12
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailVo.java

@ -37,8 +37,10 @@ public class AsBusclaimCheckApplyDetailVo {
private String claimOtherAmount;
@ApiModelProperty("预留")
private String reserved;
@ApiModelProperty("原因")
private String reason;
@ApiModelProperty("原因key")
private String reasonKey;
@ApiModelProperty("原因value")
private String reasonValue;
//工单:工时费
private String hourAmount1;
@ -75,4 +77,10 @@ public class AsBusclaimCheckApplyDetailVo {
//合计
private String all2;
//差异合计
private String all3;
//差异调整合计
private String all4;
}

6
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/AsBusclaimInvoiceBill.java

@ -18,9 +18,9 @@ public class AsBusclaimInvoiceBill extends BaseEntity {
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请部门")
private String createDeptName;
private String deptSid;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("开票sid")
private String invoiceSid;
@ApiModelProperty("开票名称")

6
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/AsBusclaimInvoiceBillDetailsVo.java

@ -38,9 +38,9 @@ public class AsBusclaimInvoiceBillDetailsVo {
private String nodeState;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请部门")
private String createDeptName;
private String deptSid;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("开票sid")
private String invoiceSid;
@ApiModelProperty("开票名称")

6
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/AsBusclaimInvoiceBillDto.java

@ -32,9 +32,9 @@ public class AsBusclaimInvoiceBillDto {
private String nodeState;
@ApiModelProperty("申请部门sid")
private String createDeptSid;
@ApiModelProperty("申请部门")
private String createDeptName;
private String deptSid;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("开票sid")
private String invoiceSid;
@ApiModelProperty("开票名称")

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/AsBusclaimInvoiceBillQuery.java

@ -15,8 +15,8 @@ public class AsBusclaimInvoiceBillQuery implements Query {
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请部门")
private String createDeptName;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("单据编号")

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/AsBusclaimInvoiceBillVo.java

@ -21,8 +21,8 @@ public class AsBusclaimInvoiceBillVo {
private String billNo;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请部门")
private String createDeptName;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("申请人")
private String createByName;
@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")

37
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheck/AsBusclaimCheckMapper.xml

@ -2,13 +2,36 @@
<!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.asbusclaimcheck.AsBusclaimCheckMapper">
<select id="listPage" resultType="com.yxt.anrui.as.api.asbusclaimcheck.AsBusclaimCheckVo">
select ac.repairBillNo,
ac.vehMark,
ac.vinNo,
ac.billNo,
ac.billInvoiceSid,
ac.billInvoiceDetailSid
from as_busclaim_check ac
SELECT
ac.repairBillNo,
ac.vehMark,
ac.vinNo,
ac.billNo,
ac.billInvoiceSid,
ac.billInvoiceDetailSid,
IFNULL(abb.hourAmount,0) AS hourAmount1,
IFNULL(abb.goodsAmount,0) AS goodsAmount1,
IFNULL(abb.outAmount,0) AS claimOutAmount1,
IFNULL(abb.subsidyAmount,0) AS claimSubsidyAmount1,
IFNULL(abb.otherAmount,0) AS claimOtherAmount1,
(COALESCE(abb.hourAmount, 0) + COALESCE(abb.goodsAmount, 0) + COALESCE(abb.outAmount, 0) + COALESCE(abb.subsidyAmount, 0) + COALESCE(abb.otherAmount, 0)) AS all1,
SUM(aibd.`claimHourAmount`) AS claimHourAmount2,
SUM(aibd.`claimGoodsAmount`) AS claimGoodsAmount2,
SUM(aibd.`claimOutAmount`) AS claimOutAmount2,
SUM(aibd.`claimSubsidyAmount`) AS claimSubsidyAmount2,
SUM(aibd.`claimOtherAmount`) AS claimOtherAmount2,
SUM(COALESCE(aibd.`claimHourAmount`, 0) + COALESCE(aibd.`claimGoodsAmount`, 0) + COALESCE(aibd.`claimOutAmount`, 0) + COALESCE(aibd.`claimSubsidyAmount`, 0) + COALESCE(aibd.`claimOtherAmount`, 0)) AS all2,
SUM(COALESCE(aibd.`claimHourAmount`, 0) + COALESCE(aibd.`claimGoodsAmount`, 0) + COALESCE(aibd.`claimOutAmount`, 0) + COALESCE(aibd.`claimSubsidyAmount`, 0) + COALESCE(aibd.`claimOtherAmount`, 0)) - (COALESCE(abb.hourAmount, 0) + COALESCE(abb.goodsAmount, 0) + COALESCE(abb.outAmount, 0) + COALESCE(abb.subsidyAmount, 0) + COALESCE(abb.otherAmount, 0)) AS all3
FROM
as_busclaim_check ac
LEFT JOIN as_busclaim_invoice_bill ab
ON ac.billInvoiceSid = ab.sid
LEFT JOIN as_busrepair_bill abb
ON ac.repairBillNo = abb.`billNo`
LEFT JOIN as_busclaim_invoice_bill_detail aibd
ON ac.billInvoiceSid = aibd.billSid
LEFT JOIN anrui_portal.sys_organization AS s
ON ab.deptSid = s.sid
<where>
${ew.sqlSegment}
</where>

78
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheck/AsBusclaimCheckService.java

@ -12,8 +12,12 @@ import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBill;
import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillQuery;
import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillVo;
import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetail;
import com.yxt.anrui.as.api.asbusrepairbill.AsBusrepairBill;
import com.yxt.anrui.as.biz.asbusclaimbill.AsBusclaimBillService;
import com.yxt.anrui.as.biz.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailService;
import com.yxt.anrui.as.biz.asbusrepairbill.AsBusrepairBillService;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
@ -23,6 +27,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;
@ -35,9 +40,13 @@ import java.util.List;
public class AsBusclaimCheckService extends MybatisBaseService<AsBusclaimCheckMapper, AsBusclaimCheck> {
@Autowired
private AsBusclaimBillService asBusclaimBillService;
private AsBusrepairBillService asBusrepairBillService;
@Autowired
private AsBusclaimInvoiceBillDetailService asBusclaimInvoiceBillDetailService;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private AsBusclaimBillService asBusclaimBillService;
public ResultBean saveCheck(List<AsBusclaimCheckDto> list) {
ResultBean rb = ResultBean.fireFail();
@ -56,11 +65,53 @@ public class AsBusclaimCheckService extends MybatisBaseService<AsBusclaimCheckMa
public PagerVo<AsBusclaimCheckVo> listPage(PagerQuery<AsBusclaimCheckQuery> pagerQuery) {
AsBusclaimCheckQuery query = pagerQuery.getParams();
QueryWrapper<AsBusclaimCheck> qw = new QueryWrapper<>();
//========================================数据授权开始
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("ab.createBySid", query.getUserSid());
} else {
PagerVo<AsBusclaimCheckVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<AsBusclaimCheckVo> p = new PagerVo<>();
return p;
}
}
//ToDo:添加查询条件
if (StringUtils.isNotBlank(query.getRepairBillNo())) {
qw.like("ac.repairBillNo", query.getRepairBillNo());
}
if (StringUtils.isNotBlank(query.getCyStartMoney()) && StringUtils.isNotBlank(query.getCyEndMoney())) {
qw.groupBy("ac.repairBillNo");
qw.having("all3 >= {0}", query.getCyStartMoney()).having("all3 <= {0}", query.getCyEndMoney());
}
IPage<AsBusclaimCheck> page = PagerUtil.queryToPage(pagerQuery);
IPage<AsBusclaimCheckVo> pagging = baseMapper.listPage(page, qw);
List<AsBusclaimCheckVo> records = pagging.getRecords();
@ -68,23 +119,12 @@ public class AsBusclaimCheckService extends MybatisBaseService<AsBusclaimCheckMa
if (!records.isEmpty()) {
for (int i = 0; i < records.size(); i++) {
AsBusclaimCheckVo asBusclaimCheckVo = records.get(i);
String billNo = asBusclaimCheckVo.getBillNo();
AsBusclaimBill asBusclaimBill = asBusclaimBillService.selectByBillNo(billNo);
if (asBusclaimBill != null) {
asBusclaimCheckVo.setHourAmount1(asBusclaimBill.getHourAmount().toString());
asBusclaimCheckVo.setGoodsAmount1(asBusclaimBill.getGoodsAmount().toString());
asBusclaimCheckVo.setClaimOutAmount1(asBusclaimBill.getClaimOutAmount().toString());
asBusclaimCheckVo.setClaimSubsidyAmount1(asBusclaimBill.getClaimSubsidyAmount().toString());
asBusclaimCheckVo.setClaimOtherAmount1(asBusclaimBill.getClaimOtherAmount().toString());
}
AsBusclaimInvoiceBillDetail asBusclaimInvoiceBillDetail = asBusclaimInvoiceBillDetailService.fetchBySid(asBusclaimCheckVo.getBillInvoiceDetailSid());
if (asBusclaimInvoiceBillDetail != null) {
asBusclaimCheckVo.setClaimHourAmount2(asBusclaimInvoiceBillDetail.getClaimHourAmount().toString());
asBusclaimCheckVo.setClaimGoodsAmount2(asBusclaimInvoiceBillDetail.getClaimGoodsAmount().toString());
asBusclaimCheckVo.setClaimOutAmount2(asBusclaimInvoiceBillDetail.getClaimOutAmount().toString());
asBusclaimCheckVo.setClaimSubsidyAmount2(asBusclaimInvoiceBillDetail.getClaimSubsidyAmount().toString());
asBusclaimCheckVo.setClaimOtherAmount2(asBusclaimInvoiceBillDetail.getClaimOtherAmount().toString());
}
AsBusrepairBill asBusrepairBill = asBusrepairBillService.selectByBillNo(asBusclaimCheckVo.getRepairBillNo());
List<String> billNos = asBusclaimBillService.selectByRepairBillSid(asBusrepairBill.getSid());
asBusclaimCheckVo.setCount(String.valueOf(billNos.size()));
int ykpSpdCount = asBusclaimInvoiceBillDetailService.selectYkpSpdCount(asBusrepairBill.getBillNo());
asBusclaimCheckVo.setCount1(String.valueOf(ykpSpdCount));
asBusclaimCheckVo.setCount2(String.valueOf(billNos.size() - ykpSpdCount));
}
}
PagerVo<AsBusclaimCheckVo> p = PagerUtil.pageToVo(pagging, null);

2
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyMapper.java

@ -23,4 +23,6 @@ public interface AsBusclaimCheckApplyMapper extends BaseMapper<AsBusclaimCheckAp
int selectBySid(String join);
int updateFlowFiled(Map<String, Object> beanToMap);
String selectNum(String billNo);
}

19
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyMapper.xml

@ -6,22 +6,23 @@
a.nodeState,
a.billNo,
a.useOrgName,
a.createDeptName,
a.deptName,
a.createByName,
DATE_FORMAT(a.createTime, '%Y-%m-%d') as createTime,
a.closeDate,
a.file
from as_busclaim_check_apply a
LEFT JOIN anrui_portal.sys_organization AS s ON a.deptSid = s.sid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectBySid" resultType="int">
select count(*)
from as_busclaim_check_apply
where length(nodeState) > 0
and find_in_set(sid, #{list})
SELECT COUNT(*)
FROM as_busclaim_check_apply
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
<update id="updateFlowFiled">
@ -41,4 +42,12 @@
</if>
WHERE sid = #{sid}
</update>
<select id="selectNum" resultType="java.lang.String">
select RIGHT (billNo, 4)
from as_busclaim_check_apply
where billNo LIKE concat(#{billNo}, '%')
order by billNo desc
limit 1
</select>
</mapper>

125
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyService.java

@ -7,15 +7,19 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.as.api.asbusclaimbill.AsBusclaimBill;
import com.yxt.anrui.as.api.asbusclaimcheck.AsBusclaimCheckVo;
import com.yxt.anrui.as.api.asbusclaimcheckapply.*;
import com.yxt.anrui.as.api.asbusclaimcheckapply.flowable.*;
import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailDto;
import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailVo;
import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetail;
import com.yxt.anrui.as.api.asbusrepairbill.AsBusrepairBill;
import com.yxt.anrui.as.biz.asbusclaimbill.AsBusclaimBillService;
import com.yxt.anrui.as.biz.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailMapper;
import com.yxt.anrui.as.biz.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailService;
import com.yxt.anrui.as.biz.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailService;
import com.yxt.anrui.as.biz.asbusrepairbill.AsBusrepairBillService;
import com.yxt.anrui.as.feign.base.billno.Rule;
import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables;
import com.yxt.anrui.as.feign.flowable.flow.FlowableFeign;
import com.yxt.anrui.as.feign.flowable.flow.ProcDefEnum;
@ -28,8 +32,10 @@ import com.yxt.anrui.as.feign.flowable.flowtask.LatestTaskVo;
import com.yxt.anrui.as.feign.message.MessageFeign;
import com.yxt.anrui.as.feign.message.MessageFlowVo;
import com.yxt.anrui.as.feign.message.MessageFlowableQuery;
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.sysuser.SysUserFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -41,6 +47,7 @@ import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@ -60,7 +67,7 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh
@Autowired
private AsBusclaimCheckApplyDetailMapper asBusclaimCheckApplyDetailMapper;
@Autowired
private AsBusclaimBillService asBusclaimBillService;
private AsBusrepairBillService asBusrepairBillService;
@Autowired
private AsBusclaimInvoiceBillDetailService asBusclaimInvoiceBillDetailService;
@Autowired
@ -73,19 +80,60 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private SysUserFeign sysUserFeign;
public PagerVo<AsBusclaimCheckApplyVo> listPage(PagerQuery<AsBusclaimCheckApplyQuery> pagerQuery) {
AsBusclaimCheckApplyQuery query = pagerQuery.getParams();
QueryWrapper<AsBusclaimCheckApply> qw = new QueryWrapper<>();
//========================================数据授权开始
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<AsBusclaimCheckApplyVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<AsBusclaimCheckApplyVo> p = new PagerVo<>();
return p;
}
}
//ToDo:添加查询条件
//分公司
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("a.useOrgName", query.getUseOrgName());
}
//申请部门
if (StringUtils.isNotBlank(query.getCreateDeptName())) {
qw.like("a.createDeptName", query.getCreateDeptName());
if (StringUtils.isNotBlank(query.getDeptName())) {
qw.like("a.deptName", query.getDeptName());
}
//申请人
if (StringUtils.isNotBlank(query.getCreateByName())) {
@ -124,36 +172,54 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh
public ResultBean<String> saveOrUpdateBill(AsBusclaimCheckApplyDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(dto.getUseOrgSid()).getData();
dto.setUseOrgSid(dto.getUseOrgSid());
dto.setUseOrgName(organizationVo.getName());
dto.setCreateOrgSid(dto.getUseOrgSid());
if (StringUtils.isBlank(sid)) {
AsBusclaimCheckApply asBusclaimCheckApply = new AsBusclaimCheckApply();
//生成单据编号
String billNo = "";
String date = DateUtil.format(DateUtil.date(), "yyyyMM");
billNo = "SPTZ" + organizationVo.getOrgCode() + date;
String i = baseMapper.selectNum(billNo);
if (StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue());
} else {
billNo = Rule.getBillNo(billNo, 0);
}
dto.setBillNo(billNo);
BeanUtil.copyProperties(dto, asBusclaimCheckApply, "sid");
asBusclaimCheckApply.setCreateBySid(dto.getCreateBySid());
sid = asBusclaimCheckApply.getSid();
List<String> fileList = dto.getFileList();
List<AsBusclaimCheckApplyFile> fileList = dto.getFileList();
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
String files = String.join(",", fileList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
asBusclaimCheckApply.setFile(files);
String url = "";
for (AsBusclaimCheckApplyFile asBusclaimCheckApplyFile : fileList) {
String filePath = asBusclaimCheckApplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), "");
url = url + filePath + ",";
}
asBusclaimCheckApply.setFile(url);
List<AsBusclaimCheckApplyDetailDto> detailList = dto.getDetailsList();
detailList.removeAll(Collections.singleton(null));
if (!detailList.isEmpty()) {
asBusclaimCheckApplyDetailService.saveOrUpdateDetails(sid, detailList);
}
asBusclaimCheckApply.setNodeState("待提交");
baseMapper.insert(asBusclaimCheckApply);
} else {
AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(sid);
if (asBusclaimCheckApply == null) {
return rb.setMsg("该单据不存在");
}
BeanUtil.copyProperties(dto, asBusclaimCheckApply, "sid");
List<String> fileList = dto.getFileList();
List<AsBusclaimCheckApplyFile> fileList = dto.getFileList();
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
String files = String.join(",", fileList).replaceAll(fileUploadComponent.getUrlPrefix(), "");
asBusclaimCheckApply.setFile(files);
String url = "";
for (AsBusclaimCheckApplyFile asBusclaimCheckApplyFile : fileList) {
String filePath = asBusclaimCheckApplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), "");
url = url + filePath + ",";
}
asBusclaimCheckApply.setFile(url);
List<AsBusclaimCheckApplyDetailDto> detailList = dto.getDetailsList();
detailList.removeAll(Collections.singleton(null));
if (!detailList.isEmpty()) {
@ -189,21 +255,27 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh
BeanUtil.copyProperties(asBusclaimCheckApply, asBusclaimCheckApplyDetailsVo);
if (StringUtils.isNotBlank(asBusclaimCheckApply.getFile())) {
List<String> fileList = Arrays.asList(asBusclaimCheckApply.getFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
asBusclaimCheckApplyDetailsVo.setFileList(fileList);
List<AsBusclaimCheckApplyFile> asBusclaimCheckApplyFiles = new ArrayList<>();
for (String s : fileList) {
AsBusclaimCheckApplyFile asBusclaimCheckApplyFile = new AsBusclaimCheckApplyFile();
asBusclaimCheckApplyFile.setUrl(s);
asBusclaimCheckApplyFiles.add(asBusclaimCheckApplyFile);
}
asBusclaimCheckApplyDetailsVo.setFileList(asBusclaimCheckApplyFiles);
}
List<AsBusclaimCheckApplyDetailVo> detailList = asBusclaimCheckApplyDetailService.selectDetails(sid);
detailList.removeAll(Collections.singleton(null));
if (!detailList.isEmpty()) {
for (int i = 0; i < detailList.size(); i++) {
AsBusclaimCheckApplyDetailVo asBusclaimCheckApplyDetailVo = detailList.get(i);
String billNo = asBusclaimCheckApplyDetailVo.getClaimBillNo();
AsBusclaimBill asBusclaimBill = asBusclaimBillService.selectByBillNo(billNo);
if (asBusclaimBill != null) {
asBusclaimCheckApplyDetailVo.setHourAmount1(asBusclaimBill.getHourAmount().toString());
asBusclaimCheckApplyDetailVo.setGoodsAmount1(asBusclaimBill.getGoodsAmount().toString());
asBusclaimCheckApplyDetailVo.setClaimOutAmount1(asBusclaimBill.getClaimOutAmount().toString());
asBusclaimCheckApplyDetailVo.setClaimSubsidyAmount1(asBusclaimBill.getClaimSubsidyAmount().toString());
asBusclaimCheckApplyDetailVo.setClaimOtherAmount1(asBusclaimBill.getClaimOtherAmount().toString());
AsBusrepairBill asBusrepairBill = asBusrepairBillService.selectByBillNo(asBusclaimCheckApplyDetailVo.getRepairBillNo());
if (asBusrepairBill != null) {
asBusclaimCheckApplyDetailVo.setHourAmount1("0");
asBusclaimCheckApplyDetailVo.setGoodsAmount1("0");
asBusclaimCheckApplyDetailVo.setClaimOutAmount1("0");
asBusclaimCheckApplyDetailVo.setClaimSubsidyAmount1("0");
asBusclaimCheckApplyDetailVo.setClaimOtherAmount1("0");
asBusclaimCheckApplyDetailVo.setAll1("0");
}
AsBusclaimInvoiceBillDetail asBusclaimInvoiceBillDetail = asBusclaimInvoiceBillDetailService.fetchBySid(asBusclaimCheckApplyDetailVo.getBillInvoiceDetailSid());
if (asBusclaimInvoiceBillDetail != null) {
@ -212,9 +284,12 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh
asBusclaimCheckApplyDetailVo.setClaimOutAmount2(asBusclaimInvoiceBillDetail.getClaimOutAmount().toString());
asBusclaimCheckApplyDetailVo.setClaimSubsidyAmount2(asBusclaimInvoiceBillDetail.getClaimSubsidyAmount().toString());
asBusclaimCheckApplyDetailVo.setClaimOtherAmount2(asBusclaimInvoiceBillDetail.getClaimOtherAmount().toString());
asBusclaimCheckApplyDetailVo.setAll2(asBusclaimInvoiceBillDetail.getClaimHourAmount().add(asBusclaimInvoiceBillDetail.getClaimGoodsAmount()).add(asBusclaimInvoiceBillDetail.getClaimOutAmount()).add(asBusclaimInvoiceBillDetail.getClaimSubsidyAmount()).add(asBusclaimInvoiceBillDetail.getClaimOtherAmount()).toString());
}
asBusclaimCheckApplyDetailVo.setAll3(new BigDecimal(asBusclaimCheckApplyDetailVo.getAll2()).subtract(new BigDecimal(asBusclaimCheckApplyDetailVo.getAll1())).toString());
asBusclaimCheckApplyDetailVo.setAll4(new BigDecimal(asBusclaimCheckApplyDetailVo.getClaimHourAmount()).add(new BigDecimal(asBusclaimCheckApplyDetailVo.getClaimGoodsAmount()).add(new BigDecimal(asBusclaimCheckApplyDetailVo.getClaimOutAmount()).add(new BigDecimal(asBusclaimCheckApplyDetailVo.getClaimSubsidyAmount()).add(new BigDecimal(asBusclaimCheckApplyDetailVo.getClaimOtherAmount()).subtract(new BigDecimal(asBusclaimCheckApplyDetailVo.getReserved())))))).toString());
}
asBusclaimCheckApplyDetailsVo.setDetailList(detailList);
asBusclaimCheckApplyDetailsVo.setDetailsList(detailList);
}
return rb.success().setData(asBusclaimCheckApplyDetailsVo);
}
@ -243,7 +318,7 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh
appMap.put("sid", businessSid);
variables.put("app", appMap);
//用户的部门全路径sid
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimCheckApply.getCreateDeptSid()).getData();
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimCheckApply.getDeptSid()).getData();
if (sysOrganization != null) {
bv.setOrgSidPath(sysOrganization.getOrgSidPath());
}
@ -336,7 +411,7 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimCheckApply.getCreateDeptSid()).getData();
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimCheckApply.getDeptSid()).getData();
if (sysOrganization != null) {
bv.setOrgSidPath(sysOrganization.getOrgSidPath());
}

3
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailMapper.xml

@ -20,7 +20,8 @@
a.claimOtherAmount,
a.repairBillNo,
a.reserved,
a.reason,
a.reasonKey,
a.reasonValue,
a.claimBillNo,
a.billInvoiceSid,
a.billInvoiceDetailSid

4
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillMapper.xml

@ -6,7 +6,7 @@
a.nodeState,
a.billNo,
a.useOrgName,
a.createDeptName,
a.deptName,
a.createByName,
DATE_FORMAT(a.createTime, '%Y-%m-%d') as createTime,
a.closeDate,
@ -52,7 +52,7 @@
invoiceValue
FROM
as_busclaim_invoice_bill
WHERE createDeptSid = #{deptSid}
WHERE deptSid = #{deptSid}
AND nodeState = '已办结'
ORDER BY createTime DESC
LIMIT 1

8
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebill/AsBusclaimInvoiceBillService.java

@ -103,8 +103,8 @@ public class AsBusclaimInvoiceBillService extends MybatisBaseService<AsBusclaimI
qw.like("a.useOrgName", query.getUseOrgName());
}
//申请部门
if (StringUtils.isNotBlank(query.getCreateDeptName())) {
qw.like("a.createDeptName", query.getCreateDeptName());
if (StringUtils.isNotBlank(query.getDeptName())) {
qw.like("a.deptName", query.getDeptName());
}
//申请人
if (StringUtils.isNotBlank(query.getCreateByName())) {
@ -269,7 +269,7 @@ public class AsBusclaimInvoiceBillService extends MybatisBaseService<AsBusclaimI
appMap.put("sid", businessSid);
variables.put("app", appMap);
//用户的部门全路径sid
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimInvoiceBill.getCreateDeptSid()).getData();
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimInvoiceBill.getDeptSid()).getData();
if (sysOrganization != null) {
bv.setOrgSidPath(sysOrganization.getOrgSidPath());
}
@ -361,7 +361,7 @@ public class AsBusclaimInvoiceBillService extends MybatisBaseService<AsBusclaimI
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimInvoiceBill.getCreateDeptSid()).getData();
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimInvoiceBill.getDeptSid()).getData();
if (sysOrganization != null) {
bv.setOrgSidPath(sysOrganization.getOrgSidPath());
}

2
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebilldetail/AsBusclaimInvoiceBillDetailMapper.java

@ -19,4 +19,6 @@ public interface AsBusclaimInvoiceBillDetailMapper extends BaseMapper<AsBusclaim
List<AsBusclaimInvoiceBillDetailVo> selectDetails(String sid);
List<AsBusclaimInvoiceBillDetail> selectByBillSid(String businessSid);
int selectYkpSpdCount(String repairBillNo);
}

10
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebilldetail/AsBusclaimInvoiceBillDetailMapper.xml

@ -29,4 +29,14 @@
from as_busclaim_invoice_bill_detail
where billSid = #{businessSid}
</select>
<select id="selectYkpSpdCount" resultType="int">
SELECT
COUNT(*)
FROM as_busclaim_invoice_bill_detail ad
LEFT JOIN as_busclaim_invoice_bill ab
ON ad.billSid = ab.sid
WHERE ab.`nodeState` = '已办结'
AND ad.repairBillNo = #{repairBillNo}
</select>
</mapper>

4
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaiminvoicebilldetail/AsBusclaimInvoiceBillDetailService.java

@ -34,4 +34,8 @@ public class AsBusclaimInvoiceBillDetailService extends MybatisBaseService<AsBus
public List<AsBusclaimInvoiceBillDetail> selectByBillSid(String businessSid) {
return baseMapper.selectByBillSid(businessSid);
}
public int selectYkpSpdCount(String repairBillNo) {
return baseMapper.selectYkpSpdCount(repairBillNo);
}
}

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

@ -8,6 +8,7 @@ import com.yxt.anrui.as.api.asbusrepairbill.*;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.SitemsVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
@ -39,4 +40,7 @@ public interface AsBusrepairBillMapper extends BaseMapper<AsBusrepairBill> {
List<SitemsVo> selectSitemList(String sourceBillSid);
IPage<AsBusrepairBillPageListVo> billPageList(IPage<AsBusrepairBill> page, @Param(Constants.WRAPPER) QueryWrapper<AsBusrepairBill> qw);
@Select("select * from as_busrepair_bill where billNo = #{billNo}")
AsBusrepairBill selectOneByBillNo(String billNo);
}

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

@ -870,4 +870,8 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
PagerVo<AsBusrepairBillPageListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public AsBusrepairBill selectByBillNo(String billNo) {
return baseMapper.selectOneByBillNo(billNo);
}
}

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

@ -2,26 +2,29 @@
<!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

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

@ -43,10 +43,10 @@ public class AsBusrepairInventorybillRest {
@PostMapping("/quitBill")
@ApiOperation("退库")
ResultBean quitBill(@RequestBody AsBusrepairInventorybillDto dto) {
return asBusrepairInventorybillService.quitBill(dto);
return asBusrepairInventorybillService.newQuitBill(dto);
}
@PostMapping("/details")
@GetMapping("/details")
@ApiOperation("详情")
ResultBean<InventoryBillDetailsVo> details(@RequestParam("sid") String sid) {
return asBusrepairInventorybillService.details(sid);

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

@ -1,6 +1,7 @@
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;
@ -10,14 +11,19 @@ import com.yxt.anrui.as.api.asbusrepairinventorybill.*;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail;
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;
@ -27,6 +33,7 @@ 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;
@ -56,7 +63,10 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
private AsBusrepairBillService asBusrepairBillService;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Resource
private WmsInventoryFeign wmsInventoryFeign;
@Autowired
private SysUserFeign sysUserFeign;
/**
* 维修出/退库分页列表
*
@ -67,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());
}
}
@ -197,6 +246,12 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
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");
@ -220,7 +275,20 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
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();
@ -228,15 +296,73 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
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) {
@ -255,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());

27
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailMapper.xml

@ -15,25 +15,18 @@
</select>
<select id="getDetailsByBillSid"
resultType="com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail">
SELECT
d.*
FROM
as_busrepair_inventorybill AS b
LEFT JOIN as_busrepair_inventorybill_detail AS d ON b.sid = d.billSid
WHERE
b.sourceBillSid = #{busRepairBillSid}
and b.busTypeKey = #{busTypeKey}
SELECT d.*
FROM as_busrepair_inventorybill AS b
LEFT JOIN as_busrepair_inventorybill_detail AS d ON b.sid = d.billSid
WHERE b.sourceBillSid = #{busRepairBillSid}
and b.busTypeKey = #{busTypeKey}
</select>
<select id="getGoodsDetailsByBillSid"
resultType="com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail">
SELECT
d.*
FROM
as_busrepair_inventorybill AS b
LEFT JOIN as_busrepair_inventorybill_detail AS d ON b.sid = d.billSid
WHERE
b.sourceBillSid = #{sid}
GROUP BY
d.goodsID
SELECT d.*
FROM as_busrepair_inventorybill_detail AS d
LEFT JOIN as_busrepair_inventorybill AS b ON b.sid = d.billSid
WHERE b.sourceBillSid = #{sid}
GROUP BY d.goodsID
</select>
</mapper>

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减少
}

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

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

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

@ -36,6 +36,7 @@
wi.goodsSpuName,
wi.goodsSkuTitle,
wi.goodsSkuCode,
wi.goodsSkuSid,
wi.goodsSkuOwnSpec,
wi.unit,
wi.warehouseSid,

13
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());
@ -146,15 +149,19 @@ public class WmsOutBillService extends MybatisBaseService<WmsOutBillMapper, WmsO
}*/
IPage<WmsOutBill> page = PagerUtil.queryToPage(pagerQuery);
IPage<WmsOutBillInventoryVo> pagging = baseMapper.getInventoryList(page, qw);
if (StringUtils.isNotBlank(query.getBusrepairBillSid())) {
if (StringUtils.isNotBlank(query.getBusrepairBillsid())) {
List<WmsOutBillInventoryVo> records = pagging.getRecords();
for (WmsOutBillInventoryVo record : records) {
//维修出入库查询已出库数量
String billSid = query.getBusrepairBillSid();
String billSid = query.getBusrepairBillsid();
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);

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBill.java

@ -21,7 +21,8 @@ public class WmsShelfBill extends BaseEntity {
private String createByName;
@ApiModelProperty("0新建,1已完成")
private Integer billState;
@ApiModelProperty("0新建,1已完成")
private String billStateValue;
private String createOrgSid;
private String useOrgSid;
private String deptSid;

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.wms.biz.inventory.wmsshelfbill.app.AppShelfBillListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -21,4 +22,6 @@ public interface WmsShelfBillMapper extends BaseMapper<WmsShelfBill> {
String selectNum(String goodsId);
String selectCodeNum(String bill);
IPage<AppShelfBillListVo> applistPage(IPage<WmsShelfBill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsShelfBill> qw);
}

15
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.xml

@ -54,4 +54,19 @@
order by id desc
limit 1
</select>
<select id="applistPage" resultType="com.yxt.wms.biz.inventory.wmsshelfbill.app.AppShelfBillListVo">
select wsb.sid shelvesSid,
wsb.billNo shelvesId,
DATE_FORMAT(wsb.createTime, '%Y-%m-%d') as shelvesCreateTime,
wsb.upShelfName shelvesUsers,
wsb.sourceBillNo receivingId,
wsb.billStateValue shelvesState,
r.createByName receivingUser
from wms_shelf_bill wsb
LEFT JOIN wms_receipt_bill as r ON wsb.sourceBillSid = r.sid
LEFT JOIN anrui_portal.sys_organization as s ON wsb.deptSid = s.sid
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

35
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java

@ -159,6 +159,13 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
}
String applyCode = getApplyCode(dto.getCreateOrgSid());
wmsShelfBill.setBillNo(applyCode);
if (StringUtils.isNotBlank(dto.getBillState())) {
if (dto.getBillState().equals("0")){
wmsShelfBill.setBillStateValue("新建");
} else if (dto.getBillState().equals("1")) {
wmsShelfBill.setBillStateValue("完成");
}
}
baseMapper.insert(wmsShelfBill);
} else {
WmsShelfBill wmsShelfBill = fetchBySid(sid);
@ -179,6 +186,13 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
if (!list.isEmpty()) {
wmsShelfBillDetailService.saveShelfDetails(sid, list);
}
if (StringUtils.isNotBlank(dto.getBillState())) {
if (dto.getBillState().equals("0")){
wmsShelfBill.setBillStateValue("新建");
} else if (dto.getBillState().equals("1")) {
wmsShelfBill.setBillStateValue("完成");
}
}
baseMapper.updateById(wmsShelfBill);
}
@ -394,12 +408,21 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
}
public PagerVo<AppShelfBillListVo> applistPage(PagerQuery<AppShelfBillListQuery> pq) {
PagerVo<AppShelfBillListVo> p = new PagerVo<>();
List<AppShelfBillListVo> list = new ArrayList<>();
AppShelfBillListVo v = new AppShelfBillListVo();
v.setSid("222");
list.add(v);
p.setRecords(list);
AppShelfBillListQuery query = pq.getParams();
QueryWrapper<WmsShelfBill> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getUserSid())) {
qw.eq("wsb.upShelfSid",query.getUserSid());
}
//ToDo:添加查询条件
if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("wsb.billNo", query.getName())
.or().like("wsb.sourceBillNo", query.getName())
.or().like("wsb.billStateValue", query.getName())
);
}
IPage<WmsShelfBill> page = PagerUtil.queryToPage(pq);
IPage<AppShelfBillListVo> pagging = baseMapper.applistPage(page, qw);
PagerVo<AppShelfBillListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
}

43
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/app/AppShelfBillListVo.java

@ -10,11 +10,40 @@ import lombok.Data;
*/
@Data
public class AppShelfBillListVo implements Vo {
private String billNo; //单据编号
private String billState;//单据状态
private String receiptBillNo;//收货单号
private String receiptName;//收货人
private String shelName;//上架人
private String time;//日期
private String sid;
/**
* 收货单号
*/
private String receivingId;
/**
* 收货人
*/
private String receivingUser;
/**
* 记录按钮有记录true
*/
private boolean recordBtn;
/**
* 上架按钮上架还有剩余true
*/
private boolean shelvesBtn;
/**
* 上架单创建时间
*/
private String shelvesCreateTime;
/**
* 上架单编号
*/
private String shelvesId;
/**
* 上架单sid
*/
private String shelvesSid;
/**
* 单据状态
*/
private String shelvesState;
/**
* 上架人
*/
private String shelvesUsers;
}

Loading…
Cancel
Save