【优化】优化远程下拉展示

master
zengchenxi 9 months ago
parent 4f04e0879d
commit 809f986c9a

@ -1,10 +1,13 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.procedure.vo; package com.chanko.yunxi.mes.module.heli.controller.admin.procedure.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam; import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -53,4 +56,13 @@ public class ProcedurePageReqVO extends PageParam {
@Schema(description = "车间ID", example = "13738") @Schema(description = "车间ID", example = "13738")
private Long wid; private Long wid;
} @Schema(description = "工序类型", example = "1")
private String procedureType;
@Schema(description = "额定工时1")
private BigDecimal standard1Time;
@Schema(description = "额定工时2")
private BigDecimal standard2Time;
}

@ -1,14 +1,14 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.procedure.vo; package com.chanko.yunxi.mes.module.heli.controller.admin.procedure.vo;
import io.swagger.v3.oas.annotations.media.Schema; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import lombok.*; import com.alibaba.excel.annotation.ExcelProperty;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat; import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert; import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 工序 Response VO") @Schema(description = "管理后台 - 工序 Response VO")
@Data @Data
@ -48,4 +48,17 @@ public class ProcedureRespVO {
@ExcelProperty("车间ID") @ExcelProperty("车间ID")
private Long wid; private Long wid;
} @Schema(description = "工序类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty(value = "工序类型", converter = DictConvert.class)
@DictFormat("heli_procedure_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private String procedureType;
@Schema(description = "额定工时1")
@ExcelProperty("额定工时1")
private BigDecimal standard1Time;
@Schema(description = "额定工时2")
@ExcelProperty("额定工时2")
private BigDecimal standard2Time;
}

@ -1,10 +1,11 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.procedure.vo; package com.chanko.yunxi.mes.module.heli.controller.admin.procedure.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import java.util.*;
import javax.validation.constraints.*; import javax.validation.constraints.NotEmpty;
import java.util.*; import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 工序新增/修改 Request VO") @Schema(description = "管理后台 - 工序新增/修改 Request VO")
@Data @Data
@ -33,4 +34,14 @@ public class ProcedureSaveReqVO {
@Schema(description = "车间ID", example = "13738") @Schema(description = "车间ID", example = "13738")
private Long wid; private Long wid;
@Schema(description = "工序类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "工序类型不能为空")
private String procedureType;
@Schema(description = "额定工时1")
private BigDecimal standard1Time;
@Schema(description = "额定工时2")
private BigDecimal standard2Time;
} }

@ -1,11 +1,12 @@
package com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure; package com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure;
import lombok.*; import com.baomidou.mybatisplus.annotation.KeySequence;
import java.util.*; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
import java.math.BigDecimal;
/** /**
* DO * DO
@ -55,5 +56,19 @@ public class ProcedureDO extends BaseDO {
* ID * ID
*/ */
private Long wid; private Long wid;
/**
*
*
* {@link TODO heli_procedure_type }
*/
private String procedureType;
/**
* 1
*/
private BigDecimal standard1Time;
/**
* 2
*/
private BigDecimal standard2Time;
} }

@ -30,7 +30,10 @@ public interface ProcedureMapper extends BaseMapperX<ProcedureDO> {
.eqIfPresent(ProcedureDO::getDeleted, reqVO.getDeleted()) .eqIfPresent(ProcedureDO::getDeleted, reqVO.getDeleted())
.eqIfPresent(ProcedureDO::getIsReport, reqVO.getIsReport()) .eqIfPresent(ProcedureDO::getIsReport, reqVO.getIsReport())
.eqIfPresent(ProcedureDO::getWid, reqVO.getWid()) .eqIfPresent(ProcedureDO::getWid, reqVO.getWid())
.eqIfPresent(ProcedureDO::getProcedureType, reqVO.getProcedureType())
.eqIfPresent(ProcedureDO::getStandard1Time, reqVO.getStandard1Time())
.eqIfPresent(ProcedureDO::getStandard2Time, reqVO.getStandard2Time())
.orderByDesc(ProcedureDO::getId)); .orderByDesc(ProcedureDO::getId));
} }
} }

