Browse Source

Merge remote-tracking branch 'origin/master'

master
God 1 year ago
parent
commit
3cc6b3b2cb
  1. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java
  2. 23
      yxt-as-ui/src/api/operation/claimstatement.js
  3. 6
      yxt-as-ui/src/router/index.js
  4. 15
      yxt-as-ui/src/utils/index.js
  5. 378
      yxt-as-ui/src/views/operation/claimstatement/claimstatement.vue
  6. 57
      yxt-as-ui/src/views/storage/deliveryNotice/index.vue
  7. 173
      yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue
  8. 2
      yxt-as-ui/src/views/storage/deliveryNotice/receiptInfo.vue
  9. 69
      yxt-as-ui/src/views/storage/receivingGoods/index.vue
  10. 378
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue
  11. 10
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsInfo.vue
  12. 179
      yxt-as-ui/src/views/storage/receivingGoods/upShelfAddRecord.vue
  13. 14
      yxt-as-ui/src/views/storage/upShelf/index.vue
  14. 131
      yxt-as-ui/src/views/storage/upShelf/upShelfAdd.vue
  15. 24
      yxt-as-ui/src/views/storage/upShelf/upShelfInfo.vue
  16. 10
      yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java
  17. 5
      yxt-pms-biz/src/main/java/com/yxt/pms/feign/wms/wmsansbill/WmsAnsBillDto.java
  18. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBill.java
  19. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java
  20. 37
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillMapper.xml
  21. 7
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillQuery.java
  22. 43
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillService.java
  23. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetail.java
  24. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailMapper.java
  25. 15
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailMapper.xml
  26. 9
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailService.java
  27. 16
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsListDetailsVo.java
  28. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBill.java
  29. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillDto2.java
  30. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillInitVo.java
  31. 9
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.java
  32. 34
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.xml
  33. 7
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillQuery.java
  34. 221
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java
  35. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillVo.java
  36. 24
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetail.java
  37. 7
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java
  38. 17
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml
  39. 8
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailService.java
  40. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java
  41. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java

9
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java

@ -283,7 +283,9 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(record.getActualMoney())) {
applyRecord.setActualMoney(new BigDecimal(record.getActualMoney()));
}
applyRecord.setPayState(Integer.parseInt(record.getPayState()));
if (StringUtils.isNotBlank(record.getPayState())) {
applyRecord.setPayState(Integer.parseInt(record.getPayState()));
}
loanBuckleApplyRecordService.insert(applyRecord);
List<String> historySids = record.getHistorySids();
if (!historySids.isEmpty()) {
@ -329,7 +331,9 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
if (StringUtils.isNotBlank(record.getActualMoney())) {
applyRecord.setActualMoney(new BigDecimal(record.getActualMoney()));
}
applyRecord.setPayState(Integer.parseInt(record.getPayState()));
if (StringUtils.isNotBlank(record.getPayState())) {
applyRecord.setPayState(Integer.parseInt(record.getPayState()));
}
loanBuckleApplyRecordService.insert(applyRecord);
List<String> historySids = record.getHistorySids();
if (!historySids.isEmpty()) {
@ -398,6 +402,7 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
LoanBuckleHistoryRecord record = new LoanBuckleHistoryRecord();
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(r.getRepaymentHistorySid());
if (null != planDetails) {
record.setRecordSid(r.getRepaymentHistorySid());
if (StringUtils.isNotBlank(planDetails.getLoanContractNo())) {
record.setLoanContractNo(planDetails.getLoanContractNo());
}

23
yxt-as-ui/src/api/operation/claimstatement.js

@ -0,0 +1,23 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/as/v1/AsBusclaimBill/listPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
downloadExcel: function() {
return request({
url: '/as/v1/AsBusclaimBill/downloadExcel',
method: 'post',
responseType: 'blob', // 表明返回服务器返回的数据类型
headers: {
'Content-Type': 'application/json'
}
})
}
}

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

@ -110,6 +110,12 @@ export const constantRoutes = [{
name: 'PendingClaim',
meta: { title: '待索赔维修工单', noCache: true }
},
{
path: '/claimstatement/claimstatement',
component: () => import('@/views/operation/claimstatement/claimstatement.vue'),
name: 'ClaimStatement',
meta: { title: '厂家索赔单管理', noCache: true }
},
]
},
{

15
yxt-as-ui/src/utils/index.js

@ -45,7 +45,9 @@ export function parseTime(time, cFormat) {
const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
const value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
if (key === 'a') {
return ['日', '一', '二', '三', '四', '五', '六'][value]
}
return value.toString().padStart(2, '0')
})
return time_str
@ -115,3 +117,14 @@ export function param2Obj(url) {
})
return obj
}
/**
* 获取当前日期
*/
export function getCurrentDate() {
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1;
let day = now.getDate();
return year + "-" + month + "-" + day;
}

378
yxt-as-ui/src/views/operation/claimstatement/claimstatement.vue

