外协订单结算功能开发

dev-scheduling
姜雪 4 weeks ago
parent 26b6239345
commit 27d97b3b5d
  1. 34
      src/api/outsourcingManagement/oemOrderSettlement.js
  2. 63
      src/views/oem/oemOrderSettlement/components/reviewDailog.vue
  3. 296
      src/views/oem/oemOrderSettlement/components/settlementAnomaly.vue
  4. 255
      src/views/oem/oemOrderSettlement/components/settlementCompleted.vue
  5. 96
      src/views/oem/oemOrderSettlement/components/settlementDailog.vue
  6. 250
      src/views/oem/oemOrderSettlement/components/settlementIn.vue
  7. 78
      src/views/oem/oemOrderSettlement/components/unsettled.vue
  8. 12
      src/views/oem/proTask/inPlantProcessOem.vue

@ -8,4 +8,36 @@ export const getStatement = params =>{
method:'get',
params
})
}
}
//结算
export const oemSettleAccountsItem = params => {
return request({
url: '/blade-desk/mesOemStatement/oemSettleAccounts',
method: 'post',
data: params,
});
};
//预结算
export const preSettlementItem = params => {
return request({
url: '/blade-desk/mesOemStatement/preSettlement',
method: 'post',
data: params,
});
};
//无需结算
export const noSettlementItem = params => {
return request({
url: '/blade-desk/mesOemStatement/noSettlement',
method: 'post',
data: params,
});
};
//审核
export const approvalItem = params => {
return request({
url: '/blade-desk/mesOemStatement/approval',
method: 'post',
data: params,
});
};

@ -1,6 +1,6 @@
<template>
<el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form :option="option"></avue-form>
<avue-form ref="form" :option="option" v-model="form"></avue-form>
<template #footer>
<span class="dialog-footer">
@ -11,36 +11,30 @@
</el-dialog>
</template>
<script>
import {approvalItem} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
props: {
showDialog: {
type: Boolean,
default: false
},
ids: {
type: String,
default: ''
},
},
data() {
return {
openShow: false,
form: {},
option: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: '审批结果',
prop: 'input',
span: 24,
type: 'radio',
dicData: [
{ label: '审批通过', value: 0 },
{ label: '审批不通过', value: 1 },
],
rules: [
{ required: true, message: '请输入姓名', trigger: 'blur' }
]
},
{
label: '驳回原因',
prop: 'input2',
label: '审批意见',
prop: 'reason',
type: 'select',
span: 24,
dicData: [
@ -52,8 +46,24 @@ export default {
label: '基础数据有误',
value: '2',
}
],
rules: [
{ required: true, message: '请选择审批意见', trigger: 'change' }
]
},{
label: '审批结果',
prop: 'approvalStatus',
span: 24,
type: 'radio',
dicData: [
{ label: '待审批', value: 1 },
{ label: '审批通过', value: 2 },
{ label: '审批不通过', value: 3 },
],
rules: [
{ required: true, message: '请选择审批结果', trigger: 'change' }
]
}
},
]
}
}
@ -64,7 +74,26 @@ export default {
methods: {
closeDialog() {
this.openShow = false
this.form = {}
this.$emit('closeDialog');
},
submit() {
this.$refs.form.validate(valid => {
if (valid) {
const params = {
reason: this.form.reason || '',
approvalStatus: this.form.approvalStatus,
ids: this.ids
};
approvalItem(params).then(() => {
this.$message.success('审核成功');
this.$emit('closeDialog');
this.$emit('refresh');
}).catch(() => {
this.$message.error('审核失败');
});
}
});
}
}
}

@ -6,27 +6,26 @@
@refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
<el-form ref="form" :model="formValue" label-width="100px" :inline="true">
<el-form-item label="现执行价格:">
<el-input v-model="formValue.name"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="settlementFn">结算</el-button>
<el-button type="primary" @click="settlementFn('settle')">结算</el-button>
</el-form-item>
</el-form>
</template>
<template #menu-right>
</template>
<template #menu="scope">
<template #menu>
</template>
</avue-crud>
<settlementDailog v-if="isOpen" :showDialog="isOpen" @closeDialog="closeDialog"> </settlementDailog>
</div>
<settlementDailog v-if="isOpen" :showDialog="isOpen" :type="settlementType" :statementList="selectionList" @closeDialog="closeDialog" @refresh="refreshTable"></settlementDailog>
</div>
</template>
<script>
import settlementDailog from './SettlementDailog.vue'
import {getStatement} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
components: {
@ -42,7 +41,6 @@ export default {
height: 'auto',
calcHeight: 32,
tip: false,
// size: 'medium',
simplePage: true,
searchShow: true,
searchMenuSpan: 6,
@ -50,8 +48,9 @@ export default {
searchIndex: 3,
tree: false,
border: true,
index: true,
index: false,
selection: true,
rowKey: 'id',
editBtn: false,
viewBtn: false,
delBtn: false,
@ -66,13 +65,10 @@ export default {
dialogWidth: 640,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
excelBtn: true,
filterBtn: true,
searchShowBtn: false,
columnSort: true,
excelBtn: true,
columnSort: true,
index: false,
showOverflowTooltip: true,
menu: false,
searchLabelPosition: 'left',
@ -89,37 +85,38 @@ export default {
column: [
{
label: '外协单号',
prop: 'workCenterNames',
prop: 'oemCode',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:19,
searchOrder:18,
},
{
label: '车间订单单号',
prop: 'workCenterNames',
prop: 'woCode',
sortable: true,
filter: true,
span: 24,
search: true,
width: 140,
searchLabelWidth:110,
searchLabelWidth: 110,
searchOrder:19,
},
{
label: '零件号',
prop: 'workCenterNames',
prop: 'partCode',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:16,
searchOrder:17,
},
{
label: '零件名称',
prop: 'workCenterNames',
prop: 'partName',
sortable: true,
filter: true,
span: 24,
@ -128,126 +125,102 @@ export default {
},
{
label: '批次号',
prop: 'workCenterNames',
prop: 'batchNo',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:14,
searchOrder:15,
},
{
label: '生产标识',
prop: 'workCenterNames',
prop: 'prodIdent',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
type:'select',
searchOrder:15,
dicData:[
{
label:'JI',
value:1
},
{
label:'JII',
value:2
},
]
searchOrder:16,
dicUrl:"/api/blade-scheduling/qualityGrade/getGrades",
props:{
label:'qualityGrade',
value:"id"
}
},
{
label: '工序',
prop: 'workCenterNames',
prop: 'psCode',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
type:'select',
searchOrder:17,
dicData:[
{
label:'工序1',
value:1
},
{
label:'工序2',
value:2
},
]
dicUrl:"/api/blade-desk/bsProcessSet/getProcessSetList",
props:{
label: 'name',
value: 'code',
},
},
{
label: '工艺能力',
prop: 'workCenterNames',
prop: 'caName',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '镀后入库时间',
prop: 'duhoutime',
prop: 'putStoreTime',
sortable: true,
filter: true,
span: 24,
search: true,
width: 140,
searchLabelWidth: 110,
searchOrder:20,
type: "date",
searchLabelWidth: 110,
type: "date",
searchRange: true,
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
searchRules: [
{
required: true,
message: "请输入姓名",
trigger: "blur"
}
]
searchOrder:20,
},
{
label: '生产数量',
prop: 'workCenterNames',
prop: 'makeQty',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '单位面积(d㎡)',
prop: 'workCenterNames',
prop: 'ypArea',
sortable: true,
filter: true,
span: 24,
search: false,
width: 140,
},
{
label: '总面积(d㎡)',
prop: 'workCenterNames',
prop: 'totalArea',
sortable: true,
filter: true,
span: 24,
search: false,
width: 140,
},
{
label: '外协厂商',
prop: 'workCenterNames',
prop: 'ocId',
sortable: true,
filter: true,
span: 24,
@ -255,90 +228,103 @@ export default {
width: 120,
type:'select',
searchOrder:18,
dicData:[
{
label:'外协厂商1',
value:1
},
{
label:'外协厂商2',
value:2
},
]
dicUrl:"/api/blade-desk/BA/Oem/listForSelect",
props:{
label:'ocName',
value:"id"
}
},
{
label: '镀种',
prop: 'workCenterNames',
prop: 'plate',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '镀层厚度',
prop: 'workCenterNames',
prop: 'plateThickness',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '涂色标个数',
prop: 'workCenterNames',
prop: 'tsbNum',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '涂色带个数',
prop: 'workCenterNames',
prop: 'tsdNum',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '涂箭头个数',
prop: 'workCenterNames',
prop: 'tjtNum',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '结算单价',
prop: 'settlePrice',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '计量单位',
prop: 'settleUnit',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '结算金额',
prop: 'settleAmount',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '报价单号',
prop: 'workCenterNames',
prop: 'quoteCode',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '异常原因',
prop: 'workCenterNames',
prop: 'abnormalReason',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:13,
searchOrder:14,
},
]
},
form: {},
@ -349,14 +335,23 @@ export default {
total: 0,
},
isOpen: false,
settlementType: 'settle',
}
},
methods: {
refreshTable() {
this.onLoad();
},
closeDialog() {
this.isOpen = false
},
settlementFn() {
this.isOpen = true
settlementFn(type) {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
return;
}
this.settlementType = type;
this.isOpen = true;
},
closeDialog() {
this.isOpen = false
@ -379,99 +374,18 @@ export default {
},
onLoad() {
this.loading = true
this.data = [
{
"bsTeamSet": null,
"bsWorkCenter": {
"area": 13000.0,
"batchNo": null,
"bigBatch": false,
"bsJfCenter": {
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2024-12-09 00:00:00",
"deleted": false,
"jcCode": "RBZX",
"jcId": 1,
"jcName": "热表中心",
"keyValue": 1,
"updateTime": "2024-12-09 00:00:00"
},
"checkout": false,
"craftAbility": "化学镀镍",
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2023-02-06 12:31:36",
"deleted": false,
"describe": null,
"endPoint": null,
"keyValue": 81,
"leaderUser": {
"userId": 541,
"userName": "崔殿龙"
},
"limitType": 0,
"processes": "上挂、下挂、交检、化学镀镍、喷砂",
"quantity": null,
"roundCycle": null,
"saturation": 85.0,
"sign": "4",
"startPoint": null,
"team": "化学镀镍一班崔胜伟、化学镀镍一班郭家梁",
"updateTime": "2023-03-06 18:42:47",
"wcCode": "001",
"wcId": 81,
"wcName": "化学镀镍作业中心",
"whetherPlate": false
},
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2025-04-09 11:27:09",
"deEquipmentCard": {
"bindQty": 4,
"categorys": "产线设备",
"deviceCode": "9652247",
"deviceIp": "192.168.43.179",
"deviceName": "化学镀镍",
"docking": true,
"ecId": 1,
"keyValue": 1,
"macCode": "9652247",
"macSpec": null,
"memo": null,
"rfId": "SYM-HCP-L4",
"status": true,
"typeName": "9652247",
"updateTime": null,
"used": 1,
"usedText": "正常服役",
"virtualMac": false
},
"keyValue": 121,
"pureWater": 1.0,
"quotaArea": 0.0,
"tapWater": 1.0,
"updateTime": "2025-04-09 11:27:09",
"uqDate": "2025-04-09",
"uqId": 121,
"uqType": 0,
"useElectric": 0.0,
"workCenterId": "[81]",
"workCenterName": "[\"化学镀镍作业中心\"]",
"workCenterNames": "化学镀镍作业中心"
}
]
this.page.total = this.data.length
this.loading = false
// setTimeout(() => {
// this.selectionClear()
// }, 500)
getStatement({
current:this.page.currentPage,
size:this.page.pageSize,
rosStatusList:'3',
...this.query
}).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total
this.loading = false
}).catch(() => {
this.loading = false
})
}
}
}

@ -9,7 +9,7 @@
<template #menu-right>
</template>
<template #menu="scope">
<template #menu>
</template>
@ -17,6 +17,7 @@
</div>
</template>
<script>
import {getStatement} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
components: {
@ -31,7 +32,6 @@ export default {
height: 'auto',
calcHeight: 32,
tip: false,
// size: 'medium',
simplePage: true,
searchShow: true,
searchMenuSpan: 6,
@ -39,8 +39,9 @@ export default {
searchIndex: 3,
tree: false,
border: true,
index: true,
index: false,
selection: true,
rowKey: 'id',
editBtn: false,
viewBtn: false,
delBtn: false,
@ -55,17 +56,13 @@ export default {
dialogWidth: 640,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
excelBtn: true,
filterBtn: true,
searchShowBtn: false,
columnSort: true,
excelBtn: true,
columnSort: true,
index: false,
showOverflowTooltip: true,
menu: false,
searchLabelPosition: 'left',
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
@ -79,7 +76,7 @@ export default {
column: [
{
label: '外协单号',
prop: 'workCenterNames',
prop: 'oemCode',
sortable: true,
filter: true,
span: 24,
@ -89,7 +86,7 @@ export default {
},
{
label: '车间订单单号',
prop: 'workCenterNames',
prop: 'woCode',
sortable: true,
filter: true,
span: 24,
@ -100,17 +97,17 @@ export default {
},
{
label: '零件号',
prop: 'workCenterNames',
prop: 'partCode',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:15,
searchOrder:17,
},
{
label: '零件名称',
prop: 'workCenterNames',
prop: 'partName',
sortable: true,
filter: true,
span: 24,
@ -119,71 +116,57 @@ export default {
},
{
label: '批次号',
prop: 'workCenterNames',
prop: 'batchNo',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:13,
searchOrder:15,
},
{
label: '生产标识',
prop: 'workCenterNames',
prop: 'prodIdent',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
type:'select',
searchOrder:14,
dicData:[
{
label:'JI',
value:1
},
{
label:'JII',
value:2
},
]
searchOrder:16,
dicUrl:"/api/blade-scheduling/qualityGrade/getGrades",
props:{
label:'qualityGrade',
value:"id"
}
},
{
label: '工序',
prop: 'workCenterNames',
prop: 'psCode',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
type:'select',
searchOrder:16,
dicData:[
{
label:'工序1',
value:1
},
{
label:'工序2',
value:2
},
]
dicUrl:"/api/blade-desk/bsProcessSet/getProcessSetList",
props:{
label: 'name',
value: 'code',
},
},
{
label: '工艺能力',
prop: 'workCenterNames',
prop: 'caName',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '镀后入库时间',
prop: 'duhoutime',
prop: 'putStoreTime',
sortable: true,
filter: true,
span: 24,
@ -197,160 +180,135 @@ export default {
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
searchOrder:20,
searchRules: [
{
required: true,
message: "请输入姓名",
trigger: "blur"
}
]
},
{
label: '生产数量',
prop: 'workCenterNames',
prop: 'makeQty',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '单位面积(d㎡)',
prop: 'workCenterNames',
prop: 'ypArea',
sortable: true,
filter: true,
span: 24,
search: false,
width: 140,
},
{
label: '总面积(d㎡)',
prop: 'workCenterNames',
prop: 'totalArea',
sortable: true,
filter: true,
span: 24,
search: false,
width: 140,
},
{
label: '外协厂商',
prop: 'workCenterNames',
prop: 'ocId',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
type:'select',
searchOrder:17,
dicData:[
{
label:'外协厂商1',
value:1
},
{
label:'外协厂商2',
value:2
},
]
searchOrder:18,
dicUrl:"/api/blade-desk/BA/Oem/listForSelect",
props:{
label:'ocName',
value:"id"
}
},
{
label: '镀种',
prop: 'workCenterNames',
prop: 'plate',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '镀层厚度',
prop: 'workCenterNames',
prop: 'plateThickness',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '涂色标个数',
prop: 'workCenterNames',
prop: 'tsbNum',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '涂色带个数',
prop: 'workCenterNames',
prop: 'tsdNum',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '涂箭头个数',
prop: 'workCenterNames',
prop: 'tjtNum',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '结算单价',
prop: 'workCenterNames',
prop: 'settlePrice',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '计量单位',
prop: 'workCenterNames',
prop: 'settleUnit',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '结算金额',
prop: 'workCenterNames',
prop: 'settleAmount',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '报价单号',
prop: 'workCenterNames',
prop: 'quoteCode',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '结算状态',
prop: 'workCenterNames',
prop: 'settleStatus',
sortable: true,
filter: true,
span: 24,
@ -360,29 +318,27 @@ export default {
searchOrder:12,
dicData: [
{
lable: '已推送',
label: '已推送',
value: '1'
},
{
lable: '已审批',
label: '已审批',
value: '2'
},
{
lable: '已结算',
label: '已结算',
value: '3'
},
{
lable: '已确认',
label: '已确认',
value: '4'
},
{
lable: '已挂账',
label: '已挂账',
value: '5'
},
]
}
]
},
form: {
@ -421,99 +377,18 @@ export default {
},
onLoad() {
this.loading = true
this.data = [
{
"bsTeamSet": null,
"bsWorkCenter": {
"area": 13000.0,
"batchNo": null,
"bigBatch": false,
"bsJfCenter": {
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2024-12-09 00:00:00",
"deleted": false,
"jcCode": "RBZX",
"jcId": 1,
"jcName": "热表中心",
"keyValue": 1,
"updateTime": "2024-12-09 00:00:00"
},
"checkout": false,
"craftAbility": "化学镀镍",
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2023-02-06 12:31:36",
"deleted": false,
"describe": null,
"endPoint": null,
"keyValue": 81,
"leaderUser": {
"userId": 541,
"userName": "崔殿龙"
},
"limitType": 0,
"processes": "上挂、下挂、交检、化学镀镍、喷砂",
"quantity": null,
"roundCycle": null,
"saturation": 85.0,
"sign": "4",
"startPoint": null,
"team": "化学镀镍一班崔胜伟、化学镀镍一班郭家梁",
"updateTime": "2023-03-06 18:42:47",
"wcCode": "001",
"wcId": 81,
"wcName": "化学镀镍作业中心",
"whetherPlate": false
},
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2025-04-09 11:27:09",
"deEquipmentCard": {
"bindQty": 4,
"categorys": "产线设备",
"deviceCode": "9652247",
"deviceIp": "192.168.43.179",
"deviceName": "化学镀镍",
"docking": true,
"ecId": 1,
"keyValue": 1,
"macCode": "9652247",
"macSpec": null,
"memo": null,
"rfId": "SYM-HCP-L4",
"status": true,
"typeName": "9652247",
"updateTime": null,
"used": 1,
"usedText": "正常服役",
"virtualMac": false
},
"keyValue": 121,
"pureWater": 1.0,
"quotaArea": 0.0,
"tapWater": 1.0,
"updateTime": "2025-04-09 11:27:09",
"uqDate": "2025-04-09",
"uqId": 121,
"uqType": 0,
"useElectric": 0.0,
"workCenterId": "[81]",
"workCenterName": "[\"化学镀镍作业中心\"]",
"workCenterNames": "化学镀镍作业中心"
}
]
this.page.total = this.data.length
this.loading = false
// setTimeout(() => {
// this.selectionClear()
// }, 500)
getStatement({
current:this.page.currentPage,
size:this.page.pageSize,
rosStatusList:'4,5',
...this.query
}).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total
this.loading = false
}).catch(() => {
this.loading = false
})
}
}
}

@ -1,5 +1,12 @@
<template>
<el-dialog title="计算" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form :option="option" v-model="form"></avue-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
<div v-if="calculationIn" class="box">
<div v-loading="isLoading" style="height:100px"></div>
<h3>计算中</h3>
@ -16,12 +23,12 @@
<div class="box-txt">
<el-icon style="color:#67c23a;margin-right: 4px;margin-top: 2px;">
<SuccessFilled />
</el-icon>结算成功20条,<i style="color: blue;">待审核></i>
</el-icon>结算成功{{ result.successCount }}条,<i style="color: blue;">待审核></i>
</div>
<div class="box-txt">
<el-icon style="color:#f56c6c;margin-right: 4px;margin-top: 2px;">
<CircleCloseFilled />
</el-icon>结算异常2条,<i style="color: blue;">待审核></i>
</el-icon>结算异常{{ result.exceptionCount }}条,<i style="color: blue;">待审核></i>
</div>
</div>
@ -35,18 +42,66 @@
</el-dialog>
</template>
<script>
import {oemSettleAccountsItem,preSettlementItem} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
props: {
showDialog: {
type: Boolean,
default: false
},
type: {
type: String,
default: 'settle'
},
statementList: {
type: Array,
default: () => []
}
},
data() {
return {
isLoading: true,
openShow: false,
calculationIn: true
calculationIn: true,
form: {},
result: {
successCount: 0,
exceptionCount: 0
},
option: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: '镀后入库时间',
prop: 'putStoreDate',
span: 24,
type: "date",
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
placeholder: '请选择镀后入库时间',
rules: [
{
required: true,
message: "请选择镀后入库时间",
trigger: "change"
}
]
},
{
label: '现执行价格',
prop: 'price',
type: 'number',
span: 24,
placeholder: '请输入现执行价格',
min: 0,
precision: 2,
},
]
}
}
},
mounted() {
@ -59,6 +114,41 @@ export default {
closeDialog() {
this.openShow = false
this.$emit('closeDialog');
this.$emit('refresh');
},
submit() {
//
if (!this.form.putStoreDate) {
this.$message.warning('请选择镀后入库时间');
return;
}
if (!this.form.price) {
this.$message.warning('请输入现执行价格');
return;
}
const params = {
putStoreDate: this.form.putStoreDate,
price: this.form.price,
statementList: this.statementList
};
const requestFn = this.type === 'pre' ? preSettlementItem : oemSettleAccountsItem;
requestFn(params).then(res => {
this.$message.success(this.type === 'pre' ? '预结算成功' : '结算成功');
//
if (res.data) {
console.log(res.data.data,'resqqqqqqqqqqqq');
this.result.successCount = res.data.data.success || 0;
this.result.exceptionCount = res.data.data.error || 0;
}
// this.closeDialog();
// this.$emit('refresh');
}).catch(() => {
this.$message.error(this.type === 'pre' ? '预结算失败' : '结算失败');
});
}
}
}

@ -10,16 +10,17 @@
<template #menu-right>
</template>
<template #menu="scope">
<template #menu>
</template>
</avue-crud>
<reviewDailog v-if="isOpen" :showDialog="isOpen" @closeDialog="closeDialog"></reviewDailog>
<reviewDailog v-if="isOpen" :showDialog="isOpen" :ids="ids" @closeDialog="closeDialog" @refresh="onLoad"></reviewDailog>
</div>
</template>
<script>
import reviewDailog from './reviewDailog.vue'
import {getStatement} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
components: {
reviewDailog
@ -34,7 +35,6 @@ export default {
height: 'auto',
calcHeight: 32,
tip: false,
// size: 'medium',
simplePage: true,
searchShow: true,
searchMenuSpan: 6,
@ -42,8 +42,9 @@ export default {
searchIndex: 3,
tree: false,
border: true,
index: true,
index: false,
selection: true,
rowKey: 'id',
editBtn: false,
viewBtn: false,
delBtn: false,
@ -58,17 +59,13 @@ export default {
dialogWidth: 640,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
excelBtn: true,
filterBtn: true,
searchShowBtn: false,
columnSort: true,
excelBtn: true,
columnSort: true,
index: false,
showOverflowTooltip: true,
menu: false,
searchLabelPosition: 'left',
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
@ -82,7 +79,7 @@ export default {
column: [
{
label: '外协单号',
prop: 'workCenterNames',
prop: 'oemCode',
sortable: true,
filter: true,
span: 24,
@ -92,7 +89,7 @@ export default {
},
{
label: '车间订单单号',
prop: 'workCenterNames',
prop: 'woCode',
sortable: true,
filter: true,
span: 24,
@ -103,17 +100,17 @@ export default {
},
{
label: '零件号',
prop: 'workCenterNames',
prop: 'partCode',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:15,
searchOrder:17,
},
{
label: '零件名称',
prop: 'workCenterNames',
prop: 'partName',
sortable: true,
filter: true,
span: 24,
@ -122,71 +119,57 @@ export default {
},
{
label: '批次号',
prop: 'workCenterNames',
prop: 'batchNo',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
searchOrder:13,
searchOrder:15,
},
{
label: '生产标识',
prop: 'workCenterNames',
prop: 'prodIdent',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
type:'select',
searchOrder:14,
dicData:[
{
label:'JI',
value:1
},
{
label:'JII',
value:2
},
]
searchOrder:16,
dicUrl:"/api/blade-scheduling/qualityGrade/getGrades",
props:{
label:'qualityGrade',
value:"id"
}
},
{
label: '工序',
prop: 'workCenterNames',
prop: 'psCode',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
type:'select',
searchOrder:16,
dicData:[
{
label:'工序1',
value:1
},
{
label:'工序2',
value:2
},
]
dicUrl:"/api/blade-desk/bsProcessSet/getProcessSetList",
props:{
label: 'name',
value: 'code',
},
},
{
label: '工艺能力',
prop: 'workCenterNames',
prop: 'caName',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '镀后入库时间',
prop: 'duhoutime',
prop: 'putStoreTime',
sortable: true,
filter: true,
span: 24,
@ -200,159 +183,131 @@ export default {
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
searchOrder:20,
searchRules: [
{
required: true,
message: "请输入姓名",
trigger: "blur"
}
]
},
{
label: '生产数量',
prop: 'workCenterNames',
prop: 'makeQty',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '单位面积(d㎡)',
prop: 'workCenterNames',
prop: 'ypArea',
sortable: true,
filter: true,
span: 24,
search: false,
width: 140,
},
{
label: '总面积(d㎡)',
prop: 'workCenterNames',
prop: 'totalArea',
sortable: true,
filter: true,
span: 24,
search: false,
width: 140,
},
{
label: '外协厂商',
prop: 'workCenterNames',
prop: 'ocId',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
type:'select',
searchOrder:17,
dicData:[
{
label:'外协厂商1',
value:1
},
{
label:'外协厂商2',
value:2
},
]
dicUrl:"/api/blade-desk/BA/Oem/listForSelect",
props:{
label:'ocName',
value:"id"
}
},
{
label: '镀种',
prop: 'workCenterNames',
prop: 'plate',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '镀层厚度',
prop: 'workCenterNames',
prop: 'plateThickness',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '涂色标个数',
prop: 'workCenterNames',
prop: 'tsbNum',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '涂色带个数',
prop: 'workCenterNames',
prop: 'tsdNum',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '涂箭头个数',
prop: 'workCenterNames',
prop: 'tjtNum',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '结算单价',
prop: 'workCenterNames',
prop: 'settlePrice',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '计量单位',
prop: 'workCenterNames',
prop: 'settleUnit',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '结算金额',
prop: 'workCenterNames',
prop: 'settleAmount',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
{
label: '报价单号',
prop: 'workCenterNames',
prop: 'quoteCode',
sortable: true,
filter: true,
span: 24,
search: false,
width: 120,
},
]
},
form: {
@ -364,10 +319,16 @@ export default {
total: 0,
},
isOpen: false,
ids: '',
}
},
methods: {
reviewFn() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
return;
}
this.ids = this.selectionList.map(item => item.id).join(',');
this.isOpen = true
},
closeDialog() {
@ -391,99 +352,18 @@ export default {
},
onLoad() {
this.loading = true
this.data = [
{
"bsTeamSet": null,
"bsWorkCenter": {
"area": 13000.0,
"batchNo": null,
"bigBatch": false,
"bsJfCenter": {
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2024-12-09 00:00:00",
"deleted": false,
"jcCode": "RBZX",
"jcId": 1,
"jcName": "热表中心",
"keyValue": 1,
"updateTime": "2024-12-09 00:00:00"
},
"checkout": false,
"craftAbility": "化学镀镍",
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2023-02-06 12:31:36",
"deleted": false,
"describe": null,
"endPoint": null,
"keyValue": 81,
"leaderUser": {
"userId": 541,
"userName": "崔殿龙"
},
"limitType": 0,
"processes": "上挂、下挂、交检、化学镀镍、喷砂",
"quantity": null,
"roundCycle": null,
"saturation": 85.0,
"sign": "4",
"startPoint": null,
"team": "化学镀镍一班崔胜伟、化学镀镍一班郭家梁",
"updateTime": "2023-03-06 18:42:47",
"wcCode": "001",
"wcId": 81,
"wcName": "化学镀镍作业中心",
"whetherPlate": false
},
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2025-04-09 11:27:09",
"deEquipmentCard": {
"bindQty": 4,
"categorys": "产线设备",
"deviceCode": "9652247",
"deviceIp": "192.168.43.179",
"deviceName": "化学镀镍",
"docking": true,
"ecId": 1,
"keyValue": 1,
"macCode": "9652247",
"macSpec": null,
"memo": null,
"rfId": "SYM-HCP-L4",
"status": true,
"typeName": "9652247",
"updateTime": null,
"used": 1,
"usedText": "正常服役",
"virtualMac": false
},
"keyValue": 121,
"pureWater": 1.0,
"quotaArea": 0.0,
"tapWater": 1.0,
"updateTime": "2025-04-09 11:27:09",
"uqDate": "2025-04-09",
"uqId": 121,
"uqType": 0,
"useElectric": 0.0,
"workCenterId": "[81]",
"workCenterName": "[\"化学镀镍作业中心\"]",
"workCenterNames": "化学镀镍作业中心"
}
]
this.page.total = this.data.length
this.loading = false
setTimeout(() => {
this.selectionClear()
}, 500)
getStatement({
current:this.page.currentPage,
size:this.page.pageSize,
rosStatusList:'2',
...this.query
}).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total
this.loading = false
}).catch(() => {
this.loading = false
})
}
}
}

@ -6,12 +6,10 @@
@refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
<el-form ref="form" :model="form" label-width="100px" :inline="true">
<el-form-item label="现执行价格:">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="settlementFn">预结算</el-button>
<el-button type="primary" @click="settlementFn">结算</el-button>
<el-button type="primary" @click="settlementFn('pre')">预结算</el-button>
<el-button type="primary" @click="settlementFn('settle')">结算</el-button>
<el-button type="danger" @click="onSubmit">无需结算</el-button>
</el-form-item>
</el-form>
@ -19,17 +17,17 @@
<template #menu-right>
</template>
<template #menu="scope">
<template #menu>
</template>
</avue-crud>
<settlementDailog v-if="isOpen" :showDialog="isOpen" @closeDialog="closeDialog"></settlementDailog>
<settlementDailog v-if="isOpen" :showDialog="isOpen" :type="settlementType" :statementList="selectionList" @closeDialog="closeDialog" @refresh="refreshTable"></settlementDailog>
</div>
</template>
<script>
import settlementDailog from './SettlementDailog.vue'
import {getStatement} from "@/api/outsourcingManagement/oemOrderSettlement"
import {getStatement,noSettlementItem} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
components: {
settlementDailog
@ -44,7 +42,6 @@ export default {
height: 'auto',
calcHeight: 32,
tip: false,
// size: 'medium',
simplePage: true,
searchShow: true,
searchMenuSpan: 6,
@ -52,8 +49,9 @@ export default {
searchIndex: 3,
tree: false,
border: true,
index: true,
index: false,
selection: true,
rowKey: 'wpId',
editBtn: false,
viewBtn: false,
delBtn: false,
@ -68,17 +66,13 @@ export default {
dialogWidth: 640,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
excelBtn: true,
filterBtn: true,
searchShowBtn: false,
columnSort: true,
excelBtn: true,
columnSort: true,
index: false,
showOverflowTooltip: true,
menu: false,
searchLabelPosition: 'left',
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
@ -211,13 +205,7 @@ export default {
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
searchOrder:20,
searchRules: [
{
required: true,
message: "请输入姓名",
trigger: "blur"
}
]
},
{
@ -338,14 +326,43 @@ export default {
total: 0,
},
isOpen: false,
settlementType: 'settle',
}
},
methods: {
settlementFn() {
this.isOpen = true
settlementFn(type) {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
return;
}
this.settlementType = type;
this.isOpen = true;
},
closeDialog() {
this.isOpen = false
this.isOpen = false;
},
refreshTable() {
this.onLoad();
},
onSubmit() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
return;
}
this.$confirm('确定无需结算选中的数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
noSettlementItem(this.selectionList).then(() => {
this.$message.success('无需结算成功');
this.onLoad();
}).catch(() => {
this.$message.error('无需结算失败');
});
}).catch(() => {
//
});
},
handleDelete() {
if (this.selectionList.length === 0) {
@ -361,10 +378,17 @@ export default {
},
//
selectionChange(list) {
console.log('selectionChange 被调用,选中的数据:', list);
console.log('当前表格数据:', this.data);
this.selectionList = list;
},
onLoad() {
this.loading = true
//
this.selectionList = []
if (this.$refs.crud) {
this.$refs.crud.clearSelection()
}
getStatement({
current:this.page.currentPage,
size:this.page.pageSize,
@ -373,6 +397,10 @@ export default {
}).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total
console.log('返回的数据:', this.data)
if (this.data && this.data.length > 0) {
console.log('第一条数据:', JSON.stringify(this.data[0], null, 2))
}
this.loading = false
})
// this.data = [

@ -135,17 +135,7 @@ export default {
align: 'left',
searchLabelWidth: 60,
},
{
label: '产线',
prop: 'bsWorkCenter.wcName',
search: true,
sortable: true,
filter: true,
span: 12,
headerAlign: 'center',
align: 'left',
searchLabelWidth: 45,
},
{
label: '确认编号',
prop: 'confirmCondition',

Loading…
Cancel
Save