@ -8,6 +8,9 @@ export interface ProcedureVO {
status: number status: number
isreport: number isreport: number
wid: number wid: number
procedureType: string
standard1Time: number
standard2Time: number
} }
// 查询工序分页 // 查询工序分页

@ -217,5 +217,6 @@ export enum DICT_TYPE {
HELI_MATERIAL_ORIGINAL = 'heli_material_original', // 物料主要来源 HELI_MATERIAL_ORIGINAL = 'heli_material_original', // 物料主要来源
HELI_COMMON_IS_OR_NOT = 'heli_common_is_or_not', // 是否数字类型 HELI_COMMON_IS_OR_NOT = 'heli_common_is_or_not', // 是否数字类型
HELI_PROCEDURE_TYPE = 'heli_procedure_type' // 工序类型
} }

@ -53,7 +53,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="班组描述" prop="description"> <el-form-item label="班组描述" prop="description">
<el-input type="textarea" v-model="formData.description" height="150px" /> <el-input type="textarea" v-model="formData.description" height="150px" show-word-limit maxlength="200" />
</el-form-item> </el-form-item>
<el-form-item label="启用状态" prop="status"> <el-form-item label="启用状态" prop="status">
<el-radio-group v-model="formData.status"> <el-radio-group v-model="formData.status">

@ -29,7 +29,7 @@
<el-input v-model="formData.density" placeholder="请输入密度" class="!w-250px" /> <el-input v-model="formData.density" placeholder="请输入密度" class="!w-250px" />
</el-form-item> </el-form-item>
<el-form-item label="描述" prop="description"> <el-form-item label="描述" prop="description">
<el-input type="textarea" v-model="formData.description" height="150px" /> <el-input type="textarea" v-model="formData.description" height="150px" show-word-limit maxlength="200" />
</el-form-item> </el-form-item>
<el-form-item label="启用状态" prop="status"> <el-form-item label="启用状态" prop="status">
<el-radio-group v-model="formData.status"> <el-radio-group v-model="formData.status">

@ -43,7 +43,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="description"> <el-form-item label="备注" prop="description">
<el-input type="textarea" v-model="formData.description" /> <el-input type="textarea" v-model="formData.description" show-word-limit maxlength="200" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

@ -86,7 +86,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="formData.remark" placeholder="请输入内容" type="textarea" /> <el-input v-model="formData.remark" placeholder="请输入内容" type="textarea" show-word-limit maxlength="200"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

@ -56,7 +56,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="description"> <el-form-item label="备注" prop="description">
<el-input type="textarea" v-model="formData.description" /> <el-input type="textarea" v-model="formData.description" show-word-limit maxlength="200"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

@ -82,7 +82,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="description"> <el-form-item label="备注" prop="description">
<el-input type="textarea" v-model="formData.description" /> <el-input type="textarea" v-model="formData.description" show-word-limit maxlength="200"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

@ -81,7 +81,7 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="description"> <el-form-item label="备注" prop="description">
<el-input type="textarea" v-model="formData.description" height="150px" class="!w-500px" /> <el-input type="textarea" v-model="formData.description" height="150px" class="!w-500px" show-word-limit maxlength="200"/>
</el-form-item> </el-form-item>
<el-form-item label="安全库存" prop="invSafe"> <el-form-item label="安全库存" prop="invSafe">

@ -28,7 +28,7 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输备注" type="textarea" /> <el-input v-model="formData.remark" placeholder="请输备注" type="textarea" show-word-limit maxlength="200"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>

