fix bug pro_task_in_report

This commit is contained in:
zxy 2026-01-09 16:03:18 +08:00
parent 27cc5ac427
commit 071e70f844
3 changed files with 87 additions and 54 deletions

View File

@ -75,10 +75,11 @@ public class TaskInReportServiceImpl implements TaskInReportService {
TaskInReportDO taskInReportDO = taskInReportMapper.selectById(id);
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(taskInReportDO.getDispatchDetailId());
if (taskDispatchDetailDO != null) {
if (taskDispatchDetailDO.getInReportProcess() != 2) {
if (taskDispatchDetailDO.getInReportProcess() == 2) {
throw new RuntimeException("当前报工状态不允许删除");
} else {
taskDispatchDetailDO.setInReportProcess(0);
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
}
}
// 删除

View File

@ -1,6 +1,4 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
@ -8,7 +6,6 @@
:rules="formRules"
label-width="140px"
v-loading="formLoading"
class="custom-table"
>
<el-row>
<el-col :span="8">
@ -24,7 +21,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="密度" prop="density">
<el-form-item label="密度(t/m³)" prop="density">
<el-input-number v-model="formData.density" min="0" :precision="2" class="!w-260px"
disabled
/>
@ -40,8 +37,8 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="长(直径)(mm)" prop="length">
<el-input-number v-model="formData.length" min="0.01" :precision="2"
<el-form-item label="长/直径(mm)" prop="length">
<el-input-number v-model="formData.length" min="0" :precision="2"
placeholder="请输入密度"
@change="handleChange"
class="!w-260px"/>
@ -49,7 +46,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="高度(mm)" prop="hight">
<el-input-number v-model="formData.hight" min="0.01" :precision="2"
<el-input-number v-model="formData.hight" min="0" :precision="2"
placeholder="请输入高度"
@change="handleChange"
class="!w-260px"/>
@ -83,7 +80,7 @@
<!-- 第三行 -->
<el-row>
<el-col :span="8">
<el-form-item label="重量(Kg)" prop="weight">
<el-form-item label="重量(kg)" prop="weight">
<el-input-number v-model="formData.weight" min="0" :precision="2"
@change="handleReportPriceChange"
placeholder="请输入重量" class="!w-260px"/>
@ -126,6 +123,7 @@ import * as TaskInReportApi from '@/api/heli/taskinreport'
const {t} = useI18n() //
const message = useMessage() //
import {formatAmount} from '@/utils/formatter'
import {ifError} from "assert";
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
@ -152,10 +150,65 @@ const formData = ref({
formalId: undefined,
calFormal: undefined,
})
const formRules = reactive({
length: [{required: true, message: '长(直径)不能为空', trigger: 'blur'}],
hight: [{required: true, message: '高度不能为空', trigger: 'blur'}],
weight: [{required: true, message: '重量不能为空', trigger: 'blur'}],
//
widht: [
{
validator: (rule, value, callback) => {
// '1' '3'
if (formData.value.matType === '1' || formData.value.matType === '3') {
if (value <= 0 || value === null || value === undefined) {
callback(new Error('宽度不能为0'));
} else {
callback();
}
} else {
// '2'
callback();
}
},
trigger: 'blur'
}
],
length: [
{required: true, message: '长(直径)不能为空', trigger: 'blur'},
{
validator: (rule, value, callback) => {
if (value <= 0 || value === null || value === undefined) {
callback(new Error('长直径不能为0'));
} else {
callback();
}
}, trigger: 'blur'
}
],
hight: [
{required: true, message: '高度不能为空', trigger: 'blur'},
{
validator: (rule, value, callback) => {
if (value <= 0 || value === null || value === undefined) {
callback(new Error('高度不能为0'));
} else {
callback();
}
}, trigger: 'blur'
}
],
weight: [
{required: true, message: '重量不能为空', trigger: 'blur'},
{
validator: (rule, value, callback) => {
if (value <= 0 || value === null || value === undefined) {
callback(new Error('重量不能为0'));
} else {
callback();
}
}, trigger: 'blur'
}
],
reportPrice: [{required: true, message: '总价不能为空', trigger: 'blur'}],
})
const formRef = ref() // Ref
@ -218,28 +271,18 @@ const handleChange = () => {
};
const handleReportPriceChange = () => {
if (formData.value.weight === 0) {
formData.value.reportPrice = 0;
return;
}
if (formData.value.weight) {
formData.value.reportPrice = Number((formData.value.weight * formData.value.price).toFixed(2));
}
};
const handleDimensionChange = () => {
const validateNumericValue = (value) => {
return typeof value === 'number' && !isNaN(value) && isFinite(value) && value > 0;
};
const calculateWeight = () => {
if (!validateNumericValue(formData.value.length) ||
!validateNumericValue(formData.value.hight) ||
!validateNumericValue(formData.value.density)) {
return 0;
}
let totalWeight = 0;
if (formData.value.matType === "1" || formData.value.matType === "3") {
if (!validateNumericValue(formData.value.widht)) {
message.error('宽度不能为0');
return 0;
}
totalWeight = Number(
(formData.value.length * formData.value.widht * formData.value.hight * formData.value.density) /
1000000
@ -285,10 +328,3 @@ const resetForm = () => {
}
</script>
<style>
/* 全局修改 */
.el-form-item {
margin-bottom: 32px; /* 改为你想要的间距,比如 32px、40px */
}
</style>

View File

@ -92,17 +92,13 @@
</ContentWrap>
<!-- 列表 -->
<ContentWrap class="table-container">
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table"
height="500px">
<ContentWrap>
<el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" class="hl-table" height="500" border>
<el-table-column fixed type="index" width="100" label="序号" align="center"/>
<el-table-column fixed label="项目编号" align="center" prop="projectCode" width="200"/>
<el-table-column fixed label="项目名称" align="center" prop="projectName" width="160"/>
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" width="160"/>
<!-- <el-table-column label="子项目编号" align="center" prop="projectSubCode" width="260" />-->
<!-- <el-table-column label="派工单号" align="center" prop="dispatchCode" width="180" />-->
<el-table-column fixed label="项目编号" align="center" prop="projectCode" width="180"/>
<el-table-column fixed label="项目名称" align="center" prop="projectName" width="180"/>
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" width="180"/>
<el-table-column label="零件名称" align="center" prop="materialName" width="180"/>
<!-- <el-table-column label="规格型号" align="center" prop="spec" width="160" />-->
<el-table-column label="报工人" align="center" prop="ownerName" width="100"/>
<el-table-column label="报工状态" align="center" prop="reportProcess" width="100">
<template #default="scope">
@ -124,13 +120,14 @@
<el-table-column label="长(直径)(mm)" align="center" prop="length" :formatter="formatAmount" width="220"/>
<el-table-column label="宽(mm)" align="center" prop="widht" :formatter="formatAmount" width="160"/>
<el-table-column label="高(mm)" align="center" prop="hight" :formatter="formatAmount" width="160"/>
<el-table-column label="密度(mm)" align="center" prop="density" :formatter="formatAmount" width="160"/>
<el-table-column label="密度(t/m³)" align="center" prop="density" :formatter="formatAmount" width="160"/>
<el-table-column label="重量(kg)" align="center" prop="weight" :formatter="formatAmount" width="160"/>
<el-table-column label="总价(元)" align="center" prop="reportPrice" :formatter="formatAmount" width="160"/>
<el-table-column label="报工日期" align="center" prop="reportTime" :formatter="dateFormatter2" width="120"/>
<el-table-column label="修改人" align="center" prop="updaterName" width="160"/>
<el-table-column label="修改时间" align="center" prop="updateTime" :formatter="dateFormatter2" width="120"/>
<el-table-column label="修改原因" align="center" prop="remark" width="160"/>
<el-table-column fixed="right" label="操作" align="center" width="140">
<el-table-column fixed="right" label="操作" align="center" width="160">
<template #default="scope">
<el-button
link
@ -148,6 +145,15 @@
>
返工
</el-button>
<el-button
v-if="scope.row.reportProcess != 2"
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['heli:task-in-report:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
@ -351,14 +357,4 @@ onMounted(() => {
padding: 16px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
}
/* 表格容器预留顶部空间 */
.table-container {
margin-top: 20px;
}
/* 可选:调整搜索表单间距 */
.el-form-item {
margin-bottom: 16px;
}
</style>