diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java new file mode 100644 index 00000000..f70b7c2a --- /dev/null +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -0,0 +1,14 @@ +package com.win.module.wms.enums; + +import com.win.framework.common.exception.ErrorCode; + +/** + * System 错误码枚举类 + * + * system 系统,使用 1-002-000-000 段 + */ +public interface ErrorCodeConstants { + + ErrorCode CONDITION_NOT_EXISTS = new ErrorCode(1_046_000_000, "条件不存在"); + +} diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/workstation/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/workstation/ErrorCodeConstants.java index 62e9a1e4..50e0ec45 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/workstation/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/workstation/ErrorCodeConstants.java @@ -13,6 +13,6 @@ public interface ErrorCodeConstants { ErrorCode WORKSTATION_NOT_RIGHT = new ErrorCode(1_040_000_001, "工位信息填写不正确"); - ErrorCode CODE_NOT_ONLY = new ErrorCode(1_040_000_002, "code已存在"); + ErrorCode CODE_EXISTS = new ErrorCode(1_040_000_002, "code已存在"); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/ConditionController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/ConditionController.java new file mode 100644 index 00000000..0c603934 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/ConditionController.java @@ -0,0 +1,99 @@ +package com.win.module.wms.controller.condition; + +import com.win.framework.common.pojo.CommonResult; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; +import com.win.module.wms.controller.condition.vo.*; +import com.win.module.wms.convert.condition.ConditionConvert; +import com.win.module.wms.dal.dataobject.condition.ConditionDO; +import com.win.module.wms.service.condition.ConditionService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.Collection; +import java.util.List; + +import static com.win.framework.common.pojo.CommonResult.success; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 条件") +@RestController +@RequestMapping("/wms/condition") +@Validated +public class ConditionController { + + @Resource + private ConditionService conditionService; + + @PostMapping("/create") + @Operation(summary = "创建条件") + @PreAuthorize("@ss.hasPermission('wms:condition:create')") + public CommonResult createCondition(@Valid @RequestBody ConditionCreateReqVO createReqVO) { + return success(conditionService.createCondition(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新条件") + @PreAuthorize("@ss.hasPermission('wms:condition:update')") + public CommonResult updateCondition(@Valid @RequestBody ConditionUpdateReqVO updateReqVO) { + conditionService.updateCondition(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除条件") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:condition:delete')") + public CommonResult deleteCondition(@RequestParam("id") Long id) { + conditionService.deleteCondition(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得条件") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('wms:condition:query')") + public CommonResult getCondition(@RequestParam("id") Long id) { + ConditionDO condition = conditionService.getCondition(id); + return success(ConditionConvert.INSTANCE.convert(condition)); + } + + @GetMapping("/list") + @Operation(summary = "获得条件列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('wms:condition:query')") + public CommonResult> getConditionList(@RequestParam("ids") Collection ids) { + List list = conditionService.getConditionList(ids); + return success(ConditionConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得条件分页") + @PreAuthorize("@ss.hasPermission('wms:condition:query')") + public CommonResult> getConditionPage(@Valid ConditionPageReqVO pageVO) { + PageResult pageResult = conditionService.getConditionPage(pageVO); + return success(ConditionConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出条件 Excel") + @PreAuthorize("@ss.hasPermission('wms:condition:export')") + @OperateLog(type = EXPORT) + public void exportConditionExcel(@Valid ConditionExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = conditionService.getConditionList(exportReqVO); + // 导出 Excel + List datas = ConditionConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "条件.xls", "数据", ConditionExcelVO.class, datas); + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionBaseVO.java new file mode 100644 index 00000000..ec6240d4 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionBaseVO.java @@ -0,0 +1,41 @@ +package com.win.module.wms.controller.condition.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 条件 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class ConditionBaseVO { + + @Schema(description = "id", example = "id") + private Long id; + + @Schema(description = "策略代码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "策略代码不能为空") + private String strategyCode; + + @Schema(description = "规则代码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "规则代码不能为空") + private String ruleCode; + + @Schema(description = "参数", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "参数不能为空") + private String paramCode; + + @Schema(description = "操作符", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "操作符不能为空") + private String operator; + + @Schema(description = "值", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "值不能为空") + private String value; + + @Schema(description = "条件分组") + private String groupCode; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionCreateReqVO.java new file mode 100644 index 00000000..24ed3ac1 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionCreateReqVO.java @@ -0,0 +1,12 @@ +package com.win.module.wms.controller.condition.vo; + +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; + +@Schema(description = "管理后台 - 条件创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ConditionCreateReqVO extends ConditionBaseVO { + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionExcelVO.java new file mode 100644 index 00000000..2730eb19 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionExcelVO.java @@ -0,0 +1,39 @@ +package com.win.module.wms.controller.condition.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; + + +/** + * 条件 Excel VO + * + * @author 超级管理员 + */ +@Data +public class ConditionExcelVO { + + @ExcelProperty("策略代码") + private String strategyCode; + + @ExcelProperty("规则代码") + private String ruleCode; + + @ExcelProperty("参数") + private String paramCode; + + @ExcelProperty(value = "操作符", converter = DictConvert.class) + @DictFormat("strategy_param_opeartor") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String operator; + + @ExcelProperty("值") + private String value; + + @ExcelProperty("条件分组") + private String groupCode; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionExportReqVO.java new file mode 100644 index 00000000..24955c75 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionExportReqVO.java @@ -0,0 +1,28 @@ +package com.win.module.wms.controller.condition.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 条件 Excel 导出 Request VO,参数和 ConditionPageReqVO 是一致的") +@Data +public class ConditionExportReqVO { + + @Schema(description = "策略代码") + private String strategyCode; + + @Schema(description = "规则代码") + private String ruleCode; + + @Schema(description = "参数") + private String paramCode; + + @Schema(description = "操作符") + private String operator; + + @Schema(description = "值") + private String value; + + @Schema(description = "条件分组") + private String groupCode; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionPageReqVO.java new file mode 100644 index 00000000..4425f2f0 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionPageReqVO.java @@ -0,0 +1,33 @@ +package com.win.module.wms.controller.condition.vo; + +import com.win.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 条件分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ConditionPageReqVO extends PageParam { + + @Schema(description = "策略代码") + private String strategyCode; + + @Schema(description = "规则代码") + private String ruleCode; + + @Schema(description = "参数") + private String paramCode; + + @Schema(description = "操作符") + private String operator; + + @Schema(description = "值") + private String value; + + @Schema(description = "条件分组") + private String groupCode; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionRespVO.java new file mode 100644 index 00000000..a1017872 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionRespVO.java @@ -0,0 +1,12 @@ +package com.win.module.wms.controller.condition.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@Schema(description = "管理后台 - 条件 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ConditionRespVO extends ConditionBaseVO { + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionUpdateReqVO.java new file mode 100644 index 00000000..d255087e --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/condition/vo/ConditionUpdateReqVO.java @@ -0,0 +1,12 @@ +package com.win.module.wms.controller.condition.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@Schema(description = "管理后台 - 条件更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ConditionUpdateReqVO extends ConditionBaseVO { + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/condition/ConditionConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/condition/ConditionConvert.java new file mode 100644 index 00000000..4e4612fa --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/condition/ConditionConvert.java @@ -0,0 +1,36 @@ +package com.win.module.wms.convert.condition; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.condition.vo.ConditionCreateReqVO; +import com.win.module.wms.controller.condition.vo.ConditionExcelVO; +import com.win.module.wms.controller.condition.vo.ConditionRespVO; +import com.win.module.wms.controller.condition.vo.ConditionUpdateReqVO; +import com.win.module.wms.dal.dataobject.condition.ConditionDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 条件 Convert + * + * @author 超级管理员 + */ +@Mapper +public interface ConditionConvert { + + ConditionConvert INSTANCE = Mappers.getMapper(ConditionConvert.class); + + ConditionDO convert(ConditionCreateReqVO bean); + + ConditionDO convert(ConditionUpdateReqVO bean); + + ConditionRespVO convert(ConditionDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/condition/ConditionDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/condition/ConditionDO.java new file mode 100644 index 00000000..bb39b989 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/condition/ConditionDO.java @@ -0,0 +1,54 @@ +package com.win.module.wms.dal.dataobject.condition; + +import lombok.*; +import java.util.*; +import com.baomidou.mybatisplus.annotation.*; +import com.win.framework.mybatis.core.dataobject.BaseDO; + +/** + * 条件 DO + * + * @author 超级管理员 + */ +@TableName("strategy_condition") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ConditionDO extends BaseDO { + + /** + * 数据主键 + */ + @TableId + private Long id; + /** + * 策略代码 + */ + private String strategyCode; + /** + * 规则代码 + */ + private String ruleCode; + /** + * 参数 + */ + private String paramCode; + /** + * 操作符 + * + * 枚举 {@link TODO strategy_param_opeartor 对应的类} + */ + private String operator; + /** + * 值 + */ + private String value; + /** + * 条件分组 + */ + private String groupCode; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/condition/ConditionMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/condition/ConditionMapper.java new file mode 100644 index 00000000..1ca6d3e1 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/condition/ConditionMapper.java @@ -0,0 +1,43 @@ +package com.win.module.wms.dal.mysql.condition; + +import java.util.*; + +import com.win.framework.common.pojo.PageResult; +import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.win.framework.mybatis.core.mapper.BaseMapperX; +import com.win.module.wms.controller.condition.vo.ConditionExportReqVO; +import com.win.module.wms.controller.condition.vo.ConditionPageReqVO; +import com.win.module.wms.dal.dataobject.condition.ConditionDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 条件 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface ConditionMapper extends BaseMapperX { + + default PageResult selectPage(ConditionPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ConditionDO::getStrategyCode, reqVO.getStrategyCode()) + .eqIfPresent(ConditionDO::getRuleCode, reqVO.getRuleCode()) + .eqIfPresent(ConditionDO::getParamCode, reqVO.getParamCode()) + .eqIfPresent(ConditionDO::getOperator, reqVO.getOperator()) + .eqIfPresent(ConditionDO::getValue, reqVO.getValue()) + .eqIfPresent(ConditionDO::getGroupCode, reqVO.getGroupCode()) + .orderByDesc(ConditionDO::getId)); + } + + default List selectList(ConditionExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ConditionDO::getStrategyCode, reqVO.getStrategyCode()) + .eqIfPresent(ConditionDO::getRuleCode, reqVO.getRuleCode()) + .eqIfPresent(ConditionDO::getParamCode, reqVO.getParamCode()) + .eqIfPresent(ConditionDO::getOperator, reqVO.getOperator()) + .eqIfPresent(ConditionDO::getValue, reqVO.getValue()) + .eqIfPresent(ConditionDO::getGroupCode, reqVO.getGroupCode()) + .orderByDesc(ConditionDO::getId)); + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/condition/ConditionService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/condition/ConditionService.java new file mode 100644 index 00000000..23729387 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/condition/ConditionService.java @@ -0,0 +1,75 @@ +package com.win.module.wms.service.condition; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.condition.vo.ConditionCreateReqVO; +import com.win.module.wms.controller.condition.vo.ConditionExportReqVO; +import com.win.module.wms.controller.condition.vo.ConditionPageReqVO; +import com.win.module.wms.controller.condition.vo.ConditionUpdateReqVO; +import com.win.module.wms.dal.dataobject.condition.ConditionDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; + +/** + * 条件 Service 接口 + * + * @author 超级管理员 + */ +public interface ConditionService { + + /** + * 创建条件 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createCondition(@Valid ConditionCreateReqVO createReqVO); + + /** + * 更新条件 + * + * @param updateReqVO 更新信息 + */ + void updateCondition(@Valid ConditionUpdateReqVO updateReqVO); + + /** + * 删除条件 + * + * @param id 编号 + */ + void deleteCondition(Long id); + + /** + * 获得条件 + * + * @param id 编号 + * @return 条件 + */ + ConditionDO getCondition(Long id); + + /** + * 获得条件列表 + * + * @param ids 编号 + * @return 条件列表 + */ + List getConditionList(Collection ids); + + /** + * 获得条件分页 + * + * @param pageReqVO 分页查询 + * @return 条件分页 + */ + PageResult getConditionPage(ConditionPageReqVO pageReqVO); + + /** + * 获得条件列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 条件列表 + */ + List getConditionList(ConditionExportReqVO exportReqVO); + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/condition/ConditionServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/condition/ConditionServiceImpl.java new file mode 100644 index 00000000..1ce6ca1d --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/condition/ConditionServiceImpl.java @@ -0,0 +1,85 @@ +package com.win.module.wms.service.condition; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.condition.vo.ConditionCreateReqVO; +import com.win.module.wms.controller.condition.vo.ConditionExportReqVO; +import com.win.module.wms.controller.condition.vo.ConditionPageReqVO; +import com.win.module.wms.controller.condition.vo.ConditionUpdateReqVO; +import com.win.module.wms.convert.condition.ConditionConvert; +import com.win.module.wms.dal.dataobject.condition.ConditionDO; +import com.win.module.wms.dal.mysql.condition.ConditionMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; + +import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.module.wms.enums.ErrorCodeConstants.CONDITION_NOT_EXISTS; + +/** + * 条件 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class ConditionServiceImpl implements ConditionService { + + @Resource + private ConditionMapper conditionMapper; + + @Override + public Long createCondition(ConditionCreateReqVO createReqVO) { + // 插入 + ConditionDO condition = ConditionConvert.INSTANCE.convert(createReqVO); + conditionMapper.insert(condition); + // 返回 + return condition.getId(); + } + + @Override + public void updateCondition(ConditionUpdateReqVO updateReqVO) { + // 校验存在 + validateConditionExists(updateReqVO.getId()); + // 更新 + ConditionDO updateObj = ConditionConvert.INSTANCE.convert(updateReqVO); + conditionMapper.updateById(updateObj); + } + + @Override + public void deleteCondition(Long id) { + // 校验存在 + validateConditionExists(id); + // 删除 + conditionMapper.deleteById(id); + } + + private void validateConditionExists(Long id) { + if (conditionMapper.selectById(id) == null) { + throw exception(CONDITION_NOT_EXISTS); + } + } + + @Override + public ConditionDO getCondition(Long id) { + return conditionMapper.selectById(id); + } + + @Override + public List getConditionList(Collection ids) { + return conditionMapper.selectBatchIds(ids); + } + + @Override + public PageResult getConditionPage(ConditionPageReqVO pageReqVO) { + return conditionMapper.selectPage(pageReqVO); + } + + @Override + public List getConditionList(ConditionExportReqVO exportReqVO) { + return conditionMapper.selectList(exportReqVO); + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java index e311df64..8a8cb952 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java @@ -1,6 +1,7 @@ package com.win.module.wms.service.workstation; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.PageResult; import com.win.framework.datapermission.core.util.DataPermissionUtils; @@ -20,8 +21,7 @@ import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY; -import static com.win.module.wms.enums.workstation.ErrorCodeConstants.WORKSTATION_NOT_EXISTS; -import static com.win.module.wms.enums.workstation.ErrorCodeConstants.WORKSTATION_NOT_RIGHT; +import static com.win.module.wms.enums.workstation.ErrorCodeConstants.*; /** * 工位 Service 实现类 @@ -99,7 +99,7 @@ public class WorkstationServiceImpl implements WorkstationService { workstations.forEach(workstation -> { // 校验,判断是否有不符合的原因 try { - validateUserForCreateOrUpdate(workstation.getCode()); + validateUserForCreateOrUpdate(null,workstation.getCode()); } catch (ServiceException ex) { respVO.getFailureWorkstations().put(workstation.getCode(), ex.getMessage()); return; @@ -125,17 +125,31 @@ public class WorkstationServiceImpl implements WorkstationService { return respVO; } - private void validateUserForCreateOrUpdate(String code) { + private void validateUserForCreateOrUpdate(Long id,String code) { // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 DataPermissionUtils.executeIgnore(() -> { // 校验code唯一 - codeExists(code); + codeExists(id,code); }); } - private void codeExists(String code) { + private void codeExists(Long id, String code) { if (code.isEmpty()) { throw exception(WORKSTATION_NOT_RIGHT); } + if (StrUtil.isBlank(code)) { + return; + } + WorkstationDO workstation = workstationMapper.selectByCode(code); + if (workstation == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的用户 + if (id == null) { + throw exception(CODE_EXISTS); + } + if (!workstation.getId().equals(id)) { + throw exception(CODE_EXISTS); + } } } diff --git a/win-module-wms/win-module-wms-biz/src/main/resources/mapper/condition/ConditionMapper.xml b/win-module-wms/win-module-wms-biz/src/main/resources/mapper/condition/ConditionMapper.xml new file mode 100644 index 00000000..3be3ff17 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/resources/mapper/condition/ConditionMapper.xml @@ -0,0 +1,12 @@ + + + + + + +