@ -2,7 +2,7 @@
<Dialog :title="dialogTitle" v-model="dialogVisible"> <Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="120px" v-loading="formLoading"> <el-form ref="formRef" :model="formData" :rules="formRules" label-width="120px" v-loading="formLoading">
<el-form-item label="工序编号" prop="code"> <el-form-item label="工序编号" prop="code">
<el-input v-model="formData.code" placeholder="请输入工序编号" disabled class="!w-250px" /> <el-input v-model="formData.code" placeholder="系统自动生成" disabled class="!w-250px" />
</el-form-item> </el-form-item>
<el-form-item label="工序名称" prop="name"> <el-form-item label="工序名称" prop="name">
<el-input v-model="formData.name" class="!w-250px" /> <el-input v-model="formData.name" class="!w-250px" />
@ -11,6 +11,22 @@
<el-select v-model="formData.wid" placeholder="请选择车间" clearable class="!w-250px"> <el-select v-model="formData.wid" placeholder="请选择车间" clearable class="!w-250px">
<el-option v-for="dict in workshopList" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="dict in workshopList" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select> </el-select>
</el-form-item>
<el-form-item label="工序类型" prop="procedureType">
<el-select v-model="formData.procedureType" placeholder="请选择工序类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_PROCEDURE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="额定工时1" prop="standard1Time">
<el-input v-model="formData.standard1Time" placeholder="请输入额定工时1" oninput="value=value.replace(/[^0-9.]/g,'')" />
</el-form-item>
<el-form-item label="额定工时2" prop="standard2Time">
<el-input v-model="formData.standard2Time" placeholder="请输入额定工时2" oninput="value=value.replace(/[^0-9.]/g,'')" />
</el-form-item> </el-form-item>
<el-form-item label="是否需要报工" prop="isReport"> <el-form-item label="是否需要报工" prop="isReport">
<el-radio-group v-model="formData.isReport"> <el-radio-group v-model="formData.isReport">
@ -20,7 +36,7 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="描述" prop="description"> <el-form-item label="描述" prop="description">
<el-input v-model="formData.description" height="150px" type="textarea" /> <el-input v-model="formData.description" height="150px" show-word-limit maxlength="200" type="textarea" />
</el-form-item> </el-form-item>
<el-form-item label="启用状态" prop="status"> <el-form-item label="启用状态" prop="status">
<el-radio-group v-model="formData.status"> <el-radio-group v-model="formData.status">
@ -29,7 +45,7 @@
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
@ -39,7 +55,7 @@
</Dialog> </Dialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' import {getIntDictOptions, DICT_TYPE, getStrDictOptions} from '@/utils/dict'
import * as ProcedureApi from '@/api/heli/procedure' import * as ProcedureApi from '@/api/heli/procedure'
import * as WorkshopApi from '@/api/heli/workshop' import * as WorkshopApi from '@/api/heli/workshop'
@ -58,9 +74,13 @@ const formData = ref({
status: 1, status: 1,
isReport: 1, isReport: 1,
wid: undefined, wid: undefined,
procedureType: undefined,
standard1Time: undefined,
standard2Time: undefined,
}) })
const formRules = reactive({ const formRules = reactive({
name: [{ required: true, message: '工序名称,不能为空', trigger: 'blur' }], name: [{ required: true, message: '工序名称,不能为空', trigger: 'blur' }],
procedureType: [{ required: true, message: '工序类型不能为空', trigger: 'change' }],
// status: [{ required: true, message: ',12', trigger: 'blur' }], // status: [{ required: true, message: ',12', trigger: 'blur' }],
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
@ -94,7 +114,7 @@ const open = async (type: string, id?: number) => {
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
} }
} }
defineExpose({ open }) // open defineExpose({ open }) // open
@ -133,6 +153,9 @@ const resetForm = () => {
status: 1, status: 1,
isReport: 1, isReport: 1,
wid: undefined, wid: undefined,
procedureType: undefined,
standard1Time: undefined,
standard2Time: undefined,
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }

@ -28,7 +28,7 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输备注" type="textarea" /> <el-input v-model="formData.remark" placeholder="请输备注" type="textarea" show-word-limit maxlength="200"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>

@ -54,7 +54,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="description"> <el-form-item label="备注" prop="description">
<el-input type="textarea" v-model="formData.description" /> <el-input type="textarea" v-model="formData.description" show-word-limit maxlength="200" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

@ -44,7 +44,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="描述信息" prop="description"> <el-form-item label="描述信息" prop="description">
<el-input type="textarea" v-model="formData.description" height="150px" /> <el-input type="textarea" v-model="formData.description" height="150px" show-word-limit maxlength="200"/>
</el-form-item> </el-form-item>
<el-form-item label="启用状态" prop="status"> <el-form-item label="启用状态" prop="status">
<el-radio-group v-model="formData.status"> <el-radio-group v-model="formData.status">

Loading…
Cancel
Save