feat(usermachine): 添加生产线信息关联功能

This commit is contained in:
zxy 2026-05-19 16:06:06 +08:00
parent 83d18ec270
commit b39f2aba0b
7 changed files with 37 additions and 6 deletions

View File

@ -49,4 +49,10 @@ public class UserMachineDetailRespVO {
@ExcelProperty("机台id") @ExcelProperty("机台id")
private Integer machineId; private Integer machineId;
private Integer lineId;
private String proLineCd;
private String proLineName;
} }

View File

@ -28,4 +28,6 @@ public class UserMachineDetailSaveReqVO {
@Schema(description = "机台id", example = "9668") @Schema(description = "机台id", example = "9668")
private Integer machineId; private Integer machineId;
private Integer lineId;
} }

View File

@ -51,4 +51,8 @@ public class UserMachineDetailDO extends BaseDO {
*/ */
private Integer machineId; private Integer machineId;
private Integer lineId;
private String proLineCd;
private String proLineName;
} }

View File

@ -3,8 +3,10 @@ package com.ningxia.yunxi.chemmes.module.biz.service.usermachine;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.ningxia.yunxi.chemmes.module.biz.controller.admin.usermachine.vo.UserMachineDetailSaveReqVO; import com.ningxia.yunxi.chemmes.module.biz.controller.admin.usermachine.vo.UserMachineDetailSaveReqVO;
import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.proline.ProLineDO;
import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.usermachine.UserMachineDetailDO; import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.usermachine.UserMachineDetailDO;
import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.usermachine.UserMachineDetailMapper; import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.usermachine.UserMachineDetailMapper;
import com.ningxia.yunxi.chemmes.module.biz.service.proline.ProLineService;
import com.ningxia.yunxi.chemmes.module.system.dal.dataobject.user.AdminUserDO; import com.ningxia.yunxi.chemmes.module.system.dal.dataobject.user.AdminUserDO;
import com.ningxia.yunxi.chemmes.module.system.service.user.AdminUserService; import com.ningxia.yunxi.chemmes.module.system.service.user.AdminUserService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -31,6 +33,9 @@ public class UserMachineDetailServiceImpl implements UserMachineDetailService {
@Resource @Resource
private AdminUserService userService; private AdminUserService userService;
@Resource
private ProLineService proLineService;
@Override @Override
public void saveMachineDetails(Integer userMachId, List<UserMachineDetailSaveReqVO> machineList) { public void saveMachineDetails(Integer userMachId, List<UserMachineDetailSaveReqVO> machineList) {
@ -46,6 +51,13 @@ public class UserMachineDetailServiceImpl implements UserMachineDetailService {
detailEntity.setMachineId(form.getMachineId()); detailEntity.setMachineId(form.getMachineId());
detailEntity.setMachineName(form.getMachineName()); detailEntity.setMachineName(form.getMachineName());
detailEntity.setEnabledStatus(0); detailEntity.setEnabledStatus(0);
// 根据机台ID查询机台信息
ProLineDO machineEntity = proLineService.getProLine(form.getLineId());
if (machineEntity != null) {
detailEntity.setLineId(form.getLineId());
detailEntity.setProLineCd(machineEntity.getProLineCd());
detailEntity.setProLineName(machineEntity.getProLineName());
}
return detailEntity; return detailEntity;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());

View File

@ -7,8 +7,6 @@ export {}
declare global { declare global {
const DICT_TYPE: typeof import('@/utils/dict')['DICT_TYPE'] const DICT_TYPE: typeof import('@/utils/dict')['DICT_TYPE']
const EffectScope: typeof import('vue')['EffectScope'] const EffectScope: typeof import('vue')['EffectScope']
const ElMessage: typeof import('element-plus/es')['ElMessage']
const ElMessageBox: typeof import('element-plus/es')['ElMessageBox']
const computed: typeof import('vue')['computed'] const computed: typeof import('vue')['computed']
const createApp: typeof import('vue')['createApp'] const createApp: typeof import('vue')['createApp']
const customRef: typeof import('vue')['customRef'] const customRef: typeof import('vue')['customRef']

View File

@ -104,6 +104,7 @@ const formData = ref({
userName: undefined, userName: undefined,
userNo: undefined, userNo: undefined,
classGroup: '', classGroup: '',
lineId: undefined,
}) })
const formRules = reactive({ const formRules = reactive({
userNo: [{ required: true, message: '请选择人员', trigger: 'change' }], userNo: [{ required: true, message: '请选择人员', trigger: 'change' }],
@ -128,7 +129,11 @@ const open = async (type: string, id?: number) => {
try { try {
const data = await UserMachineApi.getUserMachine(id) const data = await UserMachineApi.getUserMachine(id)
formData.value = data formData.value = data
machineList.value = data.machineList || [] // lineId
machineList.value = (data.machineList || []).map(item => ({
...item,
lineId: item.lineId || item.belgLineId,
}))
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
@ -172,6 +177,7 @@ const confirmMachine = (machines: any[]) => {
machineName: item.machineName, machineName: item.machineName,
creator: item.creator, creator: item.creator,
createTime: item.createTime, createTime: item.createTime,
lineId: item.belgLineId || item.lineId, //
}) })
} }
}) })
@ -203,6 +209,7 @@ const submitForm = async () => {
machineId: m.machineId, machineId: m.machineId,
machineCd: m.machineCd, machineCd: m.machineCd,
machineName: m.machineName, machineName: m.machineName,
lineId: m.lineId,
})), })),
} as unknown as UserMachineApi.UserMachineVO } as unknown as UserMachineApi.UserMachineVO
if (formType.value === 'create') { if (formType.value === 'create') {

View File

@ -81,7 +81,7 @@
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建人" align="center" prop="creator" /> <el-table-column label="创建人" align="center" prop="creator" />
<el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="180px" <el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter2" width="180px"
/> />
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template #default="scope"> <template #default="scope">
@ -120,8 +120,10 @@
<el-table-column label="序号" align="center" type="index" width="60px" /> <el-table-column label="序号" align="center" type="index" width="60px" />
<el-table-column label="机台编码" align="center" prop="machineCd" /> <el-table-column label="机台编码" align="center" prop="machineCd" />
<el-table-column label="机台名称" align="center" prop="machineName" /> <el-table-column label="机台名称" align="center" prop="machineName" />
<el-table-column label="生产编码" align="center" prop="proLineCd" />
<el-table-column label="生产线名称" align="center" prop="proLineName" />
<el-table-column label="创建人" align="center" prop="creator" /> <el-table-column label="创建人" align="center" prop="creator" />
<el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" /> <el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter2" />
</el-table> </el-table>
</ContentWrap> </ContentWrap>
@ -131,7 +133,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict' import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter2 } from '@/utils/formatTime'
import * as UserMachineApi from '@/api/biz/usermachine' import * as UserMachineApi from '@/api/biz/usermachine'
import UserMachineForm from './UserMachineForm.vue' import UserMachineForm from './UserMachineForm.vue'