From 71c1f92dc795d8f3d402214e5ce47a5c43d6fd13 Mon Sep 17 00:00:00 2001 From: z Date: Sat, 9 May 2026 16:08:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E5=88=B6=E5=93=81=E5=BA=93=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/storearea/StoreAreaController.java | 11 +- .../admin/wipconfig/WipConfigController.java | 97 +++++++ .../wipconfig/vo/WipConfigPageReqVO.java | 43 +++ .../admin/wipconfig/vo/WipConfigRespVO.java | 52 ++++ .../wipconfig/vo/WipConfigSaveReqVO.java | 39 +++ .../WipConfigDetailController.java | 105 +++++++ .../vo/WipConfigDetailPageReqVO.java | 43 +++ .../vo/WipConfigDetailRespVO.java | 52 ++++ .../vo/WipConfigDetailSaveReqVO.java | 37 +++ .../dal/dataobject/wipconfig/WipConfigDO.java | 60 ++++ .../wipconfigdetail/WipConfigDetailDO.java | 56 ++++ .../dal/mysql/checkitem/CheckItemMapper.java | 13 + .../module/biz/dal/mysql/proc/ProcMapper.java | 1 + .../dal/mysql/storearea/StoreAreaMapper.java | 6 + .../dal/mysql/wipconfig/WipConfigMapper.java | 40 +++ .../WipConfigDetailMapper.java | 44 +++ .../checkitem/CheckItemServiceImpl.java | 17 ++ .../service/storearea/StoreAreaService.java | 1 + .../storearea/StoreAreaServiceImpl.java | 5 + .../service/wipconfig/WipConfigService.java | 56 ++++ .../wipconfig/WipConfigServiceImpl.java | 96 +++++++ .../WipConfigDetailService.java | 58 ++++ .../WipConfigDetailServiceImpl.java | 79 ++++++ .../src/api/biz/storearea/index.ts | 4 + .../src/api/biz/wipconfig/index.ts | 42 +++ .../src/api/biz/wipconfigdetail/index.ts | 46 +++ mes-ui/mes-ui-admin-vue3/src/utils/dict.ts | 2 + .../src/views/biz/checkitem/CheckItemForm.vue | 14 +- .../src/views/biz/inspplan/InspPlanForm.vue | 30 +- .../src/views/biz/wipconfig/WipConfigForm.vue | 265 ++++++++++++++++++ .../src/views/biz/wipconfig/index.vue | 185 ++++++++++++ .../wipconfigdetail/WipConfigDetailForm.vue | 122 ++++++++ .../src/views/biz/wipconfigdetail/index.vue | 254 +++++++++++++++++ 33 files changed, 1966 insertions(+), 9 deletions(-) create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/WipConfigController.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigPageReqVO.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigRespVO.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigSaveReqVO.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/WipConfigDetailController.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailPageReqVO.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailRespVO.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailSaveReqVO.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/wipconfig/WipConfigDO.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/wipconfigdetail/WipConfigDetailDO.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/wipconfig/WipConfigMapper.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/wipconfigdetail/WipConfigDetailMapper.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfig/WipConfigService.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfig/WipConfigServiceImpl.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfigdetail/WipConfigDetailService.java create mode 100644 mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfigdetail/WipConfigDetailServiceImpl.java create mode 100644 mes-ui/mes-ui-admin-vue3/src/api/biz/wipconfig/index.ts create mode 100644 mes-ui/mes-ui-admin-vue3/src/api/biz/wipconfigdetail/index.ts create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfig/WipConfigForm.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfig/index.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfigdetail/WipConfigDetailForm.vue create mode 100644 mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfigdetail/index.vue diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/storearea/StoreAreaController.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/storearea/StoreAreaController.java index 601ca3e..1b833fc 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/storearea/StoreAreaController.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/storearea/StoreAreaController.java @@ -1,5 +1,7 @@ package com.ningxia.yunxi.chemmes.module.biz.controller.admin.storearea; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.storehouse.vo.StoreHouseRespVO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.storehouse.StoreHouseDO; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -91,5 +93,12 @@ public class StoreAreaController { ExcelUtils.write(response, "库区主数据.xls", "数据", StoreAreaRespVO.class, BeanUtils.toBean(list, StoreAreaRespVO.class)); } - + @GetMapping("/get-store-area-select") + @Operation(summary = "获得仓储下拉框数据") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('biz:store-house:query')") + public CommonResult> getStoreAreaSelect(@RequestParam("storeHouseId") Integer storeHouseId) { + List list = storeAreaService.getStoreAreaSelect(storeHouseId); + return success(BeanUtils.toBean(list, StoreAreaRespVO.class)); + } } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/WipConfigController.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/WipConfigController.java new file mode 100644 index 0000000..05d5c2f --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/WipConfigController.java @@ -0,0 +1,97 @@ +package com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig; + +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo.WipConfigPageReqVO; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo.WipConfigRespVO; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo.WipConfigSaveReqVO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfig.WipConfigDO; +import com.ningxia.yunxi.chemmes.module.biz.service.wipconfig.WipConfigService; +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.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageParam; +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult; +import com.ningxia.yunxi.chemmes.framework.common.pojo.CommonResult; +import com.ningxia.yunxi.chemmes.framework.common.util.object.BeanUtils; +import static com.ningxia.yunxi.chemmes.framework.common.pojo.CommonResult.success; + +import com.ningxia.yunxi.chemmes.framework.excel.core.util.ExcelUtils; + +import com.ningxia.yunxi.chemmes.framework.operatelog.core.annotations.OperateLog; +import static com.ningxia.yunxi.chemmes.framework.operatelog.core.enums.OperateTypeEnum.*; + + + +@Tag(name = "管理后台 - 在制品库配置") +@RestController +@RequestMapping("/tba/wip-config") +@Validated +public class WipConfigController { + + @Resource + private WipConfigService wipConfigService; + + @PostMapping("/create") + @Operation(summary = "创建在制品库配置") + @PreAuthorize("@ss.hasPermission('tba:wip-config:create')") + public CommonResult createWipConfig(@Valid @RequestBody WipConfigSaveReqVO createReqVO) { + return success(wipConfigService.createWipConfig(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新在制品库配置") + @PreAuthorize("@ss.hasPermission('tba:wip-config:update')") + public CommonResult updateWipConfig(@Valid @RequestBody WipConfigSaveReqVO updateReqVO) { + wipConfigService.updateWipConfig(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除在制品库配置") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('tba:wip-config:delete')") + public CommonResult deleteWipConfig(@RequestParam("id") Integer id) { + wipConfigService.deleteWipConfig(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得在制品库配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('tba:wip-config:query')") + public CommonResult getWipConfig(@RequestParam("id") Integer id) { + WipConfigDO wipConfig = wipConfigService.getWipConfig(id); + return success(BeanUtils.toBean(wipConfig, WipConfigRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得在制品库配置分页") + @PreAuthorize("@ss.hasPermission('tba:wip-config:query')") + public CommonResult> getWipConfigPage(@Valid WipConfigPageReqVO pageReqVO) { + PageResult pageResult = wipConfigService.getWipConfigPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, WipConfigRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出在制品库配置 Excel") + @PreAuthorize("@ss.hasPermission('tba:wip-config:export')") + @OperateLog(type = EXPORT) + public void exportWipConfigExcel(@Valid WipConfigPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = wipConfigService.getWipConfigPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "在制品库配置.xls", "数据", WipConfigRespVO.class, + BeanUtils.toBean(list, WipConfigRespVO.class)); + } + +} diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigPageReqVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigPageReqVO.java new file mode 100644 index 0000000..577511b --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigPageReqVO.java @@ -0,0 +1,43 @@ +package com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.ningxia.yunxi.chemmes.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 WipConfigPageReqVO extends PageParam { + + @Schema(description = "创建人", example = "13258") + private String fCreatorUserId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "库区编码") + private String storeAreCd; + + @Schema(description = "库区名称", example = "王五") + private String storeAreaName; + + @Schema(description = "状态(1启用 2 未启用)", example = "2") + private Integer enabledStatus; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "仓库id", example = "24299") + private Integer storeHouseId; + + @Schema(description = "库区id", example = "32628") + private String storeAreaId; + +} \ No newline at end of file diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigRespVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigRespVO.java new file mode 100644 index 0000000..7ddd5fb --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigRespVO.java @@ -0,0 +1,52 @@ +package com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +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 WipConfigRespVO { + + @Schema(description = "自增字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "27276") + @ExcelProperty("自增字段") + private Integer id; + + @Schema(description = "创建人", example = "13258") + @ExcelProperty("创建人") + private String fCreatorUserId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "库区编码") + @ExcelProperty("库区编码") + private String storeAreCd; + + @Schema(description = "库区名称", example = "王五") + @ExcelProperty("库区名称") + private String storeAreaName; + + @Schema(description = "状态(1启用 2 未启用)", example = "2") + @ExcelProperty("状态(1启用 2 未启用)") + private Integer enabledStatus; + + @Schema(description = "备注", example = "你猜") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "仓库id", example = "24299") + @ExcelProperty("仓库id") + private Integer storeHouseId; + + @Schema(description = "库区id", example = "32628") + @ExcelProperty("库区id") + private Integer storeAreaId; + private String storeHouseName; +} \ No newline at end of file diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigSaveReqVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigSaveReqVO.java new file mode 100644 index 0000000..19115e2 --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfig/vo/WipConfigSaveReqVO.java @@ -0,0 +1,39 @@ +package com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo; + +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfigdetail.WipConfigDetailDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 在制品库配置新增/修改 Request VO") +@Data +public class WipConfigSaveReqVO { + + @Schema(description = "自增字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "27276") + private Integer id; + + @Schema(description = "创建人", example = "13258") + private String fCreatorUserId; + + @Schema(description = "库区编码") + private String storeAreCd; + + @Schema(description = "库区名称", example = "王五") + private String storeAreaName; + + @Schema(description = "状态(1启用 2 未启用)", example = "2") + private Integer enabledStatus; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "仓库id", example = "24299") + private Integer storeHouseId; + + @Schema(description = "库区id", example = "32628") + private String storeAreaId; + private List wipConfigDetailList; + +} diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/WipConfigDetailController.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/WipConfigDetailController.java new file mode 100644 index 0000000..7ff89ac --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/WipConfigDetailController.java @@ -0,0 +1,105 @@ +package com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail; + +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo.WipConfigDetailPageReqVO; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo.WipConfigDetailRespVO; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo.WipConfigDetailSaveReqVO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfigdetail.WipConfigDetailDO; +import com.ningxia.yunxi.chemmes.module.biz.service.wipconfigdetail.WipConfigDetailService; +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 com.ningxia.yunxi.chemmes.framework.common.pojo.PageParam; +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult; +import com.ningxia.yunxi.chemmes.framework.common.pojo.CommonResult; +import com.ningxia.yunxi.chemmes.framework.common.util.object.BeanUtils; +import static com.ningxia.yunxi.chemmes.framework.common.pojo.CommonResult.success; + +import com.ningxia.yunxi.chemmes.framework.excel.core.util.ExcelUtils; + +import com.ningxia.yunxi.chemmes.framework.operatelog.core.annotations.OperateLog; +import static com.ningxia.yunxi.chemmes.framework.operatelog.core.enums.OperateTypeEnum.*; + + + +@Tag(name = "管理后台 - 在制品库配置子") +@RestController +@RequestMapping("/tba/wip-config-detail") +@Validated +public class WipConfigDetailController { + + @Resource + private WipConfigDetailService wipConfigDetailService; + + @PostMapping("/create") + @Operation(summary = "创建在制品库配置子") + @PreAuthorize("@ss.hasPermission('tba:wip-config-detail:create')") + public CommonResult createWipConfigDetail(@Valid @RequestBody WipConfigDetailSaveReqVO createReqVO) { + return success(wipConfigDetailService.createWipConfigDetail(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新在制品库配置子") + @PreAuthorize("@ss.hasPermission('tba:wip-config-detail:update')") + public CommonResult updateWipConfigDetail(@Valid @RequestBody WipConfigDetailSaveReqVO updateReqVO) { + wipConfigDetailService.updateWipConfigDetail(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除在制品库配置子") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('tba:wip-config-detail:delete')") + public CommonResult deleteWipConfigDetail(@RequestParam("id") Integer id) { + wipConfigDetailService.deleteWipConfigDetail(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得在制品库配置子") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('tba:wip-config-detail:query')") + public CommonResult getWipConfigDetail(@RequestParam("id") Integer id) { + WipConfigDetailDO wipConfigDetail = wipConfigDetailService.getWipConfigDetail(id); + return success(BeanUtils.toBean(wipConfigDetail, WipConfigDetailRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得在制品库配置子分页") + @PreAuthorize("@ss.hasPermission('tba:wip-config-detail:query')") + public CommonResult> getWipConfigDetailPage(@Valid WipConfigDetailPageReqVO pageReqVO) { + PageResult pageResult = wipConfigDetailService.getWipConfigDetailPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, WipConfigDetailRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出在制品库配置子 Excel") + @PreAuthorize("@ss.hasPermission('tba:wip-config-detail:export')") + @OperateLog(type = EXPORT) + public void exportWipConfigDetailExcel(@Valid WipConfigDetailPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = wipConfigDetailService.getWipConfigDetailPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "在制品库配置子.xls", "数据", WipConfigDetailRespVO.class, + BeanUtils.toBean(list, WipConfigDetailRespVO.class)); + } + @GetMapping("/getWipConfigDetailList") + @Operation(summary = "获得在制品库配置子") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('tba:wip-config-detail:query')") + public CommonResult> getWipConfigDetailList(@RequestParam("wipConfigId") Integer wipConfigId) { + return success(wipConfigDetailService.getWipConfigDetailList(wipConfigId)); + } + +} diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailPageReqVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailPageReqVO.java new file mode 100644 index 0000000..46f0642 --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailPageReqVO.java @@ -0,0 +1,43 @@ +package com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.ningxia.yunxi.chemmes.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 WipConfigDetailPageReqVO extends PageParam { + + @Schema(description = "创建人", example = "19670") + private String fCreatorUserId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "状态(1启用 2 未启用)", example = "2") + private Integer enabledStatus; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "主表id", example = "3763") + private Integer wipConfigId; + + @Schema(description = "保管类型(1 工序 2 机台)", example = "1") + private String keepType; + + @Schema(description = "保管单位") + private String keepCode; + + @Schema(description = "保管标识(1 入库 2 出库 3 入/出库)") + private String keepMark; + +} \ No newline at end of file diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailRespVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailRespVO.java new file mode 100644 index 0000000..340afd2 --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailRespVO.java @@ -0,0 +1,52 @@ +package com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +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 WipConfigDetailRespVO { + + @Schema(description = "自增字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "10705") + @ExcelProperty("自增字段") + private Integer id; + + @Schema(description = "创建人", example = "19670") + @ExcelProperty("创建人") + private String fCreatorUserId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "状态(1启用 2 未启用)", example = "2") + @ExcelProperty("状态(1启用 2 未启用)") + private Integer enabledStatus; + + @Schema(description = "备注", example = "你说的对") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "主表id", example = "3763") + @ExcelProperty("主表id") + private Integer wipConfigId; + + @Schema(description = "保管类型(1 工序 2 机台)", example = "1") + @ExcelProperty("保管类型(1 工序 2 机台)") + private String keepType; + + @Schema(description = "保管单位") + @ExcelProperty("保管单位") + private String keepCode; + + @Schema(description = "保管标识(1 入库 2 出库 3 入/出库)") + @ExcelProperty("保管标识(1 入库 2 出库 3 入/出库)") + private String keepMark; + +} \ No newline at end of file diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailSaveReqVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailSaveReqVO.java new file mode 100644 index 0000000..c91a830 --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/wipconfigdetail/vo/WipConfigDetailSaveReqVO.java @@ -0,0 +1,37 @@ +package com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 在制品库配置子新增/修改 Request VO") +@Data +public class WipConfigDetailSaveReqVO { + + @Schema(description = "自增字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "10705") + private Integer id; + + @Schema(description = "创建人", example = "19670") + private String fCreatorUserId; + + @Schema(description = "状态(1启用 2 未启用)", example = "2") + private Integer enabledStatus; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "主表id", example = "3763") + private Integer wipConfigId; + + @Schema(description = "保管类型(1 工序 2 机台)", example = "1") + private String keepType; + + @Schema(description = "保管单位") + private String keepCode; + + @Schema(description = "保管标识(1 入库 2 出库 3 入/出库)") + private String keepMark; + +} diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/wipconfig/WipConfigDO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/wipconfig/WipConfigDO.java new file mode 100644 index 0000000..2be9bc7 --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/wipconfig/WipConfigDO.java @@ -0,0 +1,60 @@ +package com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfig; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.ningxia.yunxi.chemmes.framework.mybatis.core.dataobject.BaseDO; + +import static org.aspectj.lang.reflect.DeclareAnnotation.Kind.Field; + +/** + * 在制品库配置 DO + * + * @author 管理员 + */ +@TableName("tba_wip_config") +@KeySequence("tba_wip_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WipConfigDO extends BaseDO { + + /** + * 自增字段 + */ + @TableId + private Integer id; + /** + * 库区编码 + */ + private String storeAreCd; + /** + * 库区名称 + */ + private String storeAreaName; + /** + * 状态(1启用 2 未启用) + */ + private Integer enabledStatus; + /** + * 备注 + */ + private String remark; + /** + * 仓库id + */ + private Integer storeHouseId; + /** + * 库区id + */ + private Integer storeAreaId; + @TableField(exist = false) + private String storeHouseName; + + +} \ No newline at end of file diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/wipconfigdetail/WipConfigDetailDO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/wipconfigdetail/WipConfigDetailDO.java new file mode 100644 index 0000000..5a01f03 --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/wipconfigdetail/WipConfigDetailDO.java @@ -0,0 +1,56 @@ +package com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfigdetail; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.ningxia.yunxi.chemmes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 在制品库配置子 DO + * + * @author 管理员 + */ +@TableName("tba_wip_config_detail") +@KeySequence("tba_wip_config_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WipConfigDetailDO extends BaseDO { + + /** + * 自增字段 + */ + @TableId + private Integer id; + + /** + * 状态(1启用 2 未启用) + */ + private Integer enabledStatus; + /** + * 备注 + */ + private String remark; + /** + * 主表id + */ + private Integer wipConfigId; + /** + * 保管类型(1 工序 2 机台) + */ + private String keepType; + /** + * 保管单位 + */ + private String keepCode; + /** + * 保管标识(1 入库 2 出库 3 入/出库) + */ + private String keepMark; + +} \ No newline at end of file diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/checkitem/CheckItemMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/checkitem/CheckItemMapper.java index 6b6aa8c..4c5de6d 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/checkitem/CheckItemMapper.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/checkitem/CheckItemMapper.java @@ -35,6 +35,19 @@ public interface CheckItemMapper extends BaseMapperX { .ne(excludeId != null, CheckItemDO::getId, excludeId)); } + /** + * 根据检验项编号统计数量(用于编号重复校验) + * + * @param itemNo 检验项编号 + * @param excludeId 排除的ID(更新时使用) + * @return 符合条件的记录数 + */ + default Long selectCountByItemNo(String itemNo, Integer excludeId) { + return selectCount(new LambdaQueryWrapperX() + .eq(CheckItemDO::getItemNo, itemNo) + .ne(excludeId != null, CheckItemDO::getId, excludeId)); + } + default PageResult selectPage(CheckItemPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(CheckItemDO::getItemName, reqVO.getItemName()) diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/proc/ProcMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/proc/ProcMapper.java index 28246c3..4e3ff6c 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/proc/ProcMapper.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/proc/ProcMapper.java @@ -46,6 +46,7 @@ public interface ProcMapper extends BaseMapperX { .select("u.nickname as creatorName") .leftJoin(AdminUserDO.class,"u",AdminUserDO::getId,ProcDO::getCreator) .eq(ProcDO::getEnabledStatus, 0) + .disableSubLogicDel() .orderByAsc(ProcDO::getProcCd); return selectList(query); } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/storearea/StoreAreaMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/storearea/StoreAreaMapper.java index 2c6e113..27940da 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/storearea/StoreAreaMapper.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/storearea/StoreAreaMapper.java @@ -36,4 +36,10 @@ public interface StoreAreaMapper extends BaseMapperX { return selectCount(new LambdaQueryWrapperX() .eq(StoreAreaDO::getStoreAreCd, storeAreCd).ne(ObjectUtil.isNotEmpty(id),StoreAreaDO::getId,id)); } + + default List getStoreAreaSelect(Integer storeHouseId){ + return selectList(new LambdaQueryWrapperX() + .eq(StoreAreaDO::getEnabledStatus, 0).eq(StoreAreaDO::getStoreHouseId, storeHouseId)); + } + } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/wipconfig/WipConfigMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/wipconfig/WipConfigMapper.java new file mode 100644 index 0000000..05c5df5 --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/wipconfig/WipConfigMapper.java @@ -0,0 +1,40 @@ +package com.ningxia.yunxi.chemmes.module.biz.dal.mysql.wipconfig; + +import java.util.*; + +import cn.hutool.core.util.ObjectUtil; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult; +import com.ningxia.yunxi.chemmes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.ningxia.yunxi.chemmes.framework.mybatis.core.mapper.BaseMapperX; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo.WipConfigPageReqVO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.storehouse.StoreHouseDO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.techproc.TechProcDO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfig.WipConfigDO; +import com.ningxia.yunxi.chemmes.module.system.dal.dataobject.user.AdminUserDO; +import org.apache.ibatis.annotations.Mapper; + + +/** + * 在制品库配置 Mapper + * + * @author 管理员 + */ +@Mapper +public interface WipConfigMapper extends BaseMapperX { + + default PageResult selectPage(WipConfigPageReqVO reqVO) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(WipConfigDO.class) + .select("s.store_house_name as storeHouseName") + .leftJoin(StoreHouseDO.class, "s",StoreHouseDO::getId,WipConfigDO::getStoreHouseId) + .disableSubLogicDel() + .orderByDesc(WipConfigDO::getCreateTime); + ; + query.eq(ObjectUtil.isNotEmpty(reqVO.getEnabledStatus()),WipConfigDO::getEnabledStatus,reqVO.getEnabledStatus()) + .eq(ObjectUtil.isNotEmpty(reqVO.getStoreHouseId()),WipConfigDO::getStoreHouseId,reqVO.getStoreHouseId()) + .like(ObjectUtil.isNotEmpty(reqVO.getStoreAreaName()),WipConfigDO::getStoreAreaName,reqVO.getStoreAreaName()); + return selectPage(reqVO, query); + } + +} \ No newline at end of file diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/wipconfigdetail/WipConfigDetailMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/wipconfigdetail/WipConfigDetailMapper.java new file mode 100644 index 0000000..5ddb901 --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/wipconfigdetail/WipConfigDetailMapper.java @@ -0,0 +1,44 @@ +package com.ningxia.yunxi.chemmes.module.biz.dal.mysql.wipconfigdetail; + +import java.util.*; + +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult; +import com.ningxia.yunxi.chemmes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.ningxia.yunxi.chemmes.framework.mybatis.core.mapper.BaseMapperX; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo.WipConfigDetailPageReqVO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfigdetail.WipConfigDetailDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 在制品库配置子 Mapper + * + * @author 管理员 + */ +@Mapper +public interface WipConfigDetailMapper extends BaseMapperX { + + /** + * 根据主表ID删除子表数据 + */ + default int deleteByWipConfigId(Integer wipConfigId) { + return delete(new LambdaQueryWrapperX() + .eq(WipConfigDetailDO::getWipConfigId, wipConfigId)); + } + + default PageResult selectPage(WipConfigDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .betweenIfPresent(WipConfigDetailDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(WipConfigDetailDO::getEnabledStatus, reqVO.getEnabledStatus()) + .eqIfPresent(WipConfigDetailDO::getRemark, reqVO.getRemark()) + .eqIfPresent(WipConfigDetailDO::getWipConfigId, reqVO.getWipConfigId()) + .eqIfPresent(WipConfigDetailDO::getKeepType, reqVO.getKeepType()) + .eqIfPresent(WipConfigDetailDO::getKeepCode, reqVO.getKeepCode()) + .eqIfPresent(WipConfigDetailDO::getKeepMark, reqVO.getKeepMark()) + .orderByDesc(WipConfigDetailDO::getId)); + } + + default List getWipConfigDetailList(Integer wipConfigId){ + return selectList(new LambdaQueryWrapperX() + .eq(WipConfigDetailDO::getWipConfigId, wipConfigId)); + } +} \ No newline at end of file diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/checkitem/CheckItemServiceImpl.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/checkitem/CheckItemServiceImpl.java index 30ea0bb..e8048bd 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/checkitem/CheckItemServiceImpl.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/checkitem/CheckItemServiceImpl.java @@ -34,6 +34,8 @@ public class CheckItemServiceImpl implements CheckItemService { @Override public Integer createCheckItem(CheckItemSaveReqVO createReqVO) { + // 校验检验项编号不重复 + validateItemNoUnique(null, createReqVO.getItemNo()); // 校验同类下检验项名称不重复 validateItemNameUnique(null, createReqVO.getItemType(), createReqVO.getItemName()); // 插入 @@ -47,6 +49,8 @@ public class CheckItemServiceImpl implements CheckItemService { public void updateCheckItem(CheckItemSaveReqVO updateReqVO) { // 校验存在 validateCheckItemExists(updateReqVO.getId()); + // 校验检验项编号不重复 + validateItemNoUnique(updateReqVO.getId(), updateReqVO.getItemNo()); // 校验同类下检验项名称不重复 validateItemNameUnique(updateReqVO.getId(), updateReqVO.getItemType(), updateReqVO.getItemName()); // 更新 @@ -84,6 +88,19 @@ public class CheckItemServiceImpl implements CheckItemService { } } + /** + * 校验检验项编号不重复 + */ + private void validateItemNoUnique(Integer id, String itemNo) { + if (itemNo == null || itemNo.isEmpty()) { + return; + } + Long count = checkItemMapper.selectCountByItemNo(itemNo, id); + if (count > 0) { + throw exception("已存在编号为" + itemNo + "的检验项,请确认!"); + } + } + /** * 获取适用类型名称 */ diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/storearea/StoreAreaService.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/storearea/StoreAreaService.java index 83d636f..ff4e1bb 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/storearea/StoreAreaService.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/storearea/StoreAreaService.java @@ -52,4 +52,5 @@ public interface StoreAreaService { */ PageResult getStoreAreaPage(StoreAreaPageReqVO pageReqVO); + List getStoreAreaSelect(Integer storeHouseId); } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/storearea/StoreAreaServiceImpl.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/storearea/StoreAreaServiceImpl.java index 62cf869..e34ca5a 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/storearea/StoreAreaServiceImpl.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/storearea/StoreAreaServiceImpl.java @@ -80,4 +80,9 @@ public class StoreAreaServiceImpl implements StoreAreaService { return storeAreaMapper.selectPage(pageReqVO); } + @Override + public List getStoreAreaSelect(Integer storeHouseId) { + return storeAreaMapper.getStoreAreaSelect(storeHouseId); + } + } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfig/WipConfigService.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfig/WipConfigService.java new file mode 100644 index 0000000..4d2f709 --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfig/WipConfigService.java @@ -0,0 +1,56 @@ +package com.ningxia.yunxi.chemmes.module.biz.service.wipconfig; + +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo.WipConfigPageReqVO; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo.WipConfigSaveReqVO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfig.WipConfigDO; + + +import javax.validation.*; + +/** + * 在制品库配置 Service 接口 + * + * @author 管理员 + */ +public interface WipConfigService { + + /** + * 创建在制品库配置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Integer createWipConfig(@Valid WipConfigSaveReqVO createReqVO); + + /** + * 更新在制品库配置 + * + * @param updateReqVO 更新信息 + */ + void updateWipConfig(@Valid WipConfigSaveReqVO updateReqVO); + + /** + * 删除在制品库配置 + * + * @param id 编号 + */ + void deleteWipConfig(Integer id); + + /** + * 获得在制品库配置 + * + * @param id 编号 + * @return 在制品库配置 + */ + WipConfigDO getWipConfig(Integer id); + + /** + * 获得在制品库配置分页 + * + * @param pageReqVO 分页查询 + * @return 在制品库配置分页 + */ + PageResult getWipConfigPage(WipConfigPageReqVO pageReqVO); + +} diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfig/WipConfigServiceImpl.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfig/WipConfigServiceImpl.java new file mode 100644 index 0000000..360e5ee --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfig/WipConfigServiceImpl.java @@ -0,0 +1,96 @@ +package com.ningxia.yunxi.chemmes.module.biz.service.wipconfig; + +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo.WipConfigPageReqVO; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfig.vo.WipConfigSaveReqVO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfig.WipConfigDO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfigdetail.WipConfigDetailDO; +import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.wipconfig.WipConfigMapper; +import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.wipconfigdetail.WipConfigDetailMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import com.ningxia.yunxi.chemmes.framework.common.util.object.BeanUtils; + + +import static com.ningxia.yunxi.chemmes.framework.common.exception.util.ServiceExceptionUtil.exception; + +/** + * 在制品库配置 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class WipConfigServiceImpl implements WipConfigService { + + @Resource + private WipConfigMapper wipConfigMapper; + @Resource + private WipConfigDetailMapper wipConfigDetailMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public Integer createWipConfig(WipConfigSaveReqVO createReqVO) { + // 插入主表 + WipConfigDO wipConfig = BeanUtils.toBean(createReqVO, WipConfigDO.class); + wipConfigMapper.insert(wipConfig); + // 插入子表 + if (createReqVO.getWipConfigDetailList() != null && !createReqVO.getWipConfigDetailList().isEmpty()) { + for (WipConfigDetailDO detail : createReqVO.getWipConfigDetailList()) { + detail.setWipConfigId(wipConfig.getId()); + } + wipConfigDetailMapper.insertBatch(createReqVO.getWipConfigDetailList()); + } + // 返回 + return wipConfig.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateWipConfig(WipConfigSaveReqVO updateReqVO) { + // 校验存在 + validateWipConfigExists(updateReqVO.getId()); + // 更新主表 + WipConfigDO updateObj = BeanUtils.toBean(updateReqVO, WipConfigDO.class); + wipConfigMapper.updateById(updateObj); + // 先删后加子表 + wipConfigDetailMapper.deleteByWipConfigId(updateReqVO.getId()); + if (updateReqVO.getWipConfigDetailList() != null && !updateReqVO.getWipConfigDetailList().isEmpty()) { + for (WipConfigDetailDO detail : updateReqVO.getWipConfigDetailList()) { + detail.setWipConfigId(updateReqVO.getId()); + } + wipConfigDetailMapper.insertBatch(updateReqVO.getWipConfigDetailList()); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteWipConfig(Integer id) { + // 校验存在 + validateWipConfigExists(id); + // 先删子表 + wipConfigDetailMapper.deleteByWipConfigId(id); + // 删除主表 + wipConfigMapper.deleteById(id); + } + + private void validateWipConfigExists(Integer id) { + if (wipConfigMapper.selectById(id) == null) { + throw exception("数据不存在"); + } + } + + @Override + public WipConfigDO getWipConfig(Integer id) { + return wipConfigMapper.selectById(id); + } + + @Override + public PageResult getWipConfigPage(WipConfigPageReqVO pageReqVO) { + return wipConfigMapper.selectPage(pageReqVO); + } + +} diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfigdetail/WipConfigDetailService.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfigdetail/WipConfigDetailService.java new file mode 100644 index 0000000..4986f47 --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfigdetail/WipConfigDetailService.java @@ -0,0 +1,58 @@ +package com.ningxia.yunxi.chemmes.module.biz.service.wipconfigdetail; + +import java.util.*; +import javax.validation.*; + +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo.WipConfigDetailPageReqVO; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo.WipConfigDetailSaveReqVO; +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult; +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageParam; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfigdetail.WipConfigDetailDO; + +/** + * 在制品库配置子 Service 接口 + * + * @author 管理员 + */ +public interface WipConfigDetailService { + + /** + * 创建在制品库配置子 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Integer createWipConfigDetail(@Valid WipConfigDetailSaveReqVO createReqVO); + + /** + * 更新在制品库配置子 + * + * @param updateReqVO 更新信息 + */ + void updateWipConfigDetail(@Valid WipConfigDetailSaveReqVO updateReqVO); + + /** + * 删除在制品库配置子 + * + * @param id 编号 + */ + void deleteWipConfigDetail(Integer id); + + /** + * 获得在制品库配置子 + * + * @param id 编号 + * @return 在制品库配置子 + */ + WipConfigDetailDO getWipConfigDetail(Integer id); + + /** + * 获得在制品库配置子分页 + * + * @param pageReqVO 分页查询 + * @return 在制品库配置子分页 + */ + PageResult getWipConfigDetailPage(WipConfigDetailPageReqVO pageReqVO); + + List getWipConfigDetailList(Integer wipConfigId); +} diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfigdetail/WipConfigDetailServiceImpl.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfigdetail/WipConfigDetailServiceImpl.java new file mode 100644 index 0000000..292fbdf --- /dev/null +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/wipconfigdetail/WipConfigDetailServiceImpl.java @@ -0,0 +1,79 @@ +package com.ningxia.yunxi.chemmes.module.biz.service.wipconfigdetail; + +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo.WipConfigDetailPageReqVO; +import com.ningxia.yunxi.chemmes.module.biz.controller.admin.wipconfigdetail.vo.WipConfigDetailSaveReqVO; +import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.wipconfigdetail.WipConfigDetailDO; +import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.wipconfigdetail.WipConfigDetailMapper; +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 com.ningxia.yunxi.chemmes.framework.common.pojo.PageResult; +import com.ningxia.yunxi.chemmes.framework.common.pojo.PageParam; +import com.ningxia.yunxi.chemmes.framework.common.util.object.BeanUtils; + + +import static com.ningxia.yunxi.chemmes.framework.common.exception.util.ServiceExceptionUtil.exception; + +/** + * 在制品库配置子 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class WipConfigDetailServiceImpl implements WipConfigDetailService { + + @Resource + private WipConfigDetailMapper wipConfigDetailMapper; + + @Override + public Integer createWipConfigDetail(WipConfigDetailSaveReqVO createReqVO) { + // 插入 + WipConfigDetailDO wipConfigDetail = BeanUtils.toBean(createReqVO, WipConfigDetailDO.class); + wipConfigDetailMapper.insert(wipConfigDetail); + // 返回 + return wipConfigDetail.getId(); + } + + @Override + public void updateWipConfigDetail(WipConfigDetailSaveReqVO updateReqVO) { + // 校验存在 + validateWipConfigDetailExists(updateReqVO.getId()); + // 更新 + WipConfigDetailDO updateObj = BeanUtils.toBean(updateReqVO, WipConfigDetailDO.class); + wipConfigDetailMapper.updateById(updateObj); + } + + @Override + public void deleteWipConfigDetail(Integer id) { + // 校验存在 + validateWipConfigDetailExists(id); + // 删除 + wipConfigDetailMapper.deleteById(id); + } + + private void validateWipConfigDetailExists(Integer id) { + if (wipConfigDetailMapper.selectById(id) == null) { + throw exception("数据不存在"); + } + } + + @Override + public WipConfigDetailDO getWipConfigDetail(Integer id) { + return wipConfigDetailMapper.selectById(id); + } + + @Override + public PageResult getWipConfigDetailPage(WipConfigDetailPageReqVO pageReqVO) { + return wipConfigDetailMapper.selectPage(pageReqVO); + } + + @Override + public List getWipConfigDetailList(Integer wipConfigId) { + return wipConfigDetailMapper.getWipConfigDetailList(wipConfigId); + } + +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/storearea/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/storearea/index.ts index 92acf05..db7aac7 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/biz/storearea/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/biz/storearea/index.ts @@ -40,3 +40,7 @@ export const deleteStoreArea = async (id: number) => { export const exportStoreArea = async (params) => { return await request.download({ url: `/biz/store-area/export-excel`, params }) } +//获取库区主数据下拉列表 +export const getStoreAreaSelect = async (storeHouseId?: number) => { + return await request.get({ url: `/biz/store-area/get-store-area-select`, params: { storeHouseId }}) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/wipconfig/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/wipconfig/index.ts new file mode 100644 index 0000000..02690c6 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/biz/wipconfig/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export interface WipConfigVO { + id: number + fCreatorUserId: string + storeAreCd: string + storeAreaName: string + enabledStatus: number + remark: string + storeHouseId: number + storeAreaId: string +} + +// 查询在制品库配置分页 +export const getWipConfigPage = async (params) => { + return await request.get({ url: `/tba/wip-config/page`, params }) +} + +// 查询在制品库配置详情 +export const getWipConfig = async (id: number) => { + return await request.get({ url: `/tba/wip-config/get?id=` + id }) +} + +// 新增在制品库配置 +export const createWipConfig = async (data: WipConfigVO) => { + return await request.post({ url: `/tba/wip-config/create`, data }) +} + +// 修改在制品库配置 +export const updateWipConfig = async (data: WipConfigVO) => { + return await request.put({ url: `/tba/wip-config/update`, data }) +} + +// 删除在制品库配置 +export const deleteWipConfig = async (id: number) => { + return await request.delete({ url: `/tba/wip-config/delete?id=` + id }) +} + +// 导出在制品库配置 Excel +export const exportWipConfig = async (params) => { + return await request.download({ url: `/tba/wip-config/export-excel`, params }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/wipconfigdetail/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/wipconfigdetail/index.ts new file mode 100644 index 0000000..48bc7a1 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/api/biz/wipconfigdetail/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface WipConfigDetailVO { + id: number + fCreatorUserId: string + enabledStatus: number + remark: string + wipConfigId: number + keepType: string + keepCode: string + keepMark: string +} + +// 查询在制品库配置子分页 +export const getWipConfigDetailPage = async (params) => { + return await request.get({ url: `/tba/wip-config-detail/page`, params }) +} + +// 查询在制品库配置子详情 +export const getWipConfigDetail = async (id: number) => { + return await request.get({ url: `/tba/wip-config-detail/get?id=` + id }) +} + +// 新增在制品库配置子 +export const createWipConfigDetail = async (data: WipConfigDetailVO) => { + return await request.post({ url: `/tba/wip-config-detail/create`, data }) +} + +// 修改在制品库配置子 +export const updateWipConfigDetail = async (data: WipConfigDetailVO) => { + return await request.put({ url: `/tba/wip-config-detail/update`, data }) +} + +// 删除在制品库配置子 +export const deleteWipConfigDetail = async (id: number) => { + return await request.delete({ url: `/tba/wip-config-detail/delete?id=` + id }) +} + +// 导出在制品库配置子 Excel +export const exportWipConfigDetail = async (params) => { + return await request.download({ url: `/tba/wip-config-detail/export-excel`, params }) +} +// 根据主表id查询子表明细 +export const getWipConfigDetailList = async (wipConfigId: number) => { + return await request.get({ url: `/tba/wip-config-detail/getWipConfigDetailList?wipConfigId=` + wipConfigId }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts index fb59a60..3cfe15f 100644 --- a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts +++ b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts @@ -248,6 +248,8 @@ export enum DICT_TYPE { PRODUCTION_ORDER_STATUS ='production_order_status', // 生成订单状态 UNIT='unit', // 单位 PRODUCTION_STATE='production_state', // 生产状态 + KEEP_TYPE='keep_type', // 保管类型 + KEEP_MARK='keep_mark', // 保管标识 diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/checkitem/CheckItemForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/checkitem/CheckItemForm.vue index 632d6a8..eb07953 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/checkitem/CheckItemForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/checkitem/CheckItemForm.vue @@ -13,7 +13,7 @@ - + @@ -174,6 +174,12 @@ const formData = ref({ printAvgValues: "0" as string | undefined, }) const formRules = reactive({ + itemNo: [ + { required: true, message: '请输入编号', trigger: 'blur' } + ], + itemValueType: [ + { required: true, message: '请选择检验值类型', trigger: 'change' } + ], itemName: [ { required: true, message: '请输入名称', trigger: 'blur' } ], @@ -191,6 +197,12 @@ const formRules = reactive({ ] }) const formRules1 = reactive({ + itemNo: [ + { required: true, message: '请输入编号', trigger: 'blur' } + ], + itemValueType: [ + { required: true, message: '请选择检验值类型', trigger: 'change' } + ], itemName: [ { required: true, message: '请输入名称', trigger: 'blur' } ], diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/inspplan/InspPlanForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/inspplan/InspPlanForm.vue index ae6721b..49d2980 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/inspplan/InspPlanForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/inspplan/InspPlanForm.vue @@ -10,7 +10,7 @@ - + @@ -22,8 +22,13 @@ - + - + - + { itemId: item.id, itemName: item.itemName, unit: item.unitName, + printMergeYn:"0", + printItem:"0" }) } }) diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfig/WipConfigForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfig/WipConfigForm.vue new file mode 100644 index 0000000..ec5f026 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfig/WipConfigForm.vue @@ -0,0 +1,265 @@ + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfig/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfig/index.vue new file mode 100644 index 0000000..8288df9 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfig/index.vue @@ -0,0 +1,185 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfigdetail/WipConfigDetailForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfigdetail/WipConfigDetailForm.vue new file mode 100644 index 0000000..c0c811d --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfigdetail/WipConfigDetailForm.vue @@ -0,0 +1,122 @@ + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfigdetail/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfigdetail/index.vue new file mode 100644 index 0000000..c875693 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/wipconfigdetail/index.vue @@ -0,0 +1,254 @@ + + +