From 7f0f8a3a2f95a7f519f48c8b748a5de138cdef43 Mon Sep 17 00:00:00 2001 From: jiangxh <1217934998@qq.com> Date: Tue, 16 Jun 2026 15:35:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=AB=E6=A3=80=E6=A0=87=E5=87=86=E6=96=B0?= =?UTF-8?q?=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...MesXslRubberQuickTestRecordController.java | 45 +++++ .../MesXslRubberQuickTestStdController.java | 28 +-- .../entity/MesXslRubberQuickTestRecord.java | 1 + ...esXslRubberQuickTestRecordServiceImpl.java | 29 ++- .../jeecg-system-biz/docs/代码修改日志 | 12 ++ .../MesXslRubberQuickTestRecord.data.ts | 8 +- .../MesXslRubberQuickTestRecordModal.vue | 11 +- .../MesXslRubberQuickTestStd.data.ts | 24 +-- .../MesXslRubberQuickTestStdModal.vue | 22 +- qhmes.code-workspace | 190 +++++++++++++++++- workspaces/qhmes-backend.code-workspace | 113 +++++++++++ workspaces/qhmes-desktop.code-workspace | 81 ++++++++ workspaces/qhmes-frontend.code-workspace | 88 ++++++++ workspaces/qhmes-print.code-workspace | 82 ++++++++ yy-admin-master/_tmp_build_out/Admin.NET.db | Bin 0 -> 647168 bytes 15 files changed, 684 insertions(+), 50 deletions(-) create mode 100644 workspaces/qhmes-backend.code-workspace create mode 100644 workspaces/qhmes-desktop.code-workspace create mode 100644 workspaces/qhmes-frontend.code-workspace create mode 100644 workspaces/qhmes-print.code-workspace create mode 100644 yy-admin-master/_tmp_build_out/Admin.NET.db diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/controller/MesXslRubberQuickTestRecordController.java b/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/controller/MesXslRubberQuickTestRecordController.java index a21d4bc6..4cd5973d 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/controller/MesXslRubberQuickTestRecordController.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/controller/MesXslRubberQuickTestRecordController.java @@ -16,8 +16,12 @@ import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.common.system.vo.LoginUser; +import org.apache.shiro.SecurityUtils; import org.jeecg.modules.mes.material.entity.MesMaterial; import org.jeecg.modules.mes.material.service.IMesMaterialService; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.ISysUserService; import org.jeecg.modules.xslmes.entity.MesXslRubberQuickTestRecord; import org.jeecg.modules.xslmes.entity.MesXslRubberQuickTestRecordLine; import org.jeecg.modules.xslmes.entity.MesXslRubberQuickTestType; @@ -49,6 +53,9 @@ public class MesXslRubberQuickTestRecordController @Autowired private IMesXslRubberQuickTestTypeService mesXslRubberQuickTestTypeService; + @Autowired + private ISysUserService sysUserService; + @Operation(summary = "MES胶料快检记录-分页列表查询") @GetMapping(value = "/list") public Result> queryPageList( @@ -110,6 +117,9 @@ public class MesXslRubberQuickTestRecordController @PostMapping(value = "/batchFromMaterial") public Result> batchFromMaterial(@RequestBody MesXslRubberQuickTestRecordBatchFromMaterialVO vo) { try { + //update-begin---author:jiangxh ---date:20260616 for:【MES】胶料快检记录批量生成默认带出当前登录检验人----------- + fillInspectorIfEmpty(vo); + //update-end---author:jiangxh ---date:20260616 for:【MES】胶料快检记录批量生成默认带出当前登录检验人----------- List ids = mesXslRubberQuickTestRecordService.batchFromMaterial(vo); return Result.OK("成功生成 " + ids.size() + " 条快检记录", ids); } catch (Exception e) { @@ -186,6 +196,10 @@ public class MesXslRubberQuickTestRecordController main.setQuickTestTypeName(type.getTypeName()); } + //update-begin---author:jiangxh ---date:20260616 for:【MES】胶料快检记录保存时补全检验人姓名冗余----------- + resolveInspector(main); + //update-end---author:jiangxh ---date:20260616 for:【MES】胶料快检记录保存时补全检验人姓名冗余----------- + if (lineList == null || lineList.isEmpty()) { return "请维护检验明细"; } @@ -197,4 +211,35 @@ public class MesXslRubberQuickTestRecordController } return null; } + + //update-begin---author:jiangxh ---date:20260616 for:【MES】胶料快检记录检验人冗余字段补全----------- + private void resolveInspector(MesXslRubberQuickTestRecord main) { + if (main == null || oConvertUtils.isEmpty(main.getInspectorUserId())) { + return; + } + if (oConvertUtils.isNotEmpty(main.getInspectorRealname())) { + return; + } + SysUser user = sysUserService.getById(main.getInspectorUserId().trim()); + if (user != null) { + main.setInspectorUsername(user.getUsername()); + main.setInspectorRealname(user.getRealname()); + } + } + + private void fillInspectorIfEmpty(MesXslRubberQuickTestRecordBatchFromMaterialVO vo) { + if (vo == null || oConvertUtils.isNotEmpty(vo.getInspectorUserId())) { + return; + } + if (SecurityUtils.getSubject() == null || SecurityUtils.getSubject().getPrincipal() == null) { + return; + } + if (!(SecurityUtils.getSubject().getPrincipal() instanceof LoginUser user)) { + return; + } + vo.setInspectorUserId(user.getId()); + vo.setInspectorUsername(user.getUsername()); + vo.setInspectorRealname(user.getRealname()); + } + //update-end---author:jiangxh ---date:20260616 for:【MES】胶料快检记录检验人冗余字段补全----------- } diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/controller/MesXslRubberQuickTestStdController.java b/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/controller/MesXslRubberQuickTestStdController.java index 66582d85..a8e3a3ca 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/controller/MesXslRubberQuickTestStdController.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/controller/MesXslRubberQuickTestStdController.java @@ -238,13 +238,6 @@ public class MesXslRubberQuickTestStdController if (main == null) { return "参数不能为空"; } - if (oConvertUtils.isEmpty(main.getStdName())) { - return "实验标准名称不能为空"; - } - main.setStdName(main.getStdName().trim()); - if (mesXslRubberQuickTestStdService.isStdNameDuplicated(main.getStdName(), excludeId, main)) { - return "实验标准名称已存在"; - } if (oConvertUtils.isEmpty(main.getTestMethodId())) { return "请选择实验方法"; } @@ -254,13 +247,22 @@ public class MesXslRubberQuickTestStdController } main.setTestMethodName(method.getMethodName()); - if (oConvertUtils.isNotEmpty(main.getRubberMaterialId())) { - MesMaterial material = mesMaterialService.getById(main.getRubberMaterialId()); - if (material == null) { - return "所选胶料不存在"; - } - main.setRubberMaterialName(material.getMaterialName()); + if (oConvertUtils.isEmpty(main.getRubberMaterialId())) { + return "请选择胶料信息"; } + MesMaterial material = mesMaterialService.getById(main.getRubberMaterialId()); + if (material == null) { + return "所选胶料不存在"; + } + main.setRubberMaterialName(material.getMaterialName()); + + //update-begin---author:jiangxh ---date:20260616 for:【MES】胶料快检实验标准名称自动生成(实验方法名称_胶料名称)----------- + String stdName = main.getTestMethodName().trim() + "_" + main.getRubberMaterialName().trim(); + main.setStdName(stdName); + if (mesXslRubberQuickTestStdService.isStdNameDuplicated(stdName, excludeId, main)) { + return "实验标准名称已存在"; + } + //update-end---author:jiangxh ---date:20260616 for:【MES】胶料快检实验标准名称自动生成(实验方法名称_胶料名称)----------- if (oConvertUtils.isNotEmpty(main.getPsCompileId())) { MesXslMixerPsCompile ps = mesXslMixerPsCompileService.getById(main.getPsCompileId()); diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/entity/MesXslRubberQuickTestRecord.java b/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/entity/MesXslRubberQuickTestRecord.java index 1a547a8e..0668e132 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/entity/MesXslRubberQuickTestRecord.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/entity/MesXslRubberQuickTestRecord.java @@ -78,6 +78,7 @@ public class MesXslRubberQuickTestRecord implements Serializable { private Date inspectTime; @Schema(description = "检验人用户ID") + @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id") private String inspectorUserId; private String inspectorUsername; diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/service/impl/MesXslRubberQuickTestRecordServiceImpl.java b/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/service/impl/MesXslRubberQuickTestRecordServiceImpl.java index f43d7a79..40a91d54 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/service/impl/MesXslRubberQuickTestRecordServiceImpl.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/service/impl/MesXslRubberQuickTestRecordServiceImpl.java @@ -200,7 +200,7 @@ public class MesXslRubberQuickTestRecordServiceImpl if (CollectionUtils.isEmpty(stdLines)) { throw new JeecgBootException("胶料【" + material.getMaterialName() + "】关联的实验标准无明细数据"); } - MesXslRubberQuickTestRecord main = buildMainFromMaterial(material, std); + MesXslRubberQuickTestRecord main = buildMainFromMaterial(material, std, vo); List recordLines = new ArrayList<>(); for (MesXslRubberQuickTestStdLine stdLine : stdLines) { MesXslRubberQuickTestRecordLine rl = new MesXslRubberQuickTestRecordLine(); @@ -230,7 +230,8 @@ public class MesXslRubberQuickTestRecordServiceImpl return mesXslRubberQuickTestStdService.getOne(w, false); } - private MesXslRubberQuickTestRecord buildMainFromMaterial(MesMaterial material, MesXslRubberQuickTestStd std) { + private MesXslRubberQuickTestRecord buildMainFromMaterial( + MesMaterial material, MesXslRubberQuickTestStd std, MesXslRubberQuickTestRecordBatchFromMaterialVO vo) { MesXslRubberQuickTestRecord main = new MesXslRubberQuickTestRecord(); main.setRubberMaterialId(material.getId()); main.setRubberMaterialName(material.getMaterialName()); @@ -241,6 +242,30 @@ public class MesXslRubberQuickTestRecordServiceImpl fillQuickTestType(main, method.getQuickTestTypeId()); } } + //update-begin---author:jiangxh ---date:20260616 for:【MES】胶料快检记录批量生成写入检验人等共用字段----------- + if (vo != null) { + main.setProdEquipmentLedgerId(vo.getProdEquipmentLedgerId()); + main.setProdEquipmentName(vo.getProdEquipmentName()); + main.setProductionDate(vo.getProductionDate()); + main.setTrainNo(vo.getTrainNo()); + main.setWorkShift(vo.getWorkShift()); + main.setWorkTeam(vo.getWorkTeam()); + main.setInspectTimes(vo.getInspectTimes()); + main.setInspectTime(vo.getInspectTime()); + main.setInspectorUserId(vo.getInspectorUserId()); + main.setInspectorUsername(vo.getInspectorUsername()); + main.setInspectorRealname(vo.getInspectorRealname()); + if (oConvertUtils.isNotEmpty(vo.getQuickTestTypeId())) { + fillQuickTestType(main, vo.getQuickTestTypeId()); + } + main.setInspectResult(vo.getInspectResult()); + main.setProductionPlanNo(vo.getProductionPlanNo()); + main.setInspectEquipmentLedgerId(vo.getInspectEquipmentLedgerId()); + main.setInspectEquipmentName(vo.getInspectEquipmentName()); + main.setRubberCardNo(vo.getRubberCardNo()); + main.setRubberBatchNo(vo.getRubberBatchNo()); + } + //update-end---author:jiangxh ---date:20260616 for:【MES】胶料快检记录批量生成写入检验人等共用字段----------- return main; } diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-biz/docs/代码修改日志 b/jeecg-boot/jeecg-module-system/jeecg-system-biz/docs/代码修改日志 index 97aa8b14..10d486b6 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-biz/docs/代码修改日志 +++ b/jeecg-boot/jeecg-module-system/jeecg-system-biz/docs/代码修改日志 @@ -589,3 +589,15 @@ jeecgboot-vue3/src/views/xslmes/mesXslDowntimeRecord/components/MesXslDowntimeRe jeecgboot-vue3/src/views/xslmes/mesXslDowntimeRecord/components/MesXslDowntimeRecordMaintenanceModal.vue jeecgboot-vue3/src/views/xslmes/mesXslDowntimeRecord/components/MesXslDowntimeTypeSelectModal.vue jeecgboot-vue3/src/views/xslmes/mesXslDowntimeRecord/components/MesXslInspectMaintainItemSelectModal.vue + +-- author:jiangxh---date:20260616--for: 【MES】胶料快检实验标准名称自动生成(实验方法名称_胶料名称) --- +jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/controller/MesXslRubberQuickTestStdController.java +jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestStd/MesXslRubberQuickTestStd.data.ts +jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestStd/components/MesXslRubberQuickTestStdModal.vue + +-- author:jiangxh---date:20260616--for: 【MES】胶料快检记录列表检验人不显示 --- +jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/controller/MesXslRubberQuickTestRecordController.java +jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/service/impl/MesXslRubberQuickTestRecordServiceImpl.java +jeecg-boot/jeecg-boot-module/jeecg-module-xslmes/src/main/java/org/jeecg/modules/xslmes/entity/MesXslRubberQuickTestRecord.java +jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestRecord/MesXslRubberQuickTestRecord.data.ts +jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestRecord/components/MesXslRubberQuickTestRecordModal.vue diff --git a/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestRecord/MesXslRubberQuickTestRecord.data.ts b/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestRecord/MesXslRubberQuickTestRecord.data.ts index 718bf951..69c86b6f 100644 --- a/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestRecord/MesXslRubberQuickTestRecord.data.ts +++ b/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestRecord/MesXslRubberQuickTestRecord.data.ts @@ -13,7 +13,13 @@ export const columns: BasicColumn[] = [ { title: '班组', align: 'center', dataIndex: 'workTeam_dictText', width: 80 }, { title: '检验次数', align: 'center', dataIndex: 'inspectTimes', width: 90 }, { title: '检验时间', align: 'center', dataIndex: 'inspectTime', width: 165 }, - { title: '检验人', align: 'center', dataIndex: 'inspectorRealname', width: 100 }, + { + title: '检验人', + align: 'center', + dataIndex: 'inspectorRealname', + width: 100, + customRender: ({ record }) => record?.inspectorRealname || record?.inspectorUserId_dictText || '', + }, { title: '检验类型', align: 'center', dataIndex: 'quickTestTypeName', width: 120 }, { title: '检验结果', align: 'center', dataIndex: 'inspectResult_dictText', width: 90 }, { title: '生产计划号', align: 'center', dataIndex: 'productionPlanNo', width: 120 }, diff --git a/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestRecord/components/MesXslRubberQuickTestRecordModal.vue b/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestRecord/components/MesXslRubberQuickTestRecordModal.vue index 42e767ca..32cf4635 100644 --- a/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestRecord/components/MesXslRubberQuickTestRecordModal.vue +++ b/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestRecord/components/MesXslRubberQuickTestRecordModal.vue @@ -48,12 +48,14 @@ import { BasicForm, useForm } from '/@/components/Form/index'; import type { JVxeTableInstance } from '/@/components/jeecg/JVxeTable/types'; import { useMessage } from '/@/hooks/web/useMessage'; + import { useUserStore } from '/@/store/modules/user'; import { formSchema, lineJVxeColumns } from '../MesXslRubberQuickTestRecord.data'; import { saveOrUpdate, queryById, queryLineListByRecordId } from '../MesXslRubberQuickTestRecord.api'; import MesXslEquipmentLedgerSelectModal from '/@/views/xslmes/mesXslEquipInspectConfig/components/MesXslEquipmentLedgerSelectModal.vue'; const emit = defineEmits(['register', 'success']); const { createMessage } = useMessage(); + const userStore = useUserStore(); const isDetail = ref(false); const tableReady = ref(false); @@ -86,7 +88,14 @@ const m = (mainRaw as any)?.id != null ? mainRaw : (mainRaw as any)?.result ?? mainRaw; const linesRaw = await queryLineListByRecordId({ id: data.record.id }); const list = Array.isArray(linesRaw) ? linesRaw : (linesRaw as any)?.result ?? []; - await setFieldsValue({ ...m }); + const patch: Recordable = { ...m }; + if (data?.showFooter && !patch.inspectorRealname && !patch.inspectorUserId) { + const user = userStore.getUserInfo || {}; + patch.inspectorUserId = user.id; + patch.inspectorUsername = user.username; + patch.inspectorRealname = user.realname; + } + await setFieldsValue(patch); lineDataSource.value = list || []; } finally { lineLoading.value = false; diff --git a/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestStd/MesXslRubberQuickTestStd.data.ts b/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestStd/MesXslRubberQuickTestStd.data.ts index af350e08..354c617e 100644 --- a/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestStd/MesXslRubberQuickTestStd.data.ts +++ b/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestStd/MesXslRubberQuickTestStd.data.ts @@ -1,6 +1,5 @@ import { BasicColumn, FormSchema } from '/@/components/Table'; import { JVxeColumn, JVxeTypes } from '/@/components/jeecg/JVxeTable/types'; -import { checkStdName } from './MesXslRubberQuickTestStd.api'; const numProps = { style: { width: '100%' }, precision: 6 }; @@ -72,27 +71,8 @@ export const formSchema: FormSchema[] = [ label: '实验标准名称', field: 'stdName', component: 'Input', - required: true, - componentProps: { placeholder: '同租户内不可重复' }, - dynamicRules: ({ model }) => [ - { required: true, message: '请输入实验标准名称' }, - { - validator: async (_rule, value) => { - const v = value == null ? '' : String(value).trim(); - if (!v) { - return Promise.resolve(); - } - try { - await checkStdName({ stdName: v, dataId: model?.id }); - return Promise.resolve(); - } catch (e: any) { - const msg = e?.response?.data?.message || e?.message || '实验标准名称已存在'; - return Promise.reject(msg); - } - }, - trigger: ['blur', 'change'], - }, - ], + slot: 'stdNameDisplay', + dynamicDisabled: true, }, { label: '实验方法', diff --git a/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestStd/components/MesXslRubberQuickTestStdModal.vue b/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestStd/components/MesXslRubberQuickTestStdModal.vue index 0faaf506..06abc31e 100644 --- a/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestStd/components/MesXslRubberQuickTestStdModal.vue +++ b/jeecgboot-vue3/src/views/xslmes/mesXslRubberQuickTestStd/components/MesXslRubberQuickTestStdModal.vue @@ -8,6 +8,9 @@ @ok="handleSubmit" > +