@ -0,0 +1,378 @@
<template>
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="厂家索赔单管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分-->
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="110px" class="tab-header">
<el-form-item label="索赔单号">
<el-input v-model="listQuery.params.billNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="维修工单号">
<el-input v-model="listQuery.params.repairBillNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="单据状态">
<el-select v-model="listQuery.params.state" placeholder="请选择" clearable filterable>
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
<el-form-item label="开票状态">
<el-select v-model="listQuery.params.invoiceState" placeholder="请选择" clearable filterable>
<el-option v-for="item in invoiceState_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
<el-form-item label="应收调整状态">
<el-select v-model="listQuery.params.adjustState" placeholder="请选择" clearable filterable>
<el-option v-for="item in adjustState_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleReset">重置</el-button>
</div>
</div>
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">厂家索赔单列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" :border="true" style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50" />
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column prop="repairBillNo" label="维修工单号" align="center" min-width="170" />
<el-table-column prop="vehMark" label="车牌号" align="center" width="100" />
<el-table-column prop="vinNo" label="车架号" align="center" width="100" />
<el-table-column prop="billNo" label="索赔单号" align="center" width="170" />
<el-table-column prop="modifyTime" label="更新时间" align="center" width="120" />
<el-table-column prop="claimHourAmount" label="索赔工时费" align="center" width="120" />
<el-table-column prop="claimGoodsAmount" label="索赔材料费" align="center" width="120" />
<el-table-column prop="claimOutAmount" label="外出费" align="center" width="100" />
<el-table-column prop="claimSubsidyAmount" label="厂家补助" align="center" width="120" />
<el-table-column prop="claimOtherAmount" label="索赔其他费用" align="center" width="120" />
<el-table-column label="单据状态" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.state == '0' ? '审核中' : scope.row.state == '1' ? '已通过' : scope.row.state == '2' ? '未通过' : scope.row.state == '3' ? '作废' : '' }}</span>
</template>
</el-table-column>
<el-table-column label="开票状态" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.invoiceState == '1' ? '开票中' : scope.row.invoiceState == '2' ? '已开票' : scope.row.invoiceState == '0' ? '未开票' : '' }}</span>
</template>
</el-table-column>
<el-table-column label="应收调整状态" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.adjustState == '1' ? '已调整' : scope.row.adjustState == '0' ? '未调整' : '' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<!--End 主页面主要部分-->
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--End查询列表部分-->
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="70%" :show-close="false">
<div>
<el-button style="font-weight: bold" size="small" type="text" @click="downLoad">下载厂家索赔单模板</el-button>
</div>
<el-card class="box-card">
<div>
<el-upload
ref="upload"
class="upload-demo"
accept=".xls"
name="file"
:action="updateAction"
:on-success="handleSuccess"
:on-change="handleChange"
:on-remove="handleRemove"
:file-list="fileList"
:auto-upload="false"
:multiple="false"
:limit="1"
:data="uploadData"
:headers="headers"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传</el-button>
</el-upload>
</div>
<div>
<h3>文件上传结果</h3>
<el-card class="box-card">
<div>{{ uploadResultMesssage }}</div>
</el-card>
</div>
</el-card>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button size="small" @click="dialogVisible = false">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/operation/claimstatement'
export default {
name: 'ClaimStatement',
components: {
Pagination,
pageye,
ButtonBar
},
data() {
return {
btndisabled: false,
btnList: [
{
type: 'success',
size: 'small',
icon: 'Import',
btnKey: 'doImport',
btnLabel: '导入'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
state_list: [
{
dictKey: '0',
dictValue: '审核中'
},
{
dictKey: '1',
dictValue: '已通过'
},
{
dictKey: '2',
dictValue: '未通过'
},
{
dictKey: '3',
dictValue: '作废'
}
],
invoiceState_list: [
{
dictKey: '1',
dictValue: '开票中'
},
{
dictKey: '2',
dictValue: '已开票'
},
{
dictKey: '0',
dictValue: '未开票'
}
],
adjustState_list: [
{
dictKey: '1',
dictValue: '已调整'
},
{
dictKey: '0',
dictValue: '未调整'
}
],
FormLoading: false,
listLoading: false,
//
listQuery: {
current: 1,
size: 5,
total: 0,
params: {
billNo: '',
repairBillNo: '',
state: '',
invoiceState: '',
adjustState: '',
createBySid: '',
orgPath: ''
}
},
dialogVisible: false,
updateAction: process.env.VUE_APP_BASE_API + '/as/v1/AsBusclaimBill/getExcelInfo',
fileList: [],
uploadResultMesssage: '',
uploadData: {
fileName: ''
},
headers: {
token: window.sessionStorage.getItem('token')
}
}
},
created() {
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'doImport':
this.doImport()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
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.createBySid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.listPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 5,
total: 0,
params: {
billNo: '',
repairBillNo: '',
state: '',
invoiceState: '',
adjustState: '',
createBySid: '',
orgPath: ''
}
}
this.getList()
},
doImport() {
this.dialogVisible = true
this.fileList = []
this.uploadResultMesssage = ''
},
downLoad() {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.downloadExcel().then((resp) => {
loading.close()
const blob = new Blob([resp], {
type: 'application/vnd.ms-excel'
})
const fileName = '厂家索赔单模板' + '.xls'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'nonde'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
}).catch(() => {
loading.close()
})
},
handleChange(file) {
this.uploadData.fileName = file.name
},
handleRemove() {
this.uploadResultMesssage = ''
},
submitUpload() {
this.$refs.upload.submit()
},
handleSuccess(resp, file, fileList) {
const _this = this
if (resp.success) {
_this.uploadResultMesssage = resp.msg
//
} else {
_this.uploadResultMesssage = resp.msg
}
},
handleConfirm() {
this.dialogVisible = false
this.getList()
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

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

@ -25,7 +25,7 @@
</el-form-item>
<el-form-item label="业务类型">
<el-select v-model="queryParams.params.busTypeKey" placeholder="请选择">
<el-option v-for="(item,i) in busTypeList" :key="i" :label="item.name" :value="item.sid">
<el-option v-for="(item,i) in busTypeList" :key="item.sid" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
@ -43,13 +43,13 @@
</el-form-item>
<el-form-item label="单据状态">
<el-select v-model="queryParams.params.billState" placeholder="请选择">
<el-option v-for="(item,i) in billStateList" :key="i" :label="item.name" :value="item.sid">
<el-option v-for="(item,i) in billStateList" :key="item.sid" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="审核状态">
<el-select v-model="queryParams.params.reviewStatus" placeholder="请选择">
<el-option v-for="(item,i) in reviewStatusList" :key="i" :label="item.name" :value="item.sid">
<el-option v-for="(item,i) in reviewStatusList" :key="item.sid" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
@ -76,10 +76,10 @@
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="billNo" label="单据编号" align="center" width="150" />
<el-table-column prop="billNo" label="单据编号" align="center" width="220" />
<el-table-column prop="createTime" label="单据日期" align="center" width="150" />
<el-table-column prop="createByName" label="制单人" align="center" width="150" />
<el-table-column prop="sourceBillNo" label="外部单号" align="center" width="150" />
<el-table-column prop="sourceBillNo" label="外部单号" align="center" width="180" />
<el-table-column prop="busTypeValue" label="业务类型" align="center" width="150" />
<el-table-column prop="supplierName" label="供应商" align="center" width="150" />
<el-table-column prop="contact" label="联系人" align="center" width="150" />
@ -209,30 +209,46 @@
sids: [],
selectionList: [],
busTypeList: [{
name: "业务类型1",
name: "采购预约",
sid: "0"
},
{
name: "调拨预约",
sid: "1"
},
{
name: "业务类型2",
name: "其他预约",
sid: "2"
}
],
billStateList: [{
name: "新建",
name: "在途",
sid: "0"
},
{
name: "完成",
name: "部分收货",
sid: "1"
},
{
name: "已收货",
sid: "2"
},
{
name: "已取消",
sid: "3"
}
],
reviewStatusList: [{
name: "审核状态1",
name: "审核",
sid: "1"
},
{
name: "审核状态2",
name: "审核通过",
sid: "2"
},
{
name: "审核拒绝",
sid: "3"
}
]
}
@ -303,6 +319,9 @@
},
loadList() {
this.tableLoading = true
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid')
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.queryParams.params.menuUrl = this.$route.path
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
@ -351,14 +370,14 @@
return
}
// if(this.selectionList[0].checkState!=1){
// this.$message({
// type: 'warning',
// message: ",",
// showClose: true
// })
// return
// }
if(this.selectionList[0].billState=='已收货'){
this.$message({
type: 'warning',
message: "此记录已完成,不可重复操作。",
showClose: true
})
return
}
this.viewState = 2
this.$refs['divadd'].showEdit(this.selectionList[0])

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

@ -16,7 +16,7 @@
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
@ -28,7 +28,7 @@
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.departmentName }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
@ -60,10 +60,12 @@
<el-row>
<el-col :span="8">
<div class="span-sty">到货日期</div>
<el-form-item> <el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputInfo"
value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
<div class="span-sty"><span class="must">*</span> 到货日期</div>
<el-form-item prop="deliveryDate">
<el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputInfo" value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">单据状态</div>
@ -205,6 +207,9 @@
<script>
import req from '@/api/storage/deliveryNotice.js'
import req2 from '@/api/storage/allocation.js'
import {
getCurrentDate
} from '@/utils/index.js'
import {
getOrgSidByPath
} from '@/api/Common/dictcommons'
@ -220,11 +225,13 @@
sourceBillNo: "",
busTypeKey: "",
busTypeValue: "",
createTime: '',
createByName: window.sessionStorage.getItem('name'),
departmentName: window.sessionStorage.getItem('departmentName'),
deptName: '',
deptSid: '',
createBySid: window.sessionStorage.getItem('userSid'),
useOrgSid: window.sessionStorage.getItem('departmentSid'),
createOrgSid: window.sessionStorage.getItem('orgSid'),
useOrgSid: '',
createOrgSid: '',
billState: '新建',
billStateKey: 0,
reviewStatus: "",
@ -235,18 +242,35 @@
supplierName: "",
goodsOwnerSid: "",
goodsOwner: "",
deliveryDate: "",
deliveryDate: getCurrentDate(),
list: [],
pcList: []
},
hideUploadBtn: false,
warehouseList: [],
warehouseRackList: [],
supplierNameList: []
supplierNameList: [],
rules: {
deliveryDate: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
}
}
},
created() {},
methods: {
// getOrgPathSid() {
// getOrgSidByPath({
// orgPath: window.sessionStorage.getItem('defaultOrgPath')
// }).then((res) => {
// if (res.success) {
// this.formobj.createOrgSid = res.data
// this.formobj.useOrgSid = res.data
// }
// })
// },
selectSupplierName(val) {
console.log("supplierNameSelect", val);
@ -482,68 +506,16 @@
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
if (this.formobj.deliveryDate == '') {
this.$message({
showClose: true,
type: 'error',
message: '到货日期不能为空'
})
return
}
// for (var i = 0; i < this.formobj.pcList.length; i++) {
// var item = this.formobj.pcList[i]
// if (item.manufactureDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (Number(item.batchCount) == 0) {
// if (this.formobj.deliveryDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: '0'
// message: ''
// })
// return
// }
// }
// for (var i = 0; i < this.formobj.list.length; i++) {
// var index = i
// var num = 0
// const choose = this.formobj.pcList.filter((item) => Number(item.xh) == (index + 1))
// for (var j = 0; j < choose.length; j++) {
// num += Number(choose[j].batchCount)
// }
// console.log('>>>>>>>>>saveOrUpdate', num)
// if (num > Number(this.formobj.list[i].actualInCount)) {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// }
for (var i = 0; i < this.formobj.list.length; i++) {
if (Number(this.formobj.list[i].actualInCount) == 0) {
@ -556,7 +528,6 @@
return
}
}
@ -584,56 +555,30 @@
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
// for (var i = 0; i < this.formobj.pcList.length; i++) {
// var item = this.formobj.pcList[i]
// if (item.manufactureDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (Number(item.batchCount) == 0) {
// if (this.formobj.deliveryDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: '0'
// message: ''
// })
// return
// }
// }
// for (var i = 0; i < this.formobj.list.length; i++) {
// var index = i
// var num = 0
// const choose = this.formobj.pcList.filter((item) => Number(item.xh) == (index + 1))
// for (var j = 0; j < choose.length; j++) {
// num += Number(choose[j].batchCount)
// }
// console.log('>>>>>>>>>saveOrUpdate', num)
for (var i = 0; i < this.formobj.list.length; i++) {
// if (num > Number(this.formobj.list[i].actualInCount)) {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
if (Number(this.formobj.list[i].actualInCount) == 0) {
this.$message({
showClose: true,
type: 'error',
message: '商品实收数量不能为空'
})
// return
// }
return
}
}
// }
this.$refs['form_obj'].validate((valid) => {
if (valid) {
@ -685,6 +630,7 @@
showEdit(row) {
this.getWarehouseList()
this.getsupplierLust()
// this.getOrgPathSid()
var params = {
sourceSid: row.sid
}
@ -693,6 +639,13 @@
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deliveryDate = getCurrentDate()
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)
}
})
.catch(e => {
@ -703,6 +656,14 @@
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
@ -716,6 +677,10 @@
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;

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

@ -59,7 +59,7 @@
</el-col>
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billStateKey }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">审核状态</div>

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

@ -67,12 +67,12 @@
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" align="center" width="180">
<template slot-scope="scope">
<el-button type="primary" size="mini" :disabled="scope.row.billState=='完成'"
@click="toEdit(scope.row)">办理</el-button>
<el-button type="primary" size="mini" :disabled="scope.row.billState=='完成'"
@click="toEdit(scope.row)">办理</el-button>
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="billNo" label="单据编号" align="center" />
<el-table-column prop="billNo" width="220" label="单据编号" align="center" />
<el-table-column prop="createTime" label="单据日期" align="center" />
<el-table-column prop="createByName" label="制单人" align="center" />
<el-table-column prop="sourceBillNo" label="来源单号" align="center" />
@ -173,23 +173,28 @@
sids: [],
selectionList: [],
busTypeList: [{
name: "业务类型1",
name: "采购预约",
sid: "0"
},
{
name: "调拨预约",
sid: "1"
},
{
name: "业务类型2",
name: "其他预约",
sid: "2"
}
],
billStateList: [{
name: "新建",
sid: "0"
},
{
name: "完成",
sid: "1"
}
],
billStateList: [{
name: "新建",
sid: "0"
},
{
name: "已完成",
sid: "1"
},
],
}
},
mounted() {
@ -257,6 +262,9 @@
},
loadList() {
this.tableLoading = true
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid')
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.queryParams.params.menuUrl = this.$route.path
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
@ -333,29 +341,30 @@
}
},
toAdd() {
if (this.selectionList.length != 1) {
this.$message({
type: 'warning',
message: "请选择一条数据。",
showClose: true
})
return
}
if (this.selectionList.length != 1) {
this.$message({
type: 'warning',
message: "请选择一条数据。",
showClose: true
})
return
}
if (this.selectionList[0].billState == '完成') {
this.$message({
type: 'warning',
message: "此记录已完成,不可操作。",
showClose: true
})
return
}
if (this.selectionList[0].billState == '完成') {
this.$message({
type: 'warning',
message: "此记录已完成,不可操作。",
showClose: true
})
return
}
this.viewState = 5
this.$refs['divAddupShelfRecord'].showEdit(this.selectionList[0])
},
toEdit(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)

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

