From df417392440535cb5c0b2ac9f5e5f6b8b99acf8c Mon Sep 17 00:00:00 2001 From: kkk-ops <1050738955@qq.com> Date: Thu, 25 Dec 2025 15:33:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mysql/autocode/AutocodeRuleMapper.java | 2 +- .../iot/service/device/DeviceService.java | 15 +++ .../iot/service/device/DeviceServiceImpl.java | 11 +++ .../module/mes/enums/ErrorCodeConstants.java | 1 + .../vo/ItemRequisitionSaveReqVO.java | 10 ++ .../workteam/vo/WorkTeamDetailRespVO.java | 12 ++- .../admin/zjproduct/ZjProductController.java | 94 +++++++++++++++++++ .../zjproduct/vo/ZjProductPageReqVO.java | 43 +++++++++ .../admin/zjproduct/vo/ZjProductRespVO.java | 50 ++++++++++ .../zjproduct/vo/ZjProductSaveReqVO.java | 38 ++++++++ .../task/ViewTaskProductSummary.java | 11 ++- .../dal/dataobject/zjproduct/ZjProductDO.java | 61 ++++++++++++ .../dal/mysql/zjproduct/ZjProductMapper.java | 33 +++++++ .../organization/OrganizationServiceImpl.java | 18 +++- .../mes/service/plan/PlanServiceImpl.java | 1 + .../mes/service/task/TaskServiceImpl.java | 3 +- .../service/workteam/WorkTeamServiceImpl.java | 2 +- .../service/zjproduct/ZjProductService.java | 55 +++++++++++ .../zjproduct/ZjProductServiceImpl.java | 74 +++++++++++++++ .../mapper/zjproduct/ZjProductMapper.xml | 12 +++ .../system/api/user/dto/AdminUserRespDTO.java | 6 +- .../admin/user/vo/user/UserSimpleRespVO.java | 5 +- 22 files changed, 544 insertions(+), 13 deletions(-) create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/ZjProductController.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/vo/ZjProductPageReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/vo/ZjProductRespVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/vo/ZjProductSaveReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/zjproduct/ZjProductDO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/zjproduct/ZjProductMapper.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductService.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductServiceImpl.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/zjproduct/ZjProductMapper.xml diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/autocode/AutocodeRuleMapper.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/autocode/AutocodeRuleMapper.java index f638a9d4db..f6da4ef487 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/autocode/AutocodeRuleMapper.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/autocode/AutocodeRuleMapper.java @@ -19,7 +19,7 @@ public interface AutocodeRuleMapper extends BaseMapperX { default PageResult selectPage(AutocodeRulePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(AutocodeRuleDO::getRuleCode, reqVO.getRuleCode()) + .likeIfPresent(AutocodeRuleDO::getRuleCode, reqVO.getRuleCode()) .likeIfPresent(AutocodeRuleDO::getRuleName, reqVO.getRuleName()) .eqIfPresent(AutocodeRuleDO::getRuleDesc, reqVO.getRuleDesc()) .eqIfPresent(AutocodeRuleDO::getMaxLength, reqVO.getMaxLength()) diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java index 9309810793..b118dd5403 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java @@ -1,14 +1,19 @@ package cn.iocoder.yudao.module.iot.service.device; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.DevicePageReqVO; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.DeviceSaveReqVO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceAttributeDO; import javax.validation.Valid; +import java.util.Collection; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 物联设备 Service 接口 @@ -48,6 +53,14 @@ public interface DeviceService { DeviceDO getDevice(Long id); DeviceDO getDeviceByName(String name); DeviceDO getDeviceByTopic(String topic); + + List getList(Collection ids); + default Map getMap(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return new HashMap<>(); + } + return CollectionUtils.convertMap(getList(ids), DeviceDO::getId); + } /** * 获得物联设备分页 * @@ -97,4 +110,6 @@ public interface DeviceService { */ DeviceAttributeDO getDeviceAttribute(Long id); + + } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java index 44dacc6486..6843ad5c92 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.iot.service.device; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @@ -21,6 +22,8 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.Collection; +import java.util.Collections; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -169,4 +172,12 @@ public class DeviceServiceImpl implements DeviceService { deviceAttributeMapper.deleteByDeviceId(deviceId); } + @Override + public List getList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return Collections.emptyList(); + } + return deviceMapper.selectBatchIds(ids); + } + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index 9c2074cc4d..7e979a34a2 100644 --- a/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -79,4 +79,5 @@ public interface ErrorCodeConstants { ErrorCode ZJ_TYPE_NOT_EXISTS = new ErrorCode(5_009, "检验类型不存在"); ErrorCode ZJ_ITEM_NOT_EXISTS = new ErrorCode(5_0091, "检验项目不存在"); ErrorCode ZJ_SCHEMA_NOT_EXISTS = new ErrorCode(5_0092, "检验方案不存在"); + ErrorCode ZJ_PRODUCT_NOT_EXISTS = new ErrorCode(5_0093, "检验参数不存在"); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionSaveReqVO.java index d69d047648..2c3b9d1796 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionSaveReqVO.java @@ -45,4 +45,14 @@ public class ItemRequisitionSaveReqVO { private Long workerId; @Schema(description = "制浆线") private String feedingPipeline; + + @Schema(description = "生产线") + private String pipeline; + + @Schema(description = "是否试生产") + private Boolean isPreProduction; + + @Schema(description = "派工数量", example = "15546") + private Long paigongNum; + } \ 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/workteam/vo/WorkTeamDetailRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/workteam/vo/WorkTeamDetailRespVO.java index a514bf7966..a255fff7f8 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/workteam/vo/WorkTeamDetailRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/workteam/vo/WorkTeamDetailRespVO.java @@ -32,12 +32,16 @@ public class WorkTeamDetailRespVO { /** * 用户ID */ - @Schema(description = "班组类型", example = "1白班,2夜班") + @Schema(description = "用户ID", example = "1白班,2夜班") private Long userId; - @Schema(description = "班组类型", example = "1白班,2夜班") - @ExcelProperty("班组类型") - @DictFormat("mes_group_type") + + @Schema(description = "用户名称", example = "1白班,2夜班") + @ExcelProperty("用户名称") private String userName; + + @Schema(description = "工号", example = "1白班,2夜班") + @ExcelProperty("工号") + private String nickName; /** * 角色 *

diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/ZjProductController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/ZjProductController.java new file mode 100644 index 0000000000..d1404611c5 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/ZjProductController.java @@ -0,0 +1,94 @@ +package cn.iocoder.yudao.module.mes.controller.admin.zjproduct; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.mes.controller.admin.zjproduct.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.zjproduct.ZjProductDO; +import cn.iocoder.yudao.module.mes.service.zjproduct.ZjProductService; + +@Tag(name = "管理后台 - 质量管理-质检参数") +@RestController +@RequestMapping("/mes/zj-product") +@Validated +public class ZjProductController { + + @Resource + private ZjProductService zjProductService; + + @PostMapping("/create") + @Operation(summary = "创建质量管理-质检参数") + @PreAuthorize("@ss.hasPermission('erp:product:create')") + public CommonResult createZjProduct(@Valid @RequestBody ZjProductSaveReqVO createReqVO) { + return success(zjProductService.createZjProduct(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新质量管理-质检参数") + @PreAuthorize("@ss.hasPermission('erp:product:update')") + public CommonResult updateZjProduct(@Valid @RequestBody ZjProductSaveReqVO updateReqVO) { + zjProductService.updateZjProduct(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除质量管理-质检参数") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('erp:product:delete')") + public CommonResult deleteZjProduct(@RequestParam("id") Long id) { + zjProductService.deleteZjProduct(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得质量管理-质检参数") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('erp:product:query')") + public CommonResult getZjProduct(@RequestParam("id") Long id) { + ZjProductDO zjProduct = zjProductService.getZjProduct(id); + return success(BeanUtils.toBean(zjProduct, ZjProductRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得质量管理-质检参数分页") + @PreAuthorize("@ss.hasPermission('erp:product:query')") + public CommonResult> getZjProductPage(@Valid ZjProductPageReqVO pageReqVO) { + PageResult pageResult = zjProductService.getZjProductPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ZjProductRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出质量管理-质检参数 Excel") + @PreAuthorize("@ss.hasPermission('erp:product:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportZjProductExcel(@Valid ZjProductPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = zjProductService.getZjProductPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "质量管理-质检参数.xls", "数据", ZjProductRespVO.class, + BeanUtils.toBean(list, ZjProductRespVO.class)); + } +} \ 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/zjproduct/vo/ZjProductPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/vo/ZjProductPageReqVO.java new file mode 100644 index 0000000000..e294092662 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/vo/ZjProductPageReqVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.mes.controller.admin.zjproduct.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 质量管理-质检参数分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ZjProductPageReqVO extends PageParam { + + @Schema(description = "工序", example = "2") + private String type; + + @Schema(description = "名称", example = "王五") + private String name; + + @Schema(description = "单位") + private String unit; + + @Schema(description = "上限值") + private Double upperVal; + + @Schema(description = "下限值") + private Double lowerVal; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "关联产品ID", example = "1") + private Long productId; + +} \ 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/zjproduct/vo/ZjProductRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/vo/ZjProductRespVO.java new file mode 100644 index 0000000000..8bcf71b6df --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/vo/ZjProductRespVO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.mes.controller.admin.zjproduct.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 质量管理-质检参数 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ZjProductRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23555") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "工序", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("工序") + private String type; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("名称") + private String name; + + @Schema(description = "单位") + @ExcelProperty("单位") + private String unit; + + @Schema(description = "上限值") + @ExcelProperty("上限值") + private Double upperVal; + + @Schema(description = "下限值") + @ExcelProperty("下限值") + private Double lowerVal; + + @Schema(description = "备注", example = "随便") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "关联产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23555") + private Long product_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/controller/admin/zjproduct/vo/ZjProductSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/vo/ZjProductSaveReqVO.java new file mode 100644 index 0000000000..598bce4cef --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/vo/ZjProductSaveReqVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.mes.controller.admin.zjproduct.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 质量管理-质检参数新增/修改 Request VO") +@Data +public class ZjProductSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23555") + private Long id; + + @Schema(description = "工序", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "工序不能为空") + private String type; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "名称不能为空") + private String name; + + @Schema(description = "单位") + private String unit; + + @Schema(description = "上限值") + private Double upperVal; + + @Schema(description = "下限值") + private Double lowerVal; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "关联产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long productId; + +} \ 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/task/ViewTaskProductSummary.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/task/ViewTaskProductSummary.java index 20901e2479..fc132fc3d6 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/task/ViewTaskProductSummary.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/task/ViewTaskProductSummary.java @@ -17,13 +17,16 @@ import lombok.*; @NoArgsConstructor @AllArgsConstructor public class ViewTaskProductSummary { - /** * 产品ID */ private Long productId; /** - * 产品ID + * 产品编码 + */ + private String barCode; + /** + * 产品名称 */ private String productName; /** @@ -42,4 +45,8 @@ public class ViewTaskProductSummary { * 计划数量 */ private Long planNumber; + /** + * 任务明细 + */ + private String taskDetailIds; } \ 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/zjproduct/ZjProductDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/zjproduct/ZjProductDO.java new file mode 100644 index 0000000000..e2015ccb0d --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/zjproduct/ZjProductDO.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.zjproduct; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 质量管理-质检参数 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_zj_product") +@KeySequence("mes_zj_product_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ZjProductDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * 工序 + */ + private String type; + /** + * 名称 + */ + private String name; + /** + * 单位 + */ + private String unit; + /** + * 上限值 + */ + private Double upperVal; + /** + * 下限值 + */ + private Double lowerVal; + /** + * 备注 + */ + private String remark; + + /** + * 关联产品ID + */ + private Long productId; + +} \ 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/mysql/zjproduct/ZjProductMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/zjproduct/ZjProductMapper.java new file mode 100644 index 0000000000..325c7626cb --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/zjproduct/ZjProductMapper.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.zjproduct; + +import java.util.*; + +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.zjproduct.ZjProductDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.mes.controller.admin.zjproduct.vo.*; + +/** + * 质量管理-质检参数 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface ZjProductMapper extends BaseMapperX { + + default PageResult selectPage(ZjProductPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ZjProductDO::getProductId, reqVO.getProductId()) + .eqIfPresent(ZjProductDO::getType, reqVO.getType()) + .likeIfPresent(ZjProductDO::getName, reqVO.getName()) + .eqIfPresent(ZjProductDO::getUnit, reqVO.getUnit()) + .eqIfPresent(ZjProductDO::getUpperVal, reqVO.getUpperVal()) + .eqIfPresent(ZjProductDO::getLowerVal, reqVO.getLowerVal()) + .eqIfPresent(ZjProductDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(ZjProductDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ZjProductDO::getId)); + } + +} \ 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/organization/OrganizationServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationServiceImpl.java index aae5ab463e..1f884011fe 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationServiceImpl.java @@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO; +import cn.iocoder.yudao.module.iot.service.device.DeviceService; import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrgClassEnum; import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationListReqVO; import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationRespVO; @@ -170,18 +172,30 @@ public class OrganizationServiceImpl implements OrganizationService { @Resource public MachineComponentService machineComponentService; + @Resource + public DeviceService deviceService; + @Override public List buildVOList(List list) { if (CollUtil.isEmpty(list)) { return Collections.emptyList(); } //关联机台 - Map map = machineComponentService.getMap( +// Map map = machineComponentService.getMap( +// convertSet(list, OrganizationDO::getMachineId)); +// +// return BeanUtils.toBean(list, OrganizationRespVO.class, item -> { +// MapUtils.findAndThen(map, item.getMachineId(), +// machine -> item.setMachineName(machine.getName())); +// +// }); + //关联设备 + Map map = deviceService.getMap( convertSet(list, OrganizationDO::getMachineId)); return BeanUtils.toBean(list, OrganizationRespVO.class, item -> { MapUtils.findAndThen(map, item.getMachineId(), - machine -> item.setMachineName(machine.getName())); + device -> item.setMachineName(device.getDeviceName())); }); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java index f09fdd3173..2804cb1500 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java @@ -207,6 +207,7 @@ public class PlanServiceImpl implements PlanService { saveReqVO.setStatus(ItemRequisitionStatusEnum.下达.getValue()); if (saveReqVO.getRequisitionDate() == null) saveReqVO.setRequisitionDate(LocalDateTime.now()); + // 创建领料单 Long id = itemRequisitionService.createItemRequisition(saveReqVO); //更新计划状态 planDO.setStatus(PlanStatusEnum.派工.getValue()); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/task/TaskServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/task/TaskServiceImpl.java index 200529d9b7..f1ed01f848 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/task/TaskServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/task/TaskServiceImpl.java @@ -60,6 +60,7 @@ public class TaskServiceImpl implements TaskService { TaskDO task = BeanUtils.toBean(createReqVO, TaskDO.class); if (StringUtils.isEmpty(task.getCode())) { // 1.4 生成订单号,并校验唯一性 + String no = noRedisDAO.generate2(MesNoRedisDAO.TASK_NO_PREFIX); if (taskMapper.selectByNo(no) != null) { throw exception(PURCHASE_ORDER_NO_EXISTS); @@ -200,7 +201,7 @@ public class TaskServiceImpl implements TaskService { List resList = BeanUtils.toBean(list, TaskDetailRespVO.class, item -> { MapUtils.findAndThen(map, item.getProductId(), - product -> item.setProductName(product.getName())); + product -> item.setProductName(product.getName()).setBarCode(product.getBarCode())); MapUtils.findAndThen(unitMap, item.getUnitId(), unit -> item.setUnitName(unit.getName())); }); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamServiceImpl.java index 6c24a80cdb..0fd8505535 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamServiceImpl.java @@ -123,7 +123,7 @@ public class WorkTeamServiceImpl implements WorkTeamService { convertSet(list, WorkTeamDetailDO::getUserId)); return BeanUtils.toBean(list, WorkTeamDetailRespVO.class, item -> { MapUtils.findAndThen(userMap, item.getUserId(), - user -> item.setUserName(user.getNickname())); + user -> item.setUserName(user.getUsername()).setNickName(user.getNickname())); }); } @Override diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductService.java new file mode 100644 index 0000000000..db853e85a0 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.mes.service.zjproduct; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.mes.controller.admin.zjproduct.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.zjproduct.ZjProductDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 质量管理-质检参数 Service 接口 + * + * @author 内蒙必硕 + */ +public interface ZjProductService { + + /** + * 创建质量管理-质检参数 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createZjProduct(@Valid ZjProductSaveReqVO createReqVO); + + /** + * 更新质量管理-质检参数 + * + * @param updateReqVO 更新信息 + */ + void updateZjProduct(@Valid ZjProductSaveReqVO updateReqVO); + + /** + * 删除质量管理-质检参数 + * + * @param id 编号 + */ + void deleteZjProduct(Long id); + + /** + * 获得质量管理-质检参数 + * + * @param id 编号 + * @return 质量管理-质检参数 + */ + ZjProductDO getZjProduct(Long id); + + /** + * 获得质量管理-质检参数分页 + * + * @param pageReqVO 分页查询 + * @return 质量管理-质检参数分页 + */ + PageResult getZjProductPage(ZjProductPageReqVO pageReqVO); + +} \ 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/zjproduct/ZjProductServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductServiceImpl.java new file mode 100644 index 0000000000..f8602184ea --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.mes.service.zjproduct; + +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 cn.iocoder.yudao.module.mes.controller.admin.zjproduct.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.zjproduct.ZjProductDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.mes.dal.mysql.zjproduct.ZjProductMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +/** + * 质量管理-质检参数 Service 实现类 + * + * @author 内蒙必硕 + */ +@Service +@Validated +public class ZjProductServiceImpl implements ZjProductService { + + @Resource + private ZjProductMapper zjProductMapper; + + @Override + public Long createZjProduct(ZjProductSaveReqVO createReqVO) { + // 插入 + ZjProductDO zjProduct = BeanUtils.toBean(createReqVO, ZjProductDO.class); + zjProductMapper.insert(zjProduct); + // 返回 + return zjProduct.getId(); + } + + @Override + public void updateZjProduct(ZjProductSaveReqVO updateReqVO) { + // 校验存在 + validateZjProductExists(updateReqVO.getId()); + // 更新 + ZjProductDO updateObj = BeanUtils.toBean(updateReqVO, ZjProductDO.class); + zjProductMapper.updateById(updateObj); + } + + @Override + public void deleteZjProduct(Long id) { + // 校验存在 + validateZjProductExists(id); + // 删除 + zjProductMapper.deleteById(id); + } + + private void validateZjProductExists(Long id) { + if (zjProductMapper.selectById(id) == null) { + throw exception(ZJ_PRODUCT_NOT_EXISTS); + } + } + + @Override + public ZjProductDO getZjProduct(Long id) { + return zjProductMapper.selectById(id); + } + + @Override + public PageResult getZjProductPage(ZjProductPageReqVO pageReqVO) { + return zjProductMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/zjproduct/ZjProductMapper.xml b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/zjproduct/ZjProductMapper.xml new file mode 100644 index 0000000000..08cfe7fd85 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/zjproduct/ZjProductMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.java index d86f3e5481..1225b4a321 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.java @@ -18,7 +18,11 @@ public class AdminUserRespDTO { */ private Long id; /** - * 用户昵称 + * 用户名称 + */ + private String username; + /** + * 工号 */ private String nickname; /** diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java index 6dac2869d8..bfc59e6898 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java @@ -14,7 +14,10 @@ public class UserSimpleRespVO { @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; - @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @Schema(description = "用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String username; + + @Schema(description = "工号", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") private String nickname; @Schema(description = "部门ID", example = "我是一个用户")