diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/tm/tool/MesTmToolController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/tm/tool/MesTmToolController.java index 6ce72aa0c1..a7382244fe 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/tm/tool/MesTmToolController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/tm/tool/MesTmToolController.java @@ -109,6 +109,14 @@ public class MesTmToolController { ExcelUtils.write(response, "工具台账.xls", "数据", MesTmToolRespVO.class, voList); } + @GetMapping("/simple-list") + @Operation(summary = "获得工具精简列表") + @PreAuthorize("@ss.hasPermission('mes:tm-tool:query')") + public CommonResult> getToolSimpleList() { + List list = toolService.getToolSimpleList(); + return success(BeanUtils.toBean(list, MesTmToolRespVO.class)); + } + // ==================== 拼接 VO ==================== @SuppressWarnings("CodeBlock2Expr") diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/MesBizTypeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/MesBizTypeConstants.java index d308fb2d73..d1f0e0b6b2 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/MesBizTypeConstants.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/MesBizTypeConstants.java @@ -56,5 +56,6 @@ public final class MesBizTypeConstants { public static final int MD_WORKSTATION = 602; // 工作站:MesMdWorkstationDO public static final int MD_WORKSHOP = 603; // 车间:MesMdWorkshopDO public static final int MD_USER = 604; // 人员:系统用户 + public static final int MD_CLIENT = 605; // 客户:MesMdClientDO } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/BarcodeBizTypeEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/BarcodeBizTypeEnum.java index c014ec6ae3..4b25d41c9b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/BarcodeBizTypeEnum.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/BarcodeBizTypeEnum.java @@ -16,6 +16,8 @@ import java.util.Arrays; @AllArgsConstructor public enum BarcodeBizTypeEnum implements ArrayValuable { + WAREHOUSE(MesBizTypeConstants.WM_WAREHOUSE, "仓库"), + LOCATION(MesBizTypeConstants.WM_LOCATION, "库区"), AREA(MesBizTypeConstants.WM_AREA, "库位"), PACKAGE(MesBizTypeConstants.WM_PACKAGE, "装箱单"), STOCK(MesBizTypeConstants.WM_STOCK, "库存"), @@ -24,8 +26,10 @@ public enum BarcodeBizTypeEnum implements ArrayValuable { WORKORDER(MesBizTypeConstants.PRO_WORKORDER, "工单"), TRANSORDER(MesBizTypeConstants.PRO_TRANS_ORDER, "流转单"), MACHINERY(MesBizTypeConstants.DV_MACHINERY, "设备"), + TOOL(MesBizTypeConstants.TM_TOOL, "工具"), ITEM(MesBizTypeConstants.MD_ITEM, "物料"), VENDOR(MesBizTypeConstants.MD_VENDOR, "供应商"), + CLIENT(MesBizTypeConstants.MD_CLIENT, "客户"), WORKSTATION(MesBizTypeConstants.MD_WORKSTATION, "工作站"), WORKSHOP(MesBizTypeConstants.MD_WORKSHOP, "车间"), USER(MesBizTypeConstants.MD_USER, "人员"); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryServiceImpl.java index ef06896cd4..b38158bec6 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/machinery/MesDvMachineryServiceImpl.java @@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.dv.machinery.vo.MesDvMachine import cn.iocoder.yudao.module.mes.controller.admin.dv.machinery.vo.MesDvMachinerySaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.dv.machinery.MesDvMachineryDO; import cn.iocoder.yudao.module.mes.dal.mysql.dv.machinery.MesDvMachineryMapper; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkshopService; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import jakarta.annotation.Resource; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -41,6 +43,9 @@ public class MesDvMachineryServiceImpl implements MesDvMachineryService { @Lazy private MesMdWorkshopService workshopService; + @Resource + private MesWmBarcodeService barcodeService; + @Override public Long createMachinery(MesDvMachinerySaveReqVO createReqVO) { // 校验设备类型存在 @@ -53,6 +58,10 @@ public class MesDvMachineryServiceImpl implements MesDvMachineryService { // 插入 MesDvMachineryDO machinery = BeanUtils.toBean(createReqVO, MesDvMachineryDO.class); machineryMapper.insert(machinery); + + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.MACHINERY.getValue(), + machinery.getId(), machinery.getCode(), machinery.getName()); return machinery.getId(); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientServiceImpl.java index ab07dab93a..3b16a2eafe 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientServiceImpl.java @@ -12,6 +12,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.md.client.vo.MesMdClientPage import cn.iocoder.yudao.module.mes.controller.admin.md.client.vo.MesMdClientSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.client.MesMdClientDO; import cn.iocoder.yudao.module.mes.dal.mysql.md.client.MesMdClientMapper; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,6 +41,9 @@ public class MesMdClientServiceImpl implements MesMdClientService { @Resource private MesMdClientMapper clientMapper; + @Resource + private MesWmBarcodeService barcodeService; + @Override public Long createClient(MesMdClientSaveReqVO createReqVO) { // 校验编码唯一 @@ -51,7 +56,10 @@ public class MesMdClientServiceImpl implements MesMdClientService { // 插入 MesMdClientDO client = BeanUtils.toBean(createReqVO, MesMdClientDO.class); clientMapper.insert(client); - // TODO @芋艿:客户创建后自动生成条码,依赖 WM 条码模块 + + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.CLIENT.getValue(), + client.getId(), client.getCode(), client.getName()); return client.getId(); } @@ -185,6 +193,9 @@ public class MesMdClientServiceImpl implements MesMdClientService { } MesMdClientDO client = BeanUtils.toBean(importClient, MesMdClientDO.class); clientMapper.insert(client); + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.CLIENT.getValue(), + client.getId(), client.getCode(), client.getName()); respVO.getCreateCodes().add(importClient.getCode()); } else if (updateSupport) { // 2.2.2 更新 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java index 34d065552e..77e9280072 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java @@ -15,7 +15,9 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -53,6 +55,8 @@ public class MesMdItemServiceImpl implements MesMdItemService { private MesMdProductSopService productSopService; @Resource private MesMdProductSipService productSipService; + @Resource + private MesWmBarcodeService barcodeService; @Override public Long createItem(MesMdItemSaveReqVO createReqVO) { @@ -69,6 +73,10 @@ public class MesMdItemServiceImpl implements MesMdItemService { MesMdItemDO item = BeanUtils.toBean(createReqVO, MesMdItemDO.class); clearStockIfNotSafe(item); // 如果未启用安全库存,清零库存上下限 itemMapper.insert(item); + + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.ITEM.getValue(), + item.getId(), item.getCode(), item.getName()); return item.getId(); } @@ -300,6 +308,9 @@ public class MesMdItemServiceImpl implements MesMdItemService { item.setUnitMeasureId(unitMeasure.getId()); clearStockIfNotSafe(item); itemMapper.insert(item); + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.ITEM.getValue(), + item.getId(), item.getCode(), item.getName()); respVO.getCreateCodes().add(importItem.getCode()); } else if (updateSupport) { // 2.3.2 更新 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorServiceImpl.java index d125f4366b..0749999c4f 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorServiceImpl.java @@ -12,6 +12,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.md.vendor.vo.MesMdVendorPage import cn.iocoder.yudao.module.mes.controller.admin.md.vendor.vo.MesMdVendorSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO; import cn.iocoder.yudao.module.mes.dal.mysql.md.vendor.MesMdVendorMapper; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,6 +41,9 @@ public class MesMdVendorServiceImpl implements MesMdVendorService { @Resource private MesMdVendorMapper vendorMapper; + @Resource + private MesWmBarcodeService barcodeService; + @Override public Long createVendor(MesMdVendorSaveReqVO createReqVO) { // 校验编码唯一 @@ -51,6 +56,10 @@ public class MesMdVendorServiceImpl implements MesMdVendorService { // 插入 MesMdVendorDO vendor = BeanUtils.toBean(createReqVO, MesMdVendorDO.class); vendorMapper.insert(vendor); + + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.VENDOR.getValue(), + vendor.getId(), vendor.getCode(), vendor.getName()); return vendor.getId(); } @@ -182,6 +191,9 @@ public class MesMdVendorServiceImpl implements MesMdVendorService { } MesMdVendorDO vendor = BeanUtils.toBean(importVendor, MesMdVendorDO.class); vendorMapper.insert(vendor); + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.VENDOR.getValue(), + vendor.getId(), vendor.getCode(), vendor.getName()); respVO.getCreateCodes().add(importVendor.getCode()); } else if (updateSupport) { // 2.2.2 更新 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java index 2963c4f758..e54f88afcc 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java @@ -10,6 +10,8 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkshopDO import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkshopMapper; import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import jakarta.annotation.Resource; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -38,6 +40,9 @@ public class MesMdWorkshopServiceImpl implements MesMdWorkshopService { @Lazy private MesMdWorkstationMapper workstationMapper; + @Resource + private MesWmBarcodeService barcodeService; + @Override public Long createWorkshop(MesMdWorkshopSaveReqVO createReqVO) { // 校验编码唯一 @@ -48,6 +53,10 @@ public class MesMdWorkshopServiceImpl implements MesMdWorkshopService { // 插入 MesMdWorkshopDO workshop = BeanUtils.toBean(createReqVO, MesMdWorkshopDO.class); workshopMapper.insert(workshop); + + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.WORKSHOP.getValue(), + workshop.getId(), workshop.getCode(), workshop.getName()); return workshop.getId(); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java index 119c369724..40ef852449 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java @@ -14,6 +14,8 @@ import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMach import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper; import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationToolMapper; import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationWorkerMapper; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService; import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService; import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService; @@ -62,6 +64,9 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { @Resource private MesWmWarehouseAreaService areaService; + @Resource + private MesWmBarcodeService barcodeService; + @Override public Long createWorkstation(MesMdWorkstationSaveReqVO createReqVO) { // 校验编码唯一 @@ -76,6 +81,10 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { // 插入 MesMdWorkstationDO workstation = BeanUtils.toBean(createReqVO, MesMdWorkstationDO.class); workstationMapper.insert(workstation); + + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.WORKSTATION.getValue(), + workstation.getId(), workstation.getCode(), workstation.getName()); return workstation.getId(); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java index cca7b2d56f..b3b13c107e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java @@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.pro.card.vo.MesProCardSaveRe import cn.iocoder.yudao.module.mes.dal.dataobject.pro.card.MesProCardDO; import cn.iocoder.yudao.module.mes.dal.mysql.pro.card.MesProCardMapper; import cn.iocoder.yudao.module.mes.dal.mysql.pro.card.MesProCardProcessMapper; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -35,6 +37,9 @@ public class MesProCardServiceImpl implements MesProCardService { @Resource private MesProWorkOrderService workOrderService; + @Resource + private MesWmBarcodeService barcodeService; + @Override public Long createCard(MesProCardSaveReqVO createReqVO) { // 1.1 校验编码唯一 @@ -45,7 +50,10 @@ public class MesProCardServiceImpl implements MesProCardService { // 2. 插入 MesProCardDO card = BeanUtils.toBean(createReqVO, MesProCardDO.class); cardMapper.insert(card); - // TODO @芋艿:条码生成(barcode_url),需等条码模块(wm_barcode)迁移后再对接 + + // 3. 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.PROCARD.getValue(), + card.getId(), card.getCode(), card.getCode()); return card.getId(); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkorderServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkorderServiceImpl.java index 31885ea895..0908db38fc 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkorderServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkorderServiceImpl.java @@ -14,9 +14,11 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderD import cn.iocoder.yudao.module.mes.dal.mysql.pro.workorder.MesProWorkOrderBomMapper; import cn.iocoder.yudao.module.mes.dal.mysql.pro.workorder.MesProWorkOrderMapper; import cn.iocoder.yudao.module.mes.enums.pro.MesProWorkOrderStatusEnum; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemBatchConfigService; import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; import cn.iocoder.yudao.module.mes.service.md.item.MesMdProductBomService; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -43,6 +45,7 @@ public class MesProWorkOrderServiceImpl implements MesProWorkOrderService { @Resource private MesProWorkOrderMapper workOrderMapper; + // TODO @AI:不应该直接这么调用,调用对应的 service @Resource private MesProWorkOrderBomMapper workOrderBomMapper; @@ -55,6 +58,9 @@ public class MesProWorkOrderServiceImpl implements MesProWorkOrderService { @Resource private MesMdItemBatchConfigService itemBatchConfigService; + @Resource + private MesWmBarcodeService barcodeService; + @Override @Transactional(rollbackFor = Exception.class) public Long createWorkOrder(MesProWorkOrderSaveReqVO createReqVO) { @@ -78,6 +84,10 @@ public class MesProWorkOrderServiceImpl implements MesProWorkOrderService { // 3. 自动生成 BOM:根据产品 BOM 生成工单 BOM generateWorkOrderBom(workOrder.getId(), createReqVO.getProductId(), createReqVO.getQuantity()); + + // 4. 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.WORKORDER.getValue(), + workOrder.getId(), workOrder.getCode(), workOrder.getName()); return workOrder.getId(); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolService.java index acbe55cd5f..baacd53321 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolService.java @@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.MesTmToolSaveReqV import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO; import jakarta.validation.Valid; +import java.util.List; + /** * MES 工具台账 Service 接口 * @@ -51,4 +53,11 @@ public interface MesTmToolService { */ PageResult getToolPage(MesTmToolPageReqVO pageReqVO); + /** + * 获得工具精简列表 + * + * @return 工具列表 + */ + List getToolSimpleList(); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolServiceImpl.java index 9aaf8ae38d..f6d20f7669 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.mes.service.tm.tool; +import cn.hutool.core.util.ObjUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.MesTmToolPageReqVO; @@ -7,17 +8,19 @@ import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.MesTmToolSaveReqV import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO; import cn.iocoder.yudao.module.mes.dal.mysql.tm.tool.MesTmToolMapper; import cn.iocoder.yudao.module.mes.enums.tm.MesTmMaintenTypeEnum; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import jakarta.annotation.Resource; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import cn.hutool.core.util.ObjUtil; - +import java.util.List; import java.util.Objects; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.TM_TOOL_CODE_DUPLICATE; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.TM_TOOL_NOT_EXISTS; /** * MES 工具台账 Service 实现类 @@ -35,6 +38,9 @@ public class MesTmToolServiceImpl implements MesTmToolService { @Lazy // 延迟加载,避免循环依赖 private MesTmToolTypeService toolTypeService; + @Resource + private MesWmBarcodeService barcodeService; + @Override public Long createTool(MesTmToolSaveReqVO createReqVO) { // 校验工具类型存在 @@ -45,6 +51,10 @@ public class MesTmToolServiceImpl implements MesTmToolService { // 插入 MesTmToolDO tool = BeanUtils.toBean(createReqVO, MesTmToolDO.class); toolMapper.insert(tool); + + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.TOOL.getValue(), + tool.getId(), tool.getCode(), tool.getName()); return tool.getId(); } @@ -104,4 +114,9 @@ public class MesTmToolServiceImpl implements MesTmToolService { return toolMapper.selectPage(pageReqVO); } + @Override + public List getToolSimpleList() { + return toolMapper.selectList(); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeServiceImpl.java index 7c089b8acd..759d3f21bf 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/barcode/MesWmBarcodeServiceImpl.java @@ -43,6 +43,7 @@ public class MesWmBarcodeServiceImpl implements MesWmBarcodeService { } // 2.1 生成条码内容(根据配置模板) + // TODO @AI:MesWmBarcodeSaveReqVO 增加一个 content 字段;如果为空,才进行生成; String content = generateBarcodeContent(config.getContentFormat(), createReqVO.getBizCode()); // 2.2 校验条码内容唯一性 MesWmBarcodeDO contentBarcode = barcodeMapper.selectByContent(content); @@ -57,11 +58,29 @@ public class MesWmBarcodeServiceImpl implements MesWmBarcodeService { return barcode.getId(); } + // TODO @AI:后端提供一个接口,用于 generateBarcodeContent 的生成;前端需要调用这个接口; + + /** + * 生成条码内容 + * + * @param contentFormat 内容格式模板 + * @param bizCode 业务编码 + * @return 条码内容 + */ + private String generateBarcodeContent(String contentFormat, String bizCode) { + if (StrUtil.isBlank(contentFormat)) { + return bizCode; + } + return contentFormat.replace(MesWmBarcodeConfigDO.PLACEHOLDER_BUSINESS_CODE, bizCode); + } + @Override public void updateBarcode(MesWmBarcodeSaveReqVO updateReqVO) { // 校验存在 validateBarcodeExists(updateReqVO.getId()); + // TODO @AI:content 可以更新;更新需要校验唯一; + // 更新 MesWmBarcodeDO updateObj = BeanUtils.toBean(updateReqVO, MesWmBarcodeDO.class); barcodeMapper.updateById(updateObj); @@ -119,18 +138,4 @@ public class MesWmBarcodeServiceImpl implements MesWmBarcodeService { createBarcode(createReqVO); } - /** - * 生成条码内容 - * - * @param contentFormat 内容格式模板 - * @param bizCode 业务编码 - * @return 条码内容 - */ - private String generateBarcodeContent(String contentFormat, String bizCode) { - if (StrUtil.isBlank(contentFormat)) { - return bizCode; - } - return contentFormat.replace(MesWmBarcodeConfigDO.PLACEHOLDER_BUSINESS_CODE, bizCode); - } - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java index b2ec2ca58b..8e58b575ca 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java @@ -9,7 +9,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWa import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseAreaMapper; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService; import jakarta.annotation.Resource; import org.springframework.context.annotation.Lazy; @@ -41,6 +43,8 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService @Resource @Lazy private MesWmWarehouseLocationService locationService; + @Resource + private MesWmBarcodeService barcodeService; @Override public Long createWarehouseArea(MesWmWarehouseAreaSaveReqVO createReqVO) { @@ -51,8 +55,13 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService // 校验名称唯一 validateWarehouseAreaNameUnique(null, createReqVO.getLocationId(), createReqVO.getName()); + // 插入 MesWmWarehouseAreaDO area = BeanUtils.toBean(createReqVO, MesWmWarehouseAreaDO.class); areaMapper.insert(area); + + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.AREA.getValue(), + area.getId(), area.getCode(), area.getName()); return area.getId(); } @@ -67,6 +76,7 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService // 校验名称唯一 validateWarehouseAreaNameUnique(updateReqVO.getId(), updateReqVO.getLocationId(), updateReqVO.getName()); + // 更新 MesWmWarehouseAreaDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseAreaDO.class); areaMapper.updateById(updateObj); } @@ -84,6 +94,7 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService throw exception(WM_WAREHOUSE_AREA_HAS_MATERIAL_STOCK); } + // 删除 areaMapper.deleteById(id); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java index 4050b3daf0..bda6e3dcf7 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java @@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.Mes import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseLocationMapper; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService; import jakarta.annotation.Resource; import org.springframework.context.annotation.Lazy; @@ -42,6 +44,8 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation @Resource @Lazy private MesWmWarehouseService warehouseService; + @Resource + private MesWmBarcodeService barcodeService; @Override public Long createWarehouseLocation(MesWmWarehouseLocationSaveReqVO createReqVO) { @@ -52,8 +56,13 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation // 校验名称唯一 validateWarehouseLocationNameUnique(null, createReqVO.getWarehouseId(), createReqVO.getName()); + // 插入 MesWmWarehouseLocationDO location = BeanUtils.toBean(createReqVO, MesWmWarehouseLocationDO.class); locationMapper.insert(location); + + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.LOCATION.getValue(), + location.getId(), location.getCode(), location.getName()); return location.getId(); } @@ -68,6 +77,7 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation // 校验名称唯一 validateWarehouseLocationNameUnique(updateReqVO.getId(), updateReqVO.getWarehouseId(), updateReqVO.getName()); + // 更新 MesWmWarehouseLocationDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseLocationDO.class); locationMapper.updateById(updateObj); } @@ -89,6 +99,7 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation throw exception(WM_WAREHOUSE_LOCATION_HAS_MATERIAL_STOCK); } + // 删除 locationMapper.deleteById(id); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java index 85330d6f6b..702557013f 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java @@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehou import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehouseSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseMapper; +import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; +import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService; import jakarta.annotation.Resource; import org.springframework.context.annotation.Lazy; @@ -39,6 +41,8 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { private MesMdWorkstationService workstationService; @Resource private MesWmMaterialStockService materialStockService; + @Resource + private MesWmBarcodeService barcodeService; @Override public Long createWarehouse(MesWmWarehouseSaveReqVO createReqVO) { @@ -50,6 +54,10 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { // 插入 MesWmWarehouseDO warehouse = BeanUtils.toBean(createReqVO, MesWmWarehouseDO.class); warehouseMapper.insert(warehouse); + + // 自动生成条码 + barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.WAREHOUSE.getValue(), + warehouse.getId(), warehouse.getCode(), warehouse.getName()); return warehouse.getId(); }