From ce82871a5fb0538f014e8aec678262eab41aa4e8 Mon Sep 17 00:00:00 2001 From: HuangHuiKang Date: Thu, 4 Jun 2026 17:31:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:1=E3=80=81=E4=BF=AE=E6=94=B9=E6=A8=A1?= =?UTF-8?q?=E5=85=B7=E5=87=BA=E5=BA=93=EF=BC=8C=E6=A8=A1=E5=85=B7=E5=85=A5?= =?UTF-8?q?=E5=BA=93=EF=BC=8C=E7=BB=B4=E4=BF=AE=E9=A1=B9=E7=9B=AE=EF=BC=8C?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E5=8D=95=EF=BC=8C=E7=82=B9=E6=A3=80=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=A8=A1=E5=85=B7=E4=B8=BA=E6=A8=A1=E5=85=B7=E7=BB=84?= =?UTF-8?q?=E3=80=822=E3=80=81=E6=B7=BB=E5=8A=A0=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E5=8F=8A=E6=A8=A1=E5=85=B7=E7=BB=84=E7=BB=B4?= =?UTF-8?q?=E4=BF=AE=E5=8D=95list=E6=8E=A5=E5=8F=A3=E3=80=823=E3=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8A=E4=B8=8B=E6=A8=A1=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/mold/vo/MoldBrandRespVO.java | 7 ++ .../erp/service/mold/MoldBrandService.java | 7 +- .../service/mold/MoldBrandServiceImpl.java | 32 +++++- .../service/stock/ErpStockInServiceImpl.java | 16 ++- .../service/stock/ErpStockOutServiceImpl.java | 12 ++- .../admin/dvrepair/DvRepairController.java | 29 ++++++ .../moldoperate/MoldOperateController.java | 97 +++++++++---------- .../moldoperate/vo/MoldOperatePageReqVO.java | 2 +- .../moldoperate/vo/MoldOperateRespVO.java | 4 +- .../moldoperate/vo/MoldOperateSaveReqVO.java | 6 +- .../moldrepair/MoldRepairController.java | 29 ++++++ .../dataobject/moldoperate/MoldOperateDO.java | 2 +- .../mysql/moldoperate/MoldOperateMapper.java | 2 +- .../SubjectMoldPlanMapper.java | 9 +- .../moldoperate/MoldOperateServiceImpl.java | 86 ++++++---------- .../MoldTaskManagementServiceImpl.java | 6 +- 16 files changed, 212 insertions(+), 134 deletions(-) diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandRespVO.java index 7fbf0bcaf..28dcbfb90 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandRespVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandRespVO.java @@ -61,6 +61,9 @@ public class MoldBrandRespVO { @ExcelProperty("当前设备") private String deviceName; + @Schema(description = "子模数", example = "0") + private Long childMoldCount; + @Schema(description = "产品ID列表") private List productIds; @@ -105,4 +108,8 @@ public class MoldBrandRespVO { @Schema(description = "二维码", example = "") private String qrCodeUrl; + + @Schema(description = "打印模板", example = "") + private String templateJson; + } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java index 2bd2d8e11..5e8e0a301 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandService.java @@ -16,10 +16,7 @@ import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductCategoryDO; import javax.validation.Valid; import java.io.UnsupportedEncodingException; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; @@ -199,4 +196,6 @@ public interface MoldBrandService { List getMoldBrandTree(); void regenerateCode(Long id, String code) throws UnsupportedEncodingException; + + List validMoldList(Set longs); } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java index 18a69c171..d9bbbd901 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java @@ -252,6 +252,9 @@ public class MoldBrandServiceImpl implements MoldBrandService { return Collections.emptyList(); } + String template = moldMapper.selectPrintTemplate(); + + Map childMoldCountMap = getChildMoldCountMap(convertSet(list, MoldBrandDO::getId)); List relations = moldBrandProductMapper.selectListByBrandIds(convertSet(list, MoldBrandDO::getId)); Map> relationMap = relations.stream() .collect(Collectors.groupingBy(MoldBrandProductDO::getBrandId)); @@ -264,6 +267,8 @@ public class MoldBrandServiceImpl implements MoldBrandService { } String qrcodeUrl = qrcodeService.selectQrcodeUrlByIdAndCode(QrcodeBizTypeEnum.MOLD.getCode(),item.getId(),item.getCode()); item.setQrCodeUrl(qrcodeUrl); + item.setChildMoldCount(childMoldCountMap.getOrDefault(item.getId(), 0L)); + item.setTemplateJson(template); MapUtils.findAndThen(map, item.getProductId(), product -> item.setProductName(product.getName())); @@ -297,12 +302,27 @@ public class MoldBrandServiceImpl implements MoldBrandService { .filter(rel -> Objects.equals(rel.getProductId(), item.getProductId())) .map(MoldBrandProductDO::getProductName) .filter(StrUtil::isNotBlank) - .findFirst() - .ifPresent(item::setProductName); + .findFirst() + .ifPresent(item::setProductName); } }); } + private Map getChildMoldCountMap(Collection brandIds) { + if (CollUtil.isEmpty(brandIds)) { + return Collections.emptyMap(); + } + List moldList = moldMapper.selectList(new LambdaQueryWrapperX() + .in(MoldDO::getBrandId, brandIds) + .select(MoldDO::getBrandId)); + if (CollUtil.isEmpty(moldList)) { + return Collections.emptyMap(); + } + return moldList.stream() + .filter(mold -> mold.getBrandId() != null) + .collect(Collectors.groupingBy(MoldDO::getBrandId, Collectors.counting())); + } + private Map getLatestOperateMapByBrandIds(Collection brandIds) { if (CollUtil.isEmpty(brandIds)) { return Collections.emptyMap(); @@ -740,6 +760,14 @@ public class MoldBrandServiceImpl implements MoldBrandService { } + @Override + public List validMoldList(Set ids) { + if (CollUtil.isEmpty(ids)) { + return Collections.emptyList(); + } + return moldBrandMapper.selectBatchIds(ids); + } + /** * 构建树形结构 */ diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java index 0b32a5864..0cfb1d74e 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockInServiceImpl.java @@ -5,9 +5,11 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.common.controller.admin.mold.vo.MoldSaveReqVO; +import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldBrandDO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSaveReqVO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; +import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO; @@ -18,6 +20,7 @@ import cn.iocoder.yudao.module.erp.dal.mysql.stock.ErpStockMapper; import cn.iocoder.yudao.module.erp.dal.redis.no.ErpNoRedisDAO; import cn.iocoder.yudao.module.erp.enums.ErpAuditStatus; import cn.iocoder.yudao.module.erp.enums.stock.ErpStockRecordBizTypeEnum; +import cn.iocoder.yudao.module.erp.service.mold.MoldBrandService; import cn.iocoder.yudao.module.erp.service.mold.MoldService; import cn.iocoder.yudao.module.erp.service.product.ErpProductService; import cn.iocoder.yudao.module.erp.service.purchase.ErpSupplierService; @@ -66,8 +69,8 @@ public class ErpStockInServiceImpl implements ErpStockInService { private ErpSupplierService supplierService; @Resource private ErpStockRecordService stockRecordService; - - + @Resource + private MoldBrandService moldBrandService; @Override @Transactional(rollbackFor = Exception.class) @@ -195,15 +198,18 @@ public class ErpStockInServiceImpl implements ErpStockInService { private List validateStockInItems(List list,String outType) { if (Objects.equals(outType, "模具入库")) { // 1.1 校验模具存在 - List moldList = moldService.validMoldList( +// List moldList = moldService.validMoldList( +// convertSet(list, ErpStockInSaveReqVO.Item::getProductId)); +// Map moldMap = convertMap(moldList, MoldDO::getId); + List moldList = moldBrandService.validMoldList( convertSet(list, ErpStockInSaveReqVO.Item::getProductId)); - Map moldMap = convertMap(moldList, MoldDO::getId); + Map moldMap = convertMap(moldList, MoldBrandDO::getId); // 1.2 校验仓库存在 // warehouseService.validWarehouseList(convertSet( // list, ErpStockInSaveReqVO.Item::getWarehouseId)); // 2. 转化为 ErpStockInItemDO 列表 return convertList(list, o -> BeanUtils.toBean(o, ErpStockInItemDO.class, item -> item - .setProductUnitId(moldMap.get(item.getProductId()).getUnitId()) +// .setProductUnitId(moldMap.get(item.getProductId()).getUnitId()) .setTotalPrice(MoneyUtils.priceMultiply(item.getProductPrice(), item.getCount())))); } else { diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java index 76d26eb7f..a48904f89 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockOutServiceImpl.java @@ -5,6 +5,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.common.controller.admin.mold.vo.MoldSaveReqVO; +import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldBrandDO; +import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldBrandMapper; import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVO; @@ -18,6 +20,7 @@ import cn.iocoder.yudao.module.erp.dal.mysql.stock.ErpStockOutMapper; import cn.iocoder.yudao.module.erp.dal.redis.no.ErpNoRedisDAO; import cn.iocoder.yudao.module.erp.enums.ErpAuditStatus; import cn.iocoder.yudao.module.erp.enums.stock.ErpStockRecordBizTypeEnum; +import cn.iocoder.yudao.module.erp.service.mold.MoldBrandService; import cn.iocoder.yudao.module.erp.service.mold.MoldService; import cn.iocoder.yudao.module.erp.service.product.ErpProductService; import cn.iocoder.yudao.module.erp.service.sale.ErpCustomerService; @@ -59,7 +62,8 @@ public class ErpStockOutServiceImpl implements ErpStockOutService { private ErpProductService productService; @Resource private MoldService moldService; - + @Resource + private MoldBrandService moldBrandService; @Resource private ErpWarehouseService warehouseService; @Resource @@ -181,14 +185,14 @@ public class ErpStockOutServiceImpl implements ErpStockOutService { private List validateStockOutItems(List list,String outType) { if (Objects.equals(outType, "模具出库")) { // 1.1 校验模具存在 - List moldList = moldService.validMoldList( + List moldList = moldBrandService.validMoldList( convertSet(list, ErpStockOutSaveReqVO.Item::getProductId)); - Map moldMap = convertMap(moldList, MoldDO::getId); + Map moldMap = convertMap(moldList, MoldBrandDO::getId); // 1.2 校验仓库存在 // warehouseService.validWarehouseList(convertSet(list, ErpStockOutSaveReqVO.Item::getWarehouseId)); // 2. 转化为 ErpStockOutItemDO 列表 return convertList(list, o -> BeanUtils.toBean(o, ErpStockOutItemDO.class, item -> item - .setProductUnitId(moldMap.get(item.getProductId()).getUnitId()) +// .setProductUnitId(moldMap.get(item.getProductId()).getUnitId()) .setTotalPrice(MoneyUtils.priceMultiply(item.getProductPrice(), item.getCount())))); } else { // 1.1 校验产品存在 diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java index 32a371ad0..f28dee666 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java @@ -95,6 +95,16 @@ public class DvRepairController { return success(buildCreatorName(dvRepairRespVOPageResult)); } + @GetMapping("/list") + @Operation(summary = "获得设备维修记录列表") + @PreAuthorize("@ss.hasPermission('mes:dv-repair:query')") + public CommonResult> getDvRepairList(@Valid DvRepairPageReqVO pageReqVO) { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = dvRepairService.getDvRepairPage(pageReqVO).getList(); + List dvRepairRespVOList = BeanUtils.toBean(list, DvRepairRespVO.class); + return success(buildCreatorName(dvRepairRespVOList)); + } + @GetMapping("/export-excel") @Operation(summary = "导出设备维修记录 Excel") @PreAuthorize("@ss.hasPermission('mes:dv-repair:export')") @@ -228,4 +238,23 @@ public class DvRepairController { return dvSubjectRespVOPageResult; } + private List buildCreatorName(List dvRepairRespVOList) { + for (DvRepairRespVO dvRepairRespVO : dvRepairRespVOList) { + if (dvRepairRespVO.getAcceptedBy() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvRepairRespVO.getAcceptedBy())); + if (user != null) { + dvRepairRespVO.setAcceptedBy("(" + user.getUsername() + ")" + user.getNickname()); + } + } + if (dvRepairRespVO.getConfirmBy() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvRepairRespVO.getConfirmBy())); + if (user != null) { + dvRepairRespVO.setConfirmBy("(" + user.getUsername() + ")" + user.getNickname()); + } + } + } + + return dvRepairRespVOList; + } + } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/MoldOperateController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/MoldOperateController.java index 2b3f46d82..c9087f454 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/MoldOperateController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/MoldOperateController.java @@ -75,43 +75,43 @@ public class MoldOperateController { @Operation(summary = "创建模具上下模") @PreAuthorize("@ss.hasPermission('mes:mold-operate:create')") public CommonResult createMoldOperate(@Valid @RequestBody MoldOperateSaveReqVO createReqVO) { - createReqVO.setUserId(getLoginUserId()); - if (createReqVO.getOperateTime() == null) { - createReqVO.setOperateTime(LocalDateTime.now()); - } - - if (Objects.equals(createReqVO.getOperateType(), "1")) { - DeviceLedgerDO deviceLedger = deviceLedgerService.getDeviceLedger(createReqVO.getDeviceId()); - 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); - 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); - moldService.updateMold(BeanUtils.toBean(moldDO, MoldSaveReqVO.class)); - } - - DeviceLedgerDO deviceLedger = deviceLedgerService.getDeviceLedger(createReqVO.getDeviceId()); - deviceLedger.setMoldId(createReqVO.getMoldId()); - deviceLedgerService.updateDeviceLedger(BeanUtils.toBean(deviceLedger, DeviceLedgerSaveReqVO.class)); - } +// createReqVO.setUserId(getLoginUserId()); +// if (createReqVO.getOperateTime() == null) { +// createReqVO.setOperateTime(LocalDateTime.now()); +// } +// +// if (Objects.equals(createReqVO.getOperateType(), "1")) { +// DeviceLedgerDO deviceLedger = deviceLedgerService.getDeviceLedger(createReqVO.getDeviceId()); +// 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); +// 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); +// moldService.updateMold(BeanUtils.toBean(moldDO, MoldSaveReqVO.class)); +// } +// +// DeviceLedgerDO deviceLedger = deviceLedgerService.getDeviceLedger(createReqVO.getDeviceId()); +// deviceLedger.setMoldId(createReqVO.getMoldId()); +// deviceLedgerService.updateDeviceLedger(BeanUtils.toBean(deviceLedger, DeviceLedgerSaveReqVO.class)); +// } return success(moldOperateService.createMoldOperate(createReqVO)); } @@ -119,10 +119,7 @@ public class MoldOperateController { @Operation(summary = "更新模具上下模") @PreAuthorize("@ss.hasPermission('mes:mold-operate:update')") public CommonResult updateMoldOperate(@Valid @RequestBody MoldOperateSaveReqVO updateReqVO) { - updateReqVO.setUserId(getLoginUserId()); - if (updateReqVO.getOperateTime() == null) { - updateReqVO.setOperateTime(LocalDateTime.now()); - } +// moldOperateService.updateMoldOperate(updateReqVO); return success(true); } @@ -156,8 +153,8 @@ public class MoldOperateController { Set creatorIds = new HashSet<>(); Set operateUserIds = new HashSet<>(); for (MoldOperateDO item : pageResult.getList()) { - if (item.getUserId() != null) { - operateUserIds.add(item.getUserId()); + if (item.getOperatorId() != null) { + operateUserIds.add(item.getOperatorId()); } if (StringUtils.hasText(item.getCreator())) { creatorIds.add(Long.valueOf(item.getCreator())); @@ -170,7 +167,7 @@ public class MoldOperateController { if (StringUtils.hasText(item.getCreator())) { MapUtils.findAndThen(creatorMap, Long.valueOf(item.getCreator()), user -> item.setCreatorName(user.getNickname())); } - MapUtils.findAndThen(operateUserMap, item.getUserId(), user -> item.setUserName(user.getNickname())); + MapUtils.findAndThen(operateUserMap, item.getOperatorId(), user -> item.setOperatorName(user.getNickname())); })); } @@ -185,13 +182,13 @@ public class MoldOperateController { Set operateUserIds = new HashSet<>(); for (MoldOperateDO item : list) { - if (item.getUserId() != null) { - operateUserIds.add(item.getUserId()); + if (item.getOperatorId() != null) { + operateUserIds.add(item.getOperatorId()); } } Map operateUserMap = adminUserApi.getUserMap(operateUserIds); List respVOList = BeanUtils.toBean(list, MoldOperateRespVO.class, - item -> MapUtils.findAndThen(operateUserMap, item.getUserId(), user -> item.setUserName(user.getNickname()))); + item -> MapUtils.findAndThen(operateUserMap, item.getOperatorId(), user -> item.setOperatorName(user.getNickname()))); ExcelUtils.write(response, "模具上下模.xls", "数据", MoldOperateRespVO.class, respVOList); } @@ -221,9 +218,9 @@ public class MoldOperateController { if (respVO == null) { return; } - if (respVO.getUserId() != null) { - MapUtils.findAndThen(adminUserApi.getUserMap(Collections.singleton(respVO.getUserId())), - respVO.getUserId(), user -> respVO.setUserName(user.getNickname())); + if (respVO.getOperatorId() != null) { + MapUtils.findAndThen(adminUserApi.getUserMap(Collections.singleton(respVO.getOperatorId())), + respVO.getOperatorId(), user -> respVO.setOperatorName(user.getNickname())); } if (StringUtils.hasText(respVO.getCreator())) { Long creatorId = Long.valueOf(respVO.getCreator()); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperatePageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperatePageReqVO.java index 5435e3c7c..5128cf0df 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperatePageReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperatePageReqVO.java @@ -37,7 +37,7 @@ public class MoldOperatePageReqVO extends PageParam { private String deviceName; @Schema(description = "操作人id", example = "1") - private Long userId; + private Long operatorId; @Schema(description = "操作时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateRespVO.java index c379071fc..45f3db032 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateRespVO.java @@ -46,11 +46,11 @@ public class MoldOperateRespVO { private LocalDateTime operateTime; @Schema(description = "操作人id", example = "1") - private Long userId; + private Long operatorId; @Schema(description = "操作人名称", example = "芋道") @ExcelProperty("操作人") - private String userName; + private String operatorName; @Schema(description = "备注", example = "随便") @ExcelProperty("备注") 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 a846fea58..7a83a0e09 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 @@ -14,10 +14,10 @@ public class MoldOperateSaveReqVO { private Long id; @Schema(description = "操作类型", example = "2") - private String operateType; + private Integer operateType; @Schema(description = "关联模具id", example = "23041") - private String moldId; + private Integer moldId; @Schema(description = "关联设备id", example = "5057") private Long deviceId; @@ -41,6 +41,6 @@ public class MoldOperateSaveReqVO { private LocalDateTime operateTime; @Schema(description = "操作人id", example = "1") - private Long userId; + private Long operatorId; } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java index 84c7d1927..0773deae5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java @@ -96,6 +96,16 @@ public class MoldRepairController { return success(buildCreatorName(moldRepairRespVOPageResult)); } + @GetMapping("/list") + @Operation(summary = "获得模具维修记录列表") + @PreAuthorize("@ss.hasPermission('mes:mold-repair:query')") + public CommonResult> getMoldRepairList(@Valid MoldRepairPageReqVO pageReqVO) { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = moldRepairService.getMoldRepairPage(pageReqVO).getList(); + List moldRepairRespVOList = BeanUtils.toBean(list, MoldRepairRespVO.class); + return success(buildCreatorName(moldRepairRespVOList)); + } + @GetMapping("/export-excel") @Operation(summary = "导出模具维修记录 Excel") @PreAuthorize("@ss.hasPermission('mes:mold-repair:export')") @@ -222,4 +232,23 @@ public class MoldRepairController { return moldSubjectRespVOPageResult; } + private List buildCreatorName(List moldRepairRespVOList) { + for (MoldRepairRespVO moldRepairRespVO : moldRepairRespVOList) { + if (moldRepairRespVO.getAcceptedBy() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldRepairRespVO.getAcceptedBy())); + if (user != null) { + moldRepairRespVO.setAcceptedBy("(" + user.getUsername() + ")" + user.getNickname()); + } + } + if (moldRepairRespVO.getConfirmBy() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldRepairRespVO.getConfirmBy())); + if (user != null) { + moldRepairRespVO.setConfirmBy("(" + user.getUsername() + ")" + user.getNickname()); + } + } + } + + return moldRepairRespVOList; + } + } 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 fa346fe3a..aed801e7e 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 @@ -71,7 +71,7 @@ public class MoldOperateDO extends BaseDO { /** * 操作人id */ - private Long userId; + private Long operatorId; } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldoperate/MoldOperateMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldoperate/MoldOperateMapper.java index e9f74107e..9bc141b8c 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldoperate/MoldOperateMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldoperate/MoldOperateMapper.java @@ -26,7 +26,7 @@ public interface MoldOperateMapper extends BaseMapperX { .eqIfPresent(MoldOperateDO::getLineId, reqVO.getLineId()) .likeIfPresent(MoldOperateDO::getLineName, reqVO.getLineName()) .likeIfPresent(MoldOperateDO::getDeviceName, reqVO.getDeviceName()) - .eqIfPresent(MoldOperateDO::getUserId, reqVO.getUserId()) + .eqIfPresent(MoldOperateDO::getOperatorId, reqVO.getOperatorId()) .betweenIfPresent(MoldOperateDO::getOperateTime, reqVO.getOperateTime()) .eqIfPresent(MoldOperateDO::getRemark, reqVO.getRemark()) .betweenIfPresent(MoldOperateDO::getCreateTime, reqVO.getCreateTime()) diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/subjectmoldplan/SubjectMoldPlanMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/subjectmoldplan/SubjectMoldPlanMapper.java index ef0a613b6..84b775286 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/subjectmoldplan/SubjectMoldPlanMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/subjectmoldplan/SubjectMoldPlanMapper.java @@ -4,7 +4,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.mes.dal.dataobject.subjectmoldplan.SubjectMoldPlanDO; -import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.mes.controller.admin.subjectmoldplan.vo.*; @@ -29,7 +28,9 @@ public interface SubjectMoldPlanMapper extends BaseMapperX { * * @param planId 计划ID */ - @Delete("DELETE FROM besure.mes_subject_mold_plan WHERE plan_id = #{planId}") - void deleteByPlanId(Long planId); + default void deleteByPlanId(Long planId) { + delete(new LambdaQueryWrapperX() + .eq(SubjectMoldPlanDO::getPlanId, planId)); + } -} \ 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 8c2744193..ee144d82b 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,7 +1,10 @@ package cn.iocoder.yudao.module.mes.service.moldoperate; +import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldBrandDO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; +import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldBrandMapper; import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldMapper; +import cn.iocoder.yudao.module.common.enums.MoldBrandStatusEnum; import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO; import cn.iocoder.yudao.module.mes.dal.mysql.deviceledger.DeviceLedgerMapper; @@ -10,6 +13,7 @@ import jodd.util.StringUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.util.*; @@ -46,46 +50,30 @@ public class MoldOperateServiceImpl implements MoldOperateService { @Resource private MoldMapper moldMapper; + @Resource + private MoldBrandMapper moldBrandMapper; + @Override + @Transactional(rollbackFor = Exception.class) public Long createMoldOperate(MoldOperateSaveReqVO createReqVO) { // 插入 MoldOperateDO moldOperate = BeanUtils.toBean(createReqVO, MoldOperateDO.class); DeviceLedgerDO deviceLedgerDO = deviceLedgerMapper.selectById(createReqVO.getDeviceId()); - fillDeviceAndLineInfo(moldOperate, deviceLedgerDO); - - List idList; + fillDeviceAndLineInfo(moldOperate, deviceLedgerDO,createReqVO.getLineId()); - if (createReqVO.getLowerMoldId()!=null){ - idList = Arrays.stream(createReqVO.getLowerMoldId().split(",")) - .map(String::trim) // 去除可能存在的空格 - .map(Long::valueOf) - .collect(Collectors.toList()); - }else { - idList = Arrays.stream(createReqVO.getMoldId().split(",")) - .map(String::trim) // 去除可能存在的空格 - .map(Long::valueOf) - .collect(Collectors.toList()); + MoldBrandDO moldDO = moldBrandMapper.selectById(createReqVO.getMoldId()); + if (moldDO != null && StringUtil.isNotBlank(moldDO.getName())) { + moldOperate.setMoldName(moldDO.getName()); } - - - - 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); + //修改模具组状态 + if (createReqVO.getOperateType() == 1){ + moldDO.setStatus(MoldBrandStatusEnum.ON_MACHINE.getStatus()); + }else { + moldDO.setStatus(MoldBrandStatusEnum.ON_MACHINE.getStatus()); } + moldBrandMapper.updateById(moldDO); - moldOperateMapper.insert(moldOperate); // 返回 return moldOperate.getId(); } @@ -99,27 +87,16 @@ public class MoldOperateServiceImpl implements MoldOperateService { MoldOperateDO updateObj = BeanUtils.toBean(updateReqVO, MoldOperateDO.class); DeviceLedgerDO deviceLedgerDO = deviceLedgerMapper.selectById(updateReqVO.getDeviceId()); - fillDeviceAndLineInfo(updateObj, deviceLedgerDO); + fillDeviceAndLineInfo(updateObj, deviceLedgerDO,updateReqVO.getLineId()); - List idList = Arrays.stream(updateReqVO.getMoldId().split(",")) - .map(String::trim) // 去除可能存在的空格 - .map(Long::valueOf) - .collect(Collectors.toList()); +// 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(""); + MoldBrandDO moldDO = moldBrandMapper.selectById(updateReqVO.getMoldId()); + if (moldDO != null && StringUtil.isNotBlank(moldDO.getName())) { + updateObj.setMoldName(moldDO.getName()); } moldOperateMapper.updateById(updateObj); @@ -174,17 +151,14 @@ public class MoldOperateServiceImpl implements MoldOperateService { return moldDOList; } - private void fillDeviceAndLineInfo(MoldOperateDO moldOperate, DeviceLedgerDO deviceLedgerDO) { + private void fillDeviceAndLineInfo(MoldOperateDO moldOperate, DeviceLedgerDO deviceLedgerDO,Long lineId) { if (deviceLedgerDO == null) { return; } moldOperate.setDeviceId(deviceLedgerDO.getId()); moldOperate.setDeviceName(deviceLedgerDO.getDeviceName()); - if (deviceLedgerDO.getDeviceLine() == null) { - return; - } - moldOperate.setLineId(deviceLedgerDO.getDeviceLine().longValue()); - OrganizationDO organizationDO = organizationMapper.selectById(deviceLedgerDO.getDeviceLine().longValue()); + moldOperate.setLineId(lineId); + OrganizationDO organizationDO = organizationMapper.selectById(lineId); if (organizationDO != null) { moldOperate.setLineName(organizationDO.getName()); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java index 7afb38b16..eb308f676 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.mes.service.moldtaskmanagement; +import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldBrandDO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; +import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldBrandMapper; import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldMapper; import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO; @@ -58,6 +60,8 @@ public class MoldTaskManagementServiceImpl implements MoldTaskManagementService @Resource private MoldMapper moldMapper; + @Resource + private MoldBrandMapper moldBrandMapper; @Resource private MoldPlanMaintenanceMapper moldplanMaintenanceMapper; @@ -179,7 +183,7 @@ public PageResult getMoldTaskManagementPage(MoldTaskManage for (Long moldId : idList) { MoldTicketManagementDO moldticketManagementDO = new MoldTicketManagementDO(); - MoldDO moldDO = moldMapper.selectById(moldId); + MoldBrandDO moldDO = moldBrandMapper.selectById(moldId); moldticketManagementDO.setTaskId(moldtaskManagementDO.getId()); moldticketManagementDO.setPlanNo(generatePrefixedOrderNo()); moldticketManagementDO.setPlanId(moldtaskManagementDO.getProjectForm());