diff --git a/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/config/WinMybatisAutoConfiguration.java b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/config/WinMybatisAutoConfiguration.java index 7cf5c9d9..0aba0389 100644 --- a/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/config/WinMybatisAutoConfiguration.java +++ b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/config/WinMybatisAutoConfiguration.java @@ -1,13 +1,14 @@ package com.win.framework.mybatis.config; import cn.hutool.core.util.StrUtil; -import com.win.framework.mybatis.core.handler.DefaultDBFieldHandler; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator; import com.baomidou.mybatisplus.extension.incrementer.*; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import com.win.framework.mybatis.core.handler.DefaultDBFieldHandler; import org.apache.ibatis.annotations.Mapper; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -29,6 +30,7 @@ public class WinMybatisAutoConfiguration { public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor()); // 分页插件 + mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); // 乐观锁 return mybatisPlusInterceptor; } diff --git a/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/dataobject/ConcurrencyDO.java b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/dataobject/ConcurrencyDO.java new file mode 100644 index 00000000..9b2f066d --- /dev/null +++ b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/dataobject/ConcurrencyDO.java @@ -0,0 +1,23 @@ +package com.win.framework.mybatis.core.dataobject; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.Version; +import lombok.Data; + +/** + * 基础实体对象 + * + * @author 闻荫源码 + */ +@Data +public abstract class ConcurrencyDO extends IdDO { + + /** + * 并发乐观锁 + */ + @Version + @TableField(fill = FieldFill.INSERT) + private Integer ConcurrencyStamp; + +} diff --git a/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/dataobject/IdDO.java b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/dataobject/IdDO.java new file mode 100644 index 00000000..a1ef5bb2 --- /dev/null +++ b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/dataobject/IdDO.java @@ -0,0 +1,21 @@ +package com.win.framework.mybatis.core.dataobject; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +/** + * 基础实体对象 + * + * @author 闻荫源码 + */ +@Data +public abstract class IdDO extends BaseDO { + + /** + * id + */ + @TableId(type = IdType.AUTO) + private Long id; + +} diff --git a/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/dataobject/MasterDO.java b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/dataobject/MasterDO.java new file mode 100644 index 00000000..478bbfec --- /dev/null +++ b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/dataobject/MasterDO.java @@ -0,0 +1,62 @@ +package com.win.framework.mybatis.core.dataobject; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import org.apache.ibatis.type.JdbcType; + +import java.time.LocalDateTime; + + +/** + * 基础实体对象 + * + * @author 闻荫源码 + */ +@Data +public abstract class MasterDO extends ConcurrencyDO { + + /** + * 是否可用 + */ + private String available; + + /** + * 生效时间 + */ + private LocalDateTime activeTime; + + /** + * 生效时间 + */ + private LocalDateTime expireTime; + + /** + * 备注 + */ + private String remark; + + /** + * 删除时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime deletionTime; + + /** + * 删除者,目前使用 SysUser 的 id 编号 + *

+ * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 + */ + @TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.VARCHAR) + private String deleterId; + + /** + * 扩展属性 + */ + private String extraProperties; + + /** + * 地点ID + */ + private String siteId; + +} diff --git a/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/viewobject/BaseVO.java b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/viewobject/BaseVO.java new file mode 100644 index 00000000..8a3a7767 --- /dev/null +++ b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/viewobject/BaseVO.java @@ -0,0 +1,40 @@ +package com.win.framework.mybatis.core.viewobject; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; + +import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** + * 基础实体对象 + * + * @author 闻荫源码 + */ +@Data +public abstract class BaseVO implements Serializable { + + @Schema(description = "id", example = "id") + private Long id; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime createTime; + + @Schema(description = "最后更新时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime updateTime; + + @Schema(description = "创建者") + private String creator; + + @Schema(description = "更新者") + private String updater; + + @Schema(description = "是否删除") + private Boolean deleted; + +} diff --git a/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/viewobject/MasterVO.java b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/viewobject/MasterVO.java new file mode 100644 index 00000000..f23c91a0 --- /dev/null +++ b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/viewobject/MasterVO.java @@ -0,0 +1,52 @@ +package com.win.framework.mybatis.core.viewobject; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + + +/** + * 基础实体对象 + * + * @author 闻荫源码 + */ +@Data +public abstract class MasterVO extends BaseVO{ + + @Schema(description = "是否可用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "是否可用不能为空") + private String available; + + @Schema(description = "生效时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime activeTime; + + @Schema(description = "失效时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime expireTime; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "删除时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime deletionTime; + + @Schema(description = "删除者") + private String deleterId; + + @Schema(description = "扩展属性") + private String extraProperties; + + @Schema(description = "地点ID") + private String siteId; + + @Schema(description = "并发乐观锁") + private Integer ConcurrencyStamp; + +} diff --git a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm index 568abec4..0d41403c 100644 --- a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm +++ b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm @@ -1,99 +1,79 @@ package ${basePackage}.module.${table.moduleName}.service.${table.businessName}; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; - import java.util.*; +import javax.validation.*; import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; import ${PageResultClassName}; -import ${basePackage}.module.${table.moduleName}.convert.${table.businessName}.${table.className}Convert; -import ${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper; - -import static ${ServiceExceptionUtilClassName}.exception; -import static ${basePackage}.module.${table.moduleName}.enums.ErrorCodeConstants.*; - /** - * ${table.classComment} Service + * ${table.classComment} Service 接口 * * @author ${table.author} */ -@Service -@Validated -public class ${table.className}Service { - - @Resource - private ${table.className}Mapper ${classNameVar}Mapper; - - - public ${primaryColumn.javaType} create${simpleClassName}(${sceneEnum.prefixClass}${table.className}CreateReqVO createReqVO) { - // 插入 - ${table.className}DO ${classNameVar} = ${table.className}Convert.INSTANCE.convert(createReqVO); - ${classNameVar}Mapper.insert(${classNameVar}); - // 返回 - return ${classNameVar}.getId(); - } - - public void update${simpleClassName}(${sceneEnum.prefixClass}${table.className}UpdateReqVO updateReqVO) { - // 校验存在 - validate${simpleClassName}Exists(updateReqVO.getId()); - // 更新 - ${table.className}DO updateObj = ${table.className}Convert.INSTANCE.convert(updateReqVO); - ${classNameVar}Mapper.updateById(updateObj); - } - - public void delete${simpleClassName}(${primaryColumn.javaType} id) { - // 校验存在 - validate${simpleClassName}Exists(id); - // 删除 - ${classNameVar}Mapper.deleteById(id); - } - - private void validate${simpleClassName}Exists(${primaryColumn.javaType} id) { - if (${classNameVar}Mapper.selectById(id) == null) { - throw exception(${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS); - } - } - - public ${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id) { - return ${classNameVar}Mapper.selectById(id); - } - - public List<${table.className}DO> get${simpleClassName}List(Collection<${primaryColumn.javaType}> ids) { - return ${classNameVar}Mapper.selectBatchIds(ids); - } - - public PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO) { - return ${classNameVar}Mapper.selectPage(pageReqVO); - } - - public List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ExportReqVO exportReqVO) { - return ${classNameVar}Mapper.selectList(exportReqVO); - } - - public List<${table.className}ExcelVO> import${table.className}List(List<${table.className}ExcelVO> datas, Integer mode, boolean updatePart) { - if (CollUtil.isEmpty(datas)) { - throw exception(${simpleClassName_underlineCase.toUpperCase()}_IMPORT_LIST_IS_EMPTY); - } - - List<${table.className}ExcelVO> errorList = new ArrayList<>(); - datas.forEach(item -> { - if(errorList == null){ - // 判断如果不存在,在进行插入 - ${table.className}DO obj = ${classNameVar}Mapper.selectByCode(item.getCode()); - if (obj == null&& mode != 3) { - ${classNameVar}Mapper.insert(${table.className}Convert.INSTANCE.convert(item)); - } - else if (obj != null && mode != 2) {// 如果存在,判断是否允许更新 - ${table.className}DO ${classNameVar}DO = ${table.className}Convert.INSTANCE.convert(item); - ${classNameVar}DO.setId(obj.getId()); - ${classNameVar}Mapper.updateById(obj); - } - } - }); - - return errorList; - } +public interface ${table.className}Service { + + /** + * 创建${table.classComment} + * + * @param createReqVO 创建信息 + * @return 编号 + */ + ${primaryColumn.javaType} create${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}CreateReqVO createReqVO); + + /** + * 更新${table.classComment} + * + * @param updateReqVO 更新信息 + */ + void update${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}UpdateReqVO updateReqVO); + + /** + * 删除${table.classComment} + * + * @param id 编号 + */ + void delete${simpleClassName}(${primaryColumn.javaType} id); + + /** + * 获得${table.classComment} + * + * @param id 编号 + * @return ${table.classComment} + */ + ${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id); + + /** + * 获得${table.classComment}列表 + * + * @param ids 编号 + * @return ${table.classComment}列表 + */ + List<${table.className}DO> get${simpleClassName}List(Collection<${primaryColumn.javaType}> ids); + + /** + * 获得${table.classComment}分页 + * + * @param pageReqVO 分页查询 + * @return ${table.classComment}分页 + */ + PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO); + + /** + * 获得${table.classComment}列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return ${table.classComment}列表 + */ + List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ExportReqVO exportReqVO); + + /** + * 导入${table.classComment}主信息 + * + * @param datas 导入${table.classComment}主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List<${table.className}ExcelVO> import${table.className}List(List<${table.className}ExcelVO> datas, Integer mode, boolean updatePart); } diff --git a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm.bark b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm.bark index 0d41403c..568abec4 100644 --- a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm.bark +++ b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm.bark @@ -1,79 +1,99 @@ package ${basePackage}.module.${table.moduleName}.service.${table.businessName}; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + import java.util.*; -import javax.validation.*; import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; import ${PageResultClassName}; +import ${basePackage}.module.${table.moduleName}.convert.${table.businessName}.${table.className}Convert; +import ${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper; + +import static ${ServiceExceptionUtilClassName}.exception; +import static ${basePackage}.module.${table.moduleName}.enums.ErrorCodeConstants.*; + /** - * ${table.classComment} Service 接口 + * ${table.classComment} Service * * @author ${table.author} */ -public interface ${table.className}Service { - - /** - * 创建${table.classComment} - * - * @param createReqVO 创建信息 - * @return 编号 - */ - ${primaryColumn.javaType} create${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}CreateReqVO createReqVO); - - /** - * 更新${table.classComment} - * - * @param updateReqVO 更新信息 - */ - void update${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}UpdateReqVO updateReqVO); - - /** - * 删除${table.classComment} - * - * @param id 编号 - */ - void delete${simpleClassName}(${primaryColumn.javaType} id); - - /** - * 获得${table.classComment} - * - * @param id 编号 - * @return ${table.classComment} - */ - ${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id); - - /** - * 获得${table.classComment}列表 - * - * @param ids 编号 - * @return ${table.classComment}列表 - */ - List<${table.className}DO> get${simpleClassName}List(Collection<${primaryColumn.javaType}> ids); - - /** - * 获得${table.classComment}分页 - * - * @param pageReqVO 分页查询 - * @return ${table.classComment}分页 - */ - PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO); - - /** - * 获得${table.classComment}列表, 用于 Excel 导出 - * - * @param exportReqVO 查询条件 - * @return ${table.classComment}列表 - */ - List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ExportReqVO exportReqVO); - - /** - * 导入${table.classComment}主信息 - * - * @param datas 导入${table.classComment}主信息列表 - * @param mode 导入模式1更新2追加3覆盖 - * @param updatePart 是否支持更新 - * @return 导入结果 - */ - public List<${table.className}ExcelVO> import${table.className}List(List<${table.className}ExcelVO> datas, Integer mode, boolean updatePart); +@Service +@Validated +public class ${table.className}Service { + + @Resource + private ${table.className}Mapper ${classNameVar}Mapper; + + + public ${primaryColumn.javaType} create${simpleClassName}(${sceneEnum.prefixClass}${table.className}CreateReqVO createReqVO) { + // 插入 + ${table.className}DO ${classNameVar} = ${table.className}Convert.INSTANCE.convert(createReqVO); + ${classNameVar}Mapper.insert(${classNameVar}); + // 返回 + return ${classNameVar}.getId(); + } + + public void update${simpleClassName}(${sceneEnum.prefixClass}${table.className}UpdateReqVO updateReqVO) { + // 校验存在 + validate${simpleClassName}Exists(updateReqVO.getId()); + // 更新 + ${table.className}DO updateObj = ${table.className}Convert.INSTANCE.convert(updateReqVO); + ${classNameVar}Mapper.updateById(updateObj); + } + + public void delete${simpleClassName}(${primaryColumn.javaType} id) { + // 校验存在 + validate${simpleClassName}Exists(id); + // 删除 + ${classNameVar}Mapper.deleteById(id); + } + + private void validate${simpleClassName}Exists(${primaryColumn.javaType} id) { + if (${classNameVar}Mapper.selectById(id) == null) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS); + } + } + + public ${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id) { + return ${classNameVar}Mapper.selectById(id); + } + + public List<${table.className}DO> get${simpleClassName}List(Collection<${primaryColumn.javaType}> ids) { + return ${classNameVar}Mapper.selectBatchIds(ids); + } + + public PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO) { + return ${classNameVar}Mapper.selectPage(pageReqVO); + } + + public List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ExportReqVO exportReqVO) { + return ${classNameVar}Mapper.selectList(exportReqVO); + } + + public List<${table.className}ExcelVO> import${table.className}List(List<${table.className}ExcelVO> datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_IMPORT_LIST_IS_EMPTY); + } + + List<${table.className}ExcelVO> errorList = new ArrayList<>(); + datas.forEach(item -> { + if(errorList == null){ + // 判断如果不存在,在进行插入 + ${table.className}DO obj = ${classNameVar}Mapper.selectByCode(item.getCode()); + if (obj == null&& mode != 3) { + ${classNameVar}Mapper.insert(${table.className}Convert.INSTANCE.convert(item)); + } + else if (obj != null && mode != 2) {// 如果存在,判断是否允许更新 + ${table.className}DO ${classNameVar}DO = ${table.className}Convert.INSTANCE.convert(item); + ${classNameVar}DO.setId(obj.getId()); + ${classNameVar}Mapper.updateById(obj); + } + } + }); + + return errorList; + } } diff --git a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm.bark b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm similarity index 100% rename from win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm.bark rename to win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm diff --git a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm index 6978f249..ec1b45a9 100644 --- a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm +++ b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm @@ -61,15 +61,15 @@ import static org.mockito.Mockito.*; #end #end /** - * {@link ${table.className}Service} 的单元测试类 + * {@link ${table.className}ServiceImpl} 的单元测试类 * * @author ${table.author} */ -@Import(${table.className}Service.class) -public class ${table.className}ServiceTest extends BaseDbUnitTest { +@Import(${table.className}ServiceImpl.class) +public class ${table.className}ServiceImplTest extends BaseDbUnitTest { @Resource - private ${table.className}Service ${classNameVar}Service; + private ${table.className}ServiceImpl ${classNameVar}Service; @Resource private ${table.className}Mapper ${classNameVar}Mapper; diff --git a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm.bark b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm.bark index ec1b45a9..6978f249 100644 --- a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm.bark +++ b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm.bark @@ -61,15 +61,15 @@ import static org.mockito.Mockito.*; #end #end /** - * {@link ${table.className}ServiceImpl} 的单元测试类 + * {@link ${table.className}Service} 的单元测试类 * * @author ${table.author} */ -@Import(${table.className}ServiceImpl.class) -public class ${table.className}ServiceImplTest extends BaseDbUnitTest { +@Import(${table.className}Service.class) +public class ${table.className}ServiceTest extends BaseDbUnitTest { @Resource - private ${table.className}ServiceImpl ${classNameVar}Service; + private ${table.className}Service ${classNameVar}Service; @Resource private ${table.className}Mapper ${classNameVar}Mapper; diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java index fd1006d1..5d222b21 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java @@ -65,6 +65,9 @@ public interface DictTypeConstants { String CARRIER_TYPE = "carrier_type";//承运商类型 String INVENTORY_STATUS = "inventory_status";//库存状态 String REQUEST_STATUS = "request_status";//请求状态 + String PURCHASE_RETURN_REASON = "purchase_return_reason";//原因 + String TRANSFER_MODE = "transfer_mode";//运输方式 + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java index 21e0732a..b3deccd8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java @@ -129,6 +129,9 @@ public class PurchasereceiptJobMainController { public CommonResult getPurchasereceiptJobyId(@RequestParam("id") Long id) { PurchasereceiptJobMainDO purchasereceiptJobMain = purchasereceiptJobMainService.getPurchasereceiptJobMain(id); PurchasereceiptJobMainRespVO result = PurchasereceiptJobMainConvert.INSTANCE.convert(purchasereceiptJobMain); + if(result==null) { + return success(result); + }; PurchasereceiptJobDetailExportReqVO purchasereceiptJobDetailExportReqVO = new PurchasereceiptJobDetailExportReqVO(); purchasereceiptJobDetailExportReqVO.setMasterId(result.getId()); List purchasereceiptJobDetailList = purchasereceiptJobDetailService.getPurchasereceiptJobDetailList(purchasereceiptJobDetailExportReqVO); @@ -142,8 +145,8 @@ public class PurchasereceiptJobMainController { @Parameter(name = "createTime", description = "今日开始结束时间", required = false, example = "[\"1699200000000\",\"1701878400000\"]") @Parameter(name = "types", description = "字典类型数组", required = false, example = "\"types\":[\"JOB_PENDING\",\"JOB_COMPLETED\"]") @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:query')") - public CommonResult> getPageByStatusAndTime(@RequestBody PurchasereceiptJobMainRespTypesVO purchasereceiptJobMainRespTypesVO) { - PageResult purchasereceiptJobMainByStatusPage = purchasereceiptJobMainService.getPurchasereceiptJobMainByStatusPage(purchasereceiptJobMainRespTypesVO); + public CommonResult> getPageByStatusAndTime(@RequestBody PurchasereceiptJobMainPageReqVO purchasereceiptJobMainPageReqVO) { + PageResult purchasereceiptJobMainByStatusPage = purchasereceiptJobMainService.getPurchasereceiptJobMainPage(purchasereceiptJobMainPageReqVO); PageResult result = PurchasereceiptJobMainConvert.INSTANCE.convertPage(purchasereceiptJobMainByStatusPage); return success(result); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainPageReqVO.java index 7f38ac1b..ed137418 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainPageReqVO.java @@ -154,4 +154,7 @@ public class PurchasereceiptJobMainPageReqVO extends PageParam { @Schema(description = "允许修改箱码") private String allowModifyPackingNumber; + @Schema(description = "任务状态list可以为空", requiredMode = Schema.RequiredMode.REQUIRED) + private List types; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespTypesVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespTypesVO.java deleted file mode 100644 index e6c58840..00000000 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespTypesVO.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.win.module.wms.controller.purchasereceiptJob.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; -import org.springframework.format.annotation.DateTimeFormat; - -import javax.validation.constraints.NotNull; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.util.List; - -import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@Schema(description = "管理后台 - 采购收货任务主接收类接收多个任务状态 Response VO") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class PurchasereceiptJobMainRespTypesVO extends PageParam { - - @Schema(description = "申请单号") - private String requestNumber; - - @Schema(description = "发货单号") - private String asnNumber; - - @Schema(description = "要货计划单号") - private String ppNumber; - - @Schema(description = "供应商代码") - private String supplierCode; - - @Schema(description = "到月台代码") - private String toDockCode; - - @Schema(description = "承运商") - private String carrierCode; - - @Schema(description = "运输方式") - private String transferMode; - - @Schema(description = "车牌号") - private String vehiclePlateNumber; - - @Schema(description = "从仓库代码") - private String fromWarehouseCode; - - @Schema(description = "到仓库代码") - private String toWarehouseCode; - - @Schema(description = "申请时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] requestTime; - - @Schema(description = "要求截止时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] requestDueTime; - - @Schema(description = "状态") - private String status; - - @Schema(description = "过期时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] expiredTime; - - @Schema(description = "最后更新时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] updateTime; - - @Schema(description = "最后更新者Id") - private String updater; - - @Schema(description = "状态") - private String jobStageStatus; - - @Schema(description = "优先级") - private Integer priority; - - @Schema(description = "优先级增量") - private Integer priorityIncrement; - - @Schema(description = "部门") - private String departmentCode; - - @Schema(description = "岗位") - private String userPositionCode; - - @Schema(description = "承接人用户ID") - private String acceptUserId; - - @Schema(description = "承接时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] acceptTime; - - @Schema(description = "完成人用户ID") - private String completeUserId; - - @Schema(description = "完成时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] completeTime; - - @Schema(description = "从库位类型范围") - private String fromLocationTypes; - - @Schema(description = "到库位类型范围") - private String toLocationTypes; - - @Schema(description = "单据号") - private String number; - - @Schema(description = "业务类型") - private String businessType; - - @Schema(description = "备注") - private String remark; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - - @Schema(description = "创建者id") - private String creator; - - @Schema(description = "允许修改批次") - private String allowModifyBatch; - - @Schema(description = "从库区代码范围") - private String fromAreaCodes; - - @Schema(description = "到库位代码范围") - private String toAreaCodes; - - @Schema(description = "自动完成") - private String autoComplete; - - @Schema(description = "允许修改库位") - private String allowModifyLocation; - - @Schema(description = "允许修改数量") - private String allowModifyQty; - - @Schema(description = "允许大于推荐数量") - private String allowBiggerQty; - - @Schema(description = "允许小于推荐数量") - private String allowSmallerQty; - - @Schema(description = "允许修改库存状态") - private String allowModifyInventoryStatus; - - @Schema(description = "允许连续扫描") - private String allowContinuousScanning; - - @Schema(description = "允许部分完成") - private String allowPartialComplete; - - @Schema(description = "允许修改箱码") - private String allowModifyPackingNumber; - - @Schema(description = "任务状态list可以为空", requiredMode = Schema.RequiredMode.REQUIRED) - private List types; - - -} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java index 58279188..ef4118ab 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java @@ -21,6 +21,7 @@ public interface PurchasereceiptJobMainMapper extends BaseMapperX selectPage(PurchasereceiptJobMainPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .inIfPresent(PurchasereceiptJobMainDO::getStatus,reqVO.getTypes()) .eqIfPresent(PurchasereceiptJobMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(PurchasereceiptJobMainDO::getAsnNumber, reqVO.getAsnNumber()) .eqIfPresent(PurchasereceiptJobMainDO::getPpNumber, reqVO.getPpNumber()) @@ -119,55 +120,6 @@ public interface PurchasereceiptJobMainMapper extends BaseMapperX selectByStatusPage(PurchasereceiptJobMainRespTypesVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(PurchasereceiptJobMainDO::getRequestNumber, reqVO.getRequestNumber()) - .eqIfPresent(PurchasereceiptJobMainDO::getAsnNumber, reqVO.getAsnNumber()) - .eqIfPresent(PurchasereceiptJobMainDO::getPpNumber, reqVO.getPpNumber()) - .eqIfPresent(PurchasereceiptJobMainDO::getSupplierCode, reqVO.getSupplierCode()) - .eqIfPresent(PurchasereceiptJobMainDO::getToDockCode, reqVO.getToDockCode()) - .eqIfPresent(PurchasereceiptJobMainDO::getCarrierCode, reqVO.getCarrierCode()) - .eqIfPresent(PurchasereceiptJobMainDO::getTransferMode, reqVO.getTransferMode()) - .eqIfPresent(PurchasereceiptJobMainDO::getVehiclePlateNumber, reqVO.getVehiclePlateNumber()) - .eqIfPresent(PurchasereceiptJobMainDO::getFromWarehouseCode, reqVO.getFromWarehouseCode()) - .eqIfPresent(PurchasereceiptJobMainDO::getToWarehouseCode, reqVO.getToWarehouseCode()) - .betweenIfPresent(PurchasereceiptJobMainDO::getRequestTime, reqVO.getRequestTime()) - .betweenIfPresent(PurchasereceiptJobMainDO::getRequestDueTime, reqVO.getRequestDueTime()) - .inIfPresent(PurchasereceiptJobMainDO::getStatus, reqVO.getTypes()) - .betweenIfPresent(PurchasereceiptJobMainDO::getExpiredTime, reqVO.getExpiredTime()) - .betweenIfPresent(PurchasereceiptJobMainDO::getUpdateTime, reqVO.getUpdateTime()) - .eqIfPresent(PurchasereceiptJobMainDO::getUpdater, reqVO.getUpdater()) - .eqIfPresent(PurchasereceiptJobMainDO::getJobStageStatus, reqVO.getJobStageStatus()) - .eqIfPresent(PurchasereceiptJobMainDO::getPriority, reqVO.getPriority()) - .eqIfPresent(PurchasereceiptJobMainDO::getPriorityIncrement, reqVO.getPriorityIncrement()) - .eqIfPresent(PurchasereceiptJobMainDO::getDepartmentCode, reqVO.getDepartmentCode()) - .eqIfPresent(PurchasereceiptJobMainDO::getUserPositionCode, reqVO.getUserPositionCode()) - .eqIfPresent(PurchasereceiptJobMainDO::getAcceptUserId, reqVO.getAcceptUserId()) - .betweenIfPresent(PurchasereceiptJobMainDO::getAcceptTime, reqVO.getAcceptTime()) - .eqIfPresent(PurchasereceiptJobMainDO::getCompleteUserId, reqVO.getCompleteUserId()) - .betweenIfPresent(PurchasereceiptJobMainDO::getCompleteTime, reqVO.getCompleteTime()) - .eqIfPresent(PurchasereceiptJobMainDO::getFromLocationTypes, reqVO.getFromLocationTypes()) - .eqIfPresent(PurchasereceiptJobMainDO::getToLocationTypes, reqVO.getToLocationTypes()) - .eqIfPresent(PurchasereceiptJobMainDO::getNumber, reqVO.getNumber()) - .eqIfPresent(PurchasereceiptJobMainDO::getBusinessType, reqVO.getBusinessType()) - .eqIfPresent(PurchasereceiptJobMainDO::getRemark, reqVO.getRemark()) - .betweenIfPresent(PurchasereceiptJobMainDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(PurchasereceiptJobMainDO::getCreator, reqVO.getCreator()) - .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyBatch, reqVO.getAllowModifyBatch()) - .eqIfPresent(PurchasereceiptJobMainDO::getFromAreaCodes, reqVO.getFromAreaCodes()) - .eqIfPresent(PurchasereceiptJobMainDO::getToAreaCodes, reqVO.getToAreaCodes()) - .eqIfPresent(PurchasereceiptJobMainDO::getAutoComplete, reqVO.getAutoComplete()) - .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyLocation, reqVO.getAllowModifyLocation()) - .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyQty, reqVO.getAllowModifyQty()) - .eqIfPresent(PurchasereceiptJobMainDO::getAllowBiggerQty, reqVO.getAllowBiggerQty()) - .eqIfPresent(PurchasereceiptJobMainDO::getAllowSmallerQty, reqVO.getAllowSmallerQty()) - .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyInventoryStatus, reqVO.getAllowModifyInventoryStatus()) - .eqIfPresent(PurchasereceiptJobMainDO::getAllowContinuousScanning, reqVO.getAllowContinuousScanning()) - .eqIfPresent(PurchasereceiptJobMainDO::getAllowPartialComplete, reqVO.getAllowPartialComplete()) - .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber()) - .orderByDesc(PurchasereceiptJobMainDO::getId)); - } - default List getPurchasereceiptJobMainSenior(PurchasereceiptJobMainRespVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(PurchasereceiptJobMainDO::getRequestNumber, reqVO.getRequestNumber()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusEnum.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusEnum.java index c6582b8f..526fefed 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusEnum.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusEnum.java @@ -1,10 +1,10 @@ package com.win.module.wms.enums.job; public enum JobStatusEnum { - PROCESSING(1), // 处理中 - PARTIALLY_COMPLETED(2), // 部分完成 + PENDING(1), // 待处理 + PROCESSING(2), // 进行中 COMPLETED(3), // 完成 - TERMINATION(4), // 中止 + CLOSED(4), // 关闭 ; private final Integer code; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusState.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusState.java index 829f9ee0..67ce9957 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusState.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusState.java @@ -34,12 +34,12 @@ public class JobStatusState { } /** - * 执行 + * 承接 * @return */ - public boolean doing() { - if(this.jobStatusEnum.getCode() == JobStatusEnum.PROCESSING.getCode()) { - this.jobStatusEnum = JobStatusEnum.PARTIALLY_COMPLETED; + public boolean accept() { + if(this.jobStatusEnum.getCode() == JobStatusEnum.PENDING.getCode()) { + this.jobStatusEnum = JobStatusEnum.PROCESSING; return Boolean.TRUE; } else { return Boolean.FALSE; @@ -47,12 +47,12 @@ public class JobStatusState { } /** - * 完成 + * 放弃 * @return */ - public boolean done() { - if(this.jobStatusEnum.getCode() == JobStatusEnum.PROCESSING.getCode() || this.jobStatusEnum.getCode() == JobStatusEnum.PARTIALLY_COMPLETED.getCode()) { - this.jobStatusEnum = JobStatusEnum.COMPLETED; + public boolean abandon() { + if(this.jobStatusEnum.getCode() == JobStatusEnum.PROCESSING.getCode()) { + this.jobStatusEnum = JobStatusEnum.PENDING; return Boolean.TRUE; } else { return Boolean.FALSE; @@ -60,12 +60,12 @@ public class JobStatusState { } /** - * 中止 + * 执行 * @return */ - public boolean abort() { - if(this.jobStatusEnum.getCode() == JobStatusEnum.PROCESSING.getCode() || this.jobStatusEnum.getCode() == JobStatusEnum.PARTIALLY_COMPLETED.getCode()) { - this.jobStatusEnum = JobStatusEnum.TERMINATION; + public boolean execute() { + if(this.jobStatusEnum.getCode() == JobStatusEnum.PROCESSING.getCode()) { + this.jobStatusEnum = JobStatusEnum.COMPLETED; return Boolean.TRUE; } else { return Boolean.FALSE; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/order/OrderStatusEnum.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/order/OrderStatusEnum.java new file mode 100644 index 00000000..2075345c --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/order/OrderStatusEnum.java @@ -0,0 +1,33 @@ +package com.win.module.wms.enums.order; + +public enum OrderStatusEnum { + + READY(1), // 准备 + PUBLISHED(2), // 发布 + CLOSED(3), // 关闭 + COMPLETED(4), // 已完成 + ; + private final Integer code; + + OrderStatusEnum(int code) { + this.code = code; + } + + public int getCode() { + return code; + } + + /** + * 用状态值获取枚举 + * @param status + * @return + */ + static OrderStatusEnum getJobStatusEnum(int status) { + for (OrderStatusEnum jobStatusEnum : values()) { + if (jobStatusEnum.getCode() == status) { + return jobStatusEnum; + } + } + return READY; + } +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/order/OrderStatusState.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/order/OrderStatusState.java new file mode 100644 index 00000000..129062c5 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/order/OrderStatusState.java @@ -0,0 +1,96 @@ +package com.win.module.wms.enums.order; + +/** + * 订单状态机 + */ +public class OrderStatusState { + + /** + * 当前状态枚举 + */ + private OrderStatusEnum orderStatusEnum; + + /** + * 构造函数,默认创建 + */ + public OrderStatusState() { + this.orderStatusEnum = OrderStatusEnum.READY; + } + + /** + * 构造函数,当前状态 + * @param status + */ + public OrderStatusState(int status) { + this.orderStatusEnum = OrderStatusEnum.getJobStatusEnum(status); + } + + /** + * 构造函数,当前状态枚举 + * @param requestStatusEnum + */ + public OrderStatusState(OrderStatusEnum requestStatusEnum) { + this.orderStatusEnum = requestStatusEnum; + } + + /** + * 发布 + * @return + */ + public boolean publish() { + if(this.orderStatusEnum.getCode() == OrderStatusEnum.READY.getCode()) { + this.orderStatusEnum = OrderStatusEnum.PUBLISHED; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + /** + * 下架 + * @return + */ + public boolean withdraw() { + if(this.orderStatusEnum.getCode() == OrderStatusEnum.PUBLISHED.getCode()) { + this.orderStatusEnum = OrderStatusEnum.READY; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + /** + * 关闭 + * @return + */ + public boolean close() { + if(this.orderStatusEnum.getCode() == OrderStatusEnum.READY.getCode()) { + this.orderStatusEnum = OrderStatusEnum.CLOSED; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + /** + * 打开 + * @return + */ + public boolean open() { + if(this.orderStatusEnum.getCode() == OrderStatusEnum.CLOSED.getCode()) { + this.orderStatusEnum = OrderStatusEnum.READY; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + /** + * 获取可执行的状态机 + * @return + */ + public OrderStatusEnum getState() { + return orderStatusEnum; + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/plan/PlanStatusEnum.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/plan/PlanStatusEnum.java new file mode 100644 index 00000000..2ee174a1 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/plan/PlanStatusEnum.java @@ -0,0 +1,36 @@ +package com.win.module.wms.enums.plan; + +public enum PlanStatusEnum { + + NEW(1), // 新增 + REVIEWING(2), // 审批中 + AGREED(3), // 审批通过 + REFUSED(4), // 审批驳回 + CLOSED(5), // 关闭 + PUBLISHED(6), // 发布 + COMPLETED(7), // 已完成 + ; + private final Integer code; + + PlanStatusEnum(int code) { + this.code = code; + } + + public int getCode() { + return code; + } + + /** + * 用状态值获取枚举 + * @param status + * @return + */ + static PlanStatusEnum getJobStatusEnum(int status) { + for (PlanStatusEnum jobStatusEnum : values()) { + if (jobStatusEnum.getCode() == status) { + return jobStatusEnum; + } + } + return NEW; + } +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/plan/PlanStatusState.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/plan/PlanStatusState.java new file mode 100644 index 00000000..f24926b6 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/plan/PlanStatusState.java @@ -0,0 +1,122 @@ +package com.win.module.wms.enums.plan; + +/** + * 订单状态机 + */ +public class PlanStatusState { + + /** + * 当前状态枚举 + */ + private PlanStatusEnum orderStatusEnum; + + /** + * 构造函数,默认创建 + */ + public PlanStatusState() { + this.orderStatusEnum = PlanStatusEnum.NEW; + } + + /** + * 构造函数,当前状态 + * @param status + */ + public PlanStatusState(int status) { + this.orderStatusEnum = PlanStatusEnum.getJobStatusEnum(status); + } + + /** + * 构造函数,当前状态枚举 + * @param requestStatusEnum + */ + public PlanStatusState(PlanStatusEnum requestStatusEnum) { + this.orderStatusEnum = requestStatusEnum; + } + + /** + * 提交 + * @return + */ + public boolean submit() { + if(this.orderStatusEnum.getCode() == PlanStatusEnum.NEW.getCode()) { + this.orderStatusEnum = PlanStatusEnum.REVIEWING; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + /** + * 审批驳回 + * @return + */ + public boolean reject() { + if(this.orderStatusEnum.getCode() == PlanStatusEnum.REVIEWING.getCode()) { + this.orderStatusEnum = PlanStatusEnum.REFUSED; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + /** + * 审批通过 + * @return + */ + public boolean agree() { + if(this.orderStatusEnum.getCode() == PlanStatusEnum.REVIEWING.getCode()) { + this.orderStatusEnum = PlanStatusEnum.AGREED; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + /** + * 关闭 + * @return + */ + public boolean close() { + if(this.orderStatusEnum.getCode() == PlanStatusEnum.NEW.getCode() || this.orderStatusEnum.getCode() == PlanStatusEnum.REVIEWING.getCode() || this.orderStatusEnum.getCode() == PlanStatusEnum.AGREED.getCode() || this.orderStatusEnum.getCode() == PlanStatusEnum.PUBLISHED.getCode()) { + this.orderStatusEnum = PlanStatusEnum.CLOSED; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + /** + * 审批通过 + * @return + */ + public boolean resetting() { + if(this.orderStatusEnum.getCode() == PlanStatusEnum.REFUSED.getCode()) { + this.orderStatusEnum = PlanStatusEnum.NEW; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + /** + * 执行 + * @return + */ + public boolean execute() { + if(this.orderStatusEnum.getCode() == PlanStatusEnum.PUBLISHED.getCode()) { + this.orderStatusEnum = PlanStatusEnum.COMPLETED; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + /** + * 获取可执行的状态机 + * @return + */ + public PlanStatusEnum getState() { + return orderStatusEnum; + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusEnum.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusEnum.java index e1c24291..ea5947b0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusEnum.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusEnum.java @@ -2,15 +2,15 @@ package com.win.module.wms.enums.request; public enum RequestStatusEnum { - NEW(0), // 新增 - APPROVAL(1), // 审批中 - PASS(2), // 审批通过 - REJECT(3), // 审批驳回 - CLOSED(4), // 关闭 - PROCESSING(5), // 处理中 - PARTIALLY_COMPLETED(6), // 部分完成 - COMPLETED(7), // 已完成 - TERMINATION(8), // 中止 + NEW(1), // 新增 + REVIEWING(2), // 审批中 + AGREED(3), // 审批通过 + REFUSED(4), // 审批驳回 + CLOSED(5), // 关闭 + HANDLING(6), // 处理中 + PARTIAL(7), // 部分完成 + COMPLETED(8), // 已完成 + ABORT(9), // 中止 ; private final Integer code; @@ -27,7 +27,7 @@ public enum RequestStatusEnum { * @param status * @return */ - static RequestStatusEnum getJobStatusEnum(int status) { + static RequestStatusEnum getRequestStatusEnum(int status) { for (RequestStatusEnum jobStatusEnum : values()) { if (jobStatusEnum.getCode() == status) { return jobStatusEnum; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java index f8a9d992..9c1180c4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java @@ -24,7 +24,7 @@ public class RequestStatusState { * @param status */ public RequestStatusState(int status) { - this.requestStatusEnum = RequestStatusEnum.getJobStatusEnum(status); + this.requestStatusEnum = RequestStatusEnum.getRequestStatusEnum(status); } /** @@ -41,11 +41,11 @@ public class RequestStatusState { */ public boolean newObject(RequestsettingDO requestsettingDO) { if("TRUE".equals(requestsettingDO.getAutoCommit())) { - this.requestStatusEnum = RequestStatusEnum.APPROVAL; + this.requestStatusEnum = RequestStatusEnum.REVIEWING; if("TRUE".equals(requestsettingDO.getAutoAgree())) { - this.requestStatusEnum = RequestStatusEnum.PASS; + this.requestStatusEnum = RequestStatusEnum.AGREED; if("TRUE".equals(requestsettingDO.getAutoExecute())) { - this.requestStatusEnum = RequestStatusEnum.PROCESSING; + this.requestStatusEnum = RequestStatusEnum.HANDLING; } } } @@ -58,11 +58,11 @@ public class RequestStatusState { */ public boolean submit(RequestsettingDO requestsettingDO) { if(this.requestStatusEnum.getCode() == RequestStatusEnum.NEW.getCode()) { - this.requestStatusEnum = RequestStatusEnum.APPROVAL; + this.requestStatusEnum = RequestStatusEnum.REVIEWING; if("TRUE".equals(requestsettingDO.getAutoAgree())) { - this.requestStatusEnum = RequestStatusEnum.PASS; + this.requestStatusEnum = RequestStatusEnum.AGREED; if("TRUE".equals(requestsettingDO.getAutoExecute())) { - this.requestStatusEnum = RequestStatusEnum.PROCESSING; + this.requestStatusEnum = RequestStatusEnum.HANDLING; } } return Boolean.TRUE; @@ -76,10 +76,10 @@ public class RequestStatusState { * @return */ public boolean approval(RequestsettingDO requestsettingDO) { - if(this.requestStatusEnum.getCode() == RequestStatusEnum.APPROVAL.getCode()) { - this.requestStatusEnum = RequestStatusEnum.PASS; + if(this.requestStatusEnum.getCode() == RequestStatusEnum.REVIEWING.getCode()) { + this.requestStatusEnum = RequestStatusEnum.AGREED; if("TRUE".equals(requestsettingDO.getAutoExecute())) { - this.requestStatusEnum = RequestStatusEnum.PROCESSING; + this.requestStatusEnum = RequestStatusEnum.HANDLING; } return Boolean.TRUE; } else { @@ -92,8 +92,8 @@ public class RequestStatusState { * @return */ public boolean reject() { - if(this.requestStatusEnum.getCode() == RequestStatusEnum.APPROVAL.getCode()) { - this.requestStatusEnum = RequestStatusEnum.PASS; + if(this.requestStatusEnum.getCode() == RequestStatusEnum.REVIEWING.getCode()) { + this.requestStatusEnum = RequestStatusEnum.AGREED; return Boolean.TRUE; } else { return Boolean.FALSE; @@ -104,9 +104,9 @@ public class RequestStatusState { * 关闭,其余操作在任务中执行 * @return */ - public boolean closed() { - if(this.requestStatusEnum.getCode() == RequestStatusEnum.NEW.getCode() || this.requestStatusEnum.getCode() == RequestStatusEnum.APPROVAL.getCode() || this.requestStatusEnum.getCode() == RequestStatusEnum.PASS.getCode()) { - this.requestStatusEnum = RequestStatusEnum.PASS; + public boolean close() { + if(this.requestStatusEnum.getCode() == RequestStatusEnum.NEW.getCode() || this.requestStatusEnum.getCode() == RequestStatusEnum.REVIEWING.getCode() || this.requestStatusEnum.getCode() == RequestStatusEnum.AGREED.getCode()) { + this.requestStatusEnum = RequestStatusEnum.AGREED; return Boolean.TRUE; } else { return Boolean.FALSE; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java index 43edbd22..270729b9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java @@ -83,13 +83,5 @@ public interface PurchasereceiptJobMainService { */ public PurchasereceiptJobMainDO purchasereceiptJobMainDoStatusRight(String pnumber, String pstatus); - /** - * 获得采购收货任务主分页根据多个状态选择以及是否今日数据 - * - * @param pageReqVO 分页查询 - * @return 采购收货任务主分页 - */ - PageResult getPurchasereceiptJobMainByStatusPage(PurchasereceiptJobMainRespTypesVO pageReqVO); - List getPurchasereceiptJobMainSenior(PurchasereceiptJobMainRespVO respVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java index 0e071d5d..3c071cde 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java @@ -117,11 +117,6 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain } } - @Override - public PageResult getPurchasereceiptJobMainByStatusPage(PurchasereceiptJobMainRespTypesVO pageReqVO) { - return purchasereceiptJobMainMapper.selectByStatusPage(pageReqVO); - } - @Override public List getPurchasereceiptJobMainSenior(PurchasereceiptJobMainRespVO respVO) { return purchasereceiptJobMainMapper.getPurchasereceiptJobMainSenior(respVO);