From 1ad8100be1ff951b85b588760f0cc76d82949cf5 Mon Sep 17 00:00:00 2001 From: HuangHuiKang Date: Tue, 3 Feb 2026 17:20:05 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9=E6=A8=A1?= =?UTF-8?q?=E5=85=B7=E4=B8=8A=E6=A8=A1=E4=B8=BA=E5=A4=9A=E9=80=89=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=8B=E6=A8=A1=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/mold/MoldController.java | 7 ++ .../module/erp/service/mold/MoldService.java | 2 + .../erp/service/mold/MoldServiceImpl.java | 6 ++ .../DeviceContactModelMapper.java | 2 +- .../DeviceModelAttributeMapper.java | 2 +- .../moldoperate/MoldOperateController.java | 69 +++++++++----- .../moldoperate/vo/MoldOperateSaveReqVO.java | 5 +- .../dataobject/moldoperate/MoldOperateDO.java | 14 ++- .../moldoperate/MoldOperateService.java | 5 ++ .../moldoperate/MoldOperateServiceImpl.java | 89 +++++++++++++++++++ 10 files changed, 177 insertions(+), 24 deletions(-) diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldController.java index c85ece5b2a..5f62644f77 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/MoldController.java @@ -96,4 +96,11 @@ public class MoldController { BeanUtils.toBean(list, MoldRespVO.class)); } + + @GetMapping("/getInTransitMoldAllList") + @Operation(summary = "获得上下模模具列表(在途-3)") + public CommonResult> getInTransitMoldAllList() { + List doList = moldService.getInTransitMoldAllList(); + return success(doList); + } } \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldService.java index 0d500bd458..5a38b2e390 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldService.java @@ -98,4 +98,6 @@ public interface MoldService { } List buildMoldVOList(List list); + + List getInTransitMoldAllList(); } \ No newline at end of file diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldServiceImpl.java index 421e4aa6d9..87a3ac5741 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldServiceImpl.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductCategoryDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpWarehouseDO; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; @@ -108,4 +109,9 @@ public class MoldServiceImpl implements MoldService { } return BeanUtils.toBean(list, MoldRespVO.class); } + + @Override + public List getInTransitMoldAllList() { + return moldMapper.selectList(Wrappers.lambdaQuery().eq(MoldDO::getStatus,3)); + } } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/devicecontactmodel/DeviceContactModelMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/devicecontactmodel/DeviceContactModelMapper.java index dba362301d..b41d55d834 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/devicecontactmodel/DeviceContactModelMapper.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/devicecontactmodel/DeviceContactModelMapper.java @@ -30,7 +30,7 @@ public interface DeviceContactModelMapper extends BaseMapperX createMoldOperate(@Valid @RequestBody MoldOperateSaveReqVO createReqVO) { + + + if (Objects.equals(createReqVO.getOperateType(), "1")) { DeviceLedgerDO deviceLedger = deviceLedgerService.getDeviceLedger(createReqVO.getDeviceId()); - MoldDO moldDO = moldService.getMold(createReqVO.getMoldId()); - moldDO.setMachineId(createReqVO.getDeviceId()); - moldDO.setMachineName(deviceLedger.getDeviceName()); - moldDO.setStatus(0); // 在机 0 在库 1 - moldService.updateMold(BeanUtils.toBean(moldDO, MoldSaveReqVO.class)); - deviceLedger.setMoldId(Long.toString(createReqVO.getMoldId())); + List idList = Arrays.stream(createReqVO.getMoldId().split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + for (Long id : idList) { + MoldDO moldDO = moldService.getMold(id); + moldDO.setMachineId(createReqVO.getDeviceId()); + moldDO.setMachineName(deviceLedger.getDeviceName()); + moldDO.setStatus(0); // 在机 0 在库 1 + moldService.updateMold(BeanUtils.toBean(moldDO, MoldSaveReqVO.class)); + } + + deviceLedger.setMoldId(createReqVO.getMoldId()); deviceLedgerService.updateDeviceLedger(BeanUtils.toBean(deviceLedger, DeviceLedgerSaveReqVO.class)); } else { + List lowerMoldId = Arrays.stream(createReqVO.getLowerMoldId().split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + //下模 + for (Long id : lowerMoldId) { + MoldDO moldDO = moldService.getMold(id); + moldDO.setMachineId(0L); + moldDO.setMachineName(""); + moldDO.setStatus(3); // 在机 0 在途 3 + moldService.updateMold(BeanUtils.toBean(moldDO, MoldSaveReqVO.class)); + } + DeviceLedgerDO deviceLedger = deviceLedgerService.getDeviceLedger(createReqVO.getDeviceId()); - createReqVO.setMoldId(Long.parseLong(deviceLedger.getMoldId())); - MoldDO moldDO = moldService.getMold(Long.parseLong(deviceLedger.getMoldId())); - moldDO.setMachineId(0L); - moldDO.setMachineName(""); - moldDO.setStatus(3); // 在机 0 在库 1 - moldService.updateMold(BeanUtils.toBean(moldDO, MoldSaveReqVO.class)); - deviceLedger.setMoldId("0"); + deviceLedger.setMoldId(createReqVO.getMoldId()); deviceLedgerService.updateDeviceLedger(BeanUtils.toBean(deviceLedger, DeviceLedgerSaveReqVO.class)); } return success(moldOperateService.createMoldOperate(createReqVO)); @@ -121,17 +140,18 @@ public class MoldOperateController { // 管理员信息 Map userMap = adminUserApi.getUserMap( convertSet(pageResult.getList(), admin -> Long.parseLong(admin.getCreator()))); - // 模具信息 - Map moldMap = moldService.getMoldVOMap( - convertSet(pageResult.getList(), MoldOperateDO::getMoldId)); + +// // 模具信息 +// Map moldMap = moldService.getMoldVOMap( +// convertSet(pageResult.getList(), MoldOperateDO::getMoldId)); // 设备台账 - Map deviceLedgerMap = deviceLedgerService.getDeviceLedgerVOMap( - convertSet(pageResult.getList(), MoldOperateDO::getDeviceId)); +// Map deviceLedgerMap = deviceLedgerService.getDeviceLedgerVOMap( +// convertSet(pageResult.getList(), MoldOperateDO::getDeviceId)); return success(BeanUtils.toBean(pageResult, MoldOperateRespVO.class,moldOperate -> { MapUtils.findAndThen(userMap, Long.parseLong(moldOperate.getCreator()), user -> moldOperate.setCreatorName(user.getNickname())); - MapUtils.findAndThen(moldMap, moldOperate.getMoldId(), mold -> moldOperate.setMoldName(mold.getName())); - MapUtils.findAndThen(deviceLedgerMap, moldOperate.getDeviceId(), deviceLedger -> moldOperate.setDeviceName(deviceLedger.getDeviceName())); +// MapUtils.findAndThen(moldMap, moldOperate.getMoldId(), mold -> moldOperate.setMoldName(mold.getName())); +// MapUtils.findAndThen(deviceLedgerMap, moldOperate.getDeviceId(), deviceLedger -> moldOperate.setDeviceName(deviceLedger.getDeviceName())); })); } @@ -162,4 +182,13 @@ public class MoldOperateController { } + @GetMapping("/getLowerMoldList") + @Operation(summary = "获得模具下模列表") + @Parameter(name = "id", description = "设备id", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:mold-operate:query')") + public CommonResult> getLowerMoldList(@RequestParam("id") Long id) { + List moldDO = moldOperateService.getLowerMoldList(id); + return success(moldDO); + } + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateSaveReqVO.java index b78f1ddc56..e1d0b6fa69 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateSaveReqVO.java @@ -16,7 +16,7 @@ public class MoldOperateSaveReqVO { private String operateType; @Schema(description = "关联模具id", example = "23041") - private Long moldId; + private String moldId; @Schema(description = "关联设备id", example = "5057") private Long deviceId; @@ -24,4 +24,7 @@ public class MoldOperateSaveReqVO { @Schema(description = "备注", example = "随便") private String remark; + @Schema(description = "下模模具id", example = "23041") + private String lowerMoldId; + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldoperate/MoldOperateDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldoperate/MoldOperateDO.java index 6bc54fc993..a12d3426d7 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldoperate/MoldOperateDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldoperate/MoldOperateDO.java @@ -34,7 +34,7 @@ public class MoldOperateDO extends BaseDO { /** * 关联模具id */ - private Long moldId; + private String moldId; /** * 关联设备id */ @@ -44,4 +44,16 @@ public class MoldOperateDO extends BaseDO { */ private String remark; + /** + * 模具名称 + */ + private String moldName; + + + /** + * 设备名称 + */ + private String deviceName; + + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateService.java index 270b75af5a..f703c3b15a 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateService.java @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.mes.service.moldoperate; import java.util.*; import javax.validation.*; + +import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; import cn.iocoder.yudao.module.mes.controller.admin.moldoperate.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.moldoperate.MoldOperateDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -52,4 +54,7 @@ public interface MoldOperateService { */ PageResult getMoldOperatePage(MoldOperatePageReqVO pageReqVO); + List getLowerMoldList(Long id); + + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateServiceImpl.java index 66017b3ecc..9d54c1fa74 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateServiceImpl.java @@ -1,11 +1,19 @@ package cn.iocoder.yudao.module.mes.service.moldoperate; +import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; +import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldMapper; +import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; +import cn.iocoder.yudao.module.mes.dal.mysql.deviceledger.DeviceLedgerMapper; +import jodd.util.StringUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; + import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; + import cn.iocoder.yudao.module.mes.controller.admin.moldoperate.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.moldoperate.MoldOperateDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -29,10 +37,40 @@ public class MoldOperateServiceImpl implements MoldOperateService { @Resource private MoldOperateMapper moldOperateMapper; + @Resource + private DeviceLedgerMapper deviceLedgerMapper; + + @Resource + private MoldMapper moldMapper; + @Override public Long createMoldOperate(MoldOperateSaveReqVO createReqVO) { // 插入 MoldOperateDO moldOperate = BeanUtils.toBean(createReqVO, MoldOperateDO.class); + DeviceLedgerDO deviceLedgerDO = deviceLedgerMapper.selectById(createReqVO.getDeviceId()); + moldOperate.setDeviceName(deviceLedgerDO.getDeviceName()); + + List idList = Arrays.stream(createReqVO.getMoldId().split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + + if (!idList.isEmpty()) { + StringBuilder moldNameBuilder = new StringBuilder(); + for (Long id : idList) { + MoldDO moldDO = moldMapper.selectById(id); + if (moldDO != null && StringUtil.isNotBlank(moldDO.getName())) { + if (moldNameBuilder.length() > 0) { + moldNameBuilder.append(","); + } + moldNameBuilder.append(moldDO.getName()); + } + } + moldOperate.setMoldName(moldNameBuilder.toString()); + } else { + moldOperate.setMoldName(""); + } + moldOperateMapper.insert(moldOperate); // 返回 return moldOperate.getId(); @@ -42,8 +80,34 @@ public class MoldOperateServiceImpl implements MoldOperateService { public void updateMoldOperate(MoldOperateSaveReqVO updateReqVO) { // 校验存在 validateMoldOperateExists(updateReqVO.getId()); + // 更新 MoldOperateDO updateObj = BeanUtils.toBean(updateReqVO, MoldOperateDO.class); + + DeviceLedgerDO deviceLedgerDO = deviceLedgerMapper.selectById(updateReqVO.getDeviceId()); + updateObj.setDeviceName(deviceLedgerDO.getDeviceName()); + + List idList = Arrays.stream(updateReqVO.getMoldId().split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + + if (!idList.isEmpty()) { + StringBuilder moldNameBuilder = new StringBuilder(); + for (Long id : idList) { + MoldDO moldDO = moldMapper.selectById(id); + if (moldDO != null && StringUtil.isNotBlank(moldDO.getName())) { + if (moldNameBuilder.length() > 0) { + moldNameBuilder.append(","); + } + moldNameBuilder.append(moldDO.getName()); + } + } + updateObj.setMoldName(moldNameBuilder.toString()); + } else { + updateObj.setMoldName(""); + } + moldOperateMapper.updateById(updateObj); } @@ -71,4 +135,29 @@ public class MoldOperateServiceImpl implements MoldOperateService { return moldOperateMapper.selectPage(pageReqVO); } + @Override + public List getLowerMoldList(Long id) { + + List moldDOList = new ArrayList<>(); + + DeviceLedgerDO deviceLedgerDO = deviceLedgerMapper.selectById(id); + if (StringUtil.isBlank(deviceLedgerDO.getMoldId())){ + return new ArrayList<>(); + } + List idList = Arrays.stream(deviceLedgerDO.getMoldId().split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + + for (Long moldId : idList) { + MoldDO moldDO = moldMapper.selectById(moldId); + if (moldDO != null){ + moldDOList.add(moldDO); + } + } + + + return moldDOList; + } + } \ No newline at end of file