diff --git a/yxt-as-ui/src/api/operation/repairbill.js b/yxt-as-ui/src/api/operation/repairbill.js index 0dc7329b17..b65a68f9d0 100644 --- a/yxt-as-ui/src/api/operation/repairbill.js +++ b/yxt-as-ui/src/api/operation/repairbill.js @@ -75,11 +75,12 @@ export default { }) }, // 打印结算单 - printSettle: function(data) { + printSettlement: function(data) { return request({ - url: '/as/v1/AsBusrepairBill/printSettle', + url: '/as/v1/AsBusrepairBill/printSettlement', method: 'post', - params: data + data: data, + headers: { 'Content-Type': 'application/json' } }) }, // 确认工时费比例初始化 @@ -99,5 +100,13 @@ export default { data: data, headers: { 'Content-Type': 'application/json' } }) + }, + // 根据客户sid获取对应的对接人信息 + getListByCustomerSid: function(data) { + return request({ + url: '/crm/v1/crmdockingpeople/getListByCustomerSid', + method: 'get', + params: data + }) } } diff --git a/yxt-as-ui/src/router/index.js b/yxt-as-ui/src/router/index.js index f4bca1f898..712547b4d0 100644 --- a/yxt-as-ui/src/router/index.js +++ b/yxt-as-ui/src/router/index.js @@ -96,7 +96,7 @@ export const constantRoutes = [{ path: '/workorderquery/workorderquery', component: () => import('@/views/operation/workorderquery/workorderquery.vue'), name: 'WorkOrderQuery', - meta: { title: '工单查询', noCache: true } + meta: { title: '维修单查询', noCache: true } }, { path: '/workorderinvoicing/workorderinvoicing', @@ -435,7 +435,7 @@ export const constantRoutes = [{ path: '/filing/maintenanceEnterprise', component: () => import('@/views/client/filing/maintenanceEnterprise.vue'), name: 'MaintenanceEnterprise', - meta: { title: '定点企业备案', noCache: true } + meta: { title: '欠款月结客户备案', noCache: true } }, { path: '/customerunit/customerunit', diff --git a/yxt-as-ui/src/views/operation/preregistration/preregistrationAdd.vue b/yxt-as-ui/src/views/operation/preregistration/preregistrationAdd.vue index 694b630e14..9750378de5 100644 --- a/yxt-as-ui/src/views/operation/preregistration/preregistrationAdd.vue +++ b/yxt-as-ui/src/views/operation/preregistration/preregistrationAdd.vue @@ -55,7 +55,7 @@
*科目
- + @@ -81,7 +81,7 @@
-
服务项目
+
维修项目
添加
@@ -91,7 +91,7 @@ 删除 - + @@ -558,6 +630,14 @@ export default { viewTitle: '', viewState: 1, submitdisabled: false, + dialogVisible: false, // 打印结算单 + temp: { + sid: '', + type: '', + createOrgSid: '', + useOrgSid: '', + userSid: '' + }, updateAction: process.env.VUE_APP_BASE_API + '/portal/file/upload', fileList: [], headers: { @@ -568,6 +648,7 @@ export default { claimManufacturer_list: [], // 索赔厂家 group_list: [], // 班组 mainRepairersChange_list: [], // 主修人 + people_list: [], // 对接人 settleVisible: false, // 结算弹框 billType_list: [], // 单据类型 responsibility_list: [], // 责任划分 @@ -664,7 +745,9 @@ export default { invoiceType: '', invoiceTypeKey: '', invoiceCompanySid: '', - invoiceCompany: '' + invoiceCompany: '', + taxRate: '', + taxItems: [] }, insuranceVo: { responsibility: '', @@ -700,8 +783,11 @@ export default { addAmount: '', taxAmount: '', outAmount: '', + outKPAmount: '', subsidyAmount: '', + subsidyKPAmount: '', rescueAmount: '', + rescueKPAmount: '', actualAmount: '', receivableAmount: '', subsidyRemarks: '', @@ -713,7 +799,7 @@ export default { createOrgSid: '' }, rules: { - billType: [{ required: true, message: '工单类型不能为空', trigger: 'change' }], + billType: [{ required: true, message: '维修单类型不能为空', trigger: 'change' }], isGoOut: [{ required: true, message: '是否外出不能为空', trigger: 'change' }], subject: [{ required: true, message: '科目不能为空', trigger: 'change' }], estimatedFinishTime: [{ required: true, message: '预计完工不能为空', trigger: 'change' }], @@ -728,7 +814,7 @@ export default { } }, computed: { - // 计算工时费 = 服务项目列表中所有销售价之和 + // 计算工时费 = 维修项目列表中所有销售价之和 gsfTotal() { let gsf = '0' if (this.formobj.sitemVos.length > 0) { @@ -740,7 +826,7 @@ export default { } return gsf }, - // 计算材料费 = 商品列表中所有销售价 * 数量的和 + // 计算材料费 = 维修用料列表中所有销售价 * 数量的和 clfTotal() { let clf = '0' if (this.formobj.goodsDetailsVos.length > 0) { @@ -771,7 +857,7 @@ export default { ys = Math.round((parseFloat(ys) + parseFloat(this.gsfTotal) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal)) * 100) / 100 return ys }, - // 优惠 = 服务项目列表中的所有优惠之和 + 商品列表中所有优惠之和 + // 优惠 = 维修项目列表中的所有优惠之和 + 维修用料列表中所有优惠之和 yhTotal() { let yh = '0' if (this.formobj.sitemVos.length > 0) { @@ -907,9 +993,10 @@ export default { day: nowDate.getDate() } this.formobj.createDate = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day) - this.formobj.isGoOut = '0' + this.formobj.isGoOut = '2' this.formobj.nodeCode = '1' this.formobj.nodeName = '登记' + this.formobj.invoiceVo.isInvoicing = '0' }, showEdit(sid) { this.viewTitle = '【编辑】维修单' @@ -926,9 +1013,13 @@ export default { } }) }, - selectCustomer() { - this.viewState = 2 - this.$refs['divCus'].showData(this.formobj.deptSid, this.formobj.billType) + chooseCustomer() { + if (this.formobj.billType !== '') { + this.viewState = 2 + this.$refs['divCus'].showData(this.formobj.deptSid, this.formobj.billType) + } else { + this.$message({ showClose: true, type: 'error', message: '请先选择维修单类型' }) + } }, backData(value) { this.viewState = 1 @@ -940,6 +1031,14 @@ export default { this.formobj.vinNo = value.vinNo this.formobj.vehModel = value.vehModel this.formobj.customerSource = value.source + // 单据类型为欠款月结时,对接人信息需要从欠款月结客户中获取对应的对接人信息 + if (this.formobj.billTypeKey === '2') { + req.getListByCustomerSid({ customerSid: this.formobj.customerSid }).then((res) => { + if (res.success) { + this.people_list = res.data + } + }) + } }, billTypeChange(value) { const choose = this.billType_list.filter((item) => item.dictValue === value) @@ -984,6 +1083,16 @@ export default { this.formobj.mainRepairers = '' } }, + dockingPeopleChange(value) { + const choose = this.people_list.filter((item) => item.sid === value) + if (choose.length > 0 && choose !== null) { + this.formobj.dockingPeople = choose[0].name + this.formobj.dockingPhone = choose[0].mobile + } else { + this.formobj.dockingPeople = '' + this.formobj.dockingPhone = '' + } + }, responsibilityChange(value) { const choose = this.responsibility_list.filter((item) => item.dictValue === value) if (choose.length > 0 && choose !== null) { @@ -1040,6 +1149,14 @@ export default { insuranceDelete(index) { this.formobj.insuranceVo.insuranceList.splice(index, 1) }, + isInvoicingChange() { + if (this.formobj.invoiceVo.isInvoicing === '1') { + this.formobj.invoiceVo.taxItems = ['维修项目', '维修用料', '附加项目', '其它附加项目'] + } else { + this.formobj.invoiceVo.taxItems = [] + } + this.countChange() + }, invoiceTypeChange(value) { const choose = this.invoiceType_list.filter((item) => item.dictValue === value) if (choose.length > 0 && choose !== null) { @@ -1048,6 +1165,80 @@ export default { this.formobj.invoiceVo.invoiceTypeKey = '' } }, + // 发票信息中的税率或加税点项目发生变化时需要重新计算相关内容 + countChange() { + // 维修项目不为空时 + if (this.formobj.sitemVos.length > 0) { + // 加税点项目是否包含维修项目 + if (this.formobj.invoiceVo.taxItems.includes('维修项目')) { + this.formobj.sitemVos.forEach((e) => { + // 是,销售价 = 原销售价 + 原销售价 * (1 + 税率) + e.price = Math.round((parseFloat(e.sitemPrice) + parseFloat(e.sitemPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + this.computeYHAndXSJE(e) + }) + } else { + this.formobj.sitemVos.forEach((k) => { + // 否,销售价 = 原销售价 + k.price = k.sitemPrice + this.computeYHAndXSJE(k) + }) + } + } + // 维修用料不为空时 + if (this.formobj.goodsDetailsVos.length > 0) { + // 加税点项目是否包含维修用料 + if (this.formobj.invoiceVo.taxItems.includes('维修用料')) { + this.formobj.goodsDetailsVos.forEach((e) => { + // 是 + if (e.isTaxRate) { + // 商品进货价含税则销售价 = 原销售价 + e.price = e.goodsDetailsPrice + this.computeYHAndJE(e) + } else { + // 商品进货价不含税则销售价 = 原销售价 + 原销售价 * (1 + 税率) + e.price = Math.round((parseFloat(e.goodsDetailsPrice) + parseFloat(e.goodsDetailsPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + this.computeYHAndJE(e) + } + }) + } else { + this.formobj.goodsDetailsVos.forEach((k) => { + // 否,销售价 = 原销售价 + k.price = k.goodsDetailsPrice + this.computeYHAndJE(k) + }) + } + } + // 其它附加项目不为空时 + if (this.formobj.aitemVos.length > 0) { + // 加税点项目是否包含其它附加项目 + if (this.formobj.invoiceVo.taxItems.includes('其它附加项目')) { + this.formobj.aitemVos.forEach((e) => { + // 是,销售价 = 原销售价 + 原销售价 * (1 + 税率) + e.price = Math.round((parseFloat(e.aitemPrice) + parseFloat(e.aitemPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + }) + } else { + this.formobj.aitemVos.forEach((k) => { + // 否,销售价 = 原销售价 + k.price = k.aitemPrice + }) + } + } + // 附加项目,加税点项目是否包含附加项目 + if (this.formobj.invoiceVo.taxItems.includes('附加项目')) { + // 是 + // 外出费开票金额 = 原外出费 + 原外出费 * (1 + 税率) + this.formobj.outKPAmount = Math.round((parseFloat(this.formobj.outAmount !== '' ? this.formobj.outAmount : '0') + parseFloat(this.formobj.outAmount !== '' ? this.formobj.outAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + // 厂家补助开票金额 = 原厂家补助 + 原厂家补助 * (1 + 税率) + this.formobj.subsidyKPAmount = Math.round((parseFloat(this.formobj.subsidyAmount !== '' ? this.formobj.subsidyAmount : '0') + parseFloat(this.formobj.subsidyAmount !== '' ? this.formobj.subsidyAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + // 施救费开票金额 = 原施救费 + 原施救费 * (1 + 税率) + this.formobj.rescueKPAmount = Math.round((parseFloat(this.formobj.rescueAmount !== '' ? this.formobj.rescueAmount : '0') + parseFloat(this.formobj.rescueAmount !== '' ? this.formobj.rescueAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + } else { + // 否 + this.formobj.outKPAmount = '' + this.formobj.subsidyKPAmount = '' + this.formobj.rescueKPAmount = '' + } + }, serviceAdd() { this.formobj.sitemVos.push({ serviceItemSid: '', @@ -1060,6 +1251,7 @@ export default { hourPrice: '', hours: '', price: '', + sitemPrice: '', // 原销售价 discount: '', discountAmount: '', amount: '', @@ -1097,7 +1289,13 @@ export default { row.examineHourPrice = value.examineHourPrice row.hourPrice = value.hourPrice row.hours = value.hours - row.price = value.price + row.sitemPrice = value.price + if (this.formobj.invoiceVo.isInvoicing === '1' && this.formobj.invoiceVo.taxItems.length > 0 && this.formobj.invoiceVo.taxItems.includes('维修项目')) { + // 是否开发票为是且选择加税点的项目中包含维修项目,则销售价 = 原销售价 + 原销售价 * ( 1 + 税率 ) + row.price = Math.round((parseFloat(row.sitemPrice) + parseFloat(row.sitemPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + } else { + row.price = row.sitemPrice + } row.discount = '10' row.discountAmount = '0' row.amount = row.price @@ -1120,7 +1318,18 @@ export default { }) row.staffNameList = aa }, - // 计算优惠、销售金额 -- 服务项目列表 + partsSellerChange(row, list) { + const aa = [] + list.forEach((e) => { + this.user_list.forEach((k) => { + if (e === k.sid) { + aa.push(k.name) + } + }) + }) + row.partsSellers = aa + }, + // 计算优惠、销售金额 -- 维修项目列表 computeYHAndXSJE(row) { // 计算优惠(销售价 * (1 - (折扣 * 0.1))) row.discountAmount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * Math.round((parseFloat(1) - parseFloat(row.discount === '' ? '0' : row.discount) * parseFloat(0.1)) * 100) / 100) * 100) / 100 @@ -1131,7 +1340,7 @@ export default { row.amount = Math.round((parseFloat(row.price === '' ? '0' : row.price) - parseFloat(row.discountAmount === '' ? '0' : row.discountAmount)) * 100) / 100 } }, - // 计算优惠、销售金额 -- 上你列表 + // 计算优惠、销售金额 -- 维修用料列表 computeYHAndJE(row) { // 计算优惠(销售价 * 数量 * (1 - (折扣 * 0.1))) row.discountAmount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * parseFloat(row.count !== '' ? row.count : '0') * Math.round((parseFloat(1) - parseFloat(row.discount === '' ? '0' : row.discount) * parseFloat(0.1)) * 100) / 100) * 100) / 100 @@ -1142,11 +1351,48 @@ export default { row.amount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * parseFloat(row.count !== '' ? row.count : '0') - parseFloat(row.discountAmount === '' ? '0' : row.discountAmount)) * 100) / 100 } }, + // 计算外出费开票金额 -- 附加项目 + outKPAountInput() { + // 附加项目,加税点项目是否包含附加项目 + if (this.formobj.invoiceVo.taxItems.includes('附加项目')) { + // 是 + // 外出费开票金额 = 原外出费 + 原外出费 * (1 + 税率) + this.formobj.outKPAmount = Math.round((parseFloat(this.formobj.outAmount !== '' ? this.formobj.outAmount : '0') + parseFloat(this.formobj.outAmount !== '' ? this.formobj.outAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + } else { + // 否 + this.formobj.outKPAmount = '' + } + }, + // 计算厂家补助开票金额 -- 附加项目 + subsidyKPAountInput() { + // 附加项目,加税点项目是否包含附加项目 + if (this.formobj.invoiceVo.taxItems.includes('附加项目')) { + // 是 + // 厂家补助开票金额 = 原厂家补助 + 原厂家补助 * (1 + 税率) + this.formobj.subsidyKPAmount = Math.round((parseFloat(this.formobj.subsidyAmount !== '' ? this.formobj.subsidyAmount : '0') + parseFloat(this.formobj.subsidyAmount !== '' ? this.formobj.subsidyAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + } else { + // 否 + this.formobj.subsidyKPAmount = '' + } + }, + // 计算施救费开票金额 -- 附加项目 + rescueKPAountInput() { + // 附加项目,加税点项目是否包含附加项目 + if (this.formobj.invoiceVo.taxItems.includes('附加项目')) { + // 是 + // 施救费开票金额 = 原施救费 + 原施救费 * (1 + 税率) + this.formobj.rescueKPAmount = Math.round((parseFloat(this.formobj.rescueAmount !== '' ? this.formobj.rescueAmount : '0') + parseFloat(this.formobj.rescueAmount !== '' ? this.formobj.rescueAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + } else { + // 否 + this.formobj.rescueKPAmount = '' + } + }, subjoinAdd() { this.formobj.aitemVos.push({ aitemSid: '', aitemName: '', - price: '' + price: '', + aitemPrice: '' // 原销售价 }) }, subjoinInput(value) { @@ -1171,7 +1417,13 @@ export default { subjoinCurrentChange(value, row) { row.aitemSid = value.sid row.aitemName = value.aitemName - row.price = value.price + row.aitemPrice = value.price + if (this.formobj.invoiceVo.isInvoicing === '1' && this.formobj.invoiceVo.taxItems.length > 0 && this.formobj.invoiceVo.taxItems.includes('其它附加项目')) { + // 是否开发票为是且选择加税点的项目中包含其它附加项目,则销售价 = 原销售价 + 原销售价 * ( 1 + 税率 ) + row.price = Math.round((parseFloat(row.aitemPrice) + parseFloat(row.aitemPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100 + } else { + row.price = row.aitemPrice + } document.body.click() }, handleSuccess(resp, file, fileList) { @@ -1196,8 +1448,22 @@ export default { this.formobj.operatorSid = window.sessionStorage.getItem('userSid') this.$refs['form_obj'].validate((valid) => { if (valid) { + if (this.formobj.billTypeKey === '2' && this.formobj.dockingPeople === '') { + this.$message({ showClose: true, type: 'error', message: '维修单类类型为欠款月结,对接人信息不能为空' }) + return + } + if (this.formobj.subject === '保外' && this.formobj.invoiceVo.isInvoicing === '1') { + if (this.formobj.invoiceVo.invoiceType === '') { + this.$message({ showClose: true, type: 'error', message: '发票信息中是否开发票为是,开票类型不能为空' }) + return + } + if (this.formobj.invoiceVo.taxRate === '') { + this.$message({ showClose: true, type: 'error', message: '发票信息中是否开发票为是,税率不能为空' }) + return + } + } if (this.formobj.sitemVos.length === 0) { - this.$message({ showClose: true, type: 'error', message: '服务项目列表不能为空' }) + this.$message({ showClose: true, type: 'error', message: '维修项目列表不能为空' }) return } this.formobj.hourAmount = this.gsfTotal // 工时费 @@ -1226,8 +1492,22 @@ export default { this.formobj.operatorSid = window.sessionStorage.getItem('userSid') this.$refs['form_obj'].validate((valid) => { if (valid) { + if (this.formobj.billTypeKey === '2' && this.formobj.dockingPeople === '') { + this.$message({ showClose: true, type: 'error', message: '维修单类类型为欠款月结,对接人信息不能为空' }) + return + } + if (this.formobj.subject === '保外' && this.formobj.invoiceVo.isInvoicing === '1') { + if (this.formobj.invoiceVo.invoiceType === '') { + this.$message({ showClose: true, type: 'error', message: '发票信息中是否开发票为是,开票类型不能为空' }) + return + } + if (this.formobj.invoiceVo.taxRate === '') { + this.$message({ showClose: true, type: 'error', message: '发票信息中是否开发票为是,税率不能为空' }) + return + } + } if (this.formobj.sitemVos.length === 0) { - this.$message({ showClose: true, type: 'error', message: '服务项目列表不能为空' }) + this.$message({ showClose: true, type: 'error', message: '维修项目列表不能为空' }) return } this.submitdisabled = true @@ -1250,7 +1530,7 @@ export default { this.$refs['form_obj'].validate((valid) => { if (valid) { if (this.formobj.sitemVos.length === 0) { - this.$message({ showClose: true, type: 'error', message: '服务项目列表不能为空' }) + this.$message({ showClose: true, type: 'error', message: '维修项目列表不能为空' }) return } this.submitdisabled = true @@ -1321,7 +1601,18 @@ export default { }) }, toPrintSettle() { - req.printSettle({ sid: this.formobj.sid }).then((res) => { + if (this.formobj.subject === '保内') { + this.dialogVisible = true + } else { + this.printSettle() + } + }, + printSettle() { + this.temp.sid = this.formobj.sid + this.temp.createOrgSid = this.formobj.createOrgSid + this.temp.useOrgSid = this.formobj.deptSid + this.temp.userSid = this.formobj.createBySid + req.printSettlement(this.temp).then((res) => { if (res.success) { var xhr = new XMLHttpRequest() xhr.open('GET', process.env.VUE_APP_BASE_API + '/base/file/download?filePath=' + res.data + '&outFileName=' + '结算单', true) @@ -1346,6 +1637,14 @@ export default { } }) }, + handleConfirm() { + if (this.temp.type !== '') { + this.dialogVisible = false + this.printSettle() + } else { + this.$message({ showClose: true, type: 'error', message: '打印类型不能为空' }) + } + }, resetState() { this.viewState = 1 }, @@ -1405,7 +1704,9 @@ export default { invoiceType: '', invoiceTypeKey: '', invoiceCompanySid: '', - invoiceCompany: '' + invoiceCompany: '', + taxRate: '', + taxItems: [] }, insuranceVo: { responsibility: '', @@ -1441,8 +1742,11 @@ export default { addAmount: '', taxAmount: '', outAmount: '', + outKPAmount: '', subsidyAmount: '', + subsidyKPAmount: '', rescueAmount: '', + rescueKPAmount: '', actualAmount: '', receivableAmount: '', subsidyRemarks: '', diff --git a/yxt-as-ui/src/views/operation/repairbill/repairbillBYLeaveFactory.vue b/yxt-as-ui/src/views/operation/repairbill/repairbillBYLeaveFactory.vue index 40abe7d9f0..22f665cb1a 100644 --- a/yxt-as-ui/src/views/operation/repairbill/repairbillBYLeaveFactory.vue +++ b/yxt-as-ui/src/views/operation/repairbill/repairbillBYLeaveFactory.vue @@ -2,7 +2,7 @@
- +
@@ -26,7 +26,7 @@ - + @@ -97,7 +97,7 @@ {{ scope.row.outDoorState == '1' ? '是' : scope.row.outDoorState == '0' ? '否' :'' }} - + @@ -107,7 +107,7 @@ - + diff --git a/yxt-as-ui/src/views/operation/repairbill/repairbillByBeCompleted.vue b/yxt-as-ui/src/views/operation/repairbill/repairbillByBeCompleted.vue index 1e5c7b70f1..150f91e8b4 100644 --- a/yxt-as-ui/src/views/operation/repairbill/repairbillByBeCompleted.vue +++ b/yxt-as-ui/src/views/operation/repairbill/repairbillByBeCompleted.vue @@ -2,7 +2,7 @@
- +
@@ -26,7 +26,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -211,13 +211,6 @@ export default { btnKey: 'toEdit', btnLabel: '编辑' }, - { - type: 'danger', - size: 'small', - icon: 'del', - btnKey: 'doDel', - btnLabel: '删除' - }, { type: 'info', size: 'small', @@ -314,9 +307,6 @@ export default { case 'toEdit': this.toEdit() break - case 'doDel': - this.doDel() - break case 'doClose': this.doClose() break @@ -435,36 +425,6 @@ export default { this.viewState = 4 this.$refs['divInfo'].showInfo(row) }, - // 删除 - doDel() { - if (this.sids.length === 0) { - this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' }) - return - } - const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?' - this.$confirm(tip, '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }).then(() => { - const loading = this.$loading({ - lock: true, - text: 'Loading', - spinner: 'el-icon-loading', - background: 'rgba(0, 0, 0, 0.7)' - }) - req.deleteBySids(this.sids).then(resp => { - if (resp.success) { - this.$message({ type: 'success', message: resp.msg, showClose: true }) - } - this.getList() - loading.close() - }).catch(e => { - loading.close() - }) - }).catch(() => { - }) - }, // 修改、编辑、详情返回列表页面 resetState() { this.viewState = 1 diff --git a/yxt-as-ui/src/views/operation/repairbill/repairbillByMaintain.vue b/yxt-as-ui/src/views/operation/repairbill/repairbillByMaintain.vue index ff645f93bf..6efb266870 100644 --- a/yxt-as-ui/src/views/operation/repairbill/repairbillByMaintain.vue +++ b/yxt-as-ui/src/views/operation/repairbill/repairbillByMaintain.vue @@ -2,7 +2,7 @@
- +
@@ -26,7 +26,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -168,13 +168,6 @@ export default { btnKey: 'toEdit', btnLabel: '编辑' }, - { - type: 'danger', - size: 'small', - icon: 'del', - btnKey: 'doDel', - btnLabel: '删除' - }, { type: 'info', size: 'small', @@ -268,9 +261,6 @@ export default { case 'toEdit': this.toEdit() break - case 'doDel': - this.doDel() - break case 'doClose': this.doClose() break @@ -363,36 +353,6 @@ export default { this.viewState = 4 this.$refs['divInfo'].showInfo(row) }, - // 删除 - doDel() { - if (this.sids.length === 0) { - this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' }) - return - } - const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?' - this.$confirm(tip, '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }).then(() => { - const loading = this.$loading({ - lock: true, - text: 'Loading', - spinner: 'el-icon-loading', - background: 'rgba(0, 0, 0, 0.7)' - }) - req.deleteBySids(this.sids).then(resp => { - if (resp.success) { - this.$message({ type: 'success', message: resp.msg, showClose: true }) - } - this.getList() - loading.close() - }).catch(e => { - loading.close() - }) - }).catch(() => { - }) - }, // 修改、编辑、详情返回列表页面 resetState() { this.viewState = 1 diff --git a/yxt-as-ui/src/views/operation/repairbill/repairbillBySendWork.vue b/yxt-as-ui/src/views/operation/repairbill/repairbillBySendWork.vue index 82f9708151..c3f06af214 100644 --- a/yxt-as-ui/src/views/operation/repairbill/repairbillBySendWork.vue +++ b/yxt-as-ui/src/views/operation/repairbill/repairbillBySendWork.vue @@ -2,7 +2,7 @@
- +
@@ -26,7 +26,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -168,13 +168,6 @@ export default { btnKey: 'toEdit', btnLabel: '编辑' }, - { - type: 'danger', - size: 'small', - icon: 'del', - btnKey: 'doDel', - btnLabel: '删除' - }, { type: 'info', size: 'small', @@ -268,9 +261,6 @@ export default { case 'toEdit': this.toEdit() break - case 'doDel': - this.doDel() - break case 'doClose': this.doClose() break @@ -363,36 +353,6 @@ export default { this.viewState = 4 this.$refs['divInfo'].showInfo(row) }, - // 删除 - doDel() { - if (this.sids.length === 0) { - this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' }) - return - } - const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?' - this.$confirm(tip, '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }).then(() => { - const loading = this.$loading({ - lock: true, - text: 'Loading', - spinner: 'el-icon-loading', - background: 'rgba(0, 0, 0, 0.7)' - }) - req.deleteBySids(this.sids).then(resp => { - if (resp.success) { - this.$message({ type: 'success', message: resp.msg, showClose: true }) - } - this.getList() - loading.close() - }).catch(e => { - loading.close() - }) - }).catch(() => { - }) - }, // 修改、编辑、详情返回列表页面 resetState() { this.viewState = 1 diff --git a/yxt-as-ui/src/views/operation/repairbill/repairbillBySettleAccounts.vue b/yxt-as-ui/src/views/operation/repairbill/repairbillBySettleAccounts.vue index 99f9d4d3a3..e09b6a41d3 100644 --- a/yxt-as-ui/src/views/operation/repairbill/repairbillBySettleAccounts.vue +++ b/yxt-as-ui/src/views/operation/repairbill/repairbillBySettleAccounts.vue @@ -2,7 +2,7 @@
- +
@@ -26,7 +26,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -169,13 +169,6 @@ export default { btnKey: 'toEdit', btnLabel: '编辑' }, - { - type: 'danger', - size: 'small', - icon: 'del', - btnKey: 'doDel', - btnLabel: '删除' - }, { type: 'info', size: 'small', @@ -269,9 +262,6 @@ export default { case 'toEdit': this.toEdit() break - case 'doDel': - this.doDel() - break case 'doClose': this.doClose() break @@ -364,36 +354,6 @@ export default { this.viewState = 4 this.$refs['divInfo'].showInfo(row) }, - // 删除 - doDel() { - if (this.sids.length === 0) { - this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' }) - return - } - const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?' - this.$confirm(tip, '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }).then(() => { - const loading = this.$loading({ - lock: true, - text: 'Loading', - spinner: 'el-icon-loading', - background: 'rgba(0, 0, 0, 0.7)' - }) - req.deleteBySids(this.sids).then(resp => { - if (resp.success) { - this.$message({ type: 'success', message: resp.msg, showClose: true }) - } - this.getList() - loading.close() - }).catch(e => { - loading.close() - }) - }).catch(() => { - }) - }, // 修改、编辑、详情返回列表页面 resetState() { this.viewState = 1 diff --git a/yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue b/yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue index ecc8d7e751..fe36bfc680 100644 --- a/yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue +++ b/yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue @@ -26,7 +26,7 @@ -
工单类型
+
维修单类型
{{ formobj.billType }}
@@ -137,7 +137,7 @@
- +
责任划分
@@ -162,7 +162,7 @@
- +
是否开发票
@@ -172,17 +172,34 @@
发票类型
{{ formobj.invoiceVo.invoiceType }}
+ +
税率
+ {{ formobj.invoiceVo.taxRate }} +
+
+
开票单位
{{ formobj.invoiceVo.invoiceCompany }}
+ +
加税点的项目
+ + + + + + + + +
-
服务项目
+
维修项目
- + @@ -194,7 +211,7 @@ -
商品
+
维修用料
前台登记时对商品要求备注
@@ -203,24 +220,33 @@
+ - + - + + + +
附加项目
外出费(元)
- {{ formobj.outAmount }} + +
+ {{ formobj.outAmount }} + 开票金额:{{ formobj.outKPAmount }} +
+
备注
@@ -230,7 +256,12 @@
厂家补助(元)
- {{ formobj.subsidyAmount }} + +
+ {{ formobj.subsidyAmount }} + 开票金额:{{ formobj.subsidyKPAmount }} +
+
备注
@@ -240,7 +271,12 @@
施救费(元)
- {{ formobj.rescueAmount }} + +
+ {{ formobj.rescueAmount }} + 开票金额:{{ formobj.rescueKPAmount }} +
+
备注
@@ -263,7 +299,7 @@
应收合计:
- {{ ysTotal }} = 工时费:{{ gsfTotal }} + 材料费:{{ clfTotal }} + 附加费:{{ fjfTotal }} + 税额:0 + {{ ysTotal }} = 工时费:{{ gsfTotal }} + 材料费:{{ clfTotal }} + 附加费:{{ fjfTotal }}
@@ -355,7 +391,9 @@ export default { invoiceType: '', invoiceTypeKey: '', invoiceCompanySid: '', - invoiceCompany: '' + invoiceCompany: '', + taxRate: '', + taxItems: [] }, insuranceVo: { responsibility: '', @@ -391,8 +429,11 @@ export default { addAmount: '', taxAmount: '', outAmount: '', + outKPAmount: '', subsidyAmount: '', + subsidyKPAmount: '', rescueAmount: '', + rescueKPAmount: '', actualAmount: '', receivableAmount: '', subsidyRemarks: '', @@ -407,7 +448,7 @@ export default { } }, computed: { - // 计算工时费 = 服务项目列表中所有销售价之和 + // 计算工时费 = 维修项目列表中所有销售价之和 gsfTotal() { let gsf = '0' if (this.formobj.sitemVos.length > 0) { @@ -450,7 +491,7 @@ export default { ys = Math.round((parseFloat(ys) + parseFloat(this.gsfTotal) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal)) * 100) / 100 return ys }, - // 优惠 = 服务项目列表中的所有优惠之和 + 商品列表中所有优惠之和 + // 优惠 = 维修项目列表中的所有优惠之和 + 商品列表中所有优惠之和 yhTotal() { let yh = '0' if (this.formobj.sitemVos.length > 0) { @@ -492,6 +533,13 @@ export default { } }) } + if (this.formobj.goodsDetailsVos.length > 0) { + this.formobj.goodsDetailsVos.forEach((e) => { + if (e.partsSellers.length > 0) { + e.partsSellers = e.partsSellers.join(',') + } + }) + } } }) }, @@ -560,7 +608,9 @@ export default { invoiceType: '', invoiceTypeKey: '', invoiceCompanySid: '', - invoiceCompany: '' + invoiceCompany: '', + taxRate: '', + taxItems: [] }, insuranceVo: { responsibility: '', @@ -596,8 +646,11 @@ export default { addAmount: '', taxAmount: '', outAmount: '', + outKPAmount: '', subsidyAmount: '', + subsidyKPAmount: '', rescueAmount: '', + rescueKPAmount: '', actualAmount: '', receivableAmount: '', subsidyRemarks: '', diff --git a/yxt-as-ui/src/views/operation/workorderquery/workorderquery.vue b/yxt-as-ui/src/views/operation/workorderquery/workorderquery.vue index f5f5f921cf..2c719c2169 100644 --- a/yxt-as-ui/src/views/operation/workorderquery/workorderquery.vue +++ b/yxt-as-ui/src/views/operation/workorderquery/workorderquery.vue @@ -2,7 +2,7 @@
- +
@@ -26,7 +26,7 @@ - + @@ -84,7 +84,7 @@
-
工单查询列表
+
维修单查询列表
@@ -102,7 +102,7 @@ - + diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java index 1a850ddfc7..e374661c4c 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java @@ -141,4 +141,13 @@ public class AsBusrepairBill extends BaseEntity { private Integer isOutFactory; @ApiModelProperty("出库确认备注") private String outboundRemarks; + @ApiModelProperty("对接人sid") + private String dockingPeopleSid; + @ApiModelProperty("对接人") + private String dockingPeople; + @ApiModelProperty("对接人电话") + private String dockingPhone; + @ApiModelProperty("是否确认材料费(1是,0否)") + private Integer materialConfirm; + } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java index dc47982e69..8fc427e34b 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java @@ -25,8 +25,12 @@ public class AsBusrepairBillDetailsVo implements Vo { private String claimManufacturerSid; @ApiModelProperty("特殊标志(1有,0无)") private String isSpecialSign; + @ApiModelProperty("特殊标志(1有,0无)") + private String isSpecialSign2; @ApiModelProperty("客户来源 ") private String customerSource; + @ApiModelProperty("客户来源 ") + private String customerSource2; @ApiModelProperty("对接人sid") private String dockingPeopleSid; @ApiModelProperty("对接人") @@ -49,6 +53,9 @@ public class AsBusrepairBillDetailsVo implements Vo { private String taxAmount; @ApiModelProperty("是否外出(1是,2否)") private String isGoOut; + @ApiModelProperty("是否外出(1是,2否)") + private String isGoOut2; + @ApiModelProperty("厂家补助") private String subsidyAmount; @ApiModelProperty("其他费用") @@ -167,4 +174,5 @@ public class AsBusrepairBillDetailsVo implements Vo { private List fileName = new ArrayList<>(); //文件名称 @ApiModelProperty("商品登记备注") private String registerRemarks; + private List files = new ArrayList<>(); //文件名称 } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java index 9395dcfabb..b159509e20 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java @@ -151,4 +151,6 @@ public class AsBusrepairBillDto implements Dto { private List fileName = new ArrayList<>(); //文件名称 @ApiModelProperty("商品登记备注") private String registerRemarks; + @ApiModelProperty("附加费") + private String addAmount; } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/GoodsDetailsVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/GoodsDetailsVo.java index 88852b4b92..5d2b033fb9 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/GoodsDetailsVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/GoodsDetailsVo.java @@ -68,5 +68,9 @@ public class GoodsDetailsVo implements Vo { private List partsSellersSids = new ArrayList<>(); @ApiModelProperty("配件销售") private List partsSellers = new ArrayList<>(); + @ApiModelProperty("维修项目") + private String serviceItem; + @ApiModelProperty("配件销售人") + private String partsSellers2; } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InsuranceVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InsuranceVo.java index 3417e91956..6004d83029 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InsuranceVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InsuranceVo.java @@ -20,6 +20,8 @@ public class InsuranceVo { private String responsibilityKey; @ApiModelProperty("是否存在人伤(1是,0否)") private String isPersonInjuries; + @ApiModelProperty("是否存在人伤(1是,0否)") + private String isPersonInjuries2; @ApiModelProperty("责任比例Key") private String responsibilityRatioKey; @ApiModelProperty("责任比例") diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InvoiceVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InvoiceVo.java index acb73550c8..ba6f106300 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InvoiceVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/InvoiceVo.java @@ -17,6 +17,8 @@ public class InvoiceVo { @ApiModelProperty("是否需要开发票(是1,否0)") private String isInvoicing; + @ApiModelProperty("是否需要开发票(是1,否0)") + private String isInvoicing2; @ApiModelProperty("发票类型") private String invoiceType; @ApiModelProperty("发票类型") @@ -35,4 +37,6 @@ public class InvoiceVo { private String invoiceCompany; @ApiModelProperty("加税点项目“,”英文逗号拼接") private List taxItems = new ArrayList<>(); + @ApiModelProperty("加税点项目") + private String taxItems2; } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SitemVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SitemVo.java index b7cff9f8e8..ca304690b5 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SitemVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SitemVo.java @@ -45,6 +45,10 @@ public class SitemVo { private String repairerName; @ApiModelProperty("销售价格常量") private String sitemPrice; + @ApiModelProperty("维修技师 ‘、’ 拼接") + private String staffNames; + @ApiModelProperty("单价-100,工时数-5小时,提成-100") + private String manHourInfo; //-------------维修人员--------------- // @ApiModelProperty("维修人员sid") // private String repairerSid; diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveListVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveListVo.java new file mode 100644 index 0000000000..f30ee2c964 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveListVo.java @@ -0,0 +1,29 @@ +package com.yxt.anrui.as.api.asbusrepairbill.app; + +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/8/2 15:27 + */ +@Data +public class GoodsReceiveListVo { + + + /** + * 数量 + */ + private String num; + /** + * 记录sid + */ + private String sid; + /** + * 商品相关信息,商品名称+换行符+图号 + */ + private String val; +// +// private String goodsSpuName; +// private String goodsSkuCode; +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveQuery.java new file mode 100644 index 0000000000..fbabeb2baa --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveQuery.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.as.api.asbusrepairbill.app; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/8/2 15:23 + */ +@Data +public class GoodsReceiveQuery implements Query { + private String menuSid; + /** + * jkeyword + */ + private String name; + private String orgPath; + private String userSid; +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveSubmit.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveSubmit.java new file mode 100644 index 0000000000..b9b756bfb5 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveSubmit.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.as.api.asbusrepairbill.app; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Fan + * @description + * @date 2024/8/2 16:23 + */ +@Data +public class GoodsReceiveSubmit { + + private String userSid; + private List list = new ArrayList<>(); +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveVo.java new file mode 100644 index 0000000000..800efa67e9 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/app/GoodsReceiveVo.java @@ -0,0 +1,48 @@ +package com.yxt.anrui.as.api.asbusrepairbill.app; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Fan + * @description + * @date 2024/8/2 15:23 + */ +@Data +public class GoodsReceiveVo { + + /** + * 工单编号 + */ + private String billId; + /** + * 工单类型 + */ + private String billType; + /** + * 客户名称 + */ + private String customerName; + /** + * 进厂时间 + */ + private String entryTime; + /** + * 车架号集合 + */ + private List list = new ArrayList<>(); + /** + * 维修工单sid + */ + private String sid; + /** + * 科目 + */ + private String subject; + /** + * 车牌号 + */ + private String vehMark; +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventoryBillInit.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventoryBillInit.java index 89ec534ed1..dfd5dd1f12 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventoryBillInit.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventoryBillInit.java @@ -62,6 +62,7 @@ public class AsBusrepairInventoryBillInit { private List sitemVoList = new ArrayList<>(); @ApiModelProperty("商品登记备注") private String registerRemarks; + private String isGoOut; private List detailList = new ArrayList<>(); } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java index eb35c2b54b..d3205b78da 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java @@ -1,10 +1,12 @@ package com.yxt.anrui.as.api.asbusrepairinventorybilldetail; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; /** * @description: @@ -83,4 +85,8 @@ public class AsBusrepairInventorybillDetail extends BaseEntity { private String partsSellersSid; @ApiModelProperty("配件销售") private String partsSellers; + + @ApiModelProperty("接收时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date receivedTime; } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java index 1b6422c91d..8920f05b17 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.as.api.asbusrepairbill.*; +import com.yxt.anrui.as.api.asbusrepairbill.app.GoodsReceiveListVo; +import com.yxt.anrui.as.api.asbusrepairbill.app.GoodsReceiveVo; import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.SitemsVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -50,4 +52,8 @@ public interface AsBusrepairBillMapper extends BaseMapper { @Update("update as_busrepair_bill set isOutFactory = '1' where sid = #{sid}") void updateOutFactory(String sid); + + IPage notConfirmList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + List selGoodsReceiveByBillSid(@Param("sid") String sid); } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml index cbfc4e29f8..568e267b86 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml @@ -182,4 +182,34 @@ ${ew.sqlSegment} + + diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java index 0b7ad14bca..06d8f4e8c3 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java @@ -1,6 +1,9 @@ package com.yxt.anrui.as.biz.asbusrepairbill; import com.yxt.anrui.as.api.asbusrepairbill.*; +import com.yxt.anrui.as.api.asbusrepairbill.app.GoodsReceiveQuery; +import com.yxt.anrui.as.api.asbusrepairbill.app.GoodsReceiveSubmit; +import com.yxt.anrui.as.api.asbusrepairbill.app.GoodsReceiveVo; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -175,4 +178,27 @@ public class AsBusrepairBillRest { PagerVo pv = asBusrepairBillService.bwBillPageList(pagerQuery); return rb.success().setData(pv); } + + //----------------------------app配件接收----------------------------- + @PostMapping("/notConfirmList") + @ApiOperation("获取配件确认列表") + ResultBean> notConfirmList(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = asBusrepairBillService.notConfirmList(pagerQuery); + return rb.success().setData(pv); + } + + @PostMapping("/submitList") + @ApiOperation("配件确认提交") + ResultBean submitList(@RequestBody GoodsReceiveSubmit query) { + ResultBean rb = ResultBean.fireFail(); + asBusrepairBillService.submitList(query); + return rb.success(); + } + + @ApiOperation("app详情回显") + @GetMapping("/fetchDetailsBySid2/{sid}") + public ResultBean fetchDetailsBySid2(@PathVariable("sid") String sid) { + return asBusrepairBillService.fetchDetailsBySid(sid); + } } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java index 48ee92ebea..ac299f01c3 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java @@ -7,6 +7,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.as.api.asappendix.AsAppendix; import com.yxt.anrui.as.api.asbusrepairbill.*; +import com.yxt.anrui.as.api.asbusrepairbill.app.GoodsReceiveListVo; +import com.yxt.anrui.as.api.asbusrepairbill.app.GoodsReceiveQuery; +import com.yxt.anrui.as.api.asbusrepairbill.app.GoodsReceiveSubmit; +import com.yxt.anrui.as.api.asbusrepairbill.app.GoodsReceiveVo; import com.yxt.anrui.as.api.asbusrepairbillaitem.AsBusrepairBillAitem; import com.yxt.anrui.as.api.asbusrepairbillinsurance.AsBusrepairBillInsurance; import com.yxt.anrui.as.api.asbusrepairbillinsurancerecord.AsBusrepairBillInsuranceRecord; @@ -60,9 +64,12 @@ import com.yxt.anrui.as.feign.sms.SmsGoods; import com.yxt.anrui.as.feign.sms.SmsGoodsFeign; import com.yxt.anrui.as.feign.wms.wmsoldinventory.WmsOldInventoryFeign; import com.yxt.anrui.as.feign.wms.wmsoldinventory.WmsOldInventoryPush; +import com.yxt.common.base.config.component.DocPdfComponent; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.ConstantUtils; import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.WordConvertUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -72,12 +79,17 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.io.File; +import java.io.InputStream; import java.math.BigDecimal; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.ZoneId; import java.util.*; +import static java.util.Comparator.comparing; + /** * @description: * @author: dimengzhe @@ -134,6 +146,9 @@ public class AsBusrepairBillService extends MybatisBaseService()); + } + if (null != invoice.getIsInvoicing()) { + if (invoice.getIsInvoicing().intValue() == 1) { + invoiceVo.setIsInvoicing2("是"); + } else if (invoice.getIsInvoicing().intValue() == 0) { + invoiceVo.setIsInvoicing2("否"); + } } vo.setInvoiceVo(invoiceVo); } AsBusrepairBillInsurance insurance = asBusrepairBillInsuranceService.fetchByBillSid(sid); if (null != insurance) { BeanUtil.copyProperties(insurance, insuranceVo); + if (StringUtils.isNotBlank(insurance.getIsPersonInjuries())) { + if (insurance.getIsPersonInjuries().equals("1")) { + insuranceVo.setIsPersonInjuries2("是"); + } else if (insurance.getIsPersonInjuries().equals("0")) { + insuranceVo.setIsPersonInjuries2("否"); + } + } } List insuranceRecord = asBusrepairBillInsuranceRecordService.fetchByBillSid(sid); if (!insuranceRecord.isEmpty()) { @@ -534,6 +587,19 @@ public class AsBusrepairBillService extends MybatisBaseService repairers = asBusrepairBillSitemRepairerService.fetchByBillSid(sid, sitem.getServiceItemSid()); if (!repairers.isEmpty()) { List staffList = new ArrayList<>(); //维修人员信息 @@ -548,6 +614,7 @@ public class AsBusrepairBillService extends MybatisBaseService goodsDetails = asBusrepairInventorybillDetailService.getGoodsDetailsByBillSid(sid); + DecimalFormat df2 =new DecimalFormat("#.00"); if (!goodsDetails.isEmpty()) { for (AsBusrepairInventorybillDetail goodsDetail : goodsDetails) { GoodsDetailsVo goodsDetailsVo = new GoodsDetailsVo(); BeanUtil.copyProperties(goodsDetail, goodsDetailsVo); BigDecimal constPrice = BigDecimal.ZERO; //销售价常量 boolean isTaxRate = false; //进货价是否含税 + if (null != goodsDetail.getReceivedTime()) { + goodsDetailsVo.setReceivedTime(sdf.format(goodsDetail.getReceivedTime())); + } SmsGoods smsGoods = smsGoodsFeign.fetchEntityByGoodsID(goodsDetail.getGoodsID()).getData(); if (null != smsGoods) { if (StringUtils.isNotBlank(smsGoods.getSupplierName())) { @@ -594,12 +665,17 @@ public class AsBusrepairBillService extends MybatisBaseService list = Arrays.asList(strings); goodsDetailsVo.setPartsSellersSids(list); + } else { + goodsDetailsVo.setPartsSellersSids(new ArrayList<>()); } if (StringUtils.isNotBlank(goodsDetail.getPartsSellers())) { String partsSellers = goodsDetail.getPartsSellers(); String[] strings = partsSellers.split(","); List list = Arrays.asList(strings); goodsDetailsVo.setPartsSellers(list); + goodsDetailsVo.setPartsSellers2(goodsDetail.getPartsSellers()); + } else { + goodsDetailsVo.setPartsSellers(new ArrayList<>()); } if (goodsDetail.getIsTaxRate() != null) { if (goodsDetail.getIsTaxRate().intValue() == 1) { @@ -610,7 +686,7 @@ public class AsBusrepairBillService extends MybatisBaseService file = new ArrayList<>(); + List file2 = new ArrayList<>(); List asAppendices = asAppendixService.fetchByLinkSid(sid); if (!asAppendices.isEmpty()) { for (AsAppendix asAppendix : asAppendices) { @@ -651,9 +728,12 @@ public class AsBusrepairBillService extends MybatisBaseService claimNos = asBusclaimBillService.selectByRepairBillSid(sid); if (!claimNos.isEmpty()) { - vo.setClaimNo(String.join(",",claimNos)); + vo.setClaimNo(String.join(",", claimNos)); } if (StringUtils.isNotBlank(detailsVo.getVinNo())) { vo.setVinNo(detailsVo.getVinNo()); @@ -1580,15 +1673,15 @@ public class AsBusrepairBillService extends MybatisBaseService detailsVos = detailsVo.getGoodsDetailsVos(); + if (!detailsVos.isEmpty()) { + List goodsPdfVos = new ArrayList<>(); + for (int i = 0; i < detailsVos.size(); i++) { + GoodsDetailsVo goodsDetailsVo = detailsVos.get(i); + SettleGoodsPdfVo goodsPdfVo = new SettleGoodsPdfVo(); + BeanUtil.copyProperties(goodsDetailsVo, goodsPdfVo); + goodsPdfVo.setSortNo(String.valueOf(i + 1)); + BigDecimal price = BigDecimal.ZERO; + BigDecimal amount = BigDecimal.ZERO; + if (StringUtils.isNotBlank(goodsDetailsVo.getPrice())) { + price = new BigDecimal(goodsDetailsVo.getPrice()); + } + if (StringUtils.isNotBlank(goodsDetailsVo.getAmount())) { + amount = new BigDecimal(goodsDetailsVo.getAmount()); + } + goodsPdfVos.add(goodsPdfVo); + if (subject.equals("保内")) { + sumMoney2.add(price); + } + if (subject.equals("保外")) { + sumMoney2.add(amount); + } + } + } + vo.setSumMoney2(sumMoney2.toString()); + String caps2 = bigDecimalToLocalStr(sumMoney2); + vo.setCaps2(caps2); + if (StringUtils.isNotBlank(detailsVo.getSubsidyAmount())) { + vo.setSubsidyAmount(detailsVo.getSubsidyAmount()); + } + if (StringUtils.isNotBlank(detailsVo.getOutAmount())) { + vo.setOutAmount(detailsVo.getOutAmount()); + } + if (StringUtils.isNotBlank(detailsVo.getRescueAmount())) { + vo.setRescueAmount(detailsVo.getRescueAmount()); + } + if (StringUtils.isNotBlank(detailsVo.getReceivableAmount())) { + vo.setReceivableAmount(detailsVo.getReceivableAmount()); + } + if (StringUtils.isNotBlank(detailsVo.getActualAmount())) { + vo.setActualAmount(detailsVo.getActualAmount()); + } + vo.setUserName(userName); + String path = createSettlePdf(vo, type, subject); + filePath = path; } return rb.success().setData(filePath); } + private String createSettlePdf(SettlePdfVo vo, String type, String subject) { + String finalPath = ""; + Map dataMap = new HashMap(); + List> list = new ArrayList<>(); + List> newList = new ArrayList<>(); + boolean price0 = false; + if (subject.equals("保内") && type.equals("1")) { + price0 = true; + } + dataMap.put("company", vo.getCompany()); + dataMap.put("dept", vo.getDept()); + dataMap.put("settleTime", vo.getSettleTime()); + dataMap.put("customer", vo.getCustomer()); + dataMap.put("mobile", vo.getMobile()); + dataMap.put("billNo", vo.getBillNo()); + dataMap.put("billType", vo.getBillType()); + dataMap.put("vehModel", vo.getVehModel()); + dataMap.put("claimManufacturer", vo.getClaimManufacturer()); + dataMap.put("claimNo", vo.getClaimNo()); + dataMap.put("vinNo", vo.getVinNo()); + dataMap.put("vehMark", vo.getVehMark()); + dataMap.put("isKp", vo.getIsKp()); + if (price0) { + dataMap.put("caps1", ""); + dataMap.put("sumMoney1", "0"); + dataMap.put("caps2", ""); + dataMap.put("sumMoney2", "0"); + dataMap.put("outAmount", "0"); + dataMap.put("subsidyAmount", "0"); + dataMap.put("rescueAmount", "0"); + dataMap.put("receivableAmount", "0"); + dataMap.put("actualAmount", "0"); + } else { + dataMap.put("caps1", vo.getCaps1()); + dataMap.put("sumMoney1", vo.getSumMoney1()); + dataMap.put("caps2", vo.getCaps2()); + dataMap.put("sumMoney2", vo.getSumMoney2()); + dataMap.put("outAmount", vo.getOutAmount()); + dataMap.put("subsidyAmount", vo.getSubsidyAmount()); + dataMap.put("rescueAmount", vo.getRescueAmount()); + dataMap.put("receivableAmount", vo.getReceivableAmount()); + dataMap.put("actualAmount", vo.getActualAmount()); + } + dataMap.put("userName", vo.getUserName()); + List items = vo.getItems(); + if (!items.isEmpty()) { + for (SettleItemPdfVo itemPdfVo : items) { + Map map = new HashMap<>(); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("serviceItem", itemPdfVo.getServiceItem()); + map.put("serviceItemCode", itemPdfVo.getServiceItemCode()); + map.put("serviceType", itemPdfVo.getServiceType()); + map.put("hourPrice", itemPdfVo.getHourPrice()); + map.put("hours", itemPdfVo.getHours()); + if (price0) { + map.put("price", "0"); + } else { + map.put("price", itemPdfVo.getPrice()); + } + map.put("discount", itemPdfVo.getDiscount()); + map.put("discountAmount", itemPdfVo.getDiscountAmount()); + map.put("amount", itemPdfVo.getAmount()); + map.put("repairerName", itemPdfVo.getRepairerName()); + map.put("remarks", itemPdfVo.getRemarks()); + list.add(map); + } + } + dataMap.put("list", list); + List goods = vo.getGoods(); + if (!goods.isEmpty()) { + for (SettleGoodsPdfVo good : goods) { + Map map = new HashMap<>(); + map.put("sortNo", good.getSortNo()); + map.put("goodsSpuName", good.getGoodsSpuName()); + map.put("goodsSkuCode", good.getGoodsSkuCode()); + map.put("goodsSkuOwnSpec", good.getGoodsSkuOwnSpec()); + map.put("unit", good.getUnit()); + map.put("count", good.getCount()); + if (price0) { + map.put("price", "0"); + map.put("amount", "0"); + } else { + map.put("price", good.getPrice()); + map.put("amount", good.getAmount()); + } + map.put("discount", good.getDiscount()); + map.put("discountAmount", good.getDiscountAmount()); + map.put("remarks", good.getRemarks()); + map.put("operName", good.getOperName()); + newList.add(map); + } + } + dataMap.put("newList", newList); + String temp = "/template/"; + String targetPath = docPdfComponent.getUploadTemplateUrl(); + String ftl = ""; + boolean add = true; + if (StringUtils.isBlank(vo.getOutAmount()) && + StringUtils.isBlank(vo.getSubsidyAmount()) && + StringUtils.isBlank(vo.getRescueAmount())) { + add = false; + } + if (subject.equals("保内")) { + if (add) { + ftl = "ftl/baoneifujia.ftl"; + } else { + ftl = "ftl/baonei.ftl"; + } + } else if (subject.equals("保外")) { + if (add) { + ftl = "ftl/baowaifujia.ftl"; + } else { + ftl = "ftl/baowai.ftl"; + } + } + try { + //获取模板 + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(ftl); + //生成word文件名 + String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); + long seconds = System.currentTimeMillis(); + String typeName = dateStr + seconds + ".doc"; + File file = new File(targetPath + "templateSettle" + seconds + ".ftl"); + File dir = new File(targetPath); + WordConvertUtils.inputStreamToFile(inputStream, file); + WordConvertUtils.creatWord1(dataMap, file, targetPath, typeName, dir); + //新生成的word路径 + String wordPath = targetPath + typeName; + String pdfName = "结算单" + dateStr + seconds + ".pdf"; + WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); + finalPath = temp + pdfName; + } catch (NoClassDefFoundError e) { + e.printStackTrace(); + finalPath = targetPath; + } + return finalPath; + } + public static String bigDecimalToLocalStr(BigDecimal bigDecimal) { String[] chinese = new String[]{"", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万"}; String[] numChinese = new String[]{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; @@ -1647,4 +1920,48 @@ public class AsBusrepairBillService extends MybatisBaseService notConfirmList(PagerQuery pagerQuery) { + GoodsReceiveQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + //工单编号 + if (StringUtils.isNotBlank(query.getUserSid())) { + qw.eq("d.operUserSid", query.getUserSid()); + } + if (StringUtils.isNotBlank(query.getName())) { + qw.and(wrapper -> wrapper.like("b.billNo", query.getName()) + .or().like("b.customerName", query.getName()) + .or().like("v.vehMark", query.getName()) + ); + } + qw.eq("d.state", 1); + } + IPage page = PagerUtil.queryToPage(pagerQuery); + IPage pagging = baseMapper.notConfirmList(page, qw); + List records = pagging.getRecords(); + if (!records.isEmpty()) { + for (GoodsReceiveVo record : records) { + List list = baseMapper.selGoodsReceiveByBillSid(record.getSid()); + if (!list.isEmpty()) { + record.setList(list); + } + } + } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public void submitList(GoodsReceiveSubmit query) { + List list = query.getList(); + if (!list.isEmpty()) { + for (String s : list) { + AsBusrepairInventorybillDetail detail = asBusrepairInventorybillDetailService.fetchBySid(s); + if (null != detail) { + detail.setReceivedTime(new Date()); + detail.setState(2); + asBusrepairInventorybillDetailService.updateById(detail); + } + } + } + } } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java index 5b3cf7070e..e79d0d9378 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java @@ -26,6 +26,7 @@ import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo; import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign; +import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventory; import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventoryFeign; import com.yxt.anrui.as.feign.wms.wmsInventory.WmsUpdateCountQuery; import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDetailDto; @@ -279,8 +280,29 @@ public class AsBusrepairInventorybillService extends MybatisBaseService 0) { + detail.setIsTaxRate(1); + } else { + detail.setIsTaxRate(0); + } + } else { + detail.setIsTaxRate(0); + } + } + if (StringUtils.isNotBlank(dto.getWarehouseManager())) { + detail.setOperName(dto.getWarehouseManager()); + } + if (StringUtils.isNotBlank(dto.getWarehouseManagerSid())) { + detail.setOperUserSid(dto.getWarehouseManagerSid()); + } + if (StringUtils.isNotBlank(sDto.getPrice())) { + detail.setGoodsDetailsPrice(new BigDecimal(sDto.getPrice())); + } asBusrepairInventorybillDetailService.insert(detail); - WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery(); countQuery.setSid(sDto.getInventorySid()); countQuery.setCount(new BigDecimal(sDto.getCount())); @@ -382,6 +404,9 @@ public class AsBusrepairInventorybillService extends MybatisBaseService fetchEntityBySid(@RequestParam("sid") String sid); } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeignFallback.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeignFallback.java index ebcdff5c0f..b9ce43bd4c 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeignFallback.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeignFallback.java @@ -56,4 +56,9 @@ public class WmsInventoryFeignFallback implements WmsInventoryFeign { public ResultBean updateInventoryCount(WmsUpdateCountQuery query) { return null; } + + @Override + public ResultBean fetchEntityBySid(String sid) { + return null; + } } diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java index dee0957019..61b7ef747e 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java @@ -511,12 +511,18 @@ public class PmsPurchaseBillService extends MybatisBaseService wmsAnsBillDetailList = new ArrayList<>(); + @ApiModelProperty("采购单税率") + private String taxRate; } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBill.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBill.java index 4e57cc899a..e79980d7b6 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBill.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBill.java @@ -4,6 +4,7 @@ import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -61,4 +62,6 @@ public class WmsAnsBill extends BaseEntity { private String manufactorBillTypeValue; @ApiModelProperty("厂家订单类型key") private String manufactorBillTypeKey; + @ApiModelProperty("采购单税率") + private BigDecimal taxRate; } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java index dbe7f01027..eb1ec02242 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java @@ -4,6 +4,7 @@ import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetailDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -64,4 +65,6 @@ public class WmsAnsBillDto { @ApiModelProperty("厂家订单类型key") private String manufactorBillTypeKey; private List wmsAnsBillDetailList = new ArrayList<>(); + @ApiModelProperty("采购单税率") + private String taxRate; } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventory.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventory.java index db9d131027..969e616e77 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventory.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventory.java @@ -46,6 +46,8 @@ public class WmsInventory extends BaseEntity { private BigDecimal freezeCount; @ApiModelProperty("入库单价") private BigDecimal cost; + @ApiModelProperty("税率") + private BigDecimal taxRate; @ApiModelProperty("仓库sid") private String warehouseSid; @ApiModelProperty("仓库名称") diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordDto.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordDto.java index c0e433c499..3db5816633 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordDto.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordDto.java @@ -104,7 +104,7 @@ public class WmsInventoryRecordDto implements Dto { @ApiModelProperty("入库单价") private String cost; @ApiModelProperty("税率") - private String tax; + private String taxRate; @ApiModelProperty("入库金额") private String amount; @ApiModelProperty("经办人sid") diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java index be2d7643e0..49704bfbb7 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java @@ -351,6 +351,9 @@ public class WmsInventoryRecordService extends MybatisBaseService { List selGoodsListCountBySpuSidAndSouceSid(@Param("goodsSpuSid")String goodsSpuSid, @Param("sourceBillSid")String sourceBillSid); List getUpShlefListBySid(@Param("sid") String sid); + + String selallotmentNumByReceiptDetailSid(String detailsSid); } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.xml b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.xml index e73ac5b30e..c13f64aa7c 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.xml +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.xml @@ -85,4 +85,12 @@ from wms_shelf_bill wrb where wrb.sourceBillSid = #{sid} + diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillQuery.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillQuery.java index f6a9743658..57d15c50bf 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillQuery.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillQuery.java @@ -34,5 +34,6 @@ public class WmsReceiptBillQuery implements Query { private String orgPath; @ApiModelProperty("用户sid") private String userSid; - + @ApiModelProperty("分配状态") + private String distributeType; } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java index 35e9ae410d..b1a75fbdb5 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java @@ -127,6 +127,10 @@ public class WmsReceiptBillService extends MybatisBaseService pcList2 = wmsReceiptBillDetailBatchService.getDetailsInit(sid, wmsReceiptBillDetailDto2.getDetailsSid()); diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java index 64f61ea2d0..dc8518b534 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java @@ -70,4 +70,6 @@ public class WmsReceiptBillDetailDto2 { @ApiModelProperty("有效天数") private String shelfLife; + @ApiModelProperty("已分配数量 ") + private String allotmentNum; } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java index d8592fbb3b..4a1b5bb357 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java @@ -66,4 +66,7 @@ public class WmsReceiptBillDetailVo { @ApiModelProperty("预约数量(采购订单数量)") private String orderCount; + + + } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java index 7ffa831789..9c6f608066 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java @@ -18,6 +18,7 @@ import com.yxt.wms.biz.base.wmswarehouserack.WmsHouseInfoVo; import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRack; import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService; import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBill; +import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillService; import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsListDetailsVo; import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTag; import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTagService; @@ -101,7 +102,8 @@ public class WmsShelfBillService extends MybatisBaseService listPage(PagerQuery pq) { WmsShelfBillQuery query = pq.getParams(); @@ -777,8 +779,16 @@ public class WmsShelfBillService extends MybatisBaseService