懒羊羊
2023-12-09 f2d05208cfca4f62f85ffa1616304b4da697f5d2
Merge remote-tracking branch 'origin/master'
已修改243个文件
已添加24个文件
4117 ■■■■■ 文件已修改
jcdm-admin/src/main/java/com/jcdm/MesApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-admin/src/main/resources/application-druid.yml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/annotation/Anonymous.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/annotation/DataScope.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/annotation/DataSource.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/annotation/Excel.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/annotation/Excels.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/annotation/Log.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/annotation/RateLimiter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/annotation/RepeatSubmit.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/config/MesConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/constant/CacheConstants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/constant/Constants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/constant/GenConstants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/constant/HttpStatus.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/constant/ScheduleConstants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/constant/UserConstants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/controller/BaseController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/AjaxResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/BaseEntity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/R.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/TreeEntity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/TreeSelect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysDept.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysDictData.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysDictType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysMenu.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysRole.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysUser.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/model/LoginBody.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/model/LoginUser.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/domain/model/RegisterBody.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/page/PageDomain.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/page/TableDataInfo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/page/TableSupport.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/redis/RedisCache.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/text/CharsetKit.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/text/Convert.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/core/text/StrFormatter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/enums/BusinessStatus.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/enums/BusinessType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/enums/DataSourceType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/enums/HttpMethod.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/enums/LimitType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/enums/OperatorType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/enums/UserStatus.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/DemoModeException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/GlobalException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/ServiceException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/UtilException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/base/BaseException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/file/FileException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/file/FileNameLengthLimitExceededException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/file/FileSizeLimitExceededException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/file/FileUploadException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/file/InvalidExtensionException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/job/TaskException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/user/BlackListException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/user/CaptchaException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/user/CaptchaExpireException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/user/UserException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/user/UserNotExistsException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/user/UserPasswordNotMatchException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/exception/user/UserPasswordRetryLimitExceedException.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/filter/PropertyPreExcludeFilter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/filter/RepeatableFilter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/filter/RepeatedlyRequestWrapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/filter/XssFilter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/filter/XssHttpServletRequestWrapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/Arith.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/DateUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/DictUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/ExceptionUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/LogUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/MessageUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/PageUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/SecurityUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/ServletUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/StringUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/Threads.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/bean/BeanUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/bean/BeanValidators.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/file/FileTypeUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/file/FileUploadUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/file/FileUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/file/ImageUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/file/MimeTypeUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/html/EscapeUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/html/HTMLFilter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/http/HttpHelper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/http/HttpUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/ip/AddressUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/ip/IpUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/poi/ExcelHandlerAdapter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/poi/ExcelUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/reflect/ReflectUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/sign/Base64.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/sign/Md5Utils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/spring/SpringUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/sql/SqlUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/uuid/IdUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/uuid/Seq.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/utils/uuid/UUID.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/xss/Xss.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-common/src/main/java/com/jcdm/common/xss/XssValidator.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/aspectj/DataScopeAspect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/aspectj/DataSourceAspect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/aspectj/LogAspect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/aspectj/RateLimiterAspect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/ApplicationConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/CaptchaConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/DruidConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/FastJson2JsonRedisSerializer.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/FilterConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/KaptchaTextCreator.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/MyBatisConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/RedisConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/ResourcesConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/SecurityConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/ServerConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/ThreadPoolConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/properties/DruidProperties.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/properties/PermitAllUrlProperties.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/datasource/DynamicDataSource.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/datasource/DynamicDataSourceContextHolder.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/interceptor/RepeatSubmitInterceptor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/interceptor/impl/SameUrlDataInterceptor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/manager/AsyncManager.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/manager/ShutdownManager.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/manager/factory/AsyncFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/security/context/AuthenticationContextHolder.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/security/context/PermissionContextHolder.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/security/filter/JwtAuthenticationTokenFilter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/security/handle/AuthenticationEntryPointImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/security/handle/LogoutSuccessHandlerImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/Server.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/server/Cpu.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/server/Jvm.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/server/Mem.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/server/Sys.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/server/SysFile.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/exception/GlobalExceptionHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/service/PermissionService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/service/SysLoginService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/service/SysPasswordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/service/SysPermissionService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/service/SysRegisterService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/service/TokenService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/web/service/UserDetailsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/config/GenConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/controller/GenController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/domain/GenTable.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/domain/GenTableColumn.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/mapper/GenTableColumnMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/mapper/GenTableMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/service/GenTableColumnServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/service/GenTableServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/service/IGenTableColumnService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/service/IGenTableService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/util/GenUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/util/VelocityInitializer.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-generator/src/main/java/com/jcdm/generator/util/VelocityUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/bom/controller/BsProductBomInfoController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/bom/domain/BsProductBomInfo.java 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/bom/mapper/BsProductBomInfoMapper.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/bom/service/IBsProductBomInfoService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/bom/service/impl/BsProductBomInfoServiceImpl.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/bomchild/controller/BsProductBomChildInfoController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/bomchild/domain/BsProductBomChildInfo.java 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/bomchild/mapper/BsProductBomChildInfoMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/bomchild/service/IBsProductBomChildInfoService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/bomchild/service/impl/BsProductBomChildInfoServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/material/controller/BsMaterialInfoController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/material/domain/BsMaterialInfo.java 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/material/mapper/BsMaterialInfoMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/material/service/IBsMaterialInfoService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/material/service/impl/BsMaterialInfoServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/workshop/controller/BsWorkshopInfoController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/workshop/domain/BsWorkshopInfo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/workshop/mapper/BsWorkshopInfoMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/workshop/service/IBsWorkshopInfoService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/workshop/service/impl/BsWorkshopInfoServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/bs/bom/BsProductBomInfoMapper.xml 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/bs/bomchild/BsProductBomChildInfoMapper.xml 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/bs/material/BsMaterialInfoMapper.xml 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/config/ScheduleConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/controller/SysJobController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/controller/SysJobLogController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/domain/SysJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/domain/SysJobLog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/mapper/SysJobLogMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/mapper/SysJobMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/service/ISysJobLogService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/service/ISysJobService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/service/impl/SysJobLogServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/service/impl/SysJobServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/util/AbstractQuartzJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/util/CronUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/util/JobInvokeUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/util/QuartzDisallowConcurrentExecution.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/util/QuartzJobExecution.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/util/ScheduleUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysCache.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysLogininfor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysNotice.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysOperLog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysPost.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysRoleDept.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysRoleMenu.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysUserOnline.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysUserPost.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/SysUserRole.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/vo/MetaVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/domain/vo/RouterVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysConfigMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysDeptMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysDictDataMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysDictTypeMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysLogininforMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysMenuMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysNoticeMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysOperLogMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysPostMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysRoleDeptMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysRoleMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysRoleMenuMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysUserMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysUserPostMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/mapper/SysUserRoleMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysConfigService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysDeptService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysDictDataService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysDictTypeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysLogininforService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysMenuService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysNoticeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysOperLogService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysPostService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysRoleService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysUserOnlineService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/ISysUserService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysConfigServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysDeptServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysDictDataServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysDictTypeServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysLogininforServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysMenuServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysNoticeServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysOperLogServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysPostServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysRoleServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysUserOnlineServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysUserServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/bs/bom/bom.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/bs/bomchild/bomchild.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/bs/material/material.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/components/RuoYi/Git/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/directive/dialog/dragWidth.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/bs/bom/index.vue 509 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/bs/bomchild/index.vue 364 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/bs/material/index.vue 528 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/tool/gen/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/vue.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-admin/src/main/java/com/jcdm/MesApplication.java
@@ -9,6 +9,8 @@
 * 
 * @author jc
 */
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class MesApplication
{
jcdm-admin/src/main/resources/application-druid.yml
@@ -6,7 +6,7 @@
#        druid:
#            # ä¸»åº“数据源
#            master:
#                url: jdbc:mysql://localhost:3306/jcdm-mes-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#                url: jdbc:mysql://192.168.0.189:3306/jcdm-mes-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#                username: root
#                password: root
    # æ•°æ®æºé…ç½®
@@ -23,9 +23,9 @@
            slave:
                # ä»Žæ•°æ®æºå¼€å…³/默认关闭
                enabled: false
                url:
                username:
                password:
                url:
                username:
                password:
            # åˆå§‹è¿žæŽ¥æ•°
            initialSize: 5
            # æœ€å°è¿žæŽ¥æ± æ•°é‡
@@ -50,7 +50,7 @@
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            webStatFilter:
            webStatFilter:
                enabled: true
            statViewServlet:
                enabled: true
jcdm-admin/src/main/resources/application.yml
@@ -18,7 +18,7 @@
# å¼€å‘环境配置
server:
  # æœåŠ¡å™¨çš„HTTP端口,默认为8080
  port: 8080
  port: 8081
  servlet:
    # åº”用的访问路径
    context-path: /
jcdm-common/src/main/java/com/jcdm/common/annotation/Anonymous.java
@@ -9,7 +9,7 @@
/**
 * åŒ¿åè®¿é—®ä¸é‰´æƒæ³¨è§£
 * 
 * @author ruoyi
 * @author jc
 */
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
jcdm-common/src/main/java/com/jcdm/common/annotation/DataScope.java
@@ -9,7 +9,7 @@
/**
 * æ•°æ®æƒé™è¿‡æ»¤æ³¨è§£
 * 
 * @author ruoyi
 * @author jc
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
jcdm-common/src/main/java/com/jcdm/common/annotation/DataSource.java
@@ -13,7 +13,7 @@
 *
 * ä¼˜å…ˆçº§ï¼šå…ˆæ–¹æ³•ï¼ŒåŽç±»ï¼Œå¦‚果方法覆盖了类上的数据源类型,以方法的为准,否则以类上的为准
 *
 * @author ruoyi
 * @author jc
 */
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
jcdm-common/src/main/java/com/jcdm/common/annotation/Excel.java
@@ -12,7 +12,7 @@
/**
 * è‡ªå®šä¹‰å¯¼å‡ºExcel数据注解
 * 
 * @author ruoyi
 * @author jc
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
jcdm-common/src/main/java/com/jcdm/common/annotation/Excels.java
@@ -8,7 +8,7 @@
/**
 * Excel注解集
 * 
 * @author ruoyi
 * @author jc
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
jcdm-common/src/main/java/com/jcdm/common/annotation/Log.java
@@ -11,7 +11,7 @@
/**
 * è‡ªå®šä¹‰æ“ä½œæ—¥å¿—记录注解
 * 
 * @author ruoyi
 * @author jc
 *
 */
@Target({ ElementType.PARAMETER, ElementType.METHOD })
jcdm-common/src/main/java/com/jcdm/common/annotation/RateLimiter.java
@@ -11,7 +11,7 @@
/**
 * é™æµæ³¨è§£
 * 
 * @author ruoyi
 * @author jc
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
jcdm-common/src/main/java/com/jcdm/common/annotation/RepeatSubmit.java
@@ -10,7 +10,7 @@
/**
 * è‡ªå®šä¹‰æ³¨è§£é˜²æ­¢è¡¨å•é‡å¤æäº¤
 * 
 * @author ruoyi
 * @author jc
 *
 */
@Inherited
jcdm-common/src/main/java/com/jcdm/common/config/MesConfig.java
@@ -6,7 +6,7 @@
/**
 * è¯»å–项目相关配置
 * 
 * @author ruoyi
 * @author jc
 */
@Component
@ConfigurationProperties(prefix = "ruoyi")
jcdm-common/src/main/java/com/jcdm/common/constant/CacheConstants.java
@@ -3,7 +3,7 @@
/**
 * ç¼“存的key å¸¸é‡
 * 
 * @author ruoyi
 * @author jc
 */
public class CacheConstants
{
jcdm-common/src/main/java/com/jcdm/common/constant/Constants.java
@@ -5,7 +5,7 @@
/**
 * é€šç”¨å¸¸é‡ä¿¡æ¯
 * 
 * @author ruoyi
 * @author jc
 */
public class Constants
{
jcdm-common/src/main/java/com/jcdm/common/constant/GenConstants.java
@@ -3,7 +3,7 @@
/**
 * ä»£ç ç”Ÿæˆé€šç”¨å¸¸é‡
 * 
 * @author ruoyi
 * @author jc
 */
public class GenConstants
{
jcdm-common/src/main/java/com/jcdm/common/constant/HttpStatus.java
@@ -3,7 +3,7 @@
/**
 * è¿”回状态码
 * 
 * @author ruoyi
 * @author jc
 */
public class HttpStatus
{
jcdm-common/src/main/java/com/jcdm/common/constant/ScheduleConstants.java
@@ -3,7 +3,7 @@
/**
 * ä»»åŠ¡è°ƒåº¦é€šç”¨å¸¸é‡
 * 
 * @author ruoyi
 * @author jc
 */
public class ScheduleConstants
{
jcdm-common/src/main/java/com/jcdm/common/constant/UserConstants.java
@@ -3,7 +3,7 @@
/**
 * ç”¨æˆ·å¸¸é‡ä¿¡æ¯
 * 
 * @author ruoyi
 * @author jc
 */
public class UserConstants
{
jcdm-common/src/main/java/com/jcdm/common/core/controller/BaseController.java
@@ -24,7 +24,7 @@
/**
 * web层通用数据处理
 * 
 * @author ruoyi
 * @author jc
 */
public class BaseController
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/AjaxResult.java
@@ -8,7 +8,7 @@
/**
 * æ“ä½œæ¶ˆæ¯æé†’
 * 
 * @author ruoyi
 * @author jc
 */
public class AjaxResult extends HashMap<String, Object>
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/BaseEntity.java
@@ -11,7 +11,7 @@
/**
 * Entity基类
 * 
 * @author ruoyi
 * @author jc
 */
public class BaseEntity implements Serializable
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/R.java
@@ -6,7 +6,7 @@
/**
 * å“åº”信息主体
 *
 * @author ruoyi
 * @author jc
 */
public class R<T> implements Serializable
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/TreeEntity.java
@@ -6,7 +6,7 @@
/**
 * Tree基类
 * 
 * @author ruoyi
 * @author jc
 */
public class TreeEntity extends BaseEntity
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/TreeSelect.java
@@ -10,7 +10,7 @@
/**
 * Treeselect树结构实体类
 * 
 * @author ruoyi
 * @author jc
 */
public class TreeSelect implements Serializable
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysDept.java
@@ -13,7 +13,7 @@
/**
 * éƒ¨é—¨è¡¨ sys_dept
 * 
 * @author ruoyi
 * @author jc
 */
public class SysDept extends BaseEntity
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysDictData.java
@@ -12,7 +12,7 @@
/**
 * å­—典数据表 sys_dict_data
 * 
 * @author ruoyi
 * @author jc
 */
public class SysDictData extends BaseEntity
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysDictType.java
@@ -12,7 +12,7 @@
/**
 * å­—典类型表 sys_dict_type
 * 
 * @author ruoyi
 * @author jc
 */
public class SysDictType extends BaseEntity
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysMenu.java
@@ -12,7 +12,7 @@
/**
 * èœå•æƒé™è¡¨ sys_menu
 * 
 * @author ruoyi
 * @author jc
 */
public class SysMenu extends BaseEntity
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysRole.java
@@ -13,7 +13,7 @@
/**
 * è§’色表 sys_role
 * 
 * @author ruoyi
 * @author jc
 */
public class SysRole extends BaseEntity
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/entity/SysUser.java
@@ -15,7 +15,7 @@
/**
 * ç”¨æˆ·å¯¹è±¡ sys_user
 * 
 * @author ruoyi
 * @author jc
 */
public class SysUser extends BaseEntity
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/model/LoginBody.java
@@ -3,7 +3,7 @@
/**
 * ç”¨æˆ·ç™»å½•å¯¹è±¡
 * 
 * @author ruoyi
 * @author jc
 */
public class LoginBody
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/model/LoginUser.java
@@ -10,7 +10,7 @@
/**
 * ç™»å½•ç”¨æˆ·èº«ä»½æƒé™
 * 
 * @author ruoyi
 * @author jc
 */
public class LoginUser implements UserDetails
{
jcdm-common/src/main/java/com/jcdm/common/core/domain/model/RegisterBody.java
@@ -3,7 +3,7 @@
/**
 * ç”¨æˆ·æ³¨å†Œå¯¹è±¡
 * 
 * @author ruoyi
 * @author jc
 */
public class RegisterBody extends LoginBody
{
jcdm-common/src/main/java/com/jcdm/common/core/page/PageDomain.java
@@ -5,7 +5,7 @@
/**
 * åˆ†é¡µæ•°æ®
 * 
 * @author ruoyi
 * @author jc
 */
public class PageDomain
{
jcdm-common/src/main/java/com/jcdm/common/core/page/TableDataInfo.java
@@ -6,7 +6,7 @@
/**
 * è¡¨æ ¼åˆ†é¡µæ•°æ®å¯¹è±¡
 * 
 * @author ruoyi
 * @author jc
 */
public class TableDataInfo implements Serializable
{
jcdm-common/src/main/java/com/jcdm/common/core/page/TableSupport.java
@@ -6,7 +6,7 @@
/**
 * è¡¨æ ¼æ•°æ®å¤„理
 * 
 * @author ruoyi
 * @author jc
 */
public class TableSupport
{
jcdm-common/src/main/java/com/jcdm/common/core/redis/RedisCache.java
@@ -10,7 +10,7 @@
/**
 * spring redis å·¥å…·ç±»
 *
 * @author ruoyi
 * @author jc
 **/
@SuppressWarnings(value = { "unchecked", "rawtypes" })
@Component
jcdm-common/src/main/java/com/jcdm/common/core/text/CharsetKit.java
@@ -7,7 +7,7 @@
/**
 * å­—符集工具类
 * 
 * @author ruoyi
 * @author jc
 */
public class CharsetKit
{
jcdm-common/src/main/java/com/jcdm/common/core/text/Convert.java
@@ -13,7 +13,7 @@
/**
 * ç±»åž‹è½¬æ¢å™¨
 *
 * @author ruoyi
 * @author jc
 */
public class Convert
{
jcdm-common/src/main/java/com/jcdm/common/core/text/StrFormatter.java
@@ -5,7 +5,7 @@
/**
 * å­—符串格式化
 * 
 * @author ruoyi
 * @author jc
 */
public class StrFormatter
{
jcdm-common/src/main/java/com/jcdm/common/enums/BusinessStatus.java
@@ -3,7 +3,7 @@
/**
 * æ“ä½œçŠ¶æ€
 * 
 * @author ruoyi
 * @author jc
 *
 */
public enum BusinessStatus
jcdm-common/src/main/java/com/jcdm/common/enums/BusinessType.java
@@ -3,7 +3,7 @@
/**
 * ä¸šåŠ¡æ“ä½œç±»åž‹
 * 
 * @author ruoyi
 * @author jc
 */
public enum BusinessType
{
jcdm-common/src/main/java/com/jcdm/common/enums/DataSourceType.java
@@ -3,7 +3,7 @@
/**
 * æ•°æ®æº
 * 
 * @author ruoyi
 * @author jc
 */
public enum DataSourceType
{
jcdm-common/src/main/java/com/jcdm/common/enums/HttpMethod.java
@@ -7,7 +7,7 @@
/**
 * è¯·æ±‚方式
 *
 * @author ruoyi
 * @author jc
 */
public enum HttpMethod
{
jcdm-common/src/main/java/com/jcdm/common/enums/LimitType.java
@@ -3,7 +3,7 @@
/**
 * é™æµç±»åž‹
 *
 * @author ruoyi
 * @author jc
 */
public enum LimitType
jcdm-common/src/main/java/com/jcdm/common/enums/OperatorType.java
@@ -3,7 +3,7 @@
/**
 * æ“ä½œäººç±»åˆ«
 * 
 * @author ruoyi
 * @author jc
 */
public enum OperatorType
{
jcdm-common/src/main/java/com/jcdm/common/enums/UserStatus.java
@@ -3,7 +3,7 @@
/**
 * ç”¨æˆ·çŠ¶æ€
 * 
 * @author ruoyi
 * @author jc
 */
public enum UserStatus
{
jcdm-common/src/main/java/com/jcdm/common/exception/DemoModeException.java
@@ -3,7 +3,7 @@
/**
 * æ¼”示模式异常
 * 
 * @author ruoyi
 * @author jc
 */
public class DemoModeException extends RuntimeException
{
jcdm-common/src/main/java/com/jcdm/common/exception/GlobalException.java
@@ -3,7 +3,7 @@
/**
 * å…¨å±€å¼‚常
 * 
 * @author ruoyi
 * @author jc
 */
public class GlobalException extends RuntimeException
{
jcdm-common/src/main/java/com/jcdm/common/exception/ServiceException.java
@@ -3,7 +3,7 @@
/**
 * ä¸šåŠ¡å¼‚常
 * 
 * @author ruoyi
 * @author jc
 */
public final class ServiceException extends RuntimeException
{
jcdm-common/src/main/java/com/jcdm/common/exception/UtilException.java
@@ -3,7 +3,7 @@
/**
 * å·¥å…·ç±»å¼‚常
 * 
 * @author ruoyi
 * @author jc
 */
public class UtilException extends RuntimeException
{
jcdm-common/src/main/java/com/jcdm/common/exception/base/BaseException.java
@@ -6,7 +6,7 @@
/**
 * åŸºç¡€å¼‚常
 * 
 * @author ruoyi
 * @author jc
 */
public class BaseException extends RuntimeException
{
jcdm-common/src/main/java/com/jcdm/common/exception/file/FileException.java
@@ -5,7 +5,7 @@
/**
 * æ–‡ä»¶ä¿¡æ¯å¼‚常类
 * 
 * @author ruoyi
 * @author jc
 */
public class FileException extends BaseException
{
jcdm-common/src/main/java/com/jcdm/common/exception/file/FileNameLengthLimitExceededException.java
@@ -3,7 +3,7 @@
/**
 * æ–‡ä»¶åç§°è¶…长限制异常类
 * 
 * @author ruoyi
 * @author jc
 */
public class FileNameLengthLimitExceededException extends FileException
{
jcdm-common/src/main/java/com/jcdm/common/exception/file/FileSizeLimitExceededException.java
@@ -3,7 +3,7 @@
/**
 * æ–‡ä»¶åå¤§å°é™åˆ¶å¼‚常类
 * 
 * @author ruoyi
 * @author jc
 */
public class FileSizeLimitExceededException extends FileException
{
jcdm-common/src/main/java/com/jcdm/common/exception/file/FileUploadException.java
@@ -6,7 +6,7 @@
/**
 * æ–‡ä»¶ä¸Šä¼ å¼‚常类
 * 
 * @author ruoyi
 * @author jc
 */
public class FileUploadException extends Exception
{
jcdm-common/src/main/java/com/jcdm/common/exception/file/InvalidExtensionException.java
@@ -5,7 +5,7 @@
/**
 * æ–‡ä»¶ä¸Šä¼  è¯¯å¼‚常类
 * 
 * @author ruoyi
 * @author jc
 */
public class InvalidExtensionException extends FileUploadException
{
jcdm-common/src/main/java/com/jcdm/common/exception/job/TaskException.java
@@ -3,7 +3,7 @@
/**
 * è®¡åˆ’策略异常
 * 
 * @author ruoyi
 * @author jc
 */
public class TaskException extends Exception
{
jcdm-common/src/main/java/com/jcdm/common/exception/user/BlackListException.java
@@ -3,7 +3,7 @@
/**
 * é»‘名单IP异常类
 * 
 * @author ruoyi
 * @author jc
 */
public class BlackListException extends UserException
{
jcdm-common/src/main/java/com/jcdm/common/exception/user/CaptchaException.java
@@ -3,7 +3,7 @@
/**
 * éªŒè¯ç é”™è¯¯å¼‚常类
 * 
 * @author ruoyi
 * @author jc
 */
public class CaptchaException extends UserException
{
jcdm-common/src/main/java/com/jcdm/common/exception/user/CaptchaExpireException.java
@@ -3,7 +3,7 @@
/**
 * éªŒè¯ç å¤±æ•ˆå¼‚常类
 * 
 * @author ruoyi
 * @author jc
 */
public class CaptchaExpireException extends UserException
{
jcdm-common/src/main/java/com/jcdm/common/exception/user/UserException.java
@@ -5,7 +5,7 @@
/**
 * ç”¨æˆ·ä¿¡æ¯å¼‚常类
 * 
 * @author ruoyi
 * @author jc
 */
public class UserException extends BaseException
{
jcdm-common/src/main/java/com/jcdm/common/exception/user/UserNotExistsException.java
@@ -3,7 +3,7 @@
/**
 * ç”¨æˆ·ä¸å­˜åœ¨å¼‚常类
 * 
 * @author ruoyi
 * @author jc
 */
public class UserNotExistsException extends UserException
{
jcdm-common/src/main/java/com/jcdm/common/exception/user/UserPasswordNotMatchException.java
@@ -3,7 +3,7 @@
/**
 * ç”¨æˆ·å¯†ç ä¸æ­£ç¡®æˆ–不符合规范异常类
 * 
 * @author ruoyi
 * @author jc
 */
public class UserPasswordNotMatchException extends UserException
{
jcdm-common/src/main/java/com/jcdm/common/exception/user/UserPasswordRetryLimitExceedException.java
@@ -3,7 +3,7 @@
/**
 * ç”¨æˆ·é”™è¯¯æœ€å¤§æ¬¡æ•°å¼‚常类
 * 
 * @author ruoyi
 * @author jc
 */
public class UserPasswordRetryLimitExceedException extends UserException
{
jcdm-common/src/main/java/com/jcdm/common/filter/PropertyPreExcludeFilter.java
@@ -5,7 +5,7 @@
/**
 * æŽ’除JSON敏感属性
 * 
 * @author ruoyi
 * @author jc
 */
public class PropertyPreExcludeFilter extends SimplePropertyPreFilter
{
jcdm-common/src/main/java/com/jcdm/common/filter/RepeatableFilter.java
@@ -14,7 +14,7 @@
/**
 * Repeatable è¿‡æ»¤å™¨
 * 
 * @author ruoyi
 * @author jc
 */
public class RepeatableFilter implements Filter
{
jcdm-common/src/main/java/com/jcdm/common/filter/RepeatedlyRequestWrapper.java
@@ -15,7 +15,7 @@
/**
 * æž„建可重复读取inputStream的request
 * 
 * @author ruoyi
 * @author jc
 */
public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper
{
jcdm-common/src/main/java/com/jcdm/common/filter/XssFilter.java
@@ -17,7 +17,7 @@
/**
 * é˜²æ­¢XSS攻击的过滤器
 * 
 * @author ruoyi
 * @author jc
 */
public class XssFilter implements Filter
{
jcdm-common/src/main/java/com/jcdm/common/filter/XssHttpServletRequestWrapper.java
@@ -15,7 +15,7 @@
/**
 * XSS过滤处理
 * 
 * @author ruoyi
 * @author jc
 */
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper
{
jcdm-common/src/main/java/com/jcdm/common/utils/Arith.java
@@ -6,7 +6,7 @@
/**
 * ç²¾ç¡®çš„浮点数运算
 * 
 * @author ruoyi
 * @author jc
 */
public class Arith
{
jcdm-common/src/main/java/com/jcdm/common/utils/DateUtils.java
@@ -14,7 +14,7 @@
/**
 * æ—¶é—´å·¥å…·ç±»
 * 
 * @author ruoyi
 * @author jc
 */
public class DateUtils extends org.apache.commons.lang3.time.DateUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/DictUtils.java
@@ -13,7 +13,7 @@
/**
 * å­—典工具类
 * 
 * @author ruoyi
 * @author jc
 */
public class DictUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/ExceptionUtil.java
@@ -7,7 +7,7 @@
/**
 * é”™è¯¯ä¿¡æ¯å¤„理类。
 *
 * @author ruoyi
 * @author jc
 */
public class ExceptionUtil
{
jcdm-common/src/main/java/com/jcdm/common/utils/LogUtils.java
@@ -3,7 +3,7 @@
/**
 * å¤„理并记录日志文件
 * 
 * @author ruoyi
 * @author jc
 */
public class LogUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/MessageUtils.java
@@ -7,7 +7,7 @@
/**
 * èŽ·å–i18n资源文件
 * 
 * @author ruoyi
 * @author jc
 */
public class MessageUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/PageUtils.java
@@ -8,7 +8,7 @@
/**
 * åˆ†é¡µå·¥å…·ç±»
 * 
 * @author ruoyi
 * @author jc
 */
public class PageUtils extends PageHelper
{
jcdm-common/src/main/java/com/jcdm/common/utils/SecurityUtils.java
@@ -16,7 +16,7 @@
/**
 * å®‰å…¨æœåŠ¡å·¥å…·ç±»
 * 
 * @author ruoyi
 * @author jc
 */
public class SecurityUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/ServletUtils.java
@@ -20,7 +20,7 @@
/**
 * å®¢æˆ·ç«¯å·¥å…·ç±»
 * 
 * @author ruoyi
 * @author jc
 */
public class ServletUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/StringUtils.java
@@ -13,7 +13,7 @@
/**
 * å­—符串工具类
 * 
 * @author ruoyi
 * @author jc
 */
public class StringUtils extends org.apache.commons.lang3.StringUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/Threads.java
@@ -11,7 +11,7 @@
/**
 * çº¿ç¨‹ç›¸å…³å·¥å…·ç±».
 * 
 * @author ruoyi
 * @author jc
 */
public class Threads
{
jcdm-common/src/main/java/com/jcdm/common/utils/bean/BeanUtils.java
@@ -9,7 +9,7 @@
/**
 * Bean å·¥å…·ç±»
 * 
 * @author ruoyi
 * @author jc
 */
public class BeanUtils extends org.springframework.beans.BeanUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/bean/BeanValidators.java
@@ -8,7 +8,7 @@
/**
 * bean对象属性验证
 * 
 * @author ruoyi
 * @author jc
 */
public class BeanValidators
{
jcdm-common/src/main/java/com/jcdm/common/utils/file/FileTypeUtils.java
@@ -6,7 +6,7 @@
/**
 * æ–‡ä»¶ç±»åž‹å·¥å…·ç±»
 *
 * @author ruoyi
 * @author jc
 */
public class FileTypeUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/file/FileUploadUtils.java
@@ -18,7 +18,7 @@
/**
 * æ–‡ä»¶ä¸Šä¼ å·¥å…·ç±»
 *
 * @author ruoyi
 * @author jc
 */
public class FileUploadUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/file/FileUtils.java
@@ -22,7 +22,7 @@
/**
 * æ–‡ä»¶å¤„理工具类
 * 
 * @author ruoyi
 * @author jc
 */
public class FileUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/file/ImageUtils.java
@@ -16,7 +16,7 @@
/**
 * å›¾ç‰‡å¤„理工具类
 *
 * @author ruoyi
 * @author jc
 */
public class ImageUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/file/MimeTypeUtils.java
@@ -3,7 +3,7 @@
/**
 * åª’体类型工具类
 * 
 * @author ruoyi
 * @author jc
 */
public class MimeTypeUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/html/EscapeUtil.java
@@ -5,7 +5,7 @@
/**
 * è½¬ä¹‰å’Œåè½¬ä¹‰å·¥å…·ç±»
 * 
 * @author ruoyi
 * @author jc
 */
public class EscapeUtil
{
jcdm-common/src/main/java/com/jcdm/common/utils/html/HTMLFilter.java
@@ -13,7 +13,7 @@
/**
 * HTML过滤器,用于去除XSS漏洞隐患。
 *
 * @author ruoyi
 * @author jc
 */
public final class HTMLFilter
{
jcdm-common/src/main/java/com/jcdm/common/utils/http/HttpHelper.java
@@ -13,7 +13,7 @@
/**
 * é€šç”¨http工具封装
 * 
 * @author ruoyi
 * @author jc
 */
public class HttpHelper
{
jcdm-common/src/main/java/com/jcdm/common/utils/http/HttpUtils.java
@@ -25,7 +25,7 @@
/**
 * é€šç”¨http发送方法
 * 
 * @author ruoyi
 * @author jc
 */
public class HttpUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/ip/AddressUtils.java
@@ -12,7 +12,7 @@
/**
 * èŽ·å–地址类
 * 
 * @author ruoyi
 * @author jc
 */
public class AddressUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/ip/IpUtils.java
@@ -9,7 +9,7 @@
/**
 * èŽ·å–IP方法
 * 
 * @author ruoyi
 * @author jc
 */
public class IpUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/poi/ExcelHandlerAdapter.java
@@ -6,7 +6,7 @@
/**
 * Excel数据格式处理适配器
 * 
 * @author ruoyi
 * @author jc
 */
public interface ExcelHandlerAdapter
{
jcdm-common/src/main/java/com/jcdm/common/utils/poi/ExcelUtil.java
@@ -88,7 +88,7 @@
/**
 * Excel相关处理
 * 
 * @author ruoyi
 * @author jc
 */
public class ExcelUtil<T>
{
jcdm-common/src/main/java/com/jcdm/common/utils/reflect/ReflectUtils.java
@@ -18,7 +18,7 @@
/**
 * åå°„工具类. æä¾›è°ƒç”¨getter/setter方法, è®¿é—®ç§æœ‰å˜é‡, è°ƒç”¨ç§æœ‰æ–¹æ³•, èŽ·å–泛型类型Class, è¢«AOP过的真实类等工具函数.
 * 
 * @author ruoyi
 * @author jc
 */
@SuppressWarnings("rawtypes")
public class ReflectUtils
jcdm-common/src/main/java/com/jcdm/common/utils/sign/Base64.java
@@ -3,7 +3,7 @@
/**
 * Base64工具类
 * 
 * @author ruoyi
 * @author jc
 */
public final class Base64
{
jcdm-common/src/main/java/com/jcdm/common/utils/sign/Md5Utils.java
@@ -8,7 +8,7 @@
/**
 * Md5加密方法
 * 
 * @author ruoyi
 * @author jc
 */
public class Md5Utils
{
jcdm-common/src/main/java/com/jcdm/common/utils/spring/SpringUtils.java
@@ -13,7 +13,7 @@
/**
 * spring工具类 æ–¹ä¾¿åœ¨éžspring管理环境中获取bean
 * 
 * @author ruoyi
 * @author jc
 */
@Component
public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware 
jcdm-common/src/main/java/com/jcdm/common/utils/sql/SqlUtil.java
@@ -6,7 +6,7 @@
/**
 * sql操作工具类
 * 
 * @author ruoyi
 * @author jc
 */
public class SqlUtil
{
jcdm-common/src/main/java/com/jcdm/common/utils/uuid/IdUtils.java
@@ -3,7 +3,7 @@
/**
 * ID生成器工具类
 * 
 * @author ruoyi
 * @author jc
 */
public class IdUtils
{
jcdm-common/src/main/java/com/jcdm/common/utils/uuid/Seq.java
@@ -5,7 +5,7 @@
import com.jcdm.common.utils.StringUtils;
/**
 * @author ruoyi åºåˆ—生成类
 * @author jc åºåˆ—生成类
 */
public class Seq
{
jcdm-common/src/main/java/com/jcdm/common/utils/uuid/UUID.java
@@ -10,7 +10,7 @@
/**
 * æä¾›é€šç”¨å”¯ä¸€è¯†åˆ«ç ï¼ˆuniversally unique identifier)(UUID)实现
 *
 * @author ruoyi
 * @author jc
 */
public final class UUID implements java.io.Serializable, Comparable<UUID>
{
jcdm-common/src/main/java/com/jcdm/common/xss/Xss.java
@@ -10,7 +10,7 @@
/**
 * è‡ªå®šä¹‰xss校验注解
 * 
 * @author ruoyi
 * @author jc
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(value = { ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER })
jcdm-common/src/main/java/com/jcdm/common/xss/XssValidator.java
@@ -9,7 +9,7 @@
/**
 * è‡ªå®šä¹‰xss校验注解实现
 * 
 * @author ruoyi
 * @author jc
 */
public class XssValidator implements ConstraintValidator<Xss, String>
{
jcdm-framework/src/main/java/com/jcdm/framework/aspectj/DataScopeAspect.java
@@ -19,7 +19,7 @@
/**
 * æ•°æ®è¿‡æ»¤å¤„理
 *
 * @author ruoyi
 * @author jc
 */
@Aspect
@Component
jcdm-framework/src/main/java/com/jcdm/framework/aspectj/DataSourceAspect.java
@@ -18,7 +18,7 @@
/**
 * å¤šæ•°æ®æºå¤„理
 * 
 * @author ruoyi
 * @author jc
 */
@Aspect
@Order(1)
jcdm-framework/src/main/java/com/jcdm/framework/aspectj/LogAspect.java
@@ -33,7 +33,7 @@
/**
 * æ“ä½œæ—¥å¿—记录处理
 * 
 * @author ruoyi
 * @author jc
 */
@Aspect
@Component
jcdm-framework/src/main/java/com/jcdm/framework/aspectj/RateLimiterAspect.java
@@ -22,7 +22,7 @@
/**
 * é™æµå¤„理
 *
 * @author ruoyi
 * @author jc
 */
//@Aspect
//@Component
jcdm-framework/src/main/java/com/jcdm/framework/config/ApplicationConfig.java
@@ -10,7 +10,7 @@
/**
 * ç¨‹åºæ³¨è§£é…ç½®
 *
 * @author ruoyi
 * @author jc
 */
@Configuration
// è¡¨ç¤ºé€šè¿‡aop框架暴露该代理对象,AopContext能够访问
jcdm-framework/src/main/java/com/jcdm/framework/config/CaptchaConfig.java
@@ -10,7 +10,7 @@
/**
 * éªŒè¯ç é…ç½®
 * 
 * @author ruoyi
 * @author jc
 */
@Configuration
public class CaptchaConfig
jcdm-framework/src/main/java/com/jcdm/framework/config/DruidConfig.java
@@ -27,7 +27,7 @@
/**
 * druid é…ç½®å¤šæ•°æ®æº
 * 
 * @author ruoyi
 * @author jc
 */
@Configuration
public class DruidConfig
jcdm-framework/src/main/java/com/jcdm/framework/config/FastJson2JsonRedisSerializer.java
@@ -12,7 +12,7 @@
/**
 * Redis使用FastJson序列化
 * 
 * @author ruoyi
 * @author jc
 */
public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
{
jcdm-framework/src/main/java/com/jcdm/framework/config/FilterConfig.java
@@ -15,7 +15,7 @@
/**
 * Filter配置
 *
 * @author ruoyi
 * @author jc
 */
@Configuration
public class FilterConfig
jcdm-framework/src/main/java/com/jcdm/framework/config/KaptchaTextCreator.java
@@ -6,7 +6,7 @@
/**
 * éªŒè¯ç æ–‡æœ¬ç”Ÿæˆå™¨
 *
 * @author ruoyi
 * @author jc
 */
public class KaptchaTextCreator extends DefaultTextCreator
{
jcdm-framework/src/main/java/com/jcdm/framework/config/MyBatisConfig.java
@@ -27,7 +27,7 @@
/**
 * Mybatis支持*匹配扫描包
 * 
 * @author ruoyi
 * @author jc
 */
@Configuration
public class MyBatisConfig
jcdm-framework/src/main/java/com/jcdm/framework/config/RedisConfig.java
@@ -12,7 +12,7 @@
/**
 * redis配置
 * 
 * @author ruoyi
 * @author jc
 */
//@Configuration
//@EnableCaching
jcdm-framework/src/main/java/com/jcdm/framework/config/ResourcesConfig.java
@@ -18,7 +18,7 @@
/**
 * é€šç”¨é…ç½®
 * 
 * @author ruoyi
 * @author jc
 */
@Configuration
public class ResourcesConfig implements WebMvcConfigurer
jcdm-framework/src/main/java/com/jcdm/framework/config/SecurityConfig.java
@@ -23,7 +23,7 @@
/**
 * spring security配置
 * 
 * @author ruoyi
 * @author jc
 */
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter
jcdm-framework/src/main/java/com/jcdm/framework/config/ServerConfig.java
@@ -7,7 +7,7 @@
/**
 * æœåŠ¡ç›¸å…³é…ç½®
 * 
 * @author ruoyi
 * @author jc
 */
@Component
public class ServerConfig
jcdm-framework/src/main/java/com/jcdm/framework/config/ThreadPoolConfig.java
@@ -12,7 +12,7 @@
/**
 * çº¿ç¨‹æ± é…ç½®
 *
 * @author ruoyi
 * @author jc
 **/
@Configuration
public class ThreadPoolConfig
jcdm-framework/src/main/java/com/jcdm/framework/config/properties/DruidProperties.java
@@ -7,7 +7,7 @@
/**
 * druid é…ç½®å±žæ€§
 * 
 * @author ruoyi
 * @author jc
 */
@Configuration
public class DruidProperties
jcdm-framework/src/main/java/com/jcdm/framework/config/properties/PermitAllUrlProperties.java
@@ -21,7 +21,7 @@
/**
 * è®¾ç½®Anonymous注解允许匿名访问的url
 * 
 * @author ruoyi
 * @author jc
 */
@Configuration
public class PermitAllUrlProperties implements InitializingBean, ApplicationContextAware
jcdm-framework/src/main/java/com/jcdm/framework/datasource/DynamicDataSource.java
@@ -7,7 +7,7 @@
/**
 * åŠ¨æ€æ•°æ®æº
 * 
 * @author ruoyi
 * @author jc
 */
public class DynamicDataSource extends AbstractRoutingDataSource
{
jcdm-framework/src/main/java/com/jcdm/framework/datasource/DynamicDataSourceContextHolder.java
@@ -6,7 +6,7 @@
/**
 * æ•°æ®æºåˆ‡æ¢å¤„理
 * 
 * @author ruoyi
 * @author jc
 */
public class DynamicDataSourceContextHolder
{
jcdm-framework/src/main/java/com/jcdm/framework/interceptor/RepeatSubmitInterceptor.java
@@ -14,7 +14,7 @@
/**
 * é˜²æ­¢é‡å¤æäº¤æ‹¦æˆªå™¨
 *
 * @author ruoyi
 * @author jc
 */
@Component
public abstract class RepeatSubmitInterceptor implements HandlerInterceptor
jcdm-framework/src/main/java/com/jcdm/framework/interceptor/impl/SameUrlDataInterceptor.java
@@ -20,7 +20,7 @@
 * åˆ¤æ–­è¯·æ±‚url和数据是否和上一次相同,
 * å¦‚果和上次相同,则是重复提交表单。 æœ‰æ•ˆæ—¶é—´ä¸º10秒内。
 * 
 * @author ruoyi
 * @author jc
 */
@Component
public class SameUrlDataInterceptor extends RepeatSubmitInterceptor
jcdm-framework/src/main/java/com/jcdm/framework/manager/AsyncManager.java
@@ -9,7 +9,7 @@
/**
 * å¼‚步任务管理器
 * 
 * @author ruoyi
 * @author jc
 */
public class AsyncManager
{
jcdm-framework/src/main/java/com/jcdm/framework/manager/ShutdownManager.java
@@ -8,7 +8,7 @@
/**
 * ç¡®ä¿åº”用退出时能关闭后台线程
 *
 * @author ruoyi
 * @author jc
 */
@Component
public class ShutdownManager
jcdm-framework/src/main/java/com/jcdm/framework/manager/factory/AsyncFactory.java
@@ -19,7 +19,7 @@
/**
 * å¼‚步工厂(产生任务用)
 * 
 * @author ruoyi
 * @author jc
 */
public class AsyncFactory
{
jcdm-framework/src/main/java/com/jcdm/framework/security/context/AuthenticationContextHolder.java
@@ -5,7 +5,7 @@
/**
 * èº«ä»½éªŒè¯ä¿¡æ¯
 * 
 * @author ruoyi
 * @author jc
 */
public class AuthenticationContextHolder
{
jcdm-framework/src/main/java/com/jcdm/framework/security/context/PermissionContextHolder.java
@@ -7,7 +7,7 @@
/**
 * æƒé™ä¿¡æ¯
 * 
 * @author ruoyi
 * @author jc
 */
public class PermissionContextHolder
{
jcdm-framework/src/main/java/com/jcdm/framework/security/filter/JwtAuthenticationTokenFilter.java
@@ -19,7 +19,7 @@
/**
 * token过滤器 éªŒè¯token有效性
 * 
 * @author ruoyi
 * @author jc
 */
@Component
public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
jcdm-framework/src/main/java/com/jcdm/framework/security/handle/AuthenticationEntryPointImpl.java
@@ -16,7 +16,7 @@
/**
 * è®¤è¯å¤±è´¥å¤„理类 è¿”回未授权
 * 
 * @author ruoyi
 * @author jc
 */
@Component
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, Serializable
jcdm-framework/src/main/java/com/jcdm/framework/security/handle/LogoutSuccessHandlerImpl.java
@@ -21,7 +21,7 @@
/**
 * è‡ªå®šä¹‰é€€å‡ºå¤„理类 è¿”回成功
 * 
 * @author ruoyi
 * @author jc
 */
@Configuration
public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/Server.java
@@ -24,7 +24,7 @@
/**
 * æœåŠ¡å™¨ç›¸å…³ä¿¡æ¯
 * 
 * @author ruoyi
 * @author jc
 */
public class Server
{
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/server/Cpu.java
@@ -5,7 +5,7 @@
/**
 * CPU相关信息
 * 
 * @author ruoyi
 * @author jc
 */
public class Cpu
{
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/server/Jvm.java
@@ -7,7 +7,7 @@
/**
 * JVM相关信息
 * 
 * @author ruoyi
 * @author jc
 */
public class Jvm
{
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/server/Mem.java
@@ -5,7 +5,7 @@
/**
 * å…§å­˜ç›¸å…³ä¿¡æ¯
 * 
 * @author ruoyi
 * @author jc
 */
public class Mem
{
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/server/Sys.java
@@ -3,7 +3,7 @@
/**
 * ç³»ç»Ÿç›¸å…³ä¿¡æ¯
 * 
 * @author ruoyi
 * @author jc
 */
public class Sys
{
jcdm-framework/src/main/java/com/jcdm/framework/web/domain/server/SysFile.java
@@ -3,7 +3,7 @@
/**
 * ç³»ç»Ÿæ–‡ä»¶ç›¸å…³ä¿¡æ¯
 * 
 * @author ruoyi
 * @author jc
 */
public class SysFile
{
jcdm-framework/src/main/java/com/jcdm/framework/web/exception/GlobalExceptionHandler.java
@@ -20,7 +20,7 @@
/**
 * å…¨å±€å¼‚常处理器
 * 
 * @author ruoyi
 * @author jc
 */
@RestControllerAdvice
public class GlobalExceptionHandler
jcdm-framework/src/main/java/com/jcdm/framework/web/service/PermissionService.java
@@ -11,9 +11,9 @@
import com.jcdm.framework.security.context.PermissionContextHolder;
/**
 * RuoYi首创 è‡ªå®šä¹‰æƒé™å®žçŽ°ï¼Œss取自SpringSecurity首字母
 * è‡ªå®šä¹‰æƒé™å®žçŽ°ï¼Œss取自SpringSecurity首字母
 * 
 * @author ruoyi
 * @author jc
 */
@Service("ss")
public class PermissionService
jcdm-framework/src/main/java/com/jcdm/framework/web/service/SysLoginService.java
@@ -32,7 +32,7 @@
/**
 * ç™»å½•æ ¡éªŒæ–¹æ³•
 * 
 * @author ruoyi
 * @author jc
 */
@Component
public class SysLoginService
jcdm-framework/src/main/java/com/jcdm/framework/web/service/SysPasswordService.java
@@ -20,7 +20,7 @@
/**
 * ç™»å½•å¯†ç æ–¹æ³•
 * 
 * @author ruoyi
 * @author jc
 */
@Component
public class SysPasswordService
jcdm-framework/src/main/java/com/jcdm/framework/web/service/SysPermissionService.java
@@ -14,7 +14,7 @@
/**
 * ç”¨æˆ·æƒé™å¤„理
 * 
 * @author ruoyi
 * @author jc
 */
@Component
public class SysPermissionService
jcdm-framework/src/main/java/com/jcdm/framework/web/service/SysRegisterService.java
@@ -21,7 +21,7 @@
/**
 * æ³¨å†Œæ ¡éªŒæ–¹æ³•
 * 
 * @author ruoyi
 * @author jc
 */
@Component
public class SysRegisterService
jcdm-framework/src/main/java/com/jcdm/framework/web/service/TokenService.java
@@ -26,7 +26,7 @@
/**
 * token验证处理
 *
 * @author ruoyi
 * @author jc
 */
@Component
public class TokenService
jcdm-framework/src/main/java/com/jcdm/framework/web/service/UserDetailsServiceImpl.java
@@ -18,7 +18,7 @@
/**
 * ç”¨æˆ·éªŒè¯å¤„理
 *
 * @author ruoyi
 * @author jc
 */
@Service
public class UserDetailsServiceImpl implements UserDetailsService
jcdm-generator/src/main/java/com/jcdm/generator/config/GenConfig.java
@@ -8,7 +8,7 @@
/**
 * è¯»å–代码生成相关配置
 * 
 * @author ruoyi
 * @author jc
 */
@Component
@ConfigurationProperties(prefix = "gen")
jcdm-generator/src/main/java/com/jcdm/generator/controller/GenController.java
@@ -31,7 +31,7 @@
/**
 * ä»£ç ç”Ÿæˆ æ“ä½œå¤„理
 * 
 * @author ruoyi
 * @author jc
 */
@RestController
@RequestMapping("/tool/gen")
@@ -206,7 +206,7 @@
        response.reset();
        response.addHeader("Access-Control-Allow-Origin", "*");
        response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
        response.setHeader("Content-Disposition", "attachment; filename=\"ruoyi.zip\"");
        response.setHeader("Content-Disposition", "attachment; filename=\"JCDM.zip\"");
        response.addHeader("Content-Length", "" + data.length);
        response.setContentType("application/octet-stream; charset=UTF-8");
        IOUtils.write(data, response.getOutputStream());
jcdm-generator/src/main/java/com/jcdm/generator/domain/GenTable.java
@@ -11,7 +11,7 @@
/**
 * ä¸šåŠ¡è¡¨ gen_table
 * 
 * @author ruoyi
 * @author jc
 */
public class GenTable extends BaseEntity
{
jcdm-generator/src/main/java/com/jcdm/generator/domain/GenTableColumn.java
@@ -7,7 +7,7 @@
/**
 * ä»£ç ç”Ÿæˆä¸šåŠ¡å­—段表 gen_table_column
 * 
 * @author ruoyi
 * @author jc
 */
public class GenTableColumn extends BaseEntity
{
jcdm-generator/src/main/java/com/jcdm/generator/mapper/GenTableColumnMapper.java
@@ -6,7 +6,7 @@
/**
 * ä¸šåŠ¡å­—段 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface GenTableColumnMapper
{
jcdm-generator/src/main/java/com/jcdm/generator/mapper/GenTableMapper.java
@@ -6,7 +6,7 @@
/**
 * ä¸šåŠ¡ æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface GenTableMapper
{
jcdm-generator/src/main/java/com/jcdm/generator/service/GenTableColumnServiceImpl.java
@@ -10,7 +10,7 @@
/**
 * ä¸šåŠ¡å­—段 æœåŠ¡å±‚实现
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class GenTableColumnServiceImpl implements IGenTableColumnService 
jcdm-generator/src/main/java/com/jcdm/generator/service/GenTableServiceImpl.java
@@ -40,7 +40,7 @@
/**
 * ä¸šåŠ¡ æœåŠ¡å±‚实现
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class GenTableServiceImpl implements IGenTableService
jcdm-generator/src/main/java/com/jcdm/generator/service/IGenTableColumnService.java
@@ -6,7 +6,7 @@
/**
 * ä¸šåŠ¡å­—段 æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface IGenTableColumnService
{
jcdm-generator/src/main/java/com/jcdm/generator/service/IGenTableService.java
@@ -7,7 +7,7 @@
/**
 * ä¸šåŠ¡ æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface IGenTableService
{
jcdm-generator/src/main/java/com/jcdm/generator/util/GenUtils.java
@@ -11,7 +11,7 @@
/**
 * ä»£ç ç”Ÿæˆå™¨ å·¥å…·ç±»
 * 
 * @author ruoyi
 * @author jc
 */
public class GenUtils
{
jcdm-generator/src/main/java/com/jcdm/generator/util/VelocityInitializer.java
@@ -7,7 +7,7 @@
/**
 * VelocityEngine工厂
 * 
 * @author ruoyi
 * @author jc
 */
public class VelocityInitializer
{
jcdm-generator/src/main/java/com/jcdm/generator/util/VelocityUtils.java
@@ -16,7 +16,7 @@
/**
 * æ¨¡æ¿å¤„理工具类
 * 
 * @author ruoyi
 * @author jc
 */
public class VelocityUtils
{
jcdm-main/src/main/java/com/jcdm/main/bs/bom/controller/BsProductBomInfoController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
package com.jcdm.main.bs.bom.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.jcdm.main.bs.bom.domain.BsProductBomInfo;
import com.jcdm.main.bs.bom.service.IBsProductBomInfoService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.jcdm.common.annotation.Log;
import com.jcdm.common.core.controller.BaseController;
import com.jcdm.common.core.domain.AjaxResult;
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
/**
 * åŸºç¡€BOMController
 *
 * @author yyt
 * @date 2023-12-09
 */
@RestController
@RequestMapping("/bs/bom")
public class BsProductBomInfoController extends BaseController
{
    @Autowired
    private IBsProductBomInfoService bsProductBomInfoService;
    /**
     * æŸ¥è¯¢åŸºç¡€BOM列表
     */
    @PreAuthorize("@ss.hasPermi('bs:bom:list')")
    @GetMapping("/list")
    public TableDataInfo list(BsProductBomInfo bsProductBomInfo)
    {
        startPage();
        List<BsProductBomInfo> list = bsProductBomInfoService.selectBsProductBomInfoList(bsProductBomInfo);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºåŸºç¡€BOM列表
     */
    @PreAuthorize("@ss.hasPermi('bs:bom:export')")
    @Log(title = "基础BOM", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BsProductBomInfo bsProductBomInfo)
    {
        List<BsProductBomInfo> list = bsProductBomInfoService.selectBsProductBomInfoList(bsProductBomInfo);
        ExcelUtil<BsProductBomInfo> util = new ExcelUtil<BsProductBomInfo>(BsProductBomInfo.class);
        util.exportExcel(response, list, "基础BOM数据");
    }
    /**
     * èŽ·å–基础BOM详细信息
     */
    @PreAuthorize("@ss.hasPermi('bs:bom:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(bsProductBomInfoService.selectBsProductBomInfoById(id));
    }
    /**
     * æ–°å¢žåŸºç¡€BOM
     */
    @PreAuthorize("@ss.hasPermi('bs:bom:add')")
    @Log(title = "基础BOM", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody BsProductBomInfo bsProductBomInfo)
    {
        return toAjax(bsProductBomInfoService.insertBsProductBomInfo(bsProductBomInfo));
    }
    /**
     * ä¿®æ”¹åŸºç¡€BOM
     */
    @PreAuthorize("@ss.hasPermi('bs:bom:edit')")
    @Log(title = "基础BOM", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody BsProductBomInfo bsProductBomInfo)
    {
        return toAjax(bsProductBomInfoService.updateBsProductBomInfo(bsProductBomInfo));
    }
    /**
     * åˆ é™¤åŸºç¡€BOM
     */
    @PreAuthorize("@ss.hasPermi('bs:bom:remove')")
    @Log(title = "基础BOM", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(bsProductBomInfoService.deleteBsProductBomInfoByIds(ids));
    }
}
jcdm-main/src/main/java/com/jcdm/main/bs/bom/domain/BsProductBomInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,211 @@
package com.jcdm.main.bs.bom.domain;
import java.util.List;
import com.jcdm.main.bs.bomchild.domain.BsProductBomChildInfo;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jcdm.common.annotation.Excel;
import com.jcdm.common.core.domain.BaseEntity;
/**
 * åŸºç¡€BOM对象 bs_product_bom_info
 *
 * @author yyt
 * @date 2023-12-09
 */
public class BsProductBomInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** BOM编码 */
    @Excel(name = "BOM编码")
    private String bomCode;
    /** BOM名称 */
    @Excel(name = "BOM名称")
    private String bomName;
    /** äº§å“ç¼–码 */
    @Excel(name = "产品编码")
    private String productCode;
    /** äº§å“åç§° */
    @Excel(name = "产品名称")
    private String productName;
    /** ç‰ˆæœ¬ */
    @Excel(name = "版本")
    private String version;
    /** çŠ¶æ€(字典) */
    @Excel(name = "状态(字典)")
    private String status;
    /** é¢„留字段1 */
    @Excel(name = "预留字段1")
    private String spareField1;
    /** é¢„留字段2 */
    @Excel(name = "预留字段2")
    private String spareField2;
    /** åˆ›å»ºç”¨æˆ· */
    @Excel(name = "创建用户")
    private String createUser;
    /** æ›´æ”¹ç”¨æˆ· */
    @Excel(name = "更改用户")
    private String updateUser;
    /** æ•°æ®æ¥æº */
    @Excel(name = "数据来源")
    private String dataSource;
    /** åŸºç¡€BOM子信息信息 */
    private List<BsProductBomChildInfo> bsProductBomChildInfoList;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setBomCode(String bomCode)
    {
        this.bomCode = bomCode;
    }
    public String getBomCode()
    {
        return bomCode;
    }
    public void setBomName(String bomName)
    {
        this.bomName = bomName;
    }
    public String getBomName()
    {
        return bomName;
    }
    public void setProductCode(String productCode)
    {
        this.productCode = productCode;
    }
    public String getProductCode()
    {
        return productCode;
    }
    public void setProductName(String productName)
    {
        this.productName = productName;
    }
    public String getProductName()
    {
        return productName;
    }
    public void setVersion(String version)
    {
        this.version = version;
    }
    public String getVersion()
    {
        return version;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }
    public String getStatus()
    {
        return status;
    }
    public void setSpareField1(String spareField1)
    {
        this.spareField1 = spareField1;
    }
    public String getSpareField1()
    {
        return spareField1;
    }
    public void setSpareField2(String spareField2)
    {
        this.spareField2 = spareField2;
    }
    public String getSpareField2()
    {
        return spareField2;
    }
    public void setCreateUser(String createUser)
    {
        this.createUser = createUser;
    }
    public String getCreateUser()
    {
        return createUser;
    }
    public void setUpdateUser(String updateUser)
    {
        this.updateUser = updateUser;
    }
    public String getUpdateUser()
    {
        return updateUser;
    }
    public void setDataSource(String dataSource)
    {
        this.dataSource = dataSource;
    }
    public String getDataSource()
    {
        return dataSource;
    }
    public List<BsProductBomChildInfo> getBsProductBomChildInfoList()
    {
        return bsProductBomChildInfoList;
    }
    public void setBsProductBomChildInfoList(List<BsProductBomChildInfo> bsProductBomChildInfoList)
    {
        this.bsProductBomChildInfoList = bsProductBomChildInfoList;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("bomCode", getBomCode())
            .append("bomName", getBomName())
            .append("productCode", getProductCode())
            .append("productName", getProductName())
            .append("version", getVersion())
            .append("status", getStatus())
            .append("spareField1", getSpareField1())
            .append("spareField2", getSpareField2())
            .append("remark", getRemark())
            .append("createUser", getCreateUser())
            .append("createTime", getCreateTime())
            .append("updateUser", getUpdateUser())
            .append("updateTime", getUpdateTime())
            .append("dataSource", getDataSource())
            .append("bsProductBomChildInfoList", getBsProductBomChildInfoList())
            .toString();
    }
}
jcdm-main/src/main/java/com/jcdm/main/bs/bom/mapper/BsProductBomInfoMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,88 @@
package com.jcdm.main.bs.bom.mapper;
import com.jcdm.main.bs.bom.domain.BsProductBomInfo;
import com.jcdm.main.bs.bomchild.domain.BsProductBomChildInfo;
import java.util.List;
/**
 * åŸºç¡€BOMMapper接口
 *
 * @author yyt
 * @date 2023-12-09
 */
public interface BsProductBomInfoMapper
{
    /**
     * æŸ¥è¯¢åŸºç¡€BOM
     *
     * @param id åŸºç¡€BOM主键
     * @return åŸºç¡€BOM
     */
    public BsProductBomInfo selectBsProductBomInfoById(Long id);
    /**
     * æŸ¥è¯¢åŸºç¡€BOM列表
     *
     * @param bsProductBomInfo åŸºç¡€BOM
     * @return åŸºç¡€BOM集合
     */
    public List<BsProductBomInfo> selectBsProductBomInfoList(BsProductBomInfo bsProductBomInfo);
    /**
     * æ–°å¢žåŸºç¡€BOM
     *
     * @param bsProductBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    public int insertBsProductBomInfo(BsProductBomInfo bsProductBomInfo);
    /**
     * ä¿®æ”¹åŸºç¡€BOM
     *
     * @param bsProductBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    public int updateBsProductBomInfo(BsProductBomInfo bsProductBomInfo);
    /**
     * åˆ é™¤åŸºç¡€BOM
     *
     * @param id åŸºç¡€BOM主键
     * @return ç»“æžœ
     */
    public int deleteBsProductBomInfoById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM
     *
     * @param ids éœ€è¦åˆ é™¤çš„数据主键集合
     * @return ç»“æžœ
     */
    public int deleteBsProductBomInfoByIds(Long[] ids);
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM子信息
     *
     * @param ids éœ€è¦åˆ é™¤çš„数据主键集合
     * @return ç»“æžœ
     */
    public int deleteBsProductBomChildInfoByBomCodes(Long[] ids);
    /**
     * æ‰¹é‡æ–°å¢žåŸºç¡€BOM子信息
     *
     * @param bsProductBomChildInfoList åŸºç¡€BOM子信息列表
     * @return ç»“æžœ
     */
    public int batchBsProductBomChildInfo(List<BsProductBomChildInfo> bsProductBomChildInfoList);
    /**
     * é€šè¿‡åŸºç¡€BOM主键删除基础BOM子信息信息
     *
     * @param id åŸºç¡€BOMID
     * @return ç»“æžœ
     */
    public int deleteBsProductBomChildInfoByBomCode(Long id);
}
jcdm-main/src/main/java/com/jcdm/main/bs/bom/service/IBsProductBomInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.bs.bom.service;
import com.jcdm.main.bs.bom.domain.BsProductBomInfo;
import java.util.List;
/**
 * åŸºç¡€BOMService接口
 *
 * @author yyt
 * @date 2023-12-09
 */
public interface IBsProductBomInfoService
{
    /**
     * æŸ¥è¯¢åŸºç¡€BOM
     *
     * @param id åŸºç¡€BOM主键
     * @return åŸºç¡€BOM
     */
    public BsProductBomInfo selectBsProductBomInfoById(Long id);
    /**
     * æŸ¥è¯¢åŸºç¡€BOM列表
     *
     * @param bsProductBomInfo åŸºç¡€BOM
     * @return åŸºç¡€BOM集合
     */
    public List<BsProductBomInfo> selectBsProductBomInfoList(BsProductBomInfo bsProductBomInfo);
    /**
     * æ–°å¢žåŸºç¡€BOM
     *
     * @param bsProductBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    public int insertBsProductBomInfo(BsProductBomInfo bsProductBomInfo);
    /**
     * ä¿®æ”¹åŸºç¡€BOM
     *
     * @param bsProductBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    public int updateBsProductBomInfo(BsProductBomInfo bsProductBomInfo);
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM
     *
     * @param ids éœ€è¦åˆ é™¤çš„基础BOM主键集合
     * @return ç»“æžœ
     */
    public int deleteBsProductBomInfoByIds(Long[] ids);
    /**
     * åˆ é™¤åŸºç¡€BOM信息
     *
     * @param id åŸºç¡€BOM主键
     * @return ç»“æžœ
     */
    public int deleteBsProductBomInfoById(Long id);
}
jcdm-main/src/main/java/com/jcdm/main/bs/bom/service/impl/BsProductBomInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,134 @@
package com.jcdm.main.bs.bom.service.impl;
import java.util.List;
import com.jcdm.common.utils.DateUtils;
import com.jcdm.main.bs.bom.domain.BsProductBomInfo;
import com.jcdm.main.bs.bom.mapper.BsProductBomInfoMapper;
import com.jcdm.main.bs.bom.service.IBsProductBomInfoService;
import com.jcdm.main.bs.bomchild.domain.BsProductBomChildInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.jcdm.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
/**
 * åŸºç¡€BOMService业务层处理
 *
 * @author yyt
 * @date 2023-12-09
 */
@Service
public class BsProductBomInfoServiceImpl implements IBsProductBomInfoService
{
    @Autowired
    private BsProductBomInfoMapper bsProductBomInfoMapper;
    /**
     * æŸ¥è¯¢åŸºç¡€BOM
     *
     * @param id åŸºç¡€BOM主键
     * @return åŸºç¡€BOM
     */
    @Override
    public BsProductBomInfo selectBsProductBomInfoById(Long id)
    {
        return bsProductBomInfoMapper.selectBsProductBomInfoById(id);
    }
    /**
     * æŸ¥è¯¢åŸºç¡€BOM列表
     *
     * @param bsProductBomInfo åŸºç¡€BOM
     * @return åŸºç¡€BOM
     */
    @Override
    public List<BsProductBomInfo> selectBsProductBomInfoList(BsProductBomInfo bsProductBomInfo)
    {
        return bsProductBomInfoMapper.selectBsProductBomInfoList(bsProductBomInfo);
    }
    /**
     * æ–°å¢žåŸºç¡€BOM
     *
     * @param bsProductBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    @Transactional
    @Override
    public int insertBsProductBomInfo(BsProductBomInfo bsProductBomInfo)
    {
        bsProductBomInfo.setCreateTime(DateUtils.getNowDate());
        int rows = bsProductBomInfoMapper.insertBsProductBomInfo(bsProductBomInfo);
        insertBsProductBomChildInfo(bsProductBomInfo);
        return rows;
    }
    /**
     * ä¿®æ”¹åŸºç¡€BOM
     *
     * @param bsProductBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    @Transactional
    @Override
    public int updateBsProductBomInfo(BsProductBomInfo bsProductBomInfo)
    {
        bsProductBomInfo.setUpdateTime(DateUtils.getNowDate());
        bsProductBomInfoMapper.deleteBsProductBomChildInfoByBomCode(bsProductBomInfo.getId());
        insertBsProductBomChildInfo(bsProductBomInfo);
        return bsProductBomInfoMapper.updateBsProductBomInfo(bsProductBomInfo);
    }
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM
     *
     * @param ids éœ€è¦åˆ é™¤çš„基础BOM主键
     * @return ç»“æžœ
     */
    @Transactional
    @Override
    public int deleteBsProductBomInfoByIds(Long[] ids)
    {
        bsProductBomInfoMapper.deleteBsProductBomChildInfoByBomCodes(ids);
        return bsProductBomInfoMapper.deleteBsProductBomInfoByIds(ids);
    }
    /**
     * åˆ é™¤åŸºç¡€BOM信息
     *
     * @param id åŸºç¡€BOM主键
     * @return ç»“æžœ
     */
    @Transactional
    @Override
    public int deleteBsProductBomInfoById(Long id)
    {
        bsProductBomInfoMapper.deleteBsProductBomChildInfoByBomCode(id);
        return bsProductBomInfoMapper.deleteBsProductBomInfoById(id);
    }
    /**
     * æ–°å¢žåŸºç¡€BOM子信息信息
     *
     * @param bsProductBomInfo åŸºç¡€BOM对象
     */
    public void insertBsProductBomChildInfo(BsProductBomInfo bsProductBomInfo)
    {
        List<BsProductBomChildInfo> bsProductBomChildInfoList = bsProductBomInfo.getBsProductBomChildInfoList();
        Long id = bsProductBomInfo.getId();
        if (StringUtils.isNotNull(bsProductBomChildInfoList))
        {
            List<BsProductBomChildInfo> list = new ArrayList<BsProductBomChildInfo>();
            for (BsProductBomChildInfo bsProductBomChildInfo : bsProductBomChildInfoList)
            {
                bsProductBomChildInfo.setBomCode(id.toString());
                list.add(bsProductBomChildInfo);
            }
            if (list.size() > 0)
            {
                bsProductBomInfoMapper.batchBsProductBomChildInfo(list);
            }
        }
    }
}
jcdm-main/src/main/java/com/jcdm/main/bs/bomchild/controller/BsProductBomChildInfoController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
package com.jcdm.main.bs.bomchild.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.jcdm.main.bs.bomchild.domain.BsProductBomChildInfo;
import com.jcdm.main.bs.bomchild.service.IBsProductBomChildInfoService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.jcdm.common.annotation.Log;
import com.jcdm.common.core.controller.BaseController;
import com.jcdm.common.core.domain.AjaxResult;
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
/**
 * åŸºç¡€BOM子信息Controller
 *
 * @author yyt
 * @date 2023-12-09
 */
@RestController
@RequestMapping("/bs/bomchild")
public class BsProductBomChildInfoController extends BaseController
{
    @Autowired
    private IBsProductBomChildInfoService bsProductBomChildInfoService;
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息列表
     */
    @PreAuthorize("@ss.hasPermi('bs:bomchild:list')")
    @GetMapping("/list")
    public TableDataInfo list(BsProductBomChildInfo bsProductBomChildInfo)
    {
        startPage();
        List<BsProductBomChildInfo> list = bsProductBomChildInfoService.selectBsProductBomChildInfoList(bsProductBomChildInfo);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºåŸºç¡€BOM子信息列表
     */
    @PreAuthorize("@ss.hasPermi('bs:bomchild:export')")
    @Log(title = "基础BOM子信息", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BsProductBomChildInfo bsProductBomChildInfo)
    {
        List<BsProductBomChildInfo> list = bsProductBomChildInfoService.selectBsProductBomChildInfoList(bsProductBomChildInfo);
        ExcelUtil<BsProductBomChildInfo> util = new ExcelUtil<BsProductBomChildInfo>(BsProductBomChildInfo.class);
        util.exportExcel(response, list, "基础BOM子信息数据");
    }
    /**
     * èŽ·å–基础BOM子信息详细信息
     */
    @PreAuthorize("@ss.hasPermi('bs:bomchild:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(bsProductBomChildInfoService.selectBsProductBomChildInfoById(id));
    }
    /**
     * æ–°å¢žåŸºç¡€BOM子信息
     */
    @PreAuthorize("@ss.hasPermi('bs:bomchild:add')")
    @Log(title = "基础BOM子信息", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody BsProductBomChildInfo bsProductBomChildInfo)
    {
        return toAjax(bsProductBomChildInfoService.insertBsProductBomChildInfo(bsProductBomChildInfo));
    }
    /**
     * ä¿®æ”¹åŸºç¡€BOM子信息
     */
    @PreAuthorize("@ss.hasPermi('bs:bomchild:edit')")
    @Log(title = "基础BOM子信息", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody BsProductBomChildInfo bsProductBomChildInfo)
    {
        return toAjax(bsProductBomChildInfoService.updateBsProductBomChildInfo(bsProductBomChildInfo));
    }
    /**
     * åˆ é™¤åŸºç¡€BOM子信息
     */
    @PreAuthorize("@ss.hasPermi('bs:bomchild:remove')")
    @Log(title = "基础BOM子信息", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(bsProductBomChildInfoService.deleteBsProductBomChildInfoByIds(ids));
    }
}
jcdm-main/src/main/java/com/jcdm/main/bs/bomchild/domain/BsProductBomChildInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,191 @@
package com.jcdm.main.bs.bomchild.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jcdm.common.annotation.Excel;
import com.jcdm.common.core.domain.BaseEntity;
/**
 * åŸºç¡€BOM子信息对象 bs_product_bom_child_info
 *
 * @author yyt
 * @date 2023-12-09
 */
public class BsProductBomChildInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** å·¥åºç¼–码 */
    @Excel(name = "工序编码")
    private String opCode;
    /** å·¥åºåç§° */
    @Excel(name = "工序名称")
    private String opName;
    /** ç‰©æ–™ç¼–码 */
    @Excel(name = "物料编码")
    private String materialCode;
    /** ç‰©æ–™åç§° */
    @Excel(name = "物料名称")
    private String materialName;
    /** å•è€— */
    @Excel(name = "单耗")
    private String costQty;
    /** å•ä½ */
    @Excel(name = "单位")
    private String unit;
    /** é¢„留字段1 */
    @Excel(name = "预留字段1")
    private String spareField1;
    /** é¢„留字段2 */
    @Excel(name = "预留字段2")
    private String spareField2;
    /** é¢„留字段3 */
    @Excel(name = "预留字段3")
    private String spareField3;
    /** BOM编码 */
    @Excel(name = "BOM编码")
    private String bomCode;
    /** BOM主表ID */
    private Long bomInfoId;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setOpCode(String opCode)
    {
        this.opCode = opCode;
    }
    public String getOpCode()
    {
        return opCode;
    }
    public void setOpName(String opName)
    {
        this.opName = opName;
    }
    public String getOpName()
    {
        return opName;
    }
    public void setMaterialCode(String materialCode)
    {
        this.materialCode = materialCode;
    }
    public String getMaterialCode()
    {
        return materialCode;
    }
    public void setMaterialName(String materialName)
    {
        this.materialName = materialName;
    }
    public String getMaterialName()
    {
        return materialName;
    }
    public void setCostQty(String costQty)
    {
        this.costQty = costQty;
    }
    public String getCostQty()
    {
        return costQty;
    }
    public void setUnit(String unit)
    {
        this.unit = unit;
    }
    public String getUnit()
    {
        return unit;
    }
    public void setSpareField1(String spareField1)
    {
        this.spareField1 = spareField1;
    }
    public String getSpareField1()
    {
        return spareField1;
    }
    public void setSpareField2(String spareField2)
    {
        this.spareField2 = spareField2;
    }
    public String getSpareField2()
    {
        return spareField2;
    }
    public void setSpareField3(String spareField3)
    {
        this.spareField3 = spareField3;
    }
    public String getSpareField3()
    {
        return spareField3;
    }
    public void setBomCode(String bomCode)
    {
        this.bomCode = bomCode;
    }
    public String getBomCode()
    {
        return bomCode;
    }
    public void setBomInfoId(Long bomInfoId)
    {
        this.bomInfoId = bomInfoId;
    }
    public Long getBomInfoId()
    {
        return bomInfoId;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("opCode", getOpCode())
            .append("opName", getOpName())
            .append("materialCode", getMaterialCode())
            .append("materialName", getMaterialName())
            .append("costQty", getCostQty())
            .append("unit", getUnit())
            .append("spareField1", getSpareField1())
            .append("spareField2", getSpareField2())
            .append("spareField3", getSpareField3())
            .append("remark", getRemark())
            .append("bomCode", getBomCode())
            .append("bomInfoId", getBomInfoId())
            .toString();
    }
}
jcdm-main/src/main/java/com/jcdm/main/bs/bomchild/mapper/BsProductBomChildInfoMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.jcdm.main.bs.bomchild.mapper;
import com.jcdm.main.bs.bomchild.domain.BsProductBomChildInfo;
import java.util.List;
/**
 * åŸºç¡€BOM子信息Mapper接口
 *
 * @author yyt
 * @date 2023-12-09
 */
public interface BsProductBomChildInfoMapper
{
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return åŸºç¡€BOM子信息
     */
    public BsProductBomChildInfo selectBsProductBomChildInfoById(Long id);
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息列表
     *
     * @param bsProductBomChildInfo åŸºç¡€BOM子信息
     * @return åŸºç¡€BOM子信息集合
     */
    public List<BsProductBomChildInfo> selectBsProductBomChildInfoList(BsProductBomChildInfo bsProductBomChildInfo);
    /**
     * æ–°å¢žåŸºç¡€BOM子信息
     *
     * @param bsProductBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    public int insertBsProductBomChildInfo(BsProductBomChildInfo bsProductBomChildInfo);
    /**
     * ä¿®æ”¹åŸºç¡€BOM子信息
     *
     * @param bsProductBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    public int updateBsProductBomChildInfo(BsProductBomChildInfo bsProductBomChildInfo);
    /**
     * åˆ é™¤åŸºç¡€BOM子信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return ç»“æžœ
     */
    public int deleteBsProductBomChildInfoById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM子信息
     *
     * @param ids éœ€è¦åˆ é™¤çš„数据主键集合
     * @return ç»“æžœ
     */
    public int deleteBsProductBomChildInfoByIds(Long[] ids);
}
jcdm-main/src/main/java/com/jcdm/main/bs/bomchild/service/IBsProductBomChildInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.bs.bomchild.service;
import com.jcdm.main.bs.bomchild.domain.BsProductBomChildInfo;
import java.util.List;
/**
 * åŸºç¡€BOM子信息Service接口
 *
 * @author yyt
 * @date 2023-12-09
 */
public interface IBsProductBomChildInfoService
{
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return åŸºç¡€BOM子信息
     */
    public BsProductBomChildInfo selectBsProductBomChildInfoById(Long id);
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息列表
     *
     * @param bsProductBomChildInfo åŸºç¡€BOM子信息
     * @return åŸºç¡€BOM子信息集合
     */
    public List<BsProductBomChildInfo> selectBsProductBomChildInfoList(BsProductBomChildInfo bsProductBomChildInfo);
    /**
     * æ–°å¢žåŸºç¡€BOM子信息
     *
     * @param bsProductBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    public int insertBsProductBomChildInfo(BsProductBomChildInfo bsProductBomChildInfo);
    /**
     * ä¿®æ”¹åŸºç¡€BOM子信息
     *
     * @param bsProductBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    public int updateBsProductBomChildInfo(BsProductBomChildInfo bsProductBomChildInfo);
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM子信息
     *
     * @param ids éœ€è¦åˆ é™¤çš„基础BOM子信息主键集合
     * @return ç»“æžœ
     */
    public int deleteBsProductBomChildInfoByIds(Long[] ids);
    /**
     * åˆ é™¤åŸºç¡€BOM子信息信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return ç»“æžœ
     */
    public int deleteBsProductBomChildInfoById(Long id);
}
jcdm-main/src/main/java/com/jcdm/main/bs/bomchild/service/impl/BsProductBomChildInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
package com.jcdm.main.bs.bomchild.service.impl;
import java.util.List;
import com.jcdm.main.bs.bomchild.domain.BsProductBomChildInfo;
import com.jcdm.main.bs.bomchild.mapper.BsProductBomChildInfoMapper;
import com.jcdm.main.bs.bomchild.service.IBsProductBomChildInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * åŸºç¡€BOM子信息Service业务层处理
 *
 * @author yyt
 * @date 2023-12-09
 */
@Service
public class BsProductBomChildInfoServiceImpl implements IBsProductBomChildInfoService
{
    @Autowired
    private BsProductBomChildInfoMapper bsProductBomChildInfoMapper;
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return åŸºç¡€BOM子信息
     */
    @Override
    public BsProductBomChildInfo selectBsProductBomChildInfoById(Long id)
    {
        return bsProductBomChildInfoMapper.selectBsProductBomChildInfoById(id);
    }
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息列表
     *
     * @param bsProductBomChildInfo åŸºç¡€BOM子信息
     * @return åŸºç¡€BOM子信息
     */
    @Override
    public List<BsProductBomChildInfo> selectBsProductBomChildInfoList(BsProductBomChildInfo bsProductBomChildInfo)
    {
        return bsProductBomChildInfoMapper.selectBsProductBomChildInfoList(bsProductBomChildInfo);
    }
    /**
     * æ–°å¢žåŸºç¡€BOM子信息
     *
     * @param bsProductBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    @Override
    public int insertBsProductBomChildInfo(BsProductBomChildInfo bsProductBomChildInfo)
    {
        return bsProductBomChildInfoMapper.insertBsProductBomChildInfo(bsProductBomChildInfo);
    }
    /**
     * ä¿®æ”¹åŸºç¡€BOM子信息
     *
     * @param bsProductBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    @Override
    public int updateBsProductBomChildInfo(BsProductBomChildInfo bsProductBomChildInfo)
    {
        return bsProductBomChildInfoMapper.updateBsProductBomChildInfo(bsProductBomChildInfo);
    }
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM子信息
     *
     * @param ids éœ€è¦åˆ é™¤çš„基础BOM子信息主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsProductBomChildInfoByIds(Long[] ids)
    {
        return bsProductBomChildInfoMapper.deleteBsProductBomChildInfoByIds(ids);
    }
    /**
     * åˆ é™¤åŸºç¡€BOM子信息信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsProductBomChildInfoById(Long id)
    {
        return bsProductBomChildInfoMapper.deleteBsProductBomChildInfoById(id);
    }
}
jcdm-main/src/main/java/com/jcdm/main/bs/material/controller/BsMaterialInfoController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
package com.jcdm.main.bs.material.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.jcdm.main.bs.material.domain.BsMaterialInfo;
import com.jcdm.main.bs.material.service.IBsMaterialInfoService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.jcdm.common.annotation.Log;
import com.jcdm.common.core.controller.BaseController;
import com.jcdm.common.core.domain.AjaxResult;
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
/**
 * ç‰©æ–™ä¿¡æ¯Controller
 *
 * @author yyt
 * @date 2023-12-09
 */
@RestController
@RequestMapping("/bs/material")
public class BsMaterialInfoController extends BaseController
{
    @Autowired
    private IBsMaterialInfoService bsMaterialInfoService;
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('bs:material:list')")
    @GetMapping("/list")
    public TableDataInfo list(BsMaterialInfo bsMaterialInfo)
    {
        startPage();
        List<BsMaterialInfo> list = bsMaterialInfoService.selectBsMaterialInfoList(bsMaterialInfo);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºç‰©æ–™ä¿¡æ¯åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('bs:material:export')")
    @Log(title = "物料信息", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BsMaterialInfo bsMaterialInfo)
    {
        List<BsMaterialInfo> list = bsMaterialInfoService.selectBsMaterialInfoList(bsMaterialInfo);
        ExcelUtil<BsMaterialInfo> util = new ExcelUtil<BsMaterialInfo>(BsMaterialInfo.class);
        util.exportExcel(response, list, "物料信息数据");
    }
    /**
     * èŽ·å–物料信息详细信息
     */
    @PreAuthorize("@ss.hasPermi('bs:material:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(bsMaterialInfoService.selectBsMaterialInfoById(id));
    }
    /**
     * æ–°å¢žç‰©æ–™ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:material:add')")
    @Log(title = "物料信息", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody BsMaterialInfo bsMaterialInfo)
    {
        return toAjax(bsMaterialInfoService.insertBsMaterialInfo(bsMaterialInfo));
    }
    /**
     * ä¿®æ”¹ç‰©æ–™ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:material:edit')")
    @Log(title = "物料信息", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody BsMaterialInfo bsMaterialInfo)
    {
        return toAjax(bsMaterialInfoService.updateBsMaterialInfo(bsMaterialInfo));
    }
    /**
     * åˆ é™¤ç‰©æ–™ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:material:remove')")
    @Log(title = "物料信息", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(bsMaterialInfoService.deleteBsMaterialInfoByIds(ids));
    }
}
jcdm-main/src/main/java/com/jcdm/main/bs/material/domain/BsMaterialInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,249 @@
package com.jcdm.main.bs.material.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jcdm.common.annotation.Excel;
import com.jcdm.common.core.domain.BaseEntity;
/**
 * ç‰©æ–™ä¿¡æ¯å¯¹è±¡ bs_material_info
 *
 * @author yyt
 * @date 2023-12-09
 */
public class BsMaterialInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** ç‰©æ–™ç¼–号 */
    @Excel(name = "物料编号")
    private String materialCode;
    /** ç‰©æ–™åç§° */
    @Excel(name = "物料名称")
    private String materialName;
    /** è§†å›¾ */
    @Excel(name = "视图")
    private String materialView;
    /** ç§ç±» */
    @Excel(name = "种类")
    private String typeZ;
    /** ç±»åž‹ */
    @Excel(name = "类型")
    private String typeL;
    /** å•ä½ */
    @Excel(name = "单位")
    private String unit;
    /** ç‰ˆæœ¬ */
    @Excel(name = "版本")
    private String matterVersion;
    /** å¤‡æ³¨ */
    @Excel(name = "备注")
    private String remarks;
    /** åˆ›å»ºç”¨æˆ· */
    @Excel(name = "创建用户")
    private String createUser;
    /** æ›´æ”¹ç”¨æˆ· */
    @Excel(name = "更改用户")
    private String updateUser;
    /** ERP规格 */
    @Excel(name = "ERP规格")
    private String erpSpec;
    /** æ•°æ®æ¥æº */
    @Excel(name = "数据来源")
    private String dataSource;
    /** ç‰ˆæœ¬ */
    @Excel(name = "版本")
    private String version;
    /** çŠ¶æ€ */
    @Excel(name = "状态")
    private String status;
    /** åŽ‚商 */
    @Excel(name = "厂商")
    private String supplier;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setMaterialCode(String materialCode)
    {
        this.materialCode = materialCode;
    }
    public String getMaterialCode()
    {
        return materialCode;
    }
    public void setMaterialName(String materialName)
    {
        this.materialName = materialName;
    }
    public String getMaterialName()
    {
        return materialName;
    }
    public void setMaterialView(String materialView)
    {
        this.materialView = materialView;
    }
    public String getMaterialView()
    {
        return materialView;
    }
    public void setTypeZ(String typeZ)
    {
        this.typeZ = typeZ;
    }
    public String getTypeZ()
    {
        return typeZ;
    }
    public void setTypeL(String typeL)
    {
        this.typeL = typeL;
    }
    public String getTypeL()
    {
        return typeL;
    }
    public void setUnit(String unit)
    {
        this.unit = unit;
    }
    public String getUnit()
    {
        return unit;
    }
    public void setMatterVersion(String matterVersion)
    {
        this.matterVersion = matterVersion;
    }
    public String getMatterVersion()
    {
        return matterVersion;
    }
    public void setRemarks(String remarks)
    {
        this.remarks = remarks;
    }
    public String getRemarks()
    {
        return remarks;
    }
    public void setCreateUser(String createUser)
    {
        this.createUser = createUser;
    }
    public String getCreateUser()
    {
        return createUser;
    }
    public void setUpdateUser(String updateUser)
    {
        this.updateUser = updateUser;
    }
    public String getUpdateUser()
    {
        return updateUser;
    }
    public void setErpSpec(String erpSpec)
    {
        this.erpSpec = erpSpec;
    }
    public String getErpSpec()
    {
        return erpSpec;
    }
    public void setDataSource(String dataSource)
    {
        this.dataSource = dataSource;
    }
    public String getDataSource()
    {
        return dataSource;
    }
    public void setVersion(String version)
    {
        this.version = version;
    }
    public String getVersion()
    {
        return version;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }
    public String getStatus()
    {
        return status;
    }
    public void setSupplier(String supplier)
    {
        this.supplier = supplier;
    }
    public String getSupplier()
    {
        return supplier;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("materialCode", getMaterialCode())
            .append("materialName", getMaterialName())
            .append("materialView", getMaterialView())
            .append("typeZ", getTypeZ())
            .append("typeL", getTypeL())
            .append("unit", getUnit())
            .append("matterVersion", getMatterVersion())
            .append("remarks", getRemarks())
            .append("createUser", getCreateUser())
            .append("createTime", getCreateTime())
            .append("updateUser", getUpdateUser())
            .append("updateTime", getUpdateTime())
            .append("erpSpec", getErpSpec())
            .append("dataSource", getDataSource())
            .append("version", getVersion())
            .append("status", getStatus())
            .append("supplier", getSupplier())
            .toString();
    }
}
jcdm-main/src/main/java/com/jcdm/main/bs/material/mapper/BsMaterialInfoMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.bs.material.mapper;
import com.jcdm.main.bs.material.domain.BsMaterialInfo;
import java.util.List;
/**
 * ç‰©æ–™ä¿¡æ¯Mapper接口
 *
 * @author yyt
 * @date 2023-12-09
 */
public interface BsMaterialInfoMapper
{
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç‰©æ–™ä¿¡æ¯
     */
    public BsMaterialInfo selectBsMaterialInfoById(Long id);
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç‰©æ–™ä¿¡æ¯é›†åˆ
     */
    public List<BsMaterialInfo> selectBsMaterialInfoList(BsMaterialInfo bsMaterialInfo);
    /**
     * æ–°å¢žç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int insertBsMaterialInfo(BsMaterialInfo bsMaterialInfo);
    /**
     * ä¿®æ”¹ç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int updateBsMaterialInfo(BsMaterialInfo bsMaterialInfo);
    /**
     * åˆ é™¤ç‰©æ–™ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteBsMaterialInfoById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤ç‰©æ–™ä¿¡æ¯
     *
     * @param ids éœ€è¦åˆ é™¤çš„数据主键集合
     * @return ç»“æžœ
     */
    public int deleteBsMaterialInfoByIds(Long[] ids);
}
jcdm-main/src/main/java/com/jcdm/main/bs/material/service/IBsMaterialInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.bs.material.service;
import com.jcdm.main.bs.material.domain.BsMaterialInfo;
import java.util.List;
/**
 * ç‰©æ–™ä¿¡æ¯Service接口
 *
 * @author yyt
 * @date 2023-12-09
 */
public interface IBsMaterialInfoService
{
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç‰©æ–™ä¿¡æ¯
     */
    public BsMaterialInfo selectBsMaterialInfoById(Long id);
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç‰©æ–™ä¿¡æ¯é›†åˆ
     */
    public List<BsMaterialInfo> selectBsMaterialInfoList(BsMaterialInfo bsMaterialInfo);
    /**
     * æ–°å¢žç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int insertBsMaterialInfo(BsMaterialInfo bsMaterialInfo);
    /**
     * ä¿®æ”¹ç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int updateBsMaterialInfo(BsMaterialInfo bsMaterialInfo);
    /**
     * æ‰¹é‡åˆ é™¤ç‰©æ–™ä¿¡æ¯
     *
     * @param ids éœ€è¦åˆ é™¤çš„物料信息主键集合
     * @return ç»“æžœ
     */
    public int deleteBsMaterialInfoByIds(Long[] ids);
    /**
     * åˆ é™¤ç‰©æ–™ä¿¡æ¯ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteBsMaterialInfoById(Long id);
}
jcdm-main/src/main/java/com/jcdm/main/bs/material/service/impl/BsMaterialInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
package com.jcdm.main.bs.material.service.impl;
import java.util.List;
import com.jcdm.common.utils.DateUtils;
import com.jcdm.main.bs.material.domain.BsMaterialInfo;
import com.jcdm.main.bs.material.mapper.BsMaterialInfoMapper;
import com.jcdm.main.bs.material.service.IBsMaterialInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * ç‰©æ–™ä¿¡æ¯Service业务层处理
 *
 * @author yyt
 * @date 2023-12-09
 */
@Service
public class BsMaterialInfoServiceImpl implements IBsMaterialInfoService
{
    @Autowired
    private BsMaterialInfoMapper bsMaterialInfoMapper;
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç‰©æ–™ä¿¡æ¯
     */
    @Override
    public BsMaterialInfo selectBsMaterialInfoById(Long id)
    {
        return bsMaterialInfoMapper.selectBsMaterialInfoById(id);
    }
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç‰©æ–™ä¿¡æ¯
     */
    @Override
    public List<BsMaterialInfo> selectBsMaterialInfoList(BsMaterialInfo bsMaterialInfo)
    {
        return bsMaterialInfoMapper.selectBsMaterialInfoList(bsMaterialInfo);
    }
    /**
     * æ–°å¢žç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    @Override
    public int insertBsMaterialInfo(BsMaterialInfo bsMaterialInfo)
    {
        bsMaterialInfo.setCreateTime(DateUtils.getNowDate());
        return bsMaterialInfoMapper.insertBsMaterialInfo(bsMaterialInfo);
    }
    /**
     * ä¿®æ”¹ç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    @Override
    public int updateBsMaterialInfo(BsMaterialInfo bsMaterialInfo)
    {
        bsMaterialInfo.setUpdateTime(DateUtils.getNowDate());
        return bsMaterialInfoMapper.updateBsMaterialInfo(bsMaterialInfo);
    }
    /**
     * æ‰¹é‡åˆ é™¤ç‰©æ–™ä¿¡æ¯
     *
     * @param ids éœ€è¦åˆ é™¤çš„物料信息主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsMaterialInfoByIds(Long[] ids)
    {
        return bsMaterialInfoMapper.deleteBsMaterialInfoByIds(ids);
    }
    /**
     * åˆ é™¤ç‰©æ–™ä¿¡æ¯ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsMaterialInfoById(Long id)
    {
        return bsMaterialInfoMapper.deleteBsMaterialInfoById(id);
    }
}
jcdm-main/src/main/java/com/jcdm/main/bs/workshop/controller/BsWorkshopInfoController.java
@@ -25,7 +25,7 @@
/**
 * è½¦é—´ä¿¡æ¯Controller
 * 
 * @author ruoyi
 * @author jc
 * @date 2023-12-06
 */
@RestController
jcdm-main/src/main/java/com/jcdm/main/bs/workshop/domain/BsWorkshopInfo.java
@@ -8,7 +8,7 @@
/**
 * è½¦é—´ä¿¡æ¯å¯¹è±¡ bs_workshop_info
 * 
 * @author ruoyi
 * @author jc
 * @date 2023-12-06
 */
public class BsWorkshopInfo extends BaseEntity
jcdm-main/src/main/java/com/jcdm/main/bs/workshop/mapper/BsWorkshopInfoMapper.java
@@ -6,7 +6,7 @@
/**
 * è½¦é—´ä¿¡æ¯Mapper接口
 * 
 * @author ruoyi
 * @author jc
 * @date 2023-12-06
 */
public interface BsWorkshopInfoMapper 
jcdm-main/src/main/java/com/jcdm/main/bs/workshop/service/IBsWorkshopInfoService.java
@@ -6,7 +6,7 @@
/**
 * è½¦é—´ä¿¡æ¯Service接口
 * 
 * @author ruoyi
 * @author jc
 * @date 2023-12-06
 */
public interface IBsWorkshopInfoService 
jcdm-main/src/main/java/com/jcdm/main/bs/workshop/service/impl/BsWorkshopInfoServiceImpl.java
@@ -13,7 +13,7 @@
/**
 * è½¦é—´ä¿¡æ¯Service业务层处理
 * 
 * @author ruoyi
 * @author jc
 * @date 2023-12-06
 */
@Service
jcdm-main/src/main/resources/mapper/bs/bom/BsProductBomInfoMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jcdm.main.bs.bom.mapper.BsProductBomInfoMapper">
    <resultMap type="BsProductBomInfo" id="BsProductBomInfoResult">
        <result property="id"    column="id"    />
        <result property="bomCode"    column="bom_code"    />
        <result property="bomName"    column="bom_name"    />
        <result property="productCode"    column="product_code"    />
        <result property="productName"    column="product_name"    />
        <result property="version"    column="version"    />
        <result property="status"    column="status"    />
        <result property="spareField1"    column="spare_field_1"    />
        <result property="spareField2"    column="spare_field_2"    />
        <result property="remark"    column="remark"    />
        <result property="createUser"    column="create_user"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateUser"    column="update_user"    />
        <result property="updateTime"    column="update_time"    />
        <result property="dataSource"    column="data_source"    />
    </resultMap>
    <resultMap id="BsProductBomInfoBsProductBomChildInfoResult" type="BsProductBomInfo" extends="BsProductBomInfoResult">
        <collection property="bsProductBomChildInfoList" notNullColumn="sub_id" javaType="java.util.List" resultMap="BsProductBomChildInfoResult" />
    </resultMap>
    <resultMap type="BsProductBomChildInfo" id="BsProductBomChildInfoResult">
        <result property="id"    column="sub_id"    />
        <result property="opCode"    column="sub_op_code"    />
        <result property="opName"    column="sub_op_name"    />
        <result property="materialCode"    column="sub_material_code"    />
        <result property="materialName"    column="sub_material_name"    />
        <result property="costQty"    column="sub_cost_qty"    />
        <result property="unit"    column="sub_unit"    />
        <result property="spareField1"    column="sub_spare_field_1"    />
        <result property="spareField2"    column="sub_spare_field_2"    />
        <result property="spareField3"    column="sub_spare_field_3"    />
        <result property="remark"    column="sub_remark"    />
        <result property="bomCode"    column="sub_bom_code"    />
        <result property="bomInfoId"    column="sub_bom_info_id"    />
    </resultMap>
    <sql id="selectBsProductBomInfoVo">
        select id, bom_code, bom_name, product_code, product_name, version, status, spare_field_1, spare_field_2, remark, create_user, create_time, update_user, update_time, data_source from bs_product_bom_info
    </sql>
    <select id="selectBsProductBomInfoList" parameterType="BsProductBomInfo" resultMap="BsProductBomInfoResult">
        <include refid="selectBsProductBomInfoVo"/>
        <where>
            <if test="bomCode != null  and bomCode != ''"> and bom_code = #{bomCode}</if>
            <if test="bomName != null  and bomName != ''"> and bom_name like concat('%', #{bomName}, '%')</if>
            <if test="productCode != null  and productCode != ''"> and product_code = #{productCode}</if>
            <if test="productName != null  and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
            <if test="dataSource != null  and dataSource != ''"> and data_source = #{dataSource}</if>
        </where>
    </select>
    <select id="selectBsProductBomInfoById" parameterType="Long" resultMap="BsProductBomInfoBsProductBomChildInfoResult">
        select a.id, a.bom_code, a.bom_name, a.product_code, a.product_name, a.version, a.status, a.spare_field_1, a.spare_field_2, a.remark, a.create_user, a.create_time, a.update_user, a.update_time, a.data_source,
 b.id as sub_id, b.op_code as sub_op_code, b.op_name as sub_op_name, b.material_code as sub_material_code, b.material_name as sub_material_name, b.cost_qty as sub_cost_qty, b.unit as sub_unit, b.spare_field_1 as sub_spare_field_1, b.spare_field_2 as sub_spare_field_2, b.spare_field_3 as sub_spare_field_3, b.remark as sub_remark, b.bom_code as sub_bom_code, b.bom_info_id as sub_bom_info_id
        from bs_product_bom_info a
        left join bs_product_bom_child_info b on b.bom_code = a.id
        where a.id = #{id}
    </select>
    <insert id="insertBsProductBomInfo" parameterType="BsProductBomInfo">
        insert into bs_product_bom_info
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="bomCode != null and bomCode != ''">bom_code,</if>
            <if test="bomName != null">bom_name,</if>
            <if test="productCode != null and productCode != ''">product_code,</if>
            <if test="productName != null">product_name,</if>
            <if test="version != null">version,</if>
            <if test="status != null and status != ''">status,</if>
            <if test="spareField1 != null">spare_field_1,</if>
            <if test="spareField2 != null">spare_field_2,</if>
            <if test="remark != null">remark,</if>
            <if test="createUser != null">create_user,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateUser != null">update_user,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="dataSource != null">data_source,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="bomCode != null and bomCode != ''">#{bomCode},</if>
            <if test="bomName != null">#{bomName},</if>
            <if test="productCode != null and productCode != ''">#{productCode},</if>
            <if test="productName != null">#{productName},</if>
            <if test="version != null">#{version},</if>
            <if test="status != null and status != ''">#{status},</if>
            <if test="spareField1 != null">#{spareField1},</if>
            <if test="spareField2 != null">#{spareField2},</if>
            <if test="remark != null">#{remark},</if>
            <if test="createUser != null">#{createUser},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateUser != null">#{updateUser},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="dataSource != null">#{dataSource},</if>
         </trim>
    </insert>
    <update id="updateBsProductBomInfo" parameterType="BsProductBomInfo">
        update bs_product_bom_info
        <trim prefix="SET" suffixOverrides=",">
            <if test="bomCode != null and bomCode != ''">bom_code = #{bomCode},</if>
            <if test="bomName != null">bom_name = #{bomName},</if>
            <if test="productCode != null and productCode != ''">product_code = #{productCode},</if>
            <if test="productName != null">product_name = #{productName},</if>
            <if test="version != null">version = #{version},</if>
            <if test="status != null and status != ''">status = #{status},</if>
            <if test="spareField1 != null">spare_field_1 = #{spareField1},</if>
            <if test="spareField2 != null">spare_field_2 = #{spareField2},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="createUser != null">create_user = #{createUser},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateUser != null">update_user = #{updateUser},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="dataSource != null">data_source = #{dataSource},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteBsProductBomInfoById" parameterType="Long">
        delete from bs_product_bom_info where id = #{id}
    </delete>
    <delete id="deleteBsProductBomInfoByIds" parameterType="String">
        delete from bs_product_bom_info where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <delete id="deleteBsProductBomChildInfoByBomCodes" parameterType="String">
        delete from bs_product_bom_child_info where bom_code in
        <foreach item="bomCode" collection="array" open="(" separator="," close=")">
            #{bomCode}
        </foreach>
    </delete>
    <delete id="deleteBsProductBomChildInfoByBomCode" parameterType="Long">
        delete from bs_product_bom_child_info where bom_code = #{bomCode}
    </delete>
    <insert id="batchBsProductBomChildInfo">
        insert into bs_product_bom_child_info( id, op_code, op_name, material_code, material_name, cost_qty, unit, spare_field_1, spare_field_2, spare_field_3, remark, bom_code, bom_info_id) values
        <foreach item="item" index="index" collection="list" separator=",">
            ( #{item.id}, #{item.opCode}, #{item.opName}, #{item.materialCode}, #{item.materialName}, #{item.costQty}, #{item.unit}, #{item.spareField1}, #{item.spareField2}, #{item.spareField3}, #{item.remark}, #{item.bomCode}, #{item.bomInfoId})
        </foreach>
    </insert>
</mapper>
jcdm-main/src/main/resources/mapper/bs/bomchild/BsProductBomChildInfoMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jcdm.main.bs.bomchild.mapper.BsProductBomChildInfoMapper">
    <resultMap type="BsProductBomChildInfo" id="BsProductBomChildInfoResult">
        <result property="id"    column="id"    />
        <result property="opCode"    column="op_code"    />
        <result property="opName"    column="op_name"    />
        <result property="materialCode"    column="material_code"    />
        <result property="materialName"    column="material_name"    />
        <result property="costQty"    column="cost_qty"    />
        <result property="unit"    column="unit"    />
        <result property="spareField1"    column="spare_field_1"    />
        <result property="spareField2"    column="spare_field_2"    />
        <result property="spareField3"    column="spare_field_3"    />
        <result property="remark"    column="remark"    />
        <result property="bomCode"    column="bom_code"    />
        <result property="bomInfoId"    column="bom_info_id"    />
    </resultMap>
    <sql id="selectBsProductBomChildInfoVo">
        select id, op_code, op_name, material_code, material_name, cost_qty, unit, spare_field_1, spare_field_2, spare_field_3, remark, bom_code, bom_info_id from bs_product_bom_child_info
    </sql>
    <select id="selectBsProductBomChildInfoList" parameterType="BsProductBomChildInfo" resultMap="BsProductBomChildInfoResult">
        <include refid="selectBsProductBomChildInfoVo"/>
        <where>
            <if test="materialCode != null  and materialCode != ''"> and material_code = #{materialCode}</if>
            <if test="bomCode != null  and bomCode != ''"> and bom_code = #{bomCode}</if>
        </where>
    </select>
    <select id="selectBsProductBomChildInfoById" parameterType="Long" resultMap="BsProductBomChildInfoResult">
        <include refid="selectBsProductBomChildInfoVo"/>
        where id = #{id}
    </select>
    <insert id="insertBsProductBomChildInfo" parameterType="BsProductBomChildInfo">
        insert into bs_product_bom_child_info
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="opCode != null">op_code,</if>
            <if test="opName != null">op_name,</if>
            <if test="materialCode != null">material_code,</if>
            <if test="materialName != null">material_name,</if>
            <if test="costQty != null and costQty != ''">cost_qty,</if>
            <if test="unit != null and unit != ''">unit,</if>
            <if test="spareField1 != null">spare_field_1,</if>
            <if test="spareField2 != null">spare_field_2,</if>
            <if test="spareField3 != null">spare_field_3,</if>
            <if test="remark != null">remark,</if>
            <if test="bomCode != null and bomCode != ''">bom_code,</if>
            <if test="bomInfoId != null">bom_info_id,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="opCode != null">#{opCode},</if>
            <if test="opName != null">#{opName},</if>
            <if test="materialCode != null">#{materialCode},</if>
            <if test="materialName != null">#{materialName},</if>
            <if test="costQty != null and costQty != ''">#{costQty},</if>
            <if test="unit != null and unit != ''">#{unit},</if>
            <if test="spareField1 != null">#{spareField1},</if>
            <if test="spareField2 != null">#{spareField2},</if>
            <if test="spareField3 != null">#{spareField3},</if>
            <if test="remark != null">#{remark},</if>
            <if test="bomCode != null and bomCode != ''">#{bomCode},</if>
            <if test="bomInfoId != null">#{bomInfoId},</if>
         </trim>
    </insert>
    <update id="updateBsProductBomChildInfo" parameterType="BsProductBomChildInfo">
        update bs_product_bom_child_info
        <trim prefix="SET" suffixOverrides=",">
            <if test="opCode != null">op_code = #{opCode},</if>
            <if test="opName != null">op_name = #{opName},</if>
            <if test="materialCode != null">material_code = #{materialCode},</if>
            <if test="materialName != null">material_name = #{materialName},</if>
            <if test="costQty != null and costQty != ''">cost_qty = #{costQty},</if>
            <if test="unit != null and unit != ''">unit = #{unit},</if>
            <if test="spareField1 != null">spare_field_1 = #{spareField1},</if>
            <if test="spareField2 != null">spare_field_2 = #{spareField2},</if>
            <if test="spareField3 != null">spare_field_3 = #{spareField3},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="bomCode != null and bomCode != ''">bom_code = #{bomCode},</if>
            <if test="bomInfoId != null">bom_info_id = #{bomInfoId},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteBsProductBomChildInfoById" parameterType="Long">
        delete from bs_product_bom_child_info where id = #{id}
    </delete>
    <delete id="deleteBsProductBomChildInfoByIds" parameterType="String">
        delete from bs_product_bom_child_info where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
jcdm-main/src/main/resources/mapper/bs/material/BsMaterialInfoMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jcdm.main.bs.material.mapper.BsMaterialInfoMapper">
    <resultMap type="BsMaterialInfo" id="BsMaterialInfoResult">
        <result property="id"    column="id"    />
        <result property="materialCode"    column="material_code"    />
        <result property="materialName"    column="material_name"    />
        <result property="materialView"    column="material_view"    />
        <result property="typeZ"    column="type_z"    />
        <result property="typeL"    column="type_l"    />
        <result property="unit"    column="unit"    />
        <result property="matterVersion"    column="matter_version"    />
        <result property="remarks"    column="remarks"    />
        <result property="createUser"    column="create_user"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateUser"    column="update_user"    />
        <result property="updateTime"    column="update_time"    />
        <result property="erpSpec"    column="erp_spec"    />
        <result property="dataSource"    column="data_source"    />
        <result property="version"    column="version"    />
        <result property="status"    column="status"    />
        <result property="supplier"    column="supplier"    />
    </resultMap>
    <sql id="selectBsMaterialInfoVo">
        select id, material_code, material_name, material_view, type_z, type_l, unit, matter_version, remarks, create_user, create_time, update_user, update_time, erp_spec, data_source, version, status, supplier from bs_material_info
    </sql>
    <select id="selectBsMaterialInfoList" parameterType="BsMaterialInfo" resultMap="BsMaterialInfoResult">
        <include refid="selectBsMaterialInfoVo"/>
        <where>
            <if test="materialCode != null  and materialCode != ''"> and material_code like concat('%', #{materialCode}, '%')</if>
            <if test="materialName != null  and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if>
            <if test="materialView != null  and materialView != ''"> and material_view = #{materialView}</if>
            <if test="typeZ != null  and typeZ != ''"> and type_z = #{typeZ}</if>
            <if test="typeL != null  and typeL != ''"> and type_l = #{typeL}</if>
            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
            <if test="matterVersion != null  and matterVersion != ''"> and matter_version = #{matterVersion}</if>
            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
            <if test="createUser != null  and createUser != ''"> and create_user = #{createUser}</if>
            <if test="createTime != null "> and create_time = #{createTime}</if>
            <if test="updateUser != null  and updateUser != ''"> and update_user = #{updateUser}</if>
            <if test="erpSpec != null  and erpSpec != ''"> and erp_spec = #{erpSpec}</if>
            <if test="dataSource != null  and dataSource != ''"> and data_source = #{dataSource}</if>
            <if test="version != null  and version != ''"> and version = #{version}</if>
            <if test="status != null  and status != ''"> and status = #{status}</if>
            <if test="supplier != null  and supplier != ''"> and supplier = #{supplier}</if>
        </where>
    </select>
    <select id="selectBsMaterialInfoById" parameterType="Long" resultMap="BsMaterialInfoResult">
        <include refid="selectBsMaterialInfoVo"/>
        where id = #{id}
    </select>
    <insert id="insertBsMaterialInfo" parameterType="BsMaterialInfo">
        insert into bs_material_info
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="materialCode != null">material_code,</if>
            <if test="materialName != null">material_name,</if>
            <if test="materialView != null">material_view,</if>
            <if test="typeZ != null">type_z,</if>
            <if test="typeL != null">type_l,</if>
            <if test="unit != null">unit,</if>
            <if test="matterVersion != null">matter_version,</if>
            <if test="remarks != null">remarks,</if>
            <if test="createUser != null">create_user,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateUser != null">update_user,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="erpSpec != null">erp_spec,</if>
            <if test="dataSource != null">data_source,</if>
            <if test="version != null">version,</if>
            <if test="status != null">status,</if>
            <if test="supplier != null">supplier,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="materialCode != null">#{materialCode},</if>
            <if test="materialName != null">#{materialName},</if>
            <if test="materialView != null">#{materialView},</if>
            <if test="typeZ != null">#{typeZ},</if>
            <if test="typeL != null">#{typeL},</if>
            <if test="unit != null">#{unit},</if>
            <if test="matterVersion != null">#{matterVersion},</if>
            <if test="remarks != null">#{remarks},</if>
            <if test="createUser != null">#{createUser},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateUser != null">#{updateUser},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="erpSpec != null">#{erpSpec},</if>
            <if test="dataSource != null">#{dataSource},</if>
            <if test="version != null">#{version},</if>
            <if test="status != null">#{status},</if>
            <if test="supplier != null">#{supplier},</if>
         </trim>
    </insert>
    <update id="updateBsMaterialInfo" parameterType="BsMaterialInfo">
        update bs_material_info
        <trim prefix="SET" suffixOverrides=",">
            <if test="materialCode != null">material_code = #{materialCode},</if>
            <if test="materialName != null">material_name = #{materialName},</if>
            <if test="materialView != null">material_view = #{materialView},</if>
            <if test="typeZ != null">type_z = #{typeZ},</if>
            <if test="typeL != null">type_l = #{typeL},</if>
            <if test="unit != null">unit = #{unit},</if>
            <if test="matterVersion != null">matter_version = #{matterVersion},</if>
            <if test="remarks != null">remarks = #{remarks},</if>
            <if test="createUser != null">create_user = #{createUser},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateUser != null">update_user = #{updateUser},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="erpSpec != null">erp_spec = #{erpSpec},</if>
            <if test="dataSource != null">data_source = #{dataSource},</if>
            <if test="version != null">version = #{version},</if>
            <if test="status != null">status = #{status},</if>
            <if test="supplier != null">supplier = #{supplier},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteBsMaterialInfoById" parameterType="Long">
        delete from bs_material_info where id = #{id}
    </delete>
    <delete id="deleteBsMaterialInfoByIds" parameterType="String">
        delete from bs_material_info where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
jcdm-quartz/src/main/java/com/jcdm/quartz/config/ScheduleConfig.java
@@ -9,7 +9,7 @@
///**
// * å®šæ—¶ä»»åŠ¡é…ç½®ï¼ˆå•æœºéƒ¨ç½²å»ºè®®åˆ é™¤æ­¤ç±»å’Œqrtz数据库表,默认走内存会最高效)
// * 
// * @author ruoyi
// * @author jc
// */
//@Configuration
//public class ScheduleConfig
jcdm-quartz/src/main/java/com/jcdm/quartz/controller/SysJobController.java
@@ -30,7 +30,7 @@
/**
 * è°ƒåº¦ä»»åŠ¡ä¿¡æ¯æ“ä½œå¤„理
 * 
 * @author ruoyi
 * @author jc
 */
@RestController
@RequestMapping("/monitor/job")
jcdm-quartz/src/main/java/com/jcdm/quartz/controller/SysJobLogController.java
@@ -22,7 +22,7 @@
/**
 * è°ƒåº¦æ—¥å¿—操作处理
 * 
 * @author ruoyi
 * @author jc
 */
@RestController
@RequestMapping("/monitor/jobLog")
jcdm-quartz/src/main/java/com/jcdm/quartz/domain/SysJob.java
@@ -16,7 +16,7 @@
/**
 * å®šæ—¶ä»»åŠ¡è°ƒåº¦è¡¨ sys_job
 * 
 * @author ruoyi
 * @author jc
 */
public class SysJob extends BaseEntity
{
jcdm-quartz/src/main/java/com/jcdm/quartz/domain/SysJobLog.java
@@ -9,7 +9,7 @@
/**
 * å®šæ—¶ä»»åŠ¡è°ƒåº¦æ—¥å¿—表 sys_job_log
 * 
 * @author ruoyi
 * @author jc
 */
public class SysJobLog extends BaseEntity
{
jcdm-quartz/src/main/java/com/jcdm/quartz/mapper/SysJobLogMapper.java
@@ -6,7 +6,7 @@
/**
 * è°ƒåº¦ä»»åŠ¡æ—¥å¿—信息 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysJobLogMapper
{
jcdm-quartz/src/main/java/com/jcdm/quartz/mapper/SysJobMapper.java
@@ -6,7 +6,7 @@
/**
 * è°ƒåº¦ä»»åŠ¡ä¿¡æ¯ æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysJobMapper
{
jcdm-quartz/src/main/java/com/jcdm/quartz/service/ISysJobLogService.java
@@ -6,7 +6,7 @@
/**
 * å®šæ—¶ä»»åŠ¡è°ƒåº¦æ—¥å¿—信息信息 æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysJobLogService
{
jcdm-quartz/src/main/java/com/jcdm/quartz/service/ISysJobService.java
@@ -8,7 +8,7 @@
/**
 * å®šæ—¶ä»»åŠ¡è°ƒåº¦ä¿¡æ¯ä¿¡æ¯ æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysJobService
{
jcdm-quartz/src/main/java/com/jcdm/quartz/service/impl/SysJobLogServiceImpl.java
@@ -10,7 +10,7 @@
/**
 * å®šæ—¶ä»»åŠ¡è°ƒåº¦æ—¥å¿—信息 æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysJobLogServiceImpl implements ISysJobLogService
jcdm-quartz/src/main/java/com/jcdm/quartz/service/impl/SysJobServiceImpl.java
@@ -20,7 +20,7 @@
/**
 * å®šæ—¶ä»»åŠ¡è°ƒåº¦ä¿¡æ¯ æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysJobServiceImpl implements ISysJobService
jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java
@@ -6,7 +6,7 @@
/**
 * å®šæ—¶ä»»åŠ¡è°ƒåº¦æµ‹è¯•
 * 
 * @author ruoyi
 * @author jc
 */
@Component("ryTask")
public class RyTask
jcdm-quartz/src/main/java/com/jcdm/quartz/util/AbstractQuartzJob.java
@@ -19,7 +19,7 @@
/**
 * æŠ½è±¡quartz调用
 *
 * @author ruoyi
 * @author jc
 */
public abstract class AbstractQuartzJob implements Job
{
jcdm-quartz/src/main/java/com/jcdm/quartz/util/CronUtils.java
@@ -7,7 +7,7 @@
/**
 * cron表达式工具类
 * 
 * @author ruoyi
 * @author jc
 *
 */
public class CronUtils
jcdm-quartz/src/main/java/com/jcdm/quartz/util/JobInvokeUtil.java
@@ -11,7 +11,7 @@
/**
 * ä»»åŠ¡æ‰§è¡Œå·¥å…·
 *
 * @author ruoyi
 * @author jc
 */
public class JobInvokeUtil
{
jcdm-quartz/src/main/java/com/jcdm/quartz/util/QuartzDisallowConcurrentExecution.java
@@ -7,7 +7,7 @@
/**
 * å®šæ—¶ä»»åŠ¡å¤„理(禁止并发执行)
 * 
 * @author ruoyi
 * @author jc
 *
 */
@DisallowConcurrentExecution
jcdm-quartz/src/main/java/com/jcdm/quartz/util/QuartzJobExecution.java
@@ -6,7 +6,7 @@
/**
 * å®šæ—¶ä»»åŠ¡å¤„理(允许并发执行)
 * 
 * @author ruoyi
 * @author jc
 *
 */
public class QuartzJobExecution extends AbstractQuartzJob
jcdm-quartz/src/main/java/com/jcdm/quartz/util/ScheduleUtils.java
@@ -21,7 +21,7 @@
/**
 * å®šæ—¶ä»»åŠ¡å·¥å…·ç±»
 * 
 * @author ruoyi
 * @author jc
 *
 */
public class ScheduleUtils
jcdm-system/src/main/java/com/jcdm/system/domain/SysCache.java
@@ -5,7 +5,7 @@
/**
 * ç¼“存信息
 * 
 * @author ruoyi
 * @author jc
 */
public class SysCache
{
jcdm-system/src/main/java/com/jcdm/system/domain/SysConfig.java
@@ -11,7 +11,7 @@
/**
 * å‚数配置表 sys_config
 * 
 * @author ruoyi
 * @author jc
 */
public class SysConfig extends BaseEntity
{
jcdm-system/src/main/java/com/jcdm/system/domain/SysLogininfor.java
@@ -9,7 +9,7 @@
/**
 * ç³»ç»Ÿè®¿é—®è®°å½•è¡¨ sys_logininfor
 * 
 * @author ruoyi
 * @author jc
 */
public class SysLogininfor extends BaseEntity
{
jcdm-system/src/main/java/com/jcdm/system/domain/SysNotice.java
@@ -10,7 +10,7 @@
/**
 * é€šçŸ¥å…¬å‘Šè¡¨ sys_notice
 * 
 * @author ruoyi
 * @author jc
 */
public class SysNotice extends BaseEntity
{
jcdm-system/src/main/java/com/jcdm/system/domain/SysOperLog.java
@@ -9,7 +9,7 @@
/**
 * æ“ä½œæ—¥å¿—记录表 oper_log
 * 
 * @author ruoyi
 * @author jc
 */
public class SysOperLog extends BaseEntity
{
jcdm-system/src/main/java/com/jcdm/system/domain/SysPost.java
@@ -12,7 +12,7 @@
/**
 * å²—位表 sys_post
 * 
 * @author ruoyi
 * @author jc
 */
public class SysPost extends BaseEntity
{
jcdm-system/src/main/java/com/jcdm/system/domain/SysRoleDept.java
@@ -6,7 +6,7 @@
/**
 * è§’色和部门关联 sys_role_dept
 * 
 * @author ruoyi
 * @author jc
 */
public class SysRoleDept
{
jcdm-system/src/main/java/com/jcdm/system/domain/SysRoleMenu.java
@@ -6,7 +6,7 @@
/**
 * è§’色和菜单关联 sys_role_menu
 * 
 * @author ruoyi
 * @author jc
 */
public class SysRoleMenu
{
jcdm-system/src/main/java/com/jcdm/system/domain/SysUserOnline.java
@@ -3,7 +3,7 @@
/**
 * å½“前在线会话
 * 
 * @author ruoyi
 * @author jc
 */
public class SysUserOnline
{
jcdm-system/src/main/java/com/jcdm/system/domain/SysUserPost.java
@@ -6,7 +6,7 @@
/**
 * ç”¨æˆ·å’Œå²—位关联 sys_user_post
 * 
 * @author ruoyi
 * @author jc
 */
public class SysUserPost
{
jcdm-system/src/main/java/com/jcdm/system/domain/SysUserRole.java
@@ -6,7 +6,7 @@
/**
 * ç”¨æˆ·å’Œè§’色关联 sys_user_role
 * 
 * @author ruoyi
 * @author jc
 */
public class SysUserRole
{
jcdm-system/src/main/java/com/jcdm/system/domain/vo/MetaVo.java
@@ -5,7 +5,7 @@
/**
 * è·¯ç”±æ˜¾ç¤ºä¿¡æ¯
 * 
 * @author ruoyi
 * @author jc
 */
public class MetaVo
{
jcdm-system/src/main/java/com/jcdm/system/domain/vo/RouterVo.java
@@ -6,7 +6,7 @@
/**
 * è·¯ç”±é…ç½®ä¿¡æ¯
 * 
 * @author ruoyi
 * @author jc
 */
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class RouterVo
jcdm-system/src/main/java/com/jcdm/system/mapper/SysConfigMapper.java
@@ -6,7 +6,7 @@
/**
 * å‚数配置 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysConfigMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysDeptMapper.java
@@ -7,7 +7,7 @@
/**
 * éƒ¨é—¨ç®¡ç† æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysDeptMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysDictDataMapper.java
@@ -7,7 +7,7 @@
/**
 * å­—典表 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysDictDataMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysDictTypeMapper.java
@@ -6,7 +6,7 @@
/**
 * å­—典表 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysDictTypeMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysLogininforMapper.java
@@ -6,7 +6,7 @@
/**
 * ç³»ç»Ÿè®¿é—®æ—¥å¿—情况信息 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysLogininforMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysMenuMapper.java
@@ -7,7 +7,7 @@
/**
 * èœå•è¡¨ æ•°æ®å±‚
 *
 * @author ruoyi
 * @author jc
 */
public interface SysMenuMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysNoticeMapper.java
@@ -6,7 +6,7 @@
/**
 * é€šçŸ¥å…¬å‘Šè¡¨ æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysNoticeMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysOperLogMapper.java
@@ -6,7 +6,7 @@
/**
 * æ“ä½œæ—¥å¿— æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysOperLogMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysPostMapper.java
@@ -6,7 +6,7 @@
/**
 * å²—位信息 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysPostMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysRoleDeptMapper.java
@@ -6,7 +6,7 @@
/**
 * è§’色与部门关联表 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysRoleDeptMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysRoleMapper.java
@@ -6,7 +6,7 @@
/**
 * è§’色表 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysRoleMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysRoleMenuMapper.java
@@ -6,7 +6,7 @@
/**
 * è§’色与菜单关联表 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysRoleMenuMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysUserMapper.java
@@ -7,7 +7,7 @@
/**
 * ç”¨æˆ·è¡¨ æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysUserMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysUserPostMapper.java
@@ -6,7 +6,7 @@
/**
 * ç”¨æˆ·ä¸Žå²—位关联表 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysUserPostMapper
{
jcdm-system/src/main/java/com/jcdm/system/mapper/SysUserRoleMapper.java
@@ -7,7 +7,7 @@
/**
 * ç”¨æˆ·ä¸Žè§’色关联表 æ•°æ®å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface SysUserRoleMapper
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysConfigService.java
@@ -6,7 +6,7 @@
/**
 * å‚数配置 æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysConfigService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysDeptService.java
@@ -7,7 +7,7 @@
/**
 * éƒ¨é—¨ç®¡ç† æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysDeptService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysDictDataService.java
@@ -6,7 +6,7 @@
/**
 * å­—å…¸ ä¸šåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysDictDataService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysDictTypeService.java
@@ -7,7 +7,7 @@
/**
 * å­—å…¸ ä¸šåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysDictTypeService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysLogininforService.java
@@ -6,7 +6,7 @@
/**
 * ç³»ç»Ÿè®¿é—®æ—¥å¿—情况信息 æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysLogininforService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysMenuService.java
@@ -9,7 +9,7 @@
/**
 * èœå• ä¸šåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysMenuService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysNoticeService.java
@@ -6,7 +6,7 @@
/**
 * å…¬å‘Š æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysNoticeService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysOperLogService.java
@@ -6,7 +6,7 @@
/**
 * æ“ä½œæ—¥å¿— æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysOperLogService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysPostService.java
@@ -6,7 +6,7 @@
/**
 * å²—位信息 æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysPostService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysRoleService.java
@@ -8,7 +8,7 @@
/**
 * è§’色业务层
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysRoleService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysUserOnlineService.java
@@ -6,7 +6,7 @@
/**
 * åœ¨çº¿ç”¨æˆ· æœåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysUserOnlineService
{
jcdm-system/src/main/java/com/jcdm/system/service/ISysUserService.java
@@ -6,7 +6,7 @@
/**
 * ç”¨æˆ· ä¸šåŠ¡å±‚
 * 
 * @author ruoyi
 * @author jc
 */
public interface ISysUserService
{
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysConfigServiceImpl.java
@@ -20,7 +20,7 @@
/**
 * å‚数配置 æœåŠ¡å±‚实现
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysConfigServiceImpl implements ISysConfigService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysDeptServiceImpl.java
@@ -24,7 +24,7 @@
/**
 * éƒ¨é—¨ç®¡ç† æœåŠ¡å®žçŽ°
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysDeptServiceImpl implements ISysDeptService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysDictDataServiceImpl.java
@@ -11,7 +11,7 @@
/**
 * å­—å…¸ ä¸šåŠ¡å±‚处理
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysDictDataServiceImpl implements ISysDictDataService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysDictTypeServiceImpl.java
@@ -21,7 +21,7 @@
/**
 * å­—å…¸ ä¸šåŠ¡å±‚处理
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysDictTypeServiceImpl implements ISysDictTypeService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysLogininforServiceImpl.java
@@ -10,7 +10,7 @@
/**
 * ç³»ç»Ÿè®¿é—®æ—¥å¿—情况信息 æœåŠ¡å±‚处理
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysLogininforServiceImpl implements ISysLogininforService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysMenuServiceImpl.java
@@ -28,7 +28,7 @@
/**
 * èœå• ä¸šåŠ¡å±‚处理
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysMenuServiceImpl implements ISysMenuService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysNoticeServiceImpl.java
@@ -10,7 +10,7 @@
/**
 * å…¬å‘Š æœåŠ¡å±‚实现
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysNoticeServiceImpl implements ISysNoticeService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysOperLogServiceImpl.java
@@ -10,7 +10,7 @@
/**
 * æ“ä½œæ—¥å¿— æœåŠ¡å±‚处理
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysOperLogServiceImpl implements ISysOperLogService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysPostServiceImpl.java
@@ -14,7 +14,7 @@
/**
 * å²—位信息 æœåŠ¡å±‚处理
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysPostServiceImpl implements ISysPostService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysRoleServiceImpl.java
@@ -28,7 +28,7 @@
/**
 * è§’色 ä¸šåŠ¡å±‚处理
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysRoleServiceImpl implements ISysRoleService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysUserOnlineServiceImpl.java
@@ -9,7 +9,7 @@
/**
 * åœ¨çº¿ç”¨æˆ· æœåŠ¡å±‚处理
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysUserOnlineServiceImpl implements ISysUserOnlineService
jcdm-system/src/main/java/com/jcdm/system/service/impl/SysUserServiceImpl.java
@@ -33,7 +33,7 @@
/**
 * ç”¨æˆ· ä¸šåŠ¡å±‚处理
 * 
 * @author ruoyi
 * @author jc
 */
@Service
public class SysUserServiceImpl implements ISysUserService
jcdm-ui/package.json
@@ -33,7 +33,7 @@
  ],
  "repository": {
    "type": "git",
    "url": "https://gitee.com/y_project/RuoYi-Vue.git"
    "url": "http://192.168.0.189:8442/r/Jcdm-Mes.git"
  },
  "dependencies": {
    "@riophae/vue-treeselect": "0.4.0",
jcdm-ui/src/api/main/bs/bom/bom.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢åŸºç¡€BOM列表
export function listBom(query) {
  return request({
    url: '/bs/bom/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢åŸºç¡€BOM详细
export function getBom(id) {
  return request({
    url: '/bs/bom/' + id,
    method: 'get'
  })
}
// æ–°å¢žåŸºç¡€BOM
export function addBom(data) {
  return request({
    url: '/bs/bom',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹åŸºç¡€BOM
export function updateBom(data) {
  return request({
    url: '/bs/bom',
    method: 'put',
    data: data
  })
}
// åˆ é™¤åŸºç¡€BOM
export function delBom(id) {
  return request({
    url: '/bs/bom/' + id,
    method: 'delete'
  })
}
jcdm-ui/src/api/main/bs/bomchild/bomchild.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢åŸºç¡€BOM子信息列表
export function listBomchild(query) {
  return request({
    url: '/bs/bomchild/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢åŸºç¡€BOM子信息详细
export function getBomchild(id) {
  return request({
    url: '/bs/bomchild/' + id,
    method: 'get'
  })
}
// æ–°å¢žåŸºç¡€BOM子信息
export function addBomchild(data) {
  return request({
    url: '/bs/bomchild',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹åŸºç¡€BOM子信息
export function updateBomchild(data) {
  return request({
    url: '/bs/bomchild',
    method: 'put',
    data: data
  })
}
// åˆ é™¤åŸºç¡€BOM子信息
export function delBomchild(id) {
  return request({
    url: '/bs/bomchild/' + id,
    method: 'delete'
  })
}
jcdm-ui/src/api/main/bs/material/material.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表
export function listMaterial(query) {
  return request({
    url: '/bs/material/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯è¯¦ç»†
export function getMaterial(id) {
  return request({
    url: '/bs/material/' + id,
    method: 'get'
  })
}
// æ–°å¢žç‰©æ–™ä¿¡æ¯
export function addMaterial(data) {
  return request({
    url: '/bs/material',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹ç‰©æ–™ä¿¡æ¯
export function updateMaterial(data) {
  return request({
    url: '/bs/material',
    method: 'put',
    data: data
  })
}
// åˆ é™¤ç‰©æ–™ä¿¡æ¯
export function delMaterial(id) {
  return request({
    url: '/bs/material/' + id,
    method: 'delete'
  })
}
jcdm-ui/src/components/RuoYi/Git/index.vue
@@ -6,10 +6,10 @@
<script>
export default {
  name: 'RuoYiGit',
  name: 'JCGit',
  data() {
    return {
      url: 'https://gitee.com/y_project/RuoYi-Vue'
      url: 'http://192.168.0.189:8442/r/Jcdm-Mes.git'
    }
  },
  methods: {
@@ -18,4 +18,4 @@
    }
  }
}
</script>
</script>
jcdm-ui/src/directive/dialog/dragWidth.js
@@ -1,6 +1,5 @@
/**
 * v-dialogDragWidth å¯æ‹–动弹窗宽度(右侧边)
 * Copyright (c) 2019 ruoyi
 */
export default {
jcdm-ui/src/views/main/bs/bom/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,509 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="BOM编码" prop="bomCode">
        <el-input
          v-model="queryParams.bomCode"
          placeholder="请输入BOM编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="BOM名称" prop="bomName">
        <el-input
          v-model="queryParams.bomName"
          placeholder="请输入BOM名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="产品编码" prop="productCode">
        <el-input
          v-model="queryParams.productCode"
          placeholder="请输入产品编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="产品名称" prop="productName">
        <el-input
          v-model="queryParams.productName"
          placeholder="请输入产品名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="数据来源" prop="dataSource">
        <el-input
          v-model="queryParams.dataSource"
          placeholder="请输入数据来源"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['bs:bom:add']"
        >新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['bs:bom:edit']"
        >修改</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['bs:bom:remove']"
        >删除</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['bs:bom:export']"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="bomList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="主键id" align="center" prop="id" />
      <el-table-column label="BOM编码" align="center" prop="bomCode">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.bomCode"/>
        </template>-->
      </el-table-column>
      <el-table-column label="BOM名称" align="center" prop="bomName">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.bomName"/>
        </template>-->
      </el-table-column>
      <el-table-column label="产品编码" align="center" prop="productCode">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.productCode"/>
        </template>-->
      </el-table-column>
      <el-table-column label="产品名称" align="center" prop="productName">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.productName"/>
        </template>-->
      </el-table-column>
      <el-table-column label="版本" align="center" prop="version">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.version"/>
        </template>-->
      </el-table-column>
      <el-table-column label="状态(字典)" align="center" prop="status">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.status"/>
        </template>-->
      </el-table-column>
      <el-table-column label="预留字段1" align="center" prop="spareField1">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.spareField1"/>
        </template>-->
      </el-table-column>
      <el-table-column label="预留字段2" align="center" prop="spareField2">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.spareField2"/>
        </template>-->
      </el-table-column>
      <el-table-column label="备注" align="center" prop="remark">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.remark"/>
        </template>-->
      </el-table-column>
      <el-table-column label="创建用户" align="center" prop="createUser">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.createUser"/>
        </template>-->
      </el-table-column>
      <el-table-column label="更改用户" align="center" prop="updateUser">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.updateUser"/>
        </template>-->
      </el-table-column>
      <el-table-column label="数据来源" align="center" prop="dataSource">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.dataSource"/>
        </template>-->
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['bs:bom:edit']"
          >修改</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['bs:bom:remove']"
          >删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- æ·»åŠ æˆ–修改基础BOM对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="BOM编码" prop="bomCode">
          <el-input v-model="form.bomCode" placeholder="请输入BOM编码" />
        </el-form-item>
        <el-form-item label="BOM名称" prop="bomName">
          <el-input v-model="form.bomName" placeholder="请输入BOM名称" />
        </el-form-item>
        <el-form-item label="产品编码" prop="productCode">
          <el-input v-model="form.productCode" placeholder="请输入产品编码" />
        </el-form-item>
        <el-form-item label="产品名称" prop="productName">
          <el-input v-model="form.productName" placeholder="请输入产品名称" />
        </el-form-item>
        <el-form-item label="版本" prop="version">
          <el-input v-model="form.version" placeholder="请输入版本" />
        </el-form-item>
        <el-form-item label="状态(字典)" prop="status">
          <el-radio-group v-model="form.status">
<!--            <el-radio
              v-for="dict in dict.type.${dictType}"
              :key="dict.value"
              :label="dict.value"
            >{{dict.label}}</el-radio>-->
          </el-radio-group>
        </el-form-item>
        <el-form-item label="预留字段1" prop="spareField1">
          <el-input v-model="form.spareField1" placeholder="请输入预留字段1" />
        </el-form-item>
        <el-form-item label="预留字段2" prop="spareField2">
          <el-input v-model="form.spareField2" placeholder="请输入预留字段2" />
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" placeholder="请输入备注" />
        </el-form-item>
        <el-form-item label="创建用户" prop="createUser">
          <el-input v-model="form.createUser" placeholder="请输入创建用户" />
        </el-form-item>
        <el-form-item label="更改用户" prop="updateUser">
          <el-input v-model="form.updateUser" placeholder="请输入更改用户" />
        </el-form-item>
        <el-form-item label="数据来源" prop="dataSource">
          <el-input v-model="form.dataSource" placeholder="请输入数据来源" />
        </el-form-item>
        <el-divider content-position="center">基础BOM子信息信息</el-divider>
        <el-row :gutter="10" class="mb8">
          <el-col :span="1.5">
            <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddBsProductBomChildInfo">添加</el-button>
          </el-col>
          <el-col :span="1.5">
            <el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteBsProductBomChildInfo">删除</el-button>
          </el-col>
        </el-row>
        <el-table :data="bsProductBomChildInfoList" :row-class-name="rowBsProductBomChildInfoIndex" @selection-change="handleBsProductBomChildInfoSelectionChange" ref="bsProductBomChildInfo">
          <el-table-column type="selection" width="50" align="center" />
          <el-table-column label="序号" align="center" prop="index" width="50"/>
          <el-table-column label="工序编码" prop="opCode" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.opCode" placeholder="请输入工序编码" />
            </template>
          </el-table-column>
          <el-table-column label="工序名称" prop="opName" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.opName" placeholder="请输入工序名称" />
            </template>
          </el-table-column>
          <el-table-column label="物料编码" prop="materialCode" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.materialCode" placeholder="请输入物料编码" />
            </template>
          </el-table-column>
          <el-table-column label="物料名称" prop="materialName" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.materialName" placeholder="请输入物料名称" />
            </template>
          </el-table-column>
          <el-table-column label="单耗" prop="costQty" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.costQty" placeholder="请输入单耗" />
            </template>
          </el-table-column>
          <el-table-column label="单位" prop="unit" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.unit" placeholder="请输入单位" />
            </template>
          </el-table-column>
          <el-table-column label="预留字段1" prop="spareField1" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.spareField1" placeholder="请输入预留字段1" />
            </template>
          </el-table-column>
          <el-table-column label="预留字段2" prop="spareField2" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.spareField2" placeholder="请输入预留字段2" />
            </template>
          </el-table-column>
          <el-table-column label="预留字段3" prop="spareField3" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.spareField3" placeholder="请输入预留字段3" />
            </template>
          </el-table-column>
          <el-table-column label="备注" prop="remark" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.remark" placeholder="请输入备注" />
            </template>
          </el-table-column>
        </el-table>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">ç¡® å®š</el-button>
        <el-button @click="cancel">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { listBom, getBom, delBom, addBom, updateBom } from "@/api/main/bs/bom/bom";
export default {
  name: "Bom",
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // å­è¡¨é€‰ä¸­æ•°æ®
      checkedBsProductBomChildInfo: [],
      // éžå•ä¸ªç¦ç”¨
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // åŸºç¡€BOM表格数据
      bomList: [],
      // åŸºç¡€BOM子信息表格数据
      bsProductBomChildInfoList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        bomCode: null,
        bomName: null,
        productCode: null,
        productName: null,
        dataSource: null
      },
      // è¡¨å•å‚æ•°
      form: {},
      // è¡¨å•æ ¡éªŒ
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
        bomCode: [
          { required: true, message: "BOM编码不能为空", trigger: "blur" }
        ],
        productCode: [
          { required: true, message: "产品编码不能为空", trigger: "blur" }
        ],
        status: [
          { required: true, message: "状态(字典)不能为空", trigger: "change" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** æŸ¥è¯¢åŸºç¡€BOM列表 */
    getList() {
      this.loading = true;
      listBom(this.queryParams).then(response => {
        this.bomList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•é‡ç½®
    reset() {
      this.form = {
        id: null,
        bomCode: null,
        bomName: null,
        productCode: null,
        productName: null,
        version: null,
        status: null,
        spareField1: null,
        spareField2: null,
        remark: null,
        createUser: null,
        createTime: null,
        updateUser: null,
        updateTime: null,
        dataSource: null
      };
      this.bsProductBomChildInfoList = [];
      this.resetForm("form");
    },
    /** æœç´¢æŒ‰é’®æ“ä½œ */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** é‡ç½®æŒ‰é’®æ“ä½œ */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // å¤šé€‰æ¡†é€‰ä¸­æ•°æ®
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id)
      this.single = selection.length!==1
      this.multiple = !selection.length
    },
    /** æ–°å¢žæŒ‰é’®æ“ä½œ */
    handleAdd() {
      this.reset();
      this.open = true;
      this.title = "添加基础BOM";
    },
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
      this.reset();
      const id = row.id || this.ids
      getBom(id).then(response => {
        this.form = response.data;
        this.bsProductBomChildInfoList = response.data.bsProductBomChildInfoList;
        this.open = true;
        this.title = "修改基础BOM";
      });
    },
    /** æäº¤æŒ‰é’® */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          this.form.bsProductBomChildInfoList = this.bsProductBomChildInfoList;
          if (this.form.id != null) {
            updateBom(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addBom(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除基础BOM编号为"' + ids + '"的数据项?').then(function() {
        return delBom(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** åŸºç¡€BOM子信息序号 */
    rowBsProductBomChildInfoIndex({ row, rowIndex }) {
      row.index = rowIndex + 1;
    },
    /** åŸºç¡€BOM子信息添加按钮操作 */
    handleAddBsProductBomChildInfo() {
      let obj = {};
      obj.opCode = "";
      obj.opName = "";
      obj.materialCode = "";
      obj.materialName = "";
      obj.costQty = "";
      obj.unit = "";
      obj.spareField1 = "";
      obj.spareField2 = "";
      obj.spareField3 = "";
      obj.remark = "";
      this.bsProductBomChildInfoList.push(obj);
    },
    /** åŸºç¡€BOM子信息删除按钮操作 */
    handleDeleteBsProductBomChildInfo() {
      if (this.checkedBsProductBomChildInfo.length == 0) {
        this.$modal.msgError("请先选择要删除的基础BOM子信息数据");
      } else {
        const bsProductBomChildInfoList = this.bsProductBomChildInfoList;
        const checkedBsProductBomChildInfo = this.checkedBsProductBomChildInfo;
        this.bsProductBomChildInfoList = bsProductBomChildInfoList.filter(function(item) {
          return checkedBsProductBomChildInfo.indexOf(item.index) == -1
        });
      }
    },
    /** å¤é€‰æ¡†é€‰ä¸­æ•°æ® */
    handleBsProductBomChildInfoSelectionChange(selection) {
      this.checkedBsProductBomChildInfo = selection.map(item => item.index)
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('bs/bom/export', {
        ...this.queryParams
      }, `bom_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
jcdm-ui/src/views/main/bs/bomchild/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,364 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="物料编码" prop="materialCode">
        <el-input
          v-model="queryParams.materialCode"
          placeholder="请输入物料编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="BOM编码" prop="bomCode">
        <el-input
          v-model="queryParams.bomCode"
          placeholder="请输入BOM编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['bs:bomchild:add']"
        >新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['bs:bomchild:edit']"
        >修改</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['bs:bomchild:remove']"
        >删除</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['bs:bomchild:export']"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="bomchildList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="主键id" align="center" prop="id" />
      <el-table-column label="工序编码" align="center" prop="opCode">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.opCode"/>
        </template>-->
      </el-table-column>
      <el-table-column label="工序名称" align="center" prop="opName">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.opName"/>
        </template>-->
      </el-table-column>
      <el-table-column label="物料编码" align="center" prop="materialCode">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.materialCode"/>
        </template>-->
      </el-table-column>
      <el-table-column label="物料名称" align="center" prop="materialName">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.materialName"/>
        </template>-->
      </el-table-column>
      <el-table-column label="单耗" align="center" prop="costQty">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.costQty"/>
        </template>-->
      </el-table-column>
      <el-table-column label="单位" align="center" prop="unit">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.unit"/>
        </template>-->
      </el-table-column>
      <el-table-column label="预留字段1" align="center" prop="spareField1">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.spareField1"/>
        </template>-->
      </el-table-column>
      <el-table-column label="预留字段2" align="center" prop="spareField2">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.spareField2"/>
        </template>-->
      </el-table-column>
      <el-table-column label="预留字段3" align="center" prop="spareField3">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.spareField3"/>
        </template>-->
      </el-table-column>
      <el-table-column label="备注" align="center" prop="remark">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.remark"/>
        </template>-->
      </el-table-column>
      <el-table-column label="BOM编码" align="center" prop="bomCode">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.bomCode"/>
        </template>-->
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['bs:bomchild:edit']"
          >修改</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['bs:bomchild:remove']"
          >删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- æ·»åŠ æˆ–修改基础BOM子信息对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="工序编码" prop="opCode">
          <el-input v-model="form.opCode" placeholder="请输入工序编码" />
        </el-form-item>
        <el-form-item label="工序名称" prop="opName">
          <el-input v-model="form.opName" placeholder="请输入工序名称" />
        </el-form-item>
        <el-form-item label="物料编码" prop="materialCode">
          <el-input v-model="form.materialCode" placeholder="请输入物料编码" />
        </el-form-item>
        <el-form-item label="物料名称" prop="materialName">
          <el-input v-model="form.materialName" placeholder="请输入物料名称" />
        </el-form-item>
        <el-form-item label="单耗" prop="costQty">
          <el-input v-model="form.costQty" placeholder="请输入单耗" />
        </el-form-item>
        <el-form-item label="单位" prop="unit">
          <el-input v-model="form.unit" placeholder="请输入单位" />
        </el-form-item>
        <el-form-item label="预留字段1" prop="spareField1">
          <el-input v-model="form.spareField1" placeholder="请输入预留字段1" />
        </el-form-item>
        <el-form-item label="预留字段2" prop="spareField2">
          <el-input v-model="form.spareField2" placeholder="请输入预留字段2" />
        </el-form-item>
        <el-form-item label="预留字段3" prop="spareField3">
          <el-input v-model="form.spareField3" placeholder="请输入预留字段3" />
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" placeholder="请输入备注" />
        </el-form-item>
        <el-form-item label="BOM编码" prop="bomCode">
          <el-input v-model="form.bomCode" placeholder="请输入BOM编码" />
        </el-form-item>
        <el-form-item label="BOM主表ID" prop="bomInfoId">
          <el-input v-model="form.bomInfoId" placeholder="请输入BOM主表ID" />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">ç¡® å®š</el-button>
        <el-button @click="cancel">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { listBomchild, getBomchild, delBomchild, addBomchild, updateBomchild } from '@/api/main/bs/bomchild/bomchild';
export default {
  name: "Godchild",
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•ä¸ªç¦ç”¨
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // åŸºç¡€BOM子信息表格数据
      bomchildList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        materialCode: null,
        bomCode: null,
      },
      // è¡¨å•å‚æ•°
      form: {},
      // è¡¨å•æ ¡éªŒ
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
        costQty: [
          { required: true, message: "单耗不能为空", trigger: "blur" }
        ],
        unit: [
          { required: true, message: "单位不能为空", trigger: "blur" }
        ],
        bomCode: [
          { required: true, message: "BOM编码不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** æŸ¥è¯¢åŸºç¡€BOM子信息列表 */
    getList() {
      this.loading = true;
      listBomchild(this.queryParams).then(response => {
        this.bomchildList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•é‡ç½®
    reset() {
      this.form = {
        id: null,
        opCode: null,
        opName: null,
        materialCode: null,
        materialName: null,
        costQty: null,
        unit: null,
        spareField1: null,
        spareField2: null,
        spareField3: null,
        remark: null,
        bomCode: null,
        bomInfoId: null
      };
      this.resetForm("form");
    },
    /** æœç´¢æŒ‰é’®æ“ä½œ */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** é‡ç½®æŒ‰é’®æ“ä½œ */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // å¤šé€‰æ¡†é€‰ä¸­æ•°æ®
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id)
      this.single = selection.length!==1
      this.multiple = !selection.length
    },
    /** æ–°å¢žæŒ‰é’®æ“ä½œ */
    handleAdd() {
      this.reset();
      this.open = true;
      this.title = "添加基础BOM子信息";
    },
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
      this.reset();
      const id = row.id || this.ids
      getBomchild(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改基础BOM子信息";
      });
    },
    /** æäº¤æŒ‰é’® */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.id != null) {
            updateBomchild(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addBomchild(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除基础BOM子信息编号为"' + ids + '"的数据项?').then(function() {
        return delBomchild(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('bs/bomchild/export', {
        ...this.queryParams
      }, `bomchild_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
jcdm-ui/src/views/main/bs/material/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,528 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="物料编号" prop="materialCode">
        <el-input
          v-model="queryParams.materialCode"
          placeholder="请输入物料编号"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="物料名称" prop="materialName">
        <el-input
          v-model="queryParams.materialName"
          placeholder="请输入物料名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="视图" prop="materialView">
        <el-input
          v-model="queryParams.materialView"
          placeholder="请输入视图"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="种类" prop="typeZ">
        <el-input
          v-model="queryParams.typeZ"
          placeholder="请输入种类"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="类型" prop="typeL">
        <el-input
          v-model="queryParams.typeL"
          placeholder="请输入类型"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="单位" prop="unit">
        <el-input
          v-model="queryParams.unit"
          placeholder="请输入单位"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="版本" prop="matterVersion">
        <el-input
          v-model="queryParams.matterVersion"
          placeholder="请输入版本"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="备注" prop="remarks">
        <el-input
          v-model="queryParams.remarks"
          placeholder="请输入备注"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="创建用户" prop="createUser">
        <el-input
          v-model="queryParams.createUser"
          placeholder="请输入创建用户"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="创建时间" prop="createTime">
        <el-date-picker clearable
          v-model="queryParams.createTime"
          type="date"
          value-format="yyyy-MM-dd"
          placeholder="请选择创建时间">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="更改用户" prop="updateUser">
        <el-input
          v-model="queryParams.updateUser"
          placeholder="请输入更改用户"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="ERP规格" prop="erpSpec">
        <el-input
          v-model="queryParams.erpSpec"
          placeholder="请输入ERP规格"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="数据来源" prop="dataSource">
        <el-input
          v-model="queryParams.dataSource"
          placeholder="请输入数据来源"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="版本" prop="version">
        <el-input
          v-model="queryParams.version"
          placeholder="请输入版本"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
<!--          <el-option
            v-for="dict in dict.type.${dictType}"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />-->
        </el-select>
      </el-form-item>
      <el-form-item label="厂商" prop="supplier">
        <el-input
          v-model="queryParams.supplier"
          placeholder="请输入厂商"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['bs:material:add']"
        >新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['bs:material:edit']"
        >修改</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['bs:material:remove']"
        >删除</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['bs:material:export']"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="materialList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="主键id" align="center" prop="id" />
      <el-table-column label="物料编号" align="center" prop="materialCode">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.materialCode"/>
        </template>-->
      </el-table-column>
      <el-table-column label="物料名称" align="center" prop="materialName">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.materialName"/>
        </template>-->
      </el-table-column>
      <el-table-column label="视图" align="center" prop="materialView">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.materialView"/>
        </template>-->
      </el-table-column>
      <el-table-column label="种类" align="center" prop="typeZ">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.typeZ"/>
        </template>-->
      </el-table-column>
      <el-table-column label="类型" align="center" prop="typeL">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.typeL"/>
        </template>-->
      </el-table-column>
      <el-table-column label="单位" align="center" prop="unit">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.unit"/>
        </template>-->
      </el-table-column>
      <el-table-column label="版本" align="center" prop="matterVersion">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.matterVersion"/>
        </template>-->
      </el-table-column>
      <el-table-column label="备注" align="center" prop="remarks">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.remarks"/>
        </template>-->
      </el-table-column>
      <el-table-column label="创建用户" align="center" prop="createUser">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.createUser"/>
        </template>-->
      </el-table-column>
      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
        </template>
      </el-table-column>
      <el-table-column label="更改用户" align="center" prop="updateUser">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.updateUser"/>
        </template>-->
      </el-table-column>
      <el-table-column label="ERP规格" align="center" prop="erpSpec">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.erpSpec"/>
        </template>-->
      </el-table-column>
      <el-table-column label="数据来源" align="center" prop="dataSource">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.dataSource"/>
        </template>-->
      </el-table-column>
      <el-table-column label="版本" align="center" prop="version">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.version"/>
        </template>-->
      </el-table-column>
      <el-table-column label="状态" align="center" prop="status">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.status"/>
        </template>-->
      </el-table-column>
      <el-table-column label="厂商" align="center" prop="supplier">
<!--        <template slot-scope="scope">
          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.supplier"/>
        </template>-->
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['bs:material:edit']"
          >修改</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['bs:material:remove']"
          >删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- æ·»åŠ æˆ–修改物料信息对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="物料编号" prop="materialCode">
          <el-input v-model="form.materialCode" placeholder="请输入物料编号" />
        </el-form-item>
        <el-form-item label="物料名称" prop="materialName">
          <el-input v-model="form.materialName" placeholder="请输入物料名称" />
        </el-form-item>
        <el-form-item label="视图" prop="materialView">
          <el-input v-model="form.materialView" placeholder="请输入视图" />
        </el-form-item>
        <el-form-item label="种类" prop="typeZ">
          <el-input v-model="form.typeZ" placeholder="请输入种类" />
        </el-form-item>
        <el-form-item label="类型" prop="typeL">
          <el-input v-model="form.typeL" placeholder="请输入类型" />
        </el-form-item>
        <el-form-item label="单位" prop="unit">
          <el-input v-model="form.unit" placeholder="请输入单位" />
        </el-form-item>
        <el-form-item label="版本" prop="matterVersion">
          <el-input v-model="form.matterVersion" placeholder="请输入版本" />
        </el-form-item>
        <el-form-item label="备注" prop="remarks">
          <el-input v-model="form.remarks" placeholder="请输入备注" />
        </el-form-item>
        <el-form-item label="创建用户" prop="createUser">
          <el-input v-model="form.createUser" placeholder="请输入创建用户" />
        </el-form-item>
        <el-form-item label="更改用户" prop="updateUser">
          <el-input v-model="form.updateUser" placeholder="请输入更改用户" />
        </el-form-item>
        <el-form-item label="ERP规格" prop="erpSpec">
          <el-input v-model="form.erpSpec" placeholder="请输入ERP规格" />
        </el-form-item>
        <el-form-item label="数据来源" prop="dataSource">
          <el-input v-model="form.dataSource" placeholder="请输入数据来源" />
        </el-form-item>
        <el-form-item label="版本" prop="version">
          <el-input v-model="form.version" placeholder="请输入版本" />
        </el-form-item>
        <el-form-item label="状态" prop="status">
          <el-radio-group v-model="form.status">
<!--            <el-radio
              v-for="dict in dict.type.${dictType}"
              :key="dict.value"
              :label="dict.value"
            >{{dict.label}}</el-radio>-->
          </el-radio-group>
        </el-form-item>
        <el-form-item label="厂商" prop="supplier">
          <el-input v-model="form.supplier" placeholder="请输入厂商" />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">ç¡® å®š</el-button>
        <el-button @click="cancel">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { listMaterial, getMaterial, delMaterial, addMaterial, updateMaterial } from "@/api/main/bs/material/material";
export default {
  name: "Material",
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•ä¸ªç¦ç”¨
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // ç‰©æ–™ä¿¡æ¯è¡¨æ ¼æ•°æ®
      materialList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        materialCode: null,
        materialName: null,
        materialView: null,
        typeZ: null,
        typeL: null,
        unit: null,
        matterVersion: null,
        remarks: null,
        createUser: null,
        createTime: null,
        updateUser: null,
        erpSpec: null,
        dataSource: null,
        version: null,
        status: null,
        supplier: null
      },
      // è¡¨å•å‚æ•°
      form: {},
      // è¡¨å•æ ¡éªŒ
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表 */
    getList() {
      this.loading = true;
      listMaterial(this.queryParams).then(response => {
        this.materialList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•é‡ç½®
    reset() {
      this.form = {
        id: null,
        materialCode: null,
        materialName: null,
        materialView: null,
        typeZ: null,
        typeL: null,
        unit: null,
        matterVersion: null,
        remarks: null,
        createUser: null,
        createTime: null,
        updateUser: null,
        updateTime: null,
        erpSpec: null,
        dataSource: null,
        version: null,
        status: null,
        supplier: null
      };
      this.resetForm("form");
    },
    /** æœç´¢æŒ‰é’®æ“ä½œ */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** é‡ç½®æŒ‰é’®æ“ä½œ */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // å¤šé€‰æ¡†é€‰ä¸­æ•°æ®
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id)
      this.single = selection.length!==1
      this.multiple = !selection.length
    },
    /** æ–°å¢žæŒ‰é’®æ“ä½œ */
    handleAdd() {
      this.reset();
      this.open = true;
      this.title = "添加物料信息";
    },
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
      this.reset();
      const id = row.id || this.ids
      getMaterial(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改物料信息";
      });
    },
    /** æäº¤æŒ‰é’® */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.id != null) {
            updateMaterial(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addMaterial(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除物料信息编号为"' + ids + '"的数据项?').then(function() {
        return delMaterial(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('bs/material/export', {
        ...this.queryParams
      }, `material_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
jcdm-ui/src/views/tool/gen/index.vue
@@ -267,7 +267,7 @@
          this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath);
        });
      } else {
        this.$download.zip("/tool/gen/batchGenCode?tables=" + tableNames, "ruoyi.zip");
        this.$download.zip("/tool/gen/batchGenCode?tables=" + tableNames, "JCDM.zip");
      }
    },
    /** åŒæ­¥æ•°æ®åº“操作 */
jcdm-ui/vue.config.js
@@ -34,7 +34,7 @@
    open: true,
    proxy: {
      [process.env.VUE_APP_BASE_API]: {
        target: `http://localhost:8080`,
        target: `http://localhost:8081`,
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''