@ -13,7 +13,7 @@
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
@ -25,7 +25,7 @@
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.departmentName }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<!-- <el-col :span="8">
<div class="span-sty">制单人</div>
@ -33,9 +33,9 @@
clearable /></el-form-item>
</el-col> -->
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item> <el-date-picker v-model="formobj.createTime" type="date" class="addinputInfo"
value-format="yyyy-MM-dd" placeholder="选择日期">
<div class="span-sty"><span class="must">*</span> 单据日期</div>
<el-form-item prop="createTime"> <el-date-picker v-model="formobj.createTime" type="date"
class="addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
</el-col>
</el-row>
@ -46,17 +46,17 @@
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">业务类型</div>
<el-form-item><el-select v-model="formobj.busTypeValue" filterable clearable placeholder="请选择"
class="addinputInfo" @change="busTypeSelect">
<div class="span-sty"><span class="must">*</span> 业务类型</div>
<el-form-item prop="busTypeValue"><el-select v-model="formobj.busTypeValue" filterable clearable
placeholder="请选择" class="addinputInfo" @change="busTypeSelect">
<el-option v-for="item in busTypeList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">供应商</div>
<el-form-item> <el-select v-model="formobj.supplierName" filterable clearable placeholder="请选择"
class="addinputInfo" @change="supplierNameSelect">
<div class="span-sty"><span class="must">*</span> 供应商</div>
<el-form-item prop="supplierName"> <el-select v-model="formobj.supplierName" filterable clearable
placeholder="请选择" class="addinputInfo" @change="supplierNameSelect">
<el-option v-for="item in supplierList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select></el-form-item>
@ -67,9 +67,9 @@
<el-row>
<el-col :span="8">
<div class="span-sty">到货日期</div>
<el-form-item><el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputInfo"
value-format="yyyy-MM-dd" placeholder="选择日期">
<div class="span-sty"><span class="must">*</span> 到货日期</div>
<el-form-item prop="deliveryDate"><el-date-picker v-model="formobj.deliveryDate" type="date"
class="addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
</el-col>
<el-col :span="16">
@ -108,7 +108,7 @@
</template>
</el-table-column>
<el-table-column v-if="isUpdata" label="商品名称" prop="goodsSkuTitle" align="center" width="200" />
<el-table-column v-if="isUpdata" label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品名称" align="center" min-width="200" v-if="!isUpdata">
<template slot-scope="scope" v-if="!isUpdata">
@ -153,7 +153,7 @@
</el-select>
</template>
</el-table-column> -->
<el-table-column label="预约数量" prop="orderCount" align="center" width="120" v-if="isUpdata" />
<!-- <el-table-column label="预约数量" prop="orderCount" align="center" width="120" v-if="isUpdata" /> -->
<el-table-column label="实收数量" align="center" width="120">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE(scope.row,$event)"
@ -194,22 +194,22 @@
<el-input ref="focusAssumptionInput" v-model="scope.row.packageRemark" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="入库价" align="center" width="150">
<el-table-column label="入库价" align="center" width="150">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE3(scope.row,$event)"
v-model="scope.row.cost" clearable placeholder=""
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
<el-table-column label="税" align="center" width="150">
<el-table-column label="税" align="center" width="150">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" @input="commodityComputeYHAndXSJE4(scope.row,$event)"
v-model="scope.row.taxAmount" clearable placeholder=""
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
<el-table-column label="含税单价" prop="taxPrice" @input="commodityComputeYHAndXSJE5(scope.row,$event)"
align="center" width="150" />
<!-- <el-table-column label="含税单价" prop="taxPrice" @input="commodityComputeYHAndXSJE5(scope.row,$event)"
align="center" width="150" /> -->
<el-table-column label="入库金额" prop="amount" align="center" width="150" />
</el-table>
@ -260,6 +260,9 @@
<script>
import req from '@/api/storage/receivingGoods.js'
import req2 from '@/api/storage/allocation.js'
import {
getCurrentDate
} from '@/utils/index.js'
export default {
components: {},
data() {
@ -274,17 +277,18 @@
"sourceBillNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"departmentName": window.sessionStorage.getItem('departmentName'),
"createTime": "",
"deptName": '',
"deptSid": '',
"createTime": getCurrentDate(),
"busTypeKey": "",
"busTypeValue": "",
"supplierSid": "",
"supplierName": "",
"deliveryDate": "",
"deliveryDate": getCurrentDate(),
"billState": "新建",
"remarks": "",
"useOrgSid": window.sessionStorage.getItem('departmentSid'),
"createOrgSid": window.sessionStorage.getItem('orgSid'),
"useOrgSid": '',
"createOrgSid": '',
"list": [],
"pcList": []
},
@ -315,7 +319,29 @@
}
},
commodityData: [],
isUpdata: false
isUpdata: false,
rules: {
createTime: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
busTypeValue: [{
required: true,
message: '请选择业务类型',
trigger: 'change'
}],
supplierName: [{
required: true,
message: '请选择供应商',
trigger: 'change'
}],
deliveryDate: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
}
}
},
created() {},
@ -439,111 +465,6 @@
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
// if (this.formobj.createByName == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (this.formobj.createTime == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (this.formobj.busTypeKey == '' || this.formobj.busTypeValue == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (this.formobj.supplierSid == '' || this.formobj.supplierName == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (this.formobj.deliveryDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// for (var i = 0; i < this.formobj.pcList.length; i++) {
// var item = this.formobj.pcList[i]
// if (item.manufactureDate == '') {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// if (Number(item.batchCount) == 0) {
// this.$message({
// showClose: true,
// type: 'error',
// message: '0'
// })
// return
// }
// }
// for (var i = 0; i < this.formobj.list.length; i++) {
// var index = i
// var num = 0
// const choose = this.formobj.pcList.filter((item) => Number(item.xh) == (index + 1))
// for (var j = 0; j < choose.length; j++) {
// num += Number(choose[j].batchCount)
// }
// console.log('>>>>>>>>>saveOrUpdate', num)
// if (num > Number(this.formobj.list[i].actualInCount)) {
// this.$message({
// showClose: true,
// type: 'error',
// message: ''
// })
// return
// }
// }
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
@ -566,57 +487,6 @@
},
submit() {
if (this.formobj.createByName == '') {
this.$message({
showClose: true,
type: 'error',
message: '制单人姓名不能为空'
})
return
}
if (this.formobj.createTime == '') {
this.$message({
showClose: true,
type: 'error',
message: '单据日期不能为空'
})
return
}
if (this.formobj.busTypeKey == '' || this.formobj.busTypeValue == '') {
this.$message({
showClose: true,
type: 'error',
message: '业务类型不能为空'
})
return
}
if (this.formobj.supplierSid == '' || this.formobj.supplierName == '') {
this.$message({
showClose: true,
type: 'error',
message: '供应商不能为空'
})
return
}
if (this.formobj.deliveryDate == '') {
this.$message({
showClose: true,
type: 'error',
message: '到货日期不能为空'
})
return
}
if (this.formobj.list.length == 0) {
this.$message({
showClose: true,
@ -643,76 +513,12 @@
this.$message({
showClose: true,
type: 'error',
message: '请添加商品实收数量'
})
return
}
if (this.isUpdata) {
if (item.actualInCount + item.rejectCount > item.orderCount) {
this.$message({
showClose: true,
type: 'error',
message: '商品实收数量或拒收数量错误'
})
return
}
}
}
for (var i = 0; i < this.formobj.pcList.length; i++) {
var item = this.formobj.pcList[i]
if (item.manufactureDate == '') {
this.$message({
showClose: true,
type: 'error',
message: '生产日期不能为空'
})
return
}
if (Number(item.batchCount) == 0) {
this.$message({
showClose: true,
type: 'error',
message: '商品批次数量不能为0'
})
return
}
}
for (var i = 0; i < this.formobj.list.length; i++) {
var index = i
var num = 0
const choose = this.formobj.pcList.filter((item) => Number(item.xh) == (index + 1))
for (var j = 0; j < choose.length; j++) {
num += Number(choose[j].batchCount)
}
console.log('>>>>>>>>>saveOrUpdate', num)
if (num > Number(this.formobj.list[i].actualInCount)) {
this.$message({
showClose: true,
type: 'error',
message: '商品批次数量不能大于商品实收数量'
message: '实收数量不能为空'
})
return
}
}
this.$refs['form_obj'].validate((valid) => {
@ -743,18 +549,20 @@
"billNo": "",
"sourceBillSid": "",
"sourceBillNo": "",
"createBySid": "",
"createByName": "",
"createTime": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"deptName": '',
"deptSid": '',
"createTime": getCurrentDate(),
"busTypeKey": "",
"busTypeValue": "",
"supplierSid": "",
"supplierName": "",
"deliveryDate": "",
"deliveryDate": getCurrentDate(),
"billState": "新建",
"remarks": "",
"useOrgSid": "",
"createOrgSid": "",
"useOrgSid": '',
"createOrgSid": '',
"list": [],
"pcList": []
}
@ -785,6 +593,14 @@
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
})
.catch(e => {
@ -998,45 +814,67 @@
console.log("aaa", row);
console.log("aaa", val);
if (this.isUpdata) {
if (Number(row.actualInCount) > Number(row.orderCount)) {
row.actualInCount = row.orderCount
// if (this.isUpdata) {
// if (Number(row.actualInCount) > Number(row.orderCount)) {
// row.actualInCount = row.orderCount
// }
// }
// row.amount = (Number(row.actualInCount) * Number(row.taxPrice)).toFixed(2)
row.actualInCount = val
row.amount = (Number(row.actualInCount) * Number(row.cost)).toFixed(2)
}
}
row.amount = (Number(row.actualInCount) * Number(row.taxPrice)).toFixed(2)
},
commodityComputeYHAndXSJE2(row, val) {
console.log("aaa", row);
console.log("aaa", val);
if (this.isUpdata) {
if ((Number(row.rejectCount) + Number(row.actualInCount)) > Number(row.orderCount)) {
row.rejectCount = Number(row.orderCount) - Number(row.actualInCount)
}
}
row.rejectCount = val
// if (this.isUpdata) {
// if ((Number(row.rejectCount) + Number(row.actualInCount)) > Number(row.orderCount)) {
// row.rejectCount = Number(row.orderCount) - Number(row.actualInCount)
// }
// }
},
commodityComputeYHAndXSJE3(row, val) {
console.log("aaa", row);
console.log("aaa", val);
row.taxPrice = (Number(row.cost) * Number(row.taxAmount)).toFixed(2)
row.amount = (Number(row.actualInCount) * Number(row.taxPrice)).toFixed(2)
// row.taxPrice = (Number(row.cost) * Number(row.taxAmount)).toFixed(2)
// row.amount = (Number(row.actualInCount) * Number(row.taxPrice)).toFixed(2)
row.cost = val
row.amount = (Number(row.actualInCount) * Number(row.cost)).toFixed(2)
},
commodityComputeYHAndXSJE4(row, val) {
console.log("aaa", row);
console.log("aaa", val);
row.taxPrice = (Number(row.cost) * Number(row.taxAmount)).toFixed(2)
row.amount = (Number(row.actualInCount) * Number(row.taxPrice)).toFixed(2)
row.taxAmount = val
// row.taxPrice = (Number(row.cost) * Number(row.taxAmount)).toFixed(2)
// row.amount = (Number(row.actualInCount) * Number(row.taxPrice)).toFixed(2)
},
}
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
@ -1050,6 +888,10 @@
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;

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

@ -25,7 +25,7 @@
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.departmentName }}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
@ -79,7 +79,7 @@
</div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="商品名称" prop="goodsSkuTitle" align="center" width="200" />
<el-table-column fixed label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
@ -106,9 +106,9 @@
</template>
</el-table-column>
<el-table-column label="载具说明" prop="packageRemark" align="center" width="180" />
<el-table-column label="入库价" prop="cost" align="center" width="100" />
<el-table-column label="税" prop="taxAmount" align="center" width="100" />
<el-table-column label="含税单价" prop="taxPrice" align="center" width="100" />
<el-table-column label="入库价" prop="cost" align="center" width="100" />
<el-table-column label="税" prop="taxAmount" align="center" width="100" />
<!-- <el-table-column label="含税单价" prop="taxPrice" align="center" width="100" /> -->
<el-table-column label="入库金额" prop="amount" align="center" width="100" />
</el-table>

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

@ -15,25 +15,25 @@
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
<el-row>
<el-col :span="8">
<div class="span-sty">单据编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.billNo }}</span></el-form-item>
<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><el-input v-model="formobj.createByName" placeholder="" class="addinputw addinputInfo"
clearable /></el-form-item>
<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-date-picker v-model="formobj.createTime" type="date" class="addinputInfo"
value-format="yyyy-MM-dd" placeholder="选择日期">
<div class="span-sty"><span class="must">*</span> 单据日期</div>
<el-form-item prop="createTime"> <el-date-picker v-model="formobj.createTime" type="date"
class="addinputw addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
</el-col>
</el-row>
@ -42,13 +42,23 @@
<el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="16">
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<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="请选择"
class="addinputw addinputInfo" @change="allOrgperSelect">
<el-option v-for="item in allOrgperList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
@ -65,18 +75,18 @@
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.pcList" border>
<el-table v-loading="listLoading" :data="formobj.list" border>
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" wid align="center" width="120">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoodsDel(scope.row)">删除</el-button>
<el-button type="primary" size="mini" @click="doGoodsDel(scope.row.goodsSkuSid)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="商品名称" prop="goodsSkuTitle" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<el-table-column label="仓库" align="center" width="180">
<el-table-column 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="仓库" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable
@change="selectWarehouseName(scope.row,$event)">
@ -95,14 +105,14 @@
</el-select>
</template>
</el-table-column>
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" />
<el-table-column label="上架数量" align="center" width="180">
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" /> -->
<el-table-column label="上架数量" align="center">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.actualCount" clearable placeholder=""
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column label="载具编号" align="center" width="180">
<el-table-column label="载具编号" align="center">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.packageNo" clearable placeholder="" />
</template>
@ -120,6 +130,13 @@
<script>
import req from '@/api/storage/receivingGoods.js'
import req2 from '@/api/storage/allocation.js'
import {
getCurrentDate
} from '@/utils/index.js'
import {
selAllByOrgSidPath
} from '@/api/Common/dictcommons'
export default {
components: {},
data() {
@ -131,10 +148,14 @@
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"createTime": "",
"createByName": window.sessionStorage.getItem('name'),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
@ -152,10 +173,26 @@
],
supplierList: [],
warehouseList: [],
warehouseRackList: []
warehouseRackList: [],
allOrgperList: [],
rules: {
createTime: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
upShelfName: [{
required: true,
message: '请选择上架人员',
trigger: 'change'
}],
}
}
},
created() {},
created() {
},
methods: {
doGoodsDel(sid) {
console.log("doGoodsDel》》》》", sid)
@ -165,7 +202,7 @@
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const index = this.formobj.list.findIndex((item) => item.goodSpuSid === sid)
const index = this.formobj.list.findIndex((item) => item.goodsSkuSid === sid)
console.log("index》》》》", index)
this.formobj.list.splice(index, 1)
@ -179,36 +216,44 @@
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
this.submitdisabled = true
req.saveUpShelf(this.formobj)
.then(resp => {
if (resp.success) {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
this.$refs['form_obj'].validate((valid) => {
if (valid) {
req.saveUpShelf(this.formobj)
.then(resp => {
if (resp.success) {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
} else {
this.submitdisabled = false
// resp.code
}
})
this.handleReturn('true')
} else {
this.submitdisabled = false
// resp.code
}
})
.catch(() => {
this.submitdisabled = false
})
.catch(() => {
this.submitdisabled = false
})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
"sid": "",
"billNo": "",
"createBySid": "",
"createByName": "",
"createTime": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"createTime": getCurrentDate(),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
@ -222,6 +267,7 @@
},
showEdit(row) {
this.getWarehouseList()
this.getAllOrgper()
var params = {
sid: row.sid
}
@ -230,12 +276,39 @@
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
})
.catch(e => {
this.formobj = {}
})
},
getAllOrgper() {
selAllByOrgSidPath({
orgSidPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.allOrgperList = res.data
console.log("aaaaaa", this.allOrgperList);
}
})
},
allOrgperSelect(val) {
console.log("allOrgperSelect", val);
const choose = this.allOrgperList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseName', choose)
this.formobj.upShelfName = choose[0].name
this.formobj.upShelfSid = choose[0].sid
},
getWarehouseList() {
req2.getWarehouses().then((res) => {
if (res.success) {
@ -282,6 +355,14 @@
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
@ -295,6 +376,10 @@
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;

14
yxt-as-ui/src/views/storage/upShelf/index.vue

@ -119,13 +119,13 @@
btnKey: 'toPrintLabel',
btnLabel: '打印标签'
},
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '上架'
},
// {
// type: 'primary',
// size: 'small',
// icon: 'plus',
// btnKey: 'toAdd',
// btnLabel: ''
// },
{
type: 'info',
size: 'small',

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

@ -15,15 +15,18 @@
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<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">单据编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.billNo }}</span></el-form-item>
<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>
@ -31,9 +34,9 @@
clearable /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item> <el-date-picker v-model="formobj.createTime" type="date" class="addinputw addinputInfo"
value-format="yyyy-MM-dd" placeholder="选择日期">
<div class="span-sty"><span class="must">*</span> 单据日期</div>
<el-form-item prop="createTime"> <el-date-picker v-model="formobj.createTime" type="date"
class="addinputw addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -46,11 +49,21 @@
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="16">
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<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="请选择"
class="addinputw addinputInfo" @change="allOrgperSelect">
<el-option v-for="item in allOrgperList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
@ -79,7 +92,7 @@
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<el-table-column label="仓库" align="center" width="180">
<!-- <el-table-column label="仓库" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable
@change="selectWarehouseName(scope.row,$event)">
@ -98,8 +111,8 @@
</el-select>
</template>
</el-table-column>
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" />
<el-table-column label="上架数量" align="center" width="120">
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" /> -->
<el-table-column label="需要上架数量" align="center" width="120">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.actualCount" clearable placeholder=""
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
@ -123,6 +136,13 @@
<script>
import req from '@/api/storage/upShelf.js'
import req2 from '@/api/storage/allocation.js'
import {
getCurrentDate
} from '@/utils/index.js'
import {
selAllByOrgSidPath
} from '@/api/Common/dictcommons'
export default {
components: {},
data() {
@ -135,10 +155,14 @@
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"createTime": "",
"createTime": getCurrentDate(),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
@ -162,7 +186,21 @@
}
},
commodityData: [],
isUpdata: false
isUpdata: false,
allOrgperList: [],
rules: {
createTime: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
upShelfName: [{
required: true,
message: '请选择上架人员',
trigger: 'change'
}],
}
}
},
created() {},
@ -174,25 +212,7 @@
},
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
if (this.formobj.createByName == '') {
this.$message({
showClose: true,
type: 'error',
message: '制单人姓名不能为空'
})
return
}
if (this.formobj.createTime == '') {
this.$message({
showClose: true,
type: 'error',
message: '单据日期不能为空'
})
return
}
if (this.formobj.list.length == 0) {
this.$message({
@ -210,7 +230,7 @@
this.$message({
showClose: true,
type: 'error',
message: '商品上架数量不能为0'
message: '商品上架数量不能为'
})
return
@ -244,12 +264,16 @@
this.formobj = {
"sid": "",
"billNo": "",
"createBySid": "",
"createByName": "",
"createTime": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"createTime": getCurrentDate(),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
@ -262,9 +286,11 @@
showAdd() {
this.title = "【新增】"
this.getWarehouseList()
this.getAllOrgper()
},
showEdit(row) {
this.getWarehouseList()
this.getAllOrgper()
this.title = "【修改】"
var params = {
sid: row.sid
@ -273,12 +299,39 @@
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
})
.catch(e => {
this.formobj = {}
})
},
getAllOrgper() {
selAllByOrgSidPath({
orgSidPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.allOrgperList = res.data
console.log("aaaaaa", this.allOrgperList);
}
})
},
allOrgperSelect(val) {
console.log("allOrgperSelect", val);
const choose = this.allOrgperList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseName', choose)
this.formobj.upShelfName = choose[0].name
this.formobj.upShelfSid = choose[0].sid
},
getWarehouseList() {
req2.getWarehouses().then((res) => {
if (res.success) {
@ -325,6 +378,14 @@
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}

24
yxt-as-ui/src/views/storage/upShelf/upShelfInfo.vue

@ -19,15 +19,16 @@
<div>基础信息</div>
</div>
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">单据编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.billNo }}</span></el-form-item>
<div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单人姓名</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
@ -40,11 +41,17 @@
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="16">
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">上架人</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
@ -66,11 +73,12 @@
<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="batchNumber" align="center" />
<!-- <el-table-column label="批次号" prop="batchNumber" align="center" />
<el-table-column label="仓库" prop="warehouseName" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center" /> -->
<el-table-column label="需上架数量" prop="count" align="center" />
<el-table-column label="已上架数量" prop="actualCount" align="center" />
<el-table-column label="未上架数量" prop="actualCount" align="center" />
<el-table-column label="载具编号" prop="packageNo" align="center" />
</el-table>

10
yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java

@ -447,6 +447,8 @@ public class PmsPurchaseBillService extends MybatisBaseService<PmsPurchaseBillMa
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
WmsAnsBillDto wmsAnsBillDto = new WmsAnsBillDto();
wmsAnsBillDto.setDeptName(pmsPurchaseBill.getDeptName());
wmsAnsBillDto.setDeptSid(pmsPurchaseBill.getDeptSid());
wmsAnsBillDto.setCreateBySid(pmsPurchaseBill.getCreateBySid());
wmsAnsBillDto.setSourceBillNo(pmsPurchaseBill.getBillNo());
wmsAnsBillDto.setBusTypeKey("01");
@ -476,9 +478,13 @@ public class PmsPurchaseBillService extends MybatisBaseService<PmsPurchaseBillMa
wmsAnsBillDetailDto.setGoodsSkuCode(pmsPurchaseBillDetailDetailsVo.getGoodsSkuCode());
wmsAnsBillDetailDto.setGoodsSkuOwnSpec(pmsPurchaseBillDetailDetailsVo.getGoodsSkuOwnSpec());
wmsAnsBillDetailDto.setUnit(pmsPurchaseBillDetailDetailsVo.getUnit());
wmsAnsBillDetailDto.setCost(pmsPurchaseBillDetailDetailsVo.getCost().toString());
if (null != pmsPurchaseBillDetailDetailsVo.getCost()) {
wmsAnsBillDetailDto.setCost(pmsPurchaseBillDetailDetailsVo.getCost().toString());
}
wmsAnsBillDetailDto.setOrderCount(pmsPurchaseBillDetailDetailsVo.getCount().toString());
wmsAnsBillDetailDto.setTaxAmount(pmsPurchaseBillDetailDetailsVo.getTaxAmount().toString());
if (null != pmsPurchaseBillDetailDetailsVo.getTaxAmount()) {
wmsAnsBillDetailDto.setTaxAmount(pmsPurchaseBillDetailDetailsVo.getTaxAmount().toString());
}
wmsAnsBillDetailDto.setTaxPrice(pmsPurchaseBillDetailDetailsVo.getTaxPrice().toString());
wmsAnsBillDetailDto.setAmount(pmsPurchaseBillDetailDetailsVo.getAmount().toString());
wmsAnsBillDetailDtos.add(wmsAnsBillDetailDto);

5
yxt-pms-biz/src/main/java/com/yxt/pms/feign/wms/wmsansbill/WmsAnsBillDto.java

@ -51,6 +51,9 @@ public class WmsAnsBillDto {
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门")
private String deptName;
private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>();
}

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBill.java

@ -48,4 +48,8 @@ public class WmsAnsBill extends BaseEntity {
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门")
private String deptName;
}

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java

@ -51,6 +51,9 @@ public class WmsAnsBillDto {
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门")
private String deptName;
private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>();
}

37
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillMapper.xml

@ -11,19 +11,22 @@
<select id="listPages" resultType="com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillVo">
select wab.sid,
wab.billNo,
DATE_FORMAT(wab.createTime, '%Y-%m-%d') as createTime,
wab.createByName,
wab.sourceBillNo,
wab.busTypeValue,
wab.supplierName,
wab.contact,
wab.mobile,
DATE_FORMAT(wab.deliveryDate, '%Y-%m-%d') as deliveryDate,
case wab.billState when 0 then '新建' when 1 then '完成' end as billState,
wab.reviewStatus,
wab.refuseReason
wab.billNo,
DATE_FORMAT(wab.createTime, '%Y-%m-%d') as createTime,
wab.createByName,
wab.sourceBillNo,
wab.busTypeValue,
wab.supplierName,
wab.contact,
wab.mobile,
DATE_FORMAT(wab.deliveryDate, '%Y-%m-%d') as deliveryDate,
case wab.billState when 0 then '在途' when 1 then '部分收货'
when 2 then '已收货' when 3 then '已取消'
end as billState,
wab.reviewStatus,
wab.refuseReason
from wms_ans_bill wab
LEFT JOIN anrui_portal.sys_organization as s ON wab.deptSid = s.sid
<where>
${ew.sqlSegment}
</where>
@ -40,17 +43,19 @@
wab.supplierSid,
wab.supplierName,
DATE_FORMAT(wab.deliveryDate, '%Y-%m-%d') as deliveryDate,
wab.billState,
case wab.billState when 0 then '在途' when 1 then '部分收货'
when 2 then '已收货' when 3 then '已取消'
end as billState,
wab.reviewStatus
from wms_ans_bill wab
where sid = #{sid}
</select>
<select id="selectNum" resultType="java.lang.String">
select RIGHT(billNo, 4)
select RIGHT (billNo, 4)
from wms_ans_bill
where billNo LIKE concat(#{bill}, '%')
order by id desc
limit 1
limit 1
</select>
</mapper>
</mapper>

7
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillQuery.java

@ -34,4 +34,11 @@ public class WmsAnsBillQuery implements Query {
@ApiModelProperty("外部单号(业务单据编号)")
private String sourceBillNo;
@ApiModelProperty("菜单路由")
private String menuUrl;
@ApiModelProperty("组织全路径sid")
private String orgPath;
@ApiModelProperty("用户sid")
private String userSid;
}

43
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillService.java

@ -9,12 +9,15 @@ 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 com.yxt.wms.biz.base.wmswarehousearea.WmsWarehouseAreaVo;
import com.yxt.wms.biz.inventory.wmsansbilldetail.*;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBill;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillQuery;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillVo;
import com.yxt.wms.feign.portal.privilege.PrivilegeQuery;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.wms.feign.portal.sysuser.SysUserFeign;
import com.yxt.wms.utils.BillNo;
import com.yxt.wms.utils.Rule;
import org.springframework.beans.factory.annotation.Autowired;
@ -35,7 +38,8 @@ public class WmsAnsBillService extends MybatisBaseService<WmsAnsBillMapper, WmsA
private WmsAnsBillDetailService wmsAnsBillDetailService;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysUserFeign sysUserFeign;
public ResultBean<String> saveOrUpdateBill(WmsAnsBillDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
@ -106,6 +110,43 @@ public class WmsAnsBillService extends MybatisBaseService<WmsAnsBillMapper, WmsA
QueryWrapper<WmsAnsBill> qw = new QueryWrapper<>();
//ToDo:添加查询条件
if (query != null) {
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("wab.createBySid", query.getUserSid());
} else {
PagerVo<WmsAnsBillVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<WmsAnsBillVo> p = new PagerVo<>();
return p;
}
//单据编号
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("wab.billNo", query.getBillNo());

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetail.java

@ -35,9 +35,9 @@ public class WmsAnsBillDetail extends BaseEntity {
@ApiModelProperty("预约数量(采购订单数量)")
private String orderCount;
@ApiModelProperty("待入库数量-根据收货单计算")
private Integer waitInCount;
private BigDecimal waitInCount;
@ApiModelProperty("实际入库数量-根据收货单计算")
private Integer actualInCount;
private BigDecimal actualInCount;
@ApiModelProperty("税额")
private BigDecimal taxAmount;
@ApiModelProperty("含税价")

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailMapper.java

@ -2,6 +2,7 @@ package com.yxt.wms.biz.inventory.wmsansbilldetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -15,4 +16,8 @@ public interface WmsAnsBillDetailMapper extends BaseMapper<WmsAnsBillDetail> {
int deleteDetails(String sid);
List<WmsAnsListDetailsVo> selectByBillSid(String sid);
String selGoodsCountBySpuSidAndSouceSid(@Param("goodsSpuSid") String goodsSpuSid, @Param("sourceBillSid") String sourceBillSid);
WmsAnsBillDetail fetchBySpuSidAndBillSid(@Param("goodsSpuSid") String goodsSpuSid, @Param("sourceBillSid") String sourceBillSid);
}

15
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailMapper.xml

@ -19,8 +19,19 @@
wd.cost,
wd.taxAmount,
wd.taxPrice,
wd.amount
wd.amount,
wd.goodsSkuSid,
wd.goodSpuSid
from wms_ans_bill_detail wd
where billSid = #{sid}
</select>
</mapper>
<select id="selGoodsCountBySpuSidAndSouceSid" resultType="java.lang.String">
SELECT IFNULL(d.orderCount,0) FROM wms_ans_bill_detail as d
WHERE d.goodSpuSid = #{goodsSpuSid} and d.billSid = #{sourceBillSid}
</select>
<select id="fetchBySpuSidAndBillSid"
resultType="com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetail">
SELECT * FROM wms_ans_bill_detail as d
WHERE d.goodSpuSid = #{goodsSpuSid} and d.billSid = #{sourceBillSid}
</select>
</mapper>

9
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailService.java

@ -2,6 +2,7 @@ package com.yxt.wms.biz.inventory.wmsansbilldetail;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import java.util.List;
@ -26,4 +27,12 @@ public class WmsAnsBillDetailService extends MybatisBaseService<WmsAnsBillDetail
public List<WmsAnsListDetailsVo> selectByBillSid(String sid) {
return baseMapper.selectByBillSid(sid);
}
public String selGoodsCountBySpuSidAndSouceSid(String goodsSpuSid,String sourceBillSid) {
return baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid,sourceBillSid);
}
public WmsAnsBillDetail fetchBySpuSidAndBillSid(String goodsSpuSid, String sourceBillSid) {
return baseMapper.fetchBySpuSidAndBillSid(goodsSpuSid,sourceBillSid);
}
}

16
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsListDetailsVo.java

@ -32,10 +32,10 @@ public class WmsAnsListDetailsVo {
private String orderCount;
//待收货数量
@ApiModelProperty("待入库数量-根据收货单计算")
private Integer waitInCount;
private String waitInCount;
//已收货数量
@ApiModelProperty("实际入库数量-根据收货单计算")
private Integer actualInCount;
private String actualInCount;
//入库价
@ApiModelProperty("单位成本(采购价)")
private String cost;
@ -46,14 +46,16 @@ public class WmsAnsListDetailsVo {
//采购金额
@ApiModelProperty("金额")
private String amount;
/* @ApiModelProperty("商品基础信息sid")
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
/*
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;*/
*/
}

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBill.java

@ -42,4 +42,8 @@ public class WmsReceiptBill extends BaseEntity {
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门")
private String deptName;
}

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillDto2.java

@ -50,6 +50,10 @@ public class WmsReceiptBillDto2 {
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门")
private String deptName;
@ApiModelProperty("商品列表")
private List<WmsReceiptBillDetailDto2> list = new ArrayList<>();
@ApiModelProperty("批次列表")

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillInitVo.java

@ -49,6 +49,10 @@ public class WmsReceiptBillInitVo {
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门")
private String deptName;
@ApiModelProperty("商品列表")
private List<WmsReceiptBillDetailDto2> list = new ArrayList<>();
@ApiModelProperty("批次列表")

9
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.java

@ -4,9 +4,12 @@ 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.wmsreceiptbilldetail.WmsReceiptBillDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -17,4 +20,10 @@ public interface WmsReceiptBillMapper extends BaseMapper<WmsReceiptBill> {
IPage<WmsReceiptBillPageVo> listPage(IPage<WmsReceiptBill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsReceiptBill> qw);
WmsReceiptBillInitVo getDetailsInit(String sid);
String selectNum(String bill);
String selGoodsCountBySpuSidAndSouceSid(@Param("goodsSpuSid") String goodsSpuSid, @Param("sourceBillSid") String sourceBillSid);
List<WmsReceiptBillDetail> selGoodsListCountBySpuSidAndSouceSid(@Param("goodsSpuSid")String goodsSpuSid, @Param("sourceBillSid")String sourceBillSid);
}

34
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.xml

@ -10,8 +10,11 @@
wrb.supplierName,
DATE_FORMAT(wrb.createTime, '%Y-%m-%d') as createTime,
DATE_FORMAT(wrb.deliveryDate, '%Y-%m-%d') as deliveryDate,
wrb.billState
case wrb.billState
when '0' then '新建'
when '1' then '已完成' end as billState
from wms_receipt_bill wrb
LEFT JOIN anrui_portal.sys_organization as s ON wrb.deptSid = s.sid
<where>
${ew.sqlSegment}
</where>
@ -30,13 +33,40 @@
wrb.supplierSid,
wrb.supplierName,
DATE_FORMAT(wrb.deliveryDate,'%Y-%m-%d') as deliveryDate,
DATE_FORMAT(wrb.createTime,'%Y-%m-%d') as createTime,
case wrb.billState
when '0' then '新建'
when '1' then '已完成' end as billState,
wrb.remarks,
wrb.deptSid,
wrb.deptName,
wrb.useOrgSid,
wrb.createOrgSid
from wms_receipt_bill wrb
where wrb.sid = #{sid}
</select>
</mapper>
<select id="selectNum" resultType="java.lang.String">
select RIGHT (billNo, 4)
from wms_receipt_bill
where billNo LIKE concat(#{bill}, '%')
order by id desc
limit 1
</select>
<select id="selGoodsCountBySpuSidAndSouceSid" resultType="java.lang.String">
SELECT
IFNULL( SUM( d.actualInCount ), 0 )
FROM
wms_receipt_bill_detail AS d
LEFT JOIN wms_receipt_bill AS b ON d.billSid = b.sid
WHERE d.goodSpuSid = #{goodsSpuSid} AND b.sourceBillSid = #{sourceBillSid}
</select>
<select id="selGoodsListCountBySpuSidAndSouceSid"
resultType="com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetail">
SELECT
*
FROM
wms_receipt_bill_detail AS d
LEFT JOIN wms_receipt_bill AS b ON d.billSid = b.sid
WHERE d.goodSpuSid = #{goodsSpuSid} AND b.sourceBillSid = #{sourceBillSid}
</select>
</mapper>

7
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillQuery.java

@ -28,6 +28,11 @@ public class WmsReceiptBillQuery implements Query {
private String deliveryDateEnd;
@ApiModelProperty("单据状态")
private String billState;
@ApiModelProperty("菜单路由")
private String menuUrl;
@ApiModelProperty("组织全路径sid")
private String orgPath;
@ApiModelProperty("用户sid")
private String userSid;
}

221
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java

@ -13,6 +13,8 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBill;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillService;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillVo;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetail;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetailService;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsListDetailsVo;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.*;
@ -20,9 +22,16 @@ import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailB
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchMapper;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService;
import com.yxt.wms.feign.portal.privilege.PrivilegeQuery;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.wms.feign.portal.sysuser.SysUserFeign;
import com.yxt.wms.utils.BillNo;
import com.yxt.wms.utils.Rule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@ -46,10 +55,51 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
private WmsReceiptBillDetailMapper wmsReceiptBillDetailMapper;
@Autowired
private WmsReceiptBillDetailBatchMapper wmsReceiptBillDetailBatchMapper;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysUserFeign sysUserFeign;
public PagerVo<WmsReceiptBillPageVo> listPage(PagerQuery<WmsReceiptBillQuery> pq) {
WmsReceiptBillQuery query = pq.getParams();
QueryWrapper<WmsReceiptBill> qw = new QueryWrapper<>();
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("wrb.createBySid", query.getUserSid());
} else {
PagerVo<WmsReceiptBillPageVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<WmsReceiptBillPageVo> p = new PagerVo<>();
return p;
}
//ToDo:添加查询条件
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("wrb.billNo", query.getBillNo());
@ -106,6 +156,23 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
return rb.success().setData(sid);
}
private String getApplyCode(String createOrgSid) {
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(createOrgSid);
String orgCode = resultBean1.getData().getOrgCode();
BillNo b = new BillNo();
b.setOrgCode(orgCode);
b.setBillType("SHD");
String bill = Rule.getBill(b);
String i = baseMapper.selectNum(bill);
String billNo = "";
if (org.apache.commons.lang3.StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(bill, Integer.valueOf(i).intValue());
} else {
billNo = Rule.getBillNo(bill, 0);
}
return billNo;
}
public ResultBean<String> saveOrUpdateBill2(WmsReceiptBillDto2 dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
@ -118,13 +185,57 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
List<WmsReceiptBillDetailBatchDto2> pcList = dto.getPcList();
pcList.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList);
}
if("0".equals(dto.getBillStateKey())){
wmsReceiptBill.setBillState("0");
}else{
wmsReceiptBill.setBillState("1");
// wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList);
wmsReceiptBillDetailService.deleteByBillSid(sid);
for (WmsReceiptBillDetailDto2 detail : list) {
String goodsSpuSid = detail.getGoodSpuSid();
String sourceBillSid = dto.getSourceBillSid();
String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid);
WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(goodsSpuSid, sourceBillSid);
BigDecimal count = new BigDecimal(goodsCount);
if (null != goods) {
BigDecimal orderCount = new BigDecimal(goods.getOrderCount());
BigDecimal accCount = count.add(new BigDecimal(detail.getActualInCount()));
goods.setActualInCount(accCount);
goods.setWaitInCount(orderCount.subtract(accCount));
wmsAnsBillDetailService.updateById(goods);
}
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail();
BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid");
wmsReceiptBillDetail.setBillSid(sid);
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail);
}
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid());
List<WmsAnsListDetailsVo> vos = wmsAnsBillDetailService.selectByBillSid(dto.getSourceBillSid());
if (!vos.isEmpty()) {
HashSet<Integer> integers = new HashSet<>();
for (WmsAnsListDetailsVo vo : vos) {
BigDecimal count = new BigDecimal("0");
if (StringUtils.isNotBlank(vo.getWaitInCount())) {
count = new BigDecimal(vo.getWaitInCount());
}
if (count.compareTo(BigDecimal.ZERO) <= 0) {
integers.add(2);
} else {
integers.add(1);
}
}
if (integers.size() > 1) {
wmsAnsBill.setBillState(1);
} else {
wmsAnsBill.setBillState(2);
for (Integer integer : integers) {
if (integer == 1) {
wmsAnsBill.setBillState(1);
}
}
}
}
wmsAnsBillService.updateById(wmsAnsBill);
}
wmsReceiptBill.setBillState("0");
String applyCode = getApplyCode(dto.getCreateOrgSid());
wmsReceiptBill.setBillNo(applyCode);
baseMapper.insert(wmsReceiptBill);
} else {
@ -132,18 +243,66 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
if (wmsReceiptBill == null) {
return rb.setMsg("该单据不存在");
}
if (StringUtils.isNotBlank(dto.getBillState())) {
if (dto.getBillState().equals("新建")) {
dto.setBillState("0");
} else if (dto.getBillState().equals("已完成")) {
dto.setBillState("1");
}
}
BeanUtil.copyProperties(dto, wmsReceiptBill, "sid");
List<WmsReceiptBillDetailDto2> list = dto.getList();
list.removeAll(Collections.singleton(null));
List<WmsReceiptBillDetailBatchDto2> pcList = dto.getPcList();
pcList.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList);
}
if("0".equals(dto.getBillStateKey())){
wmsReceiptBill.setBillState("0");
}else{
wmsReceiptBill.setBillState("1");
wmsReceiptBillDetailService.deleteByBillSid(sid);
// wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList);
for (WmsReceiptBillDetailDto2 detail : list) {
String goodsSpuSid = detail.getGoodSpuSid();
String sourceBillSid = dto.getSourceBillSid();
String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid);
WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(goodsSpuSid, sourceBillSid);
BigDecimal count = new BigDecimal(goodsCount);
if (null != goods) {
BigDecimal orderCount = new BigDecimal(goods.getOrderCount());
BigDecimal accCount = count.add(new BigDecimal(detail.getActualInCount()));
goods.setActualInCount(accCount);
goods.setWaitInCount(orderCount.subtract(accCount));
wmsAnsBillDetailService.updateById(goods);
}
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail();
BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid");
wmsReceiptBillDetail.setBillSid(sid);
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail);
}
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid());
List<WmsAnsListDetailsVo> vos = wmsAnsBillDetailService.selectByBillSid(dto.getSourceBillSid());
if (!vos.isEmpty()) {
HashSet<Integer> integers = new HashSet<>();
for (WmsAnsListDetailsVo vo : vos) {
BigDecimal count = new BigDecimal("0");
if (StringUtils.isNotBlank(vo.getWaitInCount())) {
count = new BigDecimal(vo.getWaitInCount());
}
if (count.compareTo(BigDecimal.ZERO) <= 0) {
integers.add(2);
} else {
integers.add(1);
}
}
if (integers.size() > 1) {
wmsAnsBill.setBillState(1);
} else {
wmsAnsBill.setBillState(2);
for (Integer integer : integers) {
if (integer == 1) {
wmsAnsBill.setBillState(1);
}
}
}
}
wmsAnsBillService.updateById(wmsAnsBill);
}
baseMapper.updateById(wmsReceiptBill);
}
@ -154,21 +313,39 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
ResultBean<WmsReceiptBillVo> rb = ResultBean.fireFail();
WmsReceiptBillVo wmsReceiptBillVo = new WmsReceiptBillVo();
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(sourceSid);
BeanUtil.copyProperties(wmsAnsBill, wmsReceiptBillVo, "sid");
wmsReceiptBillVo.setSourceBillNo(wmsAnsBill.getSourceBillNo());
BeanUtil.copyProperties(wmsAnsBill, wmsReceiptBillVo, "sid", "billNo");
wmsReceiptBillVo.setSourceBillNo(wmsAnsBill.getBillNo());
wmsReceiptBillVo.setSourceBillSid(wmsAnsBill.getSid());
wmsReceiptBillVo.setCreateTime(DateUtil.today());
if (wmsAnsBill.getBillState() == 0) {
wmsReceiptBillVo.setBillStateKey("0");
wmsReceiptBillVo.setBillState("新建");
} else {
wmsReceiptBillVo.setBillState("完成");
wmsReceiptBillVo.setBillState("在途");
} else if (wmsAnsBill.getBillState() == 1) {
wmsReceiptBillVo.setBillState("部分收货");
wmsReceiptBillVo.setBillStateKey("1");
} else if (wmsAnsBill.getBillState() == 2) {
wmsReceiptBillVo.setBillState("已收货");
wmsReceiptBillVo.setBillStateKey("2");
} else if (wmsAnsBill.getBillState() == 3) {
wmsReceiptBillVo.setBillState("已取消");
wmsReceiptBillVo.setBillStateKey("3");
}
List<WmsAnsListDetailsVo> list = wmsAnsBillDetailService.selectByBillSid(sourceSid);
list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
List<WmsReceiptBillDetailVo> lists = Optional.ofNullable(list).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), WmsReceiptBillDetailVo.class)).collect(Collectors.toList());
// List<WmsReceiptBillDetailVo> lists = Optional.ofNullable(list).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), WmsReceiptBillDetailVo.class)).collect(Collectors.toList());
// wmsReceiptBillVo.setList(lists);
List<WmsReceiptBillDetailVo> lists = new ArrayList<>();
for (WmsAnsListDetailsVo wmsAnsListDetailsVo : list) {
WmsReceiptBillDetailVo detailsVo = new WmsReceiptBillDetailVo();
BeanUtil.copyProperties(wmsAnsListDetailsVo, detailsVo);
detailsVo.setIsQuality(0);
detailsVo.setQualityState(0);
detailsVo.setActualInCount("");
detailsVo.setRejectCount("");
detailsVo.setRejectReason("");
lists.add(detailsVo);
}
wmsReceiptBillVo.setList(lists);
}
@ -208,7 +385,6 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
public ResultBean<String> confirm(WmsReceiptBillDto2 dto) {
ResultBean<String> rb = ResultBean.fireFail();
dto.setBillState("1");
List<WmsReceiptBillDetailDto2> list = dto.getList();
list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
@ -220,6 +396,11 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
dto.setList(list);
ResultBean<String> resultBean = saveOrUpdateBill2(dto);
String sid = resultBean.getData();
WmsReceiptBill wmsReceiptBill = fetchBySid(sid);
if (null != wmsReceiptBill) {
wmsReceiptBill.setBillState("1");
baseMapper.updateById(wmsReceiptBill);
}
return rb.success().setData(sid);
}

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillVo.java

@ -48,6 +48,9 @@ public class WmsReceiptBillVo {
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门")
private String deptName;
private List<WmsReceiptBillDetailVo> list = new ArrayList<>();
}

24
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetail.java

@ -47,12 +47,20 @@ public class WmsReceiptBillDetail extends BaseEntity {
@ApiModelProperty("载具说明")
private String packageRemark;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位名称")
private String warehouseRackName;
@ApiModelProperty("税额")
private BigDecimal taxAmount;
@ApiModelProperty("含税价")
private BigDecimal taxPrice;
@ApiModelProperty("金额")
private BigDecimal amount;
@ApiModelProperty("单位成本(采购价)")
private BigDecimal cost;
// @ApiModelProperty("仓库sid")
// private String warehouseSid;
// @ApiModelProperty("仓库名称")
// private String warehouseName;
// @ApiModelProperty("库位sid")
// private String warehouseRackSid;
// @ApiModelProperty("库位名称")
// private String warehouseRackName;
}

7
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java

@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
@ -11,9 +13,12 @@ import lombok.Data;
**/
@Data
public class WmsReceiptBillDetailDto2 {
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品goodSpuSid")
private String goodSpuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品sku编码")

17
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml

@ -13,10 +13,14 @@
wrbd.goodsSkuCode,
wrbd.goodsSkuOwnSpec,
wrbd.unit,
wrbd.warehouseSid,
wrbd.warehouseName,
wrbd.warehouseRackSid,
wrbd.warehouseRackName,
-- wrbd.warehouseSid,
-- wrbd.warehouseName,
-- wrbd.warehouseRackSid,
-- wrbd.warehouseRackName,
wrbd.amount,
wrbd.cost,
wrbd.taxAmount,
wrbd.taxPrice,
wrbd.actualInCount,
wrbd.rejectCount,
wrbd.rejectReason,
@ -24,7 +28,8 @@
wrbd.qualityState,
wrbd.packageRemark,
wrbd.state,
wrbd.sid detailsSid
wrbd.sid detailsSid,
wrbd.goodsSpuName
from wms_receipt_bill_detail wrbd
where billSid = #{sid}
</select>
@ -40,4 +45,4 @@
</if>
</select>
</mapper>
</mapper>

8
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailService.java

@ -42,6 +42,10 @@ public class WmsReceiptBillDetailService extends MybatisBaseService<WmsReceiptBi
});
}
public int deleteByBillSid(String sid) {
return baseMapper.deleteByBillSid(sid);
}
public void saveOrUpdateDetailsList2(String sid, List<WmsReceiptBillDetailDto2> list, List<WmsReceiptBillDetailBatchDto2> pcList) {
baseMapper.deleteByBillSid(sid);
list.forEach(v -> {
@ -67,7 +71,7 @@ public class WmsReceiptBillDetailService extends MybatisBaseService<WmsReceiptBi
return baseMapper.getDetailsInit(sid);
}
public List<WmsReceiptBillDetail> selectByBillSid(String sid,List<String> sidList) {
return baseMapper.selectByBillSid(sid,sidList);
public List<WmsReceiptBillDetail> selectByBillSid(String sid, List<String> sidList) {
return baseMapper.selectByBillSid(sid, sidList);
}
}

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java

@ -18,6 +18,8 @@ public class WmsReceiptBillDetailVo {
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品goodSpuSid")
private String goodSpuSid;
@ApiModelProperty("商品Sku名称")
// private String goodsSkuTitle;
private String goodsSpuName;

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

@ -241,8 +241,8 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
ShelfInitListVo shelfInitListVo = new ShelfInitListVo();
BeanUtil.copyProperties(v, shelfInitListVo, "sid");
shelfInitListVo.setBatchNumber(wmsReceiptBillDetailBatch.getBatchNumber());
shelfInitListVo.setWarehouseSid(v.getWarehouseSid());
shelfInitListVo.setWarehouseRackSid(v.getWarehouseRackSid());
// shelfInitListVo.setWarehouseSid(v.getWarehouseSid());
// shelfInitListVo.setWarehouseRackSid(v.getWarehouseRackSid());
shelfInitListVo.setWarehouseRackCode("");
list.add(shelfInitListVo);
}

Loading…
Cancel
Save