This commit is contained in:
磷叶 2024-11-20 22:09:25 +08:00
parent ce6898816f
commit acf22e0d90
6 changed files with 108 additions and 69 deletions

View File

@ -55,10 +55,11 @@ export function delProdOrder(id) {
} }
// 同步生产订单 // 同步生产订单
export function syncProdOrder() { export function syncProdOrder(query) {
return request({ return request({
url: '/yh/prodOrder/sync', url: '/yh/prodOrder/sync',
method: 'put' method: 'put',
data: query
}) })
} }

View File

@ -1,10 +1,10 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="状态" prop="status"> <el-form-item label="日志类型" prop="type">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable @change="handleQuery"> <el-select v-model="queryParams.type" placeholder="请选择日志类型" clearable @change="handleQuery">
<el-option <el-option
v-for="dict in dict.type.log_import_status" v-for="dict in dict.type.log_import_type"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -21,6 +21,16 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable @change="handleQuery">
<el-option
v-for="dict in dict.type.log_import_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建人" prop="createBy"> <el-form-item label="创建人" prop="createBy">
<el-input <el-input
v-model="queryParams.createBy" v-model="queryParams.createBy"
@ -94,6 +104,9 @@
<template v-else-if="column.key === 'bizType'"> <template v-else-if="column.key === 'bizType'">
<dict-tag :options="dict.type.log_import_biz_type" :value="d.row[column.key]"/> <dict-tag :options="dict.type.log_import_biz_type" :value="d.row[column.key]"/>
</template> </template>
<template v-else-if="column.key === 'type'">
<dict-tag :options="dict.type.log_import_type" :value="d.row[column.key]"/>
</template>
<template v-else-if="column.key === 'seconds'"> <template v-else-if="column.key === 'seconds'">
{{calcSecond(d.row.createTime, d.row.finishedTime)}} {{calcSecond(d.row.createTime, d.row.finishedTime)}}
</template> </template>
@ -216,7 +229,7 @@ const defaultSort = {
export default { export default {
name: "LogImport", name: "LogImport",
mixins: [$showColumns], mixins: [$showColumns],
dicts: ['log_import_status', 'log_import_biz_type'], dicts: ['log_import_status', 'log_import_biz_type', 'log_import_type'],
components: {LogImportView, LogImportDetail, FormCol}, components: {LogImportView, LogImportDetail, FormCol},
data() { data() {
return { return {
@ -226,6 +239,7 @@ export default {
// //
columns: [ columns: [
{key: 'logId', visible: true, label: '日志ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"}, {key: 'logId', visible: true, label: '日志ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'type', visible: true, label: '日志类型', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'bizType', visible: true, label: '业务类型', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'bizType', visible: true, label: '业务类型', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'createBy', visible: true, label: '创建人', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'createBy', visible: true, label: '创建人', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},

View File

@ -1,13 +1,16 @@
<template> <template>
<div class="app-container" v-loading="loading"> <div class="app-container" v-loading="loading">
<el-descriptions title="导入详情"> <el-descriptions title="导入详情" :column="4">
<el-descriptions-item label="日志ID">{{detail.logId | dv}}</el-descriptions-item> <el-descriptions-item label="日志ID">{{detail.logId | dv}}</el-descriptions-item>
<el-descriptions-item label="状态"> <el-descriptions-item label="日志类型">
<dict-tag :options="dict.type.log_import_status" :value="detail.status" size="small"/> <dict-tag :options="dict.type.log_import_type" :value="detail.type" size="small"/>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="业务类型"> <el-descriptions-item label="业务类型">
<dict-tag :options="dict.type.log_import_biz_type" :value="detail.bizType" size="small"/> <dict-tag :options="dict.type.log_import_biz_type" :value="detail.bizType" size="small"/>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="状态">
<dict-tag :options="dict.type.log_import_status" :value="detail.status" size="small"/>
</el-descriptions-item>
<el-descriptions-item label="创建人"> <el-descriptions-item label="创建人">
{{detail.createBy | dv}} {{detail.createBy | dv}}
</el-descriptions-item> </el-descriptions-item>
@ -51,7 +54,7 @@ import {calcSecond} from "@/utils/date";
export default { export default {
name: "LogImportView", name: "LogImportView",
components: {LogImportDetail}, components: {LogImportDetail},
dicts: ['log_import_status', 'log_import_biz_type'], dicts: ['log_import_status', 'log_import_biz_type', 'log_import_type'],
props: { props: {
logId: { logId: {
type: String, type: String,

View File

@ -132,13 +132,13 @@
</template> </template>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <!-- <el-button-->
size="mini" <!-- size="mini"-->
type="text" <!-- type="text"-->
icon="el-icon-edit" <!-- icon="el-icon-edit"-->
@click="handleUpdate(scope.row)" <!-- @click="handleUpdate(scope.row)"-->
v-has-permi="['yh:prodOrder:edit']" <!-- v-has-permi="['yh:prodOrder:edit']"-->
>修改</el-button> <!-- >修改</el-button>-->
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -146,6 +146,13 @@
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-has-permi="['yh:prodOrder:remove']" v-has-permi="['yh:prodOrder:remove']"
>删除</el-button> >删除</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-refresh"
@click="handleSync({id: scope.row.erpId})"
v-has-permi="['yh:prodOrder:sync']"
>同步</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -280,6 +287,7 @@ export default {
{key: 'erpNoStockInQty', visible: true, label: '未入库', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"}, {key: 'erpNoStockInQty', visible: true, label: '未入库', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'erpBaseNoStockInQty', visible: false, label: '基本未入库', minWidth: null, sortable: true, overflow: false, align: 'center', width: "130"}, {key: 'erpBaseNoStockInQty', visible: false, label: '基本未入库', minWidth: null, sortable: true, overflow: false, align: 'center', width: "130"},
{key: 'baseUnitName', visible: false, label: '基本单位', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'baseUnitName', visible: false, label: '基本单位', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'syncTime', visible: true, label: '同步时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
], ],
// //
orderSorts: ['ascending', 'descending', null], orderSorts: ['ascending', 'descending', null],
@ -342,8 +350,8 @@ export default {
}, },
methods: { methods: {
isEmpty, isEmpty,
handleSync() { handleSync(query = {}) {
syncProdOrder().then(res => { syncProdOrder(query).then(res => {
if (res.code === 200) { if (res.code === 200) {
this.$message.success("同步成功"); this.$message.success("同步成功");
} }

View File

@ -32,27 +32,27 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <!-- <el-col :span="1.5">-->
<el-button <!-- <el-button-->
type="primary" <!-- type="primary"-->
plain <!-- plain-->
icon="el-icon-plus" <!-- icon="el-icon-plus"-->
size="mini" <!-- size="mini"-->
@click="handleAdd" <!-- @click="handleAdd"-->
v-has-permi="['yh:reportOrderProd:add']" <!-- v-has-permi="['yh:reportOrderProd:add']"-->
>新增</el-button> <!-- >新增</el-button>-->
</el-col> <!-- </el-col>-->
<el-col :span="1.5"> <!-- <el-col :span="1.5">-->
<el-button <!-- <el-button-->
type="danger" <!-- type="danger"-->
plain <!-- plain-->
icon="el-icon-delete" <!-- icon="el-icon-delete"-->
size="mini" <!-- size="mini"-->
:disabled="multiple" <!-- :disabled="multiple"-->
@click="handleDelete" <!-- @click="handleDelete"-->
v-has-permi="['yh:reportOrderProd:remove']" <!-- v-has-permi="['yh:reportOrderProd:remove']"-->
>删除</el-button> <!-- >删除</el-button>-->
</el-col> <!-- </el-col>-->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
@ -84,30 +84,39 @@
<template v-if="column.key === 'id'"> <template v-if="column.key === 'id'">
{{d.row[column.key]}} {{d.row[column.key]}}
</template> </template>
<template v-else-if="column.key === 'num'">
{{d.row[column.key] | dv}} {{d.row.priceUnit}}
</template>
<template v-else-if="column.key === 'pricePrice'">
{{d.row[column.key] | dv}} / {{d.row.priceUnit}}
</template>
<template v-else-if="column.key === 'reportStatus'">
<dict-tag :value="d.row.reportStatus" :options="dict.type.report_status"/>
</template>
<template v-else> <template v-else>
{{d.row[column.key]}} {{d.row[column.key]}}
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
</template> </template>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
<el-button <!-- <el-button-->
size="mini" <!-- size="mini"-->
type="text" <!-- type="text"-->
icon="el-icon-edit" <!-- icon="el-icon-edit"-->
@click="handleUpdate(scope.row)" <!-- @click="handleUpdate(scope.row)"-->
v-has-permi="['yh:reportOrderProd:edit']" <!-- v-has-permi="['yh:reportOrderProd:edit']"-->
>修改</el-button> <!-- >修改</el-button>-->
<el-button <!-- <el-button-->
size="mini" <!-- size="mini"-->
type="text" <!-- type="text"-->
icon="el-icon-delete" <!-- icon="el-icon-delete"-->
@click="handleDelete(scope.row)" <!-- @click="handleDelete(scope.row)"-->
v-has-permi="['yh:reportOrderProd:remove']" <!-- v-has-permi="['yh:reportOrderProd:remove']"-->
>删除</el-button> <!-- >删除</el-button>-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
</el-table> </el-table>
<pagination <pagination
@ -148,22 +157,27 @@ import FormCol from "@/components/FormCol/index.vue";
// //
const defaultSort = { const defaultSort = {
prop: "createTime", prop: "id",
order: "descending" order: "descending"
} }
export default { export default {
name: "ReportOrderProd", name: "ReportOrderProd",
mixins: [$showColumns], mixins: [$showColumns],
dicts: ['report_status'],
components: {FormCol}, components: {FormCol},
data() { data() {
return { return {
span: 24, span: 24,
// //
columns: [ columns: [
{key: 'id', visible: true, label: '报表关联订单ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'id', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'reportProdId', visible: true, label: '报表产量ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'reportId', visible: false, label: '报表编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'orderId', visible: true, label: '生产订单ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'reportDate', visible: true, label: '报表日期', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'reportStatus', visible: true, label: '报表状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'orderErpBillNo', visible: true, label: '生产订单', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'priceName', visible: true, label: '工序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'pricePrice', visible: true, label: '单价', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'num', visible: true, label: '生产数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'num', visible: true, label: '生产数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
], ],
// //

View File

@ -2,15 +2,15 @@
<div> <div>
<template v-for="(item, index) of data"> <template v-for="(item, index) of data">
<el-descriptions border :column="4" > <el-descriptions border :column="4" >
<el-descriptions-item :key="item.id" label="订单" :span="2">{{item.orderErpBillNo | dv}}</el-descriptions-item> <el-descriptions-item :key="item.id" label="生产订单" :span="2">{{item.orderErpBillNo | dv}}</el-descriptions-item>
<el-descriptions-item :key="item.id" label="本次提交产量">{{item.num | dv}} {{priceUnit}}</el-descriptions-item> <el-descriptions-item :key="item.id" label="本次提交产量">{{item.num | dv}} {{priceUnit}}</el-descriptions-item>
<el-descriptions-item :key="item.id" label="订单需求数量">{{item.orderErpBaseUnitQty | dv}} {{item.baseUnitName}}</el-descriptions-item> <el-descriptions-item :key="item.id" label="订单进度">
<el-descriptions-item :key="item.id" label="订单未入库数量">{{item.orderErpBaseNoStockInQty | dv}} {{item.baseUnitName}}</el-descriptions-item>
<el-descriptions-item :key="item.id" label="审核中产量">{{item.verifyingBaseNum | dv}} {{item.baseUnitName}}</el-descriptions-item>
<el-descriptions-item :key="item.id" label="已审核产量">{{item.verifiedBaseNum | dv}} {{item.baseUnitName}}</el-descriptions-item>
<el-descriptions-item :key="item.id" label="进度">
<el-progress text-inside :stroke-width="16" :percentage="percentage(item)" :color="customColors" text-color="#fff" style="width: 80px"/> <el-progress text-inside :stroke-width="16" :percentage="percentage(item)" :color="customColors" text-color="#fff" style="width: 80px"/>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :key="item.id" label="订单需求数量">{{item.orderErpBaseUnitQty | dv}} {{item.baseUnitName}}</el-descriptions-item>
<el-descriptions-item :key="item.id" label="订单未入库数量">{{item.orderErpBaseNoStockInQty | dv}} {{item.baseUnitName}}</el-descriptions-item>
<el-descriptions-item :key="item.id" label="订单审核中产量">{{item.verifyingBaseNum | dv}} {{item.baseUnitName}}</el-descriptions-item>
<el-descriptions-item :key="item.id" label="订单已审核产量">{{item.verifiedBaseNum | dv}} {{item.baseUnitName}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<br/> <br/>
</template> </template>
@ -20,7 +20,6 @@
<script> <script>
import {notNullDecimal} from "@/utils"; import {notNullDecimal} from "@/utils";
import {calcMulDecimal} from "@/utils/money";
import Decimal from "decimal.js"; import Decimal from "decimal.js";
export default